(57)【要約】【課題】動作信頼性を向上出来るメモリシステムを提供する。【解決手段】一実施形態のメモリシステムは、半導体メモリとコントローラとを具備し、第１動作と第２動作とを実行可能である。第１ワード線に第１電圧VCGRVを印加し第２ワード線に第２電圧VREADを印加することにより第１メモリセルからデータを読み出し、該読み出されたデータがコントローラに送信される。第２動作では、第１ワード線に第３電圧VREADを印加し第２ワード線に第４電圧VREADを印加し、メモリセルアレイに保持されるデータはコントローラに送信されない。第２動作は、第１動作後に第１メモリセルへの書き込み動作及び消去動作を介することなく実行される。第３電圧VREADは第１メモリセルをオンさせ、第２及び第４電圧VREADは第２メモリセルをオンさせる。【選択図】図１３
2019164865.tif 000002
【特許請求の範囲】
【請求項１】
データを保持可能であり、第１ワード線及び第２ワード線にそれぞれ接続された第１メモリセル及び第２メモリセルを含むメモリセルアレイを備えた半導体メモリと、
前記半導体メモリを制御するコントローラと
を具備し、第１動作と、該第１動作後の第２動作とを実行可能であり、
前記第１動作では、前記コントローラが第１コマンドシーケンスを発行し、前記半導体メモリは前記第１コマンドシーケンスに応答して、前記第１ワード線に第１電圧を印加し前記第２ワード線に第２電圧を印加することにより前記第１メモリセルからデータを読み出し、該読み出されたデータが前記半導体メモリから前記コントローラに送信され、
前記第２動作では、前記コントローラが第２コマンドシーケンスを発行し、前記半導体メモリは前記第２コマンドシーケンスに応答して、前記第１ワード線に第３電圧を印加し、前記第２ワード線に第４電圧を印加し、前記メモリセルアレイに保持されるデータは前記コントローラに送信されず、
前記第２動作は、前記第１動作後に、前記第１メモリセルへの書き込み動作及び消去動作を介することなく実行され、
前記第３電圧は保持データにかかわらず前記第１メモリセルをオンさせ、
前記第２電圧及び前記第４電圧は保持データにかかわらず前記第２メモリセルをオンさせる、メモリシステム。
【請求項２】
前記メモリセルアレイは、データの消去単位となるブロックを備え、
前記ブロックは、直列接続された、前記第１メモリセル及び前記第２メモリセルを含む複数のメモリセルを含み、
前記複数のメモリセルは、前記第１ワード線及び前記第２ワード線を含む複数のワード線にそれぞれ接続され、
前記第２動作において、前記複数のワード線の全てに前記第３電圧と前記第４電圧のいずれかが印加される、請求項１記載のメモリシステム。
【請求項３】
前記第３電圧と前記第４電圧の値は、前記第２電圧と同じ、またはそれ以上である、請求項１記載のメモリシステム。
【請求項４】
前記第１ワード線及び前記第２ワード線に前記第３電圧と前記第４電圧とがそれぞれ印加されている期間は、前記第２ワード線に前記第２電圧が印加されている期間と同じ、またはそれ以上である、請求項１記載のメモリシステム。
【請求項５】
前記コントローラは、前記第２コマンドシーケンスの前に第３コマンドシーケンスを発行することにより、前記第３電圧と前記第４電圧の値、または前記第１ワード線及び前記第２ワード線に前記第３電圧と前記第４電圧とがそれぞれ印加されている期間のいずれかを前記半導体メモリに通知する、請求項１記載のメモリシステム。
【請求項６】
前記第２コマンドシーケンスは、前記第１コマンドシーケンスに、更に第１コマンドを付加したものである、請求項１記載のメモリシステム。
【請求項７】
前記第１コマンドシーケンスは、前記メモリセルアレイにおいて、前記第１メモリセルを含む第１領域を指定する第１アドレスを含み、
前記第２コマンドシーケンスは、前記第１アドレスと同じ領域を指定する第２アドレスを含む、請求項１記載のメモリシステム。
【請求項８】
前記コントローラは、前記第１メモリセルからデータを読み出す際に前記第１ワード線に印加すべき電圧のシフト量に関する情報を保持し、
前記シフト量に大きさに応じて前記第２動作を実行するか否かを決定する、請求項１記載のメモリシステム。
【請求項９】
前記情報は、前記第１ワード線に印加すべき電圧についての複数のシフト値と、前記複数のシフト値の適用優先順位との関係を保持する第１テーブルと、
適用すべきシフト値を保持する第２テーブルと
を含み、前記コントローラは、前記第２テーブルに保持される第１シフト値に従って前記第１ワード線に電圧を印加して前記第１メモリセルからデータを読み出し、
前記読み出したデータについてのエラー訂正に失敗した場合、前記第１テーブルにおける前記適用優先順位に従って、次に優先される第２シフト値に従って前記第１ワード線に電圧を印加して前記第１メモリセルからデータを読み出し、
前記読み出したデータについてのエラー訂正に成功した場合、前記第２テーブルにおけるシフト値を、前記第１シフト値から前記第２シフト値に更新する、請求項８記載のメモリシステム。
【請求項１０】
前記コントローラは、前記第２シフト値が第１基準値を超えていた場合に、前記第２動作を実行する、請求項９記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
メモリセルが三次元に配列された半導体メモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８，２５０，４３７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上出来るメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
本実施形態のメモリシステムは、データを保持可能であり、第１ワード線及び第２ワード線にそれぞれ接続された第１メモリセル及び第２メモリセルを含むメモリセルアレイを備えた半導体メモリと、半導体メモリを制御するコントローラとを具備し、第１動作と、該第１動作後の第２動作とを実行可能である。第１動作では、コントローラが第１コマンドシーケンスを発行し、半導体メモリは第１コマンドシーケンスに応答して、第１ワード線に第１電圧を印加し第２ワード線に第２電圧を印加することにより第１メモリセルからデータを読み出し、読み出されたデータが半導体メモリからコントローラに送信される。また第２動作では、コントローラが第２コマンドシーケンスを発行し、半導体メモリは第２コマンドシーケンスに応答して、第１ワード線に第３電圧を印加し、前記第２ワード線に第４電圧を印加し、メモリセルアレイに保持されるデータはコントローラに送信されない。第２動作は、第１動作後に、第１メモリセルへの書き込み動作及び消去動作を介することなく実行される。そして、第３電圧は保持データにかかわらず第１メモリセルをオンさせ、第２電圧及び第４電圧は保持データにかかわらず第２メモリセルをオンさせる。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図。
【図２】図２は、第１実施形態に係るブロックの回路図。
【図３】図３は、第１実施形態に係るブロックの断面図。
【図４】図４は、第１実施形態に係るメモリセルの閾値分布を示すグラフ。
【図５】図５は、第１実施形態に係るシフトテーブルの概念図。
【図６】図６は、第１実施形態に係る履歴テーブルの概念図。
【図７】図７は、第１実施形態に係るリフレッシュリードフラグ及びブロックコピーフラグの概念図。
【図８】図８は、第１実施形態に係る読み出し動作のフローチャート。
【図９】図９は、第１実施形態に係るset featureのコマンドシーケンス。
【図１０】図１０は、第１実施形態に係るＮＡＮＤ型フラッシュメモリ内のレジスタ内の情報を示す概念図。
【図１１】図１１は、第１実施形態に係るＮＡＮＤ型フラッシュメモリ内のレジスタ内の情報を示す概念図。
【図１２】図１２は、第１実施形態に係るリフレッシュリード動作のフローチャート。
【図１３】図１３は、第１実施形態に係る読み出し動作及びリフレッシュリード動作時における各種信号のタイミングチャート。
【図１４】図１４は、第１実施形態に係る通常リード時におけるブロックの回路図。
【図１５】図１５は、第１実施形態に係るリフレッシュリード時におけるブロックの回路図。
【図１６】図１６は、第１実施形態に係る読み出し動作及びリフレッシュリード動作のフローチャート。
【図１７】図１７は、第１実施形態に係る読み出し動作及びブロックコピー動作のフローチャート。
【図１８】図１８は、第１実施形態に係るメモリセルの閾値分布を示すグラフ。
【図１９】図１９は、第２実施形態に係るリフレッシュリード動作のフローチャート。
【図２０】図２０は、第２実施形態に係る読み出し動作及びリフレッシュリード動作のフローチャート。
【図２１】図２１は、第３実施形態に係る読み出し動作及びリフレッシュリード動作のフローチャート。
【図２２】図２２は、第１乃至第３実施形態の第１変形例に係るリフレッシュリード時におけるブロックの回路図。
【図２３】図２３は、第１乃至第３実施形態の第１変形例に係るリフレッシュリード時におけるブロックの回路図。
【図２４】図２４は、第１乃至第３実施形態の第１変形例に係るリフレッシュリード時におけるブロックの回路図。
【図２５】図２５は、第１乃至第３実施形態の第２変形例に係る履歴テーブルの概念図。
【図２６】図２６は、第１乃至第３実施形態の第２変形例に係る履歴テーブルの概念図。
【図２７】図２７は、第１乃至第３実施形態の第３変形例に係る読み出し動作及びリフレッシュリード動作時における各種信号のタイミングチャート。
【図２８】図２８は、第１乃至第３実施形態の第３変形例に係る読み出し動作及びリフレッシュリード動作時における各種信号のタイミングチャート。
【図２９】図２９は、第１乃至第３実施形態の第３変形例に係る読み出し動作及びリフレッシュリード動作時における各種信号のタイミングチャート。
【図３０】図３０は、第１乃至第３実施形態の第３変形例に係る読み出し動作及びリフレッシュリード動作時における各種信号のタイミングチャート。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてＮＡＮＤ型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
【０００９】
１．１  構成について  
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図１を用いて説明する。
【００１０】
図示するようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とを備えている。ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ホストバスによってホスト機器３００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００を制御し、またホスト機器３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。ホスト機器３００は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばＳＤＴＭインターフェースに従ったバスである。ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。
【００１２】
１．１．２  コントローラ２００の構成について  
引き続き図１を用いて、コントローラ２００の構成の詳細について説明する。図１に示すようにコントローラ２００は、ホストインターフェース回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェース回路２５０、及びＥＣＣ（Error Checking and Correcting）回路２６０を備えている。
【００１３】
ホストインターフェース回路２１０は、ホストバスを介してホスト機器３００と接続され、ホスト機器３００から受信した命令及びデータを、それぞれプロセッサ２３０及びバッファメモリ２４０に転送する。またプロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器３００へ転送する。
【００１４】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えばプロセッサ２３０は、ホスト機器３００から読み出し命令を受信した際には、それに応答して、ＮＡＮＤインターフェース回路２５０に対して読み出しコマンドを発行する。書き込み及び消去の際も同様である。またプロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。
【００１５】
ＮＡＮＤインターフェース回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そしてＮＡＮＤインターフェース回路２５０は、プロセッサ２３０から受信した命令に基づき、種々の信号をＮＡＮＤ型フラッシュメモリ１００へ送信し、またＮＡＮＤ型フラッシュメモリ１００から受信する。
【００１６】
バッファメモリ２４０は、書き込みデータや読み出しデータを一時的に保持する。
【００１７】
内蔵メモリ２２０は、例えばＤＲＡＭやＳＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、後述するシフトテーブル、履歴テーブル、フラグテーブル等の、各種の管理テーブル等を保持する。
【００１８】
ＥＣＣ回路２６０は、ＮＡＮＤ型フラッシュメモリ１００に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちＥＣＣ回路２６０は、データの書き込み時には誤り訂正符号を生成して、これを書き込みデータに付与し、データの読み出し時にはこれを復号する。
【００１９】
１．１．３  ＮＡＮＤ型フラッシュメモリ１００の構成について  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。図１に示すようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０、ドライバ回路１３０、センスアンプ１４０、アドレスレジスタ１５０、コマンドレジスタ１６０、及びシーケンサ１７０を備える。
【００２０】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックＢＬＫを備えている。図１では一例として４つのブロックＢＬＫ０〜ＢＬＫ３が図示されている。そしてメモリセルアレイ１１０は、コントローラ２００から与えられたデータを記憶する。
【００２１】
ロウデコーダ１２０は、アドレスレジスタ１５０内のブロックアドレスＢＡに基づいてブロックＢＬＫ０〜ＢＬＫ３のいずれかを選択し、更に選択したブロックＢＬＫにおけるロウ方向を選択する。
【００２２】
ドライバ回路１３０は、アドレスレジスタ１５０内のページアドレスＰＡに基づいて、選択されたブロックＢＬＫに対して、ロウデコーダ１２０を介して電圧を供給する。
【００２３】
センスアンプ１４０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、必要な演算を行う。そして、このデータＤＡＴをコントローラ２００に出力する。データの書き込み時には、コントローラ２００から受信した書き込みデータＤＡＴを、メモリセルアレイ１１０に転送する。
【００２４】
アドレスレジスタ１５０は、コントローラ２００から受信したアドレスＡＤＤを保持する。このアドレスＡＤＤには、前述のブロックアドレスＢＡとページアドレスＰＡとが含まれる。コマンドレジスタ１６０は、コントローラ２００から受信したコマンドＣＭＤを保持する。
【００２５】
シーケンサ１７０は、コマンドレジスタ１６０に保持されたコマンドＣＭＤに基づき、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２６】
次に、上記ブロックＢＬＫの構成について図２を用いて説明する。図示するように、ブロックＢＬＫは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１０を含む。
【００２７】
ＮＡＮＤストリング１０の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、２個のダミートランジスタＤＴ（ＤＴＤ、ＤＴＳ）、及び２個の選択トランジスタＳＴ１、ＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、ダミートランジスタＤＴＤ及びＤＴＳをそれぞれ介して、直列接続されている。
【００２８】
ダミートランジスタＤＴは、メモリセルトランジスタＭＴと同様に制御ゲートと電荷蓄積層を備える。しかし、ダミートランジスタＤＴはメモリセルトランジスタＭＴと異なり、データを保持するためのものではなく、ＮＡＮＤストリング１０内においては単なる電流経路として機能する。すなわち、ダミートランジスタＤＴの閾値は、読み出し動作時や書き込み動作時に常にオン状態となるよう、低い値に設定されている。このダミートランジスタＤＴの閾値は、ダミートランジスタＤＴに対して書き込み動作を行い、電荷蓄積層内の電荷量を制御することによって、所定の値に設定できる。
【００２９】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。これに対してストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、例えばセレクトゲート線ＳＧＳに共通接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続されても良い。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれワード線ＷＬ０〜ＷＬ７に共通接続され、ダミートランジスタＤＴＤ及びＤＴＳの制御ゲートはそれぞれダミーワード線ＷＬＤＤ及びＷＬＤＳに共通接続される。
【００３０】
また、メモリセルアレイ１１０内において同一列にあるＮＡＮＤストリング１０の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、但し（Ｌ−１）は２以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１０を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。
【００３１】
つまりストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一のセレクトゲート線ＳＧＤに接続されたＮＡＮＤストリング１０を複数含む。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵを複数含む。そしてメモリセルアレイ１１０は、ビット線ＢＬを共通にする複数のブロックＢＬＫを複数含む。
【００３２】
図３は、ブロックＢＬＫの一部領域の断面図である。図示するように、ｐ型ウェル領域２０上に、複数のＮＡＮＤストリング１０が形成されている。すなわち、ウェル領域２０上には、セレクトゲート線ＳＧＳとして機能する例えば３層の配線層２７、ダミーワード線ＷＬＤＳ、ワード線ＷＬ０〜ＷＬ７、及びダミーワード線ＷＬＤＤとして機能する１０層の配線層２３、並びにセレクトゲート線ＳＧＤとして機能する例えば３層の配線層２５が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
【００３３】
そして、これらの配線層２５、２３、２７を貫通してウェル領域２０に達するピラー状の導電体３１が形成されている。導電体３１の側面には、ゲート絶縁膜３０、電荷蓄積層（絶縁膜）２９、及びブロック絶縁膜２８が順次形成され、これらによってメモリセルトランジスタＭＴ、ダミートランジスタＤＴ、並びに選択トランジスタＳＴ１及びＳＴ２が形成されている。導電体３１は、ＮＡＮＤストリング１０の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体３１の上端は、ビット線ＢＬとして機能する金属配線層３２に接続される。
【００３４】
ウェル領域２０の表面領域内には、ｎ＋型不純物拡散層３３が形成されている。拡散層３３上にはコンタクトプラグ３５が形成され、コンタクトプラグ３５は、ソース線ＳＬとして機能する金属配線層３６に接続される。更に、ウェル領域２０の表面領域内には、ｐ＋型不純物拡散層３４が形成されている。拡散層３４上にはコンタクトプラグ３７が形成され、コンタクトプラグ３７は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層３８に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域２０を介して導電体３１に電位を与えるための配線である。
【００３５】
以上の構成が、図３を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１０の集合によってストリングユニットＳＵが形成される。
【００３６】
本例では、１つのメモリセルトランジスタＭＴが例えば３ビットデータを保持可能である。この３ビットデータを、下位ビットからそれぞれlowerビット、middleビット、及びupperビットと呼ぶことにする。そして、同一のワード線に接続されたメモリセルの保持するlowerビットの集合をlowerページと呼び、middleビットの集合をmiddleページと呼び、upperビットの集合をupperページと呼ぶ。つまり、１本のワード線ＷＬには３ページが割り当てられ、８本のワード線ＷＬを含むブロックＢＬＫは２４ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行っても良い。
【００３７】
図４は、各メモリセルトランジスタＭＴの取り得るデータ、閾値分布、及び読み出し時に用いる電圧について示したダイアグラムである。
【００３８】
図示するようにメモリセルトランジスタＭＴは、閾値電圧に応じて８個の状態を取ることが出来る。この８個の状態を、閾値電圧の低いものから順に、“Ｅｒ”状態、“Ａ”状態、“Ｂ”状態、“Ｃ”状態、…及び“Ｇ”状態と呼ぶことにする。
【００３９】
“Ｅｒ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ未満であり、データの消去状態に相当する。“Ａ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ以上であり且つＶＢ（＞ＶＡ）未満である。“Ｂ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＢ以上であり且つＶＣ（＞ＶＢ）未満である。“Ｃ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＣ以上であり且つＶＤ（＞ＶＣ）未満である。“Ｄ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＤ以上であり且つＶＥ（＞ＶＤ）未満である。“Ｅ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＥ以上であり且つＶＦ（＞ＶＥ）未満である。“Ｆ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＦ以上であり且つＶＧ（＞ＶＦ）未満である。“Ｇ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＧ以上であり且つＶＲＥＡＤ未満である。このように分布する８個の状態のうちで、“Ｇ”状態が、閾値電圧の最も高い状態である。なおＶＲＥＡＤは、読み出し動作時において非選択ワード線に印加される電圧であり、保持データにかかわらずメモリセルトランジスタＭＴをオンさせる電圧である。
【００４０】
また上記閾値分布は、前述のlowerビット、middleビット、及びupperビットからなる３ビット（３ページ）データを書き込むことで実現される。すなわち、上記８つの状態と、lowerビット、middleビット、及びupperビットとの関係は、次の通りである。
“Ｅｒ”状態：“１１１”（“upper/middle/lower”の順で表記）
“Ａ”状態：“１１０”
“Ｂ”状態：“１００”
“Ｃ”状態：“０００”
“Ｄ”状態：“０１０”
“Ｅ”状態：“０１１”
“Ｆ”状態：“００１”
“Ｇ”状態：“１０１”
このように、閾値分布において隣り合う２つの状態に対応するデータ間では、３ビットのうちの１ビットのみが変化する。
【００４１】
従って、lowerビットを読み出す際には、lowerビットの値（“０” or “１”）が変化する境界に相当する電圧を用いれば良く、このことはmiddleビット及びupperビットでも同様である。
【００４２】
すなわち、図４に示すようにlowerページ読み出しは、“Ｅｒ”状態と“Ａ”状態とを区別する電圧ＶＡ、及び“Ｄ”状態と“Ｅ”状態とを区別する電圧ＶＥを読み出し電圧として用いる。電圧ＶＡ及びＶＥを用いた読み出し動作を、それぞれ読み出し動作ＡＲ及びＥＲと呼ぶ。
【００４３】
middleページ読み出しは、“Ａ”状態と“Ｂ”状態とを区別する電圧ＶＢ、“Ｃ”状態と“Ｄ”状態とを区別する電圧ＶＤ、及び“Ｅ”状態と“Ｆ”状態との間の電圧ＶＦを読み出し電圧として用いる。電圧ＶＢ、ＶＤ、及びＶＦを用いた読み出し動作を、それぞれ読み出し動作ＢＲ、ＤＲ、及びＦＲと呼ぶ。
【００４４】
そしてupperページ読み出しは、“Ｂ”状態と“Ｃ”状態とを区別する電圧ＶＣ、及び“Ｆ”状態と“Ｇ”状態とを区別する電圧ＶＧを読み出し電圧として用いる。電圧ＶＣ及びＶＧを用いた読み出し動作を、それぞれ読み出し動作ＣＲ及びＧＲと呼ぶ。
【００４５】
また、データの消去はブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４６】
更に、メモリセルアレイ１１０の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１１０の構成については、例えば、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月18日に出願された米国特許出願12/406,524号、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME”という2010年3月25日に出願された米国特許出願12/679,991号、及び“SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４７】
１．１．４  シフトテーブルについて  
次に、シフトテーブルについて説明する。前述の通りコントローラ２００は、例えばメモリ２２０においてシフトテーブルを保持する。シフトテーブルの概念につき、図５を用いて説明する。図５はシフトテーブルの一例の概念図である。
【００４８】
図示するようにシフトテーブルは、複数（図５の例では１２個）のエントリを有する。各エントリには、“１”〜“１２”のインデックスが順番に割り当てられている。そして各エントリは、読み出し動作ＡＲ、ＢＲ、ＣＲ、…及びＧＲにおいて選択ワード線ＷＬに印加される読み出し電圧のシフト量を示す情報が保持される。
【００４９】
このシフト量につき、以下説明する。図４で説明した“Ｅｒ”状態、“Ａ”状態、…、及び“Ｇ”状態に対応する閾値分布は、互いに分離している。従って、電圧ＶＡ、ＶＢ、…及びＶＧによって、各状態を区別することができる。しかし、データを書き込んだ後に時間が経過すると、隣接セルとの干渉により（これをセル間干渉効果と呼ぶ）閾値分布が低電圧側にシフトする場合がある。このシフト量は、経過時間が長いほど大きく、また書き込み回数の多いブロックほど大きい。そして、各状態の閾値分布の分布幅が拡がり、隣り合う閾値分布が重なってしまうことがある。
【００５０】
このようにセル間干渉効果により閾値分布が変動すると、上記の電圧ＶＡ、ＶＢ、…及びＶＧではデータを正しく読み出せないことがある。すなわち、読み出しデータに含まれるエラービット数が、ＥＣＣ回路２６０の訂正可能ビット数を超え、この場合、データの読み出しは失敗となる。
【００５１】
このような場合にコントローラ２００は、読み出し電圧を電圧ＶＡ、ＶＢ、…及びＶＧ（これをデフォルトの電圧と呼ぶ）からシフトさせて、再度データの読み出しを試みる。これをシフトリードと呼ぶ。この際のデフォルトの電圧からのシフト量ΔＶを示す情報を保持しているのが、図５に示すシフトテーブルである。
【００５２】
本例におけるシフトテーブルでは、読み出し動作ＡＲ、ＢＲ、…及びＧＲのそれぞれにつき、シフト量ΔＶＡｊ、ΔＶＢｊ、…及びΔＶＧｊが用意されている（ｊはインデックス、すなわち１〜１２のいずれかの自然数であり、これらを区別しない場合にはΔＶと総称する）。あるインデックスｊに相当するシフト量ΔＶＡｊ、ΔＶＢｊ、…及びΔＶＧｊは、全てが異なる値である場合であっても良いし、一部が同じ値を有する場合であっても良いし、全てが同じ値を有する場合であっても良い。これらのシフト量ΔＶは、例えばコントローラ２００によって適宜、適切な値に設定される。
【００５３】
また、本例おけるシフトテーブルでは、インデックスの値が小さいものほど、セル間干渉効果の影響が小さい。すなわち、インデックス＝１に対応するシフト量ΔＶ（すなわちΔＶＡ１、ΔＶＢ２、…及びΔＶＧ１）は、セル間干渉効果の影響が最も小さい場合に最適化されている。これに対してインデックス＝１２に対応するシフト量ΔＶ（すなわちΔＶＡ１２、ΔＶＢ１２、…及びΔＶＧ１２）は、セル間干渉効果の影響が最も大きい場合に最適化されている。
【００５４】
セル間干渉効果から受ける影響の程度は、閾値分布が“Ｅｒ”〜“Ｇ”状態のいずれにあるかによって異なる場合がある。例えば、本実施形態で着目している、時間の経過と共に閾値分布が低電圧側にシフトするセル間干渉効果の場合、その影響は閾値電圧の高い状態ほど大きい。つまり、読み出し動作ＧＲ、ＦＲに大きな影響を与える。他方で、読み出し動作ＣＲやＤＲではそれほど大きくない、という傾向にある。従って、例えば下記の関係が成り立ち得る。  
｜ΔＶＧ１２｜＞｜ΔＶＧ１｜  
｜ΔＶＧ１２｜＞｜ΔＶＣ１２｜、｜ΔＶＤ１２｜  
この関係は一例に過ぎず、またこのような場合に限定されるものではない。また、絶対値で表記している理由は、セル間干渉効果による影響が負電圧側への閾値変動だとすれば、シフト量ΔＶは負の値を有するからである。もちろん、各シフト量ΔＶは、負の値を有しても良いし、正の値を有しても良く、シフトリードに適切な値であれば良い。
【００５５】
またコントローラ２００は、インデックスのいずれかを第１基準値として記憶し、別のいずれかのインデックスを第２基準値として記憶する。第２基準値となるインデックスは、第１基準値となるインデックスよりも、セル間干渉効果の影響が大きいシフト量に対応する。図５の例であると、インデックス＝７が第１基準値とされ、インデックス＝１０が第２基準値とされる。第１基準値はリフレッシュリードを行うか否かの判断基準として用いられ、第２基準値はブロックコピー動作を行うか否かの判断基準として用いられる。リフレッシュリード及びブロックコピーについては、後に詳細に説明する。
【００５６】
上記構成のシフトテーブル、並びにいずれのインデックスが第１基準値及び第２基準値となるかに関する情報は、例えばＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに保持される。そして、例えば電源投入直後等に、コントローラ２００によって読み出され、メモリ２２０等に保持される。
【００５７】
１．１．５  履歴テーブルについて  
コントローラ２００は、更に履歴テーブルを保持する。履歴テーブルにつき、図６を用いて説明する。図６は履歴テーブルの一例の概念図である。
【００５８】
図示するように履歴テーブルは、論理ブロックＬＢにおけるワード線ＷＬ０〜ＷＬ７と、これらのワード線ＷＬ０〜ＷＬ７に適用される、シフトテーブルにおけるインデックスとの関係を保持する。以下、論理ブロックＬＢと区別するために、ＮＡＮＤ型フラッシュメモリ１００のメモリセルアレイ１１０に含まれる各ブロックＢＬＫを物理ブロックと呼ぶことがある。但し、本明細書において単に「ブロックＢＬＫ」と呼ぶ際には、それは物理ブロックを指す。
【００５９】
物理ブロックＢＬＫには、それぞれ固有のアドレスが割り当てられている。これを物理アドレスと呼ぶ。これに対してホスト機器３００は、物理アドレスと異なる論理アドレスを用いてコントローラ２００にアクセスする。この論理アドレスによって指定される物理ブロックＢＬＫが論理ブロックＬＢであり、例えば複数の物理ブロックＢＬＫの集合である。論理ブロックＬＢと物理ブロックＢＬＫとの関係は、常に変化し得る。例えば、ある時点での論理ブロックＬＢ０が、物理ブロックＢＬＫ０〜ＢＬＫ３に対応していたとすると、その後のある時点では、論理ブロックＬＢ０は別の物理ブロックＢＬＫ４〜ＢＬＫ７に対応する。従ってコントローラ２００の例えばバッファメモリ２４０、論理アドレスと物理アドレスとの対応関係を、論理／物理アドレス変換テーブルとして保持する。
【００６０】
そして履歴テーブルは、上記論理ブロックＬＢの各ワード線ＷＬに適用すべき、読み出し電圧のシフト量ΔＶに関する情報を、例えばインデックスを用いて保持する。そしてコントローラ２００は、この履歴テーブルを参照することにより、選択ワード線ＷＬに印加すべき読み出し電圧を決定する。
【００６１】
例えば図６の例であると、論理ブロックＬＢ０のワード線ＷＬ０にはインデックス＝１が割り当てられている。これは、論理ブロックＬＢ０に対応する物理ブロックＢＬＫのワード線ＷＬ０に読み出し電圧を印加する際には、デフォルトの値に対して、図５に示すシフトテーブルにおけるインデックス＝１に対応するシフト量（ΔＶＡ１、ΔＶＢ、…及びΔＶＧ１）が適用されることを意味する。
【００６２】
履歴テーブルで指定されるシフト量は、例えばset featureコマンド等を用いて、コントローラ２００によりＮＡＮＤ型フラッシュメモリ１００に設定される。よって、読み出し動作の度に毎回シフト量ΔＶを指定する必要はない。しかし、履歴テーブルにおいてインデックスが更新された際には、コントローラ２００はＮＡＮＤ型フラッシュメモリ１００に対してシフト量を設定し直す。なおSet featureコマンドは、ＮＡＮＤ型フラッシュメモリ１００における電圧やタイミング等、種々の設定を変更可能なコマンドである。
【００６３】
上記構成の履歴テーブルは、例えばＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに保持される。そして、例えばメモリシステム１への電源投入直後等に、コントローラ２００によって読み出され、メモリ２２０等に保持される。また、メモリシステム１の電源が遮断される際には、メモリ２２０等に保持される履歴テーブルが、ＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに書き込まれる。すなわち、ＮＡＮＤ型フラッシュメモリ１００内の履歴テーブルが更新される。
【００６４】
１．１．６  フラグテーブルについて  
コントローラ２００は、更にフラグテーブルを保持する。フラグテーブルにつき、図７を用いて説明する。図７はフラグテーブルの一例の概念図である。
【００６５】
図示するようにフラグテーブルは、論理ブロックＬＢ毎にリフレッシュリードフラグ及びブロックコピーフラグを保持する。リフレッシュリードフラグ及びブロックコピーフラグは、例えばコントローラ２００によりリフレッシュリード及びブロックコピーがそれぞれ予約された際に“１”とされる。
【００６６】
リフレッシュリードは、１．１．４の項で説明したセル間干渉効果による影響を低減するための動作である。より具体的には、例えば読み出し動作と類似した動作を行って、ワード線ＷＬに電圧を印加する。これにより、メモリセルトランジスタＭＴにリードディスターブを生じさせ、セル間干渉効果の影響を受けた閾値分布を高電圧側へシフトさせる。つまり、閾値分布を理想の状態に近づけることを試みる。これがリフレッシュリードである。なお、本実施形態では本動作を「リフレッシュリード」と呼ぶが、何らかのデータがＮＡＮＤ型フラッシュメモリ１００からコントローラ２００に読み出されるわけではない。すなわち、リフレッシュリードにおいては、ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００への読み出しデータの転送は行われない。
【００６７】
またブロックコピーは、リフレッシュリードや他の手段によっても、データを正しく読むことが困難になった場合に、当該論理ブロックＬＢに対応する全物理ブロックＢＬＫ内の有効データを、別の物理ブロックＢＬＫに書き写す動作である。そして、コピー元の物理ブロックＢＬＫ内のデータは全て消去される。
【００６８】
コントローラ２００は、各論理ブロックＬＢにつき、適用される履歴テーブルのインデックスが第１基準値（図５の例では“７”）を超えた際にリフレッシュリードを予約し、第２基準値（図５の例では“１０”）を超えた際にブロックコピーを予約する。
【００６９】
上記構成のフラグテーブルは、例えばＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに保持される。そして履歴テーブルと同様に、例えばメモリシステム１への電源投入直後等にコントローラ２００によって読み出され、メモリ２２０等に保持される。また、メモリシステム１の電源が遮断される際には、メモリ２２０等に保持されるフラグテーブルが、ＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに書き込まれる。
【００７０】
１．２  読み出し動作及びリフレッシュリード動作について  
次に、本実施形態に係るデータの読み出し動作及びリフレッシュリード動作について説明する。
【００７１】
１．２．１  読み出し動作について  
まず、コントローラ２００による読み出し動作の流れについて、図８を用いて説明する。図８は読み出し動作のフローチャートである。なお図８におけるコントローラ２００の動作は、例えばプロセッサ２３０の制御によって実行される。
【００７２】
コントローラ２００はまず、メモリ２２０内のシフトテーブルと履歴テーブルとを参照する（ステップＳ１０）。これによりコントローラ２００は、各物理ブロックＢＬＫの各ワード線ＷＬに対するシフト量を把握する。そして、いずれかのタイミングにおいてコントローラ２００は、Set featureコマンドを発行して、把握したシフト量を、ＮＡＮＤ型フラッシュメモリ１００に設定する。この様子を図９及び図１０に示す。図９はset featureのコマンドシーケンスであり、図１０はset featureによってＮＡＮＤ型フラッシュメモリ１００に設定される情報の一例を示している。
【００７３】
以下では、論理ブロックＬＢ０に着目し、更に論理ブロックＬＢ０が４つの物理ブロックＢＬＫ０〜ＢＬＫ３に対応する場合を例に説明する。コントローラ２００は、例えばメモリ２２０内の論理／物理アドレス変換テーブルに基づき、論理ブロックＬＢ０が物理ブロックＢＬＫ０〜ＢＬＫ３に対応することを認識する。またコントローラ２００は履歴テーブルに基づき、論理ブロックＬＢ０に適用されるインデックスを把握し、このインデックスと履歴テーブルとに基づいて、論理ブロックＬＢ０で使用すべきシフト量を認識する。
【００７４】
そしてコントローラ２００は、上記論理ブロックＬＢ０に対応する物理ブロックＢＬＫ０〜ＢＬＫ３に適用すべきシフト量を、set featureコマンドによりＮＡＮＤ型フラッシュメモリ１００に設定する。すなわち図９に示すようにコントローラ２００は、まずコマンド“ＥＦｈ”をＮＡＮＤ型フラッシュメモリ１００へ送信する。“ＥＦｈ”は、設定変更の旨をＮＡＮＤ型フラッシュメモリ１００に宣言するコマンドである。引き続きコントローラ２００は、アドレス“ＺＺｈ”を送信する。“ＺＺｈ”は、ＮＡＮＤ型フラッシュメモリ１００において、set featureコマンドにより変更対象となる設定値を保持するレジスタを指定するアドレスである。その後、コントローラ２００はデータを４サイクルにわたって送信する（データ“Ｄ０”〜“Ｄ３”）。このデータ“Ｄ０”〜“Ｄ３”が、物理ブロックＢＬＫ０〜ＢＬＫ３に適用すべきシフト量に関する情報を含む。
【００７５】
この結果、ＮＡＮＤ型フラッシュメモリ１００において指定されたレジスタには、図１０に示すような情報が保持される。すなわちレジスタは、物理ブロックＢＬＫ０〜ＢＬＫ３のワード線ＷＬ０〜ＷＬ７に対して読み出し動作ＡＲ、ＢＲ、…及びＧＲを行う際に用いるシフト量ΔＶを保持する。そしてＮＡＮＤ型フラッシュメモリ１００のドライバ１３０は、読み出し時におけるデフォルトの電圧ＶＡ、ＶＢ、…及びＶＧに対して、レジスタに保持されたシフト量を加えた値の電圧を読み出し電圧ＶＣＧＲＶとして、ロウデコーダ１２０を介して、選択ワード線ＷＬに印加する。つまり、当初の電圧ＶＡ、ＶＢ、…及びＶＧの代わりに、電圧（ＶＡ＋ΔＶＡ）、（ＶＢ＋ΔＶＢ）、…及び（ＶＧ＋ΔＶＧ）が、読み出し電圧ＶＣＧＲＶのデフォルト値となる。
【００７６】
なお、ＮＡＮＤ型フラッシュメモリ１００から読み出された履歴テーブルにそのまま従ってシフト量が設定される場合には、必ずしもset featureコマンドを使用する必要はない。例えば、電源投入時等において、ＮＡＮＤ型フラッシュメモリ１００自らが（例えばシーケンサ１７０が）、メモリセルアレイ１１０から読み出された履歴テーブル及びシフトテーブルに基づいて、図１０に示すシフト量をレジスタに設定しても良い。
【００７７】
そしてコントローラ２００は、ホスト機器３００からデータの要求命令を受信すると、通常リードコマンドを発行する（ステップＳ１１）。通常リードコマンドは、読み出し電圧のシフト量に関する情報を含まない。よってＮＡＮＤ型フラッシュメモリ１００は、デフォルトの読み出し電圧を用いてデータを読み出し、これをコントローラ２００に送信する。すなわち、例えばブロックＢＬＫ０のワード線ＷＬ２が選択される場合には、読み出し電圧ＶＣＧＲＶとして（ＶＡ＋ΔＶＡ７）、（ＶＢ＋ΔＶＢ７）、（ＶＣ＋ΔＶＣ７）、…及び（ＶＧ＋ΔＶＧ７）が用いられる。
【００７８】
ＮＡＮＤ型フラッシュメモリ１００から読み出しデータを受信したコントローラ２００では、ＥＣＣ回路２６０がエラーを検出する。そして、読み出しデータにエラーが含まれない場合、またはＥＣＣ回路２６０によりエラーを訂正（ハードビットデコード）できた場合（ステップＳ１２、ＹＥＳ）、データの読み出し動作は完了する。
【００７９】
読み出しデータに含まれるエラービット数がＥＣＣ回路２６０で訂正可能なビット数を超えており（ステップＳ１２、ＮＯ）、履歴テーブルが最終インデックス（図５の例であると“１２”）を指定する場合（ステップＳ１３、ＹＥＳ）、コントローラ２００は、論理ブロックのコピー動作を予約する（ステップＳ１４）。すなわち、例えばメモリ２２０内のフラグテーブルにおいて、読み出し対象の物理ブロックＢＬＫが対応する論理ブロックＬＢに、ブロックコピーフラグを立てる。ステップＳ１４の後、コントローラ２００は、データを正しく読み出すための何らかの動作を実行する（ステップＳ１５）。その一例は、Ｖthトラッキング動作である。Ｖthトラッキング動作は、選択ワード線ＷＬに印加する電圧を細かく変化させつつオンセル（またはオフセル）の数を計測することにより、重なった閾値分布の交点に対応する電圧を探索する動作である。そして、この交点に基づいて最適な読み出し電圧が決定され、再度の読み出し動作が行われる。
【００８０】
ステップＳ１３において最終インデックスでない場合（ステップＳ１３、ＮＯ）、コントローラ２００は、シフトテーブルにおける次のインデックスを選択する（ステップＳ１６）。そしてコントローラ２００は、選択したインデックスに基づいてシフトリードコマンドを発行する（ステップＳ１７）。この際、例えばコントローラ２００の発行するコマンドシーケンスがシフト量ΔＶを示す情報を含み、この情報に基づいてＮＡＮＤ型フラッシュメモリ１００は読み出し電圧ＶＣＧＲＶを決定する。先の例であると、ブロックＢＬＫ０のワード線ＷＬ２が選択される場合には、読み出し電圧ＶＣＧＲＶとして（ＶＡ＋ΔＶＡ８）、（ＶＢ＋ΔＶＢ８）、（ＶＣ＋ΔＶＣ８）、…及び（ＶＧ＋ΔＶＧ８）が用いられる。
【００８１】
そしてコントローラ２００は、選択したインデックスが最終値に達するか（ステップＳ１３、ＹＥＳ）、またはエラーの訂正に成功するまで（ステップＳ１８、ＹＥＳ）、シフトリードを繰り返す（ステップＳ１６、Ｓ１７）。
【００８２】
ＥＣＣ回路２６０がエラーの訂正に成功すると（ステップＳ１８、ＹＥＳ）、コントローラ２００は、メモリ２２０内の履歴テーブルを更新する（ステップＳ１９）。すなわち、履歴テーブルにおいて、読み出し対象となった論理ブロックＬＢのワード線ＷＬに関するインデックス値を、直近のステップＳ１６で選択された値に変更する。またコントローラ２００は、例えばset featureコマンド等によりレジスタ内の情報を図１１のように更新する。図１１は、ワード線ＷＬ２に対するシフトリードが、インデックス＝“８”で成功した例を示している。図示するように、ワード線ＷＬ２に対するシフト量ΔＶＡ７、ΔＶＢ７、…及びΔＶＧ７が、それぞれΔＶＡ８、ＶＢ８、…及びΔＶＧ８に更新される。
【００８３】
引き続きコントローラ２００は、ステップＳ１６で選択されたインデックスと、図５で説明した第２基準値とを比較する（ステップＳ２０）。そして、インデックスが第２基準値を超えていれば（ステップＳ２０、ＹＥＳ）、コントローラ２００はステップＳ１４と同様に論理ブロックのコピーを予約し（ステップＳ２１）、読み出し動作を終了する。
【００８４】
他方で、インデックスが第２基準値以下であれば（ステップＳ２０、ＮＯ）、コントローラ２００は、インデックスと、図５で説明した第１基準値とを比較する（ステップＳ２２）。インデックスが第１基準値を超えていれば（ステップＳ２２、ＹＥＳ）、コントローラ２００はリフレッシュリード動作を予約する（ステップＳ２３）。すなわち、メモリ２２０内のフラグテーブルにおいて、読み出し対象の物理ブロックＢＬＫが対応する論理ブロックＬＢに、リフレッシュリードフラグを立てる。そして、読み出し動作を終了する。インデックスが第１基準値以下であれば（ステップＳ２２、ＮＯ）、コントローラ２００はリフレッシュリードフラグを立てることなく、読み出し動作を終了する。
【００８５】
１．２．２  リフレッシュリード動作について  
次に、コントローラ２００によるリフレッシュリード動作の流れについて、図１２を用いて説明する。図１２はリフレッシュリード動作のフローチャートである。なお図１２におけるコントローラ２００の動作は、例えば主にプロセッサ２３０の制御によって実行される。
【００８６】
コントローラ２００は、図８で説明したデータの読み出し直後、または読み出し後であって、コントローラ２００の処理の空き時間に、メモリ２２０内のフラグテーブルを確認する。そして、リフレッシュリードフラグが“１”とされている論理ブロックＬＢに対してリフレッシュリード動作を実行する。
【００８７】
すなわち図１２に示すように、コントローラ２００は、リフレッシュリード回数を初期化する（ＲＤ＿count＝０）（ステップＳ３０）。引き続きコントローラ２００は、リフレッシュリード回数と、リフレッシュリード回数最大値とを比較する（ステップＳ３１）。リフレッシュリード回数最大値は１またはそれ以上の値である。そしてリフレッシュリード回数最大値も、シフトテーブルや履歴テーブルと同様に、例えばＮＡＮＤ型フラッシュメモリ１００から読み出され、メモリ２２０に保持される。
【００８８】
そしてリフレッシュリード回数がリフレッシュリード回数最大値未満であれば（ステップＳ３１、ＹＥＳ）、コントローラ２００はリフレッシュリードコマンドを発行し、これをＮＡＮＤ型フラッシュメモリ１００へ送信する（ステップＳ３２）。また、コントローラ２００はリフレッシュリード回数をカウントアップする（ＲＤ＿count＝ＲＤ＿count＋１）（ステップＳ３３）。そしてステップＳ３１の処理に戻る。
【００８９】
ステップＳ３１においてリフレッシュリード回数がリフレッシュリード回数最大値に達していれば（ステップＳ３１、ＮＯ）、コントローラ２００は履歴テーブルを更新して（ステップＳ３４）、リフレッシュリード動作を終了する。ステップＳ３４では、ステップＳ１９と異なり、プロセッサ２３０は、履歴テーブルにおけるインデックスをより小さい値に更新する。換言すれば、よりシフト量の小さいインデックス、更に言い換えれば、より小さいセル間干渉効果に対応するインデックスに更新する。一例としては、第１基準値よりも１つ前のインデックス等である。
【００９０】
図１３は、通常リード動作とリフレッシュリード動作時のデータ信号ＤＱ及びレディ／ビジー信号ＲＢのタイミングチャートである。信号ＤＱは、コントローラ２００とＮＡＮＤ型フラッシュメモリ１００との間で送受信される信号であり、コマンド、アドレス、及びデータ等が信号ＤＱとして送受信される。信号ＲＢは、ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００に送信される信号であり、ＮＡＮＤ型フラッシュメモリ１００がコントローラ２００からコマンドを受信可能な状態で“Ｈ”レベル（レディ状態）となり、コマンドを受信できない動作状態で“Ｌ”レベル（ビジー状態）となる。
【００９１】
図示するように、通常リードを命令する下記のコマンドシーケンスが、時刻ｔ０においてコントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ送信される。  
＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞
すなわち、コマンド“００ｈ”によってアドレス入力が宣言され、５サイクルにわたってアドレスＡＤＤが入力される。このアドレスＡＤＤによって、読み出し対象となる物理ブロックＢＬＫとページが指定される。そして、コマンド“３０ｈ”が入力されることでシーケンサ１７０はメモリセルからのデータの読み出しを開始し、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。
【００９２】
メモリセルからのデータの読み出しが完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となる。そして、コントローラ２００から送信されるクロック（図示せず）に同期して、読み出しデータがコントローラ２００に送信される。
【００９３】
なお、通常リードの代わりにシフトリードを命令する場合には、例えば下記のコマンドシーケンスがコントローラ２００からＮＡＮＤ型フラッシュメモリへ送信される。  
＜X0h＞＜DAC＞＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞
すなわち、コマンド“Ｘ０ｈ”によって読み出し電圧の指定が宣言され、データ“ＤＡＣ”により読み出し電圧ＶＣＧＲＶが指定される。“ＤＡＣ”は、読み出し電圧ＶＣＧＲＶそのものを示していても良いし、デフォルト値からのシフト量を示していても良い。その後は通常リードと同様のコマンドシーケンスが送信される。
【００９４】
ここで、時刻ｔ０〜ｔ１においてデータの読み出し対象とされた論理ブロックＬＢに対して、リフレッシュリードが予約されたとする。すると、読み出しデータがＮＡＮＤ型フラッシュメモリ１００からコントローラ２００に送信された後、リフレッシュリードを命令する下記のコマンドシーケンスが、時刻ｔ２でコントローラ２００からＮＡＮＤ型フラッシュメモリ２００に送信される。  
＜XXh＞＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞
このコマンドシーケンスは、時刻ｔ０における通常リードを命令するコマンドシーケンスの前にprefixコマンド“ＸＸｈ”を付加したものである。コマンド“ＸＸｈ”は、その後に続くアドレスで指定されるメモリセル（ブロックＢＬＬＫ）に対するリフレッシュリードの実行を命令する。よって、５サイクルのアドレス“ＡＤＤ”は、直前の通常リードまたはシフトリードのコマンドシーケンス内のアドレス“ＡＤＤ”と同じアドレスを指定する。
【００９５】
このコマンドシーケンスに応答して、シーケンサ１７０はリフレッシュリードを開始し、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。その後、ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰する度に、コントローラ２００はリフレッシュリード回数最大値に達するまでリフレッシュリードを繰り返すよう、ＮＡＮＤ型フラッシュメモリ１００に命令する。なお、図１３に示すように、リフレッシュリードでは、通常リードと異なり、読み出しデータはコントローラ２００に送信されない。
【００９６】
１．２．３  ＮＡＮＤ型フラッシュメモリの動作  
次に、上記通常リード及びシフトリード時、並びにリフレッシュリード時のＮＡＮＤ型フラッシュメモリ１００の動作につき、特にメモリセルアレイ１１０に着目して説明する。
【００９７】
まず、通常リード及びシフトリード時につき、図１４を用いて説明する。図１４は一例として、物理ブロックＢＬＫ０のストリングユニットＳＵ０におけるメモリセルトランジスタＭＴ２からデータが読み出される場合を示している。
【００９８】
図示するように、セレクトゲート線ＳＧＤ０及びＳＧＳ０には電圧ＶＳＧ（例えば４．３Ｖ）が印加される。電圧ＶＳＧは、選択トランジスタＳＴ１及びＳＴ２をオン状態とする電圧である。
【００９９】
ダミーワード線ＷＬＤＤ及びＷＬＤＳには、電圧ＶＲＥＡＤ＿ＤＤ及びＶＲＥＡＤ＿ＤＳ（例えば７．８Ｖ）がそれぞれ印加される。電圧ＶＲＥＡＤ＿ＤＤ及びＶＲＥＡＤ＿ＤＳはそれぞれ、ダミートランジスタＤＴＤ及びＤＴＳをオン状態とする電圧である。
【０１００】
選択ワード線ＷＬ２に隣接しない非選択ワード線ＷＬ０、ＷＬ４、ＷＬ５、…及びＷＬ７には、電圧ＶＲＥＡＤ（例えば８．０Ｖ）が印加される。また選択ワード線ＷＬ２に隣接する非選択ワード線ＷＬ１及びＷＬ３には、電圧ＶＲＥＡＤＫ（例えば８．２Ｖ）が印加される。電圧ＶＲＥＡＤ及びＶＲＥＡＤＫは、保持データにかかわらずメモリセルトランジスタＭＴをオン状態とする電圧である。
【０１０１】
選択ワード線ＷＬ２には読み出し電圧ＶＣＧＲＶが印加される。例えばLowerページが読み出される際には、電圧ＶＣＧＲＶが（ＶＡ＋ΔＶＡ）及び（ＶＥ＋ΔＶＥ）とされる。ΔＶＡとΔＶＥは、デフォルト値からのシフト量である。
【０１０２】
ビット線ＢＬにはプリチャージ電圧Ｖpre（例えば０．７Ｖ）が印加され、ソース線ＳＬは０Ｖとされる。これにより、電圧ＶＣＧＲＶが（ＶＡ＋ΔＶＡ）とされている期間に読み出し動作ＡＲが行われ、電圧ＶＣＧＲＶが（ＶＥ＋ΔＶＥ）とされている期間に読み出し動作ＥＲが行われる。
【０１０３】
すなわち、メモリセルトランジスタＭＴ２がオン状態となればビット線ＢＬからソース線ＳＬにセル電流が流れ、オフ状態であればセル電流は流れない（リーク電流が僅かに流れるに過ぎない）。このビット線ＢＬに流れる電流、またはビット線の電位をセンスアンプ１４０がセンスし、メモリセルトランジスタＭＴ２の保持データが“０”であるか“１”であるかを判定し、内部のラッチ回路に保持する。そして、センスアンプ１４０が読み出しデータに対して必要な演算を行った後、当該データがコントローラ２００に送信される。
【０１０４】
なお、非選択ストリングユニットＳＵ１〜ＳＵ３ではセレクトゲート線ＳＧＤ１〜ＳＧＤ３及びＳＧＳ１〜ＳＧＳ３には０Ｖが印加され、選択トランジスタＳＴ１及びＳＴ２がオフ状態とされる。
【０１０５】
次に、リフレッシュリードにつき図１５を用いて説明する。図示するように、リフレッシュリードでは、ワード線ＷＬ０〜ＷＬ７の全てに電圧ＶＲＥＡＤが印加される。これにより、保持データにかかわらずブロックＢＬＫ０内のメモリセルトランジスタＭＴ０〜ＭＴ７は全てオン状態とされる。その他は、通常リード及びシフトリード時と同様である。但し、リフレッシュリードは、メモリセルトランジスタＭＴからデータを読み出すための動作ではないので、ビット線ＢＬの電位変動を読み出しデータとしてセンスアンプ１４０がセンスする必要はない。また、リフレッシュリードでは、メモリセルトランジスタＭＴにリードディスターブ類似の電圧ストレスを与えることができればよいので、ビット線ＢＬは必ずしもプリチャージ電位にする必要はなく、例えば０Ｖとされてもよいし、あるいはその他の一定電圧とされてもよい。
【０１０６】
１．２．４  具体例  
次に、図８においてリフレッシュリードを実行する場合とブロックコピーを行う場合の具体例につき、簡単に説明する。
【０１０７】
＜リフレッシュリード＞  
まず、リフレッシュリードを行う場合につき、図１６を用いて説明する。以下では論理ブロックＬＢ０に対応する物理ブロックＢＬＫ０のメモリセルトランジスタＭＴ２からlowerページデータが読み出される場合を例に挙げる。
【０１０８】
まず、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００からの通常リードコマンドに応答して、通常リードを行う（ステップＳ１１）。この際、図６及び図７で説明したように、論理ブロックＬＢ０のワード線ＷＬ２に対するインデックスは“７”であるから、シフトテーブルに保持されたシフト量ΔＶＡ７及びΔＶＥ７が選択される。すなわち、ＮＡＮＤ型フラッシュメモリ１００においてドライバ回路１３０は、選択ワード線ＷＬ２に対し、読み出し動作ＡＲでは（ＶＡ＋ΔＶＡ７）を印加し、読み出し動作ＥＲでは（ＶＥ＋ΔＶＥ７）を印加する。
【０１０９】
ステップＳ１１における読み出しデータがコントローラ２００に送信されると、ＥＣＣ回路２６０がエラーの訂正を試みる。ＥＣＣ回路２６０がエラーの訂正に失敗すると（ステップＳ１２）、コントローラ２００は次のインデックス、すなわち（７＋１）＝８を選択する（ステップＳ１６）。そしてコントローラ２００は、シフトリードコマンドを発行し、ＮＡＮＤ型フラッシュメモリ１００はシフトリードを実行する（ステップＳ１７）。この際、コントローラ２００は、シフトテーブルにおけるインデックス値＝８に対応するシフト量ΔＶＡ８及びΔＶＥ８を使用するよう、ＮＡＮＤ型フラッシュメモリ１００に命令する。これに従い、ＮＡＮＤ型フラッシュメモリ１００では、ドライバ回路１３０は、選択ワード線ＷＬ２に対し、読み出し動作ＡＲでは（ＶＡ＋ΔＶＡ８）を印加し、読み出し動作ＥＲでは（ＶＥ＋ΔＶＥ８）を印加する。
【０１１０】
ステップＳ１７における読み出しデータがコントローラ２００に送信されると、ＥＣＣ回路２６０が再度、エラーの訂正を試みる。ＥＣＣ回路２６０がエラーの訂正に成功すると（ステップＳ１８）、コントローラ２００は、メモリ２２０内の履歴テーブルを更新する（ステップＳ１９）。すなわち、ワード線ＷＬ２に対応するインデックスを、それまでの“７”から“８”に更新する。つまり、今後はインデックス＝８に対応するシフト量だけシフトされた値が読み出し電圧ＶＣＧＲＶのデフォルト値として用いられる。
【０１１１】
引き続きコントローラ２００は、インデックスと第２基準値とを比較する（ステップＳ２０）。インデックスはステップＳ１９で“７”から“８”に更新されている。そして第２基準値は“１０”である。従って、インデックス＜第２基準値である。よって、ブロックコピーは行われない。
【０１１２】
引き続きコントローラ２００は、インデックスと第１基準値とを比較する（ステップＳ２２）。インデックスは前述の通り“８”であり、第１基準値は“７”である。従って、インデックス＞第１基準値である。よってコントローラ２００は、メモリ２２０内のフラグテーブルにおいて、論理ブロックＬＢ０につきリフレッシュリードフラグを立てる（ステップＳ２３）。
【０１１３】
その後、処理の空き時間においてコントローラ２００はリフレッシュリードコマンドを発行し、これに応答してＮＡＮＤ型フラッシュメモリ１００は、リフレッシュリード回数最大値に達するまで、リフレッシュリードを実行する（ステップＳ３２）。すなわち、選択ブロックＢＬＫにおいて、全ワード線ＷＬに電圧ＶＲＥＡＤが印加される。またコントローラ２００は、メモリ２２０内の履歴テーブルを更新する（ステップＳ３４）。すなわちインデックスは“８”から、第１基準値よりも例えば１つ前のインデックスである“６”に更新される。
【０１１４】
＜ブロックコピー＞  
次に、ブロックコピーを行う場合につき、図１７を用いて説明する。以下では論理ブロックＬＢ１に対応する物理ブロックＢＬＫ４〜ＢＬＫ７のいずれかにおけるメモリセルトランジスタＭＴ７からlowerページデータが読み出される場合を例に挙げる。
【０１１５】
図１６と同様に、ＮＡＮＤ型フラッシュメモリ１００はまず通常リードを行う（ステップＳ１１）。この際、図６及び図７で説明したように、論理ブロックＬＢ１のワード線ＷＬ７に対するインデックスは“１０”であるから、シフトテーブルに保持されたシフト量ΔＶＡ１０及びΔＶＥ１０が選択される。
【０１１６】
ステップＳ１１において読み出しデータエラー訂正に失敗すると（ステップＳ１２）、コントローラ２００は次のインデックス、すなわち（１０＋１）＝１１を選択する（ステップＳ１６）。そしてコントローラ２００は、シフトリードコマンドを発行し、ＮＡＮＤ型フラッシュメモリ１００はシフトリードを実行する（ステップＳ１７）。この際に使用されるシフト量は、インデックス＝１１に対応するシフト量ΔＶＡ１１及びΔＶＥ１１である。
【０１１７】
ステップＳ１７における読み出しデータのエラー訂正に成功すると（ステップＳ１８）、コントローラ２００は、メモリ２２０内の履歴テーブルを更新する（ステップＳ１９）。すなわち、ワード線ＷＬ７に対応するインデックスを、それまでの“１０”から“１１”に更新する。
【０１１８】
引き続きコントローラ２００は、インデックスと第２基準値とを比較する（ステップＳ２０）。インデックスはステップＳ１９で“１０”から“１１”に更新されている。そして第２基準値は“１０”である。従って、インデックス＞第２基準値である。よってコントローラ２００は、メモリ２２０内のフラグテーブルにおいて、論理ブロックＬＢ１につきブロックコピーフラグを立てる（ステップＳ２１）。
【０１１９】
その後、処理の空き時間においてコントローラ２００はブロックコピーコマンドを発行し、これに応答してＮＡＮＤ型フラッシュメモリ１００はブロックコピーを実行する（ステップＳ４０）。すなわち、ＮＡＮＤ型フラッシュメモリ１００は、論理ブロックＬＢ１に対応する物理ブロックＢＬＫ４〜ＢＬＫ７に保持される有効データを、消去済みの物理ブロックＢＬＫ８〜ＢＬＫ１１にコピーする。そして、ＮＡＮＤ型フラッシュメモリ１００は物理ブロックＢＬＫ４〜ＢＬＫ７内のデータを全て消去し、コントローラ２００は以後、物理ブロックＢＬＫ８〜ＢＬＫ１１を論理ブロックＬＢ１に割り当てる。
【０１２０】
またコントローラ２００は、履歴テーブルを更新する（ステップＳ４１）。すなわち、論理ブロックＬＢ１に対応するインデックスを初期化する。図１７の例であると、全ワード線ＷＬ０〜ＷＬ７のインデックス値は“０”とされる。“０”は、例えばシフト値＝“０”を示す。または、全ワード線ＷＬ０〜ＷＬ７のインデックスが、最小値の“１”とされる場合であっても良い。
【０１２１】
１．３  本実施形態に係る効果  
本実施形態によれば、メモリシステムの動作信頼性を向上できる。本効果につき、図１８を用いて説明する。図１８は、メモリセルの閾値分布の変化を示している。
【０１２２】
図中の第１の状態は、データの書き込み直後の閾値分布である。図１８では、各閾値分布が互いに離隔した理想的な状態を示している。この第１の状態から、ある一定期間が経過した後の閾値分布が第２の状態である。図示するように、前述したセル間干渉効果により、閾値分布が低電圧側へシフトする。この理由は、例えば電荷蓄積層に注入した電子がメモリセルトランジスタ間の領域に移動して、メモリセルトランジスタＭＴの電荷蓄積層内の電子数が実質的に減少するからである。従ってコントローラ２００は、シフトリードによって、このセル間干渉効果に対応する。
【０１２３】
この点、本実施形態では読み出し電圧ＶＣＧＲＶのシフト量（すなわちインデックス）が第１基準値を超えた場合に、リフレッシュリードを行う。リフレッシュリードは、図１５で説明したように、全ワード線ＷＬに電圧ＶＲＥＡＤを印加する動作である。これによりメモリセルトランジスタＭＴに電圧ストレスがかかり、図１８の第３の状態に示すように閾値分布は高電圧側へシフトする。すなわち、第１の状態から第２の状態への閾値分布の変動量の少なくとも一部を、リフレッシュリードにより打ち消すことができる。
【０１２４】
以上のように本実施形態によれば、メモリセルトランジスタＭＴの閾値分布（すなわち保持データの信頼性）を、インデックスに基づいて判断する。そして、閾値分布が一定の基準値を下回った際にリフレッシュリードを行う。これにより、メモリセルトランジスタＭＴの保持データの信頼性が向上され、読み出し時におけるエラービット数を低減できる。なお、前述の通り、リフレッシュリード動作では、メモリセルアレイ１１０からセンスアンプ１４０へのデータの読み出しは不要であるし、仮に読み出されたとしても、そのデータがコントローラ２００へ送信されることはない。なぜなら、リフレッシュリード動作は、データを読み出す動作、というよりも、メモリセルトランジスタＭＴに電圧ストレスを与えて閾値分布をシフトさせるための動作だからである。よってリフレッシュリード動作は、例えば閾値分布シフト動作、閾値補正動作、ストレス印加動作、またはリードディスターブ印加動作等と呼ぶことができる。
【０１２５】
また、エラービット数が非常に大きくなり、ＥＣＣ回路２６０による訂正が不可能になりそうな状態になると、コントローラ２００は論理ブロックＬＢのコピー動作を行う。しかし、このコピー動作は一般的に、非常に多くの物理ブロックＢＬＫが対象となり（例えば１２８個のブロックＢＬＫ）、メモリシステム１にとって大きな負担となる。
【０１２６】
しかし本実施形態によれば、上記リフレッシュリードにより閾値分布が補正される。従って、コピー動作の発生頻度を低減することができ、メモリシステムの動作信頼性を向上できる。
【０１２７】
なお本実施形態では、セル間干渉効果として、閾値分布が低電圧側にシフトする場合を例に説明した。しかし、セル間干渉効果には他の要素もあり得る。例えば、あるメモリセルトランジスタＭＴｉ（ｉは０以上の整数）がプログラムベリファイにパスした後に、隣接する別のメモリセルトランジスタＭＴ（ｉ−１）及び／またはＭＴ（ｉ＋１）の閾値変動量によって受ける効果であり、その結果として、メモリセルトランジスタＭＴｉの閾値電圧は高電圧方向にシフトする。そして読み出し対象のメモリセルトランジスタＭＴｉの閾値電圧が低い程（“Ｅｒ”レベル）、また、隣接するメモリセルトランジスタＭＴ（ｉ−１）及び／またはＭＴ（ｉ＋１）の閾値電圧が高いほど、メモリセルトランジスタＭＴｉの閾値電圧の変動量は大きくなる傾向にある。
【０１２８】
また上記実施形態では、図８のステップＳ２３においてリフレッシュリードが予約されてから実際にリフレッシュ動作が行われる間に、ステップＳ１１及びＳ１７で読み出し対象とされたページに対してデータの書き込み動作及び消去動作は実行されない。なぜなら、データの書き込みは消去状態のメモリセルトランジスタＭＴに対して行われるので、既にデータが書き込まれている当該ページにはデータは書き込まれない。また、消去動作が実行されるのであれば、もはや当該ページ（及び当該ページを含むブロックＢＬＫ）につきリフレッシュリードを行う必要性はないからである。すなわち、リフレッシュリードが予約された後、当該ページに対する消去動作及び書き込み動作（これはすなわちデータの消去動作も含む）が実行されなければ、リフレッシュリードが行われる、と言い換えることができる。しかし、当該ページ及びブロックＢＬＫに対する読み出し動作は行われても良い。また、他のブロックＢＬＫへの書き込み動作及び消去動作が行われても良いし、他のストリングユニットＳＵへの書き込み動作は行われても良い。
【０１２９】
よって、シフトテーブルは、このようなセル間干渉効果を考慮しても良い。例えばインデックスのいくつかは、上記実施形態で説明した高電圧側へのシフトに特に着目し、他のいくつかは低電圧側へのシフトに特に着目し、更に別のいくつかは両方に着目した場合のシフト量を保持していてもよい。
【０１３０】
２．第２実施形態  
次に、第２実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１実施形態において、リフレッシュリード後に履歴テーブルを更新した後、所望のインデックスを設定し、且つ当該インデックスによりデータが読み出し可能であることを確認するものである。以下では、第１実施形態と異なる点についてのみ説明する。
【０１３１】
２．１  リフレッシュリード動作について  
本実施形態に係るリフレッシュリード動作につき、図１９を用いて説明する。図１９はリフレッシュリード動作のフローチャートであり、第１実施形態で説明した図１２に対応する。図１２と同様に、図１９におけるコントローラ２００の動作は、例えば主にプロセッサ２３０の制御によって実行される。
【０１３２】
図示するようにコントローラ２００は、ステップＳ３０においてリフレッシュリード回数を初期化すると共に（ＲＤ＿count＝０）、シフトリードのリピート回数を初期化する（Repeat_count＝０）（ステップＳ３５）。引き続きコントローラ２００は、シフトリードのリピート回数と、シフトリード回数最大値とを比較する（ステップＳ３６）。シフトリード回数最大値は１または複数の値であり、シフトテーブルや履歴テーブルと同様に、例えばＮＡＮＤ型フラッシュメモリ１００から読み出され、メモリ２２０に保持される。
【０１３３】
ステップＳ３６においてシフトリードのリピート回数がシフトリード回数最大値に達していれば（ステップＳ３６、ＮＯ）、コントローラ２００はリフレッシュリード動作を終了する。
【０１３４】
他方で、ステップＳ３６においてリピート回数がシフトリード回数最大値未満であれば（ステップＳ３６、ＹＥＳ）、コントローラ２００はリフレッシュリード回数とリフレッシュリード回数最大値とを比較する（ステップＳ３１）。
【０１３５】
リフレッシュリード回数がリフレッシュリード回数最大値未満であれば（ステップＳ３１、ＹＥＳ）、第１実施形態と同様に、リフレッシュリード回数が最大値に達するまでリフレッシュリードが繰り返される（ステップＳ３２、Ｓ３３）。
【０１３６】
ステップＳ３１においてリフレッシュリード回数がリフレッシュリード回数最大値に達していれば（ステップＳ３１、ＮＯ）、コントローラ２００はターゲットインデックスによるシフトリードをＮＡＮＤ型フラッシュメモリ１００に命令する（ステップＳ３７）。ターゲットインデックスは第１基準値以下の値であり、ステップＳ３７では、ターゲットインデックスに対応するシフト量を用いてシフトリードが実行される。
【０１３７】
ステップＳ３７で読み出されたデータにつき、ＥＣＣ回路２６０がエラーの訂正に成功すると（ステップＳ３８、ＹＥＳ）、プロセッサ２３０は履歴テーブルにおけるインデックス値をステップＳ３７で使用されたターゲットインデックスに更新して（ステップＳ３４）、リフレッシュリード動作を終了する。
【０１３８】
他方で、エラーの訂正に失敗した場合には（ステップＳ３８、ＮＯ）、コントローラ２００はシフトリードのリピート回数をカウントアップして（Repeat＿count＝Repeat＿count＋１）（ステップＳ３９）、ステップＳ３６の処理に戻る。
【０１３９】
２．２  具体例  
次に、本実施形態に係るリフレッシュ動作の具体例につき、図２０を用いて説明する。図２０は第１実施形態で説明した図１６に対応し、論理ブロックＬＢ０に対応する物理ブロックＢＬＫにおけるメモリセルトランジスタＭＴ２からlowerページデータが読み出す場合について示している。
【０１４０】
図示するように、ステップＳ２３までの処理は、第１実施形態で説明した図１６と同様である。すなわち、論理ブロックＬＢ０のワード線ＷＬ０についてのインデックスが“８”となって第１基準値を上回り、リフレッシュリードが予約される。
【０１４１】
そしてステップＳ３２において、リフレッシュリード回数最大値に達するまで、リフレッシュリードが行われ（ステップＳ３２）、その後、ステップＳ３７においてシフトリードが行われる。ここで、例えばプロセッサ２３０はターゲットインデックスとして“３”を選択したとする。するとＮＡＮＤ型フラッシュメモリ１００では、ドライバ回路１３０が選択ワード線ＷＬ２に対し、読み出し動作ＡＲでは（ＶＡ＋ΔＶＡ３）を印加し、読み出し動作ＥＲでは（ＶＥ＋ΔＶＥ３）を印加する。すなわち、この時点においては、履歴テーブル内の情報（インデックス＝“８”）と、ＮＡＮＤ型フラッシュメモリ１００で使用されるインデックス（ターゲットインデックス＝“３”）とは一致していない。
【０１４２】
そして、ステップＳ３２のリフレッシュリードとステップＳ３７のシフトリードとの組み合わせが１回または複数回行われた結果、ＥＣＣ回路２６０によるエラー訂正に成功する（ステップＳ３８）。すると、プロセッサ２３０が履歴テーブルにおけるインデックス値を“８”からターゲットインデックスである“３”に更新して（ステップＳ３４）、リフレッシュリード動作が完了する。
【０１４３】
２．３  本実施形態に係る効果  
本実施形態によれば、メモリシステムの動作信頼性を更に向上できる。すなわち、本実施形態によれば、リフレッシュリード後にシフトリードを行い、データが正しく読み出せることを確認した上で、履歴テーブルのインデックスを更新する。従って、ステップＳ３４で更新された履歴テーブルの信頼度を向上できる。
【０１４４】
更に、ターゲットインデックスで正しくデータを読み出せなかった場合には、履歴テーブルは更新されない。従って、コントローラ２００がターゲットインデックスを第１基準値よりも大幅に小さい値に設定することを期待する場合、すなわち、セル間干渉効果による影響を補正するためのシフト量を、比較的小さな値に更新したい場合に、本実施形態が適用されることが好ましい。
【０１４５】
なお、ターゲットインデックスを第１基準値よりも大幅に小さい値としてエラー訂正に失敗した場合であっても、リフレッシュリードにより閾値分布が一定程度は高電圧側へシフトしていることが期待される。よって、履歴テーブルにおいて、第１実施形態のように第１基準値に等しい値（“７”）またはそれに近い値（例えば“５”〜“６”）にインデックスを更新しても良い。
【０１４６】
３．第３実施形態  
次に、第３実施形態に係るメモリシステムについて説明する。本実施形態は、上記第２実施形態で説明したリフレッシュリード動作を、データの読み出し動作の直後に実行するものである。以下では、第１及び第２実施形態と異なる点についてのみ説明する。
【０１４７】
３．１  読み出し動作及びリフレッシュリード動作について  
図２１は、本実施形態に係る読み出し動作及びリフレッシュリード動作のフローチャートである。図示するように本実施形態に係るリフレッシュリード動作は、読み出し動作の一部として実行される。言い換えれば、シフトリードに失敗する度にリフレッシュリードが行われる。
【０１４８】
すなわち、図２１に示すように、ステップＳ１７におけるシフトリードでエラー訂正に失敗した場合に（ステップＳ１８、ＮＯ）、コントローラ２００はインデックスと第１基準値とを比較する（ステップＳ２２）。インデックスが第１基準値以下であれば（ステップＳ２２、ＮＯ）、処理はステップＳ１３の判断に戻る。他方でインデックスが第１基準値を超えていれば（ステップＳ２２、ＹＥＳ）、コントローラ２００はリフレッシュリード動作を実行する（ステップＳ５０）。
【０１４９】
リフレッシュリード動作Ｓ５０は、第２実施形態で説明した図１９とほぼ同じであるが、以下の点で第２実施形態と異なる。すなわち、  
・ステップＳ３６において、ターゲットインデックスによるシフトリードのリピート回数が最大値に達すると（ステップＳ３６、ＮＯ）、ステップＳ１３の処理に戻る。  
・ステップＳ３７におけるターゲットインデックスによるシフトリードにおいてエラー訂正に成功すると（ステップＳ３８、ＹＥＳ）、ステップＳ１９に進み、履歴テーブルにおけるインデックスをターゲットインデックスに更新する。
【０１５０】
そして、ステップＳ１９の後、ステップＳ２０において、インデックス値と第２基準値とが比較され、比較結果に応じて論理ブロックのコピーが予約されて（ステップＳ２１）、読み出し動作が完了する。
【０１５１】
３．２  本実施形態に係る効果  
本実施形態によれば、シフトリードに失敗し（ステップＳ１７、ステップＳ１８、ＮＯ）、且つインデックスが第１基準値を超えていれば、シフトリード直後にリフレッシュリードを実行する。このように、データの読み出し動作の一部としてリフレッシュリード動作が行われても良い。
【０１５２】
なお、第２実施形態のステップＳ３７におけるシフトリードは、ターゲットインデックスが適切か否かを確認するための動作に過ぎない。ホスト機器３００へは、ステップＳ１７で読み出されてエラー訂正されたデータが送信される。
【０１５３】
これに対して本実施形態であると、ステップＳ１７におけるシフトリードに失敗し、且つステップＳ３７のシフトリードに成功した場合には、ステップＳ３７、Ｓ３８でエラー訂正されたデータがホスト機器３００に送信される。なお、ステップＳ３６で比較されるリピート回数は、ステップＳ１７で実行されるシフトリードのリピート回数ではなく、ステップＳ３７で実行されるシフトリードのリピート回数である。
【０１５４】
４．変形例等  
以上のように、上記実施形態に係るメモリシステム１は、データを保持可能であり、第１ワード線及び第２ワード線にそれぞれ接続された第１メモリセル及び第２メモリセルを含むメモリセルアレイを備えた半導体メモリと、半導体メモリを制御するコントローラとを具備し、第１動作(読み出し動作)と、該第１動作後の第２動作(リフレッシュリード動作)とを実行可能である。そして第１動作(読み出し動作)では、コントローラが第１コマンドシーケンス(00h-ADD-30h)を発行し、半導体メモリは、第１コマンドシーケンスに応答して、第１ワード線(WL2 in FIG14)に第１電圧(VCGRV)を印加し第２ワード線(WL4-7 in FIG14)に第２電圧(VREAD)を印加することにより第１メモリセル(MT1 in FIG14)からデータを読み出す。読み出されたデータは、半導体メモリからコントローラに送信される(通常リードまたはシフトリード)。第２動作(リフレッシュリード動作)では、コントローラが第２コマンドシーケンス(XXh+1st sequence)を発行し、半導体メモリは、第２コマンドシーケンスに応答して、第１ワード線(WL2 in FIG15)に第３電圧(VREAD or VREADK or plus α)を印加し、第２ワード線(WL4-7 in FIG15)に第４電圧(VREAD or VREAD plus α)を印加する。しかし、メモリセルアレイに保持されるデータはコントローラに送信されない(リフレッシュリード)。第２動作(リフレッシュリード動作)は、第１動作(読み出し動作)後に、第１メモリセルへの書き込み動作及び消去動作を介することなく実行される。そして、第３電圧(VREAD)は保持データにかかわらず第１メモリセルをオンさせ、第２電圧(VREAD or VREADK)及び第４電圧(VREAD)は保持データにかかわらず第２メモリセルをオンさせる。
【０１５５】
本構成によれば、時間の経過に伴うメモリセルの閾値変動を補正し、これによりメモリシステム１の動作信頼性を向上できる。なお、上記で説明した実施形態は一例に過ぎず、種々の変形が可能である。例えば、上記実施形態では、リフレッシュリード時に全ワード線ＷＬを非選択として電圧ＶＲＥＡＤを印加する場合を例に挙げて説明した。しかし、例えばダミーワード線が選択される場合であっても良い。このような例を図２２及び図２３に示す。図２２及び図２３は、リフレッシュリード時におけるブロックＢＬＫの回路図である。
【０１５６】
図２２の例であるとドレイン側のダミーワード線ＷＬＤＤが選択されて電圧ＶＣＧＲＶが印加され、図２３の例であるとソース側のダミーワード線ＷＬＤＳが選択されて電圧ＶＣＧＲＶが印加される。その他の配線の電位は図１５で説明した通りである。なお、電圧ＶＣＧＲＶの値は特に限定されない。メモリセルトランジスタＭＴにリードディスターブを与えることができれば良いので、ＶＣＧＲＶの値は、例えば電圧ＶＡ、ＶＢ、…及びＶＧのいずれかとされても良いし、通常のページデータの読み出しのように、複数の値（例えばlowerページ読み出し用のＶＡ及びＶＥ、middleページ用のＶＢ、ＶＤ、及びＶＦ、またはupperページ用のＶＣ及びＶＧ）とされても良い。この場合、コントローラ２００は例えば下記のようなコマンドシーケンスを発行する。  
＜YYh＞＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞
すなわち、通常の読み出しシーケンスの先頭に、prefixコマンド“ＹＹｈ”が付加される。この“ＹＹｈ”が、ダミーワード線の選択を命令する。この際、アドレス“ＡＤＤ”は、上記実施形態と同様に、直近の通常リードまたはシフトリードで指定されたブロックＢＬＫを示す。あるいは、このブロックＢＬＫに加えて、ドレイン側のダミーワード線ＷＬ＿ＤＤかソース側のダミーワード線ＷＬ＿ＤＳであるかを示す情報を含んでも良い。
【０１５７】
またリフレッシュリードは、図１４に示すような通常の読み出し動作と同様の動作であっても良い。すなわち、いずれかのワード線ＷＬが選択されて電圧ＶＣＧＲＶが印加され、その他の非選択ワード線ＷＬに電圧ＶＲＥＡＤが印加される場合であっても良い。この場合のＶＣＧＲＶの値も、電圧ＶＡ、ＶＢ、…及びＶＧのいずれか（またはこれらにシフトテーブルで指定されたシフト量が加えられた値）とされても良いし、通常のページデータの読み出しのように複数の値とされても良い。この場合、コントローラ２００は例えば下記のようなコマンドシーケンスを発行する。  
＜XYh＞＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞
すなわち、通常の読み出しシーケンスの先頭に、prefixコマンド“ＸＹｈ”が付加される。この“ＸＹｈ”が、リフレッシュリードを宣言する。この際、アドレス“ＡＤＤ”は、上記実施形態と同様に、直近の通常リードまたはシフトリードで指定されたブロックＢＬＫ及びページを示す。従って、このコマンドシーケンスを受信したＮＡＮＤ型フラッシュメモリ１００は、通常リードまたはシフトリードと同じようにワード線ＷＬに電圧を印加するが、センスアンプ１４０によるデータのセンス動作やコントローラ２００へのデータ転送は行われない。
【０１５８】
更に、リフレッシュリードは複数のストリングユニットＳＵを選択した状態で実行しても良い。図２４は、第１実施形態で説明した図１４のリフレッシュリード時において、選択ブロックＢＬＫ内の全ストリングユニットＳＵ０〜ＳＵ３が選択される場合を例に示している。図示するように、セレクトゲート線ＳＧＤ０だけでなく、セレクトゲート線ＳＧＤ１〜ＳＧＤ３にも電圧ＶＳＧが印加されて、ストリングユニットＳＵ１〜ＳＵ３内の選択トランジスタＳＴ１がオン状態とされる。この場合、例えば下記のコマンドシーケンスがコントローラ２００からＮＡＮＤ型フラッシュメモリ２００に送信される。  
＜XXh＞＜YZh＞＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞
すなわち、第１実施形態で説明したリフレッシュリードのコマンドシーケンスにおける例えば２サイクル目に、複数ストリングユニットＳＵを選択するコマンド“ＹＺｈ”が送信される。もちろん、本シーケンスに限らず、例えば“ＸＸｈ”を別のコマンドに置き換えて、同様の命令を送信しても良い。
【０１５９】
このことは、図２２及び図２３で説明したダミーワード線ＷＬＤＤまたはＷＬＤＳが選択される場合や、いずれかのワード線ＷＬが選択される場合にも適用可能である。この場合も、例えば２サイクル目にコマンド“ＹＺｈ”を発行すれば良い。また、図２４ではブロックＢＬＫ内の全てのストリングユニットＳＵ０〜ＳＵ３の全てが選択される場合を示したが、必ずしも全てである必要はなく、いずれか複数のストリングユニットＳＵが選択される場合であってもよい。この場合には、例えば“ＹＺｈ”コマンドの代わりに別のコマンドを用意するか、またはいずれのストリングユニットＳＵを選択するかを指定するコマンドを“ＹＺｈ”コマンドの次に発行しても良い。
【０１６０】
また、同一の論理ブロックＬＢに属する他の物理ブロックＢＬＫに対してもリフレッシュリードが行われても良い。これは、上記実施形態の例（図６）であると、論理ブロックＬＢを基準にしてインデックスが割り当てられているからである。しかし、インデックスは１つまたは複数の物理ブロックＢＬＫを基準にインデックスが割り当てられても良く、必ずしも論理ブロックＬＢを基準にする必要はない。
【０１６１】
また、図６の例であると１本のワード線ＷＬ毎にインデックスが割り当てられる。しかし、例えば物理ブロックＢＬＫに１つのインデックスを割り当てても良いし、または複数のワード線ＷＬをグループ化して、このグループ毎にインデックスを割り当てても良い。このような例を図２５及び図２６に示す。図２５及び図２６は履歴テーブルの概念図である。図２５の例であると、隣り合う２本のワード線ＷＬがグループ化されている。そして、この４グループに対して、それぞれインデックスが割り当てられている。また図２６の例であると、ワード線ＷＬは、ＮＡＮＤストリング１０の下層の２本（ＷＬ０及びＷＬ１）、上層の２本（ＷＬ６及びＷＬ７）、並びにこれらの間の４本（ＷＬ２〜ＷＬ５）の３グループに分けられている。そして、これらの３グループのそれぞれに対してインデックスが割り当てられる。
【０１６２】
また上記実施形態では、リフレッシュリード時のワード線ＷＬに、通常リード及びシフトリード時の非選択ワード線ＷＬと同じ電圧（例えばＶＲＥＡＤ）が印加される場合を例に説明した。しかし、リフレッシュリード時にワード線ＷＬに印加される電圧は、通常リード及びシフトリード時よりも大きくされてもよい。このような例につき、図２７及び図２８を用いて説明する。図２７及び図２８は、通常リードまたはシフトリード時とリフレッシュリード時における選択ワード線ＷＬｉ、非選択ワード線ＷＬ（ｉ±１）、その他の非選択ワード線ＷＬ、ダミーワード線ＷＬＤＤ、ＷＬＤＳ、及びセレクトゲート線ＳＧＤ、ＳＧＳのタイミングチャートであり、図２７は非選択ストリングユニットに対してリフレッシュリードが行われない場合を示し、図２８は非選択ストリングユニットに対してもリフレッシュリードが行われる場合を示している。
【０１６３】
図示するように、通常リードまたはシフトリード時には、非選択ワード線ＷＬ（ｉ±１）には電圧ＶＲＥＡＤＫが印加され、その他の非選択ワード線ＷＬには電圧ＶＲＥＡＤが印加され、ダミーワード線ＷＬＤＤ及びＷＬＤＳには電圧ＶＲＥＡＤ＿ＤＤ及びＶＲＥＡＤ＿ＤＳが印加される。これに対して、リフレッシュリード時には、全ワード線ＷＬに電圧（ＶＲＥＡＤ＋ΔＶＲＥＡＤ）が印加される。ΔＶＲＥＡＤは正の値であり、例えば１．０Ｖである。これにより、メモリセルトランジスタの閾値をより効率的に高電圧側へシフトさせることができる。
【０１６４】
なお、ワード線ＷＬｉ及びＷＬ（ｉ±１）に印加する電圧は、（ＶＲＥＡＤ＋ΔＶＲＥＡＤ）の代わりに（ＶＲＥＡＤＫ＋ΔＶＲＥＡＤＫ）としてもよい。ΔＶＲＥＡＤＫは正の値であり、（ＶＲＥＡＤＫ＋ΔＶＲＥＡＤＫ）は（ＶＲＥＡＤ＋ΔＶＲＥＡＤ）と同じ値であっても異なる値であっても良い。同様に、セレクトゲート線ＳＧＤ及びＳＧＳに印加する電圧は、（ＶＲＥＡＤ＿ＤＤ＋ΔＶＲＥＡＤ＿ＤＤ）及び（ＶＲＥＡＤ＿ＤＳ＋ΔＶＲＥＡＤ＿ＤＳ）としてもよい。ΔＶＲＥＡＤ＿ＤＤ及びΔＶＲＥＡＤ＿ＤＳは正の値であり、（ＶＲＥＡＤ＿ＤＤ＋ΔＶＲＥＡＤ＿ＤＤ）及び（ＶＲＥＡＤ＿ＤＳ＋ΔＶＲＥＡＤ＿ＤＳ）は（ＶＲＥＡＤ＋ΔＶＲＥＡＤ）と同じ値であっても異なる値であっても良い。
【０１６５】
また、図２７及び図２８のように印加電圧を大きくする代わりに、電圧の印加期間を長くしても良い。図２９及び図３０は、図２７及び図２８と同様に各配線に印加される電圧のタイミングチャートであり、図２９は非選択ストリングユニットに対してリフレッシュリードが行われない場合を示し、図３０は非選択ストリングユニットに対してもリフレッシュリードが行われる場合を示している。
【０１６６】
図示するように、本例におけるリフレッシュリード時には、通常リードまたはシフトリード時と同様に、ワード線ＷＬ（ｉ±１）には電圧ＶＲＥＡＤＫが印加され、その他のワード線ＷＬには電圧ＶＲＥＡＤが印加され、ダミーワード線ＷＬＤＤ及びＷＬＤＳには電圧ＶＲＥＡＤ＿ＤＤ及びＶＲＥＡＤ＿ＤＳが印加される。しかし、これらの電圧ＶＲＥＡＤ、ＶＲＥＡＤＫ、ＶＲＥＡＤ＿ＤＤ、及びＶＲＥＡＤ＿ＤＳが印加される期間は、リフレッシュリード時の方（Δｔ２）が通常リードまたはシフトリード時（Δｔ１）よりも長くされ、例えばΔｔ２はΔｔ１の２倍以上の長さである。本方法によっても、図２７及び図２８の場合と同様の効果が得られる。
【０１６７】
もちろん、図２７及び図２８の方法と、図２９及び図３０の方法とを組み合わせても良い。すなわち、Δｔ２＞Δｔ１としつつ、リフレッシュリード時にワード線に印加する電圧を通常リード時及びシフトリード時よりも大きくしても良い。すなわち、印加電圧を大きくすると共に印加期間を長くすることにより、より効率的に閾値分布を補正できる。また、リフレッシュリード時にワード線に印加する電圧を通常リード時及びシフトリード時よりも大きくする代わりに、Δｔ２＜Δｔ１としても良い。すなわち、印加電圧を大きくすることで、リフレッシュリードに要する時間を短くすることができる。
【０１６８】
上記のリフレッシュリード時にワード線に印加する電圧の大きさ及び印加期間の長さは、リフレッシュリードのコマンドシーケンス内で指定しても良いし、set featureコマンドによって設定しても良い。下記は、コマンドシーケンスの一例である。  
＜XXh＞＜ZXh＞＜VALUE＞＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞
先に説明したprefixコマンド“ＸＸｈ”に続き、コマンド“ＺＸｈ”及びデータ“ＶＡＬＵＥ”がコントローラ２００からＮＡＮＤ型フラッシュメモリ１００に送信される。コマンド“ＺＸｈ”は、リフレッシュリード時における電圧を大きくする、または電圧印加期間を長くすることを指定し、“ＶＡＬＵＥ”は電圧の値または印加期間を示す。
【０１６９】
また上記実施形態では、シフトリードでの電圧シフト量をコマンドシーケンス内で指定する場合を例に説明したが、予めset featureコマンドでＮＡＮＤ型フラッシュメモリ１００に設定しても良い。また上記実施形態では、メモリセルトランジスタＭＴの各々が３ビットデータを保持する場合を例に説明した。しかし、２ビットや４ビット以上のデータを保持する場合にも適用できる。
【０１７０】
なお、本発明に関する各実施形態において、  
（１）メモリセルが２ビットデータ（“Ｅｒ”、“Ａ”、“Ｂ”、及び“Ｃ”）を保持する場合に、Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。  
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V, 2.1V〜2.3Vいずれかの間にしてもよい。  
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。  
読み出し動作の時間（tR）としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。  
（２）書き込み動作は、プログラム動作とベリファイ動作を含む。書き込み動作では、  
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。  
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。  
プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。  
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。  
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。  
書き込み動作の時間（tProg）としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。  
（３）消去動作では、  
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。  
消去動作の時間（tErase）としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
（４）メモリセルの構造は、  
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。  
また、メモリセル間にはエアギャップを形成することができる。
【０１７１】
更に、上記実施形態では半導体記憶装置としてＮＡＮＤ型フラッシュメモリを例に説明したが、ＮＡＮＤ型フラッシュメモリに限らず、その他の半導体メモリ全般に適用出来、更には半導体メモリ以外の種々の記憶装置に適用出来る。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることが出来る。
【０１７２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１７３】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…メモリセルアレイ、１２０…ロウデコーダ、１３０…ドライバ回路、１４０…センスアンプ、１５０、１６０…レジスタ、１７０…シーケンサ、２００…コントローラ、２１０、２５０…インターフェース回路、２２０、２４０…メモリ、２３０…プロセッサ、２６０…ＥＣＣ回路、３００…ホスト機器
【図１】
2019164865.tif 000003
【図２】
2019164865.tif 000004
【図３】
2019164865.tif 000005
【図４】
2019164865.tif 000006
【図５】
2019164865.tif 000007
【図６】
2019164865.tif 000008
【図７】
2019164865.tif 000009
【図８】
2019164865.tif 000010
【図９】
2019164865.tif 000011
【図１０】
2019164865.tif 000012
【図１１】
2019164865.tif 000013
【図１２】
2019164865.tif 000014
【図１３】
2019164865.tif 000015
【図１４】
2019164865.tif 000016
【図１５】
2019164865.tif 000017
【図１６】
2019164865.tif 000018
【図１７】
2019164865.tif 000019
【図１８】
2019164865.tif 000020
【図１９】
2019164865.tif 000021
【図２０】
2019164865.tif 000022
【図２１】
2019164865.tif 000023
【図２２】
2019164865.tif 000024
【図２３】
2019164865.tif 000025
【図２４】
2019164865.tif 000026
【図２５】
2019164865.tif 000027
【図２６】
2019164865.tif 000028
【図２７】
2019164865.tif 000029
【図２８】
2019164865.tif 000030
【図２９】
2019164865.tif 000031
【図３０】
2019164865.tif 000032