(57)【要約】【課題】アクセス性能の低下とコストの増大を抑制するメモリシステム。【解決手段】メモリシステムは、ページ単位でデータの書込み及び読出しが行われる複数のメモリセルと、前記メモリセルに書込むページ単位のデータ、及び前記メモリセルから読出したページ単位のデータを一時的に記憶する第１の記憶部と、前記メモリセルに書込むページ単位のデータ、及び前記メモリセルから読出したページ単位のデータを一時的に記憶する第２の記憶部と、を含む不揮発性半導体記憶装置と、外部のホスト装置からデータの書込み要求及び読出し要求を受け付けて、前記不揮発性半導体記憶装置に対するデータ書込みコマンド及びデータ読出しコマンドを生成する制御部と、を具備し、前記制御部は、前記不揮発性半導体記憶装置に書込むデータ、前記不揮発性半導体記憶装置から読出すデータの記憶先を、前記第１の記憶部と前記第２の記憶部との間で選択する。【選択図】図１
2008234723.tif 000002
【特許請求の範囲】
【請求項１】
ページ単位でデータの書き込み及び読み出しが行われる複数のメモリセルと、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第１の記憶部と、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第２の記憶部と、を含む不揮発性半導体記憶装置と、
外部のホスト装置からデータの書き込み要求及び読み出し要求を受け付けて、前記不揮発性半導体記憶装置に対するデータ書き込みコマンド及びデータ読み出しコマンドを生成する制御部と、を具備し、
前記制御部は、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの記憶先を、前記第１の記憶部と前記第２の記憶部との間で選択することを特徴とするメモリシステム。
【請求項２】
前記制御部は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求の受け付け時に、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの一時記憶先を前記第１の記憶部又は前記第２の記憶部に切り替えることを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記制御部は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求に含まれたアドレスの受け付け時に、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの一時記憶先を前記第１の記憶部又は前記第２の記憶部に切り替えることを特徴とする請求項１記載のメモリシステム。
【請求項４】
前記制御部は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求の受け付け時、又は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求に含まれたアドレスの受け付け時に、前記第１の記憶部に記憶されているデータと、前記第２の記憶部に記憶されているデータを相互に交換することを特徴とする請求項２又は３記載のメモリシステム。
【請求項５】
前記制御部は、前記ホスト装置から入力されるコマンドの受け付け時に、前記第１の記憶部に記憶されているデータと、前記第２の記憶部に保存されているデータを相互に交換することを特徴とする請求項４記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ単位でデータの書き込み及び読み出しを行うメモリシステムに関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置を搭載したメモリカードは、パーソナルコンピュータ、デジタルカメラ、携帯電話機等の携帯型電子機器（以下、ホスト装置という）に多く利用されている。
【０００３】
メモリカードとしては、ホスト装置との間でコマンドやデータを授受するコントローラと、ＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置と、を搭載したものがある。不揮発性半導体記憶装置内には、ページ単位でデータを読み出し／書き込みするメモリセルと、読み出し／書き込みするページ単位のデータを一時的に保存するページバッファと、コントローラを介してホスト装置との間で読み出し／書き込みするページ単位のデータを一時的に保存するデータキャッシュと、が含まれている。
【０００４】
上記メモリカードでは、コントローラがデータキャッシュにしかアクセスできない構成になっていた。このため、例えば、有効なデータがページバッファとデータキャッシュの双方に記憶されている場合、以下のような不具合が発生していた。コントローラからページバッファに記憶されているデータにアクセスするためには、データキャッシュに該当データをコピーする必要があり、データキャッシュに記憶されているデータがページバッファに記憶されているデータで上書きされてしまう。
【０００５】
上記の上書き動作前にデータキャッシュに記憶されていたデータにコントローラからアクセスするためには、再度、該当データをメモリセルからページバッファに読み出す必要がある。すなわち、有効なデータがページバッファとデータキャッシュの双方に記憶されている場合は、無駄なアクセス動作が発生し、ホスト装置からメモリカードにアクセスする際のアクセス性能を低下させる原因となる。
【０００６】
また、ホスト装置からメモリカードに対するデータの書き込み／読み出し要求が短時間に重なると、データキャッシュに記憶済みのデータを捨てなければならなくなる可能性がある。データキャッシュに記憶済みのデータを無駄にしないためには、コントローラ内にデータを一時保存するＲＡＭ等を設ける必要がある。
【０００７】
すなわち、ページバッファに記憶された書き込みデータのメモリセルへの書き込みが終了し、データキャッシュに記憶済みのデータがページバッファに書き込み可能になるまで、コントローラ内のＲＡＭに書き込みデータを一時保存する対策が必要となる。これは、コントローラ内のＲＡＭ容量を増大させるため、メモリカードのコストを増大させる原因となる。
【０００８】
また、上記のような構成のメモリカードとしては、例えば、特許文献１に記載されたものもある。このメモリカードでは、メモリカードの仕様に合わないシーケンスでコマンドを発行するホスト装置に対して、正常に応答するための制御プログラムを格納するためのＲＯＭ、その制御プログラムを実行するためのＲＡＭを搭載している。
【特許文献１】特開２００６−９２０１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、コントローラから不揮発性半導体記憶装置内のデータキャッシュとページバッファの双方に適宜切り替えてアクセスすることを可能にして、アクセス性能の低下とコストの増大を抑制するメモリシステムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一実施形態に係るメモリシステムは、ページ単位でデータの書き込み及び読み出しが行われる複数のメモリセルと、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第１の記憶部と、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第２の記憶部と、を含む不揮発性半導体記憶装置と、外部のホスト装置からデータの書き込み要求及び読み出し要求を受け付けて、前記不揮発性半導体記憶装置に対するデータ書き込みコマンド及びデータ読み出しコマンドを生成する制御部と、を具備し、前記制御部は、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの記憶先を、前記第１の記憶部と前記第２の記憶部との間で選択することを特徴としている。
【発明の効果】
【００１１】
本発明の一実施形態によれば、アクセス性能の低下とコストの増大を抑制するメモリシステムを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施形態を詳細に説明する。但し、本発明は多くの異なる態様で実施することが可能であり、以下に示す実施の形態の記載内容に限定して解釈されるものではない。
【００１３】
図１は、本発明のメモリシステムを適用した一実施形態に係るメモリカードの概略構成を示す図である。図１に示すようにメモリカード１は、コントローラ２及び不揮発性半導体記憶装置３を有する。コントローラ２は、ＣＰＵ４、ＲＯＭ５及びＲＡＭ６を有する。不揮発性半導体記憶装置３は、データキャッシュ７、ページバッファ８及びメモリセル９を有する。ここでは、不揮発性半導体記憶装置３の例としてＮＡＮＤ型フラッシュメモリを挙げて説明するが、不揮発性半導体記憶装置３はＮＡＮＤ型フラッシュメモリに限らず、例えば、ＮＯＲ型フラッシュメモリ等でもよい。
【００１４】
コントローラ２は、ホスト装置２０と接続される。コントローラ２は、ホスト装置２０との間でコマンド、信号やデータを授受し、不揮発性半導体記憶装置３に対するデータ書き込み、データ読み出し、及び消去の各動作を制御するコマンドを生成する。ＲＯＭ５は、データ書き込み、データ読み出し、及び消去の各動作を制御する制御プログラムを格納する。ＣＰＵ４は、ホスト装置２０からコマンド及びデータを受け付けて動作を開始し、ＲＯＭ５に格納された制御プログラムをＲＡＭ６に展開し、制御プログラムに基づいて不揮発性半導体記憶装置３に対するデータ書き込み、データ読み出し、及び消去の各動作を制御するコマンドを生成する。また、ＣＰＵ４は、ホスト装置２０からのデータの読み出し要求コマンド及び書き込み要求コマンドを受け付けた時に、メモリセル９内のデータ読み出し／書き込み先を指定するためのコマンド及びアドレスを生成して不揮発性半導体記憶装置３に出力する。ＲＡＭ６は、ホスト装置２０からのデータ読み出し／書き込み要求が短時間に重なった場合など、有効データを一時的に保持する。不揮発性半導体記憶装置３は、ＣＰＵ４から入力されるコマンドを受け付けて、メモリセル９に対するデータ読み出し動作、データ書き込み動作を実行する。
【００１５】
データキャッシュ７（第１の記憶部）は、メモリセル９に対して読み出し／書き込みするページ単位のデータを一時的に記憶する記憶容量（例えば、２０４８＋６４＝２１１２Ｂｙｔｅ）を有する。
【００１６】
ページバッファ８（第２の記憶部）は、メモリセル９に対して読み出し／書き込みするページ単位のデータを一時的に記憶する記憶容量（例えば、２０４８＋６４＝２１１２Ｂｙｔｅ）を有する。
【００１７】
メモリセル９は、マトリクス状に配列された複数のメモリセルから構成され、ページ単位（例えば、２０４８＋６４＝２１１２Ｂｙｔｅ）でデータの書き込み及び読み出しが行われる。
【００１８】
ホスト装置２０は、メモリカード１に対して、５１２Ｂｙｔｅのセクタ単位でデータの読み出し／書き込みを繰り返すものとする。
【００１９】
上記コントローラ２内のＣＰＵ４は、上記ホスト装置２０から入力されるデータ読み出し要求コマンド／書き込み要求コマンドを受け付けた時に、読み出しデータ／書き込みデータの一時記憶先を、データキャッシュ７からページバッファ８に切り替えるためのコマンド、又は、ページバッファ８からデータキャッシュ７に切り替える内部コマンドを生成する。
【００２０】
次に、本実施形態に係るメモリカード１とホスト装置２０との間で行われる動作例について、図２〜図４を参照して説明する。図２は、メモリカード１とホスト装置２０との間の動作の初期状態を示す図である。図３及び図４は、メモリカード１とホスト装置２０との間の動作の遷移状態を示すタイミングチャートである。
【００２１】
図２において、（ａ）はメモリカード１からホスト装置２０に対して出力されるコマンド及び信号、（ｂ）はメモリカード１内のＲＡＭ６の初期状態、（ｃ）はデータキャッシュ７の初期状態、（ｄ）はページバッファ８の初期状態、（ｅ）はメモリセル９の初期状態、をそれぞれ示す。
【００２２】
図２（ａ）において、ホスト装置２０は、（５１２＋１６）Ｂｙｔｅ×３２Ｐａｇｅ分の消去単位を持ち、（５１２＋１６）Ｂｙｔｅのページ単位でデータ読み出し／書き込みを行うものとする。この図２（ａ）では、メモリカード１からホスト装置２０に対してデータ読み出しコマンドＲ０が出力された後、メモリカード１側がビジー状態であることを示すビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力された場合を示している。なお、１６Ｂｙｔｅは、ホスト装置２０内でデータ転送エラーを検出するためのＥＣＣ（Error Correcting Code ）データ、論理アドレス（ＬＢＡ）、又は、ＣＲＣ（Cyclic Redundancy Check）データ等に利用されるデータである。図２（ｂ）において、ＲＡＭ６は、ホスト装置２０においてデータ読み出し／書き込みが行われるセクタ単位（５１２Ｂｙｔｅ）のデータを２つ分（１ｋＢｙｔｅ）保持する記憶容量を有するものとする。このＲＡＭ６の初期状態では、読み出しデータＲｎ／書き込みデータＷｎ（但し、ｎ＝０〜Ｎ）は記憶されていない。
【００２３】
図２（ｃ）、（ｄ）において、データキャッシュ７及びページバッファ８は、上述のように、メモリセル９においてデータ読み出し／書き込みが行われる１ページ分（２１１２Ｂｙｔｅ）のデータを一時的に記憶する記憶容量を有する。すなわち、データキャッシュ７及びページバッファ８は、セクタ単位のデータを４つ分記憶する記憶容量を有するものとする。これらデータキャッシュ７及びページバッファ８の各初期状態では、読み出しデータＲｎ／書き込みデータＷｎ（ｎ：０〜ｎ）は記憶されていない。図２（ｅ）において、メモリセル９は、データ読み出し／書き込みが行われるページ（２１１２Ｂｙｔｅ）×１２８Ｐａｇｅの消去単位を持つＮＡＮＤ型フラッシュメモリであるものとする。メモリセル９の初期状態では、ページ単位にデータが記憶されているが、図示はしない。
【００２４】
また、本実施形態において、メモリカード１は、ＲＡＭ６からデータキャッシュ７及びページバッファ８にデータを転送する際は、セクタ単位のデータに１０ＢｙｔｅのＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）データを付加し、５１２＋１０＝５２２Ｂｙｔｅで転送するものとする。
【００２５】
また、本実施形態において、ＣＰＵ４は、ホスト装置２０からデータの読み出し要求コマンド／書き込み要求コマンドを受け付けた際は、不揮発性半導体記憶装置３に対して、以下のコマンド／アドレスシーケンスを生成して出力するものとする。
【００２６】
００ｈ：読み出しアドレスを指示するためのコマンド
３０ｈ：読み出し開始コマンド
０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ：データ読み出し先のカラムアドレス（ＣＡ：Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ：列アドレス）を指示するためのコマンド／アドレスシーケンス
８５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ：データ書き込み先のカラムアドレスを指示するためのコマンド／アドレスシーケンス
７７ｈ：データ読み出し先／データ書き込み先をデータキャッシュ７からページバッファ８に切り替えるためのコマンド
７８ｈ：データ読み出し先／データ書き込み先をページバッファ８からデータキャッシュ７に切り替えるためのコマンド
【００２７】
図３において、（ａ）はホスト装置２０とメモリカード１との間で授受されるコマンド、信号及びデータの遷移状態、（ｂ）はＲＡＭ６に保持される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｃ）はデータキャッシュ７に記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｄ）はページバッファ８に記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｅ）はメモリセル９に記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｆ）はＣＰＵ４において生成されるコマンド／アドレスシーケンスの内容を、それぞれ示す。なお、図４（ａ）〜（ｆ）も同様の内容を図示する。
【００２８】
次に、図３を参照して、メモリカード１とホスト装置２０との間の具体的な動作について説明する。なお、図３中の点線矢印は、データの転送状態を示すものであり、メモリカード１内で授受されるコマンドは含まれない。
【００２９】
図３（ａ）に示すタイミングＴ１において、ホスト装置２０は、メモリカード１に対して読み出しを要求するＲｅａｄコマンドを出力する。コントローラ２内のＣＰＵ４は、ホスト装置２０からＲｅａｄコマンドを受け付けると、上記図２（ａ）に示したデータ読み出しコマンドＲ０（データＲ０を読み出すことを示すコマンド）をホスト装置２０に出力する。このデータ読み出しコマンドＲ０の出力後に、メモリカード１内で実行されるデータＲ０の読み出し動作について、図３（ｂ）〜（ｆ）を参照して説明する。
【００３０】
まず、コントローラ２内のＣＰＵ４は、同図（ｆ）に示す「００ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ−３０ｈ」コマンド／アドレスシーケンスを生成して不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「００ｈ」はメモリセル９内のデータ読み出しアドレスを指示するコマンド、「３０ｈ」はデータ読み出し開始を指示するコマンドである。「ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」のうち、「ＣＡ−ＣＡ」はメモリセル９内のデータ読み出し先の先頭カラムアドレス、「ＲＡ−ＲＡ−ＲＡ」はメモリセル９内のデータ読み出し先のページアドレスである。
【００３１】
不揮発性半導体記憶装置３は、ＣＰＵ４から「００ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ−３０ｈ」コマンド／アドレスシーケンスを受け付けると、メモリセル９内の指示されたカラムアドレス及びページアドレスからページ単位（２１１２Ｂｙｔｅ）のデータＲ０〜Ｒ３を読み出して、データキャッシュ７に記憶する（図３（ｅ）、（ｃ）参照）。このデータ読み出し中に、不揮発性半導体記憶装置３は、コントローラ２に対して、同図（ｆ）に示すビジー信号Ｂ２Ｒを出力する。このビジー信号Ｂ２Ｒ（Ｂｕｓｙ  Ｔｏ  Ｒｅａｄｙ）は、不揮発性半導体記憶装置３のビジー／レディ信号ピン（図示せず）から出力される信号であり、ビジー信号が出力されてからレディ状態に切り替わるまでの期間を示す信号である。
【００３２】
次いで、コントローラ２内のＣＰＵ４は、不揮発性半導体記憶装置３からビジー信号Ｂ２Ｒを受け付けると、上記レディ状態に切り替わるまでの期間が経過した後、同図（ｆ）に示す「０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」コマンド／アドレスシーケンスを生成して不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「０５ｈ」及びは「Ｅ０ｈ」は、データキャッシュ７内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、「ＣＡ−ＣＡ」はデータキャッシュ７内のデータ読み出し先の先頭カラムアドレスである。
【００３３】
不揮発性半導体記憶装置３は、ＣＰＵ４から「０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」コマンド／アドレスシーケンスを受け付けると、データキャッシュ７内の指示された先頭カラムアドレスからデータＲ０を読み出してコントローラ２に転送する（図３（ｃ）参照）。なお、本実施形態では、不揮発性半導体記憶装置３は、ＣＰＵ４からデータ読み出し先の先頭カラムアドレスを受け付けると、５２２Ｂｙｔｅ単位で読み出しデータをコントローラ２に転送するものとする。コントローラ２内のＣＰＵ４は、転送されたデータＲ０をＲＡＭ６に保持する（図３（ｂ）参照）。なお、同図（ｆ）に示す「ｄａｔａｏｕｔ」は、不揮発性半導体記憶装置３から読み出された実データＲ０を示す。
【００３４】
次に、図３（ａ）に示すタイミングＴ２において、ＣＰＵ４は、上記タイミングＴ１においてＲＡＭ６に保持した５２２ＢｙｔｅのデータＲ０を読み出す。次いで、ＣＰＵ４は、データＲ０内のＥＣＣ（１０Ｂｙｔｅ）を外し、ホスト装置２０で利用されるＥＣＣデータ又はＣＲＣデータ等（１６Ｂｙｔｅ）を付加して５２８Ｂｙｔｅとして、ホスト装置２０に出力する（図３（ａ）参照）。同図（ａ）の「Ｒ０  ｄａｔａｏｕｔ」はコントローラ２からホスト装置２０に転送される実データＲ０を示す。また、タイミングＴ２において、コントローラ２は、続いてデータＲ１が読み出されることを予測して、以下のデータＲ１の読み出し動作を制御する。
【００３５】
ＣＰＵ４は、同図（ｆ）に示す「０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」コマンド／アドレスシーケンスを生成して不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスは、上記タイミングＴ１と同様に、データ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンスを受け付けると、データキャッシュ７内の指示された先頭カラムアドレスからデータＲ１を読み出してコントローラ２に転送する（図３（ｃ）参照）。ＣＰＵ４は、転送されたデータＲ１をＲＡＭ６の空き領域に保持する（図３（ｂ）参照）。なお、同図（ｆ）に示す「ｄａｔａｏｕｔ」は、不揮発性半導体記憶装置３から読み出された実データＲ０を示す。以上のデータＲ０の読み出し動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。
【００３６】
次に、図３（ａ）に示すタイミングＴ３において、ホスト装置２０は、メモリカード１に対してデータＷ０の書き込みを要求するＷｒｉｔｅコマンドＷ０とデータＷ０（同図（ａ）の「Ｗ０，Ｗ０  ｄａｔａｉｎ」）を出力する。ＣＰＵ４は、ホスト装置２０からＷｒｉｔｅコマンドＷ０とデータＷ０を受け付けると、データＷ０をＲＡＭ６の空き領域（データＲ０を読み出した後の領域）に保持する（図３（ｂ）参照）。次いで、ＣＰＵ４は、同図（ｆ）に示す「７７ｈ−８５ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」コマンド／アドレスシーケンスを生成し、ＲＡＭ６から読み出したデータＷ０とともに不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「７７ｈ」はデータ書き込み先をデータキャッシュ７からページバッファ８に切り替えるためのコマンド、「８５ｈ」はページバッファ８内のデータ書き込み先のカラムアドレスを指示するコマンド、「ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」はページバッファ８内のデータ書き込み先の先頭カラムアドレス及びページアドレスを指示するアドレスシーケンスである。
【００３７】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンス及びデータＷ０を受け付けると、データＷ０をページバッファ８内の指示されたカラムアドレス及びページアドレスに記憶する（図３（ｄ）参照）。この時、不揮発性半導体記憶装置３は、ページバッファ８にデータＷ０を記憶するだけである。なお、同図（ｆ）に示す「ｄａｔａｉｎ」はページバッファ８に書き込まれる実データＷ０を示す。以上のデータＷ０の書き込み動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。続いて、コントローラ２内のＣＰＵ４は、データ読み出しコマンドＲ１をホスト装置２０に出力する。
【００３８】
次に、図３（ａ）に示すタイミングＴ４において、ＣＰＵ４は、上記タイミングＴ２においてＲＡＭ６に保持した５２２ＢｙｔｅのデータＲ１を読み出す。次いで、ＣＰＵ４は、データＲ１内のＥＣＣ（１０Ｂｙｔｅ）を外し、ホスト装置２０で利用されるＥＣＣデータ又はＣＲＣデータ等（１６Ｂｙｔｅ）を付加して５２８Ｂｙｔｅとして、ホスト装置２０に出力する（図３（ａ）参照）。同図（ａ）の「Ｒ１  ｄａｔａｏｕｔ」はコントローラ２からホスト装置２０に転送される実データＲ１を示す。また、タイミングＴ４において、コントローラ２は、続いてデータＲ２が読み出されることを予測して、以下のデータＲ２の読み出し動作を制御する。
【００３９】
ＣＰＵ４は、同図（ｆ）に示す「７８ｈ−０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」コマンド／アドレスシーケンスを生成して不揮発性半導体記憶装置３に出力する。この一連のコマンドのうち、「７８ｈ」はデータ読み出し先をページバッファ８からデータキャッシュ７に切り替えるためのコマンド、「０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」は上記タイミングＴ１と同様に、データキャッシュ７内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。
【００４０】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンスを受け付けると、データキャッシュ７内の指示された先頭カラムアドレスからデータＲ２を読み出してコントローラ２に転送する。ＣＰＵ４は、転送されたデータＲ２をＲＡＭ６の空き領域（データＷ０を読み出した後の領域）に保持する（図３（ｂ）、（ｃ）参照）。なお、同図（ｆ）に示す「ｄａｔａｏｕｔ」は、不揮発性半導体記憶装置３から読み出された実データＲ２を示す。以上のデータＲ２の読み出し動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。
【００４１】
次に、図３（ａ）に示すタイミングＴ５において、ホスト装置２０は、メモリカード１に対してデータＷ１の書き込みを要求するＷｒｉｔｅコマンドＷ１とデータＷ１（同図（ａ）の「Ｗ１，Ｗ１  ｄａｔａｉｎ」）を出力する。ＣＰＵ４は、ホスト装置２０からＷｒｉｔｅコマンドＷ１とデータＷ１を受け付けると、データＷ１をＲＡＭ６の空き領域（データＲ１を読み出した後の領域）に保持する（図３（ｂ）参照）。次いで、ＣＰＵ４は、同図（ｆ）に示す「７７ｈ−８５ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」コマンド／アドレスシーケンスを生成して、ＲＡＭ６から読み出したデータＷ１とともに不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「７７ｈ」はデータ書き込み先をデータキャッシュ７からページバッファ８に切り替えるためのコマンド、「８５ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」はページバッファ８内のデータ書き込み先のカラムアドレスを指示するコマンド、及びデータ書き込み先の先頭カラムアドレス及びページアドレスを指示するアドレスシーケンスである。
【００４２】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンス及びデータＷ１を受け付けると、データＷ１をページバッファ８内の指示されたカラムアドレス及びページアドレスに記憶する（図３（ｄ）参照）。この時、不揮発性半導体記憶装置３は、ページバッファ８にデータＷ０及びＷ１を記憶するだけである。なお、同図（ｆ）に示す「ｄａｔａｉｎ」はページバッファ８に書き込まれる実データＷ１を示す。以上のデータＷ１の書き込み動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。続いて、コントローラ２内のＣＰＵ４は、データ読み出しコマンドＲ２をホスト装置２０に出力する。
【００４３】
次に、図４（ａ）に示すタイミングＴ６において、ＣＰＵ４は、上記タイミングＴ４においてＲＡＭ６に保持した５２２ＢｙｔｅのデータＲ２を読み出す。次いで、ＣＰＵ４は、データＲ２内のＥＣＣ（１０Ｂｙｔｅ）を外し、ホスト装置２０で利用されるＥＣＣデータ又はＣＲＣデータ等（１６Ｂｙｔｅ）を付加して５２８Ｂｙｔｅとして、ホスト装置２０に出力する（図４（ａ）参照）。同図（ａ）の「Ｒ２  ｄａｔａｏｕｔ」はコントローラ２からホスト装置２０に転送される実データＲ２を示す。また、タイミングＴ６において、コントローラ２は、続いてデータＲ３が読み出されることを予測して、以下のデータＲ３の読み出し動作を制御する。
【００４４】
ＣＰＵ４は、同図（ｆ）に示す「７８ｈ−０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」コマンド／アドレスシーケンスを生成して不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「７８ｈ」はデータ読み出し先をページバッファ８からデータキャッシュ７に切り替えるためのコマンド、「０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」は上記タイミングＴ１と同様に、データキャッシュ７内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。
【００４５】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンスを受け付けると、データキャッシュ７内の指示された先頭カラムアドレスからデータＲ３を読み出してコントローラ２に転送する。ＣＰＵ４は、転送されたデータＲ３をＲＡＭ６の空き領域（データＷ１を読み出した後の領域）に保持する（図４（ｂ）、（ｃ）参照）。なお、同図（ｆ）に示す「ｄａｔａｏｕｔ」は、不揮発性半導体記憶装置３から読み出された実データＲ３を示す。以上のデータＲ３の読み出し動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。また、このタイミングＴ６の動作終了後は、データキャッシュ７に一時記憶された１ページ分のデータＲ０〜Ｒ３は、全てコントローラ２への転送が終了する。
【００４６】
次に、図４（ａ）に示すタイミングＴ７において、ホスト装置２０は、メモリカード１に対してデータＷ２の書き込みを要求するＷｒｉｔｅコマンドＷ２とデータＷ２（図中の「Ｗ２，Ｗ２  ｄａｔａｉｎ」）を出力する。ＣＰＵ４は、ホスト装置２０からＷｒｉｔｅコマンドＷ２とデータＷ２を受け付けると、データＷ２をＲＡＭ６の空き領域（データＲ２を読み出した後の領域）に保持する（図４（ｂ）参照）。次いで、ＣＰＵ４は、同図（ｆ）に示す「７７ｈ−８５ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」コマンド／アドレスシーケンスを生成し、ＲＡＭ６から読み出したデータＷ２とともに不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「７７ｈ」はデータ書き込み先をデータキャッシュ７からページバッファ８に切り替えるためのコマンド、「８５ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」はページバッファ８内のデータ書き込み先のカラムアドレス及びページアドレスを指示するためのコマンド／アドレスシーケンスである。
【００４７】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンスを受け付けると、データＷ２をページバッファ８内の指示されたカラムアドレス及びページアドレスに記憶する（図４（ｄ）参照）。この時、不揮発性半導体記憶装置３は、ページバッファ８にデータＷ０〜Ｗ２を記憶するだけである。なお、同図（ｆ）に示す「ｄａｔａｉｎ」はページバッファ８に書き込まれる実データＷ２を示す。以上のデータＷ２の書き込み動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。続いて、コントローラ２内のＣＰＵ４は、データ読み出しコマンドＲ３をホスト装置２０に出力する。
【００４８】
次に、図４（ａ）に示すタイミングＴ８において、ＣＰＵ４は、上記タイミングＴ６においてＲＡＭ６に保持した５２２ＢｙｔｅのデータＲ３を読み出す。次いで、ＣＰＵ４は、データＲ３内のＥＣＣ（１０Ｂｙｔｅ）を外し、ホスト装置２０で利用されるＥＣＣデータ又はＣＲＣデータ等（１６Ｂｙｔｅ）を付加して５２８Ｂｙｔｅとして、ホスト装置２０に出力する（図４（ａ）参照）。同図（ａ）の「Ｒ３  ｄａｔａｏｕｔ」はコントローラ２からホスト装置２０に転送される実データＲ３を示す。また、タイミングＴ８において、コントローラ２は、続いてデータＲ４が読み出されることを予測して、以下のデータＲ４の読み出し動作を制御する。
【００４９】
ＣＰＵ４は、同図（ｆ）に示す「７８ｈ−００ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ−３０ｈ」を生成して不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「７８ｈ」はデータ読み出し先をページバッファ８からデータキャッシュ７に切り替えるためのコマンド、「００ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ−３０ｈ」は上記タイミングＴ１と同様にメモリセル９内のデータ読み出しを指示するコマンド、及びメモリセル９内のデータ読み出し先の先頭カラムアドレス及びページアドレスを指示するアドレスシーケンスである。
【００５０】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンスを受け付けると、メモリセル９内の指示されたカラムアドレス及びページアドレスからページ単位（２１１２Ｂｙｔｅ）のデータＲ４〜Ｒ７を読み出して、データキャッシュ７に記憶する（図４（ｅ）、（ｃ）参照）。このデータ読み出し中に、不揮発性半導体記憶装置３は、コントローラ２に対して、同図（ｆ）に示す上記ビジー信号Ｂ２Ｒを出力する。
【００５１】
次いで、コントローラ２内のＣＰＵ４は、不揮発性半導体記憶装置３からビジー信号Ｂ２Ｒを受け付けると、上記レディ状態に切り替わるまでの期間が経過した後、同図（ｆ）に示す「０５ｈ−ＣＡ−ＣＡ−Ｅ０ｈ」コマンド／アドレスシーケンスを生成して不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスは上記タイミングＴ１と同様に、データキャッシュ７内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。
【００５２】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンスを受け付けると、データキャッシュ７内の指示された先頭カラムアドレスからデータＲ４を読み出してコントローラ２に転送する。ＣＰＵ４は、転送されたデータＲ４をＲＡＭ６の空き領域（データＷ２を読み出した後の領域）に保持する（図４（ｂ）、（ｃ）参照）。なお、同図（ｆ）に示す「ｄａｔａｏｕｔ」は、不揮発性半導体記憶装置３から読み出された実データＲ４を示す。以上のデータＲ４の読み出し動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。
【００５３】
次に、図４（ａ）のタイミングＴ９において、ホスト装置２０は、メモリカード１に対してデータＷ３の書き込みを要求するＷｒｉｔｅコマンドＷ３とデータＷ３（図中の「Ｗ３，Ｗ３  ｄａｔａｉｎ」）を出力する。ＣＰＵ４は、ホスト装置２０からＷｒｉｔｅコマンドＷ３とデータＷ３を受け付けると、データＷ３をＲＡＭ６の空き領域（データＲ４を読み出した後の領域）に保持する（図４（ｂ）参照）。次いで、ＣＰＵ４は、同図（ｆ）に示す「７７ｈ−８５ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」コマンド／アドレスシーケンスを生成し、ＲＡＭ６から読み出したデータＷ３とともに不揮発性半導体記憶装置３に出力する。この一連のコマンド／アドレスシーケンスのうち、「７７ｈ」はデータ書き込み先をデータキャッシュ７からページバッファ８に切り替えるためのコマンド、「８５ｈ−ＣＡ−ＣＡ−ＲＡ−ＲＡ−ＲＡ」はページバッファ８内のデータ書き込み先のカラムアドレス及びページアドレスを指示するためのコマンド／アドレスシーケンスである。
【００５４】
不揮発性半導体記憶装置３は、ＣＰＵ４から上記一連のコマンド／アドレスシーケンスを受け付けると、データＷ３をページバッファ８内の指示されたカラムアドレス及びページアドレスに記憶する（図４（ｄ）参照）。なお、（ｆ）に示す「ｄａｔａｉｎ」はページバッファ８に書き込まれる実データＷ３を示す。次いで、ＣＰＵ４は、メモリセル９内へのデータ書き込みを指示する「１０ｈ」コマンド（図４（ｆ）参照）を不揮発性半導体記憶装置３に出力する。不揮発性半導体記憶装置３は、ＣＰＵ４から「１０ｈ」コマンドを受け付けると、ページバッファ８から１ページ分のデータＷ０〜Ｗ３を読み出してメモリセル９に書き込む（図４（ｄ）、（ｅ）参照）。この書き込み動作により、ページバッファ８は、全て空き領域となる。以上のデータＷ０〜Ｗ３の書き込み動作後に、コントローラ２からホスト装置２０に対して上記ビジー信号「Ｈｏｓｔ  Ｂｕｓｙ」が出力される。
【００５５】
以上のように、本実施形態のメモリカード１では、コントローラ２内のＣＰＵ４が、ホスト装置２０から入力されるデータ読み出し要求コマンド／データ書き込み要求コマンドの受け付け時に、メモリセル９に書き込むデータ、メモリセル９から読み出すデータの一時記憶先をデータキャッシュ７又はページバッファ８に切り替えるコマンド／アドレスシーケンスを生成するようにした。また、不揮発性半導体記憶装置３は、ＣＰＵ４から入力されるコマンド／アドレスシーケンスに応じて、メモリセル９に書き込むデータ、メモリセル９から読み出すデータの一時記憶先をデータキャッシュ７又はページバッファ８に適宜切り替えることを可能にした。
【００５６】
したがって、ホスト装置２０から入力されるデータ読み出し要求コマンド／データ書き込み要求コマンドに応じて、メモリカード１内のデータキャッシュ７及びページバッファ８を適宜切り替えて、読み出し対象データ及び書き込み対象データの一時記憶先を有効利用することが可能になる。その結果、データキャッシュ７又はページバッファ８に記憶済みの有効データを無駄にすることがなくなり、コントローラ２内のＲＡＭ６の記憶容量の増大を抑制することが可能になり、ホスト装置２０からメモリカード１にアクセスする際のアクセス性能の低下を抑制できる。
【００５７】
なお、上記実施形態では、コントローラ２内のＣＰＵ４が、ホスト装置２０からデータの読み出し要求コマンド及び書き込み要求コマンドを受け付けた時に、読み出し対象データ及び書き込み対象データの一時記憶先として、データキャッシュ７又はページバッファ８を適宜切り替えるコマンド／アドレスシーケンスを生成する場合を示した。これに限るものではなく、例えば、コントローラ２内のＣＰＵ４が、ホスト装置２０からデータの読み出し先及びデータ書き込み先のアドレス値を受け付けた時に、対象データの一時記憶先としてデータキャッシュ７又はページバッファ８を適宜切り替えるコマンド／アドレスシーケンスを生成するようにしてもよい。
【００５８】
この場合、ホスト装置２０は、データの読み出し要求コマンド及び書き込み要求コマンドに、データ読み出し先及びデータ書き込み先のアドレス値を付加する。コントローラ２内のＣＰＵ４は、ホスト装置２０から入力されるデータの読み出し要求コマンド及び書き込み要求コマンドに付加されたアドレス値が、例えば、ある範囲にある場合に、対象データの一時記憶先としてデータキャッシュ７又はページバッファ８を適宜切り替えるコマンド／アドレスシーケンスを生成するようにしてもよい。
【００５９】
また、上記実施形態では、データキャッシュ７を読み出しデータの一時記憶先とし、ページバッファ８を書き込みデータの一時記憶先として利用する場合を示したが、データキャッシュ７に記憶されているデータと、ページバッファ８に記憶されているデータを適宜交換するようにしてもよい。
【００６０】
例えば、データキャッシュ７に書き込みデータが一時記憶された状態で、ホスト装置２０から読み出し要求されたデータがページバッファ８に記憶されている場合に、ＣＰＵ４は、ホスト装置２０から読み出し要求コマンドを受け付けた時に、不揮発性半導体記憶装置３に対してデータの交換を要求するコマンド／アドレスシーケンスを生成するようにしてもよい。この場合、データキャッシュ７に記憶されたデータを無駄にすることなく、アクセス性能の低下を抑制できる。
【００６１】
さらに、上記実施形態では、コントローラ２内のＣＰＵ４が、読み出しデータ／書き込みデータの一時記憶先を、データキャッシュ７からページバッファ８に切り替えるためのコマンド、又は、ページバッファ８からデータキャッシュ７に切り替える内部コマンドを生成する場合を示した。これに限るものではなく、コントローラ２内のＣＰＵ４が、ホスト装置２０から受信するアドレスに応じて、読み出しデータ／書き込みデータの一時記憶先をデータキャッシュ７又はページバッファ８に切り替えるようにしてもよい。また、コントローラ２に選択ピンを設け、この選択ピンの切り替えにより、ＣＰＵ４が、ホスト装置２０から受信するアドレスに応じて、読み出しデータ／書き込みデータの一時記憶先をデータキャッシュ７又はページバッファ８に切り替えるようにしてもよい。
【００６２】
また、上記実施形態では、本発明のメモリシステムをメモリカードに適用した場合を示したが、これに限るものではない。本発明のメモリシステムは、例えば、上記メモリカードと同様の構成がプリント基板に実装される製品等にも適用可能であり、その実装形態を限定するものではない。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施形態に係るメモリカードの概略構成を示す図である。
【図２】本発明の一実施形態に係る（ａ）はメモリカードからホスト装置に対して出力されるコマンド及び信号、（ｂ）はメモリカード内のＲＡＭの初期状態、（ｃ）はデータキャッシュの初期状態、（ｄ）はページバッファの初期状態、（ｅ）はメモリセル９の初期状態、のそれぞれ一例を示す図である。
【図３】本発明の一実施形態に係る（ａ）はホスト装置とメモリカードとの間で授受されるコマンド、信号及びデータの遷移状態、（ｂ）はＲＡＭに一時保持される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｃ）はデータキャッシュに一時記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｄ）はページバッファに一時記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｅ）はメモリセルに記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｆ）はＣＰＵから出力されるコマンドの内容、のそれぞれ一例を示す図である。
【図４】本発明の一実施形態に係る（ａ）はホスト装置とメモリカードとの間で授受されるコマンド、信号及びデータの遷移状態、（ｂ）はＲＡＭに一時保持される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｃ）はデータキャッシュに一時記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｄ）はページバッファに一時記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｅ）はメモリセルに記憶される読み出しデータＲｎ／書き込みデータＷｎの遷移状態、（ｆ）はＣＰＵから出力されるコマンドの内容、のそれぞれ一例を示す図である。
【符号の説明】
【００６４】
１  メモリカード
２  コントローラ
３  不揮発性半導体記憶装置
４  ＣＰＵ
５  ＲＯＭ
６  ＲＡＭ
７  データキャッシュ
８  ページバッファ
９  メモリセル
【図１】
2008234723.tif 000003
【図２】
2008234723.tif 000004
【図３】
2008234723.tif 000005
【図４】
2008234723.tif 000006