(57)【要約】【課題】  リード電圧を効率よく推定できるメモリシステムを提供する。【解決手段】  一実施形態のメモリシステムは、第１および第２ページでデータを保持する記憶装置と、メモリコントローラとを含む。メモリコントローラは、第１電圧を用いて第１ページに保持されているデータを割り出して第１データを取得し、第１データと第１データに対する誤り訂正により得られる第１期待データとの間で第１タイプで値の相違するビットの第１個数と、第２タイプで相違するビットの第２個数とに基づく第１シフト量を取得し、第２電圧と、第１シフト量に基づく第２シフト量とを用いて第２ページに保持されているデータを割り出して第２データを取得し、第２データと第２データに対する誤り訂正により得られる第２期待データとの間で第１タイプで値の相違するビットの第３個数と、第２タイプで相違するビットの第４個数とに基づく第３シフト量を取得する、ように構成されている。【選択図】      図５
2020155174.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルセットを含み、前記メモリセルセットの第１ページと第２ページの各々でデータを保持する記憶装置と、
第１電圧を用いて前記第１ページに保持されているデータを割り出して第１データを取得し、
前記第１データと前記第１データに対する誤り訂正により得られる第１期待データとの間で第１タイプで値の相違するビットの第１個数と、第２タイプで相違するビットの第２個数とに基づく第１シフト量を取得し、
第２電圧と、前記第１シフト量に基づく第２シフト量と、を用いて前記第２ページに保持されているデータを割り出して第２データを取得し、
前記第２データと前記第２データに対する誤り訂正により得られる第２期待データとの間で前記第１タイプで値の相違するビットの第３個数と、前記第２タイプで相違するビットの第４個数とに基づく第３シフト量を取得する、
ように構成されたメモリコントローラと、
を備えるメモリシステム。
【請求項２】
前記メモリコントローラは、前記第１電圧と前記第１シフト量を用いて前記第１ページに保持されているデータを割り出すようにさらに構成されている、
請求項１のメモリシステム。
【請求項３】
前記第１電圧と前記第１シフト量を用いて前記第１ページに保持されているデータを割り出すことは、前記第１電圧と前記第１シフト量の和の電圧を前記メモリセルセットに印加することを含む、
請求項２のメモリシステム。
【請求項４】
前記メモリコントローラは、前記第２電圧と前記第３シフト量を用いて前記第２ページに保持されているデータを割り出すようにさらに構成されている、
請求項１のメモリシステム。
【請求項５】
前記第１個数は、前記第１電圧より高い閾値電圧を有するように書き込まれた後に前記第１電圧より低い閾値電圧を有するメモリセルの個数であり、
前記第２個数は、前記第１電圧より低い閾値電圧を有するように書き込まれた後に前記第１電圧より高い閾値電圧を有するメモリセルの個数である、
請求項１のメモリシステム。
【請求項６】
前記第１シフト量は、前記第２シフト量として使用される、
請求項１のメモリシステム。
【請求項７】
前記第２データを取得することは、前記第２電圧と前記第２シフト量の和の電圧を前記メモリセルセットに印加することを含む、
請求項１のメモリシステム。
【請求項８】
前記メモリコントローラは、前記第１データに対する誤り訂正が成功し、前記第２電圧を用いて前記第２ページに保持されているデータを割り出して取得される第３データに対する誤り訂正が成功しない場合に前記第１シフト量を推定するように構成されている、
請求項１のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概してメモリシステムに関する。
【背景技術】
【０００２】
半導体メモリと、半導体メモリを制御するコントローラを含んだメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１８／９０２１２号明細書
【特許文献２】特開２０１５−１３３１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
リード電圧をより効率よく推定できるメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
一実施形態によるメモリシステムは、メモリセルセットを含み、上記メモリセルセットの第１ページと第２ページの各々でデータを保持する記憶装置と、メモリコントローラとを含む。メモリコントローラは、第１電圧を用いて上記第１ページに保持されているデータを割り出して第１データを取得し、上記第１データと上記第１データに対する誤り訂正により得られる第１期待データとの間で第１タイプで値の相違するビットの第１個数と、第２タイプで相違するビットの第２個数とに基づく第１シフト量を取得し、第２電圧と、上記第１シフト量に基づく第２シフト量と、を用いて上記第２ページに保持されているデータを割り出して第２データを取得し、上記第２データと上記第２データに対する誤り訂正により得られる第２期待データとの間で上記第１タイプで値の相違するビットの第３個数と、上記第２タイプで相違するビットの第４個数とに基づく第３シフト量を取得する、ように構成されている。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態のメモリシステム中の要素および接続、ならびに関連する要素を示すブロック図である。
【図２】図２は、第１実施形態のブロックの要素および接続の例を示す。
【図３】図３は、第１実施形態のメモリセルトランジスタ当たり４ビットのデータを保持するメモリセルトランジスタの閾値電圧の分布を示す。
【図４】図４は、第１実施形態のシフト量テーブルの例を示す。
【図５】図５は、第１実施形態のメモリコントローラの動作の例示的なフローを示す。
【図６】図６は、第１実施形態のデータ書き込み後のメモリセルの状態と誤り訂正前後のデータの例を示す。
【図７】図７は、第１実施形態のメモリセルトランジスタ閾値電圧分布と複数のリード電圧の例を示す。
【図８】図８は、第１実施形態の選択セルユニットについての比と値との関係、および比と更新シフト量との関係の例を示す。
【図９】図９は、第１実施形態の比・シフト量対応表の例を示す。
【図１０】図１０は、第１実施形態のメモリコントローラの或る処理ループでのシフト量推定とシフトリードの結果の例を示す。
【図１１】図１１は、第１実施形態のメモリコントローラの図１０に後続するループでのシフト量推定とシフトリードの結果の例を示す。
【図１２】図１２は、第１実施形態のメモリコントローラでの更新シフト量の適用の例を示す。
【図１３】図１３は、第１実施形態のメモリコントローラの図１１に後続するループでのシフト量推定とシフトリードの結果の例を示す。
【図１４】図１４は、第１実施形態のメモリコントローラの図１３に後続するループでのシフト量推定とシフトリードの結果の例を示す。
【図１５】図１５は、第１実施形態の変形例の更新シフト量の適用の例を示す。
【図１６】図１６は、第１実施形態の変形例の更新シフト量の適用の別の例を示す。
【発明を実施するための形態】
【０００７】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から記述される。各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。機能ブロックの区別の詳細によって実施形態は限定されない。
【０００８】
また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび（または）別のステップと並行して起こることが可能である。
【０００９】
本明細書および特許請求の範囲において、ある第１要素が別の第２要素に「接続されている」とは、第１要素が直接的または常時あるいは選択的に導電性となる要素を介して第２要素に接続されていることを含む。
【００１０】
＜第１実施形態＞
＜１．１．構造（構成）＞
図１は、第１実施形態のメモリシステム中の要素および接続、ならびに関連する要素を示す。図１に示されるように、メモリシステム５は、ホスト装置３により制御され、記憶装置１およびメモリコントローラ２を含む。メモリシステム５は、例えば、ＳＳＤ（solid state drive）またはＳＤＴＭカード等であることが可能である。
【００１１】
記憶装置１は、メモリコントローラ２により制御される。メモリコントローラ２は、ホスト装置３から命令を受け取り、受け取られた命令に基づいて記憶装置１を制御する。
【００１２】
＜１．１．１．メモリコントローラ＞
メモリコントローラ２は、ホストインターフェイス２１、ＣＰＵ（central processing unit）２２、ＲＡＭ（random access memory）２３、ＲＯＭ（read only memory）２４、メモリインターフェイス２５、ＥＣＣ（error correction code）回路２６を含む。ＲＯＭ２４に格納されていてＲＡＭ２３上にロードされたファームウェア（プログラム）がＣＰＵ２２によって実行されることによって、メモリコントローラ２は種々の動作、およびホストインターフェイス２１ならびにメモリインターフェイス２５の機能の一部を実行する。ＲＡＭ２３は、さらに、データを一時的に保持し、バッファメモリおよびキャッシュメモリとして機能する。また、ＲＡＭ２３は、後述のシフト量テーブルを保持する。
【００１３】
ホストインターフェイス２１は、バスを介してホスト装置３と接続され、メモリコントローラ２とホスト装置３との通信を司る。メモリインターフェイス２５は、記憶装置１と接続され、メモリコントローラ２と記憶装置１との通信を司る。
【００１４】
ＥＣＣ回路２６は、記憶装置１に書き込まれるデータおよび記憶装置１からリードされたデータに対して、誤りの検出および訂正に必要な処理を行う。具体的には、ＥＣＣ回路２６は、記憶装置１に書き込まれるデータ（実書き込みデータ）に対して誤り訂正符号化処理を行う。誤り訂正符号の生成方式に基づいて、誤り訂正符号化によって誤り訂正のための冗長データが実データとは別に生成される場合もあれば、誤り訂正情報（冗長データ）を含んだ実書き込みデータとは異なるデータが生成される場合もある。誤り訂正符号化後の冗長データを含んだデータは、書き込みデータとして記憶装置１に書き込まれる。また、ＥＣＣ回路２６は、記憶装置１からリードされたデータの中の誤りを検出し、誤りがある場合に誤りの訂正を試みる。
【００１５】
＜１．１．２．記憶装置＞
記憶装置１は、メモリセルアレイ１１、入出力回路１２、シーケンサ１３、ドライバ１５、センスアンプ１６、およびロウデコーダ１９等の要素を含む。
【００１６】
メモリセルアレイ１１は複数のメモリブロック（ブロック）ＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を含む。各ブロックＢＬＫは複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、…）の集合である。各ストリングユニットＳＵは複数のＮＡＮＤストリング（ストリング）ＳＴＲ（ＳＴＲ０、ＳＴＲ１、…）（図示せず）の集合である。ストリングＳＴＲは、複数のメモリセルトランジスタＭＴを含む。
【００１７】
入出力回路１２は、ＮＡＮＤバスを介してメモリコントローラ２と接続されている。ＮＡＮＤバスは、複数の制御信号および８ビットの幅の信号ＤＱを伝送する。制御信号は、信号￣ＣＥ、ＣＬＥ、ＡＬＥ、￣ＷＥ、￣ＲＥ、￣ＷＰ、およびデータストローブ信号ＤＱＳならびに￣ＤＱＳを含む。符号「￣」は、反転論理を示す。入出力回路１２は、信号ＤＱを受け取り、信号ＤＱを送信する。入出力回路１２は、メモリコントローラ２から制御信号を受け取り、制御信号に基づいて、信号ＤＱを取り込み、また出力する。信号ＤＱは、コマンド（ＣＭＤ）、書き込みデータまたはリードデータ（ＤＡＴ）、アドレス（ＡＤＤ）、ステータス（ＳＴＡ）等を含む。
【００１８】
シーケンサ１３は、入出力回路１２からコマンドＣＭＤおよびアドレスＡＤＤを受け取り、コマンドＣＭＤおよびアドレスＡＤＤに基づいて、ドライバ１５、センスアンプ１６、およびロウデコーダ１９を制御する。
【００１９】
ドライバ１５は、複数の電位のうちの選択されたものをロウデコーダ１９に供給する。ロウデコーダ１９は、ドライバ１５から種々の電位を受け取り、入出力回路１２からアドレスＡＤＤを受け取り、受け取られたアドレスＡＤＤに基づいて選択された１つのブロックＢＬＫにドライバ１５からの電位を転送する。
【００２０】
センスアンプ１６は、メモリセルトランジスタＭＴの状態をセンスし、センスされた状態に基づいてリードデータを生成し、また、書き込みデータをメモリセルトランジスタＭＴに転送する。
【００２１】
＜１．１．３．メモリセルアレイ＞
図２は、第１実施形態のメモリセルアレイ１１中のいくつかの要素および接続の例を示し、１つのブロックＢＬＫ０の要素および接続、ならびに関連する要素を示す。複数のブロックＢＬＫ、例えば全てのブロックＢＬＫは、みな図２に示される要素および接続を含む。
【００２２】
１つのブロックＢＬＫは、複数（例えば４つ）のストリングユニットＳＵ０〜ＳＵ３を含む。
【００２３】
ｐ（ｐは自然数）本のビット線ＢＬ０〜ＢＬ（ｐ−１）の各々は、各ブロックＢＬＫにおいて、ストリングユニットＳＵ０〜ＳＵ３の各々からの１つのストリングＳＴＲと接続されている。
【００２４】
各ストリングＳＴＲは、１つの選択ゲートトランジスタＳＴ、複数（例えば８つ）のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、および１つの選択ゲートトランジスタＤＴ（ＤＴ０、ＤＴ１、ＤＴ２、またはＤＴ３）を含む。トランジスタＳＴ、ＭＴ、およびＤＴは、この順で、ソース線ＣＥＬＳＲＣと１つのビット線ＢＬとの間に直列に接続されている。メモリセルトランジスタＭＴは、制御ゲート電極（ワード線ＷＬ）、および周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に保持することができる。
【００２５】
相違する複数のビット線ＢＬとそれぞれ接続された複数のストリングＳＴＲは１つのストリングユニットＳＵを構成する。各ストリングユニットＳＵにおいて、メモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲート電極は、ワード線ＷＬ０〜ＷＬ７とそれぞれ接続されている。１つのストリングユニットＳＵ中でワード線ＷＬを共有するメモリセルトランジスタＭＴの組は、セルユニット（メモリセルセット）ＣＵと称される。
【００２６】
トランジスタＤＴ０〜ＤＴ３（図２において、ＤＴ２、ＤＴ３は図示せず）はストリングユニットＳＵ０〜ＳＵ３にそれぞれ属する。ストリングユニットＳＵ０の複数のストリングＳＴＲの各々のトランジスタＤＴ０のゲートは選択ゲート線ＳＧＤＬ０に接続されている。同様に、ストリングユニットＳＵ１、ＳＵ２、ＳＵ３のそれぞれの複数のストリングＳＴＲの各々のトランジスタＤＴ１、ＤＴ２、ＤＴ３のゲートは選択ゲート線ＳＧＤＬ１、ＳＧＤＬ２、ＳＧＤＬ３に接続されている。
【００２７】
＜１．１．４．セルトランジスタ＞
図３を参照して、メモリセルトランジスタＭＴについて記述される。記憶装置１は、１つのメモリセルトランジスタＭＴにおいて２ビット以上のデータを保持することができる。図３は、第１実施形態のメモリシステムでのデータ書き込みの結果、１つのメモリセルトランジスタＭＴ当たり４ビットのデータを保持するメモリセルトランジスタＭＴの閾値電圧の分布を示す。各メモリセルトランジスタＭＴの閾値電圧は、保持されるデータに応じた値を有する。メモリセルトランジスタＭＴ当たり４ビットの記憶の場合、各メモリセルトランジスタＭＴは、１６個の閾値電圧のうちのいずれかを有し得る。１６個の閾値電圧は、“１１１１”データ、“１１１０”データ、“１０１０”データ、“１０００”データ、“１００１”データ、“０００１”データ、“００００”データ、“００１０”データ、“０１１０”データ、“０１００”データ、“１１００”データ、“１１０１”データ、“０１０１”データ、“０１１１”データ、“００１１”データ、および“１０１１”データをそれぞれ保持している状態である。“１１１１”データ、“１１１０”データ、“１０１０”データ、“１０００”データ、“１００１”データ、“０００１”データ、“００００”データ、“００１０”データ、“０１１０”データ、“０１００”データ、“１１００”データ、“１１０１”データ、“０１０１”データ、“０１１１”データ、“００１１”データ、および“１０１１”データをそれぞれ保持している状態のメモリセルトランジスタＭＴは、それぞれ、Ｅｒ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、およびＯステートにあると称される。Ｅｒステート、Ａステート、Ｂステート、Ｃステート、Ｄステート、Ｅステート、Ｆステート、Ｇステート、Ｈステート、Ｉステート、Ｊステート、Ｋステート、Ｌステート、Ｍステート、Ｎステート、およびＯステートにあるメモリセルトランジスタＭＴは、この順でより高い閾値電圧を有する。
【００２８】
書き込みによって、書き込み対象のメモリセルトランジスタＭＴは、書き込まれるデータに基づいて、Ｅｒステートに維持されるか、Ａステート、Ｂステート、Ｃステート、Ｄステート、Ｅステート、Ｆステート、Ｇステート、Ｈステート、Ｉステート、Ｊステート、Ｋステート、Ｌステート、Ｍステート、Ｎステート、およびＯステートのいずれかに移される。ＥｒステートにあるメモリセルトランジスタＭＴは、書き込みによっても閾値電圧を上昇されないメモリセルトランジスタＭＴであるが、以下、書き込みによってメモリセルトランジスタＭＴをＥｒステートにとどめることも書き込みと称される。
【００２９】
ある同じ４ビットデータを保持する複数のメモリセルトランジスタＭＴであっても、メモリセルトランジスタＭＴの特性のばらつき等に起因して、互いに相違する閾値電圧を有し得る。
【００３０】
リード対象のメモリセルトランジスタ（選択メモリセルトランジスタ）ＭＴによって保持されているデータの判別のために、選択メモリセルトランジスタＭＴのステートが判断される。選択メモリセルトランジスタＭＴの閾値電圧がどの範囲にあるかが、この選択メモリセルトランジスタＭＴのステートの割り出しに用いられる。選択メモリセルトランジスタＭＴの閾値電圧の範囲の割り出しのために、当該選択メモリセルトランジスタＭＴが、或るリード電圧ＶＣＧＲを超える閾値電圧を有するか否かが判断される。リード電圧ＶＣＧＲ以上の閾値電圧を有するメモリセルトランジスタＭＴは、制御ゲート電極においてリード電圧ＶＣＧＲを受け取ってもオフを維持する。一方、リード電圧ＶＣＧＲ未満の閾値電圧を有するメモリセルトランジスタＭＴは、制御ゲート電極においてリード電圧ＶＣＧＲを受け取っていると、オンしている。
【００３１】
選択メモリセルトランジスタＭＴが、Ｅｒステート、Ａステート、Ｂステート、Ｃステート、Ｄステート、Ｅステート、Ｆステート、Ｇステート、Ｈステート、Ｉステート、Ｊステート、Ｋステート、Ｌステート、Ｍステート、およびＮステートより上のステートにあるかの判断のためのリードは、それぞれ、ＡＲ（リード）、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲと称される。ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲにおいて、それぞれ、リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、およびＶＯが用いられることができる。リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、およびＶＯは、例えばデフォルトの大きさを有する。
【００３２】
リード電圧ＶＡは、Ｅｒステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＡステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３３】
リード電圧ＶＢは、書き込まれた直後のＡステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＢステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３４】
リード電圧ＶＣは、書き込まれた直後のＢステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＣステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３５】
リード電圧ＶＤは、書き込まれた直後のＣステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＤステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３６】
リード電圧ＶＥは、書き込まれた直後のＤステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＥステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３７】
リード電圧ＶＦは、書き込まれた直後のＥステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＦステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３８】
リード電圧ＶＧは、書き込まれた直後のＦステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＧステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３９】
リード電圧ＶＨは、書き込まれた直後のＧステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＨステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４０】
リード電圧ＶＩは、書き込まれた直後のＨステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＩステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４１】
リード電圧ＶＪは、書き込まれた直後のＩステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＪステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４２】
リード電圧ＶＫは、書き込まれた直後のＪステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＫステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４３】
リード電圧ＶＬは、書き込まれた直後のＫステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＬステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４４】
リード電圧ＶＭは、書き込まれた直後のＬステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＭステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４５】
リード電圧ＶＮは、書き込まれた直後のＭステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＮステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４６】
リード電圧ＶＯは、書き込まれた直後のＮステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＯステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４７】
１つのセルユニットＣＵのメモリセルトランジスタＭＴの同じ位置（桁）のビットのデータの組は、１つのページを構成する。各セルユニットＣＵのメモリセルトランジスタＭＴの最上位（１桁目）のビットのデータの組は、トップページと称される。各セルユニットＣＵのメモリセルトランジスタＭＴの最上位から２桁目のビットのデータの組は、アッパーページと称される。各セルユニットＣＵのメモリセルトランジスタＭＴの最上位から３桁目のビットのデータの組は、ミドルページと称される。各セルユニットＣＵのメモリセルトランジスタＭＴの最下位（４桁目）のビットのデータの組は、ロワーページと称される。
【００４８】
各ページのデータは、値の相違する複数のリード電圧を用いたリードにより割り出される。例が以下に示される。ロワーページの各ビットのステートは、ＡＲ、ＤＲ、ＦＲ、およびＫＲによって割り出される。ミドルページの各ビットのステートは、ＣＲ、ＧＲ、ＩＲ、およびＭＲによって割り出される。アッパーページ各ビットのステートは、ＢＲ、ＨＲ、およびＮＲによって割り出される。トップページ各ビットのステートは、ＥＲ、ＪＲ、ＬＲ、およびＯＲによって割り出される。
【００４９】
＜１．２．動作＞
以下の記述において、記号「Ｘ」および「Ｚ」が導入される。Ｘは、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、およびＯの各々のケースの全てのケースを表現している。すなわち、例えば、ＸＲとの表記は、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲ全てを表す。
【００５０】
Ｚは、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、およびＯのうちの全てのケースを除く１つまたは複数を指す。すなわち、例えば、ＺＲとの表記は、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのうちの、１または複数（全ては除く）を指す。
【００５１】
＜１．２．１．シフト量テーブル＞
図４は、シフト量テーブルの例を示す。メモリコントローラ２は、例えば、電源供給を受けている間、ＲＡＭ２３上でシフト量テーブルを保持し続ける。シフト量テーブルは、時折、更新されることができる。
【００５２】
シフト量テーブルは、例えばストリングユニットＳＵごとにエントリを有する。図４は、各エントリを示し、例えば、或るブロックＢＬＫの或るワード線ＷＬの或るストリングユニットＳＵについての値を示す。各エントリは、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのそれぞれに使用され得るシフト量ΔＶＡ、ΔＶＢ、ΔＶＣ、ΔＶＤ、ΔＶＥ、ΔＶＦ、ΔＶＧ、ΔＶＨ、ΔＶＩ、ΔＶＪ、ΔＶＫ、ΔＶＬ、ΔＶＭ、ΔＶＮ、およびΔＶＯを含む。例えば、ブロックＢＬＫ０のワード線ＷＬ０のストリングユニットＳＵ０のエントリは、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのそれぞれについてのシフト量ΔＶＡ０、ΔＶＢ０、ΔＶＣ０、ΔＶＤ０、ΔＶＥ０、ΔＶＦ０、ΔＶＧ０、ΔＶＨ０、ΔＶＩ０、ΔＶＪ０、ΔＶＫ０、ΔＶＬ０、ΔＶＭ０、ΔＶＮ０、およびΔＶＯ０を含む。
【００５３】
シフト量ΔＶＸがデフォルトのリード電圧ＶＸに付加されて、リード電圧ＶＸ＋ΔＶＸがＸＲにおいて使用される。メモリコントローラ２は、記憶装置１に、リードの指示とともにシフト量ΔＶＸの１つ以上を通知する。記憶装置１は、リードの指示とシフト量ΔＶＸを受け取ると、リード電圧ＶＸ＋ΔＶＸを使用してＸＲを行う。シフト量ΔＶＸは、正の値、またはゼロ、または負の値のいずれかであり得る。
【００５４】
シフト量ΔＶＸは、例えば、ＤＡＣ（digital analog converter）値で表現されることができる。
【００５５】
各エントリは、上で記述された例とは別の単位で用意されてもよい。例えば、各エントリは、ストリングユニットＳＵ０〜ＳＵ３に共通であってもよいし、および（または）、複数のワード線ＷＬに対して共通であってもよい。
【００５６】
＜１．２．２．メモリコントローラの動作＞
図５は、第１実施形態のメモリコントローラ２（特に、ＣＰＵ２２）の動作の例示的なフローを示す。図５は、例えば、ホスト装置３から指示された未完了の処理を有していない状態の間などに、メモリコントローラ２によって、データの信頼性を高めるために自律的に行われることができる。そのような処理は、以下、パトロール処理と称される。図５は、或る１つのセルユニット（選択セルユニット）ＣＵのロワーページ、ミドルページ、アッパーページ、およびトップページに対するパトロール処理のフローを示す。図５のフローのいくつかのステップは後に詳述される。
【００５７】
フローの開始とともに、メモリコントローラ２は、パラメータＮを０に設定する。
【００５８】
ステップＳＴ１において、メモリコントローラ２は、シフト量テーブルを参照して、選択セルユニットＣＵについてのシフト量ΔＶＡ、ΔＶＢ、ΔＶＣ、ΔＶＤ、ΔＶＥ、ΔＶＦ、ΔＶＧ、ΔＶＨ、ΔＶＩ、ΔＶＪ、ΔＶＫ、ΔＶＬ、ΔＶＭ、ΔＶＮ、およびΔＶＯを知る。以下、ステップＳＴ１で得られるシフト量ΔＶＸは、イニシャルシフト量ΔＶＸｉと称される場合がある。
【００５９】
ステップＳＴ２において、メモリコントローラ２は、イニシャルシフト量ΔＶＸｉを記憶装置１に通知しながら、選択セルユニットＣＵのロワーページ、ミドルページ、アッパーページ、およびトップページからデータをリードする。リードされたデータは、ＲＡＭ２３に保持される。以下、ロワーページ、ミドルページ、アッパーページ、およびトップページから読み出されたデータは、それぞれ、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータと称される。さらに、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータが区別される必要がない場合、ページリードデータと称され、ページリードデータについての記述は、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータの全てに適用される。
【００６０】
または、選択セルユニットＣＵへの書き込み後の最初のパトロール処理として図５のフローが行われる場合、メモリコントローラ２は、ステップＳＴ２において、イニシャルシフト量ΔＶＸｉを使用せず、例えばデフォルトのリード電圧ＶＸを使用して、選択セルユニットＣＵのロワーページ、ミドルページ、アッパーページ、およびトップページからデータをリードしてもよい。すなわち、このような場合、ステップＳＴ１はスキップされる。
【００６１】
ステップＳＴ３において、メモリコントローラ２は、ＥＣＣ回路２６を使用して、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータ中の誤りの訂正を試みる。ＥＣＣ回路２６は、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータに対する誤り訂正の実行によって得られるデータを生成し、さらに生成されたデータに対して例えばＣＲＣ（cyclic redundancy check）などを用いて誤り検出処理を行う。誤り訂正されるとともに誤りなしが確認されたデータは、ＲＡＭ２３に保持される。以下、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータに対する誤り訂正の実行および誤りなしとの確認により得られるデータは、それぞれ、訂正後ロワーページリードデータ、訂正後ミドルページリードデータ、訂正後アッパーページリードデータ、および訂正後トップページリードデータと称される。さらに、訂正後ロワーページリードデータ、訂正後ミドルページリードデータ、訂正後アッパーページリードデータ、および訂正後トップページリードデータが区別される必要がない場合、訂正後ページリードデータと称され、訂正後ページリードデータに関する記述は、訂正後ロワーページリードデータ、訂正後ミドルページリードデータ、訂正後アッパーページリードデータ、および訂正後トップページリードデータの全てに適用される。ページリードデータの誤り訂正に失敗した場合、訂正前のデータ、すなわち、ページリードデータが訂正後ページリードデータとして扱われる。
【００６２】
誤り訂正は成功する場合もあれば、失敗する場合もある。誤り訂正が成功したか否かは、例えば、ＥＣＣ回路２６からの通知により、ＣＰＵ２２が認識することができる。
【００６３】
ステップＳＴ４において、メモリコントローラ２は、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータの全てに対する誤り訂正が成功したかを判断する。この判断は、例えば、ＥＣＣ回路２６からの通知により行われることが可能である。４つ全ての訂正後ページリードデータが誤りを含まない場合（Ｙｅｓ分岐）、処理はステップＳＴ６に移行する。
【００６４】
ステップＳＴ６において、メモリコントローラ２は、新たなシフト量ΔＶＡ、ΔＶＢ、ΔＶＣ、ΔＶＤ、ΔＶＥ、ΔＶＦ、ΔＶＧ、ΔＶＨ、ΔＶＩ、ΔＶＪ、ΔＶＫ、ΔＶＬ、ΔＶＭ、ΔＶＮ、およびΔＶＯを推定する。推定の方法は後述される。以下、ステップＳＴ６等の、図５のステップＳＴ１以外で得られるシフト量ΔＶＸは、更新シフト量ΔＶＸｒと称される。すなわち、リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、およびＶＯのそれぞれについての更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが推定される。
【００６５】
後に詳述されるように、シフト量推定の過程で、メモリコントローラ２は、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのそれぞれについての比ＲＡＴ（Ａ）、ＲＡＴ（Ｂ）、ＲＡＴ（Ｃ）、ＲＡＴ（Ｄ）、ＲＡＴ（Ｅ）、ＲＡＴ（Ｆ）、ＲＡＴ（Ｇ）、ＲＡＴ（Ｈ）、ＲＡＴ（Ｉ）、ＲＡＴ（Ｊ）、ＲＡＴ（Ｋ）、ＲＡＴ（Ｌ）、ＲＡＴ（Ｍ）、ＲＡＴ（Ｎ）、およびＲＡＴ（Ｏ）を算出する。比ＲＡＴ（Ｘ）は、例えば或る第１タイプのビットと別の第２タイプのビットの比である。
【００６６】
また、シフト量推定の過程で、メモリコントローラ２は、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのそれぞれについての値（個数）ＦＢＣ（Ａ）、ＦＢＣ（Ｂ）、ＦＢＣ（Ｃ）、ＦＢＣ（Ｄ）、ＦＢＣ（Ｅ）、ＦＢＣ（Ｆ）、ＦＢＣ（Ｇ）、ＦＢＣ（Ｈ）、ＦＢＣ（Ｉ）、ＦＢＣ（Ｊ）、ＦＢＣ（Ｋ）、ＦＢＣ（Ｌ）、ＦＢＣ（Ｍ）、ＦＢＣ（Ｎ）、およびＦＢＣ（Ｏ）を算出する。値ＦＢＣ（Ｘ）は、ＸＲによって誤った値を有すると判断されたビットの数である。
【００６７】
ステップＳＴ１１において、メモリコントローラ２は、比ＲＡＴ（Ａ）、ＲＡＴ（Ｂ）、ＲＡＴ（Ｃ）、ＲＡＴ（Ｄ）、ＲＡＴ（Ｅ）、ＲＡＴ（Ｆ）、ＲＡＴ（Ｇ）、ＲＡＴ（Ｈ）、ＲＡＴ（Ｉ）、ＲＡＴ（Ｊ）、ＲＡＴ（Ｋ）、ＲＡＴ（Ｌ）、ＲＡＴ（Ｍ）、ＲＡＴ（Ｎ）、およびＲＡＴ（Ｏ）の全てが、第１範囲内にあるかを判断する。比ＲＡＴ（Ａ）、ＲＡＴ（Ｂ）、ＲＡＴ（Ｃ）、ＲＡＴ（Ｄ）、ＲＡＴ（Ｅ）、ＲＡＴ（Ｆ）、ＲＡＴ（Ｇ）、ＲＡＴ（Ｈ）、ＲＡＴ（Ｉ）、ＲＡＴ（Ｊ）、ＲＡＴ（Ｋ）、ＲＡＴ（Ｌ）、ＲＡＴ（Ｍ）、ＲＡＴ（Ｎ）、およびＲＡＴ（Ｏ）のうちの１または複数（全て以外）のものが第１範囲内にあるかが判断されてもよい。第１範囲の例については、後述される。ステップＳＴ１１でのＹｅｓとの判断の場合、処理はステップＳＴ１２に移行する。
【００６８】
ステップＳＴ１２において、メモリコントローラ２は、値ＦＢＣ（Ａ）、ＦＢＣ（Ｂ）、ＦＢＣ（Ｃ）、ＦＢＣ（Ｄ）、ＦＢＣ（Ｅ）、ＦＢＣ（Ｆ）、ＦＢＣ（Ｇ）、ＦＢＣ（Ｈ）、ＦＢＣ（Ｉ）、ＦＢＣ（Ｊ）、ＦＢＣ（Ｋ）、ＦＢＣ（Ｌ）、ＦＢＣ（Ｍ）、ＦＢＣ（Ｎ）、およびＦＢＣ（Ｏ）の全てが、第２基準値以下であるかを判断する。値ＦＢＣ（Ａ）、ＦＢＣ（Ｂ）、ＦＢＣ（Ｃ）、ＦＢＣ（Ｄ）、ＦＢＣ（Ｅ）、ＦＢＣ（Ｆ）、ＦＢＣ（Ｇ）、ＦＢＣ（Ｈ）、ＦＢＣ（Ｉ）、ＦＢＣ（Ｊ）、ＦＢＣ（Ｋ）、ＦＢＣ（Ｌ）、ＦＢＣ（Ｍ）、ＦＢＣ（Ｎ）、およびＦＢＣ（Ｏ）の１または複数（全て以外）のものが第２基準値以下であるかが判断されてもよい。第２基準値は、例えば、ＥＣＣ回路２６の訂正能力および仕様に基づいて設定される。例として、ＥＣＣ回路２６が、ある特定の大きさのフレームの誤りを訂正する場合に、例えばフレームの１０分の１に相当する誤りビットを訂正できる場合、第２基準値は、例えば上述の訂正可能な誤りビット数に対する１０分の１とし、そのフレームに含まれる全ビットに対する１００分１であることが可能である。この第２基準値はシフト量推定精度を左右する目標エラー数を指定する。そのため、疲弊度やデータ書き込みからの時間（データリテンション期間）などのリード性能の関わるパラメータに応じて上述の訂正可能な誤りビット数に対する目標値を設定するようにしてもよい。
【００６９】
ステップＳＴ１２でＹｅｓとの判断の場合、処理はステップＳＴ１３に移行する。ステップＳＴ１３において、メモリコントローラ２は、シフト量テーブルの選択セルユニットＣＵについての値を、更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒで更新する。ステップＳＴ１３の終了により処理は終了する。
【００７０】
ステップＳＴ１２でのＮｏとの判断の場合、メモリコントローラ２は、ステップＳＴ１４において、選択セルユニットＣＵについてのリフレッシュを予約する。リフレッシュは、選択セルユニットＣＵに、ロワーページデータ、ミドルページデータ、アッパーページデータ、およびトップページデータの誤り訂正された形態を書き込むことを指す。処理が、ステップＳＴ１２からステップＳＴ１４に到達した場合、訂正後ロワーページリードデータ、訂正後ミドルページリードデータ、および訂正後アッパーページリードデータ、訂正後トップページリードデータが書き込まれる。予約されたリフレッシュは、例えば、図５のフローの終了後に行われることができる。ステップＳＴ１２においてリフレッシュが行われてもよい。ステップＳＴ１４は、ステップＳＴ１３に継続する。
【００７１】
ステップＳＴ４でのＮｏとの判断の場合、処理はステップＳＴ２１に移行する。ステップＳＴ２１において、メモリコントローラ２は、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータの少なくとも１つに対する誤り訂正が成功したかを判断する。
【００７２】
ステップＳＴ２１でのＮｏとの判断の場合、処理はステップＳＴ２２に移行する。ステップＳＴ２２において、メモリコントローラ２は、リトライフローを実行する。リトライフローは、或るアルゴリズムに従って、選択セルユニットＣＵから、誤りを含まないページリードデータを得るための任意の処理を含む。ステップＳＴ２１が終了すると、処理は終了する。
【００７３】
ステップＳＴ２１でのＹｅｓとの判断の場合、処理はステップＳＴ２３に移行する。ステップＳＴ２３において、メモリコントローラ２は、リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、およびＶＯのうち、ステップＳＴ２３の開始の時点で誤り訂正に成功しているページのリードに使用される１または複数のリード電圧ＶＺについての更新シフト量ΔＶＺｒを推定する。ステップＳＴ２３でのシフト量推定は、シフト量が推定される対象の違いのみで、ステップＳＴ６でのシフト量推定と同じである。例えば、ロワーページが誤り訂正成功している場合は、リード電圧ＶＡ、ＶＤ、ＶＦ、およびＶＫのための更新シフト量ΔＶＡｒ、ΔＶＤｒ、ΔＶＦ、およびΔＶＫｒが推定される。以下、ステップＳＴ２３の開始の時点で誤り訂正に成功しているページは誤り訂正成功ページと称され、誤り訂正に失敗したページは誤り訂正失敗ページと称される場合がある。ミドル、アッパー、およびトップページの場合も同じであり、複数のページの誤り訂正が成功している場合は、全ての誤り訂正成功ページのリードに使用される複数のリード電圧ＶＺの更新シフト量ΔＶＺｒが推定される。誤り訂正に成功していないページのリードに使用されるリード電圧ＶＺについての更新シフト量ΔＶＺｒはステップＳＴ２３において推定されず、よって、そのような更新シフト量ΔＶＺｒは得られない。
【００７４】
ステップＳＴ２４において、メモリコントローラ２は、１または複数の更新シフト量ΔＶＺｒを使用して、誤り訂正失敗ページのリードに使用される１または複数の更新シフト量ΔＶＺｒを取得する。ステップＳＴ２４により、ステップＳＴ２３で得られた更新Δシフト量ＶＺｒより多くの更新シフト量ΔＶＺｒが得られることになる。ステップＳＴ２４については後に詳述される。
【００７５】
ステップＳＴ２４、およびステップＳＴ１１のＮｏ分岐はステップＳＴ２５に継続する。ステップＳＴ２５は、ステップＳＴ２に類似し、指定されるシフト量の違いにおいてステップＳＴ２と相違する。すなわち、ステップＳＴ２５において、メモリコントローラ２は、ステップＳＴ２４の開始の時点で得られている更新シフト量ΔＶＺｒを使用して、選択セルユニットＣＵのロワーページ、ミドルページ、アッパーページ、およびトップページからデータを読み出す（シフトリードを行う）。以下、ロワーページ、ミドルページ、アッパーページ、およびトップページから読み出されたデータは、それぞれ、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、およびトップページシフトリードデータと称される。さらに、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、およびトップページシフトリードデータが区別される必要がない場合、ページシフトリードデータと称され、ページシフトリードデータについての記述は、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、およびトップページシフトリードデータの全てに適用される。ロワー、ミドル、アッパー、およびトップページシフトリードデータは、それぞれ、例えばロワー、ミドル、アッパー、およびトップページリードデータに上書きされる。
【００７６】
ステップＳＴ２６は、ステップＳＴ３に類似し、誤り訂正の対象の点でステップＳＴ３と相違する。すなわち、ステップＳＴ２６において、メモリコントローラ２は、ＥＣＣ回路２６を使用して、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、およびトップページリードシフトデータ中の誤りを検出し、誤りがある場合に誤り訂正を試みる。ＥＣＣ回路２６は、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、トップページシフトリードデータに対する誤り訂正の実行および誤りなしとの確認によって得られるデータを出力し、これらは、ＲＡＭ２３に保持される。以下、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、およびトップページシフトリードデータに対する誤り訂正の実行および誤りなしとの確認により得られるデータは、それぞれ、訂正後ロワーページシフトリードデータ、訂正後ミドルページシフトリードデータ、訂正後アッパーページシフトリードデータ、および訂正後トップページシフトリードデータと称される。さらに、訂正後ロワーページシフトリードデータ、訂正後ミドルページシフトリードデータ、訂正後アッパーページシフトリードデータ、および訂正後トップページシフトリードデータが区別される必要がない場合、訂正後ページシフトリードデータと称され、訂正後ページシフトリードデータについての記述は、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、およびトップページシフトリードデータの全てに適用される。ページシフトリードデータの誤り訂正に失敗した場合は、誤り訂正前のデータ、すなわち、ページシフトリードデータが訂正後ページシフトリードデータとして扱われる。訂正後ロワー、ミドル、アッパー、およびトップページシフトリードデータは、それぞれ、例えば訂正後ロワー、ミドル、アッパー、およびトップページリードデータに上書きされる。
【００７７】
ステップＳＴ２７は、ステップＳＴ４に類似し、判断の対象の点でステップＳＴ４と相違する。ステップＳＴ２７において、メモリコントローラ２は、ロワーページシフトリードデータ、ミドルページシフトリードデータ、アッパーページシフトリードデータ、およびトップページシフトリードデータの全てに対する誤り訂正が成功したかを判断する。ステップＳＴ２７での判断がＮｏの場合、処理は、ステップＳＴ２８に移行する。
【００７８】
ステップＳＴ２８において、メモリコントローラ２は、パラメータＮが上限Ｎｍａｘに等しいかを判断する。ステップＳＴ２８での判断がＹｅｓの場合、処理はステップＳＴ２２に移行する。ステップＳＴ２８での判断がＮｏの場合、メモリコントローラ２は、ステップＳＴ２９においてパラメータＮを１インクリメントする。ステップＳＴ２９は、ステップＳＴ２３に継続する。
【００７９】
ステップＳＴ２７での判断がＹｅｓの場合、処理は、ステップＳＴ３１に移行する。ステップＳＴ３１において、メモリコントローラ２は、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのそれぞれについての比ＲＡＴＳ（Ａ）、ＲＡＴＳ（Ｂ）、ＲＡＴＳ（Ｃ）、ＲＡＴＳ（Ｄ）、ＲＡＴＳ（Ｅ）、ＲＡＴＳ（Ｆ）、ＲＡＴＳ（Ｇ）、ＲＡＴＳ（Ｈ）、ＲＡＴＳ（Ｉ）、ＲＡＴＳ（Ｊ）、ＲＡＴＳ（Ｋ）、ＲＡＴＳ（Ｌ）、ＲＡＴＳ（Ｍ）、ＲＡＴＳ（Ｎ）、およびＲＡＴＳ（Ｏ）を算出する。比ＲＡＴＳ（Ｘ）は、例えば或る第１タイプのビットと別の第２タイプのビットの比である。
【００８０】
次いで、メモリコントローラ２は、上限条件と範囲条件の両方が満たされているかを判断する。上限条件はパラメータＮがＮｍａｘであることである。範囲条件は、比ＲＡＴＳ（Ａ）、ＲＡＴＳ（Ｂ）、ＲＡＴＳ（Ｃ）、ＲＡＴＳ（Ｄ）、ＲＡＴＳ（Ｅ）、ＲＡＴＳ（Ｆ）、ＲＡＴＳ（Ｇ）、ＲＡＴＳ（Ｈ）、ＲＡＴＳ（Ｉ）、ＲＡＴＳ（Ｊ）、ＲＡＴＳ（Ｋ）、ＲＡＴＳ（Ｌ）、ＲＡＴＳ（Ｍ）、ＲＡＴＳ（Ｎ）、およびＲＡＴＳ（Ｏ）の全てが、第３範囲に収まっていることである。第３範囲は、第１範囲と異なっていてもよいし、同じでもよい。範囲条件は、比ＲＡＴＳ（Ａ）、ＲＡＴＳ（Ｂ）、ＲＡＴＳ（Ｃ）、ＲＡＴＳ（Ｄ）、ＲＡＴＳ（Ｅ）、ＲＡＴＳ（Ｆ）、ＲＡＴＳ（Ｇ）、ＲＡＴＳ（Ｈ）、ＲＡＴＳ（Ｉ）、ＲＡＴＳ（Ｊ）、ＲＡＴＳ（Ｋ）、ＲＡＴＳ（Ｌ）、ＲＡＴＳ（Ｍ）、ＲＡＴＳ（Ｎ）、およびＲＡＴＳ（Ｏ）のうちの１または複数（全て以外）のものが第３範囲内にあることであってもよい。
【００８１】
ステップＳＴ３１での判断がＮｏの場合、処理はステップＳＴ２９に移行する。ステップＳＴ３１での判断がＹｅｓの場合、処理はステップＳＴ３２に移行する。
【００８２】
ステップＳＴ３２において、メモリコントローラ２は、ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのそれぞれについての値（個数）ＦＢＣＳ（Ａ）、ＦＢＣＳ（Ｂ）、ＦＢＣＳ（Ｃ）、ＦＢＣＳ（Ｄ）、ＦＢＣＳ（Ｅ）、ＦＢＣＳ（Ｆ）、ＦＢＣＳ（Ｇ）、ＦＢＣＳ（Ｈ）、ＦＢＣＳ（Ｉ）、ＦＢＣＳ（Ｊ）、ＦＢＣＳ（Ｋ）、ＦＢＣＳ（Ｌ）、ＦＢＣＳ（Ｍ）、ＦＢＣＳ（Ｎ）、およびＦＢＣＳ（Ｏ）を算出する。値ＦＢＣＳ（Ｘ）は、更新シフト量ΔＶＺｒを用いたＸＲによって誤った値を有すると判断されたビットの数である。
【００８３】
次いで、メモリコントローラ２は、値ＦＢＣＳ（Ａ）、ＦＢＣＳ（Ｂ）、ＦＢＣＳ（Ｃ）、ＦＢＣＳ（Ｄ）、ＦＢＣＳ（Ｅ）、ＦＢＣＳ（Ｆ）、ＦＢＣＳ（Ｇ）、ＦＢＣＳ（Ｈ）、ＦＢＣＳ（Ｉ）、ＦＢＣＳ（Ｊ）、ＦＢＣＳ（Ｋ）、ＦＢＣＳ（Ｌ）、ＦＢＣＳ（Ｍ）、ＦＢＣＳ（Ｎ）、およびＦＢＣＳ（Ｏ）の全てが第４基準値以下であるかを判断する。値ＦＢＣＳ（Ａ）、ＦＢＣＳ（Ｂ）、ＦＢＣＳ（Ｃ）、ＦＢＣＳ（Ｄ）、ＦＢＣＳ（Ｅ）、ＦＢＣＳ（Ｆ）、ＦＢＣＳ（Ｇ）、ＦＢＣＳ（Ｈ）、ＦＢＣＳ（Ｉ）、ＦＢＣＳ（Ｊ）、ＦＢＣＳ（Ｋ）、ＦＢＣＳ（Ｌ）、ＦＢＣＳ（Ｍ）、ＦＢＣＳ（Ｎ）、およびＦＢＣＳ（Ｏ）のうちの１または複数（全て以外）のものが第４基準値以下であるかが判断されてもよい。第４基準値は、第２基準値と異なっていてもよいし、同じでもよい。
【００８４】
ステップＳＴ３２での判断がＮｏの場合、処理はステップＳＴ１４に移行する。ステップＳＴ３２での判断がＹｅｓの場合、処理はステップＳＴ１３に移行する。
【００８５】
＜１．２．２．１．シフト量推定（ステップＳＴ６）＞
図６乃至図９を参照して、ステップＳＴ６のシフト量推定がより詳細に記述される。
【００８６】
図６は、第１実施形態の記憶装置１のデータ書き込み後のメモリセルＭＣの状態と誤り訂正前後のデータの例を示す。具体的には、図６は、或るセルユニットＣＵに４ページのデータが書き込まれ、時間が経過した後の、メモリセルトランジスタＭＴの閾値電圧の分布を示す。また、図６は、ＥｒステートとＡステートへと書き込まれたメモリセルからリード電圧ＶＡを使用してリードされて誤りを含んだデータと、誤り訂正された（正しい）データを示す。
【００８７】
図６に示されるように、メモリセルトランジスタＭＴの閾値電圧は、時間とともに意図せずに変化し得る。このため、Ａステートへと書き込まれたメモリセルトランジスタＭＴの一部は、リード電圧ＶＡより低い閾値電圧を有することになって、リード電圧ＶＡを使用したＡＲによって誤ってＥｒステートにあると判断される場合がある（ハッチングにより図示）。同様に、Ｅｒステートに書き込まれたメモリセルトランジスタＭＴの一部は、リード電圧ＶＡより高い閾値電圧を有することになって、リード電圧ＶＡを使用したＡＲによって誤ってＡステートにあると判断される場合がある。
【００８８】
Ａステートへと書き込まれたメモリセルトランジスタＭＴの閾値電圧のうちで最低のものは、電圧ＶＡＬとして引用される。Ｅｒステートへと書き込まれたメモリセルトランジスタＭＴの閾値電圧のうちで最高のものは、電圧ＶＥＨとして引用される。ただし、メモリコントローラ２は、Ａステートへと書き込まれたメモリセルトランジスタＭＴのうち、どれがリード電圧ＶＡより低い閾値電圧を有するかを認識していない。同様に、メモリコントローラ２は、Ｅｒステートへと書き込まれたメモリセルトランジスタＭＴのうち、どれがリード電圧ＶＡより高い閾値電圧を有するか認識していない。したがって、図６の閾値分曲線の点線の部分は未知であり、説明の便宜上、描かれている。
【００８９】
Ａステートへと書き込まれ、リード電圧ＶＡより低い閾値電圧を有するメモリセルトランジスタＭＴは、ロワーページ中の対応するビットにおいて、１を保持していると割り出される。しかし、誤り訂正により、当該ビットは０を保持していると訂正される（ハッチングにより図示）。よって、このメモリセルトランジスタＭＴは、Ａステートへと書き込まれて、誤ってＥｒステートにあると割り出されたことになり、以下、このような誤ったリードはＡ→Ｅｒ誤リードと称される。また、Ａ→Ｅｒ誤リードを起こした位置のビットはＡ→Ｅｒ誤りビットと称される。メモリコントローラ２は、Ａ→Ｅｒ誤りビットを特定するために、（誤り訂正前）ロワー、ミドル、アッパー、およびトップページリードデータ、ならびに誤り訂正後ロワー、ミドル、アッパー、およびトップページリードデータのそれぞれの同じ位置のビットの値を比較する。そして、ミドル、アッパー、およびトップページリードデータ中、ならびにミドル、アッパー、およびトップページリードデータ中で１であり、かつロワーページリードデータ中で１であるとともに誤り訂正後ロワーページリードデータ中で０であれば、その位置のビットはＡ→Ｅｒ誤りビットであると特定されることができる。メモリコントローラ２は、１ページに含まれる全てのビットから、Ａ→Ｅｒ誤りビットを全て特定し、特定されたＡ→Ｅ誤りビットの数Ｃ（Ａ→Ｅｒ）を数える。
【００９０】
同様に、Ｅｒステートへと書き込まれ、リード電圧ＶＡより高い閾値電圧を有するメモリセルトランジスタＭＴは、ロワーページ中の対応するビットにおいて、０を保持していると割り出される。しかし、誤り訂正により、当該ビットは１を保持していると訂正される（ハッチングにより図示）。よって、このメモリセルトランジスタＭＴは、Ｅｒステートへと書き込まれて、誤ってＡステートにあると割り出されたことなり、以下、このような誤ったリードはＥｒ→Ａ誤リードと称される。また、Ｅｒ→Ａ誤リードを起こした位置のビットはＥｒ→Ａ誤りビットと称される。メモリコントローラ２は、Ｅｒ→Ａ誤りビットを特定するために、（誤り訂正前）ロワー、ミドル、アッパー、およびトップページリードデータ、ならびに誤り訂正後ロワー、ミドル、アッパー、およびトップページリードデータのそれぞれの同じ位置のビットの値を比較する。そして、ミドル、アッパー、およびトップページリードデータ中、ならびにミドル、アッパー、およびトップページリードデータ中で１であり、かつロワーページリードデータ中で０であるとともに誤り訂正後ロワーページリードデータ中で１であれば、その位置のビットはＥｒ→Ａ誤りビットであると特定されることができる。メモリコントローラ２は、１ページに含まれる全てのビットから、Ｅｒ→Ａ誤りビットを全て特定し、特定されたＥｒ→Ａ誤りビットの数Ｃ（Ｅｒ→Ａ）を数える。
【００９１】
数Ｃ（Ａ→Ｅｒ）と数Ｃ（Ｅｒ→Ａ）の和は、図５を参照してステップＳＴ６に関して記述された値ＦＢＣ（Ａ）に等しい。
【００９２】
Ｅｒ→Ａ誤リードとＡ→Ｅｒ誤リードは、リード電圧ＶＡが閾値電圧の分布曲線の谷の位置の閾値電圧に等しいリード電圧ＶＡｔと異なることに起因する。図７の部分（ａ）に示されるように、ＥrステートのメモリセルトランジスタＭＴの閾値電圧の分布とＡステートのメモリセルトランジスタＭＴの閾値電圧の分布が対照であると仮定すると、Ａ→Ｅｒ誤りビットの数とＥｒ→Ａ誤りビットの数は、閾値電圧の分布曲線の谷の位置の閾値電圧に等しい大きさのリード電圧ＶＡｔが使用されると、最も少ない。このとき、Ａ→Ｅｒ誤りビットの数とＥｒ→Ａ誤りビットの数は等しい。
【００９３】
図７の部分（ｂ）に示されるように、最適なリード電圧ＶＡｔより低いリード電圧ＶＡ１が使用されると、Ａ→Ｅｒ誤りビット数は、Ｅｒ→Ａ誤りビット数より少ない。リード電圧ＶＡ１が最適リード電圧ＶＡｔよりも低いほど、Ａ→Ｅｒ誤りビット数とＥｒ→Ａ誤りビット数の差はより大きい。
【００９４】
図７の部分（ｃ）に示されるように、最適なリード電圧ＶＡｔより高いリード電圧ＶＡ２が使用されると、Ａ→Ｅｒ誤りビット数は、Ｅｒ→Ａ誤りビット数より多い。リード電圧ＶＡ２が最適リード電圧ＶＡｔよりも高いほど、Ａ→Ｅｒ誤りビット数とＥｒ→Ａ誤りビット数の差はより大きい。
【００９５】
よって、選択セルユニットＣＵからのリードでは、リード電圧ＶＡｔが使用されることが望まれ、リード電圧ＶＡｔの推定が望まれる。上記のように、或るリード電圧ＶＡと最適なリード電圧ＶＡｔとの差は、リード電圧ＶＡが使用されたＡＲでのＡ→Ｅｒ誤りビット数とＥｒ→Ａ誤りビット数に依存する。よって、リード電圧ＶＡが使用されたときのＡ→Ｅｒ誤りビット数とＥｒ→Ａ誤りビット数から、最適なリード電圧ＶＡｔが推定されることができる。推定のために、メモリコントローラ２は、図５を参照してステップＳＴ６に関して記述された比ＲＡＴ（Ａ）を算出する。比ＲＡＴ（Ａ）は、例えば、Ｃ（Ｅｒ→Ａ）／Ｃ（Ａ→Ｅｒ）とされることができる。比ＲＡＴ（Ａ）は、リード電圧ＶＡｔを得るためのシフト量ΔＶＡと相関を有しており、メモリコントローラ２は、比ＲＡＴ（Ａ）に基づいてシフト量ΔＶＡを決定することができる。以下、決定の方法が記述される。
【００９６】
図８は、第１実施形態の記憶装置での或る選択セルユニットＣＵについての比ＲＡＴ（Ａ）と値ＦＢＣ（Ａ）との関係、および比ＲＡＴ（Ａ）と最適と推定されるシフト量ΔＶＡｔとの関係を対数スケールで示す。最適と推定されるシフト量（以下、単に推定シフト量と称される場合がある）ΔＶＡｔは、最適なリード電圧ＶＡｔと、基準となる或るリード電圧ＶＡとの差を指す。
【００９７】
図８に示されるように、比ＲＡＴ（Ａ）は値ＦＢＣ（Ａ）と相関しており、値ＦＢＣ（Ａ）が最小であるのは、比ＲＡＴ（Ａ）＝１（ｌｏｇ（ＲＡＴ（Ａ））＝１）のときである。よって、比ＲＡＴ（Ａ）＝１をもたらすリード電圧は、最適なリード電圧ＶＡｔであり、最適リード電圧ＶＡｔは、閾値電圧分布曲線の谷の位置の閾値電圧に等しい。
【００９８】
比ＲＡＴ（Ａ）は、シフト量ΔＶＡとも相関しており、負のｌｏｇ（ＲＡＴ（Ａ））の絶対値が大きいほど、その比ＲＡＴ（Ａ）をもたらしたリード電圧ＶＡ２はより高い。一方、正のｌｏｇ（ＲＡＴ（Ａ））の絶対値が大きいほど、その比ＲＡＴ（Ａ）をもたらしたリード電圧ＶＡ１はより高い。
【００９９】
この相関関係に基づいて、メモリコントローラ２は、或るリード電圧ＶＡで得られた比（ＲＡＴ（Ａ）に基づいて、推定シフト量ΔＶＡｔを推定する。図８の例では、ｌｏｇ（ＲＡＴ（Ａ））＝−１の場合の推定シフト量ΔＶＡｔは、−１（例えば、−３ＤＡＣ）である。ｌｏｇ（ＲＡＴ（Ａ））＝１の場合の推定シフト量ΔＶＡｔは、＋１（例えば、＋３ＤＡＣ）である。
【０１００】
メモリコントローラ２は、或る比ＲＡＴ（Ａ）についての推定シフト量ΔＶＡｔを、関数によって決定することができる。または、メモリコントローラ２は、或る比ＲＡＴ（Ａ）についての推定シフト量ΔＶＡｔを、あらかじめ定められた対応関係に基づいて決定することができる。その目的で、メモリコントローラ２は、例えば電源を供給されている間、図９に示される表のように互いに関連づけられたデータのセットを、ＲＡＭ２３上で保持する。図９は、第１実施形態の比・シフト量対応表の例を示す。図９に示されるように、相違する比ＲＡＴの値の範囲が定義されている。各範囲は、別の範囲と重複しない。そして、各範囲についての推定シフト量ＶＸｔが対応づけられている。比・シフト量対応表は、各ＸＲに専用に用意されていてもよいし、１または複数または全てのＺＲ用に共用されてもよい。
【０１０１】
こうして得られた推定シフト量ΔＶＡｔは、更新シフト量ΔＶＡｒとして使用される。
【０１０２】
メモリコントローラ２はまた、推定シフト量ΔＶＢｔ、ΔＶＣｔ、ΔＶＤｔ、ΔＶＥｔ、ΔＶＦｔ、ΔＶＧｔ、ΔＶＨｔ、ΔＶＩｔ、ΔＶＪｔ、ΔＶＫｔ、ΔＶＬｔ、ΔＶＭｔ、ΔＶＮｔ、およびΔＶＯｔを推定する。推定シフト量ΔＶＸｔは、基準となるリード電圧ＶＸとの差である。推定シフト量ΔＶＢｔ、ΔＶＣｔ、ΔＶＤｔ、ΔＶＥｔ、ΔＶＦｔ、ΔＶＧｔ、ΔＶＨｔ、ΔＶＩｔ、ΔＶＪｔ、ΔＶＫｔ、ΔＶＬｔ、ΔＶＭｔ、ΔＶＮｔ、およびΔＶＯｔの推定の方法は、推定シフト量ΔＶＡｔの推定と同様である。すなわち、リード電圧ＶＸについての推定シフト量ΔＶＸｔの推定のために、リード電圧ＶＸによって区別される計２つの上側ステートおよび下側ステートのいずれかにあると判断されたメモリセルトランジスタＭＴが着目される。リード電圧ＶＸによって区別される上側ステートは、リード電圧ＶＸ以上の閾値電圧を有すると判断されるメモリセルトランジスタＭＴが属するステートである。リード電圧ＶＸによって区別される下側ステートは、リード電圧ＶＸ未満の閾値電圧を有すると判断されるメモリセルトランジスタＭＴが属するステートである。例えば、リード電圧ＶＣによって区別される２つのステートの場合、下側ステートはＢステートであり、上側ステートはＣステートである。
【０１０３】
Ａ→Ｅｒ誤りビット数の計数と同様にして、メモリコントローラ２は、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータ中のビットに基づいて、下側ステートにあると判断されたものの誤り訂正によって上側ステートにあると判断されたメモリセルトランジスタＭＴの第１誤りビット数を計数する。第１誤りビット数は、推定シフト量ΔＶＡｔの推定の場合の数Ｃ（Ａ→Ｅｒ）に相当する。
【０１０４】
また、Ｅｒ→Ａ誤りビット数の計数と同様にして、メモリコントローラ２は、ロワーページリードデータ、ミドルページリードデータ、アッパーページリードデータ、およびトップページリードデータ中のビットの値に基づいて、上側ステートにあると判断されたものの誤り訂正によって下側ステートにあると判断されたメモリセルトランジスタＭＴの第２誤りビット数を計数する。第２誤りビット数は、推定シフト量ΔＶＡｔの推定の場合の数Ｃ（Ｅｒ→Ａ）に相当する。
【０１０５】
メモリコントローラ２、比ＲＡＴ（Ａ）の算出と同様にして、比ＲＡＴ（Ｚ）＝第２誤りビット数／第１誤りビット数を算出する。メモリコントローラ２は、比ＲＡＴ（Ａ）からの推定シフト量ΔＶＡｔの割り出しと同様にして、比ＲＡＴ（Ｚ）から推定シフト量ΔＺｔを割り出す。
【０１０６】
メモリコントローラ２はまた、推定シフト量ΔＶＢｔ、ΔＶＣｔ、ΔＶＤｔ、ΔＶＥｔ、ΔＶＦｔ、ΔＶＧｔ、ΔＶＨｔ、ΔＶＩｔ、ΔＶＪｔ、ΔＶＫｔ、ΔＶＬｔ、ΔＶＭｔ、ΔＶＮｔ、およびΔＶＯｔを、更新シフト量ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、ΔＶｒ、およびΔＶＯｒとして使用する。
【０１０７】
ここまで記述された比ＲＡＴ（Ｘ）が使用される例の場合、ステップＳＴ１１で使用される第１範囲は、０．５超２以下であることが可能である。
【０１０８】
＜１．２．２．２．シフト量推定およびシフト量適用（ステップＳＴ２３、ＳＴ２４）＞
図５を参照して記述されるように、ステップＳＴ２３、ＳＴ２４、ＳＴ２５、ＳＴ２６、およびＳＴ２７からなる組が、選択セルユニットＣＵの全４つのページシフトリードデータの誤り訂正が成功するまで上限を超えない範囲で繰り返される。
【０１０９】
以下、図１０乃至図１４を参照して、１ループでのステップＳＴ２３およびＳＴ２４の処理がより詳細に記述される。
【０１１０】
ステップＳＴ２３の開始の時点では、選択セルユニットＣＵの全４つのページのうちの１〜３つのみの誤り訂正成功ページが得られている。ステップＳＴ２３がステップＳＴ２１から到達された場合は、ステップＳＴ３で得られた、訂正後ロワーページリードデータ、訂正後ミドルページリードデータ、訂正後アッパーページリードデータ、および訂正後トップページリードデータのいずれか１つ、または２つ、または３つが誤り訂正成功しているとともにステップＳＴ２３のシフト量推定の対象である。
【０１１１】
一方、ステップＳＴ２３がステップＳＴ２９から到達された場合は、ステップＳＴ２６で得られた、訂正後ロワーページシフトリードデータ、訂正後ミドルページシフトリードデータ、訂正後アッパーページシフトリードデータ、および訂正後トップページシフトリードデータのいずれか１つ、または２つ、または３つが、誤り訂正成功しているとともにステップＳＴ２３のシフト量推定の対象である。
【０１１２】
図１０乃至図１４は、ステップＳＴ２３のシフト量推定とステップＳ２５のシフトリードの結果の例を、相違するループについて示す。図１０、図１１、図１３、および図１４は、図５のステップＳＴ２３、ＳＴ２４、ＳＴ２５、ＳＴ２６、ＳＴ２７、ＳＴ２８、およびＳＴ２９を１ループとして、相違するループでの状態を示す。図１０、図１１、図１３、および図１４は、それぞれ、第１ループ、第２ループ、第３ループ、および第４ループでの状態を示す。実線は、ステップＳＴ２３のときの選択セルユニットＣＵのメモリセルトランジスタＭＴの閾値電圧の分布を示す。破線は、書き込まれた直後の選択セルユニットＣＵのメモリセルトランジスタＭＴの閾値電圧の分布を示す。
【０１１３】
図１０乃至図１４で、表記「ＶＡ」、「ＶＢ」、「ＶＣ」、「ＶＤ」、「ＶＥ」、「ＶＦ」、「ＶＧ」、「ＶＨ」、「ＶＩ」、「ＶＪ」、「ＶＫ」、「ＶＬ」、「ＶＭ」、「ＶＮ」、および「ＶＯ」の下に記載されている「＃１：＃２」（＃１、＃２は数値）の＃１および＃２は、選択セルユニットＣＵ中の、書き込まれたステートとは別のステートに属する判断されたビットの数を示す。すなわち、＃１は、第１誤りビット数であり、すなわち、リード電圧ＶＸによりいずれに属するかが判断される計２つの上側ステートと下側ステートのうちの上側ステートへと書き込まれたものの下側ステートにあると判断されたビットの数である。＃２は、第２誤りビット数であり、すなわち、下側ステートへと書き込まれたものの上側ステートにあると判断されたビットの数である。すなわち、＃２／＃１＝ＲＡＴ（Ｘ）である。
【０１１４】
表記「（）」中の「＃１：＃２」は誤り訂正が未成功のページのためのリード電圧ＶＸについての値であり、理解の促進のために記載してあるが、実際には、メモリコントローラ２にとって未知の値である。また、図１０乃至図１４でページを特定する表記「ロワーページ」、「ミドルページ」、「アッパーページ」、および「トップページ」の右側の数値は、対応するページのデータ中の総ＦＢＣを示す。総ＦＢＣは、対応するページ中の全ての「＃１：＃２」の全ての＃１および全ての＃２の和に等しい。また、図１０乃至図１４で、矢印は、ベクトルであり、その向きにより、算出または適用された更新シフト量ΔＶＸｒの符号（正または負）を示し、その長さにより、更新シフト量ΔＶＸｒの大きさを示す。
【０１１５】
図１０では、例として、アッパーページリードデータ（ステップＳＴ２１経由の場合）またはアッパーページシフトリードデータ（ステップＳＴ２９経由の場合）の誤り訂正のみが成功している。すなわち、第１ループでのステップＳＴ２３では、アッパーページのためのリード電圧が、シフト量推定の対象である。第１ループのステップＳＴ２３により、更新シフト量ΔＶＢｒ、ΔＶＨｒ、およびΔＶＮｒが割り出される。
【０１１６】
第１ループのステップＳＴ２４において、更新シフト量ΔＶＢｒが更新シフト量ΔＶＡｒおよびΔＶＣｒとして適用され、更新シフト量ΔＶＨｒが更新シフト量ΔＶＧｒおよびΔＶＩｒとして適用され、更新シフト量ΔＶＮｒが更新シフト量ΔＶＭｒおよびΔＶＯｒとして適用される。なお、図中において更新シフト量の適用関係は一点鎖線により示されている。第１ループのステップＳＴ２３およびＳＴ２４により、更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが取得される。
【０１１７】
第１ループでのステップＳＴ２５において、第１ループのステップＳＴ２３およびＳＴ２４で取得された更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが使用される。図１０の例では、第１ループのステップＳＴ２６において、アッパーページシフトリードデータに加えて、ミドルページシフトリードデータおよびトップページシフトリードデータの誤り訂正が成功する。よって、訂正後ミドルページリードデータは訂正後ミドルページシフトリードデータにより更新され、訂正後トップページリードデータは訂正後トップページシフトリードデータにより更新される。訂正後アッパーページリードデータは訂正後アッパーページシフトリードデータと同じであるので、訂正後アッパーページリードデータは訂正後アッパーページシフトリードデータで更新されてもされなくてもよい。図１０の例では、４つ全てのシフトリードデータの誤り訂正が成功しておらず、よって、処理は第２ループに進入する。
【０１１８】
第１ループでミドルページシフトリードデータおよびトップページシフトリードデータの誤り訂正が成功したので、図１１の第２ループのステップＳＴ２３では、ミドルページ、アッパーページ、およびトップページのためのリード電圧が、シフト量推定の対象である。第２ループのステップＳＴ２３により、更新シフト量ΔＶＢｒ、ΔＶＣｒ、ΔＶＥｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが割り出される。
【０１１９】
第２ループのステップＳＴ２４において、更新シフト量ΔＶＢｒが更新シフト量ΔＶＡｒとして適用され、更新シフト量ΔＶＣｒおよび（または）ΔＶＥｒが更新シフト量ΔＶＤｒとして適用され、更新シフト量ΔＶＥｒおよび（または）ΔＶＧｒが更新シフト量ΔＶＦｒとして適用され、更新シフト量ΔＶＪｒおよび（または）ΔＶＬｒが更新シフト量ΔＶＫｒとして適用される。第２ループのステップＳＴ２３およびＳＴ２４により、更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが取得される。
【０１２０】
更新シフト量の適用を受けるリード電圧の両隣のリード電圧についての計２つの更新シフト量が利用可能な場合、任意の一方が用いられてもよいし、２つの値の平均が用いられてもよい。図１２は、第１実施形態のメモリコントローラでの更新シフト量の適用の例を示し、リード電圧ＶＦへの適用の例を示す。
【０１２１】
図１２に示されるように、更新シフト量ΔＶＦｒはステップＳＴ２３で割り出されていない（記号「×」により表示）。一方、リード電圧ＶＦ（ＦＲ）の両隣のリード電圧ＶＥ（ＥＲ）およびＶＧ（ＧＲ）のそれぞれのための更新シフト量ΔＶＥｒおよびΔＶＧｒは、ステップＳＴ２３においてそれぞれ、−１および−５と割り出された。この場合、更新シフト量ΔＶＦｒは、更新シフト量ΔＶＥｒ（＝−１）の適用を受けてもよいし、更新シフト量ΔＶＧｒ（＝−５）の適用を受けてもよいし、更新シフト量ΔＶＥｒとΔＶＧｒの平均（＝−３）が適用されてもよい。図１２は平均の適用を例として示す。
【０１２２】
図１１に戻る。第２ループのステップＳＴ２５において、第２ループのステップＳＴ２３およびＳＴ２４で取得された更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが使用される。更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒの使用により、いくつかの比ＲＡＴ（Ｚ）は１に近づき、いくつかの数ＦＢＣ（Ｚ）は第１ループでの対応する数ＦＢＣ（Ｚ）から減少する。一方、図１１の例では、第２ループのステップＳＴ２６において、更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが使用されても、ロワーページシフトリードデータの誤り訂正は成功しない。よって、処理は第３ループに進入する。
【０１２３】
第２ループでロワーページシフトリードデータの誤り訂正が失敗したので、図１３の第３ループのステップＳＴ２３では、第２ループと同じく、ミドルページ、アッパーページ、およびトップページのためのリード電圧が、シフト量推定の対象である。第３ループのステップＳＴ２３の過程で、いくつかのリード電圧ＶＺについての比ＲＡＴ（Ｚ）は、第３範囲に収まっていることが明らかになった。このようなリード電圧ＶＺについての更新シフト量ΔＶＺｒはステップＳＴ２３において推定されない。図１３の例では、第２ループのステップＳＴ２５のシフトリードにより、ＲＡＴ（Ｂ）、ＲＡＴ（Ｃ）、ＲＡＴ（Ｄ）、ＲＡＴ（Ｅ）、ＲＡＴ（Ｆ）、ＲＡＴ（Ｇ）、ＲＡＴ（Ｈ）、ＲＡＴ（Ｉ）、ＲＡＴ（Ｊ）、ＲＡＴ（Ｋ）、ＲＡＴ（Ｌ）、ＲＡＴ（Ｍ）、およびＲＡＴ（Ｎ）が第３範囲内にある。よって、更新シフト量ΔＶＢｒ、ΔＶＣｒ、ΔＶＥｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、およびΔＶＮｒは割り出されず、シフト量推定の対象でないロワーページについての更新シフト量ΔＶＡｒ、ΔＶＤｒ、ΔＶＦｒ、およびΔＶＫｒは割り出されない。代わりに、１つ前のループ（第２ループ）で推定された更新シフト量ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、およびΔＶＮｒが確定した最終的な値として維持され、図５のフローの終了まで、再度推定されない。一方、シフト量推定の対象の３つのミドル、アッパー、およびトップページのためのＢＲ、ＣＲ、ＥＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＬＲ、ＭＲ、ＮＲ、およびＯＲのうち、ＯＲについての比ＲＡＴ（Ｏ）は、第３範囲外にある。よって、更新シフト量ΔＶＯｒが割り出される。
【０１２４】
第３ループのステップＳＴ２４において、ステップＳＴ２３でのシフト量推定の対象でなく、かつ未確定の更新シフト量ΔＶＡｒに、隣の更新シフト量ΔＶＢｒが適用される。こうして、第３ループのステップＳＴ２３およびＳＴ２４により、更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが取得される。
【０１２５】
第３ループのステップＳＴ２５において、第３ループのステップＳＴ２３およびＳＴ２４で取得された更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが使用される。更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒの使用により、いくつかの比ＲＡＴ（Ｚ）は１に近づき、いくつかの値ＦＢＣ（Ｚ）は第２ループでの対応する値ＦＢＣ（Ｚ）から減少する。また、図１３の例では、第３ループのステップＳＴ２６において、４つ全てのシフトリードデータの誤り訂正が成功する。しかしながら、パラメータ（ループ数）ＮはＮｍａｘ未満であり、第３範囲にない１つ以上の比ＲＡＴ（Ｚ）が存在するので、処理は第４ループに進入する。
【０１２６】
第３ループで４つ全てのページシフトリードデータの誤り訂正が成功したので、図１４の第４ループのステップＳＴ２３では、ロワーページ、ミドルページ、アッパーページ、およびトップページ全てのためのリード電圧が、シフト量推定の対象である。ただし、これまでのループで確定済みの更新シフト量ΔＶＺｒおよび、ステップＳＴ２３の過程で第３範囲内に収まっていることが明らかになった比ＲＡＴ（Ｚ）に対応する更新シフト量ΔＶＺｒは割り出されない。図１４の例では、比ＲＡＴ（Ａ）は第３範囲に収まったので、更新シフト量ΔＶＡｒは推定されない。
【０１２７】
第４ループのステップＳＴ２４では、適用を受ける更新シフト量はない。
【０１２８】
第４ループのステップＳＴ２５において、第４ループのステップＳＴ２３およびＳＴ２４で取得された更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒが使用される。第４ループのステップＳＴ２５において、データの割り出しに必要な全てのＺＲについての更新シフト量ΔＶＺｒが確定したページについては、シフトリードの対象から除外されることができる。図１４の例では、ミドルページのための更新シフト量ΔＶＣｒ、ΔＶＧｒ、ΔＶＩｒ、およびΔＶＭｒは確定済みなので、第４ループのステップＳＴ２５では、ミドルページシフトリードは省略されることができる。同様に、アッパーページのための更新シフト量ΔＶＢｒ、ΔＶＨｒ、およびΔＶＮｒは確定済みなので、第４ループのステップＳＴ２５では、アッパーページシフトリードは省略されることができる。
【０１２９】
更新シフト量ΔＶＡｒ、ΔＶＢｒ、ΔＶＣｒ、ΔＶＤｒ、ΔＶＥｒ、ΔＶＦｒ、ΔＶＧｒ、ΔＶＨｒ、ΔＶＩｒ、ΔＶＪｒ、ΔＶＫｒ、ΔＶＬｒ、ΔＶＭｒ、ΔＶＮｒ、およびΔＶＯｒの使用により、いくつかの比ＲＡＴ（Ｚ）は１に近づき、いくつかの値ＦＢＣ（Ｚ）は第３ループでの対応する値ＦＢＣ（Ｚ）から減少する。
【０１３０】
ループ数Ｎが上限に達していない限り（図５のステップＳＴ３１のＮｏ）、さらなるループが行われることができる。
【０１３１】
＜１．３．利点＞
第１実施形態のメモリシステム５によれば、１セルユニットＣＵ中の複数のページのリードのための更新シフト量ΔＶＸｒが効率よく割り出されることができる。詳しくは、以下の通りである。
【０１３２】
ステップＳＴ５のシフト量推定は、高い精度で、短時間で、更新シフト量ΔＶＸｒを割り出すことができる。また、或るリード電圧Ｖ１についての更新シフト量ΔＶ１ｒは、リード電圧Ｖ１の近く（例えば隣）のリード電圧Ｖ２についての更新シフト量ΔＶ２ｒと相関を有することが知られている。この現象に基づいて、第１実施形態では、１セルユニットＣＵ中の或る第１ページのリードデータが誤り訂正に成功すると、当該ページのための１つのリード電圧Ｖ１についての更新シフト量ΔＶ１ｒが取得され、取得された更新シフト量ΔＶ１ｒが、リード電圧Ｖ１の１つまたは２つの隣のリード電圧Ｖ２ついての更新シフト量ΔＶ２ｒに適用され、推定および適用された更新シフト量ΔＶ２ｒを用いたデータリードおよび誤り訂正が行われる。この誤り訂正で訂正に初めて成功する第２ページデータが生じると、第１および第２ページに対するシフト量推定が行われ、以下同様に繰り返される。第１ループで第１ページについての高精度の更新シフト量ΔＶ１ｒが誤り訂正未成功の第２ページについての更新シフト量ΔＶ２ｒに適用されるため、第２ページの誤り訂正は成功しやすい。そして、第２ループで、第１ページについての再度のシフト量推定および第２ページへのシフト量推定により、高精度でより多くの更新シフト量ΔＶＺｒが得られる。このようなループの繰り返しにより、ループの繰り返しの度により高精度でより多くの更新シフト量ΔＶＺｒが得られ、全てのページのリードデータについての誤り訂正が短時間で成功するとともに、更新シフト量ΔＶＸｒが得られる。
【０１３３】
＜１．４．変形例＞
上に記述される例では、ステップＳＴ２４において、ステップＳＴ２３でのシフト量推定の対象でないととおもに未確定の更新シフト量ΔＶＺｒに対して、隣の確定した更新シフト量ΔＶＺｒが利用可能である場合、常に適用される。しかしながら、実施形態はこの例に限られない。或る未確定の更新シフト量ΔＶＺｒに対して、隣の確定した更新シフト量ΔＶＺｒが利用可能であっても適用されなくてもよい。この場合、例えば、適用されない更新シフト量ΔＶＺｒに対応するリード電圧ＶＺを使用してリードされるページのデータの誤りの訂正が成功した後に、誤り訂正成功前に適用されなかった未確定の更新シフト量ΔＶＺｒに対して隣の確定済みの更新シフト量ΔＶＺｒが適用されることが可能である。このような誤り訂正成功まで他の更新シフト量ΔＶＺｒの適用を受けないリード電圧ＶＺは、例えば、他のリード電圧ＶＺとは推定シフト量ΔＶＺｔの性質（量および（または）正負の符号など）の異なるものであることが可能である。
【０１３４】
また、上に記述される例では、図５に示されるステップＳＴ２４において、ステップＳＴ２３４で得られたリード電圧ＶＺのための更新シフト量ΔＶＺｒは、リード電圧ＶＺの隣のリード電圧ＶＺにのみ適用される。変形例は、この例とは別の形で適用が行われる。
【０１３５】
図１５は、第１実施形態の変形例のメモリコントローラ２での更新シフト量ΔＶＺｒの適用の例を示す。図１５の例では、選択セルユニットＣＵ中の４つのページのうちトップページのみのデータが誤り訂正に成功した。このため、ステップＳＴ２３のシフト量推定によって、トップページのためのリード電圧ＶＥ、ＶＪ、ＶＬ、およびＶＯについての更新シフト量ΔＶＥｒ、ΔＶＪｒ、ΔＶＬｒ、およびΔＶＯｒが得られている。
【０１３６】
変形例では、更新シフト量ΔＶＥｒ、ΔＶＪｒ、ΔＶＬｒ、およびΔＶＯｒは、対応するリード電圧ＶＥ、ＶＪ、ＶＬ、およびＶＯの隣のリード電圧ＶＤ、ＶＦ、ＶＩ、ＶＫ、ＶＭ、およびＶＮだけでなく、一点鎖線で示されるように、隣の隣のリード電圧ＶＣ、ＶＧ、およびＶＨにも適用される。すなわち、更新シフト量ΔＶＥｒは、更新シフト量ΔＶＤｒおよびΔＶＦｒとして適用されるだけでなく、更新シフト量ΔＶＣｒおよびΔＶＧｒとしても適用されることができる。更新シフト量ΔＶＪｒは、更新シフト量ΔＶＩｒおよびΔＶＫｒとして適用されるだけでなく、更新シフト量ΔＶＨｒとしても適用されることができる。更新シフト量ΔＶＬｒは、更新シフト量ΔＶＫｒおよびΔＶＭｒとして適用されるだけでなく、更新シフト量ΔＶＮｒとしても適用されることができる。更新シフト量ΔＶＯｒは、更新シフト量ΔＶＮｒとして適用されるだけでなく、更新シフト量ΔＶＭｒしても適用されることができる。
【０１３７】
適用可能な或る更新シフト量ΔＶ１１ｒの隣の隣の更新シフト量ΔＶ１２ｒの隣にさらに別の適用可能な更新シフト量ΔＶ１３ｒがある場合は、更新シフト量ΔＶ１２ｒには更新シフト量ΔＶ１３ｒが適用されて、更新シフト量ΔＶ１１ｒは適用されなくてもよい。図１５の例では、リード電圧ＶＯの隣の隣のリード電圧ＶＭは、反対側でリード電圧ＶＬと隣り合う。よって、更新シフト量ΔＶＬｒが更新シフト量ΔＶＭｒとして適用され、更新シフト量ΔＶＯｒは更新シフト量ΔＶＭｒとして適用されなくてもよい。
【０１３８】
また、或るリード電圧ＶＺのための更新シフト量ΔＶＺｒとして、複数のリード電圧ＶＺのそれぞれの更新シフト量ΔＶＺｒの加重平均が適用されてもよい。例えば、或るリード電圧Ｖ１１のための更新シフト量ΔＶ１１ｒのために、リード電圧Ｖ１１の隣のリード電圧Ｖ１２のための更新シフト量ΔＶ１２ｒと、リード電圧Ｖ１２の隣のリード電圧Ｖ１３のための更新シフト量ΔＶ１３ｒが使用されることができる。そして、重みＨ１を乗じられた更新シフト量ΔＶ１２ｒと、重みＨ２（＜Ｈ１）を乗じられた更新シフト量ΔＶ１３ｒの平均の値が、更新シフト量ΔＶ１１ｒに適用されることができる。図１６の例では、リード電圧ＶＤ（ＤＲ）のための更新シフト量ΔＶＤｒには、隣のリード電圧ＶＣ（ＣＲ）のための更新シフト量ΔＶＣｒ（＝−１）に重みＨ１が乗じられた値と、隣の隣のリード電圧ＶＢ（ＢＲ）のための更新シフト量ΔＶＢｒ（＝２）に重みＨ２が乗じられた値と、の平均が適用されることができる。
【０１３９】
さらに、リード電圧Ｖ１１の、リード電圧Ｖ１２およびＶ１３と反対側のリード電圧Ｖ１４のための更新シフト量ΔＶ１４ｒがさらに平均の算出に使用されてもよいし、さらに、リード電圧Ｖ１４の隣のリード電圧Ｖ１５のための更新シフト量ΔＶ１５ｒも平均の算出に参加してもよい。
【０１４０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１４１】
１…記憶装置、２…メモリコントローラ、３…ホスト装置、５…メモリシステム、１１…メモリセルアレイ、１２…入出力回路、１３…シーケンサ、１５…ドライバ、１６…センスアンプ、１９…ロウデコーダ、２１…ホストインターフェイス、２２…ＣＰＵ、２３…ＲＡＭ、２４…ＲＯＭ、２５…メモリインターフェイス、２６…ＥＣＣ回路。
【図１】
2020155174.tif 000003
【図２】
2020155174.tif 000004
【図３】
2020155174.tif 000005
【図４】
2020155174.tif 000006
【図５】
2020155174.tif 000007
【図６】
2020155174.tif 000008
【図７】
2020155174.tif 000009
【図８】
2020155174.tif 000010
【図９】
2020155174.tif 000011
【図１０】
2020155174.tif 000012
【図１１】
2020155174.tif 000013
【図１２】
2020155174.tif 000014
【図１３】
2020155174.tif 000015
【図１４】
2020155174.tif 000016
【図１５】
2020155174.tif 000017
【図１６】
2020155174.tif 000018