(57)【要約】【課題】メモリシステムの待ち時間を改善する。【解決手段】実施形態のメモリシステムは、半導体メモリと、半導体メモリを制御するメモリコントローラとを含む。半導体メモリは、複数のメモリセルと、ワード線と、シーケンサとを含む。複数のメモリセルは、各々が閾値電圧に基づいて複数ビットのデータを記憶し、複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定される。シーケンサは、書き込みコマンドに基づいて、第１書き込み動作を実行する。第１書き込み動作においてシーケンサは、プログラムループを繰り返し実行し、第２データのベリファイにパスする前に、第１データのベリファイにパスしたことに基づいて第１書き込み動作を終了する。【選択図】図１３
2019169205.tif 000002
【特許請求の範囲】
【請求項１】
各々が閾値電圧に基づいて複数ビットのデータを記憶し、前記複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、前記複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定される複数のメモリセルと、前記複数のメモリセルに接続されたワード線と、書き込み動作においてプログラム動作とベリファイ動作とを含むプログラムループを実行するシーケンサと、を備える半導体メモリと、
前記半導体メモリを制御するメモリコントローラと、を備え、
前記メモリコントローラは、書き込みコマンドと、書き込みデータとを前記半導体メモリに送信し、前記シーケンサは、前記書き込みコマンドに基づいて、前記ワード線を選択した前記書き込みデータの第１書き込み動作を実行し、
前記第１書き込み動作において前記シーケンサは、前記プログラムループを繰り返し実行し、前記第２データのベリファイにパスする前に、前記第１データのベリファイにパスしたことに基づいて前記第１書き込み動作を終了し、
前記メモリコントローラは、前記第１書き込み動作が終了した後に、第１コマンドを前記半導体メモリに送信し、前記シーケンサは、前記第１コマンドに基づいて前記書き込みデータの第２書き込み動作を実行する、メモリシステム。
【請求項２】
前記半導体メモリは、前記第１書き込み動作と前記第２書き込み動作との間に、前記書き込みデータを受信しない、
請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラは、前記第１書き込み動作と前記第２書き込み動作との間に、前記半導体メモリに対して読み出し動作を命令する、
請求項２に記載のメモリシステム。
【請求項４】
前記メモリコントローラは、第１メモリを備え、
前記メモリコントローラは、前記第１書き込み動作と前記第２書き込み動作との間にその他の書き込み動作を前記半導体メモリに実行させる前に、前記半導体メモリに前記第１書き込み動作の設定情報を出力させて前記第１メモリに保持し、
前記その他の書き込み動作を前記半導体メモリに実行させた後に、前記第１メモリに保持された前記設定情報を前記半導体メモリに入力し、
前記半導体メモリは、前記メモリコントローラから入力された前記設定情報に基づいて、前記第２書き込み動作を実行する、
請求項１に記載のメモリシステム。
【請求項５】
前記半導体メモリは、前記メモリコントローラから前記設定情報が入力された後と、前記第２書き込み動作との間に、前記書き込みデータを受信する、
請求項４に記載のメモリシステム。
【請求項６】
前記第２書き込み動作における最初のプログラムループにおいて前記ワード線に印加されるプログラム電圧は、前記第１書き込み動作における最後のプログラムループにおいて前記ワード線に印加されるプログラム電圧よりも低い第１電圧以上の電圧である、
請求項１に記載のメモリシステム。
【請求項７】
各々が閾値電圧に基づいて複数ビットのデータを記憶し、前記複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、前記複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定される複数のメモリセルと、前記複数のメモリセルに接続されたワード線と、書き込み動作においてプログラム動作とベリファイ動作とを含むプログラムループを実行するシーケンサと、を備える半導体メモリと、
前記半導体メモリを制御するメモリコントローラと、を備え、
前記メモリコントローラは、書き込みコマンドと、書き込みデータとを前記半導体メモリに送信し、前記シーケンサは、前記書き込みコマンドに基づいて前記書き込みデータの第１書き込み動作を実行し、
前記第１書き込み動作において前記シーケンサは、前記プログラムループを繰り返し実行し、前記第２データのベリファイにパスする前に前記プログラムループが第１の回数実行されたことに基づいて前記第１書き込み動作を終了し、
前記メモリコントローラは、前記第１書き込み動作が終了した後に、第１コマンドを前記半導体メモリに送信し、前記シーケンサは、前記第１コマンドに基づいて前記書き込みデータの第２書き込み動作を実行する、メモリシステム。
【請求項８】
前記半導体メモリは、前記第１書き込み動作と前記第２書き込み動作との間に、前記書き込みデータを受信しない、
請求項７に記載のメモリシステム。
【請求項９】
前記メモリコントローラは、前記第１書き込み動作と前記第２書き込み動作との間に、前記半導体メモリに対して読み出し動作を命令する、
請求項８に記載のメモリシステム。
【請求項１０】
前記メモリコントローラは、第１メモリを備え、
前記メモリコントローラは、前記第１書き込み動作と前記第２書き込み動作との間にその他の書き込み動作を前記半導体メモリに実行させる前に、前記半導体メモリに前記第１書き込み動作の設定情報を出力させて前記第１メモリに保持し、
前記その他の書き込み動作を前記半導体メモリに実行させた後に、前記第１メモリに保持された前記設定情報を前記半導体メモリに入力し、
前記半導体メモリは、前記メモリコントローラから入力された前記設定情報に基づいて、前記第２書き込み動作を実行する、
請求項７に記載のメモリシステム。
【請求項１１】
前記半導体メモリは、前記メモリコントローラから前記設定情報が入力された後と、前記第２書き込み動作との間に、前記書き込みデータを受信する、
請求項１０に記載のメモリシステム。
【請求項１２】
前記第２書き込み動作における最初のプログラムループにおいて前記ワード線に印加されるプログラム電圧は、前記第１書き込み動作における最後のプログラムループにおいて前記ワード線に印加されるプログラム電圧よりも低い第１電圧以上の電圧である、
請求項７に記載のメモリシステム。
【請求項１３】
前記シーケンサが前記第１書き込み動作で実行する前記プログラムループの回数は、前記シーケンサが前記第２書き込み動作で実行する前記プログラムループの回数に等しい、
請求項７に記載のメモリシステム。
【請求項１４】
各々が閾値電圧に基づいて複数ビットのデータを記憶し、前記複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、前記複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定される複数のメモリセルと、前記複数のメモリセルに接続されたワード線と、書き込み動作においてプログラム動作とベリファイ動作とを含むプログラムループを実行するシーケンサと、前記書き込み動作の実行時間をカウントするタイマとを備える半導体メモリと、
前記半導体メモリを制御するメモリコントローラと、を備え、
前記メモリコントローラは、書き込みコマンドと、書き込みデータとを前記半導体メモリに送信し、前記シーケンサは、前記書き込みコマンドに基づいて前記書き込みデータの第１書き込み動作を実行し、
前記第１書き込み動作において前記シーケンサは、前記プログラムループを繰り返し実行し、前記第２データのベリファイにパスする前に前記タイマのカウントが所定の回数になったことに基づいて前記第１書き込み動作を終了し、
前記メモリコントローラは、前記第１書き込み動作が終了した後に、第１コマンドを前記半導体メモリに送信し、前記シーケンサは、前記第１コマンドに基づいて前記書き込みデータの第２書き込み動作を実行する、メモリシステム。
【請求項１５】
前記半導体メモリは、前記第１書き込み動作と前記第２書き込み動作との間に、前記書き込みデータを受信しない、
請求項１４に記載のメモリシステム。
【請求項１６】
前記メモリコントローラは、前記第１書き込み動作と前記第２書き込み動作との間に、前記半導体メモリに対して読み出し動作を命令する、
請求項１５に記載のメモリシステム。
【請求項１７】
前記メモリコントローラは、第１メモリを備え、
前記メモリコントローラは、前記第１書き込み動作と前記第２書き込み動作との間にその他の書き込み動作を前記半導体メモリに実行させる前に、前記半導体メモリに前記第１書き込み動作の設定情報を出力させて前記第１メモリに保持し、
前記その他の書き込み動作を前記半導体メモリに実行させた後に、前記第１メモリに保持された前記設定情報を前記半導体メモリに入力し、
前記半導体メモリは、前記メモリコントローラから入力された前記設定情報に基づいて、前記第２書き込み動作を実行する、
請求項１４に記載のメモリシステム。
【請求項１８】
前記半導体メモリは、前記メモリコントローラから前記設定情報が入力された後と、前記第２書き込み動作との間に、前記書き込みデータを受信する、
請求項１７に記載のメモリシステム。
【請求項１９】
前記第２書き込み動作における最初のプログラムループにおいて前記ワード線に印加されるプログラム電圧は、前記第１書き込み動作における最後のプログラムループにおいて前記ワード線に印加されるプログラム電圧よりも低い第１電圧以上の電圧である、
請求項１４に記載のメモリシステム。
【請求項２０】
前記第１書き込み動作の処理時間と前記第２書き込み動作の処理時間とは略同一である、
請求項１４に記載のメモリシステム。
【請求項２１】
各々が第１閾値電圧と前記第１閾値電圧よりも高い第２閾値電圧とを含む複数の閾値電圧に基づいて複数ビットのデータを記憶するように設定される複数のメモリセルと、前記複数のメモリセルに接続されたワード線と、書き込み動作においてプログラム動作とベリファイ動作とを含むプログラムループを実行するシーケンサと、を備える半導体メモリと、
前記半導体メモリを制御するメモリコントローラと、を備え、
前記メモリコントローラは、書き込みコマンドと、書き込みデータとを前記半導体メモリに送信し、前記シーケンサは、前記書き込みコマンドに基づいて、前記ワード線を選択した前記書き込みデータの第１書き込み動作を実行し、
前記第１書き込み動作において前記シーケンサは、前記プログラムループを繰り返し実行し、前記第２閾値電圧のベリファイにパスする前に、前記第１閾値電圧のベリファイにパスしたことに基づいて前記第１書き込み動作を終了し、
前記メモリコントローラは、前記第１書き込み動作が終了した後に、第１コマンドを前記半導体メモリに送信し、前記シーケンサは、前記第１コマンドに基づいて前記書き込みデータの第２書き込み動作を実行する、メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
データを不揮発に記憶することが可能なＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５４６７９３８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリシステムの待ち時間を改善すること。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、半導体メモリと、半導体メモリを制御するメモリコントローラとを含む。半導体メモリは、複数のメモリセルと、ワード線と、シーケンサとを含む。複数のメモリセルは、各々が閾値電圧に基づいて複数ビットのデータを記憶し、複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定される。ワード線は、複数のメモリセルに接続される。シーケンサは、書き込み動作においてプログラム動作とベリファイ動作とを含むプログラムループを実行する。メモリコントローラは、書き込みコマンドと、書き込みデータとを半導体メモリに送信し、シーケンサは、書き込みコマンドに基づいて、ワード線を選択した書き込みデータの第１書き込み動作を実行する。第１書き込み動作においてシーケンサは、プログラムループを繰り返し実行し、第２データのベリファイにパスする前に、第１データのベリファイにパスしたことに基づいて第１書き込み動作を終了する。メモリコントローラは、第１書き込み動作が終了した後に、第１コマンドを半導体メモリに送信し、シーケンサは、第１コマンドに基づいて書き込みデータの第２書き込み動作を実行する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムの構成例を示すブロック図。
【図２】第１実施形態における半導体メモリの備えるメモリセルアレイの回路構成の一例を示す回路図。
【図３】第１実施形態におけるメモリセルトランジスタの閾値電圧の一例を示す閾値分布図。
【図４】第１実施形態における半導体メモリの備えるメモリセルアレイの平面レイアウトの一例を示す平面図。
【図５】第１実施形態における半導体メモリの備えるメモリセルアレイの断面構造の一例を示す断面図。
【図６】第１実施形態における半導体メモリの備えるシーケンサの構成例を示すブロック図。
【図７】第１実施形態における半導体メモリの備えるロウデコーダモジュールの回路構成の一例を示す回路図。
【図８】第１実施形態における半導体メモリの備えるセンスアンプモジュールの回路構成の一例を示す回路図。
【図９】第１実施形態における半導体メモリの備えるセンスアンプモジュールのより詳細な回路構成の一例を示す回路図。
【図１０】第１実施形態に係るメモリシステムの読み出し動作の一例を示すタイミングチャート。
【図１１】第１実施形態に係るメモリシステムの通常書き込みの一例を示すタイミングチャート。
【図１２】第１実施形態に係るメモリシステムにおける閾値レベルに基づいた分割書き込みの一例を示すフローチャート。
【図１３】第１実施形態に係るメモリシステムにおける閾値レベルに基づいた分割書き込みの一例を示すタイミングチャート。
【図１４】第１実施形態に係るメモリシステムにおけるプログラムループ数に基づいた分割書き込みの一例を示すフローチャート。
【図１５】第１実施形態に係るメモリシステムにおけるプログラムループ数に基づいた分割書き込みの一例を示すタイミングチャート。
【図１６】第１実施形態に係るメモリシステムにおける処理時間に基づいた分割書き込みの一例を示すフローチャート。
【図１７】第１実施形態に係るメモリシステムにおける処理時間に基づいた分割書き込みの一例を示すタイミングチャート。
【図１８】第２実施形態に係るメモリシステムの設定出力動作の一例を示すタイミングチャート。
【図１９】第２実施形態に係るメモリシステムの設定入力動作の一例を示すタイミングチャート。
【図２０】第２実施形態における半導体メモリのプログラムループ数に関する設定情報の一例を示すテーブル。
【図２１】第２実施形態における半導体メモリの書き込み完了フラグに関する設定情報の一例を示すテーブル。
【図２２】第２実施形態における半導体メモリの動作判別パラメータに関する設定情報の一例を示すテーブル。
【図２３】第２実施形態に係るメモリシステムにおける閾値レベルに基づいた分割書き込みの一例を示すフローチャート。
【図２４】第２実施形態に係るメモリシステムにおける閾値レベルに基づいた分割書き込みの一例を示すタイミングチャート。
【図２５】第２実施形態に係るメモリシステムにおける閾値レベルに基づいた分割書き込みの一例を示すタイミングチャート。
【図２６】第２実施形態に係るメモリシステムの分割書き込みにおけるラッチ回路内の情報の復元方法の一例を示すテーブル。
【図２７】第２実施形態に係るメモリシステムにおけるプログラムループ数に基づいた分割書き込みの一例を示すフローチャート。
【図２８】第２実施形態に係るメモリシステムにおける処理時間に基づいた分割書き込みの一例を示すフローチャート。
【図２９】第３実施形態に係るメモリシステムにおける閾値レベルに基づいた分割書き込みの一例を示すフローチャート。
【図３０】第３実施形態に係るメモリシステムにおける閾値レベルに基づいた分割書き込みのコマンドシーケンスの一例を示す図。
【図３１】第３実施形態に係るメモリシステムにおけるプログラムループ数に基づいた分割書き込みの一例を示すフローチャート。
【図３２】第３実施形態に係るメモリシステムにおける処理時間に基づいた分割書き込みの一例を示すフローチャート。
【図３３】第４実施形態における半導体メモリの備えるシーケンサの構成例を示すブロック図。
【図３４】第４実施形態に係るメモリシステムの分割書き込みの一例を示すフローチャート。
【図３５】第４実施形態に係るメモリシステムにおけるフォアグラウンドの分割書き込みのコマンドシーケンスの一例を示す図。
【図３６】第４実施形態に係るメモリシステムにおけるバックグラウンドの分割書き込みのコマンドシーケンスの一例を示す図。
【図３７】第４実施形態に係るメモリシステムの分割書き込みの一例を示すタイミングチャート。
【図３８】第５実施形態に係るメモリシステムの構成例を示すブロック図。
【図３９】第５実施形態に係るメモリシステムにおける書き込み前、第１書き込み後、及び第２書き込み後のそれぞれの閾値分布の一例を示す閾値分布図。
【図４０】第５実施形態に係るメモリシステムにおける第１書き込みのコマンドシーケンスの一例を示す図。
【図４１】第５実施形態に係るメモリシステムにおける第２書き込みのコマンドシーケンスの一例を示す図。
【図４２】第５実施形態に係るメモリシステムの書き込み動作における第１書き込み及び第２書き込みの書き込み順番の一例を示すテーブル。
【図４３】第５実施形態に係るメモリシステムの書き込み動作における第１書き込み及び第２書き込みのそれぞれの処理時間の一例を示すテーブル。
【図４４】第５実施形態の比較例における書き込み動作のコマンド発行順及び処理時間の一例を示すタイミングチャート。
【図４５】第１実施形態の変形例における、閾値レベルに基づいた分割書き込みの一例を示すタイミングチャート。
【図４６】第１実施形態の変形例における、閾値レベルに基づいた分割書き込みの一例を示すタイミングチャート。
【図４７】第１実施形態の変形例における、閾値レベルに基づいた分割書き込みの一例を示すタイミングチャート。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。実施形態は、発明の技術的思想を具体化するための装置や方法を例示している。図面は、模式的または概念的なものである。以下の説明において、略同一の機能及び構成を有する構成要素には、同一の符号が付されている。参照符号を構成する文字の後の数字は、同じ文字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ文字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は同じ文字のみを含んだ参照符号により参照される。
【０００８】
［１］第１実施形態
以下に、第１実施形態に係るメモリシステム１について説明する。
【０００９】
［１−１］構成
［１−１−１］メモリシステム１の全体構成
図１は、第１実施形態に係るメモリシステム１の構成例を示している。メモリシステム１は、図１に示すように、半導体メモリ１０及びメモリコントローラ２０を備えている。以下に、半導体メモリ１０及びメモリコントローラ２０のそれぞれの詳細な構成の一例について順に説明する。
【００１０】
（半導体メモリ１０の構成）
半導体メモリ１０は、データを不揮発に記憶することが可能な例えばＮＡＮＤ型フラッシュメモリである。半導体メモリ１０は、図１に示すように、例えばメモリセルアレイ１１、コマンドレジスタ１２、アドレスレジスタ１３、シーケンサ１４、ドライバ回路１５、ロウデコーダモジュール１６、センスアンプモジュール１７、及びステータスレジスタ１８を備えている。
【００１１】
メモリセルアレイ１１は、複数のブロックＢＬＫ０〜ＢＬＫｎ（ｎは１以上の整数）を含み、メモリセルアレイ１１には、複数のビット線及び複数のワード線が設けられる。ブロックＢＬＫは、不揮発性メモリセルの集合であり、例えばデータの消去単位として使用される。各メモリセルは、１本のビット線及び１本のワード線に関連付けられる。
【００１２】
コマンドレジスタ１２は、半導体メモリ１０がメモリコントローラ２０から受信したコマンドＣＭＤを保持する。コマンドＣＭＤは、例えばシーケンサ１４に読み出し動作、書き込み動作、消去動作等を実行させる命令を含んでいる。
【００１３】
アドレスレジスタ１３は、半導体メモリ１０がメモリコントローラ２０から受信したアドレス情報ＡＤＤを保持する。アドレス情報ＡＤＤは、例えばブロックアドレスＢＡ、ページアドレスＰＡ、及びカラムアドレスＣＡを含んでいる。
【００１４】
ブロックアドレスＢＡは、例えば各種動作の対象となるメモリセルを含むブロックＢＬＫの選択に使用される。ページアドレスＰＡは、例えば各種動作の対象となるメモリセルに関連付けられたワード線の選択に使用される。カラムアドレスＣＡは、例えば各種動作の対象となるビット線の選択に使用される。
【００１５】
シーケンサ１４は、コマンドレジスタ１２に保持されたコマンドＣＭＤに基づいて、半導体メモリ１０全体の動作を制御する。例えばシーケンサ１４は、ドライバ回路１５、ロウデコーダモジュール１６、及びセンスアンプモジュール１７を制御して、メモリコントローラ２０から受信したデータＤＡＴの書き込み動作や、メモリセルアレイ１１に記憶されたデータＤＡＴの読み出し動作を実行する。
【００１６】
ドライバ回路１５は、シーケンサ１４の制御に基づいて、所望の電圧を生成する。そしてドライバ回路１５は、例えばアドレスレジスタ１３に保持されたページアドレスＰＡに基づいて、選択されたワード線と非選択のワード線とに印加する電圧を、それぞれ対応する信号線に印加する。
【００１７】
ロウデコーダモジュール１６は、例えばアドレスレジスタ１３に保持されたブロックアドレスＢＡに基づいて、１つのブロックＢＬＫを選択する。そしてロウデコーダモジュール１６は、例えばドライバ回路１５が選択及び非選択のワード線にそれぞれ対応する信号線に印加した電圧を、それぞれ選択及び非選択のワード線にそれぞれ転送する。
【００１８】
センスアンプモジュール１７は、メモリコントローラ２０から受信した書き込みデータＤＡＴに応じて、各ビット線に所望の電圧を印加する。また、センスアンプモジュール１７は、ビット線の電圧に基づいてメモリセルに記憶されたデータを判定し、判定した読み出しデータＤＡＴをメモリコントローラ２０に送信する。
【００１９】
ステータスレジスタ１８は、ステータス情報ＳＴＳを保持する。ステータス情報ＳＴＳは、半導体メモリ１０の動作状態を示し、例えばシーケンサ１４によって変更される。また、ステータスレジスタ１８は、シーケンサ１４の制御に基づいて、保持するステータス情報ＳＴＳをメモリコントローラ２０に送信する。
【００２０】
（メモリコントローラ２０の構成）
メモリコントローラ２０は、例えばＳｏＣ（System on Chip）である。メモリコントローラ２０は、ホスト機器３０からの命令に応答して、半導体メモリ１０に対して読み出し、書き込み、及び消去等を命令する。
【００２１】
メモリコントローラ２０は、図１に示すように、ホストインターフェイス回路２１、ＣＰＵ（Central Processing Unit）２２、ＲＡＭ（Random Access Memory）２３、バッファメモリ２４、ＥＣＣ（Error Correction Code）回路２５、及びＮＡＮＤインターフェイス回路２６を備えている。
【００２２】
ホストインターフェイス回路２１は、ホストバスを介して外部のホスト機器３０と接続され、メモリコントローラ２０及びホスト機器３０間のデータ、コマンド、及びアドレスの転送を制御する。例えば、ホストインターフェイス回路２１は、ＳＡＴＡ（Serial Advanced Technology Attachment）、ＳＡＳ（Serial Attached SCSI）、ＰＣＩｅ（PCI Express）（登録商標）等の通信インターフェイス規格をサポートしている。
【００２３】
ＣＰＵ２２は、メモリコントローラ２０全体の動作を制御する。例えば、ＣＰＵ２２は、ホスト機器３０から受信した書き込み命令に応答して、書き込みコマンドを発行する。また、ＣＰＵ２２は、例えばウェアレベリング等、半導体メモリ１０のメモリ空間を管理するための様々な処理を実行する。
【００２４】
ＲＡＭ２３は、例えばＳＲＡＭ（Static Random Access Memory)等の揮発性メモリである。ＲＡＭ２３は、ＣＰＵ２２の作業領域として使用される。例えば、ＲＡＭ２３は、半導体メモリ１０を管理するためのファームウェアや各種管理テーブル等を保持する。
【００２５】
バッファメモリ２４は、例えばＤＲＡＭ（Dynamic Random Access Memory）等の揮発性メモリである。バッファメモリ２４は、メモリコントローラ２０が半導体メモリ１０から受信した読み出しデータや、ホスト機器３０から受信した書き込みデータ等を一時的に保持する。
【００２６】
ＥＣＣ回路２５は、データのエラー訂正処理を実行する。具体的には、書き込み動作時にＥＣＣ回路２５は、ホスト機器３０から受信した書き込みデータに基づいてパリティを生成し、生成したパリティを書き込みデータに付与する。読み出し動作時にＥＣＣ回路２５は、半導体メモリ１０から受信した読み出しデータに基づいてシンドロームを生成し、生成したシンドロームに基づいて読み出しデータのエラーを検出及び訂正する。
【００２７】
ＮＡＮＤインターフェイス回路２６は、メモリコントローラ２０及び半導体メモリ１０間のデータ、コマンド、及びアドレスの転送を制御し、ＮＡＮＤインターフェイス規格をサポートしている。例えば、半導体メモリ１０とメモリコントローラ２０との間の通信には、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、レディビジー信号ＲＢｎ、及び入出力信号Ｉ／Ｏが使用される。
【００２８】
コマンドラッチイネーブル信号ＣＬＥは、半導体メモリ１０が受信した入出力信号Ｉ／ＯがコマンドＣＭＤであることを示す信号である。アドレスラッチイネーブル信号ＡＬＥは、半導体メモリ１０が受信した信号Ｉ／Ｏがアドレス情報ＡＤＤであることを示す信号である。
【００２９】
ライトイネーブル信号ＷＥｎは、入出力信号Ｉ／Ｏの入力を半導体メモリ１０に命令する信号である。リードイネーブル信号ＲＥｎは、入出力信号Ｉ／Ｏの出力を半導体メモリ１０に命令する信号である。
【００３０】
レディビジー信号ＲＢｎは、半導体メモリ１０がメモリコントローラ２０からの命令を受け付けるレディ状態であるか命令を受け付けないビジー状態であるかを、メモリコントローラ２０に通知する信号である。入出力信号Ｉ／Ｏは、例えば８ビットの信号であり、コマンドＣＭＤ、アドレス情報ＡＤＤ、データＤＡＴ等を含み得る。
【００３１】
以上で説明した半導体メモリ１０及びメモリコントローラ２０は、それらの組み合わせにより一つの半導体装置を構成しても良い。このような半導体装置としては、例えばＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００３２】
尚、以上で説明したメモリコントローラ２０の各機能は、専用のハードウェア回路によって実現されても良い。また、メモリコントローラ２０の各機能は、ＣＰＵ２２がファームウェアを実行することによって実現されても良い。
【００３３】
［１−１−２］メモリセルアレイ１１の構成
（メモリセルアレイ１１の回路構成について）
図２は、第１実施形態おけるメモリセルアレイ１１の回路構成の一例を示し、メモリセルアレイ１１に含まれた複数のブロックＢＬＫのうち１つのブロックＢＬＫを抽出して示している。
【００３４】
ブロックＢＬＫは、図２に示すように、例えば４つのストリングユニットＳＵ０〜ＳＵ３を含んでいる。各ストリングユニットＳＵは、ビット線ＢＬ０〜ＢＬｍ（ｍは１以上の整数）にそれぞれ関連付けられた複数のＮＡＮＤストリングＮＳを含んでいる。例えば、ＮＡＮＤストリングＮＳは、８個のメモリセルトランジスタＭＴ０〜ＭＴ７、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。
【００３５】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を含み、データを不揮発に保持する。選択トランジスタＳＴ１及びＳＴ２のそれぞれは、各種動作時におけるストリングユニットＳＵの選択に使用される。
【００３６】
各ＮＡＮＤストリングＮＳに含まれたメモリセルトランジスタＭＴ０〜ＭＴ７は、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続される。同一のブロックＢＬＫ内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。
【００３７】
同一のブロックＢＬＫ内のストリングユニットＳＵ０〜ＳＵ３にそれぞれ含まれた選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に共通接続される。各ブロックＢＬＫ内で同一列に対応する選択トランジスタＳＴ１のドレインは、それぞれ対応するビット線ＢＬに共通接続される。
【００３８】
同一のブロックＢＬＫ内の選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続される。各ブロックＢＬＫ内の選択トランジスタＳＴ２のソースは、複数のブロックＢＬＫ間でソース線ＳＬに共通接続される。
【００３９】
以下の説明では、１つのストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴのことを、セルユニットＣＵと称する。セルユニットＣＵは、当該セルユニットＣＵに含まれたメモリセルトランジスタＭＴの各々が記憶するデータのビット数に応じて、記憶するデータの容量が変化する。
【００４０】
例えば、メモリセルトランジスタＭＴの各々が１ビットデータを記憶する場合、１つのセルユニットＣＵは１ページデータを記憶することが出来る。メモリセルトランジスタＭＴの各々が２ビットデータを記憶する場合、１つのセルユニットＣＵは２ページデータを記憶することが出来る。
【００４１】
このように、本明細書において「１ページデータ」は、１つのセルユニットＣＵに含まれたメモリセルトランジスタＭＴの各々が１ビットデータを記憶した場合に、当該セルユニットＣＵが記憶するデータの総量で定義される。
【００４２】
（メモリセルトランジスタＭＴの閾値分布及びデータの割り付けについて）
図３は、１つのセルユニットＣＵが２ページデータを記憶する場合、すなわちメモリセルトランジスタＭＴの各々が２ビットデータを記憶する場合における、メモリセルトランジスタＭＴの閾値分布、データの割り付け、読み出し電圧、及びベリファイ電圧のそれぞれの一例を示している。図３に示されたグラフの縦軸はメモリセルトランジスタＭＴの数に対応し、横軸はメモリセルトランジスタＭＴの閾値電圧Ｖｔｈに対応している。
【００４３】
メモリセルトランジスタＭＴの各々が２ビットデータを記憶する場合、図３に示すように、メモリセルトランジスタＭＴの閾値分布は４個に分類される。これらの閾値分布は、閾値電圧の低い方から順に、例えば“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベルと称される。そして、これらの閾値分布のそれぞれには、例えば以下に示す２ビットデータが割り当てられる。
【００４４】
“ＥＲ”レベル：“１１（上位ビット／下位ビット）”データ
“Ａ”レベル：“０１”データ
“Ｂ”レベル：“００”データ
“Ｃ”レベル：“１０”データ
隣り合う閾値分布の間には、それぞれ読み出し動作で使用される読み出し電圧が設定される。例えば、“ＥＲ”レベル及び“Ａ”レベル間に読み出し電圧ＡＲが設定され、“Ａ”レベル及び“Ｂ”レベル間に読み出し電圧ＢＲが設定され、“Ｂ”レベル及び“Ｃ”レベル間に読み出し電圧ＣＲが設定される。
【００４５】
具体的には、読み出し電圧ＡＲは、“ＥＲ”レベルにおける最大の閾値電圧と、“Ａ”レベルにおける最小の閾値電圧との間に設定される。メモリセルトランジスタＭＴは、ゲートに読み出し電圧ＡＲが印加されると、閾値電圧が“ＥＲ”レベルに分布している場合にオン状態になり、“Ａ”レベル以上に分布している場合にオフ状態になる。
【００４６】
読み出し電圧ＢＲは、“Ａ”レベルにおける最大の閾値電圧と、“Ｂ”レベルにおける最小の閾値電圧との間に設定される。メモリセルトランジスタＭＴは、ゲートに読み出し電圧ＢＲが印加されると、閾値電圧が“Ａ”レベル以下に分布している場合にオン状態になり、“Ｂ”レベル以上に分布している場合にオフ状態になる。
【００４７】
読み出し電圧ＣＲは、“Ｂ”レベルにおける最大の閾値電圧と、“Ｃ”レベルにおける最小の閾値電圧との間に設定される。メモリセルトランジスタＭＴは、ゲートに読み出し電圧ＣＲが印加されると、閾値電圧が“Ｂ”レベル以下に分布している場合にオン状態になり、“Ｃ”レベルに分布している場合にオフ状態になる。
【００４８】
最も高い閾値分布よりも高い電圧には、読み出しパス電圧ＶＲＥＡＤが設定される。具体的には、読み出しパス電圧ＶＲＥＡＤは、“Ｃ”レベルにおける最大の閾値電圧よりも高い電圧に設定される。メモリセルトランジスタＭＴは、ゲートに読み出しパス電圧ＶＲＥＡＤが印加されると、記憶するデータに依らずにオン状態になる。
【００４９】
また、隣り合う閾値分布の間には、それぞれ書き込み動作で使用されるベリファイ電圧が設定される。例えば、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルに対応して、それぞれベリファイ電圧ＡＶ、ＢＶ、及びＣＶが設定される。
【００５０】
具体的には、ベリファイ電圧ＡＶは、“ＥＲ”レベルにおける最大の閾値電圧と“Ａ”レベルにおける最小の閾値電圧との間、且つ“Ａ”レベルの近傍に設定される。
【００５１】
ベリファイ電圧ＢＶは、“Ａ”レベルにおける最大の閾値電圧と“Ｂ”レベルにおける最小の閾値電圧との間、且つ“Ｂ”レベルの近傍に設定される。
【００５２】
ベリファイ電圧ＣＶは、“Ｂ”レベルにおける最大の閾値電圧と“Ｃ”レベルにおける最小の閾値電圧との間、且つ“Ｃ”レベルの近傍に設定される。
【００５３】
このように、例えばベリファイ電圧ＡＶ、ＢＶ、及びＣＶは、それぞれ読み出し電圧ＡＲ、ＢＲ、及びＣＲよりも高い電圧に設定される。
【００５４】
書き込み動作において半導体メモリ１０は、あるデータを記憶させるメモリセルトランジスタＭＴの閾値電圧が当該データに対応するベリファイ電圧を超えたことを検知すると、当該メモリセルトランジスタＭＴのプログラムを完了する。
【００５５】
以上で説明したデータの割り付けが適用された場合、下位ビットで構成される１ページデータ（下位ページデータ）は、読み出し電圧ＢＲを用いた読み出し結果によって確定する。上位ビットで構成される１ページデータ（上位ページデータ）は、読み出し電圧ＡＲ及びＣＲのそれぞれを用いた読み出し結果によって確定する。
【００５６】
このように、図３に示されたデータの割り付けは、下位ページデータ及び上位ページデータが、それぞれ１回及び２回の読み出しによって確定することから、例えば“１−２コード”と称される。第１実施形態では、メモリセルトランジスタＭＴのデータの割り付けに“１−２コード”が適用された場合を例に説明する。
【００５７】
（メモリセルアレイ１１の平面レイアウトについて）
図４は、第１実施形態におけるメモリセルアレイ１１の平面レイアウトの一例を示し、２つのストリングユニットＳＵ０及びＳＵ１に対応する構造体を抽出して示している。
【００５８】
尚、以下で参照される図面において、Ｘ方向はビット線ＢＬの延伸方向に対応し、Ｙ方向はワード線ＷＬの延伸方向に対応し、Ｚ方向は半導体基板の表面に対する鉛直方向に対応している。
【００５９】
例えば、複数のストリングユニットＳＵは、図４に示すように、各々がＹ方向に延伸して設けられ、Ｘ方向に配列している。各ストリングユニットＳＵは、複数のメモリピラーＭＨを含んでいる。
【００６０】
各ストリングユニット内で複数のメモリピラーＭＨは、例えば千鳥状に配置される。各メモリピラーＭＨには、例えば少なくとも１本のビット線ＢＬが重なるように設けられる。各ストリングユニットＳＵに含まれた複数のメモリピラーＭＨのそれぞれは、コンタクトプラグＣＰを介して１本のビット線ＢＬに接続される。
【００６１】
また、メモリセルアレイ１１には、例えば複数のスリットＳＬＴが設けられる。複数のスリットＳＬＴは、例えば各々がＹ方向に延伸して設けられ、Ｘ方向に配列している。スリットＳＬＴには、例えば絶縁体が埋め込まれる。隣り合うスリットＳＬＴ間には、例えば１つのストリングユニットＳＵが設けられている。尚、隣り合うスリットＳＬＴ間には、複数のストリングユニットＳＵが設けられていても良い。
【００６２】
（メモリセルアレイ１１の断面構造について）
図５は、第１実施形態におけるメモリセルアレイ１１の断面構造の一例を示している。尚、図５では、層間絶縁膜の図示が省略されている。
【００６３】
メモリセルアレイ１１は、図５に示すように、半導体基板４０、導電体４１〜５２、メモリピラーＭＨ、及びコンタクトプラグＣＰを含んでいる。
【００６４】
半導体基板４０の上方には、層間絶縁膜を介して導電体４１が設けられている。導電体４１は、ＸＹ平面に平行な板状に形成され、例えばソース線ＳＬとして機能する。導電体４１上には、ＹＺ平面に平行な複数のスリットＳＬＴが、Ｘ方向に配列している。そして、導電体４１上且つ隣り合うスリットＳＬＴ間の構造体が、例えば１つのストリングユニットＳＵに対応している。
【００６５】
具体的には、導電体４１上且つ隣り合うスリットＳＬＴ間には、例えば、半導体基板４０側から順に、導電体４２〜５１が設けられている。これらの導電体のうちＺ方向に隣り合う導電体は、層間絶縁膜を介して積層される。導電体４２〜５１は、それぞれがＸＹ平面に平行な板状に形成される。例えば、導電体４２は選択ゲート線ＳＧＳに対応し、導電体４３〜５０はそれぞれワード線ＷＬ０〜ＷＬ７に対応し、導電体５１は選択ゲート線ＳＧＤに対応している。
【００６６】
複数のメモリピラーＭＨのそれぞれは、例えば１つのＮＡＮＤストリングＮＳとして機能する。各メモリピラーＭＨは、導電体４２〜５１を通過して設けられ、導電体５１の上面から導電体４１の上面に達している。
【００６７】
また、メモリピラーＭＨは、例えばブロック絶縁膜５３、絶縁膜５４、トンネル酸化膜５５、及び半導体材料５６を含んでいる。ブロック絶縁膜５３は、Ｚ方向に延伸した円筒状に設けられる。言い換えると、ブロック絶縁膜５３は、Ｚ方向に延伸したメモリホールの内壁に設けられる。ブロック絶縁膜５３の内壁には、絶縁膜５４が設けられる。絶縁膜５４は、メモリセルトランジスタＭＴの電荷蓄積層として機能する。絶縁膜５４の内壁には、トンネル酸化膜５５が設けられる。トンネル酸化膜５５の内壁には、半導体材料５６が設けられる。半導体材料５６は導電性の材料を含み、ＮＡＮＤストリングＮＳの電流経路として機能する。半導体材料５６の内壁には、さらに異なる材料が形成されても良い。
【００６８】
メモリピラーＭＨと導電体４２とが交差する部分が、選択トランジスタＳＴ２として機能する。メモリピラーＭＨと導電体４３〜５０のそれぞれとが交差する部分が、それぞれメモリセルトランジスタＭＴ０〜ＭＴ７として機能する。メモリピラーＭＨと導電体５１とが交差する部分が、選択トランジスタＳＴ１として機能する。
【００６９】
メモリピラーＭＨの上面よりも上層には、層間絶縁膜を介して導電体５２が設けられている。導電体５２は、Ｘ方向に延伸したライン状に形成され、ビット線ＢＬに対応している。複数の導電体５２は、Ｙ方向に配列している（図示せず）。導電体５２は、ストリングユニットＳＵ毎に対応する１つのメモリピラーＭＨと電気的に接続される。
【００７０】
具体的には、各ストリングユニットＳＵにおいて、例えば各メモリピラーＭＨ内の半導体材料５６上に導電性のコンタクトプラグＣＰが設けられ、コンタクトプラグＣＰ上に１つの導電体５２が設けられる。これに限定されず、メモリピラーＭＨ及び導電体５２間は、複数のコンタクトプラグや配線等を介して接続されていても良い。
【００７１】
尚、メモリセルアレイ１１の構成は、上記の構成に限定されない。例えば、各ブロックＢＬＫが含むストリングユニットＳＵの個数は、任意の個数に設計することが可能である。また、各ＮＡＮＤストリングＮＳが含むメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２のそれぞれは、任意の個数に設計することが出来る。
【００７２】
また、ワード線ＷＬ並びに選択ゲート線ＳＧＤ及びＳＧＳの本数は、それぞれメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の個数に基づいて変更される。選択ゲート線ＳＧＳには、複数層にそれぞれ設けられた複数の導電体４２が割り当てられても良く、選択ゲート線ＳＧＤには、複数層にそれぞれ設けられた複数の導電体５１が割り当てられても良い。
【００７３】
［１−１−３］シーケンサ１４の構成
図６は、第１実施形態における半導体メモリ１０の備えるシーケンサ１４の構成例を示している。シーケンサ１４は、図６に示すように、例えば進捗記録レジスタ６０、ループ数レジスタ６１、動作判別レジスタ６２、及び及びタイマ６３を含んでいる。
【００７４】
進捗記録レジスタ６０、ループ数レジスタ６１、動作判別レジスタ６２、及びタイマ６３のそれぞれは、後述する書き込み動作で使用される。
【００７５】
例えば、書き込み動作において、進捗記録レジスタ６０は、ベリファイをパスした閾値レベル（例えば“Ａ”レベル、“Ｂ”レベル、又は“Ｃ”レベル）を示す数値を保持する。ループ数レジスタ６１は、後述するプログラムループが実行された回数を示す数値を保持する。動作判別レジスタ６２は、最後に実行された動作が後述するプログラム動作であるかベリファイ動作であるかを示す数値を保持する。タイマ６３は、シーケンサ１４が書き込み動作を開始してからの時間を測定する。これらの詳細な使用方法については後述する。
【００７６】
［１−１−４］ロウデコーダモジュール１６の構成
図７は、第１実施形態における半導体メモリ１０の備えるロウデコーダモジュール１６の回路構成の一例を示している。ロウデコーダモジュール１６は、図７に示すように、ロウデコーダＲＤ０〜ＲＤｎを含んでいる。
【００７７】
ロウデコーダＲＤ０〜ＲＤｎは、それぞれブロックＢＬＫ０〜ＢＬＫｎに関連付けられている。つまり、１つのブロックＢＬＫに、１つのロウデコーダＲＤが関連付けられている。図７では、ロウデコーダＲＤ０〜ＲＤｎのうち、ロウデコーダＲＤ０の詳細な回路構成が示され、その他のロウデコーダのＲＤの回路構成が省略されている。以下に、ロウデコーダＲＤ０に着目して、ロウデコーダＲＤの詳細な回路構成について説明する。
【００７８】
ロウデコーダＲＤは、ブロックデコーダＢＤ並びに高耐圧ｎチャネルＭＯＳトランジスタＴＲ１〜ＴＲ１３を含んでいる。ブロックデコーダＢＤは、ブロックアドレスＢＡをデコードして、デコード結果に基づいて転送ゲート線ＴＧに所定の電圧を印加する。転送ゲート線ＴＧは、トランジスタＴＲ１〜ＴＲ１３のゲートに共通接続される。トランジスタＴＲ１〜ＴＲ１３は、ドライバ回路１５から配線された各種信号線と、関連付けられたブロックＢＬＫの各種配線との間に接続される。
【００７９】
具体的には、トランジスタＴＲ１の一端は、信号線ＳＧＳＤに接続される。トランジスタＴＲ１の他端は、選択ゲート線ＳＧＳに接続される。トランジスタＴＲ２〜ＴＲ９の一端は、それぞれ信号線ＣＧ０〜ＣＧ７に接続される。トランジスタＴＲ２〜ＴＲ９の他端は、それぞれワード線ＷＬ０〜ＷＬ７の一端に接続される。トランジスタＴＲ１０〜１３の一端は、信号線ＳＧＤＤ０〜ＳＧＤＤ３に接続される。トランジスタＴＲ１０〜１３の他端は、選択ゲート線ＳＧＤ０〜ＳＧＤ３に接続される。
【００８０】
以上の構成により、ロウデコーダモジュール１６は、各種動作を実行するブロックＢＬＫを選択することが出来る。具体的には、各種動作時において選択及び非選択ブロックＢＬＫに対応するブロックデコーダＢＤが、それぞれ“Ｈ”レベル及び“Ｌ”レベルの電圧を転送ゲート線ＴＧに印加する。尚、“Ｈ”レベルの“Ｌ”レベルの電圧は、ゲートに当該電圧が印加されたｎチャネルＭＯＳトランジスタがそれぞれオン状態及びオフ状態になる電圧である。
【００８１】
例えば、ブロックＢＬＫ０が選択された場合、ロウデコーダＲＤ０に含まれたトランジスタＴＲ１〜ＴＲ１３がオン状態になり、その他のロウデコーダＲＤに含まれたトランジスタＴＲ１〜ＴＲ１３がオフ状態になる。
【００８２】
この場合、ブロックＢＬＫ０に設けられた各種配線と、対応する信号線との間の電流経路が形成され、他のブロックＢＬＫに設けられた各種配線と、対応する信号線との間の電流経路が遮断される。その結果、ドライバ回路１５によって各信号線に印加された電圧が、ロウデコーダＲＤ０を介して選択されたブロックＢＬＫ０に設けられた各種配線にそれぞれ印加される。
【００８３】
［１−１−５］センスアンプモジュール１７の構成
図８は、第１実施形態におけるセンスアンプモジュール１７の回路構成の一例を示している。センスアンプモジュール１７は、図８に示すように、例えばセンスアンプユニットＳＡＵ０〜ＳＡＵｍを含んでいる。
【００８４】
センスアンプユニットＳＡＵ０〜ＳＡＵｍは、それぞれビット線ＢＬ０〜ＢＬｍに関連付けられている。各センスアンプユニットＳＡＵは、例えばセンスアンプ部ＳＡ、ラッチ回路ＬＤＬ、ＵＤＬ、及びＸＤＬ、並びに演算部ＣＡＬを含んでいる。
【００８５】
センスアンプ部ＳＡ、ラッチ回路ＬＤＬ、ＵＤＬ、及びＸＤＬ、並びに演算部ＣＡＬは、互いにデータを送受信可能なように接続されている。
【００８６】
センスアンプ部ＳＡは、例えば読み出し動作において、対応するビット線ＢＬに読み出されたデータをセンスして、読み出したデータが“０”であるか“１”であるかを判定する。ラッチ回路ＬＤＬ、ＵＤＬ、及びＸＤＬのそれぞれは、読み出しデータや書き込みデータ等を一時的に保持する。
【００８７】
また、ラッチ回路ＸＤＬは、図示されない入出力回路に接続され、センスアンプユニットＳＡＵと入出力回路との間のデータの入出力に使用される。このため、ラッチ回路ＸＤＬは、半導体メモリ１０のキャッシュメモリとしても機能する。例えば、半導体メモリ１０は、ラッチ回路ＬＤＬ及びＵＤＬが使用中であったとしても、ラッチ回路ＸＤＬが空いていればレディ状態になることが出来る。
【００８８】
演算部ＣＡＬは、ラッチ回路ＬＤＬ、ＵＤＬ、及びＸＤＬのそれぞれに保持されているデータに対して、論理和（ＯＲ）演算、論理積（ＡＮＤ）演算、排他的論理和（ＸＯＲ）演算等、種々の演算を行う。
【００８９】
図９は、１つのセンスアンプユニットＳＡＵの詳細な回路構成を抽出して示している。図９に示すように、センスアンプ部ＳＡは、例えばｐチャネルＭＯＳトランジスタ７０、ｎチャネルＭＯＳトランジスタ７１〜７８、及びキャパシタ７９を含んでいる。ラッチ回路ＬＤＬは、例えばインバータ８０及び８１、並びにｎチャネルＭＯＳトランジスタ８２及び８３を含んでいる。ラッチ回路ＵＤＬ及びＸＤＬのそれぞれの回路構成は、例えばラッチ回路ＬＤＬの回路構成と同様のため、説明を省略する。
【００９０】
トランジスタ７０の一端は電源線に接続され、トランジスタ７０のゲートはノードＩＮＶに接続される。トランジスタ７０の一端に接続された電源線には、例えば半導体メモリ１０の電源電圧である電圧ＶＤＤが印加される。
【００９１】
トランジスタ７１の一端は、トランジスタ７０の他端に接続される。トランジスタ７１の他端は、ノードＣＯＭに接続される。トランジスタ７１のゲートには、制御信号ＢＬＸが入力される。
【００９２】
トランジスタ７２の一端は、ノードＣＯＭに接続される。トランジスタ７２のゲートには、制御信号ＢＬＣが入力される。
【００９３】
トランジスタ７３は、例えば高耐圧のｎチャネルＭＯＳトランジスタである。トランジスタ７３の一端は、トランジスタ７２の他端に接続される。トランジスタ７３の他端は、対応するビット線ＢＬに接続される。トランジスタ７３のゲートには、制御信号ＢＬＳが入力される。
【００９４】
トランジスタ７４の一端は、ノードＣＯＭに接続される。トランジスタ７４の他端は、ノードＳＲＣに接続される。トランジスタ７４のゲートは、ノードＩＮＶに接続される。ノードＳＲＣには、例えば半導体メモリ１０の接地電圧である電圧ＶＳＳが印加される。
【００９５】
トランジスタ７５の一端は、トランジスタ７０の他端に接続される。トランジスタ７５の他端は、ノードＳＥＮに接続される。トランジスタ７５のゲートには、制御信号ＨＬＬが入力される。
【００９６】
トランジスタ７６の一端は、ノードＳＥＮに接続される。トランジスタ７６の他端は、ノードＣＯＭに接続される。
【００９７】
トランジスタ７６のゲートには、制御信号ＸＸＬが入力される。トランジスタ７７の一端は、接地される。トランジスタ７７のゲートは、ノードＳＥＮに接続される。
【００９８】
トランジスタ７８の一端は、トランジスタ７７の他端に接続される。トランジスタ７８の他端は、バスＬＢＵＳに接続される。
【００９９】
トランジスタ７８のゲートには、制御信号ＳＴＢが入力される。キャパシタ７９の一端は、ノードＳＥＮに接続される。キャパシタ７９の他端には、クロックＣＬＫが入力される。
【０１００】
インバータ８０の入力ノードは、ノードＬＡＴに接続される。インバータ８０の出力ノードは、ノードＩＮＶに接続される。インバータ８１の入力ノードは、ノードＩＮＶに接続される。インバータ８１の出力ノードは、ノードＬＡＴに接続される。
【０１０１】
トランジスタ８２の一端は、ノードＩＮＶに接続される。トランジスタ８２の他端は、バスＬＢＵＳに接続される。トランジスタ８２のゲートには、制御信号ＳＴＩが入力される。トランジスタ８３の一端は、ノードＬＡＴに接続される。トランジスタ８３の他端は、バスＬＢＵＳに接続される。トランジスタ８３のゲートには、制御信号ＳＴＬが入力される。
【０１０２】
以上で説明した制御信号ＢＬＸ、ＢＬＣ、ＢＬＳ、ＨＬＬ、ＸＸＬ、及びＳＴＢのそれぞれは、例えばシーケンサ１４によって生成される。センスアンプ部ＳＡがビット線ＢＬに読み出されたデータを判定するタイミングは、制御信号ＳＴＢがアサートされたタイミングに基づいている。
【０１０３】
以下の説明において、「制御信号ＳＴＢをアサートする」とは、シーケンサ１４が制御信号ＳＴＢを“Ｌ”レベルから“Ｈ”レベルに一時的に変化させることに対応している。センスアンプモジュール１７の構成によっては、「制御信号ＳＴＢをアサートする」という動作が、シーケンサ１４が制御信号ＳＴＢを“Ｈ”レベルから“Ｌ”レベルに一時的に変化させることに対応する場合もある。
【０１０４】
尚、第１実施形態におけるセンスアンプモジュール１７の構成は、以上で説明した構成に限定されない。例えば、センスアンプユニットＳＡＵが備えるラッチ回路の個数は、適用される書き込み方式に基づいて適宜変更することが出来る。
【０１０５】
［１−２］動作
次に、第１実施形態に係るメモリシステム１の動作について説明する。
【０１０６】
尚、以下で参照される図面において、レディビジー信号ＲＢｎが“Ｈ”レベル及び“Ｌ”レベルであることは、半導体メモリ１０がそれぞれレディ状態及びビジー状態であることに対応している。
【０１０７】
以下の説明では、選択されたワード線ＷＬのことを選択ワード線ＷＬselと称する。以下の説明において選択ワード線ＷＬselに印加される電圧は、ドライバ回路１５及びロウデコーダモジュール１６によって印加されるものとする。
【０１０８】
また、メモリコントローラ２０が半導体メモリ１０に送信したコマンドＣＭＤはコマンドレジスタ１２に保持され、メモリコントローラ２０が半導体メモリ１０に送信したアドレス情報ＡＤＤはアドレスレジスタ１３に保持されるものとする。
【０１０９】
［１−２−１］読み出し動作
図１０は、メモリシステム１の読み出し動作の一例を示すタイミングチャートであり、メモリシステム１があるセルユニットＣＵに記憶された下位ページデータ及び上位ページデータを順に読み出す場合の動作を例示している。
【０１１０】
図１０に示すように、まずメモリコントローラ２０は、コマンド“０１ｈ”、コマンド“００ｈ”、アドレス情報ＡＤＤ、コマンド“３０ｈ”を順に半導体メモリ１０に送信する。
【０１１１】
コマンド“０１ｈ”は、半導体メモリ１０に下位ページに関する動作を指示するコマンドである。コマンド“００ｈ”は、半導体メモリ１０に読み出し動作を指示するコマンドである。コマンド“３０ｈ”は、半導体メモリ１０に読み出し動作の実行を指示するコマンドである。
【０１１２】
半導体メモリ１０は、コマンド“３０ｈ”を受信すると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、受信したコマンドＣＭＤ及びアドレス情報ＡＤＤに基づいて、下位ページデータの読み出し動作（下位ページ読み出し）を実行する。
【０１１３】
下位ページ読み出しにおいて、選択ワード線ＷＬselには、読み出し電圧ＢＲが印加される。選択ワード線ＷＬselに読み出し電圧ＢＲが印加されると、選択ワード線ＷＬselに接続されたメモリセルトランジスタＭＴ、すなわち選択されたメモリセルトランジスタＭＴは、記憶するデータに応じてオン状態又はオフ状態になる。
【０１１４】
すると、各ビット線ＢＬの電圧が選択されたメモリセルトランジスタＭＴの状態に基づいて変化し、その後にシーケンサ１４が制御信号ＳＴＢをアサートする。制御信号ＳＴＢがアサートされると、各センスアンプユニットＳＡＵは、対応するビット線ＢＬの電圧に基づいて、メモリセルトランジスタＭＴに保持されたデータを判定する。
【０１１５】
この判定結果は、例えばセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに保持される。下位ページ読み出しでは、この判定結果が下位ページデータに対応し、シーケンサ１４は、下位ページデータが確定したことに応じて、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０１１６】
それから、半導体メモリ１０は、メモリコントローラ２０の指示に基づいて、センスアンプモジュール１７内のラッチ回路に保持された下位ページデータを、メモリコントローラ２０に出力する（Ｄout）。
【０１１７】
以上で説明した動作が、下位ページ読み出しに対応している。図１０では、半導体メモリ１０が下位ページ読み出しを実行することによりビジー状態になっている時間が、ｔＲ１として示されている。続けて、メモリシステム１は、上位ページデータの読み出し動作（上位ページ読み出し）を実行する。
【０１１８】
具体的には、メモリコントローラ２０は、コマンド“０２ｈ”、コマンド“００ｈ”、アドレス情報ＡＤＤ、コマンド“３０ｈ”を順に半導体メモリ１０に送信する。コマンド“０２ｈ”は、半導体メモリ１０に上位ページに関する動作を指示するコマンドである。
【０１１９】
半導体メモリ１０は、コマンド“３０ｈ”を受信すると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、受信したコマンドＣＭＤ及びアドレス情報ＡＤＤに基づいて、上位ページ読み出しを実行する。
【０１２０】
上位ページ読み出しにおいて、選択ワード線ＷＬselには、読み出し電圧ＡＲ及びＣＲが順に印加される。各ビット線ＢＬの電圧は、下位ページ読み出しと同様に、選択されたメモリセルトランジスタＭＴが記憶するデータに基づいて変化する。また、シーケンサ１４は、読み出し電圧ＡＲが印加されている間と、読み出し電圧ＣＲが印加されている間とのそれぞれにおいて、制御信号ＳＴＢをアサートする。
【０１２１】
読み出し電圧ＡＲに対応する判定結果は、例えばラッチ回路ＸＤＬに保持される。シーケンサ１４は、ラッチ回路ＸＤＬに保持された読み出し電圧ＡＲに対応する判定結果と、読み出し電圧ＣＲに対応する判定結果とに基づいて、上位ページデータを確定させ、確定した上位ページデータをラッチ回路ＸＤＬに保持させる。
【０１２２】
シーケンサ１４は、上位ページデータが確定したことに応じて、半導体メモリ１０をビジー状態からレディ状態に遷移させる。それから、半導体メモリ１０は、メモリコントローラ２０の指示に基づいて、センスアンプモジュール１７内のラッチ回路に保持された上位ページデータを、メモリコントローラ２０に出力する（Ｄout）。
【０１２３】
以上で説明した動作が、上位ページ読み出しに対応している。
【０１２４】
図１０では、半導体メモリ１０が上位ページ読み出しを実行することによりビジー状態になっている時間が、ｔＲ２として示されている。使用する読み出し電圧の種類が多いことから、ｔＲ２はｔＲ１よりも長い。
【０１２５】
以上のように、メモリシステム１は、下位ページデータ及び上位ページデータを読み出すことが出来る。読み出し動作で印加される電圧の種類及び数は、メモリセルトランジスタＭＴが記憶するデータのビット数や、データの割り付けに基づいて適宜変更され得る。
【０１２６】
例えば、各セルユニットＣＵが１ページデータ又は３ページ以上のデータを記憶する場合においても、半導体メモリ１０は、適宜読み出し電圧や演算処理等を変更することにより、同様の読み出し動作を実行することが出来る。
【０１２７】
［１−２−２］書き込み動作
第１実施形態に係るメモリシステム１は、あるセルユニットＣＵを選択した書き込み動作の方法として、通常書き込み及び分割書き込みを実行することが出来る。以下に、メモリシステム１の通常書き込み及び分割書き込みについて順に説明する。
【０１２８】
（通常書き込みについて）
書き込み動作として通常書き込みが実行される場合、書き込みデータは１回の通常書き込みによってセルユニットＣＵに書き込まれる。図１１は、メモリシステム１の通常書き込みの一例を示すタイミングチャートであり、半導体メモリ１０があるセルユニットＣＵに２ページデータを書き込む場合、すなわち各メモリセルトランジスタに２ビットデータを記憶させる場合（２bit/cell）の動作を例示している。
【０１２９】
尚、以下で参照される図面において、“Ｐｃｏｍｐ”、“ＬｏｏｐＮ”、及び“Ｐｐｒｏｃ”は、それぞれ進捗記録レジスタ６０、ループ数レジスタ６１、動作判別レジスタ６２に保持される数値の一例に対応している。“ＳＴＳ”は、半導体メモリ１０の動作状態（ステータス）の一例を示している。
【０１３０】
図１１に示すように、まずメモリコントローラ２０は、コマンド“０１ｈ”、コマンド“８０ｈ”、アドレス情報ＡＤＤ、下位ページの書き込みデータ（Ｄin）、コマンド“１Ａｈ”を順に半導体メモリ１０に送信する。
【０１３１】
コマンド“８０ｈ”は、半導体メモリ１０に書き込み動作を指示するコマンドである。半導体メモリ１０が受信した下位ページの書き込みデータは、センスアンプモジュール１７内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。
【０１３２】
半導体メモリ１０は、コマンド“１Ａｈ”を受信すると、一時的にレディ状態からビジー状態に遷移する。このときシーケンサ１４は、各センスアンプユニットＳＡＵに対して、ラッチ回路ＸＤＬに保持された下位ページの書き込みデータを例えばラッチ回路ＬＤＬに転送させる。
【０１３３】
次に、メモリコントローラ２０は、コマンド“０２ｈ”、コマンド“８０ｈ”、アドレス情報ＡＤＤ、上位ページの書き込みデータ（Ｄin）、コマンド“１０ｈ”を順に半導体メモリ１０に送信する。コマンド“１０ｈ”は、半導体メモリ１０に書き込み動作の実行を指示するコマンドである。
【０１３４】
半導体メモリ１０が受信した上位ページの書き込みデータは、センスアンプモジュール１７内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。半導体メモリ１０は、コマンド“１０ｈ”を受信すると、レディ状態からビジー状態に遷移する。
【０１３５】
すると、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤと、下位ページの書き込みデータと、上位ページの書き込みデータとに基づいて、通常書き込みを実行する。
【０１３６】
シーケンサ１４は、通常書き込みを開始すると、まず進捗記録レジスタ６０の数値“Ｐｃｏｍｐ”を例えば“０”にリセットする。Ｐｃｏｍｐ＝０は、当該書き込み動作において、ベリファイにパスした閾値レベルが存在しないことを示している。
【０１３７】
書き込み動作においてシーケンサ１４は、プログラムループを繰り返し実行する。各プログラムループは、プログラム動作及びベリファイ動作を含んでいる。以下に、初回のプログラムループにおける選択ワード線ＷＬselの電圧を用いて、プログラム動作及びベリファイ動作について説明する。
【０１３８】
プログラム動作は、メモリセルトランジスタＭＴの閾値電圧を上昇させる動作である。
【０１３９】
プログラム動作において、各センスアンプユニットＳＡＵは、内部のラッチ回路に保持されたデータに基づいて、対応するビット線ＢＬを書き込み対象又は書き込み禁止に設定する。例えば、“ＥＲ”レベルに対応するデータを保持するセンスアンプユニットＳＡＵに接続されたビット線ＢＬが、書き込み禁止に設定される。
【０１４０】
そして、プログラム動作において、選択ワード線ＷＬselには、プログラム電圧ＶＰＧＭが印加される。プログラム電圧ＶＰＧＭは、メモリセルトランジスタＭＴの閾値電圧を上昇させることが可能な高電圧である。
【０１４１】
選択ワード線ＷＬselにプログラム電圧ＶＰＧＭが印加されると、選択ワード線ＷＬselに接続され、且つ書き込み対象のビット線ＢＬに接続されたメモリセルトランジスタＭＴでは、チャネル及び選択ゲート間の電圧差によって電荷蓄積層（例えば、絶縁膜５４）に電子が注入され、閾値電圧が上昇する。
【０１４２】
一方で、書き込み禁止のビット線ＢＬに接続されたＮＡＮＤストリングＮＳのチャネルはフローティング状態にされ、各ワード線ＷＬに印加された電圧に応じてチャネルの電圧がブーストする。これにより、選択ワード線ＷＬselに接続され、且つ書き込み禁止のビット線ＢＬに接続されたメモリセルトランジスタＭＴの閾値電圧の上昇が抑制される。
【０１４３】
これらの一連の動作がプログラム動作に対応している。シーケンサ１４は、プログラム動作が終了すると、続けてベリファイ動作に移行する。
【０１４４】
ベリファイ動作は、メモリセルトランジスタＭＴが所望の閾値電圧に達したかどうかを判定する読み出し動作である。
【０１４５】
ベリファイ動作では、各センスアンプユニットＳＡＵが保持する書き込みデータに基づいて、センスアンプユニットＳＡＵ毎にベリファイされる書き込みレベル（閾値レベル）が設定される。そして、ベリファイ動作では、所望の閾値電圧に達したことが確認されたメモリセルトランジスタＭＴは、当該レベルのベリファイにパスしたものと判定される。
【０１４６】
例えば、初回のベリファイ動作では、ベリファイ電圧ＡＶを用いた読み出し動作が実行される。具体的には、選択ワード線ＷＬselにベリファイ電圧ＡＶが印加され、ベリファイ電圧ＡＶが印加されている間に、制御信号ＳＴＢがアサートされる。
【０１４７】
すると、各センスアンプユニットＳＡＵは、対応するビット線ＢＬの電圧に基づいて、選択ワード線ＷＬselに接続されたメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＡＶを超えているかどうか判定する。
【０１４８】
このとき、シーケンサ１４は、“Ａ”レベルのデータが書き込まれるメモリセルトランジスタＭＴの閾値電圧が、ベリファイ電圧ＡＶを超えていた場合にベリファイにパスしたと判定し、ベリファイ電圧ＡＶ以下である場合にベリファイにフェイルしたと判定する。これらの判定が終了すると、シーケンサ１４はベリファイ動作を終了する。
【０１４９】
以上で説明したプログラム動作及びベリファイ動作の組が、１回のプログラムループに対応している。
【０１５０】
初回のプログラムループにおいて、シーケンサ１４は、ＬｏｏｐＮの数値を例えば“１”に設定する。ＬｏｏｐＮ＝１は、１回目のプログラムループであることを示している。つまり、ＬｏｏｐＮは、プログラムループが実行された回数（プログラムループ数）に対応している。
【０１５１】
また、シーケンサ１４は、プログラム動作が実行されている間におけるＰｐｒｏｃの数値を例えば“０”に設定し、ベリファイ動作が実行されている間におけるＰｐｒｏｃの数値を例えば“１”に設定する。これは、以降のプログラムループにおいても同様である。
【０１５２】
シーケンサ１４は、プログラムループが終了すると、ＬｏｏｐＮの数値をインクリメントして、次のプログラムループを実行する。
【０１５３】
次のプログラムループにおけるプログラム動作では、プログラム電圧ＶＰＧＭがステップアップされる。プログラム電圧ＶＰＧＭのステップアップ幅ＤＶＰＧＭは、任意の値に設定され得る。
【０１５４】
また、シーケンサ１４は、ベリファイにパスしたメモリセルトランジスタＭＴに対応するビット線ＢＬを書き込み禁止に設定し、ベリファイにフェイルしたメモリセルトランジスタＭＴに対応するビット線ＢＬを書き込み対象に設定する。
【０１５５】
次のプログラムループにおけるベリファイ動作では、既にベリファイをパスしているメモリセルトランジスタＭＴに対するベリファイ動作が省略される。また、次のプログラムループにおけるベリファイ動作では、シーケンサ１４は、実行するベリファイのレベルを適宜変更する。具体的には、シーケンサ１４は、プログラムループの進行に伴い、使用するベリファイ電圧の種類及び数を適宜変更する。
【０１５６】
図１１に示された一例では、シーケンサ１４が、１回目及び２回目のプログラムループにおけるベリファイ動作で、“Ａ”レベルのベリファイを実行し、３回目のプログラムループにおけるベリファイ動作で、“Ａ”レベル及び“Ｂ”レベルそれぞれのベリファイを連続で実行している。シーケンサ１４は、以降のプログラムループでも適宜使用するベリファイ電圧を変更している。
【０１５７】
シーケンサ１４は、各プログラムループにおいて、例えばある閾値レベルに書き込むメモリセルトランジスタＭＴのうち、当該閾値レベルのベリファイにパスしていないメモリセルトランジスタＭＴの数が所定の数を下回ったことを検知すると、書き込み動作における当該閾値レベルのベリファイにパス、すなわち当該閾値レベルに対応するデータの書き込みが完了したものとみなす。図１１に示された一例では、３回目のプログラムループで“Ａ”レベルのベリファイにパスしている。
【０１５８】
“Ａ”レベルのベリファイにパスすると、シーケンサ１４は、例えばＰｃｏｍｐの数値をインクリメントする。具体的には、シーケンサ１４は、“Ａ”レベルのベリファイにパスした後に、Ｐｃｏｍｐの数値を“１”に設定する。
【０１５９】
同様に、シーケンサ１４は、“Ｂ”レベルのベリファイにパスした後に、Ｐｃｏｍｐの数値を“２”に設定し、“Ｃ”レベルのベリファイにパスした後に、Ｐｃｏｍｐの数値を“３”に設定する。これに限定されず、各ベリファイをパスしたことを示すＰｃｏｍｐの数値は、任意の数値に設定することが可能である。
【０１６０】
シーケンサ１４は、以上で説明したプログラムループを繰り返し実行し、例えば全ての閾値レベルのベリファイにパスしたことを検知すると、通常書き込みを終了する。或いは、シーケンサ１４は、Ｐｃｏｍｐの数値を“３”に設定したことに基づいて、通常書き込みを終了する。
【０１６１】
以上で説明した通常書き込みにおいて、半導体メモリ１０のステータスは、例えばコマンド“１０ｈ”を受信してビジー状態に遷移する前と、通常書き込みが完了してレディ状態に遷移した後において、“アイドル状態（Idle）”を示している。
【０１６２】
また、半導体メモリ１０のステータスは、例えば半導体メモリ１０が通常書き込みを実行してビジー状態になっている期間、すなわちシーケンサ１４が通常書き込みを実行している期間において、“プログラム途中”を示している。
【０１６３】
図１１では、半導体メモリ１０が上位ページ読み出しを実行することによりビジー状態になっている時間が、ｔＰｒｏｇとして示されている。例えば、通常書き込みにおけるｔＰｒｏｇの時間は、半導体メモリ１０のステータスが“プログラム途中”を示している期間の長さと略同一になる。
【０１６４】
（分割書き込みについて）
書き込み動作として分割書き込みが実行される場合、書き込みデータは複数回の分割書き込みによってセルユニットＣＵに書き込まれる。分割書き込みでは、通常書き込みと同様にプログラムループが繰り返し実行され、各分割書き込みは、例えばある閾値レベルのベリファイにパスしたことに基づいて終了する。
【０１６５】
まず、図１２を用いて、第１実施形態における閾値レベルに基づいた分割書き込み（レベル分割）の概略について説明する。図１２は、第１実施形態に係るメモリシステム１における閾値レベルに基づいた分割書き込みの一例を示すフローチャートである。
【０１６６】
図１２に示すように、まずメモリシステム１は、“Ａ”レベルの分割書き込みを実行する（ステップＳ１０）。“Ａ”レベルの分割書き込みにおいて、シーケンサ１４は、“Ａ”レベルのベリファイにパスするまでプログラムループを繰り返す。
【０１６７】
“Ａ”レベルの分割書き込みが終了すると、メモリシステム１は、ホスト機器３０から割り込み動作の指示が有るかどうかを確認する（ステップＳ１１）。
【０１６８】
割り込み動作の指示が有る場合（ステップＳ１１、ＹＥＳ）、メモリシステム１は、割り込み動作を実行する（ステップＳ１２）。尚、第１実施形態における割り込み動作において、メモリシステム１は、例えば読み出し動作のみを実行することが可能である。割り込み動作において、複数回の読み出し動作が連続で実行されても良い。
【０１６９】
割り込み動作の指示が無い場合（ステップＳ１１、ＮＯ）、又はステップＳ１２における割り込み動作が終了した場合に、シーケンサ１４は、“Ｂ”レベルの分割書き込みを実行する（ステップＳ１３）。“Ｂ”レベルの分割書き込みにおいて、シーケンサ１４は、“Ｂ”レベルのベリファイにパスするまでプログラムループを繰り返す。
【０１７０】
“Ｂ”レベルの分割書き込みが終了すると、メモリシステム１は、ホスト機器３０から割り込み動作の指示が有るかどうかを確認する（ステップＳ１４）。
【０１７１】
割り込み動作の指示が有る場合（ステップＳ１４、ＹＥＳ）、メモリシステム１は、割り込み動作を実行する（ステップＳ１５）。ステップＳ１４における割り込み動作は、ステップＳ１１を用いて説明した割り込み動作と同様である。
【０１７２】
割り込み動作の指示が無い場合（ステップＳ１４、ＮＯ）、又はステップＳ１５における割り込み動作が終了した場合に、シーケンサ１４は、“Ｃ”レベルの分割書き込みを実行する（ステップＳ１６）。“Ｃ”レベルの分割書き込みにおいて、シーケンサ１４は、“Ｃ”レベルのベリファイにパスするまでプログラムループを繰り返す。
【０１７３】
次に、図１３を用いて、第１実施形態における閾値レベルに基づいた分割書き込みの詳細について説明する。図１３は、メモリシステム１における閾値レベルに基づいた分割書き込みの一例を示すタイミングチャートであり、図１１を用いて説明した通常書き込みと同様に、半導体メモリ１０があるセルユニットＣＵに２ページデータを書き込む場合の動作を例示している。
【０１７４】
図１３に示すように、まずメモリコントローラ２０は、コマンド“ｘｘｈ”及びコマンドセットＣＳｌｏｗを順に半導体メモリ１０に送信する。コマンド“ｘｘｈ”は、半導体メモリ１０に分割書き込みを指示するコマンドである。コマンドセットＣＳｌｏｗは、例えば図１１を用いて説明したコマンド“８０ｈ”、アドレス情報ＡＤＤ、下位ページの書き込みデータ（Ｄin）、コマンド“１Ａｈ”の組に相当する。
【０１７５】
半導体メモリ１０が受信した下位ページの書き込みデータは、センスアンプモジュール１７内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。半導体メモリ１０は、コマンドセットＣＳｌｏｗ内のコマンド“１Ａｈ”を受信すると、一時的にレディ状態からビジー状態に遷移する。このときシーケンサ１４は、各センスアンプユニットＳＡＵに対して、ラッチ回路ＸＤＬに保持された下位ページの書き込みデータを例えばラッチ回路ＬＤＬに転送させる。
【０１７６】
次に、メモリコントローラ２０は、コマンド“ｘｘｈ”及びコマンドセットＣＳｕｐを順に半導体メモリ１０に送信する。コマンドセットＣＳｕｐは、例えば図１１を用いて説明したコマンド“８０ｈ”、アドレス情報ＡＤＤ、上位ページの書き込みデータ（Ｄin）、コマンド“１０ｈ”の組に相当する。
【０１７７】
半導体メモリ１０が受信した上位ページの書き込みデータは、センスアンプモジュール１７内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。
【０１７８】
半導体メモリ１０は、コマンドセットＣＳｕｐ内のコマンド“１０ｈ”を受信すると、レディ状態からビジー状態に遷移する。すると、まずシーケンサ１４は、各センスアンプユニットＳＡＵに対して、ラッチ回路ＸＤＬに保持された上位ページの書き込みデータを例えばラッチ回路ＵＤＬに転送させる。
【０１７９】
それから、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤと、下位ページの書き込みデータと、上位ページの書き込みデータとに基づいて、“Ａ”レベルの分割書き込みを実行する。また、半導体メモリ１０のステータスは、“Ａ”レベルの分割書き込みが開始したことに基づいて、“プログラム途中”に移行する。
【０１８０】
シーケンサ１４は、“Ａ”レベルの分割書き込みを開始すると、Ｐｃｏｍｐを例えば“０”にリセットし、通常書き込みと同様に、プログラムループを繰り返し実行する。また、シーケンサ１４は、通常書き込みと同様に、Ｐｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値をプログラムループの進行に伴い変化させる。
【０１８１】
そして、シーケンサ１４は、繰り返されるプログラムループにおいて、“Ａ”レベルに書き込むメモリセルトランジスタＭＴのうち、“Ａ”レベルのベリファイにパスしていないメモリセルトランジスタＭＴの数が所定の数を下回ったことを検知すると、“Ａ”レベルのベリファイにパスしたものとみなす。
【０１８２】
それから、シーケンサ１４は、“Ａ”レベルのベリファイにパスしたことに基づいて、Ｐｃｏｍｐの数値をインクリメントして（例えば、Ｐｃｏｍｐ＝“１”）、半導体メモリ１０をビジー状態からレディ状態に遷移させる。つまり、シーケンサ１４は、“Ａ”レベルよりも高い閾値レベル（例えば、“Ｂ”レベル及び“Ｃ”レベル）のベリファイにパスする前に、当該分割書き込みを終了する。
【０１８３】
以上で説明した動作が、“Ａ”レベルの分割書き込みに対応している。また、“Ａ”レベルの分割書き込みが終了して、半導体メモリ１０がレディ状態になったタイミングが、割り込み動作が可能なタイミングに対応している。
【０１８４】
このとき、割り込み動作が実行されたと仮定すると、メモリコントローラ２０は、図１０を用いて説明したような読み出し動作に関するコマンドＣＭＤ及びアドレス情報ＡＤＤを半導体メモリ１０に送信し、半導体メモリ１０が、受信したコマンドＣＭＤ及びアドレス情報ＡＤＤに基づいた読み出し動作を実行する（図示せず）。
【０１８５】
割り込み動作で実行される読み出し動作では、センスアンプモジュール１７内のラッチ回路ＬＤＬ及びＵＤＬにそれぞれ保持された下位ページデータ及び上位ページデータが、上書きされることなく保持される。つまり、割り込み動作における読み出しデータの保持には、例えばラッチ回路ＸＤＬのみが使用される。
【０１８６】
また、第１実施形態における割り込み動作では、“Ａ”レベルの分割書き込みによって設定されたＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値も同様に、割り込み動作が実行された場合に対応するレジスタに維持される。
【０１８７】
そして、割り込み動作が無かった場合、又は割り込み動作が終了した後に、メモリシステム１は、続く閾値レベルの分割書き込みを実行する。
【０１８８】
具体的には、メモリコントローラ２０は、例えばコマンド“ＧＯ”を半導体メモリ１０に送信する。コマンド“ＧＯ”は、半導体メモリ１０に対して、直近に実行された分割書き込みの状態を引き継いだ分割書き込みの実行を指示するコマンドである。
【０１８９】
半導体メモリ１０は、コマンド“ＧＯ”を受信すると、レディ状態からビジー状態に遷移する。そして、シーケンサ１４は、直近に実行された分割書き込みの状態を引き継いだ分割書き込みを実行する。
【０１９０】
この分割書き込みにおいて、シーケンサ１４は、まずＰｃｏｍｐ及びＬｏｏｐＮのそれぞれを参照する。シーケンサ１４は、Ｐｃｏｍｐの数値が例えば“１”であることから、当該分割書き込みが“Ａ”レベルのベリファイが完了した後の“Ｂ”レベルの分割書き込みであることを認識する。
【０１９１】
また、シーケンサ１４は、ＬｏｏｐＮの数値が例えば“３”であることから、“Ｂ”レベルの分割書き込みにおける最初のプログラム動作で使用するプログラム電圧に適用されるステップアップ量を見積もる。
【０１９２】
具体的には、分割書き込みにおけるプログラム電圧は、ＶＰＧＭ＝ＶＰＧＭinit＋（ＬｏｏｐＮ−１）＊ＤＶＰＧＭという数式によって算出される。ＶＰＧＭinitは、“Ａ”レベルの分割書き込みにおいて最初に印加されるプログラム電圧ＶＰＧＭに対応している。
【０１９３】
“Ｂ”レベルの分割書き込みにおいて、シーケンサ１４は、このように見積もられたプログラム電圧を使用してプログラムループを開始する。“Ｂ”レベルの分割書き込みにおいて、Ｐｃｏｍｐ及びＬｏｏｐＮのそれぞれ数値は、“Ａ”レベルの分割書き込みにおける数値がそのまま引き継がれる。
【０１９４】
このため、シーケンサ１４は、 “Ｂ”レベルの分割書き込み開始前のＬｏｏｐＮの数値が“３”であることから、“Ｂ”レベルの分割書き込みにおける最初のプログラムループにおけるＬｏｏｐＮの数値を“４”に設定する。シーケンサ１４は、このＬｏｏｐＮの数値を、プログラムループを繰り返す度にインクリメントする。
【０１９５】
そして、シーケンサ１４は、繰り返されるプログラムループにおいて、“Ｂ”レベルに書き込むメモリセルトランジスタＭＴのうち、“Ｂ”レベルのベリファイにパスしていないメモリセルトランジスタＭＴの数が所定の数を下回ったことを検知すると、“Ｂ”レベルのベリファイにパスしたものとみなす。
【０１９６】
それから、シーケンサ１４は、“Ｂ”レベルのベリファイにパスしたことに基づいて、Ｐｃｏｍｐの数値をインクリメントして（例えば、Ｐｃｏｍｐ＝“２”）、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０１９７】
以上で説明した動作が、“Ｂ”レベルの分割書き込みに対応している。また、“Ｂ”レベルの分割書き込みが終了して、半導体メモリ１０がレディ状態になったタイミングが、割り込み動作が可能なタイミングに対応している。
【０１９８】
尚、“Ｂ”レベルの分割書き込みによって設定されたＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値は、“Ａ”レベルの分割書き込みが終了した後と同様に、割り込み動作が実行された場合においても対応するレジスタに保持される。
【０１９９】
“Ｂ”レベルの分割書き込みが終了した後と同様に、メモリシステム１は、割り込み動作が無かった場合、又は割り込み動作が終了した後に、続く閾値レベルの分割書き込みを実行する。
【０２００】
具体的には、メモリコントローラ２０は、“Ｂ”レベルの分割書き込みを実行する際と同様に、コマンド“ＧＯ”を半導体メモリ１０に送信する。半導体メモリ１０は、コマンド“ＧＯ”を受信すると、レディ状態からビジー状態に遷移する。そして、シーケンサ１４は、直近に実行された分割書き込みの状態を引き継いだ分割書き込みを実行する。
【０２０１】
この分割書き込みにおいても、シーケンサ１４は、まずＰｃｏｍｐ及びＬｏｏｐＮのそれぞれを参照する。シーケンサ１４は、Ｐｃｏｍｐの数値が例えば“２”であることから、当該分割書き込みが“Ｃ”レベルの分割書き込みであることを認識する。
【０２０２】
また、シーケンサ１４は、ＬｏｏｐＮの数値が例えば“６”であることから、“Ｃ”レベルの分割書き込みにおける最初のプログラム動作で使用するプログラム電圧に適用されるステップアップ量を見積もる。
【０２０３】
“Ｃ”レベルの分割書き込みにおいて、シーケンサ１４は、ＬｏｏｐＮの数値に基づいたプログラム電圧を使用してプログラムループを開始する。“Ｃ”レベルの分割書き込みにおいて、Ｐｃｏｍｐ及びＬｏｏｐＮのそれぞれ数値は、“Ｂ”レベルの分割書き込みにおける数値がそのまま引き継がれる。
【０２０４】
このため、シーケンサ１４は、“Ｃ”レベルの分割書き込み開始前のＬｏｏｐＮの数値が“６”であることから、“Ｃ”レベルの分割書き込みにおける最初のプログラムループにおけるＬｏｏｐＮの数値を“７”に設定する。シーケンサ１４は、このＬｏｏｐＮの数値を、プログラムループを繰り返す度にインクリメントする。
【０２０５】
そして、シーケンサ１４は、繰り返されるプログラムループにおいて、“Ｃ”レベルに書き込むメモリセルトランジスタＭＴのうち、“Ｃ”レベルのベリファイにパスしていないメモリセルトランジスタＭＴの数が所定の数を下回ったことを検知すると、“Ｃ”レベルのベリファイにパスしたものとみなす。
【０２０６】
それから、シーケンサ１４は、“Ｃ”レベルのベリファイにパスしたことに基づいて、Ｐｃｏｍｐの数値をインクリメントして（例えば、Ｐｃｏｍｐ＝“３”）、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０２０７】
以上で説明した動作が、“Ｃ”レベルの分割書き込みに対応している。半導体メモリ１０のステータスは、“Ｃ”レベルの分割書き込みが終了したことに基づいて、“アイドル状態”に移行する。
【０２０８】
図１３では、半導体メモリ１０が“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルの分割書き込みをそれぞれ実行することによりビジー状態になっている時間が、それぞれｔＰｒｏｇＡ、ｔＰｒｏｇＢ、及びｔＰｒｏｇＣとして示されている。ｔＰｒｏｇＡ、ｔＰｒｏｇＢ、及びｔＰｒｏｇＣのそれぞれの長さの総計は、図１１を用いて説明した通常書き込みにおけるｔＰｒｏｇの長さよりも長い。
【０２０９】
尚、以上の説明では、シーケンサ１４がプログラムループの進行に伴い進捗記録レジスタ６０、ループ数レジスタ６１、及び動作判別レジスタ６２の数値を変更する場合を例に挙げたが、これに限定されない。
【０２１０】
例えば、レジスタ６０、６１、及び６２に保持される情報を他の回路により管理される場合には、シーケンサ１４は、各分割書き込みが終了するタイミングでレジスタ６０、６１、及び６２の数値を更新するようにしても良い。
【０２１１】
具体的には、例えばシーケンサ１４は、“Ａ”レベルの分割書き込みの開始時にレジスタ６０、６１、６２の数値をリセットして、プログラムループを実行する。そして、シーケンサ１４は、“Ａ”レベルの分割書き込みの終了時に、その時点の分割書き込みに関する情報をレジスタ６０、６１、及び６２のそれぞれに保存する。
【０２１２】
この場合、シーケンサ１４は、続く分割書き込みにおいて、開始時にレジスタ６０、６１、及び６２を参照してプログラムループを実行し、終了時にレジスタ６０、６１、及び６２のそれぞれの情報を更新する。
【０２１３】
［１−３］第１実施形態の効果
以上のように、第１実施形態に係るメモリシステム１は、閾値レベルに基づいた複数回の分割書き込みを実行することによって、複数ページの書き込みデータをセルユニットＣＵに記憶させることが出来る。
【０２１４】
また、第１実施形態に係るメモリシステム１は、あるセルユニットＣＵを選択した複数回の分割書き込み間に、それぞれ割り込み動作を実行することが出来る。分割書き込みによって半導体メモリ１０がビジー状態になっている期間は、通常書き込みによって半導体メモリ１０がビジー状態になっている期間よりも短い。
【０２１５】
従って、第１実施形態に係るメモリシステム１は、書き込み動作を実行している間にホスト機器３０から読み出し動作の割り込み命令を受信した場合に、ホスト機器３０の命令に応答するまでの時間を短縮することが出来る。つまり、第１実施形態に係るメモリシステム１は、分割書き込みを利用することによって、待ち時間を改善することが出来る。
【０２１６】
［１−４］第１実施形態の変形例
第１実施形態では、閾値レベルに基づいた分割書き込みを実行する場合について説明したが、各分割書き込みを終了するトリガーとしては、その他の方法が適用されても良い。
【０２１７】
例えば、各分割書き込みは、プログラムループが所定の回数繰り返されたこと（プログラムループ数）に基づいて終了しても良い。
【０２１８】
まず、図１４を用いて、第１実施形態におけるプログラムループ数に基づいた分割書き込みの概略について説明する。図１４は、第１実施形態におけるプログラムループ数に基づいた分割書き込みの一例を示すフローチャートである。
【０２１９】
図１４に示すように、まずメモリシステム１は、プログラムループ数に基づいた分割書き込み（ループ数分割）を実行する（ステップＳ２０）。ステップＳ２０の処理においてシーケンサ１４は、プログラムループが所定の回数繰り返されたことに基づいて分割書き込みを終了する。
【０２２０】
ステップＳ２０における分割書き込みが終了すると、メモリシステム１はステータスリードを実行する（ステップＳ２１）。ステータスリードでは、半導体メモリ１０の書き込み動作が完了しているかどうか、すなわち“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルのベリファイにパスしたかどうかを、メモリコントローラ２０が知ることが出来る。
【０２２１】
書き込み動作が終了していない場合（ステップＳ２２、ＮＯ）、メモリコントローラ２０は、ホスト機器３０から割り込み動作の指示が有るかどうかを確認する（ステップＳ１１）。
【０２２２】
割り込み動作の指示が有る場合（ステップＳ１１、ＹＥＳ）、メモリシステム１は、割り込み動作を実行する（ステップＳ１２）。
【０２２３】
割り込み動作の指示が無い場合（ステップＳ１１、ＮＯ）、又はステップＳ１２における割り込み動作が終了した場合に、メモリシステム１は、プログラムループ数に基づいた分割書き込みの続きを実行する（ステップＳ２３）。
【０２２４】
尚、あるセルユニットＣＵを対象としたプログラムループ数に基づいた複数回の分割書き込みのうち、２回目以降に実行される分割書き込みでは、省略コマンド（例えば、コマンド“ＧＯ”）が使用されても良い。
【０２２５】
ステップＳ２３の処理においてシーケンサ１４は、プログラムループが所定の回数繰り返されたことに基づいて分割書き込みを終了する。
【０２２６】
ステップＳ２３における分割書き込みが終了すると、ステップＳ２１に戻り、メモリシステム１はステータスリードを実行する。メモリシステム１は、ステータスリードによって書き込み動作が完了していないことを確認した場合に、必要に応じて割り込み動作を実行し、その後に分割書き込みの続きを実行する。
【０２２７】
以上で説明したように分割書き込みが繰り返され、ステップＳ２２において半導体メモリ１０の書き込み動作が完了したことが確認されると、メモリシステム１は当該書き込み動作を終了する（ステップＳ２２、ＹＥＳ）。
【０２２８】
次に、図１５を用いて、第１実施形態におけるプログラムループ数に基づいた分割書き込みの詳細について説明する。図１５は、メモリシステム１におけるプログラムループ数に基づいた分割書き込みの一例を示すタイミングチャートであり、図１３を用いて説明した閾値レベルに基づいた分割書き込みに対して、分割書き込みが終了するタイミングと、ステータスリードが挿入される点が異なっている。
【０２２９】
具体的には、プログラムループ数に基づく初回の分割書き込みを実行するためのコマンドシーケンスは、図１３を用いて説明した“Ａ”レベルの分割書き込みを実行するためのコマンドシーケンスと同様である。
【０２３０】
シーケンサ１４は、プログラムループ数に基づく初回の分割書き込みを開始すると、Ｐｃｏｍｐを例えば“０”にリセットし、通常書き込みと同様に、プログラムループを繰り返し実行する。また、シーケンサ１４は、通常書き込みと同様に、Ｐｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値をプログラムループの進行に伴い変化させる。
【０２３１】
そして、シーケンサ１４は、繰り返されるプログラムループにおいて、プログラムループが例えば３回実行されたこと（３Ｌｏｏｐ）、すなわちＬｏｏｐＮが“３”に対応するプログラムループが終了したことに基づいて、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０２３２】
言い換えると、本例においてシーケンサ１４は、ＬｏｏｐＮの数値が例えば“３×Ｍ（Ｍは１以上の整数）”に対応するプログラムループが終了したことに基づいて、半導体メモリ１０をビジー状態からレディ状態に遷移させる。尚、分割書き込みを終了するトリガーとするプログラムループ数の設定は、任意の数値にすることが可能である。
【０２３３】
このように、シーケンサ１４は、最も高い閾値レベル（例えば、“Ｃ”レベル）のベリファイにパスする前に、実行されたプログラムループの回数に基づいて当該分割書き込みを終了する。
【０２３４】
メモリコントローラ２０は、半導体メモリ１０に分割書き込みの実行を命令した後にビジー状態からレディ状態になったことを検知すると、ステータスリードを実行する。
【０２３５】
具体的には、メモリコントローラ２０は、ステータスリードコマンド“ＳＲ”を半導体メモリ１０に送信する。半導体メモリ１０は、ステータスリードコマンド“ＳＲ”を受信すると、例えばステータスレジスタ１８に保持されたステータス情報ＳＴＳをメモリコントローラ２０に出力する（図１５の“ＳＯ”）。
【０２３６】
図１５に示す例では、１回目の分割書き込み終了後において半導体メモリ１０のステータスが“プログラム途中”であるため、メモリコントローラ２０は、ホスト機器３０から割り込み動作の指示を受信していた場合、このタイミングで割り込み動作を実行する（図１５の“割り込み可能”）。
【０２３７】
そして、割り込み動作が無かった場合、又は割り込み動作が終了した後に、メモリシステム１は、プログラムループ数に基づいた分割書き込みの続きを実行する。
【０２３８】
具体的には、メモリコントローラ２０は、例えばコマンド“ＧＯ”を半導体メモリ１０に送信する。本例におけるコマンド“ＧＯ”に基づいた分割書き込みでは、最初のプログラムループの設定が閾値レベルに基づいた分割書き込みと同様であり、プログラムループが終了する条件がプログラムループ数に変更されている。
【０２３９】
つまり、シーケンサ１４は、上述した初回の分割書き込みと同様に、繰り返されるプログラムループにおいてプログラムループが例えば３回実行されたこと（３Ｌｏｏｐ）、すなわちＬｏｏｐＮが“６”に対応するプログラムループが終了したことに基づいて、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０２４０】
それから、メモリコントローラ２０は、ステータスリードを実行し、半導体メモリ１０の書き込み動作が完了しているかどうかを確認する。半導体メモリ１０のステータスが“プログラム途中”である場合には、以上の説明と同様のプログラムループ数に基づいた分割書き込みの続きを実行する。一方で、半導体メモリ１０のステータスが“アイドル状態”である場合に当該書き込み動作を終了する。
【０２４１】
図１５に示す例では、３回の分割書き込みを実行した後に、半導体メモリ１０の書き込み動作が完了、すなわち“Ｃ”レベルのベリファイにパスしている。
【０２４２】
また、図１５では、半導体メモリ１０が初回、２回目、及び３回目の分割書き込みをそれぞれ実行することによりビジー状態になっている時間が、それぞれｔＰｒｏｇ１、ｔＰｒｏｇ２、及びｔＰｒｏｇ３として示されている。ｔＰｒｏｇ１、ｔＰｒｏｇ２、及びｔＰｒｏｇ３のそれぞれの長さの総計は、図１１を用いて説明した通常書き込みにおけるｔＰｒｏｇの長さよりも長い。
【０２４３】
尚、最も高い閾値レベルのベリファイにパスしたタイミングで設定された回数のプログラムループが実行されていない場合には、最も高い閾値レベルのベリファイが終了したタイミングで、半導体メモリ１０がビジー状態からレディ状態に遷移しても良い。
【０２４４】
以上で説明した一連の動作が、プログラムループ数に基づいた分割書き込みに対応している。第１実施形態に係るメモリシステム１は、プログラムループ数に基づいた分割書き込みによっても、閾値レベルに基づいた分割書き込みと同様の効果を得ることが出来る。
【０２４５】
その他に各分割書き込みを終了するトリガーとしては、書き込み動作の処理時間が挙げられる。この場合にシーケンサ１４は、書き込み動作の処理時間を、タイマ６３のカウント数に基づいて管理する。
【０２４６】
まず、図１６を用いて、第１実施形態における処理時間に基づいた分割書き込みの概略について説明する。図１６は、第１実施形態における処理時間に基づいた分割書き込みの一例を示すフローチャートである。
【０２４７】
図１６に示すように、処理時間に基づいた分割書き込みは、図１４を用いて説明したプログラムループ数に基づいた分割書き込みにおいて、各分割書き込みを終了するトリガーを変更したものと同様である。具体的には、図１４のステップＳ２０がステップＳ３０に置き換えられ、図１４のステップＳ２３がステップＳ３１に置き換えられている。
【０２４８】
メモリシステム１は、ステップＳ３０において、処理時間に基づいた初回の分割書き込み（時間分割）を実行し、ステップＳ３１において、処理時間に基づいた２回目以降の分割書き込みを実行する。
【０２４９】
次に、図１７を用いて、第１実施形態における処理時間に基づいた分割書き込みの詳細について説明する。図１７は、メモリシステム１における処理時間に基づいた分割書き込みの一例を示すタイミングチャートであり、図１５を用いて説明したプログラムループ数に基づいた分割書き込みに対して、分割書き込みが終了するタイミングと、タイマ６３のカウント（“Ｔｉｍｅｒ”）が表示されている点が異なっている。
【０２５０】
具体的には、図１７に示すように、タイマ６３の数値は、半導体メモリ１０がレディ状態からビジー状態に遷移してシーケンサ１４が分割書き込みを開始した後に、例えば“１”から順にカウントされる。
【０２５１】
そして、処理時間に基づいた分割書き込みにおいてシーケンサ１４は、例えばタイマ６３のカウントが“８”になったことに基づいて、半導体メモリ１０をビジー状態からレディ状態に遷移させる。これに限定されず、トリガーとするタイマ６３のカウント数、すなわち分割書き込みの処理時間は、任意の数値に設定することが可能である。
【０２５２】
このように、シーケンサ１４は、最も高い閾値レベル（例えば、“Ｃ”レベル）のベリファイにパスする前に、実行中の分割書き込みの処理時間に基づいて当該分割書き込みを終了する。
【０２５３】
尚、タイマ６３が所望の数値になった際にプログラム動作及びベリファイ動作のいずれかが実行されている場合には、シーケンサ１４は、その動作が終了した後に、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０２５４】
処理時間に基づいた分割書き込みが実行された場合、プログラムループの途中で半導体メモリ１０がビジー状態からレディ状態に遷移する場合がある。具体的には、分割書き込みの終了前に実行された動作は、必ずしもベリファイ動作では無く、プログラム動作である場合がある。言い換えると、分割書き込みを終了した後におけるＰｐｒｏｃの数値が、プログラム動作が実行されたことを示す“０”である場合がある。
【０２５５】
これに対して、処理時間に基づいた分割書き込みでは、例えば半導体メモリ１０がコマンド“ＧＯ”を受信し、シーケンサ１４が処理時間に基づいた分割書き込みの続きを実行する際に、シーケンサ１４がＰｐｒｏｃも参照する。そして、シーケンサ１４は、当該分割書き込みにおける最初のプログラムループでプログラム動作とベリファイ動作とのどちらから開始するかを決定する。
【０２５６】
具体的には、分割書き込みの開始前におけるＰｐｒｏｃの数値がプログラム動作を示す“０”である場合、シーケンサ１４は、当該分割書き込みのプログラムループを、前回の分割書き込み終了時のＰｃｏｍｐ及びＬｏｏｐＮのそれぞれの数値に基づいたベリファイ動作から開始する。
【０２５７】
一方で、分割書き込みの開始前におけるＰｐｒｏｃの数値がベリファイ動作を示す“１”である場合、シーケンサ１４は、当該分割書き込みのプログラムループを、前回の分割書き込み終了時のＰｃｏｍｐの数値と、前回の分割書き込みの終了時のＬｏｏｐＮの数値をインクリメントした数値とに基づいたプログラム動作から開始する。
【０２５８】
これにより、半導体メモリ１０は、プログラムループの途中で分割書き込みが終了した場合にも、分割書き込みの続きにおいて最初に実行する動作を適切に選択することが出来る。処理時間に基づいた分割書き込みのその他の動作は、図１４及び図１５を用いて説明したプログラムループ数に基づいた分割書き込みと同様のため、説明を省略する。
【０２５９】
第１実施形態に係るメモリシステム１は、書き込み動作において処理時間に基づいた分割書き込みを利用する場合にも、閾値レベルに基づいた分割書き込みを利用する場合と同様の効果を得ることが出来る。
【０２６０】
以上のように、プログラムループ数、又は処理時間を使用して各分割書き込みが終了するように制御された場合、各分割書き込みの処理時間は略同一になる。
【０２６１】
尚、本明細書において、「分割書き込みの処理時間」は、半導体メモリ１０がビジー状態になっている期間、すなわちシーケンサ１４が分割書き込みを実行している期間のことを示している。
【０２６２】
「処理時間が略同一」は、ある書き込みデータを選択したセルユニットＣＵに書き込む際に実行される複数の分割書き込みにおいて、各分割書き込みの処理時間の差が、１回のプログラムループにおける最大の処理時間以内であることを示している。
【０２６３】
「１回のプログラムループにおける最大の処理時間」とは、プログラム動作と、全てのベリファイ電圧（例えばＡＶ、ＢＶ、及びＣＶ）を順に印加したベリファイ動作とを含むプログラムループにおける処理時間のことを示している。
【０２６４】
［２］第２実施形態
第２実施形態に係るメモリシステム１は、第１実施形態に係るメモリシステム１と同様の構成を有する。そして、第２実施形態に係るメモリシステム１では、第１実施形態で説明した２回目以降に実行される分割書き込みにおいて、書き込みデータが再入力される。以下に、第２実施形態に係るメモリシステム１について、第１実施形態と異なる点について説明する。
【０２６５】
［２−１］書き込み動作
［２−１−１］設定出力動作及び設定入力動作
第２実施形態に係るメモリシステム１では、書き込み動作において分割書き込みを使用する場合に、設定出力動作及び設定入力動作が実行されることがある。以下に、設定出力動作及び設定入力動作のそれぞれの詳細について順に説明する。
【０２６６】
図１８は、第２実施形態に係るメモリシステムの設定出力動作の一例を示すタイミングチャートであり、設定出力動作におけるコマンドシーケンス及びレディビジー信号ＲＢｎをそれぞれ例示している。
【０２６７】
図１８に示すように、メモリコントローラ２０は、半導体メモリ１０に対して設定出力動作を指示する場合に、例えばコマンド“Ｄ４ｈ”、アドレス情報“ＡＤＤ１”、アドレス情報“ＡＤＤ２”を順に半導体メモリ１０に送信する。
【０２６８】
コマンド“Ｄ４ｈ”は、半導体メモリ１０に設定出力動作を指示するコマンドである。図１８におけるアドレス情報“ＡＤＤ１”及び“ＡＤＤ２”のそれぞれは、設定出力動作において、メモリコントローラ２０が半導体メモリ１０に出力を要求する設定に対応するアドレスである。
【０２６９】
半導体メモリ１０は、上述したコマンド及びアドレス情報を受信すると、レディ状態からビジー状態に遷移し、シーケンサ１４は、メモリコントローラ２０によって要求された設定情報を出力可能な状態にする。そして、シーケンサ１４は、設定情報が出力可能な状態にした後に、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０２７０】
そして、メモリコントローラ２０は、半導体メモリ１０がビジー状態からレディ状態に遷移したことを検知すると、半導体メモリ１０に設定情報を出力させる。図１８では、半導体メモリ１０が出力する設定情報として、データ“Ｄ０”、“Ｄ１”、“Ｄ２”、及び“Ｄ３”が示されている。データ“Ｄ０”〜“Ｄ３”には、アドレス情報“ＡＤＤ１”及び“ＡＤＤ２”に基づいた半導体メモリ１０の設定情報が含まれている。
【０２７１】
図１９は、第２実施形態に係るメモリシステムの設定入力動作の一例を示すタイミングチャートであり、設定入力動作におけるコマンドシーケンス及びレディビジー信号ＲＢｎをそれぞれ例示している。
【０２７２】
図１９に示すように、メモリコントローラ２０は、半導体メモリ１０に対して設定入力動作を指示する場合に、例えばコマンド“Ｄ５ｈ”、アドレス情報“ＡＤＤ１”、アドレス情報“ＡＤＤ２”、データ“Ｄ０”〜“Ｄ３”を順に半導体メモリ１０に送信する。
【０２７３】
コマンド“Ｄ５ｈ”は、半導体メモリ１０に設定出力動作を指示するコマンドである。図１９におけるアドレス情報“ＡＤＤ１”及び“ＡＤＤ２”のそれぞれは、設定入力動作において、メモリコントローラ２０が半導体メモリ１０に設定変更を要求する設定に対応するアドレスである。また、図１８におけるデータ“Ｄ０”〜“Ｄ３”のそれぞれは、アドレス情報“ＡＤＤ１”及び“ＡＤＤ２”に対応する設定に対応する設定情報を含んでいる。
【０２７４】
半導体メモリ１０は、上述したコマンド、アドレス情報、及びデータを受信すると、レディ状態からビジー状態に遷移し、シーケンサ１４は、メモリコントローラ２０によって要求された設定情報の書き換えを実行する。
【０２７５】
具体的には、アドレス情報“ＡＤＤ１”及び“ＡＤＤ２”に対応する設定に対して、データ“Ｄ０”〜“Ｄ３”に含まれた設定情報を適用する。そして、シーケンサ１４は、入力された設定情報を適用、すなわち設定変更をした後に、半導体メモリ１０をビジー状態からレディ状態に遷移させる。
【０２７６】
以上で説明した設定出力動作及び設定入力動作におけるデータ（設定情報）としては、例えば図２０〜図２２に示されたようなデータが使用される。
【０２７７】
図２０は、第２実施形態における、プログラムループ数（ループ数カウント）に関する設定情報の一例を示している。プログラムループ数は、例えば設定出力動作及び設定入力動作におけるデータ“Ｄ０”に割り当てられる。
【０２７８】
図２０に示すように、入出力信号が８ビット（［７］〜［０］ビット）である場合、例えば８ビットのデータが示す２進数の数値が、プログラムループ数を示している。具体的には、例えば［７］〜［０］ビットがそれぞれ“０”である場合、プログラムループ数が“０”であることを示している。［７］〜［０］ビットがそれぞれ“１”である場合、プログラムループ数が“２５５”であることを示している。
【０２７９】
設定出力動作では、ループ数レジスタ６１に保持されているＬｏｏｐＮの数値が、プログラムループ数の設定情報として、メモリコントローラ２０に出力される。設定入力動作では、プログラムループ数の設定情報が示す数値が、ループ数レジスタ６１が保持するＬｏｏｐＮの数値として設定される。
【０２８０】
図２１は、第２実施形態における、書き込み完了フラグに関する設定情報の一例を示している。書き込み完了フラグは、例えば設定出力動作及び設定入力動作におけるデータ“Ｄ１”に割り当てられる。
【０２８１】
図２１に示すように、入出力信号が８ビット（［７］〜［０］ビット）である場合、例えば［０］〜［２］ビットにそれぞれ“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルの書き込み完了フラグが割り当てられ、［３］〜［７］ビットが未使用とされる。
【０２８２】
例えば、書き込み完了フラグが“０”である場合、当該フラグが対応する閾値レベルのベリファイが完了していない、すなわち当該閾値レベルが書き込み途中であることを示している。書き込み完了フラグが“１”である場合、当該フラグが対応する閾値レベルのベリファイが完了している、すなわち当該閾値レベルの書き込みが完了していることを示している。
【０２８３】
例えば、設定出力動作において、進捗記録レジスタ６０に保持されているＰｃｏｍｐの数値が“０”である場合、［０］〜［２］ビットのそれぞれが“０”に設定される。Ｐｃｏｍｐの数値が“１”である場合、［０］ビットが“１”に設定され、［１］及び［２］ビットのそれぞれが“０”に設定される。Ｐｃｏｍｐの数値が“２”である場合、［０］及び［１］ビットが“１”に設定され、［２］ビットが“０”に設定される。Ｐｃｏｍｐの数値が“３”である場合、［０］〜［２］ビットのそれぞれが“１”に設定される。
【０２８４】
例えば、設定入力動作では、以上で説明した設定入力動作の逆の動作が実行される。具体的には、設定入力動作において、［０］〜［２］ビットのそれぞれが“０”である場合、進捗記録レジスタ６０が保持するＰｃｏｍｐの数値が“０”に設定される。［０］ビットが“１”であり、［１］及び［２］ビットのそれぞれが“０”である場合、進捗記録レジスタ６０が保持するＰｃｏｍｐの数値が“１”に設定される。［０］及び［１］ビットのそれぞれが“１”であり、［２］ビットが“０”である場合、進捗記録レジスタ６０が保持するＰｃｏｍｐの数値が“２”に設定される。
【０２８５】
図２２は、第２実施形態における、動作判別パラメータに関する設定情報の一例を示している。動作判別パラメータは、例えば設定出力動作及び設定入力動作におけるデータ“Ｄ２”に割り当てられる。
【０２８６】
図２２に示すように、入出力信号が８ビット（［７］〜［０］ビット）である場合、例えば［０］ビットに分割書き込み終了時の動作情報（以下、動作情報）が割り当てられ、［１］〜［７］ビットが未使用とされる。
【０２８７】
例えば、動作情報が“０”である場合、分割書き込み終了時の動作がプログラム動作であることを示している。動作情報が“１”である場合、分割書き込み終了時の動作がベリファイ動作であることを示している。
【０２８８】
設定出力動作では、動作判別レジスタ６２に保持されているＰｐｒｏｃの数値が、プログラムループ数の設定情報として、メモリコントローラ２０に出力される。設定入力動作では、動作判別パラメータが示す数値が、動作判別レジスタ６２が保持するＰｐｒｏｃの数値として設定される。
【０２８９】
尚、設定入力動作及び設定出力動作の用途は、以上で説明したものに限定されない。例えば、半導体メモリ１０は、設定入力動作によって、コマンド“ｘｘｈ”が入力されない場合にも分割書き込みを実行するような設定で動作することも可能である。メモリコントローラ２０は、設定入力動作を利用することによって、半導体メモリ１０のデフォルト動作の設定を様々な設定に変更することが可能である。
【０２９０】
［２−１−２］分割書き込み
第２実施形態に係るメモリシステム１は、第１実施形態と同様に分割書き込みを実行し、さらに分割書き込み間の割り込み動作において、読み出し動作以外の動作を実行することが出来る。
【０２９１】
まず、図２３を用いて、第２実施形態における閾値レベルに基づいた分割書き込み（レベル分割）の概略について説明する。図２３は、第２実施形態に係るメモリシステム１における閾値レベルに基づいた分割書き込みの一例を示すフローチャートである。
【０２９２】
図２３に示すように、まず第１実施形態で説明したステップＳ１０及びＳ１１の処理が実行される。具体的には、半導体メモリ１０が“Ａ”レベルの分割書き込みを実行し、分割書き込みの終了後にメモリコントローラ２０が割り込み動作の有無を確認する。
【０２９３】
割り込み動作が有る場合（ステップＳ１１、ＹＥＳ）、メモリコントローラ２０は、その割り込み動作が読み出し動作であるかどうかを確認する（ステップＳ４０）。
【０２９４】
割り込み動作が読み出し動作である場合（ステップＳ４０、ＹＥＳ）、メモリコントローラ２０は、割り込み動作に対応する読み出し動作を半導体メモリ１０に実行させる（ステップＳ１２）。
【０２９５】
割り込み動作が読み出し動作では無い場合（ステップＳ４０、ＮＯ）、メモリコントローラ２０は、図１８を用いて説明した設定出力動作を実行して、半導体メモリ１０に分割書き込みの設定情報を出力させる（ステップＳ４１）。
【０２９６】
メモリコントローラ２０は、半導体メモリ１０から出力された設定情報を、例えばＲＡＭ２３に保持する。つまり、本動作では、半導体メモリ１０が割り込み動作の後に実行する分割書き込みの設定情報を、半導体メモリ１０外部の記憶領域に待避している。尚、設定情報が記憶される場所は、ＲＡＭ２３に限定されない。メモリコントローラ２０は、その他の記憶領域に設定情報を保持させても良い。
【０２９７】
それから、メモリコントローラ２０及び半導体メモリ１０は、割り込み動作を実行するう（ステップＳ４２）。ステップＳ４２における割り込み動作では、例えば書き込み動作や消去動作が実行される。これらの動作が実行されると、センスアンプモジュール１７内の各ラッチ回路に保持されていた、ステップＳ１０の分割書き込みに対応する書き込みデータが消去される。
【０２９８】
尚、ステップＳ４２の割り込み動作において実行される書き込み動作としては、例えば図１１を用いた通常書き込みが挙げられる。ステップＳ４２の処理では、複数回の書き込み動作が連続で実行されても良いし、複数回の消去動作が実行されても良い。また、ステップＳ４２の処理では、書き込み動作と消去動作との両方が実行されても良い。
【０２９９】
ステップＳ４２の割り込み動作が終了すると、メモリコントローラ２０は、図１９を用いて説明した設定入力動作を実行して、半導体メモリ１０にステップＳ１０の分割書き込みに対応する設定情報を復元させる（ステップＳ４３）。
【０３００】
そして、メモリコントローラ２０は、半導体メモリ１０に“Ｂ”レベルの分割書き込みを実行させる（ステップＳ４４）。このとき、メモリコントローラ２０は、ステップＳ１０の処理で半導体メモリ１０に入力した書き込みデータを半導体メモリ１０に再入力する。
【０３０１】
一方で、ステップＳ１１において割り込み動作が無い場合（ステップＳ１１、ＮＯ）と、ステップＳ１２における割り込み動作が終了した場合とのそれぞれにおいては、第１実施形態で説明したステップＳ１３の処理が実行される。つまり、メモリシステム１は、例えば省略コマンドが使用された“Ｂ”レベルの分割書き込みを実行する。
【０３０２】
ステップＳ４４又はＳ１３の処理が終了した後、すなわち“Ｂ”レベルの分割書き込みが終了した後に、メモリコントローラ２０は、再び割り込み動作の有無を確認する（ステップＳ１４）。
【０３０３】
割り込み動作が有る場合（ステップＳ１４、ＹＥＳ）、メモリコントローラ２０は、ステップＳ４０の処理と同様に、その割り込み動作が読み出し動作であるかどうかを確認する（ステップＳ４５）。
【０３０４】
割り込み動作が読み出し動作である場合（ステップＳ４５、ＹＥＳ）、メモリコントローラ２０は、割り込み動作に対応する読み出し動作を半導体メモリ１０に実行させる（ステップＳ１５）。
【０３０５】
割り込み動作が読み出し動作では無い場合（ステップＳ４５、ＮＯ）、メモリシステム１は、上述したステップＳ４１〜Ｓ４３と同様の処理を実行する。つまり、分割書き込みの設定情報をメモリコントローラ２０に待避した後に、書き込み動作や消去動作等の割り込み動作を実行する。そして、割り込み動作が終了した後に、メモリコントローラ２０に待避された分割書き込みの設定情報が、半導体メモリ１０内に復元される。
【０３０６】
そして、メモリコントローラ２０は、半導体メモリ１０に“Ｃ”レベルの分割書き込みを実行させる（ステップＳ４６）。このとき、メモリコントローラ２０は、ステップＳ１０の処理で半導体メモリ１０に入力した書き込みデータを半導体メモリ１０に再入力する。
【０３０７】
一方で、ステップＳ１４において割り込み動作が無い場合（ステップＳ１４、ＮＯ）と、ステップＳ１５における割り込み動作が終了した場合とのそれぞれにおいては、第１実施形態で説明したステップＳ１６の処理が実行される。つまり、メモリシステム１は、例えば省略コマンドが使用された“Ｃ”レベルの分割書き込みを実行する。
【０３０８】
次に、図２４及び図２５を用いて、第２実施形態における閾値レベルに基づいた分割書き込みの詳細について説明する。図２４及び図２５のそれぞれは、メモリシステム１における閾値レベルに基づいた分割書き込みの一例を示すタイミングチャートである。
【０３０９】
図２５（分割書き込み（２／２））は、図２４（分割書き込み（１／２））に続く動作を示している。図２４及び図２５は、図１３を用いて説明した閾値レベルに基づいた分割書き込みにおいて、割り込み動作として書き込み動作又は消去動作が実行された場合の動作を例示し、図２５では“Ｃ”レベルの分割書き込みに対応する動作が省略されている。
【０３１０】
図２４に示すように、“Ａ”レベルの分割書き込みに関するコマンドシーケンスと、“Ａ”レベルの分割書き込みとのそれぞれの詳細は、第１実施形態で図１３を用いて説明した動作と同様のため、説明を省略する。
【０３１１】
本例では、“Ａ”レベルの分割書き込みが終了した後に、半導体メモリ１０がビジー状態からレディ状態に遷移すると、書き込み動作又は消去動作を含む割り込み動作が実行される。つまり、メモリコントローラ２０は、この時点で書き込み動作又は消去動作を含む割り込み動作の指示をホスト機器３０から受信している。
【０３１２】
この場合にメモリコントローラ２０は、図１８を用いて説明した設定出力動作を実行する。具体的には、例えばコマンド“Ｄ４ｈ”、アドレス情報“ＡＤＤ１”及び“ＡＤＤ２”を順に半導体メモリ１０に送信する。図２４には、設定出力動作に関する詳細なコマンドシーケンスが省略されたコマンドセット“ＧＦ”が示されている。
【０３１３】
コマンドセット“ＧＦ”を受信した半導体メモリ１０は、一時的にビジー状態に遷移して、アドレス情報“ＡＤＤ１”及び“ＡＤＤ２”に基づいた設定情報を出力可能な状態にする。そして、メモリコントローラ２０は、半導体メモリ１０がレディ状態になった後に、この設定情報を出力させる。
【０３１４】
図２４には、出力される設定情報を省略して示した設定情報“ＦＯ”が示されている。設定情報“ＦＯ”は、例えばＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値を含んでいる。設定情報“ＦＯ”は、例えばメモリコントローラ２０内部の記憶領域（例えばＲＡＭ２３）に保持（待避）される。
【０３１５】
そして、メモリコントローラ２０は、割り込み動作に関するコマンドセット（“ＣＭＤset”）を半導体メモリ１０に送信する。半導体メモリ１０は、このコマンドセットを受信するとレディ状態からビジー状態に遷移して、書き込み動作又は消去動作を実行する。尚、図２４では、この割り込み動作の詳細が省略されている。
【０３１６】
割り込み動作が終了すると、半導体メモリ１０はレディ状態になり、メモリコントローラ２０は再び割り込み動作の有無を確認する。割り込み動作が無い場合、図２５に示すように、メモリコントローラ２０は書き込み動作を再開する。
【０３１７】
具体的には、まずメモリコントローラ２０は、図１９を用いて説明した設定入力動作を実行する。具体的には、例えばコマンド“Ｄ５ｈ”、アドレス情報“ＡＤＤ１”及び“ＡＤＤ２”、データ“Ｄ０”〜“Ｄ３”を順に半導体メモリ１０に送信する。図２４には、設定入力動作に関する詳細なコマンドシーケンスが省略されたコマンドセット“ＳＦ”が示されている。コマンドセット“ＳＦ”に含まれたデータ“Ｄ０”〜“Ｄ３”は、メモリコントローラ２０内部の記憶領域に待避されていた設定情報“ＦＯ”を含んでいる。
【０３１８】
コマンドセット“ＳＦ”を受信した半導体メモリ１０は、一時的にビジー状態に遷移して、アドレス情報“ＡＤＤ１”及び“ＡＤＤ２”、並びにデータ“Ｄ０”〜“Ｄ３”に基づいて分割書き込みに関する設定情報を復元する。
【０３１９】
具体的には、図２４及び図２５に示された一例では、“Ａ”レベルの分割書き込み終了後におけるＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値が“１”、“３”、及び“１”であることから、これらの数値がそれぞれ進捗記録レジスタ６０、ループ数レジスタ６１、及び動作判別レジスタ６２に設定される。
【０３２０】
その後にメモリコントローラ２０は、次の分割書き込みに対応するコマンドセットを半導体メモリ１０に送信する。
【０３２１】
具体的には、コマンド“ｘｘｈ”、コマンド“０１ｈ”、コマンド“８０ｈ”、アドレス情報ＡＤＤ、下位ページの書き込みデータ（Ｄin）、コマンド“１Ａｈ”を順に半導体メモリ１０に送信する。
【０３２２】
この下位ページの書き込みデータは、図２４に示されたコマンドセットＣＳｌｏｗに含まれたものと同じである。半導体メモリ１０が受信した下位ページの書き込みデータは、センスアンプモジュール１７内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。
【０３２３】
半導体メモリ１０は、コマンド“１Ａｈ”を受信すると、一時的にレディ状態からビジー状態に遷移する。このときシーケンサ１４は、各センスアンプユニットＳＡＵに対して、ラッチ回路ＸＤＬに保持された下位ページの書き込みデータを例えばラッチ回路ＬＤＬに転送させる。
【０３２４】
次に、メモリコントローラ２０は、コマンド“ｘｘｈ”、コマンド“０２ｈ”、コマンド“８０ｈ”、アドレス情報ＡＤＤ、上位ページの書き込みデータ（Ｄin）、コマンド“ＧＯ”を順に半導体メモリ１０に送信する。
【０３２５】
この上位ページの書き込みデータは、図２４に示されたコマンドセットＣＳｕｐに含まれたものと同じである。半導体メモリ１０が受信した上位ページの書き込みデータは、センスアンプモジュール１７内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。
【０３２６】
半導体メモリ１０は、コマンド“ＧＯ”を受信すると、レディ状態からビジー状態に遷移する。すると、まずシーケンサ１４は、各センスアンプユニットＳＡＵに対して、ラッチ回路ＸＤＬに保持された上位ページの書き込みデータを例えばラッチ回路ＵＤＬに転送させる。
【０３２７】
それから、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤと、下位ページの書き込みデータと、上位ページの書き込みデータとに基づいて、“Ｂ”レベルの分割書き込みを実行する。
【０３２８】
具体的には、まずシーケンサ１４は、センスアンプモジュール１７内のラッチ回路の状態を、“Ａ”レベルの分割書き込みが終了した後の状態に復元する。この動作に関する詳細が、図２６に示されている。図２６は、Ｐｃｏｍｐの数値に基づいてラッチ回路内の情報を復元する方法の一例を示し、ラッチ回路ＬＤＬ及びＵＤＬにそれぞれ上位及び下位ビットデータが保持される場合を例示している。
【０３２９】
図２６に示すように、Ｐｃｏｍｐの数値が“０”である場合、シーケンサ１４は、ラッチ回路内の書き込みデータをそのまま維持する（図２６（１））。
【０３３０】
Ｐｃｏｍｐの数値が“１”である場合、シーケンサ１４は、“Ａ”レベルに対応する書き込みデータを保持するセンスアンプユニットＳＡＵに対して、ラッチ回路ＬＤＬ及びＵＤＬの保持するデータを、“ＥＲ”レベルに対応する書き込みデータと同様になるように変更する（図２６（２））。
【０３３１】
Ｐｃｏｍｐの数値が“２”である場合、シーケンサ１４は、“Ａ”レベルに対応する書き込みデータを保持するセンスアンプユニットＳＡＵと、“Ｂ”レベルに対応する書き込みデータを保持するセンスアンプユニットＳＡＵとのそれぞれに対して、ラッチ回路ＬＤＬ及びＵＤＬの保持するデータを、“ＥＲ”レベルに対応する書き込みデータと同様になるように変更する（図２６（３））。
【０３３２】
以上のようにＰｃｏｍｐの数値に基づいてラッチ回路の状態を復元することにより、シーケンサ１４は、既に実行された分割書き込み（例えば、“Ａ”レベルの分割書き込み）においてベリファイにパスしたメモリセルトランジスタＭＴに対するプログラム動作が再び実行されることを避けている。
【０３３３】
また、シーケンサ１４は、第１実施形態と同様に、ＬｏｏｐＮの数値に基づいてプログラム電圧ＶＰＧＭを設定する。具体的には、プログラム電圧は、ＶＰＧＭ＝ＶＰＧＭinit＋（ＬｏｏｐＮ−１）＊ＤＶＰＧＭという数式によって算出された値に設定される。
【０３３４】
第２実施形態に係るメモリシステム１の閾値レベルに基づいた分割書き込みのその他の動作は、第１実施形態に係るメモリシステム１の閾値レベルに基づいた分割書き込みと同様のため、説明を省略する。
【０３３５】
尚、第２実施形態で使用されるコマンド“ＧＯ”は、第１実施形態で使用されるコマンド“ＧＯ”と同じであっても良いし、異なっていても良い。第２実施形態に係るメモリシステム１は、２回目以降の分割書き込みを実行する場合に、アドレス情報や書き込みデータの入力の有無に依らずにコマンド“ＧＯ”を使用する。
【０３３６】
また、データの入力を伴わない２回目以降の分割書き込みでは、単発でコマンド“ＧＯ”が使用されても良いし、アドレス入力と伴うコマンドセットが使用されても良い。アドレス入力を伴う場合、例えば、下位ページに対応するコマンド“ｘｘｈ”、“０１ｈ”、アドレス情報ＡＤＤ、及び“１Ａｈ”の組と、上位ページに対応するコマンド“０２ｈ”、アドレス情報ＡＤＤ、及び“１０ｈ”の組とを含むコマンドセットが使用される。
【０３３７】
また、データの入力を伴う２回目以降の分割書き込みでは、アドレス入力が省略されても良い。この場合、例えばコマンド“ｘｘｈ”、“０１ｈ”、下位ページデータ、及び“１Ａｈ”の組と、コマンド“０２ｈ”、上位ページデータ、及び“１０ｈ”の組とを含むコマンドセットが使用される。
【０３３８】
［２−２］第２実施形態の効果
以上のように、第２実施形態に係るメモリシステム１では、第１実施形態とは異なり、分割書き込み間の割り込み動作として書き込み動作及び消去動作を実行することが許容されている。
【０３３９】
そして、第２実施形態に係るメモリシステム１は、割り込み動作として書き込み動作及び消去動作が実行された場合に、当該割り込み動作の前後にそれぞれ設定出力動作及び設定入力動作を挿入している。
【０３４０】
これにより、第２実施形態に係るメモリシステム１は、直近の分割書き込みにおける各種レジスタのパラメータを復元することが出来る。そして、メモリコントローラ２０が、書き込みデータを半導体メモリ１０に再入力することによって、半導体メモリ１０が第１実施形態と同様の分割書き込みを継続して実行することが出来る。
【０３４１】
従って、第２実施形態に係るメモリシステム１は、実行することが可能な割り込み動作の種類を増やすことが出来ることから、実行される割り込み動作の種類に依らずに待ち時間を改善することが出来る。
【０３４２】
［２−３］第２実施形態の変形例
第２実施形態では、閾値レベルに基づいた分割書き込みを実行する場合について説明したが、これに限定されない。例えば、第２実施形態において分割書き込みを終了するトリガーとしては、第１実施形態と同様に、プログラムループ数や処理時間を使用することが出来る。
【０３４３】
図２７は、第２実施形態におけるプログラムループ数に基づいた分割書き込みの一例を示すフローチャートである。図２７に示すように、第２実施形態におけるプログラムループ数に基づいた分割書き込みは、第１実施形態で説明した図１４に対して、ステップＳ１１以降の動作が異なっている。
【０３４４】
具体的には、ステップＳ１１の処理において、割り込み動作の指示が有る場合（ステップＳ１１、ＹＥＳ）、シーケンサ１４は、図２３を用いて説明したステップＳ４０の処理を実行する。
【０３４５】
ステップＳ４０の処理において、割り込み動作が読み出し動作である場合（ステップＳ４０、ＹＥＳ）、メモリコントローラ２０は、割り込み動作に対応する読み出し動作を半導体メモリ１０に実行させる（ステップＳ１２）。
【０３４６】
割り込み動作が読み出し動作では無い場合（ステップＳ４０、ＮＯ）、メモリコントローラ２０は、ステップＳ４１の処理を実行して、半導体メモリ１０に分割書き込みの設定情報を出力させる。メモリコントローラ２０は、半導体メモリ１０から出力された設定情報を、例えばＲＡＭ２３に保持する。
【０３４７】
そして、メモリコントローラ２０及び半導体メモリ１０は、ステップＳ４２の処理を実行して、書き込み動作及び消去動作の少なくとも一方を含む割り込み動作を実行する。ステップＳ４２の割り込み動作が終了すると、メモリコントローラ２０は、ステップＳ４３の処理を実行して、半導体メモリ１０に分割書き込みの設定情報を復元させる。
【０３４８】
それから、メモリコントローラ２０は、半導体メモリ１０に対して、プログラムループ数に基づいた分割書き込みの続き、すなわち２回目以降の分割書き込みを実行させる（ステップＳ２４）。ステップＳ２４における分割書き込みでは、ステップＳ２０の処理で使用された書き込みデータが再入力される。
【０３４９】
一方で、ステップＳ１１の処理において割り込み動作が無い場合と、ステップＳ１２の処理が終了した場合とのそれぞれにおいて、シーケンサ１４は、図１４を用いて説明したステップＳ２３の処理を実行する。つまり、シーケンサ１４は、プログラムループ数に基づいた分割書き込みの続きを実行する。
【０３５０】
ステップＳ２３又はＳ２４の処理が終了すると、メモリシステム１は、ステップＳ２１の処理に戻り、ステータスリードが実行される。第２実施形態におけるプログラムループ数に基づいた分割書き込みのその他の詳細な動作は、第１実施形態で図１４及び図１５を用いて説明した動作と同様のため、説明を省略する。
【０３５１】
図２８は、第２実施形態における処理時間に基づいた分割書き込みの一例を示すフローチャートである。図２８に示すように、第２実施形態における処理時間に基づいた分割書き込みは、図２７を用いて説明した第２実施形態におけるプログラムループ数に基づいた分割書き込みにおいて、各分割書き込みを終了するトリガーを処理時間に変更したものと同様である。
【０３５２】
具体的には、図２７のステップＳ２０がステップＳ３０に置き換えられ、図２７のステップＳ２３がステップＳ３１に置き換えられ、図２７のステップＳ２４がステップＳ３２に置き換えられている。
【０３５３】
ステップＳ３２においてメモリシステム１は、ステップＳ２４と同様に、書き込みデータの再入力を伴う分割書き込みを実行する。第２実施形態における処理時間に基づいた分割書き込みのその他の詳細な動作は、図２７を用いて説明した動作と、第１実施形態で図１４及び図１５を用いて説明した動作との組み合わせと同様のため、説明を省略する。
【０３５４】
［３］第３実施形態
第３実施形態に係るメモリシステム１は、第１実施形態に係るメモリシステム１と同様の構成を有する。そして、第３実施形態に係るメモリシステム１では、第１及び第２実施形態で説明したような分割書き込みにおいて、ＳＬＣ（Single-Level Cell）キャッシュを使用する。以下に、第３実施形態に係るメモリシステム１について、第１実施形態と異なる点について説明する。
【０３５５】
［３−１］書き込み動作
第３実施形態に係るメモリシステム１は、書き込み動作として分割書き込みを使用し、さらにＳＬＣキャッシュを使用する。
【０３５６】
ＳＬＣキャッシュは、１ページデータを記憶させるセルユニットＣＵに相当する。そしてＳＬＣキャッシュは、書き込み動作において各セルユニットＣＵに複数ページデータを記憶させる場合に、所望のアドレスのセルユニットＣＵに書き込む前に一時的にデータを記憶するキャッシュ領域として使用される。
【０３５７】
まず、図２９を用いて、第３実施形態における閾値レベルに基づいた分割書き込み（レベル分割）の概略について説明する。図２９は、第３実施形態に係るメモリシステム１における閾値レベルに基づいた分割書き込みの一例を示すフローチャートである。
【０３５８】
図２９に示すように、まずメモリシステム１は、キャッシュ書き込みを実行する（ステップＳ５０）。キャッシュ書き込みにおいて、メモリコントローラ２０は、ＳＬＣキャッシュとして使用する記憶領域を指定して、半導体メモリ１０に１ページデータの書き込み動作を複数回指示する。半導体メモリ１０は、メモリコントローラ２０の指示に基づいて、１ページデータの書き込み動作を複数回実行する。
【０３５９】
その後、処理に余裕があるときにメモリコントローラ２０は、ステップＳ５０においてＳＬＣキャッシュに書き込んだデータを読み出して、所望のアドレスのセルユニットＣＵに対する複数ページデータの書き込み動作を実行する。
【０３６０】
具体的には、メモリシステム１は、まずキャッシュ読み出しを実行する（ステップＳ５１）。キャッシュ読み出しにおいて、メモリコントローラ２０は、ＳＬＣキャッシュを指定した読み出し動作を半導体メモリ１０に指示する。
【０３６１】
例えば、１つのセルユニットＣＵに２ページデータを書き込む場合には、２回の読み出し動作が実行される。このキャッシュ読み出しによって、２ページ分の書き込みデータがセンスアンプモジュール１７内のラッチ回路に保持される。
【０３６２】
そして、メモリコントローラ２０は、ＳＬＣキャッシュから読み出されたデータを用いた“Ａ”レベルの分割書き込みを半導体メモリ１０に指示する（ステップＳ５２）。
【０３６３】
“Ａ”レベルの分割書き込みが終了した後に、メモリコントローラ２０は、ステップＳ１１の処理を実行し、割り込み動作の有無を確認する。
【０３６４】
割り込み動作が有る場合（ステップＳ１１、ＹＥＳ）、メモリコントローラ２０は、ステップＳ４０の処理を実行し、その割り込み動作が読み出し動作であるかどうかを確認する。
【０３６５】
割り込み動作が読み出し動作である場合（ステップＳ４０、ＹＥＳ）、メモリコントローラ２０は、ステップＳ１２の処理を実行し、割り込み動作に対応する読み出し動作を半導体メモリ１０に実行させる。
【０３６６】
割り込み動作が読み出し動作では無い場合（ステップＳ４０、ＮＯ）、メモリシステム１は、上述したステップＳ４１及びＳ４２と同様の処理を実行する。つまり、分割書き込みの設定情報をメモリコントローラ２０に待避した後に、書き込み動作や消去動作等の割り込み動作を実行する。
【０３６７】
そして、メモリコントローラ２０は、ステップＳ５１と同様のキャッシュ読み出しを半導体メモリ１０に指示し、例えば２ページ分の書き込みデータをセンスアンプモジュール１７内のラッチ回路に復元させる（ステップＳ５３）。
【０３６８】
キャッシュ読み出しが終了した後に、メモリコントローラ２０は、ステップＳ４３の設定入力動作を実行し、メモリコントローラ２０に待避した分割書き込みの設定情報を、半導体メモリ１０内に復元する。その後、メモリコントローラ２０は、半導体メモリ１０に“Ｂ”レベルの分割書き込みを実行させる（ステップＳ５４）。
【０３６９】
一方で、ステップＳ１１において割り込み動作が無い場合（ステップＳ１１、ＮＯ）と、ステップＳ１２における割り込み動作が終了した場合とのそれぞれにおいては、第１実施形態で説明したステップＳ１３の処理が実行される。つまり、メモリシステム１は、例えば省略コマンドが使用された“Ｂ”レベルの分割書き込みを実行する。
【０３７０】
ステップＳ５３又はＳ１３の処理が終了した後、すなわち“Ｂ”レベルの分割書き込みが終了した後に、メモリコントローラ２０は、再び割り込み動作の有無を確認する（ステップＳ１４）。
【０３７１】
割り込み動作が有る場合（ステップＳ１４、ＹＥＳ）、メモリコントローラ２０は、ステップＳ４０の処理と同様に、その割り込み動作が読み出し動作であるかどうかを確認する（ステップＳ４５）。
【０３７２】
割り込み動作が読み出し動作である場合（ステップＳ４５、ＹＥＳ）、メモリコントローラ２０は、割り込み動作に対応する読み出し動作を半導体メモリ１０に実行させる（ステップＳ１５）。
【０３７３】
割り込み動作が読み出し動作では無い場合（ステップＳ４５、ＮＯ）、メモリシステム１は、上述したステップＳ４１及びＳ４２と同様の処理を実行する。つまり、分割書き込みの設定情報をメモリコントローラ２０に待避した後に、書き込み動作や消去動作等の割り込み動作を実行する。
【０３７４】
そして、メモリコントローラ２０は、ステップＳ５１と同様のキャッシュ読み出しを半導体メモリ１０に指示し、例えば２ページ分の書き込みデータがセンスアンプモジュール１７内のラッチ回路に復元させる（ステップＳ５５）。
【０３７５】
ステップＳ５４のキャッシュ読み出しが終了した後に、メモリコントローラ２０は、ステップＳ４３の設定入力動作を実行し、メモリコントローラ２０に待避した分割書き込みの設定情報を、半導体メモリ１０内に復元する。
【０３７６】
その後、メモリコントローラ２０は、半導体メモリ１０に“Ｃ”レベルの分割書き込みを実行させる（ステップＳ５６）。
【０３７７】
一方で、ステップＳ１４において割り込み動作が無い場合（ステップＳ１４、ＮＯ）と、ステップＳ１５における割り込み動作が終了した場合とのそれぞれにおいては、第１実施形態で説明したステップＳ１６の処理が実行される。つまり、メモリシステム１は、例えば省略コマンドが使用された“Ｃ”レベルの分割書き込みを実行する。
【０３７８】
次に、図３０を用いて、第３実施形態における閾値レベルに基づいた分割書き込みの詳細について説明する。図３０は、第３実施形態に係る閾値レベルに基づいた分割書き込みの一例を示すタイミングチャートであり、当該分割書き込みにおけるコマンドシーケンス及びレディビジー信号ＲＢｎをそれぞれ例示している。
【０３７９】
図３０に示すように、まずメモリコントローラ２０は、コマンド“Ａ２ｈ”、コマンド“８０ｈ”、アドレス情報ＡＤＤ１、下位ページの書き込みデータ（Ｄin）、コマンド“１０ｈ”を順に半導体メモリ１０に送信する。コマンド“Ａ２ｈ”は、半導体メモリ１０にＳＬＣに関する動作を指示するコマンドである。アドレス情報ＡＤＤ１は、キャッシュ領域のセルユニットＣＵを指定するアドレスを含んでいる。
【０３８０】
半導体メモリ１０が受信した下位ページの書き込みデータは、センスアンプモジュール１７内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。半導体メモリ１０は、コマンド“１０ｈ”を受信すると、レディ状態からビジー状態に遷移する。
【０３８１】
すると、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤ１と、下位ページの書き込みデータとに基づいて、ＳＬＣの書き込み動作（下位ページデータのキャッシュ書き込み）を実行する。
【０３８２】
ＳＬＣの書き込み動作で実行されるプログラムループの詳細は、図１１を用いて説明したＭＬＣの書き込み動作（２ｂｉｔ／ｃｅｌｌの通常書き込み）において、使用するベリファイ電圧を１種類にしたものと同様のため、説明を省略する。
【０３８３】
尚、ＳＬＣの書き込み動作とＭＬＣの書き込み動作とでは、使用されるプログラム電圧ＶＰＧＭと、ステップアップ幅ＤＶＰＧＭと、ベリファイ電圧ＡＶとがそれぞれ異なっていても良い。
【０３８４】
下位ページデータのキャッシュ書き込みが終了すると、半導体メモリ１０がビジー状態からレディ状態に遷移する。続けて、メモリコントローラ２０は、上位ページデータのキャッシュ書き込みを半導体メモリ１０に指示する。
【０３８５】
上位ページデータのキャッシュ書き込みは、下位ページデータのキャッシュ書き込みに対して、指定するアドレス情報と入力する書き込みデータが変更されたものである。上位ページデータのキャッシュ書き込みで指定されるアドレス情報ＡＤＤ２は、アドレス情報ＡＤＤ１とは異なる。上位ページデータのキャッシュ書き込みのその他の動作は、下位ページデータのキャッシュ書き込みと同様のため、説明を省略する。
【０３８６】
図３０では、以上で説明した下位及び上位ページデータのキャッシュ書き込みを半導体メモリ１０が実行した時間が、それぞれｔＰslc１及びｔＰslc２として示されている。
【０３８７】
その後、処理に余裕があるときにメモリコントローラ２０は、キャッシュに書き込んだデータを用いた複数ページデータの分割書き込みを実行する。まず、メモリコントローラ２０は、下位ページデータ及び上位ページデータのキャッシュ読み出しを半導体メモリ１０に指示する。
【０３８８】
具体的には、メモリコントローラ２０は、まずコマンド“Ａ２ｈ”、コマンド“００ｈ”、アドレス情報ＡＤＤ１、コマンド“３０ｈ”を順に半導体メモリ１０に送信する。
【０３８９】
半導体メモリ１０は、コマンド“３０ｈ”を受信すると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤ１とに基づいて、ＳＬＣの読み出し動作（下位ページデータのキャッシュ読み出し）を実行する。
【０３９０】
ＳＬＣの読み出し動作の詳細は、図１０を用いて説明した読み出し動作（２ｂｉｔ／ｃｅｌｌの下位ページ読み出し）において、使用する読み出し電圧を変更したものと同様のため、説明を省略する。
【０３９１】
下位ページデータのキャッシュ読み出しによって読み出されたデータは、例えばラッチ回路ＸＤＬに転送される。下位ページデータのキャッシュ読み出しが終了すると、半導体メモリ１０がビジー状態からレディ状態に遷移する。
【０３９２】
続けて、メモリコントローラ２０は、コマンド“ＴＬ”を半導体メモリ１０に送信する。コマンド“ＴＬ”は、半導体メモリ１０にラッチ回路間のデータの転送を指示するコマンドである。
【０３９３】
半導体メモリ１０は、コマンド“ＴＬ”を受信すると一時的にビジー状態になり、シーケンサ１４は、センスアンプモジュール１７に対して、例えばラッチ回路ＸＤＬに保持された下位ページデータをラッチ回路ＬＤＬに転送させる。
【０３９４】
次に、メモリコントローラ２０は、コマンド“Ａ２ｈ”、コマンド“００ｈ”、アドレス情報ＡＤＤ１、コマンド“３０ｈ”を順に半導体メモリ１０に送信する。
【０３９５】
半導体メモリ１０は、コマンド“３０ｈ”を受信すると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤとに基づいて、ＳＬＣの読み出し動作（上位ページデータのキャッシュ読み出し）を実行する。
【０３９６】
上位ページデータのキャッシュ読み出しによって読み出されたデータは、例えばラッチ回路ＸＤＬに転送される。上位ページデータのキャッシュ読み出しが終了すると、半導体メモリ１０がビジー状態からレディ状態に遷移する。
【０３９７】
続けて、メモリコントローラ２０は、コマンド“ＴＵ”を半導体メモリ１０に送信する。コマンド“ＴＵ”は、半導体メモリ１０にラッチ回路間のデータの転送を指示するコマンドである。
【０３９８】
半導体メモリ１０は、コマンド“ＴＬ”を受信すると一時的にビジー状態になり、シーケンサ１４は、センスアンプモジュール１７に対して、例えばラッチ回路ＸＤＬに保持された上位ページデータをラッチ回路ＵＤＬに転送させる。
【０３９９】
図３０では、以上で説明した下位及び上位ページデータのキャッシュ読み出しを半導体メモリ１０が実行した時間が、それぞれｔＲ１及びｔＲ２として示されている。
【０４００】
次に、メモリコントローラ２０は、センスアンプモジュール１７内のラッチ回路の状態を維持した“Ａ”レベルの分割書き込みを半導体メモリ１０に指示する。
【０４０１】
具体的には、メモリコントローラ２０は、コマンド“ｘｘｈ”、コマンド“８５ｈ”、アドレス情報ＡＤＤ３、コマンド“１０ｈ”を順に半導体メモリ１０に送信する。コマンド“８５ｈ”は、半導体メモリ１０に、センスアンプモジュール１７内のラッチ回路の状態を維持した書き込み動作を指示するコマンドである。アドレス情報ＡＤＤ３は、複数ページデータを記憶させるセルユニットＣＵを指定するアドレスを含んでいる。
【０４０２】
半導体メモリ１０は、コマンド“１０ｈ”を受信すると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤ３と、センスアンプモジュール１７内のラッチ回路に保持された上位及び下位ページデータとに基づいて、“Ａ”レベルの分割書き込みを実行する。
【０４０３】
“Ａ”レベルの分割書き込みの詳細は、第１実施形態で説明した“Ａ”レベルの分割書き込みと同様のため、説明を省略する。
【０４０４】
“Ａ”レベルの分割書き込みが終了すると、半導体メモリ１０はビジー状態からレディ状態に遷移する。例えば、ホスト機器３０からの割り込み動作の指示が無い場合、メモリコントローラ２０は次の分割書き込みを実行する。
【０４０５】
具体的には、メモリコントローラ２０は、例えばコマンド“ＧＯ”を半導体メモリ１０に送信し、半導体メモリ１０は、コマンド“ＧＯ”に基づいて“Ｂ”レベルの分割書き込みを実行する。
【０４０６】
尚、単発のコマンド“ＧＯ”で次の分割書き込みを実行する場合、分割書き込み間でアドレスレジスタ１３に保持されたアドレス情報ＡＤＤが保持され続ける必要がある。これに対して、単発のコマンド“ＧＯ”の替わりに、アドレス入力を伴うコマンドシーケンスが使用されても良い。この場合、分割書き込み間でアドレスレジスタ１３に保持されたアドレス情報ＡＤＤを破棄することが可能となる。
【０４０７】
“Ｂ”レベルの分割書き込みが終了した後に、例えばメモリコントローラ２０がホスト機器３０からの割り込み動作の指示を受信している状態であった場合、メモリコントローラ２０は、第２実施形態と同様に、設定出力動作を実行する。
【０４０８】
具体的には、メモリコントローラ２０は、コマンドセット“ＧＦ”を半導体メモリ１０に送信し、半導体メモリ１０が一時的にビジー状態に遷移する。そして、半導体メモリ１０がコマンドセット“ＧＦ”に基づいて準備した設定情報が、メモリコントローラ２０に出力され、メモリコントローラ２０は、この設定情報“ＦＯ”をメモリコントローラ２０内の記憶領域に保持する。
【０４０９】
その後、メモリコントローラ２０は、割り込み動作を実行する。具体的には、例えば割り込み動作に対応するコマンドセットＣＭＤsetを半導体メモリ１０に送信し、半導体メモリ１０が受信したコマンド等に基づいて、割り込み動作（例えば書き込み動作）を実行する。
【０４１０】
本例においては、割り込み動作によって、センスアンプモジュール１７内のラッチ回路に保持されていた下位及び上位ページデータが消去されているものとする。そして、メモリコントローラ２０は、割り込み動作が終了した後、ホスト機器３０からの割り込み動作の指示が無い場合に、分割書き込みを再開する。
【０４１１】
このとき、メモリコントローラ２０は、当該セルユニットＣＵに書き込むデータに対応するキャッシュ読み出しを再度実行する。下位及び上位ページデータのそれぞれのキャッシュ読み出しに関する動作は、上述した下位及び上位ページデータのそれぞれのキャッシュ読み出しと同様のため、説明を省略する。
【０４１２】
上位ページデータのキャッシュ読み出しが終了し、半導体メモリ１０がビジー状態からレディ状態に遷移すると、メモリコントローラ２０は、第２実施形態と同様に、設定入力動作を実行する。
【０４１３】
具体的には、メモリコントローラ２０は、コマンドセット“ＳＦ”を半導体メモリ１０に送信し、半導体メモリ１０が一時的にビジー状態に遷移する。コマンドセット“ＳＦ”は、メモリコントローラ２０の記憶領域に待避されていた設定情報を含み、シーケンサ１４は、この設定情報を例えば進捗記録レジスタ６０、ループ数レジスタ６１、動作判別レジスタ６２のそれぞれに反映させる。
【０４１４】
続けて、メモリコントローラ２０は、コマンド“ｙｙｈ”、コマンド“８５ｈ”、アドレス情報ＡＤＤ３、コマンド“１０ｈ”を順に半導体メモリ１０に送信する。コマンド“ｙｙｈ”は、半導体メモリ１０に進捗記録レジスタ６０、ループ数レジスタ６１、動作判別レジスタ６２の保持されている数値に基づいた分割書き込みを指示するコマンドである。
【０４１５】
半導体メモリ１０は、コマンド“１０ｈ”を受信すると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、受信したコマンドＣＭＤと、アドレス情報ＡＤＤ３と、センスアンプモジュール１７内のラッチ回路に保持された上位及び下位ページデータとに基づいて、“Ｃ”レベルの分割書き込みを実行する。
【０４１６】
以上のように、第３実施形態に係るメモリシステム１は、２回目以降の分割書き込みが実行される前に、割り込み動作が実行されたか否かに応じて、使用されるコマンドが変化することがある。割り込み動作で書き込み動作及び消去動作が実行された場合に、メモリシステム１は、キャッシュ読み出しと、コマンド“ｙｙｈ”とアドレス情報とを含むコマンドセットを用いて、続く分割書き込みの実行する。
【０４１７】
尚、以上の説明では、分割書き込みを指示するコマンドとして、初回の分割書き込みで“ｘｘｈ”を使用し、２回目以降の分割書き込みで“ｙｙｈ”を使用する場合について例示したが、これに限定されない。例えば、第３実施形態に係るメモリシステム１の書き込み動作において、初回の分割書き込みと２回目以降の分割書き込みとで、同じコマンド（例えば“ｘｘｈ”）が使用されても良い。
【０４１８】
［３−２］第３実施形態の効果
以上のように、第３実施形態に係るメモリシステム１は、ＳＬＣキャッシュを利用した分割書き込みを実行することが出来る。また、第３実施形態に係るメモリシステム１では、第２実施形態と同様に、割り込み動作において書き込み動作及び消去動作を実行された場合に、分割書き込みの設定情報をメモリコントローラ２０に一時的に待避する。
【０４１９】
その結果、第３実施形態に係るメモリシステム１は、第２実施形態と同様に、書き込み動作における複数回の分割書き込みの間の割り込み処理として、書き込み動作や消去動作が実行することを許容することが出来る。
【０４２０】
さらに、第３実施形態に係るメモリシステム１では、ＳＬＣキャッシュが使用されるため、書き込みデータの再入力を要することなく分割書き込みの続きを実行する。
【０４２１】
従って、第３実施形態に係るメモリシステム１は、キャッシュ書き込みが実行された書き込みデータをメモリコントローラ２０が破棄することが出来るため、例えばメモリコントローラ２０のバッファメモリ２４の使用容量を節約することが出来る。
【０４２２】
［３−３］第３実施形態の変形例
第３実施形態では、閾値レベルに基づいた分割書き込みを実行する場合について説明したが、これに限定されない。例えば、第３実施形態において各分割書き込みを終了するトリガーとしては、第１及び第２実施形態と同様に、プログラムループ数や処理時間を使用することが出来る。
【０４２３】
図３１は、第３実施形態におけるプログラムループ数に基づいた分割書き込みの一例を示すフローチャートである。
【０４２４】
図３１に示すように、まずメモリシステム１は、図２７を用いて説明したように、ステップＳ５０におけるキャッシュ書き込みと、ステップＳ５１におけるキャッシュ読み出しとを実行する。
【０４２５】
その後、メモリシステム１は、プログラムループ数に基づいた分割書き込みを実行する（ステップＳ６０）。ステップＳ６０におけるコマンドシーケンスは、図３０を用いて説明した“Ａ”レベルの分割書き込みのコマンドシーケンスと同様である。ステップＳ６０における詳細な動作は、図１５を用いて説明したプログラムループ数に基づいた初回の分割書き込みと同様である。
【０４２６】
ステップＳ６０における分割書き込みが終了すると、メモリコントローラ２０は、ステップＳ２１のステータスリードを実行する。
【０４２７】
書き込み動作が終了していない場合（ステップＳ２２、ＮＯ）、メモリコントローラ２０は、ホスト機器３０から割り込み動作の指示が有るかどうかを確認する（ステップＳ１１）。
【０４２８】
ステップＳ１１の処理において、割り込み動作の指示が有る場合（ステップＳ１１、ＹＥＳ）、シーケンサ１４は、図２３を用いて説明したステップＳ４０の処理を実行する。
【０４２９】
ステップＳ４０の処理において、割り込み動作が読み出し動作である場合（ステップＳ４０、ＹＥＳ）、メモリコントローラ２０は、割り込み動作に対応する読み出し動作を半導体メモリ１０に実行させる（ステップＳ１２）。
【０４３０】
割り込み動作が読み出し動作では無い場合（ステップＳ４０、ＮＯ）、メモリコントローラ２０は、ステップＳ４１〜Ｓ４３の処理を実行して、分割書き込みの設定情報を半導体メモリ１０からメモリコントローラ２０に待避した後に割り込み動作を実行する。
【０４３１】
そして、メモリコントローラ２０は、ステップＳ５１と同様のキャッシュ読み出しを半導体メモリ１０に指示し、例えば２ページ分の書き込みデータをセンスアンプモジュール１７内のラッチ回路に復元させる（ステップＳ５３）。
【０４３２】
キャッシュ読み出しが終了した後に、メモリコントローラ２０は、ステップＳ４３の設定入力動作を実行し、メモリコントローラ２０に待避した分割書き込みの設定情報を、半導体メモリ１０内に復元する。その後、メモリコントローラ２０は、半導体メモリ１０にプログラムループ数に基づいた分割書き込みの続き、すなわち２回目以降の分割書き込みを実行させる（ステップＳ６１）。
【０４３３】
ステップＳ６１におけるコマンドシーケンスは、図３０を用いて説明した“Ｃ”レベルの分割書き込みのコマンドシーケンスと同様である。ステップＳ６１における詳細な動作は、図１５を用いて説明したプログラムループ数に基づいた２回目以降の分割書き込みと同様である。
【０４３４】
一方で、ステップＳ１１の処理において割り込み動作が無い場合と、ステップＳ１２の処理が終了した場合とのそれぞれにおいて、シーケンサ１４は、図１４を用いて説明したステップＳ２３の処理を実行する。つまり、シーケンサ１４は、例えば省略コマンドを使用して、プログラムループ数に基づいた分割書き込みの続きを実行する。
【０４３５】
ステップＳ２３又はＳ６１の処理が終了すると、メモリシステム１は、ステップＳ２１の処理に戻り、ステータスリードが実行される。第３実施形態におけるプログラムループ数に基づいた分割書き込みのその他の詳細な動作は、第１実施形態で図１４及び図１５を用いて説明した動作と同様のため、説明を省略する。
【０４３６】
図３２は、第３実施形態における処理時間に基づいた分割書き込みの一例を示すフローチャートである。図３２に示すように、第３実施形態における処理時間に基づいた分割書き込みは、図３１を用いて説明した第３実施形態におけるプログラムループ数に基づいた分割書き込みにおいて、各分割書き込みを終了するトリガーを処理時間に変更したものと同様である。
【０４３７】
具体的には、図３２のステップＳ６０がステップＳ７０に置き換えられ、図３２のステップＳ２３がステップＳ３１に置き換えられ、図２７のステップＳ６１がステップＳ７１に置き換えられている。
【０４３８】
ステップＳ７１においてメモリシステム１は、ステップＳ６１と同様のコマンドシーケンスによって、処理時間に基づいた２回目以降の分割書き込みを実行する。第３実施形態における処理時間に基づいた分割書き込みのその他の詳細な動作は、図３１を用いて説明した動作と、第１実施形態で図１６及び図１７を用いて説明した動作とを組み合わせてものと同様のため、説明を省略する。
【０４３９】
［４］第４実施形態
第４実施形態に係るメモリシステム１は、第１実施形態で説明したメモリシステム１に対して、半導体メモリ１０が分割書き込みに関するレジスタを複数有する。そして、第４実施形態に係るメモリシステム１は、第２及び第３実施形態における設定出力動作及び設定入力動作を省略する。以下に、第４実施形態に係るメモリシステム１について、第１〜第３実施形態と異なる点について説明する。
【０４４０】
［４−１］シーケンサ１４の構成
図３３は、第４実施形態における半導体メモリ１０の備えるシーケンサ１４の構成例を示している。第４実施形態においてシーケンサ１４は、図３３に示すように、進捗記録レジスタ６０Ａ及び６０Ｂ、ループ数レジスタ６１Ａ及び６１Ｂ、動作判別レジスタ６２Ａ及び６２Ｂ、並びにタイマ６３を含んでいる。
【０４４１】
つまり、第４実施形態においてシーケンサは、進捗記録レジスタ６０、ループ数レジスタ６１、及び動作判別レジスタ６２のそれぞれを複数有している。
【０４４２】
例えば、進捗記録レジスタ６０Ａ、ループ数レジスタ６１Ａ、及び動作判別レジスタ６２Ａは、現在の動作用に使用される。つまり、進捗記録レジスタ６０Ａ、ループ数レジスタ６１Ａ、及び動作判別レジスタ６２Ａは、第１〜第３実施形態のそれぞれで説明された進捗記録レジスタ６０、ループ数レジスタ６１、及び動作判別レジスタ６２と同様に使用される。
【０４４３】
一方で、進捗記録レジスタ６０Ｂ、ループ数レジスタ６１Ｂ、及び動作判別レジスタ６２Ｂは、動作の中断用に使用される。中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂのそれぞれは、例えば割り込み動作で書き込み動作が実行される場合に使用される。また、中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂのそれぞれは、例えば分割書き込みの設定を複数保持することも可能である。
【０４４４】
尚、以上の説明では、シーケンサ１４が現在の動作用と中断用との２組の進捗記録レジスタ６０、ループ数レジスタ６１、及び動作判別レジスタ６２を有している場合を例に挙げたが、これに限定されない。シーケンサ１４は、これらのレジスタを３組以上有していても良い。第４実施形態に係るメモリシステム１のその他の構成は、第１実施形態に係るメモリシステム１の構成と同様のため、説明を省略する。
【０４４５】
［４−２］書き込み動作
第４実施形態に係るメモリシステム１は、現在の動作用の各レジスタと中断用の各レジスタとを使用することによって、第１のセルユニットＣＵを選択した分割書き込みを実行している途中に、第２のセルユニットＣＵを選択した分割書き込みを実行する。
【０４４６】
以下では、現在の動作用のレジスタ６０Ａ、６１Ａ、及び６２Ａのみを使用した動作のことを、フォアグラウンドと称し、割り込み動作によって中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂを使用した動作のことを、バックグラウンドと称する。
【０４４７】
図３４は、第４実施形態に係るメモリシステム１における分割書き込みの一例を示すフローチャートである。尚、第４実施形態において、分割書き込みで使用されるトリガーとしては、閾値レベル、プログラムループ数、及び処理時間のうちいずれか１種類が使用されるものとする。
【０４４８】
図３４に示すように、まず、メモリシステム１は、フォアグラウンドで分割書き込みを実行する（ステップＳ８０）。ステップＳ８０の処理が終了した後に、メモリコントローラ２０は、ステップＳ１１の処理を実行し、割り込み動作の有無を確認する。
【０４４９】
割り込み動作が有る場合（ステップＳ１１、ＹＥＳ）、メモリコントローラ２０は、ステップＳ４０の処理を実行し、割り込み動作が読み出し動作であるかどうかを確認する。
【０４５０】
割り込み動作が読み出し動作である場合（ステップＳ４０、ＹＥＳ）、シーケンサ１４は、ステップＳ１２の処理を実行し、読み出し動作を実行する。
【０４５１】
割り込み動作が読み出し動作ではない場合（ステップＳ４０、ＮＯ）、シーケンサ１４は、バックグラウンドで割り込み動作を実行する（ステップＳ８１）。バックグラウンドの割り込み動作では、例えば書き込み動作や消去動作が実行される。
【０４５２】
また、半導体メモリ１０は、バックグラウンドで割り込み動作を実行する前に、フォアグラウンドの分割書き込みの設定情報は、中断用のレジスタ６０Ｂ、６１Ｂ、及び６２ＢＢに待避される。つまり、シーケンサ１４は、フォアグラウンドで実行された分割書き込みの設定情報を半導体メモリ１０内で保持した状態で、バックグラウンドの割り込み動作（例えば分割書き込み）を実行する。バックグラウンドで実行される分割書き込みの詳細については後述する。
【０４５３】
ステップＳ８１におけるバックグラウンドの割り込み動作が終了すると、メモリコントローラ２０は、中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂに保持されているフォアグラウンドの分割書き込みの設定情報を、それぞれ例えば現在の動作用のレジスタ６０Ａ、６１Ａ、及び６２Ａに復元する。それから、メモリコントローラ２０は、フォアグラウンドでステップＳ８０の続きの分割書き込みを実行する（ステップＳ８２）。
【０４５４】
一方で、割り込み動作が無い場合（ステップＳ１１、ＮＯ）、及びステップＳ１２の処理が終了した後に、メモリコントローラ２０は、ステップＳ１３の処理を実行し、ステップＳ８０の続きの分割書き込みを実行する。ステップＳ１３における分割書き込みは、引き続きフォアグラウンドで実行される。
【０４５５】
図３５は、第４実施形態に係るメモリシステム１がフォアグラウンドで実行する分割書き込みのコマンドシーケンスの一例を示している。尚、第４実施形態において参照される図面では、設定入力動作によって、半導体メモリ１０が通常書き込みのコマンドシーケンスで分割書き込みを実行する設定に変更されているものとする。
【０４５６】
図３５に示すように、例えばフォアグラウンドにおける分割書き込みのコマンドシーケンスは、通常書き込みのコマンドシーケンスと同様である。尚、コマンド“ｘｘｈ”が使用される場合には、例えばコマンド“０１ｈ”と“０２ｈ”とのそれぞれの前にコマンド“ｘｘｈ”が挿入される。
【０４５７】
また、フォアグラウンドにおける分割書き込みが実行されると、例えばステップＳ８２のようにバックグラウンドで割り込み動作が実行された後である場合、予めレジスタ６０Ｂ、６１Ｂ、及び６２Ｂに待避されていたフォアグラウンドの分割書き込みの設定情報（“ＦＧｉｎｆｏ”）を呼び出して、レジスタ６０Ａ、６１Ａ、及び６２Ａに反映させる。
【０４５８】
そして、フォアグラウンドにおける分割書き込みが終了すると、シーケンサ１４は、現在の動作用のレジスタ６０Ａ、６１Ａ、及び６２Ａに保持されている設定情報を、中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂに対しても反映する。すなわち、シーケンサ１４は、レジスタ６０Ｂ、６１Ｂ、及び６２Ｂに保持されたフォアグラウンドの分割書き込みの設定情報を更新する。
【０４５９】
図３６は、第４実施形態に係るメモリシステム１がバックグラウンドで実行する書き込み動作のコマンドシーケンスの一例を示している。
【０４６０】
図３６に示すように、バックグラウンドにおける分割書き込みのコマンドシーケンスでは、図３５を用いて説明したフォアグラウンドにおける分割書き込みのコマンドシーケンスに対して、コマンド“０１ｈ”とコマンド“０２ｈ”とのそれぞれの前にコマンド“ＢＧ”が追加されている。
【０４６１】
尚、コマンド“ｘｘｈ”が使用される場合には、例えばコマンド“０１ｈ”及び“ＢＧ”間と“０２ｈ”及び“ＢＧ”間、又は“ＢＧ”の前にコマンド“ｘｘｈ”が挿入される。このように、コマンドの順番は、適宜変更可能である。
【０４６２】
また、バックグラウンドにおける分割書き込みが実行されると、シーケンサ１４は、レジスタ６０Ｂ、６１Ｂ、及び６２Ｂからバックグラウンドの分割書き込みの設定情報（“ＢＧｉｎｆｏ”）を呼び出して、レジスタ６０Ａ、６１Ａ、及び６２Ａに反映させる。
【０４６３】
そして、バックグラウンドにおける分割書き込みが終了すると、シーケンサ１４は、現在の動作用のレジスタ６０Ａ、６１Ａ、及び６２Ａに保持されている設定情報を、中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂに対しても反映する。すなわち、シーケンサ１４は、レジスタ６０Ｂ、６１Ｂ、及び６２Ｂに保持されたバックグラウンドの分割書き込みの設定情報を更新する。
【０４６４】
図３７は、第４実施形態に係るメモリシステム１の書き込み動作のタイミングチャートの一例であり、フォアグラウンドの分割書き込みの間に、バックグラウンドの分割書き込みが挿入されている場合の動作を例示している。
【０４６５】
図３７に示す一例においてシーケンサ１４は、分割書き込みで使用されるトリガーとして閾値レベルを使用している。図３７に示された選択ワード線ＷＬselが対応する実際のワード線ＷＬは、フォアグラウンドの動作とバックグラウンドの動作とで異なっている。
【０４６６】
また、図３７には、現在の動作用のレジスタ６０Ａ、６１Ａ、及び６２Ａに対応するＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃが示されている。中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂにそれぞれ対応するＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃが示されている。中断用のレジスタ６０Ｂ、６１Ｂ、及び６２Ｂのそれぞれは、“ＦＧｉｎｆｏ”及び“ＢＧｉｎｆｏ”を含み、“ＦＧｉｎｆｏ”及び“ＢＧｉｎｆｏ”にそれぞれ対応する２組のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃが示されている。
【０４６７】
図３７に示すように、最初のフォアグラウンドの分割書き込みが実行される前において、現在の動作に対応するＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃには、それぞれ“３”、“９”及び“１”が設定されている。中断用且つ“ＦＧｉｎｆｏ”に対応するＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃには、それぞれ“３”、“１０”及び“０”が設定されている。中断用且つ“ＢＧｉｎｆｏ”に対応するＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃには、それぞれ“２”、“７”及び“０”が設定されている。
【０４６８】
まず、メモリコントローラ２０がフォアグラウンドの分割書き込みを半導体メモリ１０に指示することによって、半導体メモリ１０がレディ状態からビジー状態になる。
【０４６９】
シーケンサ１４は、フォアグラウンドの分割書き込みを実行する際に、まず“ＦＧｉｎｆｏ”を現在の動作用のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃに反映する。この時点で、例えばＰｃｏｍｐの数値が“３”である場合、すなわち進捗記録レジスタ６０Ｂに書き込み終了を示す数値が保持されていた場合、シーケンサ１４は、Ｐｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値をリセットしてプログラムループを開始する。
【０４７０】
本例においては、閾値レベルに基づいてフォアグラウンドの分割書き込みが終了し、半導体メモリ１０がビジー状態からレディ状態に遷移している。このフォアグラウンドの分割書き込みの処理時間がｔＰｒｏｇ（ＦＧ１）として示されている。
【０４７１】
フォアグラウンドの分割書き込み（ＦＧ１）が終了すると、シーケンサ１４は、分割書き込み終了時のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値を、“ＦＧｉｎｆｏ”に反映する。尚、ＬｏｏｐＮの数値については、例えば終了時の数値に対してインクリメントされた数値が反映される。
【０４７２】
次に、メモリコントローラ２０がバックグラウンドの分割書き込みを半導体メモリ１０に指示することによって、半導体メモリ１０がビジー状態になる。
【０４７３】
シーケンサ１４は、バックグラウンドの分割書き込みを実行する際に、まず“ＢＧｉｎｆｏ”を現在の動作用のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃに反映する。この時点で、例えばＰｃｏｍｐの数値が“３”である場合は、フォアグラウンドの分割書き込みと同様に、Ｐｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値がリセットされる。
【０４７４】
本例では、Ｐｃｏｍｐの数値が“３”ではないため、“ＢＧｉｎｆｏ”に基づいて、現在の動作用のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃの数値が、それぞれ“２”、“７”、及び“０”に設定される。
【０４７５】
そして、シーケンサ１４は、更新された現在の動作用のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値に基づいて、バックグラウンドの分割書き込みを実行する。
【０４７６】
本例においては、閾値レベルに基づいてバックグラウンドの分割書き込みが終了し、半導体メモリ１０がビジー状態からレディ状態に遷移している。このバックグラウンドの分割書き込みの処理時間がｔＰｒｏｇ（ＢＧ）として示されている。
【０４７７】
バックグラウンドの分割書き込み（ＢＧ）が終了すると、シーケンサ１４は、分割書き込み終了時のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃのそれぞれの数値を、“ＢＧｉｎｆｏ”に反映する。尚、ＬｏｏｐＮの数値については、フォアグラウンドの動作と同様に、例えば終了時の数値に対してインクリメントされた数値が反映される。
【０４７８】
次に、メモリコントローラ２０がバックグラウンドの分割書き込みを半導体メモリ１０に指示することによって、半導体メモリ１０がビジー状態になる。以下、同様に、シーケンサ１４は、フォアグラウンドの分割書き込みを実行する際に、まず“ＦＧｉｎｆｏ”を現在の動作用のＰｃｏｍｐ、ＬｏｏｐＮ、及びＰｐｒｏｃに反映し、フォアグラウンドの分割書き込み（ＦＧ２）を実行する。
【０４７９】
尚、フォアグラウンドで２回目以降の分割書き込みが実行される場合に使用されるコマンド“ＧＯ”と、バックグラウンドで２回目以降の分割書き込みが実行される場合のコマンド“ＧＯ”とは、異なるコマンドが使用される。例えば、第４実施形態に係るメモリシステム１は、フォアグラウンドに対応したコマンド“ＧＯ（例えばＧＯ１）”と、バックグラウンドに対応したコマンド“ＧＯ（例えばＧＯ２）”とを使用する。
【０４８０】
そして、第４実施形態における半導体メモリ１０は、コマンド“ＧＯ１”を受信した場合に“ＦＧｉｎｆｏ”を用いたフォアグラウンドの動作を実行し、コマンド“ＧＯ２”を受信した場合に“ＢＧｉｎｆｏ”を用いたバックグラウンドの動作を実行する。
【０４８１】
［４−３］第４実施形態の効果
以上で説明したように、第４実施形態に係るメモリシステム１は、割り込み動作に書き込み動作が実行された場合に、設定出力動作及び設定入力動作を使用することなく続きの分割書き込みを実行する。
【０４８２】
これにより、第４実施形態に係るメモリシステム１は、メモリコントローラ２０と半導体メモリ１０との間のやりとりを第２又は第３実施形態よりも減らすことが出来るため、分割書き込みの処理時間を抑制することが出来る。
【０４８３】
［５］第５実施形態
第５実施形態に係るメモリシステム１は、第１実施形態に係るメモリシステム１と同様の構成を有する。そして、第５実施形態に係るメモリシステム１は、２段階の書き込み動作を実行し、この２段階の書き込み動作に対して、第１〜第４実施形態で説明したような分割書き込みを適用する。以下に、第５実施形態に係るメモリシステム１について、第１〜第４実施形態と異なる点について説明する。
【０４８４】
［５−１］メモリシステム１の構成
図３８は、第５実施形態に係るメモリシステム１の構成例を示している。図３８に示すように、第５実施形態に係るメモリシステム１は、半導体メモリ１０−１、１０−２、１０−３、及び１０−４、メモリコントローラ２０、並びにＤＲＡＭ（Dynamic Random Access Memory）２８を備えている。
【０４８５】
半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれの構成は、例えば第１実施形態で説明した半導体メモリ１０と同様である。半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれは、メモリコントローラ２０に接続され、メモリコントローラ２０によって制御される。
【０４８６】
ＤＲＡＭ２８は、メモリコントローラ２０の外部記憶領域として使用される。例えば、ＤＲＡＭ２８は、ホスト機器３０から受信した書き込みデータを一時的に記憶する。尚、ＤＲＡＭ２８は、メモリコントローラ２０に内蔵されていても良い。
【０４８７】
第５実施形態に係るメモリシステム１のその他の構成は、第１実施形態に係るメモリシステム１と同様のため、説明を省略する。
【０４８８】
尚、第５実施形態に係るメモリシステム１が備える半導体メモリ１０の個数はあくまで一例であり、半導体メモリ１０の個数は任意の個数に設計され得る。
【０４８９】
［５−２］書き込み動作
第５実施形態に係るメモリシステム１は、２段階の書き込み動作を実行する。この２段階の書き込み動作は、書き込み動作において第１〜第４実施形態で説明したような複数回の分割書き込みを実行することとは異なっている。
【０４９０】
以下では、第５実施形態における１段階目の書き込み動作のことを第１書き込みと称し、２段階目の書き込み動作のことを第２書き込みと称する。
【０４９１】
第１書き込みと第２書き込みとのそれぞれでは、同じ書き込みデータが使用される。例えば、あるセルユニットＣＵに対して２ページデータを書き込む場合、同じ２ページデータを用いて、当該セルユニットＣＵに対する第１書き込みと第２書き込みとが順に実行される。
【０４９２】
また、例えば第１書き込みでは、図３を用いて説明したベリファイ電圧ＡＶ、ＢＶ、及びＣＶよりもそれぞれ低いベリファイ電圧ＡＶ’、ＢＶ’、及びＣＶ’が使用される。ベリファイ電圧ＡＶ’、ＢＶ’、及びＣＶ’は、それぞれ“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルの書き込みデータに対応している。第２書き込みでは、例えば通常書き込みと同様に、ベリファイ電圧ＡＶ、ＢＶ、及びＣＶが使用される。
【０４９３】
例えば、第１書き込みにおけるプログラム電圧のステップアップ幅ＤＶＰＧＭは、第１書き込みにおけるプログラム電圧のステップアップ幅ＤＶＰＧＭよりも大きく設定される。第１書き込みにおけるプログラム電圧ＶＰＧＭの初期値と、第２書き込みにおけるプログラム電圧ＶＰＧＭの初期値とは異なっていても良く、例えばプログラム電圧ＶＰＧＭの初期値は、第２書き込みの方が第１書き込みよりも低く設定される。
【０４９４】
図３９は、第５実施形態に係るメモリシステム１における（ａ）書き込み前、（ｂ）第１書き込み後、及び（ｃ）第２書き込み後のそれぞれの閾値分布の一例を示している。
【０４９５】
図３９に示すように、（ａ）書き込み前において、メモリセルトランジスタＭＴの閾値電圧は、消去状態に対応する“ＥＲ”レベルに分布している。
【０４９６】
（ｂ）第１書き込み後において、メモリセルトランジスタＭＴの閾値電圧は、“ＥＲ”レベル、“Ａ’”レベル、“Ｂ’”レベル、及び“Ｃ’”レベルに分布する。“Ａ’”レベル、“Ｂ’”レベル、及び“Ｃ’”レベルのそれぞれの分布の中心の電圧は、それぞれ“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルのそれぞれの分布の中心よりも低い。また、“Ａ’”レベル、“Ｂ’”レベル、及び“Ｃ’”レベルのそれぞれの閾値分布は、例えば“Ａ’”レベル、“Ｂ’”レベル、及び“Ｃ’”レベルよりも広がっている。
【０４９７】
（ｃ）第２書き込み後において、メモリセルトランジスタＭＴの閾値電圧は、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルに分布する。具体的には、第２書き込み後の閾値分布では、第１書き込み後において“ＥＲ”レベルに含まれていたメモリセルトランジスタＭＴによって“ＥＲ”レベルが形成され、“Ａ’”レベルに含まれていたメモリセルトランジスタＭＴによって“Ａ”レベルが形成され、“Ｂ’”レベルに含まれていたメモリセルトランジスタＭＴによって“Ｂ”レベルが形成され、“Ｃ’”レベルに含まれていたメモリセルトランジスタＭＴによって“Ｃ”レベルが形成される。
【０４９８】
図４０は、第５実施形態に係るメモリシステム１における第１書き込みのコマンドシーケンスの一例を示している。
【０４９９】
図４０に示すように、第１書き込みのコマンドシーケンスは、図１１を用いて説明した通常書き込みのコマンドシーケンスに対して、コマンド“０１ｈ”とコマンド“０２ｈ”とのそれぞれの前にコマンド“ｚｘｈ”が追加されたものと同様である。コマンド“ｚｘｈ”は、半導体メモリ１０に１段階目の書き込み動作（第１書き込み）を指示するコマンドである。
【０５００】
半導体メモリ１０がコマンド“１０ｈ”を受信してレディ状態からビジー状態に遷移すると、シーケンサ１４は受信したコマンドＣＭＤと、アドレス情報ＡＤＤと、下位ページの書き込みデータと、上位ページの書き込みデータとに基づいて、第１書き込みを実行する。
【０５０１】
第１書き込みにおける詳細な動作は、図１１を用いて説明した通常書き込みにおいて、使用されるプログラム電圧及びベリファイ電圧が変更されたものと同様のため、説明を省略する。図４０では、半導体メモリ１０が第１書き込みを実行することによりビジー状態になっている時間が、ｔＰｆｏｇｇｙとして示されている。
【０５０２】
図４１は、第５実施形態に係るメモリシステム１における第２書き込みのコマンドシーケンスの一例を示している。
【０５０３】
図４１に示すように、第２書き込みのコマンドシーケンスは、図１１を用いて説明した通常書き込みのコマンドシーケンスに対して、コマンド“０１ｈ”とコマンド“０２ｈ”とのそれぞれの前にコマンド“ｚｙｈ”が追加されものと同様である。コマンド“ｚｙｈ”は、半導体メモリ１０に２段階目の書き込み動作（第２書き込み）を指示するコマンドである。
【０５０４】
半導体メモリ１０がコマンド“１０ｈ”を受信してレディ状態からビジー状態に遷移すると、シーケンサ１４は受信したコマンドＣＭＤと、アドレス情報ＡＤＤと、下位ページの書き込みデータと、上位ページの書き込みデータとに基づいて、第２書き込みを実行する。
【０５０５】
第２書き込みにおける詳細な動作は、図１１を用いて説明した通常書き込みと同様のため、説明を省略する。図４１では、半導体メモリ１０が第２書き込みを実行することによりビジー状態になっている時間が、ｔＰｆｉｎｅとして示されている。時間ｔＰｆｉｎｅは、時間ｔＰｆｏｇｇｙよりも長い。
【０５０６】
図４２は、第５実施形態に係るメモリシステム１における第１書き込み及び第２書き込みの書き込み順番の一例を示し、半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれにおいて、１つのブロックＢＬＫを選択した書き込み動作をワード線ＷＬ０から順に実行する場合を例示している。図４２に示された“Ｆｏｇｇｙ”は、第１書き込みに対応し、“Ｆｉｎｅ”は、第２書き込みに対応している。
【０５０７】
図４２に示すように、まずメモリコントローラ２０は、半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれのワード線ＷＬ０を選択した第１書き込みを順に実行する（“１”〜“４”）。
【０５０８】
次に、メモリコントローラ２０は、半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれのワード線ＷＬ１を選択した第１書き込みを順に実行する（“５”〜“８”）。
【０５０９】
次に、メモリコントローラ２０は、半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれのワード線ＷＬ０を選択した第２書き込みを順に実行する（“９”〜“１２”）。
【０５１０】
次に、メモリコントローラ２０は、半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれのワード線ＷＬ２を選択した第１書き込みを順に実行する（“１３”〜“１６”）。
【０５１１】
次に、メモリコントローラ２０は、半導体メモリ１０−１、１０−２、１０−３、及び１０−４のそれぞれのワード線ＷＬ１を選択した第２書き込みを順に実行する（“１７”〜“２０”）。
【０５１２】
以降も同様に、第１書き込み及び第２書き込みが交互に実行される。尚、以上で説明した第１書き込み及び第２書き込みの順番は、あくまで一例であり、これに限定されない。
【０５１３】
以上で説明した第１書き込み及び第２書き込みには、第１〜第４実施形態で説明したような分割書き込みを適用することも可能である。第５実施形態に係るメモリシステム１は、例えば第２書き込みに対して分割書き込みを適用する。
【０５１４】
図４３は、第５実施形態に係るメモリシステム１における第１書き込み及び第２書き込みの処理時間（書き込み時間）の一例を示している。
【０５１５】
図４３に示すように、例えば第１書き込み及び第２書き込みの処理時間は、それぞれ３ｍｓ及び５ｍｓとなる。一方で、第２書き込みに分割書き込みが適用され、第２書き込みが２回の分割書き込みに分割された場合、第２書き込みの処理時間は、例えば３ｍｓ＋３ｍｓとなる。
【０５１６】
尚、第１書き込みにおいて分割書き込みを適用する場合のコマンドシーケンスは、設定入力動作によって半導体メモリ１０の動作設定を変更された場合には、図４０を用いて説明した第１書き込みのコマンドシーケンスと同様になる。
【０５１７】
第１書き込みにおいてコマンド“ｘｘｈ”を使用する場合には、例えばコマンド“０１ｈ”及び“ｚｘｈ”間と“０２ｈ”及び“ｚｘｈ”間にコマンド“ｘｘｈ”が挿入される。又は、“ｚｘｈ”の前にコマンド“ｘｘｈ”が挿入される。
【０５１８】
また、第２書き込みにおいて分割書き込みを適用する場合のコマンドシーケンスは、設定入力動作によって半導体メモリ１０の動作設定を変更された場合には、図４１を用いて説明した第２書き込みのコマンドシーケンスと同様になる。
【０５１９】
第２書き込みにおいてコマンド“ｘｘｈ”を使用する場合には、例えばコマンド“０１ｈ”及び“ｚｙｈ”間と“０２ｈ”及び“ｚｙｈ”間にコマンド“ｘｘｈ”が挿入される。又は、“ｚｙｈ”の前にコマンド“ｘｘｈ”が挿入される。
【０５２０】
［５−３］第５実施形態の効果
以上で説明したように、第５実施形態に係るメモリシステム１は、２段階の書き込み動作を実行し、例えば２段階目の書き込み動作に対して第１〜第４実施形態で説明した分割書き込みを適用することが出来る。
【０５２１】
図４４は、第５実施形態における書き込み動作の比較例を示し、Ｎ個の半導体メモリ１０のチップを備えるメモリシステム１の書き込み動作におけるメモリコントローラ２０の動作を例示している。図４４に示された“ｔＣＭＤ”は、メモリコントローラ２０が半導体メモリ１０にコマンドを送信する期間に対応し、“１ｓｔＰｒｏｇ”は、第１書き込みの処理期間に対応し、“２ｎｄｐｒｏｇ”は、第２書き込みの処理期間に対応している。
【０５２２】
例えば、２段階の書き込み動作において分割書き込みが適用されない場合、１段階目の書き込み動作（第１書き込み）と２段階目の書き込み動作（第２書き込み）のそれぞれの処理時間は、２段階目の書き込み動作の方が長くなる。
【０５２３】
この場合、図４４に示すように、メモリコントローラ２０は、Ｎ個の半導体メモリ１０（チップ“１”〜“Ｎ”）に対して順に第２書き込みを指示した後に、チップ“１”に対する第１書き込みを指示しようとすると、チップ“１”における第２書き込みが終了していないことがある（“第２書き込み未完了”）。
【０５２４】
このとき、メモリコントローラ２０は、例えばチップ“１”における第２書き込みが終了した後にチップ“１”に対する第１書き込みを指示するため、第２書き込みの終了を待つための遅延時間が発生してしまうことがある。
【０５２５】
これに対して、第５実施形態に係るメモリシステム１は、２段階の書き込み動作を実行する場合に、第２書き込みに分割書き込みを適用することによって、第１書き込み第２書き込みとの処理時間をある程度揃えることが出来る。
【０５２６】
これにより、第５実施形態に係るメモリシステム１は、第１書き込みと第２書き込みとが切り替わるタイミングで遅延が発生することを抑制することが出来、書き込み動作全体の速度低下を抑制することが出来る。
【０５２７】
［６］その他
実施形態のメモリシステムは、半導体メモリと、半導体メモリを制御するメモリコントローラとを含む。半導体メモリは、複数のメモリセルと、ワード線と、シーケンサとを含む。複数のメモリセルは、各々が閾値電圧に基づいて複数ビットのデータを記憶し、複数ビットのデータとして第１データを記憶する場合は第１閾値電圧＜例えば、図３、“Ａ”レベル＞を有するように設定され、複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧＜例えば、図３、“Ｂ”レベル＞を有するように設定される。ワード線は、複数のメモリセルに接続される。シーケンサは、書き込み動作においてプログラム動作とベリファイ動作とを含むプログラムループを実行する。メモリコントローラは、書き込みコマンドと、書き込みデータとを半導体メモリに送信し、シーケンサは、書き込みコマンドに基づいて、ワード線を選択した書き込みデータの第１書き込み動作＜例えば、図１２、分割書き込み（“Ａ”レベル）＞を実行する。第１書き込み動作においてシーケンサは、プログラムループを繰り返し実行し、第２データのベリファイにパスする前に、第１データのベリファイにパスしたことに基づいて第１書き込み動作を終了する＜例えば、図１３、“Ａ”パス＞。メモリコントローラは、第１書き込み動作が終了した後に、第１コマンド＜例えば、図１３、“ＧＯ”＞を半導体メモリに送信し、シーケンサは、第１コマンドに基づいて書き込みデータの第２書き込み動作＜例えば、図１２、分割書き込み（“Ｂ”レベル）＞を実行する。
【０５２８】
これにより、実施形態のメモリシステムは、待ち時間を改善することが出来る。
【０５２９】
上記実施形態では、同じ書き込みデータを用いた２回目以降の分割書き込みにおいて、プログラムループ数をインクリメントして実行する場合について説明したが、これに限定されない。
【０５３０】
例えば、２回目以降の分割書き込みにおける初回のプログラムループでは、プログラムループ数のインクリメントが行われなくても良い。また、２回目以降の分割書き込みにおける初回のプログラムループでは、プログラムループ数が、直近に実行された分割書き込みにおける最後のプログラムループ数よりも小さい数値に巻き戻されても良い。
【０５３１】
図４５は、図１３を用いて説明した分割書き込みのタイミングチャートにおいて、２回目以降の分割書き込みにおける初回のプログラムループ数のインクリメントが行われない場合の動作を例示している。
【０５３２】
図４５に示すように、“Ａ”レベルの分割書き込み後のＬｏｏｐＮの数値には“３”が設定されている。これに対して、シーケンサ１４は、“Ｂ”レベルの分割書き込みにおいて、初回のＬｏｏｐＮのインクリメントをせずに、同じ数値“３”を維持してプログラムループを開始している。つまり、“Ａ”レベルの分割書き込みにおける最後のプログラムループのプログラム電圧と、“Ｂ”レベルの分割書き込みにおける最初のプログラムループのプログラム電圧とが同じになっている。
【０５３３】
同様に、“Ｂ”レベルの分割書き込み後のＬｏｏｐＮの数値には“６”が設定されている。これに対して、シーケンサ１４は、“Ｃ”レベルの分割書き込みにおいて、初回のＬｏｏｐＮのインクリメントをせずに、同じ数値“６”を維持してプログラムループを開始している。つまり、“Ｂ”レベルの分割書き込みにおける最後のプログラムループのプログラム電圧と、“Ｃ”レベルの分割書き込みにおける最初のプログラムループのプログラム電圧とが同じになっている。
【０５３４】
図４６は、図１３を用いて説明した分割書き込みのタイミングチャートにおいて、２回目以降の分割書き込みにおける初回のプログラムループ数が巻き戻される場合の動作を例示している。
【０５３５】
図４６に示すように、“Ａ”レベルの分割書き込み後のＬｏｏｐＮの数値には“３”が設定されている。これに対して、シーケンサ１４は、“Ｂ”レベルの分割書き込みにおいて、初回のＬｏｏｐＮのインクリメントをせずに、“３”から巻き戻された数値“２”を用いてプログラムループを開始している。つまり、“Ｂ”レベルの分割書き込みにおける最初のプログラムループのプログラム電圧が、“Ａ”レベルの分割書き込みにおける最後のプログラムループのプログラム電圧よりも低くなっている。
【０５３６】
同様に、“Ｂ”レベルの分割書き込み後のＬｏｏｐＮの数値には“５”が設定されている。これに対して、シーケンサ１４は、“Ｃ”レベルの分割書き込みにおいて、初回のＬｏｏｐＮのインクリメントをせずに、“５”から巻き戻された数値“４”を用いてプログラムループを開始している。つまり、“Ｃ”レベルの分割書き込みにおける最初のプログラムループのプログラム電圧と、“Ｂ”レベルの分割書き込みにおける最後のプログラムループのプログラム電圧よりも低くなっている。
【０５３７】
尚、図４５及び図４６をそれぞれ用いて説明した動作は、プログラムループ数に基づいた分割書き込みや、処理時間に基づいた分割書き込みにおいても適用することが可能である。図４６では、続く分割書き込みにおいてＬｏｏｐＮの数値が“１”だけ巻き戻される場合が例示されているが、ＬｏｏｐＮが巻き戻される数値は任意の数値に設定され得る。
【０５３８】
また、図４５及び図４６をそれぞれ用いて説明した動作では、ＬｏｏｐＮの数値に基づいて２回目以降の分割書き込みにおけるプログラム電圧を調整した場合を例に挙げたが、これに限定されない。例えば、シーケンサ１４は、ＬｏｏｐＮを上記実施形態と同様に変化させ、プログラム電圧の計算式を２回目以降の分割書き込みにおいて変更しても良い。
【０５３９】
上記実施形態では、同じ書き込みデータを用いた２回目以降の分割書き込みにおいて、シーケンサ１４が動作判別レジスタ６２の数値（Ｐｐｒｏｃ）に基づいて、始めにプログラム動作を実行するか、ベリファイ動作を実行するかを決定する場合について説明したが、これに限定されない。
【０５４０】
例えば、２回目以降の分割書き込みにおいて、シーケンサ１４は、強制的にベリファイ動作から開始するように動作しても良い。
【０５４１】
図４７は、図１３を用いて説明した分割書き込みのタイミングチャートにおいて、２回目以降の分割書き込みにおける初回のプログラムループでベリファイ動作から実行する場合の動作を例示している。
【０５４２】
図４７に示すように、“Ａ”レベルの分割書き込みにおける最後のプログラムループによって、Ｐｐｒｏｃの数値には“１”が設定される。これに対してシーケンサ１４は、例えば“Ａ”レベルの分割書き込みを終了するタイミングで、Ｐｐｒｏｃの数値を“０”に変更する。このタイミングでＰｐｒｏｃの数値が“０”に変更された場合に、シーケンサ１４は、“Ｂ”レベルの分割書き込みにおける最初のプログラムループにおいて、プリベリファイを実行する。つまり、シーケンサ１４は、Ｐｐｒｏｃをフラグとして使用することによって、分割書き込みの冒頭でベリファイ動作を強制的に実行することが出来る。
【０５４３】
尚、シーケンサ１４がプリベリファイを実行する条件は、任意の条件に設定することが可能である。例えば、シーケンサ１４は、２回目以降の全ての分割書き込みにおいてプリベリファイを実行するように動作しても良いし、特定の分割書き込みにおいてプリベリファイを実行するように動作しても良い
例えば、“Ｂ”レベルの分割書き込みにおいてプリベリファイが実行された場合、既に“Ｂ”レベルのベリファイにパスしていたメモリセルトランジスタＭＴに対するオーバープログラムが抑制される。つまり、メモリシステム１は、分割書き込みの冒頭でプリベリファイを実行することによって、閾値分布の広がりを抑制することが出来る。
【０５４４】
尚、図４７を用いて説明した動作は、プログラムループ数に基づいた分割書き込みや、処理時間に基づいた分割書き込みにおいても適用することが可能である。
【０５４５】
第２〜第４実施形態では、例えば図２３のステップＳ４２や、図３４のステップＳ８１で実行される割り込み動作として、書き込み動作及び消去動作を一例として挙げたが、これに限定されない。
【０５４６】
例えば、ステップＳ４２及びＳ８１のそれぞれの処理において、ラッチ回路ＬＤＬ及びＵＤＬを使用する読み出し動作が実行されても良い。この場合、シーケンサ１４は、例えばステップＳ４０及び４５のそれぞれの処理において、ラッチ回路ＸＤＬのみを使用する読み出し動作であるかどうかを確認する。
【０５４７】
また、第２及び第３実施形態で説明した書き込み動作では、割り込み動作を実行する前にその割り込み動作が読み出し動作であるかどうかを確認したが、この確認動作は省略されても良い。具体的には、例えば第２実施形態で図２３を用いて説明した書き込み動作において、ステップＳ４０及びＳ４５の処理が省略されても良い。
【０５４８】
この場合、ステップＳ４２における割り込み動作では、書き込み動作及び消去動作だけでなく、読み出し動作も実行され得る。メモリシステム１は、このようにステップＳ４０及びＳ４５の処理を省略することによって、シーケンサ１４の制御をより簡潔にすることが出来る。さらに、ステップＳ４２で割り込み動作として実行される読み出し動作では、ラッチ回路ＬＤＬ及びＵＤＬを使用することが可能になる。
【０５４９】
同様に、第２実施形態で図２７及び図２８を用いて説明した書き込み動作や、第３実施形態で図２９、図３１、及び図３２を用いて説明した書き込み動作についても、ステップＳ４０やステップＳ４５の処理が省略されても良い。
【０５５０】
上記実施形態で説明した各種コマンドシーケンスにおける、コマンド“ｘｘｈ”、“ｙｙｈ”、“ＢＧ”、“ｚｘｈ”、及び“ｚｙｈ”等のコマンドは、設定入力動作により半導体メモリ１０の設定を変更することによって省略されても良いし、これらのコマンドを同時に使用する場合には順番が適宜入れ替えられても良い。また、“ｘｘｈ”、“ｙｙｈ”、“ＢＧ”等のコマンドには、それぞれ任意の数値（コマンド）を割り当てることが可能である。
【０５５１】
上記実施形態では、通常書き込み及び分割書き込みのそれぞれにおいて、進捗記録レジスタ６０、ループ数レジスタ６１、及び動作判別レジスタ６２を使用した場合を例に説明したが、これに限定されない。例えば、各レジスタは、書き込み動作の分割のトリガーに関連しない場合には省略されても良い。
【０５５２】
上記実施形態では、書き込み動作において、１つのセルユニットＣＵに対して２ページデータを記憶させるＭＬＣ（Multi-Level Cell）方式が使用される場合を例に説明したが、これに限定されない。例えば、１つのセルユニットに対して３ページ以上のデータを記憶させる場合においても、上記実施形態で説明した動作を実行することが可能である。
【０５５３】
上記実施形態では、半導体メモリ１０の読み出し動作及び書き込み動作について例示したが、これらの動作時に選択ワード線ＷＬselに印加される電圧は、ドライバ回路１５とロウデコーダモジュール１６との間の信号線の電圧に基づいて見積もられても良い。
【０５５４】
本明細書において“接続”とは、電気的に接続されている事を示し、例えば間に別の素子を介することを除外しない。また、本明細書において“オフ状態”とは、対応するトランジスタのゲートに当該トランジスタの閾値電圧未満の電圧が印加されていることを示し、例えばトランジスタのリーク電流のような微少な電流が流れることを除外しない。
【０５５５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０５５６】
１…メモリシステム、１０…半導体メモリ、１１…メモリセルアレイ、１２…コマンドレジスタ、１３…アドレスレジスタ、１４…シーケンサ、１５…ドライバ回路、１６…ロウデコーダモジュール、１７…センスアンプモジュール、１８…ステータスレジスタ、２０…メモリコントローラ、２１…ホストインターフェイス回路、２２…ＣＰＵ、２３…ＲＡＭ、２４…バッファメモリ、２５…ＥＣＣ回路、２６…ＮＡＮＤインターフェイス回路、３０…ホスト機器、６０…進捗記録レジスタ、６１…ループ数レジスタ、６２…動作判別レジスタ、６３…タイマ、ＢＬＫ…ブロック、ＳＵ…ストリングユニット、ＭＴ…メモリセルトランジスタ、ＳＴ１，ＳＴ２…選択トランジスタ、ＢＬ…ビット線、ＷＬ…ワード線、ＳＧＤ，ＳＧＳ…選択ゲート線
【図１】
2019169205.tif 000003
【図２】
2019169205.tif 000004
【図３】
2019169205.tif 000005
【図４】
2019169205.tif 000006
【図５】
2019169205.tif 000007
【図６】
2019169205.tif 000008
【図７】
2019169205.tif 000009
【図８】
2019169205.tif 000010
【図９】
2019169205.tif 000011
【図１０】
2019169205.tif 000012
【図１１】
2019169205.tif 000013
【図１２】
2019169205.tif 000014
【図１３】
2019169205.tif 000015
【図１４】
2019169205.tif 000016
【図１５】
2019169205.tif 000017
【図１６】
2019169205.tif 000018
【図１７】
2019169205.tif 000019
【図１８】
2019169205.tif 000020
【図１９】
2019169205.tif 000021
【図２０】
2019169205.tif 000022
【図２１】
2019169205.tif 000023
【図２２】
2019169205.tif 000024
【図２３】
2019169205.tif 000025
【図２４】
2019169205.tif 000026
【図２５】
2019169205.tif 000027
【図２６】
2019169205.tif 000028
【図２７】
2019169205.tif 000029
【図２８】
2019169205.tif 000030
【図２９】
2019169205.tif 000031
【図３０】
2019169205.tif 000032
【図３１】
2019169205.tif 000033
【図３２】
2019169205.tif 000034
【図３３】
2019169205.tif 000035
【図３４】
2019169205.tif 000036
【図３５】
2019169205.tif 000037
【図３６】
2019169205.tif 000038
【図３７】
2019169205.tif 000039
【図３８】
2019169205.tif 000040
【図３９】
2019169205.tif 000041
【図４０】
2019169205.tif 000042
【図４１】
2019169205.tif 000043
【図４２】
2019169205.tif 000044
【図４３】
2019169205.tif 000045
【図４４】
2019169205.tif 000046
【図４５】
2019169205.tif 000047
【図４６】
2019169205.tif 000048
【図４７】
2019169205.tif 000049