(57)【要約】【課題】閾値電圧分布の谷位置における読出し電圧を高速かつ高精度に検出する。【解決手段】一実施形態の半導体記憶装置は、第１メモリセルを含む半導体メモリと、第１及び第２命令を発行可能なコントローラとを備える。半導体メモリは、第１命令を受信した際には、第１ワード線に第１及び第２範囲内の電圧を印加して第１ビットを読み出す。第２命令を受信した際には、第３範囲内の電圧を印加して第２ビットを読み出す。コントローラは、第１命令を複数回発行し、第１ワード線に印加される電圧をそれぞれ変化させる。そして、第１ビットに基づき第１範囲内において第１電圧を特定し、第２範囲内において第２電圧を特定する。更に、第１電圧に基づいて第３範囲内において第３電圧を推定し、第２命令が発行された際に第１ワード線に印加される電圧は第３電圧である。【選択図】図１０
2018163724.tif 000002
【特許請求の範囲】
【請求項１】
第１ワード線に結合され、データを保持可能な第１メモリセルを含む半導体メモリと、
第１命令と第２命令とを発行可能なコントローラと
を具備し、前記第１メモリセルの保持可能な前記データは、第１ビットと第２ビットとを含む多ビットデータであり、
前記半導体メモリは、
前記第１命令を受信した際には、前記第１ワード線に第１範囲内の電圧及び第２範囲内の電圧を印加して前記第１メモリセルから前記第１ビットを読み出し、
前記第２命令を受信した際には、前記第１ワード線に第３範囲内の電圧を印加して前記第１メモリセルから前記第２ビットを読み出し、
前記コントローラは、
前記第１命令を複数回発行し、且つ前記複数回の前記第１命令に応じて、第１ワード線に印加される電圧を前記第１範囲内及び第２範囲内でそれぞれ変化させ、
前記複数回の前記第１命令の度に前記第１メモリセルから読み出された前記第１ビットに基づき、前記第１範囲内において第１電圧を特定し、前記第２範囲内において第２電圧を特定し、
少なくとも前記第１電圧に基づいて、前記第３範囲内において第３電圧を推定し、
前記第２命令が発行された際に前記第２ビットを読み出すために前記第１ワード線に印加される電圧は、前記推定された第３電圧である、メモリシステム。
【請求項２】
前記コントローラは、前記第１範囲内の第４電圧と、前記第１電圧との差に基づき、前記第３電圧を推定する、請求項１記載のメモリシステム。
【請求項３】
前記コントローラは、前記第１電圧と、前記第２電圧との差に基づき、前記第３電圧を推定する、請求項１記載のメモリシステム。
【請求項４】
前記第３電圧は、前記第１電圧と、前記第２電圧との中間電圧を含む、請求項３記載のメモリシステム。
【請求項５】
前記コントローラは、前記第１及び第２命令と異なる第３命令を発行可能であり、
前記半導体メモリは、前記第３命令を受信した際に、前記第１範囲と前記第２範囲との間の電圧を印加して、前記第１メモリセルから第３ビットを読み出し、
前記コントローラは、前記複数回にわたって読み出された前記第１ビットの各々と前記第３ビットとに基づいて生成された第１ビットカウントに基づいて、前記第１電圧を特定する、請求項１記載のメモリシステム。
【請求項６】
前記半導体メモリは、
第２ワード線に結合され、前記第１メモリセルに隣り合い、データを保持可能な第２メモリセルを更に含み、
前記第２命令を受信した際に、前記第１ワード線に前記第３電圧が印加されている期間、前記第２ワード線に前記第１乃至第３電圧と異なる第４電圧と第５電圧を順次印加する、
請求項１記載のメモリシステム。
【請求項７】
前記第３電圧は、前記第１電圧に基づいて推定された値と、予め定められた補正値とに基づいて得られる、請求項６記載のメモリシステム。
【請求項８】
前記半導体メモリは、
第２ワード線に結合され、前記第１メモリセルに隣り合い、データを保持可能な第２メモリセルを更に含み、
前記第１命令を受信した際に、前記第１ワード線に前記第１範囲内の電圧が印加されている期間、前記第２ワード線には前記第１乃至第３電圧と異なる第４電圧と第５電圧を順次印加する、
請求項１記載のメモリシステム。
【請求項９】
前記半導体メモリは、前記第２ワード線に前記第４電圧と第５電圧とが印加されている期間にそれぞれデータをストローブする、請求項６乃至８いずれか１項記載のメモリシステム。
【請求項１０】
ページ単位でデータを読み出し可能な半導体メモリと、
第１命令及び第２命令を発行可能なコントローラと
を具備し、前記半導体メモリは、第１ワード線と、前記第１ワード線に接続された第１メモリセルとを備え、前記第１ワード線には、少なくとも第１ページ及び第２ページが関連付けられており、
前記第１命令を受信した際に前記半導体メモリは、
前記第１ワード線に３ステップの電圧を印加して前記第１ページを読み出す第１読み出し動作を、該第１ページを対象に少なくとも４回実行し、
前記４回の読み出し動作において、前記３ステップの電圧が変動され、該３ステップの電圧の変動の上下の仕方が互いに異なる、メモリシステム。
【請求項１１】
前記３ステップの電圧のいずれかは、前記４回の読み出し動作の間、単調減少する、請求項１０記載のメモリシステム。
【請求項１２】
前記前記３ステップの電圧のいずれかは、前記４回の読み出し動作の間、単調増加する、請求項１０または１１記載のメモリシステム。
【請求項１３】
前記前記３ステップの電圧のいずれかは、前記４回の読み出し動作の間、いずれかのタイミングで、減少から増加、または増加から減少に変化する、請求項１０乃至１２いずれか１項記載のメモリシステム。
【請求項１４】
前記第２命令を受信した際に前記半導体メモリは、
前記第１ワード線に少なくとも第１電圧及び第２電圧を順次印加して前記第２ページを読み出す第２読み出し動作を実行し、
前記第１電圧及び第２電圧は、前記第１命令に基づく前記第１ページの読み出し結果に基づいて推測される、請求項１０乃至１３いずれか１項記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてのＮＡＮＤ型フラッシュメモリと、当該ＮＡＮＤ型フラッシュメモリを制御するコントローラと、を備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第５，３６１，６０３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
閾値電圧分布の谷位置における読出し電圧を高速かつ高精度に検出する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、第１ワード線に結合され、データを保持可能な第１メモリセルを含む半導体メモリと、第１命令と第２命令とを発行可能なコントローラとを具備する。第１メモリセルの保持可能なデータは、第１ビットと第２ビットとを含む多ビットデータである。半導体メモリは、第１命令を受信した際には、第１ワード線に第１範囲内の電圧及び第２範囲内の電圧を印加して前記第１メモリセルから前記第１ビットを読み出す。第２命令を受信した際には、第１ワード線に第３範囲内の電圧を印加して第１メモリセルから第２ビットを読み出す。コントローラは、第１命令を複数回発行し、且つ複数回の第１命令に応じて、第１ワード線に印加される電圧を第１範囲内及び第２範囲内でそれぞれ変化させ、複数回の第１命令の度に第１メモリセルから読み出された第１ビットに基づき、第１範囲内において第１電圧を特定し、第２範囲内において第２電圧を特定する。更に、少なくとも第１電圧に基づいて、第３範囲内において第３電圧を推定する。そして、第２命令が発行された際に第２ビットを読み出すために第１ワード線に印加される電圧は、推定された第３電圧である。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムの構成を説明するためのブロック図。
【図２】第１実施形態に係るメモリセルアレイの構成を説明するための回路図。
【図３】第１実施形態に係るメモリセルアレイの構成を説明するための断面図。
【図４】第１実施形態に係るセンスアンプの構成を説明するためのブロック図。
【図５】第１実施形態に係るメモリセルトランジスタの閾値電圧の分布を説明するためのダイアグラム。
【図６】第１実施形態に係るメモリシステムのテストリード動作を説明するためのタイミングチャート。
【図７】第１実施形態に係るメモリシステムのノーマルリード動作を説明するためのタイミングチャート。
【図８】第１実施形態に係る閾値電圧分布の変動を説明するための模式図。
【図９】第１実施形態に係るメモリシステムのＶｔｈトラッキング動作を説明するための模式図。
【図１０】第１実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を説明するための模式図。
【図１１】第１実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を含む動作を説明するためのフローチャート。
【図１２】第１実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を説明するためのフローチャート。
【図１３】第１実施形態に係るメモリシステムの分離データを説明するためのテーブル。
【図１４】第１実施形態に係るメモリシステムの谷位置検出動作を説明するためのフローチャート。
【図１５】第１実施形態に係るメモリシステムの谷位置検出動作を説明するためのダイアグラム。
【図１６】第１実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を説明するためのタイミングチャート。
【図１７】第１実施形態に係るメモリシステムの谷位置推定動作を説明するためのダイアグラム。
【図１８】第１実施形態に係るメモリシステムのシーケンシャルリード動作を説明するためのフローチャート。
【図１９】第１実施形態に係るメモリシステムのシーケンシャルリード動作を説明するためのフローチャート。
【図２０】第２実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を含む動作を説明するためのフローチャート。
【図２１】第２実施形態に係るメモリシステムの谷位置推定動作を説明するための模式図。
【図２２】第３実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を含む動作を説明するためのフローチャート。
【図２３】第３実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を説明するためのフローチャート。
【図２４】第３実施形態に係るメモリシステムの分離データを説明するためのテーブル。
【図２５】第３実施形態に係るメモリシステムのＭポイントＶｔｈトラッキング動作を説明するためのフローチャート。
【図２６】第３実施形態に係るメモリシステムの分離データを説明するためのテーブル。
【図２７】第３実施形態に係るメモリシステムのシーケンシャルリード動作を説明するためのフローチャート。
【図２８】比較例に係るメモリシステムの谷位置検出動作を説明するための模式図。
【図２９】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。
【図３０】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するためのフローチャート。
【図３１】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。
【図３２】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するためのテーブル。
【図３３】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。
【図３４】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するためのテーブル。
【図３５】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。
【図３６】第４実施形態に係るメモリシステムの誤検出抑制動作を説明するためのテーブル。
【図３７】第５実施形態に係るセル間干渉効果を説明するための模式図。
【図３８】第５実施形態に係るメモリシステムのＶｔｈトラッキング動作を説明するためのフローチャート。
【図３９】第５実施形態に係るメモリシステムのＶｔｈトラッキング動作を説明するためのコマンドシーケンス。
【図４０】第５実施形態に係るメモリシステムのシフトリードの補正値を説明するためのテーブル。
【図４１】第５実施形態に係るメモリシステムのＶｔｈトラッキング動作を説明するためのタイミングチャート。
【図４２】第５実施形態の変形例に係るメモリシステムのＶｔｈトラッキング動作を説明するためのフローチャート。
【図４３】第５実施形態の変形例に係るメモリシステムのＶｔｈトラッキング動作を説明するためのコマンドシーケンス。
【図４４】第５実施形態の変形例に係るメモリシステムのＶｔｈトラッキング動作を説明するためのタイミングチャート。
【図４５】第５実施形態の変形例に係るメモリシステムのＶｔｈトラッキング動作を説明するためのタイミングチャート。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
【０００８】
１．  第１実施形態
第１実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてＮＡＮＤ型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
【０００９】
１．１  構成について  
１．１．１  メモリシステムの構成について  
まず、第１実施形態に係るメモリシステムの大まかな全体構成について、図１を用いて説明する。
【００１０】
図示するようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とを備えている。ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ホストバスによってホスト機器３００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００を制御し、またホスト機器３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。ホスト機器３００は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばＳＤＴＭインターフェースに従ったバスである。ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。この信号の具体例は、チップイネーブル信号ＣＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、レディ・ビジー信号ＲＢｎ、及び入出力信号Ｉ／Ｏである。
【００１２】
信号ＣＥｎは、ＮＡＮＤ型フラッシュメモリ１００をイネーブルにするための信号であり、lowレベルでアサートされる。信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号Ｉ／Ｏがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号ＷＥｎはlowレベルでアサートされ、入力信号Ｉ／ＯをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。信号ＲＥｎもlowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号Ｉ／Ｏを読み出すための信号である。レディ・ビジー信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（コントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（コントローラ２００からの命令を受信出来ない状態）であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号Ｉ／Ｏは、例えば８ビットの信号である。そして入出力信号Ｉ／Ｏは、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、及び読み出しデータ等である。
【００１３】
１．１．２  コントローラの構成について  
引き続き図１を用いて、コントローラ２００の構成の詳細について説明する。図示するようにコントローラ２００は、ホストインターフェース回路２１０、メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェース回路２５０、及びＥＣＣ回路２６０を備えている。
【００１４】
ホストインターフェース回路２１０は、ホストバスを介してホスト機器３００と接続され、ホスト機器３００から受信した命令及びデータを、それぞれプロセッサ２３０及びバッファメモリ２４０に転送する。またプロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器３００へ転送する。
【００１５】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えば、プロセッサ２３０は、ホスト機器３００から書き込み命令を受信した際には、それに応答して、ＮＡＮＤインターフェース回路２５０に対して書き込み命令を発行する。読み出し及び消去の際も同様である。またプロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。
【００１６】
ＮＡＮＤインターフェース回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そして、プロセッサ２３０から受信した命令に基づき、信号ＣＥｎ、ＡＬＥ、ＣＬＥ、ＷＥｎ、及びＲＥｎをＮＡＮＤ型フラッシュメモリ１００へ出力する。また書き込み時には、プロセッサ２３０で発行された書き込みコマンド、及びバッファメモリ２４０内の書き込みデータを、入出力信号Ｉ／ＯとしてＮＡＮＤ型フラッシュメモリ１００へ転送する。更に読み出し時には、プロセッサ２３０で発行された読み出しコマンドを、入出力信号Ｉ／ＯとしてＮＡＮＤ型フラッシュメモリ１００へ転送し、更にＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを入出力信号Ｉ／Ｏとして受信し、これをバッファメモリ２４０へ転送する。
【００１７】
バッファメモリ２４０は、書き込みデータや読み出しデータを一時的に保持する。
【００１８】
メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そしてメモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００１９】
ＥＣＣ回路２６０は、ＮＡＮＤ型フラッシュメモリ１００に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちＥＣＣ回路２６０は、データの書き込み時には誤り訂正符号を生成して、これを書き込みデータに付与し、データの読み出し時にはこれを復号する。誤り訂正符号としては、ＢＣＨ符号やＲＳ（Reed-Solomon）符号等の硬判定復号符号と、ＬＤＰＣ（Low-Density Parity-Check）符号等の軟判定復号符号とを用いることが出来る。
【００２０】
１．１．３  ＮＡＮＤ型フラッシュメモリの構成について  
１．１．３．１  ＮＡＮＤ型フラッシュメモリの全体構成について  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。図１に示すようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０、ドライバ回路１３０、カラム制御回路１４０、アドレスレジスタ１５０、コマンドレジスタ１６０、及びシーケンサ１７０を備える。
【００２１】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックＢＬＫを備えている。図１では一例として４つのブロックＢＬＫ０〜ＢＬＫ３が図示されている。そしてメモリセルアレイ１１０は、コントローラ２００から与えられたデータを記憶する。
【００２２】
ロウデコーダ１２０は、ブロックＢＬＫ０〜ＢＬＫ３のいずれかを選択し、更に選択したブロックＢＬＫにおけるロウ方向を選択する。
【００２３】
ドライバ回路１３０は、選択されたブロックＢＬＫに対して、ロウデコーダ１２０を介して電圧を供給する。
【００２４】
カラム制御回路１４０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、必要な演算を行う。そして、このデータＤＡＴをコントローラ２００に出力する。データの書き込み時には、コントローラ２００から受信した書き込みデータＤＡＴを、メモリセルアレイ１１０に転送する。
【００２５】
アドレスレジスタ１５０は、コントローラ２００から受信したアドレスＡＤＤを保持する。コマンドレジスタ１６０は、コントローラ２００から受信したコマンドＣＭＤを保持する。
【００２６】
シーケンサ１７０は、コマンドレジスタ１６０に保持されたコマンドＣＭＤに基づき、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２７】
１．１．３．２  ブロックの構成について  
次に、上記ブロックＢＬＫの構成について、図２を用いて説明する。図２は、いずれかのブロックＢＬＫの回路図である。
【００２８】
図示するようにブロックＢＬＫは、例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。そして各々のストリングユニットＳＵは、複数のＮＡＮＤストリング６を含む。メモリセルアレイ１１０内のブロック数及びブロック内のストリングユニット数は任意である。
【００２９】
ＮＡＮＤストリング６の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）及び選択トランジスタＳＴ１、ＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。
【００３０】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。これに対してストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、例えばセレクトゲート線ＳＧＳに共通接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続されても良い。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。
【００３１】
また、メモリセルアレイ１１０内において同一列にあるＮＡＮＤストリング６の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、但しＬは２以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング６を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。
【００３２】
つまりストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一のセレクトゲート線ＳＧＤに接続されたＮＡＮＤストリング６の集合体である。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵの集合体である。そしてメモリセルアレイ１１０は、ビット線ＢＬを共通にする複数のブロックＢＬＫの集合体である。
【００３３】
図３は、ブロックＢＬＫの一部領域の断面図である。図示するように、ｐ型ウェル領域１０上に、複数のＮＡＮＤストリング６が形成されている。すなわち、ウェル領域１０上には、セレクトゲート線ＳＧＳとして機能する例えば４層の配線層１１、ワード線ＷＬ０〜ＷＬ７として機能する８層の配線層１２、及びセレクトゲート線ＳＧＤとして機能する例えば４層の配線層１３が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
【００３４】
そして、これらの配線層１３、１２、１１を貫通してウェル領域１０に達するピラー状の導電体１４が形成されている。導電体１４の側面には、ゲート絶縁膜１５、電荷蓄積層（絶縁膜または導電膜）１６、及びブロック絶縁膜１７が順次形成され、これらによってメモリセルトランジスタＭＴ、並びに選択トランジスタＳＴ１及びＳＴ２が形成されている。導電体１４は、ＮＡＮＤストリング６の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体１４の上端は、ビット線ＢＬとして機能する金属配線層１８に接続される。
【００３５】
ウェル領域１０の表面領域内には、ｎ＋型不純物拡散層１９が形成されている。拡散層１９上にはコンタクトプラグ２０が形成され、コンタクトプラグ２０は、ソース線ＳＬとして機能する金属配線層２１に接続される。更に、ウェル領域１０の表面領域内には、ｐ＋型不純物拡散層２２が形成されている。拡散層２２上にはコンタクトプラグ２３が形成され、コンタクトプラグ２３は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層２４に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域１０を介して導電体１４に電位を印加するための配線である。
【００３６】
以上の構成が、図３を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング６の集合によってストリングユニットＳＵが形成される。
【００３７】
本例では、１つのメモリセルトランジスタＭＴが例えば３ビットデータを保持可能である。この３ビットデータを、下位ビットからそれぞれ下位(Lower)ビット、中位(Middle)ビット、及び上位(Upper)ビットと呼ぶことにする。そして、同一のワード線に接続されたメモリセルの保持する下位ビットの集合を下位ページと呼び、中位ビットの集合を中位ページと呼び、上位ビットの集合を上位ページと呼ぶ。つまり、１本のワード線ＷＬには３ページが割り当てられ、８本のワード線ＷＬを含むブロックＢＬＫは２４ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行っても良い（この読み出し方法をpage-by-page readingと呼ぶ）。
【００３８】
またデータの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“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号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４０】
１．１．４  カラム制御回路の構成について  
次に、カラム制御回路１４０の構成について図４を用いて説明する。図４は、第１実施形態に係るカラム制御回路１４０とストリングユニットＳＵ０の回路図である。
【００４１】
図示するようにカラム制御回路１４０は、ビット線ＢＬ毎に設けられたセンスユニットＳＡＵ（ＳＡＵ０〜ＳＡＵ（Ｌ−１））を備えている。
【００４２】
センスユニットＳＡＵの各々は、センスアンプＳＡ、演算部ＯＰ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＸＤＬを備えている。
【００４３】
センスアンプＳＡは、対応するビット線ＢＬに読み出されたデータをセンスし、また書き込みデータに応じてビット線ＢＬに電圧を印加する。すなわちセンスアンプＳＡは、ビット線ＢＬを直接的に制御するモジュールである。そしてセンスアンプＳＡには、読み出し時には例えばシーケンサ１７０によってストローブ信号ＳＴＢが与えられる。センスアンプＳＡは、その内部にノードＳＥＮ及びラッチ回路（図４には図示せず）を含む。ノードＳＥＮは、選択ワード線に接続されたメモリセルトランジスタＭＴがオン状態となるかオフ状態となるかにより、その電位が変動する。そして、信号ＳＴＢがアサートされるタイミングおけるノードＳＥＮの電位に応じて、メモリセルトランジスタＭＴがオンしたかオフしたかが確定され、その結果が“０”または“１”データとして、内部のラッチ回路に保持される。そして、内部のラッチ回路に保持されたデータは、更にラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＸＤＬのいずれかに転送される。
【００４４】
ラッチ回路ＡＤＬ、ＢＤＬ、及びＣＤＬは、読み出しデータ及び書き込みデータを一時的に保持する。演算部ＯＰは、センスアンプＳＡ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＸＤＬに保持されているデータにつき、否定（ＮＯＴ）演算、論理和（ＯＲ）演算、論理積（ＡＮＤ）演算、排他的論理和（ＸＯＲ）演算、否定排他的論理和（ＸＮＯＲ）演算など、種々の論理演算を行う。例えば演算部ＯＰは、センスアンプ内部のラッチ回路から転送されたデータについての演算を行うことで、ページデータを生成する。
【００４５】
これらのセンスアンプＳＡ、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＸＤＬ、並びに演算部ＯＰは、互いにデータを送受信可能なようにバスによって接続されている。そしてこのバスは、更にラッチ回路ＸＤＬに接続されている。
【００４６】
カラム制御回路１４０におけるデータの入出力は、ラッチ回路ＸＤＬを介して行われる。すなわち、コントローラ２００から受信したデータは、ラッチ回路ＸＤＬを介して、ラッチ回路ＡＤＬ、ＢＤＬ、及びＣＤＬ、またはセンスアンプＳＡに転送される。またラッチ回路ＡＤＬ、ＢＤＬ、及びＣＤＬ、またはセンスアンプＳＡのデータは、ラッチ回路ＸＤＬを介してコントローラ２００へ送信される。そしてラッチ回路ＸＤＬは、ＮＡＮＤ型フラッシュメモリ１００のキャッシュメモリとして機能する。従って、ラッチ回路ＡＤＬ、ＢＤＬ、及びＣＤＬが使用中であったとしても、ラッチ回路ＸＤＬが空いていれば、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となることが出来る。
【００４７】
１．２  読出し動作について  
次に、第１実施形態に係るメモリシステムの読み出し動作について説明する。
【００４８】
１．２．１  メモリセルトランジスタの保持データと閾値電圧について  
はじめに、メモリセルトランジスタＭＴの保持データ、閾値電圧、及び各データの読み出しレベルにつき、図５を用いて説明する。図５は、各メモリセルトランジスタＭＴの取り得るデータ、閾値電圧分布、及び読み出し時に用いる電圧について示したダイアグラムである。
【００４９】
前述のように、メモリセルトランジスタＭＴは閾値電圧に応じて８個の状態を取ることが出来る。この８個の状態を、閾値電圧の低いものから順に、“Ｅｒ”状態、“Ａ”状態、“Ｂ”状態、“Ｃ”状態、…“Ｇ”状態と呼ぶことにする。
【００５０】
“Ｅｒ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ未満であり、データの消去状態に相当する。“Ａ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ以上であり且つ電圧ＶＢ（＞ＶＡ）未満である。“Ｂ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＢ以上であり且つ電圧ＶＣ（＞ＶＢ）未満である。“Ｃ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＣ以上であり且つ電圧ＶＤ（＞ＶＣ）未満である。“Ｄ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＤ以上であり且つ電圧ＶＥ（＞ＶＤ）未満である。“Ｅ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＥ以上であり且つ電圧ＶＦ（＞ＶＥ）未満である。“Ｆ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＦ以上であり且つ電圧ＶＧ（＞ＶＦ）未満である。“Ｇ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＧ以上であり且つ電圧ＶＲＥＡＤ未満である。このように分布する８個の状態のうちで、“Ｇ”状態が、閾値電圧の最も高い状態である。なお電圧ＶＲＥＡＤは、読み出し動作時において非選択ワード線に印加される電圧であり、保持データにかかわらずメモリセルトランジスタＭＴをオンさせる電圧である。電圧ＶＡ〜ＶＧは、総称して電圧ＶＣＧＲＶとも言う。
【００５１】
また上記閾値電圧分布は、前述の下位ビット、中位ビット、及び上位ビットからなる３ビット（３ページ）データを書き込むことで実現される。すなわち、上記“Ｅｒ”状態から“Ｇ”状態と、下位ビット、中位ビット、及び上位ビットとの関係は、次の通りである。
“Ｅｒ”状態：“１１１”（“上位／中位／下位”の順で表記）  
“Ａ”状態：“１１０”  
“Ｂ”状態：“１００”  
“Ｃ”状態：“０００”  
“Ｄ”状態：“０１０”  
“Ｅ”状態：“０１１”  
“Ｆ”状態：“００１”  
“Ｇ”状態：“１０１”  
このように、閾値電圧分布において隣り合う２つの状態に対応するデータ間では、３ビットのうちの１ビットのみが変化する。
【００５２】
従って、下位ビットを読み出す際には、下位ビットの値（“０” or “１”）が変化する境界に相当する電圧を用いれば良く、このことは中位ビット及び上位ビットでも同様である。
【００５３】
すなわち、図５に示すように、下位ページ読み出しは、“Ｅｒ”状態と“Ａ”状態とを区別する電圧ＶＡ、及び“Ｄ”状態と“Ｅ”状態とを区別する電圧ＶＥを読み出しレベルとして用いる。電圧ＶＡ及びＶＥを用いた読み出し動作を、それぞれ読み出し動作ＡＲ及びＥＲと呼ぶ。
【００５４】
読み出し動作ＡＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＡ未満か否かを判定する。つまり、読み出し動作ＡＲにより、消去状態のメモリセルトランジスタＭＴが特定される。読み出し動作ＥＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＥ未満か否かを判定する。
【００５５】
中位ページ読み出しは、“Ａ”状態と“Ｂ”状態とを区別する電圧ＶＢ、“Ｃ”状態と“Ｄ”状態とを区別する電圧ＶＤ、及び“Ｅ”状態と“Ｆ”状態との間の電圧ＶＦを読み出しレベルとして用いる。電圧ＶＢ、ＶＤ、及びＶＦを用いた読み出し動作を、それぞれ読み出し動作ＢＲ、ＤＲ、及びＦＲと呼ぶ。
【００５６】
読み出し動作ＢＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＢ未満か否かを判定する。読み出し動作ＤＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＤ未満か否かを判定する。読み出し動作ＦＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＦ未満か否かを判定する。
【００５７】
そして上位ページ読み出しは、“Ｂ”状態と“Ｃ”状態とを区別する電圧ＶＣ、及び“Ｆ”状態と“Ｇ”状態とを区別する電圧ＶＧを読み出しレベルとして用いる。電圧ＶＣ及びＶＧを用いた読み出し動作を、それぞれ読み出し動作ＣＲ及びＧＲと呼ぶ。
【００５８】
読み出し動作ＣＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＣ未満か否かを判定する。読み出し動作ＧＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＧ未満か否かを判定する。つまり、読み出し動作ＧＲにより、“Ｇ”状態のメモリセルトランジスタＭＴが特定される。
【００５９】
１．２．２  読出し方式について
次に、第１実施形態における読出し方式について説明する。第１実施形態における読出し方式は、例えば、テストリード（test reading）、ノーマルリード（normal reading）、及びシフトリード（shift reading）を含む。
【００６０】
１．２．２．１  テストリードについて  
まず、第１実施形態におけるテストリード動作について説明する。テストリードとは、例えば、単一の特別な読出し電圧を用いて読出し動作を実行するものである。以下の説明では、テストリードに用いられる読出し電圧に対しては、読出し電圧の末尾に“ｔ”を付して、他の読出し動作における読出し電圧と区別する。
【００６１】
図６は、第１実施形態におけるテストリード動作の概要を示すための、ＮＡＮＤ型フラッシュメモリ１００内の非選択ワード線、選択ワード線、ノードＳＥＮ、及び信号ＳＴＢのタイミングチャートである。
【００６２】
図６に示すように、テストリードでは、ロウデコーダ１２０は、選択ワード線ＷＬに、時刻Ｔ１において或る電圧Ｖｔを印加する。またこの間、ロウデコーダ１２０は、非選択ワード線に電圧ＶＲＥＡＤを印加し、センスアンプＳＡ内のノードＳＥＮは、電圧ＶＳＳより高い電位ＶＳＥＮに充電される。そして、シーケンサ１７０は、選択ワード線ＷＬに電圧Ｖｔが印加されている間である時刻Ｔ２において、信号ＳＴＢをアサート（図６の例では“Ｈ”レベル）する。
【００６３】
例えば、選択ワード線ＷＬに電圧Ｖｔが印加されることによってメモリセルトランジスタＭＴがオンした場合には、ビット線ＢＬからソース線ＳＬに電流が流れる。この結果、ノードＳＥＮの電荷も放電され、ノードＳＥＮの電位が低下する。センスアンプＳＡは、時刻Ｔ２において信号ＳＴＢをアサートして、ノードＳＥＮの状態を、内部のラッチ回路に取り込む。つまり、ノードＳＥＮの電位が低下していればラッチ回路にデータ“０”または“１”のいずれか一方が格納され、一定電位以上を維持していればラッチ回路にデータ“０”または“１”の他方が保持される。
【００６４】
以上のように、テストリードでは、単一の特別な読出しレベル（電圧Ｖｔ）によってデータが確定する。
【００６５】
１．２．２．２  ノーマルリードについて  
次に、第１実施形態におけるノーマルリード動作について説明する。「ノーマルリード」とは、「テストリード」とは異なり、データを読み出す際に予め定められた（デフォルトの）読出し電圧によってデータを読み出す動作を意味する。
【００６６】
図７は、第１実施形態におけるノーマルリード動作の概要を示すための、ＮＡＮＤ型フラッシュメモリ１００内の非選択ワード線、選択ワード線、ノードＳＥＮ、及び信号ＳＴＢのタイミングチャートである。図７では、一例として、中位ページを読み出す場合を示している。
【００６７】
図７に示すように、中位ページ読出しでは、ロウデコーダ１２０は、選択ワード線ＷＬに、時刻Ｔ３において電圧ＶＢｄｅｆを、時刻Ｔ５において電圧ＶＤｄｅｆを、時刻Ｔ７において電圧ＶＦｄｅｆを、それぞれ印加する。またこの間、ロウデコーダ１２０は、非選択ワード線に電圧ＶＲＥＡＤを印加し、センスアンプＳＡ内のノードＳＥＮは、電圧ＶＳＳより高い電位ＶＳＥＮに充電される。そして、シーケンサ１７０は、選択ワード線ＷＬに電圧ＶＢｄｅｆ、ＶＤｄｅｆ、及びＶＦｄｅｆの各々が印加されている間に１回ずつ、すなわち時刻Ｔ４、Ｔ６、及びＴ８においてそれぞれ、信号ＳＴＢをアサートする。
【００６８】
例えば、選択ワード線ＷＬに電圧ＶＢが印加されることによってメモリセルトランジスタＭＴがオンした場合には、センスアンプＳＡは、時刻Ｔ４において信号ＳＴＢをアサートして、ノードＳＥＮの状態をラッチ回路に取り込む。選択ワード線ＷＬに電圧ＶＤｄｅｆ又はＶＦｄｅｆが印加される場合も同様であり、時刻Ｔ６及びＴ８で信号ＳＴＢをアサートして、ノードＳＥＮの電位に基づくデータをラッチ回路に保持させる。
【００６９】
演算部ＯＰは、ラッチ回路に保持された３つの読出しレベルに基づくデータを用いて演算処理を行い、１ページ分の読み出しデータを生成する。
【００７０】
以上のように、中位データ読出しでは、３つの読出しレベル（電圧ＶＢｄｅｆ、ＶＤｄｅｆ、及びＶＦｄｅｆ）によってデータが確定する。
【００７１】
なお、下位データ読出し及び上位データ読出しでは、２つの読出しレベル（下位データ読出しの場合は電圧ＶＡｄｅｆ及びＶＥｄｅｆ、上位データ読出しの場合は電圧ＶＣｄｅｆ及びＶＧｄｅｆ）によってデータが確定する。
【００７２】
１．２．２．３  シフトリードについて  
次に、第１実施形態におけるシフトリード動作について説明する。シフトリードは、例えば、ノーマルリードでは正しくデータを読み出せない場合に実行される。
【００７３】
先に説明した図５では、各データの閾値電圧分布は互いに独立している。よって、読出し電圧として電圧ＶＣＧＲＶを各データの閾値電圧分布の間に設定することで、ノーマルリードは正しいデータを読み出すことができる。
【００７４】
しかしながら、種々の要因により、メモリセルトランジスタＭＴの閾値電圧は変動し得る。その結果、図５における各データの閾値電圧分布は、その分布幅が広がり、又は分布が移動することにより、隣接する分布同士が重なる場合がある。この様子を図８に示す。例えば、書込み直後において、”Ａ”状態及び”Ｂ”状態の閾値電圧分布が図８（Ａ）に示す通りであったとする。しかし、ディスターブ等の要因により、図８（Ｂ）に示すように閾値電圧の分布が広がったとする。すると、当初設定されていた読出し電圧ＶＢｄｅｆで読出しを行うと、斜線部分の領域に相当するメモリセルトランジスタＭＴの読出しデータがエラーとなる。そして、エラービット数がＥＣＣ回路２６０のエラー訂正可能ビット数を超えていれば、データを正しく訂正することができない。
【００７５】
このような場合、エラービット数が少なくなるように、より２つのレベルの閾値電圧分布の重なりが小さくなる電圧（例えば、閾値電圧分布の重なりが最も小さくなる電圧ＶＢ’）が新たな読出し電圧として設定されることが望ましい。このように、ノーマルリードにおいて予め定められた電圧（例えば電圧ＶＢｄｅｆ）から或る値（「シフト量」とも言う。）だけシフトさせた電圧（例えば電圧ＶＢ’）を読出し電圧に設定して行う読出し動作を、シフトリードと言う。このように、シフトリードは、ノーマルリードに対して読出し電圧を変化させた読出し方式である。シフトリードは、予め定められた電圧と異なる読出し電圧が使用されはするものの、対象のページのデータが読み出される点で、ノーマルリードと同じである。
【００７６】
１．２．３  ＭポイントＶｔｈトラッキング動作について  
データ読出しの際にエラービット数を最少とするためには、２つのレベルの閾値電圧分布の重なりが最小となる谷位置における電圧（例えば、図８（Ｂ）における電圧ＶＢ’）でシフトリードを行うことが望ましい。以下の説明では、谷位置電圧に対しては、各レベルの読出し電圧の末尾に「’」を付して、他の読出し動作における読出し電圧と区別する。そして、以下では、谷位置電圧ＶＣＧＲＶ’を検出及び推定するための動作（ＭポイントＶｔｈトラッキング動作）について説明する。
【００７７】
１．２．３．１  Ｖｔｈトラッキング動作について  
第１実施形態に係るＭポイントＶｔｈトラッキング動作を含む動作を説明する前に、Ｖｔｈトラッキングについて説明する。Ｖｔｈトラッキングは、ＭポイントＶｔｈトラッキング動作を構成する基本的な概念である。
【００７８】
図９は、Ｖｔｈトラッキングを説明するための模式図である。図９（Ａ）は、メモリセルトランジスタＭＴ群の閾値電圧の分布の一例として、”Ａ”状態及び”Ｂ”状態の閾値電圧分布を示したグラフである。図９（Ｂ）は、或る読出し電圧に対してオン状態となるメモリセル数（オンセル数）の推移を示したグラフである。図９（Ｃ）は、読出し電圧の範囲におけるオンセル数変化量を示したヒストグラムである。なお、図９（Ｂ）及び図９（Ｃ）は、図９（Ａ）の閾値電圧分布を有するメモリセルトランジスタＭＴ群に対応してプロットされたものである。
【００７９】
図９（Ｂ）に示すように、読出し電圧を上昇させていくと、”Ａ”状態の中央値である電圧ＶＡｍｉｄよりわずかに小さい電圧でオンセル数が急激に増大し、ｄＭ／ｄＶが最大となる。ここで、中央値とは、図９（Ａ）において最も閾値電圧の分布確率が高い電圧であり、Ｍはオンセル数で、Ｖは選択ワード線ＷＬに印加する読出し電圧である。更に読出し電圧を大きくしていくと、オンセル数の増加率は小さくなり、或る値において最小値となる。この読出し電圧における増加率は、”Ａ”状態の閾値電圧分布と、”Ｂ”状態の閾値電圧の分布とが重ならない場合にはゼロとなる。他方で重なる場合には、或る一定のゼロではない最小値（＞０）となる。そして更に読出し電圧を大きくしていくと、再びオンセル数の増加率が大きくなり、”Ｂ”状態の中央値である電圧ＶＢｍｉｄよりわずかに小さい電圧で再びｄＭ／ｄＶが最大となる。
【００８０】
上述のオンセル数の累積値の変化によって、２つのレベル間の谷位置、すなわち２つのレベルの閾値電圧分布の重なりが最も小さくなる読出し電圧の位置を検出することができる。例えば、まず、読出し電圧Ｖ１を用いて読出し動作が行われる。この時のオンセル数をＭ１とする。次に、電圧Ｖ１よりΔＶだけ大きい電圧Ｖ２を用いて読出し動作が行われる。この時のオンセル数をＭ２とする。すると、選択ワード線ＷＬに印加する読出し電圧がＶ１からＶ２に上昇した際に新たにオンするメモリセルトランジスタＭＴの数は、（Ｍ２−Ｍ１）個である。
【００８１】
引き続き、電圧Ｖ２よりΔＶだけ大きい電圧Ｖ３を用いて読出し動作を行う。この時のオンセル数をＭ３とする。すると、選択ワード線ＷＬに印加する読出し電圧がＶ２からＶ３に上昇した際に新たにオンするメモリセルトランジスタＭＴの数は、（Ｍ３−Ｍ２）個である。そして、（Ｍ２−Ｍ１）＞（Ｍ３−Ｍ２）であったとすれば、ｄＭ／ｄＶが最小となる電圧は、少なくとも電圧Ｖ２より高いと考えられる。
【００８２】
引き続き、電圧Ｖ３よりΔＶだけ大きい電圧Ｖ４を用いて読出し動作を行う。この時のオンセル数がＭ４であり、（Ｍ３−Ｍ２）＜（Ｍ４−Ｍ３）であったとすれば、図９（Ｃ）のようなヒストグラムが得られる。
【００８３】
以上の結果、オンセル数変化量によって、図９（Ｃ）における一点鎖線で示されるような閾値電圧分布を推測することができ、”Ａ”状態と”Ｂ”状態の間の谷位置が電圧Ｖ２と電圧Ｖ３との間にあることが推定できる。
【００８４】
オンセル数変化量（ビットカウント）は、例えば、読出し電圧を変化させることによって１ページ当たりの読出しデータ内のビット数が変化する様子を追跡することにより抽出される。これらの動作を総称してＶｔｈトラッキングという。
【００８５】
１．２．３．２  ＭポイントＶｔｈトラッキング動作の概要について  
次に、第１実施形態に係るＭポイントＶｔｈトラッキング動作の概要について説明する。図１０に示すように、第１実施形態では、ＭポイントＶｔｈトラッキング動作によって、”Ａ”状態と”Ｂ”状態との間、”Ｃ”状態と”Ｄ”状態との間、及び”Ｅ”状態と”Ｆ”状態との間の谷位置をそれぞれ検出する。そして、検出された谷位置に関する情報に基づき、その他の谷位置を推定する。
【００８６】
図１１は、第１実施形態のＭポイントＶｔｈトラッキング動作を含む動作を説明するためのフローチャートである。
【００８７】
図１１に示すように、ステップＳＴ１において、コントローラ２００は、既定の読出し電圧ＶＣＧＲＶを適用したノーマルリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【００８８】
ステップＳＴ２において、ＮＡＮＤ型フラッシュメモリ１００は、ノーマルリードを実行し、読出しデータをコントローラ２００に送信する。
【００８９】
ステップＳＴ３において、ＥＣＣ回路２６０は、ノーマルリードの読出しデータに基づいてＥＣＣを実行する。コントローラ２００は、ノーマルリードの読出しデータがＥＣＣをパスした場合（ステップＳＴ３；パス）、ステップＳＴ９に進み、フェイルした場合、（ステップＳＴ３；フェイル）、ステップＳＴ４に進む。
【００９０】
ステップＳＴ４及びＳＴ５によって、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＭポイントＶｔｈトラッキング動作を行う。第１実施形態におけるＭポイントＶｔｈトラッキング動作は、谷位置検出動作と、谷位置推定動作と、を含む。
【００９１】
具体的には、ステップＳＴ４において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、中位ページに係る谷位置の谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’を検出する。谷位置検出動作の詳細については、後述する。
【００９２】
ステップＳＴ５において、コントローラ２００は、下位ページ及び上位ページの谷位置の谷位置電圧ＶＡ’、ＶＣ’、ＶＥ’、及びＶＧ’を推定する。谷位置電圧ＶＡ’、ＶＣ’、ＶＥ’、及びＶＧ’は、ステップＳＴ４において検出された谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’と、読出し電圧ＶＢｄｅｆ、ＶＤｄｅｆ、及びＶＦｄｅｆとの間のシフト量に基づいて推定される。谷位置推定動作の詳細については、後述する。
【００９３】
ステップＳＴ６において、コントローラ２００は、検出及び推定された谷位置電圧ＶＣＧＲＶ’を適用したシフトリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【００９４】
ステップＳＴ７において、ＮＡＮＤ型フラッシュメモリ１００は、シフトリードを実行し、最適な読出しデータをコントローラ２００に送信する。
【００９５】
ステップＳＴ８において、ＥＣＣ回路２６０は、シフトリードの読出しデータに基づいてＥＣＣを実行する。コントローラ２００は、シフトリードの読出しデータがＥＣＣをパスした場合（ステップＳＴ８；パス）、ステップＳＴ９に進み、フェイルした場合、（ステップＳＴ８；フェイル）、ステップＳＴ１０に進む。
【００９６】
ステップＳＴ９において、コントローラ２００は、ＥＣＣパスのステータスを取得し、動作を終了する。ステップＳＴ１０において、コントローラ２００は、ＥＣＣ結果に基づいてデータを正しく訂正できないと判定し、動作を終了する。
【００９７】
以上で、ＭポイントＶｔｈトラッキングを含む動作が終了する。
【００９８】
１．２．３．３  谷位置検出動作について  
次に、谷位置検出動作について説明する。
【００９９】
１．２．３．３．１  フローチャートについて  
図１２は、第１実施形態の谷位置検出動作を示すフローチャートである。図１２は、図１１におけるステップＳＴ４に対応する。
【０１００】
図１２に示すように、ステップＳＴ１１において、コントローラ２００は、第１テストリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０１０１】
ステップＳＴ１２において、ＮＡＮＤ型フラッシュメモリ１００は、第１テストリードを実行し、読出しデータＴＭ１を読み出す。ＮＡＮＤ型フラッシュメモリ１００は、読出しデータＴＭ１を、ラッチ回路ＡＤＬ、ＢＤＬ、及びＣＤＬのいずれかに保持する。
【０１０２】
ステップＳＴ１３において、コントローラ２００は、第２テストリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０１０３】
ステップＳＴ１４において、ＮＡＮＤ型フラッシュメモリ１００は、第２テストリードを実行し、読出しデータＴＭ２を読み出す。ＮＡＮＤ型フラッシュメモリ１００は、読出しデータＴＭ２をラッチ回路ＡＤＬ、ＢＤＬ、及びＣＤＬのいずれかに保持する。ここで使用されるラッチ回路は、データＴＭ１を保持していないラッチ回路である。従って、この時点においてカラム制御回路１４０には、データＴＭ１とＴＭ２とが保持される。
【０１０４】
ステップＳＴ１５において、コントローラ２００は、以降のステップＳＴ１６〜ＳＴ２３で実行されるループ処理の初期化を行う（ｍ＝０、Ｆｌａｇ＝ｆａｌｓｅ）。すなわち、値ｍは、谷位置検出動作におけるループ処理の進行状況を示す“０”以上の整数である（ｍ≧０）。以下の説明では、値ｍにｍ０が設定されたループ処理を、便宜的に「（ｍ０）回目のループ処理」又は「ｍ＝ｍ０のループ処理」と言う。
【０１０５】
また、フラグ“Ｆｌａｇ”は、ループ処理における読出し電圧の探索方向を切替えるためである。具体的には、例えば、フラグ“Ｆｌａｇ”が“ｆａｌｓｅ”の場合、読出し電圧の探索方向は、ループ処理が進むにつれて読出し電圧が減少（単調減少）するように設定される。一方、フラグ“Ｆｌａｇ”が“ｔｒｕｅ”の場合、ループ処理が進むにつれて読出し電圧が増加（単調増加）するように設定される。
【０１０６】
ステップＳＴ１６において、コントローラ２００は、中位ページのシフトリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０１０７】
ステップＳＴ１７において、ＮＡＮＤ型フラッシュメモリ１００は、中位ページのシフトリードを実行し、ｍ回目のループ処理において読出しデータＢＲｍ／ＤＲｍ／ＦＲｍ（ＢＲ０／ＤＲ０／ＦＲ０、ＢＲ１／ＤＲ１／ＦＲ１、…）を読出す。ＮＡＮＤ型フラッシュメモリ１００は、読出しデータＢＲｍ／ＤＲｍ／ＦＲｍをラッチ回路に保持する。ｍ回目のループ処理における読出しデータＢＲｍ／ＤＲｍ／ＦＲｍは、電圧ＶＢｍ、ＶＤｍ、及びＶＦｍを用いた中位ページのシフトリードの結果に相当する。このため、読出しデータＢＲｍ／ＤＲｍ／ＦＲｍは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＶＢｍ、ＶＤｍ、及びＶＦｍとの関係に基づいてデータ“０”又は“１”を有する。
【０１０８】
ステップＳＴ１８において、ＮＡＮＤ型フラッシュメモリ１００は、ラッチ回路に保持された読出しデータＴＭ１、ＴＭ２、及びＢＲｍ／ＤＲｍ／ＦＲｍに基づき、分離データＢＲｓｍ（ＢＲｓ０、ＢＲｓ１、…）、ＤＲｓｍ（ＤＲｓ０、ＤＲｓ１、…）、及びＦＲｓｍ（ＦＲｓ０、ＦＲｓ１、…）を演算する。そして、ＮＡＮＤ型フラッシュメモリ１００は、分離データＢＲｓｍ、ＤＲｓｍ、及びＦＲｓｍをコントローラ２００に送信する。分離データＢＲｓｍ、ＤＲｓｍ、及びＦＲｓｍは、読出しデータＢＲｍ／ＤＲｍ／ＦＲｍにおける部分的な情報を有する。分離データＢＲｓｍ、ＤＲｓｍ、及びＦＲｓｍの詳細については後述する。
【０１０９】
ステップＳＴ１９（ＳＴ１９−１、ＳＴ１９−２、及びＳＴ１９−３）において、コントローラ２００はそれぞれ、分離データＢＲｓｍ、ＤＲｓｍ、及びＦＲｓｍの各々に基づくビットカウントΔＢｍ、ΔＤｍ、及びΔＦｍを算出する。
【０１１０】
ステップＳＴ２０において、コントローラ２００は、谷位置検出判定動作を実行する。具体的には、ステップＳＴ２０（ＳＴ２０−１、ＳＴ２０−２、及びＳＴ２０−３）において、コントローラ２００はそれぞれ、”Ａ”状態と”Ｂ”状態との間の谷位置、”Ｃ”状態と”Ｄ”状態との間の谷位置、及び”Ｅ”状態と”Ｆ”状態との間の谷位置が検出されたか否かを判定する。コントローラ２００は、谷位置が検出されなかったと判定した場合、（ステップＳＴ２０；ｎｏ）、ステップＳＴ２１（ＳＴ２１−１、ＳＴ２１−２、及びＳＴ２１−３）に進んで（ｍ＋１）回目のループ処理におけるシフトリードに適用されるシフト量を設定した後、ステップＳＴ２２に進む。また、谷位置が検出されたと判定した場合（ステップＳＴ２０；ｙｅｓ）、ステップＳＴ２２に進む。
【０１１１】
ステップＳＴ２２において、コントローラ２００は、中位データに係る全ての谷位置が検出されたか否かを判定する。中位データに係る全ての谷位置が検出されていないと判定した場合（ステップＳＴ２２；ｎｏ）、ステップＳＴ２３に進み、ループ数をインクリメントしてステップＳＴ１６に進む。中位データに係る全ての谷位置が検出されたと判定した場合（ステップＳＴ２２；ｙｅｓ）、引き続き下位ページ及び上位ページの谷位置推定を行うためにステップＳＴ５に進む。
【０１１２】
以上で、谷位置検出動作が終了する。
【０１１３】
１．２．３．３．２  分離データについて  
次に、第１実施形態の谷位置検出動作において用いられる分離データについて図１３を用いて説明する。図１３では、第１テストリードの読出しデータＴＭ１、第２テストリードの読出しデータＴＭ２、シフトリードの読出しデータＢＲｍ／ＤＲｍ／ＦＲｍ及びＢＲ（ｍ＋１）／ＤＲ（ｍ＋１）／ＦＲ（ｍ＋１）、並びに分離データＢＲｓｍ、ＢＲｓ（ｍ＋１）、ＤＲｓｍ、ＤＲｓ（ｍ＋１）、ＦＲｓｍ、及びＦＲｓ（ｍ＋１）が示される。すなわち、図１３は、図１２におけるステップＳＴ１２、ＳＴ１４、ＳＴ１７、及びＳＴ１８に対応する。
【０１１４】
図１３に示すように、読出しデータＴＭ１は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ１未満の場合には、本例であるとデータ“１”となり、電圧Ｖｔ１以上の場合にはデータ“０”となる。また、読出しデータＴＭ２は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ２未満の場合にはデータ“１”となり、電圧Ｖｔ２以上の場合にはデータ“０”となる。
【０１１５】
読出しデータＢＲｍ／ＤＲｍ／ＦＲｍは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＢｍ未満の場合にはデータ“１”となり、電圧ＶＢｍ以上電圧ＶＤｍ未満の場合にはデータ“０”となり、電圧ＶＤｍ以上電圧ＶＦｍ未満の場合にはデータ“１”となり、電圧ＶＦｍ以上の場合にはデータ“０”となる。読出しデータＢＲ（ｍ＋１）／ＤＲ（ｍ＋１）／ＦＲ（ｍ＋１）についても同様である。
【０１１６】
分離データＢＲｓｍ及びＢＲｓ（ｍ＋１）はそれぞれ、例えば、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＢｍ未満、及び電圧ＶＢ（ｍ＋１）未満の場合にはデータ“１”となり、電圧ＶＢｍ以上、及び電圧ＶＢ（ｍ＋１）以上の場合にはデータ“０”となる。つまり、分離データＢＲｓｍのうち、データ“１”であるものの数は、閾値電圧が電圧ＶＢｍ未満であるメモリセルトランジスタＭＴの数に相当する。
【０１１７】
分離データＤＲｓｍは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ１以上電圧ＶＤｍ未満の場合にはデータ“１”となり、電圧Ｖｔ１未満又は電圧ＶＤｍ以上の場合にはデータ“０”となる。分離データＤＲｓ（ｍ＋１）は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ１以上電圧ＶＤ（ｍ＋１）未満の場合にはデータ“１”となり、電圧Ｖｔ１未満又は電圧ＶＤ（ｍ＋１）以上の場合にはデータ“０”となる。つまり、分離データＤＲｓｍのうち、データ“１”であるものの数は、閾値電圧が電圧Ｖｔ１以上電圧ＶＤｍ未満であるメモリセルトランジスタＭＴの数に相当する。
【０１１８】
分離データＦＲｓｍは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ２以上電圧ＶＦｍ未満の場合にはデータ“１”となり、電圧Ｖｔ２未満又は電圧ＶＦｍ以上の場合にはデータ“０”となる。分離データＦＲｓ（ｍ＋１）は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ２以上電圧ＶＦ（ｍ＋１）未満の場合にはデータ“１”となり、電圧Ｖｔ２未満又は電圧ＶＦ（ｍ＋１）以上の場合にはデータ“０”となる。つまり、分離データＦＲｓｍのうち、データ“１”であるものの数は、閾値電圧が電圧Ｖｔ２以上電圧ＶＦｍ未満であるメモリセルトランジスタＭＴの数に相当する。
【０１１９】
このため、図１２のステップＳＴ１９において、コントローラ２００は、分離データＢＲｓｍ及びＢＲｓ（ｍ＋１）を比較することにより、電圧ＶＢｍと電圧ＶＢ（ｍ＋１）との間の閾値電圧を有するメモリセル数をビットカウントΔＢ（ｍ＋１）としてモニタすることができる。同様に、コントローラ２００は、分離データＤＲｓｍ及びＤＲｓ（ｍ＋１）を比較することにより、電圧ＶＤｍと電圧ＶＤ（ｍ＋１）との間の閾値電圧を有するメモリセル数をビットカウントΔＤ（ｍ＋１）としてモニタすることができる。同様に、コントローラ２００は、分離データＦＲｓｍ及びＦＲｓ（ｍ＋１）を比較することにより、電圧ＶＦｍと電圧ＶＦ（ｍ＋１）との間の閾値電圧を有するメモリセル数をビットカウントΔＦ（ｍ＋１）としてモニタすることができる。
【０１２０】
なお、分離データＢＲｓｍは、例えば、読出しデータＴＭ１及びＢＲｍ／ＤＲｍ／ＦＲｍに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＭ１と、読出しデータＢＲｍ／ＤＲｍ／ＦＲｍとの論理積演算を行うことにより、分離データＢＲｓｍを生成可能である（ＢＲｓｍ＝ＴＭ１  ＡＮＤ  （ＢＲｍ／ＤＲｍ／ＦＲｍ））。
【０１２１】
また、分離データＤＲｓｍは、例えば、読出しデータＴＭ１、ＴＭ２、及びＢＲｍ／ＤＲｍ／ＦＲｍに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＭ１の否定演算結果￣ＴＭ１と読出しデータＴＭ２との論理積演算結果（￣ＴＭ１  ＡＮＤ  ＴＭ２）と、読出しデータＢＲｍ／ＤＲｍ／ＦＲｍの否定演算結果（￣ＢＲｍ／ＤＲｍ／ＦＲｍ）との論理積演算を行うことにより、分離データＤＲｓｍを生成可能である（ＤＲｓｍ＝（￣ＴＭ１  ＡＮＤ  ＴＭ２）  ＡＮＤ  （￣ＢＲｍ／ＤＲｍ／ＦＲｍ）））。
【０１２２】
また、分離データＦＲｓｍは、例えば、読出しデータＴＭ２及びＢＲｍ／ＤＲｍ／ＦＲｍに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＭ２の否定演算結果￣ＴＭ２と、読出しデータＢＲｍ／ＤＲｍ／ＦＲｍとの論理積演算を行うことにより、分離データＦＲｓｍを生成可能である（ＦＲｓｍ＝￣ＴＭ２  ＡＮＤ  （ＢＲｍ／ＤＲｍ／ＦＲｍ））。
【０１２３】
なお、上述した演算部ＯＰによる分離データＢＲｓｍ、ＤＲｓｍ、及びＦＲｓｍの定義の仕方は一例であり、任意の定義の仕方を適用可能である。
【０１２４】
１．２．３．３．３  谷位置検出判定動作について  
次に、第１実施形態における谷位置検出判定動作について説明する。図１４は、第１実施形態における谷位置の検出判定動作を説明するためのフローチャートである。当該検出判定動作は、谷位置電圧ＶＢ’、ＶＤ’、ＶＦ’のいずれを検出する場合にも適用されるが、図１４では、一例として、谷位置電圧ＶＢ’の検出が判定される場合が示される。すなわち、図１４の各ステップのうち、ステップＳＴ３１、ＳＴ３３、ＳＴ３７〜ＳＴ４０、及びＳＴ４２〜ＳＴ４３は、図１２のステップＳＴ２０−１に対応し、ステップＳＴ３２、ＳＴ３４〜ＳＴ３６、ＳＴ４１、及びＳＴ４３は、図１２のステップＳＴ２１−１に対応する。以下では、図１４の各ステップに先立ち、ステップＳＴ１８−１においてｍ回目のループ処理におけるビットカウントΔＢｍが算出されたものとして、当該ステップＳＴ１８−１に後続するステップＳＴ３１〜ＳＴ４０について説明する。
【０１２５】
図１４に示すように、ステップＳＴ３１において、コントローラ２００は、値ｍが“２”以上であるか否かを判定する。判定の結果、値ｍが“２”以上でない（ｍ＝０又は１）と判定された場合（ステップＳＴ３１；ｎｏ）、谷位置は検出されないと判定してステップＳＴ３２に進み、値ｍが“２”以上である（ｍ≧２）と判定された場合（ステップＳＴ３１；ｙｅｓ）、ステップＳＴ３３に進む。
【０１２６】
ステップＳＴ３２において、コントローラ２００は、ｍ回目のループ処理では谷位置は検出されないと判定し、（ｍ＋１）回目のループ処理における中位ページシフトリードに適用される読出し電圧ＶＢ（ｍ＋１）のシフト量を設定する。当該シフト量は、読出し電圧ＶＢ（ｍ＋１）がｍ回目のループ処理に適用される読出し電圧ＶＢｍよりも小さくなる（ＶＢ（ｍ＋１）＜ＶＢｍ）ように設定される。ステップＳＴ３２におけるシフト量の設定が完了すると、ステップＳＴ２２に進む。
【０１２７】
ステップＳＴ３３において、コントローラ２００は、値ｍが“２”であるか否かを判定する。判定の結果、値ｍが“２”である（ｍ＝２）と判定された場合（ステップＳＴ３３；ｎｏ）、ステップＳＴ３４に進み、値ｍが“２”でない（ｍ＞２）と判定された場合（ステップＳＴ３３；ｙｅｓ）、ステップＳＴ３６に進む。
【０１２８】
ステップＳＴ３４において、コントローラ２００は、ビットカウントΔＢ２がビットカウントΔＢ１以上か否かを判定する。判定の結果、ビットカウントΔＢ２がビットカウントΔＢ１未満である（ΔＢ２＜ΔＢ１）と判定された場合（ステップＳＴ３４；ｎｏ）、ステップＳＴ３２に進む。また、ビットカウントΔＢ２がビットカウントΔＢ１以上である（ΔＢ２≧ΔＢ１）と判定された場合（ステップＳＴ３４；ｙｅｓ）、ステップＳＴ３５に進む。
【０１２９】
ステップＳＴ３５において、コントローラ２００は、以後のループ処理における読出し電圧の探索方向を単調減少から単調増加に切替えるためのフラグＦｌａｇを“ｔｒｕｅ”に設定する。
【０１３０】
ステップＳＴ３６において、コントローラ２００は、ｍ＝２回目のループ処理では谷位置は検出されないと判定し、ｍ＝３回目のループ処理における中位ページシフトリードに適用される読出し電圧ＶＢ３のシフト量を設定する。当該シフト量は、読出し電圧ＶＢ３がｍ＝０回目のループ処理に適用される読出し電圧ＶＢ０よりも大きくなる（ＶＢ３＞ＶＢ０）ように設定される。ステップＳＴ３６におけるシフト量の設定が完了すると、ステップＳＴ２２に進む。
【０１３１】
ステップＳＴ３７において、コントローラ２００は、ｍ回目のループ処理において設定されているフラグＦｌａｇが“ｔｒｕｅ”であるか否かを判定する。判定の結果、フラグＦｌａｇが“ｆａｌｓｅ”である場合（ステップＳＴ３７；ｎｏ）、ステップＳＴ３８に進み、“ｔｒｕｅ”である場合（ステップＳＴ３７；ｙｅｓ）、ステップＳＴ３９に進む。
【０１３２】
ステップＳＴ３８において、コントローラ２００は、ビットカウントΔＢｍがビットカウントΔＢ（ｍ−１）以上であるか否かを判定する。判定の結果、ビットカウントΔＢｍがビットカウントΔＢ（ｍ−１）未満である（ΔＢｍ＜ΔＢ（ｍ−１））と判定された場合（ステップＳＴ３８；ｎｏ）、ステップＳＴ３２に進む。また、ビットカウントΔＢｍがビットカウントΔＢ（ｍ−１）以上である（ΔＢｍ≧ΔＢ（ｍ−１））と判定された場合（ステップＳＴ３８；ｙｅｓ）、ステップＳＴ４３に進む。
【０１３３】
ステップＳＴ３９において、コントローラ２００は、値ｍが“３”であるか否かを判定する。判定の結果、値ｍが“３”である（ｍ＝３）と判定された場合（ステップＳＴ３９；ｎｏ）、ステップＳＴ４０に進み、値ｍが“３”でない（ｍ＞３）と判定された場合（ステップＳＴ３９；ｙｅｓ）、ステップＳＴ４２に進む。
【０１３４】
ステップＳＴ４０において、コントローラ２００は、ビットカウントΔＢ３がビットカウントΔＢ１以上か否かを判定する。判定の結果、ビットカウントΔＢ３がビットカウントΔＢ１未満である（ΔＢ３＜ΔＢ１）と判定された場合（ステップＳＴ４０；ｎｏ）、ステップＳＴ４１に進む。また、ビットカウントΔＢ３がビットカウントΔＢ１以上である（ΔＢ３≧ΔＢ１）と判定された場合（ステップＳＴ４０；ｙｅｓ）、ステップＳＴ４３に進む。
【０１３５】
ステップＳＴ４１において、コントローラ２００は、ｍ回目のループ処理では谷位置は検出されないと判定し、（ｍ＋１）（≧４）回目のループ処理における中位ページシフトリードに適用される読出し電圧ＶＢ（ｍ＋１）のシフト量を設定する。当該シフト量は、読出し電圧ＶＢ（ｍ＋１）がｍ（≧３）回目のループ処理に適用される読出し電圧ＶＢｍよりも大きくなる（ＶＢ（ｍ＋１）＞ＶＢｍ）ように設定される。ステップＳＴ４１におけるシフト量の設定が完了すると、ステップＳＴ２２に進む。
【０１３６】
ステップＳＴ４２において、コントローラ２００は、ビットカウントΔＢｍがビットカウントΔＢ（ｍ−１）以上であるか否かを判定する。判定の結果、ビットカウントΔＢｍがビットカウントΔＢ（ｍ−１）未満である（ΔＢｍ＜ΔＢ（ｍ−１））と判定された場合（ステップＳＴ４２；ｎｏ）、ステップＳＴ４１に進む。また、ビットカウントΔＢｍがビットカウントΔＢ（ｍ−１）以上である（ΔＢｍ≧ΔＢ（ｍ−１））と判定された場合（ステップＳＴ４２；ｙｅｓ）、ステップＳＴ４３に進む。
【０１３７】
ステップＳＴ４３において、コントローラ２００は、ｍ回目のループ処理において谷位置が検出されたと判定し、ステップＳＴ２２に進む。
【０１３８】
図１５は、図１４において説明した谷位置電圧ＶＢ’の検出動作の際に印加される読出し電圧ＶＢと、ビットカウントΔＢとの関係を示すダイアグラムである。図１５（Ａ）、図１５（Ｂ）、図１５（Ｃ）ではそれぞれ、図１４におけるステップＳＴ４０、ＳＴ３８、及びＳＴ４２を経て谷位置検出された場合が示される。また、図１５（Ｂ）では、フラグＦｌａｇが“ｆａｌｓｅ”から“ｔｒｕｅ”に変更されない場合、すなわち読出し電圧ＶＢ０より大きい読出し電圧ＶＢｍが設定されることなく谷位置が検出される場合が示され、図１５（Ａ）及び図１５（Ｃ）では、フラグＦｌａｇが“ｆａｌｓｅ”から“ｔｒｕｅ”に変更される場合、すなわち読出し電圧ＶＢ０より大きいＶＢｍが設定されて谷位置が検出される場合が示される。
【０１３９】
図１５（Ａ）に示すように、谷位置が読出し電圧ＶＢ０及びＶＢ１の間にある場合、ｍ＝３回目のループ処理においてΔＢ２＞ΔＢ１＜ΔＢ３となる。つまり、図１５（Ａ）の場合、合計４回のシフトリードが実行されて、谷位置が検出される。
【０１４０】
また、図１５（Ｂ）に示すように、フラグＦｌａｇが最終的に“ｆａｌｓｅ”であり、かつ谷位置が読出し電圧ＶＢ（ｍ−２）及びＶＢ（ｍ−１）の間にある場合、ｍ≧３回目のループ処理においてΔＢｍ＞ΔＢ（ｍ−１）＜ΔＢ（ｍ−２）となる。つまり、図１５（Ｂ）の場合、合計４回以上の単調減少のシフトリードが実行されて、谷位置が検出される。
【０１４１】
また、図１５（Ｃ）に示すように、フラグＦｌａｇが最終的に“ｔｒｕｅ”であり、かつ谷位置が読出し電圧ＶＢ（ｍ−２）又はＶＢ０、及びＶＢ（ｍ−１）の間にある場合、ｍ≧４回目のループ処理においてΔＢｍ＞ΔＢ（ｍ−１）＜（ΔＢ（ｍ−２）又はΔＢ１）となる。つまり、図１５（Ｃ）の場合、合計５回以上のシフトリードが実行されて、谷位置が検出される。
【０１４２】
なお、”Ａ”状態と”Ｂ”状態の間の谷位置電圧ＶＢ’は、例えば、以下の式（１）に従って算出することができる。
【０１４３】
ＶＢ’＝ＶＢｍｉｎ＋（ＶＢｇａｐ／２）｛（ΔＢｌｏｗ−ΔＢｈｉｇｈ）／（ΔＢｌｏｗ−ΔＢｍｉｎ）＋（ΔＢｈｉｇｈ−ΔＢｍｉｎ）｝      …（１）
ここで、ΔＢｍｉｎは、読出し動作ＢＲにおいて算出されたビットカウントΔＢの最小値であり、ΔＢｌｏｗ及びΔＢｈｉｇｈはそれぞれ、ΔＢｍｉｎに隣り合うビットカウントであり、ΔＢｌｏｗ＞ΔＢｍｉｎ＜ΔＢｈｉｇｈの関係を有する。ＶＢｇａｐ及びＶＢｍｉｎはそれぞれ、ΔＢｍｉｎが（ｍ−１）回目のループ処理における読出し電圧ＶＢ（ｍ−１）及びｍ回目のループ処理における読出し電圧ＶＢｍに基づいて算出された場合、例えば、以下の式（２）及び（３）で算出される。
【０１４４】
ＶＢｇａｐ＝｜ＶＢ（ｍ−１）−ＶＢｍ｜      …（２）
ＶＢｍｉｎ＝（ＶＢ（ｍ−１）＋ＶＢｍ）／２      …（３）
式（１）〜（３）によれば、谷位置電圧ＶＢ’は、読出し電圧ＶＢ（ｍ−１）及びＶＢｍの間を（ΔＢｌｏｗ−ΔＢｍｉｎ）：（ΔＢｈｉｇｈ−ΔＢｍｉｎ）の比で内分する値として検出される。
【０１４５】
なお、上述の谷位置電圧検出動作は、谷位置電圧ＶＢ’を検出する場合について説明したが、中位ページのその他の谷位置電圧ＶＤ’及ＶＦ’についても同様の動作によって検出することができる。つまり、図１４において示したステップＳＴ３１〜ＳＴ４２は、図１２におけるステップＳＴ２０−２及びＳＴ２１−２、並びにＳＴ２０−３及びＳＴ２１−３についても同様に適用可能である。この場合、谷位置電圧ＶＤ’及びＶＦ’は、上述の式（１）〜（３）において、読出し電圧ＶＢをそれぞれＶＤ及びＶＦと読み替え、ビットカウントΔＢをそれぞれΔＤ及びΔＦと読み替えることによって、算出することができる。
【０１４６】
１．２．３．３．４  タイミングチャートについて  
上述した谷位置の検出判定動作によれば、ｍ回目のループ処理において、３つの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’は、互いに独立に検出される。これに伴い、（ｍ＋１）回目のループ処理において適用される読出し電圧ＶＢ（ｍ＋１）、ＶＤ（ｍ＋１）、及びＶＦ（ｍ＋１）を決定するシフト量は、独立に設定される。
【０１４７】
図１６は、第１実施形態における谷位置検出動作を説明するためのタイミングチャートの一例である。図１６の例では、谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’はそれぞれ、図１５（Ｃ）、図１５（Ａ）、及び図１５（Ｂ）に示される検出パターンに従って探索され、ｍ＝４でループ処理が終了する場合が示される。
【０１４８】
なお、図１６は、図１２におけるステップＳＴ１２、ＳＴ１４、及びＳＴ１７に対応する。すなわち、図１６では、時刻Ｔ１１から時刻Ｔ１４の間に対応するテストリード期間、及び時刻Ｔ１５＿ｍから時刻Ｔ１８＿ｍの間に対応するｍ回目のループ処理期間を含む。
【０１４９】
図１６に示すように、時刻Ｔ１１から時刻Ｔ１２の間において、ロウデコーダ１２０は、選択ワード線ＷＬに電圧Ｖｔ１を印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。なお、電圧Ｖｔ１は、読出し動作ＢＲにおける読出し電圧ＶＢより大きく、読出し動作ＤＲにおける読出し電圧ＶＤより小さい。
【０１５０】
続いて、時刻Ｔ１３から時刻Ｔ１４の間において、ロウデコーダ１２０は、選択ワード線ＷＬに電圧Ｖｔ２を印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。なお、電圧Ｖｔ２は、読出し電圧ＶＤより大きく、読出し動作ＦＲにおける読出し電圧ＶＦより小さい。
【０１５１】
続いて、ロウデコーダ１２０は、ｍ＝０回目のループ処理動作で、選択ワード線ＷＬに対して、時刻Ｔ１５‐０から時刻Ｔ１６‐０の間、時刻Ｔ１６‐０から時刻Ｔ１７‐０の間、及び時刻Ｔ１７‐０から時刻Ｔ１８‐０の間において、それぞれ電圧ＶＢ０、ＶＤ０、及びＶＦ０を印加する。また、ロウデコーダ１２０は、非選択ワード線ＷＬに対して、時刻Ｔ１５‐０から時刻Ｔ１８‐０の間において電圧ＶＲＥＡＤを印加する。
【０１５２】
続いて、ロウデコーダ１２０は、ｍ＝１回目のループ処理動作で、選択ワード線ＷＬに対して、時刻Ｔ１５‐１から時刻Ｔ１６‐１の間、時刻Ｔ１６‐１から時刻Ｔ１７‐１の間、及び時刻Ｔ１７‐１から時刻Ｔ１８‐１の間において、それぞれ電圧ＶＢ１、ＶＤ１、及びＶＦ１を印加する。また、ロウデコーダ１２０は、非選択ワード線ＷＬに対して、時刻Ｔ１５‐１から時刻Ｔ１８‐１の間において電圧ＶＲＥＡＤを印加する。
【０１５３】
このように、ロウデコーダ２７は、ｍ回目のループで、選択ワード線ＷＬに対して、時刻Ｔ１５‐ｍから時刻Ｔ１６‐ｍの間、時刻Ｔ１６‐ｍから時刻Ｔ１７‐ｍの間、及び時刻Ｔ１７‐ｍから時刻Ｔ１８‐ｍの間において、それぞれ電圧ＶＢｍ、ＶＤｍ、及びＶＦｍを印加する。また、ロウデコーダ１２０は、非選択ワード線ＷＬに対して、時刻Ｔ１５‐ｍから時刻Ｔ１８‐ｍの間において電圧ＶＲＥＡＤを印加する。
【０１５４】
上述の通り、ｍ＝２のループ処理までは、読出し電圧ＶＢｍ、ＶＤｍ、及びＶＦｍはそれぞれ、前のループ処理における読出し電圧ＶＢ（ｍ−１）、ＶＤ（ｍ−１）、及びＶＦ（ｍ−１）より小さくなるように設定される（ＶＢ２＜ＶＢ１＜ＶＢ０、ＶＤ２＜ＶＤ１＜ＶＤ０、ＶＦ２＜ＶＦ１＜ＶＦ０）。
【０１５５】
ｍ＝２のループ処理において、谷位置電圧ＶＦ’の検出動作のステップＳＴ３４では、ΔＦ２＜ΔＦ１となるため、フラグＦｌａｇは、“ｆａｌｓｅ”から“ｔｒｕｅ”に変更されない。このため、読出し電圧ＶＦ３は、読出し電圧ＶＦ２より小さな値が設定される（ＶＦ３＜ＶＦ２）。一方、谷位置電圧ＶＢ’及びＶＤ’の検出動作のステップＳＴ３４ではそれぞれ、ΔＢ２≧ΔＢ１、及びΔＤ２≧ΔＤ１となるため、フラグＦｌａｇが“ｆａｌｓｅ”から“ｔｒｕｅ”に変更される。このため、読出し電圧ＶＢ３及びＶＤ３はそれぞれ、読出し電圧ＶＢ０及びＶＤ０より大きな値が設定される（ＶＢ３＞ＶＢ０、ＶＤ３＞ＶＤ０）。
【０１５６】
ｍ＝３のループ処理において、谷位置電圧ＶＦ’の検出動作のステップＳＴ３８では、ΔＦ３＜ΔＦ２となる。このため、読出し電圧ＶＦ４は、読出し電圧ＶＦ３より小さな値が設定される（ＶＦ４＜ＶＦ３）。谷位置電圧ＶＤ’の検出動作のステップＳＴ４０では、ΔＤ３≧ΔＤ１となるため、谷位置が検出されたと判定される。このため、読出し電圧ＶＤ４は、例えば、読出し電圧ＶＤ３から変更されない（ＶＤ４＝ＶＤ３）。谷位置電圧ＶＢ’の検出動作のステップＳＴ４０では、ΔＢ３＜ΔＢ１となる。このため、読出し電圧ＶＢ４は、読出し電圧ＶＢ３より大きな値が設定される（ＶＢ４＜ＶＢ３）。
【０１５７】
ｍ＝４のループ処理において、谷位置電圧ＶＦ’の検出動作のステップＳＴ３８では、ΔＦ４≧ΔＦ３となるため、谷位置が検出されたと判定される。谷位置電圧ＶＢ’の検出動作のステップＳＴ４２では、ΔＢ４≧ΔＢ３となるため、谷位置が検出されたと判定される。このため、ステップＳＴ２１において全ての谷位置が検出されたと判定され、ループ処理が終了する。
【０１５８】
１．２．３．４  谷位置推定動作について  
次に、第１実施形態の谷位置推定動作について説明する。図１７に示すように、上位ページ及び下位ページの谷位置電圧のシフト量Ｙは、中位ページの谷位置電圧のシフト量Ｘに対して、例えば、以下の式（４）で対応付けられる。
【０１５９】
Ｙ＝ａＸ＋ｂ      …（４）
ここで、シフト量Ｘは、ノーマルリードにおける読出し電圧と、谷位置電圧の検出値との差であり、ＸＢ（＝ＶＢ’−ＶＢｄｅｆ）、ＸＤ（＝ＶＤ’−ＶＤｄｅｆ）、及びＸＦ（＝ＶＦ’−ＶＦｄｅｆ）を含む。シフト量Ｙは、ノーマルリードにおける読出し電圧と、谷位置電圧の推定値との差であり、ＹＡ（＝ＶＡ’−ＶＡｄｅｆ）、ＹＣ（＝ＶＣ’−ＶＣｄｅｆ）、ＹＥ（＝ＶＥ’−ＶＥｄｅｆ）、及びＹＧ（＝ＶＧ’−ＶＧｄｅｆ）を含む。係数ａ、ｂは、シフト量Ｘに基づきシフト量Ｙを算出するために予め設定された値である。
【０１６０】
このように、シフト量Ｘと、シフト量Ｙとは、互いに相関があるため、中位ページの谷位置電圧を検出することにより、上位ページ及び下位ページの谷位置電圧を推定することができる。シフト量Ｘ及びＹの相関の強さは、例えば、互いに近いレベル同士であるほど強い場合がある。このため、第１実施形態では、図１０において示したように、シフト量ＹＡは、シフト量ＸＢから推定され、シフト量ＹＣ及びＹＥは、シフト量ＸＤから推定され、シフト量ＹＧは、シフト量ＸＦから推定される。しかしながら、これに限らず、シフト量ＹＡは、シフト量ＸＤ及びＸＦから推定されてもよく、シフト量ＹＣ及びＹＥは、シフト量ＸＢ及びＸＦから推定されてもよく、シフト量ＹＧは、シフト量ＸＢ及びＸＤから推定されてもよい。
【０１６１】
また、式（４）は、シフト量Ｘ及びＹが一次関数で対応付けられた場合について説明したが、これに限られない。例えば、シフト量Ｘ及びＹは、任意の多項式で対応付けられてもよい。
【０１６２】
１．２．４  シーケンシャルリード動作との関係について
次に、同一のメモリセルトランジスタＭＴにおいて、異なるページからの読出しが連続して実行する場合（これをシーケンシャルリード（Sequential reading）動作と呼ぶ）と、ＭポイントＶｔｈトラッキング動作との関係について説明する。
【０１６３】
１．２．４．１  谷位置電圧を流用できる場合  
まず、或るページからの読出しの際に実行されたＭポイントＶｔｈトラッキング動作によって検出及び推定された谷位置電圧の値を、他のページからの読出しの際に流用できる場合について説明する。このような動作は、例えば、コントローラ２００が、ＭポイントＶｔｈトラッキング動作によって検出及び推定された谷位置電圧の値を、当該或るページからの読出し動作の後も保持できる場合の動作として想定される。
【０１６４】
図１８は、谷位置電圧が流用できる場合におけるシーケンシャルリード動作のフローチャートである。図１８の例では、下位／中位／上位ページの順にノーマルリードが実行され、いずれの読出しデータもＥＣＣフェイルする場合が示される。
【０１６５】
図１８に示すように、ステップＳＴ５１において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から下位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０１６６】
ステップＳＴ５２において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＥＣＣフェイルのステータスを取得し、ＭポイントＶｔｈトラッキング動作を実行する。コントローラ２００は、図１２のステップＳＴ１１〜ＳＴ２２を実行し、中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’を検出し、シーケンシャルリード動作の間保持する。
【０１６７】
ステップＳＴ５３において、コントローラ２００は、図１１のステップＳＴ５を実行し、上位ページ及び下位ページの谷位置電圧ＶＡ’、ＶＣ’、ＶＥ’、及びＶＧ’を推定し、シーケンシャルリード動作の間保持する。
【０１６８】
ステップＳＴ５４において、コントローラ２００は、推定された谷位置電圧ＶＡ’及びＶＥ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度下位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０１６９】
続いて、ステップＳＴ５５において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から中位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０１７０】
ステップＳＴ５６において、コントローラ２００は、ステップＳＴ５２において検出された谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度中位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０１７１】
続いて、ステップＳＴ５７において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から上位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０１７２】
ステップＳＴ５８において、コントローラ２００は、ステップＳＴ５３において推定された谷位置電圧ＶＣ’及びＶＧ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度上位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０１７３】
以上により、シーケンシャルリード動作が終了する。
【０１７４】
このように、シーケンシャルリード動作の間ＭポイントＶｔｈトラッキング動作の結果を保持できる場合、１回のＭポイントＶｔｈトラッキング動作によって検出及び推定された谷位置電圧を、下位／中位／上位ページの読出しの各々に対して適用することができる。
【０１７５】
なお本例においては、ステップＳＴ５５及びＳＴ５７のノーマルリードを省略してステップＳＴ５６及びＳＴ５８が実行されても良い。なぜなら、ノーマルリードよりも、ステップＳＴ５３で推定された電圧を用いた方が、データを正しく読み出せる可能性が高いと考えられるからである。
【０１７６】
１．２．４．２  谷位置電圧を流用できない場合  
次に、或るページからの読出しの際に実行されたＭポイントＶｔｈトラッキング動作によって検出及び推定された谷位置電圧の値を、他のページからの読出しの際に流用できない場合について説明する。このような動作は、例えば、コントローラ２００が、ＭポイントＶｔｈトラッキング動作によって検出及び推定された谷位置電圧の値を、当該或るページからの読出し動作の後に保持できない場合の動作として想定される。
【０１７７】
図１９は、谷位置電圧が流用できない場合におけるシーケンシャルリード動作のフローチャートである。図１９の例では、図１８と同様、下位／中位／上位ページの順にノーマルリードが実行され、いずれの読出しデータもＥＣＣフェイルする場合が示される。
【０１７８】
図１９に示すように、ステップＳＴ６１〜ＳＴ６４は、図１８におけるステップＳＴ５１〜ＳＴ５４と同様であるため、説明を省略する。
【０１７９】
続いて、ステップＳＴ６５において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から中位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０１８０】
ステップＳＴ６６おいて、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＥＣＣフェイルのステータスを取得し、ＭポイントＶｔｈトラッキング動作を実行する。コントローラ２００は、図１２のステップＳＴ１１〜ＳＴ２２を実行し、中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’を検出する。
【０１８１】
ステップＳＴ６７において、コントローラ２００は、検出された谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度中位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０１８２】
続いて、ステップＳＴ６８において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から上位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０１８３】
ステップＳＴ６９において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＥＣＣフェイルのステータスを取得し、ＭポイントＶｔｈトラッキング動作を実行する。コントローラ２００は、図１２のステップＳＴ１１〜ＳＴ２２を実行し、中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’を検出する。
【０１８４】
ステップＳＴ７０において、コントローラ２００は、図１１のステップＳＴ５を実行し、上位ページの谷位置電圧ＶＣ’及びＶＧ’を推定する。
【０１８５】
ステップＳＴ７１において、コントローラ２００は、推定された谷位置電圧ＶＣ’及びＶＧ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度上位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０１８６】
以上により、シーケンシャルリード動作が終了する。
【０１８７】
このように、シーケンシャルリード動作の間ＭポイントＶｔｈトラッキング動作の結果を保持できない場合、下位／中位／上位ページの読出しの各々に対して、その都度ＭポイントＶｔｈトラッキング動作が実行される。
【０１８８】
１．３  本実施形態に係る効果  
以上のように、本実施形態に係る構成であると高速な読み出し動作を可能とし、メモリシステムの読み出し性能を向上出来る。本効果につき、以下説明する。
【０１８９】
すなわち、本実施形態では、各メモリセルが複数ビットを保持する場合、言い換えれば１本のワード線ＷＬに複数ページが割り当てられる場合、この複数ページのいずれかのページにおいてＶthトラッキングを行う。この際、Ｖthトラッキングの対象ページの読み出し電圧が２種類以上であった場合に、それらの全てにつき、ＭポイントＶthトラッキングを実行している。より具体的には、上記実施形態では図１０で説明したように、中位ページにおいて、読み出し電圧ＶＢ、ＶＤ、及びＶＦを対象に、Ｖthトラッキングが実行される。従って、中位ページの読み出し精度を向上出来る。
【０１９０】
更に中位ページの３つの読み出し電圧の全てにつきＶthトラッキングを行い、その結果から、他のページの読み出し電圧（図１０の例であると、ＶＡ、ＶＣ、ＶＥ、ＶＧ）を推定している。従って、１つの読み出し電圧だけにつきＶthトラッキングを行う場合に比べて、推定精度が向上される。その結果、下位ページ及び上位ページの読み出し精度も向上される。
【０１９１】
また、Ｖthトラッキング対象となる読み出し電圧ＶＢ、ＶＤ、及びＶＦは、図１６で説明したように、並行してトラッキングされ、且つ各読み出し電圧毎に最適なアルゴリズム（読み出し電圧のシフト方向）により、トラッキングされる。従って、１つの読み出し電圧だけにつきＶthトラッキングを行う場合と、トラッキングに要する時間をほぼ同等とすることが出来る。更に、図１８で説明したように、中位ページのトラッキング結果が他のページに流用出来れば、各ページでＶthトラッキングを行う場合に比べて読み出し動作全体としての速度を向上出来る。
【０１９２】
２．  第２実施形態  
次に、第２実施形態に係るメモリシステムについて説明する。第２実施形態では、谷位置推定動作が第１実施形態と異なる。より具体的には、第１実施形態では、谷位置推定動作において、シフト量ＸＢ、ＸＤ、ＸＦのいずれかと、シフト量ＹＡ、ＹＣ、ＹＥ、及びＹＧのいずれかと、を対応付ける式（４）を用いることにより、谷位置電圧ＶＡ’、ＶＣ’、ＶＥ’、及びＶＧ’を推定した。一方、第２実施形態では、谷位置電圧ＶＡ’、ＶＣ’、ＶＥ’、及びＶＧ’は、シフト量Ｘ及びＹを介することなく、谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’と直接対応付けられる。
【０１９３】
以下の説明では、第１実施形態と同一の構成及び動作については説明を省略し、第１実施形態と異なる構成及び動作について説明する。
【０１９４】
２．１  谷位置推定動作について  
図２０は、第２実施形態のＭポイントＶｔｈトラッキング動作を含む動作を説明するためのフローチャートである。図２０は、第１実施形態において説明した図１１に対応する。
【０１９５】
図２０に示すように、第２実施形態では、谷位置推定に係るステップＳＴ５Ａを除くその他のステップＳＴ１〜ＳＴ４、及びＳＴ６〜１０は、第１実施形態と同様である。
【０１９６】
ステップＳＴ５Ａにおいて、コントローラ２００は、検出された中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’の間の差に基づき、下位ページ及び上位ページの谷位置を推定する。
【０１９７】
より具体的には、図２１に示すように、谷位置電圧ＶＡ’、ＶＣ’、ＶＥ’、及びＶＧ’は、以下の式（５）〜（８）に従って推定される。
【０１９８】
ＶＡ’＝ＶＢ’−（ＶＤ’−ＶＢ’）／２      …（５）  
ＶＣ’＝（ＶＢ’＋ＶＤ’）／２      …（６）  
ＶＥ’＝（ＶＤ’＋ＶＦ’）／２      …（７）  
ＶＧ’＝ＶＦ’＋（ＶＦ’−ＶＤ’）／２      …（８）  
このように、各谷位置は互いに均等な間隔で隣り合うと仮定することにより、検出された中位ページの谷位置電圧から、下位ページ及び上位ページの谷位置電圧を直接推定することができる。
【０１９９】
２．２  本実施形態に係る効果  
上記のように、本実施形態によれば、Ｖthトラッキングの対象とされた読み出し電圧の中間電圧を、他のページ読み出し電圧であると推定する。従って、上記第１実施形態に比べて推定方法が非常に容易であり、処理が簡略化される結果、読み出し速度を向上出来る。
【０２００】
３．  第３実施形態  
次に、第３実施形態に係るメモリシステムについて説明する。第３実施形態では、ＭポイントＶｔｈトラッキング動作において検出される谷位置電圧が第１実施形態と異なる場合がある。より具体的には、第１実施形態では、ノーマルリードでＥＣＣフェイルしたページが下位／中位／上位ページのいずれの場合においても、中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’が検出された。一方、第３実施形態では、ノーマルリードでＥＣＣフェイルしたページに応じて、検出される谷位置電圧の組が変更される。
【０２０１】
以下の説明では、第１実施形態と同一の構成及び動作については説明を省略し、第１実施形態と異なる構成及び動作について説明する。
【０２０２】
３．１  ＭポイントＶｔｈトラッキング動作について  
３．１．１  ＭポイントＶｔｈトラッキング動作の概要について  
図２２は、第３実施形態のＭポイントＶｔｈトラッキング動作を含む動作を説明するためのフローチャートである。図２２は、第１実施形態において説明した図１１に対応する。
【０２０３】
図２２に示すように、第３実施形態では、ＭポイントＶｔｈトラッキング動作に係るステップＳＴ４Ｂが、第１実施形態において説明した図１１のステップＳＴ４と異なる。また、第３実施形態では、図１１の谷位置推定に係るステップＳＴ５が実行されない。そして、その他のステップＳＴ１〜ＳＴ３、及びＳＴ６〜１０は、第１実施形態と同様である。
【０２０４】
ステップＳＴ４Ｂにおいて、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＭポイントＶｔｈトラッキング動作を行い、谷位置を検出する。検出される谷位置は、ステップＳＴ１において実行されたノーマルリードによって読み出されたページに対応する。すなわち、ステップＳＴ１において下位ページが読み出された場合、ステップＳＴ４Ｂにおいて下位ページの谷位置電圧ＶＡ’及びＶＥ’が検出される。ステップＳＴ１において中位ページが読み出された場合、ステップＳＴ４Ｂにおいて中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’が検出される。ステップＳＴ１において上位ページが読み出された場合、ステップＳＴ４Ｂにおいて上位ページの谷位置電圧ＶＣ’及びＶＧ’が検出される。
【０２０５】
なお、中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’が検出される場合のステップＳＴ４Ｂの動作は、図１１のステップＳＴ４と同等の動作である。以下では、下位ページの谷位置電圧ＶＡ’及びＶＥ’が検出される場合、及び上位ページの谷位置電圧ＶＣ’及びＶＧ’が検出される場合のステップＳＴ４Ｂの動作の詳細について説明する。
【０２０６】
３．１．２  下位ページの谷位置検出動作について  
図２３は、第３実施形態の下位ページの谷位置検出を行うＭポイントＶｔｈトラッキング動作の詳細を示すフローチャートである。
【０２０７】
図２３に示すように、ステップＳＴ８１において、コントローラ２００は、テストリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０２０８】
ステップＳＴ８２において、ＮＡＮＤ型フラッシュメモリ１００は、テストリードを実行し、読出しデータＴＬを読み出す。ＮＡＮＤ型フラッシュメモリ１００は、読出しデータＴＬをラッチ回路に保持する。
【０２０９】
ステップＳＴ８３において、コントローラ２００は、以降のステップＳＴ８４〜ＳＴ９１で実行されるループ処理の初期化を行う（ｍ＝０、Ｆｌａｇ＝ｆａｌｓｅ）。
【０２１０】
ステップＳＴ８４において、コントローラ２００は、下位ページのシフトリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０２１１】
ステップＳＴ８５において、ＮＡＮＤ型フラッシュメモリ１００は、下位ページのシフトリードを実行し、ｍ回目のループ処理において読出しデータＡＲｍ／ＥＲｍ（ＡＲ０／ＥＲ０、ＡＲ１／ＥＲ１、…）を読出す。ＮＡＮＤ型フラッシュメモリ１００は、読出しデータＡＲｍ／ＥＲｍをラッチ回路に保持する。ｍ回目のループ処理における読出しデータＡＲｍ／ＥＲｍは、電圧ＶＡｍ及びＶＥｍを用いた下位ページのシフトリードの結果に相当する。このため、読出しデータＡＲｍ／ＥＲｍは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＶＡｍ及びＶＥｍとの関係に基づいてデータ“０”又は“１”を有する。
【０２１２】
ステップＳＴ８６において、ＮＡＮＤ型フラッシュメモリ１００は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｍ／ＥＲｍに基づき、分離データＡＲｓｍ（ＡＲｓ０、ＡＲｓ１、…）、及びＥＲｓｍ（ＥＲｓ０、ＥＲｓ１、…）を演算する。そして、ＮＡＮＤ型フラッシュメモリ１００は、分離データＡＲｓｍ、及びＥＲｓｍをコントローラ２００に送信する。分離データＡＲｓｍ、及びＥＲｓｍは、読出しデータＡＲｍ／ＥＲｍにおける部分的な情報を有する。分離データＡＲｓｍ及びＥＲｓｍの詳細については後述する。
【０２１３】
ステップＳＴ８７（ＳＴ８７−１及びＳＴ８７−２）において、コントローラ２００はそれぞれ、分離データＡＲｓｍ及びＥＲｓｍの各々に基づくビットカウントΔＡｍ及びΔＥｍを算出する。
【０２１４】
ステップＳＴ８８（ＳＴ８８−１及びＳＴ８８−２）において、コントローラ２００はそれぞれ、“Ｅｒ”レベルと”Ａ”状態との間の谷位置、及び”Ｄ”状態と”Ｅ”状態との間の谷位置が検出されたか否かを判定する。コントローラ２００は、谷位置が検出されなかったと判定した場合、（ステップＳＴ８８；ｎｏ）、ステップＳＴ８９（ＳＴ８９−１及びＳＴ８９−２）に進んで（ｍ＋１）回目のループにおけるシフトリードに適用されるシフト量を設定した後、ステップＳＴ９０に進む。また、谷位置が検出されたと判定した場合（ステップＳＴ８８；ｙｅｓ）、ステップＳＴ９０に進む。
【０２１５】
ステップＳＴ９０において、コントローラ２００は、下位データに係る全ての谷位置が検出されたか否かを判定する。下位データに係る全ての谷位置が検出されていないと判定した場合（ステップＳＴ９０；ｎｏ）、ステップＳＴ９１に進み、ループ数をインクリメントしてステップＳＴ８４に進む。下位データに係る全ての谷位置が検出されたと判定した場合（ステップＳＴ９０；ｙｅｓ）、引き続き検出された谷位置電圧に基づくシフトリードを行うためにステップＳＴ６に進む。
【０２１６】
以上で、下位ページの谷位置を検出するＭポイントＶｔｈトラッキング動作が終了する。
【０２１７】
次に、下位ページの谷位置検出において用いられる分離データについて説明する。図２４は、第３実施形態の下位ページシフトリードによって生成される分離データを説明するためのテーブルであり、図２３におけるステップＳＴ８２、ＳＴ８５、及びＳＴ８６に対応する。図２４では、テストリードの読出しデータＴＬ、シフトリードの読出しデータＡＲｍ／ＥＲｍ及びＡＲ（ｍ＋１）／ＥＲ（ｍ＋１）、並びに分離データＡＲｓｍ、ＡＲｓ（ｍ＋１）、ＥＲｓｍ、及びＥＲｓ（ｍ＋１）が示される。
【０２１８】
図２４に示すように、読出しデータＴＬは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ１未満の場合にはデータ“１”となり、電圧Ｖｔ１以上の場合にはデータ“０”となる。
【０２１９】
読出しデータＡＲｍ／ＥＲｍは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＡｍ未満の場合にはデータ“１”となり、電圧ＶＡｍ以上電圧ＶＥｍ未満の場合にはデータ“０”となり、電圧ＶＥｍ以上の場合にはデータ“１”となる。読出しデータＡＲ（ｍ＋１）／ＥＲ（ｍ＋１）についても同様である。
【０２２０】
分離データＡＲｓｍ及びＡＲｓ（ｍ＋１）はそれぞれ、例えば、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＡｍ未満、及び電圧ＶＡ（ｍ＋１）未満の場合にはデータ“１”となり、電圧ＶＡｍ以上、及び電圧ＶＡ（ｍ＋１）以上の場合にはデータ“０”となる。つまり、分離データＡＲｓｍのうち、データ“１”であるものの数は、閾値電圧が電圧ＶＡｍ未満であるメモリセルトランジスタＭＴの数に相当する。
【０２２１】
分離データＥＲｓｍは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ１以上電圧ＶＥｍ未満の場合にはデータ“１”となり、電圧Ｖｔ１未満又は電圧ＶＥｍ以上の場合にはデータ“０”となる。分離データＥＲｓ（ｍ＋１）は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ１以上電圧ＶＥ（ｍ＋１）未満の場合にはデータ“１”となり、電圧Ｖｔ１未満又は電圧ＶＥ（ｍ＋１）以上の場合にはデータ“０”となる。つまり、分離データＥＲｓｍのうち、データ“１”であるものの数は、閾値電圧が電圧Ｖｔ１以上電圧ＶＥｍ未満であるメモリセルトランジスタＭＴの数に相当する。
【０２２２】
このため、図２３のステップＳＴ８７において、コントローラ２００は、分離データＡＲｓｍ及びＡＲｓ（ｍ＋１）を比較することにより、電圧ＶＡｍと電圧ＶＡ（ｍ＋１）との間に閾値電圧を有するメモリセル数をビットカウントΔＡ（ｍ＋１）としてモニタすることができる。同様に、コントローラ２００は、分離データＥＲｓｍ及びＥＲｓ（ｍ＋１）を比較することにより、電圧ＶＥｍと電圧ＶＥ（ｍ＋１）との間の閾値電圧を有するメモリセル数をビットカウントΔＥ（ｍ＋１）としてモニタすることができる。
【０２２３】
なお、分離データＡＲｓｍ及びＥＲｓｍは、例えば、読出しデータＴＬ及びＡＲｍ／ＥＲｍに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＬと、読出しデータＡＲｍ／ＥＲｍとの論理積演算を行うことにより、分離データＡＲｓｍを生成可能である（ＡＲｓｍ＝ＴＬ  ＡＮＤ  （ＡＲｍ／ＥＲｍ））。また、演算部ＯＰは、例えば、読出しデータＴＬの否定演算￣ＴＬと、読出しデータＡＲｍ／ＥＲｍの否定演算￣（ＡＲｍ／ＥＲｍ）との論理積演算を行うことにより、分離データＥＲｓｍを生成可能である（ＥＲｓｍ＝￣ＴＬ  ＡＮＤ  ￣（ＡＲｍ／ＥＲｍ））。
【０２２４】
なお、上述した演算部ＯＰによる分離データＡＲｓｍ及びＥＲｓｍの定義の仕方は一例であり、任意の定義の仕方を適用可能である。
【０２２５】
３．１．３  上位ページの谷位置検出動作について  
図２５は、第３実施形態の上位ページの谷位置検出を行うＭポイントＶｔｈトラッキング動作の詳細を示すフローチャートである。
【０２２６】
図２５に示すように、ステップＳＴ１０１において、コントローラ２００は、テストリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０２２７】
ステップＳＴ１０２において、ＮＡＮＤ型フラッシュメモリ１００は、テストリードを実行し、読出しデータＴＵを読み出す。ＮＡＮＤ型フラッシュメモリ１００は、読出しデータＴＵをラッチ回路に保持する。
【０２２８】
ステップＳＴ１０３において、コントローラ２００は、以降のステップＳＴ１０４〜ＳＴ１１１で実行されるループ処理の初期化を行う（ｍ＝０、Ｆｌａｇ＝ｆａｌｓｅ）。
【０２２９】
ステップＳＴ１０４において、コントローラ２００は、上位ページのシフトリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０２３０】
ステップＳＴ１０５において、ＮＡＮＤ型フラッシュメモリ１００は、上位ページのシフトリードを実行し、ｍ回目のループ処理において読出しデータＣＲｍ／ＧＲｍ（ＣＲ０／ＧＲ０、ＣＲ１／ＧＲ１、…）を読出す。ＮＡＮＤ型フラッシュメモリ１００は、読出しデータＣＲｍ／ＧＲｍをラッチ回路に保持する。ｍ回目のループ処理における読出しデータＣＲｍ／ＧＲｍは、電圧ＶＣｍ及びＶＧｍを用いた上位ページのシフトリードの結果に相当する。このため、読出しデータＣＲｍ／ＧＲｍは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＶＣｍ及びＶＧｍとの関係に基づいてデータ“０”又は“１”を有する。
【０２３１】
ステップＳＴ１０６において、ＮＡＮＤ型フラッシュメモリ１００は、ラッチ回路に保持された読出しデータＴＵ及びＣＲｍ／ＧＲｍに基づき、分離データＣＲｓｍ（ＣＲｓ０、ＣＲｓ１、…）、及びＧＲｓｍ（ＧＲｓ０、ＧＲｓ１、…）を演算する。そして、ＮＡＮＤ型フラッシュメモリ１００は、分離データＣＲｓｍ、及びＧＲｓｍをコントローラ２００に送信する。分離データＣＲｓｍ、及びＧＲｓｍは、読出しデータＣＲｍ／ＧＲｍにおける部分的な情報を有する。分離データＣＲｓｍ及びＧＲｓｍの詳細については後述する。
【０２３２】
ステップＳＴ１０７（ＳＴ１０７−１及びＳＴ１０７−２）において、コントローラ２００はそれぞれ、分離データＣＲｓｍ及びＧＲｓｍの各々に基づくビットカウントΔＣｍ及びΔＧｍを算出する。
【０２３３】
ステップＳＴ１０８（ＳＴ１０８−１及びＳＴ１０８−２）において、コントローラ２００はそれぞれ、”Ｂ”状態と”Ｃ”状態との間の谷位置、及び”Ｆ”状態と”Ｇ”状態との間の谷位置が検出されたか否かを判定する。コントローラ２００は、谷位置が検出されなかったと判定した場合、（ステップＳＴ１０８；ｎｏ）、ステップＳＴ１０９（ＳＴ１０９−１及びＳＴ１０９−２）に進んで（ｍ＋１）回目のループにおけるシフトリードに適用されるシフト量を設定した後、ステップＳＴ１１０に進む。また、谷位置が検出されたと判定した場合（ステップＳＴ１０８；ｙｅｓ）、ステップＳＴ１１０に進む。
【０２３４】
ステップＳＴ１１０において、コントローラ２００は、上位データに係る全ての谷位置が検出されたか否かを判定する。上位データに係る全ての谷位置が検出されていないと判定した場合（ステップＳＴ１１０；ｎｏ）、ステップＳＴ１１１に進み、ループ数をインクリメントしてステップＳＴ１０４に進む。上位データに係る全ての谷位置が検出されたと判定した場合（ステップＳＴ１１０；ｙｅｓ）、引き続き検出された谷位置電圧に基づくシフトリードを行うためにステップＳＴ６に進む。
【０２３５】
以上で、上位ページの谷位置を検出するＭポイントＶｔｈトラッキング動作が終了する。
【０２３６】
次に、上位ページの谷位置検出において用いられる分離データについて説明する。図２６は、第３実施形態の上位ページシフトリードによって生成される分離データを説明するためのテーブルであり、図２５におけるステップＳＴ１０２、ＳＴ１０５、及びＳＴ１０６に対応する。図２６では、テストリードの読出しデータＴＵ、シフトリードの読出しデータＣＲｍ／ＧＲｍ及びＣＲ（ｍ＋１）／ＧＲ（ｍ＋１）、並びに分離データＣＲｓｍ、ＣＲｓ（ｍ＋１）、ＧＲｓｍ、及びＧＲｓ（ｍ＋１）が示される。
【０２３７】
図２６に示すように、読出しデータＴＵは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ２未満の場合にはデータ“１”となり、電圧Ｖｔ２以上の場合にはデータ“０”となる。
【０２３８】
読出しデータＣＲｍ／ＧＲｍは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＣｍ未満の場合にはデータ“１”となり、電圧ＶＣｍ以上電圧ＶＧｍ未満の場合にはデータ“０”となり、電圧ＶＧｍ以上の場合にはデータ“１”となる。読出しデータＣＲ（ｍ＋１）／ＧＲ（ｍ＋１）についても同様である。
【０２３９】
分離データＣＲｓｍ及びＧＲｓ（ｍ＋１）はそれぞれ、例えば、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＣｍ未満、及び電圧ＶＣ（ｍ＋１）未満の場合にはデータ“１”となり、電圧ＶＣｍ以上、及び電圧ＶＣ（ｍ＋１）以上の場合にはデータ“０”となる。つまり、分離データＣＲｓｍのうち、データ“１”であるものの数は、閾値電圧が電圧ＶＣｍ未満であるメモリセルトランジスタＭＴの数に相当する。
【０２４０】
分離データＧＲｓｍは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ２以上電圧ＶＧｍ未満の場合にはデータ“１”となり、電圧Ｖｔ２未満又は電圧ＶＧｍ以上の場合にはデータ“０”となる。分離データＧＲｓ（ｍ＋１）は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ２以上電圧ＶＧ（ｍ＋１）未満の場合にはデータ“１”となり、電圧Ｖｔ２未満又は電圧ＶＧ（ｍ＋１）以上の場合にはデータ“０”となる。つまり、分離データＧＲｓｍのうち、データ“１”であるものの数は、閾値電圧が電圧Ｖｔ２以上電圧ＶＧｍ未満であるメモリセルトランジスタＭＴの数に相当する。
【０２４１】
このため、図２５のステップＳＴ１０７において、コントローラ２００は、分離データＣＲｓｍ及びＣＲｓ（ｍ＋１）を比較することにより、電圧ＶＣｍと電圧ＶＣ（ｍ＋１）との間に閾値電圧を有するメモリセル数をビットカウントΔＣ（ｍ＋１）としてモニタすることができる。同様に、コントローラ２００は、分離データＧＲｓｍ及びＧＲｓ（ｍ＋１）を比較することにより、電圧ＶＧｍと電圧ＶＧ（ｍ＋１）との間の閾値電圧を有するメモリセル数をビットカウントΔＧ（ｍ＋１）としてモニタすることができる。
【０２４２】
なお、分離データＣＲｓｍ及びＧＲｓｍは、例えば、読出しデータＴＵ及びＣＲｍ／ＧＲｍに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＵと、読出しデータＣＲｍ／ＧＲｍとの論理積演算を行うことにより、分離データＣＲｓｍを生成可能である（ＣＲｓｍ＝ＴＵ  ＡＮＤ  （ＣＲｍ／ＧＲｍ））。また、演算部ＯＰは、例えば、読出しデータＴＵの否定演算￣ＴＵと、読出しデータＣＲｍ／ＧＲｍの否定演算￣（ＣＲｍ／ＧＲｍ）との論理積演算を行うことにより、分離データＧＲｓｍを生成可能である（ＧＲｓｍ＝￣ＴＵ  ＡＮＤ  ￣（ＣＲｍ／ＧＲｍ））。
【０２４３】
なお、上述した演算部ＯＰによる分離データＣＲｓｍ及びＧＲｓｍの定義の仕方は一例であり、任意の定義の仕方を適用可能である。
【０２４４】
３．２  シーケンシャルリード動作との関係について  
上述の通り、第３実施形態では、ノーマルリードにおいて或るページのデータが読み出された場合、当該或るページの谷位置電圧が検出される。このため、シーケンシャルリード動作の間、コントローラ２００が谷位置電圧の値を保持できるか否かに関わらず、下位／中位／上位ページの読出しの各々に対して、その都度ＭポイントＶｔｈトラッキング動作が実行される。
【０２４５】
図２７は、第３実施形態におけるシーケンシャルリード動作のフローチャートである。図２７の例では、下位／中位／上位ページの順にノーマルリードが実行され、いずれの読出しデータもＥＣＣフェイルする場合が示される。
【０２４６】
図２７に示すように、ステップＳＴ１２１において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から下位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０２４７】
ステップＳＴ１２２において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＥＣＣフェイルのステータスを取得し、ＭポイントＶｔｈトラッキング動作を実行する。コントローラ２００は、図２３のステップＳＴ８１〜ＳＴ９１を実行し、下位ページの谷位置電圧ＶＡ’及びＶＥ’を検出する。
【０２４８】
ステップＳＴ１２３において、コントローラ２００は、検出された谷位置電圧ＶＡ’及びＶＥ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度下位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０２４９】
続いて、ステップＳＴ１２４において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から中位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０２５０】
ステップＳＴ１２５において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＥＣＣフェイルのステータスを取得し、ＭポイントＶｔｈトラッキング動作を実行する。コントローラ２００は、図１２のステップＳＴ１１〜ＳＴ２３を実行し、中位ページの谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’を検出する。
【０２５１】
ステップＳＴ１２６において、コントローラ２００は、検出された谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度中位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０２５２】
続いて、ステップＳＴ１２７において、コントローラ２００は、ノーマルリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から上位ページのデータを読出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に失敗する。
【０２５３】
ステップＳＴ１２８において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、ＥＣＣフェイルのステータスを取得し、ＭポイントＶｔｈトラッキング動作を実行する。コントローラ２００は、図２５のステップＳＴ１０１〜ＳＴ１１１を実行し、上位ページの谷位置電圧ＶＣ’及びＶＧ’を検出する。
【０２５４】
ステップＳＴ１２９において、コントローラ２００は、検出された谷位置電圧ＶＣ’及びＶＧ’に基づくシフトリードを実行し、ＮＡＮＤ型フラッシュメモリ１００から再度上位ページのデータを読み出す。そして、ＥＣＣ回路２６０は、当該読出しデータに基づいてＥＣＣを実行し、誤り訂正処理に成功する。
【０２５５】
以上により、シーケンシャルリード動作が終了する。
【０２５６】
３．３  本実施形態に係る効果  
本実施形態によれば、上記第１実施形態で説明したＶthトラッキングを、読み出しフェイルしたページ毎に行っている。すなわち、下位ページ読み出しにフェイルした場合には、当該下位ページにつきＶthトラッキングを行い、中位ページ読み出しにフェイルした場合には、当該中位ページにつきＶthトラッキングを行い、上位ページ読み出しにフェイルした場合には、当該上位ページにつきＶthトラッキングを行う。従って、推定動作が必要無く、各ページにつき最適な読み出し電圧を用いてデータを読み出すことが出来る。よって、読み出し精度が向上される。
【０２５７】
４．  第４実施形態  
次に、第４実施形態に係るメモリシステムについて説明する。第４実施形態では、第１実施形態〜第３実施形態の各々において実行される谷位置検出動作において、検出すべき谷位置と隣り合う谷位置を、当該検出すべき谷位置として誤って検出することを抑制するための誤検出抑制動作が更に実行される。以下の説明では、誤検出抑制動作が第１実施形態及び第２実施形態に係る谷位置検出動作に適用される場合について主に説明し、必要に応じて第３実施形態に係る谷位置検出動作に適用される場合についても適宜補足説明する。
【０２５８】
４．１  誤検出抑制動作の概要  
図２８及び図２９はそれぞれ、比較例及び第４実施形態に係るメモリシステムの谷位置検出動作を説明するための模式図である。図２８では、谷位置電圧ＶＢ’を検出しようとして、誤って隣の谷位置の谷位置電圧ＶＡ’及びＶＣ’が誤検出される場合が示される。図２９では、誤検出抑制動作によって、正しく谷位置電圧ＶＢ’が検出される場合が示される。また、図２８（Ａ）及び図２９（Ａ）は、”Ａ”状態及び”Ｂ”状態の閾値電圧分布が大きく右側（閾値電圧が上昇する側）にシフトした場合が示され、図２８（Ｂ）及び図２９（Ｂ）は、”Ａ”状態及び”Ｂ”状態の閾値電圧分布が大きく左側（閾値電圧が減少する側）にシフトした場合が示される。
【０２５９】
図２８（Ａ）に示すように、閾値電圧分布が大きく右側にシフトすると、谷位置検出動作におけるｍ＝０のループ処理の読出し電圧ＶＢ０が、電圧ＶＡｍｉｄよりも小さくなり得る。かかる場合、読出し電圧ＶＢ０、ＶＢ１、…は、”Ａ”状態の閾値電圧分布の左半分を探索する。そして、最終的に、“Ｅｒ”レベルと”Ａ”状態との間の谷位置における谷位置電圧ＶＡ’が谷位置電圧ＶＢ’として誤検出される。
【０２６０】
また、図２８（Ｂ）に示すように、閾値電圧分布が大きく左側（閾値電圧が減少する側）にシフトすると、読出し電圧ＶＢ０が、電圧ＶＢｍｉｄよりも大きくなり得る。かかる場合、読出し電圧ＶＢ０、ＶＢ１、ＶＢ２、…は、”Ｂ”状態の閾値電圧分布の右半分を探索する。そして、最終的に、”Ｂ”状態と”Ｃ”状態との間の谷位置における谷位置電圧ＶＣ’が谷位置電圧ＶＢ’として誤検出される。
【０２６１】
このように、ＶＢｍ＜ＶＡｍｉｄ又はＶＢｍ＞ＶＢｍｉｄとなる場合、谷位置電圧ＶＢ’の誤検出が発生し得る。つまり、閾値電圧分布の変動に依らず、電圧ＶＡｍｉｄより大きく、電圧ＶＢｍｉｄより小さい範囲に読出し電圧ＶＢｍを設定することができれば（ＶＡｍｉｄ＜ＶＢｍ＜ＶＢｍｉｄ）、誤検出を抑制することができる。
【０２６２】
このため、図２９に示すように、誤検出抑制動作では、ＶＢｍ＜ＶＡｍｉｄ又はＶＢｍ＞ＶＢｍｉｄとなる場合、ＶＡｍｉｄ＜ＶＢ（ｍ＋１）＜ＶＢｍｉｄとなるように、読出し電圧ＶＢ（ｍ＋１）をシフトさせる。
【０２６３】
具体的には、例えば、図２９（Ａ）に示すように、ＶＢ０＜ＶＡｍｉｄの場合、読出し電圧ＶＢ１を、ＶＢ０よりも閾値電圧の増加する側にシフトさせる。これにより、以降のループ処理において、ＶＡｍｉｄ＜ＶＢ（ｍ＋１）＜ＶＢｍｉｄの範囲で谷位置検出動作を行うことができ、谷位置電圧ＶＢ’を正しく検出できる。
【０２６４】
また、例えば、図２９（Ｂ）に示すように、ＶＢｍ＞ＶＢｍｉｄの場合、読出し電圧ＶＢ１を、ＶＢ０よりも閾値電圧の減少する側にシフトさせる。これにより、以降のループ処理において、ＶＡｍｉｄ＜ＶＢ（ｍ＋１）＜ＶＢｍｉｄの範囲で谷位置検出動作を行うことができ、谷位置電圧ＶＢ’を正しく検出できる。
【０２６５】
図３０は、第４実施形態の誤検出抑制動作を含む谷位置検出動作を説明するためのフローチャートである。図３０では、図１２において谷位置検出動作として示されたステップＳＴ１９−１、ＳＴ２０−１、及びＳＴ２１−１に加えて、誤検出抑制動作としてステップＳＴ２４−１、ＳＴ２５−１、及びＳＴ２６−１が更に実行される例が示される。
【０２６６】
図３０に示すように、ｍ回目のループ処理のステップＳＴ１９−１においてビットカウントΔＢｍが算出された後、ステップＳＴ２４−１において、コントローラ２００は、分離データＢＲｓｍがデータ“１”となるメモリセル数Ｂｍを算出する。上述の通り、メモリセル数Ｂｍは、閾値電圧が読出し電圧ＶＢｍ未満のメモリセル数に対応する。
【０２６７】
ステップＳＴ２５−１において、コントローラ２００は、メモリセル数Ｂｍと閾値Ｂｍｉｎ及びＢｍａｘとの大小関係を比較する。コントローラ２００は、メモリセル数Ｂｍが閾値Ｂｍｉｎ以下、又は閾値Ｂｍａｘ以上である（Ｂｍ≦Ｂｍｉｎ又はＢｍ≧Ｂｍａｘ）と判定された場合（ステップＳＴ２５−１；ｎｏ）、誤検出が発生する可能性があるとみなし、ステップＳＴ２６−１に進む。また、コントローラ２００は、メモリセル数Ｂｍが閾値Ｂｍｉｎより大きく閾値Ｂｍａｘより小さい（Ｂｍｉｎ＜Ｂｍ＜Ｂｍａｘ）と判定された場合（ステップＳＴ２５−１；ｙｅｓ）、誤検出が発生する可能性は少ないとみなし、ステップＳＴ２０−１に進む。閾値Ｂｍｉｎ及びＢｍａｘはそれぞれ、例えば、誤検出が発生しないメモリセル数Ｂｍの下限値及び上限値である。閾値Ｂｍｉｎ及びＢｍａｘの詳細については後述する。
【０２６８】
ステップＳＴ２６−１において、コントローラ２００は、（ｍ＋１）回目のループ処理の際の読出し電圧ＶＢ（ｍ＋１）に対応するシフト量を設定する。具体的には、コントローラ２００は、１レベル分の閾値電圧の分布範囲の半分に相当するシフト量を設定する。そして、当該シフト量が設定された後、ステップＳＴ２２に進む。なお、本例におけるシフト量は一例に過ぎず、誤検知対策に用いるシフト量は任意に設定可能である。
【０２６９】
以上で、誤検出抑制動作が終了する。
【０２７０】
なお、上述の誤検出抑制動作は、谷位置電圧ＶＢ’の検出動作に適用される例について説明したが、その他の谷位置電圧の検出動作の際にも、同様に適用される。具体的には、例えば、中位ページのその他の谷位置電圧ＶＤ’及びＶＦ’についてはそれぞれ、ステップＳＴ２４−１において、分離データＤＲｓｍ及びＦＲｓｍがデータ“１”となるメモリセル数Ｄｍ及びＦｍが算出される。そして、ステップＳＴ２５−１において、閾値Ｄｍｉｎ、Ｄｍａｘ、Ｆｍｉｎ、及びＦｍａｘを用いて、Ｄｍｉｎ＜Ｄｍ＜Ｄｍａｘであるか否か、及びＦｍｉｎ＜Ｆｍ＜Ｆｍａｘであるか否か、が判定される。
【０２７１】
また、第４実施形態が第３実施形態に適用される場合、上述の誤検出抑制動作は、下位ページ及び上位ページの谷位置検出動作にも適用可能である。具体的には、下位ページの谷位置電圧ＶＡ’及びＶＥ’についてはそれぞれ、ステップＳＴ２４−１において、分離データＡＲｓｍ及びＡＲｓｍがデータ“１”となるメモリセル数Ａｍ及びＥｍが算出される。そして、ステップＳＴ２５−１において、閾値Ａｍｉｎ、Ａｍａｘ、Ｅｍｉｎ、及びＥｍａｘを用いて、Ａｍｉｎ＜Ａｍ＜Ａｍａｘであるか否か、及びＥｍｉｎ＜Ｅｍ＜Ｅｍａｘであるか否か、が判定される。上位ページの谷位置電圧ＶＣ’及びＶＧ’についてはそれぞれ、ステップＳＴ２４−１において、分離データＣＲｓｍ及びＧＲｓｍがデータ“１”となるメモリセル数Ｃｍ及びＧｍが算出される。そして、ステップＳＴ２５−１において、閾値Ｃｍｉｎ、Ｃｍａｘ、Ｇｍｉｎ、及びＧｍａｘを用いて、Ｃｍｉｎ＜Ｃｍ＜Ｃｍａｘであるか否か、及びＧｍｉｎ＜Ｇｍ＜Ｇｍａｘであるか否か、が判定される。
【０２７２】
４．２  中位ページの谷位置検出動作における閾値の設定について  
次に、第１実施形態〜第３実施形態において共通して実行される動作である、中位ページの谷位置検出動作において設定される閾値の詳細について説明する。図３１（Ａ）では、閾値電圧分布のうち、中位ページの谷位置検出動作において誤検出が発生しない範囲が示される。図３１（Ｂ）では、図３１（Ａ）の閾値電圧分布において生成される分離データと、当該分離データがデータ“１”となるメモリセル数との関係が示される。
【０２７３】
上述の通り、閾値電圧分布の変動に依らず、電圧ＶＡｍｉｄから電圧ＶＢｍｉｄまでの間に読出し電圧ＢＲｍが設定される場合、谷位置電圧ＶＢ’は正しく検出される。また、図３１（Ａ）に示すように、他の谷位置についても同様に、”Ｃ”状態の中央値の電圧ＶＣｍｉｄから”Ｄ”状態の中央値の電圧ＶＤｍｉｄまでの間に読出し電圧ＤＲｍが設定される場合、谷位置電圧ＶＤ’が正しく検出される。また、”Ｅ”状態の中央値の電圧ＶＥｍｉｄから、”Ｆ”状態の中央値の電圧ＶＦｍｉｄまでの間に読出し電圧ＦＲｍが設定される場合、谷位置電圧ＶＦ’が正しく検出される。
【０２７４】
一方、図３１（Ｂ）に示すように、分離データＢＲｓｍがデータ“１”となるメモリセル数は、電圧Ｖｔ１まで単調増加する。このため、電圧ＶＡｍｉｄにおいて分離データＢＲｓｍがデータ“１”となるメモリセル数ＮＡｍｉｄと、電圧ＶＢｍｉｄにおいて分離データＢＲｓｍがデータ“１”となるメモリセル数ＮＢｍｉｄとの大小関係は、電圧ＶＡｍｉｄと電圧ＶＢｍｉｄとの大小関係と１対１に対応する。つまり、メモリセル数ＢｍがＮＡｍｉｄ＜Ｂｍ＜ＮＢｍｉｄを満たす場合、読出し電圧ＶＢｍは、ＶＡｍｉｄ＜ＶＢｍ＜ＶＢｍｉｄとなる。したがって、Ｂｍｉｎ＝ＮＡｍｉｄ、及びＢｍａｘ＝ＮＢｍｉｄとなるように閾値Ｂｍｉｎ及びＢｍａｘを設定することにより、谷位置電圧ＶＢ’が誤検出されるか否かを判定することができる。
【０２７５】
また、分離データＤＲｓｍがデータ“１”となるメモリセル数は、電圧Ｖｔ１から電圧Ｖｔ２まで単調増加する。このため、電圧ＶＣｍｉｄにおいて分離データＤＲｓｍがデータ“１”となるメモリセル数ＮＣｍｉｄと、電圧ＶＤｍｉｄにおいて分離データＤＲｓｍがデータ“１”となるメモリセル数ＮＤｍｉｄとの大小関係は、電圧ＶＣｍｉｄと電圧ＶＤｍｉｄとの大小関係と１対１に対応する。つまり、メモリセル数ＤｍがＮＣｍｉｄ＜Ｄｍ＜ＮＤｍｉｄを満たす場合、読出し電圧ＶＤｍは、ＶＣｍｉｄ＜ＶＤｍ＜ＶＤｍｉｄとなる。したがって、Ｄｍｉｎ＝ＮＣｍｉｄ、及びＤｍａｘ＝ＮＤｍｉｄとなるように閾値Ｄｍｉｎ及びＤｍａｘを設定することにより、谷位置電圧ＶＤ’が誤検出されるか否かを判定することができる。
【０２７６】
また、分離データＦＲｓｍがデータ“１”となるメモリセル数は、電圧Ｖｔ２から単調増加する。このため、電圧ＶＥｍｉｄにおいて分離データＦＲｓｍがデータ“１”となるメモリセル数ＮＥｍｉｄと、電圧ＶＦｍｉｄにおいて分離データＦＲｓｍがデータ“１”となるメモリセル数ＮＦｍｉｄとの大小関係は、電圧ＶＥｍｉｄと電圧ＶＦｍｉｄとの大小関係と１対１に対応する。つまり、メモリセル数ＦｍがＮＥｍｉｄ＜Ｆｍ＜ＮＦｍｉｄを満たす場合、読出し電圧ＶＦｍは、ＶＥｍｉｄ＜ＶＦｍ＜ＶＦｍｉｄとなる。したがって、Ｆｍｉｎ＝ＮＥｍｉｄ、及びＦｍａｘ＝ＮＦｍｉｄとなるように閾値Ｆｍｉｎ及びＦｍａｘを設定することにより、谷位置電圧ＶＦ’が誤検出されるか否かを判定することができる。
【０２７７】
なお、データ書込みの際、閾値電圧が全てのレベルに均等に分布するようにデータが書込まれる（ランダマイズされる）場合、１つのレベルに分布するメモリセル数（Ｎ）は、ほぼ均一になることが期待される。かかる場合、当該メモリセル数Ｎを基準とすると、メモリセル数ＮＣｍｉｄ及びＮＥｍｉｄは“０．５Ｎ”と表せ、メモリセル数ＮＡｍｉｄ、ＮＤｍｉｄ、及びＮＦｍｉｄは“１．５Ｎ”と表せ、メモリセル数ＮＢｍｉｄは“２．５Ｎ”と表せる。
【０２７８】
つまり、図３２に示すように、閾値Ｂｍｉｎ及びＢｍａｘはそれぞれ、メモリセル数Ｎに対して“１．５Ｎ”及び“２．５Ｎ”となる値が設定されることが望ましい。また、閾値Ｄｍｉｎ及びＤｍａｘはそれぞれ、メモリセル数Ｎに対して“０．５Ｎ”及び“１．５Ｎ”となる値が設定されることが望ましい。また、閾値Ｆｍｉｎ及びＦｍａｘはそれぞれ、メモリセル数Ｎに対して“０．５Ｎ”及び“１．５Ｎ”となる値が設定されることが望ましい。
【０２７９】
４．３  下位ページの谷位置検出動作における閾値の設定について  
次に、第３実施形態において特に実行される動作である、下位ページの谷位置検出動作において設定される閾値の詳細について説明する。下位ページにおける閾値は、上述の中位ページにおける閾値と同様に設定可能である。
【０２８０】
図３３（Ａ）では、閾値電圧分布のうち、下位ページの谷位置検出動作において誤検出が発生しない範囲が示される。図３３（Ｂ）では、図３３（Ａ）の閾値電圧分布において生成される分離データと、当該分離データがデータ“１”となるメモリセル数との関係が示される。
【０２８１】
図３３（Ａ）に示すように、下位ページの谷位置検出動作では、“Ｅｒ”レベルの中央値の電圧ＶＥｒｍｉｄから電圧ＶＡｍｉｄまでの間に読出し電圧ＶＡｍが設定される場合、谷位置電圧ＶＡ’は正しく検出される。また、電圧ＶＤｍｉｄから電圧ＶＥｍｉｄまでの間に読出し電圧ＶＥｍが設定される場合、谷位置電圧ＶＥ’が正しく検出される。
【０２８２】
一方、図３３（Ｂ）に示すように、分離データＡＲｓｍがデータ“１”となるメモリセル数は、電圧０から電圧Ｖｔ１まで単調増加する。このため、電圧ＶＥｒｍｉｄにおいて分離データＡＲｓｍがデータ“１”となるメモリセル数ＮＥｒｍｉｄと、電圧ＶＡｍｉｄにおいて分離データＡＲｓｍがデータ“１”となるメモリセル数ＮＡｍｉｄとの大小関係は、電圧ＶＥｒｍｉｄと電圧ＶＡｍｉｄとの大小関係と１対１に対応する。つまり、メモリセル数ＡｍがＮＥｒｍｉｄ＜Ａｍ＜ＮＡｍｉｄを満たす場合、読出し電圧ＶＡｍは、ＶＥｒｍｉｄ＜ＶＡｍ＜ＶＡｍｉｄとなる。したがって、Ａｍｉｎ＝ＮＥｒｍｉｄ、及びＡｍａｘ＝ＮＡｍｉｄとなるように閾値Ａｍｉｎ及びＡｍａｘを設定することにより、谷位置電圧ＶＡ’が誤検出されるか否かを判定することができる。
【０２８３】
また、分離データＥＲｓｍがデータ“１”となるメモリセル数は、電圧Ｖｔ１から単調増加する。このため、電圧ＶＤｍｉｄにおいて分離データＥＲｓｍがデータ“１”となるメモリセル数ＮＤｍｉｄと、電圧ＶＥｍｉｄにおいて分離データＥＲｓｍがデータ“１”となるメモリセル数ＮＥｍｉｄとの大小関係は、電圧ＶＤｍｉｄと電圧ＶＥｍｉｄとの大小関係と１対１に対応する。つまり、メモリセル数ＥｍがＮＤｍｉｄ＜Ｅｍ＜ＮＥｍｉｄを満たす場合、読出し電圧ＶＥｍは、ＶＤｍｉｄ＜ＶＥｍ＜ＶＥｍｉｄとなる。したがって、Ｅｍｉｎ＝ＮＤｍｉｄ、及びＥｍａｘ＝ＮＥｍｉｄとなるように閾値Ｅｍｉｎ及びＥｍａｘを設定することにより、谷位置電圧ＶＥ’が誤検出されるか否かを判定することができる。
【０２８４】
なお、ＮＡＮＤ型フラッシュメモリ１００へのデータ書込みがランダマイズされる場合、１つのレベルに分布すると考えられるメモリセル数Ｎを基準とすると、メモリセル数ＮＥｒｍｉｄは“０．５Ｎ”と表せ、メモリセル数ＮＡｍｉｄ、及びＮＤｍｉｄは“１．５Ｎ”と表せ、メモリセル数ＮＥｍｉｄは“２．５Ｎ”と表せる。
【０２８５】
つまり、図３４に示すように、閾値Ａｍｉｎ及びＡｍａｘはそれぞれ、メモリセル数Ｎに対して“０．５Ｎ”及び“１．５Ｎ”となる値が設定されることが望ましい。また、閾値Ｅｍｉｎ及びＥｍａｘはそれぞれ、メモリセル数Ｎに対して“１．５Ｎ”及び“２．５Ｎ”となる値が設定されることが望ましい。
【０２８６】
４．４  上位ページの谷位置検出動作における閾値の設定について  
次に、第３実施形態において特に実行される動作である、上位ページの谷位置検出動作において設定される閾値の詳細について説明する。上位ページにおける閾値は、上述の中位及び下位ページにおける閾値と同様に設定可能である。
【０２８７】
図３５（Ａ）では、閾値電圧分布のうち、上位ページの谷位置検出動作において誤検出が発生しない範囲が示される。図３５（Ｂ）では、図３５（Ａ）の閾値電圧分布において生成される分離データと、当該分離データがデータ“１”となるメモリセル数との関係が示される。
【０２８８】
図３５（Ａ）に示すように、上位ページの谷位置検出動作では、電圧ＶＢｍｉｄから電圧ＶＣｍｉｄまでの間に読出し電圧ＶＣｍが設定される場合、谷位置電圧ＶＣ’は正しく検出される。また、電圧ＶＦｍｉｄから”Ｇ”状態の中央値の電圧ＶＧｍｉｄまでの間に読出し電圧ＶＧｍが設定される場合、谷位置電圧ＶＧ’が正しく検出される。
【０２８９】
一方、図３５（Ｂ）に示すように、分離データＣＲｓｍがデータ“１”となるメモリセル数は、電圧０から電圧Ｖｔ２まで単調増加する。このため、電圧ＶＢｍｉｄにおいて分離データＣＲｓｍがデータ“１”となるメモリセル数ＮＢｍｉｄと、電圧ＶＣｍｉｄにおいて分離データＣＲｓｍがデータ“１”となるメモリセル数ＮＣｍｉｄとの大小関係は、電圧ＶＢｍｉｄと電圧ＶＣｍｉｄとの大小関係と１対１に対応する。つまり、メモリセル数ＣｍがＮＢｍｉｄ＜Ｃｍ＜ＮＣｍｉｄを満たす場合、読出し電圧ＶＣｍは、ＶＢｍｉｄ＜ＶＣｍ＜ＶＣｍｉｄとなる。したがって、Ｃｍｉｎ＝ＮＢｍｉｄ、及びＣｍａｘ＝ＮＣｍｉｄとなるように閾値Ｃｍｉｎ及びＣｍａｘを設定することにより、谷位置電圧ＶＣ’が誤検出されるか否かを判定することができる。
【０２９０】
また、分離データＧＲｓｍがデータ“１”となるメモリセル数は、電圧Ｖｔ２から単調増加する。このため、電圧ＶＦｍｉｄにおいて分離データＧＲｓｍがデータ“１”となるメモリセル数ＮＦｍｉｄと、電圧ＶＧｍｉｄにおいて分離データＧＲｓｍがデータ“１”となるメモリセル数ＮＧｍｉｄとの大小関係は、電圧ＶＦｍｉｄと電圧ＶＧｍｉｄとの大小関係と１対１に対応する。つまり、メモリセル数ＧｍがＮＦｍｉｄ＜Ｇｍ＜ＮＧｍｉｄを満たす場合、読出し電圧ＶＧｍは、ＶＦｍｉｄ＜ＶＧｍ＜ＶＧｍｉｄとなる。したがって、Ｇｍｉｎ＝ＮＦｍｉｄ、及びＧｍａｘ＝ＮＧｍｉｄとなるように閾値Ｇｍｉｎ及びＧｍａｘを設定することにより、谷位置電圧ＶＧ’が誤検出されるか否かを判定することができる。
【０２９１】
なお、ＮＡＮＤ型フラッシュメモリ１００へのデータ書込みがランダマイズされる場合、１つのレベルに分布すると考えられるメモリセル数Ｎを基準とすると、メモリセル数ＮＦｍｉｄは“１．５Ｎ”と表せ、メモリセル数ＮＢｍｉｄ、及びＮＧｍｉｄは“２．５Ｎ”と表せ、メモリセル数ＮＣｍｉｄは“３．５Ｎ”と表せる。
【０２９２】
つまり、図３６に示すように、閾値Ｃｍｉｎ及びＣｍａｘはそれぞれ、メモリセル数Ｎに対して“２．５Ｎ”及び“３．５Ｎ”となる値が設定されることが望ましい。また、閾値Ｇｍｉｎ及びＧｍａｘはそれぞれ、メモリセル数Ｎに対して“１．５Ｎ”及び“２．５Ｎ”となる値が設定されることが望ましい。
【０２９３】
４．５  本実施形態に係る効果について  
上記のように、本実施形態によれば、閾値分布が大幅にシフトした場合であっても、適正な範囲内でのトラッキングが可能となり、読み出し電圧の誤検知を抑制出来る。
【０２９４】
５．  第５実施形態  
次に、第５実施形態に係るメモリシステムについて説明する。第５実施形態では、Ｖｔｈトラッキングによって検出及び推定されたワード線ＷＬｎに接続されたメモリセルトランジスタＭＴの谷位置電圧に対して、隣り合うワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴの閾値変動量からの影響（これをセル間干渉効果と呼ぶ）を考慮した補正値を適用する。なお、ｎは選択ワード線の番号であり、本例の場合、０〜６のいずれかとなる。なぜなら、本例の場合、１つのＮＡＮＤストリングに含まれるメモリセルトランジスタ数は８個であり、最もドレイン側に位置するワード線ＷＬ７（ｎ＝７）に接続されたメモリセルトランジスタＭＴに関しては、上記セル間干渉効果を考慮する必要が無いからである（言い換えれば、本例に係るワード線ＷＬ７については、更にドレイン側で隣り合うＷＬ（ｎ＋１）が存在しない）。
【０２９５】
以下では、図３７に示すように、隣り合うワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴを３つのグループＧｒ１〜Ｇｒ３に分ける。そして、グループＧｒ１に“Ｅｒ”レベル及び“Ａ”レベルが属し、これらではセル間干渉効果がほぼ無いものと考える。またグループＧｒ２に“Ｂ”〜“Ｅ”レベルが属し、これらは中程度の影響があるものとする。そしてグループＧｒ３に“Ｆ”レベル及び“Ｇ”レベルが属し、これらのセル間干渉効果が最大であるものと扱う。
【０２９６】
５．１  フローチャートについて  
次に、第５実施形態に係るＶｔｈトラッキング動作を含む動作について、図３８に示すフローチャートを用いて説明する。
【０２９７】
図３８に示すように、ステップＳＴ１３１において、コントローラ２００は、既定の読出し電圧ＶＣＧＲＶをワード線ＷＬｎに接続されたメモリセルトランジスタＭＴに対して適用したノーマルリードコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０２９８】
ステップＳＴ１３２において、ＮＡＮＤ型フラッシュメモリ１００は、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴに対してノーマルリードを実行し、読出しデータをコントローラ２００に送信する。
【０２９９】
ステップＳＴ１３３において、ＥＣＣ回路２６０は、ノーマルリードの読出しデータに基づいてＥＣＣを実行する。コントローラ２００は、ノーマルリードの読出しデータがＥＣＣをパスした場合（ステップＳＴ１３３；パス）、ステップＳＴ１４０に進み、フェイルした場合、（ステップＳＴ１３３；フェイル）、ステップＳＴ１３４に進む。
【０３００】
ステップＳＴ１３４において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、シフトリードを伴うＶｔｈトラッキングを実行し、谷位置電圧ＶＣＧＲＶ’を検出する。具体的には、例えば、中位ページのデータが読出し対象の場合、谷位置電圧ＶＢ’、ＶＤ’、及びＶＦ’が検出される。なお、シフトリードを伴うＶｔｈトラッキングは、例えば、第１実施形態〜第４実施形態において説明したＭポイントＶｔｈトラッキングを含むが、これに限られない。
【０３０１】
ステップＳＴ１３５において、コントローラ２００は、ステップＳＴ１３４において検出された谷位置の谷位置電圧ＶＣＧＲＶ’を補正するためのコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０３０２】
ステップＳＴ１３６において、コントローラ２００は、ワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴに対する事前読出しと、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴに対する本読出しと、を含む動作を指示するコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。なお、当該本読出し動作では、ステップＳＴ１３４において検出された谷位置に対して、ステップＳＴ１３５の補正がされた谷位置に基づく読出しが実行される。
【０３０３】
ステップＳＴ１３７において、ＮＡＮＤ型フラッシュメモリ１００は、ワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴに対して事前読出しを実行し、例えば、読出しデータをラッチ回路に保持する。
【０３０４】
ステップＳＴ１３８において、ＮＡＮＤ型フラッシュメモリ１００は、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴに対して本読出しを実行する。本読出しによる読出しデータは、ステップＳＴ１３７において読み出された事前読出しデータに基づいて決定される。ＮＡＮＤ型フラッシュメモリ１００は、本読出しデータをコントローラ２００に送信する。
【０３０５】
ステップＳＴ１３９において、ＥＣＣ回路２６０は、本読出しデータに基づいてＥＣＣを実行する。コントローラ２００は、本読出しデータがＥＣＣをパスした場合（ステップＳＴ１３９；パス）、ステップＳＴ１４０に進み、フェイルした場合、（ステップＳＴ１３９；フェイル）、ステップＳＴ１４１に進む。
【０３０６】
ステップＳＴ１４０において、コントローラ２００は、ＥＣＣパスのステータスを取得し、動作を終了する。ステップＳＴ１４１において、コントローラ２００は、ＥＣＣ結果に基づいてデータを正しく訂正できないと判定し、動作を終了する。
【０３０７】
以上で、Ｖｔｈトラッキングを含む動作が終了する。
【０３０８】
５．２  コマンドシーケンスについて  
次に、第５実施形態の事前読出し及び本読出しを含む動作について、図３９に示すコマンドシーケンスを用いて説明する。図３９は、図３８において示されたステップＳＴ１３５〜ＳＴ１３８に相当する。
【０３０９】
図３９に示すように、コントローラ２００は、まずプリフィックスコマンド“ｘｘｈ”を発行する。コマンド“ｘｘｈ”は、コントローラ２００がＮＡＮＤ型フラッシュメモリ１００に対して、以後に実行される本読出しに対応するシフトリードのシフト量を設定するためのコマンドである。引き続きコントローラ２００は、例えば１サイクルにわたってアドレスを発行する。その後、コントローラ２００は、例えば４サイクルにわたって電圧ＶＣＧＲＶｄｅｆのシフト量に対応する値ΔＤＡＣ１〜ΔＤＡＣ４を発行する。ＤＡＣ（D/A converter）値は、例えば、コントローラ２００がＮＡＮＤ型フラッシュメモリ１００に読出し電圧ＶＣＧＲＶを指定する際の指示値である。例えば、値ΔＤＡＣ１〜ΔＤＡＣ４の各々は、シフトリードにおいて選択ワード線ＷＬに印加されるレベルの読出し電圧ＶＣＧＲＶｄｅｆからのシフト量Δに対応する。
【０３１０】
ＮＡＮＤ型フラッシュメモリ１００は、シフト量Δを設定する間、信号ＲＢｎを“Ｈ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がレディ状態であることをコントローラ２００に知らせる。
【０３１１】
なお、第５実施形態では、シフト量Δは、例えば、谷位置電圧ＶＣＧＲＶ’及び補正値ΔＶＣＧＲＶを用いて、以下の式（９）に従って決定される。
【０３１２】
Δ＝（ＶＣＧＲＶ’−ＶＣＧＲＶｄｅｆ）＋ΔＶＣＧＲＶ      …（９）
つまり、以後の本読出しの際にワード線ＷＬｎに印加される補正後の谷位置電圧ＶＣＧＲＶ”は、図３８におけるステップＳＴ１３４において検出された谷位置電圧ＶＣＧＲＶ’と、補正値ΔＶＣＧＲＶとを用いて、以下の式（１０）で表わされる。
【０３１３】
ＶＣＧＲＶ”＝ＶＣＧＲＶｄｅｆ＋Δ＝ＶＣＧＲＶ’＋ΔＶＣＧＲＶ      …（１０）
なお、補正値ΔＶＣＧＲＶは、例えば、予め定められた値であり、例えば、図４０に示すようなルックアップテーブルとしてコントローラ２００内のメモリ２２０保持される。図４０に示すように、補正値ΔＶＣＧＲＶは、閾値電圧分布の状態に応じた値が設定される。具体的には、“Ａ”状態、“Ｂ”状態、“Ｃ”状態、“Ｄ”状態、“Ｅ”状態、“Ｆ”状態、及び“Ｇ”状態のメモリセルトランジスタＭＴに対してそれぞれ、補正値ΔＶＡ、ΔＶＢ、ΔＶＣ、ΔＶＤ、ΔＶＥ、ΔＶＦ、及びΔＶＧが適用される。なお、補正値ΔＶＡ〜ΔＶＧは、互いに独立な値が設定可能である。すなわち、補正値ΔＶＡ〜ΔＶＧは、互いに等しくてもよく、異なっていてもよい。また、補正値ΔＶＡ〜ΔＶＧは、“０”が設定されてもよい。すなわち、補正後の谷位置電圧ＶＣＧＲＶ”は、補正前の谷位置電圧ＶＣＧＲＶ’と等しくてもよく、異なっていてもよい。
【０３１４】
図４０には、ＶＣＧＲＶ”、ＶＣＧＲＶ’、及びΔＶＣＧＲＶの関係も合わせて示している。図示するように、書き込み直後の閾値分布では、分布間の谷位置は、ＶＡ〜ＶＧである。しかし、時間の経過と共に、閾値分布は低電圧側にシフトする傾向がある。その結果、分布間の谷位置は、ＶＡ〜ＶＧからＶＡ’〜ＶＧ ’にシフトする。これが上記ＶＣＧＲＶ’である。これに加えて更にワード線ＷＬ（ｎ＋１）からのセル間干渉効果を考慮した谷位置がＶＡ”〜ＶＧ”であり、これが上記ＶＣＧＲＶ”である。そして、ＶＡ’〜ＶＧ ’とＶＡ”〜ＶＧ”との差分が、補正値ΔＶＡ〜ＶＧである。セル間干渉効果を考慮しないＶthトラッキングによって見つかる谷位置は、上記ＶＣＧＲＶ’である。そこで本実施形態では、このＶＣＧＲＶ’に補正値ΔＶＣＧＲＶを適用することで上記ＶＣＧＲＶ”を得て、これを用いて再度読み出しを行い、セル間干渉効果の影響を低減しようとするものである。
【０３１５】
図３９に戻って、続くコマンドシーケンスについて説明する。コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００がレディ状態になると、コマンド“ｙｙｈ”を発行する。コマンド“ｙｙｈ”は、読出し対象であるワード線ＷＬｎに隣り合うワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴへの事前読出しと、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴへの本読出しと、を実行する旨を宣言するためのコマンドである。
【０３１６】
続けて、コントローラ２００は、コマンド“ｚｚｈ”を発行する。コマンド“ｚｚｈ”は、変数であり、例えば“ｚｚｈ”＝“０１ｈ”の場合には下位ページ読出しを命令し、“ｚｚｈ”＝“０２ｈ”の場合には中位ページ読出しを命令し、“ｚｚｈ”＝“０３ｈ”の場合には上位ページ読出しを命令する。
【０３１７】
その後は、コントローラ２００は、第１読出しコマンド“００ｈ”を発行し、引き続き例えば５サイクルにわたってアドレス（カラムアドレス、ブロックアドレス、ページアドレスを含む）を発行する。その後、コントローラ２００は、第２読出しコマンド“３０ｈ”を発行する。
【０３１８】
コマンド“３０ｈ”がコマンドレジスタ１６０に格納されると、シーケンサ１７０は、ロウデコーダ１２０、及びカラム制御回路１４０等を制御して、読出し動作を開始する。ＮＡＮＤ型フラッシュメモリ１００は、信号ＲＢｎを“Ｌ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がビジー状態であることをコントローラ２００に知らせる。まず、ＮＡＮＤ型フラッシュメモリ１００は、事前読出しにおいて、ワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴから、セル間干渉効果の影響を考慮した読み出しレベル（１レベルであっても良いし、２レベル以上であっても良い）を用いてデータを読出し、ラッチ回路に保持させる。次に、ＮＡＮＤ型フラッシュメモリ１００は、本読出しにおいて、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴから１ページ分のデータを事前読出しの結果に基づいて読出し、ラッチ回路に保持させる。ＮＡＮＤ型フラッシュメモリ１００は、信号ＲＢｎを“Ｈ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がレディ状態であることをコントローラ２００に知らせる。
【０３１９】
コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００がレディ状態になると、コマンド“０５ｈ”を発行する。コマンド“０５ｈ”は、ＮＡＮＤ型フラッシュメモリ１００において読み出しデータを保持するキャッシュメモリ等からのデータの読み出しの実行を宣言するコマンドであり、本例では、上記本読み出し結果を保持するラッチ回路からの読み出しの命令を宣言するものである。引き続きコントローラ２００は、例えば５サイクルにわたってアドレスを発行する。このアドレスは５サイクルに限らず、例えばカラムアドレスのみを指定するための２サイクルであっても良い。その後、コントローラ２００はコマンド“Ｅ０ｈ”を発行する。コマンド“Ｅ０ｈ”は、上記アドレスによって指定されるラッチ回路からのデータ出力をＮＡＮＤ型フラッシュメモリ１００に命令するコマンドである。そしてコントローラ２００は、信号ＲＥｎを繰り返しアサートする。信号ＲＥｎがトグルされるたびに、ラッチ回路に保持された本読出しのデータがコントローラ２００へ送信される。
【０３２０】
５．３  タイミングチャートについて  
次に、第５実施形態の事前読出し及び本読出しを含む動作について、図４１に示すタイミングチャートを用いて説明する。図４１は、図３８において示されたステップＳＴ１３７及びＳＴ１３８に相当する。
【０３２１】
図４１に示すように、時刻Ｔ２１〜Ｔ２３までの期間は事前読出し期間を含み、時刻Ｔ２４〜Ｔ３３までの期間は本読出し期間を含む。
【０３２２】
まず、シーケンサ１７０は、事前読出しを行う。ロウデコーダ１２０は、ワード線ＷＬ（ｎ＋１）に対して、時刻Ｔ２１において電圧Ｖｐｒｅ１を印加し、時刻Ｔ２２において電圧Ｖｐｒｅ２を印加する。また、ロウデコーダ１２０は、ワード線ＷＬｎに対して、時刻Ｔ２１からＴ２３の間、電圧ＶＲＥＡＤを印加する。この結果、選択ストリングユニットＳＵにおいてワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴのデータがいずれのグループに属するかが事前読出し結果として確定する。シーケンサ１７０は、当該事前読出し結果をラッチ回路に保持させる。
【０３２３】
続いて、ロウデコーダ１２０は、読出し動作ＢＲの間（時刻Ｔ２４からＴ２７の間）、ワード線ＷＬｎに対して電圧ＶＢ”＝ＶＢ’＋ΔＶＢを印加する。ロウデコーダ１２０は、ワード線ＷＬ（ｎ＋１）に対して、時刻Ｔ２４から電圧ＶＲＥＡＤを印加し、時刻Ｔ２５から電圧ＶＲＥＡＤＬＡ１を印加し、時刻Ｔ２６から電圧ＶＲＥＡＤＬＡ２を印加する。電圧ＶＲＥＡＤ、ＶＲＥＡＤＬＡ１、及びＶＲＥＡＤＬＡ２は、例えば、ＶＲＥＡＤ＜ＶＲＥＡＤＬＡ１＜ＶＲＥＡＤＬＡ２である。その他の非選択ワード線ＷＬには、電圧ＶＲＥＡＤが印加される。カラム制御回路１４０は、事前読出し結果がグループＧｒ１であったカラム（ビット線ＢＬ）については、時刻Ｔ２４から時刻Ｔ２５の間で信号ＳＴＢがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループＧｒ２であったカラムについては、時刻Ｔ２５から時刻Ｔ２６の間で信号ＳＴＢがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループＧｒ３であったカラムについては、時刻Ｔ２６から時刻Ｔ２７の間で信号ＳＴＢがアサートされるタイミングで読み出しデータを確定させる。
【０３２４】
続いて、ロウデコーダ１２０は、読出し動作ＤＲの間（時刻Ｔ２７からＴ３０の間）、ワード線ＷＬｎに対して電圧ＶＤ”＝ＶＤ’＋ΔＶＤを印加する。ロウデコーダ１２０は、ワード線ＷＬ（ｎ＋１）に対して、時刻Ｔ２７から電圧ＶＲＥＡＤを印加し、時刻Ｔ２８から電圧ＶＲＥＡＤＬＡ１を印加し、時刻Ｔ２９から電圧ＶＲＥＡＤＬＡ２を印加する。その他の非選択ワード線ＷＬには、電圧ＶＲＥＡＤが印加される。カラム制御回路１４０は、事前読出し結果がグループＧｒ１であったカラムについては、時刻Ｔ２７から時刻Ｔ２８の間で信号ＳＴＢがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループＧｒ２であったカラムについては、時刻Ｔ２８から時刻Ｔ２９の間で信号ＳＴＢがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループＧｒ３であったカラムについては、時刻Ｔ２９から時刻Ｔ３０の間で信号ＳＴＢがアサートされるタイミングで読み出しデータを確定させる。
【０３２５】
続いて、ロウデコーダ１２０は、読出し動作ＦＲの間（時刻Ｔ３０からＴ３３の間）、ワード線ＷＬｎに対して電圧ＶＦ”＝ＶＦ’＋ΔＶＦを印加する。ロウデコーダ１２０は、ワード線ＷＬ（ｎ＋１）に対して、時刻Ｔ３０から電圧ＶＲＥＡＤを印加し、時刻Ｔ３１から電圧ＶＲＥＡＤＬＡ１を印加し、時刻Ｔ３２から電圧ＶＲＥＡＤＬＡ２を印加する。その他の非選択ワード線ＷＬには、電圧ＶＲＥＡＤが印加される。カラム制御回路１４０は、事前読出し結果がグループＧｒ１であったカラムについては、時刻Ｔ３０から時刻Ｔ３１の間で信号ＳＴＢがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループＧｒ２であったカラムについては、時刻Ｔ３１から時刻Ｔ３２の間で信号ＳＴＢがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループＧｒ３であったカラムについては、時刻Ｔ３２から時刻Ｔ３３の間で信号ＳＴＢがアサートされるタイミングで読み出しデータを確定させる。
【０３２６】
以上により、事前読出し及び本読出しを含む動作が終了する。
【０３２７】
５．４  本実施形態に係る効果について  
メモリセルトランジスタＭＴの閾値は、隣り合うメモリセルトランジスタＭＴの閾値変動量の影響によって変動する場合がある（セル間干渉効果）。そこで本実施形態では、事前読み出しにより隣り合うワード線ＷＬ（ｎ＋１）のデータを読み出し、この結果に基づく本読み出しによって読み出しデータを確定させる。従って、セル間干渉効果の影響を抑制し、読み出し精度を向上出来る。但し、セル間干渉効果を考慮せずにＶthトラッキングを行った場合に見つかった谷位置は、セル間干渉効果を考慮してデータを読み出した場合の谷位置とずれる場合があり得る。そこで本実施形態では、このずれ量を、予め用意された補正値ΔＶによって補正している。このようにして、最適な谷位置を用いてセル間干渉効果を考慮したデータの読み出しを行うことで、高精度なデータの読み出しが可能となる。
【０３２８】
５．５  変形例について  
上述の第５実施形態は、Ｖｔｈトラッキングによって検出された谷位置電圧ＶＣＧＲＶ’に対して、セル間干渉効果の影響を考慮した場合に生じる谷位置のずれ分を補正値ΔＶとして適用する場合について説明したが、これに限られない。例えば、Ｖｔｈトラッキングの際に実行されるシフトリードに対してセル間干渉効果の影響を考慮することにより、上述の補正値ΔＶに相当する補正が考慮された谷位置電圧ＶＣＧＲＶ”が検出されるようにしてもよい。以下では、第５実施形態と同一の部分については説明を省略し、第５実施形態と異なる部分について説明する。
【０３２９】
５．５．１  フローチャートについて  
まず、第５実施形態の変形例に係るＶｔｈトラッキング動作を含む動作について、図４２に示すフローチャートを用いて説明する。図４２は、図３８に対応する。
【０３３０】
図４２に示すように、ステップＳＴ１５１〜ＳＴ１５３は、図３８において示したステップＳＴ１３１〜ＳＴ１３３と同等であるため、その説明を省略する。
【０３３１】
ステップＳＴ１５４において、コントローラ２００は、ワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴに対する事前読出しを含む動作を指示するコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。
【０３３２】
ステップＳＴ１５５において、ＮＡＮＤ型フラッシュメモリ１００は、ワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴに対して事前読出しを実行し、読出しデータをラッチ回路に保持する。
【０３３３】
ステップＳＴ１５６において、コントローラ２００及びＮＡＮＤ型フラッシュメモリ１００は、シフトリードを伴うＶｔｈトラッキングを実行し、谷位置を検出する。ここで、ステップＳＴ１５６におけるシフトリードは、ステップＳＴ１５５における事前読出しの結果に基づく本読出しに対応する。このため、コントローラ２００は、Ｖｔｈトラッキングの結果、図３８のステップＳＴ１３４において検出される谷位置電圧ＶＣＧＲＶ’と異なり得る谷位置電圧ＶＣＧＲＶ”を検出する。具体的には、例えば、中位ページのデータが読出し対象の場合、谷位置電圧ＶＢ”、ＶＤ”、及びＶＦ”が検出される。
【０３３４】
ステップＳＴ１５７において、コントローラ２００は、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴに対する本読出しを含む動作を指示するコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。なお、当該本読出し動作では、ステップＳＴ１５６において検出された谷位置に基づく読出しが実行される。
【０３３５】
ステップＳＴ１５８において、ＮＡＮＤ型フラッシュメモリ１００は、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴに対して本読出しを実行する。本読出しによる読出しデータは、ステップＳＴ１５５において読み出された事前読出しデータに基づいて決定される。ＮＡＮＤ型フラッシュメモリ１００は、本読出しデータをコントローラ２００に送信する。
【０３３６】
ステップＳＴ１５９〜ＳＴ１６１は、図３８において示したステップＳＴ１３９〜ＳＴ１４１と同等であるため、その説明を省略する。
【０３３７】
以上で、Ｖｔｈトラッキングを含む動作が終了する。
【０３３８】
５．５．２  コマンドシーケンスについて  
次に、第５実施形態の変形例の事前読出し及び本読出しを含む動作について、図４３に示すコマンドシーケンスを用いて説明する。図４３（Ａ）は、図４２において示されたステップＳＴ１５５に相当し、図４３（Ｂ）は、ステップＳＴ１５６及びＳＴ１５７の各々に共通するシーケンスである。
【０３３９】
図４３（Ａ）に示すように、コントローラ２００は、事前読出し動作を実行するために、コマンド“ｙｙｈ”及び“ｚｚｈ”を続けて発行する。そして、コントローラ２００は、第１読出しコマンド“００ｈ”を発行し、引き続き例えば５サイクルにわたってアドレス（カラムアドレス、ブロックアドレス、ページアドレスを含む）を発行した後、第２読出しコマンド“３０ｈ”を発行する。
【０３４０】
コマンド“３０ｈ”がコマンドレジスタ１６０に格納されると、シーケンサ１７０は、ロウデコーダ１２０、及びカラム制御回路１４０等を制御して、読出し動作を開始する。ＮＡＮＤ型フラッシュメモリ１００は、信号ＲＢｎを“Ｌ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がビジー状態であることをコントローラ２００に知らせる。まず、ＮＡＮＤ型フラッシュメモリ１００は、事前読出しにおいて、ワード線ＷＬ（ｎ＋１）に接続されたメモリセルトランジスタＭＴから、セル間干渉効果の影響を考慮した読み出しレベルを用いてデータを読出し、ラッチ回路に保持させる。次に、ＮＡＮＤ型フラッシュメモリ１００は、本読出しにおいて、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴから１ページ分のデータを事前読出しの結果に基づいて読出す。しかしながら、以後の動作では、事前読出しデータが保持されていればよく、本読出しデータは不要である。このため、当該動作において読み出された本読出しデータは、破棄してもよい。ＮＡＮＤ型フラッシュメモリ１００は、信号ＲＢｎを“Ｈ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がレディ状態であることをコントローラ２００に知らせる。
【０３４１】
以上で、事前読出し動作が終了する。
【０３４２】
図４３（Ｂ）に示すように、コントローラ２００は、本読出し動作を実行するために、プリフィックスコマンド“ｘｘｈ”を発行し、引き続き１サイクルにわたってアドレスを発行する。その後、コントローラ２００は、例えば４サイクルにわたって電圧ＶＣＧＲＶｄｅｆのシフト量に対応する値ΔＤＡＣ１〜ΔＤＡＣ４を発行し、シフト量Δを設定する。ＮＡＮＤ型フラッシュメモリ１００は、シフト量ΔＶを設定する間、信号ＲＢｎを“Ｈ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がレディ状態であることをコントローラ２００に知らせる。
【０３４３】
なお、シフト量Δは、ステップＳＴ１５６におけるシフトリードと、ステップＳＴ１５７におけるシフトリードとで異なる。例えば、ステップＳＴ１５６におけるシフトリードでは、シフト量Δは、ｍ回目のループ処理における読出し電圧ＶＣＧＲＶｍを用いて、以下の式（１１）に従って決定される。
【０３４４】
Δ＝（ＶＣＧＲＶｍ−ＶＣＧＲＶｄｅｆ）      …（１１）  
また、例えば、ステップＳＴ１５７におけるシフトリードでは、シフト量Δは、ステップＳＴ１５６において検出された谷位置電圧ＶＣＧＲＶ”を用いて、以下の式（１２）に従って決定される。
【０３４５】
Δ＝（ＶＣＧＲＶ”−ＶＣＧＲＶｄｅｆ）      …（１２）  
コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００がレディ状態になると、プリフィックスコマンド“ｖｖｈ”を発行する。コマンド“ｖｖｈ”は、新たに事前読出しを行わずに、データラッチ内に保存されている事前読み出しデータに基づいて本読出しを実行する旨を宣言するためのコマンドである。
【０３４６】
続けて、コントローラ２００は、コマンド“ｚｚｈ”、及び第１読出しコマンド“００ｈ”を続けて発行する。コントローラ２００は、引き続き例えば５サイクルにわたってアドレス（カラムアドレス、ブロックアドレス、ページアドレスを含む）を発行する。その後、コントローラ２００は、第２読出しコマンド“３０ｈ”を発行する。
【０３４７】
コマンド“３０ｈ”がコマンドレジスタ１６０に格納されると、シーケンサ１７０は、ロウデコーダ１２０、及びカラム制御回路１４０等を制御して、読出し動作を開始する。ＮＡＮＤ型フラッシュメモリ１００は、信号ＲＢｎを“Ｌ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がビジー状態であることをコントローラ２００に知らせる。ＮＡＮＤ型フラッシュメモリ１００は、本読出しにおいて、ワード線ＷＬｎに接続されたメモリセルトランジスタＭＴから１ページ分のデータを事前読出しの結果に基づいて読出し、ラッチ回路に保持させる。ＮＡＮＤ型フラッシュメモリ１００は、信号ＲＢｎを“Ｈ”レベルにして、ＮＡＮＤ型フラッシュメモリ１００がレディ状態であることをコントローラ２００に知らせる。
【０３４８】
その後は、図３９で説明したようにコントローラ２００はコマンド“０５ｈ”、アドレス、及びコマンドＥ０ｈ“を発行した後、信号ＲＥｎを繰り返しアサートする。信号ＲＥｎがトグルされるたびに、ラッチ回路に保持された本読出しのデータがコントローラ２００へ送信される。
【０３４９】
５．５．３  タイミングチャートについて  
次に、第５実施形態の変形例の事前読出し及び本読出しを含む動作について、図４４及び図４５に示すタイミングチャートを用いて説明する。図４４は、図４２において示されたステップＳＴ１５５及びＳＴ１５６に相当し、図４５は、ステップＳＴ１５８に相当する。なお、図４４では、事前読出し期間に形式的に実行される本読出し動作については省略されている。
【０３５０】
図示するように、本例ではＶthトラッキングを行う際にもセル間干渉効果の影響を考慮した読み出し動作が行われる。すなわち図４４において、時刻Ｔ４１〜Ｔ４３の期間において事前読み出しが行われ、時刻Ｔ４４−０〜Ｔ４７−０までの本読み出しの期間では、選択ワード線ＷＬに電圧ＶＢ０、ＶＤ０、ＶＦ０が印加される３期間において、ワード線ＷＬ（ｎ＋１）の電圧がＶＲＥＡＤ、ＶＲＥＡＤＬＡ１、及びＶＲＥＡＤＬＡ２の３段階にステップアップされる。このように、ワード線ＷＬ（ｎ＋１）の電圧をステップアップさせた読み出し動作を繰り返すことによって、谷位置を探索する。この結果見つかる谷位置は、図４０で説明した電圧ＶＣＧＲＶ”である。
【０３５１】
従って図４５に示すようにステップＳＴ１５８の読み出し動作では、図４４のトラッキングで見つかった電圧ＶＢ”、電圧ＶＤ”、及び電圧ＶＦ”を用いてデータが読み出される。もちろん、ワード線ＷＬ（ｎ＋１）には電圧ＶＲＥＡＤ、ＶＲＥＡＤＬＡ１、及びＶＲＥＡＤＬＡ２が順次印加される。
【０３５２】
上記のように、谷位置を精度良く探索するという点では、本例のように谷位置検出のためのＶthトラッキング動作において、セル間干渉効果を考慮することが望ましい。しかし、読み出し動作全体の速度の観点からは、図３８で説明したように補正値を用いた方が好ましい場合もあり得る。なお本例のＶthトラッキングにおいては、先読み動作と本読み動作の両方を繰り返しても良い。つまり、ｍ＝０において先読み動作と本読み動作とが実行され、ｍ＝１において先読み動作と、読み出し電圧をシフトさせた本読み動作とが実行され、ｍ＝２において先読み動作と、読み出し電圧を更にシフトさせた本読み動作とが実行され、以下同様である。しかし、上記図４４で説明したように、最初の一番初めの読み出し時のみ、つまりｍ＝０においてのみ先読み動作と本読み動作との組み合わせを実行し、ｍ＝１以降は、ｍ＝０での先読み動作結果を流用して、先読み動作自体は行わなくても良い。本方法によれば、１度のＶthトラッキング動作において先読み動作は１回で良く、読み出し動作の速度を向上出来る。但し、ｍ＝０で得られた先読み結果は、その後もリセットされずに、Ｖthトラッキングを実行している期間、いずれかのラッチ回路に保持しておく必要がある。
【０３５３】
６．その他の変形例等  
以上のように、上記実施形態に係るメモリシステムは、第１ワード線に結合され、データを保持可能な第１メモリセルを含む半導体メモリと、第１命令と第２命令とを発行可能なコントローラとを備える。第１メモリセルの保持可能なデータは、第１ビットと第２ビットとを含む多ビットデータである。半導体メモリは、第１命令を受信した際には、第１ワード線に第１範囲内の電圧(ex. BR in FIG5)及び第２範囲内の電圧(ex. DR in FIG5)を印加して第１メモリセルから第１ビット(ex. middle bit in FIG5)を読み出す。また第２命令を受信した際には、第１ワード線に第３範囲内の電圧(ex. CR in FIG5)を印加して第１メモリセルから前記第２ビット(ex. upper bit in FIG5)を読み出す。コントローラは、第１命令を複数回発行し、且つ複数回の第１命令に応じて、第１ワード線に印加される電圧を第１範囲内及び第２範囲内でそれぞれ変化させる(Vth tracking in FIG16)。また、複数回の第１命令の度に第１メモリセルから読み出された前記第１ビットに基づき、第１範囲内において第１電圧を特定し、第２範囲内において第２電圧を特定する(Vth cross point)。更に、少なくとも第１電圧(ex. VB, VD, or VF in FIG10)に基づいて、第３範囲内において第３電圧(ex. VA, VC, VE, or VG in FIG10)を推定する。そして、第２命令が発行された際に第２ビットを読み出すために第１ワード線に印加される電圧は、推定された第３電圧である(ST54, ST58 in FIG18)。
【０３５４】
また、一実施形態によれば、ページ単位でデータを読み出し可能な半導体メモリと、第１命令及び第２命令を発行可能なコントローラと備える。半導体メモリは、第１ワード線と、第１ワード線に接続された第１メモリセルとを備え、第１ワード線には、少なくとも第１ページ(middle page)及び第２ページ(upper or lower page)が関連付けられている。第１命令を受信した際に半導体メモリは、第１ワード線に３ステップの電圧(VB, VD, VF in FIG16)を印加して第１ページ(middle page)を読み出す第１読み出し動作を、該第１ページ(middle page)を対象に少なくとも４回実行する(4-point Vth tracking)。そして、４回の読み出し動作(m=0-3 in FIG16)において、３ステップの電圧(VB, VD, VF in FIG16)が変動され、該３ステップの電圧(VB, VD, VF in FIG16)の変動の上下の仕方が互いに異なる(VB, VD, VF in FIG16)。
【０３５５】
上記３ステップの電圧(VB, VD, VF in FIG16)のいずれかは、前記４回の読み出し動作の間、単調減少し、または単調増加し、またはいずれかのタイミングで、減少から増加、または増加から減少に変化する。
【０３５６】
実施形態は、上述の第１実施形態〜第５実施形態で述べた形態に限らず、種々の変形が可能である。上述の第１実施形態〜第５実施形態では、ＮＡＮＤ型フラッシュメモリ１００において分離データを演算し、コントローラ２００においてビットカウントを算出するようにしているが、これに限られない。例えば、分離データは、コントローラ２００において演算されてもよいし、ビットカウントは、ＮＡＮＤ型フラッシュメモリ１００において算出されてもよい。このように、ＮＡＮＤ型フラッシュメモリ１００は、テストリード結果やシフトリード結果等を全てコントローラ２００へ送信し、コントローラ２００において分離データの演算やビットカウント算出及び谷位置検出等の演算を行っても良い。つまり、ＮＡＮＤ型フラッシュメモリ１００はコントローラ２００の要求に応じてメモセルアレイからデータを読み出し、読み出されたデータを用いた種々の演算はコントローラ２００で行っても良い。
【０３５７】
更に上記第５実施形態では、セル間干渉効果として、ワード線ＷＬ（ｎ＋１）のみからの影響を考慮する場合について説明した。しかし、ワード線ＷＬ（ｎ−１）からのセル間干渉効果を考慮しても良い。通常、データはソース側から順番に書き込まれる。つまり、ワード線ＷＬｎにデータを書き込む際には、既にワード線ＷＬ（ｎ−１）へのデータの書き込みが行われている。従って、ワード線ＷＬｎにデータを書き込むことで、ワード線ＷＬ（ｎ−１）からのセル間干渉効果による閾値変動は無視出来る。しかし、ワード線ＷＬｎへの書き込みデータが“Ｅｒ”レベルであった場合、つまり、メモリセルトランジスタＭＴの電荷蓄積層への電子の注入が禁止されて、閾値電圧が消去レベルを維持する場合には、ワード線ＷＬ（ｎ−１）へのデータの書き込み時に受けたセル間干渉効果の影響が残っている。つまり、特に“Ｅｒ”レベルを保持するメモリセルトランジスタＭＴについては、ワード線ＷＬ（ｎ−１）からのセル間干渉効果の影響を考慮することが望ましい。この場合には、上記実施形態で説明した事前読み出しにおいて、ワード線ＷＬ（ｎ＋１）とは別に、ワード線ＷＬ（ｎ−１）からもデータを読み出す。そして本読み出し時には、ワード線（ｎ＋１）だけでなくワード線ＷＬ（ｎ−１）にも適切な電圧ＶＲＥＡＤＬＡを印加し、非選択ワード線ＷＬ（ｎ−１）及び（ｎ＋１）のデータの組み合わせに応じて適切なタイミングでストローブされたデータを採用する。なお、ワード線ＷＬｎが“Ｅｒ”レベルの場合のみを考慮するならば、上記動作は読み出し動作ＡＲにおいてのみ行えばよく、その他の読み出し動作はワード線ＷＬ（ｎ＋１）のみからのセル間干渉効果を考慮すれば良い。しかし、その他の読み出し動作でも、ワード線ＷＬ（ｎ−１）からのセル間干渉効果を合わせて考慮しても良い。
【０３５８】
また、上述の各実施形態では、１つのメモリセルトランジスタＭＴあたり３ビットを保持可能な場合（ＴＬＣ：Triple Level Cell）について説明したが、これに限られない。例えば、メモリセルトランジスタＭＴは、２ビットを保持可能（ＭＬＣ：Multi Level Cell）でもよく、４ビット以上を保持可能でもよい。
【０３５９】
その他、各実施形態及び各変形例において、以下の事項が適用されることが可能である。
【０３６０】
多値レベルの読み出し動作（リード）において、Ａレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば０Ｖ〜０．５５Ｖの間である。これに限定されることなく、０．１Ｖ〜０．２４Ｖ、０．２１Ｖ〜０．３１Ｖ、０．３１Ｖ〜０．４Ｖ、０．４Ｖ〜０．５Ｖ、及び０．５Ｖ〜０．５５Ｖのいずれかの間にしてもよい。
【０３６１】
Ｂレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば１．５Ｖ〜２．３Ｖの間である。これに限定されることなく、１．７５Ｖ〜１．８Ｖ、１．８Ｖ〜１．９５Ｖ、１．９５Ｖ〜２．１Ｖ、及び２．１Ｖ〜２．３Ｖのいずれかの間にしてもよい。
【０３６２】
Ｃレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば３．０Ｖ〜４．０Ｖの間である。これに限定されることなく、３．０Ｖ〜３．２Ｖ、３．２Ｖ〜３．４Ｖ、３．４Ｖ〜３．５Ｖ、３．５Ｖ〜３．７Ｖ、及び３．７Ｖ〜４．０Ｖのいずれかの間にしてもよい。
【０３６３】
読み出し動作の時間（ｔＲ）としては、例えば２５μｓ〜３８μｓ、３８μｓ〜７０μｓ、及び７０μｓ〜８０μｓのいずれかの間にしてもよい。
【０３６４】
書き込み動作は、プログラム動作及びベリファイ動作を含む。書き込み動作では、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば１３．７Ｖ〜１４．３Ｖの間である。これに限定されることなく、例えば１３．７Ｖ〜１４．０Ｖ、及び１４．０Ｖ〜１４．７Ｖのいずれかの間としてもよい。
【０３６５】
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを変えてもよい。
【０３６６】
プログラム動作をＩＳＰＰ（Incremental Step Pulse Program）方式としたとき、ステップアップの電圧として、例えば０．５Ｖ程度が挙げられる。
【０３６７】
非選択のワード線に印加される電圧としては、例えば７．０Ｖ〜７．３Ｖの間としてもよい。この場合に限定されることなく、例えば７．３Ｖ〜８．４Ｖの間としてもよく、７．０Ｖ以下としてもよい。
【０３６８】
非選択のワード線が奇数番目のワード線であるか、又は偶数番目のワード線であるかによって印加するパス電圧を変えてもよい。
【０３６９】
書き込み動作の時間（tProg）としては、例えば１７００μｓ〜１８００μｓ、１８００μｓ〜１９００μｓ、及び１９００μｓ〜２０００μｓのいずれかの間にしてもよい。
【０３７０】
消去動作では、半導体基板上部に形成され、かつ、メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば１２Ｖ〜１３．７Ｖの間である。この場合に限定されることなく、例えば１３．７Ｖ〜１４．８Ｖ、１４．８Ｖ〜１９．０Ｖ, １９．０〜１９．８Ｖ、及び１９．８Ｖ〜２１Ｖのいずれかの間であってもよい。
【０３７１】
消去動作の時間（tErase）としては、例えば３０００μｓ〜４０００μｓ、４０００μｓ〜５０００μｓ、及び４０００μｓ〜９０００μｓのいずれかの間にしてもよい。
【０３７２】
メモリセルは、半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有する。この電荷蓄積層は、膜厚が２〜３ｎｍのＳｉＮ、又はＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造であってもよい。また、ポリシリコンにはＲｕなどの金属が添加されていてもよい。電荷蓄積層上には、絶縁膜が形成される。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜とに挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有する。Ｈｉｇｈ−ｋ膜としては、ＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚は、Ｈｉｇｈ−ｋ膜の膜厚よりも厚くしてもよい。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成される。ここで、仕事関数調整用の材料は、ＴａＯなどの金属酸化膜、又はＴａＮなどの金属窒化膜である。制御電極としては、Ｗなどを用いてもよい。
【０３７３】
また、メモリセル間にはエアギャップを形成することができる。
【０３７４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０３７５】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…メモリセルアレイ、１２０…ロウデコーダ、１３０…ドライバ、１４０…カラム制御回路、１５０…アドレスレジスタ、１６０…コマンドレジスタ、１７０…シーケンサ、２００…コントローラ、２１０…ホストインターフェース回路、２２０…メモリ、２３０…プロセッサ、２４０…バッファメモリ、２５０…ＮＡＮＤインターフェース回路、２６０…ＥＣＣ回路、３００…ホスト機器。
【図１】
2018163724.tif 000003
【図２】
2018163724.tif 000004
【図３】
2018163724.tif 000005
【図４】
2018163724.tif 000006
【図５】
2018163724.tif 000007
【図６】
2018163724.tif 000008
【図７】
2018163724.tif 000009
【図８】
2018163724.tif 000010
【図９】
2018163724.tif 000011
【図１０】
2018163724.tif 000012
【図１１】
2018163724.tif 000013
【図１２】
2018163724.tif 000014
【図１３】
2018163724.tif 000015
【図１４】
2018163724.tif 000016
【図１５】
2018163724.tif 000017
【図１６】
2018163724.tif 000018
【図１７】
2018163724.tif 000019
【図１８】
2018163724.tif 000020
【図１９】
2018163724.tif 000021
【図２０】
2018163724.tif 000022
【図２１】
2018163724.tif 000023
【図２２】
2018163724.tif 000024
【図２３】
2018163724.tif 000025
【図２４】
2018163724.tif 000026
【図２５】
2018163724.tif 000027
【図２６】
2018163724.tif 000028
【図２７】
2018163724.tif 000029
【図２８】
2018163724.tif 000030
【図２９】
2018163724.tif 000031
【図３０】
2018163724.tif 000032
【図３１】
2018163724.tif 000033
【図３２】
2018163724.tif 000034
【図３３】
2018163724.tif 000035
【図３４】
2018163724.tif 000036
【図３５】
2018163724.tif 000037
【図３６】
2018163724.tif 000038
【図３７】
2018163724.tif 000039
【図３８】
2018163724.tif 000040
【図３９】
2018163724.tif 000041
【図４０】
2018163724.tif 000042
【図４１】
2018163724.tif 000043
【図４２】
2018163724.tif 000044
【図４３】
2018163724.tif 000045
【図４４】
2018163724.tif 000046
【図４５】
2018163724.tif 000047