(57)【要約】【課題】動作信頼性を向上出来るメモリシステムを提供する。【解決手段】一実施形態のメモリシステムは、第１乃至第４ワード線にそれぞれ接続された第１乃至第４メモリセルを備える半導体メモリと、コントローラとを具備する。コントローラは、メモリセルの閾値分布の状態を確認するための第１命令と、第１命令に応答して得られた閾値分布の状態に基づく読み出し電圧を用いてメモリセルからデータを読み出すための第２命令とを発行可能である。コントローラは、第１ワード線を選択して第１命令を発行して第１読み出し電圧を得る第１動作(S100)と、第２ワード線を選択し、且つ読み出し電圧として第１読み出し電圧に基づく電圧を指定する第２命令を発行して、第２メモリセルからデータを読み出す第２動作(S105)とを実行する。【選択図】図１６
2020035504.tif 000002
【特許請求の範囲】
【請求項１】
半導体基板の鉛直方向に順次設けられた第１ワード線、第２ワード線、第３ワード線、及び第４ワード線と、前記第１乃至第４ワード線にそれぞれ接続された第１メモリセル、第２メモリセル、第３メモリセル、及び第４メモリセルとを備える半導体メモリと、
前記半導体メモリを制御するコントローラと
を具備し、前記コントローラは、メモリセルの閾値分布の状態を確認するための第１命令と、前記第１命令に応答して得られた閾値分布の状態に基づく読み出し電圧を用いてメモリセルからデータを読み出すための第２命令とを発行可能であり、
前記コントローラは、前記第１ワード線を選択して前記第１命令を発行して、前記第１メモリセルにつき得られた閾値分布の状態に基づく第１読み出し電圧を得る第１動作と、
前記第２ワード線を選択し、且つ前記読み出し電圧として前記第１読み出し電圧に基づく電圧を指定する前記第２命令を発行して、前記第２メモリセルからデータを読み出す第２動作と、
前記第３ワード線を選択して前記第１命令を発行して、前記第３メモリセルにつき得られた閾値分布の状態に基づく第２読み出し電圧を得る第３動作と、
前記第４ワード線を選択し、且つ前記読み出し電圧として前記第２読み出し電圧に基づく電圧を指定する前記第２命令を発行して、前記第４メモリセルからデータを読み出す第４動作と
を実行する、メモリシステム。
【請求項２】
前記半導体メモリは、第５ワード線及び第６ワード線と、前記第５及び第６ワード線にそれぞれ接続された第５メモリセル及び第６メモリセルとを更に備え、
前記第１ワード線は前記第２ワード線と前記第５ワード線との間に位置し、
前記第３ワード線は前記第４ワード線と前記第６ワード線との間に位置し、
前記コントローラは、前記第１動作の後、前記第５ワード線を選択し、且つ前記読み出し電圧として前記第１読み出し電圧に基づく電圧を指定する前記第２命令を発行して、前記第５メモリセルからデータを読み出す第５動作と、
前記第５動作の後に前記第２動作を実行する、請求項１記載のメモリシステム。
【請求項３】
前記半導体メモリは、
第１セレクトゲート線と、
前記第１セレクトゲート線に接続された第１選択トランジスタと、
第１ビット線と
を更に備え、前記第１乃至第４メモリセルは直列接続され、前記第１選択トランジスタを介して前記第１ビット線に接続される、請求項１記載のメモリシステム。
【請求項４】
前記半導体メモリは、
前記第１乃至第４ワード線にそれぞれ接続された第５メモリセル、第６メモリセル、第７メモリセル、及び第８メモリセルと、
第２セレクトゲート線と、
前記第２セレクトゲート線に接続された第２選択トランジスタと
を更に備え、前記第５乃至第８メモリセルは直列接続され、前記第２選択トランジスタを介して前記第１ビット線に接続され、
前記コントローラは、前記第１ワード線を選択し、且つ前記読み出し電圧として前記第１読み出し電圧に基づく電圧を指定する前記第２命令を発行して、前記第５メモリセルからデータを読み出す第５動作と、
前記第２ワード線を選択し、且つ前記読み出し電圧として前記第１読み出し電圧に基づく電圧を指定する前記第２命令を発行して、前記第６メモリセルからデータを読み出す第６動作と、
前記第３ワード線を選択し、且つ前記読み出し電圧として前記第２読み出し電圧に基づく電圧を指定する前記第２命令を発行して、前記第７メモリセルからデータを読み出す第７動作と、
前記第４ワード線を選択し、且つ前記読み出し電圧として前記第２読み出し電圧に基づく電圧を指定する前記第２命令を発行して、前記第８メモリセルからデータを読み出す第８動作と
を更に実行する、請求項３記載のメモリシステム。
【請求項５】
前記半導体メモリは、前記第１乃至第４メモリセルを含む第１ブロックと、第２ブロックとを備え、前記第１ブロック内のデータ及び前記第２ブロック内のデータはそれぞれ一括して消去され、
前記第２動作と前記第４動作の少なくともいずれかにおいて、データの読み出しに失敗した場合、前記コントローラは第３命令を発行し、
前記第３命令に応答して前記半導体メモリは、前記第１ブロック内のデータを前記第２ブロックにコピーする、請求項１記載のメモリシステム。
【請求項６】
前記半導体メモリは、第５ワード線と、前記第５ワード線に接続された第５メモリセルとを更に備え、
前記コントローラは、前記第５ワード線を選択して前記第１命令を発行して、前記第５メモリセルにつき得られた閾値分布の状態に基づく第３読み出し電圧を得る第５動作を更に実行し、
前記第２動作においては、前記第１読み出し電圧と前記第３読み出し電圧とに基づく電圧を前記読み出し電圧として指定する、請求項１記載のメモリシステム。
【請求項７】
前記半導体メモリは、
第１セレクトゲート線及び第２セレクトゲート線と、
前記第１及び第２セレクトゲート線にそれぞれ接続された第１選択トランジスタ及び第２選択トランジスタと、
第１ビット線と
を更に備え、前記第１乃至第４メモリセルは直列接続され、前記第１選択トランジスタを介して前記第１ビット線に接続され、
前記第５メモリセルは、前記第２選択トランジスタを介して前記第１ビット線に接続され、
前記第１ワード線は前記第５ワード線に接続されている、請求項６記載のメモリシステム。
【請求項８】
前記第５ワード線は、前記第１ワード線と前記第２ワード線との間に位置し、
前記第１乃至第５メモリセルは直列接続される、請求項６記載のメモリシステム。
【請求項９】
半導体基板の鉛直方向に順次設けられた第１ワード線、第２ワード線、及び第３ワード線と、前記第１乃至第３ワード線にそれぞれ接続された第１メモリセル、第２メモリセル、及び第３メモリセルとを備える半導体メモリと、
前記半導体メモリを制御するコントローラと
を具備し、前記コントローラは、メモリセルの閾値分布の状態を確認するための第１命令と、前記第１命令に応答して得られた閾値分布の状態に基づく読み出し電圧を用いてメモリセルからデータを読み出すための第２命令とを発行可能であり、
前記コントローラは、前記第１ワード線を選択して前記第１命令を発行して、前記第１メモリセルにつき得られた閾値分布の状態に基づく第１読み出し電圧を得る第１動作と、
前記第３ワード線を選択して前記第１命令を発行して、前記第３メモリセルにつき得られた閾値分布の状態に基づく第２読み出し電圧を得る第２動作と、
前記第２ワード線を選択し、且つ前記読み出し電圧として第３読み出し電圧を指定する前記第２命令を発行して、前記第２メモリセルからデータを読み出す第３動作と
を実行し、前記第２読み出し電圧は、前記第１読み出し電圧と前記第３読み出し電圧との間の値である、メモリシステム。
【請求項１０】
前記コントローラは、前記第１乃至第３メモリセルからデータを読み出す際に、set featureコマンドにより、前記第１乃至第３ワード線に印加すべき電圧のシフト量を指定し、
前記第２ワード線についての前記シフト量は、前記第１ワード線についての前記シフト量と前記第３ワード線についての前記シフト量の間の大きさである、請求項９記載のメモリシステム。
【請求項１１】
前記コントローラは、前記第１読み出し電圧と前記第２読み出し電圧とに基づいて、前記第３読み出し電圧を算出する、請求項９記載のメモリシステム。
【請求項１２】
データを保持可能なメモリセルを複数備える半導体メモリと、
前記半導体メモリを制御するコントローラと
を具備し、前記半導体メモリは、複数の第１ワード線を備え、それぞれにメモリセルが接続された第１ブロックと、複数の第２ワード線を備え、それぞれにメモリセルが接続された第２ブロックと
を備え、前記コントローラは、第１の周期で前記第１ブロックと前記第２ブロックへのアクセスを繰り返し、
前記第１の周期よりも大きい第２の周期で前記第１ブロック内の前記複数の第１ワード線と、前記第２ブロック内の前記複数の第２ワード線へのアクセスを繰り返す、メモリシステム。
【請求項１３】
前記コントローラは、前記第１の周期で前記第１及び第２ブロックにアクセスする際、選択ワード線、選択ストリングユニット、及び選択ページの少なくともいずれかをシフトさせる、請求項１２記載のメモリシステム。
【請求項１４】
前記コントローラは、前記第１の周期で前記第１及び第２ブロックにアクセスする際、選択する先頭ワード線、先頭ストリングユニット、及び先頭ページの少なくともいずれかをシフトさせる、請求項１２記載のメモリシステム。
【請求項１５】
前記第１の周期内でのアクセス対象は、前記第１ブロックにおける少なくとも１つのページ、及び前記第２ブロックにおける少なくとも１つのページ、であり、前記第１及び第２ブロックにおける他のページは、次回以降の前記第１の周期内でアクセスされる、請求項１２記載のメモリシステム。
【請求項１６】
前記コントローラによる前記第１及び第２の周期による前記アクセスは、シフトリードまたはメモリセルの閾値分布を確認するための動作である、請求項１２記載のメモリシステム。
【請求項１７】
前記半導体メモリは、複数の第３ワード線を備え、それぞれにメモリセルが接続された第３ブロックを備え、
前記第１ブロックに対する前記シフトリードに失敗した場合、前記コントローラは、前記第１ブロック内のデータを前記第３ブロックにコピーし、
前記第２ブロックに対する前記シフトリードに失敗した場合、前記コントローラは、前記第２ブロック内のデータを前記第３ブロックにコピーする、請求項１６記載のメモリシステム。
【請求項１８】
第１及び第２の周期による前記アクセスにより前記メモリセルから読み出されたデータは、前記メモリシステムにアクセス可能なホスト機器へは送信されない、請求項１２記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
メモリセルが三次元に配列された半導体メモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８，２５０，４３７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上出来るメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
本実施形態のメモリシステムは、半導体基板の鉛直方向に順次設けられた第１乃至第４ワード線と、第１乃至第４ワード線にそれぞれ接続された第１乃至第４メモリセルとを備える半導体メモリと、半導体メモリを制御するコントローラとを具備する。コントローラは、メモリセルの閾値分布の状態を確認するための第１命令と、第１命令に応答して得られた閾値分布の状態に基づく読み出し電圧を用いてメモリセルからデータを読み出すための第２命令とを発行可能である。コントローラは、第１ワード線を選択して第１命令を発行して、第１メモリセルにつき得られた閾値分布の状態に基づく第１読み出し電圧を得る第１動作と、第２ワード線を選択し、且つ読み出し電圧として第１読み出し電圧に基づく電圧を指定する第２命令を発行して、第２メモリセルからデータを読み出す第２動作と、第３ワード線を選択して第１命令を発行して、第３メモリセルにつき得られた閾値分布の状態に基づく第２読み出し電圧を得る第３動作と、第４ワード線を選択し、且つ読み出し電圧として第２読み出し電圧に基づく電圧を指定する第２命令を発行して、第４メモリセルからデータを読み出す第４動作とを実行する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図。
【図２】図２は、第１実施形態に係るブロックの回路図。
【図３】図３は、第１実施形態に係るブロックの断面図。
【図４】図４は、第１実施形態に係るメモリセルの閾値分布を示すグラフ。
【図５】図５は、第１実施形態に係るシフトテーブルの概念図。
【図６】図６は、第１実施形態に係る履歴テーブルの概念図。
【図７】図７は、第１実施形態に係る履歴テーブルの概念図。
【図８】図８は、第１実施形態に係るデータ読み出し時のコマンドシーケンス。
【図９Ａ】図９Ａは、第１実施形態に係るレジスタの概念図。
【図９Ｂ】図９Ｂは、第１実施形態に係るレジスタの概念図。
【図１０Ａ】図１０Ａは、第１実施形態に係るレジスタの概念図。
【図１０Ｂ】図１０Ｂは、第１実施形態に係るレジスタの概念図。
【図１１Ａ】図１１Ａは、メモリセルの閾値分布を示すグラフ。
【図１１Ｂ】図１１Ｂは、第２実施形態に係るトラッキング動作を示す概念図。
【図１２】図１２は、第２実施形態に係るトラッキング動作を示す概念図。
【図１３Ａ】図１３Ａは、第２実施形態に係るトラッキング動作時における選択ワード線の電圧を示すタイミングチャート。
【図１３Ｂ】図１３Ｂは、第２実施形態に係るトラッキング動作時における選択ワード線の電圧を示すタイミングチャート。
【図１３Ｃ】図１３Ｃは、第２実施形態に係るトラッキング動作時における選択ワード線の電圧を示すタイミングチャート。
【図１４Ａ】図１４Ａは、第２実施形態に係るトラッキング動作時における読み出し電圧と読み出しデータとの関係を示すダイアグラム。
【図１４Ｂ】図１４Ｂは、第２実施形態に係るトラッキング動作時における読み出し電圧と分離データとの関係を示すダイアグラム。
【図１５】図１５は、第２実施形態に係るメモリシステムにおいて、トラッキング動作が行われるワード線及びストリングユニットを示すダイアグラム。
【図１６】図１６は、第２実施形態に係るパトロール動作のフローチャート。
【図１７】図１７は、第２実施形態に係るシフトリード動作時のメモリセルアレイの回路図。
【図１８】図１８は、第２実施形態に係るリフレッシュ動作時のメモリセルアレイの回路図。
【図１９】図１９は、第２実施形態に係るデータの読み出し方法のフローチャート。
【図２０】図２０は、第２実施形態の変形例に係るメモリシステムにおいて、トラッキング動作が行われるワード線及びストリングユニットを示すダイアグラム。
【図２１】図２１は、第２実施形態の変形例に係るパトロール動作のフローチャート。
【図２２】図２２は、第３実施形態に係るメモリシステムにおいて、トラッキング動作が行われるワード線及びストリングユニットを示すダイアグラム。
【図２３】図２３は、第３実施形態に係るパトロール動作のフローチャート。
【図２４】図２４は、第３実施形態に係るトラッキング動作において得られる閾値分布のグラフ。
【図２５】図２５は、第３実施形態の第１変形例に係るメモリシステムにおいて、トラッキング動作が行われるワード線及びストリングユニットを示すダイアグラム。
【図２６】図２６は、第３実施形態の第１変形例に係るパトロール動作のフローチャート。
【図２７】図２７は、第３実施形態の第２変形例に係るメモリシステムにおいて、トラッキング動作が行われるワード線及びストリングユニットを示すダイアグラム。
【図２８】図２８は、第４実施形態に係るデータ読み出し方法のフローチャート。
【図２９】図２９は、第４実施形態に係るワード線グループとＤＡＣ値との関係を示すグラフ。
【図３０】図３０は、第４実施形態に係るワード線とＤＡＣ値との関係を示すグラフ。
【図３１Ａ】図３１Ａは、第４実施形態に係るワード線グループとＤＡＣ値との関係を示すダイアグラム。
【図３１Ｂ】図３１Ｂは、第４実施形態に係るワード線とＤＡＣ値との関係を示すグラフ。
【図３２】図３２は、第４実施形態に係るデータ読み出し時のコマンドシーケンス。
【図３３】図３３は、第５実施形態に係るパトロール動作を示すフローチャート。
【図３４Ａ】図３４Ａは、第５実施形態に係るパトロール動作におけるページの選択順序を示すダイアグラム。
【図３４Ｂ】図３４Ｂは、第５実施形態に係るパトロール動作におけるページの選択順序を示すフローチャート。
【図３４Ｃ】図３４Ｃは、第５実施形態に係るパトロール動作におけるメモリセルアレイの概念図。
【図３４Ｄ】図３４Ｄは、第５実施形態に係るパトロール動作におけるメモリセルアレイの概念図。
【図３５】図３５は、第６実施形態に係るパトロール動作の第１の例を示すフローチャート。
【図３６Ａ】図３６Ａは、第６実施形態に係るパトロール動作の第１の例におけるページの選択順序を示すダイアグラム。
【図３６Ｂ】図３６Ｂは、第６実施形態に係るパトロール動作の第１の例におけるページの選択順序を示すフローチャート。
【図３６Ｃ】図３６Ｃは、第６実施形態に係るパトロール動作の第１の例におけるメモリセルアレイの概念図。
【図３６Ｄ】図３６Ｄは、第６実施形態に係るパトロール動作の第１の例におけるメモリセルアレイの概念図。
【図３７】図３７は、第６実施形態に係るパトロール動作の第２の例を示すフローチャート。
【図３８】図３８は、第６実施形態に係るパトロール動作の第２の例におけるページの選択順序を示すダイアグラム。
【図３９】図３９は、第６実施形態に係るパトロール動作の第３の例を示すフローチャート。
【図４０Ａ】図４０Ａは、第６実施形態に係るパトロール動作の第３の例におけるページの選択順序を示すダイアグラム。
【図４０Ｂ】図４０Ｂは、第６実施形態に係るパトロール動作の第３の例におけるページの選択順序を示すフローチャート。
【図４０Ｃ】図４０Ｃは、第６実施形態に係るパトロール動作の第３の例におけるメモリセルアレイの概念図。
【図４０Ｄ】図４０Ｄは、第６実施形態に係るパトロール動作の第３の例におけるメモリセルアレイの概念図。
【図４０Ｅ】図４０Ｅは、第６実施形態に係るパトロール動作の第３の例におけるメモリセルアレイの概念図。
【図４１】図４１は、第６実施形態に係るパトロール動作の第４の例を示すフローチャート。
【図４２Ａ】図４２Ａは、第６実施形態に係るパトロール動作の第４の例におけるページの選択順序を示すダイアグラム。
【図４２Ｂ】図４２Ｂは、第６実施形態に係るパトロール動作の第４の例におけるページの選択順序を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてＮＡＮＤ型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
【０００９】
１．１  構成について  
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図１を用いて説明する。
【００１０】
図示するようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とを備えている。ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ホストバスによってホスト機器３００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００を制御し、またホスト機器３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。ホスト機器３００は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばＳＤＴＭインターフェースに従ったバスである。ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。
【００１２】
１．１．２  コントローラ２００の構成について  
引き続き図１を用いて、コントローラ２００の構成の詳細について説明する。図１に示すようにコントローラ２００は、ホストインターフェース回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェース回路２５０、及びＥＣＣ（Error Checking and Correcting）回路２６０を備えている。
【００１３】
ホストインターフェース回路２１０は、ホストバスを介してホスト機器３００と接続され、ホスト機器３００から受信した命令及びデータを、それぞれプロセッサ２３０及びバッファメモリ２４０に転送する。またプロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器３００へ転送する。
【００１４】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えばプロセッサ２３０は、ホスト機器３００から読み出し命令を受信した際には、それに応答して、ＮＡＮＤインターフェース回路２５０に対して読み出しコマンドを発行する。書き込み及び消去の際も同様である。またプロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。
【００１５】
ＮＡＮＤインターフェース回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そしてＮＡＮＤインターフェース回路２５０は、プロセッサ２３０から受信した命令に基づき、種々の信号をＮＡＮＤ型フラッシュメモリ１００へ送信し、またＮＡＮＤ型フラッシュメモリ１００から受信する。
【００１６】
バッファメモリ２４０は、書き込みデータや読み出しデータを一時的に保持する。
【００１７】
内蔵メモリ２２０は、例えばＤＲＡＭやＳＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、後述するシフトテーブルや履歴テーブル等の、各種の管理テーブル等を保持する。
【００１８】
ＥＣＣ回路２６０は、ＮＡＮＤ型フラッシュメモリ１００に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちＥＣＣ回路２６０は、データの書き込み時には誤り訂正符号によって生成されたパリティビットを書き込みデータに付与し、データの読み出し時にはこれを復号する。
【００１９】
１．１．３  ＮＡＮＤ型フラッシュメモリ１００の構成について  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。図１に示すようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０、ドライバ回路１３０、センスアンプ１４０、アドレスレジスタ１５０、コマンドレジスタ１６０、及びシーケンサ１７０を備える。
【００２０】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックＢＬＫを備えている。図１では一例として４つのブロックＢＬＫ０〜ＢＬＫ３が図示されている。そしてメモリセルアレイ１１０は、コントローラ２００から与えられたデータを記憶する。
【００２１】
ロウデコーダ１２０は、アドレスレジスタ１５０内のブロックアドレスＢＡに基づいてブロックＢＬＫ０〜ＢＬＫ３のいずれかを選択し、更に選択したブロックＢＬＫにおけるロウ方向を選択する。
【００２２】
ドライバ回路１３０は、アドレスレジスタ１５０内のページアドレスＰＡに基づいて、選択されたブロックＢＬＫに対して、ロウデコーダ１２０を介して電圧を供給する。
【００２３】
センスアンプ１４０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、必要な演算を行う。そして、このデータＤＡＴをコントローラ２００に出力する。データの書き込み時には、コントローラ２００から受信した書き込みデータＤＡＴを、メモリセルアレイ１１０に転送する。
【００２４】
アドレスレジスタ１５０は、コントローラ２００から受信したアドレスＡＤＤを保持する。このアドレスＡＤＤには、前述のブロックアドレスＢＡとページアドレスＰＡとが含まれる。コマンドレジスタ１６０は、コントローラ２００から受信したコマンドＣＭＤを保持する。
【００２５】
シーケンサ１７０は、コマンドレジスタ１６０に保持されたコマンドＣＭＤに基づき、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２６】
次に、上記ブロックＢＬＫの構成について図２を用いて説明する。図示するように、ブロックＢＬＫは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１０を含む。
【００２７】
ＮＡＮＤストリング１０の各々は、例えば９６個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ９５）及び２個の選択トランジスタＳＴ１、ＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。
【００２８】
なお、選択トランジスタＳＴ２とメモリセルトランジスタＭＴ０との間、及び選択トランジスタＳＴ１とメモリセルトランジスタＭＴ９５との間にダミートランジスタが設けられてもよい。ダミートランジスタは、メモリセルトランジスタＭＴと同様に制御ゲートと電荷蓄積層を備える。しかし、ダミートランジスタはメモリセルトランジスタＭＴと異なり、データを保持するためのものではなく、ＮＡＮＤストリング１０内においては単なる電流経路として機能する。すなわち、ダミートランジスタの閾値は、読み出し動作時や書き込み動作時に常にオン状態となるよう、低い値に設定されている。このダミートランジスタの閾値は、ダミートランジスタに対して書き込み動作を行い、電荷蓄積層内の電荷量を制御することによって、所定の値に設定できる。
【００２９】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。これに対してストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、例えばセレクトゲート線ＳＧＳに共通接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続されても良い。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ９５の制御ゲートはそれぞれワード線ＷＬ０〜ＷＬ９５に共通接続される。
【００３０】
また、メモリセルアレイ１１０内において同一列にあるＮＡＮＤストリング１０の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、但し（Ｌ−１）は２以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１０を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。
【００３１】
つまりストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一のセレクトゲート線ＳＧＤに接続された複数のＮＡＮＤストリング１０を含む。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵを含む。そしてメモリセルアレイ１１０は、ビット線ＢＬを共通にする複数のブロックＢＬＫを複数含む。
【００３２】
図３は、ブロックＢＬＫの一部領域の断面図である。図示するように、ｐ型ウェル領域２０上に、複数のＮＡＮＤストリング１０が形成されている。すなわち、ウェル領域２０上には、セレクトゲート線ＳＧＳとして機能する例えば３層の配線層２７、ワード線ＷＬ０〜ＷＬ９５として機能する９６層の配線層２３、及びセレクトゲート線ＳＧＤとして機能する例えば３層の配線層２５が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
【００３３】
そして、これらの配線層２５、２３、２７を貫通してウェル領域２０に達するピラー状の導電体３１が形成されている。導電体３１の側面には、ゲート絶縁膜３０、電荷蓄積層（絶縁膜）２９、及びブロック絶縁膜２８が順次形成され、これらによってメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２が形成されている。導電体３１はＮＡＮＤストリング１０の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体３１の上端は、ビット線ＢＬとして機能する金属配線層３２に接続される。
【００３４】
ウェル領域２０の表面領域内には、ｎ＋型不純物拡散層３３が形成されている。拡散層３３上にはコンタクトプラグ３５が形成され、コンタクトプラグ３５は、ソース線ＳＬとして機能する金属配線層３６に接続される。更に、ウェル領域２０の表面領域内には、ｐ＋型不純物拡散層３４が形成されている。拡散層３４上にはコンタクトプラグ３７が形成され、コンタクトプラグ３７は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層３８に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域２０を介して導電体３１に電位を与えるための配線である。
【００３５】
以上の構成が、図３を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１０の集合によってストリングユニットＳＵが形成される。
【００３６】
本例では、１つのメモリセルトランジスタＭＴが例えば３ビットデータを保持可能である。この３ビットデータを、下位ビットからそれぞれlowerビット、middleビット、及びupperビットと呼ぶことにする。そして、同一のワード線に接続されたメモリセルの保持するlowerビットの集合をlowerページと呼び、middleビットの集合をmiddleページと呼び、upperビットの集合をupperページと呼ぶ。つまり、１本のワード線ＷＬには３ページが割り当てられ、９６本のワード線ＷＬを含むブロックＢＬＫは２８８ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行っても良い。
【００３７】
図４は、各メモリセルトランジスタＭＴの取り得るデータ、閾値分布、及び読み出し時に用いる電圧について示したダイアグラムである。
【００３８】
図示するようにメモリセルトランジスタＭＴは、閾値電圧に応じて８個の状態を取ることが出来る。この８個の状態を、閾値電圧の低いものから順に、“Ｅｒ”状態、“Ａ”状態、“Ｂ”状態、“Ｃ”状態、…及び“Ｇ”状態と呼ぶことにする。
【００３９】
“Ｅｒ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ未満であり、データの消去状態に相当する。“Ａ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ以上であり且つＶＢ（＞ＶＡ）未満である。“Ｂ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＢ以上であり且つＶＣ（＞ＶＢ）未満である。“Ｃ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＣ以上であり且つＶＤ（＞ＶＣ）未満である。“Ｄ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＤ以上であり且つＶＥ（＞ＶＤ）未満である。“Ｅ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＥ以上であり且つＶＦ（＞ＶＥ）未満である。“Ｆ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＦ以上であり且つＶＧ（＞ＶＦ）未満である。“Ｇ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＧ以上であり且つＶＲＥＡＤ未満である。このように分布する８個の状態のうちで、“Ｇ”状態が、閾値電圧の最も高い状態である。なおＶＲＥＡＤは、読み出し動作時において非選択ワード線に印加される電圧であり、保持データにかかわらずメモリセルトランジスタＭＴをオンさせる電圧である。
【００４０】
また上記閾値分布は、前述のlowerビット、middleビット、及びupperビットからなる３ビット（３ページ）データを書き込むことで実現される。すなわち、上記８つの状態と、lowerビット、middleビット、及びupperビットとの関係は、次の通りである。
“Ｅｒ”状態：“１１１”（“upper/middle/lower”の順で表記）
“Ａ”状態：“１１０”
“Ｂ”状態：“１００”
“Ｃ”状態：“０００”
“Ｄ”状態：“０１０”
“Ｅ”状態：“０１１”
“Ｆ”状態：“００１”
“Ｇ”状態：“１０１”
このように、閾値分布において隣り合う２つの状態に対応するデータ間では、３ビットのうちの１ビットのみが変化する。
【００４１】
従って、lowerビットを読み出す際には、lowerビットの値（“０” or “１”）が変化する境界に相当する電圧を用いれば良く、このことはmiddleビット及びupperビットでも同様である。
【００４２】
すなわち、図４に示すようにlowerページ読み出しは、“Ｅｒ”状態と“Ａ”状態とを区別する電圧ＶＡ、及び“Ｄ”状態と“Ｅ”状態とを区別する電圧ＶＥを読み出し電圧として用いる。電圧ＶＡ及びＶＥを用いた読み出し動作を、それぞれ読み出し動作ＡＲ及びＥＲと呼ぶ。
【００４３】
middleページ読み出しは、“Ａ”状態と“Ｂ”状態とを区別する電圧ＶＢ、“Ｃ”状態と“Ｄ”状態とを区別する電圧ＶＤ、及び“Ｅ”状態と“Ｆ”状態との間の電圧ＶＦを読み出し電圧として用いる。電圧ＶＢ、ＶＤ、及びＶＦを用いた読み出し動作を、それぞれ読み出し動作ＢＲ、ＤＲ、及びＦＲと呼ぶ。
【００４４】
そしてupperページ読み出しは、“Ｂ”状態と“Ｃ”状態とを区別する電圧ＶＣ、及び“Ｆ”状態と“Ｇ”状態とを区別する電圧ＶＧを読み出し電圧として用いる。電圧ＶＣ及びＶＧを用いた読み出し動作を、それぞれ読み出し動作ＣＲ及びＧＲと呼ぶ。
【００４５】
また、データの消去はブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４６】
更に、メモリセルアレイ１１０の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１１０の構成については、例えば、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月18日に出願された米国特許出願12/406,524号、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME”という2010年3月25日に出願された米国特許出願12/679,991号、及び“SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。または、例えば半導体基板上にロウデコーダ１２０やセンスアンプ１４０等の周辺回路が形成され、その上方にソース線ＳＬが形成され、このソース線ＳＬ上に図３に示すＮＡＮＤストリング１０が形成される場合であってもよい。
【００４７】
１．１．４  シフトテーブルについて  
次に、シフトテーブルについて説明する。前述の通りコントローラ２００は、例えばメモリ２２０においてシフトテーブルを保持する。シフトテーブルの概念につき、図５を用いて説明する。図５はシフトテーブルの一例の概念図である。
【００４８】
図示するようにシフトテーブルは、複数（図５の例では１２個）のエントリを有する。各エントリには、“１”〜“１２”のインデックスが順番に割り当てられている。そして各エントリは、読み出し動作ＡＲ、ＢＲ、ＣＲ、…及びＧＲにおいて選択ワード線ＷＬに印加される読み出し電圧のシフト量を示す情報が保持される。
【００４９】
このシフト量について説明する。すなわち、図４で説明した“Ｅｒ”状態、“Ａ”状態、…、及び“Ｇ”状態に対応する閾値分布は、互いに離隔している。従って、電圧ＶＡ、ＶＢ、…及びＶＧによって、各状態を区別することができる。しかし、この閾値分布は、隣接セルとの干渉に加えて、諸々の原因で発生する電荷蓄積層への電子のトラップやデトラップ（これらを干渉効果と呼ぶ）により、その分布幅が拡がる場合がある。例えば、データを書き込んだ後に時間が経過すると、隣接セルとの干渉により閾値分布が低電圧側にシフトする場合がある。このシフト量は、経過時間が長いほど大きく、また書き込み回数の多いブロックほど大きい。また、他のメモリセルトランジスタＭＴからデータが読み出される場合や、データが書き込まれる場合には、逆に閾値分布は高電圧側にシフトする場合がある。このシフト量は、ワード線ＷＬに印加される電圧が大きく、また印加期間が長いほど大きい。
【００５０】
このように、干渉効果により閾値分布が変動すると、上記の電圧ＶＡ、ＶＢ、…及びＶＧではデータを正しく読み出せないことがある。すなわち、読み出しデータに含まれるエラービット数が、ＥＣＣ回路２６０の訂正可能ビット数を超える。このような場合にコントローラ２００は、読み出し電圧を電圧ＶＡ、ＶＢ、…及びＶＧ（これをデフォルトの電圧と呼ぶ）からシフトさせて、再度データの読み出しを試みる。これをシフトリードと呼ぶ。この際のデフォルトの電圧からのシフト量ΔＶを示す情報を保持しているのが、図５に示すシフトテーブルである。
【００５１】
本例におけるシフトテーブルでは、読み出し動作ＡＲ、ＢＲ、…及びＧＲのそれぞれにつき、シフト量ΔＶＡｉ、ΔＶＢｉ、…及びΔＶＧｉが用意されている（ｉはインデックス、すなわち１〜１２のいずれかの自然数であり、これらを区別しない場合にはΔＶと総称する）。あるインデックスｉに相当するシフト量ΔＶＡｉ、ΔＶＢｉ、…及びΔＶＧｉは、全てが異なる値である場合であっても良いし、一部が同じ値を有する場合であっても良いし、全てが同じ値を有する場合であっても良い。これらのシフト量ΔＶは、例えばコントローラ２００によって適宜、適切な値に設定される。例えば、シフトテーブルの各インデックスに対応するシフト量ΔＶは、コントローラ２００により上書きされてもよいし、またコントローラ２００によりインデックスが追加されてもよい。
【００５２】
また本例おけるシフトテーブルでは、例えばインデックスの値が小さいものほど、干渉効果の影響が小さい場合に対応する。すなわち、インデックス＝１に対応するシフト量ΔＶ（すなわちΔＶＡ１、ΔＶＢ２、…及びΔＶＧ１）は、干渉効果の影響が最も小さい場合に最適化されている。これに対してインデックス＝１２に対応するシフト量ΔＶ（すなわちΔＶＡ１２、ΔＶＢ１２、…及びΔＶＧ１２）は、干渉効果の影響が最も大きい場合に最適化されている。もちろん、シフトテーブルはこのような例に限らず、インデックスの順番は本例に限定されるものではない。
【００５３】
上記構成のシフトテーブルは、例えばＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに保持される。そして、例えばメモリシステム１への電源投入直後等に、コントローラ２００によって読み出され、メモリ２２０等に保持される。またメモリシステム１への電源遮断時には、メモリ２２０内のシフトテーブルが例えばＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに書き込まれてもよい。しかし、シフトテーブルはＮＡＮＤ型フラッシュメモリ１００のＲＯＭフューズ内に書き込まれ、出荷後にシフトテーブル自体は更新されない場合であってもよい。
【００５４】
１．１．５  履歴テーブルについて  
コントローラ２００は、更に履歴テーブルを保持する。履歴テーブルは、図５で説明したシフトテーブル内のシフト量のうち、ワード線ＷＬ０〜ＷＬ９５に対していずれのシフト量を使用するかを示すテーブルである。履歴テーブルの２つの例を図６及び図７に示す。図６及び図７は履歴テーブルの概念図と共にシリコンピラー３１の断面図を示し、図中におけるワード線ＷＬの表記位置とシリコンピラー３１の高さとが対応している。
【００５５】
＜第１の例について＞  
まず、履歴テーブルの第１の例につき、図６を用いて説明する。図示するようにシリコンピラー３１は、下層ほどその直径が小さくなる構造を有しており、下端における直径をＷ１とし、上端における直径をＷ２とすると、Ｗ２＞Ｗ１なる関係がある。
【００５６】
履歴テーブルにおいては、複数のワード線ＷＬがグループ化される。本例では、ワード線ＷＬは１２本ずつ順次グループ化され、このグループ毎にインデックスが割り当てられている。より具体的には、ワード線ＷＬ０〜ＷＬ１１はワード線グループＧＰ０に属し、ワード線ＷＬ１２〜ＷＬ２３はワード線グループＧＰ１に属し、ワード線ＷＬ２４〜ＷＬ３５はワード線グループＧＰ２に属し、以下同様であり、最後にワード線ＷＬ８４〜ＷＬ９５がワード線グループＧＰ７に属する。
【００５７】
そして、ワード線グループＧＰ０にはインデックス“５”が割り当てられている。これは、グループＧＰ０に属するワード線ＷＬ０〜ＷＬ１１のいずれかに読み出し電圧が印加される際には、デフォルトの値に対して、図５に示すシフトテーブルにおけるインデックス＝“５”に対応するシフト量（ΔＶＡ５、ΔＶＢ５、…ΔＶＧ５）が適用されることを意味する。同様にして、ワード線グループＧＰ１にはインデックス“３”が割り当てられ、ワード線グループＧＰ２にはインデックス“２”が割り当てられ、そしてワード線グループＧＰ７にはインデックス“３”が割り当てられる。
【００５８】
履歴テーブルで指定されるシフト量は、例えばset featureコマンド等を用いて、コントローラ２００によりＮＡＮＤ型フラッシュメモリ１００に設定される。この点については、後述する１．２の項で説明する。
【００５９】
＜第２の例について＞  
次に、履歴テーブルの第２の例につき図７を用いて説明する。第２の例は、第１の例と異なるグルーピングの仕方に関するものである。図示するように、シリコンピラー３１の形状は第１の例と同様である。
【００６０】
そして、ワード線ＷＬ０〜ＷＬ３がワード線グループＧＰ０に属し、ワード線ＷＬ４〜ＷＬ２５がワード線グループＧＰ１に属し、ワード線ＷＬ２６〜ＷＬ４７がワード線グループＧＰ２に属し、ワード線ＷＬ４８〜ＷＬ６９がワード線グループＧＰ３に属する。更に、ワード線ＷＬ７０〜ＷＬ９１がワード線グループＧＰ４に属し、ワード線ＷＬ９２〜ＷＬ９５がワード線グループＧＰ５に属する。
【００６１】
すなわち、本例は第１の例と異なり、属するワード線ＷＬ本数がワード線グループＧＰ間で異なる。具体的には、ワード線グループＧＰ０及びＧＰ５にはそれぞれ４本のワード線ＷＬが割り当てられているのに対して、ワード線グループＧＰ１〜ＧＰ４にはそれぞれ２２本のワード線ＷＬが割り当てられている。
【００６２】
このような割り当て方を用いる理由は、シリコンピラー３１の上端部分（ワード線ＷＬ９２〜ＷＬ９５）及び下端部分（ワード線ＷＬ０〜ＷＬ３）に設けられるメモリセルトランジスタの特性が、その他の領域のメモリセルトランジスタの特性と比較的大きく異なる可能性が高いからである。従って本例では、特性が大きく変化すると思われる領域のワード線ＷＬは細かくグループ化し、その他の領域のワード線ＷＬは大まかにグループ化する。これにより、メモリセルトランジスタの特性の位置依存性に対応できる。
【００６３】
１．２  読み出し動作について  
次に、本実施形態に係るデータの読み出し動作について、図８を参照して説明する。図８は、図７で説明したグルーピングにおいて、ワード線ＷＬ０〜ＷＬ９５を順次選択する場合を示しており、且つＮＡＮＤ型フラッシュメモリ１００に電源投入後に初めてワード線ＷＬ０〜ＷＬ９５が選択される場合を示している。
【００６４】
ホスト機器３００からデータの要求を受信したコントローラ２００の例えばプロセッサ２３０は、まずメモリ２２０に読み出されたシフトテーブルを参照する。これによりプロセッサ２３０は、各ブロックＢＬＫの各ワード線ＷＬに適用すべきシフト量を把握する。そしてコントローラ２００はSet featureコマンドを発行して、把握したシフト量を、ＮＡＮＤ型フラッシュメモリ１００に設定する。
【００６５】
すなわち図８に示すように、まずワード線グループＧＰ０につきset feature コマンドを発行する。set featureコマンドは、ＮＡＮＤ型フラッシュメモリ１００における電圧やタイミング等、種々の設定を変更可能なコマンドである。set featureのコマンドシーケンスは下記の通りである。  
＜XXh＞＜ADD＞＜D1＞＜D2＞＜D3＞＜D4＞  
このコマンドシーケンスにおいて、“ＸＸｈ”は設定変更の旨をＮＡＮＤ型フラッシュメモリ１００に宣言するコマンドである。“ＡＤＤ”は、ＮＡＮＤ型フラッシュメモリ１００において、set featureコマンドにより変更対象となる設定値を保持するレジスタを指定するアドレスである。その後、コントローラ２００はデータを４サイクルにわたって送信する（データ“Ｄ１”〜“Ｄ４”）。このデータ“Ｄ１”〜“Ｄ４”が、グループＧＰ０に適用すべきシフト量に関する情報を含む。図７の例であると、“Ｄ１”〜“Ｄ４”は、インデックス＝“６”に相当するシフト量に関する情報を含む。
【００６６】
この結果、ＮＡＮＤ型フラッシュメモリ１００において指定されたレジスタには、図９Ａに示す情報が保持される。図９Ａはレジスタの概念図である。すなわち、レジスタは複数のエントリを有しており、図９Ａの例では２つのエントリを有している。そして、このうちの１つのエントリに、ブロックＢＬＫ０のワード線グループＧＰ０に対して読み出し動作ＡＲ、ＢＲ、…及びＧＲを行う際に用いるシフト量ΔＶが保持される。以後、ＮＡＮＤ型フラッシュメモリ１００のドライバ１３０は、グループＧＰ０が選択される際には、読み出し時におけるデフォルトの電圧ＶＡ、ＶＢ、…及びＶＧに対して、レジスタに保持されたシフト量ΔＶを加えた値の電圧を読み出し電圧ＶＣＧＲＶとして、ロウデコーダ１２０を介して、選択ワード線ＷＬに印加する。あるいは、図１において図示を省略した電圧発生回路は、レジスタ内の情報に従って電圧ＶＣＧＲＶを生成する。
【００６７】
引き続きコントローラ２００は、図８に示すようにシフトリードコマンドを発行する。シフトリードのコマンドシーケンスは下記の通りである。  
＜ZZh＞＜00h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜30h＞  
このコマンドシーケンスにおいて、“ＺＺｈ”はシフトリードをＮＡＮＤ型フラッシュメモリ１００に宣言するコマンドである。“００ｈ”は、これからアドレスが送信される旨をＮＡＮＤ型フラッシュメモリ１００へ通知するコマンドである。そして、５サイクルにわたって送信されるアドレス“ＡＤＤ”により、読み出し対象のブロックＢＬＫ、ワード線ＷＬ、及びページが指定される。最初に指定されるアドレスは、本例の場合、ワード線ＷＬ０のlowerページである。そして、“３０ｈ”コマンドを受信することによりＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、メモリセルアレイ１１０からのデータの読み出しを実行する。前述の通りＮＡＮＤ型フラッシュメモリ１００は、set featureコマンドにより指定されたシフト量ΔＶだけシフトした読み出し電圧ＶＣＧＲＶを選択ワード線ＷＬに印加する。例えばワード線ＷＬ０のlowerページが読み出される場合には、読み出し電圧ＶＣＧＲＶとして、（ＶＡ＋ΔＶＡ６）及び（ＶＥ＋ΔＶＥ６）が用いられる。
【００６８】
ＮＡＮＤ型フラッシュメモリ１００がビジー状態からレディ状態に復帰すると、コントローラ２００は、データ出力コマンドを発行する。図８に示すようにデータ出力のためのコマンドシーケンスは下記の通りである。  
＜05h＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜ADD＞＜E0h＞  
このコマンドシーケンスにおいて、“０５ｈ”はランダムデータ出力をＮＡＮＤ型フラッシュメモリ１００に宣言するコマンドである。引き続き、例えば５サイクルにわたって送信されるアドレス“ＡＤＤ”により、コントローラ２００へ転送すべきデータに対応するカラムが指定される。そして、最後に“Ｅ０ｈ”がＮＡＮＤ型フラッシュメモリ１００に送信される。その後、コントローラ２００がリードイネーブル信号／ＲＥをトグルさせると、ＮＡＮＤ型フラッシュメモリ１００は指定されたカラムから順番にデータをコントローラ２００へ送信する。リードイネーブル信号／ＲＥは、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ送信される信号であり、データの読み出し時にアサート（本例では“Ｌ”レベル）される信号である。このようにして、ワード線ＷＬ０のlowerページデータがコントローラ２００に読み出される。
【００６９】
引き続きコントローラ２００は、シフトリードコマンドとデータ出力コマンドとを発行することで、ワード線ＷＬ０のmiddleページデータ及びupperページデータを読み出す。更に、ワード線ＷＬ１〜ＷＬ３についても同様のコマンドを発行し、ワード線ＷＬ１〜ＷＬ３のlowerページデータ、middleページデータ、及びupperページデータを読み出す。この期間、選択ワード線ＷＬには、図９Ａに示すシフト値の適用された読み出し電圧ＶＣＧＲＶが印加される。すなわち、ワード線ＷＬ０と同じワード線グループＧＰ０に属するワード線ＷＬ１〜ＷＬ３を選択してデータを読み出す際には、set featureコマンドを発行する必要はない。
【００７０】
次にコントローラ２００は、ワード線ＷＬ４のlowerページデータを読み出す。ワード線ＷＬ４は、ワード線グループＧＰ１に属する。従ってコントローラ２００は、図８に示すようにset featureコマンドを発行する。この結果、図９Ｂに示すように、図９Ａに示したレジスタの次のエントリに、ワード線グループＧＰ１に対して読み出し動作ＡＲ、ＢＲ、…及びＧＲを行う際に用いるシフト量ΔＶが保持される。
【００７１】
その後の動作はグループＧＰ０の場合と同様である。すなわち、上記動作がワード線グループＧＰ２〜ＧＰ５についても行われる。但し、空きエントリがない場合には、いずれかのエントリにシフト量が上書きされる。この様子を図１０Ａに示す。図１０Ａでは、グループＧＰ２についてのシフト量が、グループＧＰ０についてのシフト量に上書きされる場合を示している。このように、エントリ数には限りがあるので、読み出しコマンドの発行の度に、レジスタ内のいずれかのエントリが更新される。
【００７２】
以上のように、例えば図１０Ａに示すレジスタ内に保持されたシフト量ΔＶを用いて、メモリセルアレイ１１０からデータが読み出される。またコントローラ２００は、各ワード線グループＧＰにつき、例えば読み出しデータに含まれるエラービット数等を基準に、シフト量が適切か否かを判断する。例えばコントローラ２００は、エラービット数が規定値を超える場合等には、シフト量が適切でないと判断する。この場合、コントローラ２００は、エラービット数が規定値を下回るシフト値を探索し、この探索結果に基づいて履歴テーブルの値を適切な値に更新する。またコントローラ２００は、履歴テーブルにおいてシフト値が更新されたグループＧＰに再度アクセスする際には、set featureコマンドを発行して、レジスタ内のシフト量を適切な値に更新する。この様子を図１０Ｂに示す。図１０Ｂでは、ワード線グループＧＰ２のシフト量ΔＶが更新される例を示している。すなわち、コントローラ２００において履歴テーブルのワード線グループＧＰ２に対応するインデックスが“１”から“２”に更新される。これに伴い、図１０Ｂに示すようにＮＡＮＤ型フラッシュメモリ１００のレジスタ内のシフト量もΔＶＡ１、ΔＶＢ１、…ΔＶＧ１からΔＶＡ２、ΔＶＢ２、…ΔＶＧ２に更新される。
【００７３】
なお、一度生成された履歴テーブルは、ＮＡＮＤ型フラッシュメモリ１００（またはメモリシステム１）の電源切断時に、ＮＡＮＤ型フラッシュメモリ１００のいずれかのブロックＢＬＫに書き込まれても良い。そして前述のシフトテーブルと同様に、例えばＮＡＮＤ型フラッシュメモリ１００への電源投入直後に、ＮＡＮＤ型フラッシュメモリ１００のブロックＢＬＫから履歴テーブルが読み出され、コントローラ２００のメモリ２２０等に保持されても良い。また、ブロックＢＬＫから読み出された履歴テーブルに応じて、例えばシーケンサ１７０が図１０Ａに示すようにレジスタを設定してもよい。
【００７４】
１．３  本実施形態に係る効果  
本実施形態に係る構成であると、メモリシステム１の動作信頼性を向上できる。本効果につき、以下説明する。
【００７５】
図６及び図７で説明したように、本実施形態に係る履歴テーブルは、複数のワード線ＷＬをグループ化している。そして、ワード線グループ毎にインデックスが割り当てられている。従って、ワード線１本毎にインデックスが割り当てられる場合に比べて、履歴テーブルの容量を削減できる。またメモリセルトランジスタＭＴは、その構造が似ていれば特性も似ていると考えられる。そして、特性に影響を与える構造の一つがメモリピラー３１の形状である。そこで本実施形態では、対応するメモリピラー３１の直径の大きさが近いメモリセルトランジスタＭＴをグループ化している（図６参照）。従って、ワード線ＷＬをグループ化しても、適切なインデックスをワード線グループＧＰに割り当てることができる。
【００７６】
更に本実施形態で説明した図７の例では、ワード線ＷＬを均等にグループ化するのではなく、メモリセルトランジスタＭＴの特性変化の程度に応じてグループ化する。より具体的には、特性の変化の程度が大きいと考えられる領域では、その他の領域よりも細かくワード線ＷＬをグループ化している。これにより、ワード線グループＧＰ毎に、より適切なインデックスを割り当てることができる。
【００７７】
以上のように、適切なインデックスを割り当てることにより、シフトリードにおいて適切な読み出し電圧ＶＣＧＲＶを選択ワード線ＷＬに印加することが可能となる。その結果、データを読み出すために必要なシフトリード回数を低減し、データの読み出し信頼性を向上できる。
【００７８】
２．第２実施形態  
次に、第２実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１実施形態において、ホスト機器３００からの読み出し要求によることなく、コントローラ２００が読み出し命令を発行し、これに応答してＮＡＮＤ型フラッシュメモリ１００がメモリセルアレイ１１０からデータを読み出す動作に関する。この読み出し動作を、以下では「パトロールリード」と呼ぶ。パトロールリードは、例えばメモリシステム１の空き時間に実行される。
【００７９】
２．１  パトロールリードについて  
本実施形態に係るパトロールリードは、２種類の動作を含む。１つは通常のシフトリードである。すなわち、第１実施形態で説明したように、コントローラ２００がシフトリード命令を発行し、ＮＡＮＤ型フラッシュメモリ１００は、set featureで設定された読み出し電圧ＶＣＧＲＶを選択ワード線ＷＬに印加し、メモリセルアレイ１１０からデータが読み出される。但し、メモリセルアレイ１１０から読み出されたデータは、ホスト機器３００へは送信されない。
【００８０】
もう１つがトラッキング動作である。トラッキング動作は、隣り合う閾値分布が互いに重なる場合に、その交点を求め、得られた交点から適切な読み出し電圧、すなわちシフト量を算出するものである。または、交点の代わりに、読み出し電圧を変化させていった際に、ＥＣＣにおけるエラービット数が最小となる電圧、またはＥＣＣによるエラー訂正が可能となる電圧を探索するものである。以下では、交点を算出する場合を例にトラッキング動作につき簡単に説明する。
【００８１】
図１１Ａは、一例として“Ａ”状態と“Ｂ”状態の閾値分布の様子を示している。図示するように、例えばデータの書き込み直後の閾値分布が図１１Ａ上図の通りであったとする。しかし、ディスターブ等により図１１Ａ下図のように、閾値分布の分布幅が拡がったとする。すると、電圧ＶＢで読み出しを行うと、図１１Ａ下図の斜線部分の領域に相当するメモリセルトランジスタＭＴがエラービットとなる。そして、発生したエラービット数が、ＥＣＣ回路２６０のエラー訂正可能ビット数を超えていれば、データを正しく読み出すことが困難となる。そこで、この２つの閾値分布が重なった交点の位置（電圧）を探索し、その近傍の電圧を適切な読み出し電圧ＶＢ’とする。これがトラッキング動作である。
【００８２】
トラッキング動作の詳細につき、図１１Ｂを用いて説明する。図１１Ｂは、読み出し電圧ＶＣＧＲＶに対するオンセル数（オン状態となるメモリセル数の累積値）と、これに対応した“Ａ”状態の閾値分布と“Ｂ”状態の閾値分布を示すグラフである。
【００８３】
図１１Ｂ上図に示すように、電圧ＶＣＧＲＶを上昇させていくと、“Ａ”状態の中央値（最も分布確率の高い電圧）である電圧ＶmidＡより僅かに小さい電圧でオンセル数が急激に増大し、ｄＮ／ｄＶが最大となる（但し、Ｎはオンセル数で、Ｖは選択ワード線の電圧である）。更に電圧ＶＣＧＲＶを大きくしていくと、オンセル数の増加率は小さくなり、ある値において最小値となる。この電圧ＶＣＧＲＶにおける増加率は、“Ａ”状態の閾値分布と“Ｂ”状態の閾値分布とが重ならない場合にはゼロとなる。他方で重なる場合には、ある一定のゼロでは無い最小値（＞０）となる。そして更に電圧ＶＣＧＲＶを大きくしていくと、再びオンセル数の増加率が大きくなり、“Ｂ”状態の中央値である電圧ＶmidＢより僅かに小さい電圧で再びｄＮ／ｄＶが最大となる。
【００８４】
上記のオンセル数の累積値の変化によって、図１１Ｂ下図に示すような閾値分布を求めることが出来る。すなわち、ｄＮ／ｄＶが最大値となる電圧より僅かに大きな電圧が、それぞれ“Ａ”状態及び“Ｂ”状態の中央値となり、ｄＮ／ｄＶが最小値となる電圧が、“Ａ”状態と“Ｂ”状態との交点となる閾値分布が得られる。この交点の電圧、すなわち、オンセル数の累積値の増加率が最小となる電圧ＶＣＧＲＶが、見つけるべきＶＢ’となる。
【００８５】
具体的には、コントローラ２００は、通常の読み出しコマンドとは異なるテスト読み出しコマンドを発行する。するとＮＡＮＤ型フラッシュメモリ１００は、１ページ分のデータを読み出し、オンセル数をカウントする。この動作を、電圧ＶＣＧＲＶをシフトさせつつ、複数回繰り返す。この様子を示しているのが図１２である。図１２上図は、電圧ＶＣＧＲＶに対するオンセル数（オン状態となるメモリセルの総数）を示し、図１２下図は、ワード線ＷＬの電圧を１ステップだけ変動させた際に初めてオンするメモリセル数を示すヒストグラムと、それによって得られる閾値分布を示す。
【００８６】
図示するように、まず、通常の読み出しコマンドが発行された際に使用される電圧ＶＢから一定量だけシフトされた電圧ＶＢ１を用いて読み出し動作が行われる。このときのオンセル数をＮ１とする。次に、電圧ＶＢ１からΔＶＢだけプラス方向にシフトされた電圧ＶＢ２を用いて読み出し動作が行われる。この時のオンセル数をＮ２とする。すると、選択ワード線の電圧がＶＢ１からＶＢ２に上昇した際に新たにオンするメモリセル数は、（Ｎ２−Ｎ１）個である。引き続きコントローラ２００は、電圧ＶＢ２からプラス方向にΔＶＢだけシフトされた電圧ＶＢ３を用いて読み出し動作を行う。このときのオンセル数をＮ３とする。すると、選択ワード線の電圧がＶＢ２からＶＢ３に上昇した際に新たにオンするメモリセル数は、（Ｎ３−Ｎ２）個である。そして、（Ｎ２−Ｎ１）＞（Ｎ３−Ｎ２）であったとすれば、ｄＮ／ｄＶ＝最小となる電圧は、少なくとも電圧ＶＢ２よりも高いと考えられる。従ってコントローラ２００は、電圧Ｖ３から更にΔＶＢだけプラス方向にシフトされた電圧ＶＢ４を用いて読み出し動作を行う。このときのオンセル数がＮ４であり、（Ｎ４−Ｎ３）＞（Ｎ３−Ｎ２）であったとすると、図１２下図のようなヒストグラムが得られる。
【００８７】
以上の結果、図１２下図に示すような閾値分布が推測され、この分布に基づいてコントローラ２００は、電圧ＶＢ２とＶＢ３との間が、図１１で説明したｄＮ／ｄＶ＝最小となる位置であると推測し、電圧ＶＢ２とＶＢ３の間の値を適切な読み出し電圧ＶＢ’に設定する。
【００８８】
上記のようにトラッキング動作において閾値分布の交点を探索する手段としては、例えばディストリビューションリードを用いる方法と、シフトリードトラッキングを用いる方法とがある。以下では、それぞれの方法につき、図１３Ａ、図１３Ｂ、及び図１３Ｃを用いて簡単に説明する。図１３Ａ及び図１３Ｂはディストリビューションリード時に選択ワード線ＷＬに印加される電圧ＶＣＧＲＶのタイミングチャートであり、図１３Ｃはシフトリードトラッキング時に選択ワード線ＷＬに印加される電圧ＶＣＧＲＶのタイミングチャートである。そして図１３Ａ、図１３Ｂ、及び図１３Ｃは、図１２で説明した交点探索の場合に対応する。
【００８９】
まず図１３Ａの例について説明する。図１３Ａは、ディストリビューションリードを用いた１レベルトラッキングの例を示している。ディストリビューションリードは、通常の読み出し動作と異なり、ある電圧を選択ワード線ＷＬに印加した際のオンセルをカウントする動作である。すなわち、通常の読み出しデータ（page-by-page readingの場合）では、データはページ毎に読み出され、図４の例であると、lowerページデータ、middleページデータ、及びupperページデータがそれぞれ読み出される。従って、lowerページデータを読み出す際には、選択ワード線ＷＬには読み出し電圧ＶＣＧＲＶとして電圧ＶＡ及びＶＥが印加される。その他のページについても同様である。しかしディストリビューションリードの場合には、ページデータが読み出されるのではなく、ある電圧をＶＣＧＲＶに用いた場合に、メモリセルトランジスタＭＴがオンしたか否かが判定されるに過ぎない。
【００９０】
図１３Ａの例であると、選択ワード線ＷＬには、電圧ＶＢ１、ＶＢ２、ＶＢ３、及びＶＢ４が順次印加されている。そして、各電圧が選択ワード線ＷＬに印加された際にオン状態となったメモリセルトランジスタ数を、例えばシーケンサ１７０がカウントする。その結果、図１２で説明したヒストグラムが得られ、“Ａ”状態と“Ｂ”状態の閾値分布の交点が得られる。なお、図１３Ａでは電圧ＶＣＧＲＶが単調増加する場合が示されているが、オンセル数の増減の仕方によっては、単調増加に限定されるものではない。
【００９１】
また１レベルトラッキングの場合には、いずれか１つの交点が探索され、その他の交点は、探索された交点に基づいて推測される。すなわち図１３Ａの例であると、“Ａ”状態と“Ｂ”状態の閾値分布の交点は、ディストリビューションリードによって実際に得られたオンセル数に基づいて探索される。しかし、その他の閾値分布の交点（すなわち“Ｅｒ”状態と“Ａ”状態の交点、“Ｂ”状態と“Ｃ”状態の交点、“Ｃ”状態と“Ｄ”状態の交点、…及び“Ｆ”状態と“Ｇ”状態の交点）は、“Ａ”状態と“Ｂ”状態の閾値分布の交点に基づいて推測される。
【００９２】
これに対して、全て（または複数の）の交点を、ディストリビューションリードを用いて求める方法がフルレベルトラッキングである。そして図１３Ｂがフルレベルトラッキングの場合を示している。
【００９３】
図示するように、図１３Ａで説明した動作が電圧ＶＢだけでなくＶＡ、ＶＣ、ＶＤ、…及びＶＧについても行われる。これにより、“Ｅｒ”状態と“Ａ”状態の交点、“Ａ”状態と“Ｂ状態”の交点、“Ｂ”状態と“Ｃ”状態の交点、…及び“Ｆ”状態と“Ｇ”状態の交点が求められる。なお、図１３Ｂでは単純化のために図１３Ａと同様、電圧ＶＡ、ＶＢ、ＶＣ、…及びＶＧのそれぞれが４段階に変化する場合を示しているが、フルレベルトラッキングの場合には、より精度良く交点を探索するために、ある電圧範囲内において、細かくステップアップ（またはステップダウン）されることが望ましい。
【００９４】
次に、シフトリードトラッキングについて説明する。シフトリードトラッキングでは、通常のページ読み出しと同様のシフトリードが、ＶＣＧＲＶの値を変えつつ繰り返し実行される。この様子を示しているのが図１３Ｃである。図１３Ｃは、lowerページデータを読み出す場合を示している。図示するように、まず読み出し動作ＡＲ１及びＥＲ１において、選択ワード線ＷＬには電圧ＶＡ１及びＶＥ１がそれぞれ印加され、lowerページデータが読み出される。引き続き、読み出し動作ＡＲ２及びＥＲ２において、選択ワード線ＷＬに電圧ＶＡ２及びＶＥ２が印加され、lowerページデータが読み出される。以下同様にして、読み出し動作ＡＲ４及びＥＲ４まで行われる。その後、“Ｅｒ”状態と“Ａ”状態の閾値分布の交点、及び“Ｄ”状態と“Ｅ”状態の閾値分布の交点が算出される。
【００９５】
図１４Ａは、各読み出し動作ＡＲ１／ＥＲ１〜ＡＲ４／ＥＲ４において、読み出し電圧ＶＣＧＲＶをＶＡ１からＶＥ４まで変化させた際の読み出しデータを示す。なお、図１４Ａ中における“ＴＲ”は、図１３Ｃに示す動作の前に行われるテストリードを示す。テストリードでは、ページデータを読み出すための複数の読み出し電圧（図１４Ａの例では電圧ＶＡとＶＥ）の間の電圧であり、本例では例えば電圧ＶＣである。この電圧ＶＣを用いて得られるデータは、読み出し電圧ＶＡ１〜ＶＡ４で得られたデータと読み出し電圧ＶＥ１〜ＶＥ４で得られたデータとを区別するために用いられる。従って、電圧ＶＡ４とＶＥ１との中間の電圧であることが好ましい。
【００９６】
図示するように、読み出し動作ＡＲ１／ＥＲ１では、メモリセルトランジスタの閾値電圧がＶＡ１未満であると読み出しデータは“１”であり、閾値電圧がＶＡ１以上且つＶＥ１未満であると読み出しデータは“０”であり、閾値電圧がＶＥ１以上であると読み出しデータは“１”である。また読み出し動作ＡＲ２／ＥＲ２では、メモリセルトランジスタの閾値電圧がＶＡ２未満であると読み出しデータは“１”であり、閾値電圧がＶＡ２以上且つＶＥ２未満であると読み出しデータは“０”であり、閾値電圧がＶＥ２以上であると読み出しデータは“１”である。以下同様であり、ｉ回目（ｉは自然数）のシフトリードにおける読み出し動作ＡＲｉ／ＥＲｉにおける読み出しデータは、メモリセルトランジスタの閾値電圧がＶＡｉ未満であるか、ＶＥｉ以上であると“１”であり、閾値電圧がＶＡｉ以上且つＶＥｉ未満であると“０”である。
【００９７】
図１４Ａに示すような読み出しデータから、読み出し電圧をシフトさせた際のオンセル数の変化を求めるために、図１４Ｂに示す分離データが用いられる。分離データＡＲｓ１〜ＡＲｓ４及びＥＲｓ１〜ＥＲｓ４は、テストリードＴＲで読み出されたデータと、読み出し動作ＡＲ／ＥＲで読み出されたデータとに基づいて算出される。
【００９８】
本例であると、分離データＡＲｓｉ（ｉは自然数）は、テストリードＴＲで読み出されたデータと、読み出し動作ＡＲｉ／ＥＲｉで読み出されたデータとの論理積演算によって算出される（ＡＲｓ＝ＴＲ  ＡＮＤ  （ＡＲ／ＥＲ））。また分離データＥＲｓｉ（ｉは自然数）は、テストリードＴＲで読み出されたデータの反転データと、読み出し動作ＡＲｉ／ＥＲｉで読み出されたデータとの論理積演算によって算出される（ＥＲｓ＝／ＴＲ  ＡＮＤ  （ＡＲ／ＥＲ））。
【００９９】
この結果、図１４Ｂに示すように、分離データＡＲｓ１〜ＡＲｓ４においては、電圧ＶＡ４以上の読み出し電圧に対応するデータが全て“０”とされ、電圧ＶＥの変動による影響を取り除くことができる。すなわち、分離データＡＲｓ１が“１”であるビット数をカウントすることで、閾値電圧がＶＡ１未満であるメモリセルトランジスタ数が分かる。また分離データＡＲｓ２が“１”であるビット数をカウントすることで、閾値電圧がＶＡ１以上且つＶＡ２未満であるメモリセルトランジスタ数が分かる。
【０１００】
分離データＥＲｓ１〜ＥＲｓ４も同様である。すなわち、分離データＥＲｓ１〜ＥＲｓ４においては、電圧ＶＥ１未満の読み出し電圧に対応するデータが全て“０”とされ、電圧ＶＡの変動による影響を取り除くことができる。すなわち、分離データＥＲｓ４が“１”であるビット数をカウントすることで、閾値電圧がＶＥ４以上であるメモリセルトランジスタ数が分かる。また分離データＥＲｓ３が“１”であるビット数をカウントすることで、閾値電圧がＶＥ３以上且つＶＥ４未満であるメモリセルトランジスタ数が分かる。
【０１０１】
なお、分離データを得る方法は上記論理積演算に限らず、論理和演算など、種々の方法を用いることができる。またシフトリードトラッキングについては、例えば“SEMICONDUCTOR STORAGE DEVICE AND MEMORY SYSTEM”という2017年9月7日に出願された米国特許出願No. 15/697,737号に記載されている。本特許出願は、その全体が本願明細書において参照により援用されている。
【０１０２】
２．２  ブロックＢＬＫ内のパトロールリードについて  
次に、ブロックＢＬＫ内におけるパトロールリードの方法につき、図１５を用いて説明する。図１５は、各ストリングユニットＳＵ０〜ＳＵ３におけるワード線ＷＬ０〜ＷＬ９５に対するパトロールリードの内容を示すダイアグラムであり、空欄の箇所は通常シフトリードを行うことを意味する。
【０１０３】
本例であると、各ワード線グループＧＰにおいて、いずれかのストリングユニットＳＵのいずれかのワード線ＷＬについてのみトラッキング動作が行われ、その他のワード線に対してはシフトリードが行われる。すなわち図１５の例であると、ストリングユニットＳＵ０において、各ワード線グループＧＰ０〜ＧＰ７の先頭ワード線ＷＬ０、ＷＬ１２、ＷＬ２４、ＷＬ３６、ＷＬ４８、ＷＬ６０、ＷＬ７２、及びＷＬ８４に対してトラッキング動作が行われる。その他のワード線ＷＬ１〜ＷＬ１１、ＷＬ１３〜ＷＬ２３、ＷＬ２５〜ＷＬ３５、ＷＬ３７〜ＷＬ４７、ＷＬ４９〜ＷＬ５９、ＷＬ６１〜ＷＬ７１、ＷＬ７３〜ＷＬ８３、及びＷＬ８５〜ＷＬ９５に対しては、トラッキング動作は行われずにシフトリードが行われる。また、ストリングユニットＳＵ０以外のＳＵ１〜ＳＵ３の全ワード線ＷＬ０〜ＷＬ９５に対しても、トラッキング動作は行われず、通常のシフトリードが行われる。
【０１０４】
図１６は、本実施形態に係るパトロールリードのフローチャートである。図１６では、シフトリードトラッキングを用いてトラッキング動作を行う場合を例に挙げているが、ディストリビューションリードを用いる場合であってもよい。
【０１０５】
図示するように、コントローラ２００からテストコマンドを受信したＮＡＮＤ型フラッシュメモリ１００では、まずシーケンサ１７０が、ストリングユニットＳＵ０のワード線ＷＬ０を選択してトラッキング動作を実行する（ステップＳ１００）。図１６の例では、図１３Ｃ、図１４Ａ、及び図１４Ｂを用いて説明したシフトリードトラッキングが行われる。すなわち、ステップＳ１００のトラッキング動作は、ワード線ＷＬ０のlowerページ、middleページ、及びupperページのそれぞれにつき行われる。また、本例におけるトラッキング動作は例えばオンチップトラッキング（on-chip tracking）であり、オンセル数のカウントやヒストグラムに基づく交点探索処理は、コントローラ２００ではなくＮＡＮＤ型フラッシュメモリ１００内（例えばシーケンサ１７０）で実行され得る。もちろん、交点探索処理がコントローラ２００で行われる場合であってもよい。
【０１０６】
そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００からlowerページ、middleページ、及びupperページにおける閾値分布の交点情報を受信し、例えばメモリ２２０内に保持される履歴テーブルを更新する（ステップＳ１０１）。すなわちプロセッサ２３０は、図５に示すシフトテーブルにおいて、ＮＡＮＤ型フラッシュメモリ１００から受信した交点情報に最も適したシフト量に対応するインデックスを選択する。そしてプロセッサ２３０は、例えば図６や図７で説明した履歴テーブルにおけるワード線グループＧＰ０のインデックスを、選択したインデックスに更新する。
【０１０７】
次にコントローラ２００は、ストリングユニットＳＵ０のワード線ＷＬ０に対するシフトリードをＮＡＮＤ型フラッシュメモリ１００に命令する（ステップＳ１０２）。このステップＳ１０２では、例えば図８で説明したように、まずset featureコマンドによりＮＡＮＤ型フラッシュメモリ１００のレジスタ内のシフト値が更新される。引き続き、コントローラ２００はシフトリードコマンド及びデータ出力コマンドを発行する。これにより、更新されたシフト値を用いてメモリセルアレイ１１０から読み出されたデータがコントローラ２００へ送信される。
【０１０８】
なお、ＮＡＮＤ型フラッシュメモリ１００が、閾値分布の交点とシフト値との関係を有しており、ステップＳ１０１において例えばシーケンサ１７０がレジスタ内のシフト値を更新してもよい。この場合には、ステップＳ１０２においてset featureコマンドが発行される必要はない。
【０１０９】
図１７は、ステップＳ１０２において、シフトリードコマンドに応じてデータが読み出される際のブロックＢＬＫ０の回路図である。図示するようにシフトリード時には、ロウデコーダ１２０がセレクトゲート線ＳＧＤ０及びＳＧＳに電圧ＶＳＧ（例えば４．３Ｖ）を転送する。電圧ＶＳＧは、選択トランジスタＳＴ１及びＳＴ２をオン状態にする電圧である。その他のセレクトゲート線ＳＧＤ１〜ＳＧＤ３には０Ｖが転送され、ストリングユニットＳＵ１〜ＳＵ３の選択トランジスタＳＴ１はオフ状態となる。更にロウデコーダ１２０は、選択ワード線ＷＬ０に電圧ＶＣＧＲＶを転送する。この読み出し電圧ＶＣＧＲＶは、デフォルトの電圧から、ステップＳ１０１で更新されたインデックスに対応する値だけシフトされた電圧である。またロウデコーダ１２０は、その他の非選択ワード線ＷＬ１〜ＷＬ９５に電圧ＶＲＥＡＤを転送する。電圧ＶＲＥＡＤは、保持データにかかわらずメモリセルトランジスタＭＴをオン状態にする電圧であり、例えば８．０Ｖ程度である。なお、選択ワード線に隣り合う非選択ワード線には電圧ＶＲＥＡＤＫが印加されても良く、ＶＲＥＡＤＫ＞ＶＲＥＡＤであり、例えば８．２Ｖ程度である。更に、ソース線ＳＬは接地される。
【０１１０】
また、センスアンプ１４０がビット線ＢＬをプリチャージする。選択ワード線ＷＬ０に接続されたメモリセルトランジスタＭＴがオン状態となれば、ビット線ＢＬ０からソース線ＳＬに電流が流れ、オフ状態であれば電流はほぼ流れない。このビット線ＢＬ０の電流または電圧をセンスアンプ１４０が検出して、読み出しデータが“０”であるか“１”であるかを判断する。
【０１１１】
上記のようにして読み出された１ページ分のデータは、データ出力コマンドに応答して、ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００へ送信される。そしてＥＣＣ回路２６０がエラーの検出及び訂正を行う（ステップＳ１０３）。その結果、エラーが検出され、且つそのエラーを訂正できなかった場合には（ステップＳ１０３、ＮＯ）、コントローラ２００は、リフレッシュ動作をＮＡＮＤ型フラッシュメモリ１００に命令する（ステップＳ１０４）。リフレッシュ動作時のブロックＢＬＫ０の様子を図１８に示す。
【０１１２】
図示するように、コントローラ２００からリフレッシュ命令が受信されると、ロウデコーダ１２０は、ブロックＢＬＫ０の全ワード線ＷＬ０〜ＷＬ９５に例えば電圧ＶＲＥＡＤを転送する。またロウデコーダ１２０は、ブロックＢＬＫ０の全セレクトゲート線ＳＧＤ０〜ＳＧＤ３及びＳＧＳに電圧ＶＳＧを転送する。この結果、ブロックＢＬＫ０のストリングユニットＳＵ０〜ＳＵ３の全メモリセルトランジスタＭＴには、電圧ＶＲＥＡＤによる電圧ストレスがかかり、その閾値電圧が高電圧側にシフトする。
【０１１３】
このように、閾値電圧を高電圧側にシフトさせる動作がリフレッシュ動作である。ＮＡＮＤ型フラッシュメモリでは、メモリセルトランジスタＭＴにデータが書き込まれた後、時間が経過するにつれてメモリセルトランジスタＭＴの閾値電圧が低下する場合がある。この理由は、例えば電荷蓄積層に注入した電子がメモリセルトランジスタ間の領域に移動して、メモリセルトランジスタＭＴの電荷蓄積層内の電子数が実質的に減少するからである（干渉効果）。従って、コントローラ２００はリフレッシュ動作を行うことにより、干渉効果により低電圧側にシフトした閾値電圧を高電圧側に戻し、これによりステップＳ１０１で更新されたインデックスによるシフトリードの成功確率を向上させる。
【０１１４】
なお、リフレッシュ動作の方法は図１８に限定されず、メモリセルトランジスタＭＴに電圧ストレスを与えることができれば、その方法は問わない。例えば、セレクトゲート線ＳＧＤ０に電圧ＶＳＧが印加される一方で、セレクトゲート線ＳＧＤ１〜ＳＧＤ３には０Ｖが印加されてもよい。または、リフレッシュ動作は、データの読み出し動作時と同様にいずれかの選択ワード線ＷＬに電圧ＶＣＧＲＶが印加され、その他の非選択ワード線ＷＬに電圧ＶＲＥＡＤが印加される場合であってもよい。または、図示せぬダミーワード線（例えばセレクトゲート線ＳＧＤ、ＳＧＳとワード線ＷＬとの間に設けられる）に電圧ＶＣＧＲＶが印加される場合であってもよい。
【０１１５】
更にリフレッシュ動作は、上記のようにメモリセルトランジスタＭＴに電圧ストレスを印加する方法に限らない。例えばデータを別のブロックＢＬＫにコピーすることであってもよい。具体的には、例えばブロックＢＬＫ０内のデータが読み出し対象であり、且つステップＳ１０３、Ｓ１０６、Ｓ１０９、またはＳ１１２でエラー訂正に失敗した場合、コントローラ２００はステップＳ１０４、Ｓ１０７、Ｓ１１０、またはＳ１１３において、更に訂正能力の高い方法によりエラーを訂正する。一例としては、ステップＳ１０３、Ｓ１０６、Ｓ１０９、およびＳ１１２におけるエラー訂正が硬判定によるものであるのに対して、ステップＳ１０４、Ｓ１０７、Ｓ１１０、及びＳ１１３におけるエラー訂正が軟判定による場合である。または、ステップＳ１０４、Ｓ１０７、Ｓ１１０、及びＳ１１３におけるエラー訂正が、ＲＡＩＤ（Redundant Arrays of inexpensive Disks）を利用した場合である。そしてコントローラ２００は、エラーが訂正されたデータと共に、ブロックＢＬＫ０内の有効データ全てを、別の空きブロックＢＬＫ１にコピーする。そしてブロックＢＬＫ０内のデータを全て消去する。それまでブロックＢＬＫ０に割り当てられていた論理アドレスは、データのコピー先であるブロックＢＬＫ１に割り当てられる。リフレッシュ動作は、このような方法であってもよい。
【０１１６】
コントローラ２００は、上記のステップＳ１０２〜Ｓ１０４の処理を、lowerページ、middleページ、及びupperページに対して実行する。更にコントローラ２００は、上記のステップＳ１０２〜Ｓ１０４と同様の処理を、ストリングユニットＳＵ１、ＳＵ２、及びＳＵ３のワード線ＷＬ０のlowerページ、middleページ、及びupperページに対して実行する（ステップＳ１０５〜Ｓ１０７、Ｓ１０８〜Ｓ１１０、Ｓ１１１〜Ｓ１１３）。この際に用いられる読み出し電圧ＶＣＧＲＶは、ステップＳ１０１で得られたインデックスに対応する。
【０１１７】
更にコントローラ２００は、上記のステップＳ１０２〜Ｓ１１３で説明した動作を、ストリングユニットＳＵ０〜ＳＵ３の各々におけるワード線ＷＬ１〜ＷＬ１１を順次選択して実行する（ステップＳ１１４）。この際に用いられる読み出し電圧ＶＣＧＲＶも、ステップＳ１０１で得られたインデックスに対応する。
【０１１８】
以上のようにしてワード線グループＧＰ０に関するパトロールリードが完了すると、メモリシステム１は、ワード線グループＧＰ０に行った処理と同様の処理をワード線グループＧＰ１〜ＧＰ７に対して実行する（ステップＳ１１５）。
【０１１９】
すなわち、まずストリングユニットＳＵ０のワード線ＷＬ１２を選択してトラッキング動作が実行され（ステップＳ１００）、ワード線グループＧＰ１で使用されるインデックスが決定される（ステップＳ１０１）。その後は、ストリングユニットＳＵ０〜ＳＵ３の各々におけるワード線ＷＬ１２〜ＷＬ２３につき、上記決定されたインデックスに対応する読み出し電圧ＶＣＧＲＶを用いてlowerページデータ、middleページデータ、及びupperページデータが読み出される。この際、必要に応じてリフレッシュ動作が行われる。以下、ワード線グループＧＰ２〜ＧＰ７に対しても同様である。
【０１２０】
２．３  通常のデータ読み出しについて  
次に、通常のデータ読み出し方法について、図１９を用いて簡単に説明する。図１９は、ホスト機器３００からの読み出し要求に従ってＮＡＮＤ型フラッシュメモリ１００のあるブロックＢＬＫからデータがコントローラ２００に読み出される際の動作を示すフローチャートである。なお図１９は、図１６に示したパトロールリードとの違いが明確になるよう、処理の流れを簡略化して示している。
【０１２１】
図示するように、ホスト機器３００からの読み出し要求を受信したコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００に対してシフトリードを命令する（ステップＳ１２０）。この際、例えばストリングユニットＳＵ０のワード線ＷＬ０が選択される。ステップＳ１２０では、第１実施形態の図８で説明したように、シフトリードコマンドの前にset featureコマンドが発行されてもよい。そして、メモリセルアレイ１１０から読み出されたデータにつき、ＥＣＣ回路２６０がエラー訂正を試みる（ステップＳ１２１）。エラー訂正に失敗した場合（ステップＳ１２１、ＮＯ）には、コントローラ２００のプロセッサ２３０は、履歴テーブルにおけるワード線グループＧＰ０のインデックスをインクリメントし、再度シフトリードをＮＡＮＤ型フラッシュメモリ１００に命令する。但し、エラー訂正に失敗し（ステップＳ１２１、ＮＯ）、且つインデックス値が一定の基準値に達していた場合には、コントローラ２００はＮＡＮＤ型フラッシュメモリ１００にトラッキング動作を命令する（ステップＳ１２２）。トラッキング動作の詳細は、図１１Ａ、図１１Ｂ、図１２、図１３Ａ乃至図１３Ｃ、並びに図１４Ａ及び図１４Ｂを用いて説明したとおりである。そしてプロセッサ２３０は、トラッキング動作の結果に基づいて、履歴テーブルにおけるインデックスを適切な値に更新し、更新したインデックス値を用いたシフトリードをＮＡＮＤ型フラッシュメモリ１００に命令する。
【０１２２】
引き続きコントローラ２００は、上記のステップＳ１２０〜Ｓ１２２の処理を、lowerページ、middleページ、及びupperページに対して実行する。その結果、コントローラ２００は３ページ分のデータを得ることができる。更にコントローラ２００は、上記のステップＳ１２０〜Ｓ１２２と同様の処理を、ストリングユニットＳＵ１、ＳＵ２、及びＳＵ３のワード線ＷＬ０のlowerページ、middleページ、及びupperページに対して実行する（ステップ１２３〜Ｓ１２５、Ｓ１２６〜Ｓ１２８、Ｓ１２９〜Ｓ１３１）。
【０１２３】
更にコントローラ２００は、上記のステップＳ１２０〜Ｓ１３１の処理を、ストリングユニットＳＵ０〜ＳＵ３の各々におけるワード線ＷＬ１〜ＷＬ９５を順次選択して実行する（ステップＳ１３２）。この際、第１実施形態で説明したように、履歴テーブルの更新はワード線毎ではなくワード線グループ毎に行われる。
【０１２４】
２．４  本実施形態に係る効果  
本実施形態によれば、履歴テーブルにおいて複数のワード線ＷＬをグループ化すると共に、パトロールリード時にトラッキング動作を行っている。これにより、ホスト機器３００からのアクセスがない期間に、各ワード線グループＧＰのインデックスを最適化できる。その結果、通常のデータの読み出し時において、シフトリードを何度も繰り返す事態が発生する可能性を低減できる。
【０１２５】
また本実施形態であると、パトロールリード時におけるトラッキング動作は、各ワード線グループＧＰにつき、いずれかのストリングユニットＳＵのいずれかのワード線ＷＬに対して行われ、その他のワード線ＷＬに対しては行われない。例えば図１５の場合、ワード線グループＧＰ０では、ストリングユニットＳＵ０のワード線ＷＬ０に対してのみ、トラッキング動作が実行される。従って、ＮＡＮＤ型フラッシュメモリ１００における負荷の増大を最小限に抑制しつつ、上記効果を得ることができる。
【０１２６】
なお上記実施形態では、図１５に示すように、各ワード線グループＧＰの先頭のワード線（各ワード線グループＧＰにおいて最下層に位置するワード線）ＷＬ０、ＷＬ１２、ＷＬ２４、ＷＬ３６、…ＷＬ８４がトラッキング動作の対象とされている。しかし、トラッキング動作の対象となるワード線ＷＬは適宜選択できる。図２０は上記実施形態で説明した図１５の変形例であり、各ワード線グループＧＰの中間のワード線（各ワード線グループＧＰにおいて最上層のワード線と最下層のワード線との間のちょうど中間に位置するワード線）ＷＬ５、ＷＬ１７、ＷＬ２９、ＷＬ４１、…ＷＬ８９がトラッキング動作の対象とされる例を示している。図２１は図２０に対応するパトロールリードのフローチャートである。図２１に示すように、例えばワード線グループＧＰ０に対してパトロールリードを行う際には、まずワード線ＷＬ５が選択されてトラッキング動作が実行される（ステップＳ１１６）。そして、このトラッキング動作の結果に基づいて、履歴テーブルにおけるワード線グループＧＰ０のインデックスが更新される（ステップＳ１０１）。以降は、第１実施形態で説明したとおりである。
【０１２７】
本例によれば、各ワード線グループＧＰにおいて、中間層に位置するワード線ＷＬが選択されてトラッキング動作が行われる。つまり、各ワード線グループＧＰにおいて平均的な特性を有するメモリセルトランジスタＭＴに対してトラッキング動作が行われる。従って、各ワード線グループＧＰにおける最上層のメモリセルトランジスタＭＴと最下層のメモリセルトランジスタＭＴとの両方に適したシフト量を得ることができる。
【０１２８】
また、上記実施形態では各ワード線グループＧＰにおいて、いずれか１つのストリングユニットＳＵにおけるいずれか１本のワード線ＷＬを選択してトラッキング動作が行われる例を説明した。しかし、複数のストリングユニットＳＵにおいてトラッキング動作が行われても良いし、及び／または複数のワード線ＷＬに対してトラッキング動作が行われても良い。すなわち、１つのワード線グループＧＰにおいて、複数回のトラッキング動作が異なるメモリセルトランジスタＭＴを対象に行われても良い。この場合には、より特性の劣化したメモリセルトランジスタＭＴのトラッキング結果、つまりより大きいインデックス値が優先して履歴テーブルに保持されてもよい。
【０１２９】
３．第３実施形態  
次に、第３実施形態に係るメモリシステムについて説明する。本実施形態は、上記第２実施形態で説明したパトロールリードにおいて、１つのワード線グループＧＰに対して複数回のトラッキング動作を行うと共に、その結果の平均値を履歴テーブルに保持させるものである。以下では、第１及び第２実施形態と異なる点についてのみ説明する。
【０１３０】
３．１  ブロックＢＬＫ内のパトロールリードについて  
図２２は、各ストリングユニットＳＵ０〜ＳＵ３におけるワード線ＷＬ０〜ＷＬ９５に対するパトロールリードの内容を示すダイアグラムであり、第２実施形態で説明した図１５及び図２０に対応する。
【０１３１】
図示するように、本例に係る方法であると、各ワード線グループＧＰにおいて複数のストリングユニットＳＵ０〜ＳＵ３でトラッキング動作が行われる。より具体的には、ストリングユニットＳＵ０〜ＳＵ３の各々において、各ワード線グループＧＰ０〜ＧＰ７の中間のワード線ＷＬ５、ＷＬ１７、ＷＬ２９、…ＷＬ８９に接続されたメモリセルトランジスタＭＴがトラッキング動作の対象とされる。つまり、各ワード線グループＧＰにつき、４つのストリングユニットＳＵ０〜ＳＵ３のそれぞれでトラッキング動作が行われる。その他のメモリセルトランジスタＭＴに対しては、第２実施形態と同様にシフトリードが行われ、トラッキング動作は行われない。
【０１３２】
図２３は、本実施形態に係るパトロールリードのフローチャートである。図示するように本実施形態に係るパトロールリードは、上記第２実施形態で説明した図２１と下記の点で異なる。すなわち、  
・ストリングユニットＳＵ０だけでなくストリングユニットＳＵ１〜ＳＵ３においても、ワード線ＷＬ５を対象にトラッキング動作が行われる（ステップＳ１４０〜Ｓ１４３）。すなわち、図２１で説明したステップ１１６の処理が、ストリングユニットＳＵ０〜ＳＵ４の各々において行われる。  
・ステップＳ１４０〜Ｓ１４３で得られた、閾値分布の交点に対応する電圧の平均値が算出される（ステップＳ１４４）。平均値の算出は、コントローラ２００の例えばプロセッサ２３０が行ってもよいし、ＮＡＮＤ型フラッシュメモリ１００のシーケンサ１７０が行ってもよい。  
・ステップＳ１０１において、ステップＳ１４４で得られた平均値に基づいて履歴テーブルが更新される。  
・ストリングユニットＳＵ０〜ＳＵ４に対するトラッキング動作、このトラッキング動作で得られた電圧の平均値に基づく履歴テーブルの更新、及びシフトリードが、ワード線グループＧＰ１〜ＧＰ７に対しても実行される（ステップＳ１４５）。
【０１３３】
本実施形態に係る閾値分布の交点探索方法の一例につき、図２４を用いて説明する。図２４は、ステップＳ１４０〜Ｓ１４３で発見された閾値分布の交点を示すグラフであり、ストリングユニットＳＵ０〜ＳＵ３のそれぞれにおいてワード線ＷＬ５のlowerページデータをトラッキング対象とした場合を例に示している。なお、図２４に示すグラフは、例えば第１実施形態で図１２を用いて説明したヒストグラムによって得られる。
【０１３４】
図示するように、ストリングユニットＳＵ０のトラッキング動作結果によれば、消去状態と“Ａ”状態との交点に対応する電圧はＶＡ０であり、“Ｄ”状態と“Ｅ”状態との交点に対応する電圧はＶＥ０であったとする。またストリングユニットＳＵ１のトラッキング動作結果によれば、消去状態と“Ａ”状態との交点に対応する電圧はＶＡ１（＜ＶＡ０）であり、“Ｄ”状態と“Ｅ”状態との交点に対応する電圧はＶＥ１（＜ＶＥ０）であったとする。更に、ストリングユニットＳＵ２のトラッキング動作結果によれば、消去状態と“Ａ”状態との交点に対応する電圧はＶＡ２（＞ＶＡ１）であり、“Ｄ”状態と“Ｅ”状態との交点に対応する電圧はＶＥ２（＞ＶＥ１）であったとする。そして、ストリングユニットＳＵ３のトラッキング動作結果によれば、消去状態と“Ａ”状態との交点に対応する電圧はＶＡ３（＞ＶＡ２）であり、“Ｄ”状態と“Ｅ”状態との交点に対応する電圧はＶＥ３（＞ＶＥ２）であったとする。
【０１３５】
すると、これらの電圧ＶＡ０〜ＶＡ３及びＶＥ０〜ＶＥ３の情報を例えばＮＡＮＤ型フラッシュメモリ１００はコントローラ２００に送信する。そしてコントローラ２００のプロセッサ２３０は、電圧ＶＡ０〜ＶＡ３の平均値ＶＡ’を、消去状態と“Ａ”状態との交点に対応する電圧であると決定する。プロセッサ２３０は同様に、電圧ＶＥ０〜ＶＥ３の平均値ＶＥ’を、“Ｄ”状態と“Ｅ”状態との交点に対応する電圧であると決定する。
【０１３６】
middleページ及びupperページについても同様の処理が行われ、平均値ＶＢ’、ＶＣ’、ＶＤ’、ＶＦ’、及びＶＧ’が求められる。そしてプロセッサ２３０は、履歴テーブルにおけるインデックスを、これらの平均値ＶＡ’〜ＶＥ’に最も適した値に更新する。
【０１３７】
３．２  本実施形態に係る効果  
本実施形態によれば、各ワード線グループＧＰにおいて、複数のストリングユニットＳＵを対象にトラッキング動作が行われる。そして、各ストリングユニットＳＵで得られた閾値分布の交点に対応する電圧の平均値に基づいて、履歴テーブルのインデックスが決定される。すなわち、ストリングユニットＳＵ間で特性の差があったとしても、各ストリングユニットＳＵで得られた結果を平均化することで、４つのストリングユニットＳＵ０〜ＳＵ３のいずれにも適したインデックスが選択でき、メモリシステム１のデータ読み出し信頼性を向上できる。
【０１３８】
なお、図２２及び図２３の例では、各ストリングユニットＳＵにおいて１本のワード線ＷＬ５が選択される場合を例に説明した。しかし、平均値を得るために選択されるワード線ＷＬはこれに限らず、複数のワード線ＷＬが選択される場合であればよい。図２５は、本実施形態の第１変形例に係るパトロールリードの内容を示すダイアグラムである。
【０１３９】
図示するように本変形例は、図２２において各ストリングユニットＳＵにつき、ワード線グループあたりのトラッキング動作対象を増やしたものである。すなわち、図示するように、各ストリングユニットＳＵにおいて、ワード線グループＧＰあたり３本のワード線ＷＬが選択される。本例では、各ストリングユニットＳＵ０〜ＳＵ３において、最下層に位置するワード線ＷＬ０、ＷＬ１２、ＷＬ２４、…ＷＬ８４と、最上層に位置するワード線ＷＬ１１、ＷＬ２３、ＷＬ３５、…ＷＬ９５と、それらの中間に位置するワード線ＷＬ５、ＷＬ１７、ＷＬ２９、…ＷＬ８９とが選択される。例えばワード線グループＧＰ０では、ストリングユニットＳＵ０〜ＳＵ３の各々において、ワード線ＷＬ０、ＷＬ５、及びＷＬ１１がトラッキング動作の対象とされる。よって、隣り合う閾値分布の１つの交点につき、互いに異なる領域で得られた１２個の値が得られ、これらの値の平均値に基づいてインデックスが選択される。
【０１４０】
図２６は、図２５で説明したパトロールリードのフローチャートである。図示するように本実施形態に係るパトロールリードは、上記第３実施形態で説明した図２３において、ステップＳ１５０〜Ｓ１５３においてストリングユニットＳＵ０〜ＳＵ３のワード線ＷＬ０に対してトラッキング動作が行われ、ステップＳ１４０〜Ｓ１４３においてストリングユニットＳＵ０〜ＳＵ３のワード線ＷＬ５に対してトラッキング動作が行われ、ステップＳ１５４〜Ｓ１５７においてストリングユニットＳＵ０〜ＳＵ３のワード線ＷＬ１１に対してトラッキング動作が行われる。そしてステップＳ１５８において、ステップＳ１５０〜Ｓ１５７及びＳ１４０〜１４３で得られた結果の平均値が求められる。そしてステップＳ１０１では、ステップＳ１５８で得られた平均値に基づき、履歴テーブルのインデックスが決定される。この動作が、ワード線グループＧＰ１〜ＧＰ７に対しても行われる。
【０１４１】
図２７は、本実施形態の第２変形例に係るパトロールリードの内容を示すダイアグラムである。図示するように本変形例では、各ストリングユニットＳＵにおいて１２本全てのワード線ＷＬが選択される。すなわち、ワード線グループＧＰ０では、ストリングユニットＳＵ０〜ＳＵ３の各々においてワード線ＷＬ０〜ＷＬ１１がトラッキング動作の対象とされる。よって、隣り合う閾値分布の１つの交点につき、互いに異なる領域で得られた４８個の値が得られ、これらの値の平均値に基づいてインデックスが選択される。
【０１４２】
なお、トラッキング動作の対象となるワード線ＷＬの組み合わせは上記に限らず、適宜選択できる。その際には、メモリセルトランジスタＭＴの特性が互いに大きく異なると思われる複数の領域を選択することが好ましい。なぜなら、このように選択することにより、ある特性に偏ったインデックスが選択されることを抑制できるからである。
【０１４３】
４．第４実施形態  
次に、第４実施形態に係るメモリシステムについて説明する。上記第１乃至第３実施形態では、同一のワード線グループＧＰに属するワード線ＷＬを選択してデータを読む際には、同一のインデックスが適用され、同一の読み出し電圧ＶＣＧＲＶがワード線ＷＬに印加される。この点、本実施形態では、上記第１乃至第３実施形態で得られたワード線グループＧＰ毎のインデックスを用いて線形補正を行い、同一ワード線グループＧＰ内であっても、各ワード線ＷＬに互いに異なる適切な読み出し電圧ＶＣＧＲＶを印加するものである。以下では、第１乃至第３実施形態と異なる点についてのみ説明する。
【０１４４】
４．１  データの読み出し動作について  
本実施形態に係るデータの読み出し動作につき、図２８を用いて説明する。図２８は、本実施形態に係るデータの読み出し時におけるコントローラ２００の動作を示すフローチャートである。
【０１４５】
図示するようにコントローラ２００は、データの読み出し要求をホスト機器３００から受信する（ステップＳ１６０）。すると、コントローラ２００の例えばプロセッサ２３０は、選択すべきワード線ＷＬと、当該ワード線ＷＬが属するワード線グループＧＰを確認する（ステップＳ１６１）。引き続きプロセッサ２３０は、履歴テーブルを参照して、当該ワード線グループＧＰに対応するインデックスと、別のワード線グループＧＰに対応するインデックスを読み出す（ステップＳ１６２）。この別のワード線グループＧＰは、読み出し対象ワード線を含むワード線グループＧＰに連続していることが好ましいが、それには限らない。そしてプロセッサ２３０は、読み出した複数のインデックスをＤＡＣ（Digital to Analog Converter）値に変換する（ステップＳ１６３）。
【０１４６】
ＤＡＣ値は、読み出し電圧ＶＣＧＲＶを示すデジタル値である。すなわちコントローラ２００は、読み出し電圧ＶＣＧＲＶをアナログ値ではなく、ＤＡＣ値で示されるデジタル値で取り扱う。インデックスがワード線グループ毎に用意されるので、ＤＡＣ値もまた離散的な値となる。
【０１４７】
引き続きプロセッサ２３０は、複数のＤＡＣ値に基づく線形補正により、選択すべきワード線ＷＬに対応するＤＡＣ値を算出する（ステップＳ１６４）。すなわち、履歴テーブルにおいては同じワード線グループＧＰに属するワード線ＷＬには同じインデックスが割り当てられるが、線形補正により、同じワード線グループＧＰ内でもワード線毎に適切なＤＡＣ値を割り当てる。
【０１４８】
そしてプロセッサ２３０は、選択ワード線ＷＬに印加すべき電圧を指定するＤＡＣ値情報と共に、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し命令を発行する（ステップＳ１６５）。またＮＡＮＤ型フラッシュメモリ１００では、例えばシーケンサ１７０が、受信したＤＡＣ値に基づく読み出し電圧ＶＣＧＲＶを生成するよう電圧発生回路に命令し、当該電圧ＶＣＧＲＶが選択ワード線ＷＬに印加される。
【０１４９】
上記の線形補正につき、以下詳細に説明する。図２９は、ワード線グループＧＰに対するＤＡＣ値（すなわちインデックス値）を示すグラフの一例である。図示するように、メモリセルトランジスタＭＴの閾値電圧は、例えばメモリピラー３１の直径が小さいほど大きくなる。そしてトラッキング動作によって得られるＤＡＣ値は、上記の通りワード線グループＧＰ毎の離散的な値である。しかし、図２９に示すＤＡＣ値は、例えば一次関数で近似できる場合があり得る。この様子を図３０に示す。図３０は、図２９において一次関数を用いた線形補正により得られた、各ワード線ＷＬに適用されるＤＡＣ値を示すグラフであり、図３０において太線で示されている。なお図３０において細線で示したグラフは、上記第１乃至第３実施形態の例を示しており、同一のワード線グループＧＰに属する複数のワード線ＷＬには同一のＤＡＣ値が適用される。これに対して本実施形態によれば、履歴テーブルに登録されたインデックス値に対応するＤＡＣ値を結ぶ一次関数に対応するＤＡＣ値が適用される。すなわち、デフォルトのＤＡＣ値からのシフト量ΔＤＡＣは、ΔＤＡＣ＝α×ΔＷＬのように表現できる。
【０１５０】
上記線形補正の具体例につき、図３１Ａ及び図３１Ｂを用いて説明する。図３１Ａは、各ワード線グループＧＰにおいて、トラッキング動作の対象とされたワード線ＷＬと、トラッキング動作の結果得られたインデックス値に対応するＤＡＣ値とを示す表である。
【０１５１】
図示するように、図３１Ａの例であると、各ワード線グループＧＰにおける中間層に位置するワード線ＷＬ６、ＷＬ１８、ＷＬ３０、…及びＷＬ９０がトラッキング動作の対象とされる。そして、ワード線グループＧＰ０に適用されるＤＡＣ値は“＋３”であり、ワード線グループＧＰ１に適用されるＤＡＣ値は“０”であり、ワード線グループＧＰ２に適用されるＤＡＣ値は“−３”であり、ワード線グループＧＰ７に適用されるＤＡＣ値は“−１８”である。このような例において、ワード線ＷＬ１０及びＷＬ２２からデータが読み出される場合につき、図３１Ｂを用いて説明する。図３１Ｂは、ワード線ＷＬに対するＤＡＣ値を示すグラフである。
【０１５２】
まず、ワード線ＷＬ１０が選択される場合につき説明する。図３１Ｂに示すように、線形補正を行うため、ワード線グループＧＰ０のＤＡＣ値とワード線グループＧＰ１のＤＡＣ値とが用いられる。つまり、トラッキング動作の対象とされたワード線ＷＬの間に選択ワード線ＷＬが挟まれるように、少なくとも２つのワード線グループＧＰが選択される（両端のワード線ＷＬ０〜ＷＬ５及びＷＬ９１〜ＷＬ９５が選択ワード線である場合にはこれに限らない）。すると、ワード線ＷＬ１８とＷＬ６との間で、ＤＡＣ値の変化は（０−３）＝“−３”であるから、一次関数で近似した際の傾きは（−１／４）である。すると、ワード線ＷＬ１０とＷＬ６との間でワード線ＷＬの本数の変化は（１０−６）＝“４”であるから、ワード線ＷＬ６のＤＡＣ値からの変化量ΔＤＡＣ１とすると、下記の関係が成り立つ。  
（１８−６）：（３−０）＝（１０−６）：ΔＤＡＣ１  
よって、ΔＤＡＣ１＝“１”となり、ワード線ＷＬ１０に対応するＤＡＣ値は（３−１）＝“２”と求められる。
【０１５３】
ワード線ＷＬ２２が選択される場合も同様である。この場合、図３１Ｂに示すように、ワード線グループＧＰ１のＤＡＣ値とワード線グループＧＰ２のＤＡＣ値とを用いて線形補正が行われる。すると、ワード線ＷＬ１８のＤＡＣ値からの変化量ΔＤＡＣ２とすると、下記の関係が成り立つ。  
（３０−１８）：（０−３）＝（２２−１８）：ΔＤＡＣ２  
よって、ΔＤＡＣ１＝“−１”となり、ワード線ＷＬ２２に対応するＤＡＣ値は“−１”と求められる。
【０１５４】
図３２は、本実施形態に係るデータの読み出し時においてコントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ送信されるコマンドシーケンスを示しており、ワード線ＷＬ０〜ＷＬ２からデータを読み出す例を示している。
【０１５５】
図示するように、第１実施形態で説明した図８の場合と同様、あるワード線ＷＬからデータを読み出す際には、コントローラ２００はset featureコマンド、シフトリードコマンド、及びデータ出力コマンドを順次発行する。図８と異なる点は、図３２に示すように、Set featureコマンドがワード線グループ毎ではなくワード線毎に発行される点である。すなわちコントローラ２００は、図３１Ａ及び図３１Ｂで説明した補正処理を行い、各ワード線ＷＬに適切なＤＡＣ値を求める。従って、ワード線ＷＬ０からデータが読み出される際には、ワード線ＷＬ０に適切な読み出し電圧としてのＤＡＣ１がset featureコマンドによりＮＡＮＤ型フラッシュメモリ１００に設定される。ワード線ＷＬ１及びＷＬ２も同様であり、set featureコマンドによりＤＡＣ１及びＤＡＣ２がそれぞれＮＡＮＤ型フラッシュメモリ１００に設定される。そしてこれらのＤＡＣ０〜ＤＡＣ１には、互いに依存関係がある。より具体的には、ＤＡＣ０〜ＤＡＣ１の値は、ある一次関数に従った値となる。
【０１５６】
なお、図３１Ａ及び図３１Ｂで説明した補正処理は、lowerページ、middleページ、及びupperページのそれぞれについて行われる。従って、lowerページ、middleページ、及びupperページのそれぞれの読み出しにつき、図３２に示すset featureコマンド、シフトリードコマンド、及びデータ出力コマンドが発行される。そして、ワード線ＷＬ０〜ＷＬ２のlowerページに適用されるＤＡＣ値が互いに依存関係を有し、またワード線ＷＬ０〜ＷＬ２のmiddleページに適用されるＤＡＣ値が互いに依存関係を有し、そしてワード線ＷＬ０〜ＷＬ２のupperページに適用されるＤＡＣ値が互いに依存関係を有する。
【０１５７】
４．２  本実施形態に係る効果  
本実施形態によれば、上記第１乃至第３実施形態と同様に、履歴テーブルにおいて複数のワード線ＷＬがグループ化されている。そして、このワード線グループＧＰ毎にインデックスが割り当てられる。
【０１５８】
その一方で、データを読み出す際には、複数のワード線グループＧＰについてのインデックス（ＤＡＣ値）に基づく線形補正により、ワード線毎に用いるべきＤＡＣ値を算出し、この結果に基づく電圧ＶＣＧＲＶを選択ワード線ＷＬに印加するよう、ＮＡＮＤ型フラッシュメモリ１００に命令する。従って、履歴テーブルに登録すべきインデックスを決定する際のトラッキング動作の対象とならなかったワード線ＷＬに対しても、適切な読み出し電圧ＶＣＧＲＶを印加できる。
【０１５９】
なお、上記実施形態ではトラッキング動作の対象とならなかった全ワード線ＷＬにつき線形補正を行って、ワード線１本毎にＤＡＣ値を算出する例を説明した。例えばワード線ＷＬ５がトラッキング対象とされたワード線グループＧＰ０に着目すると、ワード線ＷＬ０〜ＷＬ４及びＷＬ６〜ＷＬ１１についてのＤＡＣ値が線形補正によって算出される。しかし、必ずしもワード線１本毎にＤＡＣ値を算出する必要はない。例えば、線形補正によって得られるＤＡＣ値も、複数のワード線毎にグループ化してもよい。例えば上記の例の場合、ワード線ＷＬ０及びＷＬ１には、線形補正により得られた同一のＤＡＣ値が適用され、ワード線ＷＬ２及びＷＬ３には、線形補正により得られた別の同一のＤＡＣ値が適用され、ワード線ＷＬ４〜ＷＬ７にはトラッキング動作で得られた交点に対応するＤＡＣ値が適用される、という場合であってもよい。
【０１６０】
すなわち、１つのワード線グループＧＰに着目した場合、履歴テーブルに登録されているインデックス値の数（Ｎ１＝１）と、当該ワード線グループＧＰに属する複数のワード線ＷＬに印加される電圧の種類（大きさ）の数（Ｎ２）を比較すると、第１乃至第３実施形態ではＮ２＝Ｎ１であるのに対し、本実施形態ではＮ２＞Ｎ１となる。
【０１６１】
５．第５実施形態  
次に、第５実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１乃至第４実施形態において、パトロール動作時におけるブロックＢＬＫ、ワード線ＷＬ、ストリングユニットＳＵ、及びページの選択順序に関するものである。以下では第１乃至第４実施形態と異なる点についてのみ説明する。
【０１６２】
５．１  パトロール動作の詳細について  
本実施形態に係るパトロール動作につき、図３３を用いて説明する。図３３は、パトロール動作のフローチャートであり、ブロックＢＬＫが４個、各ブロックＢＬＫのストリングユニットＳＵが４個、各ストリングユニットＳＵのワード線ＷＬが９６本、メモリセルトランジスタＭＴの保持データが３ビット（lowerビット、middleビット、upperビット）の場合を示している。また図中では４つの変数ｉ、ｊ、ｋ、ｌが用いられており、変数ｉはページを示し、ｉ＝１はlowerページ、ｉ＝２はmiddleページ、ｉ＝３はupperページである（すなわち、本実施形態及び後述する第６実施形態で用いられる変数ｉは、第１実施形態で説明したインデックスを示すものではなく、また第２実施形態で説明したシフトリード回数を示すものでもない）。また変数ｊはワード線ＷＬの番号を示し、ｊ＝０〜９５である（ＷＬ０〜ＷＬ９５）。更にｋはストリングユニットＳＵの番号を示し、ｋ＝０〜３である（ＳＵ０〜ＳＵ３）。そしてｌはブロックＢＬＫの番号を示し、ｌ＝０〜３である（ＢＬＫ０〜ＢＬＫ３）。また、図３３におけるコントローラ２００の処理は、基本的にプロセッサ２３０により実行される。
【０１６３】
図示するように、コントローラ２００はまずlowerページ（ｉ＝０）、ワード線ＷＬ０（ｊ＝０）、ストリングユニットＳＵ０（ｋ＝０）、及びブロックＢＬＫ０（ｌ＝０）を選択する（ステップＳ２００〜Ｓ２０３）。そしてコントローラ２００は、選択ワード線ＷＬに対するシフトリードをＮＡＮＤ型フラッシュメモリ１００に命令する（ステップＳ２０４）。
【０１６４】
シフトリードで読み出されたデータにつきＥＣＣ回路２６０がエラー訂正に失敗した場合（ステップＳ２０５、ＮＯ）、コントローラ２００は履歴テーブルにおけるインデックスを更新するか、または第２実施形態の図１６及び図１８を用いて説明したリフレッシュ動作を実行する（ステップＳ２０６）。
【０１６５】
ステップＳ２０５でＥＣＣ回路２６０がエラー訂正に成功した場合（ステップＳ２０５、ＹＥＳ）、またはステップＳ２０６の後、ステップＳ２０４におけるシフトリード対象が最終ブロックＢＬＫ（ｌ＝３、すなわちＢＬＫ３）であったか否かを判断し（ステップＳ２０７）、最終ブロックＢＬＫ３でなかった場合には（ステップＳ２０７、ＮＯ）、次のブロックＢＬＫを選択して（ｌ＝ｌ＋１、ステップＳ２０８）、ステップＳ２０４に戻る。すなわち、読み出し対象ページ、選択ワード線、及び選択ストリングユニットＳＵはそのままに、ブロックＢＬＫ０からＢＬＫ１、ＢＬＫ２、及びＢＬＫ３に対して、順次シフトリードを繰り返す（ステップＳ２１５）。
【０１６６】
シフトリード対象が最終ブロックＢＬＫ３であった場合には（ステップＳ２０７、ＹＥＳ）、コントローラ２００はシフトリード対象が最終ストリングユニットＳＵ（ｋ＝３、すなわちＳＵ３）であったか否かを判断する（ステップＳ２０９）。そして最終ストリングユニットＳＵ３でなければ（ステップＳ２０９、ＮＯ）、コントローラ２００は次のストリングユニットＳＵを選択して（ｋ＝ｋ＋１、ステップＳ２１０）、ステップＳ２０３に戻る。すなわち、読み出し対象ページ及び選択ワード線はそのままに、選択ストリングユニットＳＵをインクリメントして、ブロックＢＬＫ０からＢＬＫ１、ＢＬＫ２、及びＢＬＫ３につき、順次シフトリードを繰り返す（ステップＳ２１５）。
【０１６７】
シフトリード対象が最終ストリングユニットＳＵ３であった場合には（ステップＳ２０９、ＹＥＳ）、コントローラ２００はシフトリード対象が最終ワード線ＷＬ（ｊ＝９５、すなわちＷＬ９５）であったか否かを判断する（ステップＳ２１１）。そして最終ワード線ＷＬ９５でなければ（ステップＳ２１１、ＮＯ）、コントローラ２００は次のワード線ＷＬを選択して（ｊ＝ｊ＋１、ステップＳ２１２）、ステップＳ２０２に戻る。すなわち、読み出し対象ページはそのままに、選択ワード線ＷＬをインクリメントして、ブロックＢＬＫ０からＢＬＫ１、ＢＬＫ２、及びＢＬＫ３のストリングユニットＳＵ０〜ＳＵ３につき、順次シフトリードを繰り返す（ステップＳ２１５）。
【０１６８】
シフトリード対象が最終ワード線ＷＬ９５であった場合には（ステップＳ２１１、ＹＥＳ）、コントローラ２００はシフトリード対象がupperページ（ｉ＝２）であったか否かを判断する（ステップＳ２１３）。そしてupperページでなければ（ステップＳ２１３、ＮＯ）、コントローラ２００は次のページ、すなわちmiddleページ（ｉ＝１）を選択して（ｉ＝ｉ＋１、ステップＳ２１４）、ステップＳ２０１に戻る。すなわち、読み出し対象ページをインクリメントして、ブロックＢＬＫ０からＢＬＫ１、ＢＬＫ２、及びＢＬＫ３のストリングユニットＳＵ０〜ＳＵ３のワード線ＷＬ０〜ＷＬ９５につき、順次シフトリードを繰り返す（ステップＳ２１５）。
【０１６９】
そして、シフトリード対象がupperページ（ｉ＝２）であった場合には（ステップＳ２１３、ＹＥＳ）、再びステップＳ２００に戻る。つまり、選択ブロックＢＬＫをシフトさせながらのシフトリード（ステップＳ２１５）が、ストリングユニットＳＵ０〜ＳＵ３の各々におけるワード線ＷＬ０〜ＷＬ９５につき、lowerページ、middleページ、及びupperページを対象に行われる。従って、最終的には、全てのブロックＢＬＫ０〜ＢＬＫ３における全てのストリングユニットＳＵ０〜ＳＵ３の全てのワード線ＷＬ０〜ＷＬ９５のlowerページ、middleページ、及びupperページに対してシフトリードが実行される。
【０１７０】
５．２  具体例について  
次に、本実施形態に係るページ選択順序の具体例につき、図３４Ａを用いて説明する。図３４Ａは、説明の簡単化のため、４つのブロックＢＬＫ０〜ＢＬＫ３の各々が４つのストリングユニットＳＵ０〜ＳＵ３を含み、また２つのワード線グループＧＰ０、ＧＰ２を含み、各ワード線グループＧＰがそれぞれ２本のワード線の組（ＷＬ０及びＷＬ１の組と、ＷＬ２及びＷＬ３の組）を含む場合について示している。そして図３４Ａは、ブロックＢＬＫ０〜ＢＬＫ３につき、各ストリングユニットＳＵ０〜ＳＵ３の各ワード線ＷＬ０〜ＷＬ３に割り当てられた３ページが、どのような順番でシフトリード対象とされるかを示している。
【０１７１】
図３４Ａでは、ブロックＢＬＫ０を起点として、矢印の順でブロックＢＬＫが選択される。そして、図中に記載した“１”〜“４８”の数字が、選択される順番を示している。すなわち、あるブロックＢＬＫで１回のシフトリードが行われると、次のブロックＢＬＫでシフトリードが行われ、以後同様である。理解の助けのため、図３４Ａをフローチャートの形で示したのが図３４Ｂである。図３４Ｂのステップ１７０〜１７３の各々が、図３３で説明したステップＳ２０４に相当する。
【０１７２】
図示するように、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７０−１）。次にブロックＢＬＫ１、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７１−１）。引き続きブロックＢＬＫ２、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７２−１）。そしてブロックＢＬＫ３、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７３−１）。このように、選択ワード線ＷＬ及び選択ストリングユニットＳＵの番号、並びに選択ページが変わることなく、選択ブロックＢＬＫの番号が“０”から“３”までインクリメントされる。この４ステップを第１のループＬＰ１と呼ぶ。この第１のループＬＰ１は、図３３で説明したステップＳ２１５に相当する。そして、第１のループＬＰ１に含まれるステップＳ１７０〜Ｓ１７３のsuffixが、図３４Ａの各ブロックＢＬＫにおける“１”〜“４８”までの数字に相当する。
【０１７３】
よって、ステップＳ１７０−１〜Ｓ１７３−１の次には、ストリングユニットＳＵの番号がインクリメントされて、第１のループＬＰ１が繰り返される。すなわち、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７０−２）。次にブロックＢＬＫ１、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７１−２）。引き続きブロックＢＬＫ２、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７２−２）。そしてブロックＢＬＫ３、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７３−２）。
【０１７４】
その後も同様であり、５回目、９回目、及び１３回目のループＬＰ１では、選択ワード線ＷＬの番号がインクリメントされる。すなわち、５回目のループＬＰ１では、選択ワード線がＷＬ０からＷＬ１に変更される。９回目のループＬＰ１では、選択ワード線がＷＬ１からＷＬ２に変更される。そして１３回目のループＬＰ１では、選択ワード線がＷＬ２からＷＬ３に変更される。
【０１７５】
また、１７回目及び３３回目のループＬＰ１では、選択ページが変更される。すなわち、１７回目のループＬＰ１では、選択ページがlowerページからmiddleページに変更される。３３回目のループＬＰ１では、選択ページがmiddleページからupperページに変更される。
【０１７６】
そして、４８回目のループＬＰ１では、まずブロックＢＬＫ０、最終ワード線ＷＬ３、upperページ、及び最終ストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７０−４８）。次にブロックＢＬＫ１、ワード線ＷＬ３、upperページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７１−４８）。引き続きブロックＢＬＫ２、ワード線ＷＬ３、upperページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７２−４８）。そしてブロックＢＬＫ３、ワード線ＷＬ３、upperページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７３−４８）。
【０１７７】
以上のように、第１のループＬＰ１が４８回、繰り返される。この４８回のループＬＰ１の集合を、第２のループＬＰ２と呼ぶ。この第２のループＬＰ２が、図３３で説明したステップＳ２００〜Ｓ２１５に相当する。そしてコントローラ２００は、特に他の処理を行う必要がない限り、第２のループＬＰ２を繰り返す。また、第１のループＬＰ１の各々は、期間Ｔ１以内に完了する。つまり、期間Ｔ１の間に、３つのブロックＢＬＫ０〜ＢＬＫ３へのシフトリードアクセスが実行される。もちろん、図３３で説明したステップＳ２０６のインデックス更新またはリフレッシュ動作が行われる場合であっても、１回のステップＳ２１５は期間Ｔ１の間に完了する。更に、第２のループＬＰ２の各々は期間Ｔ２（＞Ｔ１）以内に完了する。つまり、期間Ｔ２の間に、全てのブロックＢＬＫ０〜ＢＬＫ３の全てのストリングユニットＳＵ０〜ＳＵ３の全てのワード線ＷＬ０〜ＷＬ９５のlowerページ、middleページ、及びupperページへのシフトリードアクセスが実行される。
【０１７８】
次に、第１のループＬＰ１実行時におけるメモリセルアレイ１１０の様子について説明する。図３４Ｃは、１回目の第１のループＬＰ１実行時におけるメモリセルアレイ１１０の回路図である。図中において太線で囲った領域が選択ブロックＢＬＫであり、選択ブロックＢＬＫ内において斜線で示した領域が選択ストリングユニットＳＵであり、太線で示したワード線が選択ワード線ＷＬである。
【０１７９】
まず、図３４Ｃの時刻ｔ１において、ステップＳ１７０−１が実行される。すなわち、ブロックＢＬＫ０のワード線ＷＬ０が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ０のワード線ＷＬ０には、読み出し電圧ＶＣＧＲＶとして、読み出し動作ＡＲ及びＥＲを実行するための電圧が印加され、その他のワード線ＷＬ１〜ＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０には電圧ＶＳＧが印加され、ＳＧＤ１〜ＳＧＤ３には例えば０Ｖが印加される。また、非選択ブロックＢＬＫ１〜ＢＬＫ３の全ワード線ＷＬ及び全セレクトゲート線ＳＧＤにも、例えば０Ｖが印加される。
【０１８０】
ブロックＢＬＫ０におけるストリングユニットＳＵ０のワード線ＷＬ０からlowerページデータが読み出されると、必要に応じてインデックスの更新またはリフレッシュが実行され、次の時刻ｔ２においてステップＳ１７１−１が実行される。すなわち、ブロックＢＬＫ１のワード線ＷＬ０が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ１のワード線ＷＬ０には、読み出し電圧ＶＣＧＲＶとして、読み出し動作ＡＲ及びＥＲを実行するための電圧が印加され、その他のワード線ＷＬ１〜ＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０には電圧ＶＳＧが印加され、ＳＧＤ１〜ＳＧＤ３には例えば０Ｖが印加される。また、非選択ブロックＢＬＫ０、ＢＬＫ２、及びＢＬＫ３の全ワード線ＷＬ及び全セレクトゲート線ＳＧＤにも、例えば０Ｖが印加される。
【０１８１】
ブロックＢＬＫ１におけるストリングユニットＳＵ０のワード線ＷＬ０からlowerページデータが読み出されると、必要に応じてインデックスの更新またはリフレッシュが実行され、次の時刻ｔ３においてステップＳ１７２−１が実行される。すなわち、ブロックＢＬＫ２のワード線ＷＬ０が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ２のワード線ＷＬ０には、読み出し電圧ＶＣＧＲＶとして、読み出し動作ＡＲ及びＥＲを実行するための電圧が印加され、その他のワード線ＷＬ１〜ＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０には電圧ＶＳＧが印加され、ＳＧＤ１〜ＳＧＤ３には例えば０Ｖが印加される。また、非選択ブロックＢＬＫ０、ＢＬＫ１、及びＢＬＫ３の全ワード線ＷＬ及び全セレクトゲート線ＳＧＤにも、例えば０Ｖが印加される。
【０１８２】
ブロックＢＬＫ２におけるストリングユニットＳＵ０のワード線ＷＬ０からlowerページデータが読み出されると、必要に応じてインデックスの更新またはリフレッシュが実行され、次の時刻ｔ４においてステップＳ１７３−１が実行される。すなわち、ブロックＢＬＫ３のワード線ＷＬ０が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ３のワード線ＷＬ０には、読み出し電圧ＶＣＧＲＶとして、読み出し動作ＡＲ及びＥＲを実行するための電圧が印加され、その他のワード線ＷＬ１〜ＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０には電圧ＶＳＧが印加され、ＳＧＤ１〜ＳＧＤ３には例えば０Ｖが印加される。また、非選択ブロックＢＬＫ０〜ＢＬＫ２の全ワード線ＷＬ及び全セレクトゲート線ＳＧＤにも、例えば０Ｖが印加される。
【０１８３】
以上の時刻ｔ１〜ｔ４の期間において、ステップＳ１７０−１〜Ｓ１７３−１、すなわち１回目の第１のループＬＰ１が完了する。引き続き、２回目の第１のループＬＰ１（ステップＳ１７０−２〜１７３−２）が、時刻ｔ５〜ｔ８の期間に実行される。この様子を図３４Ｄに示す。
【０１８４】
図示するように、図３４Ｃと異なる点は、各時刻ｔ５〜ｔ８においてストリングユニットＳＵ１が選択される点である。すなわち、セレクトゲート線ＳＧＤ１が選択される。その他は図３４Ｃと同じである。
【０１８５】
例えば時刻ｔ５では、ステップＳ１７０−２が実行される。すなわち、ブロックＢＬＫ０のワード線ＷＬ０が選択されて、lowerページに対するシフトリードが実行される。この際、ストリングユニットＳＵ１を選択するために、セレクトゲート線ＳＧＤ１には電圧ＶＳＧが印加される。
【０１８６】
次に時刻ｔ６、ｔ７、及びｔ８において、ステップＳ１７１−２、１７２−２、及び１７３−２がそれぞれ実行される。すなわち、ブロックＢＬＫ１〜ＢＬＫ３のワード線ＷＬ０が選択されて、lowerページに対するシフトリードが実行される。この時刻ｔ６〜ｔ８においてもセレクトゲート線ＳＧＤ１には電圧ＶＳＧが印加されて、ストリングユニットＳＵ１が選択される。
【０１８７】
以上のようにして、２回目の第１のループＬＰ１が完了する。３回目以降の第１のループＬＰ１も同様である。
【０１８８】
５．３  本実施形態に係る効果  
本実施形態によれば、メモリシステム１の動作信頼性を更に向上できる。本効果につき、以下説明する。
【０１８９】
まず、本実施形態によれば、選択ブロックＢＬＫをシフトさせながらパトロールリードが実行される。本例の場合、メモリセルアレイ１１０は４つのブロックＢＬＫ０〜ＢＬＫ３を含み、この４つのブロックＢＬＫ０〜ＢＬＫ３に順次アクセスされる。すなわち、最短の順序で、４つのブロックＢＬＫ０〜ＢＬＫ３にアクセスされる。そして、この４つのブロックＢＬＫ０〜ＢＬＫ３へのアクセスに要する総時間は、最長でも期間Ｔ１である。すなわち、メモリセルアレイ１１０に含まれる全てのブロックＢＬＫ０〜ＢＬＫ３へのアクセスが、最長でもＴ１の周期で実行される。これにより、各ブロックＢＬＫにおけるデータの読み出し信頼性を向上できる。
【０１９０】
この理由は次のとおりである。すなわち、図３を用いて説明したような三次元積層型のＮＡＮＤ型フラッシュメモリであると、あるワード線ＷＬからデータを読み出した際、読み出しアクセス対象とされたブロックＢＬＫ内のメモリセルトランジスタＭＴがカップリングの影響を受ける場合がある。従って、データの読み出し直後は、メモリセルアレイ１１０内において、カップリングの影響を受けたブロックＢＬＫと、影響を受けていないブロックＢＬＫとが混在する。この点、本実施形態によれば、短い周期で全ブロックＢＬＫ０〜ＢＬＫ３へのパトロールリードを繰り返す。つまり、図３４Ｃ及び図３４Ｄを用いて説明したように、選択ブロックＢＬＫにおいては、選択ストリングユニットＳＵであるか非選択ストリングユニットＳＵであるかにかかわらず、選択ワード線ＷＬには電圧ＶＣＧＲＶが印加され、非選択ワード線ＷＬには電圧ＶＲＥＡＤが印加される。従って、カップリングの影響が消失する前に、全ブロックＢＬＫに対してパトロールリードが実行される。そのため、全ブロックＢＬＫにおいて、メモリセルトランジスタＭＴは常にカップリングの影響を受けた状態にある。その結果、コントローラ２００は、カップリングの影響が存在することを前提に読み出し条件を決定すればよく、カップリングの影響が消失した場合の条件を考慮する必要がない。よって、適切な条件下でのデータの読み出しが可能となり、読み出し動作信頼性を向上できる。
【０１９１】
また本実施形態によれば、上記周期Ｔ１のパトロールリードを４８回繰り返すことで、全ブロックＢＬＫにおける全ストリングユニットＳＵの全ワード線ＷＬに対応する全ページにアクセスできる。そして、この期間は最大で期間Ｔ２である。パトロールリードの役割は、上記説明したカップリングの影響を低減するだけでなく、例えばメモリセルトランジスタＭＴの物理的不良の発見にもある。そのためには、全ブロックＢＬＫにおける全ストリングユニットＳＵの全ワード線ＷＬに対応する全ページにアクセスして、どの領域がデータを正しく読むことができ、どの領域が正しく読むことができないかを知る必要がある。そこで本実施形態では、最短の４８回のパトロールリードにより、全ブロックＢＬＫにおける全ストリングユニットＳＵの全ワード線ＷＬに対応する全ページへのアクセスを完了する。これにより、例えば突発的な物理的不良が発生した場合であっても、コントローラ２００は早急に対応でき、読み出し動作信頼性を向上できる。なお、上記説明したカップリングの影響は一定期間が経過すれば消失してしまうため、非常に短い周期Ｔ１でブロックＢＬＫへのアクセスを繰り返す必要があるが、これに比べれば物理的不良は頻繁に発生するものではないため、比較的長い周期Ｔ２で各ページへアクセスすればよい。
【０１９２】
以上のように、本実施形態に係るパトロールリード順序によれば、各ブロックＢＬＫにおいて短い周期でのアクセスを必要とするカップリング対策と、各ページにおいて比較的長い周期のアクセスでよい物理的不良検知とを両立することができる。
【０１９３】
６．第６実施形態  
次に、第６実施形態に係るメモリシステムについて説明する。本実施形態は、上記第５実施形態で説明したページ選択順序のバリエーションに関するものである。以下では、第５実施形態と異なる点についてのみ説明する。
【０１９４】
６．１  第１の例  
まず、本実施形態に係る第１の例について説明する。図３５はパトロール動作のフローチャートであり、第５実施形態で説明した図３３に対応する。すなわち図３５は図３３と同様に、ブロックＢＬＫが４個、各ブロックＢＬＫのストリングユニットＳＵが４個、各ストリングユニットＳＵのワード線ＷＬが９６本、メモリセルトランジスタＭＴの保持データが３ビットの場合を示している。また図中で使用される４つの変数ｉ、ｊ、ｋ、ｌの意味も第５実施形態と同様である。本例は、上記第５実施形態において、選択ブロックＢＬＫをシフトする度に、選択ワード線ＷＬもシフトするものである。
【０１９５】
すなわち図３５に示すように、ステップＳ２００の後、コントローラ２００は、第１のループＬＰ１を実行する際にあたっての先頭ワード線ＷＬを決定する。この先頭ワード線ＷＬの番号を示す変数が、図３５におけるｎＷＬである。まずは、ｎＷＬ＝“０”とされ、ワード線ＷＬ０が選択される（ステップＳ２２０）。その後、ステップＳ２０２でストリングユニットＳＵ０が選択され（ｋ＝“０”）、引き続きブロックＢＬＫ０が選択されると共に（ｌ＝“０”）、ワード線ＷＬｊ（但しｊ＝ｎＷＬ）が選択される（ステップＳ２２１）。
【０１９６】
そして、第１のループＬＰ１が実行される（ステップＳ２１５）。本例に係る第１のループＬＰ１が第５実施形態と異なる点は、ステップＳ２０８で次のブロックＢＬＫ（ｌ＋１）が選択されるだけでなく、更に次のワード線ＷＬが選択される点である（ｊ＝ｊ＋１、ステップＳ２１２）。このように、ブロックＢＬＫ及びワード線ＷＬがシフトされて、再度シフトリードが実行される（ステップＳ２０４）。
【０１９７】
そして、シフトリード対象が最終ストリングユニットＳＵ３でなければ、第５実施形態と同様に次のストリングユニットＳＵが選択されて（ステップＳ２１０）、ステップＳ２２１に戻る。
【０１９８】
シフトリード対象が最終ストリングユニットＳＵ３であった場合には（ステップＳ２０９、ＹＥＳ）、コントローラ２００は、直前の第１のループＬＰ１における先頭ワード線ＷＬが最終ワード線（ｎＷＬ＝“９５”、すなわちＷＬ９５）であったか否かを判断する（ステップＳ２２２）。そして最終ワード線ＷＬ９５でなければ（ステップＳ２２２、ＮＯ）、コントローラ２００は先頭ワード線として次のワード線ＷＬを選択して（ｎＷＬ＝ｎＷＬ＋１、ステップＳ２２３）、ステップＳ２０２に戻る。このように、第１のループＬＰ１の各々において先頭ワード線ＷＬがシフトされるため、ステップＳ２２２では変数ｊが最終ワード線ＷＬの番号（ｊ＝“９５”）を超える場合がある。この場合には、変数ｊは先頭ワード線を示す“０”にリセットされて、“０”から再びインクリメントされる。
【０１９９】
そして、ループＬＰ１における先頭ワード線がＷＬ９５であった際には（ステップＳ２２２、ＹＥＳ）、ステップＳ２１３に進む。
【０２００】
次に、本例に係る具体例につき、図３６Ａを用いて説明する。図３６Ａは第５実施形態で説明した図３４Ａに対応し、図３４Ａと同じく４つのブロックＢＬＫ０〜ＢＬＫ３の各々が４つのストリングユニットＳＵ０〜ＳＵ３を含み、また２つのワード線グループＧＰ０及びＧＰ２を含み、各ワード線グループＧＰが２本のワード線の組（ＷＬ０及びＷＬ１の組と、ＷＬ２及びＷＬ３の組）を含む場合について示している。また、図３６Ｂは図３６Ａに対応するフローチャートであり、図３６Ｂの各ステップＳ１７０〜Ｓ１７３に付したsuffixは、図３４Ａ及び図３４Ｂの順序に対応する。すなわち、例えばステップＳ１７１−５は、第５実施形態では５回目の第１のループＬＰ１で実行されるステップＳ１７１であることを意味する。これは、図３６Ｂにおける参照符号を図３４Ｂにおける参照符号と比較することで、本実施形態と第５実施形態との差異を明確にするためである。
【０２０１】
図３６Ａ及び図３６Ｂに示すように、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７０−１）。次に選択ブロック及び選択ワード線がそれぞれブロックＢＬＫ１及びワード線ＷＬ１にシフトされ、またlowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７１−５）。引き続き、選択ブロック及び選択ワード線がそれぞれブロックＢＬＫ２及びワード線ＷＬ２にシフトされ、またlowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７２−９）。そしてブロックＢＬＫ３、ワード線ＷＬ３、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７３−１３）。
【０２０２】
このように、選択ストリングユニットＳＵの番号及び選択ページが変わることなく、選択ブロックＢＬＫの番号が“０”から“３”までインクリメントされ、また選択ワード線ＷＬが“０”から“３”にインクリメントされる。そして、この４ステップが最初の第１のループＬＰ１を構成する。すなわち、この最初の第１のループＬＰ１は、第５実施形態で説明した図３４ＢにおけるステップＳ１７０−１、Ｓ１７１−５、Ｓ１７２−９、及びＳ１７３−１３を含む。つまり、図３６Ｂに記載されているステップＳ１７０〜Ｓ１７３のsuffixが、図３４Ａの各ブロックＢＬＫにおける“１”〜“４８”までの数字に相当する。
【０２０３】
ステップＳ１７０−１、Ｓ１７１−５、Ｓ１７２−９、及びＳ１７３−１３の次には、ストリングユニットＳＵの番号がインクリメントされて、第１のループＬＰ１が繰り返される。すなわち、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７０−２）。次にブロックＢＬＫ１、ワード線ＷＬ１、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７１−６）。引き続きブロックＢＬＫ２、ワード線ＷＬ２、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７２−１０）。そしてブロックＢＬＫ３、ワード線ＷＬ３、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７３−１４）。
【０２０４】
その後も同様であり、５回目、９回目、及び１３回目のループＬＰ１では、第１のループＬＰ１における先頭ワード線ＷＬの番号がインクリメントされる。すなわち、５回目のループＬＰ１では、先頭ワード線がＷＬ０からＷＬ１に変更される。９回目のループＬＰ１では、先頭ワード線がＷＬ１からＷＬ２に変更される。そして１３回目のループＬＰ１では、先頭ワード線がＷＬ２からＷＬ３に変更される。
【０２０５】
また、１７回目及び３３回目のループＬＰ１では、選択ページが変更される。すなわち、１７回目のループＬＰ１では、選択ページがlowerページからmiddleページに変更される。３３回目のループＬＰ１では、選択ページがmiddleページからupperページに変更される。この点は、第５実施形態と同様である。
【０２０６】
そして、４８回目のループＬＰ１では、まずブロックＢＬＫ０、最終ワード線ＷＬ３、upperページ、及び最終ストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７０−４８）。次にブロックＢＬＫ１、ワード線ＷＬ０、upperページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７１−３６）。引き続きブロックＢＬＫ２、ワード線ＷＬ１、upperページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７２−４０）。そしてブロックＢＬＫ３、ワード線ＷＬ２、upperページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７３−４４）。
【０２０７】
以上のように、第１のループＬＰ１が４８回、繰り返されることにより、第２のループＬＰ２が実行される。
【０２０８】
次に、本例に係る第１のループＬＰ１実行時におけるメモリセルアレイ１１０の様子について説明する。図３６Ｃは、１回目の第１のループＬＰ１実行時におけるメモリセルアレイ１１０の回路図である。
【０２０９】
まず、図３６Ｃの時刻ｔ１において、ステップＳ１７０−１が実行される。すなわち、ブロックＢＬＫ０のワード線ＷＬ０が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ０のワード線ＷＬ０に読み出し電圧ＶＣＧＲＶが印加され、その他のワード線ＷＬ１〜ＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０には電圧ＶＳＧが印加される。
【０２１０】
ブロックＢＬＫ０におけるストリングユニットＳＵ０のワード線ＷＬ０からlowerページデータが読み出されると、必要に応じてインデックスの更新またはリフレッシュが実行され、次の時刻ｔ２においてステップＳ１７１−５が実行される。すなわち、ブロックＢＬＫ１のワード線ＷＬ１が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ１のワード線ＷＬ１には、読み出し電圧ＶＣＧＲＶが印加され、その他のワード線ＷＬ０、ＷＬ２、及びＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０には電圧ＶＳＧが印加される。
【０２１１】
ブロックＢＬＫ１におけるストリングユニットＳＵ０のワード線ＷＬ１からlowerページデータが読み出されると、必要に応じてインデックスの更新またはリフレッシュが実行され、次の時刻ｔ３においてステップＳ１７２−９が実行される。すなわち、ブロックＢＬＫ２のワード線ＷＬ２が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ２のワード線ＷＬ２には読み出し電圧ＶＣＧＲＶが印加され、その他のワード線ＷＬ０、ＷＬ１、及びＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０は電圧ＶＳＧが印加される。
【０２１２】
ブロックＢＬＫ２におけるストリングユニットＳＵ０のワード線ＷＬ２からlowerページデータが読み出されると、必要に応じてインデックスの更新またはリフレッシュが実行され、次の時刻ｔ４においてステップＳ１７３−１３が実行される。すなわち、ブロックＢＬＫ３のワード線ＷＬ３が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ３のワード線ＷＬ３には、読み出し電圧ＶＣＧＲＶが印加され、その他のワード線ＷＬ０〜ＷＬ２には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ０を選択するために、セレクトゲート線ＳＧＤ０には電圧ＶＳＧが印加される。
【０２１３】
以上の時刻ｔ１〜ｔ４の期間において、ステップＳ１７０−１、Ｓ１７１−５、Ｓ１７２−９、及び１７３−１３、すなわち１回目の第１のループＬＰ１が完了する。引き続き、２回目の第１のループＬＰ１（ステップＳ１７０−２、Ｓ１７１−６、Ｓ１７２−１０、及び１７３−１４）が、時刻ｔ５〜ｔ８の期間に実行される。この様子を図３６Ｄに示す。
【０２１４】
図示するように、図３６Ｃと異なる点は、各時刻ｔ５〜ｔ８においてストリングユニットＳＵ１が選択される点である。すなわち、セレクトゲート線ＳＧＤ１が選択される。その他は図３６Ｃと同じである。
【０２１５】
以下、同様にして、３回目〜４８回目の第１のループＬＰ１が繰り返される。
【０２１６】
６．２  第２の例  
次に、本実施形態に係る第２の例について説明する。図３７はパトロール動作のフローチャートであり、第１の例で説明した図３５に対応する。本例が第１の例と異なる点は、いずれかの第１のループＬＰ１において、いずれかのワード線ＷＬを対象にトラッキング動作を行う点である。
【０２１７】
図３７に示すように、ステップＳ２２１の後、コントローラ２００は、履歴学習を行うか否かを判断する（ステップＳ２３０）。履歴学習とは、読み出し対象ページに対応する閾値分布の交点をトラッキング動作により求め、その結果に基づいて履歴テーブルを更新することである。履歴学習を行わなければ（ステップＳ２３０、ＮＯ）、コントローラ２００はシフトリード命令を発行する（ステップＳ２３２）。この場合の動作は図３５と全く同じである。
【０２１８】
コントローラ２００が履歴学習を行う（ステップＳ２３０、ＹＥＳ）、と決定すると、コントローラ２００はＮＡＮＤ型フラッシュメモリ１００に対してトラッキング動作を命令する（ステップＳ２３１）。トラッキング動作の詳細は第１実施形態で説明した通りである。そして、求められた交点に対応する電圧を用いてシフトリードを行う。その後はステップＳ２０５以降の動作が行われる。
【０２１９】
図３８は本例に係る具体例であり、第１の例で説明した図３６Ａに対応する。図３６Ａと異なる点は、図３８において、斜線を付したパトロールリードにおいてトラッキング動作が行われる点である。
【０２２０】
図３８に示すように、本例におけるパトロールリード時におけるページの選択順序は第１の例と同じである。但し、下記においてトラッキング動作が行われる。  
・最初の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ０、lowerページ  
・最初の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ２、lowerページ  
・５回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ２、lowerページ  
・５回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ０、lowerページ  
・９回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ２、lowerページ  
・９回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ０、lowerページ  
・１３回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ０、lowerページ  
・１３回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ２、lowerページ  
・１７回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ０、middleページ  
・１７回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ２、middleページ  
・２１回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ２、middleページ  
・２１回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ０、middleページ  
・２５回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ２、middleページ  
・２５回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ０、middleページ  
・２９回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ０、middleページ  
・２９回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ２、middleページ  
・３３回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ０、upperページ  
・３３回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ２、upperページ  
・３７回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ２、upperページ  
・３７回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ０、upperページ  
・４１回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ２、upperページ  
・４１回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ０、upperページ  
・４５回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ０、upperページ  
・４５回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ２、upperページ  
本例によれば、トラッキング動作を定期的に行うことで、履歴テーブルの精度を更に向上できる。
【０２２１】
６．３  第３の例  
次に、本実施形態に係る第３の例について説明する。本例は、上記第１の例と第２の例を組み合わせ、更に第１のループＬＰ１内においてストリングユニットＳＵもシフトさせるものである。以下では、上記第１及び第２の例と異なる点について説明する。図３９は第３の例に係るパトロール動作のフローチャートである。
【０２２２】
図示するように、第２の例で説明した図３７において、ステップＳ２２０の後、コントローラ２００は、第１のループＬＰ１を実行する際にあたっての先頭ストリングユニットＳＵを決定する（ステップＳ２４０）。この先頭ストリングユニットＳＵの番号を示す変数が、図３９におけるｎＳＵである。まずは、ｎＳＵ＝“０”とされ、ストリングユニットＳＵ０が選択される。そして、ブロックＢＬＫ０が選択されると共に（ｌ＝“０”）、ワード線ＷＬｊ（但しｊ＝ｎＷＬ）及びストリングユニットＳＵｋ（ｋ＝ｎＳＵ）が選択される（ステップＳ２４１）。
【０２２３】
そして、第１のループＬＰ１が実行される（ステップＳ２１５）。本例に係る第１のループＬＰ１が図３７で説明した第２の例と異なる点は、ステップＳ２０８で次のブロックＢＬＫ（ｌ＋１）が選択され且つステップＳ２１２で次のワード線ＷＬが選択されるだけでなく（ｊ＝ｊ＋１）、更に次のストリングユニットＳＵが選択される点である（ｋ＝ｋ＋１、ステップＳ２１０）。このように、ブロックＢＬＫ、ワード線ＷＬ、及びストリングユニットＳＵがシフトされて、再度シフトリードまたはトラッキング動作が実行される（ステップＳ２３２またはＳ２３１）。
【０２２４】
引き続きコントローラ２００は、直前の第１のループＬＰ１における先頭ストリングユニットＳＵが最終ストリングユニットＳＵ（ｎｓｕ＝“３”、すなわちＳＵ３）であったか否かを判断する（ステップＳ２４２）。そして最終ストリングユニットＳＵ３でなければ（ステップＳ２４２、ＮＯ）、コントローラ２００は次のストリングユニットＳＵを先頭ストリングユニットＳＵに選択して（ｎｓｕ＝ｎｓｕ＋１、ステップＳ２４３）、ステップＳ２４１に戻る。このように、第１のループＬＰ１の各々において先頭ストリングユニットＳＵもシフトされるため、ステップＳ２１０では変数ｋが最終ストリングユニットＳＵの番号（ｋ＝“３”）を超える場合がある。この場合には、変数ｋは先頭ストリングユニットを示す“０”にリセットされて、“０”から再びインクリメントされる。
【０２２５】
その後は、第２の例において図３９で説明したステップＳ２２２以降の処理が行われる。
【０２２６】
図４０Ａは本例に係る具体例であり、図３８と同様、図４０Ａにおいて斜線を付したパトロールリードにおいてトラッキング動作が行われる。また、図４０Ｂは図４０Ａに対応するフローチャートであり、図４０Ｂの太線の枠で示したステップにおいてトラッキング動作が行われる。
【０２２７】
図４０Ａ及び図４０Ｂに示すように、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７０−１）。この際、トラッキング動作が行われ、lowerページに関する閾値電圧の交点、すなわち“Ｅｒ”状態の閾値分布と“Ａ”状態の閾値分布の交点、及び“Ｄ”状態の閾値分布と“Ｅ”状態の閾値分布の交点に対応する電圧が求められる。次に選択ブロック、選択ワード線、及び選択ストリングユニットがそれぞれブロックＢＬＫ１、ワード線ＷＬ１、及びＳＵ１にシフトされ、lowerページに対するシフトリードが実行される（ステップＳ１７１−６）。引き続き、選択ブロック、選択ワード線、及び選択ストリングユニットがそれぞれブロックＢＬＫ２、ワード線ＷＬ２、及びストリングユニットＳＵ２にシフトされ、lowerページに対するシフトリードが実行される（ステップＳ１７２−１１）。そしてブロックＢＬＫ３、ワード線ＷＬ３、lowerページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７３−１６）。
【０２２８】
このように選択ページはそのままに、選択ブロックＢＬＫの番号が“０”から“３”までインクリメントされ、また選択ワード線ＷＬが“０”から“３”にインクリメントされ、更に、選択ストリングユニットＳＵが“０”から“３”にインクリメントされる。そして、この４ステップが最初の第１のループＬＰ１を構成する。すなわち、この最初の第１のループＬＰ１は、第５実施形態で説明した図３４ＢにおけるステップＳ１７０−１、Ｓ１７１−６、Ｓ１７２−１１、及びＳ１７３−１６を含む。
【０２２９】
次に、先頭ストリングユニットＳＵの番号が“０”から“１”にインクリメントされて、第１のループＬＰ１が繰り返される。すなわち、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７０−２）。次にブロックＢＬＫ１、ワード線ＷＬ１、lowerページ、及びストリングユニットＳＵ２が選択されて、シフトリードが実行される（ステップＳ１７１−７）。引き続きブロックＢＬＫ２、ワード線ＷＬ２、lowerページ、及びストリングユニットＳＵ３が選択されて、シフトリードが実行される（ステップＳ１７２−１２）。そしてブロックＢＬＫ３、ワード線ＷＬ３、lowerページ、及びストリングユニットＳＵ０が選択されて、シフトリードが実行される（ステップＳ１７３−１３）。
【０２３０】
その後も同様であり、３回目及び４回目の第１のループＬＰ１では、先頭ストリングユニットＳＵの番号がそれぞれ“２”及び“３”にインクリメントされる。また、５回目、９回目、及び１３回目の第１のループＬＰ１では、先頭ワード線ＷＬの番号がそれぞれ“１”〜“３”にインクリメントされる。すなわち、５回目のループＬＰ１では、先頭ワード線がＷＬ０からＷＬ１に変更される。９回目のループＬＰ１では、先頭ワード線がＷＬ１からＷＬ２に変更される。そして１３回目のループＬＰ１では、先頭ワード線がＷＬ２からＷＬ３に変更される。そして、下記においてトラッキング動作が行われる。  
・最初の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ０、lowerページ  
・３回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ２、lowerページ  
・６回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ０、lowerページ  
・８回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ２、lowerページ  
・９回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ２、lowerページ  
・１１回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ０、lowerページ  
・１４回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ２、lowerページ  
・１６回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ０、lowerページ  
・１７回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ０、middleページ  
・１９回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ２、middleページ  
・２２回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ０、middleページ  
・２４回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ２、middleページ  
・２５回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ２、middleページ  
・２７回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ０、middleページ  
・３０回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ２、middleページ  
・３２回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ０、middleページ  
・３３回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ０、upperページ  
・３５回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ２、upperページ  
・３８回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ０、upperページ  
・４０回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ２、upperページ  
・４１回目の第１のループＬＰ１：ＢＬＫ０、ＳＵ０、ＷＬ２、upperページ  
・４３回目の第１のループＬＰ１：ＢＬＫ２、ＳＵ０、ＷＬ０、upperページ  
・４６回目の第１のループＬＰ１：ＢＬＫ３、ＳＵ０、ＷＬ２、upperページ  
・４８回目の第１のループＬＰ１：ＢＬＫ１、ＳＵ０、ＷＬ０、upperページ  
以上のように、第１のループＬＰ１が４８回、繰り返されることにより、第２のループＬＰ２が実行される。
【０２３１】
次に、本例に係る第１のループＬＰ１実行時におけるメモリセルアレイ１１０の様子について説明する。図４０Ｃは、１回目の第１のループＬＰ１実行時におけるメモリセルアレイ１１０の回路図である。
【０２３２】
まず、図４０Ｃの時刻ｔ１において、ステップＳ１７０−１が実行される。すなわち、ブロックＢＬＫ０のワード線ＷＬ０が選択されて、lowerページに対するトラッキング動作が実行される。そして、トラッキング動作により得られたＤＡＣ値を用いてシフトリードが実行される。
【０２３３】
次の時刻ｔ２では、ステップＳ１７１−６が実行される。すなわち、ブロックＢＬＫ１のワード線ＷＬ１が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ１のワード線ＷＬ１には、読み出し電圧ＶＣＧＲＶが印加され、その他のワード線ＷＬ０、ＷＬ２、及びＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ１を選択するために、セレクトゲート線ＳＧＤ１には電圧ＶＳＧが印加される。
【０２３４】
次の時刻ｔ３では、ステップＳ１７２−１１が実行される。すなわち、ブロックＢＬＫ２のワード線ＷＬ２が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ２のワード線ＷＬ２には読み出し電圧ＶＣＧＲＶが印加され、その他のワード線ＷＬ０、ＷＬ１、及びＷＬ３には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ２を選択するために、セレクトゲート線ＳＧＤ２には電圧ＶＳＧが印加される。
【０２３５】
次の時刻ｔ４では、ステップＳ１７３−１６が実行される。すなわち、ブロックＢＬＫ３のワード線ＷＬ３が選択されて、lowerページに対するシフトリードが実行される。従って、ブロックＢＬＫ３のワード線ＷＬ３には、読み出し電圧ＶＣＧＲＶが印加され、その他のワード線ＷＬ０〜ＷＬ２には電圧ＶＲＥＡＤが印加される。また、ストリングユニットＳＵ３を選択するために、セレクトゲート線ＳＧＤ３には電圧ＶＳＧが印加される。
【０２３６】
以上の時刻ｔ１〜ｔ４の期間において、ステップＳ１７０−１、Ｓ１７１−６、Ｓ１７２−１１、及び１７３−１６、すなわち１回目の第１のループＬＰ１が完了する。引き続き、２回目の第１のループＬＰ１（ステップＳ１７０−２、Ｓ１７１−７、Ｓ１７２−１２、及び１７３−１３）が、時刻ｔ５〜ｔ８の期間に実行される。この様子を図４０Ｄに示す。
【０２３７】
図示するように、図４０Ｃと異なる点は、各時刻ｔ５〜ｔ８においてそれぞれストリングユニットＳＵ１、ＳＵ２、ＳＵ３、及びＳＵ０が選択される点である。すなわち、時刻ｔ５、ｔ６、ｔ７、及びｔ８では、セレクトゲート線ＳＧＤ１、ＳＧＤ２、ＳＧＤ３、及びＳＧＤ０がそれぞれ選択される。その他は図４０Ｃと同じである。
【０２３８】
以上の時刻ｔ５〜ｔ８の期間において、２回目の第１のループＬＰ１が完了する。引き続き、３回目の第１のループＬＰ１（ステップＳ１７０−３、Ｓ１７１−８、Ｓ１７２−９、及び１７３−１４）が、時刻ｔ９〜ｔ１２の期間に実行される。この様子を図４０Ｅに示す。
【０２３９】
図示するように、図４０Ｄと異なる点は、各時刻ｔ９〜ｔ１２においてそれぞれストリングユニットＳＵ２、ＳＵ３、ＳＵ０、及びＳＵ１が選択される点である。すなわち、時刻ｔ９、ｔ１０、ｔ１１、及びｔ１２では、セレクトゲート線ＳＧＤ２、ＳＧＤ３、ＳＧＤ０、及びＳＧＤ１が選択される。その他は図４０Ｄと同じである。
【０２４０】
以上のように、第１のループＬＰ１では、ブロックＢＬＫ及びワード線ＷＬだけでなく、選択されるストリングユニットＳＵをシフトさせてもよい。
【０２４１】
６．４  第４の例  
次に、本実施形態に係る第４の例について説明する。本例は、上記第３の例において、第１のループＬＰ１内においてストリングユニットＳＵの代わりにページをシフトさせるものである。以下では、上記第３の例と異なる点について説明する。図４１は第４の例に係るパトロール動作のフローチャートである。
【０２４２】
図示するように、第３の例で説明した図３９においてコントローラ２００は、第１のループＬＰ１を実行する際にあたっての先頭ページを決定する（ステップＳ２５０）。この先頭ページを示す変数が図４１におけるｎＬＭＵであり、ｎＬＭＵ＝“０”がlowerページに対応し、ｎＬＭＵ＝“１”がmiddleページに対応し、ｎＬＭＵ＝“２”がupperページに対応する。まずは、ｎＬＭＵ＝“０”とされ、lowerページが選択される。
【０２４３】
更にコントローラ２００は、第３の例と同様にステップＳ２２０を実行し、第１のループＬＰ１における先頭ワード線ＷＬを決定する（ｎＷＬ＝“０”）。更にコントローラ２００は、第１のループＬＰ１の対象となるストリングユニットＳＵ０（ｋ＝０）を選択する（ステップＳ２０２）。
【０２４４】
そしてコントローラ２００はブロックＢＬＫ０を選択すると共に（ｌ＝“０”）、ワード線ＷＬｊ（但しｊ＝ｎＷＬ）及びページｉ（ｉ＝ｎＬＭＵ）を選択する（ステップＳ２５１）。
【０２４５】
そして、第１のループＬＰ１が実行される（ステップＳ２１５）。本例に係る第１のループＬＰ１が図３９で説明した第３の例と異なる点は、ステップＳ２０８で次のブロックＢＬＫ（ｌ＋１）が選択され且つステップＳ２１２で次のワード線ＷＬが選択されるだけでなく（ｊ＝ｊ＋１）、更に次のページが選択される点である（ｉ＝ｉ＋１、ステップＳ２１４）。なお、第１のループＬＰ１内においてストリングユニットＳＵの番号は変わらない。このように、ブロックＢＬＫ、ワード線ＷＬ、及び読み出し対象ページがシフトされて、再度シフトリードまたはトラッキング動作が実行される（ステップＳ２３２またはＳ２３１）。
【０２４６】
引き続きコントローラ２００は、直前の第１のループＬＰ１の対象とされたストリングユニットＳＵが最終ストリングユニットＳＵ（ｋ＝“３”、すなわちＳＵ３）であったか否かを判断する（ステップＳ２０９）。そして最終ストリングユニットＳＵ３でなければ（ステップＳ２０９、ＮＯ）、コントローラ２００は次のストリングユニットＳＵを選択して（ステップＳ２１０）、ステップＳ２５１に戻る。
【０２４７】
第１のループＬＰ１の対象が最終ストリングユニットＳＵ３であった場合には（ステップＳ２０９、ＹＥＳ）、コントローラ２００は、直前の第１のループＬＰ１における先頭ワード線が最終ワード線ＷＬ（ｎＷＬ＝“９５”、すなわちＷＬ９５）であったか否かを判断する（ステップＳ２２２）。そして最終ワード線ＷＬ９５でなければ（ステップＳ２２２、ＮＯ）、コントローラ２００はステップＳ２２３の処理を実行する。また、最終ワード線ＷＬ９５であった場合（ステップＳ２２２、ＹＥＳ）、コントローラ２００は、直前の第１のループＬＰ１における先頭ページがupperページ（ｎＬＭＵ＝“２”）であったか否かを判断する（ステップＳ２５２）。そしてupperページでなければ（ステップＳ２５２、ＮＯ）、コントローラ２００は次のページを選択し（ｎＬＭＵ＝ｎＬＭＵ＋１、ステップＳ２５３）、ステップＳ２２０に戻る。このように、第１のループＬＰ１の各々において先頭ページがシフトされるため、ステップＳ２１４では変数ｉがupperページの番号（ｉ＝“２”）を超える場合がある。この場合には、変数ｉはlowerページを示す“０”にリセットされて、“０”から再びインクリメントされる。
【０２４８】
そして、ループＬＰ１における先頭ページがupperページであった際には（ステップＳ２５２、ＹＥＳ）、第２のループが終了する。
【０２４９】
図４２Ａは本例に係る具体例であり、第１乃至第３の例で説明した図３６Ａ、図３８Ａ、図４０Ａに対応する。図４２Ａにおいても、斜線を付したパトロールリードにおいてトラッキング動作が行われる。また、図４２Ｂは図４２Ａに対応するフローチャートであり、太線の枠で示したステップにおいてトラッキング動作が行われる。なお、図４２Ａ及び図４２Ｂでは、説明の簡単化のために、第１乃至第３の例と異なりブロックＢＬＫが３個（ＢＬＫ０〜ＢＬＫ２）である場合を例に説明する。その他は第１乃至第３の例と同じである。
【０２５０】
図４２Ａ及び図４２Ｂに示すように、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ０が選択されて、トラッキング動作及びシフトリードが実行される（ステップＳ１７０−１）。次に選択ブロック、選択ワード線、及び選択ページがそれぞれブロックＢＬＫ１、ワード線ＷＬ１、及びmiddleページにシフトされ、シフトリードが実行される（ステップＳ１７１−２１）。引き続き、選択ブロック、選択ワード線、及び選択ページがそれぞれブロックＢＬＫ２、ワード線ＷＬ２、及びupperページにシフトされ、シフトリードが実行される（ステップＳ１７２−４１）。このように、本例に係る第１のループＬＰ１は３回のシフトリードを含み、これを４８回繰り返すことにより第２のループＬＰ２が完了する。
【０２５１】
すなわち、次にコントローラ２００は、ストリングユニットＳＵを“０”から“１”にインクリメントして、２回目の第１のループＬＰ１を実行する（ステップＳ１７０−２、Ｓ１７１−２２、及びＳ１７２−４２）。すなわち、まずブロックＢＬＫ０、ワード線ＷＬ０、lowerページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７０−２）。次にブロックＢＬＫ１、ワード線ＷＬ１、middleページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７１−２２）。引き続きブロックＢＬＫ２、ワード線ＷＬ２、upperページ、及びストリングユニットＳＵ１が選択されて、シフトリードが実行される（ステップＳ１７２−４２）。
【０２５２】
その後も同様であり、第１のループＬＰ１の各々では選択ストリングユニットＳＵは変わらずにブロックＢＬＫ、ワード線ＷＬ、及びページがシフトされる。そして第１のループＬＰ１を繰り返す際に、ストリングユニットＳＵがシフトされる。
【０２５３】
６．５  本実施形態に係る効果  
上記第５実施形態で説明したパトロールリードは、本実施形態で説明した順序によるシフトリードで実施することもできる。なお、上記実施形態では例示を省略したが、第１のループＬＰ１においてブロックＢＬＫをシフトさせる際に、ワード線ＷＬ、ストリングユニットＳＵ、及びページの全てをシフトさせてもよい。
【０２５４】
また、第１のループＬＰ１においてワード線、ストリングユニット、及びページをインクリメントすることにより、第１のループＬＰ１で必要となるトラッキング回数を平準化できる。つまり、トラッキングが発生するタイミングの偏りを抑制し、第１のループＬＰ１を実行するのに要する時間のばらつきを小さくできる。
【０２５５】
７．変形例等  
以上のように、上記実施形態に係るメモリシステム１は、半導体基板の鉛直方向に順次設けられた第１乃至第４ワード線と、第１乃至第４ワード線にそれぞれ接続された第１乃至第４メモリセルとを備える半導体メモリと、半導体メモリを制御するコントローラとを備える。コントローラは、メモリセルの閾値分布の状態を確認(tracking動作)するための第１命令(test命令)と、第１命令に応答して得られた閾値分布の状態に基づく読み出し電圧を用いてメモリセルからデータを読み出すための第２命令(shift read命令)とを発行可能である。またコントローラは、第１ワード線(WL0 in 図15)を選択して第１命令を発行して、第１メモリセルにつき得られた閾値分布の状態に基づく第１読み出し電圧を得る第１動作(S100 in 図16)と、第２ワード線(WL1-WL11 in 図15)を選択し、且つ読み出し電圧として第１読み出し電圧に基づく電圧を指定する第２命令を発行して、第２メモリセルからデータを読み出す第２動作(S105 in 図16)と、第３ワード線(WL12 in 図15)を選択して第１命令を発行して、第３メモリセルにつき得られた閾値分布の状態に基づく第２読み出し電圧を得る第３動作(S115 in 図16)と、第４ワード線(WL13-WL23 in 図15)を選択し、且つ読み出し電圧として第２読み出し電圧に基づく電圧を指定する第２命令を発行して、第４メモリセルからデータを読み出す第４動作(S115 in 図16)とを実行する。
【０２５６】
更に、上記実施形態に係るメモリシステム１は、半導体基板の鉛直方向に順次設けられた第１乃至第３ワード線と、第１乃至第３ワード線にそれぞれ接続された第１乃至第３メモリセルとを備える半導体メモリと、半導体メモリを制御するコントローラとを具備する。コントローラは、メモリセルの閾値分布の状態を確認(tracking動作)するための第１命令(test命令)と、第１命令に応答して得られた閾値分布の状態に基づく読み出し電圧を用いてメモリセルからデータを読み出すための第２命令(shift read命令)とを発行可能である。コントローラは、第１ワード線(WL6 in 図31A-B)を選択して前記第１命令を発行して、第１メモリセルにつき得られた閾値分布の状態に基づく第１読み出し電圧(+3 in 図31A)を得る第１動作と、第３ワード線(WL18 in 図31A-B)を選択して第１命令を発行して、第３メモリセルにつき得られた閾値分布の状態に基づく第２読み出し電圧(0 in 図31A)を得る第２動作と、第２ワード線(WL10 in 図31B)を選択し、且つ読み出し電圧として第３読み出し電圧(+2 in 図31B)を指定する第２命令を発行して、第２メモリセルからデータを読み出す第３動作とを実行する。そして、第２読み出し電圧は、前記第１読み出し電圧と前記第３読み出し電圧との間の値である。
【０２５７】
更に、上記実施形態に係るメモリシステム１は、データを保持可能なメモリセルを複数備える半導体メモリと、半導体メモリを制御するコントローラとを具備する。半導体メモリは、複数の第１ワード線(WL0-WL3 of BLK0 in 図34A)を備え、それぞれにメモリセルが接続された第１ブロック(BLK0 in 図34A)と、複数の第２ワード線(WL0-WL3 of BLK1 in 図34A)を備え、それぞれにメモリセルが接続された第２ブロック(BLK1 in 図34A)とを備える。コントローラは、第１の周期(LP1 in 図34B)で第１ブロック(BLK0)と第２ブロック(BLK1)へのアクセスを繰り返す。更に第１の周期よりも大きい第２の周期(LP2 in 図34B)で第１ブロック内の複数の第１ワード線(WL0-WL3 of BLK0)と、第２ブロック内の前記複数の第２ワード線(WL0-WL3 of BLK1)へのアクセスを繰り返す。
【０２５８】
本構成によれば、時間の経過に伴うメモリセルの閾値変動を補正し、これによりメモリシステム１の動作信頼性を向上できる。なお、上記で説明した実施形態は一例に過ぎず、種々の変形が可能である。
【０２５９】
例えば、第１実施形態で説明したワード線のグルーピングは、図６や図７で説明したものに限らず、適宜変形できる。また図６及び図７では、シリコンピラー３１が２つの層３１−１及び３１−２で形成される場合を例に説明したが、１つの層で形成されてもよいし、または３つ以上の層で形成されてもよい。また、上記実施形態では、最上層のワード線が先頭ワード線ＷＬ０であり、最下層のワード線が最終ワード線ＷＬ９５である場合を例に説明した。しかし、この位置関係は逆であっても良い。すなわち、最下層のワード線が先頭ワード線ＷＬ０であり、最上層のワード線が最終ワード線ＷＬ９５であってもよい。また、第２実施形態で説明したトラッキング動作は、図１３Ａ乃至図１３Ｃ並びに図１４Ａ及び図１４Ｂで説明した方法に限らず、閾値分布の交点を探索できる方法であればよい。またトラッキング動作は、閾値分布の交点そのものを見つける方法ではなく、例えばエラービット数が最小となる読み出し電圧を探索する方法であってもよく、閾値分布の状況を確認できる方法であれば限定されない。更に、上記実施形態で説明した履歴テーブルは物理ブロック毎に設けられても良いし、または論理ブロック毎に設けられても良い。物理ブロックＢＬＫには、それぞれ固有のアドレスが割り当てられている。これを物理アドレスと呼ぶ。これに対してホスト機器３００は、物理アドレスと異なる論理アドレスを用いてコントローラ２００にアクセスする。この論理アドレスによって指定される物理ブロックＢＬＫが論理ブロックであり、例えば複数の物理ブロックＢＬＫの集合である。論理ブロックＬＢと物理ブロックＢＬＫとの関係は、常に変化し得る。例えば、ある時点での論理ブロックＬＢ０が、物理ブロックＢＬＫ０〜ＢＬＫ３に対応していたとすると、その後のある時点では、論理ブロックＬＢ０は別の物理ブロックＢＬＫ４〜ＢＬＫ７に対応する。従ってコントローラ２００の例えばバッファメモリ２４０は、論理アドレスと物理アドレスとの対応関係を、論理／物理アドレス変換テーブルとして保持する。
【０２６０】
また第６実施形態では、パトロールリードにおけるページの選択順序のいくつかの例について説明した。しかし、ページの選択順序は第６実施形態で説明した場合に限定されず、その他の種々の順序で選択してもよい。すなわち、ある周期Ｔ１で第１のループＬＰ１が実行され（すなわち全物理ブロックへアクセスされ）、別の周期Ｔ２で第２のループＬＰ２が実行され（すなわち全物理ブロックの全ページへアクセスされ）、Ｔ１＜Ｔ２であればよい。そして周期Ｔ１は、干渉効果の影響が消失するのに要する期間より短いことが好ましく、更には、全物理ブロックＢＬＫにアクセスするための最短期間であることが好ましい。また上記実施形態では、シフトリードでの電圧シフト量をset featureコマンドでＮＡＮＤ型フラッシュメモリ１００に設定する場合を例に説明したが（図８参照）、例えばシフトリードコマンド内で指定してもよい。更に上記実施形態では、メモリセルトランジスタＭＴの各々が３ビットデータを保持する場合を例に説明した。しかし、２ビットや４ビット以上のデータを保持する場合にも適用できる。
【０２６１】
なお、本発明に関する各実施形態において、  
（１）メモリセルが２ビットデータ（“Ｅｒ”、“Ａ”、“Ｂ”、及び“Ｃ”）を保持する場合に、Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。  
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V, 2.1V〜2.3Vいずれかの間にしてもよい。  
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。  
読み出し動作の時間（tR）としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。  
（２）書き込み動作は、プログラム動作とベリファイ動作を含む。書き込み動作では、  
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。  
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。  
プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。  
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。  
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。  
書き込み動作の時間（tProg）としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。  
（３）消去動作では、  
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。  
消去動作の時間（tErase）としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
（４）メモリセルの構造は、  
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。  
また、メモリセル間にはエアギャップを形成することができる。
【０２６２】
更に、上記実施形態では半導体記憶装置としてＮＡＮＤ型フラッシュメモリを例に説明したが、ＮＡＮＤ型フラッシュメモリに限らず、その他の半導体メモリ全般に適用出来、更には半導体メモリ以外の種々の記憶装置に適用出来る。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることが出来る。
【０２６３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２６４】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…メモリセルアレイ、１２０…ロウデコーダ、１３０…ドライバ回路、１４０…センスアンプ、１５０、１６０…レジスタ、１７０…シーケンサ、２００…コントローラ、２１０、２５０…インターフェース回路、２２０、２４０…メモリ、２３０…プロセッサ、２６０…ＥＣＣ回路、３００…ホスト機器
【図１】
2020035504.tif 000003
【図２】
2020035504.tif 000004
【図３】
2020035504.tif 000005
【図４】
2020035504.tif 000006
【図５】
2020035504.tif 000007
【図６】
2020035504.tif 000008
【図７】
2020035504.tif 000009
【図８】
2020035504.tif 000010
【図９Ａ】
2020035504.tif 000011
【図９Ｂ】
2020035504.tif 000012
【図１０Ａ】
2020035504.tif 000013
【図１０Ｂ】
2020035504.tif 000014
【図１１Ａ】
2020035504.tif 000015
【図１１Ｂ】
2020035504.tif 000016
【図１２】
2020035504.tif 000017
【図１３Ａ】
2020035504.tif 000018
【図１３Ｂ】
2020035504.tif 000019
【図１３Ｃ】
2020035504.tif 000020
【図１４Ａ】
2020035504.tif 000021
【図１４Ｂ】
2020035504.tif 000022
【図１５】
2020035504.tif 000023
【図１６】
2020035504.tif 000024
【図１７】
2020035504.tif 000025
【図１８】
2020035504.tif 000026
【図１９】
2020035504.tif 000027
【図２０】
2020035504.tif 000028
【図２１】
2020035504.tif 000029
【図２２】
2020035504.tif 000030
【図２３】
2020035504.tif 000031
【図２４】
2020035504.tif 000032
【図２５】
2020035504.tif 000033
【図２６】
2020035504.tif 000034
【図２７】
2020035504.tif 000035
【図２８】
2020035504.tif 000036
【図２９】
2020035504.tif 000037
【図３０】
2020035504.tif 000038
【図３１Ａ】
2020035504.tif 000039
【図３１Ｂ】
2020035504.tif 000040
【図３２】
2020035504.tif 000041
【図３３】
2020035504.tif 000042
【図３４Ａ】
2020035504.tif 000043
【図３４Ｂ】
2020035504.tif 000044
【図３４Ｃ】
2020035504.tif 000045
【図３４Ｄ】
2020035504.tif 000046
【図３５】
2020035504.tif 000047
【図３６Ａ】
2020035504.tif 000048
【図３６Ｂ】
2020035504.tif 000049
【図３６Ｃ】
2020035504.tif 000050
【図３６Ｄ】
2020035504.tif 000051
【図３７】
2020035504.tif 000052
【図３８】
2020035504.tif 000053
【図３９】
2020035504.tif 000054
【図４０Ａ】
2020035504.tif 000055
【図４０Ｂ】
2020035504.tif 000056
【図４０Ｃ】
2020035504.tif 000057
【図４０Ｄ】
2020035504.tif 000058
【図４０Ｅ】
2020035504.tif 000059
【図４１】
2020035504.tif 000060
【図４２Ａ】
2020035504.tif 000061
【図４２Ｂ】
2020035504.tif 000062