(57)【要約】【課題】閾値電圧分布の谷位置における読出し電圧を高速かつ高精度に検出する。【解決手段】一実施形態の半導体記憶装置は、メモリセル、上記メモリセルに結合されたワード線、及び制御部を備える。上記制御部は、上記ワード線に印加する電圧を第１範囲内において第１シフト量で変化させる度に、上記メモリセルからデータを読み出す第１動作、及び上記ワード線に印加する電圧を第２範囲内において第２シフト量で変化させる度に、上記メモリセルからデータを読み出す第２動作を実行する。上記第２範囲は、上記第１範囲に含まれ、上記第１範囲より狭い。上記第２シフト量は、上記第１シフト量より小さい。上記ワード線には、上記第１動作によって電圧が印加された後に続けて上記第２動作によって電圧が印加される。【選択図】図１２
2018110043.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルと、
前記メモリセルに結合されたワード線と、
制御部と、を備え、
前記制御部は、
前記ワード線に印加する電圧を第１範囲内において第１シフト量で変化させる度に、前記メモリセルからデータを読み出す第１動作と、
前記ワード線に印加する電圧を第２範囲内において第２シフト量で変化させる度に、前記メモリセルからデータを読み出す第２動作と、
を実行し、
前記第２シフト量は、前記第１シフト量より小さく、
前記ワード線には、前記第１動作によって電圧が印加された後に続けて前記第２動作によって電圧が印加される、
半導体記憶装置。
【請求項２】
前記第２範囲は、前記第１範囲に含まれ、前記第１範囲より狭い、請求項１記載の半導体記憶装置。
【請求項３】
前記メモリセルは、第１ビット及び第２ビットを含むデータを保持し、
前記第１動作は、前記第１ビット及び前記第２ビットのうちの前記第１ビットを前記メモリセルから読み出す、請求項２記載の半導体記憶装置。
【請求項４】
前記メモリセルは、第１ビット及び第２ビットを含むデータを保持し、
前記第１動作は、前記第１ビット及び前記第２ビットを前記メモリセルから読み出す、請求項２記載の半導体記憶装置。
【請求項５】
前記メモリセルは、第１ビット及び第２ビットを含むデータを保持し、
前記第２動作は、前記第１ビット及び前記第２ビットを前記メモリセルから読み出す、請求項２記載の半導体記憶装置。
【請求項６】
前記第１範囲は、互いに不連続な第３範囲及び第４範囲を含み、
前記第１動作は、前記第３範囲内の第１電圧、及び前記第４範囲内の第２電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第１読出し動作を含み、
前記制御部は、前記第１読出し動作毎に前記第１電圧及び前記第２電圧の各々を前記第１シフト量で変化させながら、前記第１読出し動作を繰り返し実行する、
請求項２記載の半導体記憶装置。
【請求項７】
前記第１動作は、前記第３範囲及び前記第４範囲の間の電圧である第３電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第２読出し動作を更に含む、請求項６記載の半導体記憶装置。
【請求項８】
前記第１範囲は、前記第３範囲及び前記第４範囲と異なり、互いに不連続な第５範囲及び第６範囲を更に含み、
前記第１動作は、前記第５範囲内の第４電圧、及び前記第６範囲内の第５電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第３読出し動作を更に含み、
前記制御部は、前記第３読出し動作毎に前記第４電圧及び前記第５電圧の各々を前記第１シフト量で変化させながら、前記第３読出し動作を繰り返し実行する、
請求項７記載の半導体記憶装置。
【請求項９】
前記第１動作は、前記第５範囲及び前記第６範囲の間の電圧である第６電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第４読出し動作を更に含む、請求項８記載の半導体記憶装置。
【請求項１０】
前記第１範囲は、互いに不連続な第３範囲、第４範囲、及び第５範囲を含み、
前記第１動作は、前記第３範囲内の第１電圧と、前記第４範囲内の第２電圧と、前記第５範囲内の第３電圧と、を前記ワード線に印加して前記メモリセルからデータを読み出す第１読出し動作を含み、
前記制御部は、前記第１読出し動作毎に前記第１電圧、前記第２電圧、及び前記第３電圧の各々を前記第１シフト量で変化させながら、前記第１読出し動作を繰り返し実行する、
請求項２記載の半導体記憶装置。
【請求項１１】
前記第１動作は、
前記第３範囲及び前記第４範囲の間の電圧である第４電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第２読出し動作と、
前記第４範囲及び前記第５範囲の間の電圧である第５電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第３読出し動作と、を更に含む、
請求項１０記載の半導体記憶装置。
【請求項１２】
前記半導体記憶装置は、前記メモリセルを含むセルユニットを更に備え、
前記制御部は、
前記第１動作、前記第１読出し動作、及び前記第２読出し動作において、前記セルユニットからデータを読出し、
前記第１読出し動作、及び前記第２読出し動作によって読み出されたデータに基づく第１演算結果を出力する、請求項７記載の半導体記憶装置。
【請求項１３】
請求項１２記載の半導体記憶装置と、
前記第１動作及び前記第２動作を前記半導体記憶装置に指示するコントローラと、を備えたメモリシステムであって、
前記コントローラは、
前記第１演算結果に基づいて前記第２範囲を決定し、
前記決定された第２範囲が指定された前記第２動作を指示する、
メモリシステム。
【請求項１４】
前記第２範囲は、互いに不連続な第５範囲及び第６範囲を含み、
前記第２動作は、前記第５範囲内の第４電圧、及び前記第６範囲内の第５電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第３読出し動作を含み、
前記制御部は、前記第３読出し動作毎に前記第４電圧及び前記第５電圧の各々を前記第２シフト量で変化させながら、前記第３読出し動作を繰り返し実行する、
請求項１３記載のメモリシステム。
【請求項１５】
前記第２動作は、前記第５範囲及び前記第６範囲の間の電圧である第６電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第４読出し動作を更に含む、請求項１４記載のメモリシステム。
【請求項１６】
前記制御部は、
前記第２動作、前記第３読出し動作、及び前記第４読出し動作において、前記セルユニットからデータを読出し、
前記第３読出し動作、及び前記第４読出し動作によって読み出されたデータに基づく第２演算結果を出力する、請求項１５記載のメモリシステム。
【請求項１７】
前記第２動作は、前記第５範囲内の第７電圧、及び前記第６範囲内の第８電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第５読出し動作を更に含み、
前記制御部は、
前記第２動作、前記第３読出し動作、前記第４読出し動作、及び前記第５読出し動作において、前記セルユニットからデータを読出し、
前記第３読出し動作の結果、前記第４読出し動作の結果、及び前記第５読出し動作によって読み出されたデータに基づく第２演算結果を出力する、
請求項１５記載のメモリシステム。
【請求項１８】
前記コントローラは、
前記第１演算結果に基づいて前記第８電圧を決定し、
前記決定された第８電圧が指定された前記第５読出し動作を指示する、
請求項１７記載のメモリシステム。
【請求項１９】
前記第２動作は、前記第４電圧、及び前記第６範囲内の第９電圧を前記ワード線に印加して前記メモリセルからデータを読み出す第６読出し動作を更に含み、
前記制御部は、
前記第６読出し動作において、前記セルユニットからデータを読出し、
前記第９電圧を固定させ、前記第４電圧を前記第２シフト量で同時に変化させながら、前記第６読出し動作を繰り返し実行し、
前記コントローラは、
前記第２演算結果に基づいて前記第９電圧を決定し、
前記決定された第９電圧が指定された前記第６読出し動作を指示する、
請求項１７記載のメモリシステム。
【請求項２０】
第１メモリセル及び第２メモリセルと、
前記第１メモリセルと第１ビット線との間の第１トランジスタと、
前記第２メモリセルと第２ビット線との間に位置し、前記第１トランジスタのゲートと結合されたゲートを含む第２トランジスタと、
前記第１メモリセルのゲート及び前記第２メモリセルのゲートに結合されたワード線と、
制御部と、を備え、
前記制御部は、
前記ワード線に印加する電圧を第１範囲内において第１シフト量で変化させる度に、前記第１メモリセル及び前記第２メモリセルからデータを読み出す第１動作と、
前記ワード線に前記第１範囲内の第１電圧を印加して前記第１メモリセルからデータを読み出す第２動作と、
前記ワード線に前記第１範囲内の前記第１電圧と異なる第２電圧を印加して前記第２メモリセルからデータを読み出す第３動作と、
を実行し、
前記ワード線には、前記第１動作によって電圧が印加された後に続けて前記第２動作及び前記第３動作によって電圧が印加される、
半導体記憶装置。
【請求項２１】
請求項２０記載の半導体記憶装置と、
前記第１動作、前記第２動作、及び前記第３動作を前記半導体記憶装置に指示するコントローラと、を備えたメモリシステムであって、
前記半導体記憶装置は、前記第１メモリセルを含む第１組のメモリセル、及び前記第２メモリセルを含む第２組のメモリセルを含むセルユニットを更に備え、
前記制御部は、前記第１動作、前記第２動作、及び前記第３動作において、前記セルユニットからデータを読出し、
前記コントローラは、
前記第１動作で前記第１組のメモリセルから読出されたデータに基づいて前記第１電圧を決定し、前記第１動作で前記第２組のメモリセルから読出されたデータに基づいて前記第２電圧を決定し、
前記決定された第１電圧が指定された前記第２動作を指示し、前記決定された第２電圧が指定された前記第３動作を指示する、
メモリシステム。
【請求項２２】
請求項２１記載の半導体記憶装置と、
前記第１動作、前記第２動作、及び前記第３動作を前記半導体記憶装置に指示するコントローラと、を備えたメモリシステムであって、
前記コントローラは、
前記第１組のメモリセル及び前記第２組のメモリセルから読み出されたデータのうち、前記第１組のメモリセル及び前記第２組のメモリセルの各々に対応するデータついて個別に誤り訂正処理を実行可能であり、
前記第１動作より前に前記第１組のメモリセル及び前記第２組のメモリセルから読み出されたデータのうち、前記第１組のメモリセルに対応するデータに対する誤り訂正処理がパスし、前記第２組のメモリセルに対応するデータに対する誤り訂正処理がフェイルした際、前記第１動作で前記第１組のメモリセルから読出されたデータに基づいて前記第１電圧及び前記第２電圧を決定する、
メモリシステム。
【請求項２３】
前記第１組のメモリセルは、第１方向に沿って第１列に並び、
前記第２組のメモリセルは、前記第１方向に沿って前記第１列と異なる第２列に並ぶ、
請求項２１記載のメモリシステム。
【請求項２４】
前記第１組のメモリセルは、第１信号線の組を介して前記コントローラと接続され、
前記第２組のメモリセルは、前記第１信号線の組と異なる第２信号線の組を介して前記コントローラと接続される、
請求項２１記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてのＮＡＮＤ型フラッシュメモリと、当該ＮＡＮＤ型フラッシュメモリを制御するコントローラと、を備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０３９５７号公報
【特許文献２】特開２０１３−１２２８０４号公報
【特許文献３】特開２０１４−１５７６５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
閾値電圧分布の谷位置における読出し電圧を高速かつ高精度に検出する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、メモリセル、上記メモリセルに結合されたワード線、及び制御部を備える。上記制御部は、上記ワード線に印加する電圧を第１範囲内において第１シフト量で変化させる度に、上記メモリセルからデータを読み出す第１動作、及び上記ワード線に印加する電圧を第２範囲内において第２シフト量で変化させる度に、上記メモリセルからデータを読み出す第２動作を実行する。上記第２範囲は、上記第１範囲に含まれ、上記第１範囲より狭い。上記第２シフト量は、上記第１シフト量より小さい。上記ワード線には、上記第１動作によって電圧が印加された後に続けて上記第２動作によって電圧が印加される。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムの構成を説明するためのブロック図。
【図２】第１実施形態に係る半導体記憶装置の構成を説明するためのブロック図。
【図３】第１実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図。
【図４】第１実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための断面図。
【図５】第１実施形態に係る半導体記憶装置のメモリセルトランジスタの閾値電圧の分布を説明するためのダイアグラム。
【図６】第１実施形態に係る半導体記憶装置のセンスアンプモジュールの構成を説明するための平面図。
【図７】第１実施形態に係る半導体記憶装置のテストリード動作を説明するためのタイミングチャート。
【図８】第１実施形態に係る半導体記憶装置のノーマルリード動作を説明するためのタイミングチャート。
【図９】第１実施形態に係る半導体記憶装置の閾値電圧分布の変動を説明するための模式図。
【図１０】第１実施形態に係る半導体記憶装置のシフトリード動作を説明するためのコマンドシーケンス。
【図１１】第１実施形態に係る半導体記憶装置のビットカウントトラッキング動作を説明するための模式図。
【図１２】第１実施形態に係る半導体記憶装置の全体動作を説明するためのフローチャート。
【図１３】第１実施形態に係る半導体記憶装置の下位ページトラッキング動作を説明するためのフローチャート。
【図１４】第１実施形態に係る半導体記憶装置の下位ページトラッキング動作を説明するためのタイミングチャート。
【図１５】第１実施形態に係る半導体記憶装置の下位ページトラッキング動作による読出しデータを説明するためのテーブル。
【図１６】第１実施形態に係る半導体記憶装置の下位ページトラッキング動作による分離データを説明するためのテーブル。
【図１７】第１実施形態に係る半導体記憶装置の上位ページトラッキング動作を説明するためのフローチャート。
【図１８】第１実施形態に係る半導体記憶装置の上位ページトラッキング動作を説明するためのタイミングチャート。
【図１９】第１実施形態に係る半導体記憶装置の上位ページトラッキング動作による読出しデータを説明するためのテーブル。
【図２０】第１実施形態に係る半導体記憶装置の上位ページトラッキング動作による分離データを説明するためのテーブル。
【図２１】第１実施形態に係る半導体記憶装置の中位ページトラッキング動作を説明するためのフローチャート。
【図２２】第１実施形態に係る半導体記憶装置の中位ページトラッキング動作を説明するためのタイミングチャート。
【図２３】第１実施形態に係る半導体記憶装置の中位ページトラッキング動作による読出しデータを説明するためのテーブル。
【図２４】第１実施形態に係る半導体記憶装置の中位ページトラッキング動作による分離データを説明するためのテーブル。
【図２５】第１実施形態に係る半導体記憶装置の粗トラッキングにおける下位ページトラッキング動作を説明するための模式図。
【図２６】第１実施形態に係る半導体記憶装置の粗トラッキングにおける上位ページトラッキング動作を説明するための模式図。
【図２７】第１実施形態に係る半導体記憶装置の粗トラッキング動作を説明するための模式図。
【図２８】第１実施形態に係る半導体記憶装置の精トラッキング動作を説明するための模式図。
【図２９】第１実施形態に係る半導体記憶装置の効果を説明するための模式図。
【図３０】第１実施形態の変形例に係る半導体記憶装置の全体動作を説明するためのフローチャート。
【図３１】第１実施形態の変形例に係る半導体記憶装置の粗トラッキングにおける中位ページトラッキング動作を説明するためのフローチャート。
【図３２】第１実施形態の変形例に係る半導体記憶装置の粗トラッキングにおける中位ページトラッキング動作による分離データを説明するためのテーブル。
【図３３】第１実施形態の変形例に係る半導体記憶装置の粗トラッキングにおける中位ページトラッキング動作を説明するための模式図。
【図３４】第２実施形態に係る半導体記憶装置のシンドロームトラッキング動作を説明するための模式図。
【図３５】第２実施形態に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャート。
【図３６】第２実施形態に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作による読出しデータを説明するためのテーブル。
【図３７】第２実施形態に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作による分離データを説明するためのテーブル。
【図３８】第２実施形態に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作による統合データを説明するためのテーブル。
【図３９】第２実施形態に係る半導体記憶装置の効果を説明するための模式図。
【図４０】第２実施形態の第１変形例に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャート。
【図４１】第２実施形態の第１変形例に係る半導体記憶装置の効果を説明するための模式図。
【図４２】第２実施形態の第２変形例に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャート。
【図４３】第２実施形態の第２変形例に係る半導体記憶装置の効果を説明するための模式図。
【図４４】第２実施形態の第３変形例に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャート。
【図４５】第２実施形態の第３変形例に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャート。
【図４６】第２実施形態の第３変形例に係る半導体記憶装置の効果を説明するための模式図。
【図４７】第２実施形態の第４変形例に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャート。
【図４８】第２実施形態の第４変形例に係る半導体記憶装置の効果を説明するための模式図。
【図４９】第３実施形態に係る半導体記憶装置のクラスタを説明するための模式図。
【図５０】第３実施形態に係る半導体記憶装置の全体動作を説明するためのフローチャート。
【図５１】第３実施形態の変形例に係る半導体記憶装置のトラッキング動作を説明するためのフローチャート。
【図５２】第３実施形態の変形例に係る半導体記憶装置の効果を説明するための模式図。
【図５３】第４実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための上面図。
【図５４】第４実施形態に係る半導体記憶装置の全体動作を説明するためのフローチャート。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
【０００８】
なお、以下の説明では、信号Ｘ＜ｉ：０＞（ｉは自然数）とは、（ｉ＋１）ビットの信号であり、各々が１ビットの信号である信号Ｘ＜０＞、Ｘ＜１＞、…、及びＸ＜ｉ＞の集合を意味する。また、構成要素Ｙ＜ｉ：０＞とは、信号Ｘ＜ｉ：０＞の入力又は出力に１対１に対応する構成要素Ｙ＜０＞、Ｙ＜１＞、…、及びＹ＜ｉ＞の集合を意味する。
【０００９】
１．第１実施形態
第１実施形態に係る半導体記憶装置について説明する。
【００１０】
１．１  構成について
まず、第１実施形態に係る半導体記憶装置の構成について説明する。
【００１１】
１．１．１  メモリシステムの全体構成について
第１実施形態に係るメモリシステムの構成例について、図１を用いて説明する。図１は、第１実施形態に係るメモリシステムの構成の一例を示すブロック図である。メモリシステム１は、例えば、外部の図示しないホスト機器と通信する。メモリシステム１は、ホスト機器（図示せず）からのデータを保持し、また、データをホスト機器に読み出す。
【００１２】
図１に示すように、メモリシステム１は、コントローラ１０及び半導体記憶装置（ＮＡＮＤフラッシュメモリ）２０を備えている。コントローラ１０は、ホスト機器から命令を受取り、受け取られた命令に基づいて半導体記憶装置２０を制御する。具体的には、コントローラ１０は、ホスト機器から書込みを指示されたデータを半導体記憶装置２０に書込み、ホスト機器から読出しを指示されたデータを半導体記憶装置２０から読み出してホスト機器に送信する。コントローラ１０は、ＮＡＮＤバスによって半導体記憶装置２０に接続される。半導体記憶装置２０は、複数のメモリセルを備え、データを不揮発に記憶する。
【００１３】
ＮＡＮＤバスは、ＮＡＮＤインタフェースに従った信号／ＣＥ、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、／ＷＰ、／ＲＢ、及びＩ／Ｏ＜７：０＞の各々について、個別の信号線を介して送受信を行う。信号／ＣＥは、半導体記憶装置２０をイネーブルにするための信号である。信号ＣＬＥは、信号ＣＬＥが“Ｈ（High）”レベルである間に半導体記憶装置２０に流れる信号Ｉ／Ｏ＜７：０＞がコマンドであることを半導体記憶装置２０に通知する。信号ＡＬＥは、信号ＡＬＥが“Ｈ”レベルである間に半導体記憶装置２０に流れる信号Ｉ／Ｏ＜７：０＞がアドレスであることを半導体記憶装置２０に通知する。信号／ＷＥは、信号／ＷＥが“Ｌ（Low）”レベルである間に半導体記憶装置２０に流れる信号Ｉ／Ｏ＜７：０＞を半導体記憶装置２０に取り込むことを指示する。信号／ＲＥは、半導体記憶装置２０に信号Ｉ／Ｏ＜７：０＞を出力することを指示する。信号／ＷＰは、データ書込み及び消去の禁止を半導体記憶装置２０に指示する。信号／ＲＢは、半導体記憶装置２０がレディ状態（外部からの命令を受け付ける状態）であるか、ビジー状態（外部からの命令を受け付けない状態）であるかを示す。信号Ｉ／Ｏ＜７：０＞は、例えば８ビットの信号である。信号Ｉ／Ｏ＜７：０＞は、半導体記憶装置２０とコントローラ１０との間で送受信されるデータの実体であり、コマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＡＴを含む。データＤＡＴは、書込みデータ及び読出しデータを含む。
【００１４】
１．１．２  コントローラの構成について
引き続き図１を用いて、第１実施形態に係るメモリシステムのコントローラについて説明する。コントローラ１０は、プロセッサ（ＣＰＵ：Central Processing Unit）１１、内蔵メモリ（ＲＡＭ：Random Access Memory）１２、ＥＣＣ（Error Check and Correction）回路１３、ＮＡＮＤインタフェース回路１４、バッファメモリ１５、及びホストインタフェース回路１６を備えている。
【００１５】
プロセッサ１１は、コントローラ１０全体の動作を制御する。プロセッサ１１は、例えば、ホスト機器から受信したデータの読出し命令に応答して、ＮＡＮＤインタフェースに基づく読出し命令を半導体記憶装置２０に対して発行する。この動作は、書込み及び消去の場合についても同様である。また、プロセッサ１１は、半導体記憶装置２０からの読出しデータに対して、種々の演算を実行する機能を有する。
【００１６】
内蔵メモリ１２は、例えば、ＤＲＡＭ（Dynamic RAM）等の半導体メモリであり、プロセッサ１１の作業領域として使用される。内蔵メモリ１２は、半導体記憶装置２０を管理するためのファームウェア、及び各種の管理テーブル等を保持する。
【００１７】
ＥＣＣ回路１３は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書込み時には、ホスト機器から受信したデータに基づいて、或る数のデータの組毎にＥＣＣ符号を生成する。また、データの読出し時には、ＥＣＣ符号に基づいてＥＣＣ復号し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。ＥＣＣ回路１３は、ＬＤＰＣ（Low Density Parity Check）や、ＢＣＨ（Bose - Chaudhuri - Hocquenghem）等の種々の手法を適用可能である。
【００１８】
ＮＡＮＤインタフェース回路１４は、ＮＡＮＤバスを介して半導体記憶装置２０と接続され、半導体記憶装置２０との通信を司る。ＮＡＮＤインタフェース回路１４は、プロセッサ１１の指示により、コマンドＣＭＤ、アドレスＡＤＤ、及び書込みデータを半導体記憶装置２０に送信する。また、ＮＡＮＤインタフェース回路１４は、半導体記憶装置２０から読出しデータを受信する。
【００１９】
バッファメモリ１５は、コントローラ１０が半導体記憶装置２０及びホスト機器から受信したデータ等を一時的に保持する。バッファメモリ１５は、例えば、半導体記憶装置２０からの読出しデータ、及び読出しデータに対する演算結果等を一時的に保持する記憶領域としても使用される。
【００２０】
ホストインタフェース回路１６は、ホスト機器と接続され、ホスト機器との通信を司る。ホストインタフェース回路１６は、例えば、ホスト機器から受信した命令及びデータを、それぞれプロセッサ１１及びバッファメモリ１５に転送する。
【００２１】
１．１．３  半導体記憶装置の構成について
次に、第１実施形態に係る半導体記憶装置の構成例について、図２を用いて説明する。図２は、第１実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
【００２２】
半導体記憶装置２０は、メモリセルアレイ２１、入出力回路２２、ロジック制御回路２３、レジスタ２４、シーケンサ２５、電圧生成回路２６、ロウデコーダ２７、及びセンスアンプモジュール２８を備えている。
【００２３】
メモリセルアレイ２１は、複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を備えている。ブロックＢＬＫは、ワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタ（図示せず）を含む。ブロックＢＬＫは、例えばデータの消去単位となり、同一のブロックＢＬＫ内のデータは、一括して消去される。各ブロックＢＬＫは、複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、…）を備えている。各ストリングユニットＳＵは、ＮＡＮＤストリングＮＳの集合である。ＮＡＮＤストリングＮＳは、複数のメモリセルトランジスタを含む。なお、メモリセルアレイ２１内のブロック数、１ブロックＢＬＫ内のストリングユニット数、及び１ストリングユニットＳＵ内のＮＡＮＤストリング数は、任意の数に設定出来る。
【００２４】
入出力回路２２は、コントローラ１０と信号Ｉ／Ｏ（Ｉ／Ｏ１〜Ｉ／Ｏ８）を送受信する。入出力回路２２は、信号Ｉ／Ｏ内のコマンドＣＭＤ及びアドレスＡＤＤをレジスタ２４に転送する。入出力回路２２は、書き込みデータ及び読み出しデータをセンスアンプモジュール２８と送受信する。
【００２５】
ロジック制御回路２３は、コントローラ１０から信号／ＣＥ、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、及び／ＷＰを受信する。また、ロジック制御回路２３は、信号／ＲＢをコントローラ１０に転送して半導体記憶装置２０の状態を外部に通知する。
【００２６】
レジスタ２４は、コマンドＣＭＤ及びアドレスＡＤＤを保持する。レジスタ２４は、アドレスＡＤＤをロウデコーダ２７及びセンスアンプモジュール２８に転送すると共に、コマンドＣＭＤをシーケンサ２５に転送する。
【００２７】
シーケンサ２５は、コマンドＣＭＤを受け取り、受け取ったコマンドＣＭＤに基づくシーケンスに従って半導体記憶装置２０の全体を制御する。
【００２８】
電圧生成回路２６は、シーケンサ２５からの指示に基づき、データの書込み、読出し、及び消去等の動作に必要な電圧を生成する。電圧生成回路２６は、生成した電圧をロウデコーダ２７及びセンスアンプモジュール２８に供給する。
【００２９】
ロウデコーダ２７は、レジスタ２４からアドレスＡＤＤ中のロウアドレスを受取り、当該ロウアドレスに基づいてブロックＢＬＫを選択する。そして、選択されたブロックＢＬＫには、ロウデコーダ２７を介して電圧生成回路２６からの電圧が転送される。
【００３０】
センスアンプモジュール２８は、データの読出し時には、メモリセルトランジスタからビット線に読み出された読出しデータをセンスし、センスした読出しデータを入出力回路２２に転送する。センスアンプモジュール２８は、データの書込み時には、ビット線を介して書込まれる書込みデータをメモリセルトランジスタに転送する。また、センスアンプモジュール２８は、レジスタ２４からアドレスＡＤＤ中のカラムアドレスを受取り、当該カラムアドレスに基づくカラムのデータを出力する。
【００３１】
１．１．４  メモリセルアレイの構成について
次に、第１実施形態に係る半導体記憶装置のメモリセルアレイの構成について、図３を用いて説明する。図３は、第１実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図の一例である。
【００３２】
図３に示すように、ＮＡＮＤストリングＮＳの各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、選択トランジスタＳＴ１と、選択トランジスタＳＴ２とを備える。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各メモリセルトランジスタＭＴは、選択トランジスタＳＴ１及びＳＴ２の間に、直列接続される。なお、以下の説明では『接続』とは、間に別の導電可能な要素が介在する場合も含む。
【００３３】
或るブロックＢＬＫ内において、ストリングユニットＳＵ０〜ＳＵ３の選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に接続される。また、ブロックＢＬＫ内の全てのストリングユニットＳＵの選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続される。同一のブロックＢＬＫ内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に接続される。すなわち、同じアドレスのワード線ＷＬは、同一のブロックＢＬＫ内の全てのストリングユニットＳＵに共通接続されており、選択ゲート線ＳＧＳは、同一のブロックＢＬＫ内の全てのストリングユニットＳＵに共通接続されている。一方、選択ゲート線ＳＧＤは、同一のブロックＢＬＫ内のストリングユニットＳＵの１つのみに接続される。
【００３４】
また、メモリセルアレイ２１内でマトリクス状に配置されたＮＡＮＤストリングＮＳのうち、同一行にあるＮＡＮＤストリングＮＳの選択トランジスタＳＴ１の他端は、ｍ本のビット線ＢＬ（ＢＬ０〜ＢＬ（ｍ−１）（ｍは自然数））のいずれかに接続される。また、ビット線ＢＬは、複数のブロックＢＬＫにわたって、同一列のＮＡＮＤストリングＮＳに共通接続される。
【００３５】
また、選択トランジスタＳＴ２の他端は、ソース線ＣＥＬＳＲＣに接続される。ソース線ＣＥＬＳＲＣは、複数のブロックＢＬＫにわたって、複数のＮＡＮＤストリングＮＳに共通接続される。
【００３６】
上述のとおり、データの消去は、例えば、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴに対して一括して行われる。これに対して、データの読出し及び書込みは、いずれかのブロックＢＬＫのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴにつき、一括して行われ得る。このような、１つのストリングユニットＳＵ中でワード線ＷＬを共有するメモリセルトランジスタＭＴの組は、例えば、セルユニットＣＵと称される。つまり、セルユニットＣＵは、一括して書込み、又は読み出し動作が実行されるメモリセルトランジスタＭＴの組である。セルユニットＣＵは、例えば、１又は複数の記憶領域の組を有し、１つのセルユニットＣＵに対する書込み又は読出し動作は、当該記憶領域の組の１つに対して実行される。このような記憶領域の単位を「ページ」と言う。
【００３７】
次に、メモリセルアレイ２１の断面構造について図４を用いて説明する。図４は、第１実施形態に係る半導体記憶装置のメモリセルアレイの一部の断面構造の一例を示している。特に、図４は、１つのブロックＢＬＫ内の２つのストリングユニットＳＵ０及びＳＵ１に関する部分を示している。具体的には、図４は、２つのストリングユニットＳＵ０及びＳＵ１のそれぞれの２つのＮＡＮＤストリングＮＳと、その周辺の部分と、を示している。そして、図４に示されるＮＡＮＤストリングＮＳの構成が、Ｘ方向及びＹ方向に複数配列されており、例えばＸ方向及びＹ方向に並ぶ複数のＮＡＮＤストリングＮＳの集合が１つのストリングユニットＳＵに相当する。
【００３８】
半導体記憶装置２０は、半導体基板３０上に設けられている。以下の説明では、半導体基板３０の表面と平行な面をＸＹ平面とし、ＸＹ平面に垂直な方向をＺ方向とする。また、Ｘ方向とＹ方向は、互いに直交するものとする。
【００３９】
半導体基板３０の上部には、ｐ型ウェル領域３０ｐが設けられる。ｐ型ウェル領域３０ｐ上に、複数のＮＡＮＤストリングＮＳが設けられる。すなわち、ｐ型ウェル領域３０ｐ上には、例えば、選択ゲート線ＳＧＳとして機能する配線層３１、ワード線ＷＬ０〜ＷＬ７として機能する８層の配線層３２（ＷＬ０〜ＷＬ７）、及び選択ゲート線ＳＧＤとして機能する配線層３３が、順次積層される。配線層３１及び３３は、複数層積層されていてもよい。積層された配線層３１〜３３間には、図示せぬ絶縁膜が設けられる。
【００４０】
配線層３１は、例えば、１つのブロックＢＬＫ内の複数のＮＡＮＤストリングＮＳの各々の選択トランジスタＳＴ２のゲートに共通接続される。配線層３２は、各層毎に、１つのブロックＢＬＫ内の複数のＮＡＮＤストリングＮＳの各々のメモリセルトランジスタＭＴの制御ゲートに共通接続される。配線層３３は、１つのストリングユニットＳＵ内の複数のＮＡＮＤストリングＮＳの各々の選択トランジスタＳＴ１のゲートに共通接続される。
【００４１】
メモリホールＭＨは、配線層３３、３２、３１を通過してｐ型ウェル領域３０ｐに達するように設けられる。メモリホールＭＨの側面上には、ブロック絶縁膜３４、電荷蓄積層（絶縁膜）３５、及びトンネル酸化膜３６が順に設けられる。メモリホールＭＨ内には、半導体ピラー（導電膜）３７が埋め込まれる。半導体ピラー３７は、例えばノンドープのポリシリコンであり、ＮＡＮＤストリングＮＳの電流経路として機能する。半導体ピラー３７の上端上には、ビット線コンタクトＢＬＣとして機能するコンタクトプラグ３８が設けられる。コンタクトプラグ３８の上端上には、ビット線ＢＬとして機能する配線層３９が設けられる。なお、１つのストリングユニットＳＵ内の１つのＮＡＮＤストリングＮＳは、コンタクトプラグ３８を介して、他のストリングユニットＳＵ内の１つのＮＡＮＤストリングＮＳと同一の配線層３９に接続される。
【００４２】
以上のように、ｐ型ウェル領域３０ｐの上方には、選択トランジスタＳＴ２、複数のメモリセルトランジスタＭＴ、及び選択トランジスタＳＴ１が順に積層されており、１つのメモリホールＭＨが、１つのＮＡＮＤストリングＮＳに対応している。
【００４３】
ｐ型ウェル領域３０ｐの上部には、ｎ＋型不純物拡散領域４０及びｐ＋型不純物拡散領域４１が設けられる。ｎ＋型不純物拡散領域４０の上面上には、コンタクトプラグ４２が設けられる。コンタクトプラグ４２の上面上には、ソース線ＣＥＬＳＲＣとして機能する配線層４３が設けられる。ｐ＋型不純物拡散領域４１の上面上にはコンタクトプラグ４４が設けられる。コンタクトプラグ４４の上面上には、ウェル線ＣＰＷＥＬＬとして機能する配線層４５が設けられる。
【００４４】
ストリングユニットＳＵ０側に設けられる配線層３３と、ストリングユニットＳＵ１側に設けられる配線層３３とは、絶縁領域４６によって互いに絶縁される。また、ストリングユニットＳＵ０及びＳＵ１は、図示しない他のストリングユニットＳＵとスリット領域４７によって区分けされる。
【００４５】
なお、メモリセルアレイ２１の構成については、その他の構成であってもよい。メモリセルアレイ２１の構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４６】
１．１．５  メモリセルトランジスタの閾値分布について
次に、メモリセルトランジスタＭＴの取り得る閾値電圧の分布について、図５を用いて説明する。図５は、第１実施形態に係る半導体記憶装置のメモリセルトランジスタの閾値電圧の分布の一例を示す模式図である。図５では、１つのメモリセルトランジスタＭＴに３ビットのデータが保持される場合（ＴＬＣ：Triple Level Cell）の例が示される。
【００４７】
図５に示すように、メモリセルトランジスタＭＴの閾値電圧は、上位（Ｕｐｐｅｒ）ビット（上位データ）、中位（Ｍｉｄｄｌｅ）ビット（中位データ）、及び下位（Ｌｏｗｅｒ）ビット（下位データ）による３ビットデータ、すなわち“１１１”、“１１０”、“１００”、“０００”、“０１０”、“０１１”、“００１”、及び“１０１”データを保持可能である。
【００４８】
“１１１”データの閾値電圧は、“Ｅｒ”レベルであり、例えば、データの消去状態に相当する。そして、“Ｅｒ”レベルに含まれる閾値電圧は、電圧ＡＲより小さく、正又は負の値を有する。
【００４９】
“１１０”、“１００”、“０００”、“０１０”、“０１１”、“００１”、及び“１０１”データの閾値電圧は、それぞれ“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”、“Ｆ”、及び“Ｇ”レベルである。“Ａ”レベル〜“Ｇ”レベルは、電荷蓄積層３５に電荷が注入されてメモリセルトランジスタＭＴにデータが書込まれた状態に相当し、各分布に含まれる閾値電圧は、例えば正の値を有する。“Ａ”レベルに含まれる閾値電圧は、読出し電圧ＡＲより大きく、かつ読出し電圧ＢＲより小さい。“Ｂ”レベルに含まれる閾値電圧は、読出し電圧ＢＲより大きく、かつ読出し電圧ＣＲより小さい。“Ｃ”レベルに含まれる閾値電圧は、読出し電圧ＣＲより大きく、かつ読出し電圧ＤＲより小さい。“Ｄ”レベルに含まれる閾値電圧は、読出し電圧ＤＲより大きく、かつ読出し電圧ＥＲより小さい。“Ｅ”レベルに含まれる閾値電圧は、読出し電圧ＥＲより大きく、かつ読出し電圧ＦＲより小さい。“Ｆ”レベルに含まれる閾値電圧は、読出し電圧ＦＲより大きく、かつ読出し電圧ＧＲより小さい。そして、“Ｇ”レベルに含まれる閾値電圧は、読出し電圧ＧＲより大きく、電圧ＶＲＥＡＤより小さい。電圧ＶＲＥＡＤは、或るブロックＢＬＫ内へのデータの読出しの際に、読出しの対象ではないワード線ＷＬに印加される電圧である。また、電圧ＡＲ〜ＧＲは、総称して電圧ＶＣＧＲＶとも言う。
【００５０】
以上のように、各メモリセルトランジスタＭＴは、８個の閾値電圧の分布のいずれかを有することで、８種類の状態を取ることができる。なお、各データと閾値レベルとの関係は上記に限定されるものではなく、適宜変更可能である。
【００５１】
また、上述の通り、データの書込み及び読出しは、１つのセルユニットＣＵ内のページ単位で行われる。図５の例では、データは下位ビット毎、中位ビット毎、又は上位ビット毎に書込まれ、読み出される。したがって、メモリセルトランジスタＭＴが３ビットデータを保持している場合には、１つのセルユニットＣＵ内の３つのページにそれぞれ、上位ビット、中位ビット、及び下位ビットに対応するデータが割当てられる。以下の説明では、上位ビット、中位ビット、及び下位ビットについて一括して書込み又は読み出されるページは、それぞれ、上位ページ、中位ページ、及び下位ページと言う。
【００５２】
１．１．６  センスアンプモジュールの構成について
次に、第１実施形態に係る半導体記憶装置のセンスアンプモジュールの構成について説明する。図６は、第１実施形態に係る半導体記憶装置のセンスアンプモジュールの構成の一例を説明するための平面図である。図６に示すように、センスアンプモジュール２８は、ビット線ＢＬ毎に設けられたセンスアンプユニットＳＡＵ（ＳＡＵ０、ＳＡＵ１、…、ＳＡＵ（ｍ−１））を備えている。
【００５３】
センスアンプユニットＳＡＵの各々は、センスアンプＳＡ、演算部ＯＰ、及び例えば５つのラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、並びにＸＤＬを備えている。
【００５４】
センスアンプＳＡは、対応するビット線ＢＬに読み出されたデータをセンスし、又書込みデータに応じてビット線ＢＬに電圧を印加する。すなわちセンスアンプＳＡは、ビット線ＢＬを直接的に制御するモジュールである。そしてセンスアンプＳＡには、読出し時には、例えばシーケンサ２５によってストローブ信号ＳＴＢが与えられる。センスアンプＳＡは、ストローブ信号ＳＴＢがアサートされるタイミングで読み出しデータを確定させる。そして、内部に有するラッチ回路（図示せず）にこのデータを保持し、更にラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬのいずれかに転送する。
【００５５】
ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬは、読出しデータ及び書込みデータを一時的に保持する。演算部ＯＰは、センスアンプＳＡ、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬに保持されているデータに対して、否定（ＮＯＴ）演算、論理和（ＯＲ）演算、論理積（ＡＮＤ）演算、否定論理積（ＮＡＮＤ）演算、否定論理和（ＮＯＲ）演算、排他的論理和（ＸＯＲ）演算等、種々の論理演算を行う。
【００５６】
これらのセンスアンプＳＡ、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬ、並びに演算部ＯＰは、互いにデータを送受信可能なようにバスによって接続されている。そしてこのバスは、更にラッチ回路ＸＤＬに接続されている。
【００５７】
センスアンプモジュール２８におけるデータの入出力は、ラッチ回路ＸＤＬを介して行われる。すなわち、コントローラ１０から受信したデータは、ラッチ回路ＸＤＬを介して、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、又はセンスアンプＳＡに転送される。また、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ又はセンスアンプＳＡのデータは、ラッチ回路ＸＤＬを介して、信号Ｉ／Ｏ＜７：０＞のいずれかの信号としてコントローラ１０へ送信される。ラッチ回路ＸＤＬは、半導体記憶装置２０のキャッシュメモリとして機能する。したがって、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬが使用中であったとしても、ラッチ回路ＸＤＬが空いていれば、半導体記憶装置２０はレディ状態となることができる。
【００５８】
なお、図６の例では、ビット線ＢＬ０は、信号Ｉ／Ｏ＜０＞を通信する信号線に接続され、ビット線ＢＬ１は、信号Ｉ／Ｏ＜１＞を通信する信号線に接続され、ビット線ＢＬ（ｍ−１）に接続されたラッチ回路ＸＤＬは、信号Ｉ／Ｏ＜７＞を通信する信号線に接続されている。このように、ビット線ＢＬとコントローラ１０との間を接続する信号線は、信号Ｉ／Ｏ＜７：０＞のいずれかに対応している。すなわち、或るビット線ＢＬに接続されたＮＡＮＤストリングＮＳは、信号Ｉ／Ｏ＜７：０＞のいずれかに対応付けられる。
【００５９】
１．２  動作について
次に、第１実施形態に係る半導体記憶装置の動作について説明する。
【００６０】
１．２．１  読出し動作について
まず、第１実施形態に係る半導体記憶装置において用いられる各種読出し動作について説明する。
【００６１】
１．２．１．１  テストリードについて
第１実施形態に係る半導体記憶装置におけるテストリード動作について説明する。「テストリード（test reading）」とは、後述する「ノーマルリード（normal reading）」及び「シフトリード（shift reading）」と区別するための用語であり、例えば、単一の特別な読出し電圧を用いて読出し動作を実行するものである。以下の説明では、テストリードに用いられる読出し電圧に対しては、読出し電圧の末尾に“ｔ”を付して、他の読出し動作における読出し電圧と区別する。
【００６２】
図７は、第１実施形態に係る半導体記憶装置におけるテストリード動作の概要を示すための、半導体記憶装置２０内の非選択ワード線、選択ワード線、ノードＳＥＮ、及び信号ＳＴＢのタイミングチャートである。ノードＳＥＮは、センスアンプＳＡ内に含まれるノードであり、選択ワード線に接続されたメモリセルトランジスタＭＴがオン状態となるかオフ状態となるかにより、ノードＳＥＮの電位が変動し、この変動量に応じてデータが“０”か“１”かが判定される。本例では、ノードＳＥＮの電位が或る閾値を下回った際には、センスアンプＳＡはメモリセルトランジスタＭＴがオン状態であると判定し、内部のラッチ回路にデータ“０”を保持する。逆に、ノードＳＥＮの電位が或る電位以上を維持すれば、センスアンプＳＡはメモリセルトランジスタＭＴがオフ状態であると判定し、データ“１”を保持する。
【００６３】
図７に示すように、テストリードでは、ロウデコーダ２７は、選択ワード線ＷＬに、時刻Ｔ１において或る電圧Ｖｔを印加する。またこの間、ロウデコーダ２７は、非選択ワード線に電圧ＶＲＥＡＤを印加し、センスアンプＳＡ内のノードＳＥＮは、電圧ＶＳＳより高い電位ＶＳＥＮに充電される。そして、シーケンサ２５は、選択ワード線ＷＬに電圧Ｖｔが印加されている間である時刻Ｔ２において、信号ＳＴＢをアサート（図７の例では“Ｈ”レベル）する。
【００６４】
例えば、選択ワード線ＷＬに電圧Ｖｔが印加されることによってメモリセルトランジスタＭＴがオンした場合には、ビット線ＢＬからソース線ＳＬに電流が流れる。この結果、ノードＳＥＮの電荷も放電され、ノードＳＥＮの電位が低下する。センスアンプＳＡは、時刻Ｔ２において信号ＳＴＢをアサートして、ノードＳＥＮの状態をラッチ回路に取り込む。つまり、ノードＳＥＮの電位が低下していればラッチ回路にデータ“０”が格納され、一低電位以上を維持していればラッチ回路にデータ“１”が保持される。
【００６５】
以上のように、テストリードでは、単一の特別な読出しレベル（電圧Ｖｔ）によってデータが確定する。
【００６６】
１．２．１．２  ノーマルリードについて
次に、第１実施形態に係る半導体記憶装置におけるノーマルリード動作について説明する。「ノーマルリード」とは、「テストリード」とは異なり、データを読み出す際に予め定められた（デフォルトの）読出し電圧によってデータを読み出す動作を意味する。以下の説明では、ノーマルリードに用いられる読出し電圧に対しては、各レベルの読出し電圧の末尾に“ｄｅｆ”を付して、他の読出し動作における読出し電圧と区別する。
【００６７】
図８は、第１実施形態に係る半導体記憶装置におけるノーマルリード動作の概要を示すための、半導体記憶装置２０内の非選択ワード線、選択ワード線、ノードＳＥＮ、及び信号ＳＴＢのタイミングチャートである。
【００６８】
図８では、一例として、中位ページを読み出す場合を示している。
【００６９】
図８に示すように、中位ページ読出しでは、ロウデコーダ２７は、選択ワード線ＷＬに、時刻Ｔ３において電圧ＢＲｄｅｆを、時刻Ｔ５において電圧ＤＲｄｅｆを、時刻Ｔ７において電圧ＦＲｄｅｆを、それぞれ印加する。またこの間、ロウデコーダ２７は、非選択ワード線に電圧ＶＲＥＡＤを印加し、センスアンプＳＡ内のノードＳＥＮは、電圧ＶＳＳより高い電位ＶＳＥＮに充電される。そして、シーケンサ２５は、選択ワード線ＷＬに電圧ＢＲｄｅｆ、ＤＲｄｅｆ、及びＦＲｄｅｆの各々が印加されている間に１回ずつ、すなわち時刻Ｔ４、Ｔ６、及びＴ８においてそれぞれ、信号ＳＴＢをアサートする。
【００７０】
例えば、選択ワード線ＷＬに電圧ＢＲｄｅｆが印加されることによってメモリセルトランジスタＭＴがオンした場合には、センスアンプＳＡは、時刻Ｔ４において信号ＳＴＢをアサートして、ノードＳＥＮの状態をラッチ回路に取り込む。選択ワード線ＷＬに電圧ＤＲｄｅｆ又はＦＲｄｅｆが印加される場合も同様であり、時刻Ｔ６及びＴ８で信号ＳＴＢをアサートして、ノードＳＥＮの電位に基づくデータをラッチ回路に保持させる。
【００７１】
演算部ＯＰは、ラッチ回路に保持された３つの読出しレベルに基づくデータを用いて演算処理を行い、１つの読出しデータを生成する。
【００７２】
以上のように、中位データ読出しでは、３つの読出しレベル（電圧ＢＲｄｅｆ、ＤＲｄｅｆ、及びＦＲｄｅｆ）によってデータが確定する。
【００７３】
なお、下位データ読出し及び上位データ読出しでは、２つの読出しレベル（下位データ読出しの場合は電圧ＡＲｄｅｆ及びＥＲｄｅｆ、上位データ読出しの場合は電圧ＣＲｄｅｆ及びＧＲｄｅｆ）によってデータが確定する。
【００７４】
１．２．１．３  シフトリードについて
次に、第１実施形態に係る半導体記憶装置におけるシフトリード動作について説明する。シフトリードは、例えば、ノーマルリードでは正しくデータを読み出せない場合に実行される。
【００７５】
先に説明した図５では、各データの閾値電圧分布は互いに独立している。よって、読出し電圧として電圧ＶＣＧＲＶｄｅｆを各データの閾値電圧分布の間に設定することで、ノーマルリードは正しいデータを読み出すことができる。
【００７６】
しかしながら、種々の要因により、メモリセルトランジスタＭＴの閾値電圧は変動し得る。その結果、図５における各データの閾値電圧分布は、その分布幅が広がり、又は分布が移動することにより、隣接する分布同士が重なる場合がある。この様子を図９に示す。例えば、書込み直後において、“Ａ”レベル及び“Ｂ”レベルの閾値電圧分布が図９（Ａ）に示す通りであったとする。しかし、ディスターブ等の要因により、図９（Ｂ）に示すように閾値電圧の分布が広がったとする。すると、当初設定されていた読出し電圧ＢＲｄｅｆで読出しを行うと、斜線部分の領域に相当するメモリセルトランジスタＭＴの読出しデータがエラーとなる。そして、エラービット数がＥＣＣ回路１３のエラー訂正可能ビット数を超えていれば、データを正しく訂正することができない。
【００７７】
このような場合、エラービット数が少なくなるように、より２つのレベルの閾値電圧分布の重なりが小さくなる電圧（例えば、閾値電圧分布の重なりが最も小さくなる電圧ＢＲｏｐｔ）が新たな読出し電圧として設定されることが望ましい。このように、ノーマルリードにおいて予め定められた電圧（例えば電圧ＢＲｄｅｆ）から或る値だけずらした電圧（例えば電圧ＢＲｏｐｔ）を読出し電圧に設定して行う読出し動作を、シフトリードと言う。このように、シフトリードは、ノーマルリードに対して読出し電圧を変化させた読出し方式である。シフトリードは、予め定められた電圧と異なる読出し電圧が使用されはするものの、対象のページのデータが読み出される点で、ノーマルリードと同じである。
【００７８】
図１０は、第１実施形態に係る半導体記憶装置のシフトリード動作を説明するためのコマンドシーケンスである。
【００７９】
図１０に示すように、コントローラ１０は、まずプリフィックスコマンド“ｘｘｈ”を発行する。コマンド“ｘｘｈ”は、コントローラ１０が半導体記憶装置２０に対して、シフトリードを行う旨を宣言するためのコマンドである。引き続きコントローラ１０は、例えば１サイクルにわたってアドレスを発行する。その後、コントローラ１０は、例えば４サイクルにわたって電圧ＶＣＧＲＶｄｅｆのシフト量に対応する値ΔＤＡＣ１〜ΔＤＡＣ４を発行する。ＤＡＣ（D/A converter）値は、例えば、コントローラ１０が半導体記憶装置２０に読出し電圧ＶＣＧＲＶを指定する際の指示値である。例えば、値ΔＤＡＣ１〜ΔＤＡＣ４はそれぞれ、シフトリードにおいて１〜４番目に選択ワード線ＷＬに印加されるレベルの読出し電圧ＶＣＧＲＶｄｅｆからのシフト量ΔＶ１〜ΔＶ４に対応する。より具体的には、例えば、中位ページのシフトリードにおいて値ΔＤＡＣ１〜ΔＤＡＣ３が指定された場合、“Ｂ”レベル、“Ｄ”レベル、及び“Ｆ”レベルの読出し電圧ＢＲ、ＤＲ、及びＦＲは、シフト量ΔＶ１〜ΔＶ３を用いて、以下のように表される。
ＢＲ＝ＢＲｄｅｆ＋ΔＶ１（ΔＤＡＣ１）
ＤＲ＝ＢＲｄｅｆ＋ΔＶ２（ΔＤＡＣ２）
ＦＲ＝ＢＲｄｅｆ＋ΔＶ３（ΔＤＡＣ３）
なお、中位データのシフトリードにおいて、値ΔＤＡＣ４は冗長データであり、更に付加的な情報が設定されてもよい。
【００８０】
上述の例は、下位ページ及び上位ページのシフトリードにおいても同様である。すなわち、下位ページのシフトリードにおいて値ΔＤＡＣ１及びΔＤＡＣ２が指定された場合、“Ａ”レベル及び“Ｅ”レベルの読出し電圧ＡＲ及びＥＲは、シフト量ΔＶ１及びΔＶ２を用いて、以下のように表される。
ＡＲ＝ＡＲｄｅｆ＋ΔＶ１（ΔＤＡＣ１）
ＥＲ＝ＥＲｄｅｆ＋ΔＶ２（ΔＤＡＣ２）
また、上位ページのシフトリードにおいて値ΔＤＡＣ１及びΔＤＡＣ２が指定された場合、“Ｃ”レベル及び“Ｇ”レベルの読出し電圧ＣＲ及びＧＲは、シフト量ΔＶ１及びΔＶ２を用いて、以下のように表される。
ＣＲ＝ＣＲｄｅｆ＋ΔＶ１（ΔＤＡＣ１）
ＧＲ＝ＧＲｄｅｆ＋ΔＶ２（ΔＤＡＣ２）
なお、下位データ及び上位データのシフトリードにおいて、値ΔＤＡＣ３及びΔＤＡＣ４は冗長データであり、更に付加的な情報が設定されてもよい。
【００８１】
更にコントローラ１０は、コマンド“ｚｚｈ”を発行する。コマンド“ｚｚｈ”は、変数であり、例えば“ｚｚｈ”＝“０１ｈ”の場合には下位ページ読出しを命令し、“ｚｚｈ”＝“０２ｈ”の場合には中位ページ読出しを命令し、“ｚｚｈ”＝“０３ｈ”の場合には上位ページ読出しを命令する。
【００８２】
その後は、コントローラ１０は、ノーマルリードと同様に、第１読出しコマンド“００ｈ”を発行し、引き続き例えば５サイクルにわたってアドレス（カラムアドレス、ブロックアドレス、ページアドレスを含む）を発行する。その後、コントローラ１０は、第２読出しコマンド“３０ｈ”を発行する。
【００８３】
コマンド“３０ｈ”がレジスタ２４に格納されると、シーケンサ２５は、電圧生成回路２６、ロウデコーダ２７、及びセンスアンプモジュール２８等を制御して、読出し動作を開始する。ロジック制御回路２３は、信号／ＲＢを“Ｌ”レベルにして、半導体記憶装置２０がビジー状態であることをコントローラ１０に知らせる。読出し動作の間、コントローラ１０から送信されたアドレスに相当する領域から１ページ分のデータが読み出され、ラッチ回路ＡＤＬ〜ＤＤＬのいずれかに保持される。保持されたデータは、必要に応じて演算部ＯＰによる所定の演算処理が実行された後、ラッチ回路ＸＤＬに保持される。ロジック制御回路２３は、信号／ＲＢを“Ｈ”レベルにして、半導体記憶装置２０がレディ状態であることをコントローラ１０に知らせる。
【００８４】
コントローラ１０は、半導体記憶装置２０がレディ状態になると、信号／ＲＥを繰り返しアサートする。信号／ＲＥがトグルされるたびに、メモリセルアレイ２１から読み出されたデータがコントローラ１０へ送信される。
【００８５】
なお、上記コマンドシーケンスにおいて、半導体記憶装置２０にコマンドを入力する際には、コントローラ１０は信号ＣＬＥをアサートし、アドレスを入力する際には信号ＡＬＥをアサートし、データを入力する際には信号ＣＬＥ及びＡＬＥをネゲートする。また、半導体記憶装置２０に何らかの信号を入力する際には、コントローラ１０は、信号／ＷＥをトグルさせる。
【００８６】
１．２．２  トラッキング動作について
データ読出しの際にエラービット数を最少とするためには、２つのレベルの閾値電圧分布の重なりが最小となる谷位置における電圧（例えば、図９（Ｂ）における電圧ＢＲｏｐｔ）でシフトリードを行うことが望ましい。以下の説明では、最適な読出し電圧に対しては、各レベルの読出し電圧の末尾に“ｏｐｔ”を付して、他の読出し動作における読出し電圧と区別する。そして、以下では、最適な読出し電圧ＶＣＧＲＶｏｐｔを探索するための動作（トラッキング動作）について説明する。
【００８７】
１．２．２．１  ビットカウントトラッキングについて
第１実施形態に係るトラッキング動作の全体動作を説明する前に、ビットカウントトラッキングについて説明する。ビットカウントトラッキングは、第１実施形態に係る半導体記憶装置に対するトラッキング動作を構成する基本的な概念である。
【００８８】
図１１は、第１実施形態に係る半導体記憶装置のビットカウントトラッキングを説明するための模式図である。図１１（Ａ）は、メモリセルトランジスタＭＴ群の閾値電圧の分布の一例として、“Ａ”レベル及び“Ｂ”レベルの閾値電圧分布を示したグラフである。図１１（Ｂ）は、或る読出し電圧に対してオン状態となるメモリセル数（オンセル数）の推移を示したグラフである。図１１（Ｃ）は、読出し電圧の範囲におけるオンセル数変化量を示したヒストグラムである。なお、図１１（Ｂ）及び１１（Ｃ）は、図１１（Ａ）の閾値電圧分布を有するメモリセルトランジスタＭＴ群に対応してプロットされたものである。
【００８９】
図１１（Ｂ）に示すように、読出し電圧を上昇させていくと、“Ａ”レベルの中央値である電圧ＶＡよりわずかに小さい電圧でオンセル数が急激に増大し、ｄＭ／ｄＶが最大となる。ここで、中央値とは、図１１（Ａ）において最も閾値電圧の分布確率が高い電圧であり、Ｍはオンセル数で、Ｖは選択ワード線ＷＬの電圧である。更に読出し電圧を大きくしていくと、オンセル数の増加率は小さくなり、或る値において最小値となる。この読出し電圧における増加率は、“Ａ”レベルの閾値電圧分布と、“Ｂ”レベルの閾値電圧の分布とが重ならない場合にはゼロとなる。他方で重なる場合には、或る一定のゼロではない最小値（＞０）となる。そして更に読出し電圧を大きくしていくと、再びオンセル数の増加率が大きくなり、“Ｂ”レベルの中央値である電圧ＶＢよりわずかに小さい電圧で再びｄＭ／ｄＶが最大となる。
【００９０】
上述のオンセル数の累積値の変化によって、２つのレベル間の谷位置、すなわち２つのレベルの閾値電圧分布の重なりが最も小さくなる読出し電圧の位置を検出することができる。例えば、まず、読出し電圧Ｖ１を用いて読出し動作が行われる。この時のオンセル数をＭ１とする。次に、電圧Ｖ１よりΔＶだけ大きい電圧Ｖ２を用いて読出し動作が行われる。この時のオンセル数をＭ２とする。すると、選択ワード線ＷＬの電圧がＶ１からＶ２に上昇した際に新たにオンするメモリセルトランジスタＭＴの数は、（Ｍ２−Ｍ１）個である。
【００９１】
引き続き、電圧Ｖ２よりΔＶだけ大きい電圧Ｖ３を用いて読出し動作を行う。この時のオンセル数をＭ３とする。すると、選択ワード線ＷＬの電圧がＶ２からＶ３に上昇した際に新たにオンするメモリセルトランジスタＭＴの数は、（Ｍ３−Ｍ２）個である。そして、（Ｍ２−Ｍ１）＞（Ｍ３−Ｍ２）であったとすれば、ｄＭ／ｄＶが最小となる電圧は、少なくとも電圧Ｖ２より高いと考えられる。
【００９２】
引き続き、電圧Ｖ３よりΔＶだけ大きい電圧Ｖ４を用いて読出し動作を行う。この時のオンセル数がＭ４であり、（Ｍ３−Ｍ２）＞（Ｍ４−Ｍ３）であったとすれば、図１１（Ｃ）のようなヒストグラムが得られる。
【００９３】
以上の結果、オンセル数変化量によって、図１１（Ｃ）における一点鎖線で示されるような閾値電圧分布を推測することができ、“Ａ”レベルと“Ｂ”レベルの間の谷位置が電圧Ｖ２と電圧Ｖ３との間にあることが推定できる。
【００９４】
オンセル数変化量は、例えば、読出し電圧を変化させることによって１ページ当たりの読出しデータ内のビット数（ビットカウント）が変化する様子を追跡することにより抽出される。これらの動作を総称してビットカウントトラッキングという。
【００９５】
１．２．２．２  全体動作について
図１２は、第１実施形態に係る半導体記憶装置のトラッキングの全体動作を説明するためのフローチャートである。
【００９６】
図１２に示すように、ステップＳＴ１において、コントローラ１０は、既定の読出し電圧ＶＣＧＲＶｄｅｆを適用したノーマルリードコマンドを半導体記憶装置２０に発行する。
【００９７】
ステップＳＴ２において、半導体記憶装置２０は、ノーマルリードを実行し、読出しデータをコントローラ１０に送信する。
【００９８】
ステップＳＴ３において、ＥＣＣ回路１３は、ノーマルリードの読出しデータに基づいてＥＣＣを実行する。コントローラ１０は、ノーマルリードの読出しデータがＥＣＣをパスした場合（ステップＳＴ３；パス）、ステップＳＴ１４に進み、フェイルした場合、（ステップＳＴ３；フェイル）、ステップＳＴ４に進む。
【００９９】
ステップＳＴ４以降のステップによって、コントローラ１０は、７つの電圧ＡＲ〜ＧＲの最適な値の発見を試みる。そのために、コントローラ１０は、２段階のトラッキング動作を行う。コントローラ１０は、第１段階目のトラッキング動作によって、トラッキング動作を行う複数の範囲を特定し、第２段階目のトラッキング動作によって、特定された範囲でトラッキング動作を行って最適な電圧ＡＲ〜ＧＲを推定する。
【０１００】
ステップＳＴ４及びＳＴ５において、コントローラ１０及び半導体記憶装置２０は、１段階目のトラッキング動作（下位ページトラッキング動作及び上位ページトラッキング動作）をそれぞれ行う。下位ページトラッキング動作及び上位ページトラッキング動作の詳細については、後述する。
【０１０１】
ステップＳＴ６において、コントローラ１０は、１段階目のトラッキング動作の結果に基づいて、後続する２段階目のトラッキング動作に用いるサーチ範囲及び暫定的な谷位置を検出する。
【０１０２】
ステップＳＴ４〜ＳＴ６における動作は、粗いシフト量によるフルレベルのシフトリードトラッキング（以下、「粗トラッキング(Coarse tracking)」とも言う。）である。粗トラッキング動作の詳細については、後述する。
【０１０３】
ステップＳＴ７〜ＳＴ９において、コントローラ１０及び半導体記憶装置２０は、粗トラッキング動作によって検出された探索範囲で、第２段階目のトラッキング動作（下位ページトラッキング動作、中位ページトラッキング動作、及び上位ページトラッキング動作）を行う。ステップＳＴ７及びＳＴ９の各動作はそれぞれ、探索範囲及びシフト量が異なる点を除き、ステップＳＴ４及びＳＴ５における各動作と同等である。中位ページトラッキング動作の詳細については、後述する。
【０１０４】
ステップＳＴ１０において、コントローラ１０は、２段階目のトラッキング動作の結果に基づいて、後続するシフトリードに用いる最適な谷位置を検出する。
【０１０５】
ステップＳＴ７〜ＳＴ１０における動作は、細かいシフト量による検出されたサーチ範囲のシフトリードトラッキング（以下、「精トラッキング(Fine tracking)」とも言う。）である。精トラッキング動作の詳細については、後述する。
【０１０６】
このように、ステップＳＴ４〜ＳＴ６の粗いシフト量での下位ページトラッキング動作及び上位ページトラッキング動作によって、ステップＳＴ７〜ＳＴ１０の細かいシフト量での下位ページトラッキング動作、中位ページトラッキング動作、及び上位ページトラッキング動作で探索される範囲が特定される。
【０１０７】
ステップＳＴ１１において、コントローラ１０は、検出された最適な谷位置における読出し電圧ＶＣＧＲＶｏｐｔを適用したシフトリードコマンドを半導体記憶装置２０に発行する。
【０１０８】
ステップＳＴ１２において、半導体記憶装置２０は、シフトリードを実行し、最適な読出しデータをコントローラ１０に送信する。
【０１０９】
ステップＳＴ１３において、ＥＣＣ回路１３は、シフトリードの読出しデータに基づいてＥＣＣを実行する。コントローラ１０は、シフトリードの読出しデータがＥＣＣをパスした場合（ステップＳＴ１３；パス）、ステップＳＴ１４に進み、フェイルした場合、（ステップＳＴ１３；フェイル）、ステップＳＴ１５に進む。
【０１１０】
ステップＳＴ１４において、コントローラ１０は、ＥＣＣパスのステータスを取得し、動作を終了する。ステップＳＴ１５において、コントローラ１０は、ＥＣＣ結果に基づいてデータを正しく訂正できないと判定し、動作を終了する。
【０１１１】
以上で、トラッキングの全体動作が終了する。
【０１１２】
１．２．２．３  下位ページトラッキングについて
次に、第１実施形態に係る半導体記憶装置の下位ページトラッキング動作について説明する。
【０１１３】
図１３は、第１実施形態に係る半導体記憶装置の下位ページトラッキング動作を説明するためのフローチャートである。上述の通り、下位ページトラッキング動作は、図１２におけるステップＳＴ４及びＳＴ７に共通する動作である。
【０１１４】
図１３に示すように、ステップＳＴ２１において、コントローラ１０は、下位ページ用のテストリードコマンドを半導体記憶装置２０に発行する。
【０１１５】
ステップＳＴ２２において、半導体記憶装置２０は、下位ページ用のテストリードを実行し、読出しデータＴＬを読み出す。半導体記憶装置２０は、読出しデータＴＬをラッチ回路（例えばラッチ回路ＡＤＬ）に保持する。
【０１１６】
ステップＳＴ２３において、コントローラ１０は、以降のステップＳＴ２４〜ＳＴ２９で実行されるループ処理の初期化を行う（ｎ＝０（ｎは０≦ｎ≦Ｎの整数（Ｎは正の整数）））。
【０１１７】
ステップＳＴ２４において、コントローラ１０は、下位ページのシフトリードコマンドを半導体記憶装置２０に発行する。
【０１１８】
ステップＳＴ２５において、半導体記憶装置２０は、下位ページのシフトリードを実行し、（ｎ＋１）回目のループ処理において読出しデータＡＲｎ／ＥＲｎ（ＡＲ０／ＥＲ０、ＡＲ１／ＥＲ１、…、ＡＲＮ／ＥＲＮ）を読出す。半導体記憶装置２０は、読出しデータＡＲｎ／ＥＲｎをラッチ回路（例えばラッチ回路ＢＤＬ）に保持する。（ｎ＋１）回目のループ処理における読出しデータＡＲｎ／ＥＲｎは、電圧ＡＲｎ及びＥＲｎを用いた下位ページのシフトリードの結果に相当する。このため、読出しデータＡＲｎ／ＥＲｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＡＲｎ及びＥＲｎとの関係に基づいてデータ“０”又は“１”を有する。
【０１１９】
ステップＳＴ２６において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｎ／ＥＲｎに基づき、分離データＡＲｓｎ（ＡＲｓ０、ＡＲｓ１、…、ＡＲｓＮ）及びＥＲｓｎ（ＥＲｓ０、ＥＲｓ１、…、ＥＲｓＮ）を演算する。そして、半導体記憶装置２０は、分離データＡＲｓｎ及びＥＲｓｎをコントローラ１０に送信する。分離データＡＲｓｎ及びＥＲｓｎは、読出しデータＡＲｎ／ＥＲｎにおける部分的な情報を有する。具体的には、分離データＡＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＡＲｎとの関係に基づいてデータ“０”又は“１”を有する。分離データＥＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＥＲｎとの関係に基づいてデータ“０”又は“１”を有する。
【０１２０】
ステップＳＴ２７において、コントローラ１０は、分離データＡＲｓｎに基づくビットカウント、及び分離データＥＲｓｎに基づくビットカウントを算出する。
【０１２１】
ステップＳＴ２８において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ２８；ｎｏ）、ステップＳＴ２９に進んでループ数をインクリメントした後にステップＳＴ２４に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ２８；ｙｅｓ）、下位ページのトラッキング動作を終了する。
【０１２２】
図１４は、第１実施形態に係る半導体記憶装置の下位ページトラッキング動作を説明するためのタイミングチャートである。図１４は、図１３におけるステップＳＴ２２及びＳＴ２５に対応する。すなわち、下位ページトラッキングは、時刻Ｔ１１から時刻Ｔ１２の間に対応するテストリード期間、及び時刻Ｔ１３＿０から時刻Ｔ１５＿Ｎの間に対応する下位ページシフトリードのループ期間を含む。下位ページシフトリードのループ期間は、（Ｎ＋１）回の下位ページシフトリードを含む。（ｎ＋１）回目のループにおける下位ページシフトリードは、時刻Ｔ１３＿ｎから時刻Ｔ１５＿ｎの間に対応する。また、下位ページシフトリードでは、或る電圧範囲である第１探索範囲と、第１探索範囲に対して不連続であり、かつ第１探索範囲内の電圧よりも高い電圧の範囲である第２探索範囲で読出し電圧がシフトされる。ここで、或る２つの範囲が「不連続」であるとは、当該２つの範囲が重複する範囲を有さず、かつ接していないことを示す。
【０１２３】
図１４に示すように、時刻Ｔ１１から時刻Ｔ１２の間において、ロウデコーダ２７は、選択ワード線ＷＬに電圧Ｖｔ＿ｌｏｗを印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。なお、電圧Ｖｔ＿ｌｏｗは、第１探索範囲の読出し電圧より大きく、第２探索範囲の読出し電圧より小さい。また、電圧Ｖｔ＿ｌｏｗは、例えば、“Ｃ”レベルの既定の読出し電圧ＣＲｄｅｆと等しい。
【０１２４】
ロウデコーダ２７は、１回目のループで、選択ワード線ＷＬに対して、時刻Ｔ１３＿０から時刻Ｔ１４＿０の間において電圧ＡＲ０を印加し、時刻Ｔ１４＿０から時刻Ｔ１５＿０の間において電圧ＥＲ０を印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ１３＿０から時刻Ｔ１５＿０の間において電圧ＶＲＥＡＤを印加する。
【０１２５】
続いて、ロウデコーダ２７は、２回目のループで、選択ワード線ＷＬに対して、時刻Ｔ１３＿１から時刻Ｔ１４＿１の間において電圧ＡＲ１を印加し、時刻Ｔ１４＿１から時刻Ｔ１５＿１の間において電圧ＥＲ１を印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ１３＿１から時刻Ｔ１５＿１の間において電圧ＶＲＥＡＤを印加する。
【０１２６】
このように、ロウデコーダ２７は、（ｎ＋１）回目のループで、選択ワード線ＷＬに対して、時刻Ｔ１３ｎから時刻Ｔ１４＿ｎの間において電圧ＡＲｎを印加し、時刻Ｔ１４＿ｎから時刻Ｔ１５＿ｎの間において電圧ＥＲｎを印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ１３＿ｎから時刻Ｔ１５＿ｎの間において電圧ＶＲＥＡＤを印加する。
【０１２７】
なお、電圧ＡＲｎ及びＥＲｎはそれぞれ、例えば、ループ数がインクリメントされる毎にシフト量ΔＶ１ａ及びΔＶ２ｅずつ上昇する。つまり、第１探索範囲は、例えば、左端が電圧ＡＲ０であり、右端が電圧ＡＲＮである。また、第２探索範囲は、例えば、左端が電圧ＥＲ０であり、右端が電圧ＥＲＮである。なお、シフト量ΔＶ１ａ及びΔＶ２ｅは、例えば、互いに等しい値が設定される。
【０１２８】
図１５及び図１６はそれぞれ、第１実施形態に係る半導体記憶装置の下位ページトラッキングにおける読出しデータ及び分離データを説明するためのテーブルである。図１５は、図１３におけるステップＳＴ２２及びＳＴ２５に対応し、下位ページ用テストリードの読出しデータＴＬ及び下位ページシフトリードの読出しデータＡＲｎ／ＥＲｎが示される。図１６は、図１３におけるステップＳＴ２６に対応し、読出しデータＴＬ及びＡＲｎ／ＥＲｎに基づいて演算される分離データＡＲｓｎ及びＥＲｓｎが示される。
【０１２９】
図１５に示すように、読出しデータＴＬは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＴ＿ｌｏｗ未満の場合にはデータ“１”となり、電圧ＶＴ＿ｌｏｗ以上の場合にはデータ“０”となる。
【０１３０】
読出しデータＡＲ０／ＥＲ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲ０未満の場合にはデータ“１”となり、電圧ＡＲ０以上電圧ＥＲ０未満の場合にはデータ“０”となり、電圧ＥＲ０以上の場合にはデータ“１”となる。
【０１３１】
また、読出しデータＡＲ１／ＥＲ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲ１未満の場合にはデータ“１”となり、電圧ＡＲ１以上電圧ＥＲ１未満の場合にはデータ“０”となり、電圧ＥＲ１以上の場合にはデータ“１”となる。
【０１３２】
このように、（ｎ＋１）回目のループにおける読出しデータＡＲｎ／ＥＲｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｎ未満の場合にはデータ“１”となり、電圧ＡＲｎ以上電圧ＥＲｎ未満の場合にはデータ“０”となり、電圧ＥＲｎ以上の場合にはデータ“１”となる。
【０１３３】
図１６に示すように、分離データＡＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲ０未満の場合にはデータ“１”となり、電圧ＡＲ０以上の場合にはデータ“０”となる。
【０１３４】
分離データＡＲｓ１はそれぞれ、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲ１未満の場合にはデータ“１”となり、電圧ＡＲ１以上の場合にはデータ“０”となる。
【０１３５】
このように、分離データＡＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｎ未満の場合にはデータ“１”となり、電圧ＡＲｎ以上の場合にはデータ“０”となる。つまり、分離データＡＲｓｎのうち、データ“１”であるものの数（ビットカウント）はそれぞれ、閾値電圧が電圧ＡＲｎ未満であるメモリセルトランジスタＭＴの数（オンセル数）に相当する。
【０１３６】
一方、分離データＥＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＥＲ０未満の場合にはデータ“０”となり、電圧ＥＲ０以上の場合にはデータ“１”となる。
【０１３７】
分離データＥＲｓ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＥＲ１未満の場合にはデータ“０”となり、電圧ＥＲ１以上の場合にはデータ“１”となる。
【０１３８】
このように、分離データＥＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＥＲｎ未満の場合にはデータ“０”となり、電圧ＥＲｎ以上の場合にはデータ“１”となる。つまり、分離データＥＲｓｎのうち、データ“０”であるものの数は、閾値電圧が電圧ＥＲｎ未満であるメモリセルトランジスタＭＴの数に相当する。
【０１３９】
このため、図１３のステップＳＴ２７において、コントローラ１０は、分離データＡＲｓｎのビットカウント、及び分離データＥＲｓｎのビットカウントを算出することにより、それぞれ電圧ＡＲｎにおけるオンセル数、及び電圧ＥＲｎにおけるオンセル数をモニタすることができる。また、コントローラ１０は、分離データＡＲｓｎとＡＲｓ（ｎ＋１）との間のビットカウント変化量、及び分離データＥＲｓｎとＥＲｓ（ｎ＋１）との間のビットカウント変化量を算出することにより、それぞれ電圧ＡＲｎとＡＲ（ｎ＋１）との間のオンセル数変化量、及び電圧ＥＲｎとＥＲ（ｎ＋１）との間のオンセル数変化量をモニタすることができる。
【０１４０】
なお、分離データＡＲｓｎは、例えば、読出しデータＴＬ及びＡＲｎ／ＥＲｎに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＬと、読出しデータＡＲｎ／ＥＲｎとの論理積演算を行うことにより、分離データＡＲｓｎを生成可能である（ＡＲｓｎ＝ＴＬ  ＡＮＤ  （ＡＲｎ／ＥＲｎ））。
【０１４１】
また、分離データＥＲｓｎは、例えば、読出しデータＴＬ及びＡＲｎ／ＥＲｎに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＬの否定演算結果￣ＴＬと、読出しデータＡＲｎ／ＥＲｎとの論理積演算を行うことにより、分離データＥＲｓｎを生成可能である（ＥＲｓｎ＝￣ＴＬ  ＡＮＤ  （ＡＲｎ／ＥＲｎ））。
【０１４２】
なお、演算部ＯＰは、上述の例に依らず、任意の演算によって分離データＥＲｓｎを生成可能である。例えば、演算部ＯＰは、読出しデータＴＬと、読出しデータの否定演算結果（￣ＡＲｎ／ＥＲｎ）との論理和演算を行うことにより、分離データＥＲｓｎを生成してもよい（ＥＲｓｎ＝ＴＬ  ＯＲ  （￣ＡＲｎ／ＥＲｎ））。この場合、分離データＥＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＥＲｎ未満の場合にはデータ“１”となり、電圧ＥＲｎ以上の場合にはデータ“０”となる。
【０１４３】
以上のように、下位ページトラッキングでは、半導体記憶装置２０は、１回のテストリード及び（Ｎ＋１）回のシフトリードから、（Ｎ＋１）個の分離データの組ＡＲｓ０、ＡＲｓ１、…、ＡＲｓＮ、及び（Ｎ＋１）個の分離データの組ＥＲｓ０、ＥＲｓ１、…、ＥＲｓＮを演算する。そして、コントローラ１０は、当該演算された２つの分離データの組の各々から、互いに不連続な読出し電圧の範囲（第１探索範囲及び第２探索範囲）において（Ｎ＋１）個ずつビットカウントを算出する。コントローラ１０は、２×（Ｎ＋１）個のビットカウントから、２Ｎ個のビットカウント変化量を算出する。したがって、下位ページトラッキングでは、第１探索範囲及び第２探索範囲におけるビットカウントトラッキングを可能とするデータが算出される。
【０１４４】
１．２．２．４  上位ページトラッキングについて
次に、第１実施形態に係る半導体記憶装置の上位ページトラッキング動作について説明する。上述の通り、上位ページトラッキング動作は、選択ワード線ＷＬに印加される電圧の大きさが異なる点を除き、下位ページトラッキング動作と同様である。
【０１４５】
図１７は、第１実施形態に係る半導体記憶装置の上位ページトラッキング動作を説明するためのフローチャートである。上位ページトラッキング動作は、図１２におけるステップＳＴ５及びＳＴ９に共通する動作である。
【０１４６】
図１７に示すように、ステップＳＴ３１において、コントローラ１０は、上位ページ用のテストリードコマンドを半導体記憶装置２０に発行する。
【０１４７】
ステップＳＴ３２において、半導体記憶装置２０は、上位ページ用のテストリードを実行し、読出しデータＴＵを読み出す。半導体記憶装置２０は、読出しデータＴＵをラッチ回路（例えばラッチ回路ＡＤＬ）に保持する。
【０１４８】
ステップＳＴ３３において、コントローラ１０は、以降のステップＳＴ３４〜ＳＴ３９で実行されるループ処理の初期化を行う（ｎ＝０）。
【０１４９】
ステップＳＴ３４において、コントローラ１０は、上位ページのシフトリードコマンドを半導体記憶装置２０に発行する。
【０１５０】
ステップＳＴ３５において、半導体記憶装置２０は、上位ページのシフトリードを実行し、（ｎ＋１）回目のループ処理において読出しデータＣＲｎ／ＧＲｎ（ＣＲ０／ＧＲ０、ＣＲ１／ＧＲ１、…、ＣＲＮ／ＧＲＮ）を読出す。半導体記憶装置２０は、読出しデータＣＲｎ／ＧＲｎをラッチ回路（例えばラッチ回路ＢＤＬ）に保持する。（ｎ＋１）回目のループ処理における読出しデータＣＲｎ／ＧＲｎは、電圧ＣＲｎ及びＧＲｎを用いた上位ページのシフトリードの結果に相当する。このため、読出しデータＣＲｎ／ＧＲｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＣＲｎ及びＧＲｎとの関係に基づいてデータ“０”又は“１”を有する。
【０１５１】
ステップＳＴ３６において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＵ及びＣＲｎ／ＧＲｎに基づき、分離データＣＲｓｎ（ＣＲｓ０、ＣＲｓ１、…、ＣＲｓＮ）及びＧＲｓｎ（ＧＲｓ０、ＧＲｓ１、…、ＧＲｓＮ）を演算する。そして、半導体記憶装置２０は、分離データＣＲｓｎ及びＧＲｓｎをコントローラ１０に送信する。分離データＣＲｓｎ及びＧＲｓｎは、読出しデータＣＲｎ／ＧＲｎにおける部分的な情報を有する。具体的には、分離データＣＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＣＲｎとの関係に基づいてデータ“０”又は“１”を有する。分離データＧＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＧＲｎとの関係に基づいてデータ“０”又は“１”を有する。
【０１５２】
ステップＳＴ３７において、コントローラ１０は、分離データＣＲｓｎに基づくビットカウント、及び分離データＧＲｓｎに基づくビットカウントを算出する。
【０１５３】
ステップＳＴ３８において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ３８；ｎｏ）、ステップＳＴ３９に進んでループ数をインクリメントした後にステップＳＴ３４に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ３８；ｙｅｓ）、上位ページのトラッキング動作を終了する。
【０１５４】
図１８は、第１実施形態に係る半導体記憶装置の上位ページトラッキングを説明するためのタイミングチャートである。図１８は、図１７におけるステップＳＴ３２及びＳＴ３５に対応する。すなわち、上位ページトラッキングは、時刻Ｔ２１から時刻Ｔ２２の間に対応するテストリード期間、及び時刻Ｔ２３＿０から時刻Ｔ２５＿Ｎの間に対応する上位ページシフトリードのループ期間を含む。上位ページシフトリードは、（Ｎ＋１）回のシフトリードを含む。（ｎ＋１）回目のループにおける上位ページシフトリードは、時刻Ｔ２３＿ｎから時刻Ｔ２５＿ｎの間に対応する。また、上位ページシフトリードでは、或る電圧範囲である第３探索範囲と、第３探索範囲に対して不連続であり、かつ第３探索範囲の電圧よりも高い電圧の範囲である第４探索範囲で読出し電圧がシフトされる。
【０１５５】
図１８に示すように、時刻Ｔ２１から時刻Ｔ２２の間において、ロウデコーダ２７は、選択ワード線ＷＬに電圧Ｖｔ＿ｕｐを印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。なお、電圧Ｖｔ＿ｕｐは、第３探索範囲の読出し電圧より大きく、第４探索範囲の読出し電圧より小さい。また、電圧Ｖｔ＿ｕｐは、例えば、“Ｅ”レベルの既定の読出し電圧ＥＲｄｅｆと等しい。
【０１５６】
ロウデコーダ２７は、１回目のループで、選択ワード線ＷＬに対して、時刻Ｔ２３＿０から時刻Ｔ２４＿０の間において電圧ＣＲ０を印加し、時刻Ｔ２４＿０から時刻Ｔ２５＿０の間において電圧ＧＲ０を印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ２３＿０から時刻Ｔ２５＿０の間において電圧ＶＲＥＡＤを印加する。
【０１５７】
続いて、ロウデコーダ２７は、２回目のループで、選択ワード線ＷＬに対して、時刻Ｔ２３＿１から時刻Ｔ２４＿１の間において電圧ＣＲ１を印加し、時刻Ｔ２４＿１から時刻Ｔ２５＿１の間において電圧ＧＲ１を印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ２３＿１から時刻Ｔ２５＿１の間において電圧ＶＲＥＡＤを印加する。
【０１５８】
このように、ロウデコーダ２７は、（ｎ＋１）回目のループで、選択ワード線ＷＬに対して、時刻Ｔ２３ｎから時刻Ｔ２４＿ｎの間において電圧ＣＲｎを印加し、時刻Ｔ２４＿ｎから時刻Ｔ２５＿ｎの間において電圧ＧＲｎを印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ２３＿ｎから時刻Ｔ２５＿ｎの間において電圧ＶＲＥＡＤを印加する。
【０１５９】
なお、電圧ＣＲｎ及びＧＲｎはそれぞれ、例えば、ループ数がインクリメントされる毎にシフト量ΔＶ１ｃ及びΔＶ２ｇずつ上昇する。つまり、第３探索範囲は、例えば、左端が電圧ＣＲ０であり、右端が電圧ＣＲＮである。また、第４探索範囲は、例えば、左端が電圧ＧＲ０であり、右端が電圧ＧＲＮである。なお、シフト量ΔＶ１ｃ及びΔＶ２ｇは、例えば、互いに等しい値が設定される。また、シフト量ΔＶ１ｃ及びΔＶ２ｇは、例えば、シフト量ΔＶ１ａ及びΔＶ２ｅと等しくてもよい。
【０１６０】
図１９及び図２０はそれぞれ、第１実施形態に係る半導体記憶装置の上位ページトラッキングにおける読出しデータ及び分離データを説明するためのテーブルである。図１９は、図１７におけるステップＳＴ３２及びＳＴ３５に対応し、上位ページ用テストリードの読出しデータＴＵ及び上位ページシフトリードの読出しデータＣＲｎ／ＧＲｎが示される。図２０は、図１７におけるステップＳＴ３６に対応し、読出しデータＴＵ及びＣＲｎ／ＧＲｎに基づいて演算される分離データＣＲｓｎ及びＧＲｓｎが示される。
【０１６１】
図１９に示すように、読出しデータＴＵは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＴ＿ｕｐ未満の場合にはデータ“１”となり、電圧ＶＴ＿ｕｐ以上の場合にはデータ“０”となる。
【０１６２】
読出しデータＣＲ０／ＧＲ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＣＲ０未満の場合にはデータ“１”となり、電圧ＣＲ０以上電圧ＧＲ０未満の場合にはデータ“０”となり、電圧ＧＲ０以上の場合にはデータ“１”となる。
【０１６３】
また、読出しデータＣＲ１／ＧＲ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＣＲ１未満の場合にはデータ“１”となり、電圧ＣＲ１以上電圧ＧＲ１未満の場合にはデータ“０”となり、電圧ＧＲ１以上の場合にはデータ“１”となる。
【０１６４】
このように、（ｎ＋１）回目のループにおける読出しデータＣＲｎ／ＧＲｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＣＲｎ未満の場合にはデータ“１”となり、電圧ＣＲｎ以上電圧ＧＲｎ未満の場合にはデータ“０”となり、電圧ＧＲｎ以上の場合にはデータ“１”となる。
【０１６５】
図２０に示すように、分離データＣＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＣＲ０未満の場合にはデータ“１”となり、電圧ＣＲ０以上の場合にはデータ“０”となる。
【０１６６】
分離データＣＲｓ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＣＲ１未満の場合にはデータ“１”となり、電圧ＣＲ１以上の場合にはデータ“０”となる。
【０１６７】
このように、分離データＣＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＣＲｎ未満の場合にはデータ“１”となり、電圧ＣＲｎ以上の場合にはデータ“０”となる。つまり、分離データＣＲｓｎのうち、データ“１”であるものの数は、閾値電圧が電圧ＣＲｎ未満であるメモリセルトランジスタＭＴの数に相当する。
【０１６８】
一方、分離データＧＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＧＲ０未満の場合にはデータ“０”となり、電圧ＧＲ０以上の場合にはデータ“１”となる。
【０１６９】
分離データＧＲｓ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＧＲ１未満の場合にはデータ“０”となり、電圧ＧＲ１以上の場合にはデータ“１”となる。
【０１７０】
このように、分離データＧＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＧＲｎ未満の場合にはデータ“０”となり、電圧ＧＲｎ以上の場合にはデータ“１”となる。つまり、分離データＧＲｓｎのうち、データ“０”であるものの数は、閾値電圧が電圧ＧＲｎ未満であるメモリセルトランジスタＭＴの数に相当する。
【０１７１】
このため、図１７のステップＳＴ３７において、コントローラ１０は、分離データＣＲｓｎのビットカウント、及び分離データＧＲｓｎのビットカウントを算出することにより、それぞれ電圧ＣＲｎにおけるオンセル数、及び電圧ＧＲｎにおけるオンセル数をモニタすることができる。また、コントローラ１０は、分離データＣＲｓｎとＣＲｓ（ｎ＋１）との間のビットカウント変化量、及び分離データＧＲｓｎとＧＲｓ（ｎ＋１）との間のビットカウント変化量を算出することにより、それぞれ電圧ＣＲｎとＣＲ（ｎ＋１）との間のオンセル数変化量、及び電圧ＧＲｎとＧＲ（ｎ＋１）との間のオンセル数変化量をモニタすることができる。
【０１７２】
なお、分離データＣＲｓｎは、例えば、読出しデータＴＵ及びＣＲｎ／ＧＲｎに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＵと、読出しデータＣＲｎ／ＧＲｎとの論理積演算を行うことにより、分離データＣＲｓｎを生成可能である（ＣＲｓｎ＝ＴＵ  ＡＮＤ  （ＣＲｎ／ＧＲｎ））。
【０１７３】
また、分離データＧＲｓｎは、例えば、読出しデータＴＵ及びＣＲｎ／ＧＲｎに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＵの否定演算結果￣ＴＵと、読出しデータＣＲｎ／ＧＲｎとの論理積演算を行うことにより、分離データＧＲｓｎを生成可能である（ＧＲｓｎ＝￣ＴＵ  ＡＮＤ  （ＣＲｎ／ＧＲｎ））。
【０１７４】
なお、演算部ＯＰは、上述の例に依らず、任意の演算によって分離データＧＲｓｎを生成可能である。例えば、演算部ＯＰは、読出しデータＴＵと、読出しデータの否定演算結果（￣ＣＲｎ／ＧＲｎ）との論理和演算を行うことにより、分離データＧＲｓｎを生成してもよい（ＧＲｓｎ＝ＴＵ  ＯＲ  （￣ＣＲｎ／ＧＲｎ））。この場合、分離データＧＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＧＲｎ未満の場合にはデータ“１”となり、電圧ＧＲｎ以上の場合にはデータ“０”となる。
【０１７５】
以上のように、上位ページトラッキングでは、半導体記憶装置２０は、１回のテストリード及び（Ｎ＋１）回のシフトリードから、（Ｎ＋１）個の分離データの組ＣＲｓ０、ＣＲｓ１、…、ＣＲｓＮ、及び（Ｎ＋１）個の分離データの組ＧＲｓ０、ＧＲｓ１、…、ＧＲｓＮを演算する。そして、コントローラ１０は、当該演算された２つの分離データの組の各々から、互いに不連続な読出し電圧の範囲（第３探索範囲及び第４探索範囲）において（Ｎ＋１）個ずつビットカウントを算出する。コントローラ１０は、２×（Ｎ＋１）個のビットカウントから、２Ｎ個のビットカウント変化量を算出する。したがって、上位ページトラッキングでは、第３探索範囲及び第４探索範囲におけるビットカウントトラッキングを可能とするデータが生成される。
【０１７６】
１．２．２．５  中位ページトラッキングについて
次に、第１実施形態に係る半導体記憶装置の中位ページトラッキング動作について説明する。中位ページトラッキング動作は、読出されるレベルが３つであるため、テストリード動作が２回行われる。また、これに伴い、中位ページトラッキング動作は、シフトリードの読出しデータが３つに分離される点において下位ページトラッキング動作及び上位ページトラッキング動作と異なる。
【０１７７】
図２１は、第１実施形態に係る半導体記憶装置の中位ページトラッキング動作を説明するためのフローチャートである。図２１に示される中位ページトラッキング動作は、図１２におけるステップＳＴ８に対応する動作である。
【０１７８】
図２１に示すように、ステップＳＴ４１において、コントローラ１０は、中位ページ用の第１テストリードコマンドを半導体記憶装置２０に発行する。
【０１７９】
ステップＳＴ４２において、半導体記憶装置２０は、中位ページ用の第１テストリードを実行し、読出しデータＴＭ１を読み出す。半導体記憶装置２０は、読出しデータＴＭ１をラッチ回路（例えばラッチ回路ＡＤＬ）に保持する。
【０１８０】
ステップＳＴ４３において、コントローラ１０は、中位ページ用の第２テストリードコマンドを半導体記憶装置２０に発行する。
【０１８１】
ステップＳＴ４４において、半導体記憶装置２０は、中位ページ用の第２テストリードを実行し、読出しデータＴＭ２を読み出す。半導体記憶装置２０は、読出しデータＴＭ２をラッチ回路（例えばラッチ回路ＢＤＬ）に保持する。
【０１８２】
ステップＳＴ４５において、コントローラ１０は、以降のステップＳＴ４６〜ＳＴ５１で実行されるループ処理の初期化を行う（ｎ＝０）。
【０１８３】
ステップＳＴ４６において、コントローラ１０は、中位ページのシフトリードコマンドを半導体記憶装置２０に発行する。
【０１８４】
ステップＳＴ４７において、半導体記憶装置２０は、中位ページのシフトリードを実行し、（ｎ＋１）回目のループ処理において読出しデータＢＲｎ／ＤＲｎ／ＦＲｎ（ＢＲ０／ＤＲ０／ＦＲ０、ＢＲ１／ＤＲ１／ＦＲ１、…、ＢＲＮ／ＤＲＮ／ＦＲＮ）を読出す。半導体記憶装置２０は、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎをラッチ回路（例えばラッチ回路ＣＤＬ）に保持する。（ｎ＋１）回目のループ処理における読出しデータＢＲｎ／ＤＲｎ／ＦＲｎは、電圧ＢＲｎ、ＤＲｎ、及びＦＲｎを用いた中位ページのシフトリードの結果に相当する。このため、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＢＲｎ、ＤＲｎ、及びＦＲｎとの関係に基づいてデータ“０”又は“１”を有する。
【０１８５】
ステップＳＴ４８において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＭ１、ＴＭ２、及びＢＲｎ／ＤＲｎ／ＦＲｎに基づき、分離データＢＲｓｎ（ＢＲｓ０、ＢＲｓ１、…、ＢＲｓＮ）、ＤＲｓｎ（ＤＲｓ０、ＤＲｓ１、…、ＤＲｓＮ）、及びＦＲｓｎ（ＦＲｓ０、ＦＲｓ１、…、ＦＲｓＮ）を演算する。そして、半導体記憶装置２０は、分離データＢＲｓｎ、ＤＲｓｎ、及びＦＲｓｎをコントローラ１０に送信する。分離データＢＲｓｎ、ＤＲｓｎ、及びＦＲｓｎは、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎにおける部分的な情報を有する。具体的には、分離データＢＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＢＲｎとの関係に基づいてデータ“０”又は“１”を有する。分離データＤＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＤＲｎとの関係に基づいてデータ“０”又は“１”を有する。分離データＦＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＦＲｎとの関係に基づいてデータ“０”又は“１”を有する。
【０１８６】
ステップＳＴ４９において、コントローラ１０は、分離データＢＲｓｎ、ＤＲｓｎ、及びＦＲｓｎの各々に基づくビットカウントをそれぞれ算出する。
【０１８７】
ステップＳＴ５０において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ５０；ｎｏ）、ステップＳＴ５１に進んでループ数をインクリメントした後にステップＳＴ４６に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ５０；ｙｅｓ）、中位ページのトラッキング動作を終了する。
【０１８８】
図２２は、第１実施形態に係る半導体記憶装置の中位ページトラッキングを説明するためのタイミングチャートである。図２２は、図２１におけるステップＳＴ４２、ＳＴ４４及びＳＴ４７に対応する。すなわち、中位ページトラッキングは、時刻Ｔ３１から時刻Ｔ３４の間に対応する中位ページ用のテストリード期間、及び時刻Ｔ３５＿０から時刻Ｔ３８＿Ｎの間に対応する中位ページシフトリードのループ期間を含む。中位ページシフトリードは、（Ｎ＋１）回のシフトリードを含む。（ｎ＋１）回目のループにおける中位ページシフトリードは、時刻Ｔ３５＿ｎから時刻Ｔ３８＿ｎの間に対応する。また、中位ページシフトリードでは、或る電圧範囲である第５探索範囲と、第５探索範囲の電圧よりも高い電圧の範囲である第６探索範囲と、第６探索範囲の電圧よりも更に高い電圧の範囲である第７探索範囲と、で読出し電圧がシフトされる。なお、第５探索範囲、第６探索範囲、及び第７探索範囲は、互いに不連続である。
【０１８９】
図２２に示すように、時刻Ｔ３１から時刻Ｔ３２の間において、ロウデコーダ２７は、選択ワード線ＷＬに電圧Ｖｔ＿ｍｉｄ１を印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。なお、電圧Ｖｔ＿ｍｉｄ１は、第５探索範囲の読出し電圧より大きく、第６探索範囲の読出し電圧より小さい。
【０１９０】
また、時刻Ｔ３３から時刻Ｔ３４の間において、ロウデコーダ２７は、選択ワード線ＷＬに電圧Ｖｔ＿ｍｉｄ２を印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。なお、電圧Ｖｔ＿ｍｉｄ２は、第６探索範囲の読出し電圧より大きく、第７探索範囲の読出し電圧より小さい。
【０１９１】
ロウデコーダ２７は、１回目のループで、選択ワード線ＷＬに対して、時刻Ｔ３５＿０から時刻Ｔ３６＿０の間、時刻Ｔ３６＿０から時刻Ｔ３７＿０の間、及び時刻Ｔ３７＿０から時刻Ｔ３８＿０の間においてそれぞれ電圧ＢＲ０、ＤＲ０、及びＦＲ０を印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ３５＿０から時刻Ｔ３８＿０の間において電圧ＶＲＥＡＤを印加する。
【０１９２】
続いて、ロウデコーダ２７は、２回目のループで、選択ワード線ＷＬに対して、時刻Ｔ３５＿１から時刻Ｔ３６＿１の間、時刻Ｔ３６＿１から時刻Ｔ３７＿１の間、及び時刻Ｔ３７＿１から時刻Ｔ３８＿１の間においてそれぞれ電圧ＢＲ１、ＤＲ１、及びＦＲ１を印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ３５＿１から時刻Ｔ３８＿１の間において電圧ＶＲＥＡＤを印加する。
【０１９３】
このように、ロウデコーダ２７は、（ｎ＋１）回目のループで、選択ワード線ＷＬに対して、時刻Ｔ３５＿ｎから時刻Ｔ３６＿ｎの間、時刻Ｔ３６＿ｎから時刻Ｔ３７＿ｎの間、及び時刻Ｔ３７＿ｎから時刻Ｔ３８＿ｎの間においてそれぞれ電圧ＢＲｎ、ＤＲｎ、及びＦＲｎを印加する。また、ロウデコーダ２７は、非選択ワード線ＷＬに対して、時刻Ｔ３５＿ｎから時刻Ｔ３８＿ｎの間において電圧ＶＲＥＡＤを印加する。
【０１９４】
なお、電圧ＢＲｎ、ＤＲｎ及びＦＲｎはそれぞれ、例えば、ループ数がインクリメントされる毎にシフト量ΔＶ１ｂ、ΔＶ２ｄ及びΔＶ３ｆずつ上昇する。つまり、第５探索範囲は、例えば、左端が電圧ＢＲ０であり、右端が電圧ＢＲＮである。また、第６探索範囲は、例えば、左端が電圧ＤＲ０であり、右端が電圧ＤＲＮである。また、第７探索範囲は、例えば、左端が電圧ＦＲ０であり、右端が電圧ＦＲＮである。なお、シフト量ΔＶ１ｂ、ΔＶ２ｄ、及びΔＶ３ｆは、例えば、互いに等しい値が設定される。また、シフト量ΔＶ１ｂ、ΔＶ２ｄ、及びΔＶ３ｆは、例えば、シフト量ΔＶ１ａ、ΔＶ２ｅ、ΔＶ１ｃ、及びΔＶ２ｇと等しくてもよい。
【０１９５】
図２３及び図２４はそれぞれ、第１実施形態に係る半導体記憶装置の中位ページトラッキングにおける読出しデータ及び分離データを説明するためのテーブルである。図２３は、図２１におけるステップＳＴ４２、ＳＴ４４及びＳＴ４７に対応し、第１テストリードの読出しデータＴＭ１、第２テストリードの読出しデータＴＭ２、及びシフトリードの読出しデータＢＲｎ／ＤＲｎ／ＦＲｎが示される。図２４は、図２１におけるステップＳＴ４８に対応し、読出しデータＴＭ１、ＴＭ２、及びＢＲｎ／ＤＲｎ／ＦＲｎに基づいて演算される分離データＢＲｓｎ、ＤＲｓｎ及びＦＲｓｎが示される。
【０１９６】
図２３に示すように、読出しデータＴＭ１は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ＿ｍｉｄ１未満の場合にはデータ“１”となり、電圧Ｖｔ＿ｍｉｄ１以上の場合にはデータ“０”となる。また、読出しデータＴＭ２は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ＿ｍｉｄ２未満の場合にはデータ“１”となり、電圧Ｖｔ＿ｍｉｄ２以上の場合にはデータ“０”となる。
【０１９７】
読出しデータＢＲ０／ＤＲ０／ＦＲ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＢＲ０未満の場合にはデータ“１”となり、電圧ＢＲ０以上電圧ＤＲ０未満の場合にはデータ“０”となり、電圧ＤＲ０以上電圧ＦＲ０未満の場合にはデータ“１”となり、電圧ＦＲ０以上の場合にはデータ“０”となる。
【０１９８】
また、読出しデータＢＲ１／ＤＲ１／ＦＲ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＢＲ１未満の場合にはデータ“１”となり、電圧ＢＲ１以上電圧ＤＲ１未満の場合にはデータ“０”となり、電圧ＤＲ１以上電圧ＦＲ１未満の場合にはデータ“１”となり、電圧ＦＲ１以上の場合にはデータ“０”となる。
【０１９９】
このように、（ｎ＋１）回目のループにおける読出しデータＢＲｎ／ＤＲｎ／ＦＲｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＢＲｎ未満の場合にはデータ“１”となり、電圧ＢＲｎ以上電圧ＤＲｎ未満の場合にはデータ“０”となり、電圧ＤＲｎ以上電圧ＦＲｎ未満の場合にはデータ“１”となり、電圧ＦＲｎ以上の場合にはデータ“０”となる。
【０２００】
図２４に示すように、分離データＢＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＢＲ０未満の場合にはデータ“１”となり、電圧ＢＲ０以上の場合にはデータ“０”となる。
【０２０１】
分離データＢＲｓ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＢＲ１未満の場合にはデータ“１”となり、電圧ＢＲ１以上の場合にはデータ“０”となる。
【０２０２】
このように、分離データＢＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＢＲｎ未満の場合にはデータ“１”となり、電圧ＢＲｎ以上の場合にはデータ“０”となる。つまり、分離データＢＲｓｎのうち、データ“１”であるものの数は、閾値電圧が電圧ＢＲｎ未満であるメモリセルトランジスタＭＴの数に相当する。
【０２０３】
同様に、分離データＤＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＤＲ０未満の場合にはデータ“１”となり、電圧ＤＲ０以上の場合にはデータ“０”となる。
【０２０４】
分離データＤＲｓ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＤＲ１未満の場合にはデータ“１”となり、電圧ＤＲ１以上の場合にはデータ“０”となる。
【０２０５】
このように、分離データＤＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＤＲｎ未満の場合にはデータ“１”となり、電圧ＤＲｎ以上の場合にはデータ“０”となる。つまり、分離データＤＲｓｎのうち、データ“１”であるものの数は、閾値電圧が電圧ＤＲｎ未満であるメモリセルトランジスタＭＴの数に相当する。
【０２０６】
同様に、分離データＦＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＦＲ０未満の場合にはデータ“１”となり、電圧ＦＲ０以上の場合にはデータ“０”となる。
【０２０７】
分離データＦＲｓ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＦＲ１未満の場合にはデータ“１”となり、電圧ＦＲ１以上の場合にはデータ“０”となる。
【０２０８】
このように、分離データＦＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧ＦＲｎ未満の場合にはデータ“１”となり、電圧ＦＲｎ以上の場合にはデータ“０”となる。つまり、分離データＦＲｓｎのうち、データ“１”であるものの数は、閾値電圧が電圧ＦＲｎ未満であるメモリセルトランジスタＭＴの数に相当する。
【０２０９】
このため、図２１のステップＳＴ４９において、コントローラ１０は、分離データＢＲｓｎのビットカウント、分離データＤＲｓｎのビットカウント、及び分離データＦＲｓｎのビットカウントを算出することにより、それぞれ電圧ＢＲｎにおけるオンセル数、電圧ＤＲｎにおけるオンセル数、及び電圧ＦＲｎにおけるオンセル数をモニタすることができる。また、コントローラ１０は、分離データＢＲｓｎとＢＲｓ（ｎ＋１）との間のビットカウント変化量、分離データＤＲｓｎとＤＲｓ（ｎ＋１）との間のビットカウント変化量、及び分離データＦＲｓｎとＦＲｓ（ｎ＋１）との間のビットカウント変化量を算出することにより、それぞれ電圧ＢＲｎとＢＲ（ｎ＋１）との間のオンセル数変化量、電圧ＤＲｎとＤＲ（ｎ＋１）との間のオンセル数変化量、及び電圧ＦＲｎとＦＲ（ｎ＋１）との間のオンセル数変化量をモニタすることができる。
【０２１０】
なお、分離データＢＲｓｎは、例えば、読出しデータＴＭ１及びＢＲｎ／ＤＲｎ／ＦＲｎに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＭ１と、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎとの論理積演算を行うことにより、分離データＢＲｓｎを生成可能である（ＢＲｎ＝ＴＭ１  ＡＮＤ  （ＢＲｎ／ＤＲｎ／ＦＲｎ））。
【０２１１】
また、分離データＤＲｓｎは、例えば、読出しデータＴＭ１、ＴＭ２、及びＢＲｎ／ＤＲｎ／ＦＲｎに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＭ２と、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎの否定演算結果（￣ＢＲｎ／ＤＲｎ／ＦＲｎ）との論理積演算に対して、読出しデータＴＭ１との論理和演算を行うことにより、分離データＤＲｓｎを生成可能である（ＤＲｓｎ＝ＴＭ１  ＯＲ  （ＴＭ２  ＡＮＤ  （￣ＢＲｎ／ＤＲｎ／ＦＲｎ）））。
【０２１２】
また、分離データＦＲｓｎは、例えば、読出しデータＴＭ２及びＢＲｎ／ＤＲｎ／ＦＲｎに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＭ２と、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎとの論理和演算を行うことにより、分離データＦＲｓｎを生成可能である（ＦＲｓｎ＝ＴＭ２  ＯＲ  （ＢＲｎ／ＤＲｎ／ＦＲｎ））。
【０２１３】
なお、演算部ＯＰは、上述の例に依らず、任意の演算によって分離データＤＲｓｎ及びＦＲｓｎを生成可能である。
【０２１４】
例えば、演算部ＯＰは、読出しデータＴＭ１の否定演算結果￣ＴＭ１と、読出しデータＴＭ２と、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎの否定演算結果（￣ＢＲｎ／ＤＲｎ／ＦＲｎ）との論理積演算を行うことにより、分離データＤＲｓｎを生成してもよい（ＤＲｓｎ＝￣ＴＭ１  ＡＮＤ  ＴＭ２  ＡＮＤ  （￣ＢＲｎ／ＤＲｎ／ＦＲｎ））。この場合、分離データＤＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ＿ｍｉｄ１未満の場合にはデータ“０”となり、電圧Ｖｔ＿ｍｉｄ１以上電圧ＤＲｎ未満の場合にはデータ“１”となり、電圧ＤＲｎ以上の場合にはデータ“０”となる。
【０２１５】
また、例えば、演算部ＯＰは、読出しデータＴＭ２の否定演算結果￣ＴＭ２と、読出しデータＢＲｎ／ＤＲｎ／ＦＲｎとの論理積演算を行うことにより、分離データＦＲｓｎを生成可能してもよい（ＦＲｓｎ＝￣ＴＭ２  ＡＮＤ  （ＢＲｎ／ＤＲｎ／ＦＲｎ））。この場合、分離データＦＲｓｎは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ＿ｍｉｄ２以上電圧ＦＲｎ未満の場合にはデータ“１”となり、電圧ＦＲｎ以上の場合にはデータ“０”となる。
【０２１６】
以上のように、中位ページトラッキングでは、半導体記憶装置２０は、２回のテストリード及び（Ｎ＋１）回のシフトリードから、（Ｎ＋１）個の分離データの組ＢＲｓ０、ＢＲｓ１、…、ＢＲｓＮ、（Ｎ＋１）個の分離データの組ＤＲｓ０、ＤＲｓ１、…、ＤＲｓＮ、及び（Ｎ＋１）個の分離データの組ＦＲｓ０、ＦＲｓ１、…、ＦＲｓＮを演算する。そして、コントローラ１０は、当該演算された３つの分離データの組の各々から、互いに不連続な読出し電圧の範囲（第５探索範囲、第６探索範囲及び第７探索範囲）において（Ｎ＋１）個ずつビットカウントを算出する。コントローラ１０は、３×（Ｎ＋１）個のビットカウントから、３Ｎ個のビットカウント変化量を算出する。したがって、中位ページトラッキングでは、第５探索範囲、第６探索範囲及び第７探索範囲におけるビットカウントトラッキングを可能とするデータが生成される。
【０２１７】
１．２．２．６  粗トラッキングについて
次に、第１実施形態に係る半導体記憶装置の粗トラッキング動作について説明する。
【０２１８】
図２５〜図２７は、第１実施形態に係る半導体記憶装置の粗トラッキング動作を説明するための模式図である。図２５〜図２７はそれぞれ、図１２におけるステップＳＴ４〜ＳＴ６に対応する。すなわち、図２５及び図２６はそれぞれ、粗トラッキングの下位ページトラッキング及び上位ページトラッキングに基づいてビットカウントトラッキングが実行される読出し電圧の範囲が模式的に示される。図２７は、粗トラッキングの結果検出される暫定的な谷位置、及び精トラッキングに適用される探索範囲が模式的に示される。
【０２１９】
第１実施形態に係る粗トラッキングでは、各レベル間（ＴＬＣの場合７つ）の谷位置となり得る電圧値を十分に含む電圧範囲（フルレベル）をトラッキングの範囲として考慮する。具体的には、粗トラッキングでは、フルレベルを連続する４つの範囲（Ｉ）〜（ＩＶ）に分割する。ここで、或る２つの範囲が「連続する」とは、一方の範囲の端部と、他方の範囲の端部とが同一の電圧を表す状態を言う。範囲（Ｉ）は電圧が最も小さい範囲を、範囲（ＩＩ）は電圧が２番目に小さい範囲を、範囲（ＩＩＩ）は電圧が３番目に小さい範囲を、範囲（ＩＶ）は電圧が最も大きい範囲に対応する。
【０２２０】
なお、第１実施形態では、範囲（Ｉ）〜（ＩＶ）は、連続する範囲として説明したが、これに限らず、連続していなくてもよい。
【０２２１】
図２５（Ａ）に示すように、コントローラ１０は、範囲（Ｉ）を第１探索範囲として、範囲（ＩＩＩ）を第２探索範囲としてそれぞれ設定する。具体的には、例えば、電圧ＡＲ０及びＡＲＮはそれぞれ、範囲（Ｉ）の左端及び右端の電圧が設定される。電圧ＥＲ０及びＥＲＮはそれぞれ、範囲（ＩＩＩ）の左端及び右端の電圧が設定される。また、コントローラ１０は、例えば、範囲（ＩＩ）において読出し電圧Ｖｔ＿ｌｏｗ（例えば電圧ＣＲｄｅｆ）を設定する。
【０２２２】
そして、半導体記憶装置２０は、範囲（Ｉ）及び（ＩＩＩ）について（Ｎ＋１）回のシフトリードを含む下位ページトラッキングを実行する。シフトリードでは、範囲（Ｉ）及び（ＩＩＩ）の端を含む全域にわたって、くまなく読出し電圧がシフトされる。下位ページトラッキングの結果、半導体記憶装置２０は、範囲（Ｉ）の全域にわたる（Ｎ＋１）個の分離データＡＲｓｎを演算し、範囲（ＩＩＩ）の全域にわたる（Ｎ＋１）個の分離データＥＲｓｎを演算する。
【０２２３】
図２５（Ｂ）に示すように、コントローラ１０は、（Ｎ＋１）個の分離データＡＲｓｎに基づき、範囲（Ｉ）の全域にわたるＮ点のビットカウント変化量を算出する。また、コントローラ１０は、（Ｎ＋１）個の分離データＥＲｓｎに基づき、範囲（ＩＩＩ）の全域にわたるＮ点のビットカウント変化量を算出する。
【０２２４】
このように、粗トラッキングの下位ページトラッキングを実行することにより、範囲（Ｉ）及び（ＩＩＩ）の全域にわたるビットカウントトラッキングの結果が算出される。
【０２２５】
また、図２６（Ａ）に示すように、コントローラ１０は、範囲（ＩＩ）を第２探索範囲として、範囲（ＩＶ）を第４探索範囲としてそれぞれ設定する。具体的には、例えば、電圧ＣＲ０及びＣＲＮはそれぞれ、範囲（ＩＩ）の左端及び右端の電圧が設定される。範囲（ＩＩ）は範囲（Ｉ）及び（ＩＩＩ）と連続するため、例えば、電圧ＣＲ０は電圧ＡＲＮと等しく、電圧ＣＲＮは電圧ＥＲ０と等しい。また、電圧ＧＲ０及びＧＲＮはそれぞれ、範囲（ＩＶ）の左端及び右端の電圧が設定される。範囲（ＩＶ）は範囲（ＩＩＩ）と連続するため、例えば、電圧ＧＲ０は電圧ＥＲＮと等しい。また、コントローラ１０は、例えば、範囲（ＩＩＩ）において読出し電圧Ｖｔ＿ｕｐ（例えば電圧ＥＲｄｅｆ）を設定する。
【０２２６】
そして、半導体記憶装置２０は、範囲（ＩＩ）及び（ＩＶ）について（Ｎ＋１）回のシフトリードを含む上位ページトラッキングを実行する。シフトリードでは、範囲（ＩＩ）及び（ＩＶ）の全域にわたって、くまなく読出し電圧がシフトされる。上位ページトラッキングの結果、半導体記憶装置２０は、範囲（ＩＩ）の全域にわたる（Ｎ＋１）個の分離データＣＲｓｎを演算し、範囲（ＩＶ）の全域にわたる（Ｎ＋１）個の分離データＥＲｓｎを演算する。
【０２２７】
図２６（Ｂ）に示すように、コントローラ１０は、（Ｎ＋１）個の分離データＣＲｓｎに基づき、範囲（ＩＩ）の全域にわたるＮ点のビットカウント変化量を算出する。また、コントローラ１０は、（Ｎ＋１）個の分離データＧＲｓｎに基づき、範囲（ＩＶ）の全域にわたるＮ点のビットカウント変化量を算出する。
【０２２８】
このように、粗トラッキングの上位ページトラッキングを実行することにより、範囲（ＩＩ）及び（ＩＶ）の全域にわたるビットカウントトラッキングの結果が算出される。
【０２２９】
以上により、連続する４つの範囲（Ｉ）〜（ＩＶ）について、全域にわたって４Ｎ個のビットカウント変化量が算出される。コントローラ１０は、当該４Ｎ個のビットカウント変化量に基づいてビットカウントトラッキングを実行し、全てのレベル間の暫定的な谷位置を検出する。
【０２３０】
図２７に示すように、下位ページトラッキング及び上位ページトラッキングから算出されたビットカウント変化量を並べてプロットすると、フルレベルの全域にわたって、メモリセルトランジスタＭＴの閾値電圧分布が再現される。コントローラ１０は、ビットカウント変化量が局所的に最小となっている７点を検出する。検出された７点は、対応する読出し電圧の値が小さい順に、“Ｅｒ”レベル及び“Ａ”レベル間、“Ａ”レベル及び“Ｂ”レベル間、“Ｂ”レベル及び“Ｃ”レベル間、“Ｃ”レベル及び“Ｄ”レベル間、“Ｄ”レベル及び“Ｅ”レベル間、“Ｅ”レベル及び“Ｆ”レベル間、並びに“Ｆ”レベル及び“Ｇ”レベル間の暫定的な谷位置とみなされる。以下の説明では、検出された７点に対応する読出し電圧は、既定の読出し電圧ＡＲｄｅｆ〜ＧＲｄｅｆに対応して、それぞれＡＲｄｅｆ２〜ＧＲｄｅｆ２と記載して他と区別する。
【０２３１】
また、コントローラ１０は、例えば、暫定的な谷位置の各々を含む電圧の範囲（ｉ）〜（ｖｉｉ）を検出する。範囲（ｉ）〜（ｖｉｉ）はそれぞれ、電圧ＡＲｄｅｆ２〜ＧＲｄｅｆ２を含む。また、範囲（ｉ）〜（ｖｉｉ）は、暫定的な谷位置の周辺に限定されるため、互いに不連続である。なお、図２７の例では、範囲（ｉ）〜（ｖｉｉ）は、暫定的な谷位置として検出されたビットカウント変化量を中心とする３点を含む電圧の範囲が検出されているが、これに限らず、互いに不連続な範囲において任意の範囲を検出可能である。
【０２３２】
以上で、粗トラッキング動作が終了する。
【０２３３】
１．２．２．７  精トラッキングについて
引き続き図２７を用いて、第１実施形態に係る半導体記憶装置の精トラッキング動作について説明する。上述の通り、粗トラッキング動作では、フルレベルに対して、下位ページトラッキング及び上位ページトラッキングによるビットカウントトラッキングが実行される。これに対して、精トラッキングでは、フルレベルではなく、限定された範囲に対して下位ページトラッキング、中位ページトラッキング及び上位ページトラッキングによるビットカウントトラッキングが実行される。
【０２３４】
コントローラ１０は、暫定的な谷位置に基づき、精トラッキングに用いる探索範囲を設定する。具体的には、コントローラ１０は、精トラッキングにおける下位ページトラッキングの第１探索範囲及び第２探索範囲として、それぞれ範囲（ｉ）及び（ｖ）を設定する。また、コントローラ１０は、精トラッキングにおける上位ページトラッキングの第３探索範囲及び第４探索範囲として、それぞれ範囲（ｉｉｉ）、及び（ｖｉｉ）を設定する。また、コントローラ１０は、精トラッキングにおける中位ページトラッキングの第５探索範囲、第６探索範囲及び第７探索範囲として、それぞれ範囲（ｉｉ）、（ｉｖ）、及び（ｖｉ）を設定する。
【０２３５】
図２８は、第１実施形態に係る半導体記憶装置の粗トラッキングと精トラッキングとの差異点を説明するための模式図である。図２８では、一例として、精トラッキングにおける第２探索範囲として設定された範囲（ｖ）が示されるが、その他の探索範囲の動作も同様である。図２８では、粗トラッキングにおいて算出されるビットカウント変化量（“○”と表示）と共に、精トラッキングにおいて新たに算出されるビットカウント変化量（“△”と表示）が示される。
【０２３６】
図２８に示すように、コントローラ１０は、例えば、精トラッキングにおける第２探索範囲として、暫定的な谷位置の電圧ＥＲｄｅｆ２から、粗トラッキングにおけるシフト量ΔＶ２ｅ１だけ前後する範囲［ＥＲｄｅｆ２−ΔＶ２ｅ１、ＥＲｄｅｆ２＋ΔＶ２ｅ１］を設定する。そして、コントローラ１０は、精トラッキングにおけるシフト量として、シフト量ΔＶ２ｅ１よりも小さいシフト量ΔＶ２ｅ２で読出し電圧をシフトさせるようにシフトリードコマンドを発行する。
【０２３７】
半導体記憶装置２０は、精トラッキングにおける第２探索範囲の全域にわたって、シフト量ΔＶ２ｅ２ずつシフトさせてシフトリードを実行する。これにより、半導体記憶装置２０は、精トラッキングにおける第２探索範囲の全域にわたって、分離データＥＲｓｎを演算する。
【０２３８】
コントローラ１０は、当該分離データＥＲｓｎに基づき、精トラッキングにおける第２探索範囲の全域にわたってビットカウント変化量を算出する。これにより、図２８の例では、精トラッキング動作により、粗トラッキングにおいて算出されたビットカウント変化量が３点算出された範囲において、１３点のビットカウント変化量が算出される。
【０２３９】
コントローラ１０は、算出されたビットカウント変化量に基づき、最適な谷位置を検出する。図２８の例では、精トラッキングによって、暫定的な谷位置よりもビットカウント変化量が小さくなる点が４点検出されている。コントローラ１０は、この中から、ビットカウント変化量が最小となる点を最適な谷位置として検出し、当該最適な谷位置に対応する読出し電圧を最適な読出し電圧ＥＲｏｐｔとして設定する。
【０２４０】
以上により、精トラッキング動作が終了する。
【０２４１】
１．３  本実施形態に係る効果
第１実施形態によれば、閾値電圧分布の谷位置を高速かつ高精度に検出することができる。本効果につき、以下に説明する。
【０２４２】
谷位置を検出するための様々なトラッキング手法が提案されている。例えば、第１手法として、テストリードをフルレベルにわたって実行し、トラッキングを行う手法が知られている。第１手法は、最低限の動作でフルレベルの読出しデータを取得できるため、高速にトラッキングすることができる。しかしながら、テストリードはノーマルリードと読出しのメカニズムが異なる。より具体的には、テストリードは、半導体記憶装置２０内の種々の要素の状態（例えば、配線の電圧）が異なる。このため、テストリードを使用して推定された最適な読出し電圧は、ノーマルリードで最適な読出し電圧とは異なる可能性がある。このため、第１手法によるトラッキング結果は、実際の読出し動作の際における谷位置の検出精度が悪くなる可能性がある。
【０２４３】
また、例えば、第２手法として、シフトリードをフルレベルにわたって実行し、トラッキングを行う手法が知られている。第２手法は、ノーマルリードと同じ読出し方式であるシフトリードを用いるため、ノーマルリードと異なる読出し方式であるために谷位置検出精度が悪いという第１手法のデメリットを解決し得る。しかしながら、第２手法は、１つのメモリセルトランジスタに複数ビットのデータを記憶させる場合、１回の読出し動作につき複数レベルの読出し電圧が印加される。このため、第１手法と同様に、１回の読出し動作につき１レベルの読出し電圧にのみ着目してトラッキングする場合、非常に時間を要するというデメリットがある。
【０２４４】
また、例えば、第３手法として、シフトリードの探索範囲を予め定められた、限定された範囲に固定して実行し、トラッキングを行う手法が知られている。第３手法は、探索範囲が限定されるため、第２手法と比べて高速に動作させることが可能である。しかしながら、探索範囲が固定されているため、意図しないレベルの谷位置が探索範囲に存在する場合、谷位置を誤検出する可能性がある。
【０２４５】
図２９では、第３手法によって、或るレベルの間の谷位置Ｐ１を探索する際に生じ得る事象が模式的に示される。図２９（Ａ）は、正常に谷位置を検出し得る閾値電圧分布と探索範囲との位置関係が示され、図２９（Ｂ）は、谷位置の誤検出し得る閾値電圧分布と探索範囲との位置関係が示される。
【０２４６】
第３手法では例えば、谷位置Ｐ１が存在すると想定される範囲について、隣のレベル間の谷位置（例えばＰ２）を含まない範囲が固定して設定される。図２９（Ａ）の例では、探索範囲が適切に設定されているため、当該探索範囲をトラッキングすることによって谷位置Ｐ１が検出される。しかしながら、図２９（Ｂ）に示すように、閾値電圧分布は、探索範囲が設定された後に、閾値電圧が全体的にシフトする場合がある。この場合、谷位置Ｐ１のみならず、谷位置Ｐ２も探索範囲に含まれため、当該探索範囲をトラッキングすると、谷位置Ｐ２におけるメモリセル数が谷位置Ｐ１におけるメモリセル数よりも小さい場合、谷位置Ｐ２を谷位置Ｐ１として誤検出してしまう可能性がある。
【０２４７】
第１実施形態によれば、２段階のトラッキング動作が続けて実行される。具体的には、１段階目のトラッキング動作として、フルレベルにわたって第１シフト量で読出し電圧が変化する粗トラッキング動作が実行される。これにより、粗トラッキング動作では、各レベル間の暫定的な谷位置を網羅的に検出することができる。
【０２４８】
また、粗トラッキング動作では、当該暫定的な谷位置の各々に対応する探索範囲を更に検出する。検出された各探索範囲は、フルレベルの中から、対応する谷位置を含みかつ他の谷位置を含まない範囲で設定される。これにより、各探索範囲は、互いに不連続となる。
【０２４９】
また、２段階目のトラッキング動作として、限定された探索範囲にわたって第２シフト量で読出し電圧が変化する精トラッキング動作が実行される。精トラッキング動作では、粗トラッキング動作において検出された各探索範囲が適用される。上述の通り、粗トラッキング動作において検出された各探索範囲は、互いに不連続であるため、探索範囲毎に対応する谷位置のみが存在する。また、精トラッキング動作は粗トラッキング動作に続けて実行されるため、粗トラッキング動作と精トラッキング動作との間に谷位置が移動して探索範囲から外れてしてしまうのを防ぐことができる。したがって、谷位置の誤検出を防ぐことができる。
【０２５０】
また、第２シフト量は、第１シフト量よりも小さい値が設定される。このため、粗トラッキング動作は、第２シフト量を用いるよりも少ない回数でフルレベルを網羅的に探索できる。一方、精トラッキング動作は、第１シフト量を用いるよりも谷位置の探索精度を高めることができる。
【０２５１】
また、精トラッキング動作の探索範囲は、粗トラッキング動作の探索範囲よりも狭い。このため、精トラッキング動作に要する時間を短縮することができ、ひいては、トラッキングの全体動作に要する時間を短縮することができる。
【０２５２】
また、粗トラッキング動作及び精トラッキング動作は、シフトリードによるビットカウントトラッキングを含む。これにより、ノーマルリードと同様の読出し方式を適用することができる。このため、実際の読出し動作の際の閾値電圧分布における谷位置を検出することができる。
【０２５３】
また、シフトリードによるビットカウントトラッキングでは、１回のシフトリードで印加される複数レベルの電圧を同時にシフトさせる。これにより、例えば、下位ページトラッキング及び上位ページトラッキングの際は、１回のシフトリードあたり２点のビットカウントを算出し、中位ページトラッキングの際は１回のシフトリードあたり３点のビットカウントを算出することができる。このため、シフトリードによるビットカウントトラッキングに要する時間を短縮することができる。
【０２５４】
また、シフトリードによるビットカウントトラッキングでは、シフトリードの前にテストリードが実行される。これにより、テストリードの読出しデータと、シフトリードの読出しデータとに基づき、分離データを演算することができる。このため、１回のシフトリードで印加される電圧レベルの数に応じてビットカウントを算出することができる。
【０２５５】
また、粗トラッキング動作は、フルレベルを４つの範囲（Ｉ）〜（ＩＶ）に分けてビットカウントトラッキングを行う。より具体的には、下位ページトラッキングでは範囲（Ｉ）及び（ＩＩＩ）について、上位ページトラッキングでは範囲（ＩＩ）及び（ＩＶ）についてビットカウントトラッキングを行う。範囲（ＩＩ）は範囲（Ｉ）及び（ＩＩＩ）の間の範囲であり、範囲（ＩＩＩ）は範囲（ＩＩ）及び（ＩＶ）の間の範囲である。これにより、同一のページトラッキングの際の探索範囲が不連続になるように設定しつつ、フルレベルを網羅的に探索することができる。
【０２５６】
また、精トラッキング動作は、互いに不連続な７つの範囲（ｉ）〜（ｖｉｉ）の各々に対してビットカウントトラッキングを行う。より具体的には、下位ページトラッキングでは範囲（ｉ）及び（ｖ）について、上位ページトラッキングでは範囲（ｉｉｉ）及び（ｖｉｉ）について、中位ページトラッキングでは範囲（ｉｉ）、（ｉｖ）、及び（ｖｉ）についてビットカウントトラッキングを行う。これにより、互いに不連続な７つの範囲について、効率的にシフトリードによるビットカウントトラッキングを行うことができる。
【０２５７】
１．４  第１実施形態の変形例
なお、第１実施形態に係る半導体記憶装置は、上述の例に限らず、種々の変形が適用可能である。
【０２５８】
例えば、第１実施形態に係る半導体記憶装置では、粗トラッキング動作において下位ページトラッキング及び上位ページトラッキングを実行したが、これに限られない。具体的には、粗トラッキング動作では、下位ページトラッキング及び上位ページトラッキングに代えて、中位ページトラッキングが実行されてもよい。
【０２５９】
図３０は、第１実施形態の変形例に係る半導体記憶装置のトラッキングの全体動作を説明するためのフローチャートである。図３０は、図１２に対応し、ステップＳＴ１〜ＳＴ３及びステップＳＴ６〜ＳＴ１５の動作については図１２と同様であるため、その説明を省略する。
【０２６０】
図３０に示すように、コントローラ１０は、ステップＳＴ３において実行されたＥＣＣがフェイルした場合、（ステップＳＴ３；フェイル）、ステップＳＴ１６に進む。
【０２６１】
ステップＳＴ１６において、コントローラ１０及び半導体記憶装置２０は、中位ページトラッキング動作を行う。以降、ステップＳＴ６において、コントローラ１０は、粗トラッキング動作の結果に基づいて、後続するトラッキング動作に用いるサーチ範囲及び暫定的な谷位置を検出する。ステップＳＴ１６及びＳＴ６における動作は、粗トラッキング動作である。
【０２６２】
また、ステップＳＴ７〜ＳＴ９において、コントローラ１０及び半導体記憶装置２０は、粗トラッキング動作によって検出された探索範囲で、精トラッキング動作を実行する。コントローラ１０は、ステップＳＴ１０において、精トラッキング動作の結果に基づき、最適な谷位置を検出する。
【０２６３】
次に、第１実施形態の変形例に係る半導体記憶装置の粗トラッキングにおける中位ページトラッキング動作について説明する。第１実施形態の変形例に係る半導体記憶装置の粗トラッキングにおける中位ページトラッキングは、互いに不連続な第５探索範囲〜第７探索範囲の各々の間において更にビットカウントが算出される点において、他の中位ページトラッキング動作と異なる。
【０２６４】
図３１は、第１実施形態の変形例に係る半導体記憶装置の粗トラッキングにおける中位ページトラッキング動作を説明するためのフローチャートである。図３１は、図３０におけるステップＳＴ１６に対応する。
【０２６５】
図３１に示すように、ステップＳＴ６１において、コントローラ１０は、中位ページ用の第１テストリードコマンドを半導体記憶装置２０に発行する。
【０２６６】
ステップＳＴ６２において、半導体記憶装置２０は、中位ページ用の第１テストリードを実行し、読出しデータＴＭ１を読み出す。半導体記憶装置２０は、読出しデータＴＭ１をラッチ回路（例えばラッチ回路ＡＤＬ）に保持すると共に、コントローラ１０に送信する。
【０２６７】
ステップＳＴ６３において、コントローラ１０は、読出しデータＴＭ１に基づくビットカウントを算出する。
【０２６８】
ステップＳＴ６４において、コントローラ１０は、中位ページ用の第２テストリードコマンドを半導体記憶装置２０に発行する。
【０２６９】
ステップＳＴ６５において、半導体記憶装置２０は、中位ページ用の第２テストリードを実行し、読出しデータＴＭ２を読み出す。半導体記憶装置２０は、読出しデータＴＭ２をラッチ回路（例えばラッチ回路ＢＤＬ）に保持すると共に、コントローラ１０に送信する。
【０２７０】
ステップＳＴ６６において、コントローラ１０は、読出しデータＴＭ２に基づくビットカウントを算出する。
【０２７１】
ステップＳＴ６７〜ＳＴ７３は、図２１におけるステップＳＴ４５〜ＳＴ５１と同様である。
【０２７２】
以上で、粗トラッキングにおける中位ページのトラッキング動作を終了する。
【０２７３】
図３２は、第１実施形態の変形例に係る粗トラッキングにおける中位ページトラッキングにおける読出しデータ及び分離データを説明するためのテーブルである。図３２は、図３１におけるステップＳＴ６３、ＳＴ６６、及びＳＴ７１に対応し、中位ページ用テストリードの読出しデータＴＭ１及びＴＭ２と、中位ページシフトリードに基づいて演算される分離データＴＭ１、ＴｓＭ２、ＢＲｓｎ、ＤＲｓｎ及びＦＲｓｎが示される。このうち、分離データＢＲｓｎ、ＤＲｓｎ、及びＦＲｓｎは、図２４と同様であるため、その説明を省略する。
【０２７４】
図３２に示すように、読出しデータＴＭ１は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ＿ｍｉｄ１未満の場合にはデータ“１”となり、電圧Ｖｔ＿ｍｉｄ１以上の場合にはデータ“０”となる。つまり、読出しデータＴＭ１のうち、データ“１”であるものの数は、閾値電圧が電圧Ｖｔ＿ｍｉｄ１未満であるメモリセルトランジスタＭＴの数に相当する。
【０２７５】
このため、図３１のステップＳＴ６３において、コントローラ１０は、読出しデータＴＭ１のビットカウントを算出することにより、電圧Ｖｔ＿ｍｉｄ１におけるオンセル数をモニタすることができる。また、コントローラ１０は、分離データＢＲｓＮと読出しデータＴＭ１との間のビットカウント変化量、及び読出しデータＴＭ１と分離データＤＲｓ０との間のビットカウント変化量を算出することにより、それぞれ電圧ＢＲＮとＶｔ＿ｍｉｄ１との間のオンセル数変化量、及び電圧Ｖｔ＿ｍｉｄ１とＤＲ０との間のオンセル数変化量をモニタすることができる。
【０２７６】
また、読出しデータＴＭ２は、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖｔ＿ｍｉｄ２未満の場合にはデータ“１”となり、電圧Ｖｔ＿ｍｉｄ２以上の場合にはデータ“０”となる。
【０２７７】
このため、図３１のステップＳＴ６７において、コントローラ１０は、読出しデータＴＭ２のビットカウントを算出することにより、電圧Ｖｔ＿ｍｉｄ２におけるオンセル数をモニタすることができる。また、コントローラ１０は、分離データＤＲｓＮと読出しデータＴＭ２との間のビットカウント変化量、及び読出しデータＴＭ２と分離データＦＲｓ０との間のビットカウント変化量を算出することにより、それぞれ電圧ＤＲＮとＶｔ＿ｍｉｄ２との間のオンセル数変化量、及び電圧Ｖｔ＿ｍｉｄ２とＦＲ０との間のオンセル数変化量をモニタすることができる。
【０２７８】
以上のように、粗トラッキングにおける中位ページトラッキングでは、半導体記憶装置２０は、２回のテストリード及び（Ｎ＋１）回のシフトリードから、（Ｎ＋１）個の分離データの組ＢＲｓ０、ＢＲｓ１、…、ＢＲｓＮ、（Ｎ＋１）個の分離データの組ＤＲｓ０、ＤＲｓ１、…、ＤＲｓＮ、及び（Ｎ＋１）個の分離データの組ＦＲｓ０、ＦＲｓ１、…、ＦＲｓＮを演算する。そして、コントローラ１０は、当該演算された３つの分離データの組の各々から、異なる読出し電圧の範囲（第５探索範囲、第６探索範囲及び第７探索範囲）において連続するビットカウント変化量を算出する。
【０２７９】
また、半導体記憶装置２０は、２回のテストリードから、更に読出しデータＴＭ１及び分離データＴＭ２を読み出す。そして、コントローラ１０は、当該読出しデータＴＭ１及びＴＭ２に基づき、第５探索範囲及び第６探索範囲の間、及び第６探索範囲及び第７探索範囲の間のビットカウント変化量を算出する。
【０２８０】
図３３は、第１実施形態の変形例に係る半導体記憶装置の粗トラッキング動作を説明するための模式図である。図３３は、粗トラッキングの中位ページトラッキングに基づいてビットカウントトラッキングが実行される読出し電圧の範囲が模式的に示される。
【０２８１】
第１実施形態の変形例に係る粗トラッキングでは、フルレベルを不連続な３つの範囲（Ｖ）〜（ＶＩＩ）に分割する。範囲（Ｖ）は電圧が最も小さい範囲を、範囲（ＶＩ）は電圧が２番目に小さい範囲を、範囲（ＶＩＩ）は電圧が最も大きい範囲に対応する。
【０２８２】
図３３（Ａ）に示すように、コントローラ１０は、範囲（Ｖ）を第５探索範囲として設定し、範囲（ＶＩ）を第６探索範囲として設定し、範囲（ＶＩＩ）を第７探索範囲として設定する。具体的には、例えば、電圧ＢＲ０及びＢＲＮはそれぞれ、範囲（Ｖ）の左端及び右端の電圧が設定される。また、例えば、電圧ＤＲ０及びＤＲＮはそれぞれ、範囲（ＶＩ）の左端及び右端の電圧が設定され、電圧ＦＲ０及びＦＲＮはそれぞれ、範囲（ＶＩＩ）の左端及び右端の電圧が設定される。また、コントローラ１０は、例えば、範囲（Ｖ）及び範囲（ＶＩ）の間において読出し電圧Ｖｔ＿ｍｉｄ１を設定し、範囲（ＶＩ）及び範囲（ＶＩＩ）の間において読出し電圧Ｖｔ＿ｍｉｄ２を設定する。
【０２８３】
そして、半導体記憶装置２０は、範囲（Ｖ）〜（ＶＩＩ）について（Ｎ＋１）回のシフトリードを含む中位ページトラッキングを実行する。シフトリードでは、範囲（Ｖ）〜（ＶＩＩ）の全域にわたって、くまなく読出し電圧がシフトされる。中位ページトラッキングの結果、半導体記憶装置２０は、範囲（Ｖ）の全域にわたる（Ｎ＋１）個の分離データＢＲｓｎを演算し、範囲（ＶＩ）の全域にわたる（Ｎ＋１）個の分離データＤＲｓｎを演算し、範囲（ＶＩＩ）の全域にわたる（Ｎ＋１）個の分離データＦＲｓｎを演算する。また、半導体記憶装置２０は、第１テストリード及び第２テストリードに基づき、読出しデータＴＭ１及びＴＭ２を更に読み出す。
【０２８４】
図３３（Ｂ）に示すように、コントローラ１０は、（Ｎ＋１）個の分離データＢＲｓｎに基づき、範囲（Ｖ）の全域にわたるＮ点のビットカウント変化量を算出する。コントローラ１０は、（Ｎ＋１）個の分離データＤＲｓｎに基づき、範囲（ＶＩ）の全域にわたるＮ点のビットカウント変化量を算出する。コントローラ１０は、（Ｎ＋１）個の分離データＦＲｓｎに基づき、範囲（ＶＩＩ）の全域にわたるＮ点のビットカウント変化量を算出する。
【０２８５】
また、コントローラ１０は、分離データＢＲｓＮ及び読出しデータＴＭ１に基づき、電圧ＢＲＮ及びＶｔ＿ｍｉｄ１の間について１点のビットカウント変化量を算出する。コントローラ１０は、分離データＤＲｓ０及び読出しデータＴＭ１に基づき、電圧Ｖｔ＿ｍｉｄ１及びＤＲ０の間について１点のビットカウント変化量を算出する。コントローラ１０は、分離データＤＲｓＮ及び読出しデータＴＭ２に基づき、電圧ＤＲＮ及びＶｔ＿ｍｉｄ２の間について１点のビットカウント変化量を算出する。コントローラ１０は、分離データＦＲｓ０及び読出しデータＴＭ２に基づき、電圧Ｖｔ＿ｍｉｄ２及びＦＲ０の間について１点のビットカウント変化量を算出する。なお、これらの４点のビットカウント変化量は、図３３（Ｂ）において黒丸で示される。
【０２８６】
以上により、連続しない３つの範囲（Ｖ）〜（ＶＩＩ）の各々について、全域にわたるビットカウント変化量が算出されると共に、範囲（Ｖ）及び（ＶＩ）の間並びに範囲（ＶＩ）及び（ＶＩＩ）の間についてもビットカウント変化量が算出される。したがって、粗トラッキングによって、フルレベルの全域にわたってトラッキングが実行される。粗トラッキングの結果、コントローラ１０は、全てのレベル間の暫定的な谷位置を検出する。
【０２８７】
なお、上述の粗トラッキングにおいてフルレベルの全域にわたってビットカウントトラッキングを実行するためには、範囲（Ｖ）及び（ＶＩ）の間及び範囲（ＶＩ）及び（ＶＩＩ）の間は、任意に設定できることが望ましい。より具体的には、範囲（Ｖ）〜（ＶＩＩ）の間において算出されるビットカウント変化量の刻み幅が範囲（Ｖ）〜（ＶＩＩ）内において算出されるビットカウント変化量の刻み幅（読出し電圧のシフト量）に対して広すぎても、狭すぎても、範囲（Ｖ）〜（ＶＩＩ）の間において算出されるビットカウント変化量は、所望の精度を得られない可能性がある。つまり、範囲（Ｖ）〜（ＶＩＩ）内において算出されるビットカウント変化量の刻み幅（読出し電圧のシフト量）と、範囲（Ｖ）〜（ＶＩＩ）の間において算出されるビットカウント変化量の刻み幅は、同等であることが望ましい。これにより、中位ページトラッキングから算出されたビットカウント変化量を並べてプロットすると、フルレベルの全域にわたって、メモリセルトランジスタＭＴの閾値電圧分布が再現される。
【０２８８】
したがって、コントローラ１０は、フルレベルのビットカウントトラッキングの結果に基づき、全てのレベル間の暫定的な谷位置を検出することができる。
【０２８９】
なお、読出しデータＴＭ１及びＴＭ２は、テストリードによって読み出されるデータであるため、ノーマルリードと同等の読出し方式が適用されない。このため、読み出しデータＴＭ１及びＴＭ２を用いて算出されるビットカウント変化量は、分離データＢＲｓｎ、ＤＲｓｎ、及びＦＲｓｎのみを用いて算出されるビットカウント変化量と比較して、精度が悪化する可能性がある。このため、例えば、ビットカウント変化量をプロットする際に、隣接する複数点（例えば３点）を用いた加重平均を算出することが望ましい。これにより、プロットされたビットカウント変化量の精度を平均化することができる。
【０２９０】
２．第２実施形態
次に、第２実施形態に係る半導体記憶装置について説明する。第１実施形態に係る半導体記憶装置が精トラッキングにおいてビットカウントトラッキングを実行するのに対し、第２実施形態に係る半導体記憶装置は、精トラッキングにおいてシンドロームトラッキングを実行するものである。第２実施形態では、精トラッキングのうち、特に下位ページトラッキングにおいてシンドロームトラッキングが実施される例について説明する。以下では、第１実施形態と同様の構成要素には同一の符号を付してその説明を省略し、第１実施形態と異なる部分についてのみ説明する。
【０２９１】
２．１  シンドロームトラッキングについて
図３４は、第２実施形態に係る半導体記憶装置のシンドロームトラッキングを説明するための模式図である。図３４に示すように、メモリセルアレイ２１から読み出された１ページ分のデータは、データとパリティとを含む。ＥＣＣ回路１３は、このパリティとデータとに対して用いられる、図示するようなパリティチェック行列を予め保持する。このパリティチェック行列に対して、値が“１”である位置のビットの排他的論理和演算を行うことで、パリティ検査式（シンドローム）が得られる。このシンドロームにおいて、値“１”はエラー（シンドロームＮＧ）を示し、値“１”であるビットの数の総和が、エラー総数（シンドロームＮＧ数）である。
【０２９２】
シンドロームＮＧ数は、読出しデータ内のエラービット数と相関する。特に、ＥＣＣ回路１３において実行されるＥＣＣ処理としてＬＤＰＣが適用される場合、シンドロームＮＧ数は、エラービット数に強い相関があることが知られている。このため、シンドロームＮＧ数は、ビットカウント変化量よりも谷位置の検出精度が高いパラメタとなり得る。つまり、シンドロームＮＧ数が最小となる読出し電圧は、ビットカウント変化量が最小となる読出し電圧よりも最適な谷位置となり得る。このように、シンドロームＮＧ数が最小となる読出し電圧を探索する手法をシンドロームトラッキング（Syndrome tracking）という。シンドロームトラッキングは、ＥＣＣ回路１３を用いて実行されるため、ビットカウントトラッキングよりもコントローラ１０への負荷が大きいが、より高精度に谷位置を探索できる。
【０２９３】
２．２  精トラッキングの下位ページトラッキングについて
図３５は、第２実施形態に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャートである。図３５は、探索範囲（ｉ）及び（ｖ）に対する精トラッキング動作を示す図１２におけるステップＳＴ７に対応する動作である。
【０２９４】
図３５に示すように、ステップＳＴ７１において、コントローラ１０は、下位ページ用のテストリードコマンドを半導体記憶装置２０に発行する。
【０２９５】
ステップＳＴ７２において、半導体記憶装置２０は、下位ページ用のテストリードを実行し、読出しデータＴＬを読み出す。半導体記憶装置２０は、読出しデータＴＬをラッチ回路（例えばラッチ回路ＡＤＬ）に保持する。
【０２９６】
ステップＴ７３において、コントローラ１０は、下位ページ用のノーマルリードコマンドを半導体記憶装置２０に発行する。
【０２９７】
ステップＳＴ７４において、半導体記憶装置２０は、下位ページ用のノーマルリードを実行し、読出しデータＡＲｄ／ＥＲｄを読み出す。半導体記憶装置２０は、読出しデータＡＲｄ／ＥＲｄをラッチ回路（例えばラッチ回路ＢＤＬ）に保持する。
【０２９８】
ステップＳＴ７５において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｄ／ＥＲｄに基づき、分離データＡＲｓｄ及びＥＲｓｄを演算する。そして、半導体記憶装置２０は、分離データＡＲｓｄ及びＥＲｓｄをコントローラ１０に送信する。
【０２９９】
ステップＳＴ７６において、コントローラ１０は、以降のステップＳＴ７７〜ＳＴ８３で実行されるループ処理の初期化を行う（ｎ＝０）。
【０３００】
ステップＳＴ７７において、コントローラ１０は、下位ページのシフトリードコマンドを半導体記憶装置２０に発行する。
【０３０１】
ステップＳＴ７８において、半導体記憶装置２０は、下位ページのシフトリードを実行し、（ｎ＋１）回目のループ処理において読出しデータＡＲｎ／ＥＲｎ（ＡＲ０／ＥＲ０、ＡＲ１／ＥＲ１、…、ＡＲＮ／ＥＲＮ）を読出す。半導体記憶装置２０は、読出しデータＡＲｎ／ＥＲｎをラッチ回路（例えばラッチ回路ＣＤＬ）に保持する。
【０３０２】
ステップＳＴ７９において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｎ／ＥＲｎに基づき、分離データＡＲｓｎ（ＡＲｓ０、ＡＲｓ１、…、ＡＲｓＮ）及びＥＲｓｎ（ＥＲｓ０、ＥＲｓ１、…、ＥＲｓＮ）を演算する。そして、半導体記憶装置２０は、分離データＡＲｓｎ及びＥＲｓｎをコントローラ１０に送信する。
【０３０３】
ステップＳＴ８０において、コントローラ１０は、分離データＡＲｓｄ及びＥＲｓｎに基づき、統合データＡＲｓｄ／ＥＲｓｎを生成する。また、コントローラ１０は、分離データＥＲｓｄ及びＡＲｓｎに基づき、統合データＡＲｓｎ／ＥＲｓｄを生成する。統合データＡＲｓｄ／ＥＲｓｎは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＡＲｄｅｆ及びＥＲｎとの関係に基づいてデータ“０”又は“１”を有する。統合データＡＲｓｎ／ＥＲｓｄは、各ビットにおいて、対応するメモリセルトランジスタＭＴの閾値電圧と電圧ＡＲｎ及びＥＲｄｅｆとの関係に基づいてデータ“０”又は“１”を有する。
【０３０４】
ステップＳＴ８１において、コントローラ１０は、統合データＡＲｓｄ／ＥＲｓｎに基づくシンドロームＮＧ数、及びＡＲｓｎ／ＥＲＳｄに基づくシンドロームＮＧ数を算出する。
【０３０５】
ステップＳＴ８２において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ８２；ｎｏ）、ステップＳＴ８３に進んでループ数をインクリメントした後にステップＳＴ７７に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ８２；ｙｅｓ）、精トラッキングにおける下位ページトラッキング動作を終了する。
【０３０６】
図３６〜図３８はそれぞれ、第２実施形態に係る半導体記憶装置の精トラッキングにおける下位ページトラッキングによる読出しデータ、分離データ、及び統合データを説明するためのテーブルである。図３６は、図３５におけるステップＳＴ７２、ＳＴ７４及びＳＴ７８に対応し、テストリードの読出しデータＴＬ、ノーマルリードの読出しデータＡＲｄ／ＥＲｄ及びシフトリードの読出しデータＡＲｎ／ＥＲｎが示される。図３７は、図３５におけるステップＳＴ７５及びＳＴ７９に対応し、読出しデータＴＬ、ＡＲｄ／ＥＲｄ、及びＡＲｎ／ＥＲｎに基づいて演算される分離データＡＲｓｄ、ＥＲｓｄ、ＡＲｓｎ及びＥＲｓｎが示される。図３８は、図３５におけるステップＳＴ８１に対応し、統合データＡＲｓｄ／ＥＲｓｎ及びＡＲｓｎ／ＥＲｓｄが示される。
【０３０７】
図３６に示すように、読出しデータＡＲｓｄ／ＥＲｓｄは、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｄｅｆ未満の場合にはデータ“１”となり、電圧ＡＲｄｅｆ以上電圧ＥＲｄｅｆ未満の場合にはデータ“０”となり、電圧ＥＲｄｅｆ以上の場合には“１”となる。電圧ＡＲｄｅｆは、例えば、（ｐ＋１）回目のループ（ｎ＝ｐ）におけるシフトリードの際の読出し電圧ＡＲｐと等しい。また、電圧ＥＲｄｅｆは、例えば、（ｑ＋１）回目のループ（ｎ＝ｑ）におけるシフトリードの際の読出し電圧ＥＲｑと等しい。なお、値ｐ及び値ｑは等しくてもよく、電圧ＡＲｄｅｆ及びＥＲｄｅｆは、シフトリードの際の読出し電圧と異なっていてもよい。
【０３０８】
その他の読出しデータＴＬ、ＡＲｎ／ＥＲｎについては、第１実施形態における図１５と同様であるため、説明を省略する。
【０３０９】
図３７に示すように、分離データＡＲｓｄは、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｄｅｆ未満の場合にはデータ“１”となり、電圧ＡＲｄｅｆ以上の場合にはデータ“０”となる。
【０３１０】
分離データＡＲｓｄは、例えば、読出しデータＴＬ及びＡＲｄ／ＥＲｄに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＬと、読出しデータＡＲｄ／ＥＲｄとの論理積演算を行うことにより、分離データＡＲｓｄを生成可能である（ＡＲｓｄ＝ＴＬ  ＡＮＤ  （ＡＲｄ／ＥＲｄ））。
【０３１１】
また、分離データＥＲｓｄは、メモリセルトランジスタＭＴの閾値電圧が電圧ＥＲｄｅｆ未満の場合にはデータ“０”となり、電圧ＥＲｄｅｆ以上の場合にはデータ“１”となる。
【０３１２】
分離データＥＲｓｄは、例えば、読出しデータＴＬ及びＡＲｄ／ＥＲｄに基づいて演算される。演算部ＯＰは、例えば、読出しデータＴＬの否定演算結果￣ＴＬと、読出しデータＡＲｄ／ＥＲｄとの論理積演算を行うことにより、分離データＥＲｓｄを生成可能である（ＥＲｓｄ＝￣ＴＬ  ＡＮＤ  （ＡＲｄ／ＥＲｄ））。
【０３１３】
その他の分離データＡＲｓｎ及びＥＲｓｎについては、第１実施形態における図１６と同様であるため、説明を省略する。
【０３１４】
図３８に示すように、統合データＡＲｓ０／ＥＲｓｄは、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲ０未満の場合にはデータ“１”となり、電圧ＡＲ０以上電圧ＥＲｄｅｆ未満の場合にはデータ“０”となり、電圧ＥＲｄｅｆ以上の場合にはデータ“１”となる。
【０３１５】
統合データＡＲｓ１／ＥＲｓｄは、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲ１未満の場合にはデータ“１”となり、電圧ＡＲ１以上電圧ＥＲｄｅｆ未満の場合にはデータ“０”となり、電圧ＥＲｄｅｆ以上の場合にはデータ“１”となる。
【０３１６】
このように、統合データＡＲｓｎ／ＥＲｓｄは、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｎ未満の場合にはデータ“１”となり、電圧ＡＲｎ以上電圧ＥＲｄｅｆ未満の場合にはデータ“０”となり、電圧ＥＲｄｅｆ以上の場合にはデータ“１”となる。つまり、統合データＡＲｓｎ／ＥＲｓｄは、“Ｅ”レベルの読出し電圧は電圧ＥＲｄｅｆに固定し、“Ａ”レベルの読出し電圧のみ電圧ＡＲ０〜ＡＲＮの範囲でシフトさせたシフトリードにおける読出しデータと同等である。
【０３１７】
なお、統合データＡＲｓｎ／ＥＲｓｄは、例えば、分離データＡＲｓｎ及びＥＲｓｄに基づいて演算される。コントローラ１０は、例えば、分離データＡＲｓｎと、分離データＥＲｓｄとの論理和演算を行うことにより、統合データＡＲｓｎ／ＥＲｓｄを生成可能である（ＡＲｓｎ／ＥＲｓｄ＝ＡＲｓｎ  ＯＲ  ＥＲｓｄ）。
【０３１８】
一方、統合データＡＲｓｄ／ＥＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｄｅｆ未満の場合にはデータ“１”となり、電圧ＡＲｄｅｆ以上電圧ＥＲ０未満の場合にはデータ“０”となり、電圧ＥＲ０以上の場合にはデータ“１”となる。
【０３１９】
統合データＡＲｓｄ／ＥＲｓ１は、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｄｅｆ未満の場合にはデータ“１”となり、電圧ＡＲｄｅｆ以上電圧ＥＲ１未満の場合にはデータ“０”となり、電圧ＥＲ１以上の場合にはデータ“１”となる。
【０３２０】
このように、統合データＡＲｓｄ／ＥＲｓ０は、メモリセルトランジスタＭＴの閾値電圧が電圧ＡＲｄｅｆ未満の場合にはデータ“１”となり、電圧ＡＲｄｅｆ以上電圧ＥＲｎ未満の場合にはデータ“０”となり、電圧ＥＲｎ以上の場合にはデータ“１”となる。つまり、統合データＡＲｓｄ／ＥＲｓｎは、“Ａ”レベルの読出し電圧は電圧ＡＲｄｅｆに固定し、“Ｅ”レベルの読出し電圧のみ電圧ＥＲ０〜ＥＲＮの範囲でシフトさせたシフトリードにおける読出しデータと同等である。
【０３２１】
なお、統合データＡＲｓｄ／ＥＲｓｎは、例えば、分離データＡＲｓｄ及びＥＲｓｎに基づいて演算される。コントローラ１０は、例えば、分離データＡＲｓｄと、分離データＥＲｓｎとの論理和演算を行うことにより、統合データＡＲｓｄ／ＥＲｓｎを生成可能である（ＡＲｓｄ／ＥＲｓｎ＝ＡＲｓｄ  ＯＲ  ＥＲｓｎ）。
【０３２２】
２．３  本実施形態に係る効果
図３９は、第２実施形態の効果を説明するための模式図である。図３９（Ａ）及び３９（Ｂ）ではそれぞれ、探索範囲（ｉ）におけるビットカウント変化量及びシンドロームＮＧ数の真値が、参考のために点線で示されている。また、図３９（Ａ）は、精トラッキングにおける探索範囲（ｉ）に対してビットカウントトラッキングした場合のビットカウント変化量が“○”で示される。図３９（Ｂ）は、精トラッキングにおける探索範囲（ｉ）に対してシンドロームトラッキングした場合のビットカウント変化量が“□”で示される。
【０３２３】
図３９（Ａ）に示すように、ビットカウント変化量は、真値に対するばらつき（分散：variance）が大きい。これにより、例えば“Ｅｒ”レベルのように、“Ａ”レベルに対して閾値電圧分布が緩やかに変化する領域では、ビットカウント変化量は、当該誤差の影響を受けやすい。このため、ビットカウントトラッキングでは、真の谷位置に対して“Ｅｒ”レベル側に広い範囲で、ビットカウント変化量が最小となり得る。したがって、図３９（Ａ）に例示されるように、ビットカウントトラッキングの結果検出された谷位置Ｐ３は、真の谷位置Ｐ４から大きくずれてしまう可能性がある。
【０３２４】
一方、図３９（Ｂ）に示すように、シンドロームＮＧ数は、ビットカウント変化量よりもエラービット数に対して強く相関するため、真値に対するばらつきがビットカウント変化量よりも小さい。このため、“Ｅｒ”レベルのような閾値電圧分布が緩やかに変化する領域においても、比較的誤差の影響を受けにくい。このため、シンドロームトラッキングでは、シンドロームＮＧ数が最小となり得る範囲は、真の谷位置に対して“Ｅｒ”レベル側の範囲も“Ａ”レベル側と同じように、狭い範囲に収まる。したがって、図３９（Ｂ）に例示されるように、シンドロームトラッキングの結果検出された谷位置Ｐ５は、真の谷位置Ｐ６に精度よく追随し得る。
【０３２５】
第２実施形態によれば、半導体記憶装置２０は、精トラッキングの下位ページトラッキングにおいて、下位ページ用テストリード及び下位ページノーマルリードに基づいて、分離データＡＲｓｄ及びＥＲｓｄを演算する。そして、下位ページシフトリードのループ処理に基づいて、分離データＡＲｓｎ及びＥＲｓｎを演算する。コントローラ１０は、分離データＡＲｓｄ及びＥＲｓｎに基づいて統合データＡＲｓｄ／ＥＲｓｎを生成し、分離データＡＲｓｎ及びＥＲｓｄに基づいて統合データＡＲｓｎ／ＥＲｓｄを生成する。コントローラ１０は、ＥＣＣ回路１３において、生成した統合データＡＲｓｄ／ＥＲｓｎ及びＡＲｓｎ／ＥＲｓｄに基づいて、シンドロームＮＧ数を算出する。これにより、コントローラ１０は、探索範囲（ｉ）及び（ｖ）について、ビットカウントトラッキングに代えて、シンドロームトラッキングを実行することができる。このため、ビットカウント変化量では谷位置検出の精度が悪化する傾向にある探索範囲（ｉ）においても、シンドロームＮＧ数を用いることにより、精度よく谷位置を検出することができる。
【０３２６】
また、シンドロームトラッキングにおいて、ＥＣＣ回路１３は、シンドロームＮＧ数を算出するだけでよく、実際の誤り訂正を行う必要が無い。このため、コントローラ１０は、シンドロームトラッキングにおいてＥＣＣ回路１３による誤り訂正動作に要する時間を省略しつつ、精度の高い谷検出を実行することができる。
【０３２７】
また、シフトリードによるシンドロームトラッキングでは、１回のシフトリードで印加される複数レベルの電圧を同時にシフトさせる。これにより、例えば、下位ページトラッキングの際は、１回のシフトリードあたり２点のシンドロームＮＧ数を算出することができる。このため、シフトリードによるシンドロームトラッキングに要する時間を短縮することができる。
【０３２８】
２．４  第２実施形態の第１変形例
なお、第２実施形態に係る半導体記憶装置は、上述の例に限らず、種々の変形が適用可能である。例えば、第２実施形態に係る半導体記憶装置では、シンドロームトラッキングによって探索範囲（ｉ）及び（ｖ）における谷位置を検出したが、これに限られない。具体的には、シンドロームトラッキングは、探索範囲（ｉ）における谷位置の検出のみについて実行されればよく、探索範囲（ｖ）における谷位置の検出に際してはビットカウントトラッキングが実行されてもよい。
【０３２９】
図４０は、第２実施形態の第１変形例に係る半導体記憶装置の精トラッキングにおける下位ページトラッキング動作を説明するためのフローチャートである。図４０は、第２実施形態に係る図３５に対応する。すなわち、図４０は、探索範囲（ｉ）及び（ｖ）に対する精トラッキング動作を示す図１２のステップＳＴ７に対応する。
【０３３０】
図４０に示すように、ステップＳＴ９１〜ＳＴ９４は、図３５におけるステップＳＴ７１〜ＳＴ７４と同様であるため、説明を省略する。
【０３３１】
ステップＳＴ９５において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｄ／ＥＲｄに基づき、分離データＥＲｓｄのみを演算する。そして、半導体記憶装置２０は、分離データＥＲｓｄをコントローラ１０に送信する。ステップＳＴ９５は、図３５におけるステップＳＴ７５と、分離データＡＲｓｄを演算しない点において相違する。
【０３３２】
ステップＳＴ９６において、コントローラ１０は、以降のステップＳＴ９７〜ＳＴ１０４で実行されるループ処理の初期化を行う（ｎ＝０）。
【０３３３】
ステップＳＴ９７〜ＳＴ９９は、図３５におけるステップＳＴ７７〜ＳＴ７９と同様であるため、説明を省略する。
【０３３４】
ステップＳＴ１００において、コントローラ１０は、分離データＥＲｓｎに基づくビットカウントを算出する。
【０３３５】
ステップＳＴ１０１において、コントローラ１０は、分離データＥＲｓｄ及びＡＲｓｎを用いて、統合データＡＲｓｎ／ＥＲｓｄを生成する。
【０３３６】
ステップＳＴ１０２において、コントローラ１０は、ＡＲｓｎ／ＥＲｓｄに基づくシンドロームＮＧ数を算出する。
【０３３７】
ステップＳＴ１０３において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ１０２；ｎｏ）、ステップＳＴ１０４に進んでループ数をインクリメントした後にステップＳＴ９７に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ１０２；ｙｅｓ）、精トラッキングにおける下位ページトラッキング動作を終了する。
【０３３８】
図４１は、第２実施形態の変形例の効果を説明するための模式図である。図４１（Ａ）及び４１（Ｂ）ではそれぞれ、探索範囲（ｖ）におけるビットカウント変化量及びシンドロームＮＧ数の真値が、参考のために点線で示されている。また、図４１（Ａ）は、精トラッキングにおける探索範囲（ｖ）に対してビットカウントトラッキングした場合のビットカウント変化量が“○”で示される。図４１（Ｂ）は、精トラッキングにおける探索範囲（ｖ）に対してシンドロームトラッキングした場合のビットカウント変化量が“□”で示される。
【０３３９】
上述の通り、シンドロームＮＧ数は、ビットカウント変化量よりもエラービット数に対して強く相関する。このため、図４１（Ｂ）に示すように、探索範囲（ｖ）に対するシンドロームトラッキングは、探索範囲（ｉ）に対するシンドロームトラッキングと同様に、シンドロームＮＧ数が最小となり得る範囲が、真の谷位置に対して狭い範囲に収まる。したがって、シンドロームトラッキングの結果検出された谷位置Ｐ９は、真の谷位置Ｐ１０に精度よく追随し得る。
【０３４０】
一方、ビットカウント変化量は、上述の通り、シンドロームＮＧ数と比較して、真値に対するばらつきが大きい。しかしながら、図４１（Ａ）に示すように、例えば“Ｄ”レベル及び“Ｅ”レベルの間の谷位置のようにいずれのレベルも閾値電圧分布が急峻に変化する領域では、ビットカウント変化量は、当該誤差の影響を受けにくい。つまり、探索範囲（ｖ）におけるビットカウントトラッキングの結果検出された谷位置Ｐ７は、真の谷位置Ｐ８に精度よく追随し得る。したがって、探索範囲（ｖ）に対しては、シンドロームトラッキングの代わりにビットカウントトラッキングを用いても、最適な谷位置を精度よく検出することができる。
【０３４１】
第２実施形態の第１変形例によれば、半導体記憶装置２０は、精トラッキングの下位ページトラッキングにおいて、下位ページ用テストリード及び下位ページノーマルリードに基づいて、分離データＥＲｓｄのみを演算する。そして、下位ページシフトリードのループ処理に基づいて、分離データＡＲｓｎ及びＥＲｓｎを演算する。コントローラ１０は、分離データＥＲｓｎに基づいてビットカウントを算出する。また、コントローラ１０は、分離データＡＲｓｎ及びＥＲｓｄに基づいて統合データＡＲｓｎ／ＥＲｓｄを生成する。コントローラ１０は、ＥＣＣ回路１３において、生成した統合データＡＲｓｎ／ＥＲｓｄに基づいて、シンドロームＮＧ数を算出する。これにより、コントローラ１０は、探索範囲（ｉ）に対してのみシンドロームトラッキングを実行し、探索範囲（ｖ）に対してはビットカウントトラッキングを実行することができる。このため、コントローラ１０への負荷を最小限に抑えつつ、最適な谷位置を精度よく検出することができる。
【０３４２】
２．５  第２実施形態の第２変形例
次に、第２実施形態の第２変形例について説明する。第２実施形態の第２変形例では、第２実施形態の第１変形例について、更に谷位置の検出精度を高める変形が施される。具体的には、探索範囲（ｉ）に対するシンドロームトラッキングの統合データに用いられる“Ｅ”レベル側の分離データについて、粗トラッキングにおいて検出された暫定的な谷位置を適用する点において、第２実施形態の第１変形例と異なる。以下の説明では、第２実施形態の第１変形例と異なる点について説明し、重複する部分についてはその説明を省略する。
【０３４３】
図４２は、第２実施形態の第２変形例に係る半導体記憶装置の精トラッキングの下位ページトラッキング動作を説明するためのフローチャートである。図４２は、第２実施形態の第１変形例に係る図４０に対応する。
【０３４４】
図４２に示すように、ステップＳＴ１１１〜ＳＴ１１２は、図４０におけるステップＳＴ９１〜ＳＴ９２と同様であるため、説明を省略する。
【０３４５】
ステップＳＴ１１３において、コントローラ１０は、粗トラッキングにおいて検出された“Ｅ”レベルの暫定的な谷位置の読出し電圧ＥＲｄｅｆ２を適用した下位ページシフトリードコマンドを発行する。具体的には、コントローラ１０は、下位ページの読出し電圧が電圧ＡＲｄｅｆ及びＥＲｄｅｆ２となるように下位ページシフトリードコマンドを発行する。
【０３４６】
ステップＳＴ１１４において、半導体記憶装置２０は、下位ページシフトリードを実行し、読出しデータＡＲｄ／ＥＲｄ２を読み出す。半導体記憶装置２０は、読出しデータＡＲｄ／ＥＲｄ２をラッチ回路（例えばラッチ回路ＢＤＬ）に保持する。
【０３４７】
ステップＳＴ１１５において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｄ／ＥＲｄ２に基づき、分離データＥＲｓｄ２のみを演算する。そして、半導体記憶装置２０は、分離データＥＲｓｄ２をコントローラ１０に送信する。ステップＳＴ１１５は、図４０におけるステップＳＴ９５と、分離データＥＲｓｄではなく分離データＥＲｓｄ２を演算する点において相違する。
【０３４８】
ステップＳＴ１１６において、コントローラ１０は、以降のステップＳＴ１１７〜ＳＴ１２４で実行されるループ処理の初期化を行う（ｎ＝０）。
【０３４９】
ステップＳＴ１１７〜ＳＴ１２０は、図４０におけるステップＳＴ９７〜ＳＴ１００と同様であるため、説明を省略する。
【０３５０】
ステップＳＴ１２１において、コントローラ１０は、分離データＥＲｓｄ２及びＡＲｓｎを演算し、統合データＡＲｓｎ／ＥＲｓｄ２を生成する。
【０３５１】
ステップＳＴ１２２において、コントローラ１０は、統合データＡＲｓｎ／ＥＲｓｄ２に基づくシンドロームＮＧ数を算出する。
【０３５２】
ステップＳＴ１２３〜ＳＴ１２４は、図４０におけるステップＳＴ１０３〜ＳＴ１０４と同様であるため、説明を省略する。
【０３５３】
第２実施形態の第２変形例によれば、よりシンドロームＮＧ数を低減させた状態で探索範囲（ｉ）に対するシンドロームトラッキングを実行することが出来る。
【０３５４】
上述の通り、シンドロームは、パリティチェック行列に対する論理演算によって算出されるため、シンドロームのサイズは、パリティチェック行列のサイズに依存する。つまり、シンドロームＮＧ数は、パリティチェック行列のサイズに応じた上限値を有する。このため、エラービット数が過度に大きい場合、当該エラービット数に相関するシンドロームＮＧ数は、上限値に達した状態で飽和してしまう。シンドロームＮＧ数が上限値に達してしまうと、読出し電圧をシフトさせてもシンドロームＮＧ数が上限値のまま変化しないため、どちらがよりエラービット数を少なくする読出し電圧であるかが判定できない。このように、エラービット数が過度に大きい場合、シンドロームトラッキングを実行することができない。
【０３５５】
図４３は、メモリセルトランジスタＭＴの閾値電圧分布と、読出し電圧との関係が示される。図４３に示すように、コントローラ１０は、トラッキング前には既定の読出し電圧ＥＲｄｅｆを用いて読出し動作を実行する。そして、コントローラ１０は、粗トラッキング動作によって暫定的な谷位置に対応する読出し電圧ＥＲｄｅｆ２を検出する。電圧ＥＲｄｅｆ２は、電圧ＥＲｄｅｆよりも最適な読出し電圧ＥＲｏｐｔに近い。つまり、電圧ＥＲｄｅｆ２による読出しデータは、電圧ＥＲｄｅｆによる読出しデータよりも、エラービット数が少ない。より具体的には、統合データＡＲｓｎ／ＥＲｓｄ２は、統合データＡＲｓｎ／ＥＲｓｄよりも図４３に示された斜線部分のメモリセル数だけ、エラービット数が少ない。
【０３５６】
第２実施形態の第２変形例によれば、半導体記憶装置２０は、精トラッキングの下位ページトラッキングにおいて、下位ページ用テストリード及び下位ページシフトリードに基づいて、分離データＥＲｓｄ２のみを演算する。そして、下位ページシフトリードのループ処理に基づいて、分離データＡＲｓｎ及びＥＲｓｎを演算する。コントローラ１０は、分離データＥＲｓｎに基づいてビットカウントを算出する。また、コントローラ１０は、分離データＡＲｓｎ及びＥＲｓｄ２に基づいて統合データＡＲｓｎ／ＥＲｓｄ２を生成する。コントローラ１０は、ＥＣＣ回路１３において、生成した統合データＡＲｓｎ／ＥＲｓｄ２に基づいて、シンドロームＮＧ数を算出する。上述の通り、統合データＡＲｓｎ／ＥＲｓｄ２は、統合データＡＲｓｎ／ＥＲｓｄよりもエラービット数が少ない。このため、統合データＡＲｓｎ／ＥＲｓｄではシンドロームＮＧ数が上限値に達してしまう場合においても、統合データＡＲｓｎ／ＥＲｓｄ２によればシンドロームＮＧ数が上限値に達しない程度に低減し得る。したがって、最適な谷位置を検出できる可能性を高めることができる。
【０３５７】
２．６  第２実施形態の第３変形例
次に、第２実施形態の第３変形例について説明する。第２実施形態の第３変形例に係る半導体記憶装置は、第２実施形態の第２変形例について、更に谷位置の検出精度を高める変形が施される。具体的には、統合データの生成に用いられる“Ｅ”レベル側の分離データについて、精トラッキングにおいて検出された最適な谷位置を適用する点において、第２実施形態の第２変形例と異なる。以下の説明では、第２実施形態の第２変形例と異なる点について説明し、重複する部分についてはその説明を省略する。
【０３５８】
図４４及び図４５は、第２実施形態の第３変形例に係る半導体記憶装置の精トラッキングの下位ページトラッキング動作を説明するためのフローチャートである。図４４及び図４５は、第２実施形態の第２変形例に係る図４２に対応する。
【０３５９】
図４４に示すように、ステップＳＴ１３１〜ＳＴ１３２は、図４２におけるステップＳＴ１１１〜ＳＴ１１２と同様であるため、説明を省略する。
【０３６０】
ステップＳＴ１３３において、コントローラ１０は、以降のステップＳＴ１３４〜ＳＴ１３９で実行されるループ処理の初期化を行う（ｎ＝０）。
【０３６１】
ステップＳＴ１３４において、コントローラ１０は、下位ページのシフトリードコマンドを半導体記憶装置２０に発行する。
【０３６２】
ステップＳＴ１３５において、半導体記憶装置２０は、下位ページのシフトリードを実行し、（ｎ＋１）回目のループ処理において読出しデータＡＲｎ／ＥＲｎ（ＡＲ０／ＥＲ０、ＡＲ１／ＥＲ１、…、ＡＲＮ／ＥＲＮ）を読み出す。半導体記憶装置２０は、読出しデータＡＲｎ／ＥＲｎをラッチ回路（例えばラッチ回路ＢＤＬ）に保持する。
【０３６３】
ステップＳＴ１３６において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｎ／ＥＲｎに基づき、分離データＥＲｓｎ（ＥＲｓ０、ＥＲｓ１、…、ＥＲｓｎ）を演算する。そして、半導体記憶装置２０は、分離データＥＲｓｎをコントローラ１０に送信する。
【０３６４】
ステップＳＴ１３７において、コントローラ１０は、分離データＥＲｓｎに基づくビットカウントを算出する。
【０３６５】
ステップＳＴ１３８において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ１３８；ｎｏ）、ステップＳＴ１３９に進んでループ数をインクリメントした後にステップＳＴ１３４に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ１３８；ｙｅｓ）、ステップＳＴ１４０に進む。
【０３６６】
ステップＳＴ１４０において、コントローラ１０は、分離データＥＲｓｎに基づいて算出されたビットカウントに基づくビットカウントトラッキングを実行する。コントローラ１０は、ビットカウントトラッキングの結果、“Ｅ”レベルの最適な谷位置における読出し電圧ＥＲｏｐｔを検出する。
【０３６７】
図４５に示すように、ステップ１４１において、コントローラ１０は、以降のステップＳＴ１４２〜ＳＴ１４６で実行されるループ処理の初期化を行う（ｎ＝０）。
【０３６８】
ステップＳＴ１４２において、コントローラ１０は、ステップＳＴ１４０において検出された読出し電圧ＥＲｏｐｔを適用した下位ページシフトリードコマンドを発行する。具体的には、コントローラ１０は、（ｎ＋１）回目のループにおいて、下位ページの読出し電圧が電圧ＡＲｎ及びＥＲｏｐｔとなるように下位ページシフトリードコマンドを発行する。
【０３６９】
ステップＳＴ１４３において、半導体記憶装置２０は、下位ページシフトリードを実行し、（ｎ＋１）回目のループ処理において読出しデータＡＲｎ／ＥＲｏｐｔ（ＡＲ０／ＥＲｏｐｔ、ＡＲ１／ＥＲｏｐｔ、…、ＡＲＮ／ＥＲｏｐｔ）を読み出す。半導体記憶装置２０は、読出しデータＡＲｎ／ＥＲｏｐｔをコントローラ１０に送信する。
【０３７０】
ステップＳＴ１４４において、コントローラ１０は、読出しデータＡＲｎ／ＥＲｏｐｔに基づくシンドロームＮＧ数を算出する。
【０３７１】
ステップＳＴ１４５において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ１４５；ｎｏ）、ステップＳＴ１４６に進んでループ数をインクリメントした後にステップＳＴ１４２に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ１４５；ｙｅｓ）、精トラッキングの下位ページトラッキングを終了する。
【０３７２】
第２実施形態の第３変形例によれば、よりシンドロームＮＧ数を低減させた状態で探索範囲（ｉ）に対するシンドロームトラッキングを実行することが出来る。
【０３７３】
図４６は、メモリセルトランジスタＭＴの閾値電圧分布と、読出し電圧との関係が示される。図４６に示すように、コントローラ１０は、トラッキング前には既定の読出し電圧ＥＲｄｅｆを用いて読出し動作を実行する。コントローラ１０は、粗トラッキング動作によって暫定的な谷位置に対応する読出し電圧ＥＲｄｅｆ２を検出する。そして、コントローラ１０は、探索範囲（ｖ）に対する精トラッキングによって“Ｄ”レベルと“Ｅ”レベルとの間の最適な谷位置に対応する読出し電圧ＥＲｏｐｔを検出する。電圧ＥＲｏｐｔによる読出しデータは、電圧ＥＲｄｅｆ２による読出しデータよりも、エラービット数が少ない。より具体的には、統合データＡＲｓｎ／ＥＲｏｐｔは、統合データＡＲｓｎ／ＥＲｓｄ２よりも図４６に示された斜線部分のメモリセル数だけ、エラービット数が少ない。
【０３７４】
第２実施形態の第３変形例によれば、半導体記憶装置２０は、精トラッキングの下位ページトラッキングにおいて、探索範囲（ｉ）に対する下位ページシフトリードのループ処理の前に、探索範囲（ｖ）に対する下位ページシフトリードのループ処理を実行する。コントローラ１０は、探索範囲（ｖ）に対する下位ページシフトリードのループ処理において、最適な谷位置に対応する読出し電圧ＥＲｏｐｔを予め検出する。半導体記憶装置２０は、探索範囲（ｉ）に対する下位ページシフトリードのループ処理において、読出し電圧ＥＲｏｐｔを適用した下位ページシフトリードを実行し、読出しデータＡＲｎ／ＥＲｏｐｔを読み出す。コントローラ１０は、ＥＣＣ回路１３において、読出しデータＡＲｎ／ＥＲｏｐｔに基づいて、シンドロームＮＧ数を算出する。上述の通り、統合データＡＲｓｎ／ＥＲｏｐｔは、統合データＡＲｓｎ／ＥＲｓｄ２よりもエラービット数が少ない。このため、統合データＡＲｓｎ／ＥＲｓｄ２ではシンドロームＮＧ数が上限値に達してしまう場合においても、統合データＡＲｓｎ／ＥＲｏｐｔによればシンドロームＮＧ数が上限値に達しない程度に低減し得る。したがって、最適な谷位置を検出できる可能性を高めることができる。
【０３７５】
２．７  第２実施形態の第４変形例
次に、第２実施形態の第４変形例について説明する。第２実施形態の第４変形例に係る半導体記憶装置は、第２実施形態の第３変形例について、更に谷位置の検出精度を高める変形が施される。具体的には、第２実施形態の第４変形例は、シンドロームＮＧ数が算出されるデータについて、電圧ＥＲｏｐｔを適用して読み出されたデータを用いる点では第２実施形態の第３変形例と共通する。しかしながら、第２実施形態の第４変形例は、或る特定のループで電圧ＥＲｏｐｔを適用して読み出されたデータを、他のループにおいても適用する点において第２実施形態の第３変形例と異なる。以下の説明では、第２実施形態の第３変形例と異なる点について説明し、重複する部分についてはその説明を省略する。
【０３７６】
図４７は、第２実施形態の第４変形例に係る半導体記憶装置の精トラッキングの下位ページトラッキング動作を説明するためのフローチャートである。図４７は、第２実施形態の第３変形例に係る図４５に対応する。また、第２実施形態の第４変形例では、第２実施形態の第３変形例に係る図４４に対応する動作が共通する動作であるため、当該動作については説明を省略する。
【０３７７】
図４７に示すように、ステップＳＴ１５１において、コントローラ１０は、以降のステップＳＴ１５２〜ＳＴ１６０で実行されるループ処理の初期化を行う（ｎ＝０）。
【０３７８】
ステップＳＴ１５２において、コントローラ１０は、ステップＳＴ１４０において検出された読出し電圧ＥＲｏｐｔを適用した下位ページシフトリードコマンドを発行する。具体的には、コントローラ１０は、（ｎ＋１）回目のループにおいて、下位ページの読出し電圧が電圧ＡＲｎ及びＥＲｏｐｔとなるように下位ページシフトリードコマンドを発行する。
【０３７９】
ステップＳＴ１５３において、半導体記憶装置２０は、下位ページシフトリードを実行し、（ｎ＋１）回目のループ処理において読出しデータＡＲｎ／ＥＲｏｐｔｎ（ＡＲ０／ＥＲｏｐｔ１、ＡＲ１／ＥＲｏｐｔ２、…、ＡＲＮ／ＥＲｏｐｔＮ）を読み出す。ここで、読出しデータＡＲｎ／ＥＲｏｐｔｎは、いずれにおいても“Ｅ”レベル側の読出し電圧は、電圧ＥＲｏｐｔが共通して印加される。しかしながら、“Ｅ”レベル側の読出しデータは、（ｎ＋１）回のループ処理毎に必ずしも完全一致しない。上述の差異を区別するため、便宜上読出しデータＡＲｎ／ＥＲｏｐｔの末尾にループ数の“ｎ”を付して記載するものである。
【０３８０】
ステップＳＴ１５４において、半導体記憶装置２０は、ラッチ回路に保持された読出しデータＴＬ及びＡＲｎ／ＥＲｏｐｔｎに基づき、分離データＡＲｓｎ（ＡＲｓ０、ＡＲｓ１、…、ＡＲｓＮ）及びＥＲｓｏｐｔｎ（ＥＲｓｏｐｔ０、ＥＲｓｏｐｔ１、…、ＥＲｓｏｐｔＮ）を演算する。そして、半導体記憶装置２０は、分離データＡＲｓｎ及びＥＲｓｏｐｔｎをコントローラ１０に送信する。
【０３８１】
ステップＳＴ１５５において、コントローラ１０は、ループ数が１回目（ｎ＝０）であるか否かを判定する。コントローラ１０は、ループ数が１回目である場合（ステップＳＴ１５５；ｙｅｓ）、ステップＳＴ１５６に進み、１回目でない場合（ステップＳＴ１５５；ｎｏ）、ステップＳＴ１５７に進む。
【０３８２】
ステップＳＴ１５６において、コントローラ１０は、１回目のループ処理における分離データＥＲｓｏｐｔ０を記憶する。なお、分離データＥＲｓｏｐｔ０は、１回目ではないループ処理において用いられる。
【０３８３】
ステップＳＴ１５７において、コントローラ１０は、分離データＡＲｓｎと、１回目のループ処理における分離データＥＲｓｏｐｔ０を演算し、統合データＡＲｓｎ／ＥＲｓｏｐｔ０を生成する。
【０３８４】
ステップＳＴ１５８において、コントローラ１０は、統合データＡＲｓｎ／ＥＲｓｏｐｔ０に基づくシンドロームＮＧ数を算出する。
【０３８５】
ステップＳＴ１５９において、コントローラ１０は、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎと等しくない場合（ステップＳＴ１５９；ｎｏ）、ステップＳＴ１６０に進んでループ数をインクリメントした後にステップＳＴ１５２に戻る。また、値ｎが値Ｎと等しい場合（ステップＳＴ１５９；ｙｅｓ）、精トラッキングの下位ページトラッキングを終了する。
【０３８６】
第２実施形態の第４変形例によれば、シンドロームＮＧ数の真値に対するばらつきの大きさを低減することが出来る。
【０３８７】
図４８は、或る読出し電圧に対して複数回の読出しを行った際に、ビットカウントが変動する様子を示している。図４８の例では、読出し電圧ＥＲｏｐｔが印加された場合に、読み出されるデータのビットカウントが、真値と推定される或る値μを中心に或るばらつきで変動している。このように、実際の読出し動作では、同一の書込み状態にあるページへの同一の読出し電圧が実行された場合においても、読み出しデータのビットカウントは、或る範囲で変動し得る（以下、このような変動を「ノイズ」と言う。）。つまり、精トラッキングにおけるシフトリードのループ処理においても、全てのループにおいて同一の読出し電圧ＥＲｏｐｔが印加されたとしても、当該電圧ＥＲｏｐｔによる読出しデータのビットカウントは、ループ毎に変動し得る。
【０３８８】
第２実施形態の第４変形例によれば、半導体記憶装置２０は、精トラッキングの下位ページトラッキングにおいて、探索範囲（ｉ）に対する下位ページシフトリードのループ処理の前に、探索範囲（ｖ）に対する下位ページシフトリードのループ処理を実行する。コントローラ１０は、探索範囲（ｖ）に対する下位ページシフトリードのループ処理において、最適な谷位置に対応する読出し電圧ＥＲｏｐｔを予め検出する。半導体記憶装置２０は、探索範囲（ｉ）に対する下位ページシフトリードのループ処理において、読出し電圧ＥＲｏｐｔを適用した下位ページシフトリードを実行し、読出しデータＡＲｎ／ＥＲｏｐｔｎを読み出す。また、半導体記憶装置２０は、分離データＡＲｓｎ及びＥＲｓｏｐｔｎを演算する。コントローラ１０は、１回目のループにおいて、分離データＥＲｓｏｐｔ０を記憶する。そしてコントローラ１０は、ｎ回目のループにおいて、統合データＡＲｓｎ／ＥＲｓｏｐｔ０を演算し、当該統合データＡＲｓｎ／ＥＲｓｏｐｔ０に基づくシンドロームＮＧ数を算出する。これにより、全てのループにおいて、電圧ＥＲｏｐｔに基づく読出しデータの結果が、１回目のループによるもので統一される。このため、ループ毎に発生する真値に対する誤差の大きさがどのループでも同じ大きさになり、谷位置の検出精度が向上する。したがって、最適な谷位置を検出できる可能性を高めることができる。
【０３８９】
３．第３実施形態
次に、第３実施形態に係る半導体記憶装置について説明する。第１実施形態及び第２実施形態に係る半導体記憶装置がページ単位でトラッキング動作を実行するのに対し、第３実施形態に係る半導体記憶装置は、クラスタ単位でトラッキング動作を実行するものである。以下では、第２実施形態と同様の構成要素には同一の符号を付してその説明を省略し、第２実施形態と異なる部分についてのみ説明する。
【０３９０】
３．１  クラスタについて
まず、第３実施形態に係る半導体記憶装置におけるクラスタの概要について説明する。図４９は、第３実施形態に係る半導体記憶装置におけるクラスタの概念を説明するための模式図である。
【０３９１】
図４９に示すように、半導体記憶装置２０から読み出される１ページ分の読出しデータは、例えば、４つのクラスタ（クラスタ［０］、クラスタ［１］、クラスタ［２］、及びクラスタ［３］）に区分される。各クラスタは、データとパリティとを含み、ＥＣＣ回路１３によるＥＣＣ処理が実行可能な最小単位となり得る。なお、図４９では、１ページ分の読出しデータが４つのクラスタに区分されることを例示しているに過ぎず、同一クラスタ内のデータが連続したカラムのデータであることを示すものではない。
【０３９２】
コントローラ１０は、１ページ分の読出しデータ内の各ビットが、いずれのクラスタに属するかを予め記憶している。つまり、ＥＣＣ回路１３は、１ページ分の読出しデータに対してＥＣＣ処理を実行する場合、データ内の各ビットとクラスタとの対応関係に基づいて読出しデータをクラスタ単位に分割し、クラスタ毎にＥＣＣ処理を実行する。そして、ＥＣＣ回路１３は、ＥＣＣ処理がパスしたか、又はフェイルしたかをクラスタ毎に判定する。
【０３９３】
３．２  トラッキング動作について
次に、第３実施形態に係る半導体記憶装置のトラッキング動作について説明する。図５０は、第３実施形態に係る半導体記憶装置のトラッキング動作を説明するためのフローチャートである。
【０３９４】
図５０に示すように、ステップＳＴ２０１において、コントローラ１０は、既定の読出し電圧ＶＣＧＲＶｄｅｆを適用したノーマルリードコマンドを半導体記憶装置２０に発行する。
【０３９５】
ステップＳＴ２０２において、半導体記憶装置２０は、ノーマルリードを実行し、読出しデータをコントローラ１０に送信する。
【０３９６】
ステップＳＴ２０３において、ＥＣＣ回路１３は、ノーマルリードの読出しデータに基づいて各クラスタについてＥＣＣを実行する。コントローラ１０は、ノーマルリードの読出しデータが全てのクラスタについてＥＣＣをパスした場合（ステップＳＴ２０３；パス）、ステップＳＴ２１４に進み、少なくとも１つのクラスタについてフェイルした場合、（ステップＳＴ２０３；フェイル）、ステップＳＴ２０４に進む。
【０３９７】
ステップＳＴ２０４において、コントローラ１０及び半導体記憶装置２０は、トラッキング動作を実行する。ステップＳＴ２０４におけるトラッキング動作は、精トラッキングを含む。具体的には、例えば、ステップＳＴ２０４において、コントローラ１０は、第１実施形態において説明したビットカウントトラッキングに基づく精トラッキングを実行してもよく、第２実施形態において説明したシンドロームトラッキングに基づく精トラッキングを実行してもよい。なお、ステップＳＴ２０４におけるトラッキング動作は、上述の例に限らず、任意のトラッキング動作が適用可能である。いずれにしても、コントローラ１０及び半導体記憶装置２０は、１ページ分の読出しデータについて、ビットカウント変化量又はシンドロームＮＧ数等の、最適な谷位置を検出可能なパラメタを算出するための動作を実行する。
【０３９８】
ステップＳＴ２０５において、コントローラ１０は、ステップＳＴ２０５において算出されたパラメタをクラスタ毎に処理する。そして、コントローラ１０は、クラスタ毎に最適な谷位置を検出する。
【０３９９】
ステップＳＴ２０６において、コントローラ１０は、以降のステップＳＴ２０７〜ＳＴ２１３で実行されるループ処理の初期化を行う（ｋ＝０（ｋは０≦ｋ≦３の整数））。
【０４００】
ステップＳＴ２０７において、コントローラ１０は、クラスタ［ｋ］のためのシフトリードコマンドを半導体記憶装置２０に発行する。ここで、クラスタ［ｋ］のためのシフトリードコマンドは、ステップＳＴ２０５において検出されたクラスタ［ｋ］についての最適な谷位置に読出し電圧をシフトさせるための値ΔＤＡＣ［ｋ］を含む。
【０４０１】
ステップＳＴ２０８において、半導体記憶装置２０は、クラスタ［ｋ］のためのシフトリードを実行し、クラスタ［ｋ］について最適化された読出しデータＲ［ｋ］を読み出す。
【０４０２】
ステップＳＴ２０９において、ＥＣＣ回路１３は、読出しデータＲ［ｋ］のうちクラスタ［ｋ］に対してＥＣＣを実行する。コントローラ１０は、読出しデータＲ［ｋ］のクラスタ［ｋ］がＥＣＣをパスした場合（ステップＳＴ２０９；パス）、ステップＳＴ２１１に進み、フェイルした場合、（ステップＳＴ２０９；フェイル）、ステップＳＴ２１０に進む。
【０４０３】
ステップＳＴ２１０において、コントローラ１０は、クラスタ［ｋ］についてはデータを正しく訂正できないと判定する。ステップＳＴ２１１において、コントローラ１０は、クラスタ［ｋ］についてはデータを正しく訂正できたと判定する。
【０４０４】
ステップＳＴ２１２において、ループ処理を継続するか否かを判定する。具体的には、値ｋが値３に等しくない場合（ステップＳＴ２２１；ｎｏ）、ステップＳＴ２１３に進んでループ数をインクリメントした後にステップＳＴ２０７に戻る。また、値ｋが値３に等しい場合（ステップＳＴ２２１；ｙｅｓ）、動作を終了する。
【０４０５】
なお、ステップＳＴ２０５において、最適な谷位置に対応する読出し電圧として、同一の値が異なるクラスタについて検出された場合、ステップＳＴ２０７〜ＳＴ２１３は、省略され得る。具体的には、例えば、クラスタ［０］及びクラスタ［１］について同一の谷位置が検出された場合、クラスタ［０］及びクラスタ［１］に対するステップＳＴ２０７及びＳＴ２０８は、２回実行することなく、１回に省略され得る。また、ステップＳＴ２０９〜ＳＴ２１１では、ＥＣＣ回路１３は、クラスタ［０］及びクラスタ［１］に対してそれぞれＥＣＣを実行する。
【０４０６】
以上で、トラッキング動作が終了する。
【０４０７】
３．３  本実施形態に係る効果
データの読出しは、ページ単位で行われる。このため、一般的に、トラッキング動作もページ単位で行われる。しかしながら、ページ単位で算出された最適な読出し電圧は、ページ内の全てのメモリセルトランジスタＭＴの各々に対する最適な読出し電圧の平均値であり、必ずしも全てのメモリセルトランジスタＭＴに対して最適な読出し電圧であるとは限らない。具体的には、例えば、閾値電圧がクラスタに依存して変動している場合、クラスタ単位で算出された最適な読出し電圧は、ページ単位で算出された最適な読出し電圧よりも、より精度よくデータを読み出し得る。
【０４０８】
第３実施形態によれば、コントローラ１０は、トラッキング動作の結果をクラスタ毎に処理する。コントローラ１０は、当該処理の結果、クラスタ毎に最適な谷位置を検出する。半導体記憶装置２０は、クラスタ毎に最適化された読出し電圧を適用したシフトリードを実行し、読出しデータＲ［ｋ］を読み出す。コントローラ１０は、クラスタ毎の読出しデータＲ［ｋ］のうちの最適化された部分に対して順次ＥＣＣ処理を実行する。このため、クラスタ単位で最適化された読出し電圧に基づく読出しデータを生成することができる。したがって、より精度よくデータを読み出すことができる。
【０４０９】
３．４  第３実施形態の変形例
なお、第３実施形態に係る半導体記憶装置は、上述の例に限らず、種々の変形が適用可能である。例えば、ＥＣＣ処理がフェイルしたクラスタについては、ＥＣＣ処理がパスした他のクラスタにおける最適な谷位置の検出結果を適用するようにしても良い。
【０４１０】
図５１は、第３実施形態の変形例に係る半導体記憶装置のトラッキング動作の詳細を説明するためのフローチャートである。図５１は、図５０の一部であり、図５０におけるステップＳＴ２０４及びＳＴ２０５対応する。すなわち、第３実施形態の変形例に係るトラッキング動作は、図５０及び図５１によって示されるが、ここでは図５０に係る部分は第３実施形態と同様であるためその説明を省略し、図５１についてのみ説明する。なお、図５１では、一例として、ステップＳＴ２０３におけるＥＣＣ処理において、或るクラスタがフェイルし、その他のクラスタがパスした場合が示される。
【０４１１】
図５１に示すように、ステップＳＴ２２１において、コントローラ１０は、図５０におけるステップＳＴ２０３の結果、或るクラスタにおけるＥＣＣ処理がフェイルし、その他のクラスタにおけるＥＣＣ処理がパスしたことを認識する。コントローラ１０は、ＥＣＣ処理がパスしたクラスタについて誤り訂正を行い、誤り訂正済みデータＲｔｒｕｅを生成する。つまり、誤り訂正済みデータＲｔｒｕｅは、ＥＣＣ処理がフェイルしているクラスタについては生成されない。
【０４１２】
ステップＳＴ２２２において、コントローラ１０は、以降のステップＳＴ２２３〜ＳＴ２２８で実行されるループ処理の初期化を行う（ｎ＝０）。
【０４１３】
ステップＳＴ２２３において、コントローラ１０は、（ｎ＋１）回目のループにおけるシフトリードコマンドを半導体記憶装置２０に発行する。
【０４１４】
ステップＳＴ２２４において、半導体記憶装置２０は、（ｎ＋１）回目のループにおけるシフトリードを実行し、（ｎ＋１）回目のループにおける読出しデータＲｎを読み出す。半導体記憶装置２０は、読出しデータＲｎをコントローラ１０に送信する。
【０４１５】
ステップＳＴ２２５において、コントローラ１０は、ＥＣＣ処理がパスしたクラスタについて、読出しデータＲｎと、誤り訂正済みデータＲｔｒｕｅとに基づくフェイルビットカウントを算出する。具体的には、例えば、コントローラ１０は、誤り訂正済みデータＲｔｒｕｅと、読出しデータＲｎとの排他的論理和を演算することによって、フェイルビットカウントを算出する。
【０４１６】
ステップＳＴ２２６において、ループ処理を継続するか否かを判定する。具体的には、値ｎが値Ｎに等しくない場合（ステップＳＴ２２６；ｎｏ）、ステップＳＴ２２７に進んでループ数をインクリメントした後にステップＳＴ２２３に戻る。また、値ｎが値Ｎに等しい場合（ステップＳＴ２２６；ｙｅｓ）、ステップＳＴ２２８に進む。
【０４１７】
ステップＳＴ２２８において、コントローラ１０は、ＥＣＣ処理がパスしたクラスタの各々についてループ毎に算出されたフェイルビットカウントに基づき、ＥＣＣ処理がパスしたクラスタの各々について最適な谷位置を検出する。コントローラ１０は、例えば、フェイルビットカウントが最も小さくなる連続する２点のフェイルビットカウントを検出し、当該２点に対応する電圧の中央値を最適な谷位置として検出してもよい。
【０４１８】
ステップＳＴ２２９において、コントローラ１０は、ＥＣＣ処理がパスしたクラスタの各々について検出された最適な谷位置に基づき、ＥＣＣ処理がフェイルしたの最適な谷位置を推定する。具体的には、例えば、コントローラ１０は、ＥＣＣ処理がパスしたクラスタの各々における最適な谷位置の平均値を、ＥＣＣ処理がフェイルしたクラスタの最適な谷位置として推定する。また、上述の例に限らず、コントローラ１０は、ＥＣＣ処理がパスしたクラスタの各々における最適な谷位置のうち、最も精度の高い値をＥＣＣ処理がフェイルしたクラスタの最適な谷位置として推定してもよい。
【０４１９】
以降の動作において、ＥＣＣ処理がフェイルしたクラスタに最適な谷位置に対応する読出し電圧が適用された読出し動作が実行される。
【０４２０】
第３実施形態の変形例によれば、ＥＣＣ処理がフェイルしたクラスタについても、より精度よく最適な谷位置を推定することができる。本効果につき、以下説明する。
【０４２１】
第３実施形態に係る半導体記憶装置では、一例として、ビットカウントトラッキングによってクラスタ毎の最適な谷位置が検出できる場合について説明した。しかしながら、ビットカウントトラッキングは、谷位置の検出精度が低い場合があるため、データが正しく読み出せない可能性がある。また、第３実施形態に係る半導体記憶装置では、ＥＣＣ処理がフェイルしたクラスタについても、クラスタ単位によるトラッキングを実行する。このため、精度の観点から当該ＥＣＣ処理がフェイルしたクラスタについて最適な谷位置を検出できない可能性がある。
【０４２２】
図５２は、ＥＣＣ処理として、訂正可能ビット数が一定なＢＣＨ符号が適用された場合における、読出し電圧毎のフェイルビットカウントの変化が示される。図５２（Ａ）は、ノーマルリードにおいてＥＣＣパスするクラスタに関する、読出し電圧毎のフェイルビットカウントの変化が示される。図５２（Ｂ）は、ノーマルリードにおいてＥＣＣフェイルするクラスタに関する、読出し電圧毎のフェイルビットカウントの変化が示される。
【０４２３】
図５２（Ａ）に示すように、ＥＣＣ処理によって誤りを訂正できるフェイルビットカウントの数は、上限がある。このため、電圧Ｖ６よりも低い読出し電圧、又は電圧Ｖ１０よりも高い読出し電圧による読出しデータに対してＥＣＣ処理を行うと、ＥＣＣ処理はフェイルし、フェイルビットカウントを算出することができない。しかしながら、ノーマルリードにおいてＥＣＣパスするクラスタでは、例えばノーマルリードの読出し電圧として電圧Ｖ７が適用されると、ＥＣＣパスし、フェイルビットカウントＭ７が算出される。また、電圧Ｖ７近傍において或るシフト量で読出し電圧を振った場合、読出し電圧Ｖ６〜Ｖ１０においても、読出しデータと、誤り訂正されたデータとの比較により、フェイルビットカウントＭ６〜Ｍ１０が算出される。
【０４２４】
一方、図５２（Ｂ）に示すように、或るクラスタでは、ＥＣＣパスできる読出し電圧の範囲が非常に限られている場合がある。この場合、ノーマルリードの読出し電圧として電圧Ｖ７が適用されると、ＥＣＣフェイルし、フェイルビットカウントが算出できない。また、ＥＣＣパスできる読出し電圧の範囲が上述の或るシフト量よりも小さい場合、電圧Ｖ７近傍において当該或るシフト量で読出し電圧を振った場合でも、ＥＣＣ処理はフェイルし、フェイルビットカウントを算出することができない。
【０４２５】
ここで、例えば、フェイルビットカウントが算出可能なクラスタにおいて、フェイルビットカウントＭ８及びＭ９に基づき、電圧Ｖ８及び電圧Ｖ９の中間値を最適な読出し電圧Ｖ１１として設定する。すると、これまでフェイルビットカウントが算出できなかったクラスタにおいても、ＢＣＨ符号を用いたＥＣＣ処理によってフェイルビットカウントＭ１１を算出できる可能性がある。
【０４２６】
なお、仮に図５２（Ｂ）における探索可能範囲が電圧Ｖ８や電圧Ｖ９を含む場合、シフトリードの都度ＥＣＣ処理を実行すれば、ＥＣＣパスする読出し電圧を検出することができる。しかしながら、コントローラ１０にかかる負荷を軽減する観点から、シフトリードの都度ＥＣＣ処理を実行させる動作は、好ましくない。
【０４２７】
第３実施形態の変形例では、半導体記憶装置２０は、ノーマルリードでＥＣＣフェイルしたクラスタがある場合、シフトリードのループ処理を実行する。コントローラ１０は、ノーマルリードでＥＣＣフェイルしたクラスタ以外のクラスタに対して、ループ毎にフェイルビットカウントを算出する。フェイルビットは、ループ毎にＥＣＣ処理を実行することなく算出される。コントローラ１０は、算出されたフェイルビットカウントに基づき、ノーマルリードでＥＣＣフェイルしたクラスタ以外のクラスタに対して、最適な谷位置を検出する。コントローラ１０は、ノーマルリードでＥＣＣフェイルしたクラスタ以外のクラスタに対して検出された最適な谷位置を、ノーマルリードでＥＣＣフェイルしたクラスタに対して適用する。これにより、ＥＣＣフェイルが起きた場合でも、ビットカウントトラッキングよりも精度の高いフェイルビットカウントを用いて、谷位置を検出することができる。したがって、より精度よくデータを読み出すことができる。
【０４２８】
４．第４実施形態
次に、第４実施形態に係る半導体記憶装置について説明する。第１実施形態及び第２実施形態に係る半導体記憶装置がページ単位でトラッキング動作を実行し、第３実施形態に係る半導体記憶装置がクラスタ単位でトラッキング動作を実行するのに対し、第４実施形態に係る半導体記憶装置は、Ｉ／Ｏグループ単位でトラッキング動作を実行するものである。以下では、第３実施形態と同様の構成要素には同一の符号を付してその説明を省略し、第３実施形態と異なる部分についてのみ説明する。
【０４２９】
４．１  メモリセルアレイの構成について
第４実施形態に係る半導体記憶装置におけるメモリセルアレイの構成について説明する。図５３は、第４実施形態に係る半導体記憶装置におけるメモリセルアレイの構成を示す上面図である。図５３は、図４に示されたメモリセルアレイの構成に対応する。
【０４３０】
図５３に示すように、ストリングユニットＳＵ０及びＳＵ１、絶縁領域４６、並びにスリット領域４７は、例えばＸ方向に沿って延びる。ストリングユニットＳＵ０及びＳＵ１は、絶縁領域４６をＹ方向に挟み、スリット領域４７は、ストリングユニットＳＵ０及びＳＵ１、並びに絶縁領域４６をＹ方向に更に挟む。
【０４３１】
各ストリングユニットＳＵにおいて、配線層３１、３２、及び３３と絶縁膜とが交互に設けられた積層構造がｘｙ平面内に広がり、当該積層構造内には、複数のＮＡＮＤストリングＮＳが設けられている。ＮＡＮＤストリングＮＳは、Ｘ方向とＹ方向の平面内に例えば４列の千鳥状に設けられている。この１つのＮＡＮＤストリングＮＳには、１本のビット線ＢＬが接続される。具体的には、ＮＡＮＤストリングＮＳ０〜ＮＳ７にはそれぞれコンタクトプラグ３８を介してビット線ＢＬ０〜ＢＬ７が接続される。
【０４３２】
各ビット線ＢＬは、例えばＹ方向に沿って延びる。図５３の例では、ＮＡＮＤストリングＮＳが４列の千鳥状に配置されているため、ＮＡＮＤストリングＮＳの上方には、例えば２本のビット線ＢＬが通過する。コンタクトプラグ３８は、当該２本のビット線ＢＬのうち、ＮＡＮＤストリングＮＳに対応する１本のビットＢＬを、ＮＡＮＤストリングＮＳと接続するように設けられる。なお、ＮＡＮＤストリングＮＳの上方を通過するビット線ＢＬの本数は、２本に限らず、任意の本数であってもよい。
【０４３３】
上述の通り、或るビット線ＢＬに接続されたＮＡＮＤストリングＮＳは、信号Ｉ／Ｏ＜７：０＞のいずれかに対応付けられる。図５３では、例えば、ＮＡＮＤストリングＮＳ０、ＮＳ４、ＮＳ８、及びＮＳ１２は、或る信号線の組を介して、信号Ｉ／Ｏ＜７：０＞のうちの特定の信号Ｉ／Ｏを通信する。すなわち、ＮＡＮＤストリングＮＳ０、ＮＳ４、ＮＳ８、及びＮＳ１２、…は、Ｉ／Ｏグループ［０］に分類される。同様に、ＮＡＮＤストリングＮＳ２、ＮＳ６、ＮＳ１０、及びＮＳ１４、…は、Ｉ／Ｏグループ［１］に分類され、ＮＡＮＤストリングＮＳ１、ＮＳ５、ＮＳ９、及びＮＳ１３、…は、Ｉ／Ｏグループ［２］に分類され、ＮＡＮＤストリングＮＳ３、ＮＳ７、ＮＳ１１、及びＮＳ１５、…は、Ｉ／Ｏグループ［３］に分類される。各Ｉ／Ｏグループは、例えば、信号Ｉ／Ｏ＜７：０＞のうちの２つに対応付けられる。
【０４３４】
図５３の例では、Ｉ／Ｏグループ［０］は、スリット領域４７に最も近いＮＡＮＤストリングＮＳの組である。Ｉ／Ｏグループ［１］及び［２］はそれぞれ、スリット領域４７に２番目、及び３番目に近いＮＡＮＤストリングＮＳの組である。Ｉ／Ｏグループ［３］は、スリット領域４７から最も遠く、絶縁領域４６に最も近いＮＡＮＤストリングＮＳの組である。
【０４３５】
また、図５３の例では、Ｉ／Ｏグループ［０］〜Ｉ／Ｏグループ［３］の各々は、４列の千鳥状に配置されたＮＡＮＤストリングＮＳのうちの１列を構成する。すなわち、Ｉ／Ｏグループ［０］のＮＡＮＤストリングＮＳは、Ｘ方向に沿って一列に並び、Ｉ／Ｏグループ［１］のＮＡＮＤストリングＮＳは、Ｘ方向に沿ってＩ／Ｏグループ［０］と異なる列に一列に並ぶ。Ｉ／Ｏグループ［２］、Ｉ／Ｏグループ［３］についても同様である。
【０４３６】
４．２  トラッキング動作について
次に、第４実施形態に係る半導体記憶装置のトラッキング動作について説明する。図５４は、第４実施形態に係る半導体記憶装置のトラッキング動作を説明するためのフローチャートである。
【０４３７】
図５４に示すように、ステップＳＴ２４１において、コントローラ１０は、既定の読出し電圧ＶＣＧＲＶｄｅｆを適用したノーマルリードコマンドを半導体記憶装置２０に発行する。
【０４３８】
ステップＳＴ２４２において、半導体記憶装置２０は、ノーマルリードを実行し、読出しデータをコントローラ１０に送信する。
【０４３９】
ステップＳＴ２４３において、ＥＣＣ回路１３は、ノーマルリードの読出しデータに基づいてＥＣＣを実行する。コントローラ１０は、ノーマルリードの読出しデータがＥＣＣをパスした場合（ステップＳＴ２４３；パス）、ステップＳＴ２４３に進み、フェイルした場合、（ステップＳＴ２４３；フェイル）、ステップＳＴ２０４に進む。
【０４４０】
ステップＳＴ２４４において、コントローラ１０及び半導体記憶装置２０は、トラッキング動作を実行する。具体的には、例えば、ステップＳＴ２４４において、コントローラ１０は、第１実施形態において説明したビットカウントトラッキングに基づく精トラッキングを実行してもよい。なお、ステップＳＴ２４４におけるトラッキング動作は、上述の例に限らず、任意のトラッキング動作が適用可能である。いずれにしても、コントローラ１０及び半導体記憶装置２０は、１ページ分の読出しデータについて、ビットカウント変化量等の、最適な谷位置を検出可能なパラメタを算出するための動作を実行する。
【０４４１】
ステップＳＴ２４５において、コントローラ１０は、ステップＳＴ２４５において算出されたパラメタをＩ／Ｏグループ毎に処理する。そして、コントローラ１０は、Ｉ／Ｏグループ毎に最適な谷位置を検出する。
【０４４２】
ステップＳＴ２５６において、コントローラ１０は、以降のステップＳＴ２４７〜ＳＴ２５０で実行されるループ処理の初期化を行う（ｊ＝０（ｊは０≦ｊ≦３の整数））。
【０４４３】
ステップＳＴ２４７において、コントローラ１０は、Ｉ／Ｏグループ［ｊ］のためのシフトリードコマンドを半導体記憶装置２０に発行する。ここで、Ｉ／Ｏグループ［ｊ］のためのシフトリードコマンドは、ステップＳＴ２４５において検出されたＩ／Ｏグループ［ｊ］についての最適な谷位置に読出し電圧をシフトさせるための値ΔＤＡＣ［ｊ］を含む。
【０４４４】
ステップＳＴ２４８において、半導体記憶装置２０は、Ｉ／Ｏグループ［ｊ］のためのシフトリードを実行し、Ｉ／Ｏグループ［ｊ］について最適化された読出しデータＲ［ｊ］を読み出す。
【０４４５】
ステップＳＴ２４９において、ループ処理を継続するか否かを判定する。具体的には、値ｊが値３に等しくない場合（ステップＳＴ２４９；ｎｏ）、ステップＳＴ２５０に進んでループ数をインクリメントした後にステップＳＴ２４７に戻る。また、値ｊが値３に等しい場合（ステップＳＴ２４９；ｙｅｓ）、ステップＳＴ２５１に進む。
【０４４６】
なお、ステップＳＴ２４５において、最適な谷位置に対応する読出し電圧として、同一の値が異なるＩ／Ｏグループについて検出された場合、ステップＳＴ２４７〜ＳＴ２５０は、省略され得る。具体的には、例えば、Ｉ／Ｏグループ［０］及び［１］について同一の谷位置が検出された場合、Ｉ／Ｏグループ［０］及び［１］に対するステップＳＴ２４７〜ＳＴ２５０は、２回実行することなく、１回に省略され得る。
【０４４７】
ステップＳＴ２５１において、コントローラ１０は、Ｉ／Ｏグループ［０］〜Ｉ／Ｏグループ［３］についてそれぞれ最適化された読出しデータＲ［０］〜Ｒ［３］を統合する。具体的には、コントローラ１０は、各読出しデータＲ［０］〜Ｒ［３］について、最適となっている部分のみを抽出し、統合する。より具体的には、コントローラ１０は、読出しデータＲ［０］のうちのＩ／Ｏグループ［０］に対応する部分のデータと、読出しデータＲ［１］のうちのＩ／Ｏグループ［１］に対応する部分のデータと、読出しデータＲ［２］のうちのＩ／Ｏグループ［２］に対応する部分のデータと、読出しデータＲ［３］のうちのＩ／Ｏグループ［３］に対応する部分のデータと、を抽出する。そして、コントローラ１０は、抽出された各Ｉ／Ｏグループに対応する部分のデータを統合し、１ページ分のデータに統合する。
【０４４８】
ステップＳＴ２５２において、ＥＣＣ回路１３は、統合されたデータに基づいてＥＣＣを実行する。コントローラ１０は、統合されたデータがＥＣＣをパスした場合（ステップＳＴ２５２；パス）、ステップＳＴ２５３に進み、フェイルした場合、（ステップＳＴ２５２；フェイル）、ステップＳＴ２５４に進む。
【０４４９】
ステップＳＴ２５３において、コントローラ１０は、ＥＣＣパスのステータスを取得し、動作を終了する。ステップＳＴ２５４において、コントローラ１０は、ＥＣＣ結果に基づいてデータを正しく訂正できないと判定し、動作を終了する。
【０４５０】
以上で、トラッキング動作が終了する。
【０４５１】
４．３  本実施形態に係る効果
読出しデータは、信号Ｉ／Ｏ＜７：０＞のいずれかとしてコントローラ１０へ送信される。一方、特定の信号Ｉ／Ｏグループに属するＮＡＮＤストリングＮＳは、特定の位置に配置され得る。特定の位置に配置されたＮＡＮＤストリングＮＳは、当該特定の位置に応じた閾値電圧の特性を有し得る。このため、特定のＩ／Ｏグループに属するＮＡＮＤストリングＮＳは、特定の閾値電圧の特性を有し得る。つまり、閾値電圧は、Ｉ／Ｏグループに依存して変動し得る。
【０４５２】
このような場合、ページ単位で算出された最適な読出し電圧は、必ずしも全てのメモリセルトランジスタＭＴに対して最適な読出し電圧であるとは限らない。具体的には、Ｉ／Ｏグループ単位で算出された最適な読出し電圧は、ページ単位で算出された最適な読出し電圧よりも、より精度よくデータを読み出し得る。
【０４５３】
第４実施形態によれば、コントローラ１０は、トラッキング動作の結果をＩ／Ｏグループ毎に処理する。コントローラ１０は、当該処理の結果、Ｉ／Ｏグループ毎に最適な谷位置を検出する。半導体記憶装置２０は、Ｉ／Ｏグループ毎に最適化された読出し電圧を適用したシフトリードを実行し、読出しデータＲ［ｊ］を読み出す。コントローラ１０は、Ｉ／Ｏグループ毎の読出しデータＲ［ｊ］のうちの最適化された部分同士を統合し、当該統合データに対してＥＣＣ処理を実行する。このため、Ｉ／Ｏグループ単位で最適化された読出し電圧に基づく読出しデータを生成することができる。したがって、より精度よくデータを読み出すことができる。
【０４５４】
５．その他の変形例等
実施形態は、上述の第１乃至第４実施形態で述べた形態に限らず、種々の変形が可能である。上述の第１実施形態及び第２実施形態では、半導体記憶装置２０において分離データを演算するようにしているが、これに限らず、コントローラ１０において演算するようにしてもよい。また、第２実施形態では、コントローラ１０において統合データを演算するようにしているが、これに限らず、半導体記憶装置２０において演算するようにしてもよい。
【０４５５】
また、上述の各実施形態では、１つのメモリセルトランジスタＭＴあたり３ビットを保持可能な場合（ＴＬＣ：Triple Level Cell）について説明したが、これに限られない。例えば、メモリセルトランジスタＭＴは、２ビットを保持可能（ＭＬＣ：Multi Level Cell）でもよく、４ビット以上を保持可能でもよい。
【０４５６】
その他、各実施形態及び各変形例において、以下の事項が適用されることが可能である。
【０４５７】
多値レベルの読み出し動作（リード）において、Ａレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば０Ｖ〜０．５５Ｖの間である。これに限定されることなく、０．１Ｖ〜０．２４Ｖ、０．２１Ｖ〜０．３１Ｖ、０．３１Ｖ〜０．４Ｖ、０．４Ｖ〜０．５Ｖ、及び０．５Ｖ〜０．５５Ｖのいずれかの間にしてもよい。
【０４５８】
Ｂレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば１．５Ｖ〜２．３Ｖの間である。これに限定されることなく、１．７５Ｖ〜１．８Ｖ、１．８Ｖ〜１．９５Ｖ、１．９５Ｖ〜２．１Ｖ、及び２．１Ｖ〜２．３Ｖのいずれかの間にしてもよい。
【０４５９】
Ｃレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば３．０Ｖ〜４．０Ｖの間である。これに限定されることなく、３．０Ｖ〜３．２Ｖ、３．２Ｖ〜３．４Ｖ、３．４Ｖ〜３．５Ｖ、３．５Ｖ〜３．７Ｖ、及び３．７Ｖ〜４．０Ｖのいずれかの間にしてもよい。
【０４６０】
読み出し動作の時間（ｔＲ）としては、例えば２５μｓ〜３８μｓ、３８μｓ〜７０μｓ、及び７０μｓ〜８０μｓのいずれかの間にしてもよい。
【０４６１】
書き込み動作は、プログラム動作及びベリファイ動作を含む。書き込み動作では、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば１３．７Ｖ〜１４．３Ｖの間である。これに限定されることなく、例えば１３．７Ｖ〜１４．０Ｖ、及び１４．０Ｖ〜１４．７Ｖのいずれかの間としてもよい。
【０４６２】
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを変えてもよい。
【０４６３】
プログラム動作をＩＳＰＰ（Incremental Step Pulse Program）方式としたとき、ステップアップの電圧として、例えば０．５Ｖ程度が挙げられる。
【０４６４】
非選択のワード線に印加される電圧としては、例えば７．０Ｖ〜７．３Ｖの間としてもよい。この場合に限定されることなく、例えば７．３Ｖ〜８．４Ｖの間としてもよく、７．０Ｖ以下としてもよい。
【０４６５】
非選択のワード線が奇数番目のワード線であるか、又は偶数番目のワード線であるかによって印加するパス電圧を変えてもよい。
【０４６６】
書き込み動作の時間（tProg）としては、例えば１７００μｓ〜１８００μｓ、１８００μｓ〜１９００μｓ、及び１９００μｓ〜２０００μｓのいずれかの間にしてもよい。
【０４６７】
消去動作では、半導体基板上部に形成され、かつ、メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば１２Ｖ〜１３．７Ｖの間である。この場合に限定されることなく、例えば１３．７Ｖ〜１４．８Ｖ、１４．８Ｖ〜１９．０Ｖ, １９．０〜１９．８Ｖ、及び１９．８Ｖ〜２１Ｖのいずれかの間であってもよい。
【０４６８】
消去動作の時間（tErase）としては、例えば３０００μｓ〜４０００μｓ、４０００μｓ〜５０００μｓ、及び４０００μｓ〜９０００μｓのいずれかの間にしてもよい。
【０４６９】
メモリセルは、半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有する。この電荷蓄積層は、膜厚が２〜３ｎｍのＳｉＮ、又はＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造であってもよい。また、ポリシリコンにはＲｕなどの金属が添加されていてもよい。電荷蓄積層上には、絶縁膜が形成される。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜とに挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有する。Ｈｉｇｈ−ｋ膜としては、ＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚は、Ｈｉｇｈ−ｋ膜の膜厚よりも厚くしてもよい。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成される。ここで、仕事関数調整用の材料は、ＴａＯなどの金属酸化膜、又はＴａＮなどの金属窒化膜である。制御電極としては、Ｗなどを用いてもよい。
【０４７０】
また、メモリセル間にはエアギャップを形成することができる。
【０４７１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０４７２】
１…メモリシステム、１０…コントローラ、１１…プロセッサ、１２…内蔵メモリ、１３…ＥＣＣ回路、１４…ＮＡＮＤインタフェース回路、１５…バッファメモリ、１６…ホストインタフェース回路、２０…半導体記憶装置、２１…メモリセルアレイ、２２…入出力回路、２３…ロジック制御回路、２４…レジスタ、２５…シーケンサ、２６…電圧生成回路、２７…ロウデコーダ、２８…センスアンプモジュール、３０…半導体基板、３１〜３３、３９、４３、４５…配線層、３４…ブロック絶縁膜、３５…電荷蓄積層、３６…トンネル酸化膜、３７…半導体ピラー、３８、４２、４４…コンタクトプラグ、４０…ｎ＋型不純物拡散領域、４１…ｐ＋型不純物拡散領域、４６…絶縁領域、４７…スリット領域。
【図１】
2018110043.tif 000003
【図２】
2018110043.tif 000004
【図３】
2018110043.tif 000005
【図４】
2018110043.tif 000006
【図５】
2018110043.tif 000007
【図６】
2018110043.tif 000008
【図７】
2018110043.tif 000009
【図８】
2018110043.tif 000010
【図９】
2018110043.tif 000011
【図１０】
2018110043.tif 000012
【図１１】
2018110043.tif 000013
【図１２】
2018110043.tif 000014
【図１３】
2018110043.tif 000015
【図１４】
2018110043.tif 000016
【図１５】
2018110043.tif 000017
【図１６】
2018110043.tif 000018
【図１７】
2018110043.tif 000019
【図１８】
2018110043.tif 000020
【図１９】
2018110043.tif 000021
【図２０】
2018110043.tif 000022
【図２１】
2018110043.tif 000023
【図２２】
2018110043.tif 000024
【図２３】
2018110043.tif 000025
【図２４】
2018110043.tif 000026
【図２５】
2018110043.tif 000027
【図２６】
2018110043.tif 000028
【図２７】
2018110043.tif 000029
【図２８】
2018110043.tif 000030
【図２９】
2018110043.tif 000031
【図３０】
2018110043.tif 000032
【図３１】
2018110043.tif 000033
【図３２】
2018110043.tif 000034
【図３３】
2018110043.tif 000035
【図３４】
2018110043.tif 000036
【図３５】
2018110043.tif 000037
【図３６】
2018110043.tif 000038
【図３７】
2018110043.tif 000039
【図３８】
2018110043.tif 000040
【図３９】
2018110043.tif 000041
【図４０】
2018110043.tif 000042
【図４１】
2018110043.tif 000043
【図４２】
2018110043.tif 000044
【図４３】
2018110043.tif 000045
【図４４】
2018110043.tif 000046
【図４５】
2018110043.tif 000047
【図４６】
2018110043.tif 000048
【図４７】
2018110043.tif 000049
【図４８】
2018110043.tif 000050
【図４９】
2018110043.tif 000051
【図５０】
2018110043.tif 000052
【図５１】
2018110043.tif 000053
【図５２】
2018110043.tif 000054
【図５３】
2018110043.tif 000055
【図５４】
2018110043.tif 000056