(57)【要約】【課題】動作を高速化することが可能な半導体記憶装置及びメモリシステムを提供する。【解決手段】実施形態の半導体記憶装置１０は、第１及び第２メモリセルと、第１及び第２メモリセルにそれぞれ接続された第１及び第２ワード線と、第１及び第２コマンドセットにそれぞれ応答して読み出し動作を実行する制御回路とを含む。制御回路は、互いに異なる第１乃至第３電圧を用いてそれぞれデータを読み出す第１シーケンスと、第１シーケンスの結果に基づいた電圧を用いてデータを読み出す第２シーケンスとを実行可能である。第１コマンドセットに基づく第１メモリセルの読み出し動作では、第１及び第２シーケンスが連続で実行される。続く第２コマンドセットに基づく第２メモリセルの読み出し動作では、第１メモリセルの読み出し動作における第１シーケンスの結果に基づいた第２シーケンスが実行される。【選択図】図９
2018028956.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１及び第２メモリセルと、
前記複数の第１メモリセルに接続された第１ワード線と、
前記複数の第２メモリセルに接続された第２ワード線と、
外部から受信した第１及び第２コマンドセットにそれぞれ応答して読み出し動作を実行する制御回路と、
を備え、
前記制御回路は、読み出し動作時において第１及び第２読み出しシーケンスを実行することが可能であり、前記第１読み出しシーケンスでは互いに異なる第１乃至第３電圧を用いてそれぞれデータを読み出し、前記第２読み出しシーケンスでは前記第１読み出しシーケンスの結果に基づいた電圧を用いてデータを読み出し、
前記第１コマンドセットに基づく前記複数の第１メモリセルの読み出し動作では、前記第１及び第２読み出しシーケンスを連続して実行し、
前記複数の第１メモリセルの読み出し動作に続く、前記第２コマンドセットに基づく前記複数の第２メモリセルの読み出し動作では、前記複数の第１メモリセルの読み出し動作における前記第１読み出しシーケンスの結果に基づいた電圧を用いて前記第２読み出しシーケンスを実行する
ことを特徴とする半導体記憶装置。
【請求項２】
複数の第３メモリセルと、
前記複数の第３メモリセルに接続された第３ワード線と、
をさらに備え、
前記制御回路は、前記複数の第２メモリセルの読み出し動作に続く、前記第２コマンドセットに基づく前記複数の第３メモリセルの読み出し動作では、前記第３ワード線が選択されたことに応答して前記第１及び第２読み出しシーケンスを連続して実行する
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記第１及び第２メモリセルと、前記第３メモリセルとは、異なるブロックに含まれる
ことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記第１コマンドセットでは、アドレス情報の前に第１コマンドと第２コマンドとが続けて発行され、
前記第２コマンドセットでは、アドレス情報の前に前記第２コマンドが発行される
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
前記第２コマンドセットにおいて、前記第２コマンドの前に第３コマンドが発行される
ことを特徴とする請求項４に記載の半導体記憶装置。
【請求項６】
前記第１コマンドセットでは、アドレス情報の前に第１コマンドが発行され、
前記第２コマンドセットでは、アドレス情報の前に第２コマンドと前記第１コマンドとが続けて発行される
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項７】
前記第１読み出しシーケンスの結果に基づいた電圧は、前記第１乃至第３電圧のいずれかである
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項８】
請求項１乃至請求項７のいずれかに記載の半導体記憶装置と、
前記第１及び第２コマンドセットを発行可能なコントローラと、
を備えることを特徴とするメモリシステム。
【請求項９】
前記コントローラは、前記読み出し動作において、前記半導体記憶装置からデータを読み出すブロックアドレスが変わった場合に前記第１コマンドセットを発行する
ことを特徴とする請求項８に記載のメモリシステム。
【請求項１０】
前記第２読み出しシーケンスにおいて正しくデータが読み出せなかった場合、
前記コントローラは、前記第２読み出しシーケンスによって読み出されたデータに基づいて最適な読み出し電圧を算出し、前記最適な読み出し電圧を適用したリトライリードを前記半導体記憶装置に指示する第３コマンドセットを発行する
ことを特徴とする請求項８に記載のメモリシステム。
【請求項１１】
複数の第１及び第２メモリセルと、
前記複数の第１メモリセルに接続された第１ワード線と、
前記複数の第２メモリセルに接続された第２ワード線と、
外部から受信した第１コマンドセットに応答して読み出し動作を実行する制御回路と、
を備え、
前記制御回路は、読み出し動作時において第１乃至第３読み出しシーケンスを実行することが可能であり、前記第１読み出しシーケンスでは第１電圧を用いてデータを読み出し、前記第２読み出しシーケンスでは互いに異なる第２乃至第４電圧を用いてそれぞれデータを読み出し、前記第３読み出しシーケンスでは前記第２読み出しシーケンスの結果に基づいた電圧を用いてデータを読み出し、
前記複数の第１メモリセルの読み出し動作では、前記第１乃至第３読み出しシーケンスを連続して実行し、
前記複数の第１メモリセルの読み出し動作に続く前記複数の第２メモリセルの読み出し動作では、前記第１読み出しシーケンスと、前記複数の第１メモリセルの読み出し動作における前記第２読み出しシーケンスの結果に基づいた電圧を用いた前記第３読み出しシーケンスとを連続して実行する
ことを特徴とする半導体記憶装置。
【請求項１２】
前記複数の第１メモリセルの読み出し動作時における前記第１読み出しシーケンスでは、第１フラグ情報を含むデータが読み出され、
前記複数の第２メモリセルの読み出し動作時における前記第１読み出しシーケンスでは、第２フラグ情報を含むデータが読み出され、
前記制御回路は、前記複数の第２メモリセルの読み出し動作時における前記第３読み出しシーケンスの前に、前記第１フラグ情報と前記第２フラグ情報とを比較する
ことを特徴とする請求項１１に記載の半導体記憶装置。
【請求項１３】
前記第１フラグ情報と前記第２フラグ情報とは同じである
ことを特徴とする請求項１２に記載の半導体記憶装置。
【請求項１４】
複数の第３メモリセルと、
前記複数の第３メモリセルに接続された第３ワード線と、
をさらに備え、
前記制御回路は、前記複数の第２メモリセルの読み出し動作に続く前記複数の第３メモリセルの読み出し動作では、前記第１読み出しシーケンスを実行することにより第３フラグ情報を含むデータを読み出し、前記第２フラグ情報と前記第３フラグ情報とが異なる場合に、続けて前記第２及び第３読み出しシーケンスを連続して実行する
ことを特徴とする請求項１２に記載の半導体記憶装置。
【請求項１５】
前記第１及び第２フラグ情報はそれぞれ、前記複数の第１及び第２メモリセルがそれぞれ保持するデータの冗長領域に記憶される
ことを特徴とする請求項１２に記載の半導体記憶装置。
【請求項１６】
前記制御回路は、外部から受信した第２コマンドセットに応答して書き込み動作を実行することが可能であり、
前記第１及び第２フラグ情報はそれぞれ、前記第２コマンドセットに基づく前記複数の第１及び第２メモリセルに対する書き込み動作で書き込まれ、
前記第１及び第２フラグ情報は前記第２コマンドセットに含まれない
ことを特徴とする請求項１５に記載の半導体記憶装置。
【請求項１７】
前記第２コマンドセットに応答して書き込み動作を実行可能な請求項１４に記載の半導体記憶装置と、
前記第１及び第２コマンドセットを発行可能なコントローラと、
を備え、
前記第１及び第２フラグ情報はそれぞれ、前記第２コマンドセットに基づく前記複数の第１及び第２メモリセルの書き込み動作で書き込まれ、
前記複数の第１メモリセルに対する書き込み動作において、前記半導体記憶装置が受信する前記第２コマンドセットには前記第１フラグ情報が含まれ、
前記複数の第２メモリセルに対する書き込み動作において、前記半導体記憶装置が受信する前記第２コマンドセットには前記第２フラグ情報が含まれる
ことを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−７９４０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作を高速化することが可能な半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、複数の第１及び第２メモリセルと、複数の第１及び第２メモリセルにそれぞれ接続された第１及び第２ワード線と、外部から受信した第１及び第２コマンドセットにそれぞれ応答して読み出し動作を実行する制御回路とを含む。制御回路は、読み出し動作時において第１及び第２読み出しシーケンスを実行することが可能である。第１読み出しシーケンスでは、互いに異なる第１乃至第３電圧を用いてそれぞれデータが読み出される。第２読み出しシーケンスでは、第１読み出しシーケンスの結果に基づいた電圧を用いてデータが読み出される。第１コマンドセットに基づく複数の第１メモリセルの読み出し動作では、第１及び第２読み出しシーケンスが連続で実行される。複数の第１メモリセルの読み出し動作に続く、第２コマンドセットに基づく複数の第２メモリセルの読み出し動作では、複数の第１メモリセルの読み出し動作における第１読み出しシーケンスの結果に基づいた電圧を用いた第２読み出しシーケンスが実行される。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムのブロック図。
【図２】第１実施形態に係る半導体記憶装置のブロック図。
【図３】第１実施形態に係る半導体記憶装置の備えるメモリセルアレイの回路図。
【図４】第１実施形態に係る半導体記憶装置の備えるメモリセルの閾値分布。
【図５】第１実施形態に係る半導体記憶装置の備えるセンスアンプモジュールの回路図。
【図６】第１実施形態に係る半導体記憶装置における読み出し動作の説明図。
【図７】第１実施形態に係る半導体記憶装置における読み出し動作の説明図。
【図８】第１実施形態に係るメモリシステムにおける読み出し動作のフローチャート。
【図９】第１実施形態に係るメモリシステムにおける読み出し動作の波形図。
【図１０】第１実施形態に係るメモリシステムにおける読み出し動作のコマンドシーケンス。
【図１１】第１実施形態に係るメモリシステムにおける読み出し動作のコマンドシーケンス。
【図１２】第１実施形態に係るメモリシステムにおける読み出し動作のコマンドシーケンス。
【図１３】第２実施形態に係るメモリシステムにおける読み出し動作のフローチャート。
【図１４】第２実施形態に係るメモリシステムにおける読み出し動作の波形図。
【図１５】第３実施形態に係るメモリシステムにおける読み出し動作のフローチャート。
【図１６】第３実施形態に係るメモリシステムにおける読み出し動作の波形図。
【図１７】第４実施形態に係るメモリシステムにおける読み出し動作のフローチャート。
【図１８】第４実施形態に係るメモリシステムにおける読み出し動作の波形図。
【図１９】第５実施形態に係るメモリシステムにおける書き込み動作のフローチャート。
【図２０】第５実施形態に係るメモリシステムにおける読み出し動作のフローチャート。
【図２１】第５実施形態に係るメモリシステムにおける読み出し動作の波形図。
【図２２】第５実施形態に係るメモリシステムにおける書き込み動作のフローチャート。
【図２３】第５実施形態に係るメモリシステムにおける書き込み動作のフローチャート。
【図２４】第５実施形態に係るメモリシステムにおける書き込み動作のコマンドシーケンス。
【図２５】変形例に係るメモリシステムにおける書き込み動作の波形図。
【図２６】変形例に係るメモリシステムにおける書き込み動作の波形図。
【図２７】変形例に係るメモリシステムにおける読み出し動作のフローチャート。
【図２８】変形例に係るメモリシステムにおける読み出し動作の波形図。
【図２９】変形例に係るメモリシステムにおける読み出し動作のコマンドシーケンス。
【図３０】変形例に係るメモリシステムにおける読み出し動作のコマンドシーケンス。
【図３１】変形例に係るメモリシステムにおける読み出し動作のコマンドシーケンス。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。参照される図面は模式的なものである。以下の説明において、同一の機能及び構成を有する要素については、共通する参照符号を付す。参照符号を構成する数字の後のアルファベットは、同じ数字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ数字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は数字のみを含んだ参照符号により参照される。
【０００８】
［１］第１実施形態
以下に、第１実施形態に係る半導体記憶装置及びメモリシステムについて説明する。
【０００９】
［１−１］構成
［１−１−１］メモリシステム１の構成
まず、図１を用いてメモリシステムの構成について説明する。図１にはメモリシステムのブロック図が示されている。図１に示すようにメモリシステム１は、半導体記憶装置１０、及びコントローラ２０を備えている。
【００１０】
半導体記憶装置１０は、データを不揮発に記憶するＮＡＮＤ型フラッシュメモリである。半導体記憶装置１０の構成の詳細については後述する。
【００１１】
コントローラ２０は、外部の図示せぬホスト機器からの命令に応答して、半導体記憶装置１０に対して読み出し、書き込み、及び消去等を命令する。またコントローラ２０は、半導体記憶装置１０におけるメモリ空間を管理する。
【００１２】
図１に示すようにコントローラ２０は、プロセッサ（ＣＰＵ）２１、内蔵メモリ（ＲＡＭ）２２、ＥＣＣ回路２３、ＮＡＮＤインターフェイス回路２４、バッファメモリ２５、及びホストインターフェイス回路２６を備えている。
【００１３】
プロセッサ２１は、コントローラ２０全体の動作を制御する。例えばプロセッサ２１は、ホスト機器から受信した書き込み命令に応答して、ＮＡＮＤインターフェイスに基づく書き込み命令を発行する。この動作は、読み出し及び消去の場合についても同様である。
【００１４】
内蔵メモリ２２は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２１の作業領域として使用される。内蔵メモリ２２は、半導体記憶装置１０を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００１５】
ＥＣＣ回路２３は、データのエラー訂正（ＥＣＣ：Error Checking and Correcting）処理を行う。具体的には、ＥＣＣ回路２３は、データの書き込み時に書き込みデータに基づいてパリティを生成する。そしてＥＣＣ回路２３は、データの読み出し時にパリティからシンドロームを生成してエラーを検出し、検出したエラーを訂正する。
【００１６】
ＮＡＮＤインターフェイス回路２４は、半導体記憶装置１０と接続され、半導体記憶装置１０との通信を司る。例えばＮＡＮＤインターフェイス回路２４は、半導体記憶装置１０との間で入出力信号Ｉ／Ｏを送信及び受信する。例えば、コントローラ２０が半導体記憶装置１０に送信する入出力信号Ｉ／ＯはコマンドＣＭＤ、アドレス情報ＡＤＤ、及び書き込みデータＤＡＴを含み、コントローラ２０が半導体記憶装置１０から受信する入出力信号Ｉ／Ｏはステータス情報ＳＴＳ、及び読み出しデータＤＡＴを含んでいる。
【００１７】
バッファメモリ２５は、コントローラ２０が半導体記憶装置１０及びホスト機器から受信したデータ等を一時的に保持する。
【００１８】
ホストインターフェイス回路２６は、図示せぬホストバスを介してホスト機器と接続され、ホスト機器との通信を司る。例えばホストインターフェイス回路２６は、ホスト機器から受信した命令及びデータをそれぞれ、プロセッサ２１及びバッファメモリ２５に転送する。
【００１９】
［１−１−２］半導体記憶装置１０の構成
次に、図２を用いて半導体記憶装置１０の構成について説明する。図２には半導体記憶装置１０のブロック図が示されている。図２に示すように半導体記憶装置１０は、メモリセルアレイ１１、センスアンプモジュール１２、ロウデコーダ１３、入出力回路１４、レジスタ１５、ロジック制御回路１６、シーケンサ１７、レディ／ビジー制御回路１８、及び電圧生成回路１９を備えている。
【００２０】
メモリセルアレイ１１は、ブロックＢＬＫ０〜ＢＬＫｎ（ｎは１以上の自然数）を備えている。ブロックＢＬＫは、ビット線及びワード線に関連付けられた複数の不揮発性メモリセルの集合であり、例えばデータの消去単位となる。各メモリセルは、ＭＬＣ（Multi-Level Cell）方式を適用することにより、複数ビットのデータを記憶することが出来る。
【００２１】
センスアンプモジュール１２は、メモリセルアレイ１１から読み出したデータＤＡＴを、入出力回路１４を介してコントローラ２０に出力する。またセンスアンプモジュール１２は、コントローラ２０から入出力回路１４を介して受け取った書き込みデータＤＡＴを、メモリセルアレイ１１に転送する。
【００２２】
またセンスアンプモジュール１２は、カウンタＣＴ、及びビット線毎に設けられた複数のセンスアンプユニット（図示せず）を備えている。カウンタＣＴは、読み出したデータのオンセル数をカウントし、このカウント結果をシーケンサ１７に転送する。センスアンプユニットについての詳細は後述する。
【００２３】
ロウデコーダ１３は、読み出し動作及び書き込み動作を行う対象のメモリセルに対応するワード線を選択する。そしてロウデコーダ１３は、選択ワード線及び非選択ワード線にそれぞれ所望の電圧を印加する。
【００２４】
入出力回路１４は、コントローラ２０との間で例えば８ビット幅の入出力信号Ｉ／Ｏ（Ｉ／Ｏ１〜Ｉ／Ｏ８）を送信及び受信する。例えば入出力回路１４は、コントローラ２０から受信した入出力信号Ｉ／Ｏに含まれた書き込みデータＤＡＴを、センスアンプモジュール１２に転送する。また入出力回路１４は、センスアンプモジュール１２から転送された読み出しデータＤＡＴを入出力信号Ｉ／Ｏとしてコントローラ２０に送信する。
【００２５】
レジスタ１５は、ステータスレジスタ１５Ａ、アドレスレジスタ１５Ｂ、コマンドレジスタ１５Ｃを含む。ステータスレジスタ１５Ａは、ステータス情報ＳＴＳを保持する。またステータスレジスタ１５Ａは、シーケンサ１７の指示に応じてこのステータス情報ＳＴＳを入出力回路１４に転送する。アドレスレジスタ１５Ｂは、入出力回路１４からアドレス情報ＡＤＤを受け取り、このアドレス情報ＡＤＤを保持する。そしてアドレスレジスタ１５Ｂは、アドレス情報ＡＤＤに含まれたカラムアドレス信号ＣＡ及びロウアドレス信号ＲＡをそれぞれ、センスアンプモジュール１２及びロウデコーダ１３に転送する。コマンドレジスタ１５Ｃは、入出力回路１４からコマンドＣＭＤを受け取り、このコマンドＣＭＤを保持する。そしてコマンドレジスタ１５Ｃは、コマンドＣＭＤをシーケンサ１７に転送する。
【００２６】
ロジック制御回路１６は、コントローラ２０から各種制御信号を受信し、入出力回路１４及びシーケンサ１７を制御する。この制御信号としては、例えばチップイネーブル信号／ＣＥ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、及びライトプロテクト信号／ＷＰが使用される。信号／ＣＥは、半導体記憶装置１０をイネーブルにするための信号である。信号ＣＬＥは、アサートされている信号ＣＬＥと並行して半導体記憶装置１０に入力される信号がコマンドＣＭＤであることを入出力回路１４に通知する信号である。信号ＡＬＥは、アサートされている信号ＡＬＥと並行して半導体記憶装置１０に入力される信号がアドレス情報ＡＤＤであることを入出力回路１４に通知する信号である。信号／ＷＥ及び／ＲＥはそれぞれ、例えば入出力信号Ｉ／Ｏ１〜Ｉ／Ｏ８の入力及び出力を入出力回路１４に指示する信号である。信号/ＷＰは、例えば電源のオンオフ時に半導体記憶装置１０を保護状態するための信号である。
【００２７】
シーケンサ１７は、半導体記憶装置１０全体の動作を制御する。具体的には、シーケンサ１７は、コマンドレジスタ１５Ｃから転送されたコマンドＣＭＤに基づいてセンスアンプモジュール１２、ロウデコーダ１３、電圧生成回路１９等を制御し、データの書き込み動作、読み出し動作等を実行する。さらにシーケンサ１７は、異なる読み出し電圧を用いた複数回の読み出し動作の結果に基づいて、最適な読み出し電圧の補正値を算出することが出来る。この動作の詳細については後述する。
【００２８】
またシーケンサ１７は、レジスタＲＥＧを備えている。レジスタＲＥＧには、例えば読み出し動作時にワード線に印加する電圧に関連するパラメータが保持され、シーケンサ１７はこのパラメータを参照して読み出し動作を実行する。尚、レジスタＲＥＧに保持された各パラメータは、書き換えることが可能である。
【００２９】
レディ／ビジー制御回路１８は、シーケンサ１７の動作状態に基づいてレディ／ビジー信号ＲＹ／(／ＢＹ)を生成し、この信号をコントローラ２０に送信する。信号ＲＹ／(／ＢＹ)は、半導体記憶装置１０がレディ状態であるか、ビジー状態であるかをコントローラ２０に通知する信号である。レディ状態はコントローラ２０からの命令を受け付ける状態であり、ビジー状態はコントローラ２０からの命令を受け付けない状態である。また信号ＲＹ／(／ＢＹ)は、レディ／ビジー制御回路１８が、その出力に接続されたトランジスタＴｒのオンオフを制御することによって生成される。例えば信号ＲＹ／(／ＢＹ)は、半導体記憶装置１０がデータの読み出し等の動作中には “Ｌ”レベルとされ（ビジー状態）、これらの動作が完了すると“Ｈ”レベルとされる（レディ状態）。
【００３０】
電圧生成回路１９は、シーケンサ１７の指示に基づいて所望の電圧を生成する。そして電圧生成回路１９は、生成した電圧をメモリセルアレイ１１、センスアンプモジュール１２、及びロウデコーダ１３に供給する。
【００３１】
［１−１−３］メモリセルアレイ１１の構成
次に、図３を用いてメモリセルアレイ１１の構成について説明する。図３はメモリセルアレイ１１の回路図であり、メモリセルアレイ１１内の１つのブロックＢＬＫについての詳細な回路構成が示されている。図３に示すようにブロックＢＬＫは、複数のＮＡＮＤストリングＮＳを備えている。
【００３２】
各ＮＡＮＤストリングＮＳは、ビット線ＢＬ０〜ＢＬ（Ｌ−１）（（Ｌ−１）は１以上の自然数）に対応して設けられ、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、及び選択トランジスタＳＴ１、ＳＴ２を含んでいる。尚、１つのＮＡＮＤストリングＮＳが含むメモリセルトランジスタＭＴの数はこれに限定されず、任意の数にすることが出来る。
【００３３】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を備え、データを不揮発に保持する。またメモリセルトランジスタＭＴ０〜ＭＴ７は、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。同一ブロックＢＬＫ内の選択トランジスタＳＴ１及びＳＴ２のゲートはそれぞれ、セレクトゲート線ＳＧＤ及びＳＧＳに共通接続されている。同様に、同一ブロックＢＬＫ内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれ、ワード線ＷＬ０〜ＷＬ７に共通接続されている。
【００３４】
またメモリセルアレイ１１内において、同一列にあるＮＡＮＤストリングＮＳにおける選択トランジスタＳＴ１のドレインは、ビット線ＢＬに共通接続されている。つまりビット線ＢＬは、複数のブロックＢＬＫ間で同一列にあるＮＡＮＤストリングＮＳを共通に接続している。さらに、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通接続されている。
【００３５】
以上の構成において、共通のワード線ＷＬに接続された複数のメモリセルの保持する１ビットデータの集合を「ページ」と呼ぶ。従って、１つのメモリセルに２ビットデータを記憶させる場合、１本のワード線ＷＬに接続された複数のメモリセルの集合には２ページ分のデータが記憶される。
【００３６】
また「ページ」は、データ領域及び冗長領域を含んでいる。データ領域は、外部の電子機器が半導体記憶装置１０に保存しようとするデータを書き込む領域である。冗長領域は、例えばデータ領域に関するメタデータ等のデータを書き込むための領域である。
【００３７】
尚、以上で説明したメモリセルトランジスタＭＴの閾値分布は、例えば図４に示すものとなる。図４には、２ビットデータを保持するメモリセルトランジスタＭＴの閾値分布、及び読み出し動作時に用いる電圧が示されている。図４の縦軸及び横軸はそれぞれ、メモリセルトランジスタＭＴの数及び閾値電圧Ｖthに対応している。
【００３８】
メモリセルトランジスタＭＴが２ビットのデータを保持する場合、その閾値電圧の分布は、図４に示すように４個に分かれる。この４個の閾値分布にそれぞれ対応する２ビットのデータを、閾値電圧の低いものから順に“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルと呼ぶ。“ＥＲ”レベルを保持するメモリセルトランジスタＭＴはデータの消去状態に相当し、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルを保持するメモリセルトランジスタはデータの書き込み状態に相当する。読み出し動作の際、読み出し対象のメモリセルトランジスタＭＴの閾値電圧がどのレベルに含まれているのかが判定される。この判定のために、種々の読み出し電圧が定められている。
【００３９】
あるメモリセルトランジスタＭＴが“ＥＲ”レベルの閾値電圧を有するか“Ａ”レベル以上の閾値電圧か有するかを判定するための読み出し電圧ＡＲは、“ＥＲ”レベルの高い方の裾と“Ａ”レベルの低い方の裾との間に設定される。あるメモリセルトランジスタＭＴが“Ａ”レベル以下の閾値電圧を有するか“Ｂ”レベル以上の閾値電圧を有するかを判定するための読み出し電圧ＢＲは、“Ａ”レベルの高い方の裾と“Ｂ”レベルの低い方の裾との間に設定される。あるメモリセルトランジスタＭＴが“Ｂ”レベル以下の閾値電圧を有するか“Ｃ”レベルの閾値電圧かを判定するための読み出し電圧ＣＲは、“Ｂ”レベルの高い方の裾と“Ｃ”レベルの低い方の裾との間に設定される。図４に示す読み出し電圧Ｖreadは、読み出し電圧Ｖreadがゲートに印加されたメモリセルトランジスタＭＴが、保持するデータに依らずにオンする電圧に設定される。これら電圧値の関係は、ＡＲ＜ＢＲ＜ＣＲ＜Ｖreadである。
【００４０】
［１−１−４］センスアンプモジュール１２の構成
次に、図５を用いてセンスアンプモジュール１２の構成について説明する。図５は、センスアンプモジュール１２の回路図である。図５に示すようにセンスアンプモジュール１２は、ビット線ＢＬ毎に設けられたセンスアンプユニットＳＡＵ（ＳＡＵ０〜ＳＡＵ（Ｌ−１））を含む。
【００４１】
各センスアンプユニットＳＡＵはそれぞれ、カウンタＣＴとデータを送受信可能なように接続されている。また各センスアンプユニットＳＡＵは、センスアンプ部ＳＡ、ラッチ回路ＳＤＬ、ＬＤＬ、ＵＤＬ、及びＸＤＬを備えている。これらセンスアンプ部ＳＡ、ラッチ回路ＳＤＬ、ＬＤＬ、ＵＤＬ、及びＸＤＬは、互いにデータを送受信可能なように接続されている。
【００４２】
センスアンプ部ＳＡは、読み出し動作時には対応するビット線ＢＬに読み出されたデータをセンスし、読み出しデータが“０”であるか“１”であるかを判断する。具体的には、例えばシーケンサ１７が生成する制御信号ＳＴＢがアサートされるタイミングで、センスアンプユニットＳＡＵは読み出しデータを確定する。また書き込み動作時には、書き込みデータに基づいてビット線ＢＬに電圧を印加する。
【００４３】
ラッチ回路ＳＤＬ、ＬＤＬ、及びＵＤＬは、読み出しデータ及び書き込みデータを一時的に保持する。読み出し動作時にセンスアンプ部ＳＡが確定させた読み出しデータ、及び書き込み時にラッチ回路ＸＤＬに転送された書き込みデータは、例えばラッチ回路ＳＤＬ、ＬＤＬ、及びＵＤＬのいずれかに転送される。
【００４４】
ラッチ回路ＸＤＬは、センスアンプユニットＳＡＵとコントローラ２０との間のデータの入出力に用いられる。つまりコントローラ２０から受信したデータは、ラッチ回路ＸＤＬを介してラッチ回路ＳＤＬ、ＬＤＬ、若しくはＵＤＬ、又はセンスアンプ部ＳＡに転送される。また、ラッチ回路ＳＤＬ、ＬＤＬ、若しくはＵＤＬ、又はセンスアンプ部ＳＡのデータは、ラッチ回路ＸＤＬを介してコントローラ２０に転送される。
【００４５】
尚、センスアンプモジュール１２の構成はこれに限定されず、種々変更が可能である。例えば、センスアンプユニットＳＡＵが備えるラッチ回路の個数は、１つのメモリセルトランジスタＭＴが保持するデータのビット数に基づいて設計される。
【００４６】
［１−２］動作
次に、メモリシステム１の動作について説明する。
【００４７】
［１−２−１］半導体記憶装置１０の動作
まず、メモリシステム１全体の動作を説明する前に、半導体記憶装置１０が実行することが可能な複数の動作について以下に説明する。
【００４８】
半導体記憶装置１０は、ノーマルリード、トラッキングリード、及びシフトリードを実行することが出来る。メモリシステム１の読み出し動作では、これらの動作のいずれか又は複数が選択されることによりデータが読み出される。
【００４９】
ノーマルリードは通常の読み出しシーケンスであり、予め設定された読み出し電圧を用いてデータを読み出す。トラッキングリードは、最適な読み出し電圧を求めるための読み出しシーケンスである。シフトリードは、補正した読み出し電圧を用いた読み出しシーケンスである。
【００５０】
以下に、図６及び図７を用いてトラッキングリード及びシフトリードの詳細について説明する。図６及び図７には隣り合う２つのレベルの閾値分布が示され、それぞれトラッキングリード及びシフトリードで使用される読み出し電圧の一例が示されている。
【００５１】
メモリセルトランジスタＭＴは、書き込み動作後のプログラムディスターブ及びデータリテンション、並びに読み出し動作後のリードディスターブ等の影響を受ける。メモリセルの閾値分布は、メモリセルに印加される各種電圧によるプログラムディスターブ及びリードディスターブの影響で高くなり、メモリセルから電荷が抜けるデータリテンションの影響で低くなる。このような影響を受けるとメモリセルトランジスタＭＴの閾値分布は、例えば図６の破線に示すように広がる場合がある。トラッキングリードは、このように閾値分布が広がり、例えばノーマルリードではデータを正確に読み出すことが出来なくなった場合に実行される。
【００５２】
トラッキングリードでは、読み出し電圧の補正値を算出するために、例えば図６に示すような５種類の読み出し電圧（Ｖtr１〜Ｖtr５）を用いた読み出し動作が実行される。電圧Ｖtr１〜Ｖtr５の電圧値はそれぞれ異なり、その電圧値の範囲が隣り合う閾値分布の谷を含むように設定される。そしてシーケンサ１７は、電圧Ｖtr１〜Ｖtr５の読み出し結果に基づいて読み出し電圧の補正値を算出する。
【００５３】
具体的には、トラッキングリードにおける読み出し動作毎に、カウンタＣＴがオンセル数をカウントして、このオンセル数の情報をシーケンサ１７に転送する。そしてシーケンサ１７は、オンセル数の変化量をそれぞれ計算する。例えばシーケンサ１７は、電圧Ｖtr１で読み出した場合のオンセル数と、電圧Ｖtr２で読み出した場合のオンセル数との差分を計算する。同様に、電圧Ｖtr２及びＶtr３で読み出した場合のオンセル数の差分と、電圧Ｖtr３及びＶtr４で読み出した場合のオンセル数の差分と、電圧Ｖtr４及びＶtr５で読み出した場合のオンセル数の差分とが計算される。そしてシーケンサ１７は、これらの計算結果に基づいて読み出し電圧の補正値を算出する。
【００５４】
より具体的には、オンセル数の変化量に対して所定の基準値が設けられ、シーケンサ１７はオンセル数の変化量が基準値を超えた場合をフェイルとし、基準値以下の場合をパスとする。このようにオンセル数の変化量をある閾値を持って確認することにより、メモリセルの閾値分布が大まかにどのような形状になっているのかを知ることが出来る。
【００５５】
例えば、オンセル数の変化量が電圧Ｖtr１及びＶtr２間と電圧Ｖtr２及びＶtr３間とでパスし、電圧Ｖtr３及びＶtr４間と電圧Ｖtr４及びＶtr５間とでフェイルした場合、当該ページの閾値分布の谷はオンセルの変化量が小さい電圧Ｖtr１及びＶtr３間にあることが分かる。この場合の最適な読み出し電圧としては、例えば電圧Ｖtr２が選択される。そして算出された最適な読み出し電圧に対応する補正値は、読み出すレベル毎にレジスタＲＥＧに保持される。
【００５６】
このように算出された読み出し電圧の補正値は、例えば当該ページに対するシフトリードに適用される。具体的には、例えば図７の破線に示すように高い方の閾値分布の下裾が広がった場合、シフトリードにおける読み出し電圧には、初期設定の読み出し電圧Ｖdefから低い方に補正された最適な読み出し電圧Ｖcalが使用される。尚、この電圧Ｖcalは、トラッキングリード時に用いた読み出し電圧に含まれている。つまり本例の場合、電圧Ｖcalは電圧Ｖtr１〜Ｖtr５のいずれかとなる。
【００５７】
以上のように本実施形態に係る半導体記憶装置１０は、トラッキングリードを実行した場合にコントローラ２０を介さずに読み出し電圧の補正値を算出し、この補正値を適用したシフトリードを実行することが出来る。
【００５８】
尚、半導体記憶装置１０のトラッキングリードにおける読み出し回数は、これに限定されない。例えば半導体記憶装置１０は、６種類以上の読み出し電圧を用いてトラッキングリードを実行しても良い。
【００５９】
［１−２−２］メモリシステム１の読み出し動作
それでは、メモリシステム１の読み出し動作について説明する。メモリシステム１の読み出し動作において半導体記憶装置１０は、コントローラ２０が発行する第１〜第３コマンドセットに応答してそれぞれ第１〜第３読み出し動作を実行することが出来る。
【００６０】
第１読み出し動作は、トラッキングリード及びシフトリードの組である。具体的には、半導体記憶装置１０がまずトラッキングリードを実行し、続けてこのトラッキングリードによって得られた読み出し電圧の補正値を用いて同一ページのシフトリードを実行する。第２読み出し動作は、直近のトラッキングリードで得られた読み出し電圧の補正値を適用したシフトリードである。第３読み出し動作は、ノーマルリードである。
【００６１】
以下に、図８及び図９を用いてメモリシステム１の読み出し動作の具体例について説明する。図８及び図９にはそれぞれ、読み出し動作の一例がフローチャート及びタイミングチャートで示されている。尚、図９に示すＷＬselは、データを読み出す対象のページに対応するワード線ＷＬ（以下、選択ワード線と呼ぶ）に対して印加される電圧を示している。つまり図９に示す選択ワード線ＷＬselに対応するワード線は、動作の進行に伴い適宜変化する。
【００６２】
図８に示すように、まずコントローラ２０は第１コマンドセットＣＳ１を発行して（ステップＳ１０）、半導体記憶装置１０に送信する。この第１コマンドセットＣＳ１は、図１０に示すようなコマンドシーケンスである。
【００６３】
具体的には、まずコントローラ２０は特殊コマンド“ｘｘｈ”及びリードコマンド“００ｈ”を続けて発行して、それぞれ半導体記憶装置１０に送信する。コマンド“ｘｘｈ”は、半導体記憶装置１０にトラッキングリード及びシフトリードを命令するコマンドである。コマンド“００ｈ”は、読み出しの為のアドレス入力受付コマンドに相当し、半導体記憶装置１０にデータの読み出し動作を命令するコマンドである。
【００６４】
次にコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行して、半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、読み出す対象のアドレスを指定するものである。続けてコントローラ２０は、コマンド“３０ｈ”を発行して半導体記憶装置１０に送信する。コマンド“３０ｈ”は、直前に送信されたコマンドＣＭＤ及びアドレス情報ＡＤＤに基づいて半導体記憶装置１０にデータの読み出しを実行させるためのコマンドである。
【００６５】
このようなコマンドセットＣＳ１（コマンドＣＭＤ及びアドレス情報ＡＤＤ）を半導体記憶装置１０が受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド及びアドレス情報をそれぞれ、コマンドレジスタ１５Ｃ及びアドレスレジスタ１５Ｂに転送する。コマンドレジスタ１５Ｃにコマンド“３０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は指定されたページに対してまずトラッキングリードを実行する（ステップＳ１１）。
【００６６】
具体的には、例えば図９に示すようにロウデコーダ１３は、選択ワード線ＷＬselに対して読み出し電圧Ｖtr１〜Ｖtr５を順に印加する。そして選択ワード線ＷＬselに各読み出し電圧が印加されている間にシーケンサ１７が信号ＳＴＢをアサートすると、センスアンプモジュール１２によってそれぞれデータが読み出される。ここで、前述したように読み出されたデータのオンセル数がカウンタＣＴによってそれぞれカウントされ、シーケンサ１７はこのオンセル数の情報に基づいて読み出し電圧の補正値を算出する。
【００６７】
次にシーケンサ１７は、トラッキングリードによって算出された読み出し電圧の補正値をシーケンサ１７内のレジスタＲＥＧに保持する（ステップＳ１２）。続けてシーケンサ１７は、レジスタＲＥＧに保持された補正値を用いて、ステップＳ１１でトラッキングリードを実行したページに対してシフトリードを実行する（ステップＳ１３）。
【００６８】
具体的には、例えば図９に示すようにロウデコーダ１３は、選択ワード線ＷＬselに対して読み出し電圧Ｖcal１を印加する。電圧Ｖcal１は、直前に実行されたトラッキングリードで算出された補正値が適用された読み出し電圧である。そして、選択ワード線ＷＬselに電圧Ｖcal１が印加されている間にシーケンサ１７が信号ＳＴＢをアサートすると、センスアンプモジュール１２によってデータが読み出される。
【００６９】
以上で説明したステップＳ１１〜Ｓ１３の動作が、第１読み出し動作に対応している。
ステップＳ１３のシフトリードによって読み出されたデータＤＡＴがコントローラ２０に送信されると、レディ／ビジー信号が“Ｌ”レベルから“Ｈ”レベルになる。
【００７０】
次にコントローラ２０は、第２コマンドセットＣＳ２を発行して（ステップＳ１４）、半導体記憶装置１０に送信する。この第２コマンドセットＣＳ２は、図１１に示すようなコマンドシーケンスである。
【００７１】
具体的には、コマンドセットＣＳ２は、図１０で説明したコマンドセットＣＳ１に対して、特殊コマンド“ｘｘｈ”を特殊コマンド“ｙｙｈ”に置き換えたものと同様である。コマンド“ｙｙｈ”は、半導体記憶装置１０に直近のトラッキングリードで得られた読み出し電圧の補正値を適用したシフトリードを命令するコマンドである。
【００７２】
このようなコマンドセットＣＳ２（コマンドＣＭＤ及びアドレス情報ＡＤＤ）を半導体記憶装置１０が受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド及びアドレス情報をそれぞれ、コマンドレジスタ１５Ｃ及びアドレスレジスタ１５Ｂに転送する。コマンドレジスタ１５Ｃにコマンド“３０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は次に読み出すページに対して直近のトラッキングリードで算出された補正値をフィードバックしたシフトリードを実行する（ステップＳ１５）。
【００７３】
具体的には、例えば図９に示すようにロウデコーダ１３は、ステップＳ１１においてトラッキングリードが実行されたワード線と異なる選択ワード線ＷＬselに対して、ステップＳ１１で得られた補正値を適用した読み出し電圧Ｖcal１を印加する。そして、選択ワード線ＷＬselに電圧Ｖcal１が印加されている間にシーケンサ１７が信号ＳＴＢをアサートすると、センスアンプモジュール１２によってデータが読み出される。
【００７４】
以上で説明したステップＳ１５の動作が、第２読み出し動作に対応している。このように第２読み出し動作では、トラッキングリードを実行すること無く、直近のトラッキングリードにより算出された読み出し電圧の補正値を適用したシフトリードが実行される。ステップＳ１５のシフトリードによって読み出されたデータＤＡＴがコントローラ２０に送信されると、レディ／ビジー信号が“Ｌ”レベルから“Ｈ”レベルになる。尚、図９に示す例では、コマンドセットＣＳ２による第２読み出し動作が２回続けて実行されている。
【００７５】
次にコントローラ２０は、第３コマンドセットＣＳ３を発行して（ステップＳ１６）、半導体記憶装置１０に送信する。この第３コマンドセットＣＳ３は、図１２に示すようなコマンドシーケンスである。
【００７６】
具体的には、コマンドセットＣＳ３は、図１０で説明したコマンドセットＣＳ１において、特殊コマンド“ｘｘｈ”を発行しないものと同様である。
【００７７】
このようなコマンドセットＣＳ３（コマンドＣＭＤ及びアドレス情報ＡＤＤ）を半導体記憶装置１０が受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド及びアドレス情報をそれぞれ、コマンドレジスタ１５Ｃ及びアドレスレジスタ１５Ｂに転送する。コマンドレジスタ１５Ｃにコマンド“３０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は次に読み出すページに対してノーマルリードを実行する（ステップＳ１７）。
【００７８】
具体的には、例えば図９に示すようにロウデコーダ１３は、選択ワード線ＷＬselに対して読み出し電圧Ｖdefを印加する。そして、選択ワード線ＷＬselに電圧Ｖdefが印加されている間にシーケンサ１７が信号ＳＴＢをアサートすると、センスアンプモジュール１２によってデータが読み出される。
【００７９】
以上で説明したステップＳ１７の動作が、第３読み出し動作に対応している。ステップＳ１７のノーマルリードによって読み出されたデータＤＡＴがコントローラ２０に送信されると、レディ／ビジー信号が“Ｌ”レベルから“Ｈ”レベルになる。
【００８０】
次にコントローラ２０は、コマンドセットＣＳ１を発行し（ステップＳ１９）、半導体記憶装置１０に送信する。するとコマンドセットＣＳ１を受けた半導体記憶装置１０は、ステップＳ１１〜Ｓ１３と同様の第１読み出し動作を実行する。
【００８１】
具体的には、シーケンサ１７が指定されたページに対して、まずトラッキングリードを実行する（ステップＳ１９）。そしてシーケンサ１７は、ステップＳ１９におけるトラッキングリードによって算出された読み出し電圧の補正値をレジスタＲＥＧに上書きする（ステップＳ２０）。続けてシーケンサ１７は、レジスタＲＥＧに上書きされた補正値を適用して、ステップＳ１９でトラッキングリードを実行したページに対してシフトリードを実行する（ステップＳ２１）。
【００８２】
図９に示す例では、２回目の第１読み出し動作におけるシフトリードで、選択ワード線ＷＬselに対して読み出し電圧Ｖcal２が印加されている。電圧Ｖcal２は、ステップＳ１９で得られた補正値を適用した読み出し電圧である。そして、続くコマンドセットＣＳ２による第２読み出し動作では、電圧Ｖcal２を用いたシフトリードが実行される。
【００８３】
以上のように本実施形態に係る半導体記憶装置１０は、トラッキングリードによって得られた読み出し電圧の補正値を、トラッキングリードを実行していない他のページに対するシフトリードにフィードバックする。そしてこの補正値は、トラッキングリードが実行される度に更新される。
【００８４】
尚、上記説明において、トラッキングリードにより得られた補正値を適用した読み出し電圧Ｖcal１及びＶcal２は、電圧Ｖtr１〜Ｖtr５のいずれかとなる。また、電圧Ｖcal１と電圧Ｖcal２とは、異なっている場合、同じである場合のいずれの場合も考えられる。
【００８５】
また、上記説明において、メモリシステム１の読み出し動作に第３読み出し動作が含まれているが、これに限定されない。例えば、読み出し動作において第３読み出し動作が実行されない場合もある。この場合は、２種類のコマンドセット（ＣＳ１及びＣＳ２）を用いて読み出し動作が実行される。
【００８６】
［１−３］第１実施形態の効果
次に、第１実施形態の効果について説明する。本実施形態に係るメモリシステム１によれば、動作を高速化することが出来る。以下に、本効果について詳述する。
【００８７】
半導体記憶装置では、データを書き込んだ後の読み出し動作によるリードディスターブや、時間経過によるデータリテンション等の影響により、メモリセルの閾値分布が本来あるべき位置からシフトしたり、広がったりする。するとメモリセルから読み出したデータのエラービット数が多くなり、正しくデータを読み出せなくなってしまうことがある。
【００８８】
このようなメモリセルに対しては、補正した読み出し電圧を用いたシフトリードが実行される。これにより半導体記憶装置は、メモリセルから読み出したデータのエラービット数を低減することが出来、正しくデータを読み出すことが出来るようになる。このシフトリードに適用する読み出し電圧の補正値は、例えばデータを読み出す対象のページに対するトラッキングリードにより算出される。
【００８９】
しかし、トラッキングリードは複数の読み出し動作を含み、処理時間が長い。またトラッキングリードは、例えばエラービット数が増加してＥＣＣによるエラー訂正が出来なくなったページに対する再読み出し動作として実行される。このため半導体記憶装置は、劣化したメモリセルが増加するとトラッキングリードの発生回数が多くなり、動作が遅くなる可能性がある。
【００９０】
トラッキングリードの回数を減らすためには、予め適切な読み出し電圧を予測してシフトリードを実行することが有効であると考えられる。また、メモリセルがリードディスターブやデータリテンション等を受ける条件が同じであれば、トラッキングリードの結果もほぼ同じになると推測することが出来る。
【００９１】
そこで本実施形態に係るメモリシステム１は、トラッキングリードにより算出された読み出し電圧の補正値を、半導体記憶装置１０内部で保持する。そして半導体記憶装置１０は、この補正値をトラッキングリードを実行していないページに対するシフトリードに適用する。
【００９２】
具体的には、メモリシステム１は、トラッキングリードとこのトラッキングリードにより算出された読み出し電圧の補正値を適用したシフトリードとを実行する第１読み出し動作と、直近の第１読み出し動作で得られた読み出し電圧の補正値を適用したシフトリードを実行する第２読み出し動作とを、コントローラ２０が発行するコマンドセットによって使い分ける。
【００９３】
より具体的には、読み出し動作の冒頭でコントローラ２０が第１読み出し動作を命令するコマンドセットＣＳ１を発行し、以降のページデータを読み出す際には第２読み出し動作を命令するコマンドセットＣＳ２を発行する。コマンドセットＣＳ１及びＣＳ２は、図１０及び図１１に示すように特殊コマンドを含んでいる。
【００９４】
このようにトラッキングリードを実行していないページに対して、直近のトラッキングリードによる補正値を適用したシフトリードを実行することにより、予め設定された読み出し電圧を用いてデータを読み出す場合と比べて、エラービット数を低減することが出来る。また、コントローラ２０が任意のタイミングでコマンドセットＣＳ１を発行して、読み出し電圧の補正値を更新することにより、より適切な読み出し電圧の補正値を使用することが出来る。
【００９５】
例えば、同一ブロックＢＬＫに書き込まれたデータが受けるディスターブの影響は、ほぼ同じになると考えられる。この場合コントローラ２０は、各ブロックＢＬＫにおいて最初にデータを読み出すページに対しては第１読み出し動作を指示する。そしてコントローラ２０は、当該ブロックにおける残りのページのデータを読み出す際には第２読み出し動作を指示する。つまり本例では、ブロックＢＬＫ毎に一度算出された読み出し電圧の補正値が、ブロックＢＬＫ内で継続して使用される。
【００９６】
以上のように本実施形態に係るメモリシステム１は、読み出し動作におけるエラービット数を低減することが出来るため、メモリセルが劣化した場合においてトラッキングリードによる再読み出し動作が実行される頻度を減らすことが出来る。これにより本実施形態に係るメモリシステム１は、動作を高速化することが出来る。
【００９７】
また、本実施形態に係るメモリシステム１の読み出し動作では、上述したようにトラッキングリードの回数が抑制されるため、メモリセルに対するリードディスターブの影響が低減される。つまり本実施形態に係るメモリシステム１は、リードディスターブによるメモリセルの閾値分布の変化を抑制することが出来るため、書き込まれたデータの信頼性を向上することが出来る。
【００９８】
［２］第２実施形態
次に、第２実施形態に係るメモリシステム１について説明する。第２実施形態は、上記第１実施形態で説明した読み出し動作において、コントローラ２０が特殊コマンドを発行すること無く、直近のトラッキングリードにより得られた補正値を適用したシフトリードを実行するものである。以下に、第１実施形態と異なる点を説明する。
【００９９】
［２−１］メモリシステム１の読み出し動作
まず、メモリシステム１の読み出し動作について説明する。本実施形態に係る半導体記憶装置１０は、第１実施形態係る半導体記憶装置１０では第２コマンドセットＣＳ２に応答して第２読み出し動作を実行していたのに対して、第３コマンドセットＣＳ３に応答して第２読み出し動作を実行する。
【０１００】
以下に、図１３及び図１４を用いてメモリシステム１の読み出し動作の具体例について説明する。図１３及び図１４にはそれぞれ、読み出し動作の一例がフローチャート及びタイミングチャートで示されている。尚、図１４に示すＷＬselは選択ワード線に対して印加される電圧を示し、ＷＬselに対応するワード線は動作の進行に伴い適宜変化する。
【０１０１】
図１３に示すように、まずコントローラ２０は第１コマンドセットＣＳ１を発行して（ステップＳ１０）、半導体記憶装置１０に送信する。図１３及び図１４に示すコマンドセットＣＳ１に基づく半導体記憶装置１０の動作は、第１実施形態で説明したステップＳ１１〜Ｓ１３と同様のため説明を省略する。
【０１０２】
次にコントローラ２０は、第３コマンドセットＣＳ３を発行して（ステップＳ３０）、半導体記憶装置１０に送信する。半導体記憶装置１０がコマンドセットＣＳ３を受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド及びアドレス情報をそれぞれ、コマンドレジスタ１５Ｃ及びアドレスレジスタ１５Ｂに転送する。コマンドレジスタ１５Ｃにコマンド“３０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は次に読み出すページに対して直近のトラッキングリードで算出された補正値をフィードバックしたシフトリードを実行する（ステップＳ３１）。
【０１０３】
つまり半導体記憶装置１０は、第１実施形態で説明した第２コマンドセットＣＳ２に含まれるコマンド“ｙｙｈ”のような特殊コマンドを受信すること無く第２読み出し動作を実行する。ステップＳ３１における具体的な動作は、第１実施形態で説明したステップＳ１５と同様のため説明を省略する。尚、図１４に示す例では、コマンドセットＣＳ３による第２読み出し動作が２回続けて実行されている。
【０１０４】
次にコントローラ２０は、第１コマンドセットＣＳ１を発行して（ステップＳ１８）、半導体記憶装置１０に送信する。図１３及び図１４に示すコマンドセットＣＳ１に基づく半導体記憶装置１０の動作は、第１実施形態で説明したステップＳ１９〜Ｓ２１と同様のため説明を省略する。そして図１４に示すように、続くコマンドセットＣＳ３による第２読み出し動作では、ステップＳ１９のトラッキングリードにより算出された読み出し電圧の補正値を適用したシフトリードが実行される。
【０１０５】
以上のように本実施形態に係る半導体記憶装置１０は、特殊コマンドを使用しないコマンドセットＣＳ３に応答して、直近で実行されたトラッキングリードによって得られた読み出し電圧の補正値をフィードバックしたシフトリードを実行することが出来る。
【０１０６】
［２−２］第２実施形態の効果
次に、第２実施形態の効果について説明する。本実施形態に係るメモリシステム１によれば、第１実施形態と同様の効果を得ることが出来、さらに第１実施形態よりも動作を高速化することが出来る。以下に、本効果について詳述する。
【０１０７】
第１実施形態に係るメモリシステム１では、トラッキングリードを含む第１読み出し動作と、補正値を流用したシフトリードである第２読み出し動作とをそれぞれ、特殊コマンドを含むコマンドセットＣＳ１及びＣＳ２を用いて実行する。一方で、本実施形態に係るメモリシステム１では、第２読み出し動作を命令するコマンドセットに、特殊コマンドを含まないコマンドセットＣＳ３を使用する。
【０１０８】
これにより本実施形態に係るメモリシステム１では、第２読み出し動作を実行するのに特殊コマンドを含まないコマンドセットＣＳ３を使用するため、特殊コマンドを発行しない分だけコマンドシーケンスを短くすることが出来る。つまり本実施形態に係るメモリシステム１は、第１実施形態と同様の効果を得ることが出来、さらに第１実施形態よりも動作を高速化することが出来る。
【０１０９】
［３］第３実施形態
次に、第３実施形態に係るメモリシステム１について説明する。第３実施形態は、上記第２実施形態で説明した読み出し動作において、データを読み出すブロックアドレスが変わった際に、半導体記憶装置１０がトラッキングリードを実行するものである。以下に、第１及び第２実施形態と異なる点を説明する。
【０１１０】
［３−１］メモリシステム１の読み出し動作
まず、メモリシステム１の読み出し動作について説明する。本実施形態に係るメモリシステム１の読み出し動作においてコントローラ２０は、最初のページを読み出す際には第１コマンドセットＣＳ１を発行し、それ以降のページの読み出す際には第３コマンドセットＣＳ３を発行する。また半導体記憶装置１０は、通常は第３コマンドセットＣＳ３に応答して第２読み出し動作を実行し、受信した第３コマンドセットＣＳ３に含まれたブロックアドレスが変化した場合には第１読み出し動作を実行する。
【０１１１】
以下に、図１５及び図１６を用いてメモリシステム１の読み出し動作の具体例について説明する。図１５及び図１６にはそれぞれ、読み出し動作の一例がフローチャート及びタイミングチャートで示されている。尚、図１６に示すＷＬselは選択ワード線に対して印加される電圧を示し、ＷＬselに対応するワード線は動作の進行に伴い適宜変化する。
【０１１２】
図１５に示すように、まずコントローラ２０は第１コマンドセットＣＳ１を発行して（ステップＳ１０）、半導体記憶装置１０に送信する。図１５及び図１６に示すコマンドセットＣＳ１に基づく半導体記憶装置１０の動作は、第１実施形態で説明したステップＳ１１〜Ｓ１３と同様のため説明を省略する。
【０１１３】
次にコントローラ２０は、第３コマンドセットＣＳ３を発行して（ステップＳ４０）、半導体記憶装置１０に送信する。半導体記憶装置１０がコマンドセットＣＳ３を受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド及びアドレス情報をそれぞれ、コマンドレジスタ１５Ｃ及びアドレスレジスタ１５Ｂに転送する。コマンドレジスタ１５Ｃにコマンド“３０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は指定されたブロックアドレスが１つ前にデータを読み出したページのブロックアドレスから変わったかどうか確認する（ステップＳ４１）。
【０１１４】
ブロックアドレスが変わっていない場合（ステップＳ４１、Ｎｏ）、シーケンサ１７は第２読み出し動作を実行する。つまりシーケンサ１７は、直近のトラッキングリードで算出された補正値をフィードバックしたシフトリードを実行する（ステップＳ４２）。
【０１１５】
一方で、ブロックアドレスが変わっていた場合（ステップＳ４１、Ｙｅｓ）、半導体記憶装置１０は第１読み出し動作を実行する。具体的には、シーケンサ１７がまずトラッキングリードを実行する（ステップＳ４３）。そしてシーケンサ１７は、ステップＳ４３におけるトラッキングリードによって算出された読み出し電圧の補正値をレジスタＲＥＧに上書きして（ステップＳ４４）、この補正値を適用した同一ページのシフトリードを実行する（ステップＳ４５）。これらステップＳ４３〜Ｓ４５の動作は、第１実施形態で説明したステップＳ１９〜Ｓ２１の動作と同様である。
【０１１６】
つまり半導体記憶装置１０は、ブロックアドレスが変わっていない場合にはそのままの補正値でシフトリードを実行し、ブロックアドレスが変わった場合にはトラッキングリードにより補正値を更新したシフトリードを実行する。続くページの読み出し動作では、上述したステップＳ４０以降の動作が繰り返される。
【０１１７】
尚、図１６に示す例は、読み出し動作の冒頭でコマンドセットＣＳ１による第１読み出し動作が実行され、以降の読み出し動作において３回目に発行されたコマンドセットＣＳ３でブロックアドレスが変わった場合の動作を示している。
【０１１８】
以上のように、本実施形態に係るメモリシステム１における半導体記憶装置１０は、コントローラ２０が発行するコマンドセットＣＳ３に応答し、且つデータを書き込む先のブロックアドレスを確認することにより、第１読み出し動作及び第２読み出し動作を使い分けることが出来る。
【０１１９】
［３−２］第３実施形態の効果
次に、第３実施形態の効果について説明する。本実施形態に係るメモリシステム１によれば、第１実施形態と同様の効果を得ることが出来、さらに第１実施形態よりも動作を高速化することが出来る。以下に、本効果について詳述する。
【０１２０】
第１実施形態の効果の項目で述べたように、同一ブロックＢＬＫに書き込まれたデータが受けるディスターブの影響はほぼ同じであると考えられ、同一ブロックＢＬＫにおけるトラッキングリードの結果もほぼ同じになると推測することが出来る。
【０１２１】
そこで、本実施形態に係るメモリシステム１における半導体記憶装置１０は、読み出し動作の冒頭で特殊コマンドを含むコマンドセットＣＳ１に応答してトラッキングリードを実行した後、続くページに対しては特殊コマンドを含まないコマンドセットＣＳ３に応答してシフトリードを実行する。そして半導体記憶装置１０は、受信したコマンドセットＣＳ３が指定するブロックアドレスが変わったことを検知するとトラッキングリードを実行し、以降のシフトリードに適用する読み出し電圧の補正値を更新する。
【０１２２】
このように本実施形態に係るメモリシステム１は、コントローラ２０の指示によらずに、半導体記憶装置１０がトラッキングリードを実行するかどうかを判断する。つまりコントローラ２０は、読み出し動作の冒頭にのみ特殊コマンドを含むコマンドセットＣＳ１を発行し、以降の読み出し動作では特殊コマンドを含まないコマンドセットＣＳ３を発行すれば良くなる。
【０１２３】
これにより本実施形態に係るメモリシステム１においてコントローラ２０は、特殊コマンドを発行しない分だけ読み出し動作におけるコマンドシーケンスを短くすることが出来る。つまり本実施形態に係るメモリシステム１は、第１実施形態と同様の効果を得ることが出来、さらに第１実施形態よりも動作を高速化することが出来る。
【０１２４】
［４］第４実施形態
次に、第４実施形態に係るメモリシステム１について説明する。第４実施形態は、上記第２実施形態で説明した読み出し動作において、半導体記憶装置１０内部で特定のワード線ＷＬが選択されたことを検知した場合にトラッキングリードを実行するものである。以下に、第１〜第３実施形態と異なる点を説明する。
【０１２５】
［４−１］メモリシステム１の読み出し動作
まず、メモリシステム１の読み出し動作について説明する。本実施形態に係るメモリシステム１の読み出し動作においてコントローラ２０は、第３実施形態と同様に、最初のページを読み出す際には第１コマンドセットＣＳ１を発行し、それ以降のページの読み出す際には第３コマンドセットＣＳ３を発行する。また半導体記憶装置１０は、通常は第３コマンドセットＣＳ３に応答して第２読み出し動作を実行し、受信した第３コマンドセットＣＳ３に含まれたアドレスが特定のワード線に対応する場合には第１読み出し動作を実行する。この特定のワード線としては、例えば各ブロックＢＬＫの端部に位置するワード線が指定され、任意に設定することが可能である。
【０１２６】
以下に、図１７及び図１８を用いてメモリシステム１の読み出し動作の具体例について説明する。図１７及び図１８にはそれぞれ、読み出し動作の一例がフローチャート及びタイミングチャートで示されている。尚、図１８に示すＷＬselは選択ワード線に対して印加される電圧を示し、ＷＬselに対応するワード線は動作の進行に伴い適宜変化する。
【０１２７】
図１７に示すように、まずコントローラ２０は第１コマンドセットＣＳ１を発行して（ステップＳ１０）、半導体記憶装置１０に送信する。図１７及び図１８に示すコマンドセットＣＳ１に基づく半導体記憶装置１０の動作は、第１実施形態で説明したステップＳ１１〜Ｓ１３と同様のため説明を省略する。
【０１２８】
次にコントローラ２０は、第３コマンドセットＣＳ３を発行して（ステップＳ５０）、半導体記憶装置１０に送信する。半導体記憶装置１０がコマンドセットＣＳ３を受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド及びアドレス情報をそれぞれ、コマンドレジスタ１５Ｃ及びアドレスレジスタ１５Ｂに転送する。コマンドレジスタ１５Ｃにコマンド“３０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は受信したアドレス情報から特定のワード線が選択されたかどうかを確認する（ステップＳ５１）。つまりステップＳ５１においてシーケンサ１７は、次に読み出すページに対応するワード線が、特定のワード線であるかどうかを確認している。
【０１２９】
特定のワード線ＷＬが選択されていなかった場合（ステップＳ５１、Ｎｏ）、シーケンサ１７は第２読み出し動作を実行する。つまりシーケンサ１７は、直近のトラッキングリードで算出された補正値をフィードバックしたシフトリードを実行する（ステップＳ５５）。
【０１３０】
特定のワード線ＷＬが選択された場合（ステップＳ５１、Ｙｅｓ）、シーケンサ１７は第１読み出し動作を実行する。具体的には、シーケンサ１７がまずトラッキングリードを実行する（ステップＳ５３）。そしてシーケンサ１７は、ステップＳ５３におけるトラッキングリードによって算出された読み出し電圧の補正値をレジスタＲＥＧに上書きして（ステップＳ５４）、この補正値を適用した同一ページのシフトリードを実行する（ステップＳ５５）。これらステップＳ５２〜Ｓ５４の動作は、第１実施形態で説明したステップＳ１９〜Ｓ２１の動作と同様である。
【０１３１】
つまり半導体記憶装置１０は、特定のワード線ＷＬに対応するアドレスが選択されていない場合にはそのままの補正値でシフトリードを実行し、特定のワード線ＷＬに対応するアドレスが選択された場合にはトラッキングリードにより補正値を更新したシフトリードを実行する。続くページの読み出し動作では、上述したステップＳ５０以降の動作が繰り返される。
【０１３２】
尚、図１８に示す例は、読み出し動作の冒頭でコマンドセットＣＳ１による第１読み出し動作が実行され、以降の読み出し動作において３回目に発行されたコマンドセットＣＳ３で特定のワード線ＷＬが選択された場合の動作を示している。
【０１３３】
以上のように、本実施形態に係るメモリシステム１における半導体記憶装置１０は、コントローラ２０が発行するコマンドセットＣＳ３に応答し、且つ特定のワード線ＷＬが選択されたかどうかを確認することにより、第１読み出し動作及び第２読み出し動作を使い分けることが出来る。
【０１３４】
［４−２］第４実施形態の効果
次に、第４実施形態の効果について説明する。本実施形態に係るメモリシステム１によれば、第３実施形態と同様の効果を得ることが出来、さらに第３実施形態よりも動作を高速化することが出来る。以下に、本効果について詳述する。
【０１３５】
半導体記憶装置においてメモリセルの特性は、メモリセルが形成されている位置によって異なることがある。例えば各ＮＡＮＤストリングにおいて、中央部に位置するメモリセルは特性ばらつきが小さく、端部に位置するメモリセルは特性ばらつきが大きくなる。また、メモリセルの位置に基づいてメモリセルの特性に傾向が生じる場合がある。
【０１３６】
このような特性ばらつきや位置による特性差が生じると、他のページに対するトラッキングリードにより得た補正値を適用してシフトリードを実行した場合でも再読み出しが実行される頻度が高くなることが考えられる。
【０１３７】
そこで本実施形態に係るメモリシステム１における半導体記憶装置１０は、第３実施形態と同様に、読み出し動作の冒頭で特殊コマンドを含むコマンドセットＣＳ１に応答してトラッキングリードを実行した後、続くページに対しては特殊コマンドを含まないコマンドセットＣＳ３に応答してシフトリードを実行する。そして半導体記憶装置１０は、受信したコマンドセットＣＳ３によって特定のワード線ＷＬが選択されたことを検知するとトラッキングリードを実行し、以降のシフトリードに適用する読み出し電圧の補正値を更新する。
【０１３８】
このように本実施形態に係るメモリシステム１は、第３実施形態と同様に、コントローラ２０の指示によらずに、半導体記憶装置１０がトラッキングリードを実行するかどうかを判断する。これによりコントローラ２０は、読み出し動作の冒頭にのみ特殊コマンドを含むコマンドセットＣＳ１を発行し、以降の読み出し動作では特殊コマンドを含まないコマンドセットＣＳ３を発行すれば良くなる。
【０１３９】
これにより本実施形態に係るメモリシステム１においてコントローラ２０は、第３実施形態と同様に、特殊コマンドを発行しない分だけ読み出し動作におけるコマンドシーケンスを短くすることが出来る。また本実施形態に係るメモリシステム１は、再読み出しが実行される可能性が高い箇所に対して、半導体記憶装置１０が常にトラッキングリードを実行するため、再読み出しの頻度を減らすことが出来る。つまり本実施形態に係るメモリシステム１は、第３実施形態と同様の効果を得ることが出来、さらに第３実施形態よりも動作を高速化することが出来る。
【０１４０】
［５］第５実施形態
次に、第５実施形態に係るメモリシステム１について説明する。第５実施形態は、各ページの冗長領域にフラグ情報を書き込み、このフラグ情報に基づいてトラッキングリードを実行するものである。以下に、第１〜第４実施形態と異なる点を説明する。
【０１４１】
［５−１］動作
［５−１−１］メモリシステム１の動作の概要
まず、メモリシステム１の動作の概要について説明する。本実施形態に係るメモリシステム１では、書き込み動作及び読み出し動作においてフラグ情報が使用される。
【０１４２】
フラグ情報は、対応するページのデータが書き込まれた時期を識別することが可能な情報である。このフラグ情報としては、例えば外部のホストから書き込みデータを受信した時刻の情報や、アドレス情報の一部を引用した情報等が使用される。
【０１４３】
書き込み動作においてフラグ情報は、コントローラ２０によって生成され、コントローラ２０が半導体記憶装置１０に送信する入出力信号Ｉ／Ｏに追加される。そしてフラグ情報は、半導体記憶装置１０における各ページの冗長領域に書き込まれる。
【０１４４】
読み出し動作においてフラグ情報は、半導体記憶装置１０によってデータを読み出す前に参照される。そして半導体記憶装置１０は、参照したフラグ情報に基づいて、トラッキングリードを含む第１読み出し動作、又は直近のトラッキングリードで得られた補正値を適用したシフトリードである第２読み出し動作を実行する。
【０１４５】
［５−１−２］メモリシステム１の書き込み動作
次に、図１９を用いてメモリシステム１の書き込み動作の具体例について説明する。図１９には、書き込み動作の一例がフローチャートで示されている。
【０１４６】
図１９に示すように、まずコントローラ２０が、外部のホスト（図示せず）から書き込みデータ及びアドレス情報を受信する（ステップＳ６０）。この書き込みデータ及びアドレス情報は、ホストＩ／Ｆ２６を介してバッファメモリ２５に一時的に保持される。
【０１４７】
次にコントローラ２０のＮＡＮＤＩ／Ｆ２４は、書き込みコマンドを発行し、書き込みデータにフラグ情報ＦＬＧを追加する（ステップＳ６１）。このフラグ情報ＦＬＧは、書き込み対象のページの冗長領域に書き込まれるように、例えば書き込みデータの末尾に追加される。そしてＮＡＮＤＩ／Ｆ２４は、発行した書き込みコマンド、フラグ情報ＦＬＧを含む書き込みデータ、及びアドレス情報を、入出力信号Ｉ／Ｏとして半導体記憶装置１０に送信する。
【０１４８】
次に半導体記憶装置１０は、コントローラ２０から受信した書き込みデータＤＡＴ、コマンドＣＭＤ、及びアドレス情報ＡＤＤに基づいて、書き込み動作を実行する（ステップＳ６２）。これにより、対応するページのデータ領域にはデータが格納され、冗長領域にはフラグ情報ＦＬＧが格納される。
【０１４９】
尚、ステップＳ６１において、書き込みコマンドを発行するのはＮＡＮＤＩ／Ｆ２４に限定されない。例えば、ＣＰＵ２１が書き込みコマンドを発行するようにしても良い。同様にステップＳ６１において、フラグ情報ＦＬＧを生成するのはＮＡＮＤＩ／Ｆ２４に限定されない。例えばＣＰＵ２１がフラグ情報ＦＬＧを生成し、生成したフラグ情報ＦＬＧをＮＡＮＤＩ／Ｆ２４又はバッファメモリ２５に転送して書き込みデータに追加するようにしても良い。
【０１５０】
またフラグ情報は、１ビットのデータを記憶させるＳＬＣ（Single-Level Cell）方式を適用してメモリセルに記憶させることが望ましいが、これに限定されず、ＭＬＣ方式を適用してメモリセルに記憶させるようにしても良い。
【０１５１】
［５−１−３］メモリシステム１の読み出し動作
次に、メモリシステム１の読み出し動作の詳細について説明する。本実施形態に係るメモリシステム１は、１種類のコマンドセット（例えばコマンドセットＣＳ３）で、以下で説明する読み出し動作を実行することが出来る。読み出し動作において半導体記憶装置１０は、コントローラ２０から受信したコマンドセットに応答してまずフラグリードを実行し、続けて第１読み出し動作又は第２読み出し動作を実行する。
【０１５２】
フラグリードは、各ページの冗長領域に記憶されたフラグ情報を読み出す読み出し動作である。このフラグリードにより読み出されたフラグ情報はシーケンサ１７に転送され、シーケンサ１７はこのフラグ情報に基づいて当該ページに対する第１読み出し動作又は第２読み出し動作を実行する。
【０１５３】
以下に、図２０及び図２１を用いてメモリシステム１の読み出し動作の具体例について説明する。図２０及び図２１にはそれぞれ、読み出し動作の一例がフローチャート及びタイミングチャートで示されている。尚、図２１に示すＷＬselは選択ワード線に対して印加される電圧を示し、ＷＬselに対応するワード線は動作の進行に伴い適宜変化する。
【０１５４】
まずコントローラ２０は、第３コマンドセットＣＳ３を発行して（ステップＳ７０）、半導体記憶装置１０に送信する。半導体記憶装置１０がコマンドセットＣＳ３を受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド及びアドレス情報をそれぞれ、コマンドレジスタ１５Ｃ及びアドレスレジスタ１５Ｂに転送する。コマンドレジスタ１５Ｃにコマンド“３０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は指定されたページに対してまずフラグリードを実行する（ステップＳ７１）。
【０１５５】
具体的には、例えば図２１に示すようにロウデコーダ１３は、選択ワード線ＷＬselに対して読み出し電圧Ｖflgを印加する。電圧Ｖflgは、各ページの冗長領域に格納されたフラグ情報ＦＬＧを読み出すための読み出し電圧であり、フラグ情報ＦＬＧの書き込み方式に基づいて設定される。そして、選択ワード線ＷＬselに電圧Ｖflgが印加されている間にシーケンサ１７が信号ＳＴＢをアサートすると、センスアンプモジュール１２によってデータが読み出される。
【０１５６】
続けてセンスアンプモジュール１２は、読み出した１ページデータの冗長領域に含まれるフラグ情報ＦＬＧをシーケンサ１７に転送し、シーケンサ１７はこのフラグ情報を例えばレジスタＲＥＧに保持する（ステップＳ７２）。
【０１５７】
次に半導体記憶装置１０は、第１読み出し動作を実行する。具体的には、シーケンサ１７がフラグリードを実行したページに対して、まずトラッキングリードを実行する（ステップＳ７３）。そしてシーケンサ１７は、トラッキングリードによって算出された読み出し電圧の補正値をレジスタＲＥＧに保存する（ステップＳ７４）。続けてシーケンサ１７は、レジスタＲＥＧに保持された補正値を適用して、同一ページのシフトリードを実行する（ステップＳ７５）。これらの具体的な動作は、第１実施形態で説明したステップＳ１１〜Ｓ１３と同様のため説明を省略する。
【０１５８】
次にコントローラ２０は、コマンドセットＣＳ３を発行して（ステップＳ７６）、半導体記憶装置１０に送信する。そしてシーケンサ１７は、コマンドセットＣＳ３に基づいて、次に読み出すページに対してフラグリードを実行する（ステップＳ７７）。つまりシーケンサ１７は、ステップＳ７１においてフラグリードが実行されたワード線と異なる選択ワード線ＷＬselに対して、フラグリードを実行する。このステップＳ７６及びＳ７７の動作は、ステップＳ７０及びＳ７１の動作と同様のため説明を省略する。
【０１５９】
次にシーケンサ１７は、読み出されたフラグ情報ＦＬＧとレジスタＲＥＧ内に保持されたフラグ情報ＦＬＧとを比較し、フラグ情報ＦＬＧが前回のフラグリード結果から変わったかどうかを確認する（ステップＳ７８）。
【０１６０】
フラグ情報ＦＬＧが変わっていなかった場合（ステップＳ７８、Ｎｏ）、シーケンサ１７は第２読み出し動作を実行する。つまりシーケンサ１７は、ステップＳ７７においてフラグリードを実行したページに対して、直近のトラッキングリードで算出された補正値をフィードバックしたシフトリードを実行する（ステップＳ７９）。
【０１６１】
一方で、フラグ情報ＦＬＧが変わっていた場合（ステップＳ７８、Ｙｅｓ）、シーケンサ１７は変化したフラグ情報ＦＬＧをレジスタＲＥＧに上書きして（ステップＳ８０）、第１書き込み動作を実行する。具体的には、シーケンサ１７がステップＳ７７においてフラグリードを実行したページに対して、まずトラッキングリードを実行する（ステップＳ８１）。そしてシーケンサ１７は、トラッキングリードによって算出された読み出し電圧の補正値をレジスタＲＥＧに上書きして（ステップＳ８２）、この補正値を適用した同一ページのシフトリードを実行する（ステップＳ８３）。これらステップＳ８０〜Ｓ８２の動作は、第１実施形態で説明したステップＳ１９〜Ｓ２１の動作と同様である。
【０１６２】
つまり半導体記憶装置１０は、同じフラグ情報を保持するページに対してはそのままの補正値でシフトリードを実行し、フラグ情報が変わった場合にはトラッキングリードにより補正値を更新したシフトリードを実行する。続くページの読み出し動作では、上述したステップＳ７６以降の動作が繰り返される。
【０１６３】
尚、図２１に示す例では、コントローラ２０が４回目に発行したコマンドセットＣＳ３による半導体記憶装置１０のフラグリードで、読み出されたフラグ情報がＦＬＧ１からＦＬＧ２に変わった場合の動作を示している。
【０１６４】
以上のように、本実施形態に係る半導体記憶装置１０は、読み出し動作の冒頭にフラグリード及びトラッキングリードを実行して、フラグ情報ＦＬＧ及び読み出し電圧の補正値をレジスタＲＥＧに保持する。そして以降の読み出し動作で半導体記憶装置１０は、同じフラグ情報を保持するページに対しては同じ補正値を適用したシフトリードを実行し、フラグ情報が変わる度にトラッキングリードを実行する。
【０１６５】
尚、上記説明において、フラグ情報を冗長領域に書き込む際にＳＬＣ方式を適用した場合を例に説明したが、これに限定されない。例えば、フラグ情報をＭＬＣ方式で書き込む場合、読み出し動作におけるフラグリードでは、複数の読み出し電圧を用いた読み出し動作が実行される。
【０１６６】
また、上記説明において、コマンドセットＣＳ３を用いて読み出し動作を実行する場合を例に説明したが、これに限定されない。例えば、コマンドセットＣＳ１のような特殊コマンドを含むコマンドセットを使用して読み出し動作を実行するようにしても良い。
【０１６７】
［５−２］第５実施形態の効果
次に、第５実施形態の効果について説明する。本実施形態に係るメモリシステム１によれば、第１実施形態と同様の効果を得ることが出来、さらに第１実施形態よりも動作を高速化することが出来る。以下に、本効果について詳述する。
【０１６８】
第１実施形態に係るメモリシステム１では、複数のコマンドセットによりトラッキングリードを含む第１読み出し動作と、補正値を流用したシフトリードである第２読み出し動作とを使い分ける。
【０１６９】
一方で、本実施形態に係るメモリシステム１では、各ページデータを書き込んだ時期を示すフラグ情報をコントローラ２０が生成し、半導体記憶装置１０が各ページの冗長領域にこのフラグ情報を書き込む。そして半導体記憶装置１０は、読み出し動作時にこのフラグ情報を参照することによって、第１読み出し動作と第２読み出し動作とを使い分ける。
【０１７０】
具体的には、半導体記憶装置１０は各ページの読み出し動作の際に、まずフラグ情報を読み出すフラグリードを実行する。ここで読み出されたフラグ情報は半導体記憶装置１０内部に保持され、当該ページの前に読み出されたページに対応するフラグ情報と比較される。そして半導体記憶装置１０は、比較したフラグ情報が異なる場合に第１読み出し動作を実行し、比較したフラグ情報が同じであった場合に第２読み出し動作を実行する。
【０１７１】
このように半導体記憶装置１０は、同じフラグ情報を保持するページに対しては第２読み出し動作を実行し、フラグ情報が変わる度に第１読み出し動作を実行して読み出し電圧の補正値を更新する。つまり半導体記憶装置１０は、例えば画像データやドキュメントデータ等のファイル単位で、同じ読み出し電圧の補正値を適用することが出来る。
【０１７２】
これにより本実施形態に係るメモリシステム１は、ブロックよりも大きい単位で読み出し電圧の補正値を流用する範囲を定義することが出来、トラッキングリードを実行する頻度を減らすことが出来る。つまり本実施形態に係るメモリシステム１は、第１実施形態と同様の効果を得ることが出来、さらに第１実施形態よりも動作を高速化することが出来る。
【０１７３】
［６］第６実施形態
次に、第６実施形態に係るメモリシステム１について説明する。第６実施形態は、第５実施形態においてコントローラ２０がフラグ情報を生成していたのに対して、半導体記憶装置１０がフラグ情報を生成するものである。以下に、第１〜第５実施形態と異なる点を説明する。
【０１７４】
［６−１］メモリシステム１の書き込み動作
まず、図２２を用いてメモリシステム１の書き込み動作の具体例について説明する。図２２には、書き込み動作の一例がフローチャートで示されている。
【０１７５】
まずコントローラ２０が、外部のホスト（図示せず）から書き込みデータ及びアドレス情報を受信する（ステップＳ９０）。この書き込みデータ及びアドレス情報は、ホストＩ／Ｆ２６を介してバッファメモリ２５に一時的に保持される。
【０１７６】
次にコントローラ２０のＮＡＮＤＩ／Ｆ２４は、書き込みコマンドを発行する（ステップＳ９１）。そしてＮＡＮＤＩ／Ｆ２４は、発行した書き込みコマンド、書き込みデータ、及びアドレス情報を、入出力信号Ｉ／Ｏとして半導体記憶装置１０に送信する。
【０１７７】
次に半導体記憶装置１０の入出力回路１４は、コントローラ２０から受信したコマンドＣＭＤ、アドレス情報ＡＤＤ、及び書き込みデータＤＡＴをそれぞれ、コマンドレジスタ１５Ｃ、アドレス情報ＡＤＤ、及びセンスアンプモジュール１２のラッチ回路ＸＤＬに転送する。そして、シーケンサ１７はフラグ情報を生成し（ステップＳ９２）、冗長領域のメモリセルに接続されているセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送する。このフラグ情報としては、例えば受信したアドレス情報の一部が使用される。
【０１７８】
次にシーケンサ１７は、コマンドレジスタ１５Ｃに転送されたコマンドＣＭＤに基づいて書き込み動作を実行する（ステップＳ９３）。これにより、対応するページのデータ領域にはデータが書き込まれ、冗長領域にはフラグ情報が書き込まれる。
【０１７９】
この冗長領域に書き込まれるフラグ情報は、例えばキャッシュ書き込み動作を実行している間は同じフラグ情報ＦＬＧとされる。キャッシュ書き込み動作は、コントローラ２０から半導体記憶装置１０への１ページデータの転送と、半導体記憶装置１０の１ページデータの書き込み動作とを平行して実行するものである。
【０１８０】
以下に、図２３を用いてキャッシュ書き込み動作の具体例について説明する。図２３には、キャッシュ書き込み動作の一例がフローチャートで示されている。
【０１８１】
図２３に示すように、まずコントローラ２０は第４コマンドセットＣＳ４を発行し（ステップＳ１００）、半導体記憶装置１０に送信する。この第４コマンドセットＣＳ４に対応するコマンドシーケンスは、図２４に示されている。
【０１８２】
具体的には、まずコントローラ２０は書き込みコマンド“８０ｈ”を発行し、半導体記憶装置１０に送信する。コマンド“８０ｈ”は、書き込み動作を命令するコマンドである。次にコントローラ２０は、例えば５サイクルに渡ってアドレス情報ＡＤＤを発行し、半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、データを書き込むアドレスを指定するものである。次にコントローラ２０は、複数サイクルに渡って書き込みデータＤｉｎを半導体記憶装置１０に出力する。ここで出力されたデータＤｉｎは、合計で１ページ分のデータに相当する。次にコントローラ２０は、コマンド“１５ｈ”を発行し、半導体記憶装置１０に送信する。コマンド“１５ｈ”は、直前に送信されたアドレス情報及びデータＤｉｎに基づいて半導体記憶装置１０にデータのキャッシュ書き込み動作を実行させるためのコマンドである。
【０１８３】
このようなコマンドセットＣＳ４（コマンドＣＭＤ、アドレス情報ＡＤＤ、及び書き込みデータＤＡＴ）を半導体記憶装置１０が受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド、アドレス情報、及び書き込みデータをそれぞれ、コマンドレジスタ１５Ｃ、アドレスレジスタ１５Ｂ、及びセンスアンプモジュール１２のラッチ回路ＸＤＬに転送する。コマンドレジスタ１５Ｃにコマンド“１５ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７はキャッシュ書き込み動作を開始する。
【０１８４】
キャッシュ書き込み動作では、まずセンスアンプモジュール１２がラッチ回路ＸＤＬに転送された書き込みデータをラッチ回路ＳＤＬに転送する（ステップＳ１０１）。そしてシーケンサ１７は、ステップＳ１０１におけるデータ転送が終了したことを検知すると、レディ／ビジー制御回路１８を制御してレディ／ビジー信号を“Ｌ”レベルから“Ｈ”レベルにする。
【０１８５】
続けてシーケンサ１７は、１ページデータの書き込み動作を開始する（ステップＳ１０２）。ここで半導体記憶装置１０が書き込み動作を開始するのと平行して、コントローラ２０は次のページの書き込みデータを含む第４コマンドセットＣＳ４を発行し（ステップＳ１０３）、半導体記憶装置１０に送信する。ここでステップＳ１０３において送信された書き込みデータは、入出力回路１４を介してセンスアンプモジュール１２のラッチ回路ＸＤＬに保持される。
【０１８６】
シーケンサ１７は、書き込み動作が終了するとセンスアンプモジュール１２を制御し、ラッチ回路ＸＤＬに転送された書き込みデータをラッチ回路ＳＤＬに転送させる（ステップＳ１０４）。ここでシーケンサ１７は、ステップＳ１０４におけるデータ転送を行っている間はレディ／ビジー信号を“Ｌ”レベルにして、データ転送が終了するとレディ／ビジー信号を“Ｈ”レベルにする。
【０１８７】
以上のようにキャッシュ書き込み動作では、コントローラ２０から半導体記憶装置１０への書き込みデータの転送と、半導体記憶装置１０の書き込み動作が平行して実行される。そして半導体記憶装置１０に書き込むデータが残り１ページ以下になるまで、ステップＳ１０２〜Ｓ１０４の動作が繰り返される。
【０１８８】
書き込みデータが残り１ページ以下になると、コントローラ２０は通常の書き込み動作を命令する第５コマンドセットＣＳ５を発行し（ステップＳ１０６）、半導体記憶装置１０に送信する。この第５コマンドセットＣＳ５に対応するコマンドシーケンスは、図２４に示されている。
【０１８９】
具体的には、コマンドセットＣＳ５は、コマンドセットＣＳ４におけるコマンド“１５ｈ”を、コマンド“１０ｈ”に置き換えたものと同様である。コマンド“１０ｈ”は、直前に送信されたアドレス情報及びデータＤｉｎに基づいて半導体記憶装置１０に通常の書き込み動作を実行させるためのコマンドである。
【０１９０】
このようなコマンドセットＣＳ５（コマンドＣＭＤ、アドレス情報ＡＤＤ、及び書き込みデータＤＡＴ）を半導体記憶装置１０が受信すると、半導体記憶装置１０の入出力回路１４は、受信したコマンド、アドレス情報、及び書き込みデータをそれぞれ、コマンドレジスタ１５Ｃ、アドレス情報ＡＤＤ、及びセンスアンプモジュール１２のラッチ回路ＸＤＬに転送する。コマンドレジスタ１５Ｃにコマンド“１０ｈ”が格納されると、レディ／ビジー信号が“Ｈ”レベルから“Ｌ”レベルになり、シーケンサ１７は通常の書き込み動作を開始する。
【０１９１】
前のページの書き込み動作が終了するとセンスアンプモジュール１２は、ラッチ回路ＸＤＬに転送された書き込みデータを、ラッチ回路ＳＤＬに転送する（ステップＳ１０７）。続けてシーケンサ１７は、残りの１ページデータの書き込み動作を実行する（ステップＳ１０８）。そしてシーケンサ１７は、この書き込み動作が終了すると、レディ／ビジー制御回路１８を制御してレディ／ビジー信号を“Ｈ”レベルにする。
【０１９２】
尚、図２４に示すコマンドシーケンスは、図２３に示すフローチャートに対応している。具体的には、図２４には、３ページ分のデータを２回のキャッシュ書き込み動作と１回の通常の書き込み動作で書き込む場合のコマンドシーケンスが示されている。
【０１９３】
図２４に示すｔＤＬtrans及びｔＰｒｏｇはそれぞれ、キャッシュ書き込み動作においてラッチ間のデータ転送を行っている期間と、通常の書き込み動作が実行されている期間に対応し、ｔＤＬtrans＜ｔＰｒｏｇである。このようにキャッシュ書き込み動作では、コントローラ２０が入出力信号Ｉ／Ｏを送信している間に半導体記憶装置１０による１ページデータの書き込み動作が終了することがある。
【０１９４】
以上のようにキャッシュ書き込み動作では、コマンドセットＣＳ４に基づいて連続して１ページデータの書き込みが実行される。本実施形態に係る半導体記憶装置１０では、例えばこの連続して実行されるキャッシュ書き込み動作と最後の通常の書き込み動作とを１つのグループとして、同じフラグ情報ＦＬＧを共有させる。
【０１９５】
つまり本実施形態に係る半導体記憶装置１０は、コマンドセットＣＳ４に基づいてキャッシュ書き込み動作を開始してから、コマンドセットＣＳ５で通常の書き込み動作を実行するまで、各ページの冗長領域に同じフラグ情報ＦＬＧを書き込む。本例において、半導体記憶装置１０のシーケンサ１７がフラグ情報ＦＬＧを生成し、対応するセンスアンプユニットＳＡＵにフラグ情報ＦＬＧを転送するタイミングは、各コマンドセットを受信している間、又はコマンド“１５ｈ”やコマンド“１０ｈ”を受けてラッチ間のデータ転送が開始する前であれば良い。
【０１９６】
尚、上記説明において、コマンド“１５ｈ”及び“１０ｈ”に基づいてラッチ回路ＸＬＤからデータが転送される先のラッチ回路は、ラッチ回路ＳＤＬに限定されず、ラッチ回路ＬＤＬ又はＵＤＬであっても良い。
【０１９７】
また、コントローラ２０がステータスリードコマンドによって半導体記憶装置１０の動作状態を知る構成である場合、コントローラ２０が各コマンドセットを発行した後に所定の間隔でステータスリードコマンドを発行する。そしてコントローラ２０は、半導体記憶装置１０から出力されたステータス情報を参照することにより、ステップＳ１０２、Ｓ１０４、又はＳ１０７におけるデータ転送が終了したことを検知する。
【０１９８】
尚、上述したキャッシュ読み出し動作については、例えば“SEMICONDUCTOR INTEGRATED CIRCUIT ADAPTED TO OUTPUT PASS/FAIL RESULTS OF INTERNAL OPERATIONS”という２００２年１２月１３日に出願された米国特許出願１０／３１８,１６７号に記載されている。この特許出願は、その全体が本願明細書において参照により援用されている。
【０１９９】
［６−２］第６実施形態の効果
次に、第６実施形態の効果について説明する。本実施形態に係るメモリシステム１によれば、第５実施形態と同様の効果を得ることが出来る。以下に、本効果について詳述する。
【０２００】
第５実施形態に係るメモリシステム１ではコントローラ２０がフラグ情報ＦＬＧを生成していたのに対して、本実施形態に係るメモリシステム１では半導体記憶装置１０がフラグ情報ＦＬＧを生成する。このように、フラグ情報ＦＬＧは半導体記憶装置１０内部で生成されても良く、半導体記憶装置１０はコントローラ２０から受信したデータと共にフラグ情報ＦＬＧの書き込みを実行する。
【０２０１】
これにより本実施形態に係るメモリシステム１は、第５実施形態と同様の読み出し動作を実行することが可能となる。つまり本実施形態に係るメモリシステム１は、トラッキングリードを実行する頻度を減らすことが出来、第５実施形態と同様の効果を得ることが出来る。
【０２０２】
また、本実施形態に係る半導体記憶装置１０は、コントローラ２０が発行するコマンドによらずにフラグ情報を生成する。つまり本実施形態に係る半導体記憶装置１０は、コントローラ２０に特別なコマンドシーケンスを使用させること無く、書き込み動作及び読み出し動作を実行することが出来る。
【０２０３】
［７］変形例等
上記実施形態に係る半導体記憶装置＜１０、図１＞は、複数の第１及び第２メモリセルと、複数の第１及び第２メモリセルにそれぞれ接続された第１及び第２ワード線と、外部から受信した第１及び第２コマンドセット＜CS1,CS2、図９＞にそれぞれ応答して読み出し動作を実行する制御回路＜２０、図１＞とを含む。制御回路は、読み出し動作時において第１及び第２読み出しシーケンスを実行することが可能である。第１読み出しシーケンス＜Tracking read、図９＞では、互いに異なる第１乃至第３電圧を用いてそれぞれデータが読み出される。第２読み出しシーケンス＜Shift read、図９＞では、第１読み出しシーケンスの結果に基づいた電圧を用いてデータが読み出される。第１コマンドセットに基づく複数の第１メモリセルの読み出し動作では、第１及び第２読み出しシーケンスが連続で実行される。複数の第１メモリセルの読み出し動作に続く、第２コマンドセットに基づく複数の第２メモリセルの読み出し動作では、複数の第１メモリセルの読み出し動作における第１読み出しシーケンスの結果に基づいた電圧を用いた第２読み出しシーケンスが実行される。
【０２０４】
また、上記実施形態に係るメモリシステム＜１、図１＞は、上記実施形態に係る半導体記憶装置＜１０、図１＞と、第１及び第２コマンドセットを発行可能なコントローラ＜２０、図１＞と、を備える。
【０２０５】
これにより、動作を高速化することが可能な半導体記憶装置及びメモリシステムを提供することが出来る。
【０２０６】
尚、実施形態は上記第１〜第６実施形態に限定されず、種々の変形が可能である。例えば上記実施形態について、同一のワード線ＷＬに接続されたメモリセルから１ページのデータを読み出す場合を例に説明したが、これに限定されない。例えば、同一のワード線ＷＬに接続されたメモリセルから２ページ以上のデータを読み出す場合や、同一のワード線ＷＬに接続されたメモリセルから複数ページのうちの１ページのデータを読み出す場合にも、上記実施形態を適用することが出来る。
【０２０７】
例えば、同一のワード線ＷＬに接続されたメモリセルから２ページ以上のデータを読み出す場合、又は同一のワード線ＷＬに接続されたメモリセルから複数ページのうちの１ページのデータを読み出す場合、読み出したいページのデータを確定させるためには複数レベルの読み出し動作が必要になることがある。この場合、各レベルに対応するトラッキングリードが連続して実行された後に、これらのトラッキングリードにより得られた補正値を適用した各レベルに対応するシフトリードが連続して実行される。
【０２０８】
このようにメモリセルが複数ビットの情報を記憶し、複数レベルの閾値分布に対応する読み出し電圧が使用される場合、読み出し電圧の補正値は各レベルに対応する読み出し電圧毎に算出され、シーケンサ１７内のレジスタＲＥＧに保持される。
【０２０９】
尚、上記実施形態において、トラッキングリードにおける補正値の算出方法について、オンセル数の差分を使用する場合を例に説明したが、これに限定されない。例えば、半導体記憶装置１０がＥＣＣ回路を備える場合、トラッキングリードにおいて最もエラービット数が少なくなった読み出し電圧を最適な読み出し電圧とすれば良い。この場合、最適な読み出し電圧としては、トラッキングリードで印加された読み出し電圧と異なる読み出し電圧となる場合も考えられる。
【０２１０】
また、上記実施形態において、半導体記憶装置１０がトラッキングリードにより得られた読み出し電圧の補正値を保存する先としてシーケンサ１７内のレジスタＲＥＧが使用される場合を例に説明したが、これに限定されない。例えば、レジスタ１５の領域に補正値を保持する領域を作成しても良く、半導体記憶装置１０の内部であれば良い。
【０２１１】
また、上記実施形態において、半導体記憶装置１０が２回目以降のトラッキングリードにより得られた読み出し電圧の補正値は、以前に得られた補正値に対して上書きする場合を例に説明したが、これに限定されない。例えば、トラッキングリードにより得られた補正値を上書きするのでは無く、異なる場所に保持させるようにしても良い。この場合でも、以降のシフトリードで新しい方の補正値を参照するように設定すれば、上記実施形態で説明したような効果を得ることが出来る。
【０２１２】
また、上記実施形態において、第１読み出し動作におけるトラッキングリード及びシフトリード間には電圧を印加していない期間が存在していたが、これに限定されない。例えば、トラッキングリードを実行した後に連続してシフトリードを実行しても良い。この場合、トラッキングリードにおいて読み出し電圧を印加した状態で最適な読み出し電圧の補正値が算出され、続けて算出された補正値を適用した読み出し電圧が印加される。
【０２１３】
また、上記実施形態において、シフトリードに用いる読み出し電圧をトラッキングリードにより得られた補正値により設定する場合を例に説明したが、これに限定されない。例えば、トラッキングリードにより通常の読み出し電圧からの補正値を算出するのでは無く、最適な読み出し電圧値そのものを算出し、シーケンサ１７内のレジスタＲＥＧに保持させるようにしても良い。この場合のシフトリードでは、レジスタＲＥＧ内の最適な読み出し電圧をそのまま適用した読み出し動作が実行される。
【０２１４】
また、上記実施形態において、トラッキングリードにより得られた補正値を適用した最適な読み出し電圧は、トラッキングリードで印加する複数の読み出し電圧の内のいずれかでなくても良い。例えば、図６に示す電圧Ｖtr１〜Ｖtr５のいずれかでなくても良く、これらの電圧の間の電圧を最適な読み出し電圧と指定するようにしても良い。
【０２１５】
尚、第２〜第４実施形態において、読み出し動作の冒頭にトラッキングリードを含む第１読み出し動作を実行するのに第１コマンドセットＣＳ１を使用した場合を例に説明したが、これに限定されない。例えば、読み出し動作の冒頭に半導体記憶装置１０がコントローラ２０から第３コマンドセットＣＳ３を受信した際に、第１読み出し動作を実行するように設定しても良い。この場合、特殊コマンドを含むコマンドセットＣＳ１を使用すること無く第２〜第４実施形態の動作を実現することが出来る。
【０２１６】
また、第２〜第４実施形態において、第１読み出し動作を第３コマンドセットに基づいて実行し、且つ直近のトラッキングリード結果をフィードバックしたシフトリードである第２読み出し動作を第１コマンドセットに基づいて実行しても良い。この場合のコマンドシーケンス及び波形の一例が、図２５に示されている。図２５は、第２実施形態で説明した図９に対して、第１及び第２読み出し動作を指示するコマンドセットの種類が異なっている。尚、この動作は第３及び第４実施形態に対しても同様に適用することが出来る。
【０２１７】
尚、第５及び第６実施形態において、書き込まれるデータが１ページに満たない場合、後の書き込み動作で当該ページの未書き込み領域からデータを書き込むことがある。このように、書き込まれたタイミングが異なるメモリセルを含むページに対するフラグ情報としては、ページの始めに書き込みを行ったタイミングのフラグ情報を付加しても良いし、ページの終わりに書き込みを行ったタイミングのフラグ情報を付加しても良い。
【０２１８】
尚、上記実施形態において、最適な読み出し電圧の補正値を算出し、その補正値に基づいた読み出し動作を実行する第１読み出し動作がトラッキングリード及びシフトリードの組である場合を例に説明したが、これに限定されない。例えば、第１読み出し動作でトラッキングリードのみを実行し、このトラッキングリードの読み出し結果から最適なデータを抽出するようにしても良い。
【０２１９】
この場合、例えばトラッキングリードで読み出された全てのデータはセンスアンプモジュール１２に保持される。そしてシーケンサ１７は、最適な読み出し電圧の補正値を算出した後にセンスアンプモジュール１２を制御して、この補正値に基づいた読み出しデータ、又はそれに近い読み出しデータに該当するデータをラッチ回路ＸＤＬに転送させ、入出力回路１４を介してコントローラ２０に出力させる。このような動作を第１実施形態に適用した場合のコマンドシーケンス及び波形の一例が、図２６に示されている。図２６は、第１実施形態で説明した図９に対して、第１読み出し動作におけるシフトリードが省略されている点が異なっている。このような場合でも、直近トラッキングリードの結果をフィードバックしたシフトリードを実行することが出来る。尚、この動作は第２〜第６実施形態に対しても同様に適用することが出来る。
【０２２０】
尚、上記実施形態において、第１〜第３読み出し動作で読み出されたデータがコントローラ２０のエラー訂正にフェイルする場合がある（ＥＣＣエラー）。このようなＥＣＣエラーが発生した場合に、コントローラ２０はこの読み出しデータに基づいて最適な読み出し電圧の補正値を計算し、データの読み出しを失敗した箇所に対してリトライリードを実行しても良い。以下に、第１実施形態で説明したメモリシステム１の動作でリトライリードが発生した場合の一例について図２７及び図２８を用いて説明する。図２７及び図２８にはそれぞれ、リトライリードの一例がフローチャート及びタイミングチャートで示されている。
【０２２１】
図２７に示すように、まずコントローラ２０は第１コマンドセットＣＳ１を発行して（ステップＳ１１０）、半導体記憶装置１０に送信する。そして半導体記憶装置１０は、コマンドセットＣＳ１に応答して第１読み出し動作を実行する。具体的には、シーケンサ１７はトラッキングリードを実行し（ステップＳ１１１）、トラッキングリードにより得られた補正値を保存し（ステップＳ１１２）、この補正値に基づいたシフトリードを実行する（ステップＳ１１３）。これらステップＳ１１０〜Ｓ１１３の動作は、第１実施形態で図８を用いて説明したステップＳ１０〜Ｓ１３と同様である。
【０２２２】
コントローラ２０は、ステップＳ１１３のシフトリードによって読み出されたデータＤＡＴを受信すると、エラー訂正処理を実行する。本例においてコントローラ２０は、この読み出しデータのエラー訂正にフェイルしている（ステップＳ１１４）。このようにＥＣＣエラーが発生した場合、コントローラ２０はステップＳ１１３のシフトリードによって読み出されたデータＤＡＴに基づいて最適な読み出し電圧を算出する（ステップＳ１１５）。そしてコントローラ２０は、算出した最適な読み出し電圧を用いたリトライリードを指示する第６コマンドセットＣＳ６を発行して（ステップＳ１１６）、半導体記憶装置１０に送信する。
【０２２３】
この第６コマンドセットＣＳ６は、例えば図２９に示すようなコマンドシーケンスである。具体的には、コマンドセットＣＳ６は、図１０で説明したコマンドセットＣＳ１に対して、特殊コマンド“ｘｘｈ”を特殊コマンド“ｚｚｈ”に置き換えたものと同様である。コマンド“ｚｚｈ”は、半導体記憶装置１０にコントローラ２０が指定した読み出し電圧を用いたシフトリードを命令するコマンドである。
【０２２４】
このようなコマンドセットＣＳ６（コマンドＣＭＤ及びアドレス情報ＡＤＤ）を受信した半導体記憶装置１０は、ステップＳ１１３と同じページに対してコントローラ２０が算出した最適な読み出し電圧を用いたシフトリードを実行する（ステップＳ１１７）。つまり半導体記憶装置１０は、ＥＣＣエラーが発生したページに対して、コントローラ２０が算出した最適な読み出し電圧を用いたリトライリードを実行する。尚、この際に半導体記憶装置１０がコントローラ２０から受信した最適な読み出し電圧に対応する補正値が、シーケンサ１７内のレジスタＲＥＧに保持される。
【０２２５】
ステップＳ１１７のシフトリードによって読み出されたデータＤＡＴがコントローラ２０に送信されると、コントローラ２０は第２コマンドセットＣＳ２を発行する。半導体記憶装置１０は、コントローラ２０から第２コマンドセットＣＳ２を受信すると続くページに対して、ステップＳ１１７で使用された読み出し電圧を用いたシフトリードを実行する。つまりＥＣＣエラーが発生してリトライリードを行った場合に続く第２読み出し動作では、直近のリトライリードでコントローラ２０が算出した読み出し電圧の補正値がフィードバックされる。
【０２２６】
図２８に示す波形は、以上で説明したステップＳ１１０〜Ｓ１１９の動作に対応している。図２８に示す一例では、冒頭の第１読み出し動作で電圧Ｖcal１によるシフトリードが実行されている。続くリトライリードでは、コントローラ２０が算出した最適な読み出し電圧Ｖcal２によるシフトリードが実行されている。そしてリトライリード後の第２読み出し動作では、リトライリードで使用された読み出し電圧をフィードバックしたシフトリードが実行されている。
【０２２７】
以上のようにメモリシステム１は、リトライリードでコントローラ２０が算出した最適な読み出し電圧を、続く第２読み出し動作に対して適用することも可能である。またコントローラ２０はＥＣＣエラーが発生した場合に、シフトリードで読み出したデータに基づいて最適な読み出し電圧を算出することによって、最適値の計算に要する時間を短縮することが出来る。
【０２２８】
尚、半導体記憶装置１０が保持するコントローラ２０の計算に基づいた補正値は、次に第１読み出し動作又はリトライリードが実行されると更新される。また、上記説明では、第１読み出し動作においてＥＣＣエラーが発生した場合を例に説明したが、これに限定されない。例えば、第２及び第３読み出し動作においてＥＣＣエラーが発生した場合にも、上述したようなリトライリードを実行することが出来る。
【０２２９】
また、上記説明において、コントローラ２０が半導体記憶装置１０に対してリトライリードを指示する際に第６コマンドセットＣＳ６を発行する場合を例に説明したが、これに限定されない。例えば、コントローラ２０が半導体記憶装置１０に対して、“Set feature”と呼ばれる半導体記憶装置１０の動作モードを変更する動作や、“Parameter set”と呼ばれる半導体記憶装置１０の各種パラメータを変更する動作を指示することによって、コントローラ２０が算出した最適な読み出し電圧を半導体記憶装置１０に適用しても良い。この場合コントローラ２０、Set feature等で半導体記憶装置１０の動作モード又はパラメータを変更した後に、その補正値を適用したシフトリードを指示するコマンドセット（例えば、コマンドセットＣＳ２）が発行される。コントローラ２０が半導体記憶装置１０に対してSet featureを指示するコマンドシーケンスは、例えば図３０に示すものとなる。
【０２３０】
図３０に示すように、まずコントローラ２０は、例えばSet featureコマンド“ＥＦｈ”を発行して、半導体記憶装置１０に送信する。コマンド“ＥＦｈ”は、半導体記憶装置１０に対してパラメータの変更を命令するコマンドである。次にコントローラ２０は、アドレス情報ＡＤＤを発行して、半導体記憶装置１０に送信する。このアドレス情報ＡＤＤは、変更したいパラメータに対応するアドレスを指定するものである。次にコントローラ２は、複数サイクルに渡って設定データＤinを半導体記憶装置１０に出力する。ここで出力されたデータＤinは、変更するパラメータに相当するデータである。
【０２３１】
半導体記憶装置１０はこれらのコマンド等を受信すると、Set featureを開始して、半導体記憶装置１０の動作モードが変更される。本例ではSet featureによって、半導体記憶装置１０が保持する読み出し電圧の補正値が、コントローラ２０が算出した最適な読み出し電圧に基づいて変更される。また、図示するｔSetはこのSet featureが行われている期間を示し、この期間において半導体記憶装置１０はビジー状態となる。つまり、Set feature等で半導体記憶装置１０の動作モード又はパラメータを変更した後に、その補正値を適用したシフトリードを指示するコマンドセットを発行する場合には、半導体記憶装置１０がリトライリードを実行する前に一時的に半導体記憶装置１０がビジー状態になる。
【０２３２】
尚、Set featureによって設定される読み出し電圧の補正値は、半導体記憶装置１０が算出した読み出し電圧の補正値と別に保持されてもよい。この場合半導体記憶装置１０は、例えばコマンドセットＣＳ６のようなコマンドシーケンスに基づいて、指定した補正値に対してさらにSet feature等で指定された補正値を適用したシフトリードを実行する。
【０２３３】
尚、図２７及び図２８を用いて説明した動作は、第６コマンドセットＣＳ６の代わりに図３１に示すような第７コマンドセットＣＳ７を使用しても良い。図３１に示すようにコマンドセットＣＳ７は、図２９で説明したコマンドセットＣＳ６に対して、特殊コマンド“ｚｚｈ”の前に特殊コマンド“ｙｙｈ”を発行したものと同様である。このようにメモリシステム１は、複数の特殊コマンドを同時に使用することも可能である。この場合、例えばコマンド“ｙｙｈ”によってコントローラ２０が指定した読み出し電圧によるシフトリードが指示され、コマンド“ｚｚｈ”によってコマンド“ｙｙｈ”が指定した読み出し電圧のレベルを基準として、さらにSet feature又はParameter setで指定した補正値が適用される。図３１に示す各特殊コマンドの役割は本例に限定されず、例えばコマンド“ｙｙｈ”がシフトリードを指示するコマンドに対応し、コマンド“ｚｚｈ”がコマンド“ｙｙｈ”に基づいて実行されるシフトリードにおいて使用されるパラメータ（補正値）に相当する場合も考えられる。
【０２３４】
尚、上記実施形態においてコントローラ２０が最適な読み出し電圧を算出する方法については、例えば“半導体記憶装置”という２０１６年６月２８日に出願された米国特許出願１５／１９５,５６０号に記載されている。この特許出願は、その全体が本願明細書において参照により援用されている。
【０２３５】
尚、上記説明に用いた図９、図１４、図１６、図１８、図２１、図２５、図２６、及び図２８に示された入出力信号Ｉ／Ｏには、コントローラ２０から半導体記憶装置１０に送信されるコマンドセットＣＳのみが示され、半導体記憶装置１０からコントローラ２０に送信される読み出しデータＤＡＴが省略されている。
【０２３６】
また、上記説明において、図１０、図１１、図１２、図２９、及び図３１に示されたコマンド“ｘｘｈ”、“ｙｙｈ”、及び“ｚｚｈ”はあくまで一例であり、それぞれ任意の数字を割り当てることが可能である。
【０２３７】
尚、上記説明において「読み出し電圧」とは、データを読み出す際に印加されている電圧に対応している。つまり、例えば図９に示す波形図では、トラッキングリード時に選択ワード線に対して印加される電圧が階段状に表現されているが、この電圧を連続的に増加させても良い。この場合、信号ＳＴＢをアサートするタイミングを当該読み出し電圧が印加されているタイミングに合わせることにより、データが読み出される。
【０２３８】
また、上記説明において「接続」とは電気的に接続していることを示し、直接接続される場合だけでなく、任意の素子を介して接続される場合も含んでいる。
【０２３９】
尚、上記実施形態においてメモリセルアレイ１１は、メモリセルトランジスタＭＴが半導体基板の上方に三次元に積層された構成であっても良い。このような構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７,４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６,５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９,９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２,０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０２４０】
また、上記実施形態において、ブロックＢＬＫがデータの消去単位にならなくても良い。例えば他の消去動作は、“不揮発性半導体記憶装置”という２０１１年９月１８日に出願された米国特許出願１３／２３５,３８９号、“不揮発性半導体記憶装置”という２０１０年１月２７日に出願された米国特許出願１２／６９４,６９０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０２４１】
また、上記実施形態におけるトラッキングリードの詳細については、例えば“SEMICONDUCTOR MEMORY DEVICE WHICH STORES MULTIVALUED DATA”という２０１２年７月９日に出願された米国特許出願１３／５４４,１４７に記載された方法を適用することが出来る。この特許出願の内容は、その全体が本願明細書において参照により援用されている。
【０２４２】
尚、上記各実施形態において、  
（１）読み出し動作では、“Ａ”レベルの読み出し動作に選択されたワード線に印加される電圧は、例えば０〜０.５５Ｖの間である。これに限定されることなく、０.１〜０.２４Ｖ、０.２１〜０.３１Ｖ、０.３１〜０.４Ｖ、０.４〜０.５Ｖ、０.５〜０.５５Ｖのいずれかの間にしてもよい。
【０２４３】
“Ｂ”レベルの読み出し動作に選択されたワード線に印加される電圧は、例えば１.５〜２.３Ｖの間である。これに限定されることなく、１.６５〜１.８Ｖ、１.８〜１.９５Ｖ、１.９５〜２.１Ｖ、２.１〜２.３Ｖのいずれかの間にしてもよい。
【０２４４】
“Ｃ”レベルの読み出し動作に選択されたワード線に印加される電圧は、例えば３.０Ｖ〜４.０Ｖの間である。これに限定されることなく、３.０〜３.２Ｖ、３.２〜３.４Ｖ、３.４〜３.５Ｖ、３.５〜３.６Ｖ、３.６〜４.０Ｖのいずれかの間にしてもよい。
【０２４５】
読み出し動作の時間（ｔＲｅａｄ）としては、例えば２５〜３８μs、３８〜７０μs、７０〜８０μsの間にしてもよい。
（２）書き込み動作は、上述したとおりプログラム動作とベリファイ動作を含む。書き込み動作では、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば１３.７〜１４.３Ｖの間である。これに限定されることなく、例えば１３.７〜１４.０Ｖ、１４.０〜１４.６Ｖのいずれかの間としてもよい。
【０２４６】
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。
【０２４７】
プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）としたとき、ステップアップの電圧として、例えば０.５Ｖ程度が挙げられる。
【０２４８】
非選択のワード線に印加される電圧としては、例えば６.０〜７.３Ｖの間としてもよい。この場合に限定されることなく、例えば７.３〜８.４Ｖの間としてもよく、６.０Ｖ以下としてもよい。
【０２４９】
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
【０２５０】
書き込み動作の時間（ｔＰｒｏｇ）としては、例えば１７００〜１８００μs、１８００〜１９００μs、１９００〜２０００μsの間にしてもよい。
（３）消去動作では、半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば１２.０〜１３.６Ｖの間である。この場合に限定されることなく、例えば１３.６〜１４.８Ｖ、１４.８〜１９.０Ｖ、１９.０〜１９.８Ｖ、１９.８〜２１.０Ｖの間であってもよい。
【０２５１】
消去動作の時間（ｔErase）としては、例えば３０００〜４０００μs、４０００〜５０００μs、４０００〜９０００μsの間にしてもよい。
（４）メモリセルの構造は、半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が2〜3ｎｍのＳｉＮ、又はＳｉＯＮ等の絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕ等の金属が添加されていてもよい。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯ等が挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの材料を介して膜厚が３０〜７０ｎｍの制御電極が形成されている。ここで材料はＴａＯ等の金属酸化膜、ＴａＮ等の金属窒化膜である。制御電極にはＷ等を用いることができる。
【０２５２】
また、メモリセル間にはエアギャップを形成することができる。  
尚、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２５３】
１…メモリシステム、１０…半導体記憶装置、１１…メモリセルアレイ、１２…センスアンプモジュール、１３…ロウデコーダ、１４…入出力回路、１５…レジスタ、１６…ロジック制御回路、１７…シーケンサ、１８…レディ／ビジー制御回路、１９…電圧生成回路、２０…コントローラ、２１…プロセッサ、２２…内蔵メモリ、２３…ＥＣＣ回路、２４…ＮＡＮＤインターフェイス回路、２５…バッファメモリ、２６…ホストインターフェイス回路。
【図１】
2018028956.tif 000003
【図２】
2018028956.tif 000004
【図３】
2018028956.tif 000005
【図４】
2018028956.tif 000006
【図５】
2018028956.tif 000007
【図６】
2018028956.tif 000008
【図７】
2018028956.tif 000009
【図８】
2018028956.tif 000010
【図９】
2018028956.tif 000011
【図１０】
2018028956.tif 000012
【図１１】
2018028956.tif 000013
【図１２】
2018028956.tif 000014
【図１３】
2018028956.tif 000015
【図１４】
2018028956.tif 000016
【図１５】
2018028956.tif 000017
【図１６】
2018028956.tif 000018
【図１７】
2018028956.tif 000019
【図１８】
2018028956.tif 000020
【図１９】
2018028956.tif 000021
【図２０】
2018028956.tif 000022
【図２１】
2018028956.tif 000023
【図２２】
2018028956.tif 000024
【図２３】
2018028956.tif 000025
【図２４】
2018028956.tif 000026
【図２５】
2018028956.tif 000027
【図２６】
2018028956.tif 000028
【図２７】
2018028956.tif 000029
【図２８】
2018028956.tif 000030
【図２９】
2018028956.tif 000031
【図３０】
2018028956.tif 000032
【図３１】
2018028956.tif 000033