(57)【特許請求の範囲】
【請求項１】
半導体記憶装置とコントローラとを含むメモリシステムであって、
前記コントローラは、第１乃至第４ページ及び前記第１乃至第４ページにそれぞれ対応する第１乃至第４アドレス信号を前記半導体記憶装置に送信可能であり、
前記半導体記憶装置は、
各々の第１及び第２ビットに前記第１及び第２ページをそれぞれ記憶可能な複数の第１メモリセルを含む第１メモリセルアレイと、
各々の前記第１及び第２ビットに前記第３及び第４ページをそれぞれ記憶可能な複数の第２メモリセルを含む第２メモリセルアレイと、
前記第１メモリセルアレイに接続された第１センスアンプと、
前記第２メモリセルアレイに接続された第２センスアンプと、
前記第１センスアンプに接続され、前記コントローラから送信される前記第１及び第２ページの１つを保持可能な第１キャッシュと、
前記第１センスアンプ及び前記第１キャッシュに接続され、前記第１キャッシュから転送される前記第１ページを保持可能な第２キャッシュと、
前記第１センスアンプ及び前記第１キャッシュに接続され、前記第１キャッシュから転送される前記第２ページを保持可能な第３キャッシュと、
前記第２センスアンプに接続され、前記コントローラから送信される前記第３及び第４ページの１つを保持可能な第４キャッシュと、
前記第２センスアンプ及び前記第４キャッシュに接続され、前記第４キャッシュから転送される前記第３ページを保持可能な第５キャッシュと、
前記第２センスアンプ及び前記第４キャッシュに接続され、前記第４キャッシュから転送される前記第４ページを保持可能な第６キャッシュと、
前記コントローラから受信した前記第１乃至第４アドレス信号に基づいて前記第１及び第２センスアンプに第１乃至第４信号を送信するアドレスバッファと、
を備え、
前記アドレスバッファは、前記第１アドレス信号を受信した場合、前記第１信号を第１論理レベルとし、前記第２信号を第２論理レベルとし、前記第２アドレス信号を受信した場合、前記第１及び第２信号を第１論理レベルとし、前記第３アドレス信号を受信した場合、前記第３信号を第１論理レベルとし、前記第４信号を第２論理レベルとし、前記第４アドレス信号を受信した場合、前記第３及び第４信号を第１論理レベルとし、
前記第１センスアンプは、前記第１及び第２信号に基づいて、前記第２キャッシュまたは前記第３キャッシュを選択し、
前記第２センスアンプは、前記第３及び第４信号に基づいて、前記第５キャッシュまたは前記第６キャッシュを選択する
メモリシステム。
【請求項２】
前記コントローラは、第１コマンドを前記半導体記憶装置に送信し、
前記半導体記憶装置は、前記第１コマンドに基づいて、前記第２及び第３キャッシュにそれぞれ保持されている前記第１及び第２ページを前記第１メモリセルアレイに書き込み、前記第５及び第６キャッシュにそれぞれ保持されている前記第３及び第４ページを前記第２メモリセルアレイに書き込む
請求項１記載のメモリシステム。
【請求項３】
前記コントローラは、第２コマンドを前記半導体記憶装置に送信し、
前記第１センスアンプは、前記第１信号が前記第１論理レベルの場合、前記第２コマンド及び前記第２信号に基づいて前記第１キャッシュの保持データを前記第２及び第３キャッシュの１つに転送し、
前記第２センスアンプは、前記第３信号が前記第１論理レベルの場合、前記第２コマンド及び前記第４信号に基づいて前記第４キャッシュの保持データを前記第５及び第６キャッシュの１つに転送する
請求項１または２記載のメモリシステム。
【請求項４】
前記コントローラは、第３コマンドを前記半導体記憶装置に送信し、
前記第１センスアンプは、前記第１信号が前記第１論理レベルの場合、前記第３コマンド及び前記第２信号に基づいて前記第１キャッシュの保持データと、前記第２及び第３キャッシュの１つの保持データとの論理演算をし、
前記第２センスアンプは、前記第３信号が前記第１論理レベルの場合、前記第３コマンド及び前記第４信号に基づいて前記第４キャッシュの保持データと、前記第５及び第６キャッシュの１つの保持データとの論理演算をする
請求項１乃至３のいずれか一項記載のメモリシステム。
【請求項５】
前記コントローラは、第４コマンドを前記半導体記憶装置に送信し、
前記第１センスアンプは、前記第１信号が前記第１論理レベルの場合、前記第４コマンドに基づいて前記第２キャッシュが保持する前記第１ページと前記第３キャッシュが保持する前記第２ページとを入れ替え、
前記第２センスアンプは、前記第３信号が前記第１論理レベルの場合、前記第４コマンドに基づいて前記第５キャッシュが保持する前記第１ページと前記第６キャッシュが保持する前記第２ページとを入れ替える
請求項１乃至４のいずれか一項記載のメモリシステム。
【請求項６】
前記コントローラは、第５コマンドを前記半導体記憶装置に送信し、
前記第１センスアンプは、前記第１信号が前記第１論理レベルの場合、前記第５コマンド及び前記第２信号に基づいて前記第２及び第３キャッシュの１つの保持データを前記第２及び第３キャッシュの前記１つが保持した状態で前記第１キャッシュに転送し、
前記第２センスアンプは、前記第３信号が前記第１論理レベルの場合、前記第５コマンド及び前記第４信号に基づいて前記第５及び第６キャッシュの１つの保持データを前記第５及び第６キャッシュの前記１つが保持した状態で前記第４キャッシュに転送する
請求項１乃至５のいずれか一項記載のメモリシステム。
【請求項７】
前記コントローラは、第６コマンドを前記半導体記憶装置に送信し、
前記半導体記憶装置は、前記第６コマンドを受信した場合、前記第１キャッシュから前記第２及び第３キャッシュの１つへのデータ転送と、前記第４キャッシュから前記第５及び第６キャッシュの１つへのデータ転送とを保留する
請求項１乃至６のいずれか一項記載のメモリシステム。
【請求項８】
前記半導体記憶装置は、前記第１及び第３信号が前記第１論理レベルの場合、前記第１キャッシュから前記第２及び第３キャッシュの前記１つへのデータ転送と、前記第４キャッシュから前記第５及び第６キャッシュの前記１つへのデータ転送とを同時に実施する
請求項３記載のメモリシステム。
【請求項９】
各々の第１及び第２ビットに第１及び第２ページをそれぞれ記憶可能な複数のメモリセルを含む第１メモリセルアレイと、
各々の前記第１及び第２ビットに第３及び第４ページをそれぞれ記憶可能な複数の第２メモリセルを含む第２メモリセルアレイと、
前記第１メモリセルアレイに接続された第１センスアンプと、
前記第２メモリセルアレイに接続された第２センスアンプと、
前記第１センスアンプに接続され、前記第１及び第２ページの１つを保持可能な第１キャッシュと、
前記第１センスアンプ及び前記第１キャッシュに接続され、前記第１キャッシュから転送される前記第１ページを保持可能な第２キャッシュと、
前記第１センスアンプ及び前記第１キャッシュに接続され、前記第１キャッシュから転送される前記第２ページを保持可能な第３キャッシュと、
前記第２センスアンプに接続され、前記第３及び第４ページの１つを保持可能な第４キャッシュと、
前記第２センスアンプ及び前記第４キャッシュに接続され、前記第４キャッシュから転送される前記第３ページを保持可能な第５キャッシュと、
前記第２センスアンプ及び前記第４キャッシュに接続され、前記第４キャッシュから転送される前記第４ページを保持可能な第６キャッシュと、
前記第１乃至第４ページに対応する第１乃至第４アドレス信号に基づいて前記第１及び第２センスアンプに第１乃至第４信号を送信するアドレスバッファと、
を備え、
前記アドレスバッファは、前記第１アドレス信号を受信した場合、第１信号を第１論理レベルとし、前記第２信号を第２論理レベルとし、前記第２アドレス信号を受信した場合、前記第１及び第２信号を第１論理レベルとし、前記第３アドレス信号を受信した場合、前記第３信号を第１論理レベルとし、前記第４信号を第２論理レベルとし、前記第４アドレス信号を受信した場合、前記第３及び第４信号を第１論理レベルとし、
前記第１センスアンプは、前記第１及び第２信号に基づいて、前記第２キャッシュまたは前記第３キャッシュを選択し、
前記第２センスアンプは、前記第３及び第４信号に基づいて、前記第５キャッシュまたは前記第６キャッシュを選択する
半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１９２７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
処理能力を向上できる半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態に係るメモリシステムは、半導体記憶装置とコントローラとを備える。コントローラは、第１乃至第４ページ及び第１乃至第４ページにそれぞれ対応する第１乃至第４アドレス信号を半導体記憶装置に送信可能である。半導体記憶装置は、各々の第１及び第２ビットに第１及び第２ページを記憶可能な複数の第１メモリセルを含む第１メモリセルアレイと、各々の第１及び第２ビットに第３及び第４ページをそれぞれ記憶可能な複数の第２メモリセルを含む第２メモリセルアレイと、第１メモリセルアレイに接続された第１センスアンプと、第２メモリセルアレイに接続された第２センスアンプと、第１センスアンプに接続され、コントローラから送信される第１及び第２ページの１つを保持可能な第１キャッシュと、第１センスアンプ及び第１キャッシュに接続され、第１キャッシュから転送される第１ページを保持可能な第２キャッシュと、第１センスアンプ及び第１キャッシュに接続され、第１キャッシュから転送される第２ページを保持可能な第３キャッシュと、第２センスアンプに接続され、コントローラから送信される第３及び第４ページの１つを保持可能な第４キャッシュと、第２センスアンプ及び第４キャッシュに接続され、第４キャッシュから転送される第３ページを保持可能な第５キャッシュと、第２センスアンプ及び第４キャッシュに接続され、第４キャッシュから転送される第４ページを保持可能な第６キャッシュと、コントローラから受信した第１乃至第４アドレス信号に基づいて第１及び第２センスアンプに第１乃至第４信号を送信するアドレスバッファとを含む。アドレスバッファは、第１アドレス信号を受信した場合、第１信号を第１論理レベルとし、第２信号を第２論理レベルとし、第２アドレス信号を受信した場合、第１及び第２信号を第１論理レベルとし、第３アドレス信号を受信した場合、第３信号を第１論理レベルとし、第４信号を第２論理レベルとし、第４アドレス信号を受信した場合、第３及び第４信号を第１論理レベルとする。第１センスアンプは、第１及び第２信号に基づいて、第２キャッシュまたは第３キャッシュを選択し、第２センスアンプは、第３及び第４信号に基づいて、第５キャッシュまたは第６キャッシュを選択する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図である。
【図２】図２は、第１実施形態に係る半導体記憶装置のブロック図である。
【図３】図３は、第１実施形態に係る半導体記憶装置のコア部のブロック図である。
【図４】図４は、第１実施形態に係る半導体記憶装置におけるメモリセルトランジスタが２ビットのデータを保持可能な場合の閾値分布図である。
【図５】図５は、第１実施形態に係るメモリシステムにおけるコントローラから半導体記憶装置にデータを送信する際の各種信号のタイミングチャートである。
【図６】図６は、第１実施形態に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図７】図７は、第１実施形態に係る半導体記憶装置における各種制御信号の論理状態を示す図である。
【図８】図８は、第２実施形態に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図９】図９は、第２実施形態に係る半導体記憶装置における各種制御信号の論理状態を示す図である。
【図１０】図１０は、第３実施形態に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図１１】図１１は、第３実施形態に係る半導体記憶装置における各種制御信号の論理状態を示す図である。
【図１２】図１２は、第４実施形態に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図１３】図１３は、第４実施形態に係る半導体記憶装置における各種制御信号の論理状態を示す図である。
【図１４】図１４は、第５実施形態に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図１５】図１５は、第５実施形態に係る半導体記憶装置における各種制御信号の論理状態を示す図である。
【図１６】図１６は、第６実施形態に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図１７】図１７は、第６実施形態に係る半導体記憶装置における各種制御信号の論理状態を示す図である。
【図１８】図１８は、第１変形例に係るメモリシステムのブロック図である。
【図１９】図１９は、第１変形例に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図２０】図２０は、第２変形例に係るメモリシステムにおけるデータ書き込み時の各種信号のタイミングチャートとセンスユニットにおけるデータの保持状態とを示す図である。
【図２１】図２１は、第２変形例に係る半導体記憶装置における各種制御信号の論理状態を示す図である。
【図２２】図２２は、第７実施形態に係る三次元積層型不揮発性半導体記憶装置の回路構成を示すブロック図である。
【図２３】図２３は、第７実施形態に係るメモリセルアレイのブロック図である。
【図２４】図２４は、ブロックＢＬＫ０の回路図である。他のブロックＢＬＫも同様の構成を有している。
【図２５】図２５は、ＮＡＮＤストリングの断面図である。
【図２６】図２６（ａ）は、第７実施形態に係るメモリセルトランジスタＭＴの閾値分布の初期状態を示す。図２６（ｂ）は、下位ビット書込み完了後の第７実施形態に係るメモリセルトランジスタＭＴの閾値分布を示す。図２６（ｃ）は、上位ビット書込み、または２ビットプログラム完了後の第７実施形態に係るメモリセルトランジスタＭＴの閾値分布を示す。
【図２７】図２７は、第７実施形態に係る書込み動作のフローチャートである。
【図２８】図２８は、第７実施形態に係る書込み動作の具体例１である。
【図２９】図２９は、第７実施形態に係る書込み動作の具体例２である。
【図３０】図３０は、第８実施形態に係る書込み動作のフローチャートである。
【図３１】図３１は、第８実施形態に係る書込み動作の具体例である。
【図３２】図３２は、第９実施形態に係る書込み動作のフローチャートである。
【図３３】図３３は、第１０実施形態に係る書込み動作のフローチャートである。
【図３４】図３４は、第１０実施形態に係る下位ページデータの変化方法を示す図である。
【図３５】図３５は、第１０実施形態に係る下位ページデータの変化方法を示す図である。
【図３６】図３６は、第１０実施形態に係る書き込みデータの処理方法を示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係る半導体記憶装置及びメモリシステムについて説明する。以下では半導体記憶装置として、メモリセルトランジスタが半導体基板上に二次元に配置された平面型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００９】
１．１  構成について  
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの全体構成について、図１を用いて説明する。
【００１０】
図示するように、メモリシステム１は、例えば複数のＮＡＮＤ型フラッシュメモリ１００、１つのコントローラ２００、及び１つのホスト機器３００を備える。図および以下の説明は、ＮＡＮＤ型フラッシュメモリ１００（１００＿０、１００＿１）が２つの例に基づく。１つまたは３つ以上のＮＡＮＤ型フラッシュメモリ１００がコントローラ２００に接続されても良い。
【００１１】
各々のＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルトランジスタを備え、データを不揮発に記憶することができる。ＮＡＮＤ型フラッシュメモリ１００は、ＮＡＮＤバスによってコントローラ２００と接続され、コントローラ２００からの命令に基づいて動作する。すなわち、各ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００と、例えば８ビットの入出力信号IO＜7：0＞の送受信を行う。入出力信号IO＜7：0＞は、例えばコマンド、アドレス信号、データである。また、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から、制御信号を受信し、状態コード信号を送信する。
【００１２】
制御信号は、チップイネーブル信号CEn0およびCEn1、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、及びライトプロテクト信号WPn等を含む。信号WEn、REn、CLE、ALE、及びWPnは、ＮＡＮＤ型フラッシュメモリ１００＿０および１００＿１により受け取られる。一方、信号CEn0はＮＡＮＤ型フラッシュメモリ１００＿０により受け取られ、信号CEn1はＮＡＮＤ型フラッシュメモリ１００＿１により受け取られる。
【００１３】
信号CEn（CEn0およびCEn1）は、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００をイネーブル状態とするための信号であり、“Ｌ”レベルでアサートされる。ライトイネーブル信号WEnは、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００が入出力信号IO＜7：0＞を取り込むための信号であり、“Ｌ”レベルでアサートされる。よって、WEnがトグルされる度に、入出力信号IO＜7：0＞がＮＡＮＤ型フラッシュメモリ１００に取り込まれる。信号REnは、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００が入出力信号IO＜7：0＞を出力するための信号であり、“Ｌ”レベルでアサートされる。信号CLEは、入出力信号IO＜7：0＞がコマンドであることを示す信号であり、“Ｈ”レベルでアサートされる。信号ALEは、入出力信号IO＜7：0＞がアドレス信号であることを示す信号であり、“Ｈ”レベルでアサートされる。信号WPnは、この信号を受け取ったＮＡＮＤ型フラッシュメモリ１００に入出力信号IO＜7：0＞の取り込みの禁止を命令するための信号であり、“Ｌ”レベルでアサートされる。
【００１４】
状態コード信号は、ＮＡＮＤ型フラッシュメモリ１００の種々の状態を示し、レディ／ビジー信号RBn（RBn0およびRBn1）を含む。レディ／ビジー信号RBnは、ＮＡＮＤ型フラッシュメモリ１００がビジー状態であるか否か（コントローラ２００からコマンドを受信不可能な状態か可能な状態か）を示す信号であり、ビジー状態の際に“Ｌ”レベルとなる。信号RBn0はＮＡＮＤ型フラッシュメモリ１００＿０から出力され、信号RBn1はＮＡＮＤ型フラッシュメモリ１００＿１から出力される。コントローラ２００は、状態コード信号を受け取ることで、各ＮＡＮＤ型フラッシュメモリ１００の状態を知ることができる。
コントローラ２００は、ホスト機器３００からの命令に基づいて、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し、書き込み、読み出し及び消去等を命令する。
【００１５】
コントローラ２００は、ホストインターフェイス回路２０１、メモリ（ＲＡＭ）２０２、プロセッサ（ＣＰＵ）２０３、バッファメモリ２０４、ＮＡＮＤインターフェイス回路２０５、及びＥＣＣ（error correction code）回路２０６を備える。
【００１６】
ホストインターフェイス回路２０１は、例えばＳＤカードバスやＰＣＩｅバスといったコントローラバスを介してホスト機器３００と接続され、コントローラ２００とホスト機器３００との通信を司る。
【００１７】
ＮＡＮＤインターフェイス回路２０５は、ＮＡＮＤバスを介して各ＮＡＮＤ型フラッシュメモリ１００と接続され、コントローラ２００とＮＡＮＤ型フラッシュメモリ１００との通信を司る。
【００１８】
ＣＰＵ２０３は、コントローラ２００全体の動作を制御する。
【００１９】
メモリ２０２は、例えばＤＲＡＭ（dynamic random access memory）等であり、ＣＰＵ２３０の作業領域として使用される。
【００２０】
バッファメモリ２０４は、ＮＡＮＤ型フラッシュメモリ１００に送信されるデータ、及びＮＡＮＤ型フラッシュメモリ１００から送信されたデータを一時的に保持する。
【００２１】
ＥＣＣ回路２０６は、誤り訂正符号を用いてデータの誤りを検出および訂正する。
【００２２】
１．１．２  半導体記憶装置の構成について  
次に半導体記憶装置の構成について図２を用いて説明する。
【００２３】
図示するように、ＮＡＮＤ型フラッシュメモリ１００は、コア部１１０と、周辺回路部１２０を備えている。
【００２４】
コア部１１０は、メモリセルアレイ１１１、ロウデコーダ１１２、及びセンスユニット１１３を含む。なおコア部１１０は、複数のメモリセルアレイ１１１を含んでも良い。
【００２５】
メモリセルアレイ１１１は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。
【００２６】
ロウデコーダ１１２は、例えばデータの書き込み、及び読み出しの際、ブロックアドレスBLKADDやページアドレスPAGADDをデコードして、対象となるワード線を選択する。
【００２７】
センスユニット１１３は、カラムアドレスCOLADDに基づき、読み出し時にはメモリセルアレイ１１１の選択されたカラムのデータを出力し、書き込み時には、データバッファ１２７から転送された書き込みデータを、メモリセルアレイ１１１に転送する。また、センスユニット１１３は、キャッシュ、及びセンスアンプを含む。キャッシュは複数個設けられ、データを一時的に保持する。センスアンプは、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータをセンスする。またデータの書き込み時には、書き込みデータをメモリセルトランジスタに転送する。
【００２８】
周辺回路部１２０は、入力バッファ１２１及び１２２、出力バッファ１２３及び１２４、アドレスバッファ１２５、コマンドデコーダ１２６、データバッファ１２７、セレクタ１２８、ステートマシン１２９、及びメモリセル制御レジスタ１３０を含む。
【００２９】
入力バッファ１２１は、前述した各種制御信号（チップイネーブル信号CEn、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、及びライトプロテクト信号WPn）を受信する入力ピンに接続される。そして入力バッファ１２１は、受信した各種制御信号に基づいて、入力バッファ１２２、出力バッファ１２３、コマンドデコーダ１２６、あるいはデータバッファ１２７を制御する。
【００３０】
入力バッファ１２２は、入出力信号IO＜7：0＞を入出力する入出力ピン（端子）と接続される。入力バッファ１２２は、入力バッファ１２１の制御に基づいて、アドレス信号を信号DINとしてアドレスバッファ１２５に送信し、コマンドを信号DINとしてコマンドデコーダ１２６に送信し、データを信号DINとしてデータバッファ１２７に送信する。
【００３１】
出力バッファ１２３は、入出力する入出力ピン（端子）と接続される。出力バッファ１２３は、入力バッファ１２１の制御に基づいて、メモリセルアレイ１１１から読み出された読み出しデータ等を入出力信号IO＜7：0＞としてコントローラ２００に出力する。
【００３２】
出力バッファ１２４は、レディ／ビジー信号RBnを出力する出力ピンと接続される。出力バッファ１２４は、ステートマシン１２９から受信したレディ／ビジー信号RBをレディ／ビジー信号RBnとしてコントローラ２００に送信する。
【００３３】
アドレスバッファ１２５は、入力バッファ１２２を介してコントローラ２００から受信したアドレス信号を一時的に保持する。そしてアドレスバッファ１２５は、ロウアドレス（ブロックアドレスBLKADD及び／またはページアドレスPAGADD）、カラムアドレスCOLADD、信号PLN0_PG2、信号PLN1_PG2、信号DoPLN0、及び信号DoPLN1をメモリセル制御レジスタ１３０に送信する。信号PLN0_PG2、信号PLN1_PG2、信号DoPLN0、及び信号DoPLN1は、アドレス信号に応じて、センスユニット１１３内において対象となるキャッシュを指定するための制御信号であり、詳細については後述する。
【００３４】
なお、ページアドレスPAGADDには、例えばワード線ＷＬ、奇数／偶数ビット線Ｅ／Ｏ、ストリングアドレス、あるいは下位ページ／中間ページ／上位ページ（Ｌ／Ｍ／Ｕ）等に関する情報が含まれていても良い。
【００３５】
ページアドレスの構成については、例えば、“不揮発性半導体記憶装置及びその制御方法(NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND CONTROL METHOD THEREOF)”という２０１３年３月４日に出願された米国特許出願１３／７８４，７５３号に記載されている。本特許出願は、その全体が本願明細書において参照により援用されている。
【００３６】
コマンドデコーダ１２６は、入力バッファ１２１から受信した各種コマンドをデコードする。そしてコマンドデコーダ１２６は、デコードの結果に基づいて信号CMD_TC2をメモリセル制御レジスタ１３０に送信する。信号CMD_TC2は、センスユニット１１３において、キャッシュ間のデータの転送を命令するための制御信号である。また、コマンドデコーダ１２６は、デコードの結果をステートマシン１２９に送信する。
【００３７】
データバッファ１２７は、コントローラ２００から受信したデータ（書き込みデータ）を一時的に保持する。そしてデータバッファ１２７は、セレクタ１２８を介して、センスユニット１１３にデータを送信する。
【００３８】
セレクタ１２８は、双方向バスＹＩＯのデータ方向を決定し、書き込みデータをデータバッファ１２７からセンスユニット１１３にデータを転送し、読み出しデータをセンスユニット１１３から出力バッファ１２３に転送する。
【００３９】
ステートマシン１２９は、コマンドデコーダ１２６のデコード結果に応じて、書き込み、読み出し、消去等の動作を司る。そして、ステートマシン１２９は、制御信号をメモリセル制御レジスタ１３０に送信し、コア部１１０の動作状況に応じてレディ／ビジー信号RBを出力バッファ１２４に送信する。
【００４０】
メモリセル制御レジスタ１３０は、アドレスバッファ１２５から受信したロウアドレス（ブロックアドレスBLKADD及び／またはページアドレスPAGADD）及びカラムアドレスCOLADDを、ロウデコーダ１１２及びセンスユニット１１３に、それぞれ送信する。またメモリセル制御レジスタ１３０は、アドレスバッファ１２５、コマンドデコーダ１２６、及びステートマシン１２９から受信した制御信号をセンスユニット１１３に送信する。
【００４１】
なお、図２では各ブロック間の接続の一部を矢印線で示しているが、ブロック間の接続はこれに限定されない。
【００４２】
１．１．３  コア部の構成について  
次にコア部１１０の構成について、図３を用いて説明する。図３の例では、コア部が２つのメモリセルアレイ１１１を含む場合について説明する。
【００４３】
図示するように、コア部１１０は、２つのプレーンＰＬＮ０及びＰＬＮ１を含む。プレーンＰＬＮは、メモリセルトランジスタへのデータの書き込み、及びメモリセルトランジスタＭＴからのデータの読み出しを行うユニットである。プレーンＰＬＮ０及びＰＬＮ１は互いに独立して動作可能であり、また同時に動作することも可能である。なお、プレーンＰＬＮは２つに限定されず、１つでも、３つ以上でも良い。
【００４４】
各プレーンＰＬＮは、メモリセルアレイ１１１及びロウデコーダ１１２を含む。以下ではプレーンＰＬＮ０のメモリセルアレイを１１１＿０と表記し、ロウデコーダを１１２＿０と表記する。プレーンＰＬＮ１のメモリセルアレイを１１１＿１と表記し、ロウデコーダを１１２＿１と表記する。また各プレーンＰＬＮは、センスユニット１１３にそれぞれ接続される。
【００４５】
メモリセルアレイ１１１は、複数の不揮発性メモリセルトランジスタの集合である複数のブロックＢＬＫを含む。例えばメモリセルトランジスタＭＴが保持するデータはブロックＢＬＫ単位で消去される。以下ではプレーンＰＬＮ０のブロックＢＬＫをＢＬＫｍ＿０（ｍは０以上の整数）と表記し、プレーンＰＬＮ１のブロックＢＬＫをＢＬＫｍ＿１と表記する。なお各プレーンＰＬＮにおけるブロックＢＬＫは異なっていても良く、個数は限定されない。
【００４６】
ブロックＢＬＫの各々は、メモリセルトランジスタが直列接続された複数のＮＡＮＤストリング１１４を備えている。ＮＡＮＤストリング１１４の各々は、例えば１６個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ１５）、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。なお、メモリセルトランジスタＭＴは、電荷蓄積層に絶縁膜を用いたＭＯＮＯＳ型であっても良いし、電荷蓄積層に導電膜を用いたＦＧ型であっても良い。更に、メモリセルトランジスタＭＴの個数は１６個に限られず、８個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。
【００４７】
メモリセルトランジスタＭＴ０〜ＭＴ１５は、その電流経路が直列に接続される。この直列接続の一端側のメモリセルトランジスタＭＴ０のドレインは、選択トランジスタＳＴ１のソースに接続され、他端側のメモリセルトランジスタＭＴ１５のソースは、選択トランジスタＳＴ２のドレインに接続されている。
【００４８】
同一のブロックＢＬＫ内にある選択トランジスタＳＴ１のゲートは、同一のセレクトゲート線ＳＧＤに共通に接続される。同様に、同一のブロックＢＬＫ内にある選択トランジスタＳＴ２のゲートは、同一のセレクトゲート線ＳＧＳに共通に接続される。
【００４９】
また、ブロックＢＬＫ内の各ＮＡＮＤストリング１１４のメモリセルトランジスタＭＴの制御ゲートは、それぞれ異なるワード線ＷＬ０〜ＷＬ１５に共通に接続される。
【００５０】
また、各プレーンＰＬＮにおいて、同一列にあるＮＡＮＤストリング１１４の選択トランジスタＳＴ１のドレインは、いずれかのビット線ＢＬに共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１１４を共通に接続する。以下、プレーンＰＬＮ０のビット線ＢＬをＢＬｋ＿０（ｋは０以上の整数）と表記し、プレーンＰＬＮ１のビット線ＢＬをＢＬｋ＿１と表記する。なお、プレーン０とプレーン１におけるビット線ＢＬの本数は異なっていても良く、本数は限定されない。
【００５１】
また、プレーンＰＬＮ内の各ブロックＢＬＫ内にある選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。なお、プレーンＰＬＮ０及びＰＬＮ１のソース線ＳＬは共通に接続されて、図示せぬソース線ドライバに接続されていても良く、プレーンＰＬＮ毎に異なるソース線ドライバに接続されていても良い。
【００５２】
なお、本例ではメモリセルトランジスタＭＴが半導体基板上に二次元に配置されている場合を例に説明するが、半導体基板上方に三次元に積層される場合であっても良い。
【００５３】
三次元積層型ＮＡＮＤ型フラッシュメモリにおけるメモリセルアレイ１１１の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００５４】
更に、データの消去範囲は、１つのブロックＢＬＫに限定されず、複数のブロックＢＬＫが一括して消去されても良く、１つのブロックＢＬＫ内の一部の領域が一括して消去されても良い。
【００５５】
データの消去については、例えば、“不揮発性半導体記憶装置”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。また、“不揮発性半導体記憶装置”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００５６】
次にセンスユニット１１３の構成について説明する。
【００５７】
センスユニット１１３は、各プレーンＰＬＮに対応してセンスアンプ１１５（１１５＿０及び１１５＿１）、第１キャッシュ（ＸＤＬ）１１６（１１６＿０及び１１６＿１）、第２キャッシュ（ＡＤＬ）１１７（１１７＿０及び１１７＿１）、及び第３キャッシュ（ＢＤＬ）１１８（１１８＿０及び１１８＿１）を備える。なお各プレーンＰＬＮに対応したキャッシュの個数は、任意に設定可能であり、例えばメモリセルトランジスタＭＴが保持するデータのビット数により異なっていても良い。
【００５８】
センスアンプ１１５は対応するプレーンＰＬＮ内の各ビット線ＢＬと、内部バス１１９（１１９＿０及び１１９＿１）とに接続される。書き込み時には、センスアンプ１１５は、内部バス１１９から入力されたデータ、より具体的には例えば第２キャッシュ１１７及び／または第３キャッシュ１１８に保持されたデータをビット線ＢＬに出力する。またセンスアンプ１１５は、読み出し時にはビット線ＢＬから読み出されたデータを内部バス１１９に出力する。以下、センスアンプ１１５が、１つのプレーンＰＬＮから一括して読み出し及び書き込みを行うデータを「ページ」と呼ぶ。よって、書き込み及び読み出し時に選択ワード線ＷＬ及び選択ビット線ＢＬに接続された複数のメモリセルトランジスタＭＴが１つのページを構成するメモリセルユニットとなる。なお本実施形態は、プレーンＰＬＮ毎にセンスアンプ１１５が設けられているが、各プレーンＰＬＮに共通のセンスアンプ１１５が、１つ設けられても良い。
【００５９】
第１乃至第３キャッシュ１１６〜１１８は、センスアンプ１１５が一括して書き込み及び読み出しを行うのに必要なバイト数で構成されており、例えば１ページ１６Ｋバイトのデータが保持可能である。なお１６Ｋバイトは、正確には１６３８４バイトである。そして、第１乃至第３キャッシュ１１６〜１１８は、１６Ｋバイトに余剰領域、例えば５１２バイトを含めた構成であっても良い。
【００６０】
第１キャッシュ１１６は、内部バス１１９と双方向バスＹＩＯとに接続される。そして書き込み時には、第１キャッシュ１１６は、双方向バスＹＩＯを介して受信した書き込みデータを格納する。センスユニット１１３は、メモリセル制御レジスタ１３０からの制御信号に応じて、第１キャッシュ１１６に格納されたデータを、第２キャッシュ１１７あるいは第３キャッシュ１１８に転送する。また、読み出し時には、第１キャッシュ１１６は、内部バス１１９を介して受信した読み出しデータを格納する。そして、センスユニット１１３は、メモリセル制御レジスタ１３０からの制御信号に応じて、第１キャッシュ１１６に格納したデータを、双方向バスＹＩＯを介して出力バッファ１２３に送信する。
【００６１】
第２キャッシュ１１７は、内部バス１１９に接続され、受信したデータを内部に格納する。第２キャッシュ１１７に格納されたデータは、メモリセル制御レジスタ１３０からの制御信号に応じて、センスアンプ１１５、第１キャッシュ１１６、あるいは第３キャッシュ１１８との間で送受信される。第３キャッシュ１１８も同様である。
【００６２】
１．２  メモリセルトランジスタの閾値分布について  
次に、メモリセルトランジスタＭＴの取りうる閾値分布について、例えば２ビットのデータを保持可能な場合について、図４を用いて説明する。以下、本実施形態では、メモリセルトランジスタＭＴが２ビットのデータを保持可能な場合について説明するが、１ビットでも３ビット以上でも良く、保持可能なビット数は限定されない。
【００６３】
図示するように各メモリセルトランジスタＭＴの閾値電圧は、上位（ｕｐｐｅｒ）ビット（または上位データ）及び下位（ｌｏｗｅｒ）ビット（下位データ）による２ビットデータ、すなわち“１１”、“０１”、“００”、及び“１０”データを保持可能である。
【００６４】
“１１”データの閾値電圧は“Ｅ”レベルであり、電圧ＶＡよりも低い値である。
【００６５】
“０１”、“００”、及び“１０”データの閾値電圧は、それぞれ“Ａ”、“Ｂ”、及び“Ｃ”レベルである。そしてこれらの閾値電圧には、“Ｅ”レベル＜“Ａ”レベル＜“Ｂ”レベル＜“Ｃ”レベルの関係がある。“Ａ”レベルは、電圧ＶＡ以上で、電圧ＶＢ未満の電圧であり、“Ｂ”レベルは、電圧ＶＢ以上で、電圧ＣＶ未満の電圧であり、“Ｃ”レベルは、電圧ＶＣ以上の電圧である。なお、各データと閾値レベルとの関係は上記に限定されるものでは無く、適宜変更可能である。
【００６６】
メモリセルトランジスタＭＴが２ビットのデータを保持している場合には、１つのページに、上位ビットに対応するデータと下位ビットに対応するデータが割り当てられる。以下、下位ビットのデータが一括して書き込みまたは読み出されるページを第１ページと呼び、上位ビットのデータが一括して書き込みまたは読み出されるページを第２ページと呼ぶ。
【００６７】
１．３  書き込み動作ついて  
次に本実施形態に係る書き込み動作について、特にプレーンＰＬＮ０及びＰＬＮ１において、第１ページと第２ページを同時に書き込む（以下、「フルシーケンス」と呼ぶ）場合に着目して説明する。以下、プレーンＰＬＮ０及びＰＬＮ１にフルシーケンスで同時に書き込む場合を、「マルチプレーンプログラム」と呼ぶ。
【００６８】
フルシーケンスを実行する場合、コントローラ２００は、例えばページ毎にデータをＮＡＮＤ型フラッシュメモリ１００に送信する。従って、マルチプレーンプログラムでは、４ページ分（プレーンＰＬＮ０の第１及び第２ページ、並びにプレーンＰＬＮ１の第１及び第２ページ）のデータが必要なため、コントローラ２００は、データを４回送信する。ＮＡＮＤ型フラッシュメモリ１００は、受信した４ページ分のデータを対象となるキャッシュに一旦格納した後、メモリセルアレイ１１１への書き込みを実行する。より具体的には、ＮＡＮＤ型フラッシュメモリ１００は、プレーンＰＬＮ０の第１及び第２ページのデータを第２キャッシュ１１７＿０及び第３キャッシュ１１８＿０に格納し、プレーンＰＬＮ１の第１及び第２ページのデータを第２キャッシュ１１７＿１及び第３キャッシュ１１８＿１に格納した後、プレーンＰＬＮ０及びＰＬＮ１のメモリセルアレイ１１１＿０及び１１１＿１への書き込みを開始する。
【００６９】
なお、書き込み動作は、第１ページと第２ページとが別々に実行されても良く、プレーンＰＬＮ毎に別々に実行されても良い。
【００７０】
１．３．１  書き込みデータ送信時のコントローラ２００の動作について  
まず書き込みデータの送信時におけるコントローラ２００の動作について、図５を用いて説明する。図５の例は、コントローラ２００が、ＮＡＮＤ型フラッシュメモリ１００に、１ページ分のデータを送信し、このデータを第２キャッシュ１１７あるいは第３キャッシュ１１８に格納するように命令する場合を示している。
【００７１】
図示するように、まずコントローラ２００は、動作に先だってチップイネーブル信号CEnを“Ｌ”レベルにし、ライトプロテクト信号WPnを“Ｈ”レベルにする。
【００７２】
次に時刻ｔ１において、コントローラ２００は、コマンド“Ｃ１”をＮＡＮＤ型フラッシュメモリ１００に出力すると共に、コマンドラッチイネーブル信号CLEをアサート（“Ｈ”レベル）する。コマンド“Ｃ１”は、アドレス信号及び／または書き込みデータを送信することを通知するコマンドである。
【００７３】
次に時刻ｔ２〜ｔ６において、コントローラ２００は、アドレス信号“Ａ１”〜“Ａ５”を出力すると共に、アドレスラッチイネーブル信号ALEをアサート（“Ｈ”レベル）する。アドレス信号にはカラムアドレスCOLADD、ロウアドレス(BLKADD、PAGADD)、及び第１ページあるいは第２ページを示す情報が含まれる。なお図５の例では、アドレス信号を５サイクルで送信しているが、これに限定されない。アドレス信号を送信するための必要なサイクル数であれば良い。
【００７４】
次に時刻ｔ７〜ｔ９において、コントローラ２００は、データ“Ｄ０”〜“Ｄｎ”（ｎは０以上の整数）を出力する。
【００７５】
次に時刻ｔ１０において、コントローラ２００は、例えばコマンド“ＴＣ２”を出力すると共に、コマンドラッチイネーブル信号CLEをアサートする。コマンド“ＴＣ２”は、アドレス信号により指定されたプレーンＰＬＮにおいて、第１キャッシュ１１６に格納されたデータを、第２キャッシュ１１７あるいは第３キャッシュ１１８に転送するコマンドである。  これらのコマンド、アドレス信号、及びデータは、ライトイネーブル信号WEnがトグルされる毎にＮＡＮＤ型フラッシュメモリ１００の入力バッファ１２２に取り込まれる。
【００７６】
次に時刻ｔ１１〜ｔ１２の間、ＮＡＮＤ型フラッシュメモリ１００は、コマンド“ＴＣ２”に応答して、データを第１キャッシュ１１６に格納した後、アドレス信号に応じた第２キャッシュ１１７あるいは第３キャッシュ１１８に転送する。より具体的には、ＮＡＮＤ型フラッシュメモリ１００内において、アドレスバッファ１２５は、アドレス信号に応じて、信号PLN0_PG2、信号PLN1_PG2、信号DoPLN0、及び信号DoPLN1を、メモリセル制御レジスタ１３０を介してセンスユニット１１３に送信する。信号PLN0_PG2及び信号PLN1_PG2は、アドレス信号がプレーンＰＬＮ０あるいはプレーンＰＬＮ１の第２ページを示す場合にそれぞれ“Ｈ”レベルとされる。信号DoPLN0及び信号DoPLN1は、選択されたプレーンＰＬＮを示す信号であり、プレーンＰＬＮ０が選択されている場合は、信号DoPLN0が“Ｈ”レベルとされ、プレーンＰＬＮ１が選択されている場合は、信号DoPLN1が“Ｈ”レベルとされる。また、コマンドデコーダ１２６は、コマンド“ＴＣ２”に応じて、信号CMD_TC2を、メモリセル制御レジスタ１３０を介してセンスユニット１１３に送信する。信号CMD_TC2は、コントローラ２００からコマンド“ＴＣ２”を受信した場合に“Ｈ”レベルとされる。よってＮＡＮＤ型フラッシュメモリ１００は、コマンド“ＴＣ２”を受信すると、信号CMD_TC2を“Ｈ”レベルにする。そしてセンスユニット１１３では、信号CMD_TC2（“Ｈ”レベル）に応じて、信号DoPLN0及び信号DoPLN1によって指定されたプレーンＰＬＮの第１キャッシュ１１６のデータが、信号PLN0_PG2及び信号PLN1_PG2により指定された２キャッシュ１１７あるいは第３キャッシュ１１８に転送される。
【００７７】
この間、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、ステートマシン１２９は、ビジー状態を示すレディ／ビジー信号RBnを“Ｌ”レベルにし、コントローラ２００に送信する。以下、コマンド“ＴＣ２”に応じたビジー状態の期間を、tBUSY1とする。
【００７８】
第２キャッシュ１１７あるいは第３キャッシュ１１８へのデータの転送が完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となり、ステートマシン１２９は、レディ／ビジー信号RBを“Ｈ”レベルに復帰する。
【００７９】
１．３．２  マルチプレーンプログラムについて  
次に、マルチプレーンプログラムについて、特に第１乃至第３キャッシュ１１６〜１１８のデータ保持状態に着目して、図６及び図７を用いて説明する。図６の例では、コントローラ２００が送信する信号については、入出力信号IO＜7：0＞（コマンド、アドレス信号、データ）のみ示す。
【００８０】
また、図７は、図６における４回の書き込みデータ受信時に、アドレスバッファ１２５及びコマンドデコーダ１２６からメモリセル制御レジスタ１３０を介してセンスユニット１１３に送信される制御信号の論理状態を示している。
【００８１】
図６に示すように、まず１回目のデータ送信（図６の参照符号（ａ））において、コントローラ２００は、コマンド“Ｃ１”、プレーンＰＬＮ１の第１ページを示すアドレス信号“Address1_1”、プレーンＰＬＮ１の第１データ“Data1_1”、コマンド“ＤＣ３”を送信する。コマンド“ＤＣ３”は、選択されたプレーンＰＬＮの第１キャッシュ１１６にデータを格納するよう命令するコマンドである。ＮＡＮＤ型フラッシュメモリ１００は、コマンド“ＤＣ３”を受信すると、直前で受信したアドレス信号で指定されたプレーンＰＬＮに対応する第１キャッシュ１１６にデータを格納する。アドレス信号には第１ページあるいは第２ページを示す情報が含まれているが、コマンド“ＤＣ３”を受信した場合、ＮＡＮＤ型フラッシュメモリ１００は、第２キャッシュ１１７あるいは第３キャッシュ１１８へのデータ転送を保留する。
【００８２】
図７に示すように、ＮＡＮＤ型フラッシュメモリ１００では、１回目のデータ受信後（図６及び図７の参照符号（１））、保留状態を示すため、アドレス信号“Address1_1”に対応して信号DoPLN1は“Ｈ”レベルとされる。信号DoPLN1は、データが第２キャッシュ１１７に転送されるまで、“Ｈ”レベルが維持される。具体的には、例えばメモリセル制御レジスタ１３０において、“Ｈ”レベル状態が保持される。また、このとき信号DoPLN0、信号PLN0_PG2、信号PLN1_PG2、及び信号CMD_TC2は“Ｌ”レベルとされる。
【００８３】
この結果、センスユニット１１３は、プレーンＰＬＮ１の第１キャッシュ１１６＿１に第１データ“Data1_1”を格納する。以下、コマンド“ＤＣ３”に応じたビジー状態の期間を、tBUSY2とする。期間tBUSY1と期間tBUSY2を比較すると、データの転送が無いため、期間tBUSY2の方が処理時間は短くなる。なお、期間tBUSY2は短い時間であるため、レディ／ビジー信号RBnを“Ｌ”レベルにする動作は省略されても良い。
【００８４】
次に２回目のデータ送信（図６の参照符号（ｂ））において、コントローラ２００は、コマンド“Ｃ１”、プレーンＰＬＮ０の第１ページを示すアドレス信号“Address1_0”、プレーンＰＬＮ０の第１データ“Data1_0”、コマンド“ＴＣ２”を送信する。
【００８５】
２回目のデータ受信後（図６及び図７の参照符号（２））、アドレス信号“Address1_0”に対応して信号DoPLN0が“Ｈ”レベルとされ、コマンド“ＴＣ２”に対応して信号CMD_TC2が“Ｈ”レベルとされる。また、信号DoPLN1は、１回目のデータ受信後から“Ｈ”レベルを維持している。
【００８６】
センスユニット１１３で、まずプレーンＰＬＮ０の第１キャッシュ１１６＿０に第１データ“Data1_0”を格納する。そしてセンスユニット１１３は、信号DoPLN0及び信号DoPLN1が“Ｈ”レベル且つ信号PLN0_PG2及び信号PLN1_PG2が“Ｌ”レベルのため、信号CMD_TC2の“Ｈ”レベルに応じて、第１キャッシュ１１６＿０のデータ“Data1_0”及び第１キャッシュ１１６＿１のデータ“Data1_1”を、第２キャッシュ１１７＿０及び１１７＿１にそれぞれ転送する。
【００８７】
次に３回目のデータ送信（図６の参照符号（ｃ））において、コントローラ２００は、コマンド“Ｃ１”、プレーンＰＬＮ０の第２ページを示すアドレス信号“Address2_0”、プレーンＰＬＮ０の第２データ“Data2_0”、コマンド“ＤＣ３”を送信する。
【００８８】
３回目のデータ受信後（図６及び図７の参照符号（３））、アドレス信号“Address2_0”に対応して信号DoPLN0及び信号PLN0_PG2が“Ｈ”レベルとされ、データを第３キャッシュ１１８＿０に転送するまでこの状態が維持される。
【００８９】
センスユニット１１３は、プレーンＰＬＮ０の第１キャッシュ１１６＿０に第２データ“Data2_0”を格納する。
【００９０】
次に４回目のデータ送信（図６の参照符号（ｄ））において、コントローラ２００は、コマンド“Ｃ１”、プレーンＰＬＮ１の第２ページを示すアドレス信号“Address2_1”、プレーンＰＬＮ１の第２データ“Data2_1”、コマンド“Ｃ４”を送信する。コマンド“Ｃ４”は、メモリセルアレイ１１１への書き込みを命令するコマンドである。
【００９１】
４回目のデータ受信後（図６及び図７の参照符号（４））、アドレス信号“Address2_1”に応じて信号DoPLN1及び信号PLN1_PG2が“Ｈ”レベルとされる。
【００９２】
センスユニット１１３は、まずプレーンＰＬＮ１の第１キャッシュ１１６＿１に第２データ“Data2_1”を格納する。次にセンスユニット１１３は、信号DoPLN0、信号DoPLN1、信号PLN0_PG2、及び信号PLN1_PG2が“Ｈ”レベルのため、第１キャッシュ１１６＿０のデータ“Data2_0”、及び第１キャッシュ１１６＿１のデータ“Data2_1”を、第３キャッシュ１１８＿０及び１１８＿１にそれぞれ転送する。その後、ＮＡＮＤ型フラッシュメモリ１００は、第２キャッシュ１１７及び第３キャッシュ１１８に格納されたデータを、メモリセルアレイ１１１にフルシーケンスで書き込む。以下、コマンド“Ｃ４”に応じたビジー状態の期間を、tPROGとする。期間tPROGは、メモリセルアレイ１１１への書き込み動作も含まれるため、期間tBUSY1よりも処理時間が長くなる。よって、期間tPROGと期間tBUSY1と期間tBUSY2とを比較すると、tPROG＞tBUSY1＞tBUSY2の関係となる。
【００９３】
なお、本実施形態では、コントローラ２００は、プレーンＰＬＮ１の第１ページ、プレーンＰＬＮ０の第１ページ、プレーンＰＬＮ０の第２ページ、プレーンＰＬＮ１の第２ページの順にデータを送信したが、送信の順序は任意に変更可能である。
【００９４】
また、１回目及び３回目のデータ送信では、コントローラ２００は、コマンド“ＤＣ３”を送信し、第２キャッシュ１１７、あるいは第３キャッシュ１１８にデータを転送しなかったが、コマンド“ＴＣ２”を送信し、データを転送しても良い。
【００９５】
１．４  本実施形態に係る効果について  
本実施形態に係る構成では、処理能力を向上することができる。以下、本効果について説明する。
【００９６】
フルシーケンスで書き込み動作を行う際、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へのデータ送信順序が固定されていると、例えばコントローラ２００は、ホスト機器から受信したデータを、一旦内部に保持し、保持したデータをデータ送信順序に合わせてＮＡＮＤ型フラッシュメモリ１００に送信する必要がある。よって、コントローラ２００は、データを受信してから送信を開始するまでの時間が、ページ数が増えるほど長くなる傾向がある。例えばマルチプレーンプログラムでプレーン数が増加した場合、あるいはメモリセルトランジスタＭＴが保持可能なビット数が増加した場合などは、ページ数が増加するため、開始時間が長くなる傾向が見られる。またコントローラ２００は、書き込み対象となる全ページのデータを保持できるようにコントローラ２００内にメモリ領域を確保しておく必要がある。
【００９７】
これに対し、本実施形態に係る構成は、コントローラ２００が、データを送信する順序を任意に決めることができる。またＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００からの命令に応じて、第２及び第３キャッシュ１１７及び１１８へデータを転送することができる。このため、例えばコントローラ２００は、ホスト機器から受信したデータを、受信した順序でＮＡＮＤ型フラッシュメモリ１００に送信できる。よって、コントローラ２００は、データを受信してから送信を開始するまでの時間を短くすることができるため、処理能力が向上できる。
【００９８】
また、本実施形態に係る構成では、コントローラ２００が、第１キャッシュ１１６から第２キャッシュ１１７あるいは第３キャッシュ１１８にデータを転送するタイミングを任意に決定することができる。このため、例えば、データの送信順序とキャッシュ間でのデータ転送のタイミングを最適化し、処理時間を短縮することができる。よって処理能力を向上することができる。具体的には、例えばプレーンＰＬＮ０の第１キャッシュ１１６＿０とプレーンＰＬＮ１の第１キャッシュ１１６＿１の両方にデータを格納してから、一括してデータを転送することで、別々にデータが転送する場合よりも処理時間を短くできる。
【００９９】
また、本実施形態に係る構成では、コントローラ２００は、受信した順序でデータをＮＡＮＤ型フラッシュメモリ１００に送信できる。よって、コントローラ２００内において、書き込み対象となる全ページのデータを保持できるようにメモリ領域を確保しておく必要がないため、メモリ領域を削減することができる。従って、コントローラ２００の回路面積を縮小することができる。
【０１００】
また、本実施形態に係る構成では、半導体記憶装置が任意の順序でセンスユニット１１３内にデータを格納できるため、データの取り扱いに自由度を持たせることでき、利便性を向上することができる。よってメモリシステム全体の処理の効率を改善することができる。
【０１０１】
２．  第２実施形態  
次に、第２実施形態に係る半導体記憶装置及びメモリシステムについて説明する。本実施形態は、第１実施形態において、第１キャッシュ１１６から第２キャッシュ１１７あるいは第３キャッシュ１１８にデータを転送する際、既にキャッシュに格納されているデータに対して、上書きあるいはデータの論理和（ＯＲ）演算を行って再度データを格納する場合について示すものである。以下、第１実施形態と異なる点についてのみ説明する。
【０１０２】
２．１  メモリシステムの全体構成について  
本実施形態におけるメモリシステムの構成について説明する。第１実施形態と異なる点は、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００に送信されるコマンド“ＴＣ５”と、コマンド“ＴＣ５”に対応して、コマンドデコーダ１２６からメモリセル制御レジスタ１３０を介してセンスユニット１１３に送信される信号CMD_TC5とが追加される点である。コマンド“ＴＣ５”は、第１キャッシュ１１６に格納されたデータを、第２キャッシュ１１７あるいは第３キャッシュ１１８に転送する際、先に第２キャッシュ１１７あるいは第３キャッシュ１１８に格納されているデータとのＯＲ演算を行うコマンドである。信号CMD_TC5は、コントローラ２００からコマンド“ＴＣ５”を受信した場合に“Ｈ”レベルとされる。
【０１０３】
２．２  書き込み動作について
本実施形態における書き込み動作について、図８及び図９を用いて説明する。本実施形態では、マルチプレーンプログラムを例に、プレーンＰＬＮ０では１回目の第１ページのデータと２回目の第１ページのデータとのＯＲ演算を行い、プレーンＰＬＮ１では１回目の第１ページのデータに対し２回目の第１ページのデータを上書きする場合について説明する。
【０１０４】
図８に示すように、まず１回目のデータ送信（図８の参照符号（ａ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address1_0”、プレーンＰＬＮ０の第１データ“Data1_0”、コマンド“ＴＣ２”を送信する。
【０１０５】
１回目のデータ受信後（図８及び図９の参照符号（１））、アドレス信号“Address1_0”に対応して信号DoPLN0は“Ｈ”レベルとされる。また、コマンド“ＴＣ２”に対応して信号CMD_TC2が“Ｈ”レベルとされる。
【０１０６】
センスユニット１１３は、第１キャッシュ１１６＿０に第１データ“Data1_0”を格納する。そしてセンスユニット１１３は、信号DoPLN0が“Ｈ”レベル且つ信号PLN0_PG2が“Ｌ”レベルのため、信号CMD_TC2に応じて、第１キャッシュ１１６＿０のデータ“Data1_0”を、第２キャッシュ１１７＿０に転送する。
【０１０７】
次に２回目のデータ送信（図８の参照符号（ｂ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address1_0”、プレーンＰＬＮ０の第１データ“Data1a_0”、コマンド“ＴＣ５”を送信する。以下、コマンド“ＴＣ５”に応じたビジー状態の期間を、tBUSY3とする。期間tBUSY1と比較すると、ＯＲ演算の影響により、処理時間は期間tBUSY1と同等かそれ以上となる。
【０１０８】
２回目のデータ受信後（図８及び図９の参照符号（２））、アドレス信号“Address1_0”に対応して信号DoPLN0が“Ｈ”レベルとされ、コマンド“ＴＣ５”に対応して信号CMD_TC5が“Ｈ”レベルとされる。
【０１０９】
センスユニット１１３は、まず第１キャッシュ１１６＿０に第１データ“Data1a_0”を格納する。そしてセンスユニット１１３は、信号DoPLN0が“Ｈ”レベル且つ信号PLN0_PG2が“Ｌ”レベルのため、信号CMD_TC5に応じて、第１キャッシュ１１６＿０のデータ“Data1a_0”と第２キャッシュ１１７＿０のデータ“Data1_0”のＯＲ演算を行い、演算結果（“1_0＋1a_0”）を第２キャッシュ１１７＿０に格納する。
【０１１０】
例えばデータ“Data1_0”は、番地０から番地１２７までが“１”または“０”の任意の値（実データ）で、番地１２８以降がALL“0”であり、データ“Data1a_0”は、番地０から番地１２７がALL“0”で、番地１２８以降が“１”または“０”の任意の値であるものとする。このような場合、センスユニット１１３は、コントローラ２００からの命令により、データ“Data1_0”とデータ“Data1a_0”のＯＲ演算を行い、１ページのデータ“1_0＋1a_0”を構成する。
【０１１１】
次に３回目のデータ送信（図８の参照符号（ｃ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address1_1”、プレーンＰＬＮ１の第１データ“Data1_1”、コマンド“ＴＣ２”を送信する。
【０１１２】
３回目のデータ受信後（図８及び図９の参照符号（３））、アドレス信号“Address1_1”に対応して信号DoPLN1は“Ｈ”レベルとされる。また、コマンド“ＴＣ２”に対応して信号CMD_TC2が“Ｈ”レベルとされる。
【０１１３】
センスユニット１１３は、第１キャッシュ１１６＿１に第１データ“Data1_1”を格納する。そしてセンスユニット１１３は、信号DoPLN1が“Ｈ”レベル且つ信号PLN1_PG2が“Ｌ”レベルのため、信号CMD_TC2に応じて、第１キャッシュ１１６＿１のデータ“Data1_1”を、第２キャッシュ１１７＿１に転送する。
【０１１４】
次に４回目のデータ送信（図８の参照符号（ｄ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address2_0”、プレーンＰＬＮ０の第２データ“Data2_0”、コマンド“ＴＣ２”を送信する。
【０１１５】
４回目のデータ受信後（図８及び図９の参照符号（４））、アドレス信号“Address2_0”に対応して信号DoPLN0及び信号PLN0_PG2は“Ｈ”レベルとされる。また、コマンド“ＴＣ２”に対応して信号CMD_TC2が“Ｈ”レベルとされる。
【０１１６】
センスユニット１１３は、第１キャッシュ１１６＿０に第２データ“Data2_0”を格納する。そしてセンスユニット１１３は、信号DoPLN0が“Ｈ”レベル且つ信号PLN0_PG2が“Ｈ”レベルのため、信号CMD_TC2に応じて、第１キャッシュ１１６＿０のデータ“Data2_0”を、第３キャッシュ１１８＿０に転送する。
【０１１７】
次に５回目のデータ送信（図８の参照符号（ｅ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address1_1”、プレーンＰＬＮ１の第１データ“Data1a_1”、コマンド“ＴＣ２”を送信する。
【０１１８】
５回目のデータ受信後（図８及び図９の参照符号（５））、アドレス信号“Address1_1”に対応して信号DoPLN1は“Ｈ”レベルとされる。また、コマンド“ＴＣ２”に対応して信号CMD_TC2が“Ｈ”レベルとされる。
【０１１９】
センスユニット１１３は、第１キャッシュ１１６＿１に第１データ“Data1a_1”を格納する。そしてセンスユニット１１３は、信号DoPLN1が“Ｈ”レベル且つ信号PLN1_PG2が“Ｌ”レベルのため、信号CMD_TC2に応じて、第１キャッシュ１１６＿１のデータ“Data1a_1”を、第２キャッシュ１１７＿１に転送（上書き）する。
【０１２０】
次に６回目のデータ送信（図８の参照符号（ｆ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address2_1”、プレーンＰＬＮ１の第２データ“Data2_1”、コマンド“Ｃ４”を送信する。
【０１２１】
６回目のデータ受信後（図８及び図９の参照符号（６））、アドレス信号“Address2_1”に応じて信号DoPLN1及び信号PLN1_PG2が“Ｈ”レベルとされる。
【０１２２】
センスユニット１１３は、まずプレーンＰＬＮ１の第１キャッシュ１１６＿１に第２データ“Data2_1”を格納する。次にセンスユニット１１３は、信号DoPLN1及び信号PLN1_PG2が“Ｈ”レベルのため、第１キャッシュ１１６＿１のデータ“Data2_1”を第３キャッシュ１１８＿１に転送する。その後、ＮＡＮＤ型フラッシュメモリ１００は、第２キャッシュ１１７及び第３キャッシュ１１８に格納されたデータを、メモリセルアレイ１１１にフルシーケンスで書き込む。
【０１２３】
２．３  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様に処理能力を向上することができる。
【０１２４】
更に本実施形態に係る構成では、第１キャッシュ１１６から第２キャッシュ１１７あるいは第３キャッシュ１１８にデータを転送する際、先に第２キャッシュ１１７あるいは第３キャッシュ１１８に格納されているデータとのＯＲ演算を行うことができる。これにより更に処理能力を向上することができる。以下、本効果について具体的に説明する。
【０１２５】
例えば既に第２キャッシュ１１７に格納されているデータに追加データが発生し、これに対しコントローラ２００内でＯＲ演算を行う場合、コントローラ２００は、先に第２キャッシュ１１７に格納された既入力のデータを、一旦コントローラ２００内に読み込み、追加データとＯＲ演算した後に再度ＮＡＮＤ型フラッシュメモリ１００に送信する必要がある。より具体的には、（１）第２キャッシュ１１７から第１キャッシュ１１６へ既入力データを転送、（２）ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００へ既入力データを送信、（３）コントローラ２００内において、既入力データと追加データのＯＲ演算実施、（４）コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ演算後のデータ送信、（５）第１キャッシュから第２キャッシュ１１７への転送、という手順を必要とした。
【０１２６】
これに対し本実施形態に係る構成では、追加データを第１キャッシュ１１６から第２キャッシュ１１７へ転送する際、ＯＲ演算を行うことで、上記手順（１）〜（５）と同等の作業を行うことができる。よってＯＲ演算が必要となった場合の処理時間を短縮できるため、処理能力を向上することができる。
【０１２７】
更に本実施形態に係る構成では、センスユニット１１３内においてデータのＯＲ演算ができるため、１ページのデータを複数回に分割して転送することができる。例えば１ページ１６Ｋバイトのデータ長に対して、コントローラ２００は、４Ｋバイトのデータを４回に分けて送信する事ができる。よって、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００に一度に送信できるデータ長よりも、ＮＡＮＤ型フラッシュメモリ１００の１ページあたりのデータ長を大きくすることができる。よって、コントローラ２００からの送信可能なデータ量によらずＮＡＮＤ型フラッシュメモリ１００の記憶容量を増加することができる。
【０１２８】
更に本実施形態に係る構成では、既にデータが格納されている第２キャッシュ１１７あるいは第３キャッシュ１１８に対してデータの上書き処理をすることができる。これにより処理能力を向上することができる。以下、本効果につき具体的に説明する。
【０１２９】
例えばフルシーケンスで書き込み動作を行う際、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へのデータ送信順序が固定されているものとする。このような場合、例えば第２キャッシュ１１７に格納されたデータの上書きが必要となった場合、コントローラ２００は、一旦センスユニット１１３内に格納されたデータをコントローラ２００内に全て読み込み、データの上書きを行った上で、データを最初から送信し直す必要がある。
【０１３０】
これに対し、本実施形態に係る構成では、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へのデータ送信順序が固定されていないため、既にデータが格納されている例えば第２キャッシュ１１７に対して別のデータをそのまま上書き処理することができる。よって、センスユニット１１３内に保持されたデータをコントローラ２００内に再度読み込む必要はなく、データを最初から送信し直す必要もないため、上書きが必要となった場合の処理時間を短縮でき、処理能力を向上することができる。
【０１３１】
なお本実施形態では、ＯＲ演算を行う場合について説明したが、論理積（ＡＮＤ）演算、排他論理積（ＮＡＮＤ）演算、排他論理和（ＮＯＲ）演算等の他の論理演算を行っても良い。この場合、コマンド“ＴＣ５”及び信号CMD_TC5とは異なる別のコマンド及び信号を追加しても良い。
【０１３２】
３．  第３実施形態  
次に、第３実施形態に係る半導体記憶装置及びメモリシステムについて説明する。本実施形態は、第１及び第２実施形態において、マルチプレーンプログラムを実行する際、第１あるいは第２ページのデータが無い場合について示すものである。以下、第１実施形態と異なる点についてのみ説明する。
【０１３３】
３．１  メモリシステムの全体構成について  
本実施形態におけるメモリシステムの構成について説明する。第１実施形態と異なる点は、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００に送信されるコマンド“ＴＣ９”と、コマンド“ＴＣ９”に対応して、コマンドデコーダ１２６からメモリセル制御レジスタ１３０を介してセンスユニット１１３に送信される信号CMD_TC9とが追加される点である。コマンド“ＴＣ９”は、選択されていないプレーンＰＬＮの第１キャッシュ１１６のデータを初期化（例えばALL“１”）して転送するコマンドである。信号CMD_TC9は、コントローラ２００からコマンド“ＴＣ９”を受信した場合に“Ｈ”レベルとされる。
【０１３４】
３．２  書き込み動作について
本実施形態における書き込み動作について、図１０及び図１１を用いて説明する。本実施形態では、マルチプレーンプログラムを例に、プレーンＰＬＮ１の第１ページのデータが無い場合について説明する。
【０１３５】
図１０に示すように、まず１回目のデータ送信（図１０の参照符号（ａ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address1_0”、データ“Data1_0”、コマンド“ＴＣ９”を送信する。
【０１３６】
ＮＡＮＤ型フラッシュメモリ１００では、１回目のデータ受信後（図１０及び図１１の参照符号（１））、アドレス信号“Address1_0”に対応して信号DoPLN0は“Ｈ”レベルとされる。また、コマンド“ＴＣ９”に対応して信号CMD_TC9が“Ｈ”レベルとされる。
【０１３７】
センスユニット１１３は、プレーンＰＬＮ０の第１キャッシュ１１６＿０に１データ“Data1_0”を格納した後、第２キャッシュ１１７＿０に転送する。またセンスユニット１１３は、信号CMD_TC9に応じて、第１キャッシュ１１６＿１を初期化（ALL“１”）し、第２キャッシュ１１７＿１に初期化データ（ALL“１”）を転送する。以下、コマンド“ＴＣ９”に応じたビジー状態の期間を、tBUSY4とする。期間tBUSY4は、第１キャッシュに入力あるいは初期化されたデータを転送するので、期間tBUSY1と処理時間はほとんど同じである。
【０１３８】
次に２回目のデータ受信後（図１０及び図１１の参照符号（２））、センスユニット１１３は、第１キャッシュ１１６＿０に第２データ“Data2_0”を格納する。
【０１３９】
次に３回目のデータ送信（図１０の参照符号（ｃ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address2_1”、データ“Data2_1”、コマンド“Ｃ４”を送信する。
【０１４０】
３回目のデータ受信後（図１０及び図１１の参照符号（３））、アドレス信号“Address2_1”に応じて信号DoPLN1及び信号PLN1_PG2が“Ｈ”レベルとされる。また、信号DoPLN0及び信号PLN0_PG2は、２回目のデータ受信後の状態を維持し、“Ｈ”レベルとされる。
【０１４１】
センスユニット１１３は、まず第１キャッシュ１１６＿１にデータ“Data2_1”を格納する。次にセンスユニット１１３は、第１キャッシュ１１６＿０及び第１キャッシュ１１６＿１に格納されているデータ“Data2_0”及びデータ“Data2_1”を、第３キャッシュ１１８＿０及び１１８＿１に転送する。その後、ＮＡＮＤ型フラッシュメモリ１００は、第２キャッシュ１１７及び第３キャッシュ１１８のデータをメモリセルアレイ１１１に書き込む。
【０１４２】
なお、コマンドＴＣ９に応じて、選択されていないプレーンＰＬＮでは第１キャッシュ１１６を初期化して転送する場合について説明したが、最初の書き込みデータ受信前に第１乃至第３キャッシュ１１６〜１１８は全て初期化されても良い。この場合、選択されていないプレーンＰＬＮでの初期化データの転送処理は不要となるため、コマンド“ＴＣ９”を省略しても良い。また選択されていないプレーンＰＬＮの第１キャッシュを初期化する場合を説明したが、コントローラ２００からの命令により、第１キャッシュを初期化するプレーンＰＬＮが選択されても良い。
【０１４３】
３．３  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様に処理能力を向上することができる。
【０１４４】
更に本実施形態に係る構成では、データが無いページが含まれている場合においても書き込み動作をおこなうことができる。これにより更に処理能力を向上することができる。以下、本効果について具体的に説明する。
【０１４５】
例えば、フルシーケンスで書き込み動作を行う際、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へのデータ送信順序が固定されているものとする。このような場合、データの無いページが存在すると、送信順序通りのデータ転送ができないため、書き込みができなくなる。これに対し、例えばコントローラ２００内においてデータが無いページに対しダミーデータを作成し、ＮＡＮＤ型フラッシュメモリ１００に送信する方法が考えられる。但し、ダミーデータを作成した場合、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へのダミーデータの送信が必要となるため、その分、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へのデータ転送回数が多くなり処理時間が長くなる。
【０１４６】
これに対し、本実施形態に係る構成では、データが無いページに対しては、初期化された第１キャッシュ１１６のデータ（ＡＬＬ“１”）を入力することができる。また、コントローラ２００からデータを送信する順序が固定されていないため、コントローラ２００からＮＡＮＤ型フラッシュメモリへのダミーデータの送信を省略することができる。よって処理時間を短縮でき、処理能力を向上することができる。
【０１４７】
４．  第４実施形態  
次に、第４実施形態に係る半導体記憶装置及びメモリシステムについて説明する。本実施形態は、第１乃至第３実施形態において、第２キャッシュ１１７と第３キャッシュ１１８のデータを入れ替えるものである。以下、第１実施形態と異なる点についてのみ説明する。
【０１４８】
４．１  メモリシステムの全体構成について  
本実施形態におけるメモリシステムの構成について説明する。第１実施形態と異なる点は、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００に送信されるコマンド“ＴＣ７”と、コマンド“ＴＣ７”に対応して、コマンドデコーダ１２６からメモリセル制御レジスタ１３０を介してセンスユニット１１３に送信される信号CMD_TC7とが追加される点である。コマンド“ＴＣ７”は、第２キャッシュ１１７と第３キャッシュ１１８のデータを入れ替えるコマンドである。信号CMD_TC7は、コントローラ２００からコマンド“ＴＣ７”を受信した場合に“Ｈ”レベルとされる。
【０１４９】
４．２  書き込み動作について
本実施形態における書き込み動作について、図１２及び図１３を用いて説明する。本実施形態では、プレーンＰＬＮ０においてフルシーケンスを実行する際、第２キャッシュ１１７＿０と第３キャッシュ１１８＿０とのデータを入れ替える場合を例に説明する。
【０１５０】
図１２に示すように、まず１回目のデータ受信後（図１２及び図１３の参照符号（１））、センスユニット１１３は、第２キャッシュ１１７＿０にデータ“Data1_0”を格納する。
【０１５１】
次に２回目のデータ受信後（図１２及び図１３の参照符号（２））、センスユニット１１３は、第３キャッシュ１１８＿０にデータ“Data2_0”を格納する。
【０１５２】
次に３回目のデータ送信（図１２の参照符号（ｃ））において、コントローラ２００は、コマンド“ＴＣ７”を送信する。
【０１５３】
３回目のデータ受信後（図１２及び図１３の参照符号（３））、プレーンＰＬＮ０に対応する信号DoPLN0が“Ｈ”レベルとされる。また、コマンド“ＴＣ７”に対応して信号CMD_TC7が“Ｈ”レベルとされる。
【０１５４】
センスユニット１１３は、第２キャッシュ１１７＿０及び第３キャッシュ１１８＿０にそれぞれ格納されているデータ“Data1_0”及びデータ“Data2_0”を入れ替える。具体的にはセンスユニット１１３は、例えば第２キャッシュ１１７＿０に格納されているデータ“Data1_0”を第１キャッシュ１１６＿０に転送した後、第３キャッシュ１１８＿０に格納されているデータ“Data2_0”を第２キャッシュ１１７＿０に転送する。その後センスユニット１１３は、第１キャッシュ１１６＿０に格納されているデータ“Data1_0”を第２キャッシュ１１７＿０に転送する。なお、入れ替えの手順については、例えば最初に第３キャッシュ１１８に格納されているデータが第１キャッシュ１１６に転送されても良く、入れ替えの手順については限定しない。ＮＡＮＤ型フラッシュメモリ１００は、データを入力中、もしくは入力完了をして、メモリセルアレイ１１１に実際の書き込みを開始するまでの期間に、既にキャッシュ内に格納されたデータが任意に入れ替え可能な構成であれば良い。以下、コマンド“ＴＣ７”に応じたビジー状態の期間を、tBUSY5とする。期間tBUSY5は、第１乃至第３キャッシュ１１６〜１１８において、例えば複数回のデータ転送が必要なため、処理時間は期間tBUSY1よりも長くなる。
【０１５５】
次に４回目の送信（図１２の参照符号（ｄ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address2_0”、コマンド“Ｃ４”を送信する。既に第２キャッシュ１１７＿０及び第３キャッシュ１１８＿０にはデータが格納されているため、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００に、データは送信されない。
【０１５６】
４回目の受信後（図１２及び図１３の参照符号（４））、データの受信が無いため、アドレス信号“Address2_0”によらず、信号DoPLN0は“Ｌ”レベルとされる。
【０１５７】
ＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１１＿０に、第２キャッシュ１１７＿０に格納されているデータ“Data2_0”を第１ページとして書き込み、第３キャッシュ１１８＿０に格納されているデータ“Data1_0”を第２ページとして書き込む。
【０１５８】
なお、本実施形態において、コマンド“ＴＣ７”に応じて第２キャッシュ１１７と第３キャッシュ１１８のデータを入れ替えたが、第２キャッシュ１１７と第３キャッシュ１１８の役割を入れ替えても良い。すなわち、コマンド“ＴＣ７”に応じて、第２キャッシュ１１７が第２ページのデータを格納するキャッシュとして機能し、第３キャッシュ１１８が第１ページのデータを格納するキャッシュとして機能しても良い。この場合、データの入れ替えは不要となる。
【０１５９】
更に、４回目の送信において、アドレス信号“Address2_0”が送信されたが、アドレス信号“Address2_1”でも良く、メモリセルアレイ１１１＿０のアドレス情報が含まれていれば良い。
【０１６０】
４．３  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様に処理能力を向上することができる。
【０１６１】
更に本実施形態に係る構成では、第２キャッシュ１１７と第３キャッシュとのデータを入れ替えることができる。これにより更に処理能力を向上することができる。以下、本効果について具体的に説明する。
【０１６２】
例えば、フルシーケンスで書き込み動作を行う際、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へのデータ送信順序が固定されているものとする。このような場合、データを書き込むページ（第１ページと第２ページ）を入れ替えようとすると、コントローラ２００は、第２キャッシュ１１７と第３キャッシュのデータを、コントローラ２００内に読み込んでデータの送信順序に合わせてデータを再度送信し直す必要がある。
【０１６３】
これに対し、本実施形態に係る構成では、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００にデータを送信する順序が固定されていないため、第２キャッシュ１１７と第３キャッシュ１１８のデータを入れ替えるだけで、書き込むページを入れ替えることができる。このため、コントローラ２００がデータを一旦読み戻してから再送信する必要がなくなるため処理時間を短くすることができ、処理能力を向上することができる。
【０１６４】
更に、本実施形態に係る構成では、データの信頼性を向上することができる。例えばメモリセルアレイ１１１において、第１ページよりも第２ページの方が書き込み不良の発生率が高い場合、コントローラ２００は、第１ページと第２ページに書き込むデータを入れ替えて、より重要なデータを不良発生率の低い第１ページに書き込むことにより、データの信頼性を向上することができる。
【０１６５】
５．  第５実施形態  
次に、第５実施形態に係る半導体記憶装置及びメモリシステムについて説明する。本実施形態は、第１乃至第４実施形態において、第２キャッシュ１１７と第３キャッシュ１１８へのデータ入力順序を入れ替えたものである。以下、第１実施形態と異なる点についてのみ説明する。
【０１６６】
５．１  書き込み動作について
本実施形態における書き込み動作について、図１４及び図１５を用いて説明する。本実施形態では、プレーンＰＬＮ０においてフルシーケンスを実行する際、第３キャッシュ１１８＿０にデータを格納した後、第２キャッシュ１１７＿０にデータを格納する場合を例に説明する。
【０１６７】
図１４に示すように、まず１回目のデータ受信後（図１４及び図１５の参照符号（１））、センスユニット１１３は、第３キャッシュ１１８＿０に第１データ“Data1_0”を格納する。
【０１６８】
次に２回目のデータ送信（図１４の参照符号（ｂ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address1_0”、プレーンＰＬＮ０の第２データ“Data2_0”、コマンド“Ｃ４”を送信する。
【０１６９】
２回目のデータ受信後（図１４及び図１５の参照符号（２））、センスユニット１１３は、第２データ“Data2_0”をプレーンＰＬＮ０の第１キャッシュ１１６＿０に格納した後、第２キャッシュ１１７＿０に転送する。その後、ＮＡＮＤ型フラッシュメモリ１００は、プレーンＰＬＮ０の対象となるメモリセルトランジスタＭＴに対して、第２キャッシュ１１７＿０に格納されているデータ“Data2_0”を第１ページに書き込み、第３キャッシュ１１８＿０に格納されているデータ“Data1_0”を第２ページに書き込む。
【０１７０】
５．２  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様に処理能力を向上することができる。
【０１７１】
６．  第６実施形態  
次に、第６実施形態に係る半導体記憶装置及びメモリシステムについて説明する。本実施形態は、第１乃至第５実施形態において、第２キャッシュ１１７あるいは第３キャッシュ１１８に格納されているデータをコントローラ２００が読み出すものである。以下、第１実施形態と異なる点についてのみ説明する。
【０１７２】
６．１  メモリシステムの全体構成について  
本実施形態におけるメモリシステムの構成について説明する。第１実施形態と異なる点は、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００に送信されるコマンド“ＴＣ８”と、コマンド“ＴＣ８”に対応して、コマンドデコーダ１２６からメモリセル制御レジスタ１３０を介してセンスユニット１１３に送信される信号CMD_TC8とが追加される点である。コマンド“ＴＣ８”は、第２キャッシュ１１７あるいは第３キャッシュ１１８に格納されたデータを保持しつつ、第１キャッシュ１１６に転送して、コントローラ２００が第１キャッシュ１１６のデータを読み込むコマンドである。信号CMD_TC8は、コントローラ２００からコマンド“ＴＣ８”を受信した場合に“Ｈ”レベルとされる。
【０１７３】
６．２  書き込み動作について
本実施形態における書き込み動作について、図１６及び図１７を用いて説明する。本実施形態では、プレーンＰＬＮ０においてフルシーケンスを実行する際、第２キャッシュ１１７＿０のデータをコントローラ２００が読み込む場合を例に説明する。
【０１７４】
図１６に示すように、１回目のデータ受信後（図１６及び図１７の参照符号（１））、センスユニット１１３は、第２キャッシュ１１７＿０に第１データ“Data1_0”を格納する。
【０１７５】
次に２回目のデータ受信後（図１６及び図１７の参照符号（２））、第３キャッシュ１１８＿０に第２データ“Data2_0”を格納する。
【０１７６】
次に３回目の送信（図１６の参照符号（ｃ））において、コントローラ２００は、コマンド“ＴＣ８”を送信する。
【０１７７】
３回目の受信後（図１６及び図１７の参照符号（３））、信号DoPLN0が“Ｈ”レベルとされる。また、コマンド“ＴＣ８”に対応して信号CMD_TC8が“Ｈ”レベルとされる。
【０１７８】
センスユニット１１３は、信号DoPLN0が“Ｈ”レベル、信号PLN0_PG2が“Ｌ”レベルのため、第１キャッシュ１１６＿０に第２キャッシュ１１７＿０のデータ“Data1_0”を転送する。この際、キャッシュ１１７＿０はデータが保持される。そしてＮＡＮＤ型フラッシュメモリ１００は、第１キャッシュ１１６＿０のデータ（“Data1_O_OUT”）をコントローラ２００に送信する。以下、コマンド“ＴＣ８”に応じたビジー状態の期間を、tBUSY6とする。期間tBUSY6は、ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００へのデータ出力動作を含むため、処理時間は期間tBUSY1よりも長くなる。
【０１７９】
次に４回目の送信（図１６の参照符号（ｄ））において、コントローラ２００は、コマンド“Ｃ１”、アドレス信号“Address2_0”、コマンド“Ｃ４”を送信する。
【０１８０】
ＮＡＮＤ型フラッシュメモリ１００は、第２キャッシュ１１７＿０と第３キャッシュ１１８＿０に格納されているデータをメモリセルアレイ１１１＿０に書き込む。
【０１８１】
なお、本実施形態では、アドレス信号（信号DoPLN0及び信号PLN0_PG2）に応じて、第２キャッシュ１１７＿０から第１キャッシュ１１６＿０にデータを転送する場合について説明したが、コントローラ２００は、コマンドにより第２キャッシュ１１７あるいは第３キャッシュ１１８を指定しても良い。より具体的には例えばコントローラ２００は、第２キャッシュ１１７から第１キャッシュ１１６にデータを転送させる場合、コマンド“ＴＣ８＿１”とし、第３キャッシュ１１８から第１キャッシュ１１６にデータを転送させる場合、コマンド“ＴＣ８＿２”としても良い。また、例えば図１６の３回目の送信において、コントローラ２００は、コマンド“ＴＣ８”を送信する前に、第２キャッシュ１１７あるいは第３キャッシュ１１８を指定するためのアドレス信号を送信しても良い。また、例えばＮＡＮＤ型フラッシュメモリ１００は、コマンド“ＴＣ８”に応じて、第２キャッシュ１１７のデータを第１キャッシュ１１６に転送しても良い。この場合、例えば第３キャッシュのデータは、コマンド“ＴＣ７”に応じたデータの入れ替え動作と“ＴＣ８”に応じたデータの転送動作とを続けて行うことにより、第２キャッシュ１１７を介して第１キャッシュ１１６にデータを転送することができる。このようにキャッシュの指定方法については限定しない。
【０１８２】
更に、第２キャッシュ１１７及び第３キャッシュ１１８は、データ転送後、データを保持していなくても良い。すなわち、第２キャッシュ１１７及び第３キャッシュ１１８では、第１キャッシュ１１６へのデータ転送後、格納されていたデータが消去されても良い。
【０１８３】
更に、コマンド“ＴＣ８” は、データを第１キャッシュ１１６に転送して、コントローラ２００に読み込むコマンドとしたが、コマンド“ＴＣ８”は第１キャッシュ１１６へのデータ転送を命令するコマンドとし、第１キャッシュ１１６からコントローラ２００へのデータ読み出しは別のコマンドにより命令されても良い。
【０１８４】
６．３  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様に処理能力を向上することができる。
【０１８５】
更に本実施形態に係る構成では、コントローラ２００は、第２キャッシュ１１７及び第３キャッシュ１１８からデータを読み出すことができる。よって、第２キャッシュ１１７及び第３キャッシュ１１８をコントローラ２００のメモリ領域として用いることができ、コントローラ２００の処理能力を向上することができる。
【０１８６】
例えばコントローラ２００は、ホスト機器から入力された書き込みデータを第２キャッシュ１１７あるいは第３キャッシュ１１８内に一旦格納し、その間、別の処理を行うことができる。これによりコントローラ２００内のメモリ領域を効率良く利用し、処理能力を向上することができる。また、例えばＥＣＣ回路２０６でＥＣＣ処理用の訂正データを作る際、コントローラ２００は、第２キャッシュ１１７あるいは第３キャッシュ１１８に格納したデータを読み出して、ＥＣＣ処理用の訂正データを作成し、書き込みデータにＥＣＣ処理用のコードを付加した後に、第２実施形態で説明したようなデータの上書きによりデータを更新することができる。このようにデータの取り扱いに自由度を持たせることでメモリシステム全体の処理の効率を改善できる。
【０１８７】
７．  第７実施形態  
次に、第７実施形態に係る半導体記憶装置及びメモリシステムについて説明する。本実施形態は、フルシーケンス動作について具体的に説明する。なお本実施形態では、ＮＡＮＤ型フラッシュメモリの一例として、三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０１８８】
＜不揮発性半導体記憶装置の構成＞
図２２を用いて、第７実施形態に係わる三次元積層型不揮発性半導体記憶装置について説明する。  
本実施形態の三次元積層型不揮発性半導体記憶装置（メモリシステムとも称す）１１００は、メモリコントローラ１１１０と、ＮＡＮＤ型フラッシュメモリ１１２０と、を有する。
【０１８９】
＜メモリコントローラ＞
メモリコントローラ１１１０は、ホストインターフェイス１１１１、ＲＡＭ（Random Access Memory）１１１２、ＥＣＣ（Error Correcting Code）回路１１１３、ＣＰＵ（Central Processing unit)１１１４、ＲＯＭ（Read Only Memory）１１１５、フラッシュメモリインターフェイス１１１６を含んでいる。
【０１９０】
メモリコントローラ１１１０は、ＮＡＮＤ型フラッシュメモリ１１２０の動作に必要なコマンドなどを出力し、ＮＡＮＤ型フラッシュメモリ１１２０からのデータの読み出し、ＮＡＮＤ型フラッシュメモリ１１２０へのデータの書込み、またはＮＡＮＤ型フラッシュメモリ１１２０のデータの消去を行う。
【０１９１】
ホストインターフェイス１１１１は、データバスを介してパーソナルコンピュータ等のホストデバイス（外部機器）１２００と接続されている。このホストインターフェイス１１１１を介して、ホストデバイス１２００とメモリシステム１１００との間でデータの送受信等が行われる。
【０１９２】
ＲＡＭ１１１２は、例えば揮発性のメモリであり、例えばＣＰＵ１１１４が動作するための動作プログラム等を格納している。
【０１９３】
ＥＣＣ（Error Correcting Code）回路１１１３は、ホストデバイス１２００からデータを受け取り、データにエラー訂正符号を付加し、エラー訂正符号を付されたデータを、例えばフラッシュメモリインターフェイス１１１６に供給する。また、ＥＣＣ回路１１１３は、ＮＡＮＤ型フラッシュメモリ１１２０から供給されたデータをフラッシュメモリインターフェイス１１１６を介して受け取り、このデータに対してエラー訂正符号を用いてエラー訂正を行う。
【０１９４】
ＣＰＵ（Central Processing unit)１１１４は、メモリシステム１１００の全体の動作を司る。ＣＰＵ１１１４はＲＡＭ１１１２及びＲＯＭ１１１５に格納されたデータに基づいてＮＡＮＤ型フラッシュメモリ１１２０を制御する。
【０１９５】
ＲＯＭ（Read Only Memory）１１１５は、不揮発性のメモリであり、例えばＣＰＵ１１１４が動作するための動作プログラム等を格納している。
【０１９６】
フラッシュメモリインターフェイス１１１６には、データバスを介してＮＡＮＤ型フラッシュメモリ１１２０が接続されている。
【０１９７】
＜ＮＡＮＤ型フラッシュメモリ＞
ＮＡＮＤ型フラッシュメモリ１１２０は、入出力バッファ（Input / Output buffer）１１２１、制御回路（Control Circuit）１１２２、カラムアドレスバッファ／カラムデコーダ（Column address buffer / Column decoder）１１２３、フェイルビットカウンタ回路（Fail bit counter circuit）１１２４、データラッチ回路（Data Latch Circuit）１１２５、センスアンプ（Sense Amplifier）１１２６、ロウアドレスバッファ（Row Address Buffer）１１２７、ロウデコーダ（Row Decoder）１１２８、及びメモリセルアレイ（Memory Cell Array）１１３０を備えている。
【０１９８】
メモリセルアレイ１１３０は、複数の不揮発性のメモリセルトランジスタが半導体基板に対して垂直方向に積層された三次元積層型不揮発性半導体記憶装置である。メモリセルアレイ１１３０の詳細な構成については後述する。
【０１９９】
センスアンプ１１２６は、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータを、ＳＥＮノード（不図示）にてセンスする。またセンスアンプ１１２６は、データの書込み時には、センスアンプのＳＥＮノードに書き込みデータに応じた書き込み電圧をセットする。メモリセルアレイ１１３０へのデータの読み出し及び書込みは、複数のメモリセルトランジスタ単位で行われる。センスアンプ１１２６は、カラムアドレスバッファ／カラムデコーダ１１２３から入力されるビット線選択信号を受信し、ビット線選択トランジスタを介してビット線ＢＬの何れかを選択して駆動する。
【０２００】
データラッチ回路１１２５は、それぞれＳＲＡＭ等で構成される第１キャッシュ（cache）１１２５ａ、第２キャッシュ１１２５ｂ、及び第３キャッシュ１１２５ｃを備えている。第１キャッシュ１１２５ａ、第２キャッシュ１１２５ｂ、及び第３キャッシュ１１２５ｃは、それぞれ、メモリコントローラ１１１０から供給されたデータや、センスアンプ１１２６によって検知されたベリファイ結果等を格納する。
【０２０１】
フェイルビットカウンタ回路１１２４は、データラッチ回路１１２５に格納されているベリファイの結果からプログラムが完了していないビット数をカウントする。
【０２０２】
カラムアドレスバッファ／カラムデコーダ１１２３は、メモリコントローラ１１１０から入出力バッファ１１２１を介して入力されるカラムアドレス信号を一時的に格納する。そして、カラムアドレス信号に従ってビット線ＢＬの何れかを選択する選択信号をセンスアンプ１１２６に出力する。
【０２０３】
ロウデコーダ１１２８は、ロウアドレスバッファ１１２７を介して入力されるロウアドレス信号をデコードし、メモリセルアレイのワード線ＷＬ及びセレクトゲート線ＳＧＤ、ＳＧＳを選択して駆動する。また、このロウデコーダ１１２８は、メモリセルアレイ１１３０のブロックを選択する部分とページを選択する部分を有する。
【０２０４】
なお、本実施形態のＮＡＮＤ型フラッシュメモリ１１２０は、図示せぬ外部入出力端子Ｉ／Ｏを有し、この外部入出力端子Ｉ／Ｏを介して入出力バッファ１１２１とメモリコントローラ１１１０とのデータの授受が行われる。外部入出力端子Ｉ／Ｏを介して入力されるアドレス信号は、ロウアドレスバッファ１１２７を介してロウデコーダ１１２８及びカラムアドレスバッファ／カラムデコーダ１１２３に出力される。
【０２０５】
制御回路１１２２は、メモリコントローラ１１１０を介して供給される各種外部制御信号（書込みイネーブル信号ＷＥn、読み出しイネーブル信号ＲＥn、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ等）とコマンドＣＭＤに基づき、データの書込み及び消去のシーケンス制御、及び読み出し動作を制御する。また、制御回路１１２２は、レジスタ等を備えており、例えばフェイルビットカウンタ回路１１２４によってカウントされた値に関係する値や、プログラム電圧印加回数に関係した値を格納している。そして、制御回路１１２２は、プログラムが完了していないビット数と、設定された許容フェイルビット数とを比較して、プログラム動作がパスしたかフェイルであるかの判断を行う。また、制御回路１１２２は、内部にプログラムパルス印加回数をカウントするカウンタを備えている。そして、制御回路１１２２は、カウントしたプログラムパルス印加回数と、レジスタに格納されたプログラムパルス印加回数とを比較する。
【０２０６】
＜メモリセルアレイ＞
図２３に示すように、メモリセルアレイ１１３０は、それぞれがワード線及びビット線に関連付けられた複数の不揮発性メモリセルの集合である複数（図２３の例では３個）のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、ＢＬＫ２、…）を備えている。
【０２０７】
ブロックＢＬＫの各々は、メモリセルが直列接続されたＮＡＮＤストリング１１３１の集合である複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、…）を備えている。もちろん、メモリセルアレイ１１３０内のブロック数や、１ブロックＢＬＫ内のストリングユニット数は任意である。
【０２０８】
次に、図２４を用いて、ブロックＢＬＫ０の回路図について説明する。  
図２４に示すように、ブロックＢＬＫ０は例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１１３１を含む。
【０２０９】
ＮＡＮＤストリング１１３１の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、選択トランジスタＳＴ１、ＳＴ２と、バックゲートトランジスタＢＴとを含んでいる。
【０２１０】
メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。
【０２１１】
バックゲートトランジスタＢＴは、メモリセルトランジスタＭＴと同様に、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。バックゲートトランジスタＢＴはデータを保持するためのものでは無く、データの書込み、読み出し、及び消去時には単なる電流経路として機能する。
【０２１２】
メモリセルトランジスタＭＴ及びバックゲートトランジスタＢＴは、選択トランジスタＳＴ１、ＳＴ２間に、その電流経路が直列接続されるようにして配置されている。なおバックゲートトランジスタＢＴは、メモリセルトランジスタＭＴ３とＭＴ４との間に設けられる。この直列接続の一端側のメモリセルトランジスタＭＴ７の電流経路は選択トランジスタＳＴ１の電流経路の一端に接続され、他端側のメモリセルトランジスタＭＴ０の電流経路は選択トランジスタＳＴ２の電流経路の一端に接続されている。
【０２１３】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続され、選択トランジスタＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続される。これに対して同一のブロックＢＬＫ０内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれワード線ＷＬ０〜ＷＬ７に共通接続される。また、ストリングユニットＳＵ０〜ＳＵ３の各々のバックゲートトランジスタＢＴの制御ゲートはバックゲート線ＢＧに共通接続される。
【０２１４】
すなわち、ワード線ＷＬ０〜ＷＬ７及びバックゲート線ＢＧは同一ブロックＢＬＫ０内の複数のストリングユニットＳＵ０〜ＳＵ３間で共通に接続されているのに対し、セレクトゲート線ＳＧＤ、ＳＧＳは、同一ブロックＢＬＫ０内であってもストリングユニットＳＵ０〜ＳＵ３毎に独立している。
【０２１５】
また、メモリセルアレイ１１３０内でマトリクス状に配置されたＮＡＮＤストリング１１３１のうち、同一行にあるＮＡＮＤストリング１１３１の選択トランジスタＳＴ１の電流経路の他端は、いずれかのビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、（Ｌ−１）は１以上の自然数）に共通接続される。すなわち、ビット線ＢＬは、複数のブロックＢＬＫ間で、ＮＡＮＤストリング１１３１を共通に接続する。また、選択トランジスタＳＴ２の電流経路の他端は、ソース線ＳＬに共通に接続されている。ソース線ＳＬは、例えば複数のブロック間で、ＮＡＮＤストリング１１３１を共通に接続する。
【０２１６】
前述の通り、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴのデータは、一括して消去される。これに対してデータの読み出し及び書込みは、いずれかのブロックＢＬＫのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通に接続された複数のメモリセルトランジスタＭＴにつき、一括して行われる。このデータの書込み単位を「ページ」と呼ぶ。
【０２１７】
図２５を用いてメモリセルアレイ１１３０の一構成例について簡単に説明する。図２５に示す構造が、図２５を記載した紙面の奥行き方向（Ｄ２）に複数配列され、且つそれらがワード線ＷＬ、セレクトゲート線ＳＧＤ及びＳＧＳ、並びにバックゲート線ＢＧを共有して、１つのストリングユニットＳＵが形成される。
【０２１８】
図２５に示すように、半導体基板上方に、バックゲート線ＢＧとして機能する導電層（例えば多結晶シリコン層）１０２１が形成される。更に導電層１０２１上には、ワード線ＷＬとして機能する複数の導電層（例えば多結晶シリコン層）１０２３ａ〜１０２３ｄが形成される。更に導電層１０２３ｄ上には、セレクトゲート線ＳＧＤ及びＳＧＳとして機能する導電層（例えば多結晶シリコン層）１０２７ａ及び１０２７ｂが形成される。
【０２１９】
そして、上記導電層１０２７ａ、１０２７ｂ、及び１０２３ａ〜１０２３ｄを貫通するようにしてメモリホールが形成される。このメモリホールの側面には、ブロック絶縁膜１０２５ａ、電荷蓄積層（絶縁膜）１０２５ｂ、及びゲート絶縁膜１０２５ｃが順次形成され、更にメモリホール内を導電膜１０２６ａ、１０２６ｂが埋め込んでいる。導電膜１０２６ａ、１０２６ｂは、ＮＡＮＤストリング１１３１の電流経路として機能し、メモリセルトランジスタＭＴの動作時にチャネルが形成される領域である。
【０２２０】
更に、導電膜１０２６ａ上には導電膜１０３０ａ及び１０３０ｂが形成され、導電膜１０３０ａ上にはソース線層１０３１が形成され、導電膜１０３０ｂ上には導電膜１０３２を介してビット線層１０３３が形成される。
【０２２１】
＜メモリセルトランジスタの閾値分布について＞
次に、図２６を用いて、本実施形態に係るメモリセルトランジスタＭＴの取りうる閾値分布について説明する。
【０２２２】
図２６示すようにメモリセルトランジスタＭＴは、その閾値に応じて例えば２ビットのデータを保持可能である。この２ビットデータは、閾値の低いものから順番に、例えば“Ｅ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルである。また、各レベルは、上位ビット及び下位ビットの２ビットのアドレスをもつ。例えば“Ｅ”は“１１”と番号付けされ、“Ａ”は“０１”と番号付けされ、“Ｂ”は“００”と番号付けされ、“Ｃ”は“１０”と番号付けされる。“１１”、“０１”、“００”、及び“１０”は、左側の数字が上位ビット、右側の数字が下位ビットに割り当てられる。本実施形態では、下位ビットのデータの書込み単位を「下位ページ」と呼ぶ。また、上位ビットのデータの書込み単位を「上位ページ」と呼ぶ。
【０２２３】
“Ｅ”レベルは、データが消去された状態における閾値であり、例えば負の値を有し（正の値を有していても良い）、ベリファイ電圧ＥＶよりも低い。“Ａ”〜“Ｃ”レベルは、電荷蓄積層内に電荷が注入された状態の閾値であり、“Ａ”レベルは読み出しレベル“ＡＲ”よりも高く、且つ読み出しレベル“ＢＲ”より低い閾値を有する。“Ｂ”レベルは、読み出しレベル“ＢＲ”よりも高く、且つ読み出しレベル“ＣＲ”より低い閾値を有する。“Ｃ”レベルは、読み出しレベル“ＣＲ”よりも高い閾値を有する。
【０２２４】
このように、４つの閾値レベルを取り得ることにより、個々のメモリセルトランジスタＭＴは２ビットのデータ(4-level data)を記憶出来る。
【０２２５】
図２６（ａ）に示すように、メモリセルトランジスタＭＴの消去状態の分布は、“Ｅ”レベルである。
【０２２６】
下位ページ書込みが行われると、図２６（ａ）に示す１値の閾値分布が、図２６（ｂ）に示す２値の閾値分布に変化する。 電圧“ＭＲ”をワード線に供給して読み出し動作を行なうことで、メモリセルの閾値電圧が電圧“ＭＲ”よりも高いか低いか判別できる。その結果、データを読み出すことができる。
【０２２７】
上位ページ書込みが行われると、図２６（ｂ）に示す２値の閾値分布が、図２６（ｃ）に示すように、４値の閾値分布に変化する。
【０２２８】
＜第７実施形態に係るデータの書込み動作について＞
次に、本実施形態に係るデータの書込み動作につき、図２７を参照して説明する。書込み動作は、電荷を電荷蓄積層に注入して閾値を上昇させるプログラム動作と、プログラム動作の結果としての閾値分布の変化を確認するプログラムベリファイ動作とを含む。なお図２７に示す処理は、主に制御回路１１２２の制御によって実行される。
【０２２９】
［Ｓ１０１］
ＮＡＮＤ型フラッシュメモリ１１２０は、メモリコントローラ１１１０から書込みコマンド、下位ページのアドレス、下位ページのデータ、及び書込み開始コマンドを順に受信する。その際、制御回路１１２２は、第３キャッシュ１１２５ｃに、下位ページのデータを展開する。これとともに第２キャッシュ１１２５ｂにも下位ページのデータを展開する。この利用については後述する。なお、以下では簡単のために、書込みコマンド、アドレス、データ、及び書込み開始コマンドをまとめて「コマンドシーケンス」等と称す。
【０２３０】
次に、制御回路１１２２は、書込み開始コマンドを受信すると、下位ページのプログラム動作を開始する。具体的には、制御回路１１２２の命令に応答して、ロウデコーダ１１２８が選択ワード線ＷＬにプログラム電圧ＶＰＧＭ（初回のプログラム印加は、電圧ＶＰＧＭ（initial for lower））を印加し、センスアンプ１１２６がビット線ＢＬに書き込みデータに応じた電圧を印加する。これにより、第３キャッシュ１１２５ｃに展開したデータがメモリセルトランジスタＭＴにページ単位でプログラムされる。
【０２３１】
［Ｓ１０２］
次に、制御回路１１２２の命令に応答して、ロウデコーダ１１２８は、ベリファイ電圧ＶＰＶＦＹを選択ワード線ＷＬに印加して、プログラムベリファイ動作を実行する。ベリファイの結果は第３キャッシュ１１２５ｃに格納し、ここに都度上書きしていく。
【０２３２】
［Ｓ１０３］
制御回路１１２２は、２ビットプログラム（書き込み）動作（フルシーケンス）へ移行可能か否かの判定を行う。２ビットプログラムとは、メモリセルトランジスタＭＴに対して下位ページのデータと上位ページのデータとを併せて書込む動作の事を意味する。  
下記に、制御回路１１２２による当該判定方法について説明する。  
｛方法１｝制御回路１１２２は、メモリコントローラ１１１０から、当該下位ページと同一のワード線ＷＬに属する上位ページに関するコマンドシーケンス（書込みコマンド、上位ページのアドレス、上位ページのデータ、及び書込み開始コマンド）を受信したか否かを判定する。制御回路１１２２は、当該上位ページのデータを受信した場合、第１キャッシュ１１２５ａに、当該上位ページのデータを展開する。なお、以下では、簡単のために書込み動作が行われている下位ページと同一のワード線ＷＬに属する上位ページの事を単に「上位ページ」と称す。
【０２３３】
｛方法２｝制御回路１１２２は、ステップＳ１０２のプログラムベリファイによってデータを読み出す。そして制御回路１１２２は、メモリセルトランジスタＭＴの閾値が所望の値まで上昇しているか否かを、読み出しデータに基づいて確認する。制御回路１１２２は、プログラムが完了していないビット数と、制御回路１１２２のレジスタ内に設定された所定のビット数とを比較する。  
｛方法３｝制御回路１１２２は、ステップＳ１０１の下位ページのプログラム動作（またはプログラム動作及びプログラムベリファイ動作を含む書込み動作）の回数（パルスの印加回数、またはループ回数ともいう）をカウントし、所定の回数を超えたか否かの判定を行う。  
制御回路１１２２は、方法１（判定方法１）、または方法１及び方法２の組み合わせ（判定方法２）、または方法１及び方法３の組み合わせ（判定方法３）、または方法１〜方法３の組み合わせ（判定方法４）を行う事により２ビットプログラム動作へ移行可能か否かの判定を行う。
【０２３４】
｛判定方法１｝
制御回路１１２２が判定方法１を用いる場合の例について説明する。制御回路１１２２は、上位ページに関連するコマンドシーケンスを受信したと判定する場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１１２２は、当該コマンドシーケンスを受信していないと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【０２３５】
｛判定方法２｝
次に、制御回路１１２２が判定方法２を用いる場合の例について説明する。制御回路１１２２は、上位ページに関連するコマンドシーケンスを受信し、且つプログラムが完了していないビット数が、所定のビット数以下であると判定する場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１１２２は、当該コマンドシーケンスを受信していない、若しくはプログラムが完了していないビット数が、所定のビット数よりも大きいと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【０２３６】
｛判定方法３｝
次に、制御回路１１２２が判定方法３を用いる場合の例について説明する。制御回路１１２２は、上位ページに関連するコマンドシーケンスを受信し、且つプログラム動作の回数が所定値以上であると判定する場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１１２２は、当該コマンドシーケンスを受信していない、若しくはプログラム動作の回数が所定値に達していないと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【０２３７】
｛判定方法４｝
次に、制御回路１１２２が判定方法４を用いる場合の例について説明する。制御回路１１２２は、上位ページに関連するコマンドシーケンスを受信し、プログラムが完了していないビット数が、所定のビット数以下であり、且つプログラム動作の回数が所定値以上である場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１１２２は、当該コマンドシーケンスを受信していない、若しくはプログラムが完了していないビット数が、所定のビット数よりも大きい、若しくはプログラムパルス印加回数が所定値に達していないと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【０２３８】
さらに、制御回路１１２２は、少なくとも方法１の判定方法を含む限り、その他の判定方法を方法１に付加してもよい。
【０２３９】
［Ｓ１０４］
ステップＳ１０３において、制御回路１１２２が、２ビットプログラム動作を行えないと判定する場合（ステップＳ１０３、ＮＯ）、制御回路１１２２は選択ページにおける全ビットがベリファイにパスしたか否かを判定する。
【０２４０】
具体的には、制御回路１１２２は、ステップＳ１０２のプログラムベリファイによってデータを読み出す。そして制御回路１１２２は、メモリセルトランジスタＭＴの閾値が所望の値まで上昇しているか否かを、読み出しデータに基づいて確認する。以下、所望の値まで上昇していたビット、すなわちプログラムが完了していたビットと、上昇していなかったビット、すなわちプログラムが完了していなかったビットとを識別し、制御回路１１２２は、プログラムが完了していないビット数(フェイルビット数)と、設定された許容ビット数とを比較して、プログラム動作がパスしたかフェイルであるかを判定する。
【０２４１】
制御回路１１２２は選択ページおけるプログラムベリファイがパスしていると判定する場合（ステップＳ１０４、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【０２４２】
なお、ステップＳ１０３において、制御回路１１２２が、上記方法２を行っている場合、ステップＳ１０４において方法２の判定結果を利用する。
【０２４３】
［Ｓ１０５］
ステップＳ１０５において、制御回路１１２２は、プログラム動作がフェイルしていると判定する場合は（ステップＳ１０４、ＮＯ）、プログラムのループ回数が予め設定されている最大値であるか否かを判定する。制御回路１１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ１０５、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【０２４４】
制御回路１１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ１０５、ＮＯ）、例えば制御回路１１２２は、プログラム電圧ＶＰＧＭ＝（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ１０１に戻る。
【０２４５】
［Ｓ１０６］
ステップＳ１０３において、制御回路１１２２が、２ビットプログラム動作を行えると判定する場合（ステップＳ１０３、ＹＥＳ）、制御回路１１２２は、下位ページ書込みを中断し、下位ページのデータ及びアドレス、並びに上位ページのデータ及びアドレスを用いて、２ビットプログラム動作を開始する。なお、２ビットプログラム動作への移行に際し、下位ページ書込みによって、図２６（ｂ）に示すような、２値の閾値分布が形成されている必要はない。
【０２４６】
この際、下位ページ書込み動作時（ステップＳ１０１〜Ｓ１０５）においてステップアップしてきた下位ページプログラム用のプログラム電圧ＶＰＧＭを、２ビットプログラム用の電圧に初期化する。なお、２ビットプログラム動作において初回のプログラム印加は、電圧ＶＰＧＭ（initial for 2bit）である。また、２ビットプログラム動作においては、前記格納した第２キャッシュ１２５ｂのデータをもとにした下位ページデータならびに第１キャッシュ１２５ａに格納された上位ページデータをもとに書き込みを開始する。
【０２４７】
［Ｓ１０７］
ステップＳ１０２と同様に、ロウデコーダ１１２８は、プログラムベリファイ動作を実行する。
【０２４８】
［Ｓ１０８］
ステップＳ１０４と同様にして、そして制御回路１１２２は、プログラムベリファイ動作を行う。選択ページにおけるプログラムベリファイにパスすれば（ステップＳ１０８、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【０２４９】
［Ｓ１０９］
ステップＳ１０５と同様に、制御回路１１２２は、プログラム動作がフェイルしていると判定する場合は（ステップＳ１０８、ＮＯ）、プログラムのループ回数が最大値であるか否かを判定する。制御回路１１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ１０９、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【０２５０】
制御回路１１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ１０９、ＮＯ）、例えば制御回路１１２２は、プログラム電圧ＶＰＧＭを（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ１０６に戻る。
【０２５１】
なお、２ビットプログラム時においても、下位ページプログラム時と同様に、プログラム電圧ＶＰＧＭはΔＶxずつステップアップしているが、必ずしもこれに限らない。このことは、以下の他の実施形態でも同様である。
【０２５２】
＜第７実施形態に係るデータの書込み動作の具体例１について＞
次に、第７実施形態に係るデータの書込み動作の具体例１につき、図２８を参照して説明する。具体例１では、ステップＳ１０３において、判定方法３を採用した場合の動作について説明する。図２８に示すレディ／ビジーは、図示せぬＮＡＮＤ型フラッシュメモリ１１２０に設けられたピンの状態を示し、ＮＡＮＤ型フラッシュメモリの内部動作でキャッシュが占有されているか否かを示す。たとえば”Ｈ”レベルであればすくなくとも１つキャッシュが解放されていて、たとえばデータ入力が可能であることを示す
［時刻Ｔ０］
時刻Ｔ０より、ＮＡＮＤ型フラッシュメモリ１１２０は、メモリコントローラ１１１０から、下位ページに関連するコマンドシーケンス（書込みコマンド（８０）、下位ページのアドレス、下位ページのデータ、及び書込み開始コマンド（１５））の受信を開始する。
【０２５３】
［時刻Ｔ１］
時刻Ｔ１より、制御回路１１２２は、第３キャッシュ１１２５ｃに、下位ページのデータの展開を開始する。時刻Ｔ１から時刻Ｔ２の間、ＮＡＮＤ型フラッシュメモリ１１２０はビジー状態になる。
【０２５４】
そして、ステップＳ１０１〜Ｓ１０５の動作が実行される。  
［時刻Ｔ２］
本具体例１の場合、制御回路１１２２は、上位ページに関連するコマンドシーケンスを受信可能とし、且つ書込み動作の回数が所定の回数（ここでは、一例として３回）以上であると判定する場合、２ビットプログラム動作を開始するものとする。
【０２５５】
［時刻Ｔ３］
時刻Ｔ３までに、メモリセルアレイ１１３０への下位ページの書込み動作が行われている間に、上位ページに関連するコマンドシーケンスがＮＡＮＤ型フラッシュメモリ１１２０に入力される。
【０２５６】
［時刻Ｔ４］
時刻Ｔ４において、制御回路１１２２は、書込み動作が３回行われた後のステップＳ１０３に係る判定において、２ビットプログラム動作への移行することができると判定するため、２ビットプログラム動作を開始する。
【０２５７】
２ビットプログラム動作の際、制御回路１１２２は、下位ページ書込み動作時（時刻Ｔ２〜時刻Ｔ３）においてステップアップしてきた下位ページプログラム用のプログラム電圧ＶＰＧＭ（ＶＰＧＭ（initial for lower）＋ΔＶx＋ΔＶx）を２ビットプログラム用の電圧に初期化する。なお、２ビットプログラム動作において初回のプログラム印加は、電圧ＶＰＧＭ（initial for 2bit）（電圧ＶＰＧＭ（initial for 2bit）＜ステップアップしてきた下位ページプログラム用のプログラム電圧ＶＰＧＭ）である。
【０２５８】
＜第７実施形態に係るデータの書込み動作の具体例２について＞
次に、第７実施形態に係るデータの書込み動作の具体例２につき、図２９を参照して説明する。具体例２では、ステップＳ１０３において、判定方法３を採用した場合の動作について説明する。図２９に示すレディ／ビジーは、ＮＡＮＤ型フラッシュメモリ１１２０のレディ／ビジーを示している。  ［時刻Ｔ０］〜［時刻Ｔ２］
図２８で説明した時刻Ｔ０〜時刻Ｔ２の動作と同様である。
【０２５９】
［時刻Ｔ４］
時刻Ｔ４において、書込み動作が３回行われた直後のステップＳ１０３において、未だ、上位ページに関連するコマンドシーケンスがＮＡＮＤ型フラッシュメモリ１１２０に入力されていない。そのため、制御回路１１２２は、２ビットプログラム動作へ移行できないと判定し、４回目の書込み動作に移行する。
【０２６０】
［時刻Ｔ５］
時刻Ｔ５において、メモリセルアレイ１１３０への下位ページの書込み動作が行われている間に、上位ページに関連するコマンドシーケンスのＮＡＮＤ型フラッシュメモリ１１２０への入力が完了する。
【０２６１】
［時刻Ｔ６］
制御回路１１２２は、プログラム動作が４回行われた後のステップＳ１０３に係る判定において、２ビットプログラム動作への移行することができると判定するため、２ビットプログラム動作を開始する。
【０２６２】
＜第７実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、メモリセルアレイ１１３０への下位ページの書込み動作において、選択ページにおける全ビットがベリファイにパスしていなくても、所定の条件下で、２ビットプログラム動作を開始することができるメモリシステム１１００を開示している。
【０２６３】
より具体的には、メモリセルアレイ１１３０への下位ページの書込み動作が行われている間に、制御回路１１２２は、少なくとも当該下位ページと同一のワード線ＷＬに属する上位ページに関連するコマンドシーケンス（書込みコマンド、アドレス、データ、及び書込み開始コマンド）を受信したか否かを判定する。
【０２６４】
そして、制御回路１１２２が、少なくとも当該下位ページと同一のワード線ＷＬに属する上位ページに関連するコマンドシーケンスを受信したと判定する場合は、下位ページのデータ及びアドレス、並びに上位ページのデータ及びアドレスを用いて、２ビットプログラム動作に移行する。
【０２６５】
ところで、２ビット（４値）データを、書込む動作において、１ビットずつデータを書き込む方法がある。この際、図２６（ｂ）に示すように２ビットのうちのまず下位ページのデータが書き込まれ、次に図２６（ｃ）に示すように上位ページのデータが書き込まれる。しかしながら、このような書込み方法場合、下位ページのデータの書込みが終了するまでは、上位ページのデータの書込みに移行できない。
【０２６６】
一方で、このように、上述した実施形態に係るメモリシステム１１００を用いることによって、下位ページの書込みを終了する（２値の閾値分布を形成する）前に、２ビットプログラム動作を行うので、より高速に２ビット（４値）プログラムを行うことができる。これにより、より高速に書込み動作を行うことができる高品質なメモリシステム１１００を提供することができる。
【０２６７】
なお、第７実施形態によれば、制御回路１１２２は、ステップＳ１０２のプログラムベリファイ後に、ステップＳ１０３の判定を行っているがこれに限らない。例えば、制御回路１１２２は、ステップＳ１０３の判定は、ステップＳ１０１、Ｓ１０２と並列に実行しても良い。
【０２６８】
また、制御回路１１２２は、ステップＳ１０２の下位ページに関するプログラムベリファイが終わった後に、２ビットプログラム動作に移行しているが、これに限らない。例えば、制御回路１１２２は、ステップＳ１０１のプログラム中、またはステップＳ１０２のプログラムベリファイ中に、２ビットプログラム動作に移行しても良い。しかしながら、ステップＳ１０２の下位ページに関するプログラムベリファイが終わった後のほうが、下位ページのプログラムベリファイ結果を把握でき、制御回路１１２２は、より望ましい移行タイミングを導出することができる。
【０２６９】
８．  第８実施形態  
続いて、図３０及び図３１を用いて、第８実施形態に係るメモリシステム１１００について説明する。第８実施形態では、第７実施形態において、制御回路１１２２が、所定のコマンドを受信した場合、下位ページ書込み動作を行わず、一気に上位ページ書込み動作を行うものである。以下、第８実施形態において、上述した第７実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０２７０】
＜第８実施形態に係るデータの書込み動作について＞
次に、第８実施形態に係るデータの書込み動作につき、図３０を参照して説明する。なお図３０に示す処理は、主に制御回路１１２２の制御によって実行される。
【０２７１】
［Ｓ２０１］
制御回路１１２２は、２ビットプログラム動作（フルシーケンス）に移行可能かを判定する。具体的には、制御回路１１２２は、メモリコントローラ１１１０から、書込み開始コマンドではなく待機コマンドを含むコマンドシーケンスを受信するか否かを判定する。
【０２７２】
［Ｓ２０２］
制御回路１１２２は、メモリコントローラ１１１０から、待機コマンドを含まない、下位ページに関連するコマンドシーケンスを受信する場合（ステップＳ２０１、ＮＯ）、ステップＳ１０１と同様の動作を行う。
【０２７３】
［Ｓ２０３］
次に、ロウデコーダ１１２８は、ステップＳ１０２と同様の動作を行う。
【０２７４】
［Ｓ２０４］
続いて、制御回路１１２２は、ステップＳ１０４と同様の動作を行う。選択ページにおけるプログラムベリファイにパスすれば（ステップＳ２０４、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【０２７５】
［Ｓ２０５］
ステップＳ１０５と同様に、制御回路１１２２は、選択ページにおけるプログラムベリファイにフェイルしていると判定する場合は（ステップＳ２０４、ＮＯ）、プログラムのループ回数が最大値であるか否かを判定する。制御回路１１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ２０５、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【０２７６】
制御回路１１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ２０５、ＮＯ）、例えば制御回路１１２２は、プログラム電圧ＶＰＧＭを（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ２０２に戻る。
【０２７７】
［Ｓ２０６］
ステップＳ２０１において、制御回路１１２２が、メモリコントローラ１１１０から、待機コマンド（１Ａ）を含むコマンドシーケンスを受信する場合（ステップＳ２０１、ＹＥＳ）、下位ページの書込み動作は行わず、上位ページに関連するコマンドシーケンスを受信するまで待機する。
【０２７８】
［Ｓ２０７］
制御回路１１２２は、メモリコントローラ１１１０から上位ページに関連するコマンドシーケンスを受信した場合、下位ページのデータ及びアドレス、並びに上位ページのデータ及びアドレスを用いて２ビットプログラム動作（フルシーケンス）のためのプログラム動作を開始する。なお、２ビットプログラム動作において初回のプログラム印加は、電圧ＶＰＧＭ（initial for 2bit）である。
【０２７９】
［Ｓ２０８］
ステップＳ１０７と同様に、ロウデコーダ１１２８は、プログラムベリファイ動作を実行する。
【０２８０】
［Ｓ２０９］
ステップＳ２０４と同様にして、そして制御回路１１２２は、プログラムベリファイ動作を行う。選択ページにおけるプログラムベリファイにパスすれば（ステップＳ２０９、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【０２８１】
［Ｓ２１０］
ステップＳ２０５と同様に、制御回路１１２２は、選択ページにおけるプログラムベリファイにフェイルしていると判定する場合は（ステップＳ２０９、ＮＯ）、プログラムのループ回数が最大値であるか否かを判定する。制御回路１１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ２１０、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【０２８２】
制御回路１１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ２１０、ＮＯ）、例えば制御回路１１２２は、プログラム電圧ＶＰＧＭを（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ２０７に戻る。
【０２８３】
＜第８実施形態に係るデータの書込み動作の具体例について＞
次に、第８実施形態に係るデータの書込み動作の具体例につき、図３１を参照して説明する。図３１に示すレディ／ビジーは、ＮＡＮＤ型フラッシュメモリ１１２０のレディ／ビジーを示している。
【０２８４】
［時刻Ｔ０］
時刻Ｔ０において、ＮＡＮＤ型フラッシュメモリ１１２０は、メモリコントローラ１１１０から、下位ページに関連するコマンドシーケンスを受信する。
【０２８５】
［時刻Ｔ１］
時刻Ｔ１において、制御回路１１２２は、当該コマンドシーケンスに、待機コマンド（１Ａ）が含まれていると判定する場合、下位ページの書込み動作は行わず、上位ページに関連するコマンドシーケンスを受信するまで待機する。
【０２８６】
また、制御回路１１２２は、第３キャッシュ１１２５ｃに、下位ページのデータを展開する。この間、ＮＡＮＤ型フラッシュメモリ１１２０はビジー状態になる。
【０２８７】
［時刻Ｔ２］
時刻Ｔ２において、第３キャッシュ１１２５ｃへの、下位ページのデータの展開が完了すると、ＮＡＮＤ型フラッシュメモリ１１２０はレディ状態になる。
【０２８８】
［時刻Ｔ３］
時刻Ｔ３において、制御回路１１２２は、メモリコントローラ１１１０から上位ページに関連するコマンドシーケンスを受信すると、２ビットプログラム動作（フルシーケンス）を開始する。
【０２８９】
＜第８実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、メモリコントローラ１１１０は、待機コマンド（１Ａ）を用いて、ＮＡＮＤ型フラッシュメモリ１１２０の下位ページ書込み動作を待機させている。そして、メモリコントローラ１１１０は、上位ページに係るコマンドシーケンスをＮＡＮＤ型フラッシュメモリ１１２０に入力させることにより、ＮＡＮＤ型フラッシュメモリ１１２０に２ビットプログラム動作を行わせることができる。
【０２９０】
このように、本実施形態では、下位ページ書込みを行わず、２ビットプログラムを行うので、１ビットずつ書込み動作を行う場合に比べて、より高速に書込み動作を行うことが可能となる高品質なメモリシステム１１００を提供することができる。
【０２９１】
９．  第９実施形態
続いて、図３２を用いて、第９実施形態に係るメモリシステム１１００ついて説明する。第９実施形態では、第７実施形態と、第８実施形態とを組み合わせた動作を説明している。なお、第９実施形態において、上述した第７実施形態及び第８実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０２９２】
＜第９実施形態に係るデータの書込み動作について＞
第９実施形態に係るデータの書込み動作につき、図３２を参照して説明する。なお図３２に示す処理は、主に制御回路１１２２の制御によって実行される。
【０２９３】
［Ｓ３０１］
制御回路１１２２は、ステップＳ２０１と同様に動作する。
【０２９４】
［Ｓ３０２］
制御回路１１２２は、ステップＳ２０２と同様に動作する（ステップＳ３０１、ＮＯ）。
【０２９５】
［Ｓ３０３］
次に、ロウデコーダ１１２８は、ステップＳ２０３と同様に動作する。
【０２９６】
［Ｓ３０４］
続いて、制御回路１１２２は、ステップＳ１０３と同様に動作する。
【０２９７】
［Ｓ３０５］
更に、制御回路１１２２は、ステップＳ１０４と同様に動作する（ステップＳ３０４、ＮＯ）。
［Ｓ３０６］
続いて、制御回路１１２２は、ステップＳ１０５と同様に動作する（ステップＳ３０５、ＮＯ）。
【０２９８】
［Ｓ３０７］
制御回路１１２２は、Ｓ２０６と同様に動作する。
【０２９９】
［Ｓ３０８］
制御回路１１２２は、ステップＳ１０６、またはＳ２０７と同様に動作する（ステップＳ３０４、Ｓ３０１、ＹＥＳ）。
【０３００】
［Ｓ３０９］
ロウデコーダ１１２８は、ステップＳ１０７と同様に動作する。
【０３０１】
［Ｓ３１０］
制御回路１１２２は、ステップＳ１０８と同様に動作する。
【０３０２】
［Ｓ３１１］
制御回路１１２２は、ステップＳ１０９と同様に動作する（ステップＳ３１０、ＮＯ）。
【０３０３】
＜第９実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、第７実施形態に係るデータの書込み方法と、第８実施形態に係るデータの書込み方法とを組み合わせている。そのため、第７実施形態及び第８実施形態の作用効果を享受することが可能となる。
【０３０４】
１０．  第１０実施形態  
続いて、図３２を用いて、第１０実施形態に係るメモリシステム１１００ついて説明する。第１０実施形態では、第７実施形態における下位ページ書込み動作時において、ベリファイがフェイルとなった場合において、下位ページデータを訂正する方法について説明する。なお、第１０実施形態において、上述した第７実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０３０５】
＜第１０実施形態に係るデータの書込み動作について＞
次に、第１０実施形態に係るデータの書込み動作につき、図３３を参照して説明する。なお図３３に示す処理は、主に制御回路１１２２の制御によって実行される。
【０３０６】
［Ｓ４０１］〜［Ｓ４０５］
ステップＳ１０１〜Ｓ１０５と同様に動作する。
【０３０７】
［Ｓ４０６］
制御回路１１２２は、センスアンプ１１２６を介して、下位ページ書込み動作後の現在のセル状態を検査読み出しする。検査読み出しを実施せずに、第３キャッシュ１１２５ｃに残留しているプログラムベリファイの結果を用いてもよい。  
図３４に示すように、プログラムベリファイの結果（Lower page program result）が、第３キャッシュ１１２５ｃに格納される。図３４において“Ｐ”はベリファイパスビット、“Ｆ”はベリファイフェイルビットを示している。また、下位ページデータは第２キャッシュ１１２５ｂに格納される。図３４では、bit2と、bit6の下位ページがフェイルしているものとする。
【０３０８】
［Ｓ４０７］
ここで、制御回路１１２２は、下記の３通りの方法で、下位ページのフェイルを救済する。なお、ここでは、詳細に記載しないが、例えばページ単位のデータにページＥＣＣパリティが付与され、ＥＣＣ回路１１１３で、演算されることにより、所定のビット数のエラーを救済することが可能である。したがって、ＮＡＮＤ型フラッシュメモリ１１２０においては、ＥＣＣ回路１１１３にデータ訂正が可能な範囲で、書き込みデータの変更や書き込み未完了ビットの放置が許容できる場合がある。ここで述べる救済とは、前記データの変更、またはプログラムベリファイの判断基準の変更のことを意味している。
【０３０９】
｛救済方法１｝
図３４において、ｂｉｔ２は下位ページデータが”０”、上位ページデータが”０”で、最終的な閾値分布到達位置は”Ｂ”レベルである。しかし、下位ページ書き込みから２ビット書込みに移行する段階、具体的にはステップＳ４０６において、閾値分布のＡ分布を超えていることが確認できれば、制御回路１１２２は、ｂｉｔ２の下位ページデータを”０”データから”１”データに変更する処理を行う。これにより、当該２ビットプログラムでは、ｂｉｔ２は下位ページデータのビット不良として処理することができる。
【０３１０】
｛救済方法２｝
下位ページでプログラムベリファイがフェイルとなったビットは、書き込みが困難な不良ビットである可能性があり、このビットは上位ページ書き込みでもまたプログラムベリファイがフェイルとなる可能性がある。そこで、制御回路１１２２は、２ビット書込みに移行する段階で、上位ページと下位ページのデータを変更する。具体的には図３５において、ｂｉｔ６は下位ページデータが”０”、上位ページデータが”１”で最終的な閾値分布到達位置は”Ｃ”である。ここで制御回路１１２２は、ｂｉｔ６の下位ページ書き込みデータを”０”データから”１”データに変更する処理を行う。これにより、２ビット書込みではｂｉｔ６に対して非書込みとなり、以降書き込みが行われない。
【０３１１】
｛救済方法３｝
救済方法１、救済方法２では、２ビットプログラムに移行する段階で、上位または下位ページデータを変更する方法を開示した。救済方法３では、上位ページや下位ページデータを変更せずに、前記現在のセルの状態の検査読み出しの結果、もしくは第３キャッシュ１１２５ｃに残留しているプログラムベリファイの結果により、プログラムベリファイがパスしているか否かの判断基準を変更する。
【０３１２】
救済方法１、救済方法２、救済方法３は、書き込みの進捗、具体的にはフェイルビットの数や、ループ回数など複数の判断基準により、制御回路１１２２が適切に判断してよい。
【０３１３】
次に、具体的な書き込みデータの処理方法について述べる。図３６において、第３キャッシュ１１２５ｃに格納されているLower Page program resultでＰは１データを、Ｆは０データを示すものとする。
【０３１４】
救済方法１では、下位ページ書き込みデータが格納されている第２キャッシュ１１２５ｂと、上位ページデータが格納されている第１キャッシュ１１２５ａのＯＲ演算結果を反転し、その結果にさらに第３キャッシュ１１２５ｃに格納されている下位ページのプログラムベリファイの結果の反転データをＡＮＤ演算し、演算結果を第２キャッシュ１１２５ｂに格納されている下位ページ書込みデータにＯＲ演算することで達成する。
【０３１５】
これにより、下位ページ書き込み時のプログラムベリファイがフェイルしているビットを０から１データに変更し、この変更後のデータを用いて２ビット書き込みを開始する。
【０３１６】
救済方法２では、第３キャッシュ１１２５ｃに格納されている下位ページプログラムベリファイの結果の反転を、下位ページの書き込みデータが格納されている第２キャッシュ１１２５ｂと上位ページ書き込みデータが格納されている第１キャッシュ１１２５ａそれぞれにＯＲ演算して達成する。
【０３１７】
これにより、下位ページ書き込み時のプログラムベリファイがフェイルしているビットをそれぞれ０から１データに変更して非書込みデータとし、この変更後のデータを用いて２ビット書込みを開始する。
【０３１８】
救済方法３では、図３６を参照すると、ｂｉｔ６とｂｉｔ２が下位ページの書き込みでプログラムベリファイがフェイルだったビットである。ｂｉｔ６の最終的な閾値分布到達位置は“Ｃ”であり、ｂｉｔ２の閾値分布到達位置は“Ａ”である。よって、２ビット書き込みに移行後のプログラムベリファイの判断において、具体的にはステップＳ４１０の判断において、設定された許容ビット数に、下位ページの検査読み出しの結果またはプログラムベリファイのフェイルビットの数に関係した数を加算する。
【０３１９】
より具体的には、制御回路１１２２は、ステップＳ４１０の判断において、閾値分布ごとに許容ビット数を設定することがある。このような場合、制御回路１１２２は、Ａの閾値分布については設定された許容数を使用する。制御回路１１２２は、Ｂの閾値分布については、設定された許容数に下位ビットのフェイルビットの数に関係してここでは１を加算した許容数を設定する。制御回路１１２２は、Ｃの閾値分布については、設定された許容数に下位ビットのフェイルビット数に関係してここでは１を加算した許容数を設定する。
【０３２０】
制御回路１１２２は、閾値分布ごとではなく、２ビット書込み全体で許容ビット数を設定することがある。このような場合、制御回路１１２２は、下位ページ書き込みのフェイルビット数に関係して、設定された許容数に２を加算した許容数を設定する。
【０３２１】
上記設定された許容数とは、回路で設定された値や、既知のフューズに記録された値である。
【０３２２】
［Ｓ４０８］〜［Ｓ４１０］
ステップＳ１０６〜Ｓ１０８と同様の動作を行う。
【０３２３】
［Ｓ４１１］
ステップＳ１０９と同様の動作を行い、ループ回数が最大値では無い場合は、ステップＳ４０７に戻る。
【０３２４】
＜第１０実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、フェイルとなった下位ページに関連する上位ページの書込み状態によって、処置する方法を変えている。
【０３２５】
ところで、このＥＣＣ回路１１１３による救済は限度が有り、フェイルビット数がページＥＣＣパリティにより救済可能なビット数を超える場合、救済することはできない。
【０３２６】
しかしながら、上述した実施形態によれば、救済が必要なビット数を軽減することができる。
【０３２７】
また、予め、フェイルになる可能性のあるビットへの書込み動作を行わないため、書込み時間が長いビットへの書込み動作を、未然に回避し、システム性能、とくに書き込み性能劣化を回避することが可能となる。
【０３２８】
または、プログラムベリファイのパス、フェイルの判断基準を下位ページの書き込み結果に応じて変更することで、当該ページに適切なベリファイのパスフェイル基準を設定することによっても、書き込み性能劣化を回避することが可能である。
【０３２９】
更に、第７実施形態と同様の効果を得ることもできるので、より高速に書込み動作をおこなうことができる高品質なメモリシステム１１００を提供することができる。
【０３３０】
なお、第１０実施形態は、第８実施形態及び第９実施形態と組み合わせて用いる事も可能である。
【０３３１】
１１．変形例等
上記実施形態のメモリシステムは、半導体記憶装置(100@図1)とコントローラ(200@図1)とを備える。半導体記憶装置は、第１及び第２ビットを記憶可能な第１メモリセル(MT@図3)と、複数の第１メモリセルを含み、第１ビットに対応した第１ページ(Data1_0 @図6)及び第２ビットに対応した第２ページ(Data2_0@図6)を記憶可能な第１メモリセルユニットを備える第１メモリセルアレイ(111_0@図3)と、第１メモリセルアレイに接続された第１センスアンプ(115_0@図2)と、コントローラから送信される第１及び第２ページの１つを保持する第１キャッシュ(116_0@図2)と、第１センスアンプに接続され、第１キャッシュから転送される第１ページを保持する第２キャッシュ(117_0@図2)と、第１センスアンプに接続され、第１キャッシュから転送される第２ページを保持する第３キャッシュ(118_0@図2)とを備え、第１コマンド(C4@図6)に応じて、第２キャッシュが保持する第１ページと、第３キャッシュが保持する第２ページとを第１メモリセルアレイに書き込む。コントローラは、第１ページに対応する第１アドレス信号(Address1_0@図6)を送信する前に、第２ページに対応する第２アドレス信号(Address2_0@図6)を半導体記憶装置に送信可能である。半導体記憶装置は、第１アドレス信号に応じて、第１ページを第２キャッシュに保持し、第２アドレス信号に応じて、第２ページを第３キャッシュに保持する。
【０３３２】
上記実施形態を適用することにより、処理能力を向上できる半導体記憶装置及びメモリシステムを提供できる。
【０３３３】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【０３３４】
１１．１  第１変形例
上記実施形態では、第１ページあるいは第２ページを示す情報がアドレス信号に含まれている場合について説明したが、第１ページあるいは第２ページを示す情報がプレフィックスコマンドとしてコントローラ２００から送信されても良い。本例について、図１８及び図１９を用いて説明する。
【０３３５】
図１８に示すように、第１実施形態の図２と異なる点は、ＮＡＮＤ型フラッシュメモリ１００は、第１ページ及び第２ページの情報をコマンドで受信するため、コマンドデコーダ１２６から信号PLN0_PG2及び信号PLN1_PG2がメモリセル制御レジスタ１３０に送信されている点である。
【０３３６】
また、図１９に示すように、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００にデータを送信する際に、コマンド“Ｃ１”の前にプレフィックスコマンドとして第１ページを示すコマンド“Ｐ１”あるいは第２ページを示す“Ｐ２”が付加されている。
【０３３７】
１１．２  第２変形例
第１実施形態において、図６に示すように、コントローラ２００は１回目と３回目のデータ送信の際、コマンド“ＤＣ３”を送信したが、コマンド“ＴＣ２”を用いても良い。本例について、図２０及び図２１を用いて説明する。
【０３３８】
図２０及び図２１に示すように、コントローラ２００は、１回目と３回目のデータ送信時（図２０の参照符号（ａ）及び（ｃ））にコマンド“ＴＣ２”を送信している。そして信号CMD_TC2もコマンド“ＴＣ２”に対応して“Ｈ”レベルとされている。これにより１回目のデータ受信後（図２０及び図２１の参照符号（１））、センスユニット１１３では、プレーンＰＬＮ１において第１キャッシュ１１６＿１に格納されたデータ“Data1_1”が第２キャッシュ１１７＿１に転送されている。また３回目のデータ受信後（図２０及び図２１の参照符号（１））、センスユニット１１３では、プレーンＰＬＮ０において、第１キャッシュ１１６＿０に格納されたデータ“Data2_0”が第２キャッシュ１１７＿０に転送されている。
【０３３９】
１１．３  第３変形例
第１実施形態において、コントローラ２００は、プレーンＰＬＮ１の第１ページ、プレーンＰＬＮ０の第１ページ、プレーンＰＬＮ０の第２ページ、プレーンＰＬＮ１の第２ページの順にデータを送信したが、データ送信順序は任意に変更可能である。データ送信順序の組み合わせについて具体的に説明する。
【０３４０】
まず１回目のデータ送信で、４つのページ（プレーンＰＬＮ０の第１及び第２ページ、並びにプレーンＰＬＮ１の第１及び第２ページ）の１つに対応するデータが送信される。
【０３４１】
次に２回目のデータ送信で、１回目のデータ送信で送信されなかった３つのページの１つに対応するデータが送信される。例えば、１回目のデータ送信でプレーンＰＬＮ０の第１ページのデータが送信された場合は、３つのページ（プレーンＰＬＮ０の第２ページ、並びにプレーンＰＬＮ１の第１及び第２ページ）の１つに対応するデータが送信される。
【０３４２】
次に３回目のデータ送信で、１回目及び２回目のデータ送信で送信されなかった２つのページの１つに対応するデータが送信される。例えば、１回目のデータ送信でプレーンＰＬＮ０の第１ページのデータが送信され、２回目のデータ送信でプレーンＰＬＮ１の第２ページのデータが送信された場合は、２つのページ（プレーンＰＬＮ０の第２ページ及びプレーンＰＬＮ１の第１ページ）の１つに対応するデータが送信される。
【０３４３】
次に４回目のデータ送信で、１回目乃至３回目のデータ送信で送信されなかったページのデータが送信される。例えば１回目のデータ送信でプレーンＰＬＮ０の第１ページのデータが送信され、２回目のデータ送信でプレーンＰＬＮ１の第２ページのデータが送信され、３回目のデータ送信でプレーンＰＬＮ１の第１ページのデータが送信された場合は、プレーンＰＬＮ０の第２ページのデータが送信される。
【０３４４】
よって、コントローラ２００が４つのページ（プレーンＰＬＮ０及びＰＬＮ１の第１及び第２ページ）のデータを送信する場合、その順序の組み合わせは４×３×２で２４通りとなる。
【０３４５】
なお、それぞれのデータ送信に対して第２実施形態で説明したようにデータの上書きあるいはＯＲ演算を実行した場合、または第３実施形態で説明したようにページのデータが無い場合等を含めると、データ送信の順序の組み合わせは更に増える。
【０３４６】
１１．４  その他変形例
なお、上記実施形態は一例に過ぎず、各実施形態は種々の変形が可能である。更に、各実施形態は、可能な限り組み合わせることが出来る。例えば、第１実施形態に係る構成において、第２実施形態と第６実施形態を適用し、第２キャッシュ１１７に格納されたデータを一旦コントローラ２００に読み出し、ＥＣＣ等の処理を行ってから、再度第２キャッシュ１１７に送信し、上書きを行っても良い。
【０３４７】
更に上記実施形態における「転送」とは、データを移動させる場合も、複写する場合も含む。具体的には、例えば第１キャッシュ１１６から第２キャッシュ１１７あるいは第３キャッシュ１１８にデータを転送する際、第１キャッシュ１１６では、転送後もデータが保持されていても良く、消去されても良い。
【０３４８】
更に上記実施形態は、平面型ＮＡＮＤ型フラッシュメモリあるいは三次元積層型ＮＡＮＤ型フラッシュメモリのいずれにも適用できる。
【０３４９】
更に第７乃至第１０実施形態では、２値書込みから４値書込みへの移行、あるいは最初から４値書込みをする方法について説明した。しかし、これに限らず、超多値の場合、例えば２値書込みから８値書込み、４値書込みから８値書込み、または最初から８値書込みを行う場合なども同様の方法を使用することができる。換言すると、メモリセルトランジスタＭＴが２ビット以上のデータを保持可能な場合でも、上述する第７乃至第１０実施形態を適用することが可能である。
【０３５０】
更に第７乃至第１０実施形態では、データラッチ回路１１２５は、３つのキャッシュを備えているが、これに限らず、少なくとも２つ以上のキャッシュを備えていれば良い。
【０３５１】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【０３５２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【０３５３】
なお、本発明に関する各実施形態において、以下の通りであっても良い。
【０３５４】
（１）読み出し動作では、
Ａレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V、0.21V〜0.31V、0.31V〜0.4V、0.4V〜0.5V、0.5V〜0.55Vいずれかの間にしても良い。
【０３５５】
Ｂレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V、1.8V〜1.95V、1.95V〜2.1V、2.1V〜2.3Vいずれかの間にしても良い。
【０３５６】
Ｃレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V、3.2V〜3.4V、3.4V〜3.5V、3.5V〜3.6V、3.6V〜4.0Vいずれかの間にしても良い。
【０３５７】
読み出し動作の時間（tR）としては、例えば25μs〜38μs、38μs〜70μs、70μs〜80μsの間にしても良い。
【０３５８】
（２）書き込み動作は、上述した通りプログラム動作とベリファイ動作を含む。書き込み動作では、
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V、14.0V〜14.6Vいずれかの間としても良い。
【０３５９】
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えても良い。
【０３６０】
プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
【０３６１】
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としても良い。
【０３６２】
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えても良い。
【０３６３】
書き込み動作の時間（tProg）としては、例えば1700μs〜1800μs、1800μs〜1900μs、1900μs〜2000μsの間にしても良い。
【０３６４】
（３）消去動作では、
半導体基板上部に形成され、且つ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V、14.8V〜19.0V、19.0〜19.8V、19.8V〜21Vの間であっても良い。
【０３６５】
消去動作の時間（tErase）としては、例えば3000μs〜4000μs、4000μs〜5000μs、4000μs〜9000μsの間にしても良い。
【０３６６】
（４）メモリセルの構造は、
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることが出来る。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることが出来る。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることが出来る。
【０３６７】
また、メモリセル間にはエアギャップを形成することが出来る。
【符号の説明】
【０３６８】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…コア部、１１１…メモリセルアレイ、１１２…ロウデコーダ、１１３…センスユニット、１１４…ＮＡＮＤストリング、１１５…センスアンプ、１１６…第１キャッシュ、１１７…第２キャッシュ、１１８…第３キャッシュ、１１９…内部バス、１２０…周辺回路部、１２１、１２２…入力バッファ、１２３、１２４…出力バッファ、１２５…アドレスバッファ、１２６…コマンドデコーダ、１２７…データバッファ、１２８…セレクタ、１２９…ステートマシン、１３０…メモリセル制御レジスタ、２００…コントローラ、２０１…ホストインターフェイス回路、２０２…メモリ、２０３…プロセッサ、２０４…バッファメモリ、２０５…ＮＡＮＤインターフェイス回路、２０６…ＥＣＣ回路、３００…ホスト機器、１１００…メモリシステム、１１１０…メモリコントローラ、１１１１…ホストインターフェイス、１１１２…ＲＡＭ、１１１３…ＥＣＣ回路、１１１４…ＣＰＵ、１１１５…ＲＯＭ、１１１６…フラッシュメモリインターフェイス、１１２０…ＮＡＮＤ型フラッシュメモリ、１１２１…入出力バッファ、１１２２…制御回路、１１２３…カラムデコーダ、１１２４…フェイルビットカウンタ回路、１１２５…データラッチ回路、１１２５ａ…第１キャッシュ、１１２５ｂ…第２キャッシュ、１１２５ｃ…第３キャッシュ、１１２６…センスアンプ、１１２７…ロウアドレスバッファ、１１２８…ロウデコーダ、１１３０…メモリセルアレイ、１１３１…ＮＡＮＤストリング、１２００…ホストデバイス。
【図１】
0006453729.tif 000002
【図２】
0006453729.tif 000003
【図３】
0006453729.tif 000004
【図４】
0006453729.tif 000005
【図５】
0006453729.tif 000006
【図６】
0006453729.tif 000007
【図７】
0006453729.tif 000008
【図８】
0006453729.tif 000009
【図９】
0006453729.tif 000010
【図１０】
0006453729.tif 000011
【図１１】
0006453729.tif 000012
【図１２】
0006453729.tif 000013
【図１３】
0006453729.tif 000014
【図１４】
0006453729.tif 000015
【図１５】
0006453729.tif 000016
【図１６】
0006453729.tif 000017
【図１７】
0006453729.tif 000018
【図１８】
0006453729.tif 000019
【図１９】
0006453729.tif 000020
【図２０】
0006453729.tif 000021
【図２１】
0006453729.tif 000022
【図２２】
0006453729.tif 000023
【図２３】
0006453729.tif 000024
【図２４】
0006453729.tif 000025
【図２５】
0006453729.tif 000026
【図２６】
0006453729.tif 000027
【図２７】
0006453729.tif 000028
【図２８】
0006453729.tif 000029
【図２９】
0006453729.tif 000030
【図３０】
0006453729.tif 000031
【図３１】
0006453729.tif 000032
【図３２】
0006453729.tif 000033
【図３３】
0006453729.tif 000034
【図３４】
0006453729.tif 000035
【図３５】
0006453729.tif 000036
【図３６】
0006453729.tif 000037