(57)【要約】      （修正有）【課題】プログラムディスターブ、リードディスターブの影響やデータリテンションの劣化の影響を除去して信頼性を向上することが可能なメモリシステムを提供する。【解決手段】複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、前記不揮発性半導体記憶装置の使用開始時と時間経過後とで読み出しレベルを変える。【選択図】図１０
2011100519.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、前記不揮発性半導体記憶装置の使用開始時と時間経過後とで読み出しレベルを変えることを特徴とするメモリシステム。
【請求項２】
前記制御部は、前記不揮発性半導体記憶装置の書き込み回数、消去回数、読み出し回数の少なくとも１つに応じて前記読み出しレベルを変えることを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記制御部は、前記メモリセルに設定された閾値電圧を読み出すための本来の読み出しレベルより高い読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルとの一方で、前記メモリセルから１回データを読み出すことを特徴とする請求項２記載のメモリシステム。
【請求項４】
前記制御部は、前記メモリセルに設定された閾値電圧を読み出すための本来の読み出しレベルより高い読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルの両方で、前記メモリセルからデータを読み出すことを特徴とする請求項２記載のメモリシステム。
【請求項５】
前記制御部は、前記不揮発性半導体記憶装置の放置時間を記録する管理領域を有し、前記管理領域に記録された放置時間が規定時間以上である場合、前記メモリセルに設定された閾値電圧を読み出すための本来の読み出しレベルより低い読み出しレベルで、前記メモリセルからデータを読み出すことを特徴とする請求項２記載のメモリシステム。
【請求項６】
前記制御部は、前記不揮発性半導体記憶装置の前記複数のブロックのブロック毎の書き込み回数、消去回数、読み出し回数、及び書き込み、消去時の電圧印加回数を管理する管理部を有し、前記管理部により管理されたデータに基づき、メモリセルの読み出しレベルを変えることを特徴とする請求項２記載のメモリシステム。
【請求項７】
前記制御部は、前記システムの起動時、又は予め定められたタイミングで、異なる複数の読み出しレベルを用いてブロック毎にモニタリードを実行し、エラービット数の最も少ない読み出しレベルをステータスデータとして管理領域に記録し、データの読み出し時、前記管理領域に記録されたステータスデータに基づき、読み出しレベルを設定することを特徴とする請求項１記載のメモリシステム。
【請求項８】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、
前記エラー検出部によりエラーが検出された場合、再度読み出しを繰り返すリトライ読み出しを行うことを特徴とするメモリシステム。
【請求項９】
前記制御部は、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルを用いて前記リトライ読み出しを行うことを特徴とする請求項８記載のメモリシステム。
【請求項１０】
前記制御部は、読み出し時間を変えて前記リトライ読み出しを行うことを特徴とする請求項８記載のメモリシステム。
【請求項１１】
前記制御部は、メモリセルのセンスノードのプリチャージ電圧を変えること、読み出し時のセンス回数を変えることのうちの１により前記読み出し時間を変えることを特徴とする請求項１０記載のメモリシステム。
【請求項１２】
前記制御部は、選択ワード線に隣接する非選択ワード線の読み出し電圧を、本来の読み出し電圧より高く設定して前記リトライ読み出しを行うことを特徴とする請求項１０記載のメモリシステム。
【請求項１３】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、読み出されたデータからエラーを検出するエラー検知部と、
管理データを記録する管理領域とを有し、
前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルを用いてリトライ読み出しを行い、これらリトライ読み出しの結果が良好な読み出しレベルのデータを前記管理領域に記録することを特徴とするメモリシステム。
【請求項１４】
前記制御部は、読み出し時、前記管理領域に記録されたデータに基づき読み出しレベルを設定することを特徴とする請求項１２記載のメモリシステム。
【請求項１５】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、
前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルで読み出し動作を行い、エラー検知部の判定の結果、エラーが少ない場合、次の読み出し動作を前記高くシフトされた読み出しレベルで行うことを特徴とするメモリシステム。
【請求項１６】
前記制御部は、前記メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルで読み出し動作を行い、エラー検知部の判定の結果、エラーが多い場合、前記メモリセルの本来の読み出しレベルより低くシフトされた読み出しレベルで読み出し動作を行うことを特徴とする請求項１５記載のメモリシステム。
【請求項１７】
前記制御部は、前記メモリセルの本来の読み出しレベルより低くシフトされた読み出しレベルで読み出し動作を行った場合、リフレッシュ動作を行うことを特徴とする請求項１６記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＮＡＮＤ型フラッシュメモリを用いたメモリシステムに関する。
【背景技術】
【０００２】
ハードディスク装置の代替として、例えば、ＮＡＮＤ型フラッシュメモリを用いたＳＳＤ（Solid State Drive）が開発されている（例えば特許文献１参照）。特許文献１に係る技術によれば、コントローラ部およびメモリモジュールからなる半導体ディスク装置において、コントローラ部内のメモリ管理コントローラは、Ｒ／Ｗ制御回路を通じてメモリモジュール内の制御管理テーブルを読み、その内容をコントローラ側のＲＡＭに書込むと共に、制御管理テーブルに記憶されている管理テーブルの所在番地を見て、その管理テーブルの内容をＲＡＭに書込む。
【０００３】
また、近年ＮＡＮＤ型フラッシュメモリの微細化が進行するに伴い、隣接セル間の干渉ノイズの影響が相対的に大きくなってきている（例えば特許文献２及び特許文献３参照）。特許文献２及び特許文献３に係る技術によれば、読み出し対象である選択ワード線に隣接し、且つ、これより後にデータ書込みがなされる非選択ワード線のデータを考慮した条件下で読み出しが行われる。
【０００４】
さらに、ＮＡＮＤ型フラッシュメモリを用いたメモリシステムでは、読み出しデータを修復するため、ＥＣＣ(Error Correction Code)を用いた誤り訂正が行われている。しかし、ＥＣＣを用いた誤り訂正も万能ではないため、読み出しデータに含まれる誤りビット数が訂正可能なビット数を超えてＥＣＣエラーが発生した場合の技術が開発されている（例えば特許文献４参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−２８２８８０号公報
【特許文献２】特開２００４−３２６８６６号公報
【特許文献３】特開２００９−７０５０１号公報
【特許文献４】特開２００９−４８７５８号公報
【特許文献５】特開２００８−１１７４７１号公報
【特許文献６】特開２００４−３２６８６７号公報
【特許文献７】特開２００８−２６９４７３号公報
【特許文献８】特開２００９−２０５５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、プログラムディスターブ、リードディスターブの影響やデータリテンションの劣化の影響を除去して信頼性を向上することが可能なメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明のメモリシステムの第１の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、前記不揮発性半導体記憶装置の使用開始時と時間経過後とで読み出しレベルを変えることを特徴とする。
【０００８】
本発明のメモリシステムの第２の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、前記エラー検出部によりエラーが検出された場合、再度読み出しを繰り返すリトライ読み出しを行うことを特徴とする。
【０００９】
本発明のメモリシステムの第３の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、読み出されたデータからエラーを検出するエラー検知部と、管理データを記録する管理領域とを有し、前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルを用いてリトライ読み出しを行い、これらリトライ読み出しの結果が良好な読み出しレベルのデータを前記管理領域に記録することを特徴とする。
【００１０】
本発明のメモリシステムの第４の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルで読み出し動作を行い、エラー検知部の判定の結果、エラーが少ない場合、次の読み出し動作を前記高くシフトされた読み出しレベルで行うことを特徴とする。
【発明の効果】
【００１１】
本発明は、プログラムディスターブ、リードディスターブの影響やデータリテンションの劣化の影響を除去して信頼性を向上することが可能なメモリシステムを提供する。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係るメモリシステムを示す構成図。
【図２】図２（ａ）は、ＮＡＮＤメモリチップに含まれる物理ブロックの一例を示す回路図、図２（ｂ）はメモリセルトランジスタの閾値分布の例を示す模式図。
【図３】図１に示すドライブ制御回路の一例を示す構成図。
【図４】図１に示す１つのチップに含まれるＮＡＮＤ型フラッシュメモリの一例を示す構成図。
【図５】メモリセルアレイの１ページの構成の一例を示す図。
【図６】図１に示すＤＲＡＭの記憶内容の一例を示す図。
【図７】図７（ａ）は多値レベルを記憶するメモリセルの閾値変化の一例を示す図、図７（ｂ）はメモリセルの閾値変化の他の例を示す図。
【図８】図８（ａ）は２値レベルを記憶するメモリセルの閾値変化の一例を示す図、図８（ｂ）はメモリセルの閾値変化の他の例を示す図。
【図９】管理テーブルのフィールド構成の一例を示す図。
【図１０】第１の実施形態に係るシフト読み出し動作の一例を示すフローチャート。
【図１１】管理テーブルのフィールド構成の他の例を示す図。
【図１２】第１の実施形態の変形例を示すフローチャート。
【図１３】第２の実施形態に係るリトライ読み出し動作の一例を示すフローチャート。
【図１４】第２の実施形態に係るリトライ読み出し動作の一例を示すフローチャート。
【図１５】第３の実施形態に係る読み出し動作を示すフローチャート。
【図１６】第４の実施形態に係る読み出し動作を示すフローチャート。
【発明を実施するための形態】
【００１３】
ＮＡＮＤ型フラッシュメモリは、メモリセルのサイズが微細化され、メモリセル内に記憶される電子の数が減少されている。このため、隣接セル間の干渉ノイズの影響が相対的に増大し、一方のメモリセルにデータの書き込み（プログラム）や読み出しを行うことにより、隣接する他方のメモリセルのデータが変化する可能性がある。
【００１４】
例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、選択セルでの非書き込みセルへの強いストレスと、非選択セルにおいても弱い書き込み状態となり、閾値電圧が高くなるように変化する２種類のプログラムディスターブ（以下、ＰＤとも称す）という現象が発生する。
【００１５】
また、データの読み出しにおいても、非選択のメモリセルに電圧が印加される。このため、非選択メモリセルが弱い書き込み状態となり、閾値電圧が高くなるように変化するリードディスターブ（以下、ＲＤとも称す）という現象が発生する。
【００１６】
さらに、メモリセルに書き込まれたデータが、長時間アクセスされなかったような場合、メモリセルの浮遊ゲートから電子が放出され、閾値電圧が低くなるように変化する現象が発生する。これによりデータリテンション（以下、ＤＲとも称す）が劣化する。
【００１７】
ＳＳＤのように、大容量のメモリシステムは、パーソナルコンピュータやサーバーに実装され、長期間使用される。このため、ＰＤ、ＲＤの発生、ＤＲの劣化の伴う影響をシステム的に救済し、安定な動作が可能な高い信頼性を実現することが求められている。
【００１８】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１９】
（第１の実施形態）
図１は、メモリシステムとしてのＳＳＤ１００の構成例を示すブロック図である。ＳＳＤ１００は、ＡＴＡインタフェース（ＡＴＡ Ｉ／Ｆ）２などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはＣＰＵコアなどのホスト装置（以下、ホストと略す）１と接続され、ホスト１の外部メモリとして機能する。また、ＳＳＤ１００は、ＲＳ２３２Ｃインタフェース（ＲＳ２３２Ｃ Ｉ／Ｆ）などの通信インタフェース３を介して、デバッグ用／製造検査用機器２００との間でデータを送受信することができる。
【００２０】
ＳＳＤ１００は、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略す）１０と、コントローラとしてのドライブ制御回路４と、揮発性半導体メモリとしてのＤＲＡＭ２０と、電源回路５と、状態表示用のＬＥＤ６と、ドライブ内部の温度を検出する温度センサ７と、フューズ８とを備えている。
【００２１】
電源回路５は、ホスト１側の電源回路から供給される外部直流電源から複数の異なる内部直流電源電圧を生成し、これら内部直流電源電圧をＳＳＤ１００内の各回路に供給する。また、電源回路５は、外部電源の立ち上がりを検知し、パワーオンリセット信号を生成して、ドライブ制御回路４に供給する。
【００２２】
フューズ８は、ホスト１側の電源回路とＳＳＤ１００内部の電源回路５との間に設けられている。外部電源回路から過電流が供給された場合、フューズ８が切断され、内部回路の誤動作を防止する。
【００２３】
ＮＡＮＤメモリ１０は、例えば４並列動作を行う４つの並列動作要素１０ａ〜１０ｄを有し、４つの並列動作要素１０ａ〜１０ｄは、４つのチャネル（ｃｈ０〜ｃｈ３）によってドライブ制御回路４に接続されている。各並列動作要素１０ａ〜１０ｄは、バンクインターリーブが可能な複数のバンクによって構成されている。すなわち、各並列動作要素は、例えば４バンク（Ｂａｎｋ０〜Ｂａｎｋ３）によって構成されており、各バンクは、複数のＮＡＮＤメモリチップ、例えば２つのメモリチップ（Ｃｈｉｐ０、Ｃｈｉｐ１）により構成されている。
【００２４】
各メモリチップは、例えば、それぞれ複数の物理ブロックを含むプレーン０、プレーン１の２つの領域（District）に分割されている。プレーン０およびプレーン１は、互いに独立した周辺回路（例えば、ロウデコーダ、カラムデコーダ、ページバッファ、データキャッシュ等）を備えており、倍速モードを使用することにより、同時に消去／書き込み／読み出しを行うことが可能である。
【００２５】
このように、ＮＡＮＤメモリ１０の各ＮＡＮＤメモリチップは、複数のチャネルによる並列動作、複数のバンクによるバンクインターリーブ動作、同一バンク内の複数チップのインターリーブ動作、複数のプレーンを用いた倍速モードによる並列動作が可能である。なお、各メモリチップは、２つ以上の複数のプレーンに分割された構成であってもよいし、あるいは、全く分割されていなくてもよい。
【００２６】
ＤＲＡＭ２０は、ホスト１とＮＡＮＤメモリ１０との間で、データ転送用キャッシュ及び作業領域用メモリなどとして機能する。ＤＲＡＭ２０の作業領域用メモリに記憶される内容は、例えばＮＡＮＤメモリ１０に記憶されている各種管理テーブルが、起動時などに展開されたマスターテーブル（スナップショット）、あるいは管理テーブルの変更差分であるログ情報などがある。
【００２７】
尚、ＤＲＡＭ２０の代わりに、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change Random Access Memory）などの不揮発性ランダムアクセスメモリを使用することも可能である。不揮発性ランダムアクセスメモリを利用する場合、電源切断時に各種管理テーブルなどをＮＡＮＤメモリ１０に退避させる動作の一部又は全部を省略することができる。
【００２８】
ドライブ制御回路４は、ホスト１とＮＡＮＤメモリ１０との間でＤＲＡＭ２０を介してデータ転送制御を行うとともに、ＳＳＤ１００内の各構成要素を制御する。また、ドライブ制御回路４は、状態表示用ＬＥＤ６にステータス表示用信号を供給するとともに、電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号をドライブ制御回路４内及びＳＳＤ１００内の各部に供給する機能も有している。
【００２９】
各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。
【００３０】
図２（ａ）は、ＮＡＮＤメモリチップに含まれる１個の物理ブロックの構成例を示す回路図である。各物理ブロックは、Ｘ方向に沿って順に配列された（ｐ＋１）個のＮＡＮＤストリングを備えている（ｐは、０以上の整数）。各ＮＡＮＤストリングに含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００３１】
各メモリセルトランジスタ（メモリセルとも言う）ＭＣＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）により構成されている。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＣＴは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＣＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００３２】
また、メモリセルトランジスタＭＣＴは、浮遊ゲート電極を有する構造に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることにより閾値電圧が調整可能な構造であってもよい。ＭＯＮＯＳ構造のメモリセルトランジスタＭＣＴについても同様に、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００３３】
各ＮＡＮＤストリングにおいて、（ｑ＋１）個のメモリセルトランジスタＭＣＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタＭＣＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でＹ方向に直列接続される。
【００３４】
各ＮＡＮＤストリングにおいて、最もドレイン側に位置するメモリセルトランジスタＭＣＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＣＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルトランジスタＭＣＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００３５】
ワード線ＷＬ０〜ＷＬｑは、物理ブロック内のＮＡＮＤストリング間で、メモリセルトランジスタＭＣＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタＭＣＴの制御ゲート電極は、同一のワード線ＷＬに接続される。この同一のワード線ＷＬに接続される（ｐ＋１）個のメモリセルトランジスタＭＣＴは１ページ（物理ページ）として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【００３６】
また、ビット線ＢＬ０〜ＢＬｐは、ブロック間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。
【００３７】
図２（ｂ）は、例えば、１個のメモリセルトランジスタＭＣＴに２ビットの記憶を行う４値データ記憶方式での閾値分布を示す模式図である。４値データ記憶方式は、上位ページデータ“ｘ”と下位ページデータ“ｙ”で定義される４値データ“ｘｙ”の何れか１つをメモリセルトランジスタＭＣＴに保持可能である。
【００３８】
４値データ“ｘｙ”は、メモリセルトランジスタＭＣＴの閾値電圧の順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＣＴの閾値電圧が例えば負とされた消去状態である。尚、データの割り当て規則はこれに限らない。また、１個のメモリセルトランジスタＭＣＴに３ビット以上の記憶を行う構成であってもよい。
【００３９】
下位ページの書き込み動作において、データ“１１”（消去状態）のメモリセルトランジスタＭＣＴに対して選択的に、下位ビットデータ“ｙ”を書き込むことによって、データ“１０”が書き込まれる。上位ページの書き込み前のデータ“１０”の閾値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”の閾値分布の中間程度に位置しており、上位ページの書き込み後の閾値分布よりブロードであってもよい。上位ページの書き込み動作において、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”が書き込まれることにより、データ“０１”及びデータ“００”が書き込まれる。擬似ＳＬＣモードは、下位ページのみを使用して書き込みを行う。下位ページの書き込みは、上位ページの書き込みに比べて高速である。
【００４０】
図３は、ドライブ制御回路４のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路４は、データアクセス用バス１０１、第１の回路制御用バス１０２、及び第２の回路制御用バス１０３を備えている。第１の回路制御用バス１０２には、ドライブ制御回路４全体を制御するプロセッサ１０４が接続されている。第１の回路制御用バス１０２には、ブートＲＯＭ１０５がＲＯＭコントローラ１０６を介して接続されている。ブートＲＯＭ１０５には、ＮＡＮＤメモリ１０に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されている。
【００４１】
また、第１の回路制御用バス１０２には、クロックコントローラ１０７が接続されている。このクロックコントローラ１０７は、図１に示した電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を各部に供給する。
【００４２】
第２の回路制御用バス１０３は、第１の回路制御用バス１０２に接続されている。第２の回路制御用バス１０３には、図１に示した温度センサ７からのデータを受けるためのＩ 2Ｃ回路１０８、状態表示用ＬＥＤ６にステータス表示用信号を供給するパラレルＩＯ（ＰＩＯ）回路１０９、ＲＳ２３２Ｃ  Ｉ／Ｆ３を制御するシリアルＩＯ（ＳＩＯ）回路１１０が接続されている。
【００４３】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）１１１、第１のＥＣＣ（Error Checking and Correction）回路１１２、ＮＡＮＤコントローラ１１３、及びＤＲＡＭコントローラ１１４は、データアクセス用バス１０１と第１の回路制御用バス１０２との両方に接続されている。ＡＴＡコントローラ１１１は、ＡＴＡインタフェース２を介してホスト１との間でデータを送受信する。データアクセス用バス１０１には、データ作業領域およびファームウェア展開領域として使用されるＳＲＡＭ１１５がＳＲＡＭコントローラ１１６を介して接続されている。ＮＡＮＤメモリ１０に記憶されているファームウェアは起動時、ブートＲＯＭ１０５に記憶されたブート用プログラムによってＳＲＡＭ１１５に転送される。
【００４４】
ＮＡＮＤコントローラ１１３は、ＮＡＮＤ  Ｉ／Ｆ１１７、第２のＥＣＣ回路１１８、及びＤＭＡ転送制御用ＤＭＡコントローラ１１９を備えている。ＮＡＮＤ  Ｉ／Ｆ１１７は、ＮＡＮＤメモリ１０とのインタフェース処理を行う。ＤＭＡ転送制御用ＤＭＡコントローラ１１９は、ＮＡＮＤメモリ１０とＤＲＡＭ２０間のアクセス制御を行う。第２のＥＣＣ回路１１８は第２の訂正符号のエンコードを行い、また、第１の誤り訂正符合のエンコード及びデコードを行う。第１のＥＣＣ回路１１２は、第２の誤り訂正符号のデコードを行う。第１の誤り訂正符号、第２の誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Bose Chaudhuri Hocqenghem）符号、ＲＳ(Reed Solomon)符号、或いはＬＤＰＣ（Low Density Parity Check）符号等であり、第２の誤り訂正符号の訂正能力は、第１の誤り訂正符号の訂正能力よりも高いとする。
【００４５】
図１に示したように、ＮＡＮＤメモリ１０において、４つの並列動作要素１０ａ〜１０ｄは各複数ビットの４つのチャネルを介して、ドライブ制御回路４内部のＮＡＮＤコントローラ１１２に並列接続されており、４つの並列動作要素１０ａ〜１０ｄを並列動作させることが可能である。また、各チャネルのＮＡＮＤメモリ１０は、バンクインターリーブが可能な４つのバンクに分割されており、各メモリチップのプレーン０およびプレーン１に対しても、同時にアクセスを行うことが可能である。したがって、１チャネルに付き、最大８つの物理ブロック（４バンク×２プレーン）を、ほぼ同時に制御することが可能である。すなわち、最大８つの物理ブロックに対して同時に書き込みなどの処理を実行することが可能である。
【００４６】
図４は、図１に示す１つのＮＡＮＤメモリチップに含まれるＮＡＮＤ型フラッシュメモリの一例を示す機能ブロック図である。
【００４７】
メモリセルアレイ２０１は、複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ２０１には、ビット線を制御するためのビット制御回路２０２とワード線制御回路２０６が接続されている。
【００４８】
ビット線制御回路２０２は、ビット線を介してメモリセルアレイ２０１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ２０１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ２０１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２０２には、カラムデコーダ２０３、データ入出力バッファ２０４が接続されている。
【００４９】
ビット線制御回路２０２内のデータ記憶回路はカラムデコーダ２０３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ２０４を介してデータ入出力端子２０５から外部へ出力される。データ入出力端子２０５は、メモリチップ外部のドライブ制御回路４に接続される。
【００５０】
このドライブ制御回路４は、データ入出力端子２０５から出力されたデータを受ける。さらに、ドライブ制御回路４は、ＮＡＮＤ型フラッシュメモリの動作を制御する各種コマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＴを出力する。ドライブ制御回路４からデータ入出力端子２０５に入力された書き込みデータは、データ入出力バッファ２０４を介して、カラムデコーダ２０３によって選択されたデータ記憶回路に供給され、コマンド及びアドレスは制御信号及び制御電圧発生回路２０７に供給される。
【００５１】
ワード線制御回路２０６は、メモリセルアレイ２０１に接続されている。このワード線制御回路２０６は、メモリセルアレイ２０１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００５２】
メモリセルアレイ２０１、ビット線制御回路２０２、カラムデコーダ２０３、データ入出力バッファ２０４、及びワード線制御回路２０６は、制御信号及び制御電圧発生回路２０７に接続され、この制御信号及び制御電圧発生回路２０７によって制御される。
【００５３】
制御信号及び制御電圧発生回路２０７は、制御信号入力端子２０８に接続され、ドライブ制御回路４から制御信号入力端子２０８を介して入力されるＡＬＥ（アドレス・ラッチ・イネーブル）、ＣＬＥ（コマンド・ラッチ・イネーブル）、ＷＥ（ライト・イネーブル）などの各種制御信号、及びドライブ制御回路４からデータ入出力端子２０５及びデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤによって制御される。
【００５４】
この制御信号及び制御電圧発生回路２０７は、データの書き込み時にワード線やビット線の電圧を発生するとともに、ウェルに供給される電圧を発生する。制御信号及び制御電圧発生回路２０７は、例えばチャージポンプ回路のような昇圧回路を含み、プログラム電圧や読み出し電圧、消去電圧を生成可能とされている。
【００５５】
さらに、制御信号及び制御電圧発生回路２０７は、後述するように、読み出し電圧のレベルを変更可能とされている。すなわち、制御信号及び制御電圧発生回路２０７は、制御信号入力端子２０８を介して入力される各種制御信号、データ入出力端子２０５及びデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤを受けて、読み出し動作時にワード線に印加する電圧を＋方向、または−方向にシフトさせる機能を有している。
【００５６】
前記ビット線制御回路２０２、カラムデコーダ２０３、ワード線制御回路２０６、制御信号及び制御電圧発生回路２０７は書き込み回路、及び読み出し回路を構成している。
【００５７】
メモリセルアレイ２０１は、本体データを格納するための記憶領域に加えて、ＥＣＣ(Error Correction Code)を記憶する記憶領域２０１−１を有している。
【００５８】
図５は、メモリセルアレイ２０１の１ページの構成を示している。各ページは、ユーザデータを記憶するデータ領域とＥＣＣを記憶するＥＣＣ領域により構成されている。なお、各ページには、制御信号及び制御電圧発生回路２０７が利用する内部フラグデータなどが含まれていても良い。
【００５９】
図６は、図１に示されたＤＲＡＭ２０の記憶内容を示している。ＤＲＡＭ２０は、ファームウェア領域２０−１、テーブル領域２０−２、データ領域２０−３により構成されている。ファームウェア領域２０−１には、ドライブ制御回路４の動作に必要なファームウェアが記憶されている。テーブル領域２０−２には、例えば後述する読み出し動作に必要な管理テーブルが記憶されている。データ領域２０−３は、例えばライトキャッシュ、またはリードキャッシュとして利用される。
【００６０】
ファームウェア領域２０−１は、ドライブ制御回路４の動作に必要なファームウェアのうち、図３に示されたＳＲＡＭ１１５に格納しきれない分の展開領域として利用することができる。テーブル領域２０−２は、ＤＲＡＭ２０のデータ領域２０−３におけるライトキャッシュ、リードキャッシュ機構を管理するためのキャッシュ管理テーブル、及び、ホスト装置１から入力される論理アドレスとＮＡＮＤメモリ１０の物理アドレスとの対応関係を管理するための論理−物理アドレス変換テーブルなどを含んでいる。
【００６１】
ＤＲＡＭ２０の記憶内容のうち、特にテーブル領域２０−２に含まれる論理−物理アドレス変換テーブルなどのマスターテーブルは、メモリシステムの電源がオフとされるとき、ＮＡＮＤメモリ１０の例えばセーブ領域にセーブされる。また、このマスターテーブルは、メモリシステムの電源がオンとされたとき、ＮＡＮＤメモリ１０のセーブ領域から読み出され、ＤＲＡＭ２０のテーブル領域２０−２にロードされる。また、データ領域２０−３に含まれる最新のデータは、メモリシステムの電源がオフとされるときに、論理−物理アドレス変換テーブルによって指し示されるＮＡＮＤメモリ１０の所定の位置に記憶され不揮発化される。
【００６２】
（シフト読み出し動作）
第１の実施形態は、メモリシステムの信頼性を向上するため、メモリシステムの使用の初期と所定の時間経過後とで、ＮＡＮＤ型フラッシュメモリの読み出しレベルを変化させている。使用の初期とは、例えば、メモリシステム出荷後、ユーザが実際にメモリシステムを使用し始める時を指す。所定の時間経過後とは、実時間を計測することで決定しても良いし、メモリシステム内部でＮＡＮＤ型フラッシュメモリに所定の動作（書き込み、読み出し、または消去動作）を繰り返した回数によって決定しても良い。
【００６３】
メモリセルに記憶されたデータに対応する閾値電圧は、前述したようにプログラムディスターブ（ＰＤ）、リードディスターブ（ＲＤ）、データリテンションにより変化する。
【００６４】
図７（ａ）に示すように、メモリセルがＰＤ及びＲＤの影響を受けた場合、メモリセルの閾値電圧の分布は、破線で示すように高くなるように変化する。このため、デフォルトで設定された各閾値電圧を読み出すための読み出し電圧（レベル）ＶＡ，ＶＢ，ＶＣ、及び非選択セルに供給される読み出し電圧Ｖｒｅａｄは、変化した各閾値電圧より低くなるため、正しくデータを読み出すことができなくなる。
【００６５】
メモリセルが受けるプログラムディスターブの影響に関しては、例えば、特許文献５に開示されている。メモリセルが受けるリードディスターブの影響に関しては、例えば、特許文献６に開示されている。これらの全内容は本出願に援用される。
【００６６】
一方、図７（ｂ）に示すように、メモリセルがＤＲの影響を受けた場合、メモリセルの閾値電圧の分布は、破線で示すように低くなるように変化する、このため、デフォルトで設定された各閾値電圧を読み出すための読み出しレベルＶＡ，ＶＢ，ＶＣは、変化した各閾値電圧より高くなるため、正しくデータを読み出すことができなくなる。
【００６７】
メモリセルのデータリテンション特性に関しては、例えば、特許文献７に開示されており、これらの全内容は本出願に援用される。
【００６８】
ＰＤ、ＲＤ、ＤＲに関連する現象は、図７（ａ）（ｂ）に示すように、３値以上のデータを記憶するメモリセル（ＭＬＣ：Multi Level Cell）の場合に限らず、図８（ａ）（ｂ）に示すように、２値データを記憶するメモリセル（ＳＬＣ：Single Level Cell）の場合も同様である。ただし、ＭＬＣの場合は、ＳＬＣの場合に比較して閾値分布間のマージンに係る制約が厳しいため、ＰＤ、ＲＤ、ＤＲの影響はより顕著である。
【００６９】
第１の実施形態では、不揮発性半導体記憶装置の使用状況に応じて読み出しレベルを変化可能としている。すなわち、ＰＤ，ＲＤの影響を受けたメモリセルからデータを読み出す場合、図７（ａ）、図８（ａ）に破線で示すように、読み出しレベルＶＡ，ＶＢ，ＶＣがデフォルトの読み出しレベルより高く設定される。このため、各読み出しレベルＶＡ，ＶＢ，ＶＣは、各閾値電圧分布の間に位置するため、正しくデータを読み出すことができる。また、読み出し電圧Ｖｒｅａｄもデフォルトの読み出しレベルより高く設定される。このため、読み出し電圧Ｖｒｅａｄは、最も高い閾値電圧分布よりも高く設定されるため、正しくデータを読み出すことができる。
【００７０】
一方、ＤＲの影響を受けたメモリセルからデータを読み出す場合、図７（ｂ）、図８（ｂ）に破線で示すように、読み出しレベルＶＡ，ＶＢ，ＶＣがデフォルトの読み出しレベルより低く設定される。このため、各読み出しレベルＶＡ，ＶＢ，ＶＣは、各閾値電圧分布の間に位置するため、正しくデータを読み出すことができる。
【００７１】
メモリセルがＰＤ，ＲＤの影響を受けたかどうかは、例えばメモリセルの書き込み回数、消去回数、読み出し回数、1回の書き込みにおいてプログラム電圧が印加された回数（プログラムループ回数）、1回の消去において消去電圧が印加された回数（イレーズループ回数）などにより判別することができる。
【００７２】
また、メモリセルが、ＤＲの影響を受けたかどうかは、メモリセルが長期時間アクセスされなかったかどうかにより判断することができる。メモリセルが長期時間放置されていたかどうかは、例えばメモリシステムが搭載されたパーソナルコンピュータのログなどから判断することが可能である。
【００７３】
上記書き込み回数、消去回数、読み出し回数、ループ回数、放置時間、環境温度は、メモリシステム内の管理テーブルにより管理される。
【００７４】
図９は、図６に示すＤＲＡＭ２０のテーブル領域２０−２に記憶された管理テーブルＭＴのフィールド構成の一例を示している。管理テーブルに記録するデータは、メモリシステムの用途に応じて任意に設定することが可能である。図９に示す管理テーブルの場合、例えば物理ブロック番号に対応して、消去回数、プログラム回数、ループ回数、読み出し回数、放置時間、環境温度が設定されている。
【００７５】
ブロックの消去回数またはプログラム回数で規定される書き換え回数（Ｗ（Ｗｒｉｔｅ）／Ｅ（Ｅｒａｓｅ）回数）が増加するに従いゲート絶縁膜が劣化し、書き込み速度は早くなる。したがって、書き換え回数が多い（所定の時間経過後）メモリセルは、書き換え回数が少ない（初期）メモリセルに比較して、ＰＤ及びＲＤの影響を受けやすくなっている。すなわち、書き換え回数が多いメモリセルは、書き換え回数が少ないメモリセルに比較して、同じストレスを受けた場合であっても閾値電圧が高くなる量が大きい。
【００７６】
そこで、本実施形態に係るメモリシステムは、書き換え回数を規定する消去回数またはプログラム回数が任意の規定値に達した場合、読み出しレベルＶＡ、ＶＢ、ＶＣや、読み出し電圧Ｖｒｅａｄを僅かに高くシフトする（＋シフト）ことにより正確な読出しが可能となる。任意の規定値は、例えば、ＮＡＮＤ型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものであり、書き換え保証回数よりも小さい値に設定すれば良い。
【００７７】
書き換え回数を規定するために、消去回数を用いるか、書き込み回数を用いるかは任意であり、何れか一方を用いても良いし、両方を用いても良い。書き込みはページ単位で行われ、消去はブロック単位で行われるが、ＮＡＮＤ型フラッシュメモリは一般に、消去するまでは１ページに１回の書込みしか行わないので、書き換え回数をモニタする用途においては、消去回数を管理すれば十分である場合が多い。
【００７８】
また一方で、書き込み回数自体によってＰＤの影響をある程度見積もることも可能である。ブロックを構成する各ページに対してどのような順番でプログラムをしていくかは仕様上定められており、各ページには１回ずつ書込みが行われる。このため、ブロック内のどのページまで書込みが行われたかを管理すれば、当該ブロック内のメモリセルに記憶されたデータが＋方向にシフトしているか否かを判断できる。
【００７９】
そこで、本実施形態に係るメモリシステムは、書き込み回数が任意の規定値（例えば、ブロックを構成する全ページの半分まで書き込みを行った場合の書き込み回数）に達した場合、読み出しレベルＶＡ、ＶＢ、ＶＣや、読み出し電圧Ｖｒｅａｄを僅かに高くシフトする（＋シフト）ことにより正確な読出しが可能となる。任意の規定値は、例えば、ＮＡＮＤ型フラッシュメモリ製造時のメモリセル特性の評価段階や、各ページへの書き込みの順序などに従って定められるものである。
【００８０】
また、読み出し回数が増加するに従い、非選択メモリセルに注入される電子の量が増加する。ＮＡＮＤ型フラッシュメモリに記憶されるデータの中には、例えばドライブ制御回路４のファームウェアなど、一度書込みが行われた後は更新されず、読み出し動作のみが行われるものがある。従って、書き換え回数が少ない場合であっても、ＲＤの影響を繰り返し受けることでデータが＋方向にシフトする可能性がある。
【００８１】
そこで、本実施形態に係るメモリシステムは、読み出し回数が任意の規定値に達した場合、読み出しレベルＶＡ、ＶＢ、ＶＣや、読み出し電圧Ｖｒｅａｄを僅かに高くシフトする（＋シフト）ことにより正確な読出しが可能となる。任意の規定値は、例えば、ＮＡＮＤ型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものである。
【００８２】
なお、読み出し回数の増加によってもゲート絶縁膜が劣化し、書き込み速度が早くなる可能性がある。したがって、読み出し回数が多いメモリセルは、読み出し回数が少ないメモリセルに比較して、ＰＤ及びＲＤの影響を受けやすくなる可能性がある。そこで、本実施形態に係るメモリシステムは、読み出し回数が任意の規定値に達した場合、読み出しレベルＶＡ、ＶＢ、ＶＣや、読み出し電圧Ｖｒｅａｄを僅かに高くシフトするとしても良い。すなわち、読み出し回数を、書き換え回数と同様に絶縁膜の劣化を指し示すファクタとして利用しても良い。
【００８３】
また、ループ回数は、１つの閾値電圧を設定するために、プログラム電圧が印加された回数を示している。上述したように、メモリセルは書き込み回数が増加するに従いゲート絶縁膜が劣化し、書き込み速度が早くなる。このため、所定のデータに対応した閾値電圧を設定するために例えば１０回のプログラム電圧の印加が必要であった場合において、８回のプログラム電圧の印加で書き込みが終了したということは、メモリセルが劣化し、閾値電圧が高く書かれる傾向にあることを意味する。
【００８４】
そこで、本実施形態に係るメモリシステムは、書き込みループ回数が任意の規定値に達した場合、読み出しレベルＶＡ、ＶＢ、ＶＣや、読み出し電圧Ｖｒｅａｄを僅かに高くシフトする（＋シフト）ことにより正確な読出しが可能となる。任意の規定値は、例えば、ＮＡＮＤ型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものである。
【００８５】
また、メモリセルは書き込み回数が増加するに従いゲート絶縁膜が劣化し、消去速度が遅くなる。このため、消去状態に対応した閾値電圧を設定するために例えば１回の消去電圧の印加が必要であった場合において、３回の消去電圧の印加で消去終了したということは、メモリセルが劣化し、閾値電圧が高く書かれる傾向にあることを意味する。
【００８６】
そこで、本実施形態に係るメモリシステムは、消去ループ回数が任意の規定値に達した場合、読み出しレベルＶＡ、ＶＢ、ＶＣや、読み出し電圧Ｖｒｅａｄを僅かに高くシフトする（＋シフト）ことにより正確な読出しが可能となる。任意の規定値は、例えば、ＮＡＮＤ型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものである。
【００８７】
各々のブロックに対する消去回数、プログラム回数、読み出し回数、ループ回数は、例えばドライブ制御回路４によりカウントされ、管理テーブルＭＴにカウント値が書き込まれる。なお、読み出し回数をＲＤによる閾値電圧のシフトを見積もるために利用する場合については、ブロック内のデータが消去、あるいは無効化された場合に値をリセットする。当該ブロックに新たに書き込まれるデータは、最初に読み出される前は、ＲＤの影響を受けていないからである。一方で、読み出し回数を書き換え回数と同様に絶縁膜の劣化を指し示すファクタとして利用する場合については、ブロック内のデータが消去、あるいは無効化された場合でも値を保持し続ける。絶縁膜の劣化は当該ブロック固有の物理的な問題だからである。
【００８８】
放置時間は、前述したように、システムログなどにより設定される。また例えば、各々のブロックに書き込まれたデータの放置時間は、最初にメモリセルにデータが書き込まれた時の時刻を記憶しておき、この書き込まれた時刻と、例えばホスト装置１から通知される現在時刻との差分から求めることができる。あるいは、メモリシステム内で特定のイベントが行われた回数によって放置時間を求めても良い。例えば、ＮＡＮＤ型フラッシュメモリでブロック内のデータが消去される度にインクリメントされるカウンタを備え、データ書き込み時にカウント値を記憶するとすれば、現在のカウント値との差分によってある程度の放置時間を見積もる事ができる。あるいは、メモリシステム内部のタイマによって放置時間を測定するとしても良い。
【００８９】
環境温度は、例えば温度センサ７の出力信号に基づき、ドライブ制御回路４により管理テーブルＭＴに記録される。例えば、ブロックにデータを書き込んだときの温度が管理テーブルＭＴに記録される。あるいは、上述した放置時間内における平均温度が所定のタイミングで記憶されるとしても良い。
【００９０】
図１０は、シフト読み出し動作の一例を示している。シフト読み出し動作は、種々の方法が可能であり、メモリシステムの使用環境に応じて最適な読み出しを選択して使用すればよい。
【００９１】
図１０において、ドライブ制御回路４は、シフト読み出し動作時、先ず、管理テーブルＭＴを参照する（Ｓ１１）。次いで、管理テーブルＭＴに記録された消去回数、プログラム回数、ループ回数、読み出し回数が規定値内であるか否かを判別する（Ｓ１２−Ｓ１５）。すなわち、メモリセルがＰＤ，ＲＤの影響を受けているかどうかが判別される。この結果、全ての回数が規定値以内である場合、ドライブ制御回路４は、ＰＤ、ＲＤの影響を受けていないと判断し、デフォルトの読み出しレベルを用いて読み出し動作が実行する（Ｓ１６）。
【００９２】
一方、消去回数、プログラム回数、ループ回数、読み出し回数のうち、いずれかが規定値を越えている場合、ドライブ制御回路４は、放置時間が長いか否かを判別する（Ｓ１７）。放置時間の判断基準は、例えば１日以上の任意に定められた時間である。放置時間が短い場合、ＤＲの影響よりＰＤ、ＲＤの影響の方が大きいと考えられるため、読み出しレベルＶＡ，ＶＢ，ＶＣ及び読み出し電圧Ｖｒｅａｄが高くシフトされ、＋シフト読み出し動作が実行される（Ｓ１８）。また、ステップＤ１７において、放置時間が長いと判断された場合、ＰＤ、ＲＤの影響より、ＤＲの影響の方が大きいと考えられるため、少なくとも読み出しレベルＶＡ，ＶＢ，ＶＣが低くシフトされ、−シフト読み出し動作が実行される（Ｓ１９）。
【００９３】
ドライブ制御回路４は、＋シフト読み出し動作、−シフト読み出し動作時に、ＮＡＮＤメモリ１０に入力するコマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＴにより読み出しレベルＶＡ，ＶＢ，ＶＣ、及びＶｒｅａｄを設定することができる。ドライブ制御回路４は、例えばコマンドにより＋シフト又は−シフトを指定し、アドレスにより読み出しレベルＶＡ，ＶＢ，ＶＣ、又は読み出し電圧Ｖｒｅａｄを指定する。さらに、データによりシフト量を指定する。図４に示す制御信号及び制御電圧発生回路２０７は、これらコマンドとアドレス信号及びデータに基づき、＋シフト読み出し動作及び−シフト読み出し動作に必要な電圧を発生する。
【００９４】
上記各読み出し動作の後、ＥＣＣ判定が行われる（Ｓ２０）。エラービット数が規定値より多い場合、すなわち、＋シフト又は−シフト読み出し動作を行って読み出しデータのＥＣＣ訂正が可能であった場合であっても、エラービット数が規定値より多い場合は今後シフト読み出しを行ってもデータの読み出しが不可能となる可能性があるため、そのブロックに対してリフレッシュ動作が実行される（Ｓ２１，Ｓ２２）。つまり、読み出し対象のブロックのデータが新たな消去ブロックにコピーされる。
【００９５】
リフレッシュ動作でデータをコピーする先の消去ブロックは消去回数、プログラム回数が少ないブロックである方が、絶縁膜の劣化が小さく望ましい。リフレッシュ動作によって少なくともＤＲの影響による閾値電圧の低下を解消することができるが、本実施形態においてはＳ２１，Ｓ２２に係るステップは必ずしも実行しなくとも良い。
【００９６】
なお、例えばＳ１２で消去回数が規定値内であったとしても、放置時間が長ければメモリセルの閾値電圧は−方向にシフトしている可能性がある。したがってＳ１２−Ｓ１５に係る判断で規定値以内と判断された場合であっても、Ｓ１７と同一または異なる基準で、放置時間が長いか否かを判断し、判断結果に応じてデフォルト読み出し、＋シフト読み出し、−シフト読み出しを行っても良い。
【００９７】
また、Ｓ１７における放置時間に複数の段階を設け、ＰＤ，ＲＤによる影響とＤＲによる影響がバランスするような時間である第１の放置時間を越えていなければ＋シフト読み出し、第１の放置時間を超え、デフォルトの閾値を下回るような時間である第２の放置時間を越えていなければデフォルト読み出し、第２の放置時間を越えていれば−シフト読み出しを実行するとしても良い。
【００９８】
上記第１の実施形態によれば、プログラムディスターブＰＤ、リードディスターブＲＤ、データリテンションＤＲの影響を考慮して読み出しレベルＶＡ，ＶＢ，ＶＣ、及び読み出し電圧ＶＲＥＡＤを＋方向、又は−方向にシフトしている。このため、ＰＤ，ＲＤ，ＤＲの影響に拘わらず、正確にデータを読み出すことが可能である。したがって、信頼性の高いメモリシステムを構築することができる。
【００９９】
図１１は、第１の実施形態の変形例を示すものであり、ステータスデータを用いた管理テーブルの例を示している。モニタリードステータスは、例えば電源起動時、又は予め定められたタイミングでページ又はブロック毎に、例えばドライブ制御回路４の制御の下でモニタリードを行い、そのときのステータスを管理テーブルに記録しておく。モニタリードは、読み出しレベルを変えて例えば３回行う。
【０１００】
具体的には、例えばデフォルトの読み出しレベルでの読み出し、読み出しレベルを高くシフトしての読み出し、及び読み出しレベルを低くシフト（−シフト）しての読み出しを行う。これらに読み出し毎にＥＣＣエラービット数を検知し、エラービット数の最も少ない読み出しレベルをステータスデータとして管理テーブルに記録する。ステータスデータとしては、デフォルトリード、＋シフトリード、−シフトリードのうちの１つである。実際の読み出しの際、管理テーブルに記憶されたステータスデータに基づき読み出しレベルが設定される。また、このときのシフト値は前記のようなＷ／Ｅ回数毎に任意の電圧を設定可能である。
【０１０１】
図１２は、第１の実施形態の変形例を示すものであり、ステータスデータを用いた読み出し動作の例を示している。この例の場合、読み出し動作が開始されると、管理テーブルＭＴが参照され（Ｓ１１）、ステータスデータの内容が判別される（Ｓ２３）。ここで、管理テーブルは例えば各ページ、ブロック、プレーン、またはチップ毎にどのような条件で読むことが出来たかをステータスデータとして持つ。どのような条件で読めたのかとは、デフォルトリード、＋シフトリード、−シフトリード等の条件である。この結果、ステータスデータがデフォルトリードである場合、読み出しレベル及び読み出し電圧ＶＲＥＡＤがデフォルトのレベルで読み出し動作が実行され（Ｓ１６）、＋シフトリードの場合、読み出しレベルＶＡ，ＶＢ，ＶＣ、及び読み出し電圧ＶＲＥＡＤが高くシフトされ、＋シフト読み出し動作が実行される（Ｓ１８）。また、ステータスデータが−シフトリードである場合、読み出しレベルＶＡ，ＶＢ，ＶＣが低くシフトされ、−シフト読み出し動作が実行される（Ｓ１９）。
【０１０２】
これら読み出し動作の後、図１０に示す例と同様に、ＥＣＣ判定が行われる（Ｓ２０）。この結果、エラービット数が規定値より多い場合、そのブロックに対してリフレッシュ動作が実行される（Ｓ２１，Ｓ２２）。すなわち、ブロックのデータが新たな消去ブロックにコピーされる。
【０１０３】
図１１及び図１２に示す変形例によっても、プログラムディスターブＰＤ、リードディスターブＲＤ、データリテンションＤＲの影響を考慮して読み出しレベルＶＡ，ＶＢ，ＶＣ、及び読み出し電圧ＶＲＥＡＤを＋方向、又は−方向にシフトしているため、ＰＤ，ＲＤ，ＤＲの影響に拘わらず、正確にデータを読み出すことが可能である。
【０１０４】
シフト読み出し動作は、図１０乃至図１２に示す場合に限らず、例えば管理テーブルに記録された温度データを用いて読み出しレベル、読み出し電圧を変化することも可能である。例えば温度が高い場合において、ＰＤ、ＲＤの影響を除去した読み出しを行う場合、読み出しレベルＶＡ，ＶＢ，ＶＣ、及び読み出し電圧ＶＲＥＡＤが＋方向にシフトされた＋シフト読み出し動作を実行すればよい。また、ＤＲの影響を除去した読み出しを行う場合、読み出しレベルＶＡ，ＶＢ，ＶＣが−方向にシフトされた−シフト読み出し動作を実行すればよい。この読み出し動作によっても、ＰＤ、ＲＤ、ＤＲの影響を除去して正確なデータを読み出すことが可能である。
【０１０５】
尚、ＤＲを無視することが可能なシステム、例えば絶えず高速にデータが上書きされるシステムや、ＤＲが悪いブロックを更新する機能を有するシステム（例えば、特許文献８）に本メモリシステムを適用する場合、ＤＲの劣化を考慮する必要性は小さい。このため、−方向のシフト読み出しを省略して、読み出しレベルを＋方向（閾値電圧が高くなる方向）にシフトして１回読むだけの構成とすることも可能である。
【０１０６】
また、サーバー等の読み出し動作が支配的な常時稼動システムに本メモリシステムを適用する場合、＋方向のシフト読み出しを省略して、放置時間を参照し、放置時間が規定値以上である場合、読み出しレベルＶＡ，ＶＢ，ＶＣが−方向にシフトされた−シフト読み出し動作を、１回実行するだけの構成とすることも可能である。
【０１０７】
さらに、メモリセルからデータを読み出す場合、読み出し時間を変えて読むことも可能である。すなわち、読み出し時に、セル間のカップリングをキャンセルするような読み出しや、隣接ビット線のノイズをキャンセルするような読み出しや、メモリセルのセンスノードのプリチャージ電圧を変えたり、読み出し時のセンス回数やセンス時間を変えたりすることが可能である。
【０１０８】
（第２の実施形態）
次に、第２の実施形態について説明する。上記第１の実施形態はＰＤ，ＲＤ、ＤＲの影響を除去するため、管理領域を参照し、読み出しレベルＶＡ，ＶＢ，ＶＣや、読み出し電圧Ｖｒｅａｄを＋方向又は−方向に変化させて読み出し動作を行った。この読み出し動作の後、ＥＣＣを判定し、エラービット数が多い場合、そのブロックをリフレッシュした。
【０１０９】
これに対して、第２の実施形態は、最初の読み出しの際のＥＣＣによる誤り訂正でエラービット数が多くＥＣＣによる誤り訂正が不可能（ＥＣＣエラー）であった場合、シフト読み出し（リトライ読み出し）を行い、再度ＥＣＣによる誤り訂正を実行することで、システムとしての不良率を改善する。
【０１１０】
図１３、図１４は、第２の実施形態を示している。図１３に示すように、先ず、例えばデフォルトの読み出しレベルによりメモリセルからデータが読み出される（Ｓ３１）。次いで、ＥＣＣが判定される（Ｓ３２）。この結果、エラービット数少なくＥＣＣによる誤り訂正が可能である場合、読み出し動作が終了される。また、エラービット数が多くＥＣＣによる誤り訂正が不可能である場合、リトライ読み出しが実行される（Ｓ３３）。
【０１１１】
図１４は、リトライ読み出しの一例を示している。このリトライ読み出しにおいて、先ず、読み出しレベルが、デフォルトの読み出しレベルより例えば高くシフトされ、＋シフト読み出し動作が行われる（Ｓ４１）。この後、ＥＣＣが判定され、誤り訂正が正常に実行できるかどうか判定される（Ｓ４２）。
【０１１２】
誤り訂正が正常に実行できない場合、＋シフト読み出し動作が規定回数、例えば２回行われたかどうか判別される（Ｓ４３）。この結果、２回以下である場合、再度＋シフト読み出し動作が行われる（Ｓ４１）。この際、読み出しレベルが前回より高くシフトされ、＋シフト読み出し動作が行われる。この後、ＥＣＣが判定され、誤り訂正が正常に実行できるかどうか判定される（Ｓ４２）。
【０１１３】
誤り訂正が正常に実行できる場合はリトライ読み出しが終了され、まだ誤り訂正が正常に実行できない場合、＋シフト読み出し動作が規定回数、例えば２回行われたかどうか判別される（Ｓ４３）。この場合、２回目であるため、読み出しレベルのシフト方向が反転される。
【０１１４】
すなわち、デフォルトの読み出しレベルより例えば低くシフトされ、−シフト読み出し動作が行われる（Ｓ４４）。この後、ＥＣＣが判定され、誤り訂正が正常に実行できるどうか判定される（Ｓ４５）。
【０１１５】
誤り訂正が正常に実行できない場合、−シフト読み出し動作が規定回数、例えば２回行われたかどうか判別される（Ｓ４６）。この結果、２回以下である場合、再度−シフト読み出し動作が行われる（Ｓ４４）。この際、読み出しレベルが前回より低くシフトされ、−シフト読み出し動作が行われる。この後、ＥＣＣが判定され、誤り訂正が正常に実行できるかどうか判定される（Ｓ４５）。
【０１１６】
誤り訂正が正常に実行できる場合はリトライ読み出しが終了され、まだ誤り訂正が正常に実行できない場合、−シフト読み出し動作が規定回数、例えば２回行われたかどうか判別される（Ｓ４６）。この場合、２回目であるため、シフト読み出しを行ってもデータ読み出しが不可能であると判断し、ドライブ制御回路４はホスト装置１に対して読み出しがエラー終了したことを示すステータスを返す（Ｓ４７）。
【０１１７】
上記リトライ読み出しにおいて、リトライ回数は、＋方向、−方向とも２回とした。しかし、これに限定されるものではなく、＋方向、−方向とも１回、又は３回以上とすることも可能である。
【０１１８】
また、上記リトライ読み出しにおいて、Ｓ４７で読み出しがエラー終了したことを示すステータスを返すとしたが、メモリシステムが図３に示すように２段階の誤り訂正を行う場合は、Ｓ３２，Ｓ４２，Ｓ４５でのＥＣＣ訂正では第２のＥＣＣ回路１１８でエラー訂正が可能であるかを判断することとし、Ｓ４７では、第１のＥＣＣ回路１１２による誤り訂正を行うこととしても良い。これにより、消費電力が大きく処理に時間のかかる第１のＥＣＣ回路１１２による誤り訂正が発動する機会を少なくすることができる。
【０１１９】
上記第２の実施形態によれば、データ読み出しにおいて、ＥＣＣエラービット数が規定値以上である場合、読み出しレベルを＋方向、又は−方向にシフトしてリトライ読み出しを行っている。このため、プログラムディスターブＰＤ、リードディスターブＲＤの影響、又はデータリテンションＤＲの劣化の影響を除去することができ、正確にデータを読み出すことができる。したがって、メモリシステムの信頼性を向上することが可能である。
【０１２０】
上記第２の実施形態において、リトライ読み出し動作は、図１４に示す方法に限定されるものではなく、読み出し時間を変えて読むことも可能である。具体的には、例えば隣接メモリセルの先読み技術を適用することが可能である。この先読み技術に関しては、特許文献２、特許文献３に開示されている。これらの全内容は本出願に援用される。
【０１２１】
特許文献２に開示された先読み技術では、例えばワード線ＷＬｎに接続されたメモリセルのデータを読み出す場合、先ず、ワード線ＷＬｎ＋１に接続されたメモリセルのデータを読み出す。ワード線ＷＬｎに接続されたメモリセルを読み出すとき、ワード線ＷＬｎ＋１に接続されたメモリセルから読み出されたデータの閾値電圧に基づき、読み出しレベルＶＡ，ＶＢ，ＶＣを僅かに高くシフトして読み出し動作を実行する。これにより隣接セルの書き込みの影響を除去でき、正確にデータを読み出すことができる。
【０１２２】
また、特許文献３に開示された先読み技術では、例えばワード線ＷＬｎに接続されたメモリセルのデータを読み出す場合、先ず、ワード線ＷＬｎ＋１に接続されたメモリセルのデータを読み出す。ワード線ＷＬｎに接続されたメモリセルを読み出すとき、ワード線ＷＬｎ＋１に接続されたメモリセルから読み出されたデータの閾値電圧に基づき、非選択ワード線ＷＬｎ＋１に印加される読み出し電圧Ｖｒｅａｄが高くシフトされ、カップリングにより選択ワード線ＷＬｎのレベルが上昇する。これにより隣接セルの書き込みの影響を除去でき、正確にデータを読み出すことができる。
【０１２３】
上記隣接メモリセルの先読み技術は、選択ワード線に接続されたメモリセルのデータを読み出す前に、非選択ワード線に接続されたメモリセルのデータを読み出す必要があるため、読み出し時間が遅れる。このため、隣接メモリセルの先読み技術採用するＮＡＮＤ型フラッシュメモリをメモリシステムが採用する場合は、先読み技術を、システムの用途に応じて切り替え可能とするとよい。例えば、リトライ読み出しの際に先読みをＯＮにし、通常読み出し時は先読みをＯＦＦにすれば良い。
【０１２４】
さらに、第２の実施形態は、読み出し時のセンス時間を変更することも可能である。上述したように、ＰＤの影響を受けたメモリセルは、閾値電圧が高くシフトしている。このため、読み出し電圧Ｖｒｅａｄに対して、セルトランジスタはオンしにくくなっている。そこで、非選択ワード線に印加される読み出し電圧ＶＲＥＡＤを上げてリトライ読み出しを行う。この場合、選択ワード線の電位は、非選択ワード線とのカップリングにより上昇する。このため、選択ワード線に接続されたセルトランジスタに流れる電流Ｉｃｅｌｌを増加することができる。したがって、正確にデータを読み出すことができ、システムの信頼性を向上することが可能である。
【０１２５】
また、リトライ読み出しにおいて、読み出し時のセンスノードのプリチャージ電圧を変えたり、読み出し時のセンス回数を変えたりすることも可能である。
【０１２６】
（第３の実施形態）
図１５は、第３の実施形態を示している。第３の実施形態は、第１、第２の実施形態を組み合わせた読み出し動作である。すなわち、第１に実施形態において説明したモニタリードは、電源起動時、又は任意のタイミングで実行された。これに対して、第３の実施形態は、読み出し動作において、ＥＣＣエラーが発生した場合、読み出しレベルを＋／−の両方にシフトして読み出し動作を行い、そのときのシフトデータを管理テーブルに記録し、次の読み出し動作において、管理テーブルに記録されたシフトデータに基づき読み出し動作を行うものである。
【０１２７】
図１５に示すように、例えばデフォルトの読み出しレベルにより読み出し動作が行われる（Ｓ５１）。この後、ＥＣＣが判定される（Ｓ５２）。この判定の結果、ＥＣＣエラーが発生している場合、例えば先ず読み出しレベルが僅かに高くシフトされ、＋シフト読み出しが実行される（Ｓ５３）。この読み出し後、再度ＥＣＣが判定される（Ｓ５４）。この判定の結果、ＥＣＣエラーが発生していない場合、＋シフトを示す＋シフトデータが管理テーブルＭＴに記録される。＋シフトデータには、例えば、＋方向へのシフトを示すデータ、及びシフト量を示すデータが含まれる。
【０１２８】
一方、ステップＳ５４の判定の結果、ＥＣＣエラーが発生している場合、例えばデフォルトの読み出しレベルが僅かに低くシフトされ、−シフト読み出しが実行される（Ｓ５６）。この読み出し後、ＥＣＣが判定される（Ｓ５７）。この判定の結果、ＥＣＣエラーが発生していない場合、−シフトを示す−シフトデータが管理テーブルＭＴに記録される。−シフトデータには、例えば、−方向へのシフトを示すデータ、及びシフト量を示すデータが含まれる。
【０１２９】
また、Ｓ５７での判定の結果、ＥＣＣエラーが発生している場合、＋方向へ読み出しレベルをシフトさせても（Ｓ５３）、−方向に読み出しレベルをシフトさせても（Ｓ５６）、ＥＣＣエラーが解消されなかったことを意味するので、ドライブ制御回路４はホスト装置１に対して読み出しがエラー終了したことを示すステータスを返す。管理テーブルには、例えば、読み出し対象の領域が使用不可であることを示すデータを記録する。（Ｓ５６）。
【０１３０】
なお、本実施形態では、＋方向のシフト読み出しと−方向のシフト読み出しをそれぞれ１回ずつ行うこととしたが、第２の実施形態のように、複数回のシフト読み出しを行っても良い。例えば、Ｓ５３で＋シフト読み出しを行ってもＥＣＣエラーが解消されない場合は、＋方向へのシフト量を増加させた後、再度ＥＣＣ判定を行っても良い。また、例えば、Ｓ５６で＋シフト読み出しを行ってもＥＣＣエラーが解消されない場合は、−方向へのシフト量を増加させた後、再度ＥＣＣ判定を行っても良い。
【０１３１】
また、Ｓ５２でのＥＣＣ判定は、ＥＣＣエラーが発生したか否かではなく、ＥＣＣ訂正が可能であった場合であっても、誤りビット数が規定値以下であるかを判断するとしても良い。例えば、Ｓ５２で訂正可能な範囲であるが、誤りビット数が規定値を超えている場合、Ｓ５３で＋シフト読み出しを実行する。Ｓ５４で再度ＥＣＣ判定を行った際、誤りビット数がＳ５２の場合よりも減少していれば、Ｓ５５で＋シフト量を管理テーブルに記録する。
【０１３２】
一方、Ｓ５３で＋シフト読み出しを実行し、Ｓ５４で再度ＥＣＣ判定を行った際、誤りビット数が増加、またはＥＣＣエラーが発生した場合は、Ｓ５６で−シフト読み出しを実行する。Ｓ５７で再度ＥＣＣ判定を行った際、誤りビット数がＳ５２の場合よりも減少していれば、Ｓ５８で−シフト量を管理テーブルに記録する。Ｓ５６で−シフト読み出しを実行し、Ｓ５７で再度ＥＣＣ判定を行った際、誤りビット数が増加、またはＥＣＣエラーが発生した場合は、デフォルトの読み出しレベルが最適であったと考えられるので、管理テーブルにデフォルトの読み出しレベルを記録すれば良い。この場合も、＋方向のシフト読み出しと−方向のシフト読み出しをそれぞれ１回ずつ行うこととしたが、第２の実施形態のように、複数回のシフト読み出しを行っても良い。複数回のシフト読み出しを行う場合、規定回数のシフトを行わなくても、前回シフト量でＥＣＣ判定した場合よりも誤りビット数が増えていれば、同方向では再度のシフトを行わずに、シフト方向が反転されても良い。
【０１３３】
このようにして、管理テーブルＭＴにそのブロックを読むための最適な読み出しレベルのシフトデータが記録される。この後、このブロックの読み出し動作が実行される場合、第１の実施形態と同様に、先ず、管理テーブルＭＴが参照され、この管理テーブルＭＴに記録されたシフトデータが読み出される。この読み出されたシフトデータに基づき読み出しレベルが設定され、読み出し動作が実行される。
【０１３４】
上記第３の実施形態によれば、ＥＣＣエラーが発生した場合、読み出しレベルを＋／−の両方にシフトして読み出し動作を行い、ＥＣＣエラーが発生しない読み出しレベルを検出し、そのときのシフトデータを管理テーブルＭＴに記録し、次の読み出し動作において、管理テーブルＭＴに記録されたシフトデータに基づき読み出しレベルを設定して読み出し動作を行っている。このため、そのブロックに最適な読み出しレベルによりデータを読み出すことができるため、正確にデータを読み出すことができ、システムの信頼性を向上することが可能である。
【０１３５】
また、第３の実施形態によれば、読み出し動作において、ＥＣＣエラーが発生した場合、直ちに管理テーブルが更新されるため、前述したモニタリードに比べて即効性を有している。
【０１３６】
さらに、ブロックのデータを読み出すとき、管理テーブルＭＴに記録されたシフトデータに基づき、最初から最適な読み出しレベルでデータを読み出すことが可能であるため、リトライ読み出しに比べて読み出し速度を高速化することができ、パフォーマンスを向上することが可能である。
【０１３７】
（第４の実施形態）
図１６は、第４の実施形態を示している。第４の実施形態は、リフレッシュ動作によりＤＲの影響が低減されたシステムに適用される。このようなシステムの場合、ＰＤ、ＲＤの影響を考慮して読み出し動作が実行される。
【０１３８】
図１６に示すように、先ず、デフォルトの読み出しレベルを用いてデータが読み出され、ＥＣＣ判定が行われる（Ｓ６１，Ｓ６２）。この結果、エラービット数が規定値より少ない場合、処理が終了される。また、エラービット数が規定値より多い場合、＋シフト読み出し動作、及びＥＣＣ判定が行われる（Ｓ６３，Ｓ６４）。この結果、エラービット数が規定値より少ない場合、処理が終了される。また、エラービット数が規定値より多い場合、デフォルトの読み出しレベルより低いレベルにより、−シフト読み出し動作が実行される（Ｓ７１）。この後、ＥＣＣ判定が行われる（Ｓ７２）。この結果、エラービット数が規定値より少ない場合、このまま、終了とすることも可能であるが、ＤＲが劣化していることが分かっているため、例えばリフレッシュ動作が実行され、ＤＲが改善される（Ｓ７４）。また、エラービット数が規定値より多い場合、例えばリードソロモン処理が実行され、データの復活が試みられる。
【０１３９】
一方、ステップＳ６４でエラービット数が規定値より少ない状態で処理が終了した後、例えば別の読み出しのためのコマンドが設定された場合（Ｓ６５）、ステップＳ６３と同じシフトレベルで、＋シフト読み出し動作が行われる（Ｓ６６）。この後、ＥＣＣ判定が行われ（Ｓ６７）、エラービット数が規定値より少ない場合、処理が終了され、エラービット数が規定値より多い場合、例えばデフォルトの読み出しレベルを用いて読み出し動作が実行される（Ｓ６８）。この後、ＥＣＣ判定が行われ（Ｓ６９）、エラービット数が規定値より少ない場合、このまま、終了とすることも可能であるが、ＤＲが劣化していることが分かっているため、例えばリフレッシュ動作が実行され、ＤＲが改善される（Ｓ７４）。また、エラービット数が規定値より多い場合、ステップＳ７１に制御が移行される。
【０１４０】
上記第４の実施形態によれば、ＤＲの影響が低減されたシステムにおいて、シフト読み出しの回数を低減することが可能であるため、読み出し動作を高速化することが可能である。しかも、必要なシフト読み出しは実行されるため、正確な読み出し動作が可能であり、システムの信頼性を向上させることができる。
【０１４１】
本発明は、上記各実施形態に限定されるものではなく、発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。
【符号の説明】
【０１４２】
４…データ制御回路、１０…ＮＡＮＤ型フラッシュメモリ、２０…ＤＲＡＭ、１００…ＳＳＤ、１０４…プロセッサ、２０１…メモリセルアレイ、ＭＴ…管理テーブル。
【図１】
2011100519.tif 000003
【図２】
2011100519.tif 000004
【図３】
2011100519.tif 000005
【図４】
2011100519.tif 000006
【図５】
2011100519.tif 000007
【図６】
2011100519.tif 000008
【図７】
2011100519.tif 000009
【図８】
2011100519.tif 000010
【図９】
2011100519.tif 000011
【図１０】
2011100519.tif 000012
【図１１】
2011100519.tif 000013
【図１２】
2011100519.tif 000014
【図１３】
2011100519.tif 000015
【図１４】
2011100519.tif 000016
【図１５】
2011100519.tif 000017
【図１６】
2011100519.tif 000018