(57)【要約】【課題】良好なエラー抑制を実現することができるメモリコントローラおよびデータ読み出し方法を提供する。【解決手段】実施形態のメモリコントローラは、書き込みデータをメモリセル群の個々のメモリセルの閾値電圧として書き込む書き込み部と、メモリセル群の個々のメモリセルの閾値電圧を検知して書き込みデータを読み出す読み出し部とを備える。読み出し部は、読み出し対象メモリセルを選択する選択部と、読み出し対象メモリセルの読み出し時の閾値電圧である第１閾値電圧と、読み出し対象メモリセルに隣接する少なくとも１つの隣接メモリセルの読み出し時の閾値電圧である第２閾値電圧とを検知する検知部と、第１閾値電圧と第２閾値電圧とに基づいて、読み出し対象メモリセルの書き込み時の閾値電圧である第３閾値電圧を推定する推定部と、を備える。【選択図】図２
2018156711.tif 000002
【特許請求の範囲】
【請求項１】
書き込みデータをメモリセル群の個々のメモリセルの閾値電圧として書き込む書き込み部と、前記メモリセル群の個々のメモリセルの閾値電圧を検知して前記書き込みデータを読み出す読み出し部とを備えるメモリコントローラであって、
前記読み出し部は、
読み出し対象メモリセルを選択する選択部と、
前記読み出し対象メモリセルの読み出し時の閾値電圧である第１閾値電圧と、前記読み出し対象メモリセルに隣接する少なくとも１つの隣接メモリセルの読み出し時の閾値電圧である第２閾値電圧とを検知する検知部と、
前記第１閾値電圧と、前記第２閾値電圧とに基づいて、前記読み出し対象メモリセルの書き込み時の閾値電圧である第３閾値電圧を推定する推定部と、
を備えるメモリコントローラ。
【請求項２】
前記隣接メモリセルは、少なくとも前記読み出し対象メモリセルとビットラインを共有し物理的に隣接するメモリセルを含む
請求項１に記載のメモリコントローラ。
【請求項３】
前記推定部は、前記隣接メモリセルとの関係による前記第３閾値電圧の変動量を表す閾値電圧変動モデルと、前記第１閾値電圧と、前記第２閾値電圧とに基づいて、前記第３閾値電圧を推定する
請求項１または２に記載のメモリコントローラ。
【請求項４】
前記閾値電圧変動モデルは、前記第３閾値電圧の大きさに応じた前記第３閾値電圧の変動量を求める項と、前記隣接メモリセルの書き込み時の閾値電圧の大きさに応じた前記第３閾値電圧の変動量を求める項と、前記隣接メモリセルの書き込み時の閾値電圧と前記第３閾値電圧との差分に応じた前記第３閾値電圧の変動量を求める項とを含む
請求項３に記載のメモリコントローラ。
【請求項５】
前記閾値電圧変動モデルは、時間の経過とともに前記第３閾値電圧が変動する特性と、前記隣接メモリセルの書き込み時の閾値電圧と前記第３閾値電圧との差分が大きいほど前記第３閾値電圧の変動量が大きくなる特性と有する
請求項３または４に記載のメモリコントローラ。
【請求項６】
前記推定部は、メモリセルの温度を表す温度情報と、書き込み時からの経過時間を表す時間情報とを取得し、前記温度情報と、前記時間情報と、前記閾値電圧変動モデルと、前記第１閾値電圧と、前記第２閾値電圧とに基づいて、前記第３閾値電圧を推定する
請求項３乃至５のいずれか一項に記載のメモリコントローラ。
【請求項７】
前記書き込み部は、前記書き込みデータが書き込まれるメモリセル群以外の他のメモリセル群に所定の参照データをさらに書き込み、
前記検知部は、前記参照データが書き込まれたメモリセル群の個々のメモリセルの読み出し時の閾値電圧の集合である読み出し参照閾値電圧群をさらに検知し、
前記推定部は、
前記読み出し参照閾値電圧群と、前記参照データに対応する既知の書き込み時の閾値電圧の集合である書き込み時参照閾値電圧群との関係に基づいて、前記閾値電圧変動モデルのモデルパラメータを決定し、前記第１閾値電圧と前記第２閾値電圧と前記モデルパラメータが決定された閾値電圧変動モデルとに基づいて、前記第３閾値電圧を推定する
請求項３乃至５のいずれか一項に記載のメモリコントローラ。
【請求項８】
前記参照データは乱数に基づくデータパターンである
請求項７に記載のメモリコントローラ。
【請求項９】
書き込みデータがメモリセル群の個々のメモリセルの閾値電圧として書き込まれるメモリから、前記メモリセル群の個々のメモリセルの閾値電圧を検知して前記書き込みデータを読み出すデータ読み出し方法であって、
読み出し対象メモリセルを選択するステップと、
前記読み出し対象メモリセルの読み出し時の閾値電圧である第１閾値電圧と、前記読み出し対象メモリセルに隣接する少なくとも１つの隣接メモリセルの読み出し時の閾値電圧である第２閾値電圧とを検知するステップと、
前記第１閾値電圧と前記第２閾値電圧とに基づいて、前記読み出し対象メモリセルの書き込み時の閾値電圧である第３閾値電圧を推定するステップと、
を含むデータ読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリコントローラおよびデータ読み出し方法に関する。
【背景技術】
【０００２】
ＳＳＤ（Solid  State  Drive）やメモリカードに使われるＮＡＮＤフラッシュメモリの記憶密度の向上に伴い、その信頼性が問題になっている。例えば、微細化によってメモリセル間の距離が小さくなれば、メモリセルに閾値電圧を書き込む際に隣接するメモリセル間の干渉（ＣＣＩ：Cell-to-Cell  Interference）によってメモリセルの閾値電圧が影響を受ける。また、３次元型のフラッシュメモリでは、従来の２次元型のフラッシュメモリに比べ、時間の経過とともに閾値電圧がずれていく傾向が強く、データの保持性能（Data  Retention）の改善が必要であるとの指摘もある。
【０００３】
フラッシュメモリの信頼性を高める手法として、様々な要因により閾値電圧が変化したメモリセルに対し、硬判定エラー訂正を用いてクロスカップリング係数を求め、それに基づいて閾値電圧を再構成する手法がある。しかし、このような手法ではエラーを十分に抑制できないケースが増えてきている。例えば、３次元型のＮＡＮＤフラッシュメモリの多くは、チャージトラップ構造と呼ばれる構造が採用されているが、この構造の場合、データの保持性能が隣接メモリセルの閾値電圧の影響を受ける。このため、読み出したページデータのエラーレートはビットごとにばらつきが生じ、画一的な係数を用いただけではエラーの発生を十分に抑制できない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第８０５００８６号明細書
【非特許文献】
【０００５】
【非特許文献１】E-S  Choi  and  S-K  Park,  “Device  Considerations  for  High  Density  and  Highly  Reliable  3D  NAND  Flash  Cell  in  Near  Future”,  IEDM2012  pp.9.4.1-9.4.4
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、良好なエラー抑制を実現することができるメモリコントローラおよびデータ読み出し方法を提供することである。
【課題を解決するための手段】
【０００７】
実施形態のメモリコントローラは、書き込みデータをメモリセル群の個々のメモリセルの閾値電圧として書き込む書き込み部と、前記メモリセル群の個々のメモリセルの閾値電圧を検知して前記書き込みデータを読み出す読み出し部とを備えるメモリコントローラであって、前記読み出し部は、選択部と、検知部と、推定部と、を備える。選択部は、読み出し対象メモリセルを選択する。検知部は、前記読み出し対象メモリセルの読み出し時の閾値電圧である第１閾値電圧と、前記読み出し対象メモリセルに隣接する少なくとも１つの隣接メモリセルの読み出し時の閾値電圧である第２閾値電圧とを検知する。推定部は、前記第１閾値電圧と前記第２閾値電圧とに基づいて、前記読み出し対象メモリセルの書き込み時の閾値電圧である第３閾値電圧を推定する。
【図面の簡単な説明】
【０００８】
【図１】データストレージ装置の構成例を示すブロック図。
【図２】読み出し部の構成例を示すブロック図。
【図３】ＮＡＮＤフラッシュメモリのメモリアレイの構造を説明する図。
【図４】ＮＡＮＤフラッシュメモリのメモリセルの構造例を示す断面図。
【図５】推定部の構成例を示すブロック図。
【図６】推定部による処理手順の一例を示すフローチャート。
【図７】推定部の構成例を示すブロック図。
【図８】メモリアレイのデータ格納構造を説明する図。
【図９】推定部による処理手順の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、実施形態のメモリコントローラおよびデータ読み出し方法について詳細に説明する。なお、以下の説明において、同様の機能を持つ構成要素については同一の符号を付して、重複した説明を適宜省略する。
【００１０】
＜第１実施形態＞
図１は、本実施形態に係るメモリコントローラを備えるデータストレージ装置１の構成例を示すブロック図である。図１に示すデータストレージ装置１は、ＮＡＮＤフラッシュメモリ２とコントローラ３とを備え、ホストＣＰＵ４からの命令に従って動作する。
【００１１】
ホストＣＰＵ４からデータストレージ装置１への書き込み命令や読み出し命令は、すべてコントローラ３に送られる。コントローラ３は、ホストＣＰＵ４からの命令に従ってＮＡＮＤフラッシュメモリ２を制御し、ＮＡＮＤフラッシュメモリ２にデータを書き込んだり、ＮＡＮＤフラッシュメモリ２からデータを読み出したりする。なお、図１ではＮＡＮＤフラッシュメモリ２とコントローラ３とが１対１に対応している例を示しているが、コントローラ３が複数のＮＡＮＤフラッシュメモリ２を制御する構成であってもよい。
【００１２】
コントローラ３は、ＮＡＮＤコントローラ５とホストコントローラ６とを備える。コントローラ３もしくはコントローラ３内のＮＡＮＤコントローラ５が、本実施形態に係るメモリコントローラに相当する。
【００１３】
ホストコントローラ６は、ホストＣＰＵ４から発行される命令に従ってデータの送受信を行う。具体的には、ホストコントローラ６では、ホストＣＰＵ４が指し示すアドレス情報（一般にＬＢＡ：Logical  Block  Addressと呼ばれる）をＮＡＮＤフラッシュメモリ２のアドレス空間に変換するような処理が行われる。
【００１４】
一方、ＮＡＮＤコントローラ５は、ホストコントローラ６から送られる信号に基づいて、ＮＡＮＤフラッシュメモリ２を制御する。具体的には、ＮＡＮＤコントローラ５は、ＮＡＮＤフラッシュメモリ２に対し、コマンドおよびアドレスを送出して、データの書き込みや読み出しを行う。
【００１５】
ＮＡＮＤコントローラ５は、書き込み部１０と、読み出し部２０と、ＥＣＣ（Error  Correction  Code）処理部３０とを備える。
【００１６】
書き込み部１０は、ＮＡＮＤフラッシュメモリ２に対してコマンドやアドレス情報を送出したり、書き込むべきデータを送出したりすることにより、ＮＡＮＤフラッシュメモリ２に対してデータを書き込む。ホストＣＰＵ４から書き込みデータとして送られてきたデータは、ＥＣＣ処理部３０にてエラー訂正符号が付加され、ＮＡＮＤフラッシュメモリ２へ書き込むべきデータに変換される。なお、エラー訂正符号を付加した後にデータを乱数化するような処理が付加されてもよい。
【００１７】
ＮＡＮＤフラッシュメモリ２に対するデータの書き込みは、アドレス情報により指定されたメモリセル群の個々のメモリセルの閾値電圧を、そのデータ（以下、「書き込みデータ」と呼ぶ）に対応した電圧レベルに設定することにより行われる。すなわち、書き込みデータは、メモリセル群の個々のメモリセルの閾値電圧として書き込まれる。
【００１８】
読み出し部２０は、ＮＡＮＤフラッシュメモリ２に対してコマンドやアドレス情報を送出することにより、ＮＡＮＤフラッシュメモリ２からデータを読み出す。ＮＡＮＤフラッシュメモリ２から読み出したデータは、ＥＣＣ処理部３０にてエラー訂正が行われる。
【００１９】
ＮＡＮＤフラッシュメモリ２からのデータの読み出しは、アドレス情報により指定された書き込みデータが書き込まれたメモリセル群の個々のメモリセルの閾値電圧を検知することにより行われる。ＮＡＮＤフラッシュメモリ２のメモリセルの閾値電圧は様々な要因により変動するが、本実施形態では、書き込みデータが書き込まれたメモリセル群の個々のメモリセルについて、読み出し時に検知された閾値電圧から書き込み時の閾値電圧を推定することにより、書き込みデータを再現してエラーを良好に抑制できるようにしている。
【００２０】
図２は、本実施形態における読み出し部２０の構成例を示すブロック図である。読み出し部２０は、例えば図２に示すように、選択部２１と、検知部２２と、推定部２３とを備える。
【００２１】
選択部２１は、書き込みデータが書き込まれたＮＡＮＤフラッシュメモリ２のメモリセル群のうち、読み出しの対象とするメモリセル（以下、「読み出し対象メモリセル」と呼ぶ）を順番に選択する。
【００２２】
検知部２２は、選択部２１により選択された読み出し対象メモリセルの読み出し時（現在）の閾値電圧である第１閾値電圧と、読み出し対象メモリセルに隣接する少なくとも１つの隣接メモリセルの読み出し時（現在）の閾値電圧である第２閾値電圧とを検知する。
【００２３】
推定部２３は、検知部２２により検知された第１閾値電圧と第２閾値電圧とに基づいて、読み出し対象メモリセルの書き込み時の閾値電圧である第３閾値電圧を推定する。
【００２４】
本実施形態における読み出し部２０では、例えばＮＡＮＤフラッシュメモリ２から読み出したデータにエラーが含まれる場合、書き込みデータが書き込まれたＮＡＮＤフラッシュメモリ２のメモリセル群のメモリセルに対し、上述の選択部２１と検知部２２と推定部２３による処理を行うことで、書き込みデータを再現することができる。なお、ここでは、ＮＡＮＤフラッシュメモリ２から読み出したデータにエラーが含まれる場合を想定し、読み出し部２０の選択部２１と検知部２２と推定部２３による処理により読み出し対象メモリセルの書き込み時の閾値電圧である第３閾値電圧を推定することを説明したが、本処理を開始する前に所定の読み出しコマンドを用いて読み出した結果をＥＣＣ処理部３０に送出し、エラーが存在しないことが確認できた場合には、以降の処理を省略して高速な読み出しを実現することもできる。
【００２５】
ＮＡＮＤフラッシュメモリ２は、コントロール部７と、データバッファ８と、メモリアレイ９とを備える。コントロール部７は、コントローラ３から発行されるコマンドやアドレス情報を解釈し、データバッファ８やメモリアレイ９を制御する。書き込みデータはデータバッファ８で一時的に蓄えられた後に、メモリアレイ９に書き込まれる。読み出しの場合には、メモリアレイ９から読み出されたデータがデータバッファ８で一時的に保存され、コントローラ３に順次送られる。
【００２６】
図３は、ＮＡＮＤフラッシュメモリ２のメモリアレイ９の構造を説明する図である。メモリアレイ９は、図３に示すように、複数のトランジスタ（各トランジスタが「メモリセル」と呼ばれる）を直列に並べたＮＡＮＤストリングと呼ばれる回路が複数集まって構成される。１つのＮＡＮＤストリングのことをビットライン（ＢＬ）と呼ぶ。複数のビットラインの同一位置にあるトランジスタのゲート電極は、ワードライン（ＷＬ）と呼ばれる線で互いに接続されている。図３ではＢＬ１〜ＢＬ４の４つのビットラインと、ＷＬ１〜ＷＬ６の６つのワードラインのみを図示しているが、実際にはビットラインおよびワードラインはより多く存在し、多数のメモリセルがアレイ状に配置された構成となっている。ＮＡＮＤフラッシュメモリ２では、１つの閾値電圧が可変のメモリセル（トランジスタ）に対し１ビット〜４ビット程度の情報が記録される。
【００２７】
データは、メモリセル（トランジスタ）の閾値電圧によって書き込まれ、読み出す際には読み出し対象となるデータが書き込まれたメモリセル群に対応するワードラインに適切な電圧（この電圧は「読み出し電圧」と呼ばれる）を印加し、残りのワードラインの電圧をハイレベルに設定することで、読み出し対象となるデータが書き込まれたメモリセル群の個々のメモリセル（トランジスタ）の閾値電圧が、印加された電圧よりも高いか低いかを調べる。これを複数回繰り返すことで、当該ワードライン上のすべてのメモリセルの閾値電圧を検知して、当該ワードラインに書き込まれたデータを読み出す。
【００２８】
上述のように、１つのメモリセルには複数のビットの情報が記録されている場合があるが、一般的には記録された複数のビットのうち１ビットだけを読み出す。ワードラインに電圧を印加してメモリセルの閾値電圧を調べる回数を極力減らすため、各メモリセルに閾値電圧として書き込まれるデータは、グレイコードと呼ばれる符号化がなされる。
【００２９】
図４は、ＮＡＮＤフラッシュメモリ２のメモリセルの構造例を示す断面図である。近年の３次元型のＮＡＮＤフラッシュメモリでは、図４に示すようなチャージトラップ型のメモリセルが用いられる。チャージトラップ型のメモリセルは、基板５１と、トンネル層５２と、チャージトラップ層５３と、絶縁層５４と、制御ゲート５５とがこの順に積層された構造となっている。この構造では、チャージトラップ層５３に形成される欠陥に電荷がトラップされることによって、メモリセルの閾値電圧が変化する。書き込みのため電荷をトラップさせたり、消去のためトラップされた電荷をデトラップさせたりするためには、制御ゲート５５と基板５１との間に高い電圧パルスを与える。この電圧パルスの本数を増減することにより、チャージトラップ層５３にトラップされる電荷の量、すなわちメモリセルの閾値電圧を制御できる。チャージトラップ型のメモリセルでは、チャージトラップ層５３が隣接するメモリセルとつながっていることが特徴である。チャージトラップ層５３は、欠陥を持った絶縁体であるため、書き込んだ電荷が即座に隣接するメモリセルに伝わることはない。
【００３０】
各メモリセルの閾値電圧は様々な要因で変動する。例えば、セル間干渉（ＣＣＩ）と呼ばれる現象は、隣接するメモリセル間の距離が近いことにより、書き込み対象のメモリセルに加えて、隣接するセルとの間に寄生容量が生じ、データ書き込み時に隣接するセルの閾値電圧にノイズが乗る現象である。また、Ｒｅａｄ  Ｄｉｓｔｕｒｂと呼ばれる現象は、読み出し時に読み出し対象のメモリセル以外のワードラインに対して高い電圧をかけることにより、基板５１からチャージトラップ層５３へ電荷がわずかに書き込まれることで閾値電圧が変動する現象である。Ｐｒｏｇｒａｍ  ＤｉｓｔｕｒｂやＰａｓｓ  Ｄｉｓｔｕｒｂと呼ばれる現象は、書き込み時に他のメモリセルでも制御ゲート５５と基板５１との間の電圧が高まり、意図しない電荷の書き込みが発生する現象である。さらに、チャージトラップ層５３にトラップされた電荷が、長時間かけて基板５１に向かう方向や隣接セルに向かう方向に抜けていく現象も発生する。つまり、メモリセルがデータを保持できる時間は限界があり、このデータの保持性能のことをＤａｔａ  Ｒｅｔｅｎｔｉｏｎと呼ぶ。
【００３１】
Ｄａｔａ  Ｒｅｔｅｎｔｉｏｎに関わる電荷抜けの現象は、下記の参考文献によると、直接トンネリング、熱電子放出、およびＰｏｏｌｅ−Ｆｒｅｎｋｅｌ放出の３つの現象が支配的であるとされている。
（参考文献）D.  Oh,  B.  Lee,  et  al.,  “TCAD  Simulation  of  Data  Retention  Characteristics  of  Charge  Trap  Device  for  3-D  NAND  Flash  Memory”,  IMW2015
【００３２】
直接トンネリングは、チャージトラップ層５３と基板５１との間の薄いトンネル層５２（トンネル膜）において主に発生する電荷抜けであり、その電流密度ＪＤＴは、下記式（１）のように表すことができる。
【数１】
2018156711.tif 000003
ここで、Ｅはトンネル層５２における電界であり、トンネル層５２と基板５１との間の電圧に比例し、トンネル層５２の膜厚に反比例する。ＡＤＴはデバイスの構造や材料に依存するパラメータである。
【００３３】
熱電子放出は、熱によって励起された電荷が価電子帯から伝導帯に移動することによって制御ゲート５５（ゲート電極）や基板５１にも漏れ出す現象であり、その電流密度ＪＴＥは、下記式（２）のように表すことができる。
【数２】
2018156711.tif 000004
ここで、Ｔは温度、ＡＴＥとＢＴＥはデバイスの構造や材料に依存するパラメータである。
【００３４】
一方、Ｐｏｏｌｅ−Ｆｒｅｎｋｅｌ放出は、主に隣接メモリセルとの間の電荷抜けに関係する現象である。隣接メモリセルとの間に電位差が存在する場合、すなわち隣接メモリセルに書き込んだ閾値電圧と自メモリセルに書き込んだ閾値電圧が異なる場合には、双方の間に電界が発生する。これによりチャージトラップ層５３の電荷の移動度が増大し、ビットライン方向に電荷が抜けていく。その電流密度ＪＰＦは、下記式（３）のように表すことができる。
【数３】
2018156711.tif 000005
ここで、ＡＰＦとＢＰＦはデバイスの構造や材料に依存するパラメータである。また、ＥＰＦは隣接メモリセルとの間にかかる電界を意味し、隣接メモリセルと自メモリセルとの間の閾値電圧差に比例し、メモリセルの間隔に反比例する。
【００３５】
以上で説明したように、Ｄａｔａ  Ｒｅｔｅｎｔｉｏｎに関わる電荷抜けは、温度や書き込んだ閾値電圧、さらに隣接メモリセルに書き込んだ閾値電圧との差分に依存する。したがって、ある時刻におけるメモリセルの閾値電圧から、Ｄａｔａ  Ｒｅｔｅｎｔｉｏｎに関わる閾値電圧の変化量を推定するためには、書き込んでから現在までの温度や経過時間が分かり、そこから制御ゲート５５と基板５１との間の積層方向の電荷抜けと隣接メモリセル方向への電荷抜けの総量を推定することが必要となる。
【００３６】
メモリセルの閾値電圧は、チャージトラップ層５３に電荷が蓄積されていない状態における閾値電圧（中性閾値電圧:  Neutral  Threshold  Voltage）に電荷注入によって変化した閾値電圧差分の和で表すことができる。以下では、便宜上、中性閾値電圧を０として説明する。
【００３７】
上述のセル間干渉（ＣＣＩ）に起因する閾値電圧の乱れを考慮すると、ビットラインｘ、ワードラインｙに位置するメモリセル（ｘ，ｙ）のある時刻ｔ（ｔは書き込み時からの経過時間を表す）における閾値電圧は、下記式（４）に示す閾値電圧変動モデルにより表現できると考えられる。
【数４】
2018156711.tif 000006
ここで、Ｖｔｈ（ｘ，ｙ；ｔ）は時刻ｔにおけるメモリセル（ｘ，ｙ）の閾値電圧、Ｖｔｈ（ｘ，ｙ＋ｉ；０）はメモリセル（ｘ，ｙ）に隣接する隣接メモリセルの書き込み時の閾値電圧、ｗｃｃｉはセル間干渉（ＣＣＩ）の影響量を表す係数、ｗｐｆ（ｔ）はＰｏｏｌｅ−Ｆｒｅｎｋｅｌ放出の累積的な影響量を表す係数、ｗｄｔ，ｔｅ（ｔ）は直接トンネリングおよび熱電子放出の累積的な影響量を表す係数を意味する。なお、ここではメモリセルへの書き込みはワードライン方向に昇順に書き込まれるものとしている。
【００３８】
先に説明したように、セル間干渉（ＣＣＩ）は後から書き込みが行われた隣接メモリセルからの影響を受けるため、上記式（４）ではワードライン（ｙ＋１）に位置する同一ビットラインのメモリセルの閾値電圧からの影響だけを考慮している。
【００３９】
図５は、本実施形態における推定部２３の構成例を示すブロック図である。推定部２３は、例えば図５に示すように、ＰＦ推定部１０１と、ＴＥ／ＤＴ推定部１０２と、ＣＣＩ推定部１０３と、累積部１０４と、係数テーブル１０５と、補正部１０６とを備える。なお、以下では、メモリセル（ｘ，ｙ）が上述の選択部２１により読み出し対象メモリセルとして選択され、検知部２２により、読み出し対象メモリセル（ｘ，ｙ）の読み出し時の閾値電圧（第１閾値電圧）と、読み出し対象メモリセル（ｘ，ｙ）の閾値電圧に影響を及ぼす隣接メモリセル（ｘ，ｙ−１），（ｘ，ｙ＋１）の読み出し時の閾値電圧（第２閾値電圧）とが検知されたものとして説明する。
【００４０】
推定部２３には、検知部２２により検知された読み出し対象メモリセル（ｘ，ｙ）の閾値電圧Ｖｔｈ（ｘ，ｙ）だけでなく、検知部２２により検知された隣接メモリセル（ｘ，ｙ−１），（ｘ，ｙ＋１）の閾値電圧Ｖｔｈ（ｘ，ｙ−１），Ｖｔｈ（ｘ，ｙ＋１）も同時に入力される。さらに推定部２３には、メモリセルの温度を表す温度情報と、書き込み時からの経過時間を表す時間情報とが入力される。推定部２３は、これら入力された各閾値電圧と、温度情報および時間情報とを用いて、読み出し対象メモリセル（ｘ，ｙ）の書き込み時の閾値電圧である第３閾値電圧Ｖｔｈ（ｘ，ｙ；０）を推定する。
【００４１】
係数テーブル１０５には、予め、各推定部１０１，１０２，１０３でＰｏｏｌｅ−Ｆｒｅｎｋｅｌ放出、直接トンネリング、熱電子放出、およびセル間干渉（ＣＣＩ）の影響量を推定するために必要な係数情報が記録されている。本テーブルは、例えば予めＮＡＮＤフラッシュメモリ２単体に対して様々な温度環境下で様々なデータを書き込んでその継時的な変化や干渉量を調べることにより容易に求めることができる。
【００４２】
累積部１０４は、入力される温度情報および時間情報をもとに、各推定部１０１，１０２，１０３での影響量の推定に用いる情報を蓄積していく。例えば、熱電子放出は、上記式（２）に示したように、温度に対して敏感にその電流量が変化する。したがって、例えば、メモリセルに閾値電圧を書き込んでからの経過時間を所定温度（例えば０℃）で正規化した後に累積部１０４に蓄積していく。なお、累積部１０４に蓄積する情報はこれに限らず、各推定部１０１，１０２，１０３での影響量を推定する上で有効な様々な情報を用いることができる。
【００４３】
ＰＦ推定部１０１は、読み出し対象メモリセル（ｘ，ｙ）の閾値電圧がＰｏｏｌｅ−Ｆｒｅｎｋｅｌ放出によってどの程度変動したかを推定し、推定した変動量をＰＦ補正値として出力する。Ｐｏｏｌｅ−Ｆｒｅｎｋｅｌ放出による電流密度は、上記式（３）に示したように、隣接メモリセルと自メモリセルとの閾値電圧差分に対し敏感に変化する。一方、この閾値電圧差分は温度一定の環境下ではある時定数τをもって時間とともに減衰していく。そこで、累積部１０４および係数テーブル１０５の情報を参照し、現在（読み出し時）の読み出し対象メモリセルと隣接メモリセルとの閾値電圧差分から、両者の書き込み時の閾値電圧差分を推定することが可能である。同様に、上記式（４）に示したように、書き込み時の閾値電圧差分とその影響量を表す係数ｗｐｆ（ｔ）を累積部１０４と係数テーブル１０５から求めることにより、Ｐｏｏｌｅ−Ｆｒｅｎｋｅｌ放出によって読み出し対象メモリセル（ｘ，ｙ）の閾値電圧がどの程度変動したのかを推定し、ＰＦ補正値として出力する。
【００４４】
ＴＥ／ＤＴ推定部１０２は、熱電子放出および直接トンネリングによって変動した読み出し対象メモリセル（ｘ，ｙ）の閾値電圧を、読み出し対象メモリセル（ｘ，ｙ）の現在（読み出し時）の閾値電圧と、累積部１０４および係数テーブル１０５の情報とから推定して、推定した変動量をＴＥ／ＤＴ補正値として出力する。閾値電圧変動量の推定方法については、ＰＦ推定部１０１による閾値電圧変動量の推定方法と同様であるので、ここでは説明を省略する。
【００４５】
ＣＣＩ推定部１０３は、セル間干渉（ＣＣＩ）による閾値電圧変動量を推定し、推定した変動量をＣＣＩ補正値として出力する。セル間干渉（ＣＣＩ）は隣接メモリセルの書き込み閾値電圧が大きいほど大きな影響を及ぼす。上記式（４）に示したように、本実施形態では隣接メモリセルの書き込み閾値電圧と閾値電圧変動量との間には比例関係が成り立つものと仮定しているので、隣接メモリセルの閾値電圧変動を無視すれば、セル間干渉（ＣＣＩ）による閾値電圧変動量は、隣接メモリセル（ｘ，ｙ＋１）の閾値電圧に対して係数テーブル１０５に保持された係数ｗｃｃｉを乗ずることにより近似的に求められる。
【００４６】
補正部１０６は、上記の各推定部１０１，１０２，１０３で求めた補正値（ＰＦ補正値、ＴＥ／ＤＴ補正値、ＣＣＩ補正値）を、読み出し対象メモリセル（ｘ，ｙ）の読み出し時（現在）の閾値電圧Ｖｔｈ（ｘ，ｙ）に加算することで、読み出し対象メモリセル（ｘ，ｙ）の書き込み時の閾値電圧Ｖｔｈ（ｘ，ｙ；０）の推定値を求める。
【００４７】
図６は、推定部２３による処理手順の一例を示すフローチャートである。処理が開始されると、推定部２３は、推定部２３に入力される温度情報および時間情報を読み出して（ステップＳ１０１）、読み出した温度情報から、上記の各推定部１０１，１０２，１０３ごとに独立に進めるべき時間情報を計算し、温度で正規化した累積時間を更新する（ステップＳ１０２）。
【００４８】
次に、推定部２３は、読み出し処理の実行中か否かを判断し（ステップＳ１０３）、読み出し処理の実行中ではない場合は（ステップＳ１０３：Ｎｏ）、ステップＳ１０１に戻って累積時間の更新を続ける。一方、読み出し処理の実行中であれば（ステップＳ１０３：Ｙｅｓ）、検知部２２により検知された読み出し対象メモリセルおよび隣接メモリセルの現在の閾値電圧を取得する（ステップＳ１０４）。そして、ＰＦ推定部１０１、ＴＥ／ＤＴ推定部１０２、およびＣＣＩ推定部１０３により、上述のようにＰＦ補正値、ＴＥ／ＤＴ補正値、およびＣＣＩ補正値をそれぞれ求める（ステップＳ１０５，Ｓ１０６，Ｓ１０７）。
【００４９】
次に、補正部１０６により、ステップＳ１０４で取得された読み出し対象メモリセルの現在の閾値電圧に対し、ステップＳ１０５で求められたＰＦ補正値と、ステップＳ１０６で求められたＴＥ／ＤＴ補正値と、ステップＳ１０７で求められたＣＣＩ補正値とを加算して、読み出し対象メモリセルの書き込み時の閾値電圧を推定する（ステップＳ１０８）。
【００５０】
本実施形態におけるＮＡＮＤコントローラ５では、読み出し部２０による読み出し処理の実行中に、書き込みデータが書き込まれたＮＡＮＤフラッシュメモリ２のメモリセル群のすべてのメモリセルに対して順番に、選択部２１による読み出し対象メモリセルの選択、検知部２２による読み出し対象メモリセルおよび隣接メモリセルの読み出し時（現在）の閾値電圧の検知、および推定部２３による読み出し対象メモリセルの書き込み時の閾値電圧の推定が繰り返し行われる。これにより、エラーの少ない書き込みデータが再現される。
【００５１】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係るデータストレージ装置１では、コントローラ３のＮＡＮＤコントローラ５において、データの読み出し時に上記式（４）に示した閾値電圧変動モデルに従って、読み出し対象メモリセルと隣接メモリセルとの閾値電圧の関係性を考慮して読み出し対象メモリセルの読み出し時の閾値電圧を補正することにより、読み出し対象メモリセルの書き込み時の閾値電圧を推定する。したがって、上述の様々な要因による閾値電圧の変動をキャンセルして読み出し対象メモリセルの書き込み時の閾値電圧を精度よく推定することができ、読み出し時のデータのエラーレートを低減することができる。
【００５２】
なお、上述の例では、補正の対象をＰｏｏｌｅ−Ｆｒｅｎｋｅｌ放出、熱電子放出、直接トンネリング、およびセル間干渉（ＣＣＩ）の４種類に限定したが、本実施形態では、その他の要因による閾値電圧の変動に対応した補正にも応用することが可能である。例えば、上述のＲｅａｄ  Ｄｉｓｔｕｒｂに対しては、メモリセルが所属するブロックの読み出し回数をカウントし、そのカウント量に応じて閾値電圧の変動量を推定することが可能である。また、Ｐｒｏｇｒａｍ  ＤｉｓｔｕｒｂやＰａｓｓ  Ｄｉｓｔｕｒｂについては、ＣＣＩ推定部１０３の処理として示した処理を、双方のＤｉｓｔｕｒｂに寄与するメモリセルの分まで拡張することにより、容易に閾値電圧変動量の計算が可能である。
【００５３】
また、本実施形態ではセル間干渉（ＣＣＩ）による影響を、１つの隣接メモリセルに限定して説明したが、複数の隣接メモリセルの距離や書き込み順序に応じて独立した係数を設定することで、複数の隣接メモリセルからの影響を考慮した推定を行うこともできる。
【００５４】
＜第２実施形態＞
次に、第２実施形態について説明する。本実施形態は、読み出し対象メモリセルの書き込み時の閾値電圧（第３閾値電圧）を推定する方法が、上述の第１実施形態と異なるものである。すなわち、本実施形態では、ＮＡＮＤコントローラ５の読み出し部２０が、図５に示した推定部２３に代えて、図７に示す推定部２４を備える。また、本実施形態では、ＮＡＮＤコントローラ５の書き込み部１０が、書き込みデータ（ユーザデータ）に加えて、後述のモデルパラメータを決定するために用いる参照データをＮＡＮＤフラッシュメモリ２に書き込む機能を持つ。その他の構成は上述の第１実施形態と同様である。以下では、第１実施形態と重複する説明は適宜省略して、第１実施形態との差分についてのみ説明する。
【００５５】
図７は、本実施形態における推定部２４の構成例を示すブロック図である。推定部２４は、例えば図７に示すように、モデルパラメータ決定部１１０と、補正部１１１とを備える。本実施形態における推定部２４には、温度情報や時間情報が入力されない代わりに、読み出し時参照閾値電圧群Ｖｔｈ（１）・・・Ｖｔｈ（ｎ）が入力される。読み出し時参照閾値電圧群Ｖｔｈ（１）・・・Ｖｔｈ（ｎ）は、ＮＡＮＤコントローラ５の書き込み部１０が書き込みデータの書き込み時に併せて書き込んだ参照データに対応する閾値電圧群であって、上述の様々な要因によって書き込み時から変動していることが予測される閾値電圧群である。読み出し時参照閾値電圧群Ｖｔｈ（１）・・・Ｖｔｈ（ｎ）は、書き込みデータの読み出し時に検知部２２によって読み出され、推定部２４に入力される。
【００５６】
参照データは、書き込み部１０がメモリアレイ９のメモリセル群に書き込みデータを書き込む際に、この書き込みデータが書き込まれるメモリセル群以外の他のメモリセル群に書き込まれる所定のデータパターンである。すなわち、参照データが書き込まれるメモリセル群に対する書き込み時の閾値電圧の集合（以下、「書き込み時参照閾値電圧群」と呼ぶ）は既知であり、書き込みデータの読み出し時に、書き込みデータと同時に書き込んだ参照データのデータパターンから、書き込み時参照閾値電圧群を知ることができる。
【００５７】
図８は、ＮＡＮＤフラッシュメモリ２のメモリアレイ９のデータ格納構造を説明する図である。ＮＡＮＤフラッシュメモリ２のメモリアレイ９は、一般に複数のブロック１５０が含まれており、さらにブロック１５０の中には複数のページ１６０が含まれている。ＮＡＮＤフラッシュメモリ２への書き込みはページ１６０単位で行われており、一般的には１つのページ１６０に、管理データ１６１と、ユーザーデータ（書き込みデータ）１６２と、ＥＣＣデータ（エラー訂正符号）１６３とが含まれる。本実施形態では、このページ１６０に書き込まれるデータとして、さらに参照データ１６４が付加される。
【００５８】
参照データ１６４としては、例えばランダムに生成される乱数データを用いてもよいし、予め定めたデータパターンを用いてもよい。参照データ１６４として予め定めたデータパターンを用いる場合には、参照データ１６４が書き込まれるメモリセル群において隣接するメモリセルの間の閾値電圧の差分や閾値電圧そのものに様々なパターンを内包するものであることが望ましい。また、参照データ１６４として乱数データを用いる場合には、書き込んだ乱数データを別途記憶しておくか、書き込みデータの読出し時に乱数データを再生成できるようにしておく。
【００５９】
本実施形態における推定部２４では、モデルパラメータ決定部１１０が、検知部２２により検知された読み出し時参照閾値電圧群Ｖｔｈ（１）・・・Ｖｔｈ（ｎ）と、参照データに対応する既知の書き込み時参照閾値電圧群との関係に基づいて、閾値電圧変動モデルのモデルパラメータを決定する。そして、補正部１１１が、モデルパラメータが決定された閾値電圧変動モデルを用いて、検知部２２により検知された読み出し対象メモリセルおよび隣接メモリセルの現在（読み出し時）の閾値電圧から、読み出し対象メモリセルの書き込み時の閾値電圧を推定する。
【００６０】
以下、図９のフローチャートにしたがって本実施形態における推定部２４の動作について説明する。図９は、推定部２４による処理手順の一例を示すフローチャートである。処理が開始されると、推定部２４は、まず、検知部２２により検知された読み出し時参照閾値電圧群Ｖｔｈ（１）・・・Ｖｔｈ（ｎ）を取得する（ステップＳ２０１）。そして、モデルパラメータ決定部１１０が、ステップＳ２０１で取得された読み出し時参照閾値電圧群Ｖｔｈ（１）・・・Ｖｔｈ（ｎ）と、参照データに対応する既知の書き込み時参照閾値電圧群との関係から、閾値電圧変動モデルのモデルパラメータを決定する（ステップＳ２０２）。
【００６１】
上記式（４）に示した閾値電圧変動モデルを、隣接メモリセルの閾値電圧そのものに影響される項と、隣接メモリセルと読み出し対象メモリセルとの閾値電圧の差分に影響される項と、読み出し対象メモリセルの閾値電圧のみにより影響される項とに分類することで、閾値電圧変動モデルを下記式（５）のように表現することができる。
【数５】
2018156711.tif 000007
ここで、ＣＣ（ｘ，ｙ）は読み出し対象メモリセル（ｘ，ｙ）に隣接する隣接メモリセルであって、その閾値電圧そのものが読み出し対象メモリセル（ｘ，ｙ）の閾値電圧に影響を与えるメモリセルの集合を表す。典型的には、ＣＣ（ｘ，ｙ）は、読み出し対象メモリセル（ｘ，ｙ）に対して隣接ワードライン上でかつ同一ビットライン上に位置する２つのメモリセルのうち、読み出し対象メモリセル（ｘ，ｙ）の書き込みの後に書き込みが行われる１個のメモリセルであり、セル間干渉（ＣＣＩ）によって読み出し対象メモリセル（ｘ，ｙ）の閾値電圧に影響を及ぼす。また、ＤＩＦＦ（ｘ，ｙ）は、読み出し対象メモリセル（ｘ，ｙ）に隣接する隣接メモリセルであって、その閾値電圧と読み出し対象メモリセル（ｘ，ｙ）の閾値電圧との差分が読み出し対象メモリセル（ｘ，ｙ）の閾値電圧に影響を与えるメモリセルの集合を表す。典型的には、ＤＩＦＦ（ｘ，ｙ）は、読み出し対象メモリセル（ｘ，ｙ）に対して隣接ワードライン上でかつ同一ビットライン上に位置する２つのメモリセルがこれに相当し、前述のＰｏｏｌｅ−Ｆｒｅｎｋｅｌ放出によって読み出し対象メモリセル（ｘ，ｙ）の閾値電圧に影響を及ぼす。ｗｃｃ（ｉ，ｊ；ｔ），ｗｄｆ（ｉ，ｊ；ｔ），ｗｓ（ｔ）はそれぞれの重み係数であり、典型的にはそれぞれ上記式（４）のｗｃｃｉ，ｗｐｆ（ｔ），ｗｄｔ，ｔｅ（ｔ）に相当する。上記ステップＳ２０２で決定する閾値電圧変動モデルのモデルパラメータとは、これらの重み係数ｗｃｃ（ｉ，ｊ；ｔ），ｗｄｆ（ｉ，ｊ；ｔ），ｗｓ（ｔ）を意味する。
【００６２】
いま、参照データに含まれるｍ番目（ｍ＝１・・・Ｍ）の値が書き込まれたメモリセルの時刻ｔにおける閾値電圧（読み出し時参照閾値電圧）をＶｔｈ（ｍ；ｔ）と表現し、ＣＣ（ｘ，ｙ）が表すＫ個のメモリセル群の時刻ｔにおける閾値電圧をＶｔｈ（ｍ，ｋ；ｔ）と表現し、ＤＩＦＦ（ｘ，ｙ）が表すＬ個のメモリセル群の時刻ｔにおける閾値電圧とＶｔｈ（ｍ；ｔ）との差分をΔＶｔｈ（ｍ，ｌ；ｔ）と表現する。このとき、上記式（５）は、下記式（６）のように置き換えることができる。
【数６】
2018156711.tif 000008
【００６３】
ここで、Ｍ個の読み出し時参照閾値電圧Ｖｔｈ（１；ｔ）・・・Ｖｔｈ（Ｍ；ｔ）それぞれのモデル式は、行列を用いて下記式（７）のように表現することができる。
【数７】
2018156711.tif 000009
【００６４】
Ｍが十分に大きい場合、各重み係数ｗｃｃ、ｗｄｆ、ｗｓは、上記式（７）の右辺と左辺の差分のＬ２ノルムを最小化する最小二乗法によって高精度に推定できる。
【００６５】
以上のように閾値電圧変動モデルのモデルパラメータ（各重み係数ｗｃｃ、ｗｄｆ、ｗｓ）を決定した後、推定部２４は、検知部２２により検知された読み出し対象メモリセルおよび隣接メモリセルの現在の閾値電圧を取得する（ステップＳ２０３）。そして、補正部１１１が、ステップＳ２０２でモデルパラメータが決定された、上記式（５）に示した閾値電圧変動モデルと、ステップＳ２０３で取得された読み出し対象メモリセルおよび隣接メモリセルの現在の閾値電圧とに基づいて、読み出し対象メモリセルの書き込み時の閾値電圧を推定する（ステップＳ２０４）。
【００６６】
具体的には、上記式（５）を変形することにより逆モデルを生成し、その逆モデルに対してステップＳ２０３で取得した閾値電圧を代入することにより、読み出し対象メモリセルの現在の閾値電圧を補正して書き込み時の閾値電圧を推定する。最も簡単な例として、下記式（８）および式（９）に示す隣接する２つのメモリセルの干渉モデルについて逆モデルを導出すると、下記式（１０）および式（１１）のようになる。
【数８】
2018156711.tif 000010
【数９】
2018156711.tif 000011
【数１０】
2018156711.tif 000012
【数１１】
2018156711.tif 000013
このように逆モデルは連立方程式を解くことによって求めることができる。
【００６７】
以上のように、本実施形態においても、読み出し対象メモリセルと隣接メモリセルとの閾値電圧の関係性を考慮して読み出し対象メモリセルの読み出し時の閾値電圧を補正することにより、読み出し対象メモリセルの書き込み時の閾値電圧を推定することができる。したがって、上述の様々な要因による閾値電圧の変動をキャンセルして読み出し対象メモリセルの書き込み時の閾値電圧を精度よく推定することができ、読み出し時のデータのエラーレートを低減することができる。
【００６８】
また、本実施形態では、温度情報や時間情報を用いずに、読み出し時参照閾値電圧群と既知の書き込み時参照閾値電圧群との関係に基づいて閾値電圧変動モデルのモデルパラメータを決定し、モデルパラメータが決定された閾値電圧変動モデルを用いて読み出し対象メモリセルの書き込み時の閾値電圧を推定するので、読み出し対象メモリセルの書き込み時の閾値電圧をより簡便に推定することができる。
【００６９】
なお、上述の例では閾値電圧変動モデルを閾値電圧に関する一次式で表現しているが、よりふさわしい閾値電圧変動モデルをｎ次多項式で表現してもよい。
【００７０】
また、上記式（８）に示した連立方程式は、変数であるメモリセルの個数が増えるほどその元が増加し計算が複雑化していくが、上記式（５）に示したモデル式を近似式に置き換えることにより、複雑さを抑制することができる。例えば、上記式（８）に示したモデルを３メモリセルに拡張すると下記式（１２）乃至式（１４）となり、逆モデルは、下記式（１５）乃至式（１９）のように複雑化する。
【数１２】
2018156711.tif 000014
【数１３】
2018156711.tif 000015
【数１４】
2018156711.tif 000016
【数１５】
2018156711.tif 000017
【数１６】
2018156711.tif 000018
【数１７】
2018156711.tif 000019
【数１８】
2018156711.tif 000020
【数１９】
2018156711.tif 000021
【００７１】
そこで、図９のフローチャートのステップＳ２０２およびステップＳ２０４で用いる閾値電圧変動モデルおよび逆モデルを、上記式（８）や式（９）で示されるような２つのメモリセル間の関係だけに限定したモデルの集合（読み出し対象メモリセルに影響を与える隣接メモリセル分だけモデルが生成される）とし、それらの重み付き加算によって表現される近似解とすることで、複雑度を大幅に軽減させることができる。
【００７２】
＜補足説明＞
上述のＮＡＮＤコントローラ５（コントローラ３）に含まれる書き込み部１０、読み出し部２０（選択部２１、検知部２２、推定部２３，２４）、およびＥＣＣ処理部３０は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。また、上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。また、上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、上記各部のうち１つを実現してもよいし、上記各部のうち２以上を実現してもよい。
【００７３】
以上述べた少なくとも１つの実施形態によれば、隣接メモリセルの閾値電圧の影響によりビットごとにエラーレートのばらつきがあるようなＮＡＮＤフラッシュメモリに対しても、良好なエラー抑制を実現することができる。
【００７４】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７５】
１  データストレージ装置
２  ＮＡＮＤフラッシュメモリ
３  コントローラ
５  ＮＡＮＤコントローラ
１０  書き込み部
２０  読み出し部
２１  選択部
２２  検知部
２３，２４  推定部
【図１】
2018156711.tif 000022
【図２】
2018156711.tif 000023
【図３】
2018156711.tif 000024
【図４】
2018156711.tif 000025
【図５】
2018156711.tif 000026
【図６】
2018156711.tif 000027
【図７】
2018156711.tif 000028
【図８】
2018156711.tif 000029
【図９】
2018156711.tif 000030