(57)【要約】【課題】動作速度の低下を抑制することが可能なメモリシステムを提供する。【解決手段】メモリシステムは、メモリセルアレイを備える不揮発性メモリチップと、前記不揮発性メモリチップを制御するメモリコントローラと、を備え、前記メモリコントローラは、前記不揮発性メモリチップからデータを読み出す場合、前記不揮発性メモリチップに、前記メモリセルアレイから前記データをセンスするセンス動作を指示し、前記不揮発性メモリチップから前記メモリコントローラに前記データが転送可能になる時刻を推定し、前記推定された時刻以降に、前記不揮発性メモリチップに、前記データを前記メモリコントローラに転送する転送動作を指示する。【選択図】      図１５
2020154759.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイを備える不揮発性メモリチップと、
前記不揮発性メモリチップを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
前記不揮発性メモリチップからデータを読み出す場合、
前記不揮発性メモリチップに、前記メモリセルアレイから前記データをセンスするセンス動作を指示し、
前記不揮発性メモリチップから前記メモリコントローラに前記データが転送可能になる時刻を推定し、
前記推定された時刻以降に、
前記不揮発性メモリチップに、前記データを前記メモリコントローラに転送する転送動作を指示する
メモリシステム。
【請求項２】
前記メモリコントローラは、
前記転送可能になる時刻を、前記センス動作の開始時刻と、前記センス動作の動作時間とに基づいて推定する
請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラは、リード条件に基づいて、前記センス動作の動作時間を推定する
請求項２に記載のメモリシステム。
【請求項４】
前記メモリコントローラは、
前記不揮発性メモリチップからデータを読み出す場合、リードコマンドセットを発行し、
発行予定のリードコマンドセットのリード条件に基づいて、前記センス動作の動作時間を推定する
請求項２に記載のメモリシステム。
【請求項５】
前記メモリコントローラは、
前記不揮発性メモリチップからデータを読み出す場合、リード条件を指定して前記センス動作の動作時間を前記不揮発性メモリチップに問い合わせた後、リードコマンドセットを発行する
請求項２に記載のメモリシステム。
【請求項６】
前記メモリコントローラは、
前記不揮発性メモリチップからデータを読み出す場合、リードコマンドセットを発行し、
前記リードコマンドセットの発行後に、前記センス動作の動作時間を前記不揮発性メモリチップに問い合わせる
請求項２に記載のメモリシステム。
【請求項７】
前記メモリコントローラは、前記センス動作を開始させるための第１コマンドセットを発行する時刻を、前記センス動作の開始時刻と推定する
請求項２に記載のメモリシステム。
【請求項８】
前記メモリコントローラは、前記センス動作の開始後に、前記センス動作の開始時刻を、前記不揮発性メモリチップに問い合わせる
請求項２に記載のメモリシステム。
【請求項９】
前記メモリコントローラは、前記センス動作の開始前に、前記センス動作の動作時間を、前記不揮発性メモリチップに問い合わせる
請求項１または８に記載のメモリシステム。
【請求項１０】
前記メモリコントローラは、前記センス動作の開始後に、前記センス動作の動作時間を、前記不揮発性メモリチップに問い合わせる
請求項１または８に記載のメモリシステム。
【請求項１１】
前記リード条件は、リード方法の種類と、記憶方式の種類と、ページアドレスと、を含む
請求項３乃至５のいずれか一項に記載のメモリシステム。
【請求項１２】
メモリセルアレイを備える不揮発性メモリチップと、
前記不揮発性メモリチップを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
前記不揮発性メモリチップからデータを読み出す場合、
前記不揮発性メモリチップに、前記メモリセルアレイから前記データをセンスするセンス動作の終了予定時刻を問い合わせ、
前記センス動作の終了予定時刻に、前記不揮発性メモリチップに、前記データを前記メモリコントローラに転送する転送動作を指示する
メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
メモリセルが三次元に積層されたＮＡＮＤ型フラッシュメモリチップが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１４５９９１号公報
【特許文献２】米国特許第６９２５００５号明細書
【特許文献３】米国特許第６４３８０３５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作速度の低下を抑制することが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、メモリセルアレイを備える不揮発性メモリチップと、前記不揮発性メモリチップを制御するメモリコントローラと、を備え、前記メモリコントローラは、前記不揮発性メモリチップからデータを読み出す場合、前記不揮発性メモリチップに、前記メモリセルアレイから前記データをセンスするセンス動作を指示し、前記不揮発性メモリチップから前記メモリコントローラに前記データが転送可能になる時刻を推定し、前記推定された時刻以降に、前記不揮発性メモリチップに、前記データを前記メモリコントローラに転送する転送動作を指示する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムの構成例を示すブロック図である。
【図２】図２は、第１実施形態におけるＮＡＮＤ型フラッシュメモリチップの構成例を示すブロック図である。
【図３】図３は、第１実施形態におけるＮＡＮＤ型フラッシュメモリチップに含まれるメモリセルアレイの構成例を示す回路図であり、メモリセルアレイ内の１つのブロックＢＬＫについての詳細な回路構成を示している。
【図４】図４は、１つのメモリセルトランジスタＭＴが１ビットデータを記憶する場合のメモリセルトランジスタＭＴの閾値電圧分布及び読み出し電圧を示す。
【図５】図５は、１つのメモリセルトランジスタＭＴが２ビットデータを記憶する場合のメモリセルトランジスタＭＴの閾値電圧分布及び読み出し電圧を示す。
【図６】図６は、１つのメモリセルトランジスタＭＴが３ビットデータを記憶する場合のメモリセルトランジスタＭＴの閾値電圧分布及び読み出し電圧を示す。
【図７】図７は、リード動作の基本を示す図である。
【図８】図８は、リード動作のコマンドセットを示す図である。
【図９】図９は、ＮＡＮＤ型フラッシュメモリチップとメモリコントローラとの接続関係を示す図である。
【図１０】図１０は、ＮＡＮＤ型フラッシュメモリチップとメモリコントローラとの接続関係を示す図である。
【図１１】図１１は、ポーリングの頻度が高い場合のリード動作例を示す図である。
【図１２】図１２は、ポーリングの頻度が低い場合のリード動作例を示す図である。
【図１３】図１３は、センス動作時における、実際のレディビジー状態と、メモリコントローラによって推定されるレディビジー状態との関係を示した図である。
【図１４】図１４は、記憶方式毎のｔＲテーブルである。
【図１５】図１５は、第１実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図１６】図１６は、第１実施形態に係るメモリシステムのリード動作を示す図である。
【図１７】図１７は、第１実施形態に係るメモリシステムのリード動作を示す図である。
【図１８】図１８は、リード動作例を示す図である。
【図１９】図１９は、第２実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図２０】図２０は、第２実施形態に係るメモリシステムのリード動作を示す図である。
【図２１】図２１は、第３実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図２２】図２２は、第３実施形態に係るメモリシステムのリード動作を示す図である。
【図２３】図２３は、第４実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図２４】図２４は、第４実施形態におけるＮＡＮＤ型フラッシュメモリチップの構成例を示すブロック図である。
【図２５】図２５は、第４実施形態に係るメモリシステムのリード動作を示す図である。
【図２６】図２６は、第５実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図２７】図２７は、第５実施形態に係るメモリシステムのリード動作を示す図である。
【図２８】図２８は、第６実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図２９】図２９は、第７実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図３０】図３０は、第８実施形態に係るメモリシステムのリード動作を示すフローチャートである。
【図３１】図３１は、変形例に係るメモリシステムのリード動作を示す図である。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。図面は模式的なものである。尚、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付して、重複説明を避ける。参照符号を構成する文字の後の数字、及び参照符号を構成する数字の後の文字は、同じ文字及び数字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ文字又は同じ数字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は同じ文字又は同じ数字のみを含んだ参照符号により参照される。
【０００８】
＜１＞第１実施形態 
以下に、第１実施形態に係るメモリシステムについて説明する。
【０００９】
＜１−１＞構成
＜１−１−１＞メモリシステム１の構成
図１は、第１実施形態に係るメモリシステム１の構成例を示すブロック図である。図１に示すようにメモリシステム１は、複数の不揮発性メモリ（ＮＡＮＤ型フラッシュメモリチップ）１０（１０（０）〜１０（Ａ：任意の整数））、ＤＲＡＭ（Dynamic Random Access Memory）３０、及びメモリコントローラ２０を備えている。
【００１０】
複数のＮＡＮＤ型フラッシュメモリチップ１０は、データを不揮発に記憶する不揮発性メモリである。複数のＮＡＮＤ型フラッシュメモリチップ１０は、それぞれ独立して動作してもよい。尚、メモリシステム１が備えるＮＡＮＤ型フラッシュメモリチップ１０の個数は、任意の個数に設計してもよい。以下では不揮発性メモリ１０の一例としてＮＡＮＤ型フラッシュメモリチップを例に挙げて説明するが、これに限らず他のメモリ（例えばＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＣＲＡＭ（Phase Change Random Access Memory）、ＲｅＲＡＭ（Resistive Random Access Memory）等）であっても良い。
【００１１】
ＤＲＡＭ３０は、データを一時的に記憶することが可能な揮発性メモリである。また、メモリシステム１が備える揮発性メモリは、ＤＲＡＭに限定されない。例えばメモリシステム１は、揮発性メモリとしてＳＲＡＭ（Static Random Access Memory）等を備えていても良い。
【００１２】
メモリコントローラ２０は、例えばＳｏＣ（System on a Chip）、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）等のＩＣ（Integrated Circuit）であり、ＮＡＮＤ型フラッシュメモリチップ１０及びＤＲＡＭ３０に各種動作を命令することが出来る。また、メモリコントローラ２０は、外部のホスト機器２からのコマンド（ホストコマンド）に基づいた動作と、ホスト機器２からのホストコマンドに依らない動作とを実行する。メモリコントローラ２０の構成については後述する。
【００１３】
＜１−１−２＞メモリコントローラ２０の構成
図１を用いて、メモリコントローラ２０の構成について説明する。図１に示すようにメモリコントローラ２０は、プロセッサ（ＣＰＵ：Central Processing Unit）２１、タイマ２２、内蔵メモリ（ＲＡＭ：Random Access Memory）２３、ホストインターフェイス回路（ホスト  Ｉ／Ｆ）２４、ＤＲＡＭインターフェイス回路（ＤＲＡＭ  Ｉ／Ｆ）２５、及びＮＡＮＤインターフェイス回路（ＮＡＮＤ  Ｉ／Ｆ）２６を備えている。
【００１４】
プロセッサ２１は、メモリコントローラ２０全体の動作を制御することが出来る。例えばプロセッサ２１は、ホスト機器２から受信した読み出しホストコマンドに応答して読み出しコマンドを発行して、発行したコマンドをＮＡＮＤインターフェイス回路２６に送信する。
【００１５】
タイマ２２は、メモリシステム１の各種動作に関連する時刻を計測することが出来る。タイマ２２は、例えば並列動作する複数のＮＡＮＤ型フラッシュメモリチップの時刻の情報（時刻情報）を取得できる。ＮＡＮＤ型フラッシュメモリチップ毎の時刻情報は、内蔵メモリ２３等に記憶されても良い。
【００１６】
内蔵メモリ２３は、プロセッサ２１の作業領域として使用される記憶領域である。例えば、内蔵メモリ２３には、ＮＡＮＤ型フラッシュメモリチップ１０を管理するためのパラメータや、各種の管理テーブル等が記憶される。例えば、内蔵メモリ２３は、ホスト機器２から受信したホストコマンドの待ち行列（コマンドキュー）を記憶する。また、内蔵メモリ２３は、ブロックＢＬＫに格納されたデータに関連付けられた論理アドレスをブロックＢＬＫの物理アドレスに変換するためのアドレス変換テーブルを記憶する。このアドレス変換テーブルは、例えばＮＡＮＤ型フラッシュメモリチップ１０に格納され、メモリシステム１の起動時に読み出されて内蔵メモリ２３に記憶される。内蔵メモリ２３としては、例えばＳＲＡＭ（Static Random Access Memory）等の揮発性メモリが用いられる。なお、アドレス変換テーブルのデータのサイズが大きい場合は、内蔵メモリ２３よりも容量の大きいＤＲＡＭ３０に記憶されることがある。
【００１７】
ホストインターフェイス回路２４は、ホスト機器２に接続され、メモリシステム１とホスト機器２との間の通信を司る。例えばホストインターフェイス回路２４は、メモリシステム１とホスト機器２との間で、データ、コマンド、及びアドレスの転送を制御する。ホストインターフェイス回路２４は、例えばＳＡＴＡ（Serial Advanced Technology Attachment）、ＳＡＳ（Serial Attached SCSI）、ＰＣＩｅ（PCI Express）、ＮＶＭｅ（Non-Volatile Memory Express）（登録商標）等の通信インターフェイス規格をサポートする。つまり、メモリシステム１に接続されるホスト機器２としては、例えばＳＡＴＡ、ＳＡＳ、ＰＣＩｅ、ＮＶＭｅ等のインターフェイスを含むコンピュータ等が挙げられる。
【００１８】
ＤＲＡＭインターフェイス回路２５は、ＤＲＡＭ３０に接続され、メモリコントローラ２０とＤＲＡＭ３０との間の通信を司る。ＤＲＡＭインターフェイス回路２５は、ＤＲＡＭインターフェイス規格に基づいて構成されている。尚、ＤＲＡＭインターフェイス回路２５の構成はこれに限定されず、メモリシステム１が備える揮発性メモリの種類に基づいて変更することが出来る。
【００１９】
ＮＡＮＤインターフェイス回路２６は、ＮＡＮＤ型フラッシュメモリチップ１０に接続され、メモリコントローラ２０とＮＡＮＤ型フラッシュメモリチップ１０との間の通信を司る。ＮＡＮＤインターフェイス回路２６は、ＮＡＮＤインターフェイス規格に基づいて構成されている。
【００２０】
＜１−１−３＞ＮＡＮＤ型フラッシュメモリチップ１０の構成
図２は、第１実施形態におけるＮＡＮＤ型フラッシュメモリチップ１０の構成例を示すブロック図である。図２に示すようにＮＡＮＤ型フラッシュメモリチップ１０は、メモリセルアレイ１１、センスアンプモジュール１２、ロウデコーダモジュール１３、入出力回路１４、レジスタ１５、ロジックコントローラ１６、シーケンサ１７、レディ／ビジー制御回路１８、及び電圧生成回路１９を備えている。
【００２１】
メモリセルアレイ１１は、ブロックＢＬＫ０〜ＢＬＫｎ（ｎは０以上の整数）を含んでいる。ブロックＢＬＫは、ビット線及びワード線に関連付けられた複数の不揮発性メモリセルの集合であり、例えばデータの消去単位となる。ＮＡＮＤ型フラッシュメモリチップ１０は、例えばＭＬＣ（Multi-Level Cell）方式等を適用することにより、各メモリセルに２ビット以上のデータを記憶させてもよい。
【００２２】
センスアンプモジュール１２は、センスアンプ１２Ａと、データラッチ１２Ｂと、を備えている。センスアンプ１２Ａは、メモリセルアレイ１１からデータＤＡＴを読み出す。データラッチ１２Ｂは、メモリセルアレイ１１から読み出されたデータＤＡＴ、または、メモリコントローラ２０から入出力回路１４を介して受け取った書き込みデータＤＡＴを一時的に記憶するデータラッチ（またはキャッシュ）を複数備える。
【００２３】
ロウデコーダモジュール１３は、アドレスレジスタ１５Ｂに記憶されたブロックアドレスに基づいて、各種動作を実行する対象のブロックＢＬＫを選択する。そしてロウデコーダモジュール１３は、電圧生成回路１９から供給された電圧を、選択したブロックＢＬＫに転送する。
【００２４】
入出力回路１４は、例えば８ビット幅の入出力バスＩ／Ｏ（Ｉ／Ｏ１〜Ｉ／Ｏ８）を介して入出力信号を、メモリコントローラ２０との間で送受信する。例えば入出力回路１４は、メモリコントローラ２０から受信した入出力信号に含まれた書き込みデータＤＡＴをデータラッチ１２Ｂに転送し、またデータラッチ１２Ｂから転送された読み出しデータＤＡＴを入出力信号としてメモリコントローラ２０に送信する。
【００２５】
レジスタ１５は、ステータスレジスタ１５Ａ、アドレスレジスタ１５Ｂ、コマンドレジスタ１５Ｃを含んでいる。ステータスレジスタ１５Ａは、例えばシーケンサ１７のステータス情報ＳＴＳを記憶し、このステータス情報ＳＴＳをシーケンサ１７の指示に基づいて入出力回路１４に転送する。このステータス情報ＳＴＳは、例えばある動作の開始時刻や、終了予定時刻、動作時間等を含む。この時刻や、時間は、例えばＮＡＮＤ型フラッシュメモリチップ１０内で用いられる内部クロックをカウントするカウンタの値によって表現される。メモリコントローラ２０とＮＡＮＤ型フラッシュメモリチップ１０等、複数の異なる要素間の時刻は、メモリシステム１の起動時を含む任意のタイミングで、同期をとるものとする。アドレスレジスタ１５Ｂは、入出力回路１４から転送されたアドレス情報ＡＤＤを記憶する。例えば、アドレス情報ＡＤＤに含まれたカラムアドレス、及びブロックアドレスは、それぞれセンスアンプモジュール１２、及びロウデコーダモジュール１３で使用される。コマンドレジスタ１５Ｃは、入出力回路１４から転送されたコマンドＣＭＤを記憶する。
【００２６】
ロジックコントローラ１６は、メモリコントローラ２０から受信した各種制御信号に基づいて、入出力回路１４及びシーケンサ１７を制御する。各種制御信号としては、例えばチップイネーブル信号／ＣＥ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、及びライトプロテクト信号／ＷＰが使用される。信号／ＣＥは、ＮＡＮＤ型フラッシュメモリチップ１０をイネーブルにするための信号である。信号ＣＬＥは、ＮＡＮＤ型フラッシュメモリチップ１０に入力される信号がコマンドＣＭＤであることを入出力回路１４に通知する信号である。信号ＡＬＥは、ＮＡＮＤ型フラッシュメモリチップ１０に入力される信号がアドレス情報ＡＤＤであることを入出力回路１４に通知する信号である。信号／ＷＥ及び／ＲＥはそれぞれ、例えば入出力信号の入力及び出力を入出力回路１４に対して命令する信号である。信号/ＷＰは、例えば電源のオンオフ時にＮＡＮＤ型フラッシュメモリチップ１０を保護状態にするための信号である。
【００２７】
シーケンサ１７は、コマンドレジスタ１５Ｃに記憶されたコマンドＣＭＤに基づいて、ＮＡＮＤ型フラッシュメモリチップ１０全体の動作を制御する。例えば、シーケンサ１７は、センスアンプモジュール１２、ロウデコーダモジュール１３、電圧生成回路１９等を制御して、書き込み動作や読み出し動作等の各種動作を実行する。
【００２８】
レディ／ビジー制御回路１８は、ＮＡＮＤ型フラッシュメモリチップ１０の動作状態に基づいてレディ／ビジー信号ＲＢｎを生成する。
【００２９】
ここで、ＮＡＮＤ型フラッシュメモリチップ１０の動作状態について説明する。ＮＡＮＤ型フラッシュメモリチップ１０の動作状態には、大きくわけてコア（メモリセルアレイ１１及びセンスアンプモジュール１２）に係るレディ／ビジー（コアレディ／ビジーまたはトゥルーレディ／ビジー）と、キャッシュ（データラッチ１２Ｂ）に係るレディ／ビジー（キャッシュレディ／ビジー）が存在する。
【００３０】
コアビジー状態（トゥルービジー状態とも記載する）とは、センスアンプモジュール１２へのアクセスが禁止されている、またはメモリセルアレイ１１への所定の動作が実行中の状態を示す。所定の動作とは、メモリセルアレイ１１に対して、データの書き込み、読み出し、消去などを行うことである。また、コアレディ状態（トゥルーレディ状態とも記載する）とは、センスアンプモジュール１２へのアクセスが許可され、かつ、メモリセルアレイ１１への所定の動作が非実行中の状態を示す。
【００３１】
キャッシュビジー状態とは、データラッチ１２Ｂが使用中であるため、ＮＡＮＤ型フラッシュメモリチップ１０がメモリコントローラ２０からのデータ転送コマンドセット、及びリードコマンドセットを受信できない状態を示す。キャッシュレディ状態とは、データラッチ１２Ｂが使用されていないため、ＮＡＮＤ型フラッシュメモリチップ１０がメモリコントローラ２０からのデータ転送コマンドセット、及びリードコマンドセットを受信できる状態を示す。
【００３２】
レディ／ビジー信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリチップ１０がメモリコントローラ２０からのコマンド（コントローラコマンド）を受け付けるレディ状態であるか、コントローラコマンドを受け付けないビジー状態であるかを、メモリコントローラ２０に通知する信号である。なお、後述するような、ステータスレジスタ１５Ａのデータを読み出すコントローラコマンドは、ＮＡＮＤ型フラッシュメモリチップ１０がビジー状態であっても受け付けられてもよい。
【００３３】
レディ／ビジー制御回路１８に生成されるレディ／ビジー信号ＲＢｎは、コアのトゥルービジー状態（すなわちコアビジー状態）、またはコアのトゥルーレディ状態（すなわちコアレディ状態）を示しているわけではない。レディ／ビジー信号ＲＢｎは、キャッシュプログラム、キャッシュリード動作中においては、キャッシュレディ・ビジー状態を示す。そのため、レディ／ビジー信号ＲＢｎにおけるキャッシュレディ／キャッシュビジーは、コアレディ／コアビジーと一致するわけではない。
【００３４】
電圧生成回路１９は、シーケンサ１７の制御に基づいて所望の電圧を生成し、生成した電圧をメモリセルアレイ１１、センスアンプモジュール１２、ロウデコーダモジュール１３等に供給する。例えば電圧生成回路１９は、アドレスレジスタ１５Ｂに記憶されたページアドレスに基づいて、選択ワード線に対応する信号線、及び非選択ワード線に対応する信号線に対してそれぞれ所望の電圧を印加する。
【００３５】
＜１−１−４＞メモリセルアレイ１１の構成
図３は、第１実施形態におけるＮＡＮＤ型フラッシュメモリチップ１０に含まれるメモリセルアレイ１１の構成例を示す回路図であり、メモリセルアレイ１１内の１つのブロックＢＬＫについての詳細な回路構成を示している。図３に示すようにブロックＢＬＫは、例えば４つのストリングユニットＳＵ０〜ＳＵ３を含んでいる。
【００３６】
各ストリングユニットＳＵは、ビット線ＢＬ０〜ＢＬｍ（ｍは０以上の整数）にそれぞれ関連付けられた複数のＮＡＮＤストリングＮＳを含んでいる。各ＮＡＮＤストリングＮＳは、例えばメモリセルトランジスタＭＴ０〜ＭＴ７並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。
【００３７】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を備え、データを不揮発に記憶する。各ＮＡＮＤストリングＮＳに含まれたメモリセルトランジスタＭＴ０〜ＭＴ７は、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。同一のブロックＢＬＫに含まれた各ＮＡＮＤストリングＮＳのメモリセルトランジスタＭＴ０の制御ゲート（複数の制御ゲート）は、ワード線ＷＬ０に共通に接続されている。同様に、同一のブロックＢＬＫに含まれた複数のＮＡＮＤストリングＮＳのメモリセルトランジスタＭＴ１〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ１〜ＷＬ７に共通に接続されている。尚、以下の説明では、それぞれのストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴをセルユニット（ＣＵ）とする。そして、セルユニットが記憶する１ビットデータの集合のことを“ページ”と称する。従って、１つのメモリセルトランジスタＭＴに２ビットデータが記憶される場合、セルユニットは、２ページ分のデータを記憶する。
【００３８】
選択トランジスタＳＴ１及びＳＴ２は、各種動作時におけるストリングユニットＳＵの選択に使用される。同一のカラムアドレスに対応するＮＡＮＤストリングＮＳに含まれた選択トランジスタＳＴ１のドレインは、対応するビット線ＢＬに共通接続されている。ストリングユニットＳＵ０に含まれる複数の選択トランジスタＳＴ１のゲートは、セレクトゲート線ＳＧＤ０に共通に接続されている。同様に、ストリングユニットＳＵ１〜ＳＵ３に含まれる複数の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ１〜ＳＧＤ３に共通に接続されている。同一のブロックＢＬＫにおいて、複数の選択トランジスタＳＴ２のソースは一つのソース線ＳＬに共通接続され、複数の選択トランジスタＳＴ２のゲートは一つのセレクトゲート線ＳＧＳに共通接続されている。
【００３９】
以上で説明したメモリセルアレイ１１の回路構成において、ワード線ＷＬ０〜ＷＬ７は、ブロックＢＬＫ毎に設けられている。ビット線ＢＬ０〜ＢＬｍは、複数のブロックＢＬＫ間で共有されている。ソース線ＳＬは、複数のブロックＢＬＫ間で共有されている。尚、以上で説明した各ブロックＢＬＫが含むストリングユニットＳＵの個数と、各ＮＡＮＤストリングＮＳが含むメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の個数とはあくまで一例であり、任意の個数に設計してもよい。ワード線ＷＬ並びにセレクトゲート線ＳＧＤ及びＳＧＳの本数は、メモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の個数に基づいて変更される。
【００４０】
メモリセルアレイ１１の複数のメモリセルトランジスタＭＴの閾値電圧によって形成される閾値電圧分布は、例えば図４〜図６に示すものとなる。図４〜図６は、１つのメモリセルトランジスタＭＴが１ビットデータ、２ビットデータ、又は３ビットデータを記憶する場合のメモリセルトランジスタＭＴの閾値電圧分布及び読み出し電圧を示し、縦軸がメモリセルトランジスタＭＴの個数に対応し、横軸がメモリセルトランジスタＭＴの閾値電圧Ｖthに対応している。図４〜図６に示すように複数のメモリセルトランジスタＭＴは、記憶するデータのビット数に基づいて複数の閾値電圧分布を形成する。以下に、書き込み方式の一例として、１つのメモリセルトランジスタＭＴに１ビットデータを記憶させるＳＬＣ（Single-Level Cell）方式と、１つのメモリセルトランジスタＭＴに２ビットデータを記憶させるＭＬＣ（Multi-Level Cell）方式と、１つのメモリセルトランジスタＭＴに３ビットデータを記憶させるＴＬＣ（Triple-Level Cell）方式と、についてそれぞれ説明する。
【００４１】
図４に示すように、ＳＬＣ方式の場合、複数のメモリセルトランジスタＭＴは２つの閾値電圧分布を形成する。この２つの閾値電圧分布のことを、閾値電圧の低いものから順に“ＥＲ”ステート、“Ａ”ステートと称する。ＳＬＣ方式では、例えば“ＥＲ”ステート及び“Ａ”ステートにそれぞれ“１”データ及び“０”データが割り当てられる。
【００４２】
図５に示すように、ＭＬＣ方式の場合、複数のメモリセルトランジスタＭＴは４つの閾値電圧分布を形成する。この４個の閾値電圧分布のことを、閾値電圧の低いものから順に“ＥＲ”ステート、“Ａ”ステート、“Ｂ”ステート、“Ｃ”ステートと称する。ＭＬＣ方式では、例えば“ＥＲ”ステート、“Ａ”ステート、“Ｂ”ステート、及び“Ｃ”ステートにそれぞれ“１１（Upper／Lower）”データ、“１０”データ、“００”データ、及び“０１”データが割り当てられる。
【００４３】
図６に示すように、ＴＬＣ方式の場合、複数のメモリセルトランジスタＭＴは８つの閾値電圧分布を形成する。この８個の閾値電圧分布のことを、閾値電圧の低いものから順に“ＥＲ”ステート、“Ａ”ステート、“Ｂ”ステート、“Ｃ”ステート、“Ｄ”ステート、“Ｅ”ステート、“Ｆ”ステート、“Ｇ”ステートと称する。ＴＬＣ方式では、例えば“ＥＲ”ステート、“Ａ”ステート、“Ｂ”ステート、“Ｃ”ステート、“Ｄ”ステート、“Ｅ”ステート、“Ｆ”ステート、“Ｇ”ステートにそれぞれ“１１１（Upper／Middle／Lower）”データ、“１１０”データ、“１００”データ、“０００”データ、“０１０”データ、“０１１”データ、“００１”データ、及び“１０１”データが割り当てられる。
【００４４】
そして、以上で説明した閾値電圧分布において、隣り合う閾値電圧分布の間にそれぞれ読み出し電圧が設定される。例えば、読み出し電圧ＡＲは、“ＥＲ”ステートにおける最高の閾値電圧と“Ａ”ステートにおける最低の閾値電圧との間に設定され、メモリセルトランジスタＭＴの閾値電圧が“ＥＲ”ステートの閾値電圧分布に含まれるのか“Ａ”ステート以上の閾値電圧分布に含まれるのかを判定する動作に使用される。メモリセルトランジスタＭＴに読み出し電圧ＡＲが印加されると、“ＥＲ”ステートに対応するメモリセルトランジスタがオン状態になり、“Ａ”ステート、“Ｂ”ステート、“Ｃ”ステート、“Ｄ”ステート、“Ｅ”ステート、“Ｆ”ステート、及び“Ｇ”ステートに対応するメモリセルトランジスタがオフ状態になる。その他の読み出し電圧も同様に設定される。読み出し電圧ＢＲは、“Ａ”ステートの閾値電圧分布と“Ｂ”ステートの閾値電圧分布との間に設定され、読み出し電圧ＣＲは、“Ｂ”ステートの閾値電圧分布と“Ｃ”ステートの閾値電圧分布との間に設定される。読み出し電圧ＤＲは、“Ｃ”ステートの閾値電圧分布と“Ｄ”ステートの閾値電圧分布との間に設定され、読み出し電圧ＥＲは、“Ｄ”ステートの閾値電圧分布と“Ｅ”ステートの閾値電圧分布との間に設定される。読み出し電圧ＦＲは、“Ｅ”ステートの閾値電圧分布と“Ｆ”ステートの閾値電圧分布との間に設定され、読み出し電圧ＧＲは、“Ｆ”ステートの閾値電圧分布と“Ｇ”ステートの閾値電圧分布との間に設定される。各書き込み方式において、最も閾値電圧が高い閾値電圧分布における最高の閾値電圧よりも高い電圧に、読み出しパス電圧ＶＲＥＡＤが設定される。つまり、読み出しパス電圧ＶＲＥＡＤがゲートに印加されたメモリセルトランジスタＭＴは、記憶するデータに依らずにオンする。
【００４５】
尚、以上で説明した１つのメモリセルトランジスタＭＴに記憶するデータのビット数と、メモリセルトランジスタＭＴの閾値電圧分布に対するデータの割り当てとはあくまで一例である。また、その他の様々なデータの割り当てが閾値電圧分布に対して適用されても良い。また、各読み出し電圧及び読み出しパス電圧は、各方式で同じ電圧値に設定されても良いし、異なる電圧値に設定されても良い。
【００４６】
上述したＳＬＣ方式、ＭＬＣ方式、ＴＬＣ方式に要するセンス時間はそれぞれ異なる。ＳＬＣ方式、及びＭＬＣ方式のロワーページ読み出しでは読み出しに１つのリードレベルを用い、ＭＬＣ方式のアッパーページ読み出し、及びＴＬＣ方式のアッパーページ読み出しとロワーページ読み出しでは読み出しに２つのリードレベルを用い、ＴＬＣ方式のミドルページ読み出しでは読み出しに３つのリードレベルを用いている。このように、読み出しに用いるリードレベルが増えると、センス時間も増えることになる。例えば、１つのリードレベルを用いる場合、センス時間ｔＲは３０μｓとなり、２つのリードレベルを用いる場合、センス時間ｔＲは５０μｓとなり、３つのリードレベルを用いる場合、センス時間ｔＲは７０μｓとなる。このように各ページの読み出しに用いるリードレベルの数の違いが、センス時間tRの違いに大きく影響する。具体的には、ＭＬＣ方式においては、ロワーページ読み出しのセンス時間は、アッパーページ読み出しのセンス時間よりも短い。また、ＴＬＣ方式においては、ロワーページ読み出しのセンス時間は、アッパーページ読み出しのセンス時間とほぼ同じで、ミドルページ読み出しのセンス時間は、それらのセンス時間よりも長い。また、隣りあうステート間の閾値電圧分布のマージンが小さいほど(ＴＬＣ方式など)、ノイズ等の影響を受けやすいため、センス時間は長くなる傾向にある。具体的には、ステート間のマージンはＳＬＣ方式 > ＭＬＣ方式 >ＴＬＣ方式なので、１つのリードレベルあたりにかかる時間はＳＬＣ方式 <ＭＬＣ方式<ＴＬＣ方式となる。なお、ここで示したＭＬＣ方式のロワーページ／アッパーページのビットアサインのエンコーディングは一例に過ぎない。同様に、ＴＬＣ方式のロワーページ／ミドルページ／アッパーページのビットアサインのエンコーディングは一例に過ぎない。そのため、ほかのエンコーディングも適用可能である。その場合、各ページ間のセンス時間の大小関係も異なる。
【００４７】
例えば、図４に示すように、ＭＬＣ方式における読み出しパス電圧ＶＲＥＡＤは、ＳＬＣ方式における読み出しパス電圧ＶＲＥＡＤよりも高く設定される。同様に、ＴＬＣ方式における読み出しパス電圧ＶＲＥＡＤは、ＭＬＣ方式における読み出しパス電圧ＶＲＥＡＤよりも高く設定される。
【００４８】
尚、以上で説明したメモリセルアレイ１１の構成は、その他の構成であっても良い。その他のメモリセルアレイ１１の構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４９】
＜１−２＞動作
＜１−２−１＞リード動作の基本
まず、図７及び図８を用いて、リード動作（読み出し動作）の基本について説明する。
【００５０】
リード動作には、大きくわけてセンス動作と、データ転送動作の２つが含まれる。
【００５１】
図７に示すように、センス動作とは、センスアンプモジュール１２がメモリセルアレイ１１に記憶されたデータを読み出す動作である。具体的には、シーケンサ１７は、読み出し対象のワード線に、読み出し電圧（リードレベル）を印加し、非対象のワード線に、読み出しパス電圧ＶＲＥＡＤを印加する。そして、センスアンプ１２Ａが、ビット線に流れる電流をセンスする。シーケンサ１７は、センスアンプ１２Ａがビット線に電流が流れるとセンスすれば当該読出し電圧を基準として読み出した場合のセルに格納されているデータは１データ(セルの閾値電圧はリードレベル以下)、流れないとセンスすれば０データ(セルの閾値電圧はリードレベル超)であるとそれぞれ判定する。シーケンサ１７は、この動作を、読み出し対象のページ種別（ロワー／ミドル／アッパーのいずれか）に必要なリードレベルの数だけ繰り返し、データラッチ１２Ｂにて論理演算することで、ページデータを得ることができる。
【００５２】
データ転送動作とは、センスアンプモジュール１２に読み出されたデータを入出力バスを経由して、メモリコントローラ２０に転送する動作である。
【００５３】
図８に示すように、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０からリードに関するコマンド（００Ｈ、３０Ｈ）及びアドレス（カラムアドレス及びロウアドレス）を受信すると、センス動作（Ｓ１）を開始する。このような、リードに関するコマンド及びアドレスのセットを、リードコマンドセットとも記載する。また、リードコマンドセットを発行することを、センス要求とも記載する。ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作（Ｓ１）を開始すると、コアビジー状態に遷移し、その結果、レディ／ビジー信号ＲＢｎをキャッシュレディ状態からキャッシュビジー状態に遷移させる。レディ／ビジー信号ＲＢｎがキャッシュビジー状態の場合、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０からデータ転送動作に関するコマンドを受け付けない。そのため、メモリコントローラ２０は、データ転送動作を命令する場合は、センス動作が終了し、レディ／ビジー信号ＲＢｎがキャッシュレディ状態に遷移した後に行う必要がある。なお、ＮＡＮＤ型フラッシュメモリチップ１０は、完了したリードコマンドに続くリードコマンドによるセンス動作によってコアビジー状態であっても、メモリコントローラ２０に完了したリードコマンドによりセンスされたデータを転送する場合がある。このような動作をキャッシュ動作と呼ぶ。ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作が完了し、データラッチ１２Ｂにページデータがそろっていれば、このキャッシュ動作を実行することが可能である。
【００５４】
ＮＡＮＤ型フラッシュメモリチップ１０がセンス動作を終えると、コアレディ状態に遷移し、その結果、レディ／ビジー信号ＲＢｎをビジー状態からレディ状態に遷移させる。メモリコントローラ２０は、例えばレディ／ビジー信号ＲＢｎの状態を確認すること、あるいはメモリコントローラ２０がステータスリードコマンドを発行し、ＮＡＮＤ型フラッシュメモリチップ１０のステータス（コアレディ／コアビジーを示す情報）を取得することにより、ＮＡＮＤ型フラッシュメモリチップ１０がレディ状態であると判断する。メモリコントローラ２０はＮＡＮＤ型フラッシュメモリチップ１０に対してデータ転送（データアウト）動作を行うようにデータ転送に関するコマンド（０５Ｈ、Ｅ０Ｈ）及びアドレスを発行する。このような、データ転送に関するコマンド及びアドレスのセットを、データ転送コマンドセットとも記載する。また、データ転送コマンドセットを発行することを、データ転送要求とも記載する。ＮＡＮＤ型フラッシュメモリチップ１０は、データ転送コマンドセットを受信すると、データ転送動作（Ｓ２）を行い、読み出しデータ（Ｄａｔａ）を入出力バスを経由してメモリコントローラ２０へ転送する。
【００５５】
高いリード性能を発揮するためには、メモリコントローラ２０にて、ＮＡＮＤ型フラッシュメモリチップ１０のセンス動作の完了を遅滞なく検出し、なるべく早くデータ転送動作を開始する必要がある。
【００５６】
センス動作の完了を検出する方法は例えば２つ考えられる。
【００５７】
［完了検出方法１］
一つ目の完了検出方法は、メモリコントローラ２０が、ＮＡＮＤ型フラッシュメモリチップ１０のレディ／ビジー信号の変化を監視する方法である。
【００５８】
［完了検出方法２］
二つ目の完了検出方法は、メモリコントローラ２０が、ステータスリードコマンドを用いてポーリングする方法である。
【００５９】
以下に、上記２つの完了検出方法を採用した場合に起こりうる課題について説明する。
【００６０】
＜１−２−１−１＞完了検出方法１を採用した場合に起こりうる課題
以下に、完了検出方法１を採用した場合に起こりうる課題について説明する。
【００６１】
＜１−２−１−１−１＞個別配線
ＮＡＮＤ型フラッシュメモリチップ１０とメモリコントローラ２０との間でレディ／ビジー信号の送受信を行う場合、レディ／ビジー信号を送受信する配線の方法として２種類考えられる。
【００６２】
配線の方法の１つとして、図９に示すように、１個のＮＡＮＤ型フラッシュメモリチップ１０に対して、１つのレディ／ビジー信号の配線と、メモリコントローラ２０の１個のレディ／ビジーピン（レディ／ビジー信号の配線が接続されるピン）を用いる個別配線が考えられる。例えば、４個のＮＡＮＤ型フラッシュメモリチップ１０がメモリコントローラ２０に接続される場合、４つのレディ／ビジー信号ＲＢｎ１〜ＲＢｎ４が用意され、４本のレディ／ビジー信号の配線と、４個のレディ／ビジーピンを設ける必要がある。
【００６３】
完了検出方法１を採用した場合、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０のレディ／ビジーの切り替わりを遅滞することなく知ることができ得る。しかし、このような個別配線を採用する場合、ＮＡＮＤ型フラッシュメモリチップ１０の数が増えると、レディ／ビジー信号の配線と、レディ／ビジーピンの数が増加する。これにより、メモリコントローラのチップ面積の増大、メモリコントローラのパッケージ面積の増大、メモリシステムの基板面積の増大、またはメモリシステムの基板の配線が複雑になるという課題がある。また、その結果コストアップしてしまうという課題もある。
【００６４】
＜１−２−１−１−２＞共有配線
配線の１つとして、図１０に示すように、複数（例えば４個）のＮＡＮＤ型フラッシュメモリチップ１０に対して、１本のレディ／ビジー信号の配線と、１本のレディ／ビジー信号の配線が接続される１個のメモリコントローラ２０のレディ／ビジーピンを用いる共有配線が考えられる。例えば、４個のＮＡＮＤ型フラッシュメモリチップ１０がメモリコントローラ２０に接続される場合、１つのレディ／ビジー信号ＲＢｎが用意され、１本のレディ／ビジー信号の配線と、１個のレディ／ビジーピンを設ける。 レディ／ビジー信号は各ＮＡＮＤ型フラッシュメモリチップ１０からオープンドレインでドライブされるため、４個のＮＡＮＤ型フラッシュメモリチップ１０のうち、どれか１個でもロー(ビジー状態)をドライブすると、メモリコントローラ２０からはレディ／ビジー信号はロー(ビジー状態)に見える。
【００６５】
４個のＮＡＮＤ型フラッシュメモリチップ１０が共有配線にてメモリコントローラ２０に接続され、例えば４個中２個のＮＡＮＤ型フラッシュメモリチップ１０がビジー状態の場合、メモリコントローラ２０は、どの２個のＮＡＮＤ型フラッシュメモリチップ１０がレディ状態なのか正確に特定できない。そのため、後述するステータスリードコマンドを、４個のＮＡＮＤ型フラッシュメモリチップ１０に個別に発行することで、レディ状態のＮＡＮＤ型フラッシュメモリチップ１０を特定しなければならない。
【００６６】
＜１−２−１−２＞完了検出方法２を採用した場合に起こりうる課題
以下に、完了検出方法２を採用した場合に起こりうる課題について説明する。
【００６７】
図１１に示すように、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に対して、ステータスリードコマンド（７０Ｈ）を含むステータスリードコマンドセットを発行することで、ＮＡＮＤ型フラッシュメモリチップ１０の状態（ステータス）を把握することができ得る。このような、ステータスリードに関するコマンドのセットを、ステータスリードコマンドセットとも記載する。このようなステータスリードコマンドセットの発行を、ステータスリード要求とも記載する。
【００６８】
メモリコントローラ２０は、「センス動作が終了した」というステータス情報が得られるまで、ステータスリードコマンドセットの発行を繰り返すこととなる。このような繰り返しをポーリングとも記載する。図１１に示すようにポーリングの頻度が高いと、入出力バスＩ／Ｏの使用効率が悪くなり、また、消費電力も高くなるという課題がある。
【００６９】
他方で、図１２に示すように、ポーリングの頻度が低いと、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０の状態変化の検知が遅れる。その結果、結果がビジー状態であったポーリングの後、ＮＡＮＤ型フラッシュメモリチップ１０がレディ状態になっても、次のポーリングまでメモリコントローラ２０が待機し、その後ポーリングすることとなる。そのため、メモリコントローラ２０は次のポーリングを行い、ＮＡＮＤ型フラッシュメモリチップ１０がレディ状態であると知るまでの無駄な待ち時間が生じるという課題がある。
【００７０】
また、センス動作時間のばらつきが大きい場合、ポーリングの頻度の最適化は容易ではない。
【００７１】
＜１−２−２＞基本方針
以下に、本実施形態の基本方針について説明する。
【００７２】
上述したように、センス動作の完了を検出しようとすると、上述したような課題が出てくる。ところで、センス動作の実際に完了する時刻Ｔｅ＿ａｃｔｕａｌと、推定したセンス動作の完了時刻Ｔｅ＿ｅｓｔと、を一致させることができれば、上述した課題は解決する。図１３に示すように、センス動作の完了を推定するためには、センス動作の実際の動作時間（ビジー時間）ｔＲ＿ａｃｔｕａｌと、推定したセンス動作の動作時間ｔＲ＿ｅｓｔと、を一致させるという課題１がある。また、センス動作の完了を推定するためには、センス動作を実際に開始した時刻（センス動作の実際の開始時刻または開始実績時刻）Ｔｓ＿ａｃｔｕａｌと、推定したセンス動作の開始時刻Ｔｓ＿ｅｓｔと、を一致させるという課題２がある。そこで、図１３に示すように、課題１と、課題２と、を解決することを本実施形態の基本方針とする。
【００７３】
以下に、課題１の解決手段１及び課題２の解決手段２について説明する。
【００７４】
＜１−２−２−１＞課題１の解決手段
課題１の解決手段１としては、大きく分けて後述する２種類の解決手段が考えられる。
【００７５】
＜１−２−２−１−１＞解決手段１（Ａ）
課題１の解決手段１（Ａ）では、メモリコントローラ２０が、リード条件毎のビジー時間（センス動作の動作時間）を、リード動作を行う前にあらかじめ把握し、リードコマンドセットの発行時にリード条件に応じて待ち時間を選択する。なお、リード条件とは、例えば、リード方法の種類と、記憶方式の種類と、ワード線内のページ種別のいずれかひとつ以上を意味する。リード方法の種類の具体例としては、ファストリード／ノーマルリード／ＤＬＡリードがある。また、記憶方式の具体例としては、ＳＬＣ方式／ＭＬＣ方式／ＴＬＣ方式／ＱＬＣ方式（Quadruple-Level Cell方式：１つのメモリセルトランジスタＭＴに４ビットデータを記憶させる方式）がある。また、ワード線内のページ種別とは、ＭＬＣ方式の場合、ロワーページと、アッパーページを意味し、ＴＬＣ方式の場合、は、ロワーページと、ミドルページと、アッパーページと、がある。また、リード条件として、ワード線アドレス、ワード線グループ、またはＮＡＮＤ型フラッシュメモリチップ１０のアドレスが含まれても良い。ワード線グループとは、複数のワード線を一つのグループとして取り扱う考え方である。例えば、ワード線ＷＬ０〜ＷＬ３をワード線グループＷＧＰ１、ワード線ＷＬ４〜ＷＬ７をワード線グループＷＧＰ２とグルーピングしたりする。また、ノーマルリードの動作時間は、ファストリードの動作時間よりも長くなる。ＤＬＡリードとは、大きくは「事前読み出し」と「本読み出し」とを含む。事前読み出しとは、本来、データを読み出したいワード線ＷＬにドレイン側で隣り合うワード線ＷＬに接続されたメモリセルトランジスタＭＴからデータを読み出す動作である。そして本読み出しが、本来の読み出し対象であるワード線ＷＬからデータを読み出す動作である。そのため、ＤＬＡリードの動作時間は、ノーマルリードの動作時間よりも長くなる。
【００７６】
＜１−２−２−１−２＞解決手段１（Ｂ）
課題１の解決手段１（Ｂ）では、メモリコントローラ２０が、リードコマンドセットの発行時に、ＮＡＮＤ型フラッシュメモリチップ１０に対して、ＮＡＮＤ型フラッシュメモリチップ１０が予定しているビジー時間を問い合わせる。
【００７７】
＜１−２−２−２＞課題２の解決手段
課題２の解決手段２としては、大きく分けて後述する２種類の解決手段が考えられる。
【００７８】
＜１−２−２−２−１＞解決手段２（Ａ）
課題２の解決手段２（Ａ）では、メモリコントローラ２０は、リードコマンドセットの発行時刻（もしくはコマンドセットの発行時刻にオフセットを加えた時刻）を、センス動作の開始時刻とみなす。
【００７９】
＜１−２−２−２−２＞解決手段２（Ｂ）
課題２の解決手段２（Ｂ）では、メモリコントローラ２０が、リードコマンドセットの発行時に、ＮＡＮＤ型フラッシュメモリチップ１０に対して、センス動作の実際の開始時刻Ｔｓ＿ａｃｔｕａｌを問い合わせる。
【００８０】
センス動作の完了を推定するためには、課題１及び課題２を共に解決する必要がある。つまり、センス動作の完了を推定するためには、解決手段１（Ａ）または解決手段１（Ｂ）のうちのいずれかを採用し、且つ解決手段２（Ａ）または解決手段２（Ｂ）のうちのいずれかを採用する。
【００８１】
上記解決手段は種々組み合わせる事ができ得る。第１実施形態では、解決手段１（Ａ）及び解決手段２（Ａ）を採用する場合について説明する。他の組み合わせについては、別の実施形態にて説明する。
【００８２】
＜１−２−３＞第１実施形態のリード動作
以下に、第１実施形態のリード動作について説明する。上述したように、第１実施形態では、解決手段１（Ａ）及び解決手段２（Ａ）を採用する。
【００８３】
解決手段１（Ａ）として、ｔＲテーブルから、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する方法を採用する。
【００８４】
ｔＲテーブルとは、リード条件に基づいてセンス動作時間(ビジー時間) ｔＲ＿ｅｓｔが設定されているテーブルである。ｔＲテーブルは、メモリセルアレイ１１における、メモリコントローラ２０がアクセスできる部分、またはＮＡＮＤ型フラッシュメモリチップ１０自身のための管理情報を記憶している部分（ロムフューズ）に記憶されてもよい。また、ｔＲテーブルは、ステータスレジスタ１５Ａに記憶されてもよい。また、ｔＲテーブルは、内蔵メモリ２３に記憶されてもよい。
【００８５】
図１４に、ｔＲテーブルの例を示す。図１４では、簡単のため、記憶方式がＴＬＣ方式の場合のｔＲテーブルの例を示している。
【００８６】
図１４に示すように、例えば、ファストリードのｔＲはノーマルリードのｔＲの１割短く、ＤＬＡリードのｔＲはノーマルリードのｔＲの３倍である。具体的には、ＴＬＣ方式において、ロワーページにファストリードを行う際のｔＲは３６μｓである。ロワーページにノーマルリードを行う際のｔＲは４０μｓである。ロワーページにＤＬＡリードを行う際のｔＲは１２０μｓである。また、ミドルページにファストリードを行う際のｔＲは６３μｓである。ミドルページにノーマルリードを行う際のｔＲは７０μｓである。ミドルページにＤＬＡリードを行う際のｔＲは２１０μｓである。更に、アッパーページにファストリードを行う際のｔＲは３６μｓである。アッパーページにノーマルリードを行う際のｔＲは４０μｓである。アッパーページにＤＬＡリードを行う際のｔＲは１２０μｓである。
【００８７】
なお、ｔＲテーブルは、ＮＡＮＤ型フラッシュメモリチップ１０の評価結果に基づいて生成される。また、ｔＲテーブルは、ＮＡＮＤ型フラッシュメモリチップ１０の設計時、ＮＡＮＤ型フラッシュメモリチップ１０の製造時、メモリシステム１の設計時、あるいはメモリシステム１の製造時に生成し、ＮＡＮＤ型フラッシュメモリチップ１０等のメモリシステム１内の不揮発メモリに不揮発に記憶される。
【００８８】
＜１−２−３−１＞動作フロー
図１５、図１６を用いて、第１実施形態のリード動作の流れについて説明する。
【００８９】
［Ｓ１００］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０のメモリセルアレイ１１に記憶されているｔＲテーブルを、メモリシステムの起動時にＤＲＡＭ３０に記憶する。
【００９０】
またこのステップＳ１００は、メモリシステム１が起動した際に行われれば良く、ｔＲテーブルがＤＲＡＭ３０に記憶されている限り、スキップされても良い。
【００９１】
［Ｓ１０１］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に発行するリードコマンドセットの条件（リード条件）に基づいて、ＤＲＡＭ３０に記憶されているｔＲテーブルから、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する。取得されたセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔは、例えば、ＲＡＭ２３や、プロセッサ２１内の図示しない記憶部に一時記憶される。
【００９２】
［Ｓ１０２］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセットを発行する。
【００９３】
［Ｓ１０３］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセットを発行すると、タイマ２２を用いてリードコマンドセットを発行してから（ステップＳ１０２から）の経過時間の計測を開始する。
【００９４】
［Ｓ１０４］
メモリコントローラ２０は、ステップＳ１０２からの経過時間が、ＤＲＡＭ３０から取得したセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上か否かを判定する。ステップＳ１０２からの経過時間が、センス動作時間ｔＲ＿ｅｓｔ以上であると判定しない場合（ステップＳ１０４、ＮＯ）、ステップＳ１０４を繰り返す。
【００９５】
［Ｓ１０５］
一方、メモリコントローラ２０は、ステップＳ１０２からの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合（ステップＳ１０４、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に、データ転送コマンドセットを発行する。つまり、メモリコントローラ２０は、レディ／ビジー線から受信するレディ／ビジーを確認しない、且つステータスリードを行わないで、データ転送コマンドセットを発行する。すなわち、メモリコントローラ２０は、レディ／ビジー信号線を必要としない。なお、変形例として、メモリコントローラ２０は、ステップＳ１０２からの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合であっても、更に念のためにＮＡＮＤ型フラッシュメモリチップ１０に対してステータスリードを行っても良い。メモリコントローラ２０は、このステータスリードを行うことで、ＮＡＮＤ型フラッシュメモリチップ１０が確実にレディ状態であることを知ることができる。
【００９６】
上述したように、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０にセンス動作を開始させてから、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ経過後に、データ転送要求を行っている。そのため、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作が終了して、すぐにデータ転送要求を受信するので、センス動作にて読み出されていたデータを、メモリコントローラ２０に遅滞なく転送することができ得る。
【００９７】
＜１−２−３−２＞動作シーケンス
図１７を用いて、第１実施形態のリード動作のシーケンス例について説明する。ここでは、簡単のため、既にｔＲテーブルがＤＲＡＭ３０に記憶されている場合について説明する。
【００９８】
時刻Ｔ０〜時刻Ｔ２において、メモリコントローラ２０は、ステップＳ１０１を行う。具体的には、時刻Ｔ０〜時刻Ｔ１において、メモリコントローラ２０は、ＤＲＡＭ３０にセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔを要求する。時刻Ｔ１〜時刻Ｔ２において、メモリコントローラ２０は、ＤＲＡＭ３０のｔＲテーブルから、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する（解決手段１（Ａ））。
【００９９】
時刻Ｔ２において、メモリコントローラ２０は、リードコマンドセットを発行し、時間の計測を開始する（ステップＳ１０２及びステップＳ１０３を行う）。メモリコントローラ２０は、リードコマンドセット発行時刻Ｔ２を Ｔｓ＿ｅｓｔとし、すなわち、時刻Ｔ２を、センス動作の開始時刻Ｔｓ＿ａｃｔｕａｌとみなし（解決手段２（Ａ））、リードコマンドセットを発行した時刻Ｔ２から、時間ｔＲ＿ｅｓｔだけ待機する。
【０１００】
ＮＡＮＤ型フラッシュメモリチップ１０は、時刻Ｔ２から時間ｔＤ経過後の時刻Ｔ３においてリードコマンドセットを受信するとセンス動作を開始し、ビジー状態となる。なお、この時間ｔＤは、メモリコントローラ２０からＮＡＮＤ型フラッシュメモリチップ１０へのコマンドセットが送られてくるまでの時間である。
【０１０１】
メモリコントローラ２０は、時刻Ｔ２から時間ｔＲ＿ｅｓｔ経過後の時刻Ｔ４においてデータ転送コマンドセットを送信する（ステップＳ１０５を行なう）。
【０１０２】
ＮＡＮＤ型フラッシュメモリチップ１０は、時刻Ｔ３から時間ｔＲ＿ｅｓｔ経過後（時刻Ｔ４から時間ｔＤ経過後）の時刻Ｔ５において、データ転送コマンドセットを受信し、センス動作によりメモリセルから読み出したデータを、メモリコントローラ２０に転送する。
【０１０３】
メモリコントローラ２０がステップＳ１０５を行った時点では、ＮＡＮＤ型フラッシュメモリチップ１０では、まだセンス動作が終了していない場合がある。しかし、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０がステップＳ１０５を行ってから時間ｔＤ経過後、つまりセンス動作が終了した後にコマンドセットを受信する。そのため、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作が終了して間をおかずにデータをメモリコントローラ２０に転送することができ得る。なお、時刻Ｔ２―時刻Ｔ３間と、時刻Ｔ４―時刻Ｔ５間とが等しくなくても良い。メモリコントローラ２０は、時刻Ｔ２から時間ｔＲ＿ｅｓｔだけ待機し、更に追加の所定時間ｔＤだけ待ってからデータ転送コマンドセットを送信（ステップＳ１０５）しても良い。これにより、時刻Ｔ２―時刻Ｔ３間が、時刻Ｔ４―時刻Ｔ５間よりも長い場合であっても、ＮＡＮＤ型フラッシュメモリチップ１０は、コマンドセットを適切に受信することができる。
【０１０４】
＜１−３＞効果
上述した実施形態によれば、メモリコントローラ２０は、リードコマンドセットの発行時にｔＲテーブルからリード条件に応じて待機時間を選択し（解決手段１）、且つリードコマンドセットの発行時刻をセンス動作の開始時刻とみなす（解決手段２）。これにより、メモリコントローラ２０は、センス動作の完了を推定することができ得る。
【０１０５】
その結果、完了検出方法１及び２を採用した場合に起こりうる課題を解消することができ得る。そのため、信号線配線が増えることによるコスト増加や、頻繁なポーリングによる入出力バスＩ／Ｏの占有及び高い電力消費を抑制し、また無駄な待ちを抑制することで性能向上でき得る。つまり、高いリード性能を発揮するメモリシステムを提供することが可能となる。
【０１０６】
＜２＞第２実施形態
第２実施形態について説明する。第２実施形態では、基本方針として解決手段１（Ａ）及び解決手段２（Ｂ）を採用する場合について説明する。尚、第２実施形態に係る装置の基本的な構成及び基本的な動作は、上述した第１実施形態に係る装置と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０１０７】
＜２−１＞基本方針
第２実施形態では、基本方針として解決手段１（Ａ）及び解決手段２（Ｂ）を採用する場合について説明する。
【０１０８】
＜２−１−１＞センス動作の開始時刻の予測の困難性
ＮＡＮＤ型フラッシュメモリチップ１０が、データの書き込み動作（プログラム動作と、プログラムによりプログラム対象のメモリセルが所定の閾値電圧になったかどうかをチェックする動作（プログラムベリファイ動作）を含む。また、プログラム動作とプログラムベリファイ動作の組をプログラムループと記載しても良い）であるプログラム動作を行っている最中に、センス動作を行う場合、センス動作の開始時刻の予測が困難な事がある。
【０１０９】
ここでは、図１８を用いて、プログラムをサスペンドし、センス動作を行わせる例について説明する。また、以下ではキャッシュプログラムを例に説明する。キャッシュプログラムとは、メモリセルアレイ１１へのプログラム動作時に、使用されていないキャッシュ（データラッチ１２Ｂ）が存在する場合、プログラム動作に並行して、新たな書込みデータの一部を、メモリコントローラ２０から当該使用されていないキャッシュに転送する手法である。ＮＡＮＤ型フラッシュメモリチップ１０が、連続して複数のページに対してプログラム動作を行う際、メモリコントローラ２０は、あるページ（例えば第１ページ）のプログラム動作と、第１ページの次のページの書込みデータの転送を同時に行うことで、メモリシステム１の性能を向上させることができる。つまり、メモリコントローラ２０は、キャッシュプログラム動作を行うことで、このような効果を得ることができる。また、ＮＡＮＤ型フラッシュメモリチップ１０は、キャッシュプログラム動作の途中で、キャッシュプログラム動作を中断（サスペンド）し、中断後にリード動作を行い、リード動作終了後に中断したプログラム動作を再開することがある。このように、キャッシュプログラム動作を中断してリード動作をする場合、キャッシュプログラム動作の完了を待ってリード動作をする場合と比べて、リードレイテンシが改善する。ただし、ＮＡＮＤ型フラッシュメモリチップ１０は、リード動作時に空いているデータラッチを必要とする。そのため、ＮＡＮＤ型フラッシュメモリチップ１０は、キャッシュプログラム動作を中断してリード動作をする場合、プログラム動作が進行してデータラッチに空きが生じる(キャッシュレディ状態になる)まで待つ必要がある。なお、キャッシュレディ状態になるための条件としては、データラッチに空きが生じること、例えば、所定のレベルまでプログラムが完了することである。
【０１１０】
なお、図１８において、レディ／ビジー信号ＲＢｎは、例えば配線されていないか、複数のＮＡＮＤ型フラッシュメモリチップ１０で共有されているため、メモリコントローラ２０からは直接見えないものとする。
【０１１１】
時刻Ｔ１０において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０の入出力バスＩ／Ｏに、キャッシュプログラムコマンドセットを発行する。キャッシュプログラムコマンドセットとは、キャッシュプログラムに関するコマンドのセットを意味する。
【０１１２】
時刻Ｔ１１において、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュプログラムコマンドセットを受信すると、メモリセルアレイ１１に対してキャッシュプログラム動作を開始する。そして、ＮＡＮＤ型フラッシュメモリチップ１０はレディ／ビジー信号ＲＢｎをレディ状態からビジー状態に遷移させる。
【０１１３】
キャッシュプログラム動作の場合、データラッチ１２Ｂが空いたタイミングでキャッシュレディ状態となり、コマンドを受け付ける。そのため、時刻Ｔ１２において、ＮＡＮＤ型フラッシュメモリチップ１０はキャッシュプログラム動作の途中でレディ／ビジー信号ＲＢｎをビジー状態からレディ状態に遷移させる。これは、リードコマンドや次のプログラムのためのデータ転送コマンドが受付可能であることを示す。ＮＡＮＤ型フラッシュメモリチップ１０はキャッシュプログラム動作の場合、データラッチ１２Ｂにて、データの受信が可能、つまり、データラッチの記憶領域が空いたタイミングで、キャッシュレディ状態となる。
【０１１４】
時刻Ｔ１２において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０の入出力バスＩ／Ｏに、ステータスリードコマンドセットを発行する。これにより、時刻Ｔ１３〜時刻Ｔ１４において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態であることを認識できる。なお、本例では、たまたまステータスリードコマンドセットの発行の時点で、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態となっているが、ステータスリードコマンドセットの発行の時点で、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態でない場合もある。この場合、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態であることを認識するまでステータスリードコマンドセットの発行を繰り返す。
【０１１５】
時刻Ｔ１５においてメモリコントローラ２０は、メモリセルアレイ１１に対してキャッシュプログラムを行っているＮＡＮＤ型フラッシュメモリチップ１０の入出力バスＩ／Ｏに、リードコマンドセットを発行する。
【０１１６】
レディ／ビジー信号ＲＢｎは、時刻Ｔ１２にビジー状態からレディ状態になるが、実際はメモリセルアレイ１１に対してプログラムが継続されているコアビジー状態である。また、ＮＡＮＤ型フラッシュメモリチップ１０は、リードコマンドセットを受信してすぐにリード動作を行うわけではない。そのため、メモリコントローラ２０は、リードコマンドセットの発行時刻を、センス動作開始時刻としてみなせない。
【０１１７】
時刻Ｔ１６において、ＮＡＮＤ型フラッシュメモリチップ１０がリードコマンドセットを受信すると、実行中のキャッシュプログラムをサスペンドすることを決定する。キャッシュプログラムのサスペンドを行う際は、適当なところまで（例えばプログラム動作及びプログラムベリファイ動作の組（プログラムループ）を終えるまで）キャッシュプログラムを行った後にサスペンドされる（時刻T１７）。
【０１１８】
また、時刻Ｔ１６において、リードコマンドセットを受け付けるとレディ／ビジー信号ＲＢｎはビジー状態となる。しかし、時刻Ｔ１６に、ただちにセンス動作が開始されるわけではない。
【０１１９】
そのため、リードコマンドセットの発行タイミングをセンス動作の開始時刻としてみなせないので、解決手段２（Ａ）を採用する場合、メモリコントローラ２０は、センス動作の終了時刻Ｔｅ＿ａｃｔｕａｌであるＴ１８を正しく推定できない可能性がある。
【０１２０】
そこで、解決手段２（Ａ）の代わりに、解決手段２（Ｂ）を採用することが考えられる。解決手段２（Ｂ）では 、メモリコントローラ２０が、リードコマンドセットの発行後に、ＮＡＮＤ型フラッシュメモリチップ１０に、センス動作の実際の開始時刻Ｔｓ＿ａｃｔｕａｌを問い合わせる。
【０１２１】
＜２−１−２＞解決手段２（Ｂ）のバリエーション
ここでは、解決手段２（Ｂ）についてより詳細に説明する。
【０１２２】
メモリコントローラ２０が、センス動作の実際の開始時刻Ｔｓ＿ａｃｔｕａｌを問い合わせる方法として、おおまかに２つの方法が考えられる。
【０１２３】
＜２−１−２−１＞解決手段２（Ｂ−１）
-        解決手段２（Ｂ）の一つ目のバリエーション（解決手段２（Ｂ−１））として、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセット発行前の動作のサスペンド予定時刻を問い合わせる。サスペンド予定時刻とは、リードコマンドセット発行前の動作、つまり、プログラム動作やイレーズ動作のサスペンドあるいは完了、またはキャッシュリード動作中のセンス動作完了の予定時刻を意味する。そしてメモリコントローラ２０は、サスペンド予定時刻(あるいはそれ以降)まで待ち、ＮＡＮＤ型フラッシュメモリチップ１０に、センス動作の開始実績時刻Ｔｓ＿ａｃｔｕａｌを問い合わせる。
【０１２４】
＜２−１−２−２＞解決手段２（Ｂ−２）
解決手段２（Ｂ）の二つ目のバリエーション（解決手段２（Ｂ−２））では、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に対して、センス動作の開始実績時刻が得られるまで、センス動作の開始実績時刻Ｔｓ＿ａｃｔｕａｌの問い合わせを繰り返す。
【０１２５】
第２実施形態では、解決手段１（Ａ）及び解決手段２（Ｂ−１）を採用する場合について説明する。
【０１２６】
＜２−２＞第２実施形態のリード動作
以下に、第２実施形態のリード動作について説明する。
【０１２７】
＜２−２−１＞動作フロー
図１９を用いて、キャッシュプログラム後のリード動作について説明する。
【０１２８】
［Ｓ２００］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、キャッシュプログラムコマンドセットを発行する。これにより、ＮＡＮＤ型フラッシュメモリチップ１０はキャッシュプログラムを実行する。
【０１２９】
［Ｓ２０１］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、ステータスリードコマンドセットを発行する。ＮＡＮＤ型フラッシュメモリチップ１０は、ステータスリードコマンドセットを受信すると、メモリコントローラ２０にステータス（キャッシュレディ／キャッシュビジー状態）を送信する。
【０１３０】
［Ｓ２０２］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態であるか否かを判定する。メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態でないと判定する場合（Ｓ２０２、ＮＯ）、ステップＳ２０１を繰り返す。
【０１３１】
［Ｓ２０３］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態であると判定する場合（Ｓ２０２、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセットを発行する。ＮＡＮＤ型フラッシュメモリチップ１０はリードコマンドセットを受信すると、キャッシュプログラムのサスペンド、及びセンス動作の実行を決定する。ＮＡＮＤ型フラッシュメモリチップ１０はキャッシュプログラムのサスペンド、及びセンス動作の実行を決定すると、適当な所までプログラムを行い、その後プログラムをサスペンドする。その後、センス動作を開始する。そのため、ＮＡＮＤ型フラッシュメモリチップ１０は、リードコマンドセットを受信してすぐにセンス動作を開始するわけではない。また、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュプログラム中にリードコマンドセットを受信すると、ＮＡＮＤ型フラッシュメモリチップ１０は、キャッシュプログラムの適当な所に達する時刻、つまりキャッシュプログラムのサスペンド予定時刻を導出し、ステータスレジスタ１５Ａに記憶する。なお、ＮＡＮＤ型フラッシュメモリチップ１０は、キャッシュプログラム中にリードコマンドセットを受信するとキャッシュプログラムのサスペンド予定時刻を確実に予測できるとは限らない。キャッシュレディ状態となるタイミングは、メモリセルの書き込みの状態に依存する場合があるため、動的に変化することがある。そのため、ＮＡＮＤ型フラッシュメモリチップ１０は、おおまかな目安時刻をメモリコントローラ２０に通知し、メモリコントローラ２０は、目安時刻になったら、ステータスリードコマンドを用いて、ＮＡＮＤ型フラッシュメモリチップ１０のレディ／ビジー状態を確認することが考えられる。他方で、ＮＡＮＤ型フラッシュメモリチップ１０は、サスペンド予定時刻が確実に予想できる状態になるまでは「未定」という旨の応答をメモリコントローラ２０に対して行い、メモリコントローラ２０はサスペンド予定時刻が得られるまで問い合わせを繰り返す実施形態もある。
【０１３２】
［Ｓ２０４］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に対し、ステップＳ２００にて実行開始を指示したキャッシュプログラムのサスペンド予定時刻Ｔｐを問い合わせる。キャッシュプログラムのサスペンド予定時刻Ｔｐは、例えばステータスレジスタ１５Ａに記憶されている。ＮＡＮＤ型フラッシュメモリチップ１０は、ステータスレジスタ１５Ａに記憶されているキャッシュプログラムのサスペンド予定時刻Ｔｐを、メモリコントローラ２０に供給する。
【０１３３】
［Ｓ２０５］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に発行するリードコマンドセットの条件に基づいて、ＤＲＡＭ３０に記憶されているｔＲテーブルから、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する。
【０１３４】
なお、ここでは、簡単のため、図１５のステップＳ１００に相当するｔＲテーブルをＤＲＡＭ３０に記憶する動作の説明を省略している。ステップＳ１００に相当する動作は、ステップＳ２０５よりも前に行われていれば良い。また、ステップＳ２０５は、ステップＳ２０３よりも前に行われても良い。
【０１３５】
［Ｓ２０６］
メモリコントローラ２０は、現在の時刻が、ＮＡＮＤ型フラッシュメモリチップ１０から取得したサスペンド予定時刻Ｔｐ以降か否かを判定する。メモリコントローラ２０は、現在の時刻が、ＮＡＮＤ型フラッシュメモリチップ１０から取得したサスペンド予定時刻Ｔｐ以降でないと判定する場合（ステップＳ２０６、ＮＯ）、ステップＳ２０６を繰り返す。
【０１３６】
［Ｓ２０７］
メモリコントローラ２０は、現在の時刻が、ＮＡＮＤ型フラッシュメモリチップ１０から取得したサスペンド予定時刻Ｔｐ以降であると判定する場合（ステップＳ２０６、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に対し、ステップＳ２０３にて発行したリードコマンドのセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを問い合わせる。センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔは、例えばセンス動作の開始後、ステータスレジスタ１５Ａに記憶される。ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作の開始実績時刻問い合わせ（一例としてステータスリード要求）を受信すると、ステータスレジスタ１５Ａに記憶されているステップＳ２０３にて発行したリードコマンドのセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを、メモリコントローラ２０に供給する。
【０１３７】
［Ｓ２０８］
メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを取得すると、現在の時刻とセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔの差を計算する。そして、メモリコントローラ２０は、現在の時刻とセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔの差、つまり、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上か否かを判定する。メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上でないと判定する場合（ステップＳ２０８、ＮＯ）、ステップＳ２０８を繰り返す。
【０１３８】
［Ｓ２０９］
メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合（ステップＳ２０８、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に、データ転送コマンドセットを発行する。なお、変形例として、メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合であっても、更に念のためにＮＡＮＤ型フラッシュメモリチップ１０に対してステータスリードを行っても良い。メモリコントローラ２０は、このステータスリードを行うことで、ＮＡＮＤ型フラッシュメモリチップ１０が確実にレディ状態であることを知ることができ、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを受信させることができる。
【０１３９】
ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作にて読み出されていたデータを、メモリコントローラ２０に遅滞なく転送することができ得る。
【０１４０】
＜２−２−２＞動作シーケンス
図２０を用いて、第２実施形態のリード動作のシーケンス例について説明する。
【０１４１】
ここでは、一例として、キャッシュプログラムをサスペンドし、センス動作を行わせる場合について説明する。
【０１４２】
なお、図２０において、レディ／ビジー信号ＲＢｎは、例えば配線されていないか、複数のＮＡＮＤ型フラッシュメモリチップ１０で共有されているため、メモリコントローラ２０からは直接見えないものとする。
【０１４３】
時刻Ｔ２０において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０の入出力バスＩ／Ｏに、キャッシュプログラムコマンドセットを発行する。
【０１４４】
時刻Ｔ２１において、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュプログラムコマンドセットを受信すると、メモリセルアレイ１１に対してキャッシュプログラム動作を開始する。そして、レディ／ビジー信号ＲＢｎはビジー状態となる。
【０１４５】
時刻Ｔ２２において、キャッシュプログラム動作開始後、所定時間後にキャッシュレディになる場合、例えばプログラム動作の進捗によりデータラッチに空きができる場合、レディ／ビジー信号ＲＢｎはキャッシュレディ状態となる。
【０１４６】
時刻Ｔ２２において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０の入出力バスＩ／Ｏに、ステータスリードコマンドセット（７０Ｈ）を発行する。これにより、時刻Ｔ２３〜時刻Ｔ２４において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態であることを認識できる。なお、本例では、たまたまステータスリードコマンドセットの発行の時点で、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態となっているが、ステータスリードコマンドセットの発行の時点で、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態でない場合もある。この場合、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュレディ状態であることを認識するまでステータスリードコマンドセットの発行を繰り返す。
【０１４７】
時刻Ｔ２４においてメモリコントローラ２０は、メモリセルアレイ１１に対してキャッシュプログラムを行っているＮＡＮＤ型フラッシュメモリチップ１０の入出力バスＩ／Ｏに、リードコマンドセットを発行する。
【０１４８】
時刻Ｔ２５において、ＮＡＮＤ型フラッシュメモリチップ１０がリードコマンドセットを受信すると、ＮＡＮＤ型フラッシュメモリチップ１０は実行中のキャッシュプログラムをサスペンドすることを決定する。キャッシュプログラムのサスペンドを行う際、ＮＡＮＤ型フラッシュメモリチップ１０は、リードコマンドセットを受信した直後にプログラムをサスペンドできるとは限らず、適当なところまでプログラムを行った後にプログラムをサスペンドする。ＮＡＮＤ型フラッシュメモリチップ１０がキャッシュプログラム中にリードコマンドセットを受信すると、ＮＡＮＤ型フラッシュメモリチップ１０は、キャッシュプログラムの適当な所に達する時刻、つまりキャッシュプログラムのサスペンド予定時刻を導出し、ステータスレジスタ１５Ａに記憶する。ただし、サスペンド予定時刻Ｔｐは、ベリファイ結果に依存するので、ＮＡＮＤ型フラッシュメモリチップ１０はサスペンド予定時刻Ｔｐをただちに決定できるとは限らない。また、時刻Ｔ２５おいて、リードコマンドを受信した時点でレディ／ビジー信号ＲＢｎはビジー状態となるが、この時点ではセンス動作は開始されず、時刻Ｔ２９に開始される。
【０１４９】
時刻Ｔ２６において、メモリコントローラ２０は、実行中のキャッシュプログラムのサスペンド予定時刻Ｔｐを問い合わせるためのサスペンド予定時刻問い合わせコマンド（一例としてステータスリードコマンドセット）を発行する。
【０１５０】
時刻Ｔ２７において、ＮＡＮＤ型フラッシュメモリチップ１０は、ステータスレジスタ１５Ａに記憶されている、ステップＳ２００にて実行開始を指示されたキャッシュプログラムのサスペンド予定時刻Ｔｐを、メモリコントローラ２０に供給する。
【０１５１】
時刻Ｔ２８において、メモリコントローラ２０は、キャッシュプログラムのサスペンド予定時刻Ｔｐを受け取ると、サスペンド予定時刻Ｔｐ（本例では時刻Ｔ２９）まで待機する。
【０１５２】
キャッシュプログラムのサスペンド予定時刻Ｔｐである時刻Ｔ２９において、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作を開始し、ステータスレジスタ１５Ａに、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを記憶する。この例では、ＮＡＮＤ型フラッシュメモリチップ１０は、サスペンド予定時刻Ｔｐである時刻Ｔ２９にサスペンドを行い、且つ、時刻Ｔ２９にセンス動作を開始しているので、サスペンド予定時刻Ｔｐと、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔは、一致しており、ともに時刻Ｔ２９である。なお、本例ではサスペンド予定時刻Ｔｐと、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔが一致しているが、一致しない場合もありうる。
【０１５３】
メモリコントローラ２０は、時刻Ｔ２９以降のなるべく早いタイミングである時刻Ｔ３０において、ＮＡＮＤ型フラッシュメモリチップ１０に対し、実行中のセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを問い合わせるセンス動作の開始実績時刻問い合わせコマンド（一例としてステータスリードコマンドセット（ＸＡＨ））を発行する。
【０１５４】
時刻Ｔ３１において、ＮＡＮＤ型フラッシュメモリチップ１０は、ステータスレジスタ１５Ａに記憶されている実行中のセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを、メモリコントローラ２０に供給する。
【０１５５】
時刻Ｔ３２において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０からセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを受け取ると、開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔ（時刻Ｔ２９）から時間ｔＲ＿ｅｓｔだけ、すなわち時刻Ｔ３３まで待機する。なお、この時間ｔＲ＿ｅｓｔは、ｔＲテーブルから取得する。
【０１５６】
開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔから時間ｔＲ＿ｅｓｔ経過後の時刻Ｔ３３において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを発行する。
【０１５７】
これにより、時刻Ｔ３４に、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０にデータを転送する。
【０１５８】
＜２−３＞効果
上述した実施形態によれば、メモリコントローラ２０は、リードコマンドセットの発行時にひとつ前のコマンドのサスペンド予定時刻を問い合わせ、ひとつ前のコマンドのサスペンド予定時刻以降に、センス動作の開始実績時刻を問い合わせる（解決手段２（Ｂ−１））。また、メモリコントローラ２０は、リードコマンドセットの発行時にリード条件に応じて待機時間を選択する（解決手段１）。これにより、メモリコントローラ２０は、レディ／ビジー信号を用いずに、センス動作の完了を推定することができ得る。
【０１５９】
上述したようにキャッシュプログラム等の動作を行っている最中にセンス動作を行う場合、センス動作の開始時刻の予測が困難な事がある。上述した実施形態によれば、そのような場合においても、メモリコントローラ２０は、センス動作の完了を推定することができ得る。
【０１６０】
＜３＞第３実施形態
第３実施形態について説明する。第３実施形態では、基本方針として解決手段１（Ａ）及び解決手段２（Ｂ−２）を採用する場合について説明する。尚、第３実施形態に係る装置の基本的な構成及び基本的な動作は、上述した第１、及び第２実施形態に係る装置と同様である。従って、上述した第１、及び第２実施形態で説明した事項及び上述した第１、及び第２実施形態から容易に類推可能な事項についての説明は省略する。
【０１６１】
＜３−１＞基本方針
第３実施形態では、基本方針として解決手段１（Ａ）及び解決手段２（Ｂ−２）を採用する。
【０１６２】
＜３−２＞第３実施形態のリード動作
以下に、第３実施形態のリード動作について説明する。
【０１６３】
＜３−２−１＞動作フロー
図２１を用いて、キャッシュプログラム後のリード動作について説明する。
【０１６４】
［Ｓ３００］〜［Ｓ３０４］
ステップＳ３００〜Ｓ３０４は、それぞれ図１９のステップＳ２００〜Ｓ２０３、Ｓ２０５と同様の動作を行う。
【０１６５】
［Ｓ３０５］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に対し、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔの問い合わせコマンド（一例としてステータスリードコマンドセット）を発行する。
【０１６６】
ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作を開始すると、ステータスレジスタ１５Ａにセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを記憶する。そして、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０からの問い合わせに応答して、ステータスレジスタ１５Ａに記憶されているセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを、メモリコントローラ２０に供給する。
【０１６７】
ＮＡＮＤ型フラッシュメモリチップ１０は、問い合わせを受けた時点でセンス動作を開始している場合は、開始実績時刻を返信する。ＮＡＮＤ型フラッシュメモリチップ１０は、問い合わせを受けた時点でセンス動作を開始していない場合は、開始していない旨を返信する。
【０１６８】
［Ｓ３０６］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０からセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔが取得できたか否かを判定する。
【０１６９】
ＮＡＮＤ型フラッシュメモリチップ１０は、問い合わせを受けた時点でセンス動作を開始している場合は、開始実績時刻を返信するため、メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを取得したと判定する（ステップＳ３０６、ＹＥＳ）。一方、ＮＡＮＤ型フラッシュメモリチップ１０は、問い合わせを受けた時点でセンス動作を開始していない場合は、開始していない旨を返信するため、メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを取得できていないと判定し（ステップＳ３０６、ＮＯ）、ステップＳ３０５を繰り返す。
【０１７０】
［Ｓ３０７］
メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを取得すると（ステップS３０６、ＹＥＳ）、現在の時刻とセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔの差を計算する。すなわち、メモリコントローラ２０は、現在の時刻とセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔの差、つまり、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上か否かを判定する。メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上でないと判定する場合（ステップＳ３０７、ＮＯ）、ステップＳ３０７を繰り返す。
【０１７１】
［Ｓ３０８］
メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合（ステップＳ３０７、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に、データ転送コマンドセットを発行する。なお、変形例として、メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔからの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合であっても、更に念のためにＮＡＮＤ型フラッシュメモリチップ１０に対してステータスリードを行っても良い。メモリコントローラ２０は、このステータスリードを行うことで、ＮＡＮＤ型フラッシュメモリチップ１０が確実にレディ状態であることを知ることができ、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドを受信させることができる。
【０１７２】
ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作にて読み出されていたデータを、メモリコントローラ２０に遅滞なく転送することができ得る。
【０１７３】
＜３−２−２＞動作シーケンス
図２２を用いて、第３実施形態のリード動作のシーケンス例について説明する。
【０１７４】
ここでは、一例として、キャッシュプログラムをサスペンドし、センス動作を行わせる場合について説明する。
【０１７５】
なお、図２２において、レディ／ビジー信号ＲＢｎは、例えば配線されていないか、複数のＮＡＮＤ型フラッシュメモリチップ１０で共有されているため、メモリコントローラ２０からは直接見えないものとする。
【０１７６】
時刻Ｔ４０〜Ｔ４５の動作は、それぞれ図２０の時刻Ｔ２０〜Ｔ２５の動作と同様なので省略する。
【０１７７】
時刻Ｔ４６において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０の入出力バスＩ／Ｏに、センス動作の開始実績時刻問い合わせコマンド（一例としてステータスリード要求（ＸＢＨ））を発行する。ＮＡＮＤ型フラッシュメモリチップ１０は、問い合わせを受けた時点でセンス動作を開始している場合は、開始実績時刻を返信する。ＮＡＮＤ型フラッシュメモリチップ１０は、問い合わせを受けた時点でセンス動作を開始していない場合は、開始していない旨を返信する。時刻Ｔ４７〜時刻Ｔ４８において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０から、返信として開始実績時刻、またはセンス動作を開始していない旨を受信する。メモリコントローラ２０は、時刻Ｔ４６〜Ｔ５４に示すように、センス動作の開始を確認するまで、センス動作の開始実績時刻問い合わせコマンドの発行を繰り返す。
【０１７８】
時刻Ｔ５２において、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作を開始している。ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作を開始した後の時刻Ｔ５３にセンス動作の開始実績時刻問い合わせコマンドを受信するので、ステータスレジスタ１５Ａに記憶されている実行中のセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを、メモリコントローラ２０に供給する。
【０１７９】
時刻Ｔ５４において、メモリコントローラ２０は、センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを受け取ると、開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔから時間ｔＲ＿ｅｓｔだけ待機する。
【０１８０】
開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔから時間ｔＲ＿ｅｓｔ経過後の時刻Ｔ５５において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを発行する。
【０１８１】
これにより、時刻Ｔ５５〜Ｔ５６に、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０にデータを転送する。
【０１８２】
＜３−３＞効果
上述した実施形態によれば、メモリコントローラ２０は、リードコマンドセットの発行後、センス動作の開始実績時刻を繰り返し問い合わせる。これにより、第２実施形態と同様の効果を得ることができ得る。
【０１８３】
＜４＞第４実施形態
第４実施形態について説明する。第４実施形態では、基本方針として解決手段１（Ｂ）及び解決手段２（Ａ）を採用する場合について説明する。尚、第４実施形態に係る装置の基本的な構成及び基本的な動作は、メモリコントローラにｔＲテーブルを備える必要がない点以外は上述した第１実施形態に係る装置と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０１８４】
＜４−１＞基本方針
第４実施形態では、基本方針として解決手段１（Ｂ）及び解決手段２（Ａ）を採用する場合について説明する。
【０１８５】
＜４−１−１＞解決手段１（Ｂ）のバリエーション
以下に、解決手段１（Ｂ）のバリエーションについて詳細に説明する。
【０１８６】
メモリコントローラ２０が、センス動作時間を問い合わせる方法として、おおまかに２つの方法が考えられる。
【０１８７】
［解決手段１（Ｂ−１）］
解決手段１（Ｂ）の一つ目のバリエーション（解決手段１（Ｂ−１））として、メモリコントローラ２０は、リードコマンドセットの発行前に、リード条件を指定し、センス動作に要する時間（センス動作時間）をＮＡＮＤ型フラッシュメモリチップ１０に問い合わせる。ＮＡＮＤ型フラッシュメモリチップ１０は、リード条件に基づいて、センス動作時間を推定し、メモリコントローラ２０に返信する。これにより、メモリコントローラ２０は、センス動作時間を取得することができ得る。
【０１８８】
［解決手段１（Ｂ−２）］
解決手段１（Ｂ）の二つ目のバリエーション（解決手段１（Ｂ−２））として、メモリコントローラ２０は、リードコマンドセットの発行後に、センス動作時間をＮＡＮＤ型フラッシュメモリチップ１０に問い合わせる。ＮＡＮＤ型フラッシュメモリチップ１０は、直前に受信したリードコマンドに含まれるリード条件に基づいて、センス動作時間を推定し、メモリコントローラ２０に返信する。これにより、メモリコントローラ２０は、センス動作時間を取得することができ得る。
【０１８９】
第４実施形態では、解決手段１（Ｂ−１）及び解決手段２（Ａ）を採用する場合について説明する。
【０１９０】
＜４−２＞第４実施形態のリード動作
以下に、第４実施形態のリード動作について説明する。
【０１９１】
＜４−２−１＞動作フロー
図２３を用いて、第４実施形態のリード動作の流れについて説明する。
【０１９２】
［Ｓ４００］
メモリコントローラ２０は、次に発行する予定のリードコマンドを特定する。例えば、ＮＡＮＤインターフェイス回路２６にコマンドセットがＦＩＦＯ（First in first out）で記憶されるキュー（不図示）が設けられている。そして、プロセッサ２１は、キューに記憶されている最初に発行されるべきリードコマンドを特定する。
【０１９３】
［Ｓ４０１］
メモリコントローラ２０は、最初に発行されるべきリードコマンドを特定した後、特定したリードコマンドのコマンドセット（コマンド及びアドレス）の中身に基づいてリード条件を特定する。そして、メモリコントローラ２０は、特定したリード条件に基づいたセンス動作時間問い合わせコマンドを、ＮＡＮＤ型フラッシュメモリチップ１０に発行する。
【０１９４】
ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０から、センス動作時間を問い合わせるためのセンス動作時間問い合わせコマンドセットを受信すると、コマンドセットに含まれるリード条件に基づいて、ｔＲ予測部（リード条件に基づいてｔＲが算出、または記憶される部分。例えばテーブル）からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔを読み出す。そして、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔをメモリコントローラ２０に供給する。これにより、メモリコントローラ２０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する。
【０１９５】
ここで、図２４を用いて、ｔＲ予測部４０について簡単に説明する。図２４に示すようにＮＡＮＤ型フラッシュメモリチップ１０は、ｔＲ予測部４０を備えている。ｔＲ予測部４０は、任意の演算回路、並びにレジスタを備える。ｔＲ予測部４０は、任意の演算回路にてｔＲを予測し、その予測結果を、レジスタに記憶する。
【０１９６】
［Ｓ４０２］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセットを発行する。このリードコマンドセットは、ステップＳ４００の際に特定されたコマンドセットである。
【０１９７】
ＮＡＮＤ型フラッシュメモリチップ１０は、リードコマンドセットを受信すると、センス動作を開始する。
【０１９８】
［Ｓ４０３］
メモリコントローラ２０は、ステップＳ４０２のコマンドセットの発行と共に、タイマ２２を用いて、発行からの経過時間の計測を開始する。
【０１９９】
［Ｓ４０４］
メモリコントローラ２０は、リードコマンドセットを発行して（ステップＳ４０２）からの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上（Ｓ４０２からの経過時間≧ｔＲ＿ｅｓｔ）か否かを判定する。メモリコントローラ２０は、ステップＳ４０２からの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上でないと判定する場合（ステップＳ４０４、ＮＯ）、ステップＳ４０４を繰り返す。
【０２００】
［Ｓ４０５］
メモリコントローラ２０は、ステップＳ４０２からの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合（ステップＳ４０４、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に、データ転送コマンドセットを発行する。なお、変形例として、メモリコントローラ２０は、ステップＳ４０２からの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合であっても、更に念のためにＮＡＮＤ型フラッシュメモリチップ１０に対してステータスリードを行っても良い。メモリコントローラ２０は、このステータスリードを行うことで、ＮＡＮＤ型フラッシュメモリチップ１０が確実にレディ状態であることを知ることができ、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを受信させることができる。
【０２０１】
ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作にて読み出されていたデータを、メモリコントローラ２０に遅滞なく転送することができ得る。
【０２０２】
＜４−２−２＞動作シーケンス
図２５を用いて、第４実施形態のリード動作のシーケンス例について説明する。
【０２０３】
時刻Ｔ６０において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、センス動作時間問い合わせコマンド（コマンドセット）を発行する。このコマンドセットには、センス動作時間を問い合わせる為のコマンドＢＢＨと、リード条件となる、発行予定のリードコマンドセットのリード条件と、が含まれる。
【０２０４】
時刻Ｔ６１において、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間問い合わせコマンドを受信すると、センス動作時間問い合わせコマンドに含まれるリード条件に基づいて、ｔＲ予測部４０からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する（センス動作時間(ビジー時間)ｔＲ＿ｅｓｔは計算によって求められたものでもよい）。そして、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔをメモリコントローラ２０に供給する。
【０２０５】
時刻Ｔ６２において、メモリコントローラ２０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを受信する。
【０２０６】
時刻Ｔ６３において、メモリコントローラ２０は、発行予定であったリードコマンドセット（時刻Ｔ６０にて問い合わせたリード条件と同じ条件のリードコマンドセット）をＮＡＮＤ型フラッシュメモリチップ１０に発行する。そして、メモリコントローラ２０は、リードコマンドセットの発行と共に、タイマ２２を用いてコマンド発行からの経過時間の計測を開始する。本実施形態では、メモリコントローラ２０は、 ＮＡＮＤ型フラッシュメモリチップ１０がリードコマンド発行時にセンス動作を開始すると仮定する。
【０２０７】
時刻Ｔ６４において、ＮＡＮＤ型フラッシュメモリチップ１０は、リードコマンドセットを受信するとセンス動作を開始する。
【０２０８】
時刻Ｔ６３からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔの期間（つまり時刻Ｔ６５まで）、メモリコントローラ２０は待機する。そして、メモリコントローラ２０は、データ転送コマンドセットをＮＡＮＤ型フラッシュメモリチップ１０に発行する。
【０２０９】
時刻Ｔ６４からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔ経過後の時刻Ｔ６６において、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作が完了し、コマンド受付け可能なレディ状態となる。そして、時刻Ｔ６６において、ＮＡＮＤ型フラッシュメモリチップ１０は、データ転送コマンドセットを受信することで、センス動作にて読み出したデータを、メモリコントローラ２０に供給する。
【０２１０】
時刻Ｔ６７において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０からデータを受信する。
【０２１１】
＜４−３＞効果
上述した実施形態によれば、メモリコントローラ２０は、リードコマンドセットの発行前に、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを問い合わせる。これにより、第１実施形態と同様の効果を得ることができ得る。
【０２１２】
＜５＞第５実施形態
第５実施形態について説明する。第５実施形態では、基本方針として解決手段１（Ｂ−２）及び解決手段２（Ａ）を採用する場合について説明する。尚、第５実施形態に係る装置の基本的な構成及び基本的な動作は、上述した各実施形態に係る装置と同様である。従って、上述した各実施形態で説明した事項及び上述した各実施形態から容易に類推可能な事項についての説明は省略する。
【０２１３】
＜５−１＞基本方針
第５実施形態では、基本方針として解決手段１（Ｂ−２）及び解決手段２（Ａ）を採用する場合について説明する。
【０２１４】
＜５−２＞第５実施形態のリード動作
以下に、第５実施形態のリード動作について説明する。
【０２１５】
＜５−２−１＞動作フロー
図２６を用いて、第５実施形態のリード動作の流れについて説明する。
【０２１６】
［Ｓ５００］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセットを発行する。
【０２１７】
ＮＡＮＤ型フラッシュメモリチップ１０は、リードコマンドセットを受信すると、センス動作を開始する。
【０２１８】
［Ｓ５０１］
メモリコントローラ２０は、ステップＳ５００のコマンドセットの発行と共に、タイマ２２を用いて、発行からの経過時間の計測を開始する。
【０２１９】
［Ｓ５０２］
メモリコントローラ２０は、センス動作時間を問い合わせるセンス動作時間問い合わせコマンド（コマンドセット）を、ＮＡＮＤ型フラッシュメモリチップ１０に発行する。
【０２２０】
ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０から、センス動作時間問い合わせコマンドを受信すると、現在センス動作を行っているリードコマンドのリード条件に基づいて、ｔＲ予測部４０からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する。そして、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔをメモリコントローラ２０に供給する。
【０２２１】
［Ｓ５０３］、［Ｓ５０４］
ステップＳ５０３及びＳ５０４は、それぞれ図２３のステップＳ４０４、及びＳ４０５と同様の動作を行う。なお、変形例として、メモリコントローラ２０は、ステップＳ５００からの経過時間が、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ以上であると判定する場合であっても、更に念のためにＮＡＮＤ型フラッシュメモリチップ１０に対してステータスリードを行っても良い。メモリコントローラ２０は、このステータスリードを行うことで、ＮＡＮＤ型フラッシュメモリチップ１０が確実にレディ状態であることを知ることができ、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを受信させることができる。
【０２２２】
＜５−２−２＞動作シーケンス
図２７を用いて、第５実施形態のリード動作のシーケンスについて説明する。
【０２２３】
時刻Ｔ７０において、メモリコントローラ２０は、リードコマンドセットをＮＡＮＤ型フラッシュメモリチップ１０に発行する。そして、メモリコントローラ２０は、リードコマンドセットの発行と共に、タイマ２２を用いて、発行からの経過時間の計測を開始する。本実施形態では、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０がリードコマンドセット発行時に、センス動作を開始すると仮定する。
【０２２４】
時刻Ｔ７１において、ＮＡＮＤ型フラッシュメモリチップ１０は、リードコマンドセットを受信するとセンス動作を開始する。
【０２２５】
時刻Ｔ７２において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、センス動作時間問い合わせコマンドを発行する。このコマンドセットには、直前に発行したリードコマンドのセンス動作時間を問い合わせる為のコマンドＣＣＨが含まれる。
【０２２６】
時刻Ｔ７３において、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間問い合わせコマンドを受信すると、直前に発行済みのリードコマンドセットのリード条件に基づいて、ｔＲ予測部４０からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔを取得する。そして、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔをメモリコントローラ２０に供給する。
【０２２７】
時刻Ｔ７４において、メモリコントローラ２０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを受信する。
【０２２８】
時刻Ｔ７０からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔ経過後の時刻Ｔ７５において、メモリコントローラ２０は、データ転送コマンドセットをＮＡＮＤ型フラッシュメモリチップ１０に発行する。
【０２２９】
時刻Ｔ７１からセンス動作時間(ビジー時間)ｔＲ＿ｅｓｔ経過後の時刻Ｔ７６において、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作を終了する。また時刻Ｔ７６においてデータ転送コマンドセットを受信すると、センス動作にて読み出したデータをメモリコントローラ２０に転送する。
【０２３０】
時刻Ｔ７７において、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０からデータを受信する。
【０２３１】
＜５−３＞効果
上述した実施形態によれば、メモリコントローラ２０は、リードコマンドセットの発行後に、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを問い合わせる。これにより、第１実施形態と同様の効果を得ることができ得る。
【０２３２】
＜６＞第６実施形態
第６実施形態について説明する。第６実施形態では、センス動作の終了予定時刻を問い合わせる場合について説明する。尚、第６実施形態に係る装置の基本的な構成及び基本的な動作は、メモリコントローラにｔＲテーブルが不要である点を除いて、上述した各実施形態に係る装置と同様である。従って、上述した各実施形態で説明した事項及び上述した各実施形態から容易に類推可能な事項についての説明は省略する。
【０２３３】
＜６−１＞基本方針
上述した各実施形態では、図１３で説明した課題１及び課題２を解決する場合について説明した。第６実施形態では、センス動作の終了予定時刻をＮＡＮＤ型フラッシュメモリチップ１０に問い合わせることによって、センス動作の完了を推定する方法について説明する。
【０２３４】
解決手段３は、センス動作の終了の予定時刻をＮＡＮＤ型フラッシュメモリチップ１０に問い合わせることによって、センス動作の終了時刻を推定する方法である。この解決手段３は、図１３で説明した課題１及び課題２を解決するための手段である。
【０２３５】
＜６−２＞解決手段３のバリエーション  
メモリコントローラ２０が、センス動作の終了予定時刻を問い合わせる方法として、おおまかに２つの方法が考えられる。
【０２３６】
＜６−２−１＞解決手段３（Ａ）
解決手段３の一つ目のバリエーション（解決手段３（Ａ））として、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセット発行前の動作（例えば、プログラム動作やイレーズ動作）のサスペンド予定時刻を問い合わせる。そしてメモリコントローラ２０は、動作のサスペンド予定時刻（あるいはそれ以降）まで待ち、その後ＮＡＮＤ型フラッシュメモリチップ１０に、センス動作（リードコマンドセット発行に基づく動作）終了予定時刻を問い合わせる。
【０２３７】
＜６−２−２＞解決手段３（Ｂ）
解決手段３の二つ目のバリエーション（解決手段３（Ｂ））として、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、センス動作終了予定時刻が得られるまで、問い合わせを繰り返す。
【０２３８】
第６実施形態では、解決手段３（Ａ）を採用する場合について説明する。
【０２３９】
＜６−２＞第６実施形態のリード動作
図２８を用いて、キャッシュプログラム後のリードについて説明する。
【０２４０】
［Ｓ６００］〜［Ｓ６０５］
ステップＳ６００〜Ｓ６０６は、それぞれ図１９のステップＳ２００〜Ｓ２０４、Ｓ２０６と同じ動作である。
【０２４１】
［Ｓ６０６］
メモリコントローラ２０は、現在の時刻が、ＮＡＮＤ型フラッシュメモリチップ１０から取得したサスペンド予定時刻Ｔｐ以降であると判定する場合（ステップＳ６０５、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に対し、ステップＳ６０３にて発行したリードコマンドのセンス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを問い合わせる。この問い合わせは、センス動作終了予定時刻問い合わせコマンド（一例としてステータスリード要求）にて行われる。そして、メモリコントローラ２０は、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを取得したか否かを判定する。センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄは、例えばセンス動作の開始後、ＮＡＮＤ型フラッシュメモリチップ１０内のステータスレジスタ１５Ａに記憶される。ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作終了予定時刻問い合わせコマンド（例えばステータスリード要求）を受信すると、ステータスレジスタ１５Ａに記憶されている動作中のセンス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを、メモリコントローラ２０に供給する。ＮＡＮＤ型フラッシュメモリチップ１０は、まだセンス動作を開始していない場合は開始していない旨をメモリコントローラ２０に返信する。
【０２４２】
なお、ＮＡＮＤ型フラッシュメモリチップ１０は、キャッシュプログラム中にリードコマンドセットを受信するとキャッシュプログラムのサスペンド予定時刻を確実に予測できるわけではない。キャッシュレディ状態となるタイミングは、メモリセルの書き込みの状態に依存するため、動的に変化することがある。そのため、ＮＡＮＤ型フラッシュメモリチップ１０は、おおまかな目安時刻をメモリコントローラ２０に通知し、メモリコントローラ２０は、目安時刻になったら、ステータスリードコマンドを用いて、ＮＡＮＤ型フラッシュメモリチップ１０のレディ／ビジー状態を確認することが考えられる。他方で、ＮＡＮＤ型フラッシュメモリチップ１０は、サスペンド予定時刻が確実に予想できる状態になるまでは「未定」という旨の応答をメモリコントローラ２０に対して行い、メモリコントローラ２０は予定時刻が得られるまで問い合わせを繰り返す場合もある。
【０２４３】
［Ｓ６０７］
メモリコントローラ２０は、ステップＳ６０６の後、センス動作を開始しているかどうかを判定する。例えば、メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０から、まだセンス動作を開始していない旨を受信する場合、つまりセンス動作を開始していないと判定する場合（ステップＳ６０７、ＮＯ）、ステップＳ６０６を繰り返す。
【０２４４】
［Ｓ６０８］
メモリコントローラ２０は、センス動作を開始していると判定する場合（ステップＳ６０７、ＹＥＳ）、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降か否かを判定する。メモリコントローラ２０は、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降でないと判定する場合（ステップＳ６０８、ＮＯ）、ステップＳ６０８を繰り返す。
【０２４５】
［Ｓ６０９］
メモリコントローラ２０は、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降であると判定する場合（ステップＳ６０８、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に、データ転送コマンドセットを発行する。なお、変形例として、メモリコントローラ２０は、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降であると判定する場合であっても、更に念のためにＮＡＮＤ型フラッシュメモリチップ１０に対してステータスリードを行っても良い。メモリコントローラ２０は、このステータスリードを行うことで、ＮＡＮＤ型フラッシュメモリチップ１０が確実にレディ状態であることを知ることができ、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを受信させることができる。
【０２４６】
以上の処理によって、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作にて読み出されていたデータを、メモリコントローラ２０に遅滞なく転送することができ得る。
【０２４７】
＜６−３＞効果
上述した実施形態では、センス動作の終了予定時刻を問い合わせることで、第１実施形態と同様の効果を得ることができ得る。
【０２４８】
＜７＞第７実施形態
第７実施形態について説明する。第７実施形態では、解決手段３（Ｂ）を採用する場合について説明する。尚、第７実施形態に係る装置の基本的な構成及び基本的な動作は、メモリコントローラはｔＲテーブルを必要としない点を除いて上述した各実施形態に係る装置と同様である。従って、上述した各実施形態で説明した事項及び上述した各実施形態から容易に類推可能な事項についての説明は省略する。
【０２４９】
＜７−１＞基本方針
本実施形態では、第６実施形態で説明した解決手段３（Ｂ）を採用する。
【０２５０】
＜７−２＞第７実施形態のリード動作
図２９を用いて、キャッシュプログラム後のリード動作について説明する。
【０２５１】
［Ｓ７００］〜［Ｓ７０３］
ステップＳ７００〜Ｓ７０３は、それぞれ図２１のステップＳ３００〜Ｓ３０３と同じ動作である。
【０２５２】
［Ｓ７０４］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に対し、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを問い合わせるセンス動作終了予定時刻問い合わせコマンド（一例としてステータスリード要求）を発行する。
【０２５３】
ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作を開始すると、ステータスレジスタ１５Ａにセンス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを記憶する。そして、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０からの問い合わせに応答して、ステータスレジスタ１５Ａに記憶されているセンス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを、メモリコントローラ２０に供給する。センス動作を開始していない場合はその旨返答する。
【０２５４】
［Ｓ７０５］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０から、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを受信し、センス動作を開始しているかどうかを判定する。
【０２５５】
メモリコントローラ２０は、センス動作を開始していないと判定する場合（ステップＳ７０５、ＮＯ）、ステップＳ７０４を繰り返す。
【０２５６】
［Ｓ７０６］
メモリコントローラ２０は、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを取得すると（ステップＳ７０５、ＹＥＳ）、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降か否かを判定する。メモリコントローラ２０は、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降でないと判定する場合（ステップＳ７０６、ＮＯ）、ステップＳ７０６を繰り返す。
【０２５７】
［Ｓ７０７］
メモリコントローラ２０は、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降であると判定する場合（ステップＳ７０６、ＹＥＳ）、ＮＡＮＤ型フラッシュメモリチップ１０に、データ転送コマンドセットを発行する。なお、変形例として、メモリコントローラ２０は、現在の時刻が、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄ以降であると判定する場合であっても、更に念のためにＮＡＮＤ型フラッシュメモリチップ１０に対してステータスリードを行っても良い。メモリコントローラ２０は、このステータスリードを行うことで、ＮＡＮＤ型フラッシュメモリチップ１０が確実にレディ状態であることを知ることができ、ＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを受信させることができる。
【０２５８】
ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作にて読み出されていたデータを、メモリコントローラ２０に遅滞なく転送することができ得る。
【０２５９】
＜７−３＞効果
上述した実施形態では、センス動作の終了予定時刻を問い合わせることで、第１実施形態と同様の効果を得ることができ得る。
【０２６０】
＜８＞第８実施形態
第８実施形態について説明する。第８実施形態では、センス動作の終了予定時刻を問い合わせる場合について説明する。尚、第８実施形態に係る装置の基本的な構成及び基本的な動作は、キャッシュプログラムを行わない点を除き、上述した第６実施形態に係る装置と同様である。従って、上述した第６実施形態で説明した事項及び上述した第６実施形態から容易に類推可能な事項についての説明は省略する。
【０２６１】
＜８−１＞基本方針
第８実施形態では、センス動作の終了予定時刻をＮＡＮＤ型フラッシュメモリチップ１０に問い合わせることによって、センス動作の完了を推定する方法について説明する。第８実施形態では、解決手段３を採用する。
【０２６２】
＜８−２＞第８実施形態のリード動作
図３０を用いて、第８実施形態のリード動作の流れについて説明する。
【０２６３】
［Ｓ８００］
メモリコントローラ２０は、ＮＡＮＤ型フラッシュメモリチップ１０に、リードコマンドセットを発行する。ＮＡＮＤ型フラッシュメモリチップ１０はリードコマンドセットを受信すると、センス動作を開始する。
【０２６４】
［Ｓ８０１］〜［Ｓ８０３］
ステップＳ８０１〜Ｓ８０３は、それぞれ図２８のステップＳ６０６、Ｓ６０８、Ｓ６０９と同じ動作である。
【０２６５】
以上の処理によって、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作にて読み出されていたデータを、メモリコントローラ２０に遅滞なく転送することができ得る。
【０２６６】
＜８−３＞効果
上述した実施形態では、センス動作の終了予定時刻を問い合わせることで、第５実施形態や第６実施形態と同様の効果を得ることができ得る。
【０２６７】
＜９＞その他
なお、上述した各実施形態では、プログラム動作や、消去動作の完了は、ステータスリードコマンド、またはレディ／ビジー信号の監視によって検出する。
【０２６８】
また、センス動作は、原則として固定時間で完了する。一方、プログラム動作や、消去動作は、メモリセルの状態によって動作時間が変動する。メモリセルのプログラムされやすさやイレーズされやすさは、セルの特性やセルの状態に依存する。そのため、ＮＡＮＤ型フラッシュメモリチップ１０は、プログラムにおいて、プログラムベリファイ（プログラムによりプログラム対象のメモリセルが所定の閾値電圧になったかどうかをチェックする動作）をパスするか、または、所定のプログラムループ（プログラム動作とプログラムベリファイ動作との組）回数に達するまでプログラムループを繰り返す。また、ＮＡＮＤ型フラッシュメモリチップ１０は、イレーズにおいて、イレーズベリファイ（イレーズがパスしたか否かをチェックする動作）をパスするか、または、所定のイレーズループ（イレーズ動作とイレーズベリファイ動作との組）回数に達するまでイレーズループを繰り返す。つまり、プログラムに要する時間やイレーズに要する時間はセルの特性や状態に応じて動的に変動する。そこで、上述した各実施形態では、プログラム動作や、消去動作の完了は、所定時間待つことによってではなく、ステータスリードコマンドの発行による確認、またはレディ／ビジー信号の監視によって検出する。
【０２６９】
また、メモリコントローラ２０は、センス動作時間を問い合わせるコマンドと、センス動作の開始実績時刻を問い合わせるコマンドとを、同時に発行しても良い。具体的には、図１９の動作フローにおいて、ステップＳ２０５（センス動作時間(ビジー時間)ｔＲ＿ｅｓｔの取得）を行わず、ステップＳ２０７(センス動作の開始実績時刻の問い合わせ)の際に、メモリコントローラ２０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ及びセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを問い合わせるためのコマンドセットをＮＡＮＤ型フラッシュメモリチップ１０に発行する。これにより、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０に対して、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ及びセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを供給する。この場合でも、上述した各実施形態と同様の効果をえることができ得る。また、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間ｔＲ＿ｅｓｔとセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔのかわりに、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを供給してもよい。
【０２７０】
同様に、図２１の動作フローにおいて、ステップＳ３０４（センス動作時間ｔＲ＿ｅｓｔの取得）を行わず、ステップＳ３０５（センス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔの取得）の際に、メモリコントローラ２０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ及びセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを問い合わせるためのコマンドセットをＮＡＮＤ型フラッシュメモリチップ１０に発行してもよい。これにより、ＮＡＮＤ型フラッシュメモリチップ１０は、メモリコントローラ２０に対して、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔ及びセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔを供給する。この場合でも、上述した各実施形態と同様の効果をえることができ得る。また、ＮＡＮＤ型フラッシュメモリチップ１０は、センス動作時間ｔＲ＿ｅｓｔ及びセンス動作の開始実績時刻Ｔ＿ｒｅａｄ＿ｓｔａｒｔのかわりに、センス動作の終了予定時刻Ｔ＿ｒｅａｄ＿ｅｎｄを供給してもよい。
【０２７１】
また、メモリコントローラ２０は、リードコマンドセットを発行してから、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを受信するまでの時間を考慮して、データ転送コマンドセットを発行しても良い。具体的には、図３１に示すように、リードコマンドセットを発行してから、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを受信するまでの時間をｔＣＴ（時刻Ｔ７０〜時刻Ｔ７４）とする。メモリコントローラ２０は、この時間ｔＣＴをタイマ２２を用いて計測する。メモリコントローラ２０は、リードコマンドセットを発行した時刻Ｔ７０を、センス動作開始時刻とみなしている。そこで、メモリコントローラ２０は、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔから時間ｔＣＴを減算して得られた時間ｔＬＴを、センス動作時間(ビジー時間)ｔＲ＿ｅｓｔを受信してからＮＡＮＤ型フラッシュメモリチップ１０にデータ転送コマンドセットを発行するまでの待機時間としてもよい。
【０２７２】
また、上述した各実施形態において、ｔＲはワード線アドレスによる違いが考慮されていない。しかし、ワード線ごとにメモリセルの特性がばらつくことがある。このばらつきを考慮し、ワード線ごとにセンス時間tRが異なっていてもよい。このとき、リード条件にワード線アドレスを含み、ワード線アドレスに基づいてセンス動作時間ｔＲ＿ｅｓｔを決定してもよい。なお、ワード線アドレスは、リード条件のページアドレスに含まれる。
【０２７３】
なお、上述した各実施形態では、ＮＡＮＤ型フラッシュメモリチップ１０に複数のプレーンが設けられる場合でも適用可能である。プレーンとは、メモリセルアレイ１１、センスアンプモジュール１２、及びロウデコーダモジュール１３とを備える組である。ＮＡＮＤ型フラッシュメモリチップ１０の複数のプレーンが、並列に動作可能である場合、上述したコアレディ／コアビジー状態、及びキャッシュレディ／キャッシュビジー状態は、プレーン毎に定義されても良い。
【０２７４】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【０２７５】
１…メモリシステム
２…ホスト機器
１０…ＮＡＮＤ型フラッシュメモリチップ
１１…メモリセルアレイ
１２…センスアンプモジュール
１２Ａ…センスアンプ
１２Ｂ…データラッチ
１３…ロウデコーダモジュール
１４…入出力回路
１５…レジスタ
１５Ａ…ステータスレジスタ
１５Ｂ…アドレスレジスタ
１５Ｃ…コマンドレジスタ
１６…ロジックコントローラ
１７…シーケンサ
１８…レディ／ビジー制御回路
１９…電圧生成回路
２０…メモリコントローラ
２１…プロセッサ
２２…タイマ
２３…内蔵メモリ
２４…ホストインターフェイス回路
２５…ＤＲＡＭインターフェイス回路
２６…ＮＡＮＤインターフェイス回路
４０…ｔＲ予測部
【図１】
2020154759.tif 000003
【図２】
2020154759.tif 000004
【図３】
2020154759.tif 000005
【図４】
2020154759.tif 000006
【図５】
2020154759.tif 000007
【図６】
2020154759.tif 000008
【図７】
2020154759.tif 000009
【図８】
2020154759.tif 000010
【図９】
2020154759.tif 000011
【図１０】
2020154759.tif 000012
【図１１】
2020154759.tif 000013
【図１２】
2020154759.tif 000014
【図１３】
2020154759.tif 000015
【図１４】
2020154759.tif 000016
【図１５】
2020154759.tif 000017
【図１６】
2020154759.tif 000018
【図１７】
2020154759.tif 000019
【図１８】
2020154759.tif 000020
【図１９】
2020154759.tif 000021
【図２０】
2020154759.tif 000022
【図２１】
2020154759.tif 000023
【図２２】
2020154759.tif 000024
【図２３】
2020154759.tif 000025
【図２４】
2020154759.tif 000026
【図２５】
2020154759.tif 000027
【図２６】
2020154759.tif 000028
【図２７】
2020154759.tif 000029
【図２８】
2020154759.tif 000030
【図２９】
2020154759.tif 000031
【図３０】
2020154759.tif 000032
【図３１】
2020154759.tif 000033