(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-05
(45)【発行日】2024-06-13
(54)【発明の名称】不揮発性半導体記憶装置及び読み出し電圧補正方法
(51)【国際特許分類】
G11C 16/34 20060101AFI20240606BHJP
G11C 11/56 20060101ALI20240606BHJP
G11C 16/26 20060101ALI20240606BHJP
【FI】
G11C16/34 113
G11C11/56 220
G11C16/26 100
G11C16/34 120
(21)【出願番号】P 2021018273
(22)【出願日】2021-02-08
【審査請求日】2023-11-07
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100115381
【氏名又は名称】小谷 昌崇
(74)【代理人】
【識別番号】100136353
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】中井 駿介
(72)【発明者】
【氏名】川村 敦史
(72)【発明者】
【氏名】丸毛 靖久
(72)【発明者】
【氏名】陳 寒達
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2006-114078(JP,A)
【文献】特開2015-195070(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/34
G11C 11/56
G11C 16/26
(57)【特許請求の範囲】
【請求項1】
データが記憶される記憶部と、
前記記憶部を制御する制御部と、
を備え、
前記記憶部には、二値論理の“1”より“0”が多い第1データ領域と、二値論理の“0”より“1”が多い第2データ領域とを有する既知データが記憶されており、
前記制御部は、
前記記憶部から前記既知データを読み出し、前記第1データ領域に発生しているエラービットの数である第1エラービット数と、前記第2データ領域に発生しているエラービットの数である第2エラービット数とを検出する検出部と、
前記第2エラービット数に対する前記第1エラービット数の相対差を算出する算出部と、
前記相対差と第1の値とを比較する比較部と、
前記比較部による比較の結果に基づいて、前記記憶部から前記データを読み出す際の読み出し電圧を補正する補正部と、
を有する、不揮発性半導体記憶装置。
【請求項2】
前記記憶部はSLC(Single Level Cell)メモリを有し、
前記補正部は、
前記相対差が前記第1の値以上である場合には、前記読み出し電圧を現在値より下げる補正を行い、
前記相対差が前記第1の値未満である場合には、前記読み出し電圧を現在値より上げる補正を行う、請求項1に記載の不揮発性半導体記憶装置。
【請求項3】
前記記憶部はTLC(Triple Level Cell)メモリを有し、
前記比較部は、前記相対差と第2の値とをさらに比較し、
前記相対差が前記第2の値以上である場合にフラグを設定する設定部をさらに備え、
前記補正部は、
前記設定部によって前記フラグが設定されている場合には、前記読み出し電圧を現在値より上げる補正を行い、
前記設定部によって前記フラグが設定されておらず、かつ、前記相対差が前記第1の値以下である場合には、前記読み出し電圧を現在値より下げる補正を行う、請求項1に記載の不揮発性半導体記憶装置。
【請求項4】
前記補正部は、前記設定部によって前記フラグが設定されておらず、かつ、前記相対差が前記第1の値超である場合には、前記制御部に前記記憶部のリフレッシュ処理を実行させる、請求項3に記載の不揮発性半導体記憶装置。
【請求項5】
前記補正部は、
前記既知データに発生しているエラービットの総数、
前記相対差の値、
前記記憶部へのアクセス回数、及び、
前記記憶部に前記既知データが記憶されてからの経過時間
の少なくとも一つに基づいて、前記読み出し電圧の補正量を設定する、請求項1~4のいずれか一つに記載の不揮発性半導体記憶装置。
【請求項6】
前記制御部は、
前記不揮発性半導体記憶装置の起動時、
前記補正部が前記読み出し電圧の補正処理を前回実行してから所定時間経過後、及び、
前記データに発生しているエラービットの総数が訂正可能値を超えた場合
の少なくとも一つのタイミングで、前記読み出し電圧の補正処理を実行する、請求項1~5のいずれか一つに記載の不揮発性半導体記憶装置。
【請求項7】
前記記憶部は、ユーザデータが記憶される第1領域と、前記第1領域よりもエラービットが発生しやすい特性を有する第2領域とを含み、
前記既知データは、前記第2領域内に記憶される、請求項1~6のいずれか一つに記載の不揮発性半導体記憶装置。
【請求項8】
前記記憶部は、データ消去単位である複数のブロックを有し、
前記既知データは、前記複数のブロックの各々に記憶される、請求項1~6のいずれか一つに記載の不揮発性半導体記憶装置。
【請求項9】
前記記憶部は、データ消去単位である複数のブロックを有し、
前記複数のブロックは、ユーザデータが記憶される第1ブロックと、通常用途では使用されない第2ブロックとを含み、
前記既知データは、前記第1ブロック及び前記第2ブロックの双方に記憶される、請求項1~6のいずれか一つに記載の不揮発性半導体記憶装置。
【請求項10】
前記制御部は、前記補正部によって前記読み出し電圧の補正処理が実行された場合には、補正後の読み出し電圧を、次回に前記記憶部から前記既知データを読み出す際の読み出し電圧として使用する、請求項1~9のいずれか一つに記載の不揮発性半導体記憶装置。
【請求項11】
データが記憶される記憶部と、前記記憶部を制御する制御部とを備える不揮発性半導体記憶装置において、前記記憶部から前記データを読み出す際の読み出し電圧を補正する読み出し電圧補正方法であって、
前記記憶部には、二値論理の“1”より“0”が多い第1データ領域と、二値論理の“0”より“1”が多い第2データ領域とを有する既知データが記憶されており、
(A)前記記憶部から前記既知データを読み出し、前記第1データ領域に発生しているエラービットの数である第1エラービット数と、前記第2データ領域に発生しているエラービットの数である第2エラービット数とを検出するステップと、
(B)前記第2エラービット数に対する前記第1エラービット数の相対差を算出するステップと、
(C)前記相対差と第1の値とを比較するステップと、
(D)前記ステップ(C)による比較の結果に基づいて、前記記憶部から前記データを読み出す際の読み出し電圧を補正するステップと、
を備える、読み出し電圧補正方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリ等の不揮発性半導体記憶装置及び読み出し電圧補正方法に関する。
【背景技術】
【0002】
NAND型フラッシュメモリ等の不揮発性半導体記憶装置においては、メモリセルトランジスタのセルに電荷が蓄積されている状態(しきい値電圧が低い状態)と、蓄積されていない状態(しきい値電圧が高い状態)とによって、二値論理の“0”又は“1”が記憶される。データの読み出し処理においては、メモリセルトランジスタのコントロールゲートに読み出し電圧を印加した際に、ソース-ドレイン間に電流が流れないことにより“0”が読み出され、電流が流れることにより“1”が読み出される。メモリセルアレイを構成する複数のメモリセルトランジスタのしきい値電圧分布は、データリテンション(セルに蓄積されている電荷が意図せず漏洩する現象)又はリードディスターブ(セルに電荷が意図せず注入される現象)によって変動するため、その変動の状況に応じて読み出し電圧を補正する処理が必要となる。
【0003】
下記特許文献1に開示された不揮発性メモリの制御方法は、二値論理の“0”と“1”との割合が等しくなるようにデータをスクランブルするステップと、スクランブルされた上記データを不揮発性メモリの所定部分に書き込むステップと、上記不揮発性メモリの上記所定部分から上記データを読み出すステップと、読み出した上記データがECC処理によって訂正不可能である場合に、読み出した上記データの“0”のビット数と“1”のビット数とをカウントして両者の差を演算するステップと、その差に基づいて、上記不揮発性メモリからのデータ読み出しのための読み出し電圧を補正するステップと、を備える。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1に開示された方法によると、不揮発性メモリから読み出したデータがECC処理によって訂正不可能である場合(つまりECCデコードに失敗した場合)に、読み出し電圧の補正処理の実行が開始される。また、当該補正処理においては、読み出したデータの“0”のビット数と“1”のビット数とをカウントする処理が必要である。従って、不揮発性メモリからのデータ読み出しにおいて、ECCデコードに失敗した場合のレイテンシが大きい。
【0006】
本発明はかかる事情に鑑みて成されたものであり、読み出し電圧の補正処理に伴うレイテンシを低減することが可能な不揮発性半導体記憶装置及び読み出し電圧補正方法を得ることを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係る不揮発性半導体記憶装置は、データが記憶される記憶部と、前記記憶部を制御する制御部と、を備え、前記記憶部には、二値論理の“1”より“0”が多い第1データ領域と、二値論理の“0”より“1”が多い第2データ領域とを有する既知データが記憶されており、前記制御部は、前記記憶部から前記既知データを読み出し、前記第1データ領域に発生しているエラービットの数である第1エラービット数と、前記第2データ領域に発生しているエラービットの数である第2エラービット数とを検出する検出部と、前記第2エラービット数に対する前記第1エラービット数の相対差を算出する算出部と、前記相対差と第1の値とを比較する比較部と、前記比較部による比較の結果に基づいて、前記記憶部から前記データを読み出す際の読み出し電圧を補正する補正部と、を有する。
【0008】
この態様によれば、記憶部には、二値論理の“1”より“0”が多い第1データ領域と、二値論理の“0”より“1”が多い第2データ領域とを有する既知データが記憶されている。そして、制御部は、記憶部から既知データを読み出し、その際の第1データ領域及び第2データ領域におけるエラービットの発生状況に応じて、読み出し電圧を補正する。従って、記憶部から既知データを読み出すという簡易な処理によって読み出し電圧を補正できるため、読み出し電圧の補正処理に伴うレイテンシを低減することが可能となる。
【0009】
上記態様において、前記記憶部はSLC(Single Level Cell)メモリを有し、前記補正部は、前記相対差が前記第1の値以上である場合には、前記読み出し電圧を現在値より下げる補正を行い、前記相対差が前記第1の値未満である場合には、前記読み出し電圧を現在値より上げる補正を行う。
【0010】
この態様によれば、SLCメモリを有する記憶部を対象として、読み出し電圧の補正処理を簡易に実行することが可能となる。
【0011】
上記態様において、前記記憶部はTLC(Triple Level Cell)メモリを有し、前記比較部は、前記相対差と第2の値とをさらに比較し、前記相対差が前記第2の値以上である場合にフラグを設定する設定部をさらに備え、前記補正部は、前記設定部によって前記フラグが設定されている場合には、前記読み出し電圧を現在値より上げる補正を行い、前記設定部によって前記フラグが設定されておらず、かつ、前記相対差が前記第1の値以下である場合には、前記読み出し電圧を現在値より下げる補正を行う。
【0012】
この態様によれば、TLCメモリを有する記憶部を対象として、読み出し電圧の補正処理を簡易に実行することが可能となる。
【0013】
上記態様において、前記補正部は、前記設定部によって前記フラグが設定されておらず、かつ、前記相対差が前記第1の値超である場合には、前記制御部に前記記憶部のリフレッシュ処理を実行させる。
【0014】
この態様によれば、読み出し電圧を適切に補正することが困難な場合にはリフレッシュ処理を実行することにより、不揮発性半導体記憶装置の運用を継続することが可能となる。
【0015】
上記態様において、前記補正部は、前記既知データに発生しているエラービットの総数、前記相対差の値、前記記憶部へのアクセス回数、及び、前記記憶部に前記既知データが記憶されてからの経過時間の少なくとも一つに基づいて、前記読み出し電圧の補正量を設定する。
【0016】
この態様によれば、読み出し電圧の補正方向のみならず、その補正量を適切に設定することが可能となる。
【0017】
上記態様において、前記制御部は、前記不揮発性半導体記憶装置の起動時、前記補正部が前記読み出し電圧の補正処理を前回実行してから所定時間経過後、及び、前記データに発生しているエラービットの総数が訂正可能値を超えた場合の少なくとも一つのタイミングで、前記読み出し電圧の補正処理を実行する。
【0018】
この態様によれば、エラービットが多発する状況に至る前の適切なタイミングで、読み出し電圧の補正処理を実行することが可能となる。
【0019】
上記態様において、前記記憶部は、ユーザデータが記憶される第1領域と、前記第1領域よりもエラービットが発生しやすい特性を有する第2領域とを含み、前記既知データは、前記第2領域内に記憶される。
【0020】
この態様によれば、ユーザデータが記憶される第1領域でエラービットが多発する状況に至る前に、読み出し電圧の補正処理を実行することが可能となる。
【0021】
上記態様において、前記記憶部は、データ消去単位である複数のブロックを有し、前記既知データは、前記複数のブロックの各々に記憶される。
【0022】
この態様によれば、リードディスターブの発生状況はブロック毎に異なるため、ブロック毎に最適な補正処理を実行することが可能となる。
【0023】
上記態様において、前記記憶部は、データ消去単位である複数のブロックを有し、前記複数のブロックは、ユーザデータが記憶される第1ブロックと、通常用途では使用されない第2ブロックとを含み、前記既知データは、前記第1ブロック及び前記第2ブロックの双方に記憶される。
【0024】
この態様によれば、通常用途では使用されない第2ブロックに記憶された既知データを読み出すことによって、データリテンションに起因するしきい値電圧分布の変動状況を特定することが可能となる。また、第1ブロックに記憶された既知データを読み出し、データリテンションに起因する影響を相殺することによって、リードディスターブに起因するしきい値電圧分布の変動状況を特定することが可能となる。
【0025】
上記態様において、前記制御部は、前記補正部によって前記読み出し電圧の補正処理が実行された場合には、補正後の読み出し電圧を、次回に前記記憶部から前記既知データを読み出す際の読み出し電圧として使用する。
【0026】
この態様によれば、補正部によって補正処理が実行される度に読み出し電圧を適切な値に更新することが可能となる。
【0027】
本発明の一態様に係る読み出し電圧補正方法は、データが記憶される記憶部と、前記記憶部を制御する制御部とを備える不揮発性半導体記憶装置において、前記記憶部から前記データを読み出す際の読み出し電圧を補正する読み出し電圧補正方法であって、前記記憶部には、二値論理の“1”より“0”が多い第1データ領域と、二値論理の“0”より“1”が多い第2データ領域とを有する既知データが記憶されており、(A)前記記憶部から前記既知データを読み出し、前記第1データ領域に発生しているエラービットの数である第1エラービット数と、前記第2データ領域に発生しているエラービットの数である第2エラービット数とを検出するステップと、(B)前記第2エラービット数に対する前記第1エラービット数の相対差を算出するステップと、(C)前記相対差と第1の値とを比較するステップと、(D)前記ステップ(C)による比較の結果に基づいて、前記記憶部から前記データを読み出す際の読み出し電圧を補正するステップと、を備える。
【0028】
この態様によれば、記憶部には、二値論理の“1”より“0”が多い第1データ領域と、二値論理の“0”より“1”が多い第2データ領域とを有する既知データが記憶されている。そして、記憶部から既知データを読み出し、その際の第1データ領域及び第2データ領域におけるエラービットの発生状況に応じて、読み出し電圧が補正される。従って、記憶部から既知データを読み出すという簡易な処理によって読み出し電圧を補正できるため、読み出し電圧の補正処理に伴うレイテンシを低減することが可能となる。
【発明の効果】
【0029】
本発明によれば、読み出し電圧の補正処理に伴うレイテンシを低減することが可能となる。
【図面の簡単な説明】
【0030】
【
図1】第1の実施の形態に係るメモリ装置の構成を簡略化して示す図である。
【
図2】メモリセルアレイの記憶領域の一部を示す図である。
【
図3】ユーザデータが記憶されているページに関して、複数のメモリセルトランジスタのしきい値電圧分布を示す図である。
【
図4】ダミーデータが記憶されているページに関して、複数のメモリセルトランジスタのしきい値電圧分布を示す図である。
【
図5】メモリコントローラが実行する読み出し電圧の補正処理の内容を示すフローチャートである。
【
図6】データリテンションが発生した状況でのしきい値電圧分布を示す図である。
【
図7】リードディスターブが発生した状況でのしきい値電圧分布を示す図である。
【
図8】第2の実施の形態に係るメモリ装置の構成を簡略化して示す図である。
【
図9】ユーザデータが記憶されているページに関して、複数のメモリセルトランジスタのしきい値電圧分布を示す図である。
【
図10】一般的なTLCメモリを対象として、データリテンションが発生している場合の影響を評価した結果を示す図である。
【
図11】一般的なTLCメモリを対象として、リードディスターブが発生している場合の影響を評価した結果を示す図である。
【
図12】メモリコントローラが実行する読み出し電圧の補正処理の内容を示すフローチャートである。
【発明を実施するための形態】
【0031】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0032】
<第1の実施の形態>
本実施の形態では、SLC(Single Level Cell)メモリを備えるメモリ装置1について説明する。
【0033】
図1は、本実施の形態に係るメモリ装置1の構成を簡略化して示す図である。メモリ装置1は、例えばNAND型フラッシュメモリを備えて構成された不揮発性半導体記憶装置である。
【0034】
メモリ装置1は、メモリコントローラ2(制御部)とメモリ3(記憶部)とを備える。メモリコントローラ2は、メモリ3の動作を制御する。メモリ3は、アクセスコントローラ21とメモリセルアレイ22とを有する。メモリセルアレイ22は、マトリクス状に配列された複数のメモリセルトランジスタを備えて構成されている。アクセスコントローラ21は、メモリコントローラ2によるメモリセルアレイ22に対するアクセス(データの読み出し、書き込み、消去、及びリフレッシュ等)を制御する。
【0035】
メモリコントローラ2は、ECC(Error Check and Correct)処理部11(検出部)、算出部12、比較部13、及び補正部14を有する。これらの各処理部が実行する処理内容については後述する。これらの各処理部は、CPU等のデータ処理装置が所定のプログラムを実行することによって実現される機能として構成されても良いし、ハードウェアとして構成されても良い。なお、これらの各処理部は、メモリコントローラ2ではなくアクセスコントローラ21に実装されていても良い。
【0036】
図2は、メモリセルアレイ22の記憶領域の一部を示す図である。メモリセルアレイ22は、データの消去単位である複数のブロックB(B1,B2,・・・,BM)を有する。各ブロックBは、データの読み出し単位及び書き込み単位である複数のページP(P1,P2,・・・,PN)を有する。
【0037】
図2に示した例では、ブロックB1のページPNには、ユーザデータUDが記憶されている。また、ブロックBMのページPNには、既知データであるダミーデータDDが記憶されている。ダミーデータDDは、第1データ領域R1と第2データ領域R2とを有する。
【0038】
図3は、ユーザデータUDが記憶されているページPに関して、複数のメモリセルトランジスタのしきい値電圧分布を示す図である。メモリコントローラ2は、メモリ3へのユーザデータUDの書き込み処理においては、ECC処理部11によるECCエンコードを行った後に、二値論理の“0”のビット数と“1”のビット数とが等しくなるようにデータのランダマイズ処理を行う。従って、“0”を記憶しているメモリセルトランジスタの総数と、“1”を記憶しているメモリセルトランジスタの総数とは、互いに等しい。理想的には、“0”を記憶しているメモリセルトランジスタのしきい値電圧Vthの最小値(
図3における“0”の分布の左端)は、“1”を記憶しているメモリセルトランジスタのしきい値電圧Vthの最大値(
図3における“1”の分布の右端)よりも高い。そして、当該最小値と当該最大値との中間の電圧として、読み出し電圧Vrが設定される。データの読み出し処理において、アクセスコントローラ21は、メモリセルトランジスタのコントロールゲートに読み出し電圧Vrを印加し、ソース-ドレイン間に電流が流れないことにより“0”を読み出し、電流が流れることにより“1”を読み出す。
【0039】
図4は、ダミーデータDDが記憶されているページPに関して、第1データ領域R1及び第2データ領域R2毎の、複数のメモリセルトランジスタのしきい値電圧分布を示す図である。第1データ領域R1には、“1”のビット数よりも“0”のビット数のほうが多いデータが記憶される。例えば、“1”のビット数の割合は40%であり、“0”のビット数の割合は60%である。第2データ領域R2には、“0”のビット数よりも“1”のビット数のほうが多いデータが記憶される。例えば、“0”のビット数の割合は40%であり、“1”のビット数の割合は60%である。
【0040】
メモリコントローラ2は、メモリ3へのダミーデータDDの書き込み処理においては、ECC処理部11によるECCエンコードを行った後、データのランダマイズ処理を行わない。従って、第1データ領域R1においては、“0”を記憶しているメモリセルトランジスタの総数は、“1”を記憶しているメモリセルトランジスタの総数よりも多い。また、第2データ領域R2においては、“1”を記憶しているメモリセルトランジスタの総数は、“0”を記憶しているメモリセルトランジスタの総数よりも多い。しかし、第1データ領域R1と第2データ領域R2とを含むページ全体で見れば、“0”のビット数と“1”のビット数とは互いに等しい。そのため、メモリセルアレイ22へのダミーデータDDの書き込みは許容される。
【0041】
理想的には、第1データ領域R1及び第2データ領域R2の各々において、“0”を記憶しているメモリセルトランジスタのしきい値電圧Vthの最小値(
図4における“0”の分布の左端)は、“1”を記憶しているメモリセルトランジスタのしきい値電圧Vthの最大値(
図4における“1”の分布の右端)よりも高い。そして、当該最小値と当該最大値との中間の電圧として、読み出し電圧Vrが設定される。
【0042】
図5は、メモリコントローラ2が実行する読み出し電圧の補正処理の内容を示すフローチャートである。外部電源からメモリ装置1への電力供給が開始されてメモリ装置1が起動される度に、メモリコントローラ2は、起動処理の一部として読み出し電圧の補正処理を実行する。また、メモリコントローラ2は、読み出し電圧の補正処理を前回実行してから所定時間が経過していれば、メモリコントローラ2からメモリ3へのアクセスが発生していない空き時間を利用して、読み出し電圧の補正処理を実行する。さらに、メモリコントローラ2は、メモリ3の通常動作においてメモリセルアレイ22から読み出したユーザデータUDに発生しているエラービットの総数が、ECC処理部11による訂正可能値(訂正能力の上限値)を超えた場合に、読み出し電圧の補正処理を実行する。なお、メモリコントローラ2は、読み出し電圧の補正処理をこれら全てのタイミングで実行しても良いし、いずれか一以上のタイミングで実行しても良い。
【0043】
まずステップSP101においてメモリコントローラ2は、現在の読み出し電圧Vr(読み出し電圧Vrが以前に補正された場合には補正後の読み出し電圧Vr)を用いて、メモリセルアレイ22からダミーデータDDを読み出す。但し、現在の読み出し電圧Vrではなく、読み出し電圧Vrの初期値(読み出し電圧Vrが以前に補正された場合には補正前の読み出し電圧Vr)を用いて、ダミーデータDDの読み出しを行っても良い。
【0044】
次にステップSP102においてECC処理部11は、読み出したダミーデータDDの第1データ領域R1に発生しているエラービットの数である第1エラービット数V1と、第2データ領域R2に発生しているエラービットの数である第2エラービット数V2とを検出する。算出部12は、第1エラービット数V1及び第2エラービット数V2をECC処理部11から取得する。
【0045】
図6は、データリテンションが発生した状況でのしきい値電圧分布を示す図である。データリテンションは、セル内に蓄積されている電荷(電子)が意図せず漏洩する現象であるため、データリテンションの発生によってしきい値電圧分布は全体的に低電圧方向(
図6における左方向)にシフトする。従って、第1データ領域R1における“0”の分布のうち、現在の読み出し電圧Vr未満までしきい値電圧Vthが低下したメモリセルトランジスタの数が、第1エラービット数V1となる。また、第2データ領域R2における“0”の分布のうち、現在の読み出し電圧Vr未満までしきい値電圧Vthが低下したメモリセルトランジスタの数が、第2エラービット数V2となる。
図6に示すように、データリテンションが発生した場合には、第1エラービット数V1は第2エラービット数V2よりも大きい。
【0046】
図7は、リードディスターブが発生した状況でのしきい値電圧分布を示す図である。リードディスターブは、セル内に電荷(電子)が意図せず注入される現象であるため、リードディスターブの発生によってしきい値電圧分布は全体的に高電圧方向(
図7における右方向)にシフトする。従って、第1データ領域R1における“1”の分布のうち、現在の読み出し電圧Vr超までしきい値電圧Vthが上昇したメモリセルトランジスタの数が、第1エラービット数V1となる。また、第2データ領域R2における“1”の分布のうち、現在の読み出し電圧Vr超までしきい値電圧Vthが上昇したメモリセルトランジスタの数が、第2エラービット数V2となる。
図7に示すように、リードディスターブが発生した場合には、第2エラービット数V2は第1エラービット数V1よりも大きい。
【0047】
次にステップSP103においてメモリコントローラ2は、ダミーデータDDに発生しているエラービットの総数(V1+V2)が、予め設定された所定値S1以上であるか否かを判定する。所定値S1は、ECC処理部11による誤り訂正能力の上限値より低い値に設定しても良い。
【0048】
エラービット総数(V1+V2)が所定値S1未満である場合(ステップSP103:NO)は、読み出し電圧Vrの補正処理は不要であるため、メモリコントローラ2は処理を終了する。
【0049】
エラービット総数(V1+V2)が所定値S1以上である場合(ステップSP103:YES)は、次にステップSP104において算出部12は、下記式(1)の演算を実行することにより、第2エラービット数V2に対する第1エラービット数V1の相対差Xを算出する。
【0050】
X=(V1-V2)/V2 ・・・(1)
【0051】
次にステップSP105において比較部13は、相対差Xと予め設定された所定値K1(第1の値)とを比較する。所定値K1は、例えば「0」である。
【0052】
相対差Xが所定値K1以上である場合(ステップSP105:YES)は、次にステップSP106において補正部14は、データリテンション用の補正処理を実行する。具体的に、補正部14は、読み出し電圧Vrを現在値より下げる補正を行う。上記の通り、今回の補正後の読み出し電圧Vrが、ダミーデータDDを次回に読み出す際の読み出し電圧Vrとして使用される。これにより、補正部14によって補正処理が実行される度に読み出し電圧Vrを適切な値に更新することが可能となる。
【0053】
相対差Xが所定値K1未満である場合(ステップSP105:NO)は、次にステップSP107において補正部14は、リードディスターブ用の補正処理を実行する。具体的に、補正部14は、読み出し電圧Vrを現在値より上げる補正を行う。上記と同様に、今回の補正後の読み出し電圧Vrが、ダミーデータDDを次回に読み出す際の読み出し電圧Vrとして使用される。
【0054】
読み出し電圧Vrの補正量(シフト量)は、予め設定された固定値であっても良いし、少なくとも一つのパラメータの値に応じて変動する変動値であっても良い。パラメータとしては、例えば、エラービット総数(V1+V2)、相対差Xの値、読み出し電圧の補正処理を前回実行してからのメモリ3へのアクセス回数、これまでの消去の総実行回数、これまでの書き込みの総実行回数、及び、ダミーデータDDがメモリ3に書き込まれてからの経過時間を用いることができる。補正部14は、各パラメータの複数の値と最適な補正量との関係が規定されたテーブル情報を不揮発性の内部メモリ(又は外部メモリ)に保持しており、当該テーブル情報を参照することによって読み出し電圧Vrの補正量を設定する。当該テーブル情報においては、例えば、エラービット総数(V1+V2)、相対差X、アクセス回数、及び経過時間の各値が大きいほど、大きい補正量が設定されている。
【0055】
本実施の形態に係るメモリ装置1によれば、メモリ3には、二値論理の“1”より“0”が多い第1データ領域R1と、二値論理の“0”より“1”が多い第2データ領域R2とを有するダミーデータDDが記憶されている。そして、メモリコントローラ2は、メモリ3からダミーデータDDを読み出し、その際の第1データ領域R1及び第2データ領域R2におけるエラービットの発生状況に応じて、読み出し電圧Vrを補正する。従って、メモリ3からダミーデータDDを読み出すという簡易な処理によって読み出し電圧Vrを補正できるため、読み出し電圧Vrの補正処理に伴うレイテンシを低減することが可能となる。
【0056】
また、本実施の形態に係るメモリ装置1によれば、SLCメモリを有するメモリ3を対象として、読み出し電圧Vrの補正処理を簡易に実行することが可能となる。
【0057】
また、本実施の形態に係るメモリ装置1によれば、読み出し電圧Vrの補正方向のみならず、その補正量を適切に設定することが可能となる。
【0058】
また、本実施の形態に係るメモリ装置1によれば、エラービットが多発する状況に至る前の適切なタイミングで、読み出し電圧Vrの補正処理を実行することが可能となる。
【0059】
<第2の実施の形態>
本実施の形態では、TLC(Triple Level Cell)メモリを備えるメモリ装置1について、上記第1の実施の形態との相違点を中心に説明する。
【0060】
図8は、本実施の形態に係るメモリ装置1の構成を簡略化して示す図である。
図1に示した構成を基礎として、メモリコントローラ2は設定部15をさらに有する。
【0061】
図9は、ユーザデータUDが記憶されているページPに関して、複数のメモリセルトランジスタのしきい値電圧分布を示す図である。本実施の形態では、「2-3-2」のコーディングルールが採用された一般的なTLCメモリを対象としている。「2-3-2」のコーディングルールは、
図9に示すように、MSBを識別する2つの読み出し電圧VrC,VrGと、CSBを識別する3つの読み出し電圧VrB,VrD,VrFと、LSBを識別する2つの読み出し電圧VrA,VrEとを有する割り当て方法である。
【0062】
図10は、一般的なTLCメモリを対象として、データリテンションが発生している場合の影響を評価した結果を示す図である。横軸は、ダミーデータDDがメモリ3に書き込まれてからの経過時間であり、縦軸は、第2エラービット数V2に対する第1エラービット数V1の相対差である。相対差は、経過時間が「0」の初期状態では約「0.5」であり、その後は経過時間の増加に伴って単調減少することが分かる。
【0063】
図11は、一般的なTLCメモリを対象として、リードディスターブが発生している場合の影響を評価した結果を示す図である。横軸は、メモリセルアレイ22からのダミーデータDDの読み出し回数であり、左側の縦軸(実線)は、第2エラービット数V2に対する第1エラービット数V1の相対差であり、右側の縦軸(破線)は、ダミーデータDDに発生した最大エラービット数である。相対差は、読み出し回数が「0」の初期状態では約「0.5」であり、読み出し回数が比較的少ない段階で一時的に約「2.0」まで上昇し、その後は減少傾向に転じ、最終的には約「-0.5」に収束することが分かる。また、最大エラービット数は、読み出し回数の増加に伴って徐々に増加することが分かる。
【0064】
図12は、メモリコントローラ2が実行する読み出し電圧の補正処理の内容を示すフローチャートである。
【0065】
まずステップSP201においてメモリコントローラ2は、メモリセルアレイ22からダミーデータDDを読み出す。
【0066】
次にステップSP202においてECC処理部11は、読み出したダミーデータDDの第1データ領域R1に発生しているエラービットの数である第1エラービット数V1と、第2データ領域R2に発生しているエラービットの数である第2エラービット数V2とを検出する。算出部12は、第1エラービット数V1及び第2エラービット数V2をECC処理部11から取得する。
【0067】
次にステップSP203において算出部12は、第2エラービット数V2に対する第1エラービット数V1の相対差Xを算出する。
【0068】
次にステップSP204において比較部13は、相対差Xと予め設定された所定値K2(第2の値)とを比較する。
図11に示したようにリードディスターブの影響によって相対差は一時的に約「2.0」まで上昇することを考慮して、所定値K2は例えば「1.5」に設定されている。
【0069】
相対差Xが所定値K2以上である場合(ステップSP204:YES)は、次にステップSP205において設定部15は、リードディスターブが発生していることを記録するための所定のフラグFを設定する。一方、相対差Xが所定値K2未満である場合(ステップSP204:NO)は、ステップSP205の処理は実行されない。
【0070】
次にステップSP206においてメモリコントローラ2は、ダミーデータDDに発生しているエラービットの総数(V1+V2)が、予め設定された所定値S2以上であるか否かを判定する。所定値S2は、ECC処理部11による誤り訂正能力の上限値より低い値に設定しても良い。
【0071】
エラービット総数(V1+V2)が所定値S2未満である場合(ステップSP206:NO)は、読み出し電圧Vrの補正処理は不要であるため、メモリコントローラ2は処理を終了する。
【0072】
エラービット総数(V1+V2)が所定値S2以上である場合(ステップSP206:YES)は、次にステップSP207において補正部14は、設定部15によって上記のフラグFが設定されているか否かを判定する。
【0073】
フラグFが設定されている場合(ステップSP207:YES)は、次にステップSP208において補正部14は、リードディスターブ用の補正処理を実行する。具体的に、補正部14は、読み出し電圧VrA~VrGを現在値より上げる補正を行う。その際、補正部14は、読み出し電圧VrA~VrGのうち電圧値が低いものほど補正量を大きく設定し、読み出し電圧VrA~VrGのうち電圧値が高いものほど補正量を小さく設定しても良い。ステップSP208の処理が実行されたことにより、設定部15は、ステップSP205で設定したフラグFをリセットする。一方、ステップSP208の処理が実行されてフラグFがリセットされない限り、次回以降の処理においてもフラグFは有効なままとなる。
【0074】
フラグFが設定されていない場合(ステップSP207:NO)は、次にステップSP209において比較部13は、相対差Xと予め設定された所定値K3(第1の値)とを比較する。
図10に示したようにデータリテンションの影響によって相対差は負の値まで単調減少することを考慮して、所定値K3は例えば「0」に設定されている。
【0075】
相対差Xが所定値K3以下である場合(ステップSP209:YES)は、次にステップSP210において補正部14は、データリテンション用の補正処理を実行する。具体的に、補正部14は、読み出し電圧VrA~VrGを現在値より下げる補正を行う。その際、補正部14は、読み出し電圧VrA~VrGのうち電圧値が低いものほど補正量を小さく設定し、読み出し電圧VrA~VrGのうち電圧値が高いものほど補正量を大きく設定しても良い。
【0076】
相対差Xが所定値K3超である場合(ステップSP209:NO)は、リードディスターブ及びデータリテンションの複合的な要因又はこれら以外の要因によって、しきい値電圧分布の変動が生じていると考えられる。この場合には、読み出し電圧を最適値に補正することは困難であるため、次にステップSP211において補正部14は、所定のリフレッシュフラグを設定する。リフレッシュフラグが設定されることにより、メモリコントローラ2はメモリ3のリフレッシュ処理を実行する。リフレッシュ処理において、メモリコントローラ2は、メモリセルアレイ22の記憶データを読み出して退避しておき、メモリセルアレイ22の記憶データを消去した後、退避していたデータをメモリセルアレイ22に再書き込みする。
【0077】
本実施の形態に係るメモリ装置1によれば、TLCメモリを有するメモリ3を対象として、読み出し電圧の補正処理を簡易に実行することが可能となる。
【0078】
また、本実施の形態に係るメモリ装置1によれば、読み出し電圧を適切に補正することが困難な場合にはメモリ3のリフレッシュ処理を実行することにより、メモリ装置1の運用を継続することが可能となる。
【0079】
<ダミーデータDDの格納場所について>
上記の各実施の形態において、メモリセルアレイ22におけるダミーデータDDの格納場所は以下の通りである。
【0080】
第1の例として、メモリセルアレイ22は、ユーザデータUDが記憶される第1領域と、当該第1領域よりもエラービットが発生しやすい特性を有する第2領域とを含み、ダミーデータDDは、上記第2領域内に記憶される。上記第2領域は、例えば、メモリセルアレイ22における物理的な端部(チップの周縁部あるいは境界部等に接するページ、又は、多層構造の最上層あるいは最下層のページ等)である。
【0081】
第1の例によれば、ユーザデータUDが記憶される第1領域でエラービットが多発する状況に至る前に、読み出し電圧の補正処理を実行することが可能となる。
【0082】
第2の例として、メモリセルアレイ22は、データ消去単位である複数のブロックBを有し、ダミーデータDDは、複数のブロックBの各々に記憶される。
【0083】
リードディスターブの発生状況はブロックB毎に異なるため、第2の例によれば、ブロックB毎に最適な補正処理を実行することが可能となる。
【0084】
第3の例として、複数のブロックBは、ユーザデータUDが記憶されるユーザブロック(第1ブロック)と、メモリ装置1の通常用途では使用されないフリーブロック(第2ブロック)とを含み、ダミーデータDDは、上記ユーザブロック及び上記フリーブロックの双方に記憶される。
【0085】
第3の例によれば、フリーブロックは、通常用途では使用されず、データの読み出しが発生しないため、リードディスターブの影響はほとんど無いと考えられる。従って、フリーブロックにダミーデータDDを記憶し、当該ダミーデータDDを読み出すことによって、データリテンションに起因するしきい値電圧分布の変動状況のみを特定することが可能となる。また、ユーザブロックに記憶されたダミーデータDDを読み出し、上記で特定したデータリテンションに起因する影響を相殺することによって、リードディスターブに起因するしきい値電圧分布の変動状況を特定することが可能となる。その結果、リードディスターブ及びデータリテンションの複合的な要因によってしきい値電圧分布の変動が生じている場合であっても、読み出し電圧を最適に補正することが可能となる。
【0086】
ここに開示される要素の機能は、当該開示される要素を実行するように構成された、あるいは当該開示される機能を実行するようにプログラミングされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(「特定用途向け集積回路」)、従来の回路構成及び/又はそれらの組み合わせを含む回路構成あるいは処理回路構成が用いられて実装されてもよい。プロセッサは、それが、その中にトランジスタ及び他の回路構成を含むとき、処理回路構成あるいは回路構成として見なされる。本開示において、回路構成、ユニットあるいは手段は、挙げられた機能を実行するハードウェア、あるいは当該機能を実行するようにプログラミングされたハードウェアである。ハードウェアは、挙げられた機能を実行するようにプログラミングされた、あるいは当該機能を実行するように構成された、ここで開示されるいかなるハードウェアあるいは既知の他のものであってもよい。ハードウェアが、あるタイプの回路構成として見なされるかもしれないプロセッサであるとき、回路構成、手段あるいはユニットは、ハードウェアとソフトウェアの組み合わせ、ハードウェアを構成するために用いられるソフトウェア及び/またはプロセッサである。
【符号の説明】
【0087】
1 メモリ装置
2 メモリコントローラ
3 メモリ
11 ECC処理部
12 算出部
13 比較部
14 補正部
15 設定部
22 メモリセルアレイ