(57)【要約】【課題】読出し動作のレイテンシを向上させつつ、全体動作の実行効率を向上させる。【解決手段】一実施形態のメモリシステムは、データを保持可能な半導体メモリと、第１タイマ及び制御回路を含み、第１動作を実行中の上記半導体メモリに対して、上記第１動作を中断させる第１命令を発行可能なメモリコントローラと、を備える。上記制御回路は、上記第１タイマのカウントに基づき、上記第１動作を実行している時間が第１閾値に達するまで上記第１命令の発行を禁止し、上記第１動作を実行中の上記半導体メモリのステータスを取得し、上記ステータスに応じて、上記第１閾値を第２閾値に更新する。【選択図】図６
2019053795.tif 000002
【特許請求の範囲】
【請求項１】
データを保持可能な半導体メモリと、
第１タイマ及び制御回路を含み、第１動作を実行中の前記半導体メモリに対して、前記第１動作を中断させる第１命令を発行可能なメモリコントローラと、
を備え、
前記制御回路は、
前記第１タイマのカウントに基づき、前記第１動作を実行している時間が第１閾値に達するまで前記第１命令の発行を禁止し、
前記第１動作を実行中の前記半導体メモリのステータスを取得し、
前記ステータスに応じて、前記第１閾値を第２閾値に更新する、
メモリシステム。
【請求項２】
前記制御回路は、
前記第１動作を中断した前記半導体メモリに対して第２動作を実行させる第２命令と、
前記第２動作が終了した後に前記中断した前記第１動作を再開させる第３命令と、
を更に発行可能な、請求項１記載のメモリシステム。
【請求項３】
前記制御回路は、
前記第３命令による前記中断した第１動作の再開に応じて、前記再開された第１動作を実行している時間が前記第２閾値に達するまで前記第１命令の発行を禁止する、
請求項２記載のメモリシステム。
【請求項４】
前記第１動作は、前記半導体メモリが保持するデータを消去する消去動作、又は前記半導体メモリにデータを書込む書込み動作を含み、
前記第２動作は、前記半導体メモリが保持するデータを読出す読出し動作を含む、
請求項２記載のメモリシステム。
【請求項５】
前記制御回路は、前記ステータスが第１状態から第２状態になるまでの時間に応じて、前記第１閾値を前記第２閾値に更新する、請求項４記載のメモリシステム。
【請求項６】
前記第１動作が前記消去動作の場合、
前記第１状態は、消去処理を実行中の状態を含み、
前記第２状態は、消去確認処理を実行中の状態を含む、
請求項５記載のメモリシステム。
【請求項７】
前記第１動作が前記書込み動作の場合、前記第２閾値は、前記第１閾値よりも大きい、請求項４記載のメモリシステム。
【請求項８】
前記メモリコントローラは、第２タイマを更に含み、
前記制御回路は、前記第２タイマのカウントに基づき、前記第１動作を実行している時間が第３閾値に達すると、前記第１命令の発行を禁止する、
請求項１記載のメモリシステム。
【請求項９】
前記制御回路は、
前記第１動作の中断に応じて前記第２タイマのカウントを中断させ、
前記中断した第１動作の再開に応じて前記第２タイマのカウントを再開させる、
請求項８記載のメモリシステム。
【請求項１０】
前記制御回路は、前記第２動作の実行が前記第１命令の発行の禁止より優先度が高い場合、前記半導体メモリに前記第１命令を発行する、請求項２記載のメモリシステム。
【請求項１１】
前記制御回路は、前記第２動作の実行結果の外部への出力に期限が設けられている場合、前記第２動作の実行が前記第１命令の発行の禁止より優先度が高いと判定する、請求項１０記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてのＮＡＮＤ型フラッシュメモリと、当該ＮＡＮＤ型フラッシュメモリを制御するメモリコントローラと、を備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９４４３５９９号明細書
【特許文献２】特開２００４−２２７６３５号公報
【特許文献３】米国特許出願公開第２０１６／００１２８９１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
読出し動作のレイテンシを向上させつつ、全体動作の実行効率を向上させる。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、データを保持可能な半導体メモリと、第１タイマ及び制御回路を含み、第１動作を実行中の上記半導体メモリに対して、上記第１動作を中断させる第１命令を発行可能なメモリコントローラと、を備える。上記制御回路は、上記第１タイマのカウントに基づき、上記第１動作を実行している時間が第１閾値に達するまで上記第１命令の発行を禁止し、上記第１動作を実行中の上記半導体メモリのステータスを取得し、上記ステータスに応じて、上記第１閾値を第２閾値に更新する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムを含む情報処理システムの構成を説明するためのブロック図。
【図２】第１実施形態に係るメモリシステムのＮＡＮＤコントローラの構成を説明するためのブロック図。
【図３】第１実施形態に係るメモリシステムのチップの構成を説明するための断面図。
【図４】第１実施形態に係るメモリシステムのメモリセルアレイの構成を説明するための回路図。
【図５】第１実施形態に係るメモリシステムのメモリセルアレイの構成を説明するための断面図。
【図６】第１実施形態に係るメモリシステムにおけるサスペンド動作と、タイマのカウント値との関係を説明するためのダイアグラム。
【図７】第１実施形態に係るメモリシステムにおけるサスペンド動作を説明するためのフローチャート。
【図８】第１実施形態に係るメモリシステムにおけるサスペンド動作を説明するためのフローチャート。
【図９】第１実施形態に係るメモリシステムにおけるサスペンド動作を伴う消去動作を説明するための模式図。
【図１０】第１実施形態に係るメモリシステムにおけるサスペンド動作を伴う書込み動作を説明するための模式図。
【図１１】第２実施形態に係るメモリシステムにおけるサスペンド動作を説明するためのフローチャート。
【図１２】第２実施形態に係るメモリシステムにおけるサスペンド動作を伴う消去動作を説明するための模式図。
【図１３】第３実施形態に係るメモリシステムにおけるサスペンド動作を説明するためのフローチャート。
【図１４】第３実施形態に係るメモリシステムにおけるサスペンド動作を伴う消去動作を説明するための模式図。
【図１５】第４実施形態に係るメモリシステムにおけるサスペンド動作と、タイマのカウント値との関係を説明するためのダイアグラム。
【図１６】第４実施形態に係るメモリシステムにおけるサスペンド動作を説明するためのフローチャート。
【図１７】第４実施形態に係るメモリシステムにおけるサスペンド動作を伴う書込み動作を説明するための模式図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．  第１実施形態
第１実施形態に係るメモリシステムについて説明する。第１実施形態に係るメモリシステムは、例えば、複数のＮＡＮＤ型フラッシュメモリと、当該複数のＮＡＮＤ型フラッシュメモリを制御するメモリコントローラと、を備えるシステムである。
【０００９】
１．１  構成について
第１実施形態に係るメモリシステムの構成について説明する。
【００１０】
１．１．１  情報処理システムの構成について
まず、第１実施形態に係るメモリシステムを含む情報処理システムの構成について、図１を用いて説明する。
【００１１】
図１に示すように、情報処理システム１は、メモリシステム２と、ホスト機器３と、を備えている。メモリシステム２は、例えば、ホスト機器３から受信したデータを保持し、また、データをホスト機器３に読出す。
【００１２】
メモリシステム２は、メモリコントローラ１０及びＮＡＮＤパッケージ群２０を備えている。
【００１３】
ＮＡＮＤパッケージ群２０は、複数のＮＡＮＤパッケージ（図１では、４つのＮＡＮＤパッケージ２０＿０〜２０＿３）を含む。なお、ＮＡＮＤパッケージ群２０内のＮＡＮＤパッケージの数は、４つに限らず、任意の数が適用可能である。
【００１４】
ＮＡＮＤパッケージ２０＿０は、複数のチップ（ＮＡＮＤ型フラッシュメモリ）（図１では、４つのチップ２１〜２４）を含む。なお、ＮＡＮＤパッケージ２０＿０内のチップの数は、４つに限らず、任意の数が適用可能である。当該構成は、他のＮＡＮＤパッケージ２０＿１〜２０＿３においても同様である。ＮＡＮＤパッケージ２０＿０内の各チップの構成については、後述する。
【００１５】
１．１．２  メモリコントローラの構成について
引き続き図１を用いて、第１実施形態に係るメモリシステムのメモリコントローラの構成について説明する。
【００１６】
メモリコントローラ１０は、例えば、ＳｏＣ（System on a chip）であり、ホスト機器３から命令を受取り、受け取られた命令に基づいてＮＡＮＤパッケージ群２０を制御する。具体的には、メモリコントローラ１０は、ホスト機器３から書込みを指示されたデータをＮＡＮＤパッケージ群２０に書込み、ホスト機器３から読出しを指示されたデータをＮＡＮＤパッケージ群２０から読出してホスト機器３に送信する。
【００１７】
メモリコントローラ１０は、ホストインタフェース回路１１、バッファメモリ１２、コマンドバッファ１３、ＮＡＮＤコントローラ群１４、ＮＡＮＤインタフェース回路１５、及びプロセッサ（ＣＰＵ：Central Processing Unit）１６を備えている。なお、以下に説明されるメモリコントローラ１０内の各部１１〜１６は、ハードウェア構成、又はハードウェア資源とファームウェアとの組合せ構成のいずれでも実現可能である。
【００１８】
ホストインタフェース回路１１は、ホスト機器３と接続され、ホスト機器３との通信を司る。ホストインタフェース回路１１は、例えば、ホスト機器３から受信したデータ及び命令を、それぞれバッファメモリ１２及びコマンドバッファ１３に転送する。
【００１９】
バッファメモリ１２は、例えば、ＮＡＮＤパッケージ群２０に書込むデータ、又はＮＡＮＤパッケージ群２０から読出されたデータを記憶する。
【００２０】
コマンドバッファ１３は、ホストインタフェース回路１１を介して受信した命令に基づいて、主にバッファメモリ１２とＮＡＮＤコントローラ群１４との間のデータの通信を制御する。また、コマンドバッファ１３は、ホスト機器３からの命令をＮＡＮＤコントローラ群１４に送信する。
【００２１】
ＮＡＮＤコントローラ群１４は、バッファメモリ１２からのデータ、及びコマンドバッファ１３からの命令に基づき、ＮＡＮＤパッケージ群２０との間で送受信されるコマンド及びアドレス等を生成する。ＮＡＮＤコントローラ群１４は、例えば、ホスト機器３から受信したデータの読出し命令に応じて、ＮＡＮＤインタフェースに基づく読出しコマンドをＮＡＮＤパッケージ群２０に対して発行する。この動作は、書込み及び消去の場合についても同様である。
【００２２】
ＮＡＮＤコントローラ群１４は、複数のＮＡＮＤコントローラ（図１では、４つのＮＡＮＤコントローラ１４＿０〜１４＿３）を含む。ＮＡＮＤコントローラ群１４内のＮＡＮＤコントローラ１４＿０〜１４＿３はそれぞれ、ＮＡＮＤパッケージ群２０内のＮＡＮＤパッケージ２０＿０〜２０＿３に対応して設けられる。すなわち、ＮＡＮＤコントローラ１４＿０〜１４＿３はそれぞれ、ＮＡＮＤパッケージ群２０＿０〜２０＿３との間の通信のために機能する。ＮＡＮＤコントローラ群１４内の各ＮＡＮＤコントローラの構成については、後述する。
【００２３】
ＮＡＮＤインタフェース回路１５は、ＮＡＮＤパッケージ群２０と接続され、ＮＡＮＤパッケージ群２０との通信を司る。ＮＡＮＤインタフェース回路１５は、プロセッサ１６の指示により、ＮＡＮＤコントローラ１４＿０〜１４＿３から送出されたコマンド、アドレス、及び書込みデータ等を、対応するＮＡＮＤパッケージ２０＿０〜２０＿３に送信する。また、ＮＡＮＤインタフェース回路１５は、ＮＡＮＤパッケージ２０＿０〜２０＿３から読出されたデータを受信し、対応するＮＡＮＤコントローラ１４＿０〜１４＿３に転送する。
【００２４】
プロセッサ１６は、メモリコントローラ１０全体の動作を制御する。
【００２５】
１．１．３  ＮＡＮＤコントローラの構成について
次に、第１実施形態に係るメモリシステムのＮＡＮＤコントローラの構成について説明する。
【００２６】
図２は、第１実施形態に係るメモリシステムのＮＡＮＤコントローラの構成の一例を説明するためのブロック図である。図２では、複数のＮＡＮＤコントローラのうち、ＮＡＮＤコントローラ１４＿０の構成が示されるが、当該構成は、他のＮＡＮＤコントローラ１４＿１〜１４＿３についても同様である。
【００２７】
図２に示すように、ＮＡＮＤコントローラ１４＿０は、制御回路１４１、インタリーブコントローラ１４２、ＥＣＣ（Error check and correction）回路１４３、コマンドスケジューラ１４４、コマンドキュー１４５、及びサスペンドタイマ群１４６を含む。上述の通り、ＮＡＮＤコントローラ１４＿０は、ＮＡＮＤパッケージ２０＿０に対応する。
【００２８】
制御回路１４１は、ＮＡＮＤコントローラ１４＿０全体の動作を制御する。制御回路１４１は、例えば、コマンドバッファ１３から受けた命令に基づき、１又は複数のコマンド（コマンドセット）を生成する。生成されたコマンドセットは、例えば、コマンドキュー１４５に格納される。
【００２９】
インタリーブコントローラ１４２は、ＮＡＮＤコントローラ１４＿０と、ＮＡＮＤパッケージ２０＿０内のチップ２１〜２４との通信の順番やタイミング等を制御する。
【００３０】
ＥＣＣ回路１４３は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書込み時には、ホスト機器から受信したデータに基づいて、或る数のデータの組毎にＥＣＣ符号を生成する。また、データの読出し時には、ＥＣＣ符号に基づいてＥＣＣ復号し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。
【００３１】
コマンドスケジューラ１４４は、コマンドキュー１４５に格納されたコマンドセットがＮＡＮＤパッケージ２０＿０に発行される順番を決定する。コマンドセットがＮＡＮＤパッケージ２０＿０に発行される順番は、コマンドセットが格納された順番でもよいが、これに限られない。例えば、コマンドスケジューラ１４４は、先に格納されたコマンドセットの一部又は全部よりも前に、後に格納されたコマンドセットの一部又は全部をＮＡＮＤパッケージ２０＿０に発行するように、発行するコマンドの順番を決定可能である。
【００３２】
コマンドキュー１４５は、制御回路１４１からコマンドセットを受けると、当該コマンドセットを一時的に格納する。また、コマンドキュー１４５は、コマンドスケジューラ１４４で決定された順番にしたがって、当該格納されたコマンドセットをＮＡＮＤパッケージ２０＿０へと発行する。
【００３３】
サスペンドタイマ群１４６は、サスペンドコマンドの生成の際に用いられる複数のタイマを含む。サスペンドコマンドは、チップ２１〜２４が或る動作を実行中に、当該動作を一時的に停止させるために用いられるコマンドである。
【００３４】
具体的には、サスペンドタイマ群１４６は、チップ２１〜２４の各々に対応するタイマ群（チップ２１用タイマ群１４６＿０、チップ２２用タイマ群１４６＿１、チップ２３用タイマ群１４６＿２、及びチップ２４用タイマ群１４６＿３）を含む。なお、タイマ群１４６＿０〜１４６＿３の各々は、同様の構成であるため、以下ではチップ２１用タイマ群１４６＿０の構成について一例として説明する。
【００３５】
チップ２１用タイマ群１４６＿０は、少なくとも１つのタイマ（図１の例では、タイマ１５０、タイマ１５１、…）を含む。各タイマは、例えば、制御回路１４１の指示に応じてカウントを開始し、又はカウントした値をリセットする。
【００３６】
１．１．４  チップの構成について
次に、第１実施形態に係るメモリシステムのチップの構成について説明する。
【００３７】
図３は、第１実施形態に係るメモリシステムのチップの構成の一例を説明するためのブロック図である。図３では、複数のチップのうち、チップ２１の構成が示されるが、当該構成は、他のチップ２２〜２４についても同様である。
【００３８】
図３に示すように、チップ２１は、メモリセルアレイ２０１、入出力回路２０２、ロジック制御回路２０３、レジスタ２０４、シーケンサ２０５、電圧生成回路２０６、ドライバセット２０７、ロウデコーダ２０８、及びセンスアンプモジュール２０９を備えている。
【００３９】
メモリセルアレイ２０１は、複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を備えている。ブロックＢＬＫは、ワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタ（図示せず）を含む。ブロックＢＬＫは、例えばデータの消去単位となり、同一のブロックＢＬＫ内のデータは、一括して消去される。各ブロックＢＬＫは、複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、…）を備えている。各ストリングユニットＳＵは、ＮＡＮＤストリングＮＳの集合である。ＮＡＮＤストリングＮＳは、複数のメモリセルトランジスタを含む。なお、メモリセルアレイ２０１内のブロック数、１ブロックＢＬＫ内のストリングユニット数、及び１ストリングユニットＳＵ内のＮＡＮＤストリング数は、任意の数に設定出来る。
【００４０】
入出力回路２０２は、メモリコントローラ１０と信号Ｉ／Ｏ＜７：０＞（Ｉ／Ｏ０〜Ｉ／Ｏ７）を送受信する。信号Ｉ／Ｏ＜７：０＞は、例えば８ビットの信号である。信号Ｉ／Ｏ＜７：０＞は、チップ２１とＮＡＮＤコントローラ１４＿０との間で送受信されるデータの実体であり、コマンド、アドレス、及びデータ（書込みデータ及び読出しデータ）を含む。入出力回路２０２は、信号Ｉ／Ｏ内のコマンド及びアドレスをレジスタ２０４に転送する。入出力回路２０２は、書き込みデータ及び読出しデータをセンスアンプモジュール２０９と送受信する。
【００４１】
ロジック制御回路２０３は、ＮＡＮＤコントローラ１４＿０から信号＃ＣＥ、ＣＬＥ、ＡＬＥ、＃ＷＥ、＃ＲＥ、及び＃ＷＰを受信する。また、ロジック制御回路２０３は、信号＃ＲＢをＮＡＮＤコントローラ１４＿０に転送してチップ２１の状態を通知する。なお、以下の説明では、信号名の先頭に“＃”が付された信号は、ローアクティブ信号であることを示す。
【００４２】
信号＃ＣＥは、チップ２１をイネーブルにするための信号である。信号ＣＬＥは、信号ＣＬＥが“Ｈ（High）”レベルである間にチップ２１に入力される信号Ｉ／Ｏ＜７：０＞がコマンドであることをチップ２１に通知する。信号ＡＬＥは、信号ＡＬＥが“Ｈ”レベルである間にチップ２１に入力される信号Ｉ／Ｏ＜７：０＞がアドレスであることをチップ２１に通知する。信号＃ＷＥは、信号＃ＷＥが“Ｌ（Low）”レベルである間にチップ２１に入力される信号Ｉ／Ｏ＜７：０＞をチップ２１に取り込むことを指示する。信号＃ＲＥは、チップ２１に信号Ｉ／Ｏ＜７：０＞を出力することを指示する。信号＃ＷＰは、データ書込み及び消去の禁止をチップ２１に指示する。信号＃ＲＢは、チップ２１がレディ状態（ＮＡＮＤコントローラ１４＿０からのコマンドを原則として受け付ける状態）であるか、ビジー状態（ＮＡＮＤコントローラ１４＿０からのコマンドを原則として受け付けない状態）であるかを示す。なお、チップ２１は、ビジー状態であっても、後述するステータスリードコマンドやサスペンドコマンド等の一部のコマンドを受付けることが出来る。
【００４３】
レジスタ２０４は、コマンド及びアドレスを保持する。レジスタ２０４は、アドレスをロウデコーダ２０８及びセンスアンプモジュール２０９に転送すると共に、コマンドをシーケンサ２０５に転送する。
【００４４】
シーケンサ２０５は、コマンドを受け取り、受け取ったコマンドに基づくシーケンスに従ってチップ２１の全体を制御する。
【００４５】
電圧生成回路２０６は、シーケンサ２０５からの指示に基づき、データの書込み、読出し、及び消去等の動作に必要な電圧を生成する。電圧生成回路２０６は、生成した電圧をドライバセット２０７に供給する。
【００４６】
ドライバセット２０７は、複数のドライバを含み、レジスタ２０４からのアドレスに基づいて、電圧生成回路２０６からの種々の電圧をロウデコーダ２０８及びセンスアンプモジュール２０９に供給する。ドライバセット２０７は、例えば、アドレス中のロウアドレスに基づき、ロウデコーダ２０８に種々の電圧を供給する。
【００４７】
ロウデコーダ２０８は、レジスタ２０４からアドレス中のロウアドレスを受取り、当該ロウアドレスに基づいてブロックＢＬＫを選択する。そして、選択されたブロックＢＬＫには、ロウデコーダ２０８を介してドライバセット２０７からの電圧が印加される。
【００４８】
センスアンプモジュール２０９は、データの読出し時には、メモリセルトランジスタからビット線に読出された読出しデータをセンスし、センスした読出しデータを入出力回路２０２に転送する。また、センスアンプモジュール２０９は、例えば、読出しデータを一時的に保持可能なページバッファ２１０を含み、センスした読出しデータをページバッファ２１０にキャッシュしても良い。センスアンプモジュール２０９は、データの書込み時には、ビット線を介して書込まれる書込みデータをメモリセルトランジスタに転送する。また、センスアンプモジュール２０９は、レジスタ２０４からアドレス中のカラムアドレスを受取り、当該カラムアドレスに基づくカラムのデータを出力する。
【００４９】
１．１．５  メモリセルアレイの構成について
次に、第１実施形態に係るメモリシステムのメモリセルアレイの構成について、図４を用いて説明する。
【００５０】
図４に示すように、ＮＡＮＤストリングＮＳの各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、選択トランジスタＳＴ１と、選択トランジスタＳＴ２とを備える。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各メモリセルトランジスタＭＴは、選択トランジスタＳＴ１及びＳＴ２の間に、直列接続される。なお、以下の説明では『接続』とは、間に別の導電可能な要素が介在する場合（すなわち、電気的に接続される場合）も含む。
【００５１】
或るブロックＢＬＫ内において、ストリングユニットＳＵ０〜ＳＵ３の選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に接続される。また、ブロックＢＬＫ内の全てのストリングユニットＳＵの選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続される。同一のブロックＢＬＫ内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に接続される。すなわち、同じアドレスのワード線ＷＬは、同一のブロックＢＬＫ内の全てのストリングユニットＳＵに共通接続されており、選択ゲート線ＳＧＳは、同一のブロックＢＬＫ内の全てのストリングユニットＳＵに共通接続されている。一方、選択ゲート線ＳＧＤは、同一のブロックＢＬＫ内のストリングユニットＳＵの１つのみに接続される。
【００５２】
また、メモリセルアレイ２０１内でマトリクス状に配置されたＮＡＮＤストリングＮＳのうち、同一行にあるＮＡＮＤストリングＮＳの選択トランジスタＳＴ１の他端は、ｍ本のビット線ＢＬ（ＢＬ０〜ＢＬ（ｍ−１）（ｍは自然数））のいずれかに接続される。また、ビット線ＢＬは、複数のブロックＢＬＫにわたって、同一列のＮＡＮＤストリングＮＳに共通接続される。
【００５３】
また、選択トランジスタＳＴ２の他端は、ソース線ＣＥＬＳＲＣに接続される。ソース線ＣＥＬＳＲＣは、複数のブロックＢＬＫにわたって、複数のＮＡＮＤストリングＮＳに共通接続される。
【００５４】
前述のとおり、データの消去は、例えば、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴに対して一括して行われる。これに対して、データの読出し及び書込みは、いずれかのブロックＢＬＫのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴにつき、一括して行われ得る。このように一括して書込まれる単位を「ページ」と言う。
【００５５】
次に、メモリセルアレイ２０１の断面構造について図５を用いて説明する。図５は、第１実施形態に係るメモリシステムのメモリセルアレイの一部の断面構造の一例を示している。特に、図５は、１つのブロックＢＬＫ内の２つのストリングユニットＳＵに関する部分を示している。具体的には、図５は、２つのストリングユニットＳＵのそれぞれの２つのＮＡＮＤストリングＮＳと、その周辺の部分と、を示している。そして、図５に示される構成が、Ｘ方向に複数配列されており、例えばＸ方向に並ぶ複数のＮＡＮＤストリングＮＳの集合が１つのストリングユニットＳＵに相当する。
【００５６】
メモリセルアレイ２０１は、半導体基板３０上に設けられている。以下の説明では、半導体基板３０の表面と平行な面をＸＹ平面とし、ＸＹ平面に垂直な方向をＺ方向とする。また、Ｘ方向とＹ方向は、互いに直交するものとする。
【００５７】
半導体基板３０の上部には、ｐ型ウェル領域３０ｐが設けられる。ｐ型ウェル領域３０ｐ上に、複数のＮＡＮＤストリングＮＳが設けられる。すなわち、ｐ型ウェル領域３０ｐ上には、例えば、選択ゲート線ＳＧＳとして機能する配線層３１、ワード線ＷＬ０〜ＷＬ７として機能する８層の配線層３２、及び選択ゲート線ＳＧＤとして機能する配線層３３が、順次積層される。配線層３１及び３３は、複数層積層されていてもよい。積層された配線層３１〜３３間には、図示せぬ絶縁膜が設けられる。
【００５８】
配線層３１は、例えば、１つのブロックＢＬＫ内の複数のＮＡＮＤストリングＮＳの各々の選択トランジスタＳＴ２のゲートに共通接続される。配線層３２は、各層毎に、１つのブロックＢＬＫ内の複数のＮＡＮＤストリングＮＳの各々のメモリセルトランジスタＭＴの制御ゲートに共通接続される。配線層３３は、１つのストリングユニットＳＵ内の複数のＮＡＮＤストリングＮＳの各々の選択トランジスタＳＴ１のゲートに共通接続される。
【００５９】
メモリホールＭＨは、配線層３３、３２、３１を通過してｐ型ウェル領域３０ｐに達するように設けられる。メモリホールＭＨの側面上には、ブロック絶縁膜３４、電荷蓄積層（絶縁膜）３５、及びトンネル酸化膜３６が順に設けられる。メモリホールＭＨ内には、半導体ピラー（導電膜）３７が埋め込まれる。半導体ピラー３７は、例えばノンドープのポリシリコンであり、ＮＡＮＤストリングＮＳの電流経路として機能する。半導体ピラー３７の上端上には、ビット線ＢＬとして機能する配線層３８が設けられる。
【００６０】
以上のように、ｐ型ウェル領域３０ｐの上方には、選択トランジスタＳＴ２、複数のメモリセルトランジスタＭＴ、及び選択トランジスタＳＴ１が順に積層されており、１つのメモリホールＭＨが、１つのＮＡＮＤストリングＮＳに対応している。
【００６１】
ｐ型ウェル領域３０ｐの上部には、ｎ＋型不純物拡散領域３９及びｐ＋型不純物拡散領域４０が設けられる。ｎ＋型不純物拡散領域３９の上面上には、コンタクトプラグ４１が設けられる。コンタクトプラグ４１の上面上には、ソース線ＣＥＬＳＲＣとして機能する配線層４２が設けられる。ｐ＋型不純物拡散領域４０の上面上にはコンタクトプラグ４３が設けられる。コンタクトプラグ４３の上面上には、ウェル線ＣＰＷＥＬＬとして機能する配線層４４が設けられる。
【００６２】
なお、メモリセルアレイ２０１の構成については、その他の構成であってもよい。メモリセルアレイ２０１の構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００６３】
１．２  動作について
次に、第１実施形態に係るメモリシステムの動作について説明する。
【００６４】
なお、以下の説明では、一例として、メモリシステム２内のＮＡＮＤコントローラ１４＿０と、ＮＡＮＤパッケージ２０＿０との間で実行される動作について説明する。当該動作は、他のＮＡＮＤコントローラ１４＿１〜１４＿３と、ＮＡＮＤパッケージ２０＿１〜２０＿３との間で実行される動作と同様である。
【００６５】
１．２．１  サスペンド動作の概要について
第１実施形態に係るメモリシステムのサスペンド動作の概要について説明する。
【００６６】
サスペンド動作は、ＮＡＮＤパッケージ２０＿０内のチップ２１〜２４が或る動作ＯＰ１を実行中である（ビジー状態にある）場合に発生する動作である。ＮＡＮＤコントローラ１４＿０は、ビジー状態のチップ（例えば、チップ２１）に対してサスペンドコマンドを発行することにより、チップ２１で実行中の動作ＯＰ１を一時的に停止させる（レディ状態にする）ことが出来る。ＮＡＮＤコントローラ１４＿０は、更に新たなコマンドを発行することにより、当該新たなコマンドに対応する新たな動作ＯＰ２を、動作ＯＰ１の途中で割り込ませて、チップ２１に実行させることが出来る。動作ＯＰ２が完了した後、ＮＡＮＤコントローラ１４＿０は、チップ２１に対してレジュームコマンドを発行することにより、一時停止中であった動作ＯＰ１を再開させることが出来る。以下の説明では、「動作ＯＰ１の実行中に、動作ＯＰ１を一時停止して動作ＯＰ２を先に実行し、動作ＯＰ２の終了後に動作ＯＰ１を再開させる動作」を総称して、「サスペンド動作」と言う。
【００６７】
図６は、第１実施形態に係るメモリシステムのサスペンド動作と、タイマのカウント値との関係の一例を説明するためのダイアグラムである。図６では、横軸に時間が示され、縦軸にタイマ１５０のカウント値が示される。そして、図６では、上述の動作ＯＰ１の実行中において、上述の動作ＯＰ２に関するサスペンド動作が許可されるか又は禁止されるかが、タイマ１５０のカウント値に応じて変化する様子が示される。
【００６８】
図６に示すように、時刻Ｔ０において、ＮＡＮＤコントローラ１４＿０は、チップ２１が動作ＯＰ１を開始することに伴い、タイマ１５０のカウントを開始させる。タイマ１５０には、例えば、任意に設定可能な閾値が対応付けられる。ＮＡＮＤコントローラ１４＿０は、例えば、タイマ１５０のカウント値が当該閾値未満の場合はサスペンド動作を禁止し、当該閾値以上の場合はサスペンド動作を許可する。すなわち、タイマ１５０のカウント値が閾値未満の時間帯はサスペンド禁止期間と言い、閾値以上の時間帯はサスペンド許可期間とも言う。なお、閾値は、例えば、図示しないレジスタに予め記憶される。図６の例では、時刻Ｔ０において閾値Ｎ１が設定される場合が示される。
【００６９】
時刻Ｔ０においては、タイマ１５０のカウント値が閾値Ｎ１未満である。このため、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から動作ＯＰ２を実行する旨の命令を受けても、サスペンドコマンドを発行しない。このため、チップ２１は、動作ＯＰ１を一時停止することなく実行し続ける。
【００７０】
時刻Ｔ１において、タイマ１５０のカウント値は、閾値Ｎ１に達する。これにより、時刻Ｔ１以降はサスペンド許可期間となり、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から動作ＯＰ２を実行する旨の命令を受けていた場合、サスペンドコマンドを発行し得る状態となる。図６の例では、時刻Ｔ１の時点ではホスト機器３から動作ＯＰ２を実行する旨の命令を受けていないため、チップ２１は、引き続き動作ＯＰ１を実行している。
【００７１】
時刻Ｔ２において、ホスト機器３から動作ＯＰ２を実行する旨の命令を受けると、ＮＡＮＤコントローラ１４＿０及びチップ２１は、サスペンド動作を実行する。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウント値を“０”にリセットすると共に、タイマ１５０に対応する閾値の値を閾値Ｎ１から閾値Ｎ２に更新する。図６の例では、閾値Ｎ２として、閾値Ｎ１より小さい値が設定される場合が示される。第１実施形態では、閾値Ｎ２には閾値Ｎ１より小さい値が設定されるものとして説明するが、これに限らず、閾値Ｎ２に閾値Ｎ１より大きい値が設定されてもよい。
【００７２】
なお、時刻Ｔ２の時点では、タイマ１５０はカウント値がリセットされたことにより、カウントを停止している。閾値Ｎ２は、例えば、図示しないレジスタに予め記憶されていてもよいし、時刻Ｔ２に至るまでのチップ２１の実行状態に基づいてＮＡＮＤコントローラ１４＿０が決定してもよい。
【００７３】
時刻Ｔ３において、サスペンド動作が終了する（動作ＯＰ２が終了し、動作ＯＰ１が再開する）と、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウントを再開させる。時刻Ｔ３以降では、タイマ１５０のカウント値が更新された新たな閾値Ｎ２に達するまで、サスペンド動作は禁止される。
【００７４】
時刻Ｔ４において、タイマ１５０のカウント値は、閾値Ｎ２に達する。これにより、時刻Ｔ４以降はサスペンド許可期間となり、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から更なる動作ＯＰ２を実行する旨の命令を受けていた場合、サスペンドコマンドを発行し得る状態となる。
【００７５】
以上のように動作することにより、動作ＯＰ１の実行中におけるサスペンド動作の許可又は禁止がタイマ１５０のカウント値に応じて切替えられる。
【００７６】
１．２．２  サスペンド動作のフローチャートについて
次に、第１実施形態に係るメモリシステムにおけるサスペンド動作について、図７及び図８に示すフローチャートを用いて説明する。
【００７７】
図７及び図８の各々は、ステップＳＴ１０からステップＳＴ４０までを含む１つのフローチャートが分割して示されている。具体的には、図７にはステップＳＴ１０からステップＳＴ２６までが示され、図８にはステップＳＴ２８からステップＳＴ４０までが示される。図７及び図８では、チップ２１において、上述の動作ＯＰ１の具体例として書込み動作又は消去動作が実行中であり、上述の動作ＯＰ２の具体例として読出し動作が割り込んで実行される場合が示される。また、図７及び図８では、タイマ１５０に閾値Ｎ１が予め対応付けられており、タイマ１５０がリセットされることによって閾値Ｎ１が閾値Ｎ２に更新される場合が示される。
【００７８】
図７に示すように、まず、チップ２１は、動作ＯＰ１として、書込み動作又は消去動作を開始する。
【００７９】
ステップＳＴ１０において、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウントを開始させる。すなわち、ステップＳＴ１０におけるタイマ１５０のカウント値は、チップ２１における書込み動作又は消去動作が開始してから経過した時間に対応する。
【００８０】
ステップＳＴ１２において、ＮＡＮＤコントローラ１４＿０は、他のチップ２２〜２４の巡回動作を行う。具体的には、例えば、ＮＡＮＤコントローラ１４＿０は、他のチップ２２〜２４において書込み動作又は消去動作が開始しているか否かを判定する。ＮＡＮＤコントローラ１４＿０は、チップ２２〜２４のいずれかで書込み動作又は消去動作が開始していると判定した場合、当該チップに対して以下に示すステップＳＴ１４以降の動作を実行する。
【００８１】
ステップＳＴ１４において、ＮＡＮＤコントローラ１４＿０は、チップ２１がコマンドを受付可能か否か判定する。
【００８２】
チップ２１がコマンドを受付可能と判定した場合（ステップＳＴ１４；Ｙｅｓ）（すなわち、チップ２１がレディ状態の場合（ステップＳＴ１４；レディ））、ステップＳＴ１６に進む。
【００８３】
ステップＳＴ１６において、ＮＡＮＤコントローラ１４＿０は、ステータスリードコマンドを発行し、チップ２１の書込み動作又は消去動作が終了していることを確認した後、当該チップにおける書込み動作又は消去動作を終了する。
【００８４】
一方、チップ２１がコマンドを受付可能でないと判定した場合（ステップＳＴ１４；Ｎｏ）（すなわち、チップ２１がビジー状態の場合（ステップＳＴ１４；ビジー））、ステップＳＴ１８に進む。
【００８５】
ステップＳＴ１８において、ＮＡＮＤコントローラ１４＿０は、ステータスリードコマンドを発行し、チップ２１の書込み動作又は消去動作が実行中であることを確認すると共に、チップ２１において実行中の各動作のステータスを取得する。チップ２１のステータスは、例えば、チップ２１がサスペンドコマンドを受付可能な状態であるか否かを判定可能な情報を含む。書込み動作及び消去動作の各々において取得されるステータスの詳細については、後述する。
【００８６】
ステップＳＴ２０において、ＮＡＮＤコントローラ１４＿０は、取得した情報に基づき、チップ２１がサスペンドコマンドを受付可能なステータスであるか否かを判定する。
【００８７】
チップ２１がサスペンドコマンドを受付けることが出来ないステータスであると判定した場合（ステップＳＴ２０；Ｎｏ）、ステップＳＴ１２に進む。
【００８８】
チップ２１がサスペンドコマンドを受付可能なステータスであると判定した場合（ステップＳＴ２０；Ｙｅｓ）、ステップＳＴ２２に進む。ステップＳＴ２２において、ＮＡＮＤコントローラ１４＿０は、閾値Ｎ２を決定する。ＮＡＮＤコントローラ１４＿０は、例えば、ステップＳＴ１８において取得されたチップ２１のステータスが、サスペンドコマンドを受付不可なステータスから受付け可能なステータスとなるまでの時間を測定し、当該時間を閾値Ｎ２として決定してもよい。
【００８９】
ステップＳＴ２４において、ＮＡＮＤコントローラ１４＿０は、サスペンド許可期間（すなわち、タイマ１５０のカウント値が閾値Ｎ１以上）であり、かつホスト機器３から読出し命令があるか否かを判定する。
【００９０】
サスペンド禁止期間（すなわち、タイマ１５０のカウント値が閾値Ｎ１未満）であるか、又はホスト機器３からの読出し命令がない場合（ステップＳＴ２４；Ｎｏ）、ステップＳＴ１２に戻る。このように、ＮＡＮＤコントローラ１４＿０は、サスペンド動作に移行するまでの間、ステップＳＴ１８によるステータスポーリングを行い、チップ２１〜２４の実行状態を定期的に監視する。そして、チップ２１〜２４のステータスの変化に応じて、閾値Ｎ２を決定する。
【００９１】
一方、サスペンド許可期間であり、かつホスト機器３から読出し命令が来ている場合（ステップＳＴ２４；Ｙｅｓ）、ステップＳＴ２６に進む。
【００９２】
ステップＳＴ２６において、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウント値を“０”にリセットすると共に、タイマ１５０に対応付けられる閾値を、閾値Ｎ１から閾値Ｎ２に更新する。なお、ステップＳＴ２６では、タイマ１５０のカウント値はリセットされるだけであり、カウントは再開されていない。
【００９３】
引き続き、図８を参照して、ステップＳＴ２８〜ＳＴ４０について説明する。
【００９４】
図８に示すように、ステップＳＴ２８において、ＮＡＮＤコントローラ１４＿０は、消去動作又は書込み動作を一時停止する旨のサスペンドコマンドをチップ２１に発行する。
【００９５】
ステップＳＴ３０において、ＮＡＮＤコントローラ１４＿０は、サスペンドコマンドによってレディ状態となったチップ２１に対し、読出し動作を実行する旨の読出しコマンドを発行する。これにより、チップ２１は、消去動作又は書込み動作の一時停止中に読出し動作を開始する。
【００９６】
ステップＳＴ３２において、ＮＡＮＤコントローラ１４＿０は、現チップ（チップ２１）がコマンド受付可能か否かを判定する。
【００９７】
チップ２１がコマンドを受付可能でないと判定した場合（ステップＳＴ３２；Ｎｏ）（すなわち、チップ２１がビジー状態の場合（ステップＳＴ３２；ビジー））、チップ２１において読出し動作が実行中であると判定し、ステップＳＴ３４に進む。
【００９８】
ステップＳＴ３４において、ＮＡＮＤコントローラ１４＿０は、チップ２１が読出し動作を実行中に、他のチップ２２〜２４のコマンドの巡回動作を行う。具体的には、例えば、ＮＡＮＤコントローラ１４＿０は、チップ２１が読出し動作を実行中であるためにビジー状態である際に、他のチップ２２〜２４に発行可能なコマンドがないかを判定する。ＮＡＮＤコントローラ１４＿０は、他のチップ２２〜２４のいずれかを動作対象とするコマンドがあり、かつ当該動作対象のチップがレディ状態である場合、当該動作対象のチップにコマンドを発行する。
【００９９】
チップ２１がコマンドを受付可能と判定した場合（ステップＳＴ３２；Ｙｅｓ）（すなわち、チップ２１がレディ状態の場合（ステップＳＴ１４；レディ））、ステップＳＴ３６に進む。
【０１００】
ステップＳＴ３６において、ＮＡＮＤコントローラ１４＿０は、チップ２１における読出し対象のページに関する読出し動作が終了したと判定し、ステップＳＴ３８に進む。
【０１０１】
ステップＳＴ３８において、ＮＡＮＤコントローラ１４＿０は、ステップＳＴ３０において発行された読出しコマンドに基づき、チップ２１内のページバッファ２１０にキャッシュされた読出しデータがあるか否かを判定する。キャッシュされた読出しデータがあると判定した場合（ステップＳＴ３８；Ｙｅｓ）、ＮＡＮＤコントローラ１４＿０は、ステップＳＴ３６に戻り、チップ２１にキャッシュされた読出しデータを引き続き読出す。キャッシュされた読出しデータがないと判定した場合（ステップＳＴ３８；Ｎｏ）、ＮＡＮＤコントローラ１４＿０は、サスペンド動作内で実行される読出し動作が終了したと判定し、ステップＳＴ４０に進む。なお、ステップＳＴ３８における判定動作は、例えば、ステップＳＴ３０においてＮＡＮＤコントローラ１４＿０が読出しコマンドを発行する際に併せて実行される。ページバッファ２１０にキャッシュされる場合としては、例えば、同一のページアドレスからの読出しが連続して実行される場合が想定される。
【０１０２】
ステップＳＴ４０において、ＮＡＮＤコントローラ１４＿０は、消去動作又は書込み動作を再開させる旨のレジュームコマンドをチップ２１に発行する。これにより、チップ２１は、消去動作又は書込み動作を再開する。
【０１０３】
その後、ＮＡＮＤコントローラ１４＿０は、ステップＳＴ１０に進み、タイマ１５０のカウントを再開させる。
【０１０４】
以上により、１回のサスペンド動作で実行される一連の動作が終了する。
【０１０５】
１．２．３  サスペンド動作の詳細について
次に、第１実施形態に係るメモリシステムにおけるサスペンド動作の詳細について説明する。
【０１０６】
１．２．３．１  サスペンド動作を伴う消去動作について
第１実施形態に係るメモリシステムのサスペンド動作を伴う消去動作について図９を用いて説明する。
【０１０７】
図９では、消去動作中に、ホスト機器３から異なる２回のタイミングで読出し命令（ＲＤ１及びＲＤ２）を受けた場合におけるサスペンド動作が実行されるタイミングが示される。また、図９では、タイマ１５０に対応付けられる閾値として当初設定されていた閾値Ｎ１が、消去動作中に閾値Ｎ２に更新され、閾値Ｎ２が閾値Ｎ３に更に更新される場合が示される。
【０１０８】
図９に示すように、消去動作は、消去処理（ＥＲ：Erase）（ＥＲ１〜ＥＲ３）及び消去確認処理（ＥＶ：Erase Verify）（ＥＶ１〜ＥＶ３）を含む。消去処理ＥＲは、書込み動作によってメモリセルトランジスタＭＴの電荷蓄積層３５に蓄積された電荷を引き抜き、閾値電圧を下げる処理である。消去確認処理ＥＶは、直前の消去処理ＥＲによって閾値電圧が所定のレベルまで低下したか否かを確認する処理である。消去動作は、書込み動作によって電荷蓄積層３５に蓄積された電荷がほぼ引き抜かれるまで、当該消去処理ＥＲ及び消去確認処理ＥＶが交互に繰り返される。図９の例では、消去動作は、１回目の消去処理ＥＲ１及び消去確認処理ＥＶ１、２回目の消去処理ＥＲ２及び消去確認処理ＥＶ２、並びに３回目の消去処理ＥＲ３及び消去確認処理ＥＶ３がこの順に実行される。
【０１０９】
まず、時刻Ｔ１０において、消去処理ＥＲ１が開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウントを開始させる。消去処理ＥＲ１は、時刻Ｔ１０から時刻Ｔ１１にわたって実行される。また、引き続き時刻Ｔ１１から時刻Ｔ１２にわたって、消去確認処理ＥＶ１が実行される。そして、時刻Ｔ１２において消去確認処理ＥＶ１が終了すると、更なる消去処理ＥＲ２が開始される。
【０１１０】
なお、図９の例では、タイマ１５０のカウント値は、時刻Ｔ１２の時点で閾値Ｎ１に達していない。このため、時刻Ｔ１２までの期間はサスペンド禁止期間であり、ＮＡＮＤコントローラ１４＿０は、時刻Ｔ１０以降の期間にホスト機器３から読出し命令ＲＤ１を受けても、時刻Ｔ１２の時点においてはサスペンドコマンドを発行することができない。
【０１１１】
時刻Ｔ１３において、タイマ１５０のカウント値が閾値Ｎ１以上となることに伴い、ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ１に応じたサスペンドコマンド及び読出しコマンドを発行し、読出し処理ｓＲＤ１を実行させる。時刻Ｔ１４において、読出し処理ｓＲＤ１が終了すると、ＮＡＮＤコントローラ１４＿０は、レジュームコマンドを発行し、消去動作を再開させる。
【０１１２】
しかしながら、消去処理ＥＲ２は、一時停止させた時点から再開させることはできない。このため、時刻Ｔ１４から開始される消去処理ＥＲ２は、時刻Ｔ１２から時刻Ｔ１３までに実行した動作に巻き戻って再度実行することになる。このように、消去処理ＥＲ２中にサスペンド動作が実行されると、サスペンド動作が割り込む前に実行されていた消去処理ＥＲ２が無効となってしまい、消去動作全体に要する時間が時刻Ｔ１２〜Ｔ１３の分だけ増加してしまう。また、このようなサスペンド動作の割込みによる消去処理ＥＲの再実行が書込み／消去のサイクル毎に発生すると、メモリセルトランジスタＭＴの疲弊がより早く進み、チップ２１の寿命が短くなる要因となり得る。
【０１１３】
一方、消去確認処理ＥＶは、一時停止させた時点から再開させることができる。このため、仮に消去確認処理ＥＶ１中にサスペンド動作が実行されれば、サスペンド動作が割り込む前に実行されていた消去確認処理ＥＶ１は無効になることなく、消去動作全体に要する時間の増加を抑制することが出来る。したがって、消去動作におけるサスペンド動作は、消去処理ＥＲ中を避け、消去確認処理ＥＶ中に実行されることが望ましい。
【０１１４】
そこで、ＮＡＮＤコントローラ１４＿０は、図７において説明した通り、ステータスポーリングを行うことによって、消去動作中のチップ２１のステータスをモニタする。これにより、時刻Ｔ１１において、ＮＡＮＤコントローラ１４＿０は、チップ２１のステータスが消去処理ＥＲ１を実行している状態から消去確認処理ＥＶ１を実行している状態になったことを認識することが出来ると共に、消去確認処理ＥＶ１になるまでに要した時間（Ｔ１１−Ｔ１０）を知ることが出来る。
【０１１５】
ＮＡＮＤコントローラ１４＿０は、時間（Ｔ１１−Ｔ１０）に基づき、新たな閾値Ｎ２を決定する。すなわち、閾値Ｎ１には消去動作前に決定した値が適用されるのに対し、閾値Ｎ２には、消去処理ＥＲ１に実際に要した時間を反映した値が適用される。これにより、ＮＡＮＤコントローラ１４＿０は、直前の消去処理ＥＲ１の実行状態に基づき、タイマ１５０のカウント値が消去確認処理ＥＶ２中に（望ましくは消去処理ＥＲ２完了時点で）閾値Ｎ２以上となるように、閾値Ｎ２の値を精度よく調節することが出来る。
【０１１６】
なお、仮に消去処理ＥＲ１中にサスペンド禁止期間が終了し得る値が閾値Ｎ１として設定されていた場合、消去確認処理ＥＶ１に移行する前にサスペンド動作が実行され得る。つまり、ステータスリードによって消去確認処理ＥＶ１に移行した時間を取得する前にサスペンド動作が実行されてしまう。このため、消去確認処理ＥＶ１に移行するまでの時間に基づき、閾値Ｎ２を決定することが出来ない可能性がある。このため、上述の閾値Ｎ２を決定する動作を確実に実行するためには、事前に設定される閾値Ｎ１は、サスペンド禁止期間中に少なくとも消去確認処理ＥＶ１が開始され得る程度に大きい値であることが望ましい。
【０１１７】
時刻Ｔ１４において、消去処理ＥＲ２が再び開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０の新たなカウントを開始させる。消去処理ＥＲ２は、時刻Ｔ１４から時刻Ｔ１５にわたって実行される。また、引き続き時刻Ｔ１５から時刻Ｔ１６にわたって、消去確認処理ＥＶ２が実行される。
【０１１８】
図９の例では、タイマ１５０のカウント値は、消去確認処理ＥＶ２中の時刻Ｔ１６の時点で閾値Ｎ２に達する。時刻Ｔ１６において、ＮＡＮＤコントローラ１４＿０は、時刻Ｔ１４から時刻Ｔ１６の期間に受けた読出し命令ＲＤ２に応じてサスペンドコマンド及び読出しコマンドを発行し、読出し処理ｓＲＤ２を実行させる。時刻Ｔ１７において、読出し処理ｓＲＤ２が終了すると、ＮＡＮＤコントローラ１４＿０は、レジュームコマンドを発行し、消去動作を再開させる。
【０１１９】
上述の通り、ＮＡＮＤコントローラ１４＿０は、ステータスポーリングを行う。これにより、時刻Ｔ１５において、ＮＡＮＤコントローラ１４＿０は、チップ２１のステータスが消去処理ＥＲ２を実行している状態から消去確認処理ＥＶ２を実行している状態になったことを認識することが出来ると共に、消去確認処理ＥＶ２になるまでに要した時間（Ｔ１５−Ｔ１４）を知ることが出来る。
【０１２０】
ＮＡＮＤコントローラ１４＿０は、時間（Ｔ１５−Ｔ１４）に基づき、新たな閾値Ｎ３を決定する。これにより、ＮＡＮＤコントローラ１４＿０は、直前の消去処理ＥＲ２の実行状態に基づき、タイマ１５０のカウント値が消去確認処理ＥＶ３中に（望ましくは消去処理ＥＲ３完了時点で）閾値Ｎ３以上となるように、閾値Ｎ３の値を精度よく調節することが出来る。
【０１２１】
時刻Ｔ１７において、消去処理ＥＲ３が開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０の新たなカウントを開始させる。消去処理ＥＲ３は、時刻Ｔ１７から時刻Ｔ１８にわたって実行される。また、引き続き時刻Ｔ１８から時刻Ｔ１９にわたって、消去確認処理ＥＶ３が実行される。
【０１２２】
以上のように動作することにより、閾値Ｎ１を閾値Ｎ２に、及び閾値Ｎ２を閾値Ｎ３に更新しつつ、サスペンド動作を伴う消去動作が実行される。
【０１２３】
なお、上述したように、消去処理ＥＲ及び消去確認処理ＥＶは繰り返し実行される。このため、或る消去処理ＥＲ完了時点でタイマ１５０のカウント値が閾値以上となったとしても、その後更に実行される消去処理ＥＲ中に読出し命令を受ける可能性がある。この場合、実行中の消去処理ＥＲ中にサスペンド動作が実行されることは好ましくない。したがって、ＮＡＮＤコントローラ１４＿０は、チップ２１のステータスが消去確認処理ＥＶから次の消去処理ＥＲになったことを確認した場合、タイマ１５０のカウントをリセットすると共に再スタートさせ、サスペンド禁止期間が再開するようにしてもよい。
【０１２４】
１．２．３．２  サスペンド動作を伴う書込み動作について
次に、第１実施形態に係るメモリシステムのサスペンド動作を伴う書込み動作について図１０を用いて説明する。
【０１２５】
図１０では、書込み動作中に、ホスト機器３から異なる２回のタイミングで読出し命令（ＲＤ１及びＲＤ２）を受けた場合におけるサスペンド動作が実行されるタイミングが示される。また、図１０では、タイマ１５０に対応付けられる閾値として当初設定されていた閾値Ｎ１が、消去動作中に閾値Ｎ２に更新され、閾値Ｎ２が閾値Ｎ３に更に更新される場合が示される。
【０１２６】
書込み動作は、図示しない書込み処理（Program）と、書込み確認処理（Program verify）とを含む。書込み処理は、電荷蓄積層３５に電荷を蓄積させ、閾値電圧を上げる処理である。書込み確認処理は、書込み処理によって閾値電圧が所定のレベルまで上昇したか否かを確認する処理である。書込み動作は、当該書込み処理及び書込み確認処理が交互に繰り返される。以下の説明では、書込み処理及び書込み確認処理は、区別せずに、単に書込み処理ＰＲＯＧ（ＰＲＯＧ１〜ＰＲＯＧ３）と言う。
【０１２７】
図１０の例では、書込み動作は、１回目の書込み処理ＰＲＯＧ１、２回目の書込み処理ＰＲＯＧ２、及び３回目の書込み処理ＰＲＯＧ３がこの順に実行される。
【０１２８】
図１０に示すように、まず、時刻Ｔ２０において、書込み処理ＰＲＯＧ１が開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウントを開始させる。
【０１２９】
図１０の例では、タイマ１５０のカウント値は、時刻Ｔ２１に至るまで閾値Ｎ１に達していない。このため、時刻Ｔ２１までの期間はサスペンド禁止期間であり、ＮＡＮＤコントローラ１４＿０は、時刻Ｔ２０から時刻Ｔ２１の間にホスト機器３から読出し命令ＲＤ１を受けてもサスペンドコマンドを発行することができない。
【０１３０】
時刻Ｔ２１において、タイマ１５０のカウント値が閾値Ｎ１以上となることに伴い、ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ１に応じたサスペンドコマンド及び読出しコマンドを発行し、読出し処理ｓＲＤ１を実行させる。時刻Ｔ２２において、読出し処理ｓＲＤ１が終了すると、ＮＡＮＤコントローラ１４＿０は、レジュームコマンドを発行し、書込み動作を再開させる。
【０１３１】
書込み処理ＰＲＯＧは、書込み処理か書込み確認処理かによらず、一時停止させた時点から再開させることができる。このため、消去動作のように、消去処理ＥＲか消去確認処理ＥＶかによって、書込み動作全体に要する時間は変化しない。しかしながら、書込み処理ＰＲＯＧを初期に停止させた場合、ビットエラーレートが増加することが知られている。このため、書込み処理ＰＲＯＧが開始した直後にサスペンド動作を実行した場合、チップ２１内に保持されるデータの信頼性が低下する可能性がある。
【０１３２】
そこで、ＮＡＮＤコントローラ１４＿０は、事前に実施されるチップの特性評価等の結果に基づき、書込み処理ＰＲＯＧがどの程度進めばビットエラーレートが十分下がるかを示す情報を、チップ２１のビットエラーレート特性として予め取得し得る。また、ＮＡＮＤコントローラ１４＿０は、ステータスポーリングを行うことによって、書込み処理ＰＲＯＧがどの程度進んでいるか（書込み処理ＰＲＯＧの進行状況）を示す情報をステータスとして取得し得る。これにより、時刻Ｔ２１において、ＮＡＮＤコントローラ１４＿０は、チップ２１のビットエラーの発生確率が十分低下したことを認識することが出来る。
【０１３３】
ＮＡＮＤコントローラ１４＿０は、ビットエラーレートが増加しないと判定するまでに要した時間に基づき、新たな閾値Ｎ２を決定し得る。すなわち、閾値Ｎ１には書込み動作前に決定した値が適用されるのに対し、閾値Ｎ２には、書込み処理ＰＲＯＧ１に実際に要した時間を反映した値が適用される。これにより、ＮＡＮＤコントローラ１４＿０は、直前の書込み処理ＰＲＯＧ１の実行状態に基づき、ビットエラーレートが増加し得る時間帯にタイマ１５０のカウント値が閾値Ｎ２以上とならないように、閾値Ｎ２の値を精度よく調節することが出来る。
【０１３４】
また、ＮＡＮＤコントローラ１４＿０は、書込み動作全体に要してもよい総書込み時間の上限を管理していてもよい。この場合、ＮＡＮＤコントローラ１４＿０は、以後の書込み動作において多数のサスペンド動作が実行されることによって、書込み動作全体に要する時間が総書込み時間の上限を超えないように、閾値Ｎ２の値を設定してもよい。具体的には、ＮＡＮＤコントローラ１４＿０は、閾値Ｎ１よりも大きい値を閾値Ｎ２に設定してもよい。
【０１３５】
時刻Ｔ２２において、書込み動作が再び開始され、書込み処理ＰＲＯＧ２が実行される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０の新たなカウントを開始させる。
【０１３６】
図１０の例では、タイマ１５０のカウント値は、時刻Ｔ２３の時点で閾値Ｎ２に達する。時刻Ｔ２３において、ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ２に応じたサスペンドコマンド及び読出しコマンドを発行し、読出し処理ｓＲＤ２を実行させる。時刻Ｔ２４において、読出し処理ｓＲＤ２が終了すると、ＮＡＮＤコントローラ１４＿０は、レジュームコマンドを発行し、書込み動作を再開させる。
【０１３７】
上述の通り、ＮＡＮＤコントローラ１４＿０は、ステータスポーリングを行う。これにより、時刻Ｔ２３において、ＮＡＮＤコントローラ１４＿０は、チップ２１のビットエラーの発生確率が十分低下したことを認識することが出来ると共に、ビットエラーレートが増加しないと判定するまでに要した時間を知ることが出来る。
【０１３８】
ＮＡＮＤコントローラ１４＿０は、ビットエラーレートが増加しないと判定するまでに要した時間に基づき、新たな閾値Ｎ３を決定し得る。これにより、ＮＡＮＤコントローラ１４＿０は、直前の書込み処理ＰＲＯＧ２の実行状態に基づき、ビットエラーレートが増加し得る時間帯にタイマ１５０のカウント値が閾値Ｎ３以上とならないように、閾値Ｎ３の値を精度よく調節することが出来る。
【０１３９】
また、ＮＡＮＤコントローラ１４＿０は、総書込み時間の上限との兼ね合いにより、閾値Ｎ３に、閾値Ｎ２よりも大きい値を設定してもよい。これにより、サスペンド動作の実行回数が増えるごとに、サスペンド禁止期間が長くなるように設定することが出来る。
【０１４０】
時刻Ｔ２４において、書込み動作が再び開始され、書込み処理ＰＲＯＧ３が実行される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０の新たなカウントを開始させる。書込み処理ＰＲＯＧ３は、時刻Ｔ２４から時刻Ｔ２５にわたって実行される。
【０１４１】
以上のように動作することにより、閾値Ｎ１を閾値Ｎ２に、及び閾値Ｎ２を閾値Ｎ３に更新しつつ、サスペンド動作を伴う書込み動作が実行される。
【０１４２】
１．３  本実施形態に係る効果
第１実施形態によれば、読出し動作のレイテンシを向上させつつ、全体動作の実行効率を向上させることが出来る。本効果につき、以下に説明する。
【０１４３】
ＮＡＮＤ型フラッシュメモリは、消去動作又は書込み動作によって、数ミリ秒（ｍｓ）のビジー時間が発生し得る。このため、消去動作又は書込み動作の完了を待って読出し動作を実行した場合、読出し動作のレイテンシが悪化する可能性がある。
【０１４４】
そこで、ＮＡＮＤ型フラッシュメモリを含むメモリシステムは、サスペンドコマンドを用いることによって、消去動作又は書込み動作中においても読出し動作を割り込ませて実行し得る機能を有する。しかしながら、消去動作及び書込み動作の実行状態によっては、読出し動作を割り込ませて実行することにより、かえって動作全体のレイテンシが悪化したり、動作の実行効率が悪化したりする可能性がある。
【０１４５】
第１実施形態によれば、ＮＡＮＤコントローラ１４＿０は、タイマ１５０を有する。制御回路１４１は、チップ２１における消去動作又は書込み動作の実行開始と共にタイマ１５０のカウントを開始させ、タイマ１５０が所定の閾値Ｎ１に達するまで、サスペンドコマンドの発行を禁止する。消去動作又は書込み動作の間、制御回路１４１は、チップ２１のステータスを取得することにより、当該ステータスがサスペンドコマンドを発行可能な状態になるまでの時間を得る。そして、制御回路１４１は、当該得た時間に応じて、リセット後のタイマ１５０に適用される閾値の値を閾値Ｎ１から閾値Ｎ２に更新する。
【０１４６】
これにより、当初設定された閾値Ｎ１に応じてサスペンド動作が実行されると動作全体の実行効率が悪化し得る場合、より適切な閾値Ｎ２に変更することで、実行効率の悪化が発生しないタイミングでサスペンド動作を実行することが出来る。
【０１４７】
具体的には、消去動作の場合、制御回路１４１は、チップ２１が消去処理ＥＲ中であるか、消去確認処理ＥＶ中であるかをステータスとして取得し、消去処理ＥＲから消去確認処理ＥＶになるまでの時間に応じて、閾値Ｎ２を決定する。これにより、実行効率の悪化を抑制することが出来る。
【０１４８】
補足すると、消去処理ＥＲ中にサスペンド動作が発生した場合、サスペンド動作後に再開される消去処理ＥＲは、サスペンド動作前に実行された消去処理ＥＲを含めて再実行される。一方、消去確認処理ＥＶ中にサスペンド動作が発生した場合、サスペンド動作前に実行された消去確認処理ＥＶは、サスペンド動作後に再度実行する必要はない。このように、消去動作においては、消去確認処理ＥＶ中にサスペンド動作が実行されることが望ましい。制御回路１４１は、消去処理ＥＲ１から消去確認処理ＥＶ１までに実際に要した時間に基づき、次に消去処理ＥＲ２から消去確認処理ＥＶ２までに要すると思われる時間を予測することが出来る。これにより、制御回路１４１は、消去確認処理ＥＶ２中にサスペンド禁止期間が終了するような閾値Ｎ２を決定することが出来る。
【０１４９】
また、書込み動作の場合、制御回路１４１は、ビットエラーレート特性を事前評価等の結果から予め取得すると共に、実際の書込み処理ＰＲＯＧの進行状況をステータスとして取得し、ビットエラーレートが十分小さくなったことを認識する。そして、制御回路１４１は、当該ビットエラーレートが十分小さくなるまでの時間に応じて、閾値Ｎ２を決定する。これにより、動作の実行効率の悪化を抑制することが出来る。
【０１５０】
補足すると、書込み処理ＰＲＯＧの初期にサスペンド動作が発生した場合、サスペンド動作前に書込まれたセルのビットエラーレートが増加し得る。このように、書込み動作においては、書込み処理ＰＲＯＧが開始してからビットエラーレートが発生しない程度に時間が経過した後にサスペンド動作が実行されることが望ましい。制御回路１４１は、書込み処理ＰＲＯＧ１中にビットエラーレートが十分に小さくなるまでに実際に要した時間に基づき、次に書込み処理ＰＲＯＧ２中にビットエラーレートが十分に小さくなるまでの時間を予測することが出来る。これにより、制御回路１４１は、書込み処理ＰＲＯＧ２を中断してもビットエラーレートが増加しない期間中にサスペンド禁止期間が終了するような閾値Ｎ２を決定することが出来る。
【０１５１】
また、書込み動作においてサスペンド動作が発生すると、制御回路１４１は、閾値Ｎ２が閾値Ｎ１よりも大きくなるように設定し得る。これにより、サスペンド動作が実行されるたびに、サスペンド禁止期間が長く設定されることになり、結果として書込み動作中に実行されるサスペンド動作の回数を制限することが出来る。このため、書込み動作全体に要する時間が総書込み時間の上限を超えないようにすることができ、ひいては、動作の実行効率の悪化を抑制することが出来る。
【０１５２】
２．  第２実施形態
次に、第２実施形態に係るメモリシステムについて説明する。第２実施形態に係るメモリシステムは、ホスト機器３から複数ページの読出し命令を同時に受けた場合の動作が示される。以下の説明では、第１実施形態と同一の構成及び動作についてはその説明を省略し、第１実施形態と異なる構成及び動作について主に説明する。
【０１５３】
２．１  サスペンド動作のフローチャートについて
第２実施形態に係るメモリシステムにおけるサスペンド動作について、図１１に示すフローチャートを用いて説明する。
【０１５４】
図１１では、第１実施形態において説明された図８に対応するステップＳＴ２８からステップＳＴ４０までが示される。なお、第２実施形態におけるステップＳＴ１０からステップＳＴ２６までの動作は、第１実施形態において説明された図７と同様である。
【０１５５】
図１１に示すように、ステップＳＴ２８からステップＳＴ３８までの動作は、図８のステップＳＴ２８からステップＳＴ３８までの動作と同様であるため、説明を省略する。
【０１５６】
ステップＳＴ３９において、ＮＡＮＤコントローラ１４＿０は、コマンドキュー１４５内に同一チップを対象とする読出しコマンドが格納されていないか否かを確認する。
【０１５７】
コマンドキュー１４５内に同一チップを対象とする読出しコマンドが格納されている場合（ステップＳＴ３９；Ｙｅｓ）、ステップＳＴ３０に戻る。ＮＡＮＤコントローラ１４＿０は、当該コマンドキュー１４５内の読出しコマンドを、同一のサスペンド動作中に続けて実行する。
【０１５８】
コマンドキュー１４５内に読出しコマンドが格納されていない場合（ステップＳＴ３９；Ｎｏ）、ステップＳＴ４０に進む。
【０１５９】
ステップＳＴ４０において、ＮＡＮＤコントローラ１４＿０は、消去動作又は書込み動作を再開させる旨のレジュームコマンドをチップ２１に発行する。これにより、チップ２１は、消去動作又は書込み動作を再開する。
【０１６０】
その後、ＮＡＮＤコントローラ１４＿０は、ステップＳＴ１０に進み、タイマ１５０のカウントを再開させる。
【０１６１】
以上により、１回のサスペンド動作で実行される一連の動作が終了する。
【０１６２】
２．２  サスペンド動作を伴う消去動作について
次に、第２実施形態に係るメモリシステムのサスペンド動作を伴う消去動作について図１２を用いて説明する。なお、第２実施形態に係るメモリシステムのサスペンド動作を伴う書込み動作については説明を省略するが、書込み動作は、以下に示す消去動作と同様に、図１１のフローチャートにしたがってサスペンド動作を伴う動作を実行可能である。
【０１６３】
図１２では、消去動作中に、ホスト機器３から同一のタイミングで複数の読出し命令（ＲＤ１及びＲＤ２）を受けた場合におけるサスペンド動作が実行されるタイミングが示される。
【０１６４】
図１２の例では、消去動作では、１回目の消去処理ＥＲ１及び消去確認処理ＥＶ１、２回目の消去処理ＥＲ２及び消去確認処理ＥＶ２、並びに３回目の消去処理ＥＲ３及び消去確認処理ＥＶ３がこの順に実行される。
【０１６５】
図１２に示すように、まず、時刻Ｔ３０において、消去処理ＥＲ１が開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウントを開始させる。消去処理ＥＲ１は、時刻Ｔ３０から時刻Ｔ３１にわたって実行される。また、引き続き時刻Ｔ３１から時刻Ｔ３２にわたって、消去確認処理ＥＶ１が実行される。そして、時刻Ｔ３２において消去確認処理ＥＶ１が終了すると、更なる消去処理ＥＲ２が開始される。
【０１６６】
なお、図１２の例では、タイマ１５０のカウント値は、時刻Ｔ３２の時点で閾値Ｎ１に達していない。このため、時刻Ｔ３２までの期間はサスペンド禁止期間であり、ＮＡＮＤコントローラ１４＿０は、時刻Ｔ３０以降の期間にホスト機器３から読出し命令ＲＤ１及びＲＤ２を受けても、時刻Ｔ３２の時点においてはサスペンドコマンドを発行することができない。
【０１６７】
時刻Ｔ３３において、タイマ１５０のカウント値が閾値Ｎ１以上となることに伴い、ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ１に応じたサスペンドコマンド及び読出しコマンドを発行し、読出し処理ｓＲＤ１を実行させる。時刻Ｔ３４において、読出し処理ｓＲＤ１が終了すると、ＮＡＮＤコントローラ１４＿０は、引き続き読出し命令ＲＤ２に応じた読出しコマンドを発行し、読出し処理ｓＲＤ２を実行させる。時刻Ｔ３５において、読出し処理ｓＲＤ２が終了すると、ＮＡＮＤコントローラ１４＿０は、レジュームコマンドを発行し、消去動作を再開させる。
【０１６８】
また、ＮＡＮＤコントローラ１４＿０は、ステータスポーリングを行う。これにより、時刻Ｔ３１において、ＮＡＮＤコントローラ１４＿０は、チップ２１のステータスが消去処理ＥＲ１を実行している状態から消去確認処理ＥＶ１を実行している状態になったことを認識し、時間（Ｔ３１−Ｔ３０）に基づき、新たな閾値Ｎ２を決定する。閾値Ｎ２に基づくサスペンド禁止期間は、例えば、時刻Ｔ３５から時刻Ｔ３６までに設定される。
【０１６９】
消去処理ＥＲ２及び消去確認処理ＥＶ２はそれぞれ、時刻Ｔ３５から時刻Ｔ３６まで、及び時刻Ｔ３６から時刻Ｔ３７まで実行される。また、消去処理ＥＲ３及び消去確認処理ＥＶ３はそれぞれ、時刻Ｔ３７から時刻Ｔ３８まで、及び時刻Ｔ３８から時刻Ｔ３９まで実行される。時刻Ｔ３７において、ＮＡＮＤコントローラ１４＿０は、チップ２１のステータスが消去確認処理ＥＶ２から消去処理ＥＲ３になったことを認識し、タイマ１５０のカウントをリセットすると共に再スタートさせ、サスペンド禁止期間が再開するようにしてもよい。
【０１７０】
以上のように動作することにより、閾値Ｎ１を閾値Ｎ２に更新しつつ、サスペンド動作を伴う消去動作が実行される。
【０１７１】
２．３  本実施形態に係る効果
第２実施形態によれば、ＮＡＮＤコントローラ１４＿０は、サスペンドコマンドを発行するまでにホスト機器３から受けた複数の読出し命令ＲＤ１及びＲＤ２を、同一のサスペンド動作においてチップ２１に実行させる。このため、消去動作又は書込み動作が中断する回数を低減することが出来ると共に、読出し命令ＲＤ２を受けてからデータが読出されるまでに要する時間を短縮することが出来る。これにより、読出し動作のレイテンシを向上させつつ、全体動作の実行効率を向上させることが出来る。
【０１７２】
３．  第３実施形態
次に、第３実施形態に係るメモリシステムについて説明する。第３実施形態に係るメモリシステムは、優先度の高い読出し命令を認識し、当該優先度の高い読出し命令についてはサスペンド禁止期間でも優先的に実行させる。以下の説明では、第１実施形態と同一の構成及び動作についてはその説明を省略し、第１実施形態と異なる構成及び動作について主に説明する。
【０１７３】
３．１  サスペンド動作のフローチャートについて
第３実施形態に係るメモリシステムにおけるサスペンド動作について、図１３に示すフローチャートを用いて説明する。
【０１７４】
図１３は、第１実施形態において説明された図７に対応し、ステップＳＴ１０からステップＳＴ２６までが示される。なお、第３実施形態におけるステップＳＴ２８からステップＳＴ４０までの動作は、第１実施形態において説明された図８と同様である。
【０１７５】
図１３に示すように、ステップＳＴ１０からステップＳＴ２２までの動作は、図７のステップＳＴ１０からステップＳＴ２２までの動作と同様であるため、説明を省略する。
【０１７６】
ステップＳＴ２４＿１において、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から優先度の高い読出し命令があるか否かを判定する。優先度の高い読出し命令とは、例えば、所定の期間内にホスト機器３に読出しデータを出力する旨が読出し命令と共にＮＡＮＤコントローラ１４＿０に指示される場合を含む。優先度の高い読出し命令がない場合（ステップＳＴ２４＿１；Ｎｏ）、ステップＳＴ２４＿２に進む。優先度の高い読出し命令が来ている場合（ステップＳＴ２４＿１；Ｙｅｓ）、ステップＳＴ２６に進む。
【０１７７】
ステップＳＴ２４＿２において、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から優先度の低い読出し命令があるか否かを判定する。優先度の低い読出し命令とは、例えば、ステップＳＴ２４＿１において優先度の高い読出し命令と判定されなかった読出し命令である。優先度の低い読出し命令がない場合（すなわち、優先度の高低によらず読出し命令がない場合）（ステップＳＴ２４＿２；Ｎｏ）、ステップＳＴ１２に戻る。優先度の低い読出し命令が来ている場合（ステップＳＴ２４＿２；Ｙｅｓ）、ステップＳＴ２４＿３に進む。
【０１７８】
ステップＳＴ２４＿３において、ＮＡＮＤコントローラ１４＿０は、サスペンド許可期間（すなわち、タイマ１５０のカウント値が閾値Ｎ１以上）であるか否かを判定する。サスペンド禁止期間（すなわち、タイマ１５０のカウント値が閾値Ｎ１未満）である場合（ステップＳＴ２４＿３；Ｎｏ）、ステップＳＴ１２に戻る。サスペンド許可期間である場合（ステップＳＴ２４＿３；Ｙｅｓ）、ステップＳＴ２６に進む。
【０１７９】
ステップＳＴ２６において、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウント値を“０”にリセットすると共に、タイマ１５０に対応付けられる閾値を、閾値Ｎ１から閾値Ｎ２に更新する。
【０１８０】
以後、ステップＳＴ２８からステップＳＴ４０を実行することにより、１回のサスペンド動作で実行される一連の動作が終了する。
【０１８１】
３．２  サスペンド動作を伴う消去動作について
次に、第３実施形態に係るメモリシステムのサスペンド動作を伴う消去動作について図１４を用いて説明する。なお、第３実施形態に係るメモリシステムのサスペンド動作を伴う書込み動作については説明を省略するが、書込み動作は、以下に示す消去動作と同様に、図１３のフローチャートにしたがってサスペンド動作を伴う動作を実行可能である。
【０１８２】
図１４では、消去動作中に、ホスト機器３から優先度の高い読出し命令（ＲＤ１）を受けた場合におけるサスペンド動作が実行されるタイミングが示される。
【０１８３】
図１４の例では、消去動作では、１回目の消去処理ＥＲ１及び消去確認処理ＥＶ１、２回目の消去処理ＥＲ２及び消去確認処理ＥＶ２、並びに３回目の消去処理ＥＲ３及び消去確認処理ＥＶ３がこの順に実行される。
【０１８４】
図１４に示すように、まず、時刻Ｔ４０において、消去処理ＥＲ１が開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウントを開始させる。
【０１８５】
なお、図１４の例では、タイマ１５０のカウント値は、時刻Ｔ４１の時点で閾値Ｎ１に達していない。このため、時刻Ｔ４１までの期間はサスペンド禁止期間であり、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から通常の優先度の読出し命令を受けてもサスペンドコマンドを発行することができない。
【０１８６】
しかしながら、時刻Ｔ４１において、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から優先度の高い読出し命令ＲＤ１を受ける。ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ１の優先度が高いことを認識し、サスペンド禁止期間であるか否かによらず、読出し命令ＲＤ１に応じたサスペンドコマンド及び読出しコマンドを発行し、読出し処理ｓＲＤ１を実行させる。時刻Ｔ４２において、読出し処理ｓＲＤ１が終了すると、ＮＡＮＤコントローラ１４＿０は、レジュームコマンドを発行し、消去動作を再開させる。
【０１８７】
上述の通り、消去処理ＥＲ１は、一時停止させた時点から再開させることはできない。このため、時刻Ｔ４２から開始される消去処理ＥＲ１は、時刻Ｔ４０から時刻Ｔ４１までに実行した動作を再度実行することになる。
【０１８８】
また、ＮＡＮＤコントローラ１４＿０は、ステータスポーリングを行うことによって、消去動作中のチップ２１のステータスをモニタする。しかしながら、時刻Ｔ４０の時点では、チップ２１のステータスは消去処理ＥＲ１を実行中であるため、ＮＡＮＤコントローラ１４＿０は、閾値Ｎ２の値を決定しない。
【０１８９】
時刻Ｔ４２において、消去処理ＥＲ１が再び開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０の新たなカウントを開始させる。消去処理ＥＲ１は、時刻Ｔ４２から時刻Ｔ４３にわたって実行される。また、引き続き時刻Ｔ４３から時刻Ｔ４４にわたって、消去確認処理ＥＶ１が実行される。
【０１９０】
また、ＮＡＮＤコントローラ１４＿０は、ステータスポーリングを行う。これにより、時刻Ｔ４３において、ＮＡＮＤコントローラ１４＿０は、チップ２１のステータスが消去処理ＥＲ１を実行している状態から消去確認処理ＥＶ１を実行している状態になったことを認識し、時間（Ｔ４３−Ｔ４２）に基づき、新たな閾値Ｎ２を決定する。閾値Ｎ２は、以後の消去動作の間に再びサスペンド動作が実行された際に更新される。
【０１９１】
消去確認処理ＥＶ１が終了すると、消去処理ＥＲ２及び消去確認処理ＥＶ２がそれぞれ、時刻Ｔ４４から時刻Ｔ４５まで、及び時刻Ｔ４５から時刻Ｔ４６まで実行される。また、消去処理ＥＲ３及び消去確認処理ＥＶ３はそれぞれ、時刻Ｔ４６から時刻Ｔ４７まで、及び時刻Ｔ４７から時刻Ｔ４８まで実行される。
【０１９２】
以上のように動作することにより、優先度の高い読出し命令ＲＤ１に応じて、サスペンド禁止期間中にサスペンド動作が実行される。
【０１９３】
３．３  本実施形態に係る効果
第３実施形態によれば、ＮＡＮＤコントローラ１４＿０は、ホスト機器３からの読出し命令ＲＤ１の優先度を判定する。ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ１の優先度がサスペンドコマンドの発行の禁止よりも高いと判定された場合、サスペンドコマンドを発行すると共に、読出し命令ＲＤ１に応じた読出しコマンドを発行する。これにより、サスペンド禁止期間においても、読出しデータを迅速にホスト機器３に出力することが出来る。
【０１９４】
補足すると、ホスト機器３は、例えば、メモリシステム２に対して、制限時間内に読出しデータを出力するように命令し得る。また、ホスト機器３は、仮に制限時間内に読出しデータが出力できない場合、メモリシステム２に対して、データの読出しを停止するように更に命令し得る。このような場合、メモリシステム２は、サスペンド禁止期間が終了するまで読出し動作を実行しないことによって、制限時間内に読出しデータをホスト機器３に出力できない可能性がある。
【０１９５】
第３実施形態によれば、ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ１が制限時間内のデータ読出し命令を伴う場合、当該読出し命令ＲＤ１の優先度が高いと判定する。これにより、チップ２１は、消去動作又は書込み動作の実行状態によらず、速やかに読出し動作を実行することができ、ホスト機器３からの要求を満たすことが出来る。したがって、メモリシステム２の動作の実行効率を向上させることが出来る。
【０１９６】
４．  第４実施形態
次に、第４実施形態に係るメモリシステムについて説明する。第４実施形態に係るメモリシステムは、タイマ１５０に加え、カウント値が閾値に達するとサスペンド動作の実行を禁止するタイマ１５１を更に用いる。以下の説明では、第１実施形態と同一の構成及び動作についてはその説明を省略し、第１実施形態と異なる構成及び動作について主に説明する。
【０１９７】
４．１  サスペンド動作の概要について
まず、第４実施形態に係るメモリシステムのサスペンド動作の概要について説明する。
【０１９８】
第４実施形態に係るメモリシステムは、第１実施形態において説明したタイマ１５０に基づくサスペンド禁止期間に加え、タイマ１５１に基づくサスペンド禁止期間を更に設ける。
【０１９９】
図１５は、第４実施形態に係るメモリシステムのサスペンド動作と、タイマのカウント値との関係の一例を説明するためのダイアグラムである。図１５は、タイマ１５１の動作が示され、タイマ１５０の動作が示された図６に対応する。図１５では、横軸に時間が示され、縦軸にタイマ１５１のカウント値が示される。そして、図１５では、動作ＯＰ１の実行中において、動作ＯＰ２に関するサスペンド動作が許可されるか又は禁止されるかが、タイマ１５１のカウント値に応じて変化する様子が示される。
【０２００】
図１５に示すように、時刻Ｔ５において、ＮＡＮＤコントローラ１４＿０は、チップ２１が動作ＯＰ１を開始することに伴い、タイマ１５１のカウントを開始させる。時刻Ｔ５におけるタイマ１５１には、例えば、閾値Ｍ１が対応付けられる。ＮＡＮＤコントローラ１４＿０は、例えば、タイマ１５１のカウント値が閾値Ｍ１未満の場合はサスペンド動作を許可し、閾値Ｍ１以上の場合はサスペンド動作を禁止する。なお、閾値Ｍ１は、例えば、図示しないレジスタに予め記憶される。
【０２０１】
時刻Ｔ５においては、タイマ１５１のカウント値が閾値Ｍ１未満であるため、サスペンド許可期間となる。このため、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から動作ＯＰ２を実行する旨の命令を受けると、サスペンドコマンドを発行し得る状態となる。
【０２０２】
時刻Ｔ６において、ホスト機器３から動作ＯＰ２を実行する旨の命令を受けると、ＮＡＮＤコントローラ１４＿０及びチップ２１は、サスペンド動作を実行する。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５１のカウント値を一時停止する。
【０２０３】
時刻Ｔ７において、サスペンド動作が終了する（動作ＯＰ２が終了し、動作ＯＰ１が再開する）と、ＮＡＮＤコントローラ１４＿０は、タイマ１５１のカウントを再開させる。時刻Ｔ７以降では、タイマ１５１のカウント値が閾値Ｍ１に達するまで、サスペンド動作は引き続き許可される。
【０２０４】
時刻Ｔ８において、タイマ１５１のカウント値は、閾値Ｍ１に達する。これにより、時刻Ｔ８以降はサスペンド禁止期間となり、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から更なる動作ＯＰ２を実行する旨の命令を受けても、サスペンドコマンドの発行が禁止される。
【０２０５】
以上のように動作することにより、動作ＯＰ１の実行中におけるサスペンド動作の許可又は禁止がタイマ１５１のカウント値に応じて切替えられる。
【０２０６】
４．２  サスペンド動作のフローチャートについて
次に、第４実施形態に係るメモリシステムにおけるサスペンド動作について、図１６に示すフローチャートを用いて説明する。
【０２０７】
図１６は、第１実施形態において説明された図７に対応し、ステップＳＴ１０ＡからステップＳＴ２６Ａまでが示される。ステップＳＴ１０Ａ及びＳＴ２６Ａは、図７におけるステップＳＴ１０及びＳＴ２６に代えて実行される動作である。なお、第４実施形態におけるステップＳＴ２８からステップＳＴ４０までの動作は、第１実施形態において説明された図８と同様である。
【０２０８】
図１６に示すように、ステップＳＴ１０Ａにおいて、ＮＡＮＤコントローラ１４＿０は、タイマ１５０及び１５１のカウントを開始させる。すなわち、ステップＳＴ１０Ａにおけるタイマ１５０及び１５１のカウント値は、チップ２１における書込み動作又は消去動作が開始してから経過した時間に対応する。
【０２０９】
ステップＳＴ１２からステップＳＴ２４までの動作は、図７のステップＳＴ１２からステップＳＴ２４までの動作と同様であるため、説明を省略する。
【０２１０】
ステップＳＴ２６Ａにおいて、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウント値を“０”にリセットすると共に、タイマ１５０に対応付けられる閾値を、閾値Ｎ１から閾値Ｎ２に更新する。加えて、ステップＳＴ２６Ａにおいて、ＮＡＮＤコントローラ１４＿０は、タイマ１５１のカウントをリセットすることなく、一時停止する。
【０２１１】
以後、ステップＳＴ２８からステップＳＴ４０を実行することにより、１回のサスペンド動作で実行される一連の動作が終了する。
【０２１２】
以上のように動作させることにより、ステップＳＴ４０が実行された後のステップＳＴ１０Ａでは、ＮＡＮＤコントローラ１４＿０は、タイマ１５０のカウントを“０”から開始させ、タイマ１５１のカウントを、ステップＳＴ２６Ａで一時停止させた値から再開させることになる。
【０２１３】
４．２  サスペンド動作を伴う書込み動作について
次に、第４実施形態に係るメモリシステムのサスペンド動作を伴う書込み動作について図１７を用いて説明する。なお、第４実施形態に係るメモリシステムのサスペンド動作を伴う消去動作については説明を省略するが、以下に示す書込み動作と同様に、図１６のフローチャートにしたがってサスペンド動作を伴う動作を実行可能である。
【０２１４】
図１７では、書込み動作中に、２つのタイマ１５０及び１５１によってサスペンド動作の禁止及び許可が制御される様子が示される。
【０２１５】
図１７の例では、書込み動作は、１回目の書込み処理ＰＲＯＧ１、及び２回目の書込み処理ＰＲＯＧ２がこの順に実行される。
【０２１６】
図１７に示すように、まず、時刻Ｔ５０において、書込み処理ＰＲＯＧ１が開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０及び１５１のカウントを開始させる。
【０２１７】
図１７の例では、タイマ１５０のカウント値は、時刻Ｔ５１に至るまで閾値Ｎ１に達していない。このため、時刻Ｔ５１までの期間はサスペンド禁止期間であり、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から読出し命令ＲＤ１を受けてもサスペンドコマンドを発行することができない。
【０２１８】
時刻Ｔ５１において、タイマ１５０のカウント値が閾値Ｎ１以上となることに伴い、ＮＡＮＤコントローラ１４＿０は、読出し命令ＲＤ１に応じたサスペンドコマンド及び読出しコマンドを発行し、読出し処理ｓＲＤ１を実行させる。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５１のカウントを一時停止させる。時刻Ｔ５２において、読出し処理ｓＲＤ１が終了すると、ＮＡＮＤコントローラ１４＿０は、レジュームコマンドを発行し、書込み動作を再開させる。
【０２１９】
また、ＮＡＮＤコントローラ１４＿０は、ステータスポーリングを行うことによって、チップ２１における書込み処理ＰＲＯＧの進行状況をステータスとしてモニタし、新たな閾値Ｎ２を決定する。
【０２２０】
時刻Ｔ５２において、書込み処理ＰＲＯＧ２が実行され、書込み動作が再び開始される。これに伴い、ＮＡＮＤコントローラ１４＿０は、タイマ１５０の新たなカウントを開始させると共に、一時停止させていたタイマ１５１のカウントを再開させる。
【０２２１】
タイマ１５０のカウント値は、時刻Ｔ５３に至るまで閾値Ｎ２に達していない。このため、時刻Ｔ５２から時刻Ｔ５３までの期間はサスペンド禁止期間であり、ＮＡＮＤコントローラ１４＿０は、ホスト機器３から更なる読出し命令を受けてもサスペンドコマンドを発行することができない。一方、時刻Ｔ５３に至ると、タイマ１５０のカウント値が閾値Ｎ２以上となる。このため、時刻Ｔ５３以降は、サスペンド許可期間となる。
【０２２２】
時刻Ｔ５４に至ると、タイマ１５１のカウント値が閾値Ｍ１以上となる。このため、時刻Ｔ５４以降は、再びサスペンド禁止期間となる。サスペンド禁止期間は、書込み処理ＰＲＯＧ２が終了する時刻Ｔ５５まで続くため、時刻Ｔ５４以降は、ＮＡＮＤコントローラ１４＿０は、サスペンドコマンドを発行することが出来ない。
【０２２３】
以上のように動作することにより、２つのタイマ１５０及び１５１を用いてサスペンド動作の禁止及び許可が制御される。
【０２２４】
４．３  本実施形態に係る効果
第４実施形態によれば、ＮＡＮＤコントローラ１４＿０は、タイマ１５１のカウント値が閾値Ｍ１に達すると、サスペンドコマンドの発行を禁止する。これにより、全体動作の実行効率を向上させることが出来る。
【０２２５】
補足すると、書込み動作では、メモリコントローラ１０は、内部のバッファ（例えば、バッファメモリ１２）から書込みデータをＮＡＮＤパッケージ群２０に転送し、データの書込みが終了することでバッファが開放される。このため、書込み動作の終盤では、サスペンド動作によってバッファの開放を遅らせるよりも、新たな動作を実行させる前に書込み動作を終了させることによってバッファの開放を完了させた方が、システム全体としての実行効率が向上する。そこで、ＮＡＮＤコントローラ１４＿０は、書込み動作の終盤では、サスペンド動作が実行されないように、閾値Ｍ１を設定する。これにより、バッファの開放が遅れることによる実行効率の低下を抑制することが出来る。
【０２２６】
５．  変形例等
なお、各実施形態は、上述の例に限らず、種々の変形が可能である。例えば、上述の各実施形態では、ホスト機器３からの読出し命令に応じてサスペンドコマンドを発行する場合について説明したが、メモリコントローラ１０がホスト機器３からの命令によらず、自ら生成した読出しコマンドに応じてサスペンドコマンドを発行してもよい。この場合、メモリコントローラ１０内で自ら生成された読出しコマンドは優先度が低く設定され、ホスト機器３からの命令に応じて生成された読出しコマンドは優先度が高く設定されてもよい。メモリコントローラ１０は、例えば、ガベージコレクションの実行時に、読出しコマンドを自ら生成することが想定される。
【０２２７】
その他、各実施形態及び各変形例において、以下の事項が適用されることが可能である。
【０２２８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２２９】
１…情報処理システム、２…メモリシステム、３…ホスト機器、１０…メモリコントローラ、１１…ホストインタフェース回路、１２…バッファメモリ、１３…コマンドバッファ、１４…ＮＡＮＤコントローラ群、１４＿０、１４＿１、１４＿２、１４＿３…ＮＡＮＤコントローラ、１５…ＮＡＮＤインタフェース回路、１６…プロセッサ、２０…ＮＡＮＤパッケージ群、２０＿０、２０＿１、２０＿２、２０＿３…ＮＡＮＤパッケージ、２１、２２、２３、２４…チップ、３０…半導体基板、３１、３２、３３、３８、４２、４４…配線層、３４…ブロック絶縁膜、３５…電荷蓄積層、３６…トンネル酸化膜、３７…半導体ピラー、４１、４３…コンタクトプラグ、３９…ｎ＋型不純物拡散領域、４０…ｐ＋型不純物拡散領域、１４１…制御回路、１４２…インタリーブコントローラ、１４３、ＥＣＣ回路、１４４…コマンドスケジューラ、１４５…コマンドキュー、１４６…サスペンドタイマ群、１４６＿０…チップ２１用タイマ群、１４６＿１…チップ２２用タイマ群、１４６＿２…チップ２３用タイマ群、１４６＿３…チップ２４用タイマ群、１５０、１５１…タイマ、２０１…メモリセルアレイ、２０２…入出力回路、２０３…ロジック制御回路、２０４…レジスタ、２０５…シーケンサ、２０６…電圧生成回路、２０７…ドライバセット、２０８…ロウデコーダ、２０９…センスアンプモジュール。
【図１】
2019053795.tif 000003
【図２】
2019053795.tif 000004
【図３】
2019053795.tif 000005
【図４】
2019053795.tif 000006
【図５】
2019053795.tif 000007
【図６】
2019053795.tif 000008
【図７】
2019053795.tif 000009
【図８】
2019053795.tif 000010
【図９】
2019053795.tif 000011
【図１０】
2019053795.tif 000012
【図１１】
2019053795.tif 000013
【図１２】
2019053795.tif 000014
【図１３】
2019053795.tif 000015
【図１４】
2019053795.tif 000016
【図１５】
2019053795.tif 000017
【図１６】
2019053795.tif 000018
【図１７】
2019053795.tif 000019