(57)【特許請求の範囲】
【請求項１】
メモリセルと、
第１データを保持可能な第１キャッシュと、
第２データを保持可能な第２キャッシュと、
第１コマンドに従って前記メモリセルに前記第１データおよび前記第２データを書き込む書き込み動作を行う制御回路と、を備え、
前記書き込み動作は第１動作および第２動作を含み、
前記制御回路は、
第１電圧を用いて前記第１動作を開始し、
前記第１電圧より高い第２電圧を用いて前記第２動作を開始し、
前記第１動作中に第２コマンドが受信されると第１状態の信号を出力し、
前記第２動作中に前記第２コマンドが受信されると前記第１状態と異なる第２状態の前記信号を出力し、
前記第１データおよび前記第２データは、前記第１動作が終了するまで前記第１キャッシュおよび前記第２キャッシュにそれぞれ保持され、
前記第１データは、前記第２動作の途中で前記第１キャッシュから消去される
ことを特徴とする半導体記憶装置。
【請求項２】
前記制御回路は、
前記第１動作が終了すると、前記信号を前記第１状態から前記第２状態へと変化させる
ことを特徴とする請求項１の半導体記憶装置。
【請求項３】
前記制御回路は、
前記第１動作中に前記第２コマンドが受信されると、前記第１動作が終了するまで前記第１動作を継続し、前記第１動作の終了後に前記書き込み動作を中断する
ことを特徴とする請求項１の半導体記憶装置。
【請求項４】
前記制御回路が前記第１動作の終了後に前記書き込み動作を中断した後、前記書き込み動作を再開する前に、中断された前記書き込み動作により書き込まれたデータの読み出しを指示するコマンドを受信する
ことを特徴とする請求項３の半導体記憶装置。
【請求項５】
メモリセル、第１データを保持可能な第１キャッシュ、第２データを保持可能な第２キャッシュ、及び前記メモリセルを制御する制御回路、を含む半導体記憶装置と、
前記半導体記憶装置を制御するメモリコントローラと、
前記メモリコントローラを制御するホスト機器と、を備え、
前記メモリコントローラは、
第１動作および第２動作を含む、前記メモリセルに前記第１データおよび前記第２データを書き込む書き込み動作を指示する第１コマンドを前記半導体記憶装置に送信し、
前記ホスト機器からの指示に基づいて、第２コマンドを前記半導体記憶装置に送信し、
前記制御回路は、
第１電圧を用いて前記第１動作を開始し、前記第１電圧より高い第２電圧を用いて前記第２動作を開始し、
前記第１動作中に前記第２コマンドが受信されると第１状態の信号を前記メモリコントローラに送信し、
前記第２動作中に前記第２コマンドが受信されると前記第１状態と異なる第２状態の前記信号を前記メモリコントローラに送信し、
前記第１データおよび前記第２データは、前記第１動作が終了するまで前記第１キャッシュおよび前記第２キャッシュにそれぞれ保持され、
前記第１データは、前記第２動作の途中で前記第１キャッシュから消去される
ことを特徴とするメモリシステム。
【請求項６】
前記メモリコントローラは、
前記書き込み動作の中断の原因が生じたときに前記第２コマンドを送信する
ことを特徴とする請求項５のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
メモリセルが３次元に配列されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１０３０１０号公報
【特許文献２】特開２００７−２０７３３３号公報
【特許文献３】特開２０１１−１２９１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
システム全体の性能向上が可能な半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
一実施形態にかかる半導体記憶装置は、メモリセルと、前記メモリセルに対し、第１コマンドに従って書き込み動作を行う制御回路と、を備える。前記書き込み動作は第１動作および第２動作を含む。前記制御回路は、第１電圧を用いて前記第１動作を開始し、前記第１電圧より高い第２電圧を用いて前記第２動作を開始し、前記第１動作中に第２コマンドが受信されると第１状態の信号を出力し、前記第２動作中に前記第２コマンドが受信されると前記第１状態と異なる第２状態の前記信号を出力する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムのブロック図である。
【図２】第１実施形態に係る半導体記憶装置のブロック図である。
【図３】第１実施形態に係る半導体記憶装置のメモリセルアレイの回路図である。
【図４】第１実施形態に係る半導体記憶装置のセンスユニットのブロック図である。
【図５】第１実施形態に係る半導体記憶装置における書き込み動作時の閾値分布の変化を示す。
【図６】第１実施形態に係る半導体記憶装置における書き込み動作時のワード線電圧の印加回数と印加電圧の関係および書き込み動作のフローを示す。
【図７】第１実施形態に係る半導体記憶装置における書き込み動作時のキャッシュの状態を示す。
【図８】第１実施形態に係る半導体記憶装置における書き込み動作時のキャッシュの状態を示す。
【図９】第１実施形態に係る半導体記憶装置における書き込み動作時のキャッシュの状態を示す。
【図１０】第１実施形態に係る半導体記憶装置におけるデータ書き込み動作時の各種信号のタイミングチャートである。
【図１１】第１実施形態に係る半導体記憶装置におけるデータ書き込み動作時の各種信号のタイミングチャートである。
【図１２】第１実施形態に係る半導体記憶装置におけるデータ書き込み動作時の各種信号のタイミングチャートである。
【図１３】第１実施形態に係る半導体記憶装置における第１動作時のメモリコントローラと半導体記憶装置とのタスク相関図である。
【図１４】第１実施形態に係る半導体記憶装置における第１動作時の各種信号のタイミングチャートである。
【図１５】第１実施形態に係る半導体記憶装置における第２動作時の各種信号のタイミングチャートである。
【図１６】第１実施形態の変形例に係る半導体記憶装置における書き込み動作時の閾値分布の変化を示すグラフである。
【図１７】第１実施形態の変形例に係る半導体記憶装置における書き込み動作時の各種信号のタイミングチャートである。
【図１８】第１実施形態の変形例に係る半導体記憶装置における書き込み動作時の各種信号のタイミングチャートである。
【図１９】第２実施形態に係る半導体記憶装置のブロック図である。
【図２０】第２実施形態に係る半導体記憶装置における第１動作時のメモリコントローラと半導体記憶装置とのタスク相関図である。
【図２１】第２実施形態に係る半導体記憶装置における書き込み動作のフローチャートである。
【図２２】第２実施形態に係る半導体記憶装置における第２動作時のメモリコントローラと半導体記憶装置とのタスク相関図である。
【図２３】第２実施形態の変形例に係る半導体記憶装置における第２動作時のメモリコントローラと半導体記憶装置とのタスク相関図である。
【発明を実施するための形態】
【０００７】
一実施形態にかかる半導体記憶装置は、メモリセルと、第１データを保持可能な第１キャッシュと、第２データを保持可能な第２キャッシュと、第１コマンドに従って前記メモリセルに前記第１データおよび前記第２データを書き込む書き込み動作を行う制御回路と、を備える。前記書き込み動作は第１動作および第２動作を含む。前記制御回路は、第１電圧を用いて前記第１動作を開始し、前記第１電圧より高い第２電圧を用いて前記第２動作を開始し、前記第１動作中に第２コマンドが受信されると第１状態の信号を出力し、前記第２動作中に前記第２コマンドが受信されると前記第１状態と異なる第２状態の前記信号を出力する。前記第１データおよび前記第２データは、前記第１動作が終了するまで前記第１キャッシュおよび前記第２キャッシュにそれぞれ保持され、前記第１データは、前記第２動作の途中で前記第１キャッシュから消去される。
【０００８】
実施形態に係る半導体記憶装置について、図面を参照して以下に説明する。図面において、同一部分には同一の参照符号を付す。
【０００９】
＜第１実施形態＞
半導体記憶装置として、３次元積層型のＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【００１０】
（１）半導体記憶装置の構成
［メモリシステム］
第１実施形態に係るＮＡＮＤ型フラッシュメモリ１００を含むメモリシステム１０の構成の例について、図１を用いて説明する。
【００１１】
図１に示されるように、メモリシステム１０は、例えば複数のＮＡＮＤ型フラッシュメモリ１００、１つのメモリコントローラ２００、及び１つのホスト機器３００を備える。図および以下の説明は、ＮＡＮＤ型フラッシュメモリ１００（１００＿０、１００
１）が２つの例に基づく。１つまたは３つ以上のメモリ１００がメモリコントローラ２００に接続されもよい。
【００１２】
各々のＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルを備え、データを不揮発に記憶することができる。ＮＡＮＤ型フラッシュメモリ１００の構成の詳細は後述する。
【００１３】
メモリコントローラ２００は、ホスト機器３００からの命令に基づいて、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し、書き込み（以下、プログラムとも称される）、及び消去等を命令する。
【００１４】
メモリコントローラ２００は、ホストインターフェイス回路２０１、メモリ（ＲＡＭ）２０２、プロセッサ（ＣＰＵ）２０３、バッファメモリ２０４、ＮＡＮＤインターフェイス回路２０５、及びＥＣＣ（error correction code）回路２０６を備える。
【００１５】
ホストインターフェイス回路２０１は、コントローラバスを介してホスト機器３００と接続され、メモリコントローラ２００とホスト機器３００との通信を司る。
【００１６】
ＮＡＮＤインターフェイス回路２０５は、ＮＡＮＤバスを介して各ＮＡＮＤ型フラッシュメモリ１００と接続され、メモリコントローラ２００とＮＡＮＤ型フラッシュメモリ１００との通信を司る。各々のＮＡＮＤ型フラッシュメモリ１００と接続されているＮＡＮＤバス上では、同種の信号が送受信される。各ＮＡＮＤバスは、入出力信号、種々の制御信号、状態コード信号を伝送する。制御信号は、チップイネーブル信号ＣＥｎ０およびＣＥｎ１、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、及びライトプロテクト信号ＷＰｎ等を含む。信号ＷＥｎ、ＲＥｎ、ＣＬＥ、ＡＬＥ、及びＷＰｎは、ＮＡＮＤ型フラッシュメモリ１００＿０および１００＿１により受け取られる。一方、信号ＣＥｎ０はＮＡＮＤ型フラッシュメモリ１００＿０により受け取られ、信号ＣＥｎ１はＮＡＮＤ型フラッシュメモリ１００＿１により受け取られる。
【００１７】
入出力信号ＩＯ（ＩＯ＜７：０＞）は、例えば８ビットのデータを伝送する。信号ＩＯは、例えばコマンド、アドレスデータ、データ等を含む。信号ＣＥｎ（ＣＥｎ０およびＣＥ１）は、アサートされていると、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００をイネーブル状態とする。ライトイネーブル信号ＷＥｎは、アサートされていると、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００に信号ＩＯの取り込みを指示する。信号ＲＥｎは、アサートされていると、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００に信号ＩＯの出力を指示する。信号ＣＬＥは、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００に信号ＩＯをコマンドとして取り込むことを指示する。信号ＡＬＥは、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００に信号ＩＯをアドレスデータとして取り込むことを指示する。信号ＷＰｎは、アサートされていると、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００に信号ＩＯの取り込みの禁止を指示する。
【００１８】
状態コード信号は、ＮＡＮＤ型フラッシュメモリ１００の種々の状態を示す。状態コード信号は、例えばレディービジー信号ＲＢｎ（ＲＢｎ０およびＲＢｎ１）、ならびに状態コード信号ＣＯＤＥ＿ＰＷ１ＣＯＭＰ等を含む。信号ＲＢｎ０はＮＡＮＤ型フラッシュメモリ１００＿０から出力され、信号ＲＢｎ１はＮＡＮＤ型フラッシュメモリ１００＿１から出力される。メモリコントローラ２００は、状態コード信号を受け取ることで、各ＮＡＮＤ型フラッシュメモリ１００の状態を知ることができる。
【００１９】
ＣＰＵ２０３は、メモリコントローラ２００全体の動作を制御する。
【００２０】
メモリ２０２は、例えばＤＲＡＭ（dynamic random access memory）等であり、ＣＰＵ２３０の作業領域として使用される。
【００２１】
バッファメモリ２０４は、メモリ１００に送信されるデータ、及びメモリ１００から送信されたデータを一時的に保持する。
【００２２】
ＥＣＣ回路２０６は、誤り訂正符号を用いてデータの誤りを検出および訂正する。
【００２３】
［ＮＡＮＤ型フラッシュメモリの構成］
次に、メモリ１００の構成について、図２を用いて説明する。図２に示されるように、メモリ１００は、コア部０と周辺回路１とを含む。
【００２４】
コア部０は、メモリセルアレイ１１１、ロウデコーダ１１２、及びセンスユニット１１３を含む。コア部０は、複数のメモリセルアレイ１１１を含んでいてもよい。
【００２５】
メモリセルアレイ１１１は、複数のブロックＢＬＫ（ＢＬＫ０，ＢＬＫ１，ＢＬＫ２・・・）を備える。各ブロックＢＬＫは、複数のストリングユニット（フィンガ）ＳＵ（ＳＵ０，ＳＵ１，ＳＵ２・・・）を備える。各ストリングユニットＳＵは、複数のＮＡＮＤストリングＮＳを含む。各ストリングＮＳは、直列に接続された複数のメモリセルを含む。
【００２６】
周辺回路１は、入力バッファ（入出力制御回路）１０１，入力バッファ１０２、出力バッファ１０３，１２２、アドレスバッファ１１４、コマンドデコーダ１１５、データバッファ１１６、選択回路１１７，１１８、ステートマシン１２０、メモリセル制御レジスタ１２１、レジスタ回路１２４、及びフェイル数カウント回路１２５を含む。
【００２７】
入力バッファ１０１は、信号ＣＥｎ，ＷＥｎ，ＲＥｎ，ＣＬＥ，ＡＬＥ，ＷＰｎを受け取る入力ピン（端子）と接続される。入力バッファ１０１は、信号ＣＥｎ，ＷＥｎ，ＲＥｎ，ＣＬＥ，ＡＬＥ，ＷＰｎに基づいて、入力バッファ１０２、出力バッファ１０３、およびデータバッファ１１６を制御する。
【００２８】
入力バッファ１０２及び出力バッファ１０３は、信号ＩＯを入出力する入出力ピン（端子）と接続される。入力バッファ１０２は、入力バッファ１０１の制御に基づいて、信号ＩＯからアドレスデータを取り出し、これをアドレスバッファ１１４にデータ信号ＤＩＮとして供給する。また、入力バッファ１０２は、入力バッファ１０１の制御に基づいて、信号ＩＯからコマンドを取り出し、これをコマンドデコーダ１１５にデータ信号ＤＩＮとして供給する。さらに、入力バッファ１０２は、入力バッファ１０１の制御に基づいて、信号ＩＯからデータを取り出し、これをデータバッファ１１６にデータ信号ＤＩＮとして供給する。出力バッファ１０３は、選択回路１１７から供給される読み出しデータ等を、信号ＩＯとして入出力ピンから出力する。
【００２９】
アドレスバッファ１１４は、アドレスデータを保持し、これをメモリセル制御レジスタ１２１に供給する。アドレスデータは、アドレスデータＢＬＫａ，ＳＴＲａ，ＷＬａ，ＣＯＬａを含む。アドレスデータＢＬＫａ，ＳＴＲａ，ＷＬａ，ＣＯＬａは、データ信号ＤＩＮ中のビット列の順序および位置等に応じて区別される。アドレスデータＢＬＫａはブロックを特定する。アドレスデータＳＴＲａはストリング（ストリングユニット）を特定する。アドレスデータＷＬａはワード線を特定する。アドレスデータＣＯＬａはカラムを特定する。
【００３０】
データバッファ１１６は、入力バッファ１０１の制御に基づいて、入力バッファ１０２からデータを受け取り、これを一時的に保持する。入力バッファ１０２からのデータは、書き込みデータ等を含む。データバッファ１１６は、選択回路１１８を経由して、センスユニット１１３に書き込みデータ等を転送する。
【００３１】
選択回路１１８は、データバッファ１１６からのデータをセンスユニット１１３へと転送し、センスユニット１１３からのデータを出力バッファ１０３へと転送する。
【００３２】
コマンドデコーダ１１５は、入力バッファ１０１の制御に基づいて、コマンドを受け取る。コマンドデコーダ１１５は、コマンドをデコードし、デコードの結果に基づいて種々のコマンド信号をステートマシン１２０に供給する。コマンド信号は、例えば信号ＣＭＤ＿ＰＲＯ，ＣＭＤ＿ＲＳＴ，ＣＭＤ＿ＰＷ１ＳＴＡＴを含む。信号ＣＭＤ＿ＰＲＯは、ステートマシン１２０に書き込みを指示する。信号ＣＭＤ＿ＲＳＴは、ＮＡＮＤ型フラッシュメモリ１００の書き込み等の動作の中断を指示する。信号ＣＭＤ＿ＰＷ１ＳＴＡＴは、選択回路１１７を制御する。コマンドデコーダ１１５は、メモリ１００が問い合わせコマンドを受け取ったことに基づいて、“Ｈ”レベルのＣＭＤ＿ＰＷ１ＳＴＡＴを選択回路１１７およびステートマシン１２０に送信する。
【００３３】
ステートマシン１２０は、メモリ１００での読み出し、書き込み、及び消去等の動作を司る。ステートマシン１２０は、コマンドデコーダ１１５からのコマンド信号に基づいて、メモリセル制御レジスタ１２１を制御する。
【００３４】
ステートマシン１２０は、レジスタＰＷ１ＣＯＭＰ，ＡＣＯＭＰ，ＢＣＯＭＰ、ＣＣＯＭＰを含む。レジスタＰＷ１ＣＯＭＰ，ＡＣＯＭＰ，ＢＣＯＭＰ、ＣＣＯＭＰは、ステートマシン１２０による書き込み動作の状態（進捗状況等）を示す情報を保持する。レジスタＰＷ１ＣＯＭＰ，ＡＣＯＭＰ，ＢＣＯＭＰ、ＣＣＯＭＰは、例えば、書き込み動作のうちの複数の段階のうちの対応する段階が完了している場合に、完了している旨を示す情報を保持する。ステートマシン１２０は、信号ＣＭＤ＿ＰＷ１ＳＴＡＴを受け取ると、レジスタＰＷ１ＣＯＭＰ中の情報を状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰとして選択回路１１７へ送信する。
【００３５】
選択回路１１７は、選択回路１１８からのデータおよびレジスタＰＷ１ＣＯＭＰからの状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを受け取る。選択回路１１７は、信号ＣＭＤ＿ＰＷ１ＳＴＡＴに基づいて、選択回路１１８からのデータ、または状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを出力バッファ１０３に転送する。
【００３６】
メモリセル制御レジスタ１２１は、メモリセルの読み出し、書き込み、及び消去動作を制御するための情報を保持し、保持されている情報に基づいて信号をコア部０に送信する。メモリセル制御レジスタ１２１から送信される信号は、例えばブロックアドレスＢＬＫＡＤＤ，ストリングアドレスＳＴＲＡＤＤ，ワード線アドレスＷＬＡＤＤ，カラムＣＯＬＡＤＤ、及びステートマシン１２０からのコマンド信号を含む。メモリ制御レジスタ１２１は、ブロックアドレスＢＬＫＡＤＤ、ストリングアドレスＳＴＲＡＤＤ、及びワード線アドレスＷＬＡＤＤを、ロウデコーダ１１２に送信し、カラムアドレスＣＯＬＡＤＤを、センスユニット１１３に送信する。
【００３７】
ロウデコーダ１１２は、ブロックアドレスＢＬＫＡＤＤに基づいて１つのブロックＢＬＫを選択し、ストリングアドレスＳＴＲＡＤＤに基づいて１つのストリングＮＳを選択し、ワード線アドレスＷＬＡＤＤに基づいて１つのワード線を選択する。すなわち、ロウデコーダ１１２は、図示せぬ電圧生成回路から動作に応じた種々の電圧を受け取り、選択されたブロックＢＬＫの選択されたストリングＳＴＲにおいて、選択されたワード線およびそれ以外の非選択ワード線に、電圧生成回路からの電圧を転送する。
【００３８】
センスユニット１１３は、カラムアドレスＣＯＬＡＤＤに基づき、選択されたカラムのデータを信号ＹＩＯとして出力する。センスユニット１１３は、データの書き込み時には、データバッファ１１６から書き込みデータを信号ＹＩＯとして受け取り、メモリセルに転送する。
【００３９】
出力バッファ１２２は、レディービジー信号ＲＢｎを出力する出力ピンと接続される。出力バッファ１２２は、例えばステートマシン１２０から、レディービジー信号ＲＢを受け取る。レディービジー信号ＲＢは、ＮＡＮＤ型フラッシュメモリ１００がレディーまたはビジー状態であることを示す。出力バッファ１２２は、受け取ったレディービジー信号ＲＢをレディービジー信号ＲＢｎとして出力ピンから出力する。
【００４０】
レジスタ回路１２４は、フューズデータを保持する。フューズデータは、メモリセルアレイ１１１内のフューズ領域（図示せず）から読み出され、例えばメモリ１００が電源の供給を受けると読み出される。フューズデータは、フェイル数基準値Ｆ＿ＮＦ等を含む。フェイル数基準値Ｆ＿ＮＦ等は、書き込みまたは消去が完了したかの検査の際の基準値である。
【００４１】
フェイル数カウント回路１２５は、フェイル数基準値Ｆ＿ＮＦをレジスタ回路１２４から受け取る。フェイル数カウント回路１２５は、ベリファイの際、センスユニット１１３から読み出されたデータと期待値とを比較し、一致しないビットまたはバイトの数を計数する。ベリファイは、消去または書き込みが完了したかを判断することを指す。期待値は、書き込みの場合は書き込まれる値であり、消去の場合は消去状態のメモリセルが有するべき値である。フェイル数カウント回路１２５は、計数結果を、フェイル数基準値Ｆ＿ＮＦと比較する。比較の結果、フェイル数カウント回路１２５は、不一致のビットまたはバイトの数がフェイル数基準値Ｆ＿ＮＦ以下の場合は書き込みまたは消去が完了したと判断し、フェイル数基準値Ｆ＿ＮＦを超えている場合、書き込みまたは消去が未完了であると判断する。書き込みまたは消去が完了していれば、フェイル数カウント回路１２５は、例えば“Ｈ”レベルの信号ＰＡＳＳをステートマシン１２０に送信する。ステートマシン１２０は、信号ＰＡＳＳに基づいて、レジスタＰＷ１ＣＯＭＰ，ＡＣＯＭＰ，ＢＣＯＭＰ、およびＣＣＯＭＰの値を変更する。
【００４２】
［メモリセルアレイ］
次に、メモリセルアレイ１１１の構成について、図３を用いて説明する。図３は、メモリセルアレイ１１１の一部を示しており、１つのブロックについての回路図である。図３に示されるように、ストリングＮＳの各々は、複数のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、選択ゲートトランジスタＳＴ１、ＳＴ２とを含む。
【００４３】
トランジスタＭＴは積層ゲートを備える。積層ゲートは、制御ゲートと電荷蓄積層とを含む。トランジスタＭＴは、メモリセルとして機能し、データを不揮発に保持することができる。
【００４４】
複数のトランジスタＭＴは、トランジスタＳＴ１、ＳＴ２間に直列に接続される。トランジスタＭＴ７の一端は、トランジスタＳＴ１の一端に接続される。トランジスタＭＴ０の一端は、トランジスタＳＴ２の一端に接続される。各ストリングユニットＳＵにおいて、複数のストリングＮＳの各々のトランジスタＳＴ１の他端は、相違するビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１））に接続される。Ｌは２以上の自然数である。トランジスタＳＴ２の他端はソース線ＳＬに共通に接続される。
【００４５】
ストリングユニットＳＵｎ中のトランジスタＳＴ１のゲートは、選択ゲート線ＳＧＤｎに接続される。ｎは０または１以上の自然数である。各ストリングユニットＳＵ中のトランジスタＳＴ２のゲートは選択ゲート線ＳＧＳに共通に接続される。さらに、選択ゲート線ＳＧＳは、相違するストリングユニットＳＵ間で共有される。同一のブロックＢＬＫ内にあるトランジスタＭＴｍの制御ゲートは、ワード線ＷＬｍに接続される。ｍは０または７以下の自然数である。
【００４６】
同一のブロックＢＬＫ内にあるトランジスタＭＴのデータは、例えば一括して消去される。ただし、データの消去の方法はこれに限られず、例えばブロックＢＬＫよりも小さい単位で行われること等もある。データ消去については、例えば、“不揮発性半導体記憶装置”という米国特許８，５１４，６２７号（米国特許出願１３／２３５，３８９号）“不揮発性半導体記憶装置”という米国特許８，２３３，３２３号（米国特許出願１２／６９４，６９０号）に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４７】
データの読み出し及び書き込みは、いずれかのストリングユニットＳＵにおけるいずれかのワード線ＷＬに共通に接続された複数のトランジスタＭＴの組（ＣＳ）に対して一括して行われる。このようなトランジスタＭＴの組の記憶空間は、１または複数のページを含む。各トランジスタＭＴは２ビット以上のデータを保持でき、例えば各トランジスタＭＴが２ビットデータを保持する場合、トランジスタＭＴの組の中の各トランジスタＭＴにより保持されている２ビットデータのうちの下位（lower）ビットの集合は「ロワーページ」と称され、上位（upper）ビットの集合は「アッパーページ」と称される。
【００４８】
メモリセルアレイの構成については、例えば、“三次元積層不揮発性半導体メモリ”という米国特許出願公開２００９／０２６７１２８号公報（米国特許出願１２／４０７，４０３号）に記載されている。また、“三次元積層不揮発性半導体メモリ”という米国特許出願公開２００９／０２６８５２２号公報（米国特許出願１２／４０６，５２４号）、“不揮発性半導体記憶装置及びその製造方法”という米国特許出願公開２０１０／０２０７１９５号公報（米国特許出願１２／６７９，９９１号）“半導体メモリ及びその製造方法”という米国特許出願公開２０１１／０２８４９４６号公報（米国特許出願１２／５３２，０３０号）に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４９】
［センスユニット］
センスユニット１１３について、図４を用いてさらに説明する。
【００５０】
図４に示されるように、センスユニット１１３は、センスアンプＳ／Ａ、複数のキャッシュＬＤＬ，ＵＤＬ，およびＸＤＬを含む。キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬは、書き込み時および読み出し時のデータを一時的に格納する。キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬは各々、１ページの大きさのデータ、すなわちビット列を保持する。ビット列の中の各ビットは、例えば１つのトランジスタＭＴにより保持される下位ビットまたは上位ビットに相当する。また、各キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬ中の各ビットは、１ストリングＮＳ中でワード線ＷＬを共有するトランジスタＭＴの組の１つから読み出されたデータ、当該１つに書き込まれるデータ、または当該１つに関連するデータである。
【００５１】
センスアンプＳ／Ａ、及びキャッシュＬＤＬ，ＵＤＬ，ならびにＸＤＬは、内部バスＬＢＵＳで相互に接続され、内部バスＬＢＵＳを介して相互にデータをやり取りする。キャッシュＸＤＬは、バスにより選択回路１１８と接続されており、選択回路１１８を介してデータバッファ１１６および出力バッファ１０３とデータをやり取りする。入力バッファ１０２から入力された書き込みデータは、まず、キャッシュＸＤＬに格納される。
【００５２】
［メモリセルの閾値分布］
メモリセルトランジスタＭＴの閾値電圧の分布について、図５を用いて説明する。
【００５３】
図５（ｃ）に示されるように、１つのトランジスタＭＴが２ビットデータを保持する場合、各メモリセルトランジスタＭＴの閾値電圧は、保持されるデータに応じて４つの値のいずれかを取る。同じ２ビットデータを保持する複数のトランジスタＭＴであっても、互いに相違する閾値電圧を有し得る。このため、閾値電圧は分布を有する。閾値分布は、例えば、Ｅ，Ａ２，Ｂ２，およびＣ２レベルと称される。Ａ２レベル中の閾値電圧は、Ｅレベル中の閾値電圧より高い。Ｂ２レベル中の閾値電圧はＡ２レベル中の閾値電圧より高い、Ｃ２レベル中の閾値電圧はＢ２レベル中の閾値電圧より高い。
【００５４】
４つのレベルが、２ビットデータの４つの状態と関連付けられる。例えば、ＥレベルのメモリセルトランジスタＭＴは“１１”データを保持している状態として扱われる。Ａ２レベルのメモリセルトランジスタＭＴは“０１”データを保持している状態として扱われる。Ｂ２レベルのメモリセルトランジスタＭＴは“００”データを保持している状態として扱われる。Ｃ２レベルのメモリセルトランジスタＭＴは“１０”データを保持している状態として扱われる。
【００５５】
（２）データの書き込み動作
次に、ＮＡＮＤ型フラッシュメモリ１００へのデータの書き込み動作の例について図５および図６を用いて説明する。
【００５６】
まず、データの書き込み方法の大まかな概念につき、図５を用いて説明する。データの書き込みは、第１動作と第２動作とを含む。ステートマシン１２０は、１つの書き込みコマンドを受け取ると、第１動作および第２動作を実行する。第１動作と第２動作では、相違するベリファイ電圧が使用される。ベリファイ電圧は、書き込まれるメモリセルトランジスタＭＴの閾値電圧が超えているべき電圧である。
【００５７】
図５（ａ）は書き込まれる前の状態を示す。図５（ａ）に示されるように、トランジスタＭＴは、“Ｅ”レベルにある。“Ｅ”レベルにあるトランジスタＭＴは、ベリファイ電圧ＥＶより低い閾値電圧を有する。
【００５８】
図５（ｂ）は第１動作の結果の例を示す。図５（ｂ）に示されるように、トランジスタＭＴは、“Ａ１”〜“Ｃ１”レベルのいずれかにある閾値電圧を有する。第１動作でのベリファイでは、ベリファイ電圧ＡＶ１〜ＣＶ１が用いられる。“Ａ１”レベルにあるトランジスタＭＴの閾値電圧はベリファイ電圧ＡＶ１よりも高い。“Ｂ１”レベルにあるトランジスタＭＴの閾値電圧はベリファイ電圧ＢＶ１よりも高い。“Ｃ１”レベルにあるトランジスタＭＴの閾値電圧はベリファイ電圧ＣＶ１よりも高い。
【００５９】
図５（ｃ）は第２動作の結果の例を示す。図５（ｃ）に示されるように、トランジスタＭＴは、“Ａ２”〜“Ｃ２”レベルのいずれかにある閾値電圧を有する。第２動作でのベリファイでは、ベリファイ電圧ＡＶ２〜ＣＶ２が用いられる。“Ａ２”レベルにあるトランジスタＭＴの閾値電圧はベリファイ電圧ＡＶ２よりも高い。“Ｂ２”レベルにあるトランジスタＭＴの閾値電圧はベリファイ電圧ＢＶ２よりも高い。“Ｃ２”レベルにあるトランジスタＭＴの閾値電圧はベリファイ電圧ＣＶ２よりも高い。
【００６０】
ベリファイ電圧ＡＶ２は、ベリファイ電圧ＡＶ１より高い。ベリファイ電圧ＢＶ２は、ベリファイ電圧ＢＶ１より高い。ベリファイ電圧ＣＶ２は、ベリファイ電圧ＣＶ１より高い。
【００６１】
なお、後に詳述されるように、データの書き込み動作は中断されその後再開される場合があり、本明細書では、書き込み動作は、中断されるまでの部分、及び中断後に再開された部分を含み得る。
【００６２】
図６（ａ）は、第１動作および第２動作の間に、ステートマシン１２０による制御によってワード線ＷＬに印加される電圧を示す。第１および第２動作の各々において、プログラム電圧およびベリファイ電圧が交互に印加されることにより、プログラムおよびベリファイが行われる。第１動作では、プログラム電圧は、ステートマシン１２０による制御によって、印加の度に電圧ＶＰＧＭ１から値（ステップアップ幅）ＤＶＰＧＭ１だけステップアップされる。第１動作のベリファイでは、電圧ＺＶ１が印加される。電圧ＺＶ１は、ベリファイ電圧ＡＶ１〜ＣＶ１のいずれかである。
【００６３】
第２動作では、プログラム電圧は、ステートマシン１２０による制御によって、印加の度に電圧ＶＰＧＭ２から値ＤＶＰＧＭ２だけステップアップされる。電圧ＶＰＧＭ２は電圧ＶＰＧＭ１より大きい。値ＤＶＰＧＭ２は、値ＤＶＰＧＭ１より小さい。第２動作のベリファイでは、電圧ＺＶ２が印加される。電圧ＺＶ２は、ベリファイ電圧ＡＶ２〜ＣＶ２のいずれかである。
【００６４】
プログラム電圧の印加は、第１動作および第２動作の各々において、ベリファイにパスするまで、或いは、最大繰り返し数に達するまで繰り返される。ベリファイは、フェイル数カウント回路１２５による計数値が、フェイル数基準値Ｆ＿ＮＦ以下である場合、パスしたと判定される。
【００６５】
このような２つの動作を含む書き込み動作については、米国特許第８５６５０２０号明細書に記載されている。この明細書は、その全体が本願明細書において参照により援用されている。
【００６６】
以上のような書き込み動作を行うにあたっては、書き込み対象のトランジスタＭＴの各々に対する２ビットデータが必要であり、つまり、２ページ分のデータが必要である。書き込み動作を開始する際、メモリコントローラ２００は、メモリ１００に２ページ分のデータを送信する。送信されたデータは、キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬのいずれかに保持され、メモリ１００は、保持されたデータを用いて書き込み動作を行う。
【００６７】
一方で、ホスト機器３００からの書き込み動作の命令をメモリコントローラ２００の指示を介してＮＡＮＤ型フラッシュメモリ１００が処理する間に、ホスト機器３００が指示済みの書き込み動作の中断を命令する場合がある。中断は、ホスト機器３００により決定され、例えばより緊急度の高い作業が必要となった場合等に生じる。中断された書き込み動作は、後に再開される場合がある。しかしながら、再開される場合において、中断前までの書き込み動作の進捗によっては、キャッシュＬＤＬ，ＵＤＬ，ＸＤＬ中の書き込みデータの一部、あるいは全部が消失してしまっている場合がある。キャッシュが書き込みデータの保持以外の用途に使用され得るからである。
【００６８】
以下、このような状況に鑑みて構成された動作について説明する。
【００６９】
［書き込み動作のフロー］
まずは、図６（ｂ）を用い、ＮＡＮＤ型フラッシュメモリ１００の書き込み動作のフローについて説明する。
【００７０】
図６（ｂ）に示されるように、書き込み動作が開始されるにあたり、メモリコントローラ２００からメモリ１００に、ロワーページのデータが送信される（Lower data in）。ロワーページのデータは、キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬのいずれかに転送される（Transfer）。次いで、同様に、メモリコントローラ２００からメモリ１００に、アッパーページのデータが送信され（Upper data in）、次いで、キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬのいずれかに転送される（Transfer）。
【００７１】
次に、第１動作が開始される。プログラム及びベリファイのループが例えば“Ａ１”〜“Ｃ１”レベルの各々について、例として２回繰り返されることで“Ａ１”〜“Ｃ１”レベルの書き込みが完了する。続いて、第２動作の準備期間を経て（Transfer）、第２動作が開始される。プログラム及びベリファイのループが例えば“Ａ２”〜“Ｃ２”レベルの各々について、例として２回繰り返されることで“Ａ２”〜“Ｃ２”レベルの書き込みが完了する。
【００７２】
（キャッシュのデータ格納状況）
次に、図７から図９を用い、図６（ｂ）の書き込み動作のフローにおける、キャッシュＬＤＬ，ＵＤＬ，ＸＤＬによるデータの格納について説明する。以下の説明においてデータを格納するキャッシュおよび格納のタイミングは例に過ぎない。
【００７３】
図７から図９において、格納中のデータは、“Ｅ”レベルに維持されるトランジスタＭＴと、及び“Ａ”，“Ｂ”，“Ｃ”レベルへと書き込まれるトランジスタＭＴとに関連付けて示される。キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬの各々は、各ビットにおいて、一括して書き込まれるトランジスタＭＴのうちの１つと関連付けられた値を保持する。より具体的には、キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬの各々は、各ビットにおいて、対応する“Ｅ”レベルに維持される１つのセルトランジスタＭＴ、および“Ｅ”レベルから“Ａ”，“Ｂ”，または“Ｃ”レベルへと書き込まれる１つのセルトランジスタＭＴについての値を保持する。しかし、図７〜図９は、便宜上、“Ａ”，“Ｂ”，または“Ｃ”レベルへの書き込みの未完または完了をそれぞれ“０”または“１”により表現している。
【００７４】
図７は、メモリコントローラ２００からデータが転送されている期間のキャッシュＬＤＬ，ＵＤＬ，ＸＤＬへのデータの格納状況を示す。以下の動作は、ステートマシン１２０によるメモリセル制御レジスタ１２１を介した制御により行われる。
【００７５】
図７に示されるように、書き込み動作が開始されると、ステートマシン１２０は、ロワーページのデータをキャッシュＸＤＬに格納する。書き込み動作開始時点において、キャッシュＬＤＬ，ＵＤＬは、どのような状態であってもよい（Invalid）。ロワーページのデータは、ステートマシン１２０によって、キャッシュＸＤＬから例えばキャッシュＵＤＬに転送される。これにより、キャッシュＸＤＬは、アッパーページのデータを受け入れることができ、アッパーページのデータはキャッシュＸＤＬに格納される。アッパーページのデータは、ステートマシン１２０によって、キャッシュＸＤＬから例えばキャッシュＬＤＬに転送される。
【００７６】
続いて、ステートマシン１２０は、キャッシュＵＤＬ中のロワーページのデータをキャッシュＸＤＬへと転送し、第１動作におけるベリファイ結果（判定データ）をキャッシュＵＤＬに格納することに備える。具体的には、ステートマシン１２０は、キャッシュＵＤＬのビット列のうち、“Ａ１”〜“Ｃ１”レベルへと書き込まれるトランジスタＭＴに関連するビットを“０”にリセットする。“Ｅ”レベルに維持されるトランジスタＭＴに関連するビットは“１”である。
【００７７】
図８において、第１動作が開始される。ベリファイにより、“Ａ１”〜“Ｃ１”レベルの各々の書き込みが完了するごとに、キャッシュＵＤＬの対応するレベルへと書き込まれる各トランジスタＭＴについての値が“０”から“１”へと変化する。図８では、“Ａ１”レベルの１回目の書き込みループ（Program (1)およびVerify (1)。以下、同様）では、キャッシュＵＤＬにおける“Ａ１”レベルへと書き込まれるトランジスタＭＴについての値は“０”のままである。これは、“Ａ１”レベルへと書き込まれるトランジスタＭＴのうち、書き込みが完了していないトランジスタＭＴが残っていてベリファイに失敗している状態を表現している。以下の説明でも、同様である。
【００７８】
“Ａ１”レベルの２回目の書き込みループでは、キャッシュＵＤＬにおける“Ａ１”レベルへと書き込まれるトランジスタＭＴについての判定の値が“１”に変化する。図および以下の説明では、このような判定の値の変化が、対応するベリファイがパスしたことを表すものとする。
【００７９】
以降、“Ｂ１”および“Ｃ１”レベルのベリファイに成功する度に、キャッシュＵＤＬ中の“Ｂ１”および“Ｃ１”レベルへと書き込まれるトランジスタＭＴについての値が“０”から“１”に順次、変化する。以上により、第１動作が完了する。
【００８０】
第１動作が完了すると、ステートマシン１２０は、キャッシュＵＤＬ中の値（第１動作におけるベリファイ結果）をリセットし、第２動作におけるベリファイ結果の格納に備える。
【００８１】
図９において、第２動作が開始される。第１動作と同じく、“Ａ２”，“Ｂ２”，および“Ｃ２”レベルのベリファイに成功する度に、キャッシュＵＤＬ中の“Ａ２”，“Ｂ２”，および“Ｃ２”レベルへと書き込まれるトランジスタＭＴについての値が“０”から“１”に順次、変化する。以上により、第２動作が完了する。
【００８２】
ところで、図８および図９から判るように、第２動作の開始時点までは、ロワーページ及びアッパーページのデータは、第２動作での利用に備えてそれぞれキャッシュＸＤＬおよびＬＤＬ内に保持されている。しかしながら、第２動作の開始後は、これらのデータは保持される必要はなく、消去される場合がある。消去により、空いたキャッシュに別のデータを格納する等、メモリ１００のリソースを有効に活用することができる。例えば、図９においては、“Ａ２”レベルの書き込み完了時点で、キャッシュＸＤＬからロワーページのデータが消失している。“Ｂ２”レベルの書き込み完了時点では、キャッシュＬＤＬからアッパーページのデータが消失している。
【００８３】
中断した書き込み動作を別ページに再書き込みするにあたっては、メモリ１００は、メモリコントローラ２００から受け取った２ページ分のデータを必要とする。よって、書き込み動作を中断した時点でデータが消失していたか否か、つまり、どの時点まで書き込み動作が進行していたか、が再開後の処理に影響する。
【００８４】
第１実施形態では、上記の点に鑑みて、上記のようにステートマシン１２０がレジスタＰＷ１ＣＯＭＰを備える。レジスタＰＷ１ＣＯＭＰは、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを保持する。状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰは、書き込み動作の進行の状況に基づく値を有し、よって、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰは、書き込み動作の中断を指示されたタイミングに基づく値を有する。メモリ１００は、条件に基づいて、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを含む情報をメモリコントローラ２００へと送信する。
【００８５】
以下に、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰの例について、書き込み動作の中断のタイミングが異なる場合に分けて説明する。
【００８６】
（書き込み動作中に中断が生じなかった場合）
まず、書き込み動作中に中断が生じなかった場合について図１０〜図１２を用いて説明する。この場合、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰはメモリコントローラ２００に送信されない。
【００８７】
図１０〜図１２は、書き込み動作中に中断が生じなかった場合の、書き込み動作における各種信号のタイミングチャートである。図１０〜図１２は、選択ワード線ＷＬに印加される電圧の波形も示す。ただし、図１０〜図１２および同様の他の図における選択ワード線ＷＬへの印加電圧は単なる例である。
【００８８】
値ＰＷ１ＣＯＭＰは、レジスタＰＷ１ＣＯＭＰに保持されている値である。値ＡＣＯＭＰは、レジスタＡＣＯＭＰに保持されている値である。値ＢＣＯＭＰは、レジスタＢＣＯＭＰに保持されている値である。値号ＣＣＯＭＰは、レジスタＣＣＯＭＰに保持されている値である。
【００８９】
図１０に示されるように、時刻ｔ１において、メモリコントローラ２００は、書き込みコマンドＰＲＯを、書き込み先のロワーページのアドレスおよび書き込みデータと共にメモリ１００に送信する。時刻ｔ２において、メモリ１００は、ロワーページの書き込みデータをキャッシュＸＤＬからキャッシュＵＤＬへと転送する。
【００９０】
時刻ｔ３において、メモリコントローラ２００は、書き込みコマンドＰＲＯを書き込み先のアッパーページのアドレスおよび書き込みデータと共にメモリ１００に送信する。時刻ｔ４において、メモリ１００は、アッパーページの書き込みデータをキャッシュＸＤＬからキャッシュＬＤＬへと転送する。
【００９１】
時刻ｔ２およびｔ４においてデータを転送する間、メモリ１００は、ビジーを示す“Ｌ”レベルのレディービジー信号ＲＢｎを出力する。
【００９２】
書き込みデータが、メモリコントローラ２００からメモリ１００のキャッシュＬＤＬまたはＵＤＬへと転送されるまでの間、値ＰＷ１ＣＯＭＰ，ＡＣＯＭＰ，ＢＣＯＭＰ，およびＣＣＯＭＰは、“Ｌ”レベルと“Ｈ”レベルとのいずれであってもよい。このように値が不問の状態は図において斜線により示されている。
【００９３】
図１１に示されるように、メモリ１００は、時刻ｔ５から書き込みコマンドＰＲＯに従って第１動作を開始する。これ以降、メモリ１００は、書き込み動作が終了するまで、あるいは、メモリコントローラ２００から次の信号を受け取れる状態になるまで“Ｌ”レベルのレディービジー信号ＲＢｎを出力し続ける。
【００９４】
ステートマシン１２０は、第１動作が開始されると、値ＰＷ１ＣＯＭＰ，ＡＣＯＭＰ，ＢＣＯＭＰ，ＣＣＯＭＰを“Ｌ”レベルにリセットする。また、ステートマシン１２０は、ロウデコーダ１１２等を制御して、選択ワード線ＷＬに、電圧ＶＰＧＭ１から値ＤＶＰＧＭ１ずつ高めた電圧を順に印加して“Ａ１”〜“Ｃ１”レベルの書き込みを順次行う。
【００９５】
ステートマシン１２０は、“Ａ１”レベルの書き込みが完了すると、値ＡＣＯＭＰを“Ｈ”レベルとする。図１１の例によれば、時刻ｔ９で、値ＡＣＯＭＰが“Ｈ”レベルとされる。ステートマシン１２０は、“Ｂ１”レベルの書き込みが完了すると、値ＢＣＯＭＰを“Ｈ”レベルとする。図１１の例によれば、図示されない時刻ｔ１３で、値ＢＣＯＭＰが“Ｈ”レベルとされる。“Ｃ１”レベルの書き込み完了により第１動作が完了すると、ステートマシン１２０は、値ＰＷ１ＣＯＭＰを“Ｈ”レベルとする。図１１の例によれば、時刻ｔ１７で、値＿ＰＷ１ＣＯＭＰが“Ｈ”レベルとされる。
【００９６】
時刻ｔ１８において、ステートマシン１２０は、第２動作に備え、値ＡＣＯＭＰ，ＢＣＯＭＰを“Ｌ”レベルにリセットする。一方、ステートマシン１２０は、値ＰＷ１ＣＯＭＰを“Ｈ”レベルに維持する。
【００９７】
図１２に示されるように、メモリ１００は、時刻ｔ１８から書き込みコマンドＰＲＯに従って第２動作を開始する。
【００９８】
ステートマシン１２０は、ロウデコーダ１１２等を制御して、選択ワード線ＷＬに、電圧ＶＰＧＭ２から値ＤＶＰＧＭ２ずつ高めた電圧を順に印加して“Ａ２”〜“Ｃ２”レベルの書き込みを順次行う。
【００９９】
ステートマシン１２０は、“Ａ２”レベルの書き込みが完了すると、値ＡＣＯＭＰを“Ｈ”レベルとし、“Ｂ２”レベルの書き込みが完了すると、値ＢＣＯＭＰを“Ｈ”レベルとする。ステートマシン１２０は、“Ｃ２”レベルの書き込みが完了し、第２動作が完了すると、値ＣＣＯＭＰを“Ｈ”レベルとする。図１２の例によれば、時刻ｔ３０で、値ＣＣＯＭＰが“Ｈ”レベルとされる。
【０１００】
以上により、書き込み動作が終了する。
【０１０１】
（第１動作中に中断が生じた場合）
書き込み動作の途中でホスト機器３００がメモリコントローラ２００に中断を指示すると、メモリコントローラ２００は書き込み動作の中断のための処理を行う。
【０１０２】
以下に、図１３及び図１４を用い、メモリ１００が中断を第１動作中に指示された場合の書き込み動作のフローについて説明する。
【０１０３】
図１３に示されるように、ステップＳ１０５において、メモリコントローラ２００は、書き込みコマンドＰＲＯを、書き込み先のアドレス及び書き込みデータと共にメモリ１００に送信する。書き込みデータは、ロワーページのデータ及びアッパーページのデータを含む。ステップＳ１０５は、図１０の時刻ｔ１〜ｔ５までに行われる動作に相当する。
【０１０４】
ステップＳ１１０において、メモリ１００は、“Ｈ”レベルの信号ＣＭＤ＿ＰＲＯに従って書き込み動作を実行する。“Ｈ”レベルの信号ＣＭＤ＿ＰＲＯは、メモリ１００が書き込みコマンドＰＲＯを受け取ったことに基づいており、書き込みを指示する。書き込み動作の開始に伴い、メモリ１００は“Ｌ”レベルのレディービジー信号ＲＢｎをメモリコントローラ２００に送信する。
【０１０５】
メモリコントローラ２００が、５回目のベリファイ（時刻ｔ１４〜ｔ１５）中に書き込み動作の中断を開始するとする。開始に伴い、図１４に示されるように、メモリコントローラ２００は、書き込み状態の問い合わせを行う（図１３のステップＳ１１５）。そのために、メモリコントローラ２００は、問い合わせコマンドＣＭＤｑをメモリ１００に送信する。
【０１０６】
コマンドデコーダ１１５は、メモリ１００が問い合わせコマンドＣＭＤｑを受け取ったことに基づき、ライトイネーブル信号ＷＥｎの立ち上がりエッジにおいて、“Ｈ”レベルの信号ＣＭＤ＿ＰＷ１ＳＴＡＴをステートマシン１２０に送信する。これにより、ステートマシン１２０は、レジスタＰＷ１ＣＯＭＰ中の値を状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰとして出力するとともに、選択回路１１７により状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを出力バッファ１０３へ転送させる。状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰは、ステートマシン１２０が第１動作中に信号ＣＭＤ＿ＰＷ１ＳＡＴを受け取ったことに基づいて、“Ｌ”レベルである。
【０１０７】
時刻ｔ１５の後、メモリコントローラ２００はアサートされたリードイネーブル信号ＲＥｎをメモリ１００に送信し、これを受けメモリ１００は各種の状態（ステータス）コード等をＩＯ信号としてメモリコントローラ２００へと送信する（図１３のステップＳ１２０）。送信される状態コードは、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを含む。
【０１０８】
メモリコントローラ２００は、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰが“Ｌ”レベルであることから、メモリ１００が少なくとも問い合わせコマンドＣＭＤｑを受け取った時点で第１動作中であったことを知る。よって、メモリコントローラ２００は以前に送信した２ページ分のデータが、依然、キャッシュＬＤＬ，ＵＤＬ，およびＸＤＬ中のいずれかに保持されていることを知る。このことから、さらに、メモリコントローラ２００は、書き込みデータの再送や書き込み動作の進行の待機を必要とすることなく、中断を開始できることを知る。
【０１０９】
中断の開始が可能なので、時刻ｔ１６において、メモリコントローラ２００は、中断コマンドＲＳＴをメモリ１００に送信する（図１３のステップＳ１２５）。なお、メモリ１００は、中断コマンドＲＳＴを受け取った後、値ＰＷ１ＣＯＭＰを維持してもしなくてもよい。このように、値ＰＷ１ＣＯＭＰが保持されてもされなくともよいことも、図では斜線により示されている。
【０１１０】
コマンドデコーダ１１５は、メモリ１００が中断コマンドＲＳＴを受け取ったことに基づいて、“Ｈ”レベルの信号ＣＭＤ＿ＲＳＴをステートマシン１２０に送信する（図１３のステップＳ１３０）。“Ｈ”レベルの信号ＣＭＤ＿ＲＳＴは書き込み動作の中断（停止）を指示する。指示を受け取ると、ステートマシン１２０は書き込み動作のための処理（例えば書き込みに関与する要素の状態の初期化等）を行って書き込みを停止する。
【０１１１】
ステートマシン１２０が書き込み動作の停止のための処理を完了すると、時刻ｔ１７において、メモリ１００はレディー状態となる。これを受けて、メモリコントローラ２００は、割り込みコマンドＣＭＤｉをメモリ１００に送信する（図１３のステップＳ１３５）。割り込みコマンドＣＭＤｉは、例えばあるロワーページのデータの読み出しコマンド等であり、読み出し元のアドレスの指定を伴う。
【０１１２】
割り込みコマンドＣＭＤｉを受け取るメモリ１００は、書き込み動作を中断したメモリ１００であり得るし、メモリコントローラ２００に接続される他のメモリ１００でもあり得る。動作を中断したメモリ１００においては、例えば書き込み動作が中断されたメモリセルとはアドレスの異なるメモリセルが割り込み動作の対象となる。書き込み動作中に割り込みが可能な動作は、例えば決まっている。メモリ１００が保持するデータを破壊しない動作であれば、いかなる動作も割り込み可能である。
【０１１３】
時刻ｔ１８において、メモリ１００は、割り込みコマンドＣＭＤｉにしたがい、割り込み動作を実行する（図１３のステップＳ１４０）。割り込み動作が読み出し動作である例に基づいて、メモリ１００はリードイネーブル信号ＲＥｎに従って読み出しデータをメモリコントローラ２００に送信する。割り込み動作は、例えば時刻ｔ１９までに終了する。メモリ１００は、読み出しデータの送信の開始とともに、レディー状態に戻る。
【０１１４】
メモリ１００がレディー状態に戻ったことに少なくとも一部基づいて、メモリコントローラ２００は、中断された書き込み動作の再開が可能なことを知る。よって、メモリコントローラ２００は、例えば読み出しデータを受け取った後の時刻ｔ１９において、書き込みコマンドＰＲＯｒを、書き込み先のアドレスと共に、メモリ１００に送信する（図１３のステップＳ１４５）。
【０１１５】
キャッシュＸＤＬ，ＵＤＬ，およびＬＤＬ内には、２ページ分のデータが依然保持されているので、メモリコントローラ２００は、書き込みデータを送信しない。書き込みコマンドＰＲＯｒは、通常の書き込みコマンドＰＲＯとは異なり、書き込みデータの出力を伴わずに書き込みを指示する。書き込みコマンドＰＲＯｒの送信先は、書き込み動作を中断されたメモリ１００である。書き込み先のアドレスは、中断前に書き込み対象であったメモリセルのアドレスと同一であっても異なっていてもよい。
【０１１６】
時刻ｔ２０から、ステートマシン１２０は、書き込み動作の再開のための準備（Transfer）を行う。次いで、時刻ｔ２１において、ステートマシン１２０は、書き込みコマンドＰＲＯｒに基づき、キャッシュＸＤＬ，ＵＤＬ，およびＬＤＬ内のデータを用いて書き込み動作を再開する（図１３のステップＳ１５０）。再開後の書き込み動作は、通常の書き込み動作と同様、第１動作の１回目の書き込みループから開始される。ただし、再書き込み先のアドレスが中断前と同一である場合は、中断前の書き込み動作を継続するよう再書き込みが行われてもよい。
【０１１７】
メモリ１００での書き込み動作が終了し、メモリ１００がレディー状態となると、メモリコントローラ２００は、次の動作をメモリ１００に指示する（図１３のステップＳ１５５）。
【０１１８】
（第２動作中に中断事由が生じた場合）
次に、図１５を用い、第２動作中に中断事由が生じた場合の書き込み動作のフローについて説明する。
【０１１９】
メモリコントローラ２００が、第２動作の１回目のベリファイ（時刻ｔ１８〜ｔ１９）中に書き込み動作の中断を開始するとする。開始に伴い、図１５に示されるように、メモリコントローラ２００は、問い合わせコマンドＣＭＤｑをメモリ１００に送信する。
【０１２０】
コマンドデコーダ１１５は、メモリ１００が問い合わせコマンドＣＭＤｑを受け取ったことに基づいて、“Ｈ”レベルの信号ＣＭＤ＿ＰＷ１ＳＴＡＴをステートマシン１２０に送信する。これにより、選択回路１１７による選択を経て、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを含む種々の情報がメモリコントローラ２００に送信される。状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰは、ステートマシン１２０が第２動作中に信号ＣＭＤ＿ＰＷ１ＳＡＴを受け取ったことに基づいて、“Ｈ”レベルである。
【０１２１】
メモリコントローラ２００は、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰが“Ｈ”レベルであることから、メモリ１００が少なくとも問い合わせコマンドＣＭＤｑを受け取った時点で第２動作中であったことを知る。よって、メモリコントローラ２００は、キャッシュＸＤＬ，ＵＤＬ，およびＬＤＬのいずれかにおける２ページ分のデータのうち、一部または全部が消失している可能性があることを知る。
【０１２２】
時刻ｔ２０〜ｔ２３までの中断動作及び割り込み動作は、図１４の第１動作における時刻ｔ１６〜ｔ１９までの動作と同じである。割り込み動作は、例えば読み出し動作であり、例えば時刻ｔ２３までに終了する。メモリ１００は、読み出しデータの送信の開始とともに、レディー状態に戻る。
【０１２３】
メモリ１００がレディー状態に戻ったことに少なくとも一部基づいて、メモリコントローラ２００は、中断された書き込み動作の再開が可能なことを知る。よって、メモリコントローラ２００は、例えば読み出しデータを受け取った後の時刻ｔ２３において、書き込みコマンドＰＲＯを、書き込み先のアッパーページおよびロワーページのアドレスと共に、書き込み動作が中断されたメモリ１００へと送信する。メモリ１００内の書き込みデータが消失している可能性があるため、メモリコントローラ２００はアッパーページおよびロワーページのための書き込みデータも再度送信する。
【０１２４】
時刻ｔ２７において、ステートマシン１２０は、書き込みコマンドＰＲＯに基づき、再度受け取った書き込みデータを用いて書き込み動作を再開する。
【０１２５】
第１実施形態においては、メモリコントローラ２００が、メモリ１００が書き込み動作中に中断を指示された場合に書き込み動作を中断して、中断の原因となった処理を優先させる例について説明したが、これに限られない。メモリコントローラ２００は、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを出力させた上で、メモリ１００の書き込み動作の状況、または中断の原因の内容、重要性、および緊急性等に鑑み、実際に書き込み動作を中断させるかどうかを判断してもよい。例えば、メモリコントローラ２００は、第１動作中であれば書き込み動作を中断させ、第２動中であれば書き込み動作を中断させない、という判断を行ってもよい。
【０１２６】
（３）第１実施形態にかかる効果
第１実施形態によれば、メモリ１００が第１動作中に問い合わせコマンドＣＭＤｑを受け取ると、ステートマシン１２０は“Ｌ”レベルの状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰをメモリコントローラ２００に送信する。ステートマシン１２０は、メモリ１００が第２動作中に問い合わせコマンドＣＭＤｑを受け取ると、“Ｈ”レベルの状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰをメモリコントローラ２００に送信する。この構成に基づき、以下の１つまたは複数の効果が得られる。
【０１２７】
（Ａ）メモリコントローラ２００は、メモリ１００の書き込み動作を中断させるにあたり、書き込み動作の進捗状況を知ることができる。よって、メモリコントローラ２００は、書き込み動作を再開させるにあたり、再度、メモリ１００へのデータの出力が必要か否かを判断することができる。
【０１２８】
（Ｂ）メモリコントローラ２００は、第１動作中に書き込み動作を中断した場合には、メモリ１００に書き込みデータを再度送信する必要を有しない。よって、書き込みデータの再送信に要する時間を削減することができる。
【０１２９】
例えば、比較例のＮＡＮＤ型フラッシュメモリは、書き込み動作の進捗状況を通知する機能を有しない。このため、書き込み動作を再開させるにあたっては、例えば常に書き込みデータを再送信する。１ページ分のデータの書き込みに要する時間は、例えば１０００μ秒である。このうち、メモリコントローラからメモリへのデータの送信に要する時間は、例えば１００μ秒である。メモリにデータが残存しているにもかかわらず、データを不必要に再送信すると、全書き込み時間の１０％にあたる時間が無駄になる。
【０１３０】
第１実施形態によれば、メモリ１００が書き込みデータを依然保持している場合、メモリコントローラ２００は書き込みデータを再送信しない。これにより、全書き込み時間の１０％にあたる時間を削減することができ、信号ＩＯを伝送するバスの占有時間を削減することができる。したがって、メモリ１００の利用効率を高めることができ、メモリシステム１０全体の効率化を図ることができる。
【０１３１】
（Ｃ）メモリコントローラ２００は、第１動作中には中断動作を開始し、第２動作中には中断動作を開始しない等、多くの選択肢を持つことができる。これにより、メモリコントローラ２００がホスト機器３００からの様々な命令等の処理を柔軟に行って、メモリシステム１０全体の作業効率を高めることができる。
【０１３２】
（Ｄ）メモリコントローラ２００は、例えば第２動作中には、メモリ１００への書き込み動作の中断を行わないようにすることができる。このことを前提にすれば、メモリコントローラ２００は、データの再送信が必要な場合に備えて、書き込み動作が終了するまで書き込みデータをバックアップしておく必要がなくなる。よって、メモリコントローラ２００のリソース（例えばバッファメモリ２０４）の有効な利用が可能になる。
【０１３３】
（４）第１実施形態の変形例
変形例は、書き込み動作の別の例に基づく。変形例について、図１６から図１８を用いて説明する。
【０１３４】
ＮＡＮＤ型フラッシュメモリ１００が書き込み動作を開始するにあたり、当初、１ページ分（例えば、ロワーページ）のデータのみしか受け取れない場合がある。これは、ホスト機器３００からの様々な命令等を処理するなかで、メモリコントローラ２００による処理を待つ命令が多くある場合などに起こり得る。このような場合、例えばメモリコントローラ２００は、もう１ページ分（例えば、アッパーページ）のデータの送信の前に、ロワーページのデータのみの書き込みを開始する。ロワーページのデータを書き込む動作は、例えばロワー書き込みと称される。ロワー書き込みは、第１動作及び第２動作を指示するコマンドとは異なるコマンドにより指示される。ロワー書き込み、およびロワー書き込みを経てアッパーページの書き込みを行う方式は、ＬＭ書き込み方式と称される。一方、図４のようにロワーページとアッパーページのデータが保持される状態への書き込みは、例えばフルシーケンス方式とも称される。
【０１３５】
ロワー書き込み後の状態が、図１６（ｂ’）に示される。変形例に記述される書き込み動作は、図１６（ｂ’）のステップが挿入される点において、図４の書き込み動作と異なる。ロワー書き込みにより、メモリセルトランジスタＭＴの閾値電圧が上昇され、メモリセルトランジスタＭＴは“ＬＭ”レベルにあるか、“Ｅ”レベルにとどまる。“ＬＭ”レベルにあるトランジスタＭＴの閾値電圧は、ベリファイ電圧ＬＭＶより高い。ベリファイ電圧ＬＭＶは、例えばベリファイ電圧ＡＶ１より高くベリファイ電圧ＢＶ１より低い。
【０１３６】
メモリ１００は、ロワー書き込みの後でアッパーページのデータを受け取り、図４と同様に、第１および第２動作を行う。
【０１３７】
本変形例では、書き込み動作が、ＬＭ書き込み方式によるものからフルシーケンス方式によるものに切り替えられる。
【０１３８】
［書き込み動作のフロー］
図１７及び図１８は、ロワー書き込みが中断された場合の書き込み動作のフローを示す。
【０１３９】
図１７に示されるように、時刻ｔ１において、メモリコントローラ２００は、書き込みコマンドＰＲＳを、書き込み先のロワーページのアドレスおよび書き込みデータと共にメモリ１００に送信する。書き込みコマンドＰＲＳは、１ページ分のデータの書き込みを指示し、フルシーケンス方式の書き込みを指示する書き込みコマンドＰＲＯとは異なる。コマンドＰＲＳおよび書き込みデータを受け取ると、ステートマシン１２０は、時刻ｔ２において、ロワーページの書き込みデータをキャッシュＸＤＬからキャッシュＵＤＬへと転送する。
【０１４０】
書き込みコマンドＰＲＳに基づいて、ステートマシン１２０は、時刻ｔ３からロワー書き込みの書き込みループを開始する。ロワー書き込みでは、プログラム電圧は、印加の度に、ステートマシン１２０による制御によって、電圧ＶＰＧＭＬから値ＤＶＰＧＭＬだけステップアップされる。電圧ＶＰＧＭＬは、例えば第２動作における電圧ＶＰＧＭ２より小さい。電圧ＶＰＧＭＬは、第１動作における電圧ＶＰＧＭ１以下でも以上でもよい。値ＤＶＰＧＭＬは、例えば第２動作における値（ステップアップ幅）ＤＶＰＧＭ２よりも大きい。値ＤＶＰＧＭＬは、第１動作におけるステップアップ幅ＤＶＰＧＭ１以下でも以上でもよい。
【０１４１】
ロワー書き込みにおいては書き込みデータが１ページ分しかなく、全てのキャッシュが占有されることがない。このため、メモリ１００は、メモリコントローラ２００から次のデータを受け入れ可能である。よって、ロワー書き込み中、ステートマシン１２０は、“Ｈ”レベルのレディービジー信号ＲＢｎをメモリコントローラ２００に送信する。
【０１４２】
メモリコントローラ２００が、２回目のプログラムループ（ｔ５〜ｔ６）中に書き込み動作の中断を開始するとする。開始に伴い、メモリコントローラ２００は、問い合わせコマンドＣＭＤｑをメモリ１００に送信する。
【０１４３】
コマンドデコーダ１１５は、メモリ１００が問い合わせコマンドＣＭＤｑを受け取ったことに基づき、“Ｈ”の信号ＣＭＤ＿ＰＷ１ＳＴＡＴをステートマシン１２０に送信する。これにより、時刻ｔ６において、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを含む種々の情報がメモリ１００からメモリコントローラ２００に送信される。ステートマシン１２０は、ロワー書き込み中はアッパーページのデータ取得後にフルシーケンス方式に切り替え可能なよう、ロワーページのデータをキャッシュＸＤＬ，ＵＤＬ，およびＬＤＬのいずれかに保持し続ける。よって、ロワー書き込みの間、値ＰＷ１ＣＯＭＰは“Ｌ”レベルにとどまっており、ひいては状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰも“Ｌ”レベルである。
【０１４４】
メモリコントローラ２００は“Ｌ”レベルの状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを受け取ったことに基づいて、メモリ１００が問い合わせコマンドＣＭＤｑを受け取った時点において、メモリ１００がロワーページの書き込みデータを保持していることを知る。このことから、さらに、メモリコントローラ２００は、中断を開始できることを知る。
【０１４５】
中断の開始が可能なので、メモリコントローラ２００は、中断コマンドＲＳＴをメモリ１００に送信する。時刻ｔ７以降、メモリ１００は、図１４及び図１５の場合と同様に、中断動作及び割り込み動作を実行する。割り込み動作は、例えば読み出し動作であり、メモリ１００は、読み出しデータの送信の開始とともにレディー状態に戻る。
【０１４６】
メモリ１００がレディー状態に戻ったことに少なくとも一部基づいて、メモリコントローラ２００は、中断された書き込み動作の再開が可能なことを知る。よって、図１８に示されるように、メモリコントローラ２００は、例えば読み出しデータを受け取った後の時刻ｔ１０において、書き込みコマンドＰＲＳｒを、書き込み先のアドレスと共に、書き込み動作を中断されたメモリ１００へと出力する。メモリコントローラ２００は、書き込みデータを送信しない。キャッシュＸＤＬ，ＵＤＬ，またはＬＤＬが、ロワーページのデータを依然保持しているからである。書き込みコマンドＰＲＳｒは、通常の書き込みコマンドＰＲＳとは異なり、データの出力を伴わずに１ページ分の書き込みを指示する。書き込み先のアドレスは、中断前に書き込み対象であったメモリセルのアドレスと同一であっても異なっていてもよい。
【０１４７】
時刻１１から、ステートマシン１２０は、書き込み動作の再開のための準備（Transfer）を行う。次いで、時刻ｔ１２において、ステートマシン１２０は、書き込みコマンドＰＲＳｒに基づき、キャッシュＸＤＬ，ＵＤＬ，またはＬＤＬ中のデータを用いて書き込み動作を再開する。
【０１４８】
一方、時刻ｔ１２において、メモリコントローラ２００は、アッパーページのデータを出力できる状態となる。そこで、メモリコントローラ２００は、書き込みコマンドＰＲＯを、書き込み先のアドレス、及び書き込みデータと共に、書き込み動作中のメモリ１００に送信する。
【０１４９】
時刻ｔ１２の時点でもキャッシュＸＤＬ，ＵＤＬ，またはＬＤＬ内には、ロワーページのデータが依然保持されているため、メモリコントローラ２００は、アッパーページのデータのみをメモリ１００に送信し、ロワーページのデータの出力は行わない。書き込み先のブロックＢＬＫ、ストリングユニットＳＵ、ワード線ＷＬのアドレスは、書き込み動作中のメモリセルのものと同一である必要がある。
【０１５０】
書き込みコマンドＰＲＯを受け取ったことに基づき、メモリ１００は、フルシーケンス方式による書き込み動作を開始する。この書き込み動作は、例えば図１１および図１２に示される動作と同じである。さらに新たな中断の原因が発生したときは、メモリ１００及びメモリコントローラ２００は、例えば図１４または図１５に示される動作と同様の動作を行ってもよい。
【０１５１】
以上のように、変形例によれば、信号ＣＭＤ＿ＰＷ１ＳＴＡＴ、及び状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰ等の構成は、ＬＭ書き込み方式からフルシーケンス方式へと切り替わる書き込み動作においても適用可能である。
【０１５２】
＜第２実施形態＞
次に、第２実施形態に係るＮＡＮＤ型フラッシュメモリ１５０及びメモリコントローラ２５０について、図１９から図２２を用いて説明する。第２実施形態は、メモリコントローラとメモリとの間でのデータ保持中断コマンドが設けられる点において、第１実施形態と異なる。
【０１５３】
（１）メモリシステムの構成
第２実施形態では、メモリコントローラ２５０は、第１実施形態のメモリコントローラ２００の要素、動作、および機能に加えて、データ保持中断コマンドＲＳＶＲＳＴを出力できる。メモリコントローラ２５０は、例えばメモリ１５０での書き込み動作の間にホスト機器３００から書き込み動作の中断を指示されると、データ保持中断コマンドＲＳＶＲＳＴをメモリ１５０に送信する。データ保持中断コマンドＲＳＶＲＳＴは、これを受け取ったメモリ１５０が第１動作中であれば、第１動作の完了後の中断を指示する。
【０１５４】
メモリ１５０は、図１９に示される構成を有する。メモリ１５０は、周辺回路１においてコマンドデコーダ１５５を含む。コマンドデコーダ１５５は、コマンドデコーダ１１５の要素、動作および機能に加えて、データ信号ＤＩＮがデータ保持中断コマンドＲＳＶＲＳＴを含んでいた場合、例えば信号ＣＭＤ＿ＲＳＶＲＳＴを出力することができる。信号ＣＭＤ＿ＲＳＶＲＳＴは、メモリ１５０がデータ保持中断コマンドＲＳＶＲＳＴを受け取ったことをステートマシン１２０に知らせる。信号ＣＭＤ＿ＲＳＶＲＳＴは、メモリ１５０がデータ保持中断コマンドＲＳＶＲＳＴを受け取ったことに基づいて“Ｈ”レベルとされる。コマンドデコーダ１５５は、“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを受け取ったことを、例えばレジスタを用いて記憶する。ステートマシン１２０は、“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを書き込み動作のどの段階で受け取ったかに応じて、書き込み動作を中断するタイミングを調整する。
【０１５５】
コマンドデコーダ１５５の他の機能については、上述の実施形態にて記述されたコマンドデコーダ１１５と同様である。
【０１５６】
その他の構成については、第２実施形態には、第１実施形態の記述が全て当てはまる。
【０１５７】
（２）データの書き込み動作
次に、ＮＡＮＤ型フラッシュメモリ１５０へのデータの書き込み動作の例について説明する。
【０１５８】
［第１動作中に中断が生じた場合］
まずは、図２０を用い、図２１を参照しながら、メモリ１５０での第１動作中にホスト機器３００がメモリコントローラ２５０に中断を指示した場合の書き込み動作のフローについて説明する。
【０１５９】
図２０に示されるように、メモリコントローラ２５０は、書き込みコマンドＰＲＯを、書き込み先のアドレス及び書き込みデータとともにメモリ１５０に送信する（ステップＳ２０５）。書き込みコマンドＰＲＯに従って、メモリ１５０は、書き込み動作を行う（ステップＳ２１０）。ステップＳ２１０は、図２１に示されるように、プログラム（ステップＳ２１１）、ベリファイ（ステップＳ２１２）、第１動作の終了の確認（ステップＳ２１３）を含む。第１動作が終了するまで、ステップＳ２１１〜Ｓ２１３の組が繰り返される。
【０１６０】
以降のフローは、メモリ１５０がデータ保持中断コマンドＲＳＶＲＳＴを書き込み動作中のどの段階で受け取ったか否かに基づいて異なる。まず、メモリ１５０が第１動作中にデータ保持中断コマンドＲＳＶＲＳＴを受け取った場合について説明する。すなわち、図２０に示されるように、第１動作中にメモリコントローラ２５０がデータ保持中断コマンドＲＳＶＲＳＴをメモリ１５０に送信する（ステップＳ２１５）。この場合でも、メモリ１５０は第１動作を継続し、完了させる。第１動作が完了すると、ステートマシン１２０は、データ保持中断動作を行う（ステップＳ２２０）。データ保持中断動作において、ステートマシン１２０は、第１動作中に“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを受け取ったかを判定する（図２１のステップＳ２２０）。ステートマシン１２０は、第１動作中に“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを受け取ったことを知り、書き込み動作を中断する。この結果、メモリ１５０はレディー状態に移行する。
【０１６１】
メモリコントローラ２５０は、メモリ１５０がレディー状態となったことを受けて、メモリ１５０に問い合わせコマンドＣＭＤｑを送信する（ステップＳ２２５）。メモリが問い合わせコマンドＣＭＤｑを受け取ったことに基づいて、ステートマシン１２０は、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰをメモリコントローラ２５０に送信する（ステップＳ２３０）。状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰは、メモリ１５０がデータ保持中断コマンドＲＳＶＲＳＴを受信した時点、ひいてはステートマシン１２０が“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを受け取った時点の値（ここでは、“Ｌ”レベル）に維持されている。よって、メモリコントローラ２５０は、メモリ１５０が第１動作中にデータ保持中断コマンドＲＳＶＲＳＴを受け取り、かつ第１動作を完了させた後に第２動作を開始することなく、書き込み動作を中断したことを知る。これにより、メモリコントローラ２５０は、メモリ１５０が、依然、２ページ分のデータを保持していることを知る。
【０１６２】
続くステップＳ２３５〜Ｓ２４０までの割り込み動作は、図１３におけるステップＳ１３５〜Ｓ１４０までの動作と同じである。割り込み動作が終了すると、メモリコントローラ２５０は、書き込みコマンドＰＲＯｒを書き込み先のアドレスと共にメモリ１５０に送信する（ステップＳ２４５）。メモリコントローラ２５０は、書き込みデータを再送信しない。書き込み先のアドレスは、中断前に書き込み対象であったメモリセルのアドレスと同一とすることができる。
【０１６３】
ステートマシン１２０は、書き込みコマンドＰＲＯｒに基づき、書き込み動作を再開する（ステップＳ２５０）。ステップＳ２５０は、図２１に示されるように、プログラム（ステップＳ２５１）、ベリファイ（ステップＳ２５２）、第２動作の終了の確認（ステップＳ２５３）を含む。第２動作が終了するまで、ステップＳ２５１〜Ｓ２５３の組が繰り返される。第２動作が終了してメモリ１５０がレディー状態となると、メモリコントローラ２５０は、次の動作をメモリ１５０に指示する（ステップＳ２５５）。
【０１６４】
一方、メモリ１５０が第１動作中にデータ保持中断コマンドＲＳＶＲＳＴを受け取らなかった場合、このことを、ステートマシン１２０は図２１のステップＳ２２０での判断により知る。この場合、ステートマシン１２０は、そのまま、第２動作を実行する（ステップＳ２５１’〜Ｓ２５３’）。すなわち、プログラムおよびベリファイが、値ＣＣＯＭＰが１になるまで繰り返され、値ＣＣＯＭＰが１になると書き込みが終了する。
【０１６５】
このように、メモリコントローラ２５０がメモリ１５０の第１動作中にデータ保持中断コマンドＲＳＶＲＳＴをメモリ１５０に送信した場合、コマンドの送信から書き込み動作が中断するまでにかかる時間は、中断コマンドＲＳＴを用いた場合よりも長い。第１動作が継続するからである。
【０１６６】
メモリコントローラ２５０は、書き込み動作中にホスト機器３００から中断を指示された場合、データ保持中断コマンドＲＳＶＲＳＴに代えて、中断コマンドＲＳＴを送信することもできる。いずれのコマンドを送信するかは、中断の原因の緊急度、及びメモリシステム１０の全体の状況等に鑑みて、メモリコントローラ２５０が判断する。
【０１６７】
［第２動作中に中断が生じた場合］
次に、図２２を用いて、メモリ１５０での第２動作中にホスト機器３００がメモリコントローラ２５０に中断を指示した場合の書き込み動作のフローについて説明する。
【０１６８】
図２２に示されるように、メモリコントローラ２５０は、保持中断コマンドＲＳＶＲＳＴをメモリ１５０に送信する（ステップＳ２１５）。ステップＳ２１５は、メモリ１５０が第２動作中に行われたものとする。メモリ１５０がデータ保持中断コマンドＲＳＶＲＳＴを受け取ったことに基づいて、ステートマシン１２０は、“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを受け取り、信号ＣＭＤ＿ＲＳＶＲＳＴを受け取ったタイミングを判断する（ステップＳ２２０）。本例のように、ステートマシン１２０は、第２動作中に“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを受け取った場合、“Ｈ”レベルの信号ＣＭＤ＿ＲＳＶＲＳＴを受け取った時点で書き込み動作を中断する。
【０１６９】
この後、ステップＳ２２５およびＳ２３０が行われる。ステップＳ２３０で送信される状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰは“Ｈ”レベルである。よって、メモリコントローラ２５０は、メモリ１５０が第２動作中にデータ保持中断コマンドＲＳＶＲＳＴを受け取り、書き込み動作を中断したこと、ひいてはキャッシュＸＤＬ，ＵＤＬ，およびＬＤＬのいずれかの中の２ページ分のデータのうちの一部または全部が消失していることを知る。
【０１７０】
続く割り込み動作後のステップＳ２４５において、メモリコントローラ２５０は、書き込み動作を再開させるにあたり、書き込みコマンドＰＲＯを書き込み先のアドレスおよび書き込みデータと共にメモリ１５０に送信する。書き込み先のアドレスは、中断前に書き込み対象であったメモリセルのアドレスと同一であっても異なっていてもよい。
【０１７１】
（３）第２実施形態にかかる効果
第２実施形態によれば、メモリ１５０が第１動作中にデータ保持中断コマンドＲＳＶＲＳＴを受け取ると、ステートマシン１２０は第１動作が終了するまで書き込み動作を継続し、第１動作の終了後に書き込み動作を中断する。この構成に基づき、以下の１つまたは複数の効果を得られる。
【０１７２】
（Ａ）書き込み動作の中断の時点で第１動作が終了しているので、書き込み対象のメモリセルトランジスタＭＴは、すでに書き込みデータに応じて“Ａ１”〜“Ｃ１”レベルのいずれかにある。このような状態は、第２動作を経た状態よりも信頼には劣るものの一時的にデータが保持されている状態としては十分な信頼性を有する場合がある。このため、この一時的にデータがメモリセルトランジスタＭＴに保持されている状態の間に割り込み動作を行うことができる。
【０１７３】
（Ｂ）中断前と同一のトランジスタＭＴに対して書き込みを再開する場合、メモリ１５０は、第２動作の最初から書き込み動作を再開することができる。このことは、第１動作または第２動作の途中から再開する場合よりも、処理の管理および実行が容易である。また、不要であるにも関わらず第１動作を再度行うということが避けられ、書き込み時間の短縮が可能である。
【０１７４】
（４）第２実施形態の変形例
変形例は、メモリ１６０が第１動作中にデータ保持中断コマンドＲＳＶＲＳＴを受け取った場合の書き込み動作の再開の動作に関する。変形例について、図２３を用いて説明する。
【０１７５】
図２３のステップＳ２０５〜Ｓ２４０までの動作は、図２０の動作と同じである。続くステップＳ２４１において、メモリコントローラ２６０は、書き込み動作の再開にあたり、読み出しコマンドＲＤ１ｒをメモリ１６０に送信する。読み出しコマンドＲＤ１ｒは、書き込み動作を中断されたトランジスタＭＴからのデータ読み出しを指示する。読み出しコマンドＲＤ１ｒは、通常時の読み出しコマンドと異なり、“Ａ１”〜“Ｃ１”レベルの判定のための読み出し電圧の使用を指示する。
【０１７６】
ステートマシン１２０は、メモリ１６０が読み出しコマンドＲＤ１ｒを受け取ったことに基づいて、読み出しコマンドＲＤ１ｒに従ってデータの読み出しを行う（ステップＳ２４２）。読み出されたデータは、メモリコントローラ２６０により受け取られる。メモリコントローラ２６０は、この読み出しデータ中の誤りをＥＣＣ回路２６０を用いて訂正する。このメモリ１６０から読み出され訂正を施されたデータは、ステップＳ２０５での書き込みデータに相当する。
【０１７７】
メモリコントローラ２６０は、書き込みコマンドＰＲＯを書き込み先のアドレスおよび書き込みデータと共にメモリ１６０に送信する（ステップＳ２４５）。メモリ１６０が書き込みコマンドＰＲＯを受け取ると、ステートマシン１２０は書き込み動作を再開する（ステップＳ２５０）。
【０１７８】
このように、本変形例によれば、第１動作中に指示された書き込み動作の中断後で、その再開前に、メモリ１６０は読み出しコマンドＲＤ１ｒを受け取って、書き込み動作を中断されたトランジスタＭＴからデータを読み出す。このため、第１動作中に指示された書き込み動作の中断後の再開に備えてキャッシュＬＤＬ，ＵＤＬ，およびＸＤＬ中に書き込みデータを保持しなくても、メモリコントローラ２６０は、トランジスタＭＴに保持された一時的データを用いて書き込みデータを再生できる。このことは、メモリコントローラ２６０による書き込みデータの保持の必要性を排除する。これにより、例えば図２３のステップＳ２０５の後、バッファメモリ２４０中の書き込みデータを消去して、他の用途に利用できる。
【０１７９】
＜他の実施形態＞
動作のフローにおけるステップの順序は、可能である限り、相互に入れ替えが可能である。例えば、状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰの通知と、中断動作の実行と、割り込み動作の実行とは、入れ替えが可能である。例えば、書き込み動作を中断した後に状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを通知したり、割り込み動作を実行した後に状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰを送信してもよい。
【０１８０】
また、実施形態および変形例では、データの出力を伴わずに書き込みを再開する場合、通常の書き込みコマンドＰＲＯおよびＰＲＳ等とは異なる書き込みコマンドＰＲＯｒおよびＰＲＳｒ等が使用される例について説明したが、これに限られない。書き込みコマンドによる区別は行わず、例えば状態コードＣＯＤＥ＿ＰＷ１ＣＯＭＰが“Ｌ”レベルのとき書き込みコマンドを受け取ると、データ出力無しで書き込みを開始する機能をＮＡＮＤ型フラッシュメモリが有していてもよい。
【０１８１】
メモリセルトランジスタに書き込まれるデータは３ビットまたはそれ以上であってもよい。例えば３ビットである場合、一括して書き込まれるメモリセルトランジスタＭＴの組の記憶空間は、ロワーページ、ミドル（middle）ページ、及びアッパーページを有する。
【０１８２】
ＮＡＮＤストリングＮＳは、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）構造を有する平面ＮＡＮＤストリングであってもよい。
【０１８３】
上記実施形態および変形例では、メモリセルの記憶方式は２値記憶方式、多値記憶方式等を問わない。多値記憶方式のメモリセルにおける、読み出し動作、書き込み動作、および消去動作の例について、以下に詳述する。
【０１８４】
例えば、多値レベルの読み出し動作では、閾値電圧を低い方から順に、Ａレベル、Ｂレベル、及びＣレベルなどとする。かかる読み出し動作において、Ａレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば０Ｖ〜０．５５Ｖの間である。これに限定されることなく、０．１Ｖ〜０．２４Ｖ，０．２１Ｖ〜０．３１Ｖ，０．３１Ｖ〜０．４Ｖ，０．４Ｖ〜０．５Ｖ，０．５Ｖ〜０．５５Ｖ等のいずれかの間であってもよい。Ｂレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば１．５Ｖ〜２．３Ｖの間である。これに限定されることなく、１．６５Ｖ〜１．８Ｖ，１．８Ｖ〜１．９５Ｖ，１．９５Ｖ〜２．１Ｖ，２．１Ｖ〜２．３Ｖ等のいずれかの間であってもよい。Ｃレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば３．０Ｖ〜４．０Ｖの間である。これに限定されることなく、３．０Ｖ〜３．２Ｖ，３．２Ｖ〜３．４Ｖ，３．４Ｖ〜３．５Ｖ，３．５Ｖ〜３．６Ｖ，３．６Ｖ〜４．０Ｖ等のいずれかの間であってもよい。読み出し動作の時間（ｔＲ）としては、例えば２５μｓ〜３８μｓ，３８μｓ〜７０μｓ，７０μｓ〜８０μｓ等のいずれかの間であってよい。
【０１８５】
書き込み動作は、プログラム動作とベリファイ動作とを含む。書き込み動作においては、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば１３．７Ｖ〜１４．３Ｖの間である。これに限定されることなく、例えば１３．７Ｖ〜１４．０Ｖ，１４．０Ｖ〜１４．６Ｖ等のいずれかの間であってもよい。奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを異ならせてもよい。プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）としたとき、ステップアップの電圧として、例えば０．５Ｖ程度が挙げられる。非選択のワード線に印加される電圧としては、例えば６．０Ｖ〜７．３Ｖの間であってもよい。これに限定されることなく、例えば７．３Ｖ〜８．４Ｖの間であってもよく、６．０Ｖ以下であってもよい。非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかにより、印加するパス電圧を異ならせてもよい。書き込み動作の時間（ｔＰｒｏｇ）としては、例えば１７００μｓ〜１８００μｓ，１８００μｓ〜１９００μｓ，１９００μｓ〜２０００μｓの間であってよい。
【０１８６】
消去動作においては、半導体基板上部に配置され、かつ、メモリセルが上方に配置されたウェルに最初に印加される電圧は、例えば１２Ｖ〜１３．６Ｖの間である。これに限定されることなく、例えば１３．６Ｖ〜１４．８Ｖ，１４．８Ｖ〜１９．０Ｖ，１９．０Ｖ〜１９．８Ｖ，１９．８Ｖ〜２１Ｖ等のいずれかの間であってもよい。消去動作の時間（ｔＥｒａｓｅ）としては、例えば３０００μｓ〜４０００μｓ，４０００μｓ〜５０００μｓ，４０００μｓ〜９０００μｓの間であってよい。
【０１８７】
また、メモリセルは、例えば以下のような構造であってもよい。メモリセルは、シリコン基板等の半導体基板上に膜厚が４ｎｍ〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積膜を有する。この電荷蓄積膜は、膜厚が２ｎｍ〜３ｎｍのシリコン窒化（ＳｉＮ）膜、またはシリコン酸窒化（ＳｉＯＮ）膜などの絶縁膜と、膜厚が３ｎｍ〜８ｎｍのポリシリコン（Ｐｏｌｙ−Ｓｉ）膜との積層構造にすることができる。ポリシリコン膜には、ルテニウム（Ｒｕ）などの金属が添加されていても良い。メモリセルは、電荷蓄積膜の上に絶縁膜を有する。この絶縁膜は、例えば膜厚が３ｎｍ〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と、膜厚が３ｎｍ〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜とに挟まれた、膜厚が４ｎｍ〜１０ｎｍのシリコン酸化（ＳｉＯ）膜を有する。Ｈｉｇｈ−ｋ膜の材料としては、酸化ハフニウム（ＨｆＯ）などが挙げられる。また、シリコン酸化膜の膜厚は、Ｈｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には、膜厚が３ｎｍ〜１０ｎｍの仕事関数調整用の膜を介して、膜厚が３０ｎｍ〜７０ｎｍの制御電極が設けられる。ここで仕事関数調整用膜は、例えば酸化タンタル（ＴａＯ）などの金属酸化膜、窒化タンタル（ＴａＮ）などの金属窒化膜等である。制御電極には、タングステン（Ｗ）などを用いることができる。メモリセル間にはエアギャップを配置することができる。
【０１８８】
以上のように、各実施形態および変形例について説明したが、これらの実施形態等は、例として提示したものであり、これらの実施形態等の技術的思想は、構成部品の材質、形状、構造、配置等を限定するものではない。これら新規な実施形態等は、その他の様々な形態で実施されることが可能であり、実施段階ではその要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。さらに、上記の実施形態等には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。
【符号の説明】
【０１８９】
１００  ＮＡＮＤ型フラッシュメモリ（半導体記憶装置）
１２０  ステートマシン（制御回路）
２００  メモリコントローラ
ＭＴ    メモリセルトランジスタ（メモリセル）
ＰＷ１ＣＯＭＰ  レジスタ
【図１】
0006453718.tif 000002
【図２】
0006453718.tif 000003
【図３】
0006453718.tif 000004
【図４】
0006453718.tif 000005
【図５】
0006453718.tif 000006
【図６】
0006453718.tif 000007
【図７】
0006453718.tif 000008
【図８】
0006453718.tif 000009
【図９】
0006453718.tif 000010
【図１０】
0006453718.tif 000011
【図１１】
0006453718.tif 000012
【図１２】
0006453718.tif 000013
【図１３】
0006453718.tif 000014
【図１４】
0006453718.tif 000015
【図１５】
0006453718.tif 000016
【図１６】
0006453718.tif 000017
【図１７】
0006453718.tif 000018
【図１８】
0006453718.tif 000019
【図１９】
0006453718.tif 000020
【図２０】
0006453718.tif 000021
【図２１】
0006453718.tif 000022
【図２２】
0006453718.tif 000023
【図２３】
0006453718.tif 000024