(57)【要約】【課題】動作を高速化することが可能な半導体記憶装置及びメモリシステムを提供する。【解決手段】実施形態の半導体記憶装置１０は、ｎビットのデータを記憶可能な第１メモリセルと、ｍビット（ｍ＞ｎ）のデータを記憶可能な第２メモリセルと、第１及び第２メモリセルに対してデータの読み出し及び書き込みを行うセンスアンプ１２とを備える。半導体記憶装置１０がコントローラ２０から第１命令を受信した際、センスアンプ１２は第１データを第１メモリセルに書き込む。そしてセンスアンプ１２は書き込みの後に第１メモリセルから第１データを読み出し、第１データと読み出された第１データとを比較する。半導体記憶装置１０がコントローラ２０から第２命令を受けた場合、センスアンプ１２は、第１メモリセルから読み出された第１データ又はコントローラ２０から受信した第２データを第２メモリセルに書き込む。【選択図】図１０
2017157257.tif 000002
【特許請求の範囲】
【請求項１】
ｎビット（ｎは１以上の自然数）のデータを記憶可能な第１メモリセルと、
ｍビット（ｍは２以上の自然数であり、ｍ＞ｎ）のデータを記憶可能な第２メモリセルと、
前記第１及び第２メモリセルに対してデータの読み出し及び書き込みを行うセンスアンプと、
を備え、
外部のコントローラから第１命令を受信した際、前記センスアンプは、第１データを前記第１メモリセルに書き込み、前記書き込みの後に前記第１メモリセルから前記第１データを読み出し、前記第１データと、前記読み出された第１データとを比較し、
前記第１命令の受信後、該第１命令と異なる第２命令を受信した際には、前記比較結果に基づいて、前記センスアンプは、前記第１メモリセルから読み出された前記第１データ又は前記コントローラから受信した第２データを前記第２メモリセルに書き込む
ことを特徴とする半導体記憶装置。
【請求項２】
前記第２データは、前記第１メモリセルから読み出された前記第１データに対してエラー訂正処理がなされたデータである
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記エラー訂正処理は、前記コントローラによって行われる
ことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記比較結果に基づいて、前記第１メモリセルに書き込まれた前記第１データに対してエラー訂正処理が必要か否かを示すフラグが設定され、
前記フラグが立っていない場合、前記第２命令において前記センスアンプは、前記第１メモリセルから読み出された前記第１データをそのまま前記第２メモリセルに書き込み、
前記フラグが立っている場合、前記コントローラは、前記第１メモリセルから読み出された前記第１データに対してエラー訂正処理を行い、エラー訂正結果を前記第２データとして前記半導体記憶装置に送信し、前記センスアンプは、前記第２データを前記第２メモリセルに書き込む
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
ｎビット（ｎは１以上の自然数）のデータを記憶可能な第１メモリセルと、
ｍビット（ｍは２以上の自然数であり、ｍ＞ｎ）のデータを記憶可能な第２メモリセルと、
前記第１及び第２メモリセルに対してデータの読み出し及び書き込みを行うセンスアンプと、
を備え、
外部のコントローラから第１命令を受信した際、前記センスアンプは、第１データを前記第１メモリセルに書き込み、前記書き込みの後に前記第１メモリセルから前記第１データを読み出し、前記第１データと、前記読み出された第１データとを比較し、
前記第１命令の受信後、該第１命令と異なる第２命令を受信した際には、前記比較結果に基づいて、前記センスアンプは、第１電圧によって前記第１メモリセルから読み出された前記第１データ又は前記第１電圧と異なる第２電圧によって前記第１メモリセルから読み出された前記第１データを前記第２メモリセルに書き込む
ことを特徴とする半導体記憶装置。
【請求項６】
前記比較結果からシフトリードに関するフラグが設定され、
前記フラグが立っていない場合、前記第１及び第２命令において前記第１メモリセルは第１電圧によって読み出され、
前記フラグが立っている場合、前記第１命令において前記第１メモリセルは前記第１電圧によって読み出され、前記第２命令において前記第１メモリセルは前記第２電圧によって読み出される
ことを特徴とする請求項５に記載の半導体記憶装置。
【請求項７】
前記半導体記憶装置は、前記比較が終わった後に前記コントローラから受けた第３命令に応じて、前記比較結果を前記コントローラに出力する
ことを特徴とする請求項１又は請求項５に記載の半導体記憶装置。
【請求項８】
ｎビット（ｎは１以上の自然数）のデータを記憶可能であり、前記センスアンプによってデータの読み出し及び書き込みが行われる第３メモリセルをさらに備え、
前記第１命令を受けて前記第１及び第２データの比較結果を得た後に、前記センスアンプは、第３データを前記第３メモリセルに書き込み、前記第３データの書き込みの後に前記第３メモリセルから前記第３データを読み出し、前記第３データと、前記読み出された第３データとを比較し、
前記第１命令の受信後、該第１命令と異なる第２命令を受信した際には、前記センスアンプは、前記第１及び第３メモリセルから読み出した２ビットのデータを前記第２メモリセルに書き込む
ことを特徴とする請求項１又は請求項５に記載の半導体記憶装置。
【請求項９】
前記センスアンプは第１及び第２ラッチ回路を含み、
前記第１命令を受けた場合の動作において、前記第１データは前記コントローラから前記第１ラッチ回路に転送され、前記第１メモリセルから読み出された前記第１データは前記第２ラッチ回路に転送される
ことを特徴とする請求項１又は請求項５に記載の半導体記憶装置。
【請求項１０】
請求項１又は請求項５に記載の半導体記憶装置と、前記第１及び第２命令を出力可能なコントローラと、を備える
ことを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
１ビットのデータを記憶するメモリセルを用いたキャッシュ領域と２ビット以上を記憶するメモリセルを用いたストレージ領域を備えた半導体記憶装置と、コントローラとを備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−９１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作を高速化することが可能な半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、ｎビット（ｎは１以上の自然数）のデータを記憶可能な第１メモリセルと、ｍビット（ｍは２以上の自然数であり、ｍ＞ｎ）のデータを記憶可能な第２メモリセルと、第１及び第２メモリセルに対してデータの読み出し及び書き込みを行うセンスアンプとを備える。半導体記憶装置がコントローラから第１命令を受信した際、センスアンプは第１データを第１メモリセルに書き込む。そしてセンスアンプは書き込みの後に第１メモリセルから第１データを読み出し、第１データと読み出された第１データとを比較する。半導体記憶装置がコントローラから第２命令を受けた場合、センスアンプは第１メモリセルから読み出した第１データ又はコントローラから受信した第２データを第２メモリセルに書き込む。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムのブロック図。
【図２】第１実施形態に係るメモリシステムの備える半導体記憶装置のブロック図。
【図３】第１実施形態に係るメモリシステムの備える半導体記憶装置が含むメモリセルアレイ及びセンスアンプモジュールの回路図。
【図４】第１実施形態に係るメモリシステムにおける書き込み動作のフローチャート。
【図５】第１実施形態に係るメモリシステムにおける第１書き込み動作のフローチャート。
【図６】第１実施形態に係るメモリシステムにおける第１書き込み動作時のステータスリード結果。
【図７】第１実施形態に係るメモリシステムの備えるコントローラに格納されたエラー訂正フラグ情報のデータテーブル。
【図８】第１実施形態に係るメモリシステムにおける第１書き込み動作のタイミングチャート。
【図９】第１実施形態に係るメモリシステムにおける第１書き込み動作のコマンドシーケンス。
【図１０】第１実施形態に係るメモリシステムにおける第２書き込み動作のフローチャート。
【図１１】第１実施形態に係るメモリシステムにおける第２書き込み動作のコマンドシーケンス。
【図１２】第１実施形態に係るメモリシステムにおける第２書き込み動作の説明図。
【図１３】第１実施形態に係るメモリシステムにおける第２書き込み動作の説明図。
【図１４】第２実施形態に係るメモリシステムの備える半導体記憶装置が含むメモリセルトランジスタの閾値分布を説明する図。
【図１５】第２実施形態に係るメモリシステムにおける第１書き込み動作のフローチャート。
【図１６】第２実施形態に係るメモリシステムにおける第１書き込み動作時のステータスリード結果。
【図１７】第２実施形態に係るメモリシステムにおける第２書き込み動作のフローチャート。
【図１８】第１実施形態に係るメモリシステムにおける第２書き込み動作のコマンドシーケンス。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。尚、以下の説明において、同一の機能及び構成を有する要素については、共通する参照符号を付す。
【０００８】
［１］第１実施形態
以下に、第１実施形態に係る半導体記憶装置及びメモリシステムについて説明する。
【０００９】
［１−１］メモリシステム１の構成
まず、図１を用いてメモリシステムの構成について説明する。図１にはメモリシステムのブロック図が示されている。図１に示すようにメモリシステム１は、半導体記憶装置１０、及びコントローラ２０を備えている。
【００１０】
半導体記憶装置１０は、データを不揮発に記憶するＮＡＮＤ型フラッシュメモリである。半導体記憶装置１０の構成の詳細については後述する。
【００１１】
コントローラ２０は、外部のホスト機器からの命令に応答して、半導体記憶装置１０に対して読み出し、書き込み、及び消去等を命令する。またコントローラ２０は、半導体記憶装置１０におけるメモリ空間を管理する。図１に示すようにコントローラ２０は、プロセッサ（ＣＰＵ）２１、内蔵メモリ（ＲＡＭ）２２、レジスタ２３、ＥＣＣ回路２４、ＮＡＮＤインターフェイス回路２５、バッファメモリ２６、及びホストインターフェイス回路２７を備えている。
【００１２】
プロセッサ２１は、コントローラ２０全体の動作を制御する。例えばプロセッサ２１は、ホスト機器から受信した書き込み命令に応答して、ＮＡＮＤインターフェイスに基づく書き込み命令を発行する。この動作は、読み出し及び消去の場合についても同様である。
【００１３】
内蔵メモリ２２及びレジスタ２３は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２１の作業領域として使用される。内蔵メモリ２２は、半導体記憶装置１０を管理するためのファームウェアや、各種の管理テーブル等を保持する。レジスタ２３は、キャッシュ書き込み動作時に半導体記憶装置１０から受け取ったエラー訂正フラグを保持する。
【００１４】
ＥＣＣ回路２４は、データのエラー訂正（ＥＣＣ：Error Checking and Correcting）処理を行う。具体的には、ＥＣＣ回路２４は、データの書き込み時に書き込みデータに基づいてパリティを生成する。そしてＥＣＣ回路２４は、データの読み出し時にパリティからシンドロームを生成してエラーを検出し、検出したエラーを訂正する。
【００１５】
ＮＡＮＤインターフェイス回路２５は、半導体記憶装置１０と接続され、半導体記憶装置１０との通信を司る。例えばＮＡＮＤインターフェイス回路２５は、プロセッサ２１の指示によってコマンドＣＭＤ、アドレス情報ＡＤＤ、及びデータＤＡＴを半導体記憶装置１０に送信する。またＮＡＮＤインターフェイス回路２５は、半導体記憶装置１０からステータス情報ＳＴＳ、及びデータＤＡＴを受信する。このステータス情報ＳＴＳは、例えばエラー訂正フラグや、レディ／ビジー情報を含む。エラー訂正フラグ及びレディ／ビジー情報の詳細については後述する。
【００１６】
バッファメモリ２６は、コントローラ２０が半導体記憶装置１０及びホスト機器から受信したデータ等を一時的に保持する。
【００１７】
ホストインターフェイス回路２７は、図示せぬホストバスを介してホスト機器と接続され、ホスト機器との通信を司る。例えばホストインターフェイス回路２７は、ホスト機器から受信した命令及びデータをそれぞれ、プロセッサ２１及びバッファメモリ２６に転送する。
【００１８】
尚、上記構成においてＥＣＣ回路２４を設けずに、プロセッサ２１がＥＣＣ回路２４の機能を有していても良い。また、内蔵メモリ２２及びレジスタ２３が１つの半導体メモリにより構成されていても良い。また、ＮＡＮＤバスに含まれる信号線ＤＱの本数はこれに限定されず、種々変更が可能である。
【００１９】
［１−１−１］半導体記憶装置１０の構成
次に、図２を用いて半導体記憶装置１０の構成について説明する。図２には半導体記憶装置１０のブロック図が示されている。図２に示すように半導体記憶装置１０は、メモリセルアレイ１１、センスアンプモジュール１２、ロウデコーダ１３、入出力回路１４、レジスタ１５、ロジック制御回路１６、シーケンサ１７、レディ／ビジー制御回路１８、及び電圧生成回路１９を備えている。
【００２０】
メモリセルアレイ１１は複数のブロックＢＬＫを備え、図２には複数のブロックＢＬＫのうちのブロックＢＬＫ０〜ＢＬＫ３を例示している。ブロックＢＬＫは、ビット線及びワード線に関連付けられた複数の不揮発性メモリセルの集合であり、例えばデータの消去単位となる。半導体記憶装置１０において、例えばブロックＢＬＫ０がキャッシュ領域として使用され、ブロックＢＬＫ１〜ＢＬＫ３がストレージ領域として使用される。
【００２１】
キャッシュ領域は、書き込みデータを一時的に保持する記憶領域である。このキャッシュ領域には、メモリセルに１ビットのデータを記憶させるＳＬＣ（Single-Level Cell）方式が適用される。これに対してストレージ領域は、キャッシュ領域よりも単位面積当たりの記憶容量が大きい記憶領域であり、データの保存領域である。このストレージ領域には、メモリセルに２ビット以上のデータを記憶させるＭＬＣ（Multi-Level Cell）方式が適用される。従って、高速にデータを書き込むことについては、ストレージ領域よりもキャッシュ領域の方が優れている。これに対して、大容量のデータを保持する点では、キャッシュ領域よりもストレージ領域の方が優れている。
【００２２】
よって、コントローラ２０からデータの書き込み命令を受信した際には、データはまず一時的にキャッシュ領域に書き込まれる。その後、任意のタイミング（例えば空き時間）にて、キャッシュ領域に書き込まれたデータがストレージ領域に転送される。これにより、データの高速書き込みと大容量化とを両立出来る。
【００２３】
本実施形態は、ストレージ領域のメモリセルに３ビットのデータを記憶させるＴＬＣ（Triple-Level Cell）方式を適用した場合を例に説明する。
【００２４】
センスアンプモジュール１２は、メモリセルアレイ１１からデータＤＡＴを読み出し、必要に応じて読み出したデータＤＡＴを、入出力回路１４を介してコントローラ２０に出力する。また、センスアンプモジュール１２は、コントローラ２０から入出力回路１４を介して受け取った書き込みデータＤＡＴを、メモリセルアレイ１１に転送する。
【００２５】
ロウデコーダ１３は、読み出し及び書き込みを行う対象のメモリセルに対応するワード線を選択する。そしてロウデコーダ１３は、選択したワード線及び非選択のワード線にそれぞれ所望の電圧を印加する。
【００２６】
入出力回路１４は、コントローラ２０からコマンドＣＭＤ、アドレス情報ＡＤＤ、及び書き込みデータＤＡＴを受信し、それぞれコマンドレジスタ１５Ｃ、アドレスレジスタ１５Ｂ、及びセンスアンプモジュール１２に転送する。また入出力回路１４は、ステータスレジスタ１５Ａ及びセンスアンプモジュール１２から転送されたステータス情報ＳＴＳ及び読み出しデータＤＡＴを、コントローラ２０に送信する。これらの入出力信号は、例えば８ビット幅の入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ８を介して送受信される。この８ビットのデータが送受信される信号線の各々を、以下では信号線ＤＱ０〜ＤＱ７と呼ぶ。
【００２７】
レジスタ１５は、ステータスレジスタ１５Ａ、アドレスレジスタ１５Ｂ、コマンドレジスタ１５Ｃを含む。ステータスレジスタ１５Ａは、ステータス情報ＳＴＳを保持する。またステータスレジスタ１５Ａは、シーケンサ１７の指示に応じて、このステータス情報ＳＴＳを入出力回路１４に転送する。アドレスレジスタ１５Ｂは、アドレス情報ＡＤＤを保持する。そしてアドレスレジスタ１５Ｂは、アドレス情報ＡＤＤに含まれたカラムアドレス信号ＣＡ及びロウアドレス信号ＲＡをそれぞれ、センスアンプモジュール１２及びロウデコーダ１３に転送する。コマンドレジスタ１５Ｃは、コマンドＣＭＤを保持する。そしてコマンドレジスタ１５Ｃは、コマンドＣＭＤをシーケンサ１７に転送する。
【００２８】
ロジック制御回路１６は、コントローラ２０から各種制御信号を受信し、入出力回路１４及びシーケンサ１７を制御する。この制御信号としては、例えばチップイネーブル信号／ＣＥ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、及びライトプロテクト信号／ＷＰが使用される。信号／ＣＥは、半導体記憶装置１０をイネーブルにするための信号である。信号ＣＬＥ及びＡＬＥはそれぞれ、入力信号がコマンド及びアドレス信号であることを入出力回路１４に通知する信号である。信号／ＷＥ及び／ＲＥはそれぞれ、例えば入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ８を介した信号の入力及び出力を入出力回路１４に指示する信号である。信号/ＷＰは、例えば電源のオンオフ時に半導体記憶装置１０を保護状態するための信号である。
【００２９】
シーケンサ１７は、半導体記憶装置１０全体の動作を制御する。具体的には、シーケンサ１７は、コマンドレジスタ１５Ｃから転送されたコマンドＣＭＤに基づいてセンスアンプモジュール１２、ロウデコーダ１３、電圧生成回路１９等を制御し、データの書き込み、読み出し動作等を実行する。
【００３０】
レディ／ビジー制御回路１８は、シーケンサ１７の動作状態に基づいてレディ／ビジー信号ＲＹ／(／ＢＹ)を生成し、この信号をコントローラ２０に送信する。信号ＲＹ／(／ＢＹ)は、半導体記憶装置１０がレディ状態（コントローラ２０からの命令を受け付ける状態）であるか、ビジー状態（コントローラ２０からの命令を受け付けない状態）であるかをコントローラ２０に通知する信号である。また信号ＲＹ／(／ＢＹ)は、レディ／ビジー制御回路１８が、その出力に接続されたトランジスタＴｒのオンオフを制御することによって生成される。例えば信号ＲＹ／(／ＢＹ)は、半導体記憶装置１０がデータの読み出し等の動作中には “Ｌ”レベルとされ（ビジー状態）、これらの動作が完了すると“Ｈ”レベルとされる（レディ状態）。
【００３１】
電圧生成回路１９は、メモリセルアレイ１１、センスアンプモジュール１２、及びロウデコーダ１３に適切な電圧を生成する。
【００３２】
尚、メモリセルアレイ１１が備えるブロックＢＬＫ数はこれに限定されず、任意の数にすることが出来る。また、複数のブロックＢＬＫにおいて、キャッシュ領域に割り当てられるブロックＢＬＫの個数と、ストレージ領域に割り当てられるブロックＢＬＫの個数もこれに限定されず、それぞれ任意の数にすることが出来る。
【００３３】
また、コントローラ２０が半導体記憶装置１０の動作状態を知る手段として、レディ／ビジー制御回路１８を使用しなくても良い。この場合シーケンサ１７は、レディ／ビジー信号に対応するレディ／ビジー情報をステータスレジスタ１５Ａに格納する。そこでコントローラ２０がステータスリードコマンドを発行すると、この情報がステータスレジスタ１５Ａから読み出され、入出力回路１４から出力される。これによりコントローラ２０は、半導体記憶装置１０の動作状態を知ることが出来る。
【００３４】
［１−１−２］ブロックＢＬＫの構成
次に、図３を用いてブロックＢＬＫの構成について説明する。図３にはブロックＢＬＫ及びセンスアンプモジュール１２の回路図が示されている。図３に示すようにブロックＢＬＫは、複数のＮＡＮＤストリングＮＳを備えている。
【００３５】
各ＮＡＮＤストリングＮＳは、ビット線ＢＬ０〜ＢＬ（Ｌ−１）（（Ｌ−１）は１以上の自然数）に対応して設けられ、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、及び選択トランジスタＳＴ１、ＳＴ２を含んでいる。
【００３６】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を備え、データを不揮発に保持する。また、メモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。同一ブロック内の選択トランジスタＳＴ１及びＳＴ２のゲートはそれぞれ、セレクトゲート線ＳＧＤ及びＳＧＳに共通接続されている。同様に、同一ブロック内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれ、ワード線ＷＬ０〜ＷＬ７に共通接続されている。
【００３７】
また、メモリセルアレイ１１内において同一列にあるＮＡＮＤストリングＮＳの選択トランジスタＳＴ１のドレインは、ビット線ＢＬに共通接続されている。つまりビット線ＢＬは、複数のブロックＢＬＫ間で同一列にあるＮＡＮＤストリングＮＳを共通に接続している。さらに、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。
【００３８】
以上の構成において、共通のワード線ＷＬに接続された複数のメモリセルの保持する１ビットデータの集合を「ページ」と呼ぶ。従って、ＳＬＣ方式が適用される場合、１本のワード線ＷＬに接続された複数のメモリセルの集合には、１ページ分のデータが記憶される。他方で、ＴＬＣ方式が適用される場合には、各メモリセルは３ビットデータを保持出来るので、１本のワード線ＷＬに接続された複数のメモリセルの集合には、３ページ分のデータ（３ビットのうちの上位ビットデータの集合である上位ページ、中位ビットデータの集合である中位ページ、及び下位ビットデータの集合である下位ページ、の３ページ）が記憶される。
【００３９】
言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行っても良い（この方式をpage-by-page reading/writingと呼ぶ）。この場合、１ページデータを書き込む度または読み出す度に、コントローラ２０は半導体記憶装置１０にコマンドを発行する。
【００４０】
あるいは、データの書き込み及び読み出しは、ワード線ＷＬ毎に行っても良い。この場合、ＳＬＣ方式が適用されている際の動作は、ページ毎に行う場合と同様であるが、ＴＬＣ方式が適用されている場合には、１回のコマンド入力で、１本のワード線ＷＬに割り当てられた３ページ分のデータが一括して書き込まれ、または読み出される（この方式をsequential reading/writingと呼ぶ）。
【００４１】
以下ではpage-by-page reading/writingの場合を例に説明するが、sequential reading/writingの場合にも適用可能である。
【００４２】
尚、上記構成において１つのＮＡＮＤストリングＮＳが含むメモリセルトランジスタＭＴの数はこれに限定されず、任意の数にすることが出来る。
【００４３】
［１−１−３］センスアンプモジュール１２の構成
次に、引き続き図３を用いてセンスアンプモジュール１２の構成について説明する。図３に示すようにセンスアンプモジュール１２は、ビット線ＢＬ毎に設けられたセンスアンプユニットＳＡＵ（ＳＡＵ０〜ＳＡＵ（Ｌ−１））を備えている。そして各センスアンプユニットＳＡＵは、センスアンプ部ＳＡ、ラッチ回路ＳＤＬ、ＤＬ１、ＤＬ２、及びＸＤＬ、並びに演算部ＯＰを備えている。これらセンスアンプ部ＳＡ、ラッチ回路ＳＤＬ、ＤＬ１、ＤＬ２、及びＸＤＬ、並びに演算部ＯＰは、互いにデータを送受信可能なように接続されている。
【００４４】
センスアンプ部ＳＡは、読み出し時には対応するビット線ＢＬに読み出されたデータをセンスし、読み出しデータが“０”であるか“１”であるかを判断する。また書き込み時には、書き込みデータに基づいてビット線ＢＬに電圧を印加する。
【００４５】
ラッチ回路ＳＤＬ、ＤＬ１、及びＤＬ２は、読み出しデータ及び書き込みデータを一時的に保持する。読み出し時にセンスアンプ部ＳＡが確定させた読み出しデータ、及び書き込み時にラッチ回路ＸＤＬに転送された書き込みデータは、例えばラッチ回路ＳＤＬ、ＤＬ１、及びＤＬ２のいずれかに転送される。
【００４６】
ラッチ回路ＸＤＬは、センスアンプユニットＳＡＵとコントローラ２０との間のデータの入出力に用いられる。つまりコントローラ２０から受信したデータは、ラッチ回路ＸＤＬを介してラッチ回路ＳＤＬ、ＤＬ１、若しくはＤＬ２、又はセンスアンプ部ＳＡに転送される。また、ラッチ回路ＳＤＬ、ＤＬ１、若しくはＤＬ２、又はセンスアンプ部ＳＡのデータは、ラッチ回路ＸＤＬを介してコントローラ２０に転送される。
【００４７】
演算部ＯＰは、ラッチ回路ＳＤＬ、ＤＬ１、及びＤＬ２に保持されているデータに基づいて、論理積（ＡＮＤ）演算、否定論理積（ＮＡＮＤ）演算、論理和（ＯＲ）演算、否定論理和（ＮＯＲ）演算、及び排他的否定論理和（ＸＮＯＲ）演算等、種々の論理演算を行う。
【００４８】
尚、センスアンプユニットＳＡＵが備えるラッチ回路の個数はこれに限定されない。例えば、１つのメモリセルが記憶するビット数に基づいて設定される。また、センスアンプユニットＳＡＵには、演算部ＯＰを設けなくても良い。この場合、演算部ＯＰの機能は、ラッチ回路ＳＤＬ、ＤＬ１、及びＤＬ２間のデータ転送によって実現される。
【００４９】
［１−２］書き込み動作
［１−２−１］書き込み動作の概略
次に、図４を用いてメモリシステム１の書き込み動作の概略について説明する。図４にはメモリシステム１における書き込み動作のフローチャートが示されている。
【００５０】
まず半導体記憶装置１０は、コントローラ２０から送られた入力データを、ＳＬＣ方式でキャッシュ領域に書き込む（ステップＳ１０）。次に半導体記憶装置１０は、ステップＳ１０でキャッシュ領域に書き込まれた３ページ分のデータを、当該キャッシュ領域から読み出す（ステップＳ１１）。ここでキャッシュ領域から読み出すページ数は、ストレージ領域に適用される書き込み方式に基づいて設定され、ストレージ領域において１つのメモリセルが記憶可能なデータのビット数に対応している。本例の場合、ストレージ領域にはＴＬＣ方式が適用されるので、３ページ分のデータがキャッシュ領域から読み出される。
【００５１】
次に半導体記憶装置１０は、キャッシュ領域から読み出した３ページ分のデータを、ＴＬＣ方式でストレージ領域に書き込む（ステップＳ１２）。
【００５２】
次に半導体記憶装置１０は、コントローラ２０から送られた全ての入力データがストレージ領域に書き込まれたかどうかを確認する（ステップＳ１３）。全ての入力データがストレージ領域に書き込まれていない場合（ステップＳ１３、Ｎｏ）、ステップＳ１１に戻り、半導体記憶装置１０は残りの入力データの書き込み処理を行う。ここで残りの入力データ量が３ページ未満の場合、残った１ページ又は２ページ分のデータをキャッシュ領域から読み出して、読み出したデータをＴＬＣ方式で１ビット又は２ビット分だけストレージ領域に書き込む。一方、全ての入力データがストレージ領域に書き込まれた場合（ステップＳ１３、Ｙｅｓ）、メモリシステム１は書き込み動作を終了する。
【００５３】
このようにメモリシステム１の書き込み動作において、半導体記憶装置１０はコントローラ２０から入力されたデータをまずキャッシュ領域に書き込む。そして半導体記憶装置１０は、キャッシュ領域への書き込みが終わった後に、書き込んだデータをキャッシュ領域から読み出してストレージ領域に書き戻している。
【００５４】
以上の動作において、ステップＳ１０におけるデータの書き込みを第１書き込み動作と称し、ステップＳ１１及びＳ１２を第２書き込み動作と称し、これらの動作の詳細について以下に説明する。
【００５５】
［１−２−２］第１書き込み動作
［１−２−２−１］第１書き込み動作の詳細
まず、図５を用いて第１書き込み動作の詳細について説明する。図５には第１書き込み動作のフローチャートが示されている。
【００５６】
図５に示すように、まずコントローラ２０は書き込みコマンド、アドレス、及び１ページ分のデータを半導体記憶装置１０に送信する（ステップＳ３０）。すると、これらの信号を受信した半導体記憶装置１０ではシーケンサ１７がセンスアンプモジュール１２及びロウデコーダ１３等を制御し、受信した１ページ分のデータをＳＬＣ方式でキャッシュ領域のメモリセルに書き込む（ステップＳ２０）。このＳＬＣ方式の書き込み動作は、データを書き込んだ後のエラー確認動作も含んでいる。エラー確認動作とは、書き込んだデータを読み出し、センスアンプ内に保持されている書き込みデータと比較することにより、書き込みエラーが生じたか否かを判断する動作である。エラー確認動作の詳細については後述する。
【００５７】
ステップＳ２０の後、半導体記憶装置がビジー状態からレディ状態に遷移すると、コントローラはステータスリードコマンド“ｘｘｈ”を発行し（ステップＳ３１）、半導体記憶装置１０のコマンドレジスタ１５Ｃに保持される。コマンド“ｘｘｈ”は、エラー訂正フラグを含むステータス情報の読み出しを命令するコマンドである。コマンド“ｘｘｈ”がレジスタ１５Ｃに格納されると、シーケンサ１７はエラー訂正フラグを含むステータス情報をステータスレジスタ１５Ａから読み出す（ステップＳ２１）。
【００５８】
上記ステップＳ２１で読み出されるステータス情報について、図６を用いて説明する。図示するようにステータス情報は、例えば８ビットのデータであり、エラー訂正フラグ及びレディ／ビジー情報を含む。つまり、８ビットデータの最上位ビットにはエラー訂正フラグが保持され、最下位ビットにはレディ／ビジー情報が保持される。本例では、２ビット目から７ビット目が未使用とされているが、これらのビットに他の情報が含まれても良い。
【００５９】
エラー訂正フラグは、例えば対象ページのエラー訂正が不要の場合“０”となり、対象ページのエラー訂正が必要な場合“１”となる。レディ／ビジー情報は、半導体記憶装置１０がコントローラ２０からコマンド受信が可能かどうかを示し、例えば半導体記憶装置１０がビジー状態の場合“０”となり、レディ状態の場合“１”となる。
【００６０】
そして上記の８ビットデータは、最上位ビットから順に信号線ＤＱ０〜ＤＱ７に対応付けられ、これらの信号線を用いてコントローラ２０に出力される（ステップＳ２２）。それからコントローラ２０は、受信したステータス情報に含まれたエラー訂正フラグをテーブルとしてレジスタ２３に保存する（ステップＳ３２）。
【００６１】
上記ステップＳ３２でエラー訂正フラグによって生成されるテーブルについて、図７を用いて説明する。図７はテーブルの概念図であり、メモリセルアレイ１１のキャッシュ領域がｎ個（ｎは１以上の自然数）のページＰＧをそれぞれ含むｍ個（ｍは１以上の自然数）のブロックＢＬＫを備え、そのキャッシュ領域のエラー訂正フラグをテーブルとしたものである。
【００６２】
図示するようにテーブルは、（ｎ×ｍ）のマトリクスであり、カラムはワード線ＷＬの位置（ページＰＧ０〜ＰＧ（ｎ−１））を示し、ロウはブロックＢＬＫの位置（ブロックＢＬＫ０〜ＢＬＫ（ｍ−１））を示している。
【００６３】
例えば、ブロックＢＬＫ０でエラー訂正が必要なページが含まれていなかった場合、図７に示すようにブロックＢＬＫ０に対応するカラムには全て“０”が保持される。一方、ブロックＢＬＫ１で（ｎ−２）番目のページＰＧ（ｎ−２）でエラー訂正が必要となった場合、図７に示すようにブロックＢＬＫ１のページＰＧ（ｎ−２）に対応するセルに“１”が保持され、その他のエラー訂正が不要なページＰＧに対応するセルには“０”が保持される。以下のブロックＢＬＫについても同様である。
【００６４】
このテーブルは、例えばプロセッサ２１の処理によって作成される。具体的には、まずＮＡＮＤインターフェイス回路２５が半導体記憶装置１０から受信したステータス情報をバッファメモリ２６に転送する。次にプロセッサ２１が、バッファメモリ２６に格納されたステータス情報の中からエラー訂正フラグを抽出する。そしてプロセッサ２１は、抽出したエラー訂正フラグを対応するワード線ＷＬ及びブロックＢＬＫと関連付けてテーブルとし、レジスタ２３に保存する。
【００６５】
そして、このテーブルを参照することにより、プロセッサ２１は、いずれのブロックのいずれのページにおいてエラー訂正が必要であるか、の情報を得ることが出来る。
【００６６】
ステップＳ２２の後、書き込んだデータが最後の１ページ分でない場合（ステップＳ２３、Ｎｏ）、ステップＳ２０に戻り、半導体記憶装置１０は残りの入力データの書き込み処理を行う。一方、書き込んだデータが最後の１ページ分である場合（ステップＳ２３、Ｙｅｓ）、メモリシステム１は第１書き込み動作を終了する。
【００６７】
［１−２−２−２］エラー確認動作
次に、図８を用いてエラー確認動作の詳細について説明する。図８には第１書き込み動作のタイミングチャートが示され、各動作の処理状態とラッチ回路ＳＤＬ、ＤＬ１、及びＸＤＬに保持されているデータが示されている。
【００６８】
図８に示すように、第１書き込み動作は、大まかには書き込み動作とエラー確認動作とを含む。以下では、第１書き込み動作に含まれる書き込み動作を、第１書き込み動作と第２書き込み動作とを含む「広義の書き込み動作」と区別するために、「狭義の書き込み動作」と呼ぶ。
【００６９】
まず時刻ｔ０において、ＳＬＣ方式による狭義の書き込み動作が開始される。この書き込みは、例えば３回のプログラムループと、３回のプログラムループ後に行われる検知動作とを含む。プログラムループは、電荷蓄積層に電子を注入して閾値電圧を変動させる（非書き込み対象セルでは、例えばセルフブースト技術等によって閾値電圧の変動が抑制される）プログラム動作と、このプログラム動作によって変動した閾値電圧が適切なレベルにあるか否かを判断するプログラムベリファイ動作の組み合わせである。また検知動作は、３回目のプログラムループにおけるベリファイ動作結果を確認し、ベリファイにフェイルしたビット数（フェイルビット数）がある閾値以上になったか否かを判断する動作である。
【００７０】
図示するように、プログラムループが繰り返される間、ラッチ回路ＳＤＬはベリファイ結果を保持し、ラッチ回路ＤＬ１は選択したページへの書き込みデータを保持し、ラッチ回路ＸＤＬは次のページに書き込むデータを保持する。
【００７１】
次に時刻ｔ１において、シーケンサ１７はセンスアンプモジュールのラッチ回路ＳＤＬを参照して、フェイルビット数を確認する。ここでフェイルビット数が閾値以上になった場合、時刻ｔ０に戻り、再度プログラムループが行われる。一方、フェイルビット数が閾値未満になった場合、時刻ｔ２の動作に移行する。尚、このフェイルビット数を確認する動作は、プログラムループ毎に実行しても、規定の回数のプログラムループ後に実行するようにしても良い。また、この確認動作が規定の回数実行された後にフェイルビット数が閾値未満にならない場合、シーケンサ１７は対象ページの書き込みをフェイルとし、ステータスレジスタ１５Ａにはそのページの書き込みがフェイルしたことを示す情報が保持される。
【００７２】
次に時刻ｔ２において、シーケンサ１７はエラー確認動作を開始する。エラー確認動作は、大まかには読み出し動作、データ演算動作、及び検知動作の３つのステップを含む。以下に、これらの詳細について説明する。
【００７３】
図示するように、まず時刻ｔ２においてシーケンサ１７は読み出し動作を開始する。すなわち、各センスアンプユニットＳＡＵはラッチ回路ＤＬ１に書き込みデータを保持したまま、直前に書き込んだデータ（時刻ｔ０〜ｔ１で書き込んだデータ）をメモリセルアレイ１１から読み出す。メモリセルアレイ１１から読み出されたデータは、ラッチ回路ＳＤＬに保持される。
【００７４】
次に時刻ｔ３において、データ演算動作が開始される。すなわち、各センスアンプユニットＳＡＵの演算部ＯＰは、ラッチ回路ＳＤＬに保持されたデータと、ラッチ回路ＤＬ１に保持されたデータのＸＮＯＲ演算を行う。つまり演算部ＯＰは、書き込みデータと、書き込み対象ページからの読み出しデータが一致するかどうかを判定する。この演算結果はラッチ回路ＤＬ１に保持され、ここで演算結果が不一致を示すビットは、読み出し時にエラーとして検出される可能性が高いことを示している。
【００７５】
次に時刻ｔ４において、検知動作が開始される。すなわちシーケンサ１７は、ＸＮＯＲ演算結果が不一致を示したセンスアンプユニットＳＡＵの数（エラービット数）を確認する。具体的には、シーケンサ１７は、このエラービット数が閾値未満の場合、エラー訂正フラグを“０”（対象ページのエラー訂正不要）とし、エラービット数が閾値を超える場合、エラー訂正フラグを“１”（対象ページのエラー訂正必要）とする。このエラー訂正フラグは、前述した通りステータスレジスタ１５Ａに格納される。
【００７６】
尚、上記動作において各データを保持するラッチ回路はこれに限定されず、種々変更が可能である。例えば、ＸＮＯＲ演算結果を図示しないラッチ回路ＤＬ２に保持させるようにしても良い。
【００７７】
［１−２−２−３］第１書き込み動作のコマンドシーケンス
次に、図９を用いて第１書き込み動作のコマンドシーケンスについて説明する。図９には第１書き込み動作のコマンドシーケンスの一例が示されている。以下に、キャッシュ領域に３ページ分のデータを書き込む場合を例に説明する。尚、以下の説明において、コントローラ２０から発行されたアドレス及びコマンドはそれぞれ、アドレスレジスタ１５Ｂ及びコマンドレジスタ１５Ｃに格納されるものとする。
【００７８】
図９に示すように、まずコントローラ２０は、コマンド“Ａ２ｈ”を発行し、半導体記憶装置１０に送信する。コマンド“Ａ２ｈ”は、半導体記憶装置１０に対して、ＳＬＣ方式での処理を命令するコマンドである。続けてコントローラ２０は、書き込みコマンド“８０ｈ”を発行し、半導体記憶装置１０に送信する。コマンド“８０ｈ”は、書き込みを命令するコマンドである。
【００７９】
次にコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行し、半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、キャッシュ領域のアドレスを指定するものである。次にコントローラ２０は、複数サイクルに渡って書き込みデータＤｉｎを半導体記憶装置１０に出力する（図５、ステップＳ３０）。ここで出力されたデータＤｉｎは、合計で１ページ分のデータに相当し、例えばセンスアンプモジュール１２のラッチ回路ＸＤＬに保持される。
【００８０】
次にコントローラ２０は、コマンド“１０ｈ”を発行し、半導体記憶装置１０に送信する。コマンド“１０ｈ”は、直前に送信されたアドレス情報及びデータＤｉｎに基づいて半導体記憶装置１０にデータの書き込みを実行させるためのコマンドである。コマンド“１０ｈ”がレジスタ１５Ｃに保持されると、シーケンサ１７はセンスアンプモジュール１２及びロウデコーダ１３等を制御して、エラー確認動作を含むＳＬＣ方式の書き込み動作を開始する（図５、ステップＳ２０）。このときセンスアンプモジュール１２は、レジスタ内のアドレス情報のうちのカラムアドレス信号ＣＡをデコードし、各ビット線ＢＬに対してラッチ回路ＸＤＬに保持されたデータＤｉｎを転送する。またロウデコーダ１３は、レジスタ内のアドレス情報のうちのロウアドレス情報ＲＡをデコードし、選択ワード線及び非選択ワード線に所望の電圧を印加する。このときレディ／ビジー制御回路１８は、レディ／ビジー信号を“Ｌ”レベルにして、半導体記憶装置１０がビジー状態であることをコントローラ２０に知らせる。そして半導体記憶装置１０が書き込み動作を終了すると、レディ／ビジー制御回路１８はレディ／ビジー信号を“Ｈ”レベルにして、半導体記憶装置１０がレディ状態であることをコントローラ２０に知らせる。図示するｔＰｒｏｇ（ＳＬＣ）は、このＳＬＣ方式の書き込み動作が行われている期間を示している。
【００８１】
次にコントローラ２０は、コマンド“ｘｘｈ”を発行し、半導体記憶装置１０に送信する（図５、ステップＳ３１）。コマンド“ｘｘｈ”は、ステータスレジスタ１５Ａからステータス情報を読み出すためのコマンドである。コマンド“ｘｘｈ”がレジスタ１５Ｃに保持されると、シーケンサ１７はレジスタ１５Ａに格納されたエラー訂正フラグを含むステータス情報を読み出し（図５、ステップＳ２１）、ステータス情報を含むデータＤｏｕｔをコントローラ２０に出力する（図５、ステップＳ２２）。コントローラ２０はデータＤｏｕｔを受信すると、データＤｏｕｔからエラー訂正フラグを抽出してレジスタ２３に格納する（図５、ステップＳ３２）。
【００８２】
以上の動作が、１ページ分のデータのキャッシュ領域への書き込みに対応している。以降の２ページ目及び３ページ目のデータの書き込みについては、アドレス情報ＡＤＤ及びデータＤｉｎ、Ｄｏｕｔの内容のみが異なり、コマンドシーケンスについては同様であるため説明を省略する。
【００８３】
［１−２−３］第２書き込み動作
［１−２−３−１］第２書き込み動作の詳細
次に、図１０を用いて第２書き込み動作の詳細について説明する。図１０には第２書き込み動作のフローチャートが示されている。
【００８４】
図１０に示すように、まずコントローラ２０は、読み出しコマンドを発行して、半導体記憶装置１０に送信する（ステップＳ４０）。この読み出しコマンドは、半導体記憶装置１０に対してメモリセルアレイ１１からセンスアンプモジュールへ１ページ分の読み出しを命令するコマンドである。引き続きコントローラ２０は、読み出し対象となる領域のアドレスを送信する。このアドレスは、メモリセルアレイ１１のキャッシュ領域のいずれかのページに相当する。
【００８５】
シーケンサ１７は、受信した読み出しコマンドに基づいて、１ページ分のデータをメモリセルアレイ１１のキャッシュ領域から読み出す（ステップＳ４１）。具体的には、ロウデコーダ１３が、レジスタ１５内のアドレス情報のうちのロウアドレス情報ＲＡをデコードし、選択ワード線及び非選択ワード線に所望の電圧を印加する。そしてセンスアンプモジュール１２が、ビット線に読み出されたデータをセンスする。このとき読み出されたデータは、例えば各センスアンプユニットＳＡＵのラッチ回路ＳＤＬに保持される。
【００８６】
次にコントローラ２０の例えばプロセッサ２１は、レジスタ２３に格納されたテーブルを参照して、直前にデータを読み出したページに対応するエラー訂正フラグを確認する（ステップＳ４２）。
【００８７】
ここで、参照したエラー訂正フラグが“１”の場合（ステップＳ４３、Ｙｅｓ）、すなわち、対象データがエラー訂正の必要なデータであった場合、コントローラ２０はデータ出力コマンドを発行して、半導体記憶装置１０に送信する（ステップＳ４４）。このデータ出力コマンドは、センスアンプモジュール１２からコントローラ２０へのデータの出力を命令するコマンドである。引き続きコントローラ２０は、読み出し対象となるセンスアンプユニットのアドレスを送信する。
【００８８】
シーケンサ１７は、受信したデータ出力コマンドに基づいて、アドレスによって指定されるセンスアンプユニットＳＡＵのラッチ回路ＳＤＬからラッチ回路ＸＤＬを介してコントローラ２０に転送する（ステップＳ４５）。このデータは、例えばバッファメモリ２６に保持される。
【００８９】
次にコントローラ２０のＥＣＣ回路２４は、受信した読み出しデータのエラー訂正処理を実行する（ステップＳ４６）。
【００９０】
次にコントローラ２０は、コマンド“８０ｈ”を発行して半導体記憶装置１０に送信し、続けて書き込みデータとして、エラー訂正後の読み出しデータを半導体記憶装置１０に転送する（ステップＳ４７）。
【００９１】
一方、ステップＳ４３において、参照したエラー訂正フラグが“０”の場合（ステップＳ４３、Ｎｏ）、すなわち、対象データがエラー訂正不要なデータであった場合、コントローラ２０はコマンド“８０ｈ”を発行して半導体記憶装置１０に送信する（ステップＳ４８）。この際、コントローラ２０から半導体記憶装置１０へは書き込みデータは送信されない。
【００９２】
ステップＳ４７又はＳ４８の後、コントローラ２０は、キャッシュ領域から読み出したデータが、ストレージ領域において同一ワード線に接続されたメモリセルにＴＬＣ方式で書き込む３ページ分に達したかどうかを判定する（ステップＳ４９）。
【００９３】
キャッシュ領域から読み出したデータが３ページ分に達していない場合（ステップＳ４９、Ｎｏ）、コントローラ２０は半導体記憶装置１０に対して、読み出しデータをキャッシュ領域から読み出されたデータが保持されていないラッチ回路ＤＬ１又はＤＬ２に転送するように命令し（ステップＳ５０）、ステップＳ４０の動作に戻る。
【００９４】
一方、キャッシュ領域から読み出したデータが３ページ分に達した場合（ステップＳ４９、Ｙｅｓ）、コントローラ２０は書き込みコマンドを発行して半導体記憶装置１０に送信する（ステップＳ５１）。この書き込みコマンドは、半導体記憶装置１０に対して、実際にメモリセルへのデータの書き込みを開始させるためのコマンドである。
【００９５】
するとシーケンサ１７は、ステップＳ５１で受信した書き込みコマンドに従い、各センスアンプユニットＳＡＵのラッチ回路ＳＤＬ、ＤＬ１、及びＤＬ２に保持された３ビット分のデータを、ストレージ領域において同一のワード線ＷＬに接続されたメモリセルにＴＬＣ方式で書き込む（ステップＳ５２）。具体的には、ロウデコーダ１３が、レジスタ１５内のアドレス情報のうちのロウアドレス情報ＲＡをデコードし、選択ワード線及び非選択ワード線に所望の電圧を印加する。またセンスアンプモジュール１２は、各ビット線ＢＬに対してラッチ回路ＳＤＬ、ＤＬ１、及びＤＬ２に保持されたデータを転送する。より具体的には、これらのデータに応じた電圧をビット線ＢＬに印加する。このようにして、３ビット分のデータ書き込みが終了すると、メモリシステム１は第２書き込み動作を終了する。
【００９６】
以上の説明において、ステップＳ４０からステップＳ５０までの動作が図４に示すステップＳ１１の動作に対応し、ステップＳ５１及びステップＳ５２の動作が図４に示すステップＳ１２の動作に対応している。
【００９７】
尚、ストレージ領域へのデータ書き込みを行う前に、各センスアンプユニットＳＡＵに保持させるデータのページ数は、ストレージ領域に適用する書き込み方式に基づいて変化する。つまり、ストレージ領域のメモリセルが記憶するデータのビット数に基づいて、各センスアンプユニットが必要とするラッチ回路ＤＬの個数も変化する。
【００９８】
［１−２−３−２］第２書き込み動作のコマンドシーケンス
次に、図１１〜図１３を用いて第２書き込み動作のコマンドシーケンスについて説明する。図１１には第２書き込み動作のコマンドシーケンスの一例が示され、図１２及び図１３にはそれぞれエラー訂正フラグが“１”及び“０”の場合のデータの転送経路の一例が示されている。以下に、キャッシュ領域から読み出す３ページ分のデータにおいて、１ページ目のエラー訂正フラグが“１”であり、２ページ目及び３ページ目のエラー訂正フラグが“０”である場合を例に説明する。
【００９９】
図１１に示すように、まずコントローラ２０は、コマンド“Ａ２ｈ”及び“００ｈ”を続けて発行し、それぞれ半導体記憶装置１０に送信する（図１０、ステップＳ４０）。コマンド“００ｈ”は、ステップＳ４０で説明した読み出しの為のアドレス入力受付コマンドに相当し、半導体記憶装置１０にデータの読み出しを命令するコマンドである。次にコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行し、半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、キャッシュ領域のアドレスを指定するものである。次にコントローラ２０は、コマンド“３０ｈ”を発行し、半導体記憶装置１０に送信する。コマンド“３０ｈ”は、直前に送信されたアドレス情報に基づいて半導体記憶装置１０にデータの読み出しを実行させるためのコマンドである。コマンド“３０ｈ”がレジスタ１５Ｃに格納されると、シーケンサ１７はセンスアンプモジュール１２及びロウデコーダ１３等を制御して、読み出し動作を開始する（図１０、ステップＳ４１）。このときレディ／ビジー制御回路１８は、レディ／ビジー信号を“Ｌ”レベルにして、半導体記憶装置１０がビジー状態であることをコントローラ２０に知らせる。そして半導体記憶装置１０が読み出し動作を終了すると、レディ／ビジー制御回路１８はレディ／ビジー信号を“Ｈ”レベルにして、半導体記憶装置１０がレディ状態であることをコントローラ２０に知らせる。図示するｔＲｅａｄは、この読み出し動作が行われている期間を示している。
【０１００】
データ訂正フラグが“１”の場合（図１０、ステップＳ４３、Ｙｅｓ）、コントローラ２０は読み出し動作が終わった後にコマンド“０５ｈ”を発行し、半導体記憶装置１０に送信する（図１０、ステップＳ４４）。コマンド“０５ｈ”は、ステップＳ４４で説明したデータ出力コマンドに相当し、半導体記憶装置１０からコントローラ２０へのデータの出力を命令するコマンドである。そしてコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行してからコマンド“Ｅ０ｈ”を発行し、それぞれ半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、直前に読み出しを行ったデータのアドレスに対応している。コマンド“Ｅ０ｈ”は、直前に送信されたアドレス情報に基づいて半導体記憶装置１０にコントローラ２０へのデータの出力を実行させるためのコマンドである。コマンド“Ｅ０ｈ”がレジスタ１５Ｃに格納されると、センスアンプモジュール１２に保持されたエラーを含む読み出しデータＤｏｕｔが、コントローラ２０に出力される（図１０、ステップＳ４５）。そしてコントローラ２０はＥＣＣ回路２４を用いて、出力された読み出しデータＤｏｕｔのエラーを訂正する（図１０、ステップＳ４６）。
【０１０１】
次にコントローラ２０は、コマンド“０１ｈ”及び“８０ｈ”を続けて発行し、それぞれ半導体記憶装置１０に送信する（図１０、ステップＳ４７）。コマンド“０１ｈ”は、１ページ目の書き込みデータであることを示し、対応するラッチ回路へのデータ転送を命令するコマンドである。そしてコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行し、半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、ストレージ領域のアドレスを指定するものである。さらにコントローラ２０は、エラーを訂正した読み出しデータＤｉｎを半導体記憶装置１０に出力し、続けてコマンド“１Ａｈ”を発行して半導体記憶装置１０に送信する。コマンド“１Ａｈ”がレジスタ１５Ｃに格納されると、シーケンサ１７は入力された読み出しデータＤｉｎを、対応するセンスアンプユニットＳＡＵのラッチ回路ＤＬ１に転送する（図１０、ステップＳ５０）。このときレディ／ビジー制御回路１８は、レディ／ビジー信号を“Ｌ”レベルにして、半導体記憶装置１０がビジー状態であることをコントローラ２０に知らせる。そしてデータの転送が終了すると、レディ／ビジー制御回路１８はレディ／ビジー信号を“Ｈ”レベルにして、半導体記憶装置１０がレディ状態であることをコントローラ２０に知らせる。図示するｔＤＬｔｒａｎｓは、データ転送が行われている期間を示している。
【０１０２】
以上の説明が１ページ目のデータ読み出しで、エラー訂正フラグが“１”の場合におけるコマンドシーケンスに対応している。この動作における読み出しデータの転送経路を図示したものが図１２である。
【０１０３】
２ページ目以降のデータ読み出しで、エラー訂正フラグが“０”の場合におけるコマンドシーケンスは、エラー訂正フラグが“１”の場合に対してエラー訂正処理に関連するコマンドを発行しないという点で異なっている。以下に、２ページ目以降のデータ読み出し、及びデータ書き込みについて、エラー訂正フラグが“１”の場合と異なる点を詳しく説明する。
【０１０４】
図１１に示すように、２ページ目のデータ読み出しにおいて、まずコントローラ２０がコマンド“Ａ２ｈ”を発行してから、データを読み出し終えるまで（ｔＲｅａｄの期間が終了するまで）はエラー訂正フラグが“１”の場合と同様である。
【０１０５】
次にコントローラ２０は、コマンド“０２ｈ”及び“８０ｈ”を続けて発行し、それぞれ半導体記憶装置１０に送信する（図１０、ステップＳ４８）。コマンド“０２ｈ”は、２ページ目の書き込みデータであることを示し、対応するラッチ回路へのデータ転送を命令するコマンドである。そしてコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行し、半導体記憶装置１０に送信する。さらにコントローラ２０は、コマンド“１Ａｈ”を発行し、半導体記憶装置１０に送信する。半導体記憶装置１０はコマンド“１Ａｈ”を受信すると、読み出しデータをラッチ回路ＤＬ２に転送する。
【０１０６】
この２ページ目のデータ読み出しで、エラー訂正フラグが“０”の場合における読み出しデータの転送経路を図示したものが図１３である。図１３に示すように、エラー訂正フラグが“０”の場合における動作は、センスアンプユニットＳＡＵとコントローラ２０との間でのデータ転送を介さない。
【０１０７】
３ページ目のデータ読み出しは、図１１に示すように、２ページ目のデータ読み出しでコマンド“０２ｈ”及び“１Ａｈ”を発行していたのに対して、コマンド“０３ｈ”及び“１０ｈ”を発行したものと同様である。コマンド“０３ｈ”は、３ページ目の書き込みデータであることを示すコマンドであり、コマンド“１０ｈ”は、ＴＬＣ方式の書き込みを命令するコマンドである。
【０１０８】
コマンド“１０ｈ”がレジスタ１５Ｃに格納されると、シーケンサ１７はセンスアンプモジュール１２及びロウデコーダ１３等を制御して、ＴＬＣ方式の書き込み動作を行う（図１０、ステップＳ４４）。このときレディ／ビジー制御回路１８は、レディ／ビジー信号を“Ｌ”レベルにして、半導体記憶装置１０がビジー状態であることをコントローラ２０に知らせる。そして半導体記憶装置１０が書き込み動作を終了すると、レディ／ビジー制御回路１８はレディ／ビジー信号を“Ｈ”レベルにして、半導体記憶装置１０がレディ状態であることをコントローラ２０に知らせる。図示するｔＰｒｏｇ（ＴＬＣ）は、このＴＬＣ方式の書き込み動作が行われている期間を示している。
【０１０９】
以上の動作によって、キャッシュ領域から読み出された３ページ分のデータが、ストレージ領域で同一のワード線ＷＬに接続されたメモリセルに書き込まれる。
【０１１０】
［１−３］第１実施形態の効果
次に、第１実施形態の効果について説明する。第１実施形態に係る半導体記憶装置１０によれば、データの信頼性を維持しつつ書き込み動作を高速化することが出来る。以下に、この効果の詳細について説明する。
【０１１１】
１ビットのデータを記憶するメモリセルを用いたキャッシュ領域と２ビット以上を記憶するメモリセルを用いたストレージ領域を備える半導体記憶装置において、書き込みデータを先にキャッシュ領域に書き込んでからストレージ領域に書き戻すことによって、ストレージ領域に直接データを書き込む場合よりも書き込み速度を高速化することが出来る。
【０１１２】
しかし、微細化等の影響によって、キャッシュ領域から読み出したデータに含まれるエラービット数が増加すると、エラー訂正処理が必要となる。そしてエラー訂正処理を行う場合、半導体記憶装置とコントローラとの間でデータのやり取りが発生し、さらにエラー訂正処理自体に時間がかかるため、書き込み速度が遅くなる。
【０１１３】
そこで、第１実施形態に係る半導体記憶装置１０は、キャッシュ領域への書き込みを行う際にエラー確認動作を行い、この確認結果から書き戻し時のエラー訂正処理が必要かどうかを判断する。
【０１１４】
具体的には、エラー確認動作において半導体記憶装置１０は、キャッシュ領域への書き込み直後に、書き込まれたデータが正しく読み出せるかどうかを確認する。そして半導体記憶装置１０は、エラービット数が所定の値以上になった場合にエラー訂正フラグを立てて、このフラグ情報をコントローラ２０に送信する。コントローラ２０は、受信したフラグ情報からテーブルを作成して、コントローラ２０内のレジスタ２３に保存する。これによりコントローラ２０は、メモリセルアレイ１１内でエラー訂正が必要なページのアドレスを知ることが出来る。
【０１１５】
さらにコントローラ２０は、データの書き戻しの際に、エラー訂正フラグに基づいてエラー訂正を行う。具体的には、エラー訂正フラグが“１”であったページの書き戻し時には、コントローラ２０はデータを半導体記憶装置１０から読み出し、ＥＣＣ回路２４によってエラーを訂正する。そして、訂正されたデータを半導体記憶装置１０へ送信し、半導体記憶装置１０はこのデータをメモリセルアレイ１１に書き戻す。一方で、エラー訂正フラグが“０”であったページの書き戻し時には、コントローラ２０は特にデータを読み出すことなく、半導体記憶装置１０はセンスアンプモジュール１２に読み出したデータをそのままメモリセルアレイ１１に書き戻す。
【０１１６】
これにより、第１実施形態に係る半導体記憶装置１０は、ストレージ領域に書き戻すためにキャッシュ領域から読み出したデータのエラービット数が多い場合にエラー訂正を行うため、データの信頼性を向上することが出来る。また、ストレージ領域への書き戻し時において必要な場合にのみエラー訂正処理を行うため、書き込み動作を高速化することが出来る。
【０１１７】
［２］第２実施形態
次に、第２実施形態に係るメモリシステム１について説明する。第２実施形態は、上記第１実施形態で説明したエラー訂正フラグをシフトリードフラグに変更する。そして第２書き込み動作におけるキャッシュ領域からのデータ読み出しの際に、シフトリードフラグに基づいたシフトリードが行われる。以下では、第１実施形態と異なる点を説明する。
【０１１８】
［２−１］シフトリードについて
まず、図１４を用いてシフトリードについて説明する。図１４には１ビットのデータを記憶するメモリセルの閾値分布が示され、図１４の縦軸及び横軸はそれぞれメモリセルの数及び閾値電圧Ｖｔｈに対応している。
【０１１９】
図１４に示すように、１ビットのデータを記憶するメモリセルは２つの閾値のいずれかを取り得る。図１４に示す低い方の閾値分布“ＥＲ”は消去状態であり、例えばデータ“１”が割り当てられる。一方、高い方の閾値分布“Ａ”は書き込み状態であり、例えばデータ“０”が割り当てられる。このようなメモリセルに記憶されたデータを読み出す場合、読み出し電圧ＶＲを閾値分布“ＥＲ”と閾値分布“Ａ”の間に設定することによって、メモリセルに記憶されたデータが判定される。
【０１２０】
しかし、メモリセルが劣化した場合や不良を有していた場合、図１４の破線に示すように閾値分布が広がることがある。例えば図１４に示すように広がった閾値分布“ＥＲ”の裾が読み出し電圧ＶＲを超えてしまうと、予め設定された読み出し電圧ＶＲでは読み出しデータのエラービット数が増加してしまうことがある。
【０１２１】
そこで、エラービット数が増加したページに対しては、データの読み出しに使用する電圧を変更するシフトリードが行われる。具体的には、シフトリードにおいてデータの読み出しに使用される電圧は、例えば図１４に示すように読み出し電圧ＶＲから高くなる方向にシフトした読み出し電圧ＶＲ’に変更される。この読み出し電圧ＶＲがシフトする量は、広がった閾値分布に最適化されている。
【０１２２】
このように最適化された読み出し電圧ＶＲ’を使用するシフトリードは、劣化した又は不良を有するメモリセルのデータを読み出す場合において、読み出しデータのエラービット数を低減することが出来る。
【０１２３】
第２実施形態のメモリシステム１では、シフトリードフラグに基づいたシフトリードが行われる。シフトリードフラグは、第１実施形態で説明したエラー確認動作の結果に基づいて設定され、例えばエラー確認動作において、エラービット数が閾値未満の場合シフトリードフラグが“０”とされ、エラービット数が閾値を超える場合シフトリードフラグが“１”とされる。この場合、シフトリードフラグ“０”は対象ページのシフトリードが不要である事を示し、シフトリードフラグ“１”は対象ページのシフトリードが必要であることを示している。
【０１２４】
尚、読み出し電圧ＶＲ’を読み出し電圧ＶＲからシフトさせる量及び方向は適宜変更が可能である。例えば、広がった閾値分布“Ａ”の裾が読み出し電圧ＶＲを下回る場合には、読み出し電圧ＶＲは低くなる方向にシフトさせる。
【０１２５】
［２−２］書き込み動作
次に、第２実施形態に係るメモリシステム１の書き込み動作について説明する。書き込み動作の概略は第１実施形態と同様であり、第１及び第２書き込み動作の詳細が第１実施形態と一部分で異なっている。以下では、第２実施形態に係るメモリシステム１の第１及び第２書き込み動作について、第１実施形態と異なる点を説明する。
【０１２６】
［２−２−１］第１書き込み動作の詳細
まず、図１５及び図１６を用いて第１書き込み動作について説明する。図１５にはキャッシュ領域書き込み動作のフローチャートが示され、図１６にはキャッシュ書き込み動作時のステータスリード結果が示されている。第２実施形態に係るメモリシステム１の第１書き込み動作は、第１実施形態で説明した図５において、エラー訂正フラグに関連した動作がシフトリードフラグに関連した動作に置き換わっている。
【０１２７】
図１５に示すように、まず半導体記憶装置１０及びコントローラ２０はそれぞれ、前述したステップＳ２０及びステップＳ３０の動作を行う。尚、ステップＳ２０におけるエラー確認動作では、エラー確認結果に基づいたシフトリードフラグがステータスレジスタ１５Ａに格納される。
【０１２８】
次に半導体記憶装置１０は、コントローラ２０が発行したステータスリードコマンド“ｙｙｈ”を受信して（ステップＳ７０）、受信したコマンド“ｙｙｈ”をコマンドレジスタ１５Ｃに格納する。コマンド“ｙｙｈ”は、シフトリードフラグを含むステータス情報の読み出しを命令するコマンドである。コマンド“ｙｙｈ”がコマンドレジスタ１５Ｃに格納されると、シーケンサ１７はシフトリードフラグを含むステータス情報をステータスレジスタ１５Ａから読み出す（ステップＳ６０）。
【０１２９】
そして読み出されたステータス情報は、信号線ＤＱ０〜ＤＱ７を介してコントローラ２０に出力され（ステップＳ６１）、コントローラ２０は受信したステータス情報に含まれたシフトリードフラグをテーブルとしてレジスタ２３に保存する（ステップＳ７１）。以降の動作は、第１実施形態で説明した図５と同様であるため説明を省略する。
【０１３０】
尚、上記ステップＳ６１において半導体記憶装置１０から出力されたステータス情報は、例えば図１６に示すものとなる。図１６に示すように、シフトリードフラグを含むステータス情報は、図６で説明したエラー訂正フラグを含むステータス情報に対して、エラー訂正フラグをシフトリードフラグに置き換えたものと同様である。
【０１３１】
また、レジスタ２３に保存されたシフトリードフラグのテーブルの構成及び作成方法は、例えば図７で説明したエラー訂正フラグのテーブルと同様となる。
【０１３２】
［２−２−２］第２書き込み動作
［２−２−２−１］第２書き込み動作の詳細
次に、図１７を用いて第２書き込み動作について説明する。図１７には第２書き込み動作のフローチャートが示されている。第２実施形態に係るメモリシステム１の第２書き込み動作は、第１実施形態で説明した図１０において、エラー訂正フラグに関連した動作がシフトリードフラグに関連した動作に置き換わっている。
【０１３３】
図１７に示すように、まずコントローラ２０の例えばプロセッサ２１は、レジスタ２３に格納されたテーブルを参照して、これから読み出すページに対応するシフトリードフラグを確認する（ステップＳ８０）。
【０１３４】
ここで、参照したシフトリードフラグが“１”の場合（ステップＳ８１、Ｙｅｓ）、すなわち、これから読み出し対象のページにおいてシフトリードが必要な場合、コントローラ２０はシフトリードコマンドを発行して、半導体記憶装置１０に送信する（ステップＳ８２）。このシフトリードコマンドは、半導体記憶装置１０に対してメモリセルアレイ１１からセンスアンプモジュール１２へシフトリードによる１ページ分の読み出しを命令するコマンドである。
【０１３５】
一方、ステップＳ８１において、参照したシフトリードフラグが“０”の場合（ステップＳ８１、Ｎｏ）、すなわち、読み出し対象のページにおいてシフトリードが不要な場合、コントローラ２０は通常の読み出しコマンドを発行して半導体記憶装置１０に送信する（ステップＳ８３）。
【０１３６】
ステップＳ８２又はＳ８３の後、コントローラ２０は、読み出し対象となる領域のアドレスを送信する。このアドレスは、メモリセルアレイ１１のキャッシュ領域のいずれかのページに相当する。
【０１３７】
シーケンサ１７は、受信したシフトリードコマンド又は読み出しコマンドに基づいて、１ページ分のデータをメモリセルアレイ１１のキャッシュ領域から読み出す（ステップＳ８４）。すなわち、ステップＳ８４において、ステップＳ８２を経由していた場合シフトリードが行われ、ステップＳ８３を経由していた場合通常の読み出しが行われる。このシフトリードと通常の読み出しでは、読み出し動作時にワード線ＷＬに印加される電圧が異なっている。
【０１３８】
ステップＳ８４の後、メモリシステム１の動作は前述したステップＳ４８に移行する。以降の動作は第１実施形態で説明した図１０と同様であり、図１７ではステップＳ５０からステップＳ８０に移行する点のみ異なっている。
【０１３９】
［２−２−２−２］第２書き込み動作のコマンドシーケンス
次に、図１８を用いて第２書き込み動作のコマンドシーケンスについて説明する。図１８には第２書き込み動作のコマンドシーケンスの一例が示されている。以下に、キャッシュ領域から読み出す３ページ分のデータにおいて、１ページ目のシフトリードフラグが“１”であり、２ページ目及び３ページ目のシフトリードフラグが“０”である場合を例に説明する。
【０１４０】
図１８に示すように、まずコントローラ２０は、コマンド“Ａ２ｈ”及びシフトリードコマンド“ｚｚｈ”を続けて発行し、それぞれ半導体記憶装置１０に送信する（図１７、ステップＳ８２）。コマンド“ｚｚｈ”は、ステップＳ８２で説明したシフトリードコマンドに相当する。
【０１４１】
次にコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行し、半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、キャッシュ領域のアドレスを指定するものである。次にコントローラ２０は、コマンド“３０ｈ”を発行し、半導体記憶装置１０に送信する。コマンド“３０ｈ”がレジスタ１５Ｃに格納されると、シーケンサ１７はセンスアンプモジュール１２及びロウデコーダ１３等を制御して、シフトリードを開始する。シフトリードが行われると、各センスアンプユニットＳＡＵのセンスアンプ部ＳＡにデータが読み出され、読み出されたデータがセンスアンプ部ＳＡからラッチ回路ＳＤＬに転送される。
【０１４２】
次にコントローラ２０は、コマンド“０１ｈ”及び“８０ｈ”を続けて発行し、それぞれ半導体記憶装置１０に送信する。そしてコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行し、半導体記憶装置１０に送信する。続けてコントローラ２０は、コマンド“１Ａｈ”を発行し、半導体記憶装置１０に送信する。半導体記憶装置１０はコマンド“１Ａｈ”を受信すると、読み出しデータをラッチ回路ＤＬ１に転送する（図１７、ステップＳ５０）。
【０１４３】
以降の動作は、第１実施形態で説明した図１１と同様であるため説明を省略する。つまりシフトリードフラグが“０”の場合のコマンドシーケンスは、第１実施形態で説明した図１１においてエラー訂正フラグが“０”の場合のコマンドシーケンスと同様である。
【０１４４】
［２−３］第２実施形態の効果
次に、第２実施形態の効果について説明する。第２実施形態に係る半導体記憶装置１０によれば、第１実施形態よりも書き込み速度を向上することが出来る。以下に、この詳細について説明する。
【０１４５】
半導体記憶装置において、キャッシュ領域からデータを読み出す際に発生するエラービット数は、シフトリードを行うことで低減することができる場合がある。
【０１４６】
そこで、第２実施形態に係る半導体記憶装置１０は、第１実施形態におけるエラー確認動作において、エラービット数が所定の値以上になった場合にシフトリードフラグを立て、このシフトリードフラグに基づいてテーブルを作成する。このテーブルは、メモリセルアレイ１１内において、いずれのページでシフトリードが必要であるかを示す情報である。そして、このテーブルがコントローラ２０へ送信されることによって、コントローラ２０はシフトリードが必要なアドレスを知ることが出来る。
【０１４７】
さらにコントローラ２０は、データの書き戻し時において、キャッシュ領域からデータを読み出す際に、シフトリードフラグに基づいてシフトリードコマンドを発行する。具体的には、シフトリードフラグが“１”であったページの書き戻し時にはシフトリードコマンドが発行され、シフトリードコマンドを受信した半導体記憶装置１０は、シフトリードによってキャッシュ領域からデータを読み出す。一方で、シフトリードフラグが“０”であったページの書き戻し時には通常の読み出しコマンドが発行され、通常の読み出しコマンドを受信した半導体記憶装置１０は通常の読み出し動作によってキャッシュ領域からデータを読み出す。そして、読み出されたデータはストレージ領域に書き込まれる。
【０１４８】
これにより、第２実施形態に係る半導体記憶装置１０は、第１実施形態と同様にデータの信頼性を向上することが出来る。また、シフトリードはエラー訂正処理を行う場合のように半導体記憶装置１０とコントローラ２０との間でデータのやり取りが発生しないため、第１実施形態よりも書き込み動作を高速化することが出来る。
【０１４９】
［３］変形例等
上記実施形態に係る半導体記憶装置≪１０、図１≫は、ｎビット（ｎは１以上の自然数）のデータを記憶可能な第１メモリセル≪キャッシュ領域、図２≫と、ｍビット（ｍは２以上の自然数であり、ｍ＞ｎ）のデータを記憶可能な第２メモリセル≪ストレージ領域、図２≫と、第１及び第２メモリセルに対してデータの読み出し及び書き込みを行うセンスアンプ≪１２、図２≫とを備える。半導体記憶装置が外部のコントローラ≪２０、図１≫から第１命令≪８０ｈ、図９≫を受信した際、センスアンプは第１データを前記第１メモリセルに書き込む≪Program、図８≫。そしてセンスアンプは書き込みの後に第１メモリセルから第１データを読み出し≪Read、図８≫、第１データと読み出された第１データとを比較する≪XNOR、図８≫。半導体記憶装置が第１命令の受信後、第１命令と異なる第２命令≪８０ｈ、図１１≫を受信した際には、前記比較結果に基づいて、センスアンプは第１メモリセルから読み出された第１データを第２メモリセルに書き込み、又はコントローラから受信した第２データを第２メモリセルに書き込む。
【０１５０】
また、上記実施形態に係るメモリシステムは、上記の半導体記憶装置と、第１及び第２命令を出力可能なコントローラと、を備える。
【０１５１】
これにより、動作を高速化することが可能な半導体記憶装置及びメモリシステムを提供することが出来る。
【０１５２】
尚、実施形態は上記第１及び第２実施形態に限定されず、種々の変形が可能である。例えば上記実施形態について、１つのメモリセルアレイ１１とそれに対応するセンスアンプモジュール１２及びロウデコーダ１３が設けられた１つのプレーンを備える半導体記憶装置１０を用いて説明したが、これに限定されない。つまり半導体記憶装置１０は、１つのシーケンサ１７によって制御される２つ以上のプレーンを備えていても良い。この場合、エラー訂正フラグ及びシフトリードフラグは各プレーンに対してそれぞれ設定され、ステータス情報に含まれるプレーン毎の各フラグは、ステータスリードコマンドによって異なる信号線ＤＱを介して出力される。
【０１５３】
また、上記第１及び第２実施形態は、エラー確認動作においてフラグを立てるエラービット数の閾値をエラー訂正フラグとシフトリードフラグで異なる値にすることによって、同時に適用することが出来る。例えばフラグを立てる閾値について、シフトリードフラグよりもエラー訂正フラグの方を高く設定する。この場合、エラー確認動作で検出したエラービット数が少なくシフトリードで改善が見込める場合にはシフトリードを適用し、エラー確認動作で検出したエラービット数が多くエラー訂正が必要な場合にはエラー訂正を適用することが出来る。これにより、データの信頼性を維持しつつ第１実施形態よりも書き込み速度を向上することが出来る。尚、このような処理を行う場合、半導体記憶装置１０は１回のステータスリードコマンドによって、エラー訂正フラグとシフトリードフラグを同時にコントローラ２０に出力するようにしても良い。
【０１５４】
また、コントローラ２０が、図５に示すステップＳ３１においてステータスリードコマンド“ｘｘｈ”を、図１５に示すステップＳ７０においてステータスリードコマンド“ｙｙｈ“をそれぞれ発行していたのに対して、ステータスリードコマンド“７０ｈ”を発行するようにしても良い。つまり半導体記憶装置１０が、ステータスリードコマンド“７０ｈ”を受信した場合に読み出す書き込みパス／フェイル情報と共に、エラー訂正フラグ及びシフトリードフラグを読み出すようにしても良い。
【０１５５】
また、上記実施形態においてキャッシュ領域及びストレージ領域のメモリセルにそれぞれＳＬＣ方式及びＴＬＣ方式の書き込みを適用した例を示したが、これに限定されず、キャッシュ領域のメモリセルに記憶させるビット数が、ストレージ領域のメモリセルに記憶させるビット数よりも少なければ良い。
【０１５６】
また、上記実施形態において各ステータス情報を出力する信号線ＤＱの割り当てはこれに限定されず、種々変更が可能である。また、上記実施形態においてエラー訂正フラグ及びシフトリードフラグの数字の割り当てはこれに限定されず、種々変更が可能である。
【０１５７】
また、上記説明において「接続」とは電気的に接続していることを示し、直接接続される場合だけでなく、任意の素子を介して接続される場合も含んでいる。
【０１５８】
尚、メモリセルアレイ１１は、メモリセルトランジスタＭＴが半導体基板の上方に三次元に積層された構成であっても良い。このような構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０１５９】
また、上記実施形態において、ブロックＢＬＫがデータの消去単位にならなくても良い。例えば他の消去動作は、“不揮発性半導体記憶装置”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号、“不揮発性半導体記憶装置”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０１６０】
尚、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１６１】
１…メモリシステム、１０…半導体記憶装置、１１…メモリセルアレイ、１２…センスアンプモジュール、１３…ロウデコーダ、１４…入出力回路、１５…レジスタ、１６…ロジック制御回路、１７…シーケンサ、１８…レディ／ビジー制御回路、１９…電圧生成回路、２０…コントローラ、２１…プロセッサ、２２…内蔵メモリ、２３…レジスタ、２４…ＥＣＣ回路、２５…ＮＡＮＤインターフェイス回路、２６…バッファメモリ、２７…ホストインターフェイス回路。
【図１】
2017157257.tif 000003
【図２】
2017157257.tif 000004
【図３】
2017157257.tif 000005
【図４】
2017157257.tif 000006
【図５】
2017157257.tif 000007
【図６】
2017157257.tif 000008
【図７】
2017157257.tif 000009
【図８】
2017157257.tif 000010
【図９】
2017157257.tif 000011
【図１０】
2017157257.tif 000012
【図１１】
2017157257.tif 000013
【図１２】
2017157257.tif 000014
【図１３】
2017157257.tif 000015
【図１４】
2017157257.tif 000016
【図１５】
2017157257.tif 000017
【図１６】
2017157257.tif 000018
【図１７】
2017157257.tif 000019
【図１８】
2017157257.tif 000020