(57)【要約】【課題】動作速度の低下を抑制することが可能なメモリシステムを提供する。【解決手段】実施形態のメモリシステムは、半導体メモリと、コントローラとを含む。半導体メモリは、各々が複数のメモリセルを含む複数のブロックを含む。コントローラは、第１及び第２動作を半導体メモリに命令する。第１及び第２動作において、半導体メモリは複数のブロックのうちの少なくとも一つのブロックに含まれる全てのメモリセルに電圧を印加する。単位時間あたりに前記第２動作において電圧が印加されるブロックの数は、単位時間あたりに前記第１動作において電圧が印加されるブロックの数よりも多い。【選択図】図８
2019046530.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数のメモリセルを含む複数のブロックを含む半導体メモリと、
第１動作及び第２動作を前記半導体メモリに命令するコントローラと、を備え、
前記第１及び第２動作において、前記半導体メモリは前記複数のブロックのうちの少なくとも一つのブロックに含まれる全てのメモリセルに電圧を印加し、
前記半導体メモリが単位時間あたりに前記第２動作において電圧を印加する前記ブロックの数は、前記半導体メモリが前記単位時間あたりに前記第１動作において電圧を印加する前記ブロックの数よりも多い、メモリシステム。
【請求項２】
１回の前記第２動作において電圧が印加される前記ブロックの数は、１回の前記第１動作において電圧が印加される前記ブロックの数よりも多い、
請求項１に記載のメモリシステム。
【請求項３】
前記半導体メモリが１回の前記第２動作を実行する時間は、前記半導体メモリが１回の前記第１動作を実行する時間よりも長い、
請求項２に記載のメモリシステム。
【請求項４】
前記コントローラは、１回の前記第２動作において電圧が印加される前記ブロックの数を、外部のホスト機器から受信した命令のキュー長に基づいて決定する、
請求項２に記載のメモリシステム。
【請求項５】
前記コントローラは、さらにブロックに格納されたデータに関連付けられた論理アドレスをブロックの物理アドレスに変換するためのアドレス変換テーブルを管理し、前記アドレス変換テーブルを前記半導体メモリに格納し、
前記コントローラは巡回期間を設定し、前記巡回期間に１つ以上の有効なユーザデータを格納するブロックの全て、或いは前記アドレス変換テーブルを格納するブロックの全てに対して前記第１動作又は前記第２動作を命令する、
請求項１に記載のメモリシステム。
【請求項６】
前記コントローラは、前記メモリシステムの温度が第１温度である場合の前記巡回期間を、前記メモリシステムの温度が前記第１温度よりも高い第２温度である場合の前記巡回期間よりも長く設定する、
請求項５に記載のメモリシステム。
【請求項７】
前記半導体メモリは、前記第１動作及び前記第２動作を実行することが可能な第１モードと、前記第１モードよりも消費電力が抑制された第２モードとを含み、
前記コントローラは巡回期間を設定し、前記半導体メモリが前記第２モードで動作している間に、前記巡回期間の経過に基づいて前記半導体メモリを前記第２モードから前記第１モードに移行させて前記第１動作又は前記第２動作を前記半導体メモリに命令する、
請求項１に記載のメモリシステム。
【請求項８】
前記第１動作及び前記第２動作は、前記半導体メモリから前記コントローラへのデータの出力を伴わない、
請求項１に記載のメモリシステム。
【請求項９】
各々が複数のメモリセルを含む複数のブロックを含む半導体メモリと、
第１動作を前記半導体メモリに命令するコントローラと、を備え、
前記第１動作において、前記半導体メモリは前記複数のブロックのうちの少なくとも一つのブロックに含まれる全てのメモリセルに電圧を印加し、
前記複数のブロックは、第１及び第２ブロックを含み、
前記半導体メモリは、前記第１及び第２ブロックにそれぞれ接続された第１及び第２ワード線と、一端が前記第１及び第２ワード線にそれぞれ接続され、ゲートに共通の制御信号が印加される第１及び第２トランジスタと、前記第１及び第２トランジスタの他端にそれぞれ接続された第１及び第２信号線と、をさらに備え、
前記コントローラは、前記第２ブロックに対する読み出し動作、書き込み動作、又は消去動作を所定の回数前記半導体メモリに命令したことに応じて、前記第１ブロックに対する前記第１動作を前記半導体メモリに命令する、メモリシステム。
【請求項１０】
前記半導体メモリは、ブロックアドレスに基づいた前記制御信号を出力するブロックデコーダと、前記第１及び第２信号線に対して異なる電圧を印加するドライバと、をさらに備える、
請求項９に記載のメモリシステム。
【請求項１１】
各々が複数のメモリセルを含む複数のブロックを含む半導体メモリと、
前記複数のブロックにそれぞれ設定された優先度に基づいて、第１動作を前記半導体メモリに命令するコントローラと、を備え、
前記第１動作において、前記半導体メモリは前記複数のブロックのうちの少なくとも一つのブロックに含まれる全てのメモリセルに電圧を印加する、メモリシステム。
【請求項１２】
前記コントローラは、さらにブロックに格納されたデータに関連付けられた論理アドレスをブロックの物理アドレスに変換するためのアドレス変換テーブルを管理し、前記アドレス変換テーブルを前記半導体メモリに格納し、
前記コントローラは、前記メモリシステムの起動時に、１以上の有効なユーザデータを格納するブロックの全て、或いは前記アドレス変換テーブルを格納するブロックの全てに対して前記第１動作を実行する、
請求項１１に記載のメモリシステム。
【請求項１３】
前記コントローラは、前記複数のブロックの各々に設定された属性情報に基づいて前記優先度を決定する、
請求項１１に記載のメモリシステム。
【請求項１４】
前記属性情報は、前記ブロックに記憶される情報の属性、書き込み方法、書き込み／消去回数、最終書き込み時刻、最終アクセス時刻、及び読み出しエラー回数のうち少なくとも１つを含む、
請求項１３に記載のメモリシステム。
【請求項１５】
前記コントローラは、前記ブロックに対する前記第１動作が実行されてからの経過時間に基づいて前記優先度を決定する、
請求項１１に記載のメモリシステム。
【請求項１６】
前記コントローラは、前記複数のブロックのそれぞれのアドレス情報に基づいて前記優先度を決定する、
請求項１１に記載のメモリシステム。
【請求項１７】
前記コントローラは、外部のホスト機器から受信した第１情報に基づいて、１回の前記第１動作において電圧が印加される前記ブロックの数を設定する、
請求項１１に記載のメモリシステム。
【請求項１８】
前記第１情報は、前記メモリシステムの起動時に前記ホスト機器から送信される、
請求項１７に記載のメモリシステム。
【請求項１９】
前記コントローラは、外部のホスト機器から受信した第２情報に基づいて前記複数のブロックにそれぞれ関連付けられた優先度を決定し、前記優先度に基づいて前記第１動作を前記半導体メモリに命令する、
請求項１１に記載のメモリシステム。
【請求項２０】
前記第２情報は、前記メモリシステムの起動時に前記ホスト機器から送信される、
請求項１９に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態はメモリシステムに関する。
【背景技術】
【０００２】
メモリセルが三次元に積層されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５５３１６５６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作速度の低下を抑制することが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、半導体メモリと、コントローラとを含む。半導体メモリは、各々が複数のメモリセルを含む複数のブロックを含む。コントローラは、第１及び第２動作を半導体メモリに命令する。第１及び第２動作において、半導体メモリは複数のブロックのうちの少なくとも一つのブロックに含まれる全てのメモリセルに電圧を印加する。単位時間あたりに第２動作において電圧が印加されるブロックの数は、単位時間あたりに第１動作において電圧が印加されるブロックの数よりも多い。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムの構成例を示すブロック図。
【図２】第１実施形態におけるＮＡＮＤ型フラッシュメモリの構成例を示すブロック図。
【図３】第１実施形態におけるＮＡＮＤ型フラッシュメモリに含まれるメモリセルアレイの構成例を示す回路図。
【図４】第１実施形態におけるＮＡＮＤ型フラッシュメモリに含まれるメモリセルトランジスタの閾値分布及び読み出し電圧の一例を示す図。
【図５】第１実施形態におけるＮＡＮＤ型フラッシュメモリに含まれるメモリセルアレイの構造の一例を示す断面図。
【図６】第１実施形態におけるメモリコントローラに含まれるプロセッサの詳細な構成例を示すブロック図。
【図７】第１実施形態に係るメモリシステムにおけるパトロール動作の一例を示すフローチャート。
【図８】第１実施形態に係るメモリシステムのパトロール期間におけるパトロール処理レートの変化の一例を示す図。
【図９】第１実施形態に係るメモリシステムにおける第１ダミーリードのコマンドシーケンス及び波形の一例を示す図。
【図１０】第１実施形態に係るメモリシステムにおける第２ダミーリードのコマンドシーケンス及び波形の一例を示す図。
【図１１】第１実施形態に係るメモリシステムのパトロール期間におけるダミーリード方法の選択基準の一例を示す図。
【図１２】ＮＡＮＤ型フラッシュメモリの読み出し動作後に生じるCreep up現象の一例を示す波形図。
【図１３】第２実施形態におけるメモリコントローラに含まれるプロセッサの詳細な構成例を示すブロック図。
【図１４】第２実施形態に係るメモリシステムにおけるパトロール動作の一例を示すフローチャート。
【図１５】第２実施形態に係るメモリシステムのパトロール期間におけるダミーリード済ブロック数の変化の一例を示す図。
【図１６】第２実施形態に係るメモリシステムにおけるパトロール動作の変形例を示すフローチャート。
【図１７】第３実施形態におけるメモリコントローラに含まれるプロセッサの詳細な構成例を示すブロック図。
【図１８】第３実施形態に係るメモリシステムにおけるパトロール動作の一例を示すフローチャート。
【図１９】第３実施形態に係るメモリシステムのパトロール期間におけるパトロール処理レートの変化の一例を示す図。
【図２０】第４実施形態におけるメモリシステムの詳細な構成例を示すブロック図。
【図２１】第４実施形態に係るメモリシステムにおけるブロックの属性情報の一例を示すテーブル。
【図２２】第４実施形態に係るメモリシステムのパトロール動作における優先度に基づいたダミーリード順番の一例を示す図。
【図２３】第４実施形態に係るメモリシステムのパトロール動作における優先度に基づいたダミーリード順番の一例を示す図。
【図２４】第５実施形態におけるＮＡＮＤ型フラッシュメモリに含まれるロウデコーダモジュール及び電圧生成回路の詳細な構成例を示す回路図。
【図２５】第５実施形態に係るメモリシステムにおけるパトロール動作の一例を示すフローチャート。
【図２６】第５実施形態に係るメモリシステムのパトロール動作におけるパトロール済みフラグの管理方法の一例を示す図。
【図２７】第５実施形態に係るメモリシステムにおける第１ダミーリードのコマンドシーケンス及び波形の一例を示す図。
【図２８】第５実施形態に係るメモリシステムにおける第２ダミーリードのコマンドシーケンス及び波形の一例を示す図。
【図２９】第５実施形態の変形例に係るメモリシステムにおけるパトロール動作の一例を示すフローチャート。
【図３０】第６実施形態におけるメモリシステム及びホスト機器の詳細な構成例を示すブロック図。
【図３１】第６実施形態に係るメモリシステムにおけるパーティション番号と物理ブロックアドレスとの関連性の一例を示すテーブル。
【図３２】第６実施形態に係るメモリシステムにおけるパトロール動作の一例を示すフローチャート。
【図３３】第６実施形態に係るメモリシステムにおけるパーティションの設定例と第２ダミーリード時の消費電力との関係を示すテーブル。
【図３４】第７実施形態におけるメモリシステム及びホスト機器の詳細な構成例を示すブロック図。
【図３５】第７実施形態に係るメモリシステムにおけるパトロール動作の一例を示すフローチャート。
【図３６】第７実施形態に係るメモリシステムにおける優先度情報の一例を示すテーブル。
【図３７】第７実施形態に係るメモリシステムにおける優先度情報の一例を示すテーブル。
【図３８】図３４に示す優先度情報に基づいた優先度設定の一例を示すテーブル。
【図３９】図３５に示す優先度情報に基づいた優先度設定の一例を示すテーブル。
【図４０】第７実施形態に係るメモリシステムにおける優先度情報に基づいたダミーリード設定の一例を示すテーブル。
【図４１】第１〜第７実施形態におけるＮＡＮＤ型フラッシュメモリの設定変更に使用されるコマンドシーケンスの一例を示す図。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。図面は模式的なものである。尚、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付して、重複説明を避ける。参照符号を構成する文字の後の数字、及び参照符号を構成する数字の後の文字は、同じ文字及び数字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ文字又は同じ数字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は同じ文字又は同じ数字のみを含んだ参照符号により参照される。
【０００８】
［１］第１実施形態
以下に、第１実施形態に係るメモリシステムについて説明する。
【０００９】
［１−１］構成
［１−１−１］メモリシステム１の構成
図１は、第１実施形態に係るメモリシステム１の構成例を示すブロック図である。図１に示すようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１０Ａ及び１０Ｂ、ＤＲＡＭ（Dynamic Random Access Memory）１１、並びにメモリコントローラ２０を備えている。
【００１０】
ＮＡＮＤ型フラッシュメモリ１０Ａ及び１０Ｂは、データを不揮発に記憶することが可能な不揮発性メモリである。ＮＡＮＤ型フラッシュメモリ１０Ａ及び１０Ｂは、それぞれ独立して動作することが出来る。尚、メモリシステム１が備えるＮＡＮＤ型フラッシュメモリ１０の個数はこれに限定されず、任意の個数に設計することが出来る。
【００１１】
ＤＲＡＭ１１は、データを一時的に記憶することが可能な揮発性メモリである。尚、メモリシステム１が備える揮発性メモリの個数はこれに限定されず、任意の個数に設計することが出来る。また、メモリシステム１が備える揮発性メモリは、ＤＲＡＭに限定されない。例えばメモリシステム１は、揮発性メモリとしてＳＲＡＭ（Static Random Access Memory）等を備えていても良い。
【００１２】
メモリコントローラ２０は、例えばＳｏＣ、ＦＰＧＡ、ＡＳＩＣ等のＩＣであり、ＮＡＮＤ型フラッシュメモリ１０及びＤＲＡＭ１１に各種動作を命令することが出来る。また、メモリコントローラ２０は、外部のホスト機器２からの命令に基づいた動作と、ホスト機器２からの命令に依らない動作とを実行することが出来る。メモリコントローラ２０の構成については後述する。
【００１３】
［１−１−２］ＮＡＮＤ型フラッシュメモリ１０の構成
図２は、第１実施形態におけるＮＡＮＤ型フラッシュメモリ１０の構成例を示すブロック図である。図２に示すようにＮＡＮＤ型フラッシュメモリ１０は、メモリセルアレイ１１、センスアンプモジュール１２、ロウデコーダモジュール１３、入出力回路１４、レジスタ１５、ロジックコントローラ１６、シーケンサ１７、レディ／ビジー制御回路１８、及び電圧生成回路１９を備えている。
【００１４】
メモリセルアレイ１１は、ブロックＢＬＫ０〜ＢＬＫｎ（ｎは０以上の整数）を含んでいる。ブロックＢＬＫは、ビット線及びワード線に関連付けられた複数の不揮発性メモリセルの集合であり、例えばデータの消去単位となる。ＮＡＮＤ型フラッシュメモリ１０は、例えばＭＬＣ（Multi-Level Cell）方式を適用することにより、各メモリセルに２ビット以上のデータを記憶させることが出来る。
【００１５】
センスアンプモジュール１２は、メモリセルアレイ１１から読み出したデータＤＡＴを、入出力回路１４を介してメモリコントローラ２０に出力することが出来る。また、センスアンプモジュール１２は、メモリコントローラ２０から入出力回路１４を介して受け取った書き込みデータＤＡＴを、メモリセルアレイ１１に転送することが出来る。
【００１６】
ロウデコーダモジュール１３は、アドレスレジスタ１５Ｂに保持されたブロックアドレスに基づいて、各種動作を実行する対象のブロックＢＬＫを選択することが出来る。そしてロウデコーダモジュール１３は、電圧生成回路１９から供給された電圧を、選択したブロックＢＬＫに転送することが出来る。
【００１７】
入出力回路１４は、例えば８ビット幅の入出力信号Ｉ／Ｏ（Ｉ／Ｏ１〜Ｉ／Ｏ８）を、メモリコントローラ２０との間で送受信することが出来る。例えば入出力回路１４は、メモリコントローラ２０から受信した入出力信号Ｉ／Ｏに含まれた書き込みデータＤＡＴをセンスアンプモジュール１２に転送し、センスアンプモジュール１２から転送された読み出しデータＤＡＴを入出力信号Ｉ／Ｏとしてメモリコントローラ２０に送信する。
【００１８】
レジスタ１５は、ステータスレジスタ１５Ａ、アドレスレジスタ１５Ｂ、コマンドレジスタ１５Ｃを含んでいる。ステータスレジスタ１５Ａは、例えばシーケンサ１７のステータス情報ＳＴＳを保持し、このステータス情報ＳＴＳをシーケンサ１７の指示に基づいて入出力回路１４に転送する。アドレスレジスタ１５Ｂは、入出力回路１４から転送されたアドレス情報ＡＤＤを保持する。例えば、アドレス情報ＡＤＤに含まれたカラムアドレス、及びブロックアドレスは、それぞれセンスアンプモジュール１２、及びロウデコーダモジュール１３で使用される。コマンドレジスタ１５Ｃは、入出力回路１４から転送されたコマンドＣＭＤを保持する。
【００１９】
ロジックコントローラ１６は、メモリコントローラ２０から受信した各種制御信号に基づいて、入出力回路１４及びシーケンサ１７を制御することが出来る。各種制御信号としては、例えばチップイネーブル信号／ＣＥ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、及びライトプロテクト信号／ＷＰが使用される。信号／ＣＥは、ＮＡＮＤ型フラッシュメモリ１０をイネーブルにするための信号である。信号ＣＬＥは、ＮＡＮＤ型フラッシュメモリ１０に入力される信号がコマンドＣＭＤであることを入出力回路１４に通知する信号である。信号ＡＬＥは、ＮＡＮＤ型フラッシュメモリ１０に入力される信号がアドレス情報ＡＤＤであることを入出力回路１４に通知する信号である。信号／ＷＥ及び／ＲＥはそれぞれ、例えば入出力信号Ｉ／Ｏの入力及び出力を入出力回路１４に対して命令する信号である。信号/ＷＰは、例えば電源のオンオフ時にＮＡＮＤ型フラッシュメモリ１０を保護状態にするための信号である。
【００２０】
シーケンサ１７は、コマンドレジスタ１５Ｃに保持されたコマンドＣＭＤに基づいて、ＮＡＮＤ型フラッシュメモリ１０全体の動作を制御することが出来る。例えば、シーケンサ１７は、センスアンプモジュール１２、ロウデコーダモジュール１３、電圧生成回路１９等を制御して、書き込み動作や読み出し動作等の各種動作を実行する。
【００２１】
レディ／ビジー制御回路１８は、シーケンサ１７の動作状態に基づいてレディ／ビジー信号ＲＢｎを生成することが出来る。信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ１０がメモリコントローラ２０からの命令を受け付けるレディ状態であるか、命令を受け付けないビジー状態であるかを、メモリコントローラ２０に通知する信号である。
【００２２】
電圧生成回路１９は、シーケンサ１７の制御に基づいて所望の電圧を生成し、生成した電圧をメモリセルアレイ１１、センスアンプモジュール１２、ロウデコーダモジュール１３等に供給することが出来る。例えば電圧生成回路１９は、アドレスレジスタ１５Ｂに保持されたページアドレスに基づいて、選択ワード線に対応する信号線、及び非選択ワード線に対応する信号線に対してそれぞれ所望の電圧を印加する。
【００２３】
［１−１−３］メモリセルアレイ１１の構成
図３は、第１実施形態におけるＮＡＮＤ型フラッシュメモリ１０に含まれるメモリセルアレイ１１の構成例を示す回路図であり、メモリセルアレイ１１内の１つのブロックＢＬＫについての詳細な回路構成を示している。図３に示すようにブロックＢＬＫは、例えば４つのストリングユニットＳＵ０〜ＳＵ３を含んでいる。
【００２４】
各ストリングユニットＳＵは、ビット線ＢＬ０〜ＢＬｍ（ｍは０以上の整数）にそれぞれ関連付けられた複数のＮＡＮＤストリングＮＳを含んでいる。各ＮＡＮＤストリングＮＳは、例えばメモリセルトランジスタＭＴ０〜ＭＴ７並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。
【００２５】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を備え、データを不揮発に記憶することが出来る。各ＮＡＮＤストリングＮＳに含まれたメモリセルトランジスタＭＴ０〜ＭＴ７は、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。同一のブロックＢＬＫに含まれたメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続されている。尚、以下の説明では、それぞれのストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴが記憶する１ビットデータの集合のことを“ページ”と称する。従って、１つのメモリセルトランジスタＭＴに２ビットデータが記憶される場合、１つのストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴの集合は、２ページ分のデータを記憶する。
【００２６】
選択トランジスタＳＴ１及びＳＴ２は、各種動作時におけるストリングユニットＳＵの選択に使用される。同一のカラムアドレスに対応するＮＡＮＤストリングＮＳに含まれた選択トランジスタＳＴ１のドレインは、対応するビット線ＢＬに共通接続されている。ストリングユニットＳＵ０〜ＳＵ３のそれぞれに含まれた選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に共通接続されている。同一のブロックＢＬＫにおいて、選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続され、選択トランジスタＳＴ２のゲートはセレクトゲート線ＳＧＳに共通接続されている。
【００２７】
以上で説明したメモリセルアレイ１１の回路構成において、ワード線ＷＬ０〜ＷＬ７は、ブロックＢＬＫ毎に設けられている。ビット線ＢＬ０〜ＢＬｍは、複数のブロックＢＬＫ間で共有されている。ソース線ＳＬは、複数のブロックＢＬＫ間で共有されている。尚、各ブロックＢＬＫが含むストリングユニットＳＵの個数と、各ＮＡＮＤストリングＮＳが含むメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の個数とはあくまで一例であり、任意の個数に設計することが出来る。ワード線ＷＬ並びにセレクトゲート線ＳＧＤ及びＳＧＳの本数は、メモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の個数に基づいて変更される。
【００２８】
また、以上で説明したメモリセルアレイ１１の回路構成において、１つのストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴの閾値電圧によって形成される閾値分布は、例えば図４に示すものとなる。図４は、１つのメモリセルトランジスタＭＴが１ビットデータ又は２ビットデータを記憶する場合のメモリセルトランジスタＭＴの閾値分布及び読み出し電圧を示し、縦軸がメモリセルトランジスタＭＴの個数に対応し、横軸がメモリセルトランジスタＭＴの閾値電圧Ｖthに対応している。図４に示すように複数のメモリセルトランジスタＭＴは、記憶するデータのビット数に基づいて複数の閾値分布を形成する。以下に、書き込み方式の一例として、１つのメモリセルトランジスタＭＴに１ビットデータを記憶させるＳＬＣ（Single-Level Cell）方式と、１つのメモリセルトランジスタＭＴに２ビットデータを記憶させるＭＬＣ（Multi-Level Cell）方式についてそれぞれ説明する。
【００２９】
ＳＬＣ方式の場合、複数のメモリセルトランジスタＭＴは２つの閾値分布を形成する。この２つの閾値分布のことを、閾値電圧の低いものから順に“ＥＲ”レベル、“Ａ”レベルと称する。ＳＬＣ方式では、例えば“ＥＲ”レベル及び“Ａ”レベルにそれぞれ“１”データ及び“０”データが割り当てられる。
【００３０】
ＭＬＣ方式の場合、複数のメモリセルトランジスタＭＴは４つの閾値分布を形成する。この４個の閾値分布のことを、閾値電圧の低いものから順に“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベルと称する。ＭＬＣ方式では、例えば“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルにそれぞれ“１１（Lower／Upper）”データ、“０１”データ、“００”データ、及び“０１”データが割り当てられる。
【００３１】
そして、以上で説明した閾値分布において、隣り合う閾値分布の間にそれぞれ読み出し電圧が設定される。例えば、読み出し電圧ＡＲは、“ＥＲ”レベルにおける最大の閾値電圧と“Ａ”レベルにおける最小の閾値電圧との間に設定され、メモリセルトランジスタＭＴの閾値電圧が“ＥＲ”レベルの閾値分布に含まれるのか“Ａ”レベル以上の閾値分布に含まれるのかを判定する動作に使用される。メモリセルトランジスタＭＴに読み出し電圧ＡＲが印加されると、“ＥＲ”レベルに対応するメモリセルトランジスタがオン状態になり、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルに対応するメモリセルトランジスタがオフ状態になる。その他の読み出し電圧も同様に設定され、読み出し電圧ＢＲは、“Ａ”レベルの閾値分布と“Ｂ”レベルの閾値分布との間に設定され、読み出し電圧ＣＲは、“Ｂ”レベルの閾値分布と“Ｃ”レベルの閾値分布との間に設定される。メモリセルトランジスタＭＴに読み出し電圧ＢＲが印加されると、“ＥＲ”及び“Ａ”レベルに対応するメモリセルトランジスタがオン状態になり、“Ｂ”レベル及び“Ｃ”レベルに対応するメモリセルトランジスタがオフ状態になる。メモリセルトランジスタＭＴに読み出し電圧ＣＲが印加されると、“ＥＲ”レベル、“Ａ”レベル、及び“Ｂ”レベルに対応するメモリセルトランジスタがオン状態になり、“Ｃ”レベルに対応するメモリセルトランジスタがオフ状態になる。各書き込み方式において、最も高い閾値分布における最大の閾値電圧よりも高い電圧に、読み出しパス電圧ＶＲＥＡＤが設定される。つまり、読み出しパス電圧ＶＲＥＡＤがゲートに印加されたメモリセルトランジスタＭＴは、記憶するデータに依らずにオンする。
【００３２】
尚、以上で説明した１つのメモリセルトランジスタＭＴに記憶するデータのビット数と、メモリセルトランジスタＭＴの閾値分布に対するデータの割り当てとはあくまで一例であり、これに限定されない。例えば、３ビット以上のデータが１つのメモリセルトランジスタＭＴに記憶されても良いし、その他の様々なデータの割り当てが閾値分布に対して適用されても良い。また、各読み出し電圧及び読み出しパス電圧は、各方式で同じ電圧値に設定されても良いし、異なる電圧値に設定されても良い。
【００３３】
例えば、図４に示すように、ＭＬＣ方式における読み出しパス電圧ＶＲＥＡＤは、ＳＬＣ方式における読み出しパス電圧ＶＲＥＡＤよりも高く設定される。同様に、例えば１つのメモリセルトランジスタＭＴに３ビットデータを記憶させるＴＬＣ（Triple-Level Cell）方式における読み出しパス電圧ＶＲＥＡＤは、ＭＬＣ方式における読み出しパス電圧ＶＲＥＡＤよりも高く設定され、１つのメモリセルトランジスタＭＴに４ビットデータを記憶させるＱＬＣ（Quadruple-Level Cell）方式における読み出しパス電圧ＶＲＥＡＤは、ＴＬＣ方式における読み出しパス電圧ＶＲＥＡＤよりも高く設定される。
【００３４】
次に、図５を用いてメモリセルアレイ１１の断面構造について説明する。図５は、第１実施形態におけるＮＡＮＤ型フラッシュメモリ１０に含まれるメモリセルアレイ１１の構造の一例を示す断面図であり、層間絶縁膜が省略されたメモリセルアレイ１１の断面と、Ｘ軸、Ｙ軸、及びＺ軸とを示している。図５に示すようにＮＡＮＤ型フラッシュメモリ１０は、Ｐ型ウェル領域３０、複数の導電体３１〜３６、複数の半導体ピラーＭＨ、及び複数のコンタクトプラグＬＩを備えている。
【００３５】
Ｐ型ウェル領域３０は、半導体基板の表面内に形成されている。Ｐ型ウェル領域３０の上方には、例えば４層の導電体３１、８層の導電体３２、及び４層の導電体３３が層間絶縁膜を介して順に積層されている。これらの導電体３１〜３３は、例えばＸ方向とＹ方向に広がった板状に設けられている。導電体３１及び３３はそれぞれセレクトゲート線ＳＧＳ及びＳＧＤとして機能し、導電体３２はワード線ＷＬとして機能する。１本のワード線ＷＬには、積層された導電体３２のうち１つの導電体が割り当てられる。セレクトゲート線ＳＧＳ及びＳＧＤには、図５に示すように積層された複数の導電体が割り当てられても良いし、１層に設けられた導電体が割り当てられても良い。
【００３６】
複数の半導体ピラーＭＨは、導電体３３の上面からＰ型ウェル領域３０の上面に達するように形成されている。つまり半導体ピラーＭＨは、Ｚ方向に沿って導電体３１〜３３を通過するように設けられている。半導体ピラーＭＨは、ブロック絶縁膜３７、絶縁膜（電荷蓄積層）３８、トンネル酸化膜３９、及び半導体材料４０を含んでいる。半導体材料４０は導電性の材料を含み、ピラー状に形成されている。そして、半導体材料４０の側面を覆うように、トンネル酸化膜３９、絶縁膜３８、ブロック絶縁膜３７が順に形成されている。
【００３７】
導電体３３及び半導体ピラーＭＨよりも上層には、導電体３４が形成されている。導電体３４はビット線ＢＬとして機能し、対応する半導体ピラーＭＨと接続されている。尚、導電体３４と半導体ピラーＭＨとの間には、導電性の材料を含むコンタクトプラグが形成されても良い。
【００３８】
導電体３３と導電体３４との間の配線層には、導電体３５及び３６が形成されている。導電体３５はソース線ＳＬとして機能し、コンタクトプラグＬＩを介してウェル領域３０の表面内に形成されたｎ＋不純物拡散領域４１に接続されている。導電体３６はウェル線ＣＰＷＥＬＬとして機能し、コンタクトプラグＬＩを介してウェル領域３０の表面内に形成されたｐ＋不純物拡散領域４２に接続されている。これらのコンタクトプラグＬＩは、例えばＸ方向とＺ方向に広がった板状に設けられている。
【００３９】
以上で説明したメモリセルアレイ１１の構造において、１つの半導体ピラーＭＨが１つのＮＡＮＤストリングＮＳに対応している。具体的には、導電体３１と半導体ピラーＭＨとの交点が選択トランジスタＳＴ２に対応し、導電体３２と半導体ピラーＭＨとの交点がワード線ＷＬに対応し、導電体３３と半導体ピラーＭＨとの交点が選択トランジスタＳＴ１に対応している。最下層の導電体３１及びトンネル酸化膜３９はｎ＋型不純物拡散領域４１の近傍まで設けられるため、選択トランジスタＳＴ２がオン状態になると、ＮＡＮＤストリングＮＳ及びｎ＋型不純物拡散領域４１間に電流経路が形成される。
【００４０】
また、以上で説明したメモリセルアレイ１１の構造は、Ｘ方向に複数配列される。例えば、１つのストリングユニットＳＵは、Ｘ方向に配列する複数のＮＡＮＤストリングＮＳの集合によって構成される。また、同一のブロックＢＬＫ内に複数のストリングユニットＳＵを設ける場合、セレクトゲート線ＳＧＤに対応する導電体３３は、ストリングユニットＳＵ間で分離される。
【００４１】
尚、以上で説明したメモリセルアレイ１１の構成は、その他の構成であっても良い。その他のメモリセルアレイ１１の構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４２】
［１−１−４］メモリコントローラ２０の構成
ここで図１に戻り、メモリコントローラ２０の構成について説明する。図１に示すようにメモリコントローラ２０は、プロセッサ（ＣＰＵ：Central Processing Unit）２１、内蔵メモリ（ＲＡＭ：Random Access Memory）２２、ホストインターフェイス回路２３、タイマ２４、温度計２５、ＮＡＮＤインターフェイス回路２６、及びＤＲＡＭインターフェイス回路２７を備えている。
【００４３】
プロセッサ２１は、メモリコントローラ２０全体の動作を制御することが出来る。例えばプロセッサ２１は、ホスト機器２から受信した読み出し命令に応答して読み出しコマンドを発行して、発行したコマンドをＮＡＮＤインターフェイス回路２６に送信する。また、プロセッサ２１は、タイマ２４のカウントに基づいてパトロール動作を実行することが出来る。パトロール動作は、例えばホスト機器２からの命令に依らずに実行され、メモリシステム１における読み出しエラーの低減に寄与する動作である。パトロール動作の詳細については後述する。尚、プロセッサ２１は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１０のメモリ空間を管理するための様々な処理を実行することも出来る。プロセッサ２１は、ホスト機器２からのガベージコレクションの指示に基づいて、ＮＡＮＤ型フラッシュメモリ１０に消去動作を命令することが出来る。また、プロセッサ２１は、例えばフリーブロック数が所定の数を下回った場合に、ホスト機器２からの指示に依らないガベージコレクションを実行して、ＮＡＮＤ型フラッシュメモリ１０に消去動作を命令することも出来る。
【００４４】
内蔵メモリ２２は、プロセッサ２１の作業領域として使用される記憶領域である。例えば、内蔵メモリ２２には、ＮＡＮＤ型フラッシュメモリ１０を管理するためのパラメータや、各種の管理テーブル等が展開される。例えば、内蔵メモリ２２は、ホスト機器２から受信した命令の待ち行列（コマンドキュー）を保持する。また、内蔵メモリ２２は、ブロックＢＬＫに格納されたデータに関連付けられた論理アドレスをブロックＢＬＫの物理アドレスに変換するためのアドレス変換テーブルを保持する。このアドレス変換テーブルは、例えば半導体メモリ１０に格納され、メモリシステム１の起動時に読み出されて内蔵メモリ２２に展開される。
内蔵メモリ２２としては、例えばＳＲＡＭ（Static Random Access Memory）等の揮発性メモリが用いられる。  ホストインターフェイス回路２３は、ホスト機器２に接続され、メモリシステム１とホスト機器２との間の通信を司る。例えばホストインターフェイス回路２３は、メモリシステム１とホスト機器２との間で、データ、コマンド、及びアドレスの転送を制御する。ホストインターフェイス回路２３は、例えばＳＡＴＡ（Serial Advanced Technology Attachment）、ＳＡＳ（Serial Attached SCSI）、ＰＣＩｅ（PCI Express）（登録商標）等の通信インターフェイス規格をサポートする。つまり、メモリシステム１に接続されるホスト機器２としては、例えばＳＡＴＡ、ＳＡＳ、ＰＣＩｅ等のインターフェイスを含むコンピュータ等が挙げられる。
【００４５】
タイマ２４は、メモリシステム１の各種動作に関連する時間を計測することが出来る。例えばタイマ２４は、１サイクルのパトロール動作が実行される期間を計測する。以下の説明では、この１サイクルのパトロール動作が実行される期間のことをパトロール期間と称する。
【００４６】
温度計２５は、メモリシステム１のシステム温度を計測することが出来る。具体的には、温度計２５は、温度計２５が設置された箇所の温度を計測することにより、メモリコントローラ２０全体の温度や、ＮＡＮＤ型フラッシュメモリ１０の温度を間接的に計測する。計測された温度は、例えばパトロール動作時にプロセッサ２１によって参照される。
【００４７】
ＮＡＮＤインターフェイス回路２６は、ＮＡＮＤ型フラッシュメモリ１０Ａ及び１０Ｂに接続され、メモリコントローラ２０とＮＡＮＤ型フラッシュメモリ１０との間の通信を司る。ＮＡＮＤインターフェイス回路２６は、ＮＡＮＤインターフェイス規格に基づいて構成されている。
【００４８】
ＤＲＡＭインターフェイス回路２７は、ＤＲＡＭ１１に接続され、メモリコントローラ２０とＤＲＡＭ１１との間の通信を司る。ＤＲＡＭインターフェイス回路２７は、ＤＲＡＭインターフェイス規格に基づいて構成されている。尚、ＤＲＡＭインターフェイス回路２７の構成はこれに限定されず、メモリシステム１が備える揮発性メモリの種類に基づいて変更することが出来る。
【００４９】
尚、以上で説明したメモリコントローラ２０の構成はあくまで一例であり、これに限定されない。例えば、タイマ２４及び温度計２５はメモリコントローラ２０に含まれていなくても良く、メモリコントローラ２０と外部接続されても良い。また、温度計２５は、ＮＡＮＤ型フラッシュメモリ１０に内蔵されていても良い。
【００５０】
以上で説明したメモリコントローラ２０においてプロセッサ２１は、パトロール動作に関連したプログラムを内蔵メモリ２２に展開して、当該プログラムを実行する。図６は、パトロール動作時におけるプロセッサ２１の詳細な構成例を示している。図６に示すようにプロセッサ２１は、パトロール動作時において、パトロール制御部５０及びコマンド発行部５１として機能する。
【００５１】
パトロール制御部５０は、メモリセルアレイ１１に含まれたブロックＢＬＫに対するパトロール期間を設定する。このパトロール期間は繰り返し設定され、各パトロール期間は例えば連続している。そしてパトロール制御部５０は、設定したパトロール期間毎に、パトロール動作の対象のブロックＢＬＫに対するダミーリードの実行をコマンド発行部５１に命令する。以下の説明では、パトロール動作の対象となるブロックＢＬＫのことをパトロール対象ブロックと称する。尚、パトロール対象ブロックは、全てのブロックＢＬＫであっても良いし、任意のブロックＢＬＫであっても良い。また、本明細書においてダミーリードとは、例えば図４を用いて説明した読み出し電圧や読み出しパス電圧等を用いた動作のことを示している。つまり、本明細書におけるダミーリードでは、通常の読み出し動作のように読み出しデータの判定が行われなくても良い。
【００５２】
コマンド発行部５１は、パトロール制御部５０の命令に基づいてダミーリードに関するコマンド及びアドレスを発行する。発行されたコマンド及びアドレスは、ＮＡＮＤインターフェイス回路２６を介してＮＡＮＤ型フラッシュメモリ１０に転送される。
【００５３】
尚、以上の説明では、コマンド発行部５１がダミーリードに関するコマンド及びアドレスを発行する場合を例に説明したが、これに限定されない。例えば、各種動作に関連するコマンド及びアドレスは、プロセッサ２１の制御に基づいてＮＡＮＤインターフェイス回路２６が発行しても良い。
【００５４】
［１−２］動作
第１実施形態に係るメモリシステム１においてメモリコントローラ２０は、パトロール動作を自発的に実行する。以下では、メモリコントローラ２０が１つのＮＡＮＤ型フラッシュメモリ１０に対してパトロール動作を実行する場合を例に説明する。
【００５５】
パトロール動作では、パトロール期間毎にパトロール対象ブロックに対するダミーリードが実行される。具体的には、各パトロール期間においてプロセッサ２１がホスト機器２からの命令に基づいた動作を実行する合間に、パトロール制御部５０がコマンド発行部５１を介してダミーリードの実行をＮＡＮＤ型フラッシュメモリ１０に命令する。そして、第１実施形態においてパトロール制御部５０は、パトロール期間の残り時間に基づいてパトロール処理レートを変更する。パトロール処理レートは、単位時間あたりにダミーリードが実行されるブロックＢＬＫの数を示している。
【００５６】
以下に、図７を用いてパトロール動作の詳細について説明する。図７は、第１実施形態に係るメモリシステムにおけるパトロール動作の一例を示すフローチャートであり、パトロール期間におけるメモリシステム１の動作例を示している。
【００５７】
図７に示すようにパトロール期間が開始すると、まずプロセッサ２１は、メモリコントローラ２０がホスト機器２からの命令を受信しているかどうかを確認する（ステップＳ１０）。
【００５８】
メモリコントローラ２０がホスト機器２からの命令を受信している場合（ステップＳ１０、ＹＥＳ）、プロセッサ２１は、ホスト機器２からの命令に基づいた動作を実行する（ステップＳ１１）。ホスト機器２からの命令に基づいた動作としては、例えば読み出し動作、書き込み動作等が挙げられる。
【００５９】
ホスト機器２からの命令に基づいた動作が終了すると、パトロール制御部５０は、パトロール処理レートを更新する（ステップＳ１２）。具体的には、パトロール制御部５０は、パトロール期間の残り時間に基づいて、当該パトロール期間内にパトロール対象ブロックに対するダミーリードが完了するように、パトロール処理レートを更新する。
【００６０】
そして、パトロール制御部５０は、更新されたパトロール処理レートに基づいてダミーリードを実行する（ステップＳ１３）。具体的には、パトロール制御部５０は、ダミーリードの命令をコマンド発行部５１に送信し、コマンド発行部５１が当該命令に基づいてコマンド及びアドレスを発行する。そしてコマンド発行部５１が、発行したコマンド及びアドレスを、ＮＡＮＤインターフェイス回路２６を介してＮＡＮＤ型フラッシュメモリ１０に送信し、ＮＡＮＤ型フラッシュメモリ１０が受信した当該コマンド及びアドレスに基づいてダミーリードを実行する。
【００６１】
メモリコントローラ２０がホスト機器２からの命令を受信していない場合（ステップＳ１０、ＮＯ）、パトロール制御部５０は、所定のパトロール処理レートに基づいて、ステップＳ１３におけるダミーリードを実行する。このパトロール処理レートは、ステップＳ１２によりパトロール処理レートが更新されている場合にはその値を利用し、ステップＳ１２における動作が実行されていない場合には、例えばパトロール期間の時間に基づいて予め算出されたパトロール処理レートを利用する。
【００６２】
ステップＳ１３におけるダミーリードが終了すると、パトロール制御部５０は、全てのパトロール対象ブロックに対するダミーリードが完了したかどうかを確認する（ステップＳ１４）。
【００６３】
全てのパトロール対象ブロックに対するダミーリードが完了していない場合（ステップＳ１４、ＮＯ）、プロセッサ２１はステップＳ１０の動作に戻り、ステップＳ１０〜Ｓ１４の動作を繰り返し実行する。
【００６４】
全てのパトロール対象ブロックに対するダミーリードが完了した場合（ステップＳ１４、ＹＥＳ）、プロセッサ２１は当該パトロール期間におけるパトロール動作を終了する。当該パトロール期間が終了して次のパトロール期間に移行すると、パトロール制御部５０は、上記ステップＳ１０〜Ｓ１４の動作を再び実行する。
【００６５】
以上で説明したパトロール期間におけるパトロール処理レートの変化の一例が、図８に示されている。図８は、図７を用いて説明したパトロール動作において、パトロール期間の途中に１回のホストリードが実行された場合における一例を示している。図８の縦軸はパトロール処理レートに対応し、横軸は時間に対応している。
【００６６】
図８に示すように、時刻ｔ０においてパトロール期間が開始し、パトロール制御部５０はパトロール処理レートを例えば１０（BLK/sec）に設定する。このパトロール処理レートは、パトロール期間においてホスト機器２の命令に基づいた動作が実行されない場合に、全てのパトロール対象ブロックに対するダミーリードを完了させることが可能な数値に設定される。時刻ｔ１においてホストリードが実行されると、ホスト機器２の命令に基づいた動作によりパトロール動作に基づくダミーリードが進行しないため、パトロール処理レートが０（BLK/sec）となる。時刻ｔ２においてホストリードが終了すると、パトロール制御部５０はパトロール処理レートを例えば３０（BLK/sec）に設定する。すると、時刻ｔ３までに全てのパトロール対象ブロックに対するダミーリードが完了し、当該パトロール期間が終了する。このように、ホストリードが実行された後の時刻ｔ２〜ｔ３におけるパトロール処理レートは、ホストリードが実行される前の時刻ｔ０〜ｔ１におけるパトロール処理レートよりも高いレートに設定される。
【００６７】
以上で説明したパトロール処理レートを変化させる方法としては、例えばダミーリードを連続して実行することや、１回のダミーリードで選択するブロックＢＬＫの数を変更することが挙げられる。以下に、１つのブロックＢＬＫを対象とした第１ダミーリードと、複数のブロックＢＬＫを対象とした第２ダミーリードとについて説明する。
【００６８】
まず、図９を用いて第１ダミーリードの詳細について説明する。図９は、第１ダミーリードにおけるコマンドシーケンス及び波形の一例を示し、入出力信号Ｉ／Ｏにおけるコマンド、レディビジー信号ＲＢｎの波形、及びワード線ＷＬの波形を示している。
【００６９】
図９に示すように、まずメモリコントローラ２０はコマンド“ｘｘｈ”を発行してＮＡＮＤ型フラッシュメモリ１０に送信し、ＮＡＮＤ型フラッシュメモリ１０は受信したコマンド“ｘｘｈ”をコマンドレジスタ１５Ｃに保持する。コマンド“ｘｘｈ”はＳＬＣ方式の動作を命令するコマンドである。次に、メモリコントローラ２０はコマンド“００ｈ”を発行してＮＡＮＤ型フラッシュメモリ１０に送信し、ＮＡＮＤ型フラッシュメモリ１０は受信したコマンド“００ｈ”をコマンドレジスタ１５Ｃに保持する。コマンド“００ｈ”は読み出しの為のアドレス入力受付コマンドに相当し、ＮＡＮＤ型フラッシュメモリ１０にデータの読み出しを命令するコマンドである。次に、メモリコントローラ２０はアドレス情報ＡＤＤをＮＡＮＤ型フラッシュメモリ１０に送信し、ＮＡＮＤ型フラッシュメモリ１０は受信したアドレス情報ＡＤＤをアドレスレジスタ１５Ｂに保持する。このアドレス情報ＡＤＤは、第１ダミーリードを実行する対象のアドレスを指定するものであり、例えばブロックＢＬＫにおいて最上層に設けられたワード線ＷＬ（例えば、図５に示すワード線ＷＬ７）が選択される。第１ダミーリードにおいて選択されるワード線ＷＬはこれに限定されず、その他のワード線ＷＬが選択されても良い。次に、メモリコントローラ２０はコマンド“３０ｈ”をＮＡＮＤ型フラッシュメモリ１０に送信し、ＮＡＮＤ型フラッシュメモリ１０は受信したコマンド“３０ｈ”をコマンドレジスタ１５Ｃに保持する。コマンド“３０ｈ”は、直前に送信されたコマンドＣＭＤ及びアドレス情報ＡＤＤに基づいて、シーケンサ１７に第１ダミーリードを実行させるコマンドである。シーケンサ１７は、コマンドレジスタ１５Ｃにコマンド“３０ｈ”が保持されると、レディビジー信号ＲＢｎを“Ｈ”レベルから“Ｌ”レベルに遷移させて、第１ダミーリードを実行する。
【００７０】
第１ダミーリードにおいてロウデコーダモジュール１３は、選択されたワード線ＷＬに読み出し電圧ＡＲを印加し、非選択のワード線ＷＬに読み出しパス電圧ＶＲＥＡＤを印加する。すると、選択されたワード線ＷＬの電圧は、例えば接地電圧ＶＳＳから読み出し電圧ＡＲまで上昇し、非選択のワード線ＷＬの電圧は、例えば接地電圧ＶＳＳから読み出しパス電圧ＶＲＥＡＤまで上昇する。そしてロウデコーダモジュール１３は、これらの電圧を所定の時間印加すると、選択及び非選択のワード線ＷＬの電圧を接地電圧ＶＳＳまで下降させる。そしてシーケンサ１７は、レディビジー信号ＲＢｎを“Ｌ”レベルから“Ｈ”レベルに遷移させて、メモリコントローラ２０に第１ダミーリードの終了を通知する。尚、以下の説明では、第１ダミーリード時にレディビジー信号ＲＢｎが“Ｌ”レベルとなっている期間のことを、期間Ｔ１と称する。
【００７１】
以上で説明した第１ダミーリードを命令するコマンドセットは、例えばＳＬＣ方式の読み出し動作を命令するコマンドセットと同様である。つまり、第１ダミーリードにおけるＮＡＮＤ型フラッシュメモリ１０の動作は、ＳＬＣ方式の読み出し動作と同様である。尚、第１ダミーリードにおいてＮＡＮＤ型フラッシュメモリ１０が読み出したデータは、メモリコントローラ２０に転送されても良いし、転送されなくても良い。
【００７２】
次に、図１０を用いて第２ダミーリードの詳細について説明する。図１０は、第２ダミーリードにおけるコマンドシーケンス及び波形の一例を示し、入出力信号Ｉ／Ｏにおけるコマンド、レディビジー信号ＲＢｎの波形、及びワード線ＷＬの波形を示している。
【００７３】
図１０に示すように、まずメモリコントローラ２０はコマンド“ｙｙｈ”を発行してＮＡＮＤ型フラッシュメモリ１０に送信し、ＮＡＮＤ型フラッシュメモリ１０は受信したコマンド“ｙｙｈ”をコマンドレジスタ１５Ｃに保持する。コマンド“ｙｙｈ”は複数ブロックＢＬＫを選択したダミーリードを命令するコマンドである。次に、メモリコントローラ２０はアドレス情報ＡＤＤをＮＡＮＤ型フラッシュメモリ１０に送信し、ＮＡＮＤ型フラッシュメモリ１０は受信したアドレス情報ＡＤＤをアドレスレジスタ１５Ｂに保持する。このアドレス情報ＡＤＤは、第２ダミーリードを実行する対象のブロックＢＬＫを指定するものであり、複数のブロックＢＬＫを指定するアドレス情報を含むことが可能である。シーケンサ１７は、アドレスレジスタ１５Ｂにアドレス情報ＡＤＤが保持されると、レディビジー信号ＲＢｎを“Ｈ”レベルから“Ｌ”レベルに遷移させて、第２ダミーリードを実行する。
【００７４】
第２ダミーリードにおいてロウデコーダモジュール１３は、選択した複数のブロックＢＬＫに対応する全てのワード線ＷＬに対して、例えば読み出しパス電圧ＶＲＥＡＤを印加する。すると、選択されたワード線ＷＬの電圧は、接地電圧ＶＳＳから読み出しパス電圧ＶＲＥＡＤまで上昇する。このとき、ワード線ＷＬの電圧が接地電圧ＶＳＳから読み出しパス電圧ＶＲＥＡＤまで上昇するまでに要する時間は、第１ダミーリードよりも長い。そしてロウデコーダモジュール１３は、ワード線ＷＬに対して読み出しパス電圧ＶＲＥＡＤを所定の時間印加すると、ワード線ＷＬの電圧を接地電圧ＶＳＳまで下降させる。そしてシーケンサ１７は、レディビジー信号ＲＢｎを“Ｌ”レベルから“Ｈ”レベルに遷移させて、メモリコントローラ２０に第２ダミーリードの終了を通知する。第２ダミーリード時にレディビジー信号ＲＢｎが“Ｌ”レベルとなっている期間Ｔ２は、期間Ｔ１よりも長い。つまり、第２ダミーリードが実行される時間は、第１ダミーリードよりも長い。また、第２ダミーリードが実行される時間は、同じ第２ダミーリードであっても、一般的に選択したブロックＢＬＫの数が多くなるほど長くなる。
【００７５】
以上のように第１及び第２ダミーリードは、メモリコントローラ２０の１回の命令に基づいてダミーリードを実行することが可能なブロックＢＬＫの数が異なっている。第２ダミーリードでは、一度にダミーリードを実行することが可能なブロックＢＬＫの数が多いため、第２ダミーリードを利用した場合のパトロール処理レートは、一般的に第１ダミーリードを利用した場合のパトロール処理レートよりも高くなる。従って、メモリコントローラ２０は、例えばパトロール処理レートを低くしたい場合に第１ダミーリードを利用し、パトロール処理レートを高くしたい場合に第２ダミーリードを利用する。
【００７６】
例えば、ホスト機器２の命令とダミーリードの命令とが衝突した際に、ホスト機器２からメモリシステム１へのアクセス頻度が低い場合、ダミーリードのスループットを低くすることが総合的なレイテンシ改善に繋がる。一方で、ホスト機器２からメモリシステム１へのアクセス頻度が高い場合、ダミーリードのスループットを高くすることが総合的なレイテンシ改善に繋がる。そこで、パトロール制御部５０は、例えばホスト機器２からのアクセス頻度に応じて第１及び第２ダミーリードを使い分ける。
【００７７】
以下に、本例について図１１を用いて説明する。図１１は、パトロール期間におけるダミーリード方法の選択基準の一例を示し、内蔵メモリ２２に保持されたコマンドキューの状態を示している。本例においてパトロール制御部５０は、キュー長に閾値を設けることによって第１及び第２ダミーリードを使い分ける。キュー長とは、内蔵メモリ２２が保持するコマンドキューの長さのことを示し、以下ではキュー長に設けられた閾値のことをキュー閾値と称する。キュー閾値は、任意の値に設定することが可能である。
【００７８】
図１１に示すように、ケース１では、ホスト機器２による読み出し命令に対応するキュー長が、キュー閾値以下となっている。この状態は、例えばホスト機器２からメモリシステム１に対するアクセス頻度が低い状態であることを示している。この場合にパトロール制御部５０は、続くダミーリード方法に例えば第１ダミーリードを選択して、コマンドキューに第１ダミーリードの命令を追加する。
【００７９】
ケース２では、ホスト機器２による読み出し命令に対応するキュー長が、キュー閾値を超えている。この状態は、例えばホスト機器２からメモリシステム１に対するアクセス頻度が高い状態であることを示している。この場合にパトロール制御部５０は、続くダミーリード方法に例えば第２ダミーリードを選択して、コマンドキューに第２ダミーリードの命令を追加する。
【００８０】
以上のように、パトロール制御部５０は、ホスト機器２からのアクセス頻度が低い場合、処理時間の比較的短い第１ダミーリードを実行し、アクセス頻度が高い場合、処理時間の長い第２ダミーリードを実行する。これによりメモリシステム１は、ホスト機器２の命令と、ダミーリードの命令とが衝突した場合におけるレイテンシの悪化を抑制することが出来る。尚、パトロール制御部５０は、メモリコントローラ２０が一度に受信できるコマンドの数（キュー深さ）に基づいて第１ダミーリードと第２ダミーリードと使い分けても良い。
第１ダミーリードと第２ダミーリードとの選択方法はこれに限定されず、パトロール制御部５０は、必要なパトロール処理レートに基づいて第１ダミーリードと第２ダミーリードとを使い分けることが出来る。
【００８１】
尚、以上の説明では、パトロール期間内に全てのパトロール対象ブロックに対するダミーリードを完了させる場合を例に説明したが、これに限定されない。例えば、ホスト機器２からの命令が連続する場合には、パトロール期間中に全てのパトロール対象ブロックに対するダミーリードが完了しないこともある。このような場合にパトロール制御部５０は、ホスト機器２からの命令に割り込んでダミーリードを命令することによって、当該パトロール期間内に全てのパトロール対象ブロックに対するダミーリードを完了させるように動作しても良い。
【００８２】
［１−３］第１実施形態の効果
以上で説明した第１実施形態に係るメモリシステム１によれば、読み出し動作時におけるリトライリードの発生を抑制することが出来る。以下に、第１実施形態に係るメモリシステム１の詳細な効果について説明する。
【００８３】
メモリセルが三次元に積層されたＮＡＮＤ型フラッシュメモリ１０において、ＮＡＮＤストリングＮＳを構成するメモリセルトランジスタＭＴのチャネルは、例えば図５に示すように導電性の半導体材料４０を共有した構造となっている。このような構造のＮＡＮＤ型フラッシュメモリ１０では、例えば図１２に示すような現象が生じることがある。図１２は、読み出し動作時におけるワード線ＷＬ、及びＮＡＮＤストリングＮＳのチャネルにおける波形の一例を示している。
【００８４】
図１２に示すように、読み出し動作が実行されるとロウデコーダモジュール１３は、選択したブロックＢＬＫの非選択のワード線ＷＬに読み出しパス電圧ＶＲＥＡＤを印加する。そして読み出しデータが確定すると、ロウデコーダモジュール１３は、非選択のワード線ＷＬの電圧を接地電圧ＶＳＳまで下降させる。このとき、ワード線ＷＬの電圧がメモリセルトランジスタＭＴの閾値電圧以下になると、メモリセルトランジスタＭＴがオフ状態となる。そして、さらにワード線ＷＬの電圧が下降すると、ＮＡＮＤストリングＮＳのチャネル電位が、ワード線ＷＬとのカップリングにより接地電圧から負の電圧に下降する。読み出し動作後には、ブロックＢＬＫを非選択とする結果、ワード線ＷＬがフローティング状態となる。この状態において、負の電位のチャネル電位が時間経過に伴い接地電圧に戻ると、ワード線ＷＬの電圧が、ＮＡＮＤストリングＮＳのチャネルとのカップリングにより、例えば４Ｖ程度まで上昇する。この現象のことを、図１２では“Creep up”と示している。
【００８５】
Creep upによってワード線ＷＬの電圧が上昇した状態のブロックＢＬＫでは、当該ブロックＢＬＫにおけるメモリセルトランジスタＭＴの制御ゲート−チャネル間に電位差が生じ、読み出し動作後の時間経過（例えば、１０〜１００ｍｓ）によって閾値電圧がシフトすることがある。
【００８６】
そして、Creep upにより上昇したワード線ＷＬの電圧は、図１２に示すように時間経過に伴い接地電圧に戻る。Creep upによるワード線ＷＬの電圧の変動が収まってからさらに時間が経過する（例えば、数分間から数時間程度）と、上昇したメモリセルトランジスタＭＴの閾値電圧は元の状態に戻る。このようにメモリセルトランジスタＭＴは、閾値電圧が初期状態である第１状態と、閾値電圧がCreep upの影響を受けてシフトしている第２状態との２つの状態を取り得る。これに対して読み出し電圧は、例えば第２状態に最適化して設定されるため、Creep upが生じ得るＮＡＮＤ型フラッシュメモリ１０では、メモリセルトランジスタＭＴを第２状態に維持することが好ましい。
【００８７】
そこで、第１実施形態に係るメモリシステム１では、メモリコントローラ２０がＮＡＮＤ型フラッシュメモリ１０に対して定期的にダミーリードを実行する。具体的には、パトロール制御部５０が、メモリセルトランジスタＭＴが第２状態から第１状態に遷移する時間よりも短い時間にパトロール期間を設定し、パトロール期間毎にパトロール対象ブロックに対するダミーリードの実行を命令する。
【００８８】
より具体的には、パトロール制御部５０は、例えば第１状態のメモリセルトランジスタＭＴを含むブロックＢＬＫに対してダミーリードを実行する。すると、ダミーリードが実行されたブロックＢＬＫにおいてCreep upが発生し、メモリセルトランジスタＭＴが第１状態から第２状態に移行する。そして、パトロール制御部５０は、時間経過によりメモリセルトランジスタＭＴが第２状態から第１状態に移行する前に、第２状態のメモリセルトランジスタＭＴを含むブロックＢＬＫに対して再びダミーリードを実行する。すると、第２状態のメモリセルトランジスタＭＴを含むブロックにおいて再びCreep upが発生し、ワード線ＷＬの電圧が上昇する。第２状態のメモリセルトランジスタＭＴのゲート電極に対してCreep upの電圧が印加されると、当該メモリセルトランジスタＭＴは、第１状態から第２状態に移行した時点と同様の状態になる。これ以降も同様に、パトロール制御部５０は、各ブロックＢＬＫに対して、メモリセルトランジスタＭＴが第２状態から第１状態に移行する前にダミーリードを実行することによって、第２状態のメモリセルトランジスタＭＴを第２状態に維持する。
【００８９】
これにより、第１実施形態に係るメモリシステム１は、第２状態に維持されたメモリセルトランジスタＭＴに対して読み出し動作を実行することが出来る。従って、第１実施形態に係るメモリシステム１は、メモリセルトランジスタＭＴの閾値電圧の変動の影響により生じるエラービットの増加と、エラービットの増加により生じるリトライリードの発生を抑制することが出来る。つまり第１実施形態に係るメモリシステム１は、読み出しエラー起因の動作速度の低下を抑制することが出来る。
【００９０】
［２］第２実施形態
第２実施形態に係るメモリシステム１は、消費電力を抑制した低消費電力モードで動作することが可能であり、低消費電力モード時に自発的にパトロール動作を実行する。以下に、第２実施形態に係るメモリシステム１について、第１実施形態と異なる点を説明する。
【００９１】
［２−１］構成
第２実施形態に係るメモリシステム１は、例えばホスト機器２から所定の命令を受信した場合、又はホスト機器２からの命令が所定の期間に亘って無い場合に自発的に低消費電力モードに移行する。低消費電力モードにおいてメモリシステム１は、電力供給されるモジュールが制限されることにより消費電力が抑制される一方で、メモリコントローラ２０のプロセッサ２１の一部分とタイマ２４への電力供給は継続される。
【００９２】
図１３は、低消費電力モード時におけるプロセッサ２１の詳細な構成例を示している。図１３に示すように、第２実施形態におけるプロセッサ２１は、第１パトロール制御部５０Ａ、第２パトロール制御部５０Ｂ、及びコマンド発行部５１として機能する。
【００９３】
第１パトロール制御部５０Ａ及び第２パトロール制御部５０Ｂは、例えば第１実施形態で図６を用いて説明したパトロール制御部５０と同様である。低消費電力モード時において第１パトロール制御部５０Ａは、電源の供給が停止され、通常動作時よりも消費電力が低い低消費電力状態になる。低消費電力モード時において第２パトロール制御部５０Ｂは、例えばタイマ２４のカウントに基づいて、各パトロール期間におけるダミーリードの進捗を確認する。そして第２パトロール制御部５０Ｂは、例えばパトロール期間中にダミーリードの進捗が所定の進捗を下回った場合に、コマンド発行部５１、ＮＡＮＤインターフェイス回路２６、及びＮＡＮＤ型フラッシュメモリ１０に対する電力供給を再開させて、パトロール対象ブロックに対するダミーリードの実行をコマンド発行部５１に命令する。また、第２パトロール制御部５０Ｂは、当該パトロール期間におけるダミーリード済みのブロック数Ｎcompを管理する。ダミーリード済みのブロック数Ｎcompは、例えば内蔵メモリ２２に保持され、ダミーリードの進行に伴い第２パトロール制御部５０Ｂによって更新される。
【００９４】
コマンド発行部５１は、第１実施形態で図６を用いて説明したコマンド発行部５１と同様である。低消費電力モード時においてコマンド発行部５１は、例えば第２パトロール制御部５０Ｂからの命令に基づいて低消費電力状態から復帰し、第２パトロール制御部５０Ｂの命令に基づいてダミーリードに関するコマンド及びアドレスを発行する。発行されたコマンド及びアドレスは、ＮＡＮＤインターフェイス回路２６を介してＮＡＮＤ型フラッシュメモリ１０に転送され、ＮＡＮＤ型フラッシュメモリ１０は、当該コマンド及びアドレスに基づいてダミーリードを実行する。第２実施形態に係るメモリシステム１のその他の構成は、第１実施形態に係るメモリシステム１の構成と同様のため、説明を省略する。
【００９５】
［２−２］動作
図１４は、第２実施形態に係るメモリシステム１におけるパトロール動作の一例を示すフローチャートであり、低消費電力モード時におけるメモリシステム１の動作例を示している。
【００９６】
図１４に示すように低消費電力モードが開始すると、まず第２パトロール制御部５０Ｂは、ダミーリード済みのブロック数を確認し（ステップＳ２０）、ダミーリード済みのブロック数Ｎcompが所定の閾値Ｎth以下であるかどうかを確認する（ステップＳ２１）。この所定の閾値Ｎthは、当該パトロール期間の残り時間に基づいて変動することが出来る。
【００９７】
ＮcompがＮthを超えている（Ｎcomp＞Ｎth）場合（ステップＳ２１、ＮＯ）、第２パトロール制御部５０Ｂは、ステップＳ２０に戻り、ダミーリード済みのブロックＢＬＫ数Ｎcompと、時間経過により変化する閾値Ｎthとの比較を繰り返す。
【００９８】
ＮcompがＮth以下となった（Ｎcomp≦Ｎth）の場合（ステップＳ２１、ＹＥＳ）、第２パトロール制御部５０Ｂは、コマンド発行部５１、ＮＡＮＤインターフェイス回路２６、及びＮＡＮＤ型フラッシュメモリ１０を低消費電力状態から復帰させて、所定のパトロール処理レートを適用したダミーリードを実行する。このダミーリードは、例えば第１実施形態で図７を用いて説明したステップＳ１３におけるダミーリードと同様である。
【００９９】
そして、第２パトロール制御部５０Ｂは、再びダミーリード済みのブロック数Ｎcompを確認し（ステップＳ２３）、ダミーリード済みのブロック数Ｎcompが目標値Ｎtar以上であるかどうかを確認する（ステップＳ２４）。この目標値Ｎtarは、閾値Ｎthよりも高い値であり、パトロール期間中に全てのパトロール対象ブロックに対するダミーリードが完了するように設定される。
【０１００】
ＮcompがＮtar未満である（Ｎcomp＜Ｎtar）場合（ステップＳ２４、ＮＯ）、第２パトロール制御部５０Ｂは、ステップＳ１３に戻り、所定のパトロール処理レートを適用したダミーリードと、ダミーリード済みのブロック数Ｎcompの確認とを繰り返す。
【０１０１】
ＮcompがＮtar以上となった（Ｎcomp≧Ｎth）場合（ステップＳ２４、ＹＥＳ）、第２パトロール制御部５０Ｂは、コマンド発行部５１、ＮＡＮＤインターフェイス回路２６、及びＮＡＮＤ型フラッシュメモリ１０を低消費電力状態に移行させ、メモリコントローラ２０が通常の低消費電力モードに戻る。つまり第２パトロール制御部５０Ｂは、ステップＳ２０に戻り、以上で説明した動作を繰り返し実行する。
【０１０２】
以上で説明した低消費電力モード時におけるパトロール動作の一例が、図１５に示されている。図１５は、低消費電力モード時のパトロール期間におけるダミーリード済ブロック数の変化の一例を示し、縦軸がダミーリード済みブロック数Ｎcompに対応し、横軸が時間に対応している。また、図１５には、所定の閾値Ｎthの時間変化と、目標閾値Ｎtarの時間変化とがそれぞれ破線で示され、パトロール対象ブロックとしてｎ個のブロックＢＬＫが指定されている。
【０１０３】
図１５に示すように、時刻ｔ０においてＮcompは、“０”（ダミーリード済みブロック無し）となっている。そして時刻ｔ１においてＮcompが、Ｎth以下となる。すると第２パトロール制御部５０Ｂは、関連するコンポーネントを低消費電力状態から復帰させて、所定のパトロール処理レートでダミーリードを実行する。時刻ｔ２においてＮcompがＮtar以上になると、第２パトロール制御部５０Ｂは関連するコンポーネントを低消費電力状態に移行させ、メモリシステム１が通常の低消費電力モードに戻る。以降もこのような動作が繰り返し実行される。簡潔に説明すると、第２パトロール制御部は、ダミーリードの進捗状況に基づいて関連するコンポーネントの状態を変化させて、時刻ｔ３にダミーリードを実行し、時刻ｔ４にダミーリードを停止し、時刻ｔ５にダミーリードを実行する。そして時刻ｔ６において、Ｎcompがパトロール対象ブロック数に達すると、第２パトロール制御部５０Ｂは当該パトロール期間におけるパトロール動作を終了する。
【０１０４】
尚、以上の説明では、ダミーリード済みブロック数Ｎcompと所定の閾値Ｎthとの比較結果に基づいて、第２パトロール制御部５０Ｂが低消費電力モード中のダミーリードを命令する場合を例に説明したが、これに限定されない。例えば、第２パトロール制御部５０Ｂは、低消費電力モード時において、図１６に示すようにタイマ２４のカウントに基づいて定期的にダミーリードの実行を命令しても良い。図１６は、第２実施形態に係るメモリシステム１におけるパトロール動作の変形例を示すフローチャートであり、低消費電力モード時におけるメモリシステム１の動作例を示している。
【０１０５】
図１６に示すように低消費電力モードが開始すると、まず第２パトロール制御部５０Ｂは、タイマ２４のカウントを確認し（ステップＳ３０）、所定の時間が経過したかどうかを確認する（ステップＳ３１）。
【０１０６】
タイマ２４のカウントが所定の時間を経過していない場合（ステップＳ３１、ＮＯ）、第２パトロール制御部５０Ｂは、ステップＳ３０に戻り、タイマ２４のカウントの確認を継続する。
【０１０７】
タイマ２４のカウントが所定の時間を経過した場合（ステップＳ３１、ＹＥＳ）、第２パトロール制御部５０Ｂは、コマンド発行部５１、ＮＡＮＤインターフェイス回路２６、及びＮＡＮＤ型フラッシュメモリ１０を低消費電力状態から復帰させて、所定のパトロール処理レートを適用したダミーリードを実行する。このダミーリードは、例えば第１実施形態で図７を用いて説明したステップＳ１３におけるダミーリードと同様である。
【０１０８】
ステップＳ１３におけるダミーリードが終了すると、第２パトロール制御部５０Ｂは、コマンド発行部５１、ＮＡＮＤインターフェイス回路２６、及びＮＡＮＤ型フラッシュメモリ１０を低消費電力状態に移行させ、メモリコントローラ２０が通常の低消費電力モードに戻る。つまり第２パトロール制御部５０Ｂは、ステップＳ３０に戻り、以上で説明した動作を繰り返し実行する。
【０１０９】
尚、ステップＳ３１における所定の時間は、例えばパトロール期間においてパトロール対象ブロックに対するダミーリードが完了するように設定される。このような方法を用いてもメモリシステム１は、図１５に示すように低消費電力モード時のパトロール期間におけるダミーリードを進行することが出来る。
【０１１０】
［２−３］第２実施形態の効果
以上で説明した第２実施形態に係るメモリシステム１に依れば、低消費電力モードから復帰した際の動作速度の低下を抑制することが出来る。以下に、第２実施形態に係るメモリシステム１の詳細な効果について説明する。
【０１１１】
メモリシステム１は、例えばホスト機器２からの命令が長時間無い場合や、ホスト機器２からの電力モード切り替え命令を受信した場合に、低消費電力モードに移行することがある。低消費電力モードは、電力の供給するコンポーネントを制限することによって消費電力を抑制するため、例えば第１実施形態で説明したパトロール動作が停止してしまう場合がある。
【０１１２】
そこで、第２実施形態に係るメモリシステム１では、低消費電力モード時においても定期的にダミーリードを実行する。具体的には、例えばメモリコントローラ２０の第２パトロール制御部５０Ｂとタイマ２４が、低消費電力モード時においても動作する。低消費電力モード時において第２パトロール制御部５０Ｂは、例えばパトロール期間においてダミーリード済みブロック数が所定の値を下回ったことや、タイマ２４のカウントで所定の時間が経過したこと等を検知する。そしてパトロール制御部５０Ｂは、一時的にメモリシステム１の所定のコンポーネントを低消費電力状態から復帰させて、ＮＡＮＤ型フラッシュメモリ１０に対してダミーリードの実行を命令する。
【０１１３】
これにより、第２実施形態に係るメモリシステム１は、低消費電力モード中にパトロール対象ブロックのメモリセルトランジスタＭＴが第１状態に移行することを抑制することが出来る。従って、第２実施形態に係るメモリシステム１は、低消費電力モードから復帰した際の読み出し動作におけるリトライリードの発生を抑制することが出来るため、動作速度の低下を抑制することが出来る。
【０１１４】
［３］第３実施形態
第３実施形態に係るメモリシステム１は、メモリシステム１の温度状態に基づいてパトロール期間の長さを変更するものである。以下に、第３実施形態に係るメモリシステム１について、第１及び第２実施形態と異なる点を説明する。
【０１１５】
［３−１］構成
図１７は、温度状態に基づいてパトロール期間を変更する場合におけるプロセッサ２１の詳細な構成例を示している。図１７に示すように第３実施形態においてプロセッサ２１は、第１実施形態において図６を用いて説明したパトロール制御部５０に対して、温度計２５の情報が入力される。そして、第３実施形態におけるパトロール制御部５０は、温度計２５からの温度情報に基づいてパトロール期間を変更する。第３実施形態に係るメモリシステム１のその他の構成は、第１実施形態に係るメモリシステム１の構成と同様のため、説明を省略する。
【０１１６】
［３−２］動作
図１８は、第３実施形態に係るメモリシステム１におけるパトロール動作の一例を示すフローチャートであり、温度状態に基づいたメモリシステム１の動作例を示している。
【０１１７】
図１８に示すようにパトロール期間が開始すると、まずパトロール制御部５０は、温度計２５から温度情報を取得し、メモリシステム１のシステム温度を確認する（ステップＳ４０）。次にパトロール制御部５０は、取得した温度情報に基づいて、当該パトロール期間の長さを設定する（ステップＳ４１）。具体的には、例えばシステム温度が所定の温度以下である場合に、パトロール期間を初期値よりも長く設定し、システム温度が所定の温度以上である場合に、パトロール期間を初期値よりも短く設定する。尚、パトロール制御部５０がパトロール期間の長さを設定する方法は、これに限定されない。パトロール期間の設定方法としては、システム温度の範囲とパトロール期間の長さとを対応付けたテーブルを参照しても良いし、所定の関数を用いてシステム温度の値からパトロール期間の長さを算出しても良い。そしてパトロール制御部５０は、設定したパトロール期間において、例えば第１実施形態で図７を用いて説明したステップＳ１０〜Ｓ１４のパトロール動作を実行する。当該パトロール期間が終了して次のパトロール期間に移行すると、パトロール制御部５０は、ステップＳ４０に戻り、以上で説明した動作を繰り返し実行する。尚、パトロール制御部５０は、さらにパトロール期間の途中で温度を計測し、パトロール期間を更新しても良い。
【０１１８】
以上で説明した温度状態に基づいたパトロール動作の一例が、図１９に示されている。図１９は、温度状態に基づいたパトロール動作におけるパトロール処理レートの変化の一例を示し、縦軸がパトロール処理レートに対応し、横軸が時間に対応している。また、図１９は、異なる２つのパトロール期間（第１パトロール期間及び第２パトロール期間）を示し、その他のパトロール期間におけるパトロール処理レートは省略されている。
【０１１９】
図１９に示すように、時刻ｔ０においてメモリシステム１のシステム温度が３０℃である場合、パトロール制御部５０はこのシステム温度の値に基づいて第１パトロール期間Ｔ３を設定する。尚、本例では、時刻ｔ０からｔ１までの期間がパトロール期間Ｔ３に対応している。そしてパトロール制御部５０は、当該パトロール期間Ｔ３の長さに基づいて、パトロール処理レートを例えば１０（BLK/sec）に設定し、パトロール動作を実行する。
【０１２０】
時刻ｔ２においてメモリシステム１の温度が７０℃である場合、パトロール制御部５０はこのシステム温度の値に基づいて第２パトロール期間Ｔ４を設定する。尚、本例では、時刻ｔ２からｔ３までの期間がパトロール期間Ｔ４に対応し、期間Ｔ４は期間Ｔ３よりも短く設定される。そしてパトロール制御部５０は、当該パトロール期間Ｔ４の長さに基づいて、パトロール処理レートを例えば３０（BLK/sec）に設定し、パトロール動作を実行する。期間Ｔ４は、第１パトロール期間に対応する時刻ｔ２からｔ３までの時間を示している。
【０１２１】
以上のように、本例において時刻ｔ２におけるシステム温度は、時刻ｔ０におけるシステム温度よりも高いため、例えば第２パトロール期間Ｔ４が第１パトロール期間Ｔ３よりも短く設定される。また、第２パトロール期間Ｔ４が第１パトロール期間Ｔ３よりも短いため、例えば第２パトロール期間におけるパトロール処理レートが、第１パトロール期間におけるパトロール処理レートよりも高く設定される。
【０１２２】
［３−３］第３実施形態の効果
以上で説明した第３実施形態に係るメモリシステム１に依れば、システム温度の変化の影響による動作速度の低下を抑制することが出来る。以下に、第３実施形態に係るメモリシステム１の詳細な効果について説明する。
【０１２３】
メモリセルトランジスタＭＴの閾値電圧は、その温度状態に基づいて、第２状態から第１状態へ移行する時間が変化することがある。例えば、メモリシステム１のシステム温度が高温の場合には、メモリセルトランジスタＭＴが第２状態から第１状態へ移行する時間が短くなり、システム温度が低温の場合には、メモリセルトランジスタＭＴが第２状態から第１状態へ移行する時間が長くなることが考えられる。
【０１２４】
そこで、第３実施形態に係るメモリシステム１では、メモリシステム１の温度状態に基づいて各パトロール期間の長さを最適化する。具体的には、まずプロセッサ２１のパトロール制御部５０が、例えばメモリコントローラ２０に含まれた温度計２５から温度情報を取得する。この温度情報は、メモリシステム１全体のシステム温度と、ＮＡＮＤ型フラッシュメモリ１０内のメモリセルトランジスタＭＴの温度とを間接的に示している。そしてパトロール制御部５０は、この温度情報に基づいて各パトロール期間の長さを設定し、パトロール期間の長さを温度状態に合わせて最適化する。
【０１２５】
例えば、パトロール制御部５０は、メモリシステム１が高温状態であり、メモリセルトランジスタＭＴが第２状態から第１状態に移行するまでの時間が短くなっている場合には、これに合わせてパトロール期間を短く設定する。一方で、パトロール制御部５０は、メモリシステム１が低温状態であり、メモリセルトランジスタＭＴが第２状態から第１状態に移行するまでの時間が長くなっている場合には、これに合わせてパトロール期間を長く設定する。そしてパトロール制御部５０は、設定したパトロール期間におけるパトロール処理レートを決定し、ダミーリードを実行する。
【０１２６】
これにより、第３実施形態に係るメモリシステム１は、メモリセルトランジスタＭＴに対して必要以上にダミーリードを実行することや、メモリセルトランジスタＭＴが第２状態から第１状態に移行した状態でホスト機器２に指示された読み出し動作を実行することを回避することが出来る。従って、第３実施形態に係るメモリシステム１は、システム温度の変化の影響による動作速度の低下を抑制することが出来る。
【０１２７】
尚、第３実施形態に係るメモリシステム１では、ＮＡＮＤ型フラッシュメモリ１０に温度計が内蔵されても良い。この場合にメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１０に内蔵された温度計で計測された温度情報に基づいて各パトロール期間の長さを設定し、パトロール期間の長さを温度状態に合わせて最適化することが出来る。
【０１２８】
［４］第４実施形態
第４実施形態に係るメモリシステム１は、優先度に基づいてパトロール対象ブロックのダミーリード順番を決定するものである。以下に、第４実施形態に係るメモリシステム１について、第１〜第３実施形態と異なる点を説明する。
【０１２９】
［４−１］構成
図２０は、優先度に基づいてパトロール対象ブロックのダミーリード順番を決定する場合におけるＤＲＡＭ１１及びプロセッサ２１の詳細な構成例を示している。図２０に示すように、第４実施形態において、ＤＲＡＭ１１は属性テーブル６０を記憶し、プロセッサ２１は優先度決定部５２としてさらに機能する。
【０１３０】
属性テーブル６０は、各ブロックＢＬＫに関連付けられた情報であり、プロセッサ２１は、メモリシステム１の各種動作に基づいて属性テーブル６０を更新する。属性テーブル６０が含む情報は、例えばブロック状態、書き込み方式、書き込み／消去回数、読み出し回数、最終書き込み時刻、最終アクセス時刻、読み出しエラー回数等の情報を含んでいる。これらの情報を含む属性テーブル６０の一例が、図２１に示されている。図２１に示すように、ブロックＢＬＫは、例えば記憶される情報の属性が異なるものや、当該ブロックＢＬＫに適用された記憶方式が異なるものがある。具体的には、属性テーブル６０は、ブロック状態として、例えばフリー、アクティブ（ユーザ)、アクティブ（デバッグ情報）等、記憶される情報の属性を記録する。また、属性テーブル６０は、ブロックＢＬＫに適用された書き込み方式として、例えばＭＬＣ、ＳＬＣ等を記録する。属性テーブル６０は、最終書き込み時刻及び最終アクセス時刻として、例えば時：分：秒の情報を記録する。これに限定されず、属性テーブル６０に含まれた最終書き込み時刻及び最終アクセス時刻の情報は、日付の情報を含んでいても良い。尚、属性テーブル６０が含む情報はこれに限定されず、ブロックＢＬＫに関連するあらゆる情報を含んでいても良い。
【０１３１】
優先度決定部５２は、ＤＲＡＭ１１が記憶している属性テーブル６０を参照して、パトロール期間におけるダミーリードの優先度を決定する。優先度は、例えば高、中、低の三段階に設定される。尚、優先度の設定は三段階に限定されず、優先度を任意の段階で設定することが出来る。以下に、優先度の設定基準の一例について説明する。
【０１３２】
ブロックＢＬＫの属性に基づいて優先度を設定する場合、優先度決定部５２は、例えばホストリードの対象とならないブロックＢＬＫの優先度を低くする。
【０１３３】
ブロックＢＬＫの信頼性に基づいて優先度を設定する場合、優先度決定部５２は、信頼性マージンの大きいブロック（例えば、ＳＬＣ方式が適用されたブロック、強力なエラー訂正で保護されているブロック、書き込み／消去回数の少ないブロック等）は、優先度を低くし、疲弊したブロック（例えば、書き込み／消去回数の多いブロック、リードディスターブ／データリテンションストレスが大きいブロック等）は、優先度を高くする。
【０１３４】
アクセスのプロファイルに基づいて優先度を設定する場合、優先度決定部５２は、メモリシステム１全体のコマンド数・データ量に占める当該領域へのアクセス回数を基準として、アクセス頻度が低いブロックの優先度を下げて、アクセス頻度が高いブロック、或いは直近にアクセスされたブロックの優先度を上げる。
【０１３５】
時間観点のプロファイルに基づいて優先度を設定する場合、優先度決定部５２は、当該領域にアクセスしてから次にアクセスするまでの時間間隔を基準として、アクセス間隔が短い（例えば、secオーダー）論理ブロックアドレスを含むブロックと、アクセス間隔が長い（例えば、hourオーダー）論理ブロックアドレスを含むブロックの優先度を下げて、アクセス間隔が中間（例えば、minオーダー）の論理ブロックアドレスを含むブロックの優先度を上げる。例えば、アクセス間隔が短いブロックは、ホストリードによってメモリセルトランジスタＭＴを第２状態に維持することが出来るため、優先度を下げることが出来る。アクセス間隔が長いブロックは、アクセス頻度が低く、例えば記憶されている情報の重要度が低いため、優先度を下げることが出来る。アクセス間隔が中間のブロックは、ホストリードによって第２状態を維持することが難しく、且つ第２状態から第１状態に移行した状態でアクセスされる可能性が高いため、優先度が上げられる。
【０１３６】
信頼性観点でのプロファイルに基づいて優先度を設定する場合、優先度決定部５２は、例えばリトライリードが発生した回数の多いブロックのように、エラーレートの高いブロックの優先度を上げる。
【０１３７】
時間経過に基づいて優先度を設定する場合、優先度決定部５２は、書き込み動作を実行した時刻や最後にダミーリードを実行した時刻から、一定時間以上経過したブロックの優先度を上げる。
【０１３８】
尚、優先度決定部５２は、以上で説明した属性テーブル６０に含まれた情報のうちいずれか１つの情報を利用して優先度を決定しても良いし、複数の情報を利用して優先度を決定しても良い。また、優先度決定部５２は、属性テーブル６０の情報と、タイマ２４のカウントとに基づいて優先度を決定しても良い。第４実施形態に係るメモリシステム１のその他の構成は、第１実施形態に係るメモリシステム１の構成と同様のため、説明を省略する。
【０１３９】
尚、以上の説明では、属性テーブル６０がＤＲＡＭ１１に記憶されている場合を例に用いたが、これに限定されない。例えば、属性テーブル６０は、メモリコントローラ２０の内蔵メモリ２２に記憶されていても良い。また、属性テーブル６０は、ＮＡＮＤ型フラッシュメモリ１０に記憶され、ＮＡＮＤ型フラッシュメモリ１０から読み出すことにより、ＤＲＡＭ１１又は内蔵メモリ２２に展開されても良い。
【０１４０】
［４−２］動作
図２２は、第４実施形態における優先度に基づいたパトロール動作の一例を示し、時間軸に沿って、ダミーリードが実行されるパトロール対象ブロックの優先度が示されている。また、図２２には、第１パトロール期間と、第１パトロール期間に続く第２パトロール期間とが示されている。
【０１４１】
図２２に示すように第１パトロール期間においてパトロール制御部５０は、優先度決定部５２が決定したパトロール対象ブロックの優先度に基づいてダミーリードを実行する。具体的には、第１パトロール期間においてパトロール制御部５０は、優先度高、優先度中、優先度低の順に、パトロール対象ブロックに対するダミーリードを実行する。
【０１４２】
続く第２パトロール期間においてパトロール制御部５０は、第１パトロール期間と同様の優先順で、パトロール対象ブロックに対するダミーリードを実行する。本例における第２パトロール期間では、優先度高のパトロール対象ブロックに対するダミーリードを実行した後に、ホスト機器２からの命令に基づく動作（例えば、ホストリード）が実行されている。このように、パトロール期間中のホスト機器２からの命令に基づいた動作によって当該パトロール期間の残り時間が短くなると、優先度低のパトロール対象ブロックに対するダミーリードが実行される前に当該パトロール期間が終了することがある。
【０１４３】
尚、以上の説明では、第２パトロール期間で優先度低のパトロール対象ブロックに対するダミーリードが実行されない場合を例に説明したが、これに限定されない。例えば、パトロール制御部５０が、タイマ２４のカウントと、当該パトロール期間の残り時間とに基づいて、当該パトロール期間内に全てのパトロール対象ブロックに対するダミーリードが完了するように動作させても良い。この場合、パトロール期間の残り時間が短くなった際に、パトロール制御部５０がホスト機器２からの命令に基づく動作に対して割り込み処理を行い、パトロール動作に基づくダミーリードを優先的に実行する。
【０１４４】
また、以上の説明では、パトロール期間において、各パトロール対象ブロックに対して１回ずつダミーリードを実行する場合を例に用いたが、これに限定されない。例えば、優先度に基づいて、各パトロール期間内に実行するダミーリードの回数を変更しても良い。本例について、図２３を用いて説明する。図２３は、第４実施形態における優先度に基づいたパトロール動作の変形例を示している。
【０１４５】
図２３に示すようにパトロール期間においてパトロール制御部５０は、優先度決定部５２が決定したパトロール対象ブロックの優先度に基づいて、優先度が高いブロックＢＬＫに対して複数回のダミーリードを実行する。具体的には、パトロール制御部５０は、当該パトロール期間内に、例えば優先度高のパトロール対象ブロックに対して３回のダミーリードを実行し、優先度中のパトロール対象ブロックに対して２回のダミーリードを実行し、優先度低のパトロール対象ブロックに対して１回のダミーリードを実行する。そしてパトロール制御部５０は、例えば当該パトロール期間内に、優先度高、優先度中、優先度低、優先度高、優先度中、優先度高の順番にダミーリードを実行する。このようにパトロール制御部５０は、当該パトロール期間において、まず各優先度のパトロール対象ブロックに対するダミーリードを実行し、優先度中や優先度低のパトロール対象ブロックに対する初回のダミーリードをパトロール期間の前半に実行するようにする。
【０１４６】
尚、パトロール期間中にパトロール制御部５０が優先度に基づいて同じブロックＢＬＫに対する複数回のダミーリードを実行する場合のダミーリード順番は、以上で説明した順番に限定されない。このような場合においてパトロール制御部５０は、ダミーリードの順番を任意の順番に設定することが出来る。
【０１４７】
また、以上の説明では、パトロール期間中にパトロール制御部５０が優先度の高いパトロール対象ブロックに対して複数回のダミーリードを実行し、優先度の低いパトロール対象ブロックに対して１回のダミーリードを実行する場合を例に説明したが、これに限定されない。例えば、各優先度のパトロール対象ブロックに対するダミーリード回数は、任意の回数に設定することが出来、優先度の低いパトロール対象ブロックに対して複数回のダミーリードを実行しても良い。
【０１４８】
［４−３］第４実施形態の効果
以上で説明した第４実施形態に係るメモリシステム１に依れば、重要度の高いブロックＢＬＫに対して優先的にダミーリードを実行することが出来る。以下に、第４実施形態に係るメモリシステム１の詳細な効果について説明する。
【０１４９】
例えば、パトロール対象ブロックには、ユーザデータを記憶するブロックＢＬＫや、メモリコントローラ２０がメモリシステム１を管理するためのデバッグ情報等を記憶するブロックＢＬＫが含まれ、同じユーザデータを記憶する領域でも、記憶するユーザデータの種類によってアクセス頻度が異なることがある。また、メモリセルトランジスタＭＴは、１つのメモリセルトランジスタＭＴにより多くのビットデータを記憶させるほど、メモリセルトランジスタＭＴが第１状態である場合に読み出しエラーが発生する可能性が高くなる傾向がある。
【０１５０】
つまり、メモリシステム１では、パトロール対象ブロックの中でもダミーリードを実行する重要度及び効果が異なることがある。例えば、アクセス頻度が高いブロックＢＬＫにおけるダミーリードは、アクセス頻度が低いブロックＢＬＫにおけるダミーリードよりも重要性が高い。また、例えば書き込み方式としてＭＬＣ方式を適用したブロックＢＬＫにおけるダミーリードは、ＳＬＣ方式を適用したブロックＢＬＫにおけるダミーリードよりも読み出しエラーを抑制する効果が大きい。
【０１５１】
そこで、第４実施形態に係るメモリシステム１では、ダミーリードの重要度及び効果に応じて、パトロール対象ブロックに対するダミーリードの優先度を設定する。具体的には、優先度決定部５２が、ブロックＢＬＫの各種情報を含む属性テーブル６０を参照し、各パトロール対象ブロックに対する優先度を決定する。そして、パトロール制御部５０は、優先度決定部５２が決定した優先度に基づいて、パトロール動作を実行する。つまり、パトロール制御部５０は、ダミーリードの重要度及び効果の高いブロックＢＬＫに対して、優先的にダミーリードを実行する。
【０１５２】
これにより、第４実施形態に係るメモリシステム１は、各パトロール期間においてダミーリードの重要度及び効果の高いブロックＢＬＫにおけるメモリセルトランジスタＭＴを、第２状態に維持することが出来る。つまり、第４実施形態に係るメモリシステム１は、パトロール期間内に全てのパトロール対象ブロックに対するダミーリードが完了しない場合における影響を、最小限に抑制することが出来る。従って、第４実施形態に係るメモリシステム１は、メモリシステム１の動作速度の低下を最小限に抑制することが出来る。
【０１５３】
尚、第４実施形態に係るメモリシステム１は、各パトロール期間内に、優先度決定部５２が決定した優先度に基づいて同じブロックＢＬＫに複数回のダミーリードを実行することも出来る。これにより、第４実施形態に係るメモリシステム１は、ブロックＢＬＫ間でメモリセルトランジスタＭＴが第２状態から第１状態に移行する時間が異なる場合に、パトロール対象ブロック毎に最適な間隔でダミーリードを実行することが出来る。
【０１５４】
また、第４実施形態に係るメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１０の構造に基づいて優先度を設定しても良い。この場合に優先度決定部５２は、例えばチップ端に近いブロック等、物理的に第１状態から第２状態に遷移しやすいブロックの優先度を上げる。
【０１５５】
また、第４実施形態に係るメモリシステム１は、ホスト機器２から取得したヒント情報に基づいて優先度を設定しても良い。この場合に優先度決定部５２は、頻繁にアクセスされる論理ブロックアドレスが含まれるブロックＢＬＫと、重要な情報が書き込まれている論理ブロックアドレスが含まれるブロックＢＬＫとの優先度を上げる。また、優先度決定部５２は、ヒント情報に含まれていない論理ブロックアドレスの優先度を下げても良い。これに限定されず、優先度決定部５２は、複数の論理ブロックアドレスを区切って管理するための情報（Ｎａｍｅｓｐａｃｅ）を参照して、使用されていないＮａｍｅｓｐａｃｅに含まれたブロックＢＬＫの優先度を下げても良い。
【０１５６】
また、第４実施形態に係るメモリシステム１は、優先度の極めて低いブロックをパトロール対象ブロックから除外するようにしても良い。この場合にパトロール制御部５０は、例えば優先度に対して所定の閾値を設けて、この所定の閾値を下回ったパトロール対象ブロックを、パトロール対象ブロックから除外する。
【０１５７】
［５］第５実施形態
第５実施形態は、複数のブロックＢＬＫがブロックデコーダの制御信号を共有する場合における、パトロール期間中のフラグ管理方法に関するものである。以下に、第５実施形態に係るメモリシステム１について、第１〜第４実施形態と異なる点を説明する。
【０１５８】
［５−１］構成
図２４は、第５実施形態におけるメモリセルアレイ１１、ロウデコーダモジュール１３、及び電圧生成回路１９の詳細な構成例を示し、各ブロックＢＬＫに含まれ且つ同じ層に設けられた１本のワード線ＷＬｉ（ｉは０以上７以下の整数）に対応する構成について示している。図２４に示すように、第５実施形態において、メモリセルアレイ１１は複数のメモリグループＧＲを含み、ロウデコーダモジュール１３は複数のトランジスタＴＲ並びにブロックデコーダＢＤを含み、電圧生成回路１９はＣＧドライバ７０を含んでいる。
【０１５９】
複数のメモリグループＧＲは、それぞれが例えば４つのブロックＢＬＫを含んでいる。例えば、複数のメモリグループＧＲは第１メモリグループＧＲ１及び第２メモリグループＧＲ２を含み、第１メモリグループＧＲ１はブロックＢＬＫ０〜ＢＬＫ３を含み、第２グループはブロックＢＬＫ４〜ＢＬＫ７を含んでいる。尚、各メモリグループＧＲが含むブロックＢＬＫの数はこれに限定されず、任意の数に設計することが可能である。
【０１６０】
複数のトランジスタＴＲは、それぞれ異なるブロックＢＬＫに接続されている。例えば、複数のトランジスタＴＲは、トランジスタＴＲ０〜ＴＲ７を含んでいる。トランジスタＴＲ０〜ＴＲ７の一端は、それぞれブロックＢＬＫ０〜ＢＬＫ７のワード線ＷＬｉに接続されている。トランジスタＴＲ０〜ＴＲ３の他端はそれぞれ信号線ＣＧ０〜ＣＧ３に接続され、トランジスタＴＲ０〜ＴＲ３のゲートには制御信号ＢＳ１が入力される。トランジスタＴＲ４〜ＴＲ７の他端はそれぞれ信号線ＣＧ０〜ＣＧ３に接続され、トランジスタＴＲ４〜ＴＲ７のゲートには制御信号ＢＳ２が入力される。
【０１６１】
ブロックデコーダＢＤは、アドレスレジスタ１５Ｂに記憶されたアドレス情報に基づいて、制御信号ＢＳ１及びＢＳ２を出力する。制御信号ＢＳ１及びＢＳ２は、それぞれメモリグループＧＲ１及びＧＲ２に対応した制御信号である。つまり、各種動作時においてブロックデコーダＢＤは、選択するブロックＢＬＫを含むメモリグループＧＲに対応する制御信号ＢＳを“Ｈ”レベルにして、その他のメモリグループＧＲに対応する制御信号ＢＳを“Ｌ”レベルにする。尚、図２４には制御信号ＢＳ１及びＢＳ２が示されているが、ブロックデコーダＢＤは、その他のメモリグループＧＲに対応する制御信号ＢＳを出力することも可能である。
【０１６２】
ＣＧドライバ７０は、各種動作時に信号線ＣＧ０〜ＣＧ３に供給する電圧を生成することが可能なドライバである。また、ＣＧドライバ７０は、信号線ＣＧ毎に異なる電圧を生成することも出来る。各種動作時においてＣＧドライバ７０は、例えば選択されたブロックＢＬＫに対応する信号線ＣＧに対して、各種動作電圧（例えば読み出し電圧）を印加し、非選択のブロックＢＬＫに対応する信号線ＣＧに対して、例えば接地電圧ＶＳＳを印加する。
【０１６３】
尚、以上の説明では、各ブロックＢＬＫに含まれた１本のワード線ＷＬｉに関連する構成について述べたが、各ブロックＢＬＫに含まれたその他の配線についても上記と同様の構成となる。例えば、ロウデコーダモジュール１３は複数のトランジスタＴＲ０を含み、ブロックＢＬＫ０に含まれたワード線ＷＬ０〜ＷＬ７にそれぞれ異なるトランジスタＴＲ０の一端が接続される。そして、これらのトランジスタＴＲ０のゲートには制御信号ＢＳ１が入力され、これらのトランジスタＴＲ０の他端はそれぞれ異なる信号線ＣＧ０に接続される。第５実施形態に係るメモリシステム１のその他の構成は、第１実施形態に係るメモリシステム１の構成と同様のため、説明を省略する。
【０１６４】
［５−２］動作
図２５は、第５実施形態に係るメモリシステム１におけるパトロール動作の一例を示すフローチャートであり、第１実施形態で図７を用いて説明したフローチャートに対して、ステップＳ１２の処理を省略し、ステップＳ１１の処理の後にステップＳ５０及びＳ５１の処理を挿入したものである。尚、本動作においてパトロール制御部５０は、パトロール済みフラグを管理する。パトロール済みフラグは、ブロック毎に付与され、ダミーリードが実行されたかどうかを示すフラグである。パトロール済みフラグは例えば内蔵メモリ２２に保持され、当該パトロール期間において、“０（リセット状態）”が付与されたブロックＢＬＫはダミーリード前であることを示し、“１（セット状態）”が付与されたブロックＢＬＫはダミーリード後であること又はダミーリード不要であることを示している。
【０１６５】
ステップＳ１１においてプロセッサ２１は、ホスト機器２からの命令に基づいた動作を実行する。例えばプロセッサ２１は、ステップＳ１０においてホスト機器２からガベージコレクションの命令を受信した場合に、消去動作を実行する。
【０１６６】
次に、プロセッサ２１は、ステップＳ１１において消去動作が実行されたかどうかを確認する（ステップＳ５０）。消去動作が実行されていない場合（ステップＳ５０、ＮＯ）、プロセッサ２１は、ステップＳ１３に移行する。パトロール制御部５０は、ステップＳ１３においてダミーリードを実行すると、ダミーリードを実行したブロックＢＬＫのパトロール済みフラグを“１”にセットする。また、ストップＳ１１において消去動作が実行された場合（ステップＳ５０、ＹＥＳ）、パトロール制御部５０は、当該パトロール期間におけるパトロール済みフラグを更新する（ステップＳ５１）。
【０１６７】
具体的には、パトロール制御部５０は、直前のステップＳ１１において消去対象とされたブロックＢＬＫを含むメモリグループＧＲに含まれるブロックＢＬＫ群のうち、消去対象とされたブロックＢＬＫ以外のパトロール済みフラグを“０”にリセットする。尚、当該その他のブロックＢＬＫが消去済みのブロックＢＬＫであり、有効なデータを保持しない場合には、パトロール済みフラグは“１”に維持されても良い。
【０１６８】
ステップＳ５１においてパトロール済みフラグがリセットされたブロックＢＬＫは、当該パトロール期間内でそれまでにダミーリードが実行されていた場合においても、再びダミーリードを実行する対象とされる。そして、パトロール済みフラグがリセットされたブロックＢＬＫは、例えば次に実行されるステップＳ１３においてダミーリードの対象とされる。これに限定されず、パトロール制御部５０は、パトロール済みフラグがリセットされたブロックＢＬＫに対するダミーリードを、パトロール済みフラグがリセットされてから可能な限り速やかに実行すれば良い。
【０１６９】
尚、以上の説明では、ホスト機器２によるガベージコレクションの命令に基づいてプロセッサ２１が消去動作を実行した場合を例に挙げたが、これに限定されない。例えばプロセッサ２１は、ホスト機器２からの命令に依らないガベージコレクション動作に基づいた消去動作を実行した場合においても、ステップＳ５０において消去動作が実行されたかどうかを確認することによって、ステップＳ５１の動作に移行することが可能である。図２５に示すその他のステップにおける動作は、第１実施形態で説明した動作と同様のため、説明を省略する。
【０１７０】
以上で説明したパトロール動作の一例が、図２６に示されている。図２６は、第５実施形態におけるメモリセルアレイ１１の構成に適用されるパトロール動作の一例であり、第１メモリグループＧＲ１及び第２メモリグループＧＲ２における消去動作前後のパトロール済みフラグの状態が示されている。 
図２６に示すように、消去動作前において、メモリグループＧＲ１のブロックＢＬＫ０及びＢＬＫ１のパトロール済みフラグは“１”であり、ブロックＢＬＫ２及びＢＬＫ３のパトロール済みフラグは“０”となっている。また、メモリグループＧＲ２のブロックＢＬＫ４〜ＢＬＫ７のパトロール済みフラグは“１”となっている。そして本例では、このような状態でブロックＢＬＫ２に対する消去動作が実行される。
【０１７１】
消去動作後において、まず消去対象のブロックＢＬＫ２のパトロール済みフラグに“１”がセットされる。この理由は、消去動作後には読み出し対象となるデータが存在しないからである。そして、消去対象のブロックＢＬＫ２を含むメモリグループＧＲ内のその他のブロックＢＬＫ０及びＢＬＫ１のパトロール済みフラグが“０”にリセットされる。尚、当該メモリグループ内においてパトロール済みフラグが“０”である場合には、そのままパトロール済みフラグ“０”が維持される。また、その他のメモリグループＧＲに含まれたブロックＢＬＫについては、パトロール済みフラグが更新されない。
【０１７２】
次に、図２７及び図２８を用いて第５実施形態におけるＮＡＮＤ型フラッシュメモリ１０において第１及び第２ダミーリードを実行した場合の波形について説明する。図２７及び図２８は、それぞれ第１及び第２ダミーリードにおけるコマンドシーケンス及び波形の一例を示し、第１実施形態で図９及び図１０を用いて説明した第１及び第２ダミーリードに対して、各信号線ＣＧに対応するワード線ＷＬの波形が異なっている。
【０１７３】
図２７に示す第１ダミーリードにおいて、例えば信号線ＣＧ０に対応するブロックＢＬＫ０が選択された場合、各信号線ＣＧ０に接続されたワード線ＷＬの波形は図９におけるワード線ＷＬの波形と同様になる。一方で、非選択のブロックＢＬＫに対応する各信号線ＣＧ１〜ＣＧ３に接続されたワード線ＷＬは、第１ダミーリード中において例えば接地電圧ＶＳＳに維持される。第５実施形態における第１ダミーリードのその他の動作は、第１実施形態で図９を用いて説明した第１ダミーリードと同様のため、説明を省略する。
【０１７４】
図２８に示す第２ダミーリードにおいて、例えば信号線ＣＧ０に対応するブロックＢＬＫ０が選択された場合、各信号線ＣＧ０に接続されたワード線ＷＬの波形は図１０におけるワード線ＷＬの波形と同様になる。一方で、非選択のブロックＢＬＫに対応する各信号線ＣＧ１〜ＣＧ３に接続されたワード線ＷＬは、第２ダミーリード中において例えば接地電圧ＶＳＳに維持される。第５実施形態における第２ダミーリードのその他の動作は、第１実施形態で図１０を用いて説明した第２ダミーリードと同様のため、説明を省略する。
【０１７５】
尚、以上の説明では、メモリグループＧＲ内のブロックＢＬＫに対する消去動作に基づいて、パトロール済みフラグを更新する場合を例に挙げたが、これに限定されない。例えば、プロセッサ２１は、例えばホスト機器２からの命令に基づいて読み出し動作又は書き込み動作が実行された場合に、読み出し動作又は書き込み動作が実行されたブロックＢＬＫにおけるパトロール済みフラグに“１”をセットしても良い。この理由は、読み出し動作と書き込み動作におけるベリファイ読み出し動作とによって、それぞれダミーリードと同様の効果が期待出来るからである。
【０１７６】
また、プロセッサ２１は、例えばメモリグループＧＲ内に含まれた消去動作、読み出し動作、書き込み動作の回数に基づいて、当該メモリグループＧＲ内のパトロール済みフラグを更新しても良い。本例について図２９を用いて説明する。図２９は、第５実施形態の変形例に係るメモリシステム１の動作の一例を示すフローチャートであり、第１実施形態で図７を用いて説明したフローチャートに対して、ステップＳ１２の処理を省略し、ステップＳ１０の処理の後にステップＳ５２の処理を挿入し、ステップＳ１１の処理の後にステップＳ５３〜Ｓ５６の処理を挿入したものである。
【０１７７】
図２９に示すようにパトロール制御部５０は、パトロール期間が開始すると、まずカウンタを規定値にリセットする（ステップＳ５２）。このカウンタはブロックＢＬＫ毎に設けられ、例えば内蔵メモリ２２内に保持されている。また、カウンタの規定値は、任意の数値に設定することが可能であり、以下ではカウンタの規定値が１０００である場合を例に説明する。
【０１７８】
ステップＳ５２の後にプロセッサ２１は、ステップＳ１０及びＳ１１の処理を実行する。そしてステップＳ１１の後にパトロール制御部５０は、カウント処理を実行する（ステップＳ５３）。具体的には、まずパトロール制御部５０は、ステップＳ１１の処理において、読み出し動作、書き込み動作、又は消去動作が実行された場合に、選択されたブロックＢＬＫのカウンタを規定値にリセットし、選択されたブロックＢＬＫのパトロール済みフラグを“１”にセットする。カウンタを規定値にリセットする理由は、パトロール済みフラグを“１”にセットする理由と同様であり、読み出し動作と書き込み動作におけるベリファイ読み出し動作とによって、それぞれダミーリードと同様の効果を期待することが出来、消去動作後には読み出し対象となるデータが存在しないからである。
【０１７９】
そしてパトロール制御部５０は、ステップＳ１１において選択されたブロックＢＬＫに実行された動作に基づいて、選択されたブロックＢＬＫと共通のメモリグループＧＲにおける、その他のブロックＢＬＫ（以下では、共通グループのブロックと称する）のカウンタを減算する。
【０１８０】
例えば、選択されたブロックＢＬＫにおいて１回の消去動作（ブロックＢＬＫ単位）が実行された場合、パトロール制御部５０は共通グループのブロックＢＬＫのカウンタから１０００減算する。選択されたブロックＢＬＫにおいて１回の書き込み動作（ワード線ＷＬ単位）が実行された場合、パトロール制御部５０は共通グループのブロックＢＬＫのカウンタから１０減算する。パトロール制御部５０は１回の読み出し動作が実行された場合、共通グループのブロックＢＬＫのカウンタから１減算する。尚、パトロール制御部５０が各種動作に基づいてカウンタから減算する値はあくまで一例であり、任意の数値に設定することが可能である。
【０１８１】
次に、パトロール制御部５０は、カウンタがアンダーフローしているブロックＢＬＫがあるかどうかを確認する（ステップＳ５４）。カウンタがアンダーフローしているブロックＢＬＫがない場合（ステップＳ５４、ＮＯ）、パトロール制御部５０は、ステップＳ１３の処理に移行する。カウンタがアンダーフローしているブロックＢＬＫがある場合（ステップＳ５４、ＹＥＳ）、パトロール制御部５０は、カウンタがアンダーフローしているブロックＢＬＫのパトロール済みフラグを“０”にリセットして（ステップＳ５５）、再びダミーリードを実行する対象に設定する。
【０１８２】
そして、ステップＳ１３においてダミーリードが実行されると、パトロール制御部５０は、ダミーリードが実行されたブロックＢＬＫにおけるカウンタを規定値にリセットし、且つパトロール済みフラグを“１”にセットする（ステップＳ５６）。尚、パトロール済みフラグがリセットされたブロックＢＬＫは、例えば次に実行されるステップＳ１３においてダミーリードの対象とされる。図２９に示すその他のステップにおける動作は、第１実施形態で説明した動作と同様のため、説明を省略する。
【０１８３】
尚、以上の説明では、ステップＳ１１の処理において書き込み動作が実行された場合に、ステップＳ５３においてパトロール制御部５０が、選択されたブロックＢＬＫのカウンタを規定値にリセットし、選択されたブロックＢＬＫのパトロール済みフラグを“１”にセットする場合について述べたが、これに限定されない。例えば、ステップＳ１１の処理において実行された書き込み動作が、最後のプログラムパルスを印加した後にベリファイ動作を実行しない書き込み動作である場合がある。このような場合にパトロール制御部５０は、ステップＳ５３において例えば当該ブロックのカウンタを０以下にアンダーフローさせて、パトロール済みフラグを“０”にリセットしても良い。この理由は、最後にプログラムパルスを印加した状態で書き込み動作が終了した場合には、当該ブロックＢＬＫにおけるメモリセルトランジスタＭＴが第１状態になっているからである。
【０１８４】
［５−３］第５実施形態の効果
以上で説明した第５実施形態に係るメモリシステム１に依れば、動作速度の低下を抑制することが出来る。以下に、第５実施形態に係るメモリシステム１の詳細な効果について説明する。
【０１８５】
例えば、ＮＡＮＤ型フラッシュメモリ１０が図２４で説明したような構成である場合、メモリグループＧＲ内のあるブロックＢＬＫに対して読み出し動作、書き込み動作、消去動作等が実行されると、当該グループＧＲの各ブロックＢＬＫに含まれたメモリセルトランジスタＭＴの閾値電圧が変動することがある。この閾値電圧の変動は、第１実施形態で説明したCreep upと同様に、メモリセルトランジスタＭＴが印加された電圧によってメモリセルトランジスタＭＴの状態が変化することによって生じる。
【０１８６】
そこで、第５実施形態に係るメモリシステム１において、パトロール制御部５０は、メモリグループＧＲ内のあるブロックＢＬＫで消去動作が実行された場合、当該メモリグループＧＲに含まれたブロックＢＬＫのパトロール済みフラグをリセットする。つまり、パトロール制御部５０は、既にダミーリードが実行されたブロックＢＬＫにおけるパトロール済みフラグもリセットして、再び当該パトロール期間におけるダミーリードの対象とする。
【０１８７】
これにより、第５実施形態に係るメモリシステム１は、消去動作によって第２状態から変動したメモリセルトランジスタＭＴを、再び第２状態に遷移させることが出来る。従って、第５実施形態に係るメモリシステム１は、消去動作により生じた閾値電圧の変動に基づく読み出しエラーを抑制することが出来るため、メモリシステム１の動作速度の低下を抑制することが出来る。
【０１８８】
［６］第６実施形態
第６実施形態に係るメモリシステム１は、ホスト機器２から受信した消費電力情報に基づいて、第２ダミーリード時の選択ブロック数を設定するものである。以下に、第６実施形態に係るメモリシステム１について、第１〜第５実施形態と異なる点を説明する。
【０１８９】
［６−１］構成
図３０は、消費電力情報に基づいて第２ダミーリードの選択ブロック数を設定する場合におけるホスト機器２及びプロセッサ２１の詳細な構成例を示している。図３０に示すように、第６実施形態において、ホスト機器２は消費電力情報６１を記憶し、プロセッサ２１はパーティション設定部５３としてさらに機能する。
【０１９０】
消費電力情報６１は、メモリシステム１の消費電力量を見積もった情報であり、例えばホスト機器２とメモリシステム１の組み合わせ、メモリシステム１の性能、ホストインターフェイス回路２３の規格等に基づいて予め設定される。そして消費電力情報６１は、例えばメモリシステム１の起動時に、メモリシステム１に送信される。
【０１９１】
パーティション設定部５３は、ホストインターフェイス回路２３を介して受信した消費電力情報６１に基づいてパーティションの設定を行う。具体的には、パーティション設定部５３は、ＮＡＮＤ型フラッシュメモリ１０のメモリセルアレイ１１を分割することによってできるパーティションの数を消費電力情報６１に基づいて変更し、各ブロックＢＬＫの物理ブロックアドレスに対してパーティション番号を割り当てる。メモリセルアレイ１１が１０２４個のブロックＢＬＫを含み、１０２４個のブロックＢＬＫを１６個のパーティションに分割する場合の一例が、図３１に示されている。図３１に示すテーブルは、メモリシステム１におけるパーティション番号と物理ブロックアドレスとの対応の一例を示している。
【０１９２】
１０２４個のブロックＢＬＫを１６個のパーティションに分割する場合、１つのパーティションが含むブロックＢＬＫの数は６４個になるため、図３１に示すように、例えば物理ブロックアドレス“０”〜“６３”に対して、パーティション番号“１”が割り当てられ、物理ブロックアドレス“６４”〜“１２７”に対して、パーティション番号“２”が割り当てられる。以降も同様に、物理ブロックアドレスにパーティション番号が割り当てられる。
【０１９３】
［６−２］動作
図３２は、第６実施形態に係るメモリシステム１におけるパトロール動作の一例を示すフローチャートであり、消費電力情報６１に基づいたパーティション設定を行う場合のメモリシステム１の動作例を示している。
【０１９４】
図３２に示すように、ホスト機器２からの操作やユーザによる操作等に基づいてメモリシステム１が起動する（ステップＳ６０）。メモリシステム１が起動すると、ホスト機器２がメモリシステム１に消費電力情報６１を送信し、メモリシステム１が消費電力情報６１を受信する（ステップＳ６１）。具体的には、ホスト機器２が送信した消費電力情報６１は、ホストインターフェイス回路２３を介して、例えば内蔵メモリ２２に記憶される。尚、消費電力情報６１が記憶される記憶領域はこれに限定されず、例えばＤＲＡＭ１１であっても良い。
【０１９５】
次に、パーティション設定部５３は、受信した消費電力情報６１と、第２ダミーリードを実行した場合の選択ブロック数及び消費電力の関係とに基づいて、パーティションの設定を行う（ステップＳ６２）。パーティションの設定と、第２ダミーリードを実行した場合の選択ブロック数及び消費電力の関係の一例が、図３３に示されている。
【０１９６】
図３３に示すように、パーティション設定部５３が、例えば１０２４個のブロックＢＬＫを１２８個、６４個、３２個、１６個のパーティションへと分割した場合、第２ダミーリード時の選択ブロック数はそれぞれ８個、１６個、３２個、６４個となる。第２ダミーリードは、選択するブロックＢＬＫの数が多くなる程ワード線ＷＬの充電時間が長くなるため、消費電力が大きくなる。そこで、パーティション設定部５３は、ステップＳ６２において消費電力情報６１と図３３に示された情報とを参照し、メモリシステム１が大きな消費電力を許容することが出来る場合は、同時選択ブロック数が多くなるように小さいパーティション数を選択する。一方で、パーティション設定部５３は、メモリシステム１が小さな消費電力しか許容することが出来ない場合は、同時選択ブロック数が少なくなるように大きいパーティション数を選択する。すなわち、パーティション設定部５３は、第２ダミーリード時においてパーティション単位でブロックＢＬＫを選択した場合の消費電力が、メモリシステム１における消費電力のバジェット以内に収まるようにパーティションを設定する。このとき設定されたパーティションの情報を含むテーブルは、内蔵メモリ２２に記憶されても良いし、ＤＲＡＭ１１に記憶されても良い。
【０１９７】
次に、パトロール制御部５０は、例えば第１実施形態で図７を用いて説明したステップＳ１０〜Ｓ１４のパトロール動作を実行する。そしてパトロール制御部５０は、ステップＳ１３において第２ダミーリードを実行する場合に、設定されたパーティションを指定する。すると、ＮＡＮＤ型フラッシュメモリ１０のシーケンサ１７は、当該パーティションを選択して、当該パーティションに含まれたブロックＢＬＫに対する第２ダミーリードを実行する。つまりシーケンサ１７は、パーティション単位で第２ダミーリードを実行する。
【０１９８】
尚、以上の説明では、ステップ６２の処理の後にステップＳ１０〜Ｓ１４の処理を実行する場合を例に用いたが、これに限定されない。例えば、ステップＳ６２の処理の後には、第１〜第５実施形態で説明したいずれの動作も適用することが可能である。
【０１９９】
［６−３］第６実施形態の効果
以上のように第６実施形態に係るメモリシステム１は、メモリシステム１の使用可能な消費電力量に基づいてパーティションを設定し、パトロール動作時においてパーティション単位で第２ダミーリードを実行する。
【０２００】
これにより、第６実施形態に係るメモリシステム１は、メモリシステム１の消費電力のバジェットに対して最適な選択ブロック数で第２ダミーリードを実行することが出来る。また、第６実施形態に係るメモリシステム１は、消費電力のバジェットを超えること無くパトロール動作を実行することが出来るため、安定動作することが出来る。
【０２０１】
また、第６実施形態に係るメモリシステム１は、メモリシステム１の起動時において全てのパトロール対象のブロックＢＬＫに対する第２ダミーリードを実行することが出来る。これにより、第６実施形態に係るメモリシステム１は、メモリシステム１の起動後の早い段階で、メモリセルトランジスタＭＴを第１状態から第２状態に移行させることが出来る。従って第６実施形態に係るメモリシステム１は、メモリシステム１起動後の読み出し動作時におけるレイテンシの悪化を抑制することが出来、動作速度の低下を抑制することが出来る。
【０２０２】
［７］第７実施形態
第７実施形態に係るメモリシステム１は、第６実施形態に係るメモリシステム１が、ホスト機器２から受信した優先度情報に基づいてパトロール動作時におけるダミーリード順番を設定するものである。以下に、第７実施形態に係るメモリシステム１について、第１〜第６実施形態と異なる点を説明する。
【０２０３】
［７−１］構成
図３４は、第７実施形態におけるホスト機器２及びメモリシステム１の詳細な構成例を示している。図３４に示すように第７実施形態では、ホスト機器２が優先度情報６２をさらに記憶し、第４実施形態で図２０を用いて説明した優先度決定部５２がさらに異なる機能を有している。
【０２０４】
優先度情報６２は、メモリシステム１の起動直後のパトロール動作において、優先的にダミーリードを実行するブロックＢＬＫに対応する論理ブロックアドレスＬＢＡの情報を含んでいる。そして優先度情報６２は、例えばメモリシステム１の起動時に、メモリシステム１に送信される。尚、ホスト機器２は、複数の優先度情報６２を記憶し、これらの優先度情報をメモリシステム１に送信しても良い。複数の優先度情報６２がメモリシステム１に送信される場合、各優先度情報６２間の優先順位が予め決定されていても良いし、メモリシステム１に送信される順番に基づいて優先度決定部５２が各優先度情報６２間の優先順位を決定しても良い。
【０２０５】
優先度決定部５２は、ホストインターフェイス回路２３を介して受信した優先度情報６２に基づいてパトロール優先度を決定する。このパトロール優先度は、メモリシステム１起動直後のパトロール動作時において、ダミーリードを実行する順番の決定に使用される。そして、パトロール制御部５０は、優先度決定部５２が決定した優先度に基づいたダミーリード順番で、パトロール動作を実行する。第７実施形態に係るメモリシステム１のその他の構成は、第６実施形態に係るメモリシステム１の構成と同様のため、説明を省略する。
【０２０６】
［７−２］動作
図３５は、第７実施形態に係るメモリシステム１におけるパトロール動作の一例を示すフローチャートであり、パトロール動作において優先度情報６２に基づいてダミーリード順番を決定する場合のメモリシステム１の動作例を示している。
【０２０７】
図３５に示すように、ホスト機器２からの操作やユーザによる操作等に基づいてメモリシステム１が起動する（ステップＳ７０）。メモリシステム１が起動すると、ホスト機器２がメモリシステム１に優先度情報６２を送信し、メモリシステム１が優先度情報６２を受信する（ステップＳ７１）。ホスト機器２が送信した優先度情報６２は、ホストインターフェイス回路２３を介して、例えば内蔵メモリ２２に記憶される。尚、優先度情報６２が記憶される領域はこれに限定されず、例えばＤＲＡＭ１１であっても良い。
【０２０８】
次に、優先度決定部５２は、受信した優先度情報６２に基づいてパトロール優先度を決定する（ステップＳ７２）。そしてパトロール制御部５０は、パトロール優先度に基づいたダミーリード順番で、例えば第１実施形態で図７を用いて説明したステップＳ１０〜Ｓ１４のパトロール動作を実行する。
【０２０９】
ここで、ステップＳ７１においてメモリシステム１が第１優先度情報及び第２優先度情報を受信した場合の動作例について、図３６〜図３９を用いて説明する。図３６及び図３７は、それぞれ第１優先度情報及び第２優先度情報に基づいた情報の一例を示し、図３８及び図３９は、それぞれ第１優先度情報及び第２優先度情報に基づいたパトロール優先度の設定方法の一例を示している。
【０２１０】
本例において、第１優先度情報及び第２優先度情報はそれぞれ異なる論理ブロックアドレスＬＢＡを指定し、第１優先度情報の優先順位が第２優先度情報の優先順位よりも高く設定されている。また、本例では、第６実施形態において説明したパーティション設定部５３が、１０２４個のブロックＢＬＫを１６個のパーティションに分割した場合を例に説明する。この場合、例えばパーティション番号“１”に対応する物理ブロックアドレスＰＢＡは“０〜６３”となり、パーティション番号“２”に対応する物理ブロックアドレスＰＢＡは“６４〜１２７”となる。以下同様に設定され、パーティション番号“１６”に対応する物理ブロックアドレスＰＢＡは“９６０〜１０２３”となる。
【０２１１】
図３６及び図３７に示すように優先度決定部５２は、第１及び第２優先度情報が指定する論理ブロックアドレスＬＢＡに対して物理ブロックアドレスＰＢＡを関連付け、さらに当該物理ブロックアドレスＰＢＡに対応するパーティション番号を関連付ける。論理ブロックアドレスＬＢＡと物理ブロックアドレスＰＢＡとの関連付けには、例えばＬＵＴ（Look Up Table)が使用される。
【０２１２】
図３６に示すように第１優先度情報は、論理ブロックアドレスＬＢＡ“１１”〜“２０”を指定している。例えば、論理ブロックアドレスＬＢＡ“１１”及び“１２”は、それぞれ物理ブロックアドレスＰＢＡ“１０１２”及び“１０１３”に関連付けられていることから、パーティション番号“１６”に対応している。論理ブロックアドレスＬＢＡ“１３”及び“１４”は、それぞれ物理ブロックアドレスＰＢＡ“６４”及び“６５”に関連付けられていることから、パーティション番号“２”に対応している。以下同様に、優先度決定部５２は、第１優先度情報に基づいて、論理ブロックアドレスＬＢＡと、物理ブロックアドレスＰＢＡと、パーティション番号との間を関連付ける。
【０２１３】
図３７に示すように第２優先度情報は、論理ブロックアドレスＬＢＡ“１００”〜“１０９”を指定している。例えば、論理ブロックアドレスＬＢＡ“１００”〜“１０４”は、それぞれ物理ブロックアドレスＰＢＡ“２００”〜“２０４”に関連付けられていることから、パーティション番号“４”に対応している。以下同様に、優先度決定部５２は、第２優先度情報に基づいて、論理ブロックアドレスＬＢＡと、物理ブロックアドレスＰＢＡと、パーティション番号との間を関連付ける。
【０２１４】
そして、優先度決定部５２は、まず第１優先度情報に基づいてパトロール動作時におけるダミーリード順番を決定する。具体的には、図３８に示すように優先度決定部５２は、パーティション毎にパトロール優先度を算出する。このパトロール優先度は、各パーティションにおいて、優先度情報によって指定された論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡが含まれている個数を示している。例えば、パトロール優先度が“０”のパーティションは、優先度情報によって指定された論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡを含まないことを示し、パトロール動作の対象から除外される。一方で、パトロール優先度が“０”より大きいパーティションは、優先度情報によって指定された論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスを含むことを示し、パトロール動作の対象とされる。
【０２１５】
図３８に示すように、例えばパーティション番号“１”は、図３６に示された第１優先度情報の指定する論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡを２つ含んでいる。このとき、優先度決定部５２は、パーティション番号“１”のパトロール優先度を“２”にする。パーティション番号“２”は、第１優先度情報の指定する論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡを４つ含んでいるため、優先度決定部５２は、パーティション番号“２”のパトロール優先度を“４”にする。以下同様に、優先度決定部５２は、その他のパーティションに対応するパトロール優先度を算出する。
【０２１６】
次に、パトロール制御部５０は、第１優先度情報に基づいてパトロール動作を実行する。具体的には、パトロール制御部５０は、パトロール優先度が“０”より大きいパーティションに対して、パーティション単位で第２ダミーリードを実行する。そしてパトロール制御部５０は、第２ダミーリードが実行されたパーティションのパトロール済みフラグを、“０”（ダミーリード未実施）から“１”（ダミーリード済）に更新する。尚、パトロール制御部５０は、第１優先度情報に基づいて第２ダミーリードを実行する順番を、パトロール優先度の数値に基づいて決定しても良い。例えば、パトロール制御部５０は、パトロール優先度の数値が大きい方から順番に、第２ダミーリードを実行する。
【０２１７】
次に、優先度決定部５２は、第２優先度情報に基づいてパトロール動作時におけるダミーリード順番を決定する。図３９に示すように、例えばパーティション番号“２”は、図３７に示された第２優先度情報の指定する論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡを３つ含んでいるため、優先度決定部５２は、パーティション番号“２”のパトロール優先度を“３”にする。パーティション番号“４”は、第２優先度情報の指定する論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡを５つ含んでいるため、優先度決定部５２は、パーティション番号“４”のパトロール優先度を“５”にする。以下同様に、優先度決定部５２は、その他のパーティションに対応するパトロール優先度を算出する。
【０２１８】
そして、パトロール制御部５０は、第２優先度情報に基づいてパトロール動作を実行する。具体的には、パトロール制御部５０は、パトロール優先度が“０”より大きい且つパトロール済みフラグが“０”であるパーティションに対して、パーティション単位で第２ダミーリードを実行する。そしてパトロール制御部５０は、第２ダミーリードが実行されたパーティションのパトロール済みフラグを、“０”（ダミーリード未実施）から“１”（ダミーリード済）に更新する。
【０２１９】
尚、パトロール制御部５０は、各優先度情報に基づくパトロール動作において、さらにパトロール優先度が大きい方から順番に第２ダミーリードを実行しても良い。この場合にパトロール制御部５０は、例えばパトロール優先度の数値が大きい方から順番に第２ダミーリードを実行する。
【０２２０】
また、以上の説明では、第１優先度情報に基づいたパトロール動作を実行した後に、第２優先度情報に基づいてパトロール動作時におけるダミーリード順番を決定した場合を例に説明したが、これに限定されない。例えば、優先度決定部５２が、まず第１及び第２優先度情報に基づいて各パーティションの優先度を算出する。そして、パトロール制御部５０が優先度決定部５２によって決定された優先度に基づいて第２ダミーリードを実行しても良い。
【０２２１】
また、パトロール制御部５０は、図４０に示すようにパトロール優先度に基づいてダミーリード方法を変更しても良い。図４０は、第１優先度情報に基づいたダミーリード方法の選択方法の一例であり、パトロール優先度が“３”未満の場合に第１ダミーリード、パトロール優先度が“３”以上の場合に第２ダミーリードが実行される場合の一例を示している。
【０２２２】
図４０に示すように、第１優先度情報に基づいたパトロール動作においてパトロール制御部５０は、パトロール優先度が“２”であるパーティション番号“１”に対応するブロックＢＬＫに対して、第１ダミーリードを実行する。この第１ダミーリードは、当該パーティションに含まれた全てのブロックＢＬＫに対するダミーリードが完了するまで連続して実行されても良いし、第１優先度情報が指定する論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡに対応するブロックＢＬＫに対してのみ実行されても良い。また、パトロール制御部５０は、パトロール優先度が“４”であるパーティション番号“２”に対応するブロックＢＬＫに対して第２ダミーリードを実行する。この第２ダミーリードは、例えば当該パーティションに含まれた全てのブロックＢＬＫを選択して実行される。そして、本例においてダミーリードが実行される順番は、例えば図３６〜図３９を用いて説明した順番と同様の順番が適用される。
【０２２３】
以上で説明した第７実施形態に係るメモリシステム１の動作では、ホスト機器２から受信した優先度情報に基づいてパトロール動作の優先度が決定される場合について述べたが、これに限定されない。例えば、優先度決定部５２は、前回メモリシステム１が起動した時のアクセスパターンに基づいて、パトロール動作の優先度を決定することも出来る。
【０２２４】
具体的には、まずプロセッサ２１が、メモリシステム１が起動した際のアクセスパターンを把握し、このアクセスパターンのデータを例えばＮＡＮＤ型フラッシュメモリ１０に記憶させる。そして、次のメモリシステム１の起動時においてプロセッサ２１は、ＮＡＮＤ型フラッシュメモリ１０から当該アクセスパターンのデータを読み出す。それから優先度決定部５２は、例えば図３５を用いて説明したステップＳ７２の処理において、読み出されたアクセスパターンの情報に基づいて、各パーティションのパトロール優先度を更新する。その他の動作は、図３５を用いて説明した動作と同様のため、説明を省略する。
【０２２５】
尚、以上の説明では、ステップ７２の処理の後にステップＳ１０〜Ｓ１４の処理を実行する場合を例に用いたが、これに限定されない。例えば、ステップＳ７２の処理の後には、第１〜第５実施形態で説明したいずれの動作も適用することが可能である。また、第７実施形態で説明した動作は、第６実施形態で説明した動作と組み合わせることも可能である。この場合、例えばステップＳ７２の前後いずれかに、第６実施形態で図３２を用いて説明したステップＳ６２の処理が挿入される。
【０２２６】
また、以上の説明では、論理ブロックアドレスＬＢＡと物理ブロックアドレスＰＢＡとが１対１で対応している場合を例に挙げたが、これに限定されない。例えば、１つの物理ブロックＰＢＡには、複数の論理ブロックアドレスＬＢＡが対応付けられることもある。このような場合においても、優先度決定部５２が、各パーティションにおいて、優先度情報が指定する論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡが含まれている個数からパトロール優先度を算出することが出来る。
【０２２７】
また、以上の説明では、優先度決定部５２が、優先度情報６２によって指定された論理ブロックアドレスＬＢＡに対応する物理ブロックアドレスＰＢＡの個数に基づいてパトロール動作の優先度を決定した場合を例に説明したが、これに限定されない。例えば、優先度決定部５２は、優先度情報６２によって指定された論理ブロックアドレスＬＢＡの個数に基づいて、パトロール動作の優先度を決定しても良い。
【０２２８】
尚、ホスト機器２が優先度情報６２を送信するタイミングは、メモリシステム１の起動時に限定されず、通常動作時であっても良い。通常動作時に優先度情報６２を受信した場合、メモリシステム１は、例えば次回の起動時にこの優先度情報６２を参照する。また、メモリシステム１は、通常動作時に優先度情報６２を受信した際に、次回の起動時におけるパトロール優先度を設定しても良い。この場合、次回の起動時においてメモリシステム１は、前回の動作時において事前に設定されたパトロール優先度を参照する。
【０２２９】
［７−３］第７実施形態の効果
以上で説明した第７実施形態に係るメモリシステム１に依れば、メモリシステム１の起動後に、重要度の高いブロックＢＬＫから順にダミーリードを実行することが出来る。以下に、第７実施形態に係るメモリシステム１の詳細な効果について説明する。
【０２３０】
例えば、メモリシステム１に記憶されているデータは、メモリシステム１の管理データと、ユーザデータとを含んでいる。管理データは、ホスト機器２から隠匿され、例えばＬＵＴを含んでいる。ユーザデータは、ホスト機器２によってアクセス可能であり、例えばブートセクタ、ＯＳ（Operating System）イメージ、アプリケーションデータ、及びアーカイブデータを含んでいる。例えば、メモリシステム１の管理データは、メモリシステム１及びホスト機器２の起動処理時において、ユーザデータよりも早い段階でアクセスされる。また、ユーザデータのうちブートセクタ及びＯＳイメージは、アプリケーションデータやアーカイブデータよりも早い段階でアクセスされる。このように、早い段階でアクセスされるデータは重要度が高く、当該データを含むブロックＢＬＫのメモリセルトランジスタＭＴは可能な限り早く第２状態に移行させることが望ましい。
【０２３１】
そこで、第７実施形態に係るメモリシステム１は、ホスト機器２から受信した優先度情報６２に基づいて、メモリシステム１起動後のパトロール動作を実行する。具体的には、ホスト機器２が、早い段階でアクセスが必要なブロックＢＬＫを指定した優先度情報６２をメモリシステム１に送信する。例えば、優先度情報６２は、比較的重要度の高いブートセクタ及びＯＳイメージが記憶されたブロックＢＬＫに対応する論理ブロックアドレスＬＢＡの情報を含んでいる。そしてメモリシステム１が、受信した優先度情報６２に基づいて各パーティションのパトロール優先度を更新し、起動後の初回のパトロール動作において優先度の高い方から順番にダミーリードを実行する。
【０２３２】
これにより、第７実施形態に係るメモリシステム１は、メモリシステム１の起動処理時において重要度の高いブロックＢＬＫを含むパーティションのメモリセルトランジスタＭＴを、早期に第２状態に移行させることが出来る。従って、第７実施形態に係るメモリシステム１は、メモリシステム１起動後の読み出し動作時におけるレイテンシの悪化を抑制することが出来、動作速度の低下を抑制することが出来る。
【０２３３】
尚、第７実施形態では、優先度情報６２が、論理ブロックアドレスＬＢＡを用いてパトロール優先度を上げるブロックＢＬＫを指定する場合を例に説明したが、これに限定されない。例えば、優先度情報６２は、ＮａｍｅｓｐａｃｅのＩＤを用いて、パトロール優先度を上げる論理ブロックアドレスＬＢＡを指定しても良い。例えば優先度情報６２がＯＳイメージを含むＮａｍｅｓｐａｃｅのＩＤを指定する場合、メモリシステム１は、起動後にＯＳイメージを含むＮａｍｅｓｐａｃｅに対応するブロックＢＬＫに対して、アーカイブデータを格納するＮａｍｅｓｐａｃｅに対応するブロックＢＬＫよりも優先的にパトロール動作を実行する。
【０２３４】
尚、第７実施形態に係るメモリシステム１は、ホスト機器２によって指定されたＮａｍｅｓｐａｃｅのＩＤに基づいて、パトロール優先度を更新することも出来る。例えば、ホスト機器２は、Ｎａｍｅｓｐａｃｅ毎に格納すべきデータ（ＯＳイメージ、アーカイブデータ等）を決めて使い分けている。そこでホスト機器２は、メモリシステム１に対して、より優先度を高く設定すべきＮａｍｅｓｐａｃｅ（例えば、ＯＳイメージを格納しているＮａｍｅｓｐａｃｅ）を、ＮａｍｅｓｐａｃｅのＩＤを用いてメモリシステム１に指示する。これにより、メモリシステム１は、Ｎａｍｅｓｐａｃｅ毎に、該Ｎａｍｅｓｐａｃｅに所属する論理ブロックアドレスＬＢＡを用いて、パーティション（物理ブロックアドレスＰＢＡ）に対するパトロール優先度を更新することが出来る。
【０２３５】
［８］変形例等
実施形態のメモリシステム＜１、図１＞は、半導体メモリ＜１０、図１＞と、コントローラ＜２０、図１＞とを備える。半導体記憶装置は、各々が複数のメモリセルを含む複数のブロックを含む。コントローラは、第１動作＜第１ダミーリード、図９＞及び第２動作＜第２ダミーリード、図１０＞を半導体記憶装置に命令する。第１及び第２動作において、半導体メモリは複数のブロックのうちの少なくとも一つのブロックに含まれる全ての前記メモリセルに電圧を印加する。半導体メモリが単位時間あたりに第２動作において電圧が印加されるブロックの数は、半導体メモリが単位時間あたりに第１動作において電圧が印加されるブロックの数よりも多い。これにより、動作速度の低下を抑制することが可能なメモリシステムを提供することが出来る。
【０２３６】
尚、上記実施形態では、メモリコントローラ２０が１つのＮＡＮＤ型フラッシュメモリ１０に対してパトロール動作を実行する場合を例に説明したが、これに限定されない。例えば、メモリシステム１が複数のＮＡＮＤ型フラッシュメモリ１０を備える場合には、メモリコントローラ２０はＮＡＮＤ型フラッシュメモリ１０毎にパトロール動作を実行しても良い。また、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリ１０毎に順番にパトロール動作を実行しても良いし、複数のＮＡＮＤ型フラッシュメモリ１０で並行してパトロール動作を実行しても良い。
【０２３７】
尚、上記実施形態で説明した各種動作は、組み合わせて実行することが可能である。例えば、第１実施形態で説明したパトロール動作と、第３実施形態で説明したパトロール動作とは、組み合わせて実行することが可能である。この場合、メモリシステム１は、温度情報に基づいてパトロール期間を設定し、各パトロール期間でパトロール処理レートを適宜変更したダミーリードを実行する。
【０２３８】
尚、上記実施形態において、第２ダミーリードにおいて選択されたブロックＢＬＫのワード線ＷＬに印加される電圧は、当該ブロックＢＬＫに適用された書き込み方式で使用される読み出しパス電圧ＶＲＥＡＤと異なっていても良い。第２ダミーリードによって通常の読み出し動作と同程度のCreep upを発生させる場合、ロウデコーダモジュール１３は、例えばワード線ＷＬにＳＬＣ方式におけるＶＲＥＡＤからＴＬＣ方式におけるＶＲＥＡＤの範囲内の電圧を印加しても良い。第２ダミーリードの電圧印加により生じるリードディスターブを低減させたい場合、ロウデコーダモジュール１３は、例えばダミーリードの効果が失われない範囲で、ワード線ＷＬにＳＬＣ方式におけるＶＲＥＡＤよりも低い電圧を印加しても良い。このように、第２ダミーリードにおいて選択されたブロックＢＬＫのワード線ＷＬに印加される電圧の設定は、適宜変更することが可能である。
【０２３９】
尚、第６実施形態において、メモリシステム１の起動時において全てのパトロール対象のブロックＢＬＫに対する第２ダミーリードが実行される場合について説明したが、これに限定されない。例えば、パトロール制御部５０は、メモリシステム１の起動時において全てのパトロール対象のブロックＢＬＫに対する第１ダミーリードを実行しても良い。
このような場合においても、メモリシステム１は、メモリシステム１起動後の読み出し動作時におけるレイテンシの悪化を抑制することが出来、動作速度の低下を抑制することが出来る。また、第６実施形態では、第１又は第２ダミーリードがパトロール対象のブロックＢＬＫに対して実行される場合を例に説明したが、これに限定されない。例えば、メモリシステム１の起動処理時において、パトロール制御部５０は、全てのブロックＢＬＫを対象とした第１又は第２ダミーリードを実行しても良い。
【０２４０】
尚、以上の説明において、「全てのパトロール対象のブロックＢＬＫ」とは、メモリシステム１内におけるパトロール対象ブロックＢＬＫの全てであっても良いし、論理アドレスおよび物理アドレスを変換するアドレス変換テーブルを格納するブロックＢＬＫの全てであっても良いし、１以上の有効なユーザデータを含むブロックＢＬＫの全てであっても良い。他には、例えばメモリシステム１の起動時において重要度の高いブロックＢＬＫが、メモリシステム１の起動時におけるパトロール対象ブロックＢＬＫに設定されても良い。このように、例えばメモリシステム１の起動時におけるパトロール対象ブロックＢＬＫは、適宜変更することが可能である。
【０２４１】
尚、本明細書において「有効なユーザデータ」とは、論理ブロックアドレスと紐付けられている物理ブロックアドレス、すなわち論理ブロックアドレス・物理ブロックアドレスを変換するアドレス変換テーブルによって参照されている物理ブロックアドレスに対応するブロックＢＬＫに格納されているデータに対応している。
【０２４２】
尚、第７実施形態において、メモリシステム１がホスト機器２から受信した優先度情報６２に基づいてパトロール優先度を更新する場合について説明したが、これに限定されない。例えば、メモリシステム１は、ホスト機器２からの命令に依らずに、起動時におけるパトロール優先度を更新することも出来る。以下に、本変形例におけるメモリシステム１の動作について説明する。
【０２４３】
例えばメモリシステム１は、前回起動時におけるアクセスパターンに基づいてパトロール優先度を更新することが出来る。この場合にメモリシステム１は、例えば起動後から所定の期間内におけるホスト機器２からのアクセスパターンに関する情報をＮＡＮＤ型フラッシュメモリ１０に記憶する。そして、次回起動時においてメモリシステム１は、このアクセスパターンに関する情報をＮＡＮＤ型フラッシュメモリ１０から読み出し、例えば前回起動時において早期にアクセスされたブロックＢＬＫのパトロール優先度を上げる。また、メモリシステム１は、ホスト機器２によりアクセスされたブロックＢＬＫの順番に基づいて、パトロール優先度を更新しても良い。
【０２４４】
また、メモリシステム１は、各ブロックＢＬＫに記憶されているデータの種類に基づいてパトロール優先度を更新することも出来る。この場合にメモリシステム１は、例えばユーザデータを格納しているブロックＢＬＫよりも、管理データ（特に、アドレス変換テーブル）を格納しているブロックＢＬＫにおけるパトロール動作の優先度を高く設定する。
【０２４５】
以上で説明したホスト機器２の指示に依らないパトロール動作の優先度の更新方法は、それぞれ別に実行されても良いし、併せて実行されても良い。これにより、本変形例におけるメモリシステム１は、例えば早い段階でアクセスが必要だが、優先度情報６２によって指定することが出来ない隠匿されたブロックＢＬＫのパトロール優先度を上げることが出来る。従って、本変形例におけるメモリシステム１は、メモリシステム１起動後の読み出し動作時におけるレイテンシの悪化をさらに抑制することが出来、動作速度の低下をさらに抑制することが出来る。
【０２４６】
尚、上記実施形態では、第１ダミーリードとしてＳＬＣ方式の読み出し動作を適用した場合を例に説明したが、これに限定されない。例えば、第１ダミーリードは、ＭＬＣ方式において上位ページに対応する読み出し動作、又は下位ページに対応する読み出し動作を適用しても良い。このように、第１ダミーリードには、あらゆる方式の読み出し動作を適用することが出来る。
【０２４７】
尚、上記実施形態で説明した第２ダミーリードで同時に選択するブロック数は、ＮＡＮＤ型フラッシュメモリ１０側の設定により変更させても良い。このような設定変更を行うSet featureのコマンドシーケンスの一例が、図４１に示されている。図４１に示すように、まずメモリコントローラ２０は、Set featureコマンド“ＥＦｈ”を発行し、ＮＡＮＤ型フラッシュメモリ１０に送信する。コマンド“ＥＦｈ”は、ＮＡＮＤ型フラッシュメモリ１０に対してパラメータの変更を命令するコマンドである。次にメモリコントローラ２０は、アドレス情報ＡＤＤを発行し、ＮＡＮＤ型フラッシュメモリ１０に送信する。このアドレス情報ＡＤＤは、変更したいパラメータに対応するアドレスを指定するものである。次にメモリコントローラ２０は、複数サイクルに渡って設定データＤinをＮＡＮＤ型フラッシュメモリ１０に出力する。ここで出力されたデータＤinは、変更するパラメータに相当するデータである。するとシーケンサ１７は、センスアンプモジュール１２及びロウデコーダモジュール１３等を制御して、Set featureを開始する。Set featureが開始すると、設定のパラメータが書き換えられる。図示するｔSetは、このSet featureが行われている期間を示している。Set featureが終了すると、例えばＮＡＮＤ型フラッシュメモリ１０の第２ダミーリードにおける同時選択ブロック数の設定変更が適用される。
【０２４８】
尚、上記実施形態において、各種動作がソフトウェアで実行される場合を例に説明したが、これに限定されない。例えば、一部の処理を専用のハードウェアにより実現しても良いし、全ての処理を専用のハードウェアにより実現しても良い。例えば、パトロール動作において、パトロール制御部５０として機能する回路を利用することが可能である。その他の処理についても同様である。これらのハードウェアは、メモリコントローラ２０に内蔵されていても良いし、外部接続されていても良い。
【０２４９】
尚、上記実施形態において、第１ダミーリード及び第２ダミーリードについてワード線ＷＬの波形を示して説明したが、対応する信号線ＣＧの波形もワード線ＷＬの波形と同様の波形となる。つまり、ワード線ＷＬに印加される電圧と、ワード線ＷＬに電圧が印加されている期間とは、対応する信号線ＣＧの電圧を調べることにより大まかに知ることが出来る。尚、ワード線ＷＬの電圧と信号線ＣＧの電圧との間には、トランジスタＴＲによる電圧降下の影響が現れていても良い。
【０２５０】
尚、上記実施形態において、メモリセルにＭＯＮＯＳ膜を使用した場合を例に説明したが、これに限定されない。例えば、フローティングゲートを利用したメモリセルを使用した場合においても、上記実施形態で説明した読み出し動作及び書き込み動作を実行することで、同様の効果を得ることが出来る。
【０２５１】
尚、上記実施形態では、ブロックＢＬＫがデータの消去単位である場合を例に説明したが、これに限定されない。その他の消去動作については、“不揮発性半導体記憶装置”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号、“不揮発性半導体記憶装置”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０２５２】
尚、本明細書において“接続”とは、電気的に接続されている事を示し、例えば間に別の素子を介することを除外しない。また、本明細書において“遮断”とは、トランジスタがオフ状態になっていることを示し、例えばトランジスタのリーク電流のような微少な電流が流れることを除外しない。
【０２５３】
尚、上記各実施形態において、  
（１）読み出し動作では、“Ａ”レベルの読み出し動作で選択されたワード線に印加される電圧は、例えば０〜０.５５Ｖの間である。これに限定されることなく、０.１〜０.２４Ｖ、０.２１〜０.３１Ｖ、０.３１〜０.４Ｖ、０.４〜０.５Ｖ、０.５〜０.５５Ｖのいずれかの間にしても良い。  
“Ｂ”レベルの読み出し動作で選択されたワード線に印加される電圧は、例えば１.５〜２.３Ｖの間である。これに限定されることなく、１.６５〜１.８Ｖ、１.８〜１.９５Ｖ、１.９５〜２.１Ｖ、２.１〜２.３Ｖのいずれかの間にしても良い。  
“Ｃ”レベルの読み出し動作で選択されたワード線に印加される電圧は、例えば３.０Ｖ〜４.０Ｖの間である。これに限定されることなく、３.０〜３.２Ｖ、３.２〜３.４Ｖ、３.４〜３.５Ｖ、３.５〜３.６Ｖ、３.６〜４.０Ｖのいずれかの間にしても良い。  
読み出し動作の時間（ｔRead）としては、例えば２５〜３８μs、３８〜７０μs、７０〜８０μsの間にしても良い。
【０２５４】
（２）書き込み動作は、上述した通りプログラム動作とベリファイ動作とを含む。プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば１３.７〜１４.３Ｖの間である。これに限定されることなく、例えば１３.７〜１４.０Ｖ、１４.０〜１４.６Ｖのいずれかの間にしても良い。プログラム動作時に非選択のワード線に印加される電圧としては、例えば６.０〜７.３Ｖの間としても良い。この場合に限定されることなく、例えば７.３〜８.４Ｖの間としても良く、６.０Ｖ以下としても良い。  
書き込み動作において、奇数番目のワード線を選択した際に、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を選択した際に、選択されたワード線に最初に印加される電圧とは、異なっていても良い。書き込み動作において、非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えても良い。  
プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）とした場合における、プログラム電圧のステップアップ幅としては、例えば０.５Ｖ程度が挙げられる。  
書き込み動作の時間（ｔProg）としては、例えば１７００〜１８００μs、１８００〜１９００μs、１９００〜２０００μsの間にしても良い。
【０２５５】
（３）消去動作では、半導体基板上部に形成され、且つ上記メモリセルが上方に積層されたウェルに最初に印加する電圧は、例えば１２.０〜１３.６Ｖの間である。この場合に限定されることなく、例えば１３.６〜１４.８Ｖ、１４.８〜１９.０Ｖ、１９.０〜１９.８Ｖ、１９.８〜２１.０Ｖの間であっても良い。  
消去動作の時間（ｔErase）としては、例えば３０００〜４０００μs、４０００〜５０００μs、４０００〜９０００μsの間にしても良い。
【０２５６】
（４）メモリセルの構造は、半導体基板（シリコン基板）上に、膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は、膜厚が２〜３ｎｍのＳｉＮ又はＳｉＯＮ等の絶縁膜と、膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることが出来る。また、ポリシリコンには、Ｒｕ等の金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と、膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜とに挟まれた、膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜としては、ＨｆＯ等が挙げられる。また、シリコン酸化膜の膜厚は、Ｈｉｇｈ−ｋ膜の膜厚よりも厚くすることが出来る。絶縁膜上には、膜厚が３〜１０ｎｍの材料を介して、膜厚が３０〜７０ｎｍの制御電極が形成されている。ここで材料は、ＴａＯ等の金属酸化膜、ＴａＮ等の金属窒化膜である。制御電極には、Ｗ等を用いることができる。また、メモリセル間には、エアギャップを形成することが出来る。
【０２５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２５８】
１…メモリシステム、２…ホスト機器、１０…ＮＡＮＤ型フラッシュメモリ、１１…メモリセルアレイ、１２…センスアンプモジュール、１３…ロウデコーダモジュール、１４…入出力回路、１５…スレジスタ、１６…ロジックコントローラ、１７…シーケンサ、１８…レディ／ビジー制御回路、１９…電圧生成回路、２０…メモリコントローラ、２１…プロセッサ、２２…内蔵メモリ、２３…ホストインターフェイス回路、２４…タイマ、２５…温度計、２６…ＮＡＮＤインターフェイス回路、２７…ＤＲＡＭインターフェイス回路、３０…Ｐ型ウェル領域、３１〜３６…導電体、３７…ブロック絶縁膜、３８…絶縁膜、３９…トンネル酸化膜、４０…半導体材料、４１…ｎ＋型不純物拡散領域、４２…ｎ＋型不純物拡散領域、５０…パトロール制御部、５１…コマンド発行部、５２…優先度決定部、５３…パーティション設定部、６０…属性テーブル、６１…消費電力情報、６２…優先度情報、７０…ＣＧドライバ
【図１】
2019046530.tif 000003
【図２】
2019046530.tif 000004
【図３】
2019046530.tif 000005
【図４】
2019046530.tif 000006
【図５】
2019046530.tif 000007
【図６】
2019046530.tif 000008
【図７】
2019046530.tif 000009
【図８】
2019046530.tif 000010
【図９】
2019046530.tif 000011
【図１０】
2019046530.tif 000012
【図１１】
2019046530.tif 000013
【図１２】
2019046530.tif 000014
【図１３】
2019046530.tif 000015
【図１４】
2019046530.tif 000016
【図１５】
2019046530.tif 000017
【図１６】
2019046530.tif 000018
【図１７】
2019046530.tif 000019
【図１８】
2019046530.tif 000020
【図１９】
2019046530.tif 000021
【図２０】
2019046530.tif 000022
【図２１】
2019046530.tif 000023
【図２２】
2019046530.tif 000024
【図２３】
2019046530.tif 000025
【図２４】
2019046530.tif 000026
【図２５】
2019046530.tif 000027
【図２６】
2019046530.tif 000028
【図２７】
2019046530.tif 000029
【図２８】
2019046530.tif 000030
【図２９】
2019046530.tif 000031
【図３０】
2019046530.tif 000032
【図３１】
2019046530.tif 000033
【図３２】
2019046530.tif 000034
【図３３】
2019046530.tif 000035
【図３４】
2019046530.tif 000036
【図３５】
2019046530.tif 000037
【図３６】
2019046530.tif 000038
【図３７】
2019046530.tif 000039
【図３８】
2019046530.tif 000040
【図３９】
2019046530.tif 000041
【図４０】
2019046530.tif 000042
【図４１】
2019046530.tif 000043