JP2008234723A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2008234723A JP2008234723A JP2007069765A JP2007069765A JP2008234723A JP 2008234723 A JP2008234723 A JP 2008234723A JP 2007069765 A JP2007069765 A JP 2007069765A JP 2007069765 A JP2007069765 A JP 2007069765A JP 2008234723 A JP2008234723 A JP 2008234723A
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- command
- nonvolatile semiconductor
- semiconductor memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】アクセス性能の低下とコストの増大を抑制するメモリシステム。
【解決手段】メモリシステムは、ページ単位でデータの書込み及び読出しが行われる複数のメモリセルと、前記メモリセルに書込むページ単位のデータ、及び前記メモリセルから読出したページ単位のデータを一時的に記憶する第1の記憶部と、前記メモリセルに書込むページ単位のデータ、及び前記メモリセルから読出したページ単位のデータを一時的に記憶する第2の記憶部と、を含む不揮発性半導体記憶装置と、外部のホスト装置からデータの書込み要求及び読出し要求を受け付けて、前記不揮発性半導体記憶装置に対するデータ書込みコマンド及びデータ読出しコマンドを生成する制御部と、を具備し、前記制御部は、前記不揮発性半導体記憶装置に書込むデータ、前記不揮発性半導体記憶装置から読出すデータの記憶先を、前記第1の記憶部と前記第2の記憶部との間で選択する。
【選択図】図1
【解決手段】メモリシステムは、ページ単位でデータの書込み及び読出しが行われる複数のメモリセルと、前記メモリセルに書込むページ単位のデータ、及び前記メモリセルから読出したページ単位のデータを一時的に記憶する第1の記憶部と、前記メモリセルに書込むページ単位のデータ、及び前記メモリセルから読出したページ単位のデータを一時的に記憶する第2の記憶部と、を含む不揮発性半導体記憶装置と、外部のホスト装置からデータの書込み要求及び読出し要求を受け付けて、前記不揮発性半導体記憶装置に対するデータ書込みコマンド及びデータ読出しコマンドを生成する制御部と、を具備し、前記制御部は、前記不揮発性半導体記憶装置に書込むデータ、前記不揮発性半導体記憶装置から読出すデータの記憶先を、前記第1の記憶部と前記第2の記憶部との間で選択する。
【選択図】図1
Description
本発明は、ページ単位でデータの書き込み及び読み出しを行うメモリシステムに関する。
NAND型フラッシュメモリ等の不揮発性半導体記憶装置を搭載したメモリカードは、パーソナルコンピュータ、デジタルカメラ、携帯電話機等の携帯型電子機器(以下、ホスト装置という)に多く利用されている。
メモリカードとしては、ホスト装置との間でコマンドやデータを授受するコントローラと、NAND型フラッシュメモリ等の不揮発性半導体記憶装置と、を搭載したものがある。不揮発性半導体記憶装置内には、ページ単位でデータを読み出し/書き込みするメモリセルと、読み出し/書き込みするページ単位のデータを一時的に保存するページバッファと、コントローラを介してホスト装置との間で読み出し/書き込みするページ単位のデータを一時的に保存するデータキャッシュと、が含まれている。
上記メモリカードでは、コントローラがデータキャッシュにしかアクセスできない構成になっていた。このため、例えば、有効なデータがページバッファとデータキャッシュの双方に記憶されている場合、以下のような不具合が発生していた。コントローラからページバッファに記憶されているデータにアクセスするためには、データキャッシュに該当データをコピーする必要があり、データキャッシュに記憶されているデータがページバッファに記憶されているデータで上書きされてしまう。
上記の上書き動作前にデータキャッシュに記憶されていたデータにコントローラからアクセスするためには、再度、該当データをメモリセルからページバッファに読み出す必要がある。すなわち、有効なデータがページバッファとデータキャッシュの双方に記憶されている場合は、無駄なアクセス動作が発生し、ホスト装置からメモリカードにアクセスする際のアクセス性能を低下させる原因となる。
また、ホスト装置からメモリカードに対するデータの書き込み/読み出し要求が短時間に重なると、データキャッシュに記憶済みのデータを捨てなければならなくなる可能性がある。データキャッシュに記憶済みのデータを無駄にしないためには、コントローラ内にデータを一時保存するRAM等を設ける必要がある。
すなわち、ページバッファに記憶された書き込みデータのメモリセルへの書き込みが終了し、データキャッシュに記憶済みのデータがページバッファに書き込み可能になるまで、コントローラ内のRAMに書き込みデータを一時保存する対策が必要となる。これは、コントローラ内のRAM容量を増大させるため、メモリカードのコストを増大させる原因となる。
また、上記のような構成のメモリカードとしては、例えば、特許文献1に記載されたものもある。このメモリカードでは、メモリカードの仕様に合わないシーケンスでコマンドを発行するホスト装置に対して、正常に応答するための制御プログラムを格納するためのROM、その制御プログラムを実行するためのRAMを搭載している。
特開2006−92019号公報
本発明は、コントローラから不揮発性半導体記憶装置内のデータキャッシュとページバッファの双方に適宜切り替えてアクセスすることを可能にして、アクセス性能の低下とコストの増大を抑制するメモリシステムを提供することにある。
本発明の一実施形態に係るメモリシステムは、ページ単位でデータの書き込み及び読み出しが行われる複数のメモリセルと、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第1の記憶部と、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第2の記憶部と、を含む不揮発性半導体記憶装置と、外部のホスト装置からデータの書き込み要求及び読み出し要求を受け付けて、前記不揮発性半導体記憶装置に対するデータ書き込みコマンド及びデータ読み出しコマンドを生成する制御部と、を具備し、前記制御部は、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの記憶先を、前記第1の記憶部と前記第2の記憶部との間で選択することを特徴としている。
本発明の一実施形態によれば、アクセス性能の低下とコストの増大を抑制するメモリシステムを提供することができる。
以下、図面を参照して本発明の実施形態を詳細に説明する。但し、本発明は多くの異なる態様で実施することが可能であり、以下に示す実施の形態の記載内容に限定して解釈されるものではない。
図1は、本発明のメモリシステムを適用した一実施形態に係るメモリカードの概略構成を示す図である。図1に示すようにメモリカード1は、コントローラ2及び不揮発性半導体記憶装置3を有する。コントローラ2は、CPU4、ROM5及びRAM6を有する。不揮発性半導体記憶装置3は、データキャッシュ7、ページバッファ8及びメモリセル9を有する。ここでは、不揮発性半導体記憶装置3の例としてNAND型フラッシュメモリを挙げて説明するが、不揮発性半導体記憶装置3はNAND型フラッシュメモリに限らず、例えば、NOR型フラッシュメモリ等でもよい。
コントローラ2は、ホスト装置20と接続される。コントローラ2は、ホスト装置20との間でコマンド、信号やデータを授受し、不揮発性半導体記憶装置3に対するデータ書き込み、データ読み出し、及び消去の各動作を制御するコマンドを生成する。ROM5は、データ書き込み、データ読み出し、及び消去の各動作を制御する制御プログラムを格納する。CPU4は、ホスト装置20からコマンド及びデータを受け付けて動作を開始し、ROM5に格納された制御プログラムをRAM6に展開し、制御プログラムに基づいて不揮発性半導体記憶装置3に対するデータ書き込み、データ読み出し、及び消去の各動作を制御するコマンドを生成する。また、CPU4は、ホスト装置20からのデータの読み出し要求コマンド及び書き込み要求コマンドを受け付けた時に、メモリセル9内のデータ読み出し/書き込み先を指定するためのコマンド及びアドレスを生成して不揮発性半導体記憶装置3に出力する。RAM6は、ホスト装置20からのデータ読み出し/書き込み要求が短時間に重なった場合など、有効データを一時的に保持する。不揮発性半導体記憶装置3は、CPU4から入力されるコマンドを受け付けて、メモリセル9に対するデータ読み出し動作、データ書き込み動作を実行する。
データキャッシュ7(第1の記憶部)は、メモリセル9に対して読み出し/書き込みするページ単位のデータを一時的に記憶する記憶容量(例えば、2048+64=2112Byte)を有する。
ページバッファ8(第2の記憶部)は、メモリセル9に対して読み出し/書き込みするページ単位のデータを一時的に記憶する記憶容量(例えば、2048+64=2112Byte)を有する。
メモリセル9は、マトリクス状に配列された複数のメモリセルから構成され、ページ単位(例えば、2048+64=2112Byte)でデータの書き込み及び読み出しが行われる。
ホスト装置20は、メモリカード1に対して、512Byteのセクタ単位でデータの読み出し/書き込みを繰り返すものとする。
上記コントローラ2内のCPU4は、上記ホスト装置20から入力されるデータ読み出し要求コマンド/書き込み要求コマンドを受け付けた時に、読み出しデータ/書き込みデータの一時記憶先を、データキャッシュ7からページバッファ8に切り替えるためのコマンド、又は、ページバッファ8からデータキャッシュ7に切り替える内部コマンドを生成する。
次に、本実施形態に係るメモリカード1とホスト装置20との間で行われる動作例について、図2〜図4を参照して説明する。図2は、メモリカード1とホスト装置20との間の動作の初期状態を示す図である。図3及び図4は、メモリカード1とホスト装置20との間の動作の遷移状態を示すタイミングチャートである。
図2において、(a)はメモリカード1からホスト装置20に対して出力されるコマンド及び信号、(b)はメモリカード1内のRAM6の初期状態、(c)はデータキャッシュ7の初期状態、(d)はページバッファ8の初期状態、(e)はメモリセル9の初期状態、をそれぞれ示す。
図2(a)において、ホスト装置20は、(512+16)Byte×32Page分の消去単位を持ち、(512+16)Byteのページ単位でデータ読み出し/書き込みを行うものとする。この図2(a)では、メモリカード1からホスト装置20に対してデータ読み出しコマンドR0が出力された後、メモリカード1側がビジー状態であることを示すビジー信号「Host Busy」が出力された場合を示している。なお、16Byteは、ホスト装置20内でデータ転送エラーを検出するためのECC(Error Correcting Code )データ、論理アドレス(LBA)、又は、CRC(Cyclic Redundancy Check)データ等に利用されるデータである。図2(b)において、RAM6は、ホスト装置20においてデータ読み出し/書き込みが行われるセクタ単位(512Byte)のデータを2つ分(1kByte)保持する記憶容量を有するものとする。このRAM6の初期状態では、読み出しデータRn/書き込みデータWn(但し、n=0〜N)は記憶されていない。
図2(c)、(d)において、データキャッシュ7及びページバッファ8は、上述のように、メモリセル9においてデータ読み出し/書き込みが行われる1ページ分(2112Byte)のデータを一時的に記憶する記憶容量を有する。すなわち、データキャッシュ7及びページバッファ8は、セクタ単位のデータを4つ分記憶する記憶容量を有するものとする。これらデータキャッシュ7及びページバッファ8の各初期状態では、読み出しデータRn/書き込みデータWn(n:0〜n)は記憶されていない。図2(e)において、メモリセル9は、データ読み出し/書き込みが行われるページ(2112Byte)×128Pageの消去単位を持つNAND型フラッシュメモリであるものとする。メモリセル9の初期状態では、ページ単位にデータが記憶されているが、図示はしない。
また、本実施形態において、メモリカード1は、RAM6からデータキャッシュ7及びページバッファ8にデータを転送する際は、セクタ単位のデータに10ByteのECC(Error Correcting Code)データを付加し、512+10=522Byteで転送するものとする。
また、本実施形態において、CPU4は、ホスト装置20からデータの読み出し要求コマンド/書き込み要求コマンドを受け付けた際は、不揮発性半導体記憶装置3に対して、以下のコマンド/アドレスシーケンスを生成して出力するものとする。
00h:読み出しアドレスを指示するためのコマンド
30h:読み出し開始コマンド
05h−CA−CA−E0h:データ読み出し先のカラムアドレス(CA:Column Address:列アドレス)を指示するためのコマンド/アドレスシーケンス
85h−CA−CA−E0h:データ書き込み先のカラムアドレスを指示するためのコマンド/アドレスシーケンス
77h:データ読み出し先/データ書き込み先をデータキャッシュ7からページバッファ8に切り替えるためのコマンド
78h:データ読み出し先/データ書き込み先をページバッファ8からデータキャッシュ7に切り替えるためのコマンド
30h:読み出し開始コマンド
05h−CA−CA−E0h:データ読み出し先のカラムアドレス(CA:Column Address:列アドレス)を指示するためのコマンド/アドレスシーケンス
85h−CA−CA−E0h:データ書き込み先のカラムアドレスを指示するためのコマンド/アドレスシーケンス
77h:データ読み出し先/データ書き込み先をデータキャッシュ7からページバッファ8に切り替えるためのコマンド
78h:データ読み出し先/データ書き込み先をページバッファ8からデータキャッシュ7に切り替えるためのコマンド
図3において、(a)はホスト装置20とメモリカード1との間で授受されるコマンド、信号及びデータの遷移状態、(b)はRAM6に保持される読み出しデータRn/書き込みデータWnの遷移状態、(c)はデータキャッシュ7に記憶される読み出しデータRn/書き込みデータWnの遷移状態、(d)はページバッファ8に記憶される読み出しデータRn/書き込みデータWnの遷移状態、(e)はメモリセル9に記憶される読み出しデータRn/書き込みデータWnの遷移状態、(f)はCPU4において生成されるコマンド/アドレスシーケンスの内容を、それぞれ示す。なお、図4(a)〜(f)も同様の内容を図示する。
次に、図3を参照して、メモリカード1とホスト装置20との間の具体的な動作について説明する。なお、図3中の点線矢印は、データの転送状態を示すものであり、メモリカード1内で授受されるコマンドは含まれない。
図3(a)に示すタイミングT1において、ホスト装置20は、メモリカード1に対して読み出しを要求するReadコマンドを出力する。コントローラ2内のCPU4は、ホスト装置20からReadコマンドを受け付けると、上記図2(a)に示したデータ読み出しコマンドR0(データR0を読み出すことを示すコマンド)をホスト装置20に出力する。このデータ読み出しコマンドR0の出力後に、メモリカード1内で実行されるデータR0の読み出し動作について、図3(b)〜(f)を参照して説明する。
まず、コントローラ2内のCPU4は、同図(f)に示す「00h−CA−CA−RA−RA−RA−30h」コマンド/アドレスシーケンスを生成して不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「00h」はメモリセル9内のデータ読み出しアドレスを指示するコマンド、「30h」はデータ読み出し開始を指示するコマンドである。「CA−CA−RA−RA−RA」のうち、「CA−CA」はメモリセル9内のデータ読み出し先の先頭カラムアドレス、「RA−RA−RA」はメモリセル9内のデータ読み出し先のページアドレスである。
不揮発性半導体記憶装置3は、CPU4から「00h−CA−CA−RA−RA−RA−30h」コマンド/アドレスシーケンスを受け付けると、メモリセル9内の指示されたカラムアドレス及びページアドレスからページ単位(2112Byte)のデータR0〜R3を読み出して、データキャッシュ7に記憶する(図3(e)、(c)参照)。このデータ読み出し中に、不揮発性半導体記憶装置3は、コントローラ2に対して、同図(f)に示すビジー信号B2Rを出力する。このビジー信号B2R(Busy To Ready)は、不揮発性半導体記憶装置3のビジー/レディ信号ピン(図示せず)から出力される信号であり、ビジー信号が出力されてからレディ状態に切り替わるまでの期間を示す信号である。
次いで、コントローラ2内のCPU4は、不揮発性半導体記憶装置3からビジー信号B2Rを受け付けると、上記レディ状態に切り替わるまでの期間が経過した後、同図(f)に示す「05h−CA−CA−E0h」コマンド/アドレスシーケンスを生成して不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「05h」及びは「E0h」は、データキャッシュ7内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、「CA−CA」はデータキャッシュ7内のデータ読み出し先の先頭カラムアドレスである。
不揮発性半導体記憶装置3は、CPU4から「05h−CA−CA−E0h」コマンド/アドレスシーケンスを受け付けると、データキャッシュ7内の指示された先頭カラムアドレスからデータR0を読み出してコントローラ2に転送する(図3(c)参照)。なお、本実施形態では、不揮発性半導体記憶装置3は、CPU4からデータ読み出し先の先頭カラムアドレスを受け付けると、522Byte単位で読み出しデータをコントローラ2に転送するものとする。コントローラ2内のCPU4は、転送されたデータR0をRAM6に保持する(図3(b)参照)。なお、同図(f)に示す「dataout」は、不揮発性半導体記憶装置3から読み出された実データR0を示す。
次に、図3(a)に示すタイミングT2において、CPU4は、上記タイミングT1においてRAM6に保持した522ByteのデータR0を読み出す。次いで、CPU4は、データR0内のECC(10Byte)を外し、ホスト装置20で利用されるECCデータ又はCRCデータ等(16Byte)を付加して528Byteとして、ホスト装置20に出力する(図3(a)参照)。同図(a)の「R0 dataout」はコントローラ2からホスト装置20に転送される実データR0を示す。また、タイミングT2において、コントローラ2は、続いてデータR1が読み出されることを予測して、以下のデータR1の読み出し動作を制御する。
CPU4は、同図(f)に示す「05h−CA−CA−E0h」コマンド/アドレスシーケンスを生成して不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスは、上記タイミングT1と同様に、データ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンスを受け付けると、データキャッシュ7内の指示された先頭カラムアドレスからデータR1を読み出してコントローラ2に転送する(図3(c)参照)。CPU4は、転送されたデータR1をRAM6の空き領域に保持する(図3(b)参照)。なお、同図(f)に示す「dataout」は、不揮発性半導体記憶装置3から読み出された実データR0を示す。以上のデータR0の読み出し動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。
次に、図3(a)に示すタイミングT3において、ホスト装置20は、メモリカード1に対してデータW0の書き込みを要求するWriteコマンドW0とデータW0(同図(a)の「W0,W0 datain」)を出力する。CPU4は、ホスト装置20からWriteコマンドW0とデータW0を受け付けると、データW0をRAM6の空き領域(データR0を読み出した後の領域)に保持する(図3(b)参照)。次いで、CPU4は、同図(f)に示す「77h−85h−CA−CA−RA−RA−RA」コマンド/アドレスシーケンスを生成し、RAM6から読み出したデータW0とともに不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「77h」はデータ書き込み先をデータキャッシュ7からページバッファ8に切り替えるためのコマンド、「85h」はページバッファ8内のデータ書き込み先のカラムアドレスを指示するコマンド、「CA−CA−RA−RA−RA」はページバッファ8内のデータ書き込み先の先頭カラムアドレス及びページアドレスを指示するアドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンス及びデータW0を受け付けると、データW0をページバッファ8内の指示されたカラムアドレス及びページアドレスに記憶する(図3(d)参照)。この時、不揮発性半導体記憶装置3は、ページバッファ8にデータW0を記憶するだけである。なお、同図(f)に示す「datain」はページバッファ8に書き込まれる実データW0を示す。以上のデータW0の書き込み動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。続いて、コントローラ2内のCPU4は、データ読み出しコマンドR1をホスト装置20に出力する。
次に、図3(a)に示すタイミングT4において、CPU4は、上記タイミングT2においてRAM6に保持した522ByteのデータR1を読み出す。次いで、CPU4は、データR1内のECC(10Byte)を外し、ホスト装置20で利用されるECCデータ又はCRCデータ等(16Byte)を付加して528Byteとして、ホスト装置20に出力する(図3(a)参照)。同図(a)の「R1 dataout」はコントローラ2からホスト装置20に転送される実データR1を示す。また、タイミングT4において、コントローラ2は、続いてデータR2が読み出されることを予測して、以下のデータR2の読み出し動作を制御する。
CPU4は、同図(f)に示す「78h−05h−CA−CA−E0h」コマンド/アドレスシーケンスを生成して不揮発性半導体記憶装置3に出力する。この一連のコマンドのうち、「78h」はデータ読み出し先をページバッファ8からデータキャッシュ7に切り替えるためのコマンド、「05h−CA−CA−E0h」は上記タイミングT1と同様に、データキャッシュ7内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンスを受け付けると、データキャッシュ7内の指示された先頭カラムアドレスからデータR2を読み出してコントローラ2に転送する。CPU4は、転送されたデータR2をRAM6の空き領域(データW0を読み出した後の領域)に保持する(図3(b)、(c)参照)。なお、同図(f)に示す「dataout」は、不揮発性半導体記憶装置3から読み出された実データR2を示す。以上のデータR2の読み出し動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。
次に、図3(a)に示すタイミングT5において、ホスト装置20は、メモリカード1に対してデータW1の書き込みを要求するWriteコマンドW1とデータW1(同図(a)の「W1,W1 datain」)を出力する。CPU4は、ホスト装置20からWriteコマンドW1とデータW1を受け付けると、データW1をRAM6の空き領域(データR1を読み出した後の領域)に保持する(図3(b)参照)。次いで、CPU4は、同図(f)に示す「77h−85h−CA−CA−RA−RA−RA」コマンド/アドレスシーケンスを生成して、RAM6から読み出したデータW1とともに不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「77h」はデータ書き込み先をデータキャッシュ7からページバッファ8に切り替えるためのコマンド、「85h−CA−CA−RA−RA−RA」はページバッファ8内のデータ書き込み先のカラムアドレスを指示するコマンド、及びデータ書き込み先の先頭カラムアドレス及びページアドレスを指示するアドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンス及びデータW1を受け付けると、データW1をページバッファ8内の指示されたカラムアドレス及びページアドレスに記憶する(図3(d)参照)。この時、不揮発性半導体記憶装置3は、ページバッファ8にデータW0及びW1を記憶するだけである。なお、同図(f)に示す「datain」はページバッファ8に書き込まれる実データW1を示す。以上のデータW1の書き込み動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。続いて、コントローラ2内のCPU4は、データ読み出しコマンドR2をホスト装置20に出力する。
次に、図4(a)に示すタイミングT6において、CPU4は、上記タイミングT4においてRAM6に保持した522ByteのデータR2を読み出す。次いで、CPU4は、データR2内のECC(10Byte)を外し、ホスト装置20で利用されるECCデータ又はCRCデータ等(16Byte)を付加して528Byteとして、ホスト装置20に出力する(図4(a)参照)。同図(a)の「R2 dataout」はコントローラ2からホスト装置20に転送される実データR2を示す。また、タイミングT6において、コントローラ2は、続いてデータR3が読み出されることを予測して、以下のデータR3の読み出し動作を制御する。
CPU4は、同図(f)に示す「78h−05h−CA−CA−E0h」コマンド/アドレスシーケンスを生成して不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「78h」はデータ読み出し先をページバッファ8からデータキャッシュ7に切り替えるためのコマンド、「05h−CA−CA−E0h」は上記タイミングT1と同様に、データキャッシュ7内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンスを受け付けると、データキャッシュ7内の指示された先頭カラムアドレスからデータR3を読み出してコントローラ2に転送する。CPU4は、転送されたデータR3をRAM6の空き領域(データW1を読み出した後の領域)に保持する(図4(b)、(c)参照)。なお、同図(f)に示す「dataout」は、不揮発性半導体記憶装置3から読み出された実データR3を示す。以上のデータR3の読み出し動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。また、このタイミングT6の動作終了後は、データキャッシュ7に一時記憶された1ページ分のデータR0〜R3は、全てコントローラ2への転送が終了する。
次に、図4(a)に示すタイミングT7において、ホスト装置20は、メモリカード1に対してデータW2の書き込みを要求するWriteコマンドW2とデータW2(図中の「W2,W2 datain」)を出力する。CPU4は、ホスト装置20からWriteコマンドW2とデータW2を受け付けると、データW2をRAM6の空き領域(データR2を読み出した後の領域)に保持する(図4(b)参照)。次いで、CPU4は、同図(f)に示す「77h−85h−CA−CA−RA−RA−RA」コマンド/アドレスシーケンスを生成し、RAM6から読み出したデータW2とともに不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「77h」はデータ書き込み先をデータキャッシュ7からページバッファ8に切り替えるためのコマンド、「85h−CA−CA−RA−RA−RA」はページバッファ8内のデータ書き込み先のカラムアドレス及びページアドレスを指示するためのコマンド/アドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンスを受け付けると、データW2をページバッファ8内の指示されたカラムアドレス及びページアドレスに記憶する(図4(d)参照)。この時、不揮発性半導体記憶装置3は、ページバッファ8にデータW0〜W2を記憶するだけである。なお、同図(f)に示す「datain」はページバッファ8に書き込まれる実データW2を示す。以上のデータW2の書き込み動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。続いて、コントローラ2内のCPU4は、データ読み出しコマンドR3をホスト装置20に出力する。
次に、図4(a)に示すタイミングT8において、CPU4は、上記タイミングT6においてRAM6に保持した522ByteのデータR3を読み出す。次いで、CPU4は、データR3内のECC(10Byte)を外し、ホスト装置20で利用されるECCデータ又はCRCデータ等(16Byte)を付加して528Byteとして、ホスト装置20に出力する(図4(a)参照)。同図(a)の「R3 dataout」はコントローラ2からホスト装置20に転送される実データR3を示す。また、タイミングT8において、コントローラ2は、続いてデータR4が読み出されることを予測して、以下のデータR4の読み出し動作を制御する。
CPU4は、同図(f)に示す「78h−00h−CA−CA−RA−RA−RA−30h」を生成して不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「78h」はデータ読み出し先をページバッファ8からデータキャッシュ7に切り替えるためのコマンド、「00h−CA−CA−RA−RA−RA−30h」は上記タイミングT1と同様にメモリセル9内のデータ読み出しを指示するコマンド、及びメモリセル9内のデータ読み出し先の先頭カラムアドレス及びページアドレスを指示するアドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンスを受け付けると、メモリセル9内の指示されたカラムアドレス及びページアドレスからページ単位(2112Byte)のデータR4〜R7を読み出して、データキャッシュ7に記憶する(図4(e)、(c)参照)。このデータ読み出し中に、不揮発性半導体記憶装置3は、コントローラ2に対して、同図(f)に示す上記ビジー信号B2Rを出力する。
次いで、コントローラ2内のCPU4は、不揮発性半導体記憶装置3からビジー信号B2Rを受け付けると、上記レディ状態に切り替わるまでの期間が経過した後、同図(f)に示す「05h−CA−CA−E0h」コマンド/アドレスシーケンスを生成して不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスは上記タイミングT1と同様に、データキャッシュ7内のデータ読み出し先のカラムアドレスの切り替えを指示するコマンド、及びデータ読み出し先の先頭カラムアドレスを指示するアドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンスを受け付けると、データキャッシュ7内の指示された先頭カラムアドレスからデータR4を読み出してコントローラ2に転送する。CPU4は、転送されたデータR4をRAM6の空き領域(データW2を読み出した後の領域)に保持する(図4(b)、(c)参照)。なお、同図(f)に示す「dataout」は、不揮発性半導体記憶装置3から読み出された実データR4を示す。以上のデータR4の読み出し動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。
次に、図4(a)のタイミングT9において、ホスト装置20は、メモリカード1に対してデータW3の書き込みを要求するWriteコマンドW3とデータW3(図中の「W3,W3 datain」)を出力する。CPU4は、ホスト装置20からWriteコマンドW3とデータW3を受け付けると、データW3をRAM6の空き領域(データR4を読み出した後の領域)に保持する(図4(b)参照)。次いで、CPU4は、同図(f)に示す「77h−85h−CA−CA−RA−RA−RA」コマンド/アドレスシーケンスを生成し、RAM6から読み出したデータW3とともに不揮発性半導体記憶装置3に出力する。この一連のコマンド/アドレスシーケンスのうち、「77h」はデータ書き込み先をデータキャッシュ7からページバッファ8に切り替えるためのコマンド、「85h−CA−CA−RA−RA−RA」はページバッファ8内のデータ書き込み先のカラムアドレス及びページアドレスを指示するためのコマンド/アドレスシーケンスである。
不揮発性半導体記憶装置3は、CPU4から上記一連のコマンド/アドレスシーケンスを受け付けると、データW3をページバッファ8内の指示されたカラムアドレス及びページアドレスに記憶する(図4(d)参照)。なお、(f)に示す「datain」はページバッファ8に書き込まれる実データW3を示す。次いで、CPU4は、メモリセル9内へのデータ書き込みを指示する「10h」コマンド(図4(f)参照)を不揮発性半導体記憶装置3に出力する。不揮発性半導体記憶装置3は、CPU4から「10h」コマンドを受け付けると、ページバッファ8から1ページ分のデータW0〜W3を読み出してメモリセル9に書き込む(図4(d)、(e)参照)。この書き込み動作により、ページバッファ8は、全て空き領域となる。以上のデータW0〜W3の書き込み動作後に、コントローラ2からホスト装置20に対して上記ビジー信号「Host Busy」が出力される。
以上のように、本実施形態のメモリカード1では、コントローラ2内のCPU4が、ホスト装置20から入力されるデータ読み出し要求コマンド/データ書き込み要求コマンドの受け付け時に、メモリセル9に書き込むデータ、メモリセル9から読み出すデータの一時記憶先をデータキャッシュ7又はページバッファ8に切り替えるコマンド/アドレスシーケンスを生成するようにした。また、不揮発性半導体記憶装置3は、CPU4から入力されるコマンド/アドレスシーケンスに応じて、メモリセル9に書き込むデータ、メモリセル9から読み出すデータの一時記憶先をデータキャッシュ7又はページバッファ8に適宜切り替えることを可能にした。
したがって、ホスト装置20から入力されるデータ読み出し要求コマンド/データ書き込み要求コマンドに応じて、メモリカード1内のデータキャッシュ7及びページバッファ8を適宜切り替えて、読み出し対象データ及び書き込み対象データの一時記憶先を有効利用することが可能になる。その結果、データキャッシュ7又はページバッファ8に記憶済みの有効データを無駄にすることがなくなり、コントローラ2内のRAM6の記憶容量の増大を抑制することが可能になり、ホスト装置20からメモリカード1にアクセスする際のアクセス性能の低下を抑制できる。
なお、上記実施形態では、コントローラ2内のCPU4が、ホスト装置20からデータの読み出し要求コマンド及び書き込み要求コマンドを受け付けた時に、読み出し対象データ及び書き込み対象データの一時記憶先として、データキャッシュ7又はページバッファ8を適宜切り替えるコマンド/アドレスシーケンスを生成する場合を示した。これに限るものではなく、例えば、コントローラ2内のCPU4が、ホスト装置20からデータの読み出し先及びデータ書き込み先のアドレス値を受け付けた時に、対象データの一時記憶先としてデータキャッシュ7又はページバッファ8を適宜切り替えるコマンド/アドレスシーケンスを生成するようにしてもよい。
この場合、ホスト装置20は、データの読み出し要求コマンド及び書き込み要求コマンドに、データ読み出し先及びデータ書き込み先のアドレス値を付加する。コントローラ2内のCPU4は、ホスト装置20から入力されるデータの読み出し要求コマンド及び書き込み要求コマンドに付加されたアドレス値が、例えば、ある範囲にある場合に、対象データの一時記憶先としてデータキャッシュ7又はページバッファ8を適宜切り替えるコマンド/アドレスシーケンスを生成するようにしてもよい。
また、上記実施形態では、データキャッシュ7を読み出しデータの一時記憶先とし、ページバッファ8を書き込みデータの一時記憶先として利用する場合を示したが、データキャッシュ7に記憶されているデータと、ページバッファ8に記憶されているデータを適宜交換するようにしてもよい。
例えば、データキャッシュ7に書き込みデータが一時記憶された状態で、ホスト装置20から読み出し要求されたデータがページバッファ8に記憶されている場合に、CPU4は、ホスト装置20から読み出し要求コマンドを受け付けた時に、不揮発性半導体記憶装置3に対してデータの交換を要求するコマンド/アドレスシーケンスを生成するようにしてもよい。この場合、データキャッシュ7に記憶されたデータを無駄にすることなく、アクセス性能の低下を抑制できる。
さらに、上記実施形態では、コントローラ2内のCPU4が、読み出しデータ/書き込みデータの一時記憶先を、データキャッシュ7からページバッファ8に切り替えるためのコマンド、又は、ページバッファ8からデータキャッシュ7に切り替える内部コマンドを生成する場合を示した。これに限るものではなく、コントローラ2内のCPU4が、ホスト装置20から受信するアドレスに応じて、読み出しデータ/書き込みデータの一時記憶先をデータキャッシュ7又はページバッファ8に切り替えるようにしてもよい。また、コントローラ2に選択ピンを設け、この選択ピンの切り替えにより、CPU4が、ホスト装置20から受信するアドレスに応じて、読み出しデータ/書き込みデータの一時記憶先をデータキャッシュ7又はページバッファ8に切り替えるようにしてもよい。
また、上記実施形態では、本発明のメモリシステムをメモリカードに適用した場合を示したが、これに限るものではない。本発明のメモリシステムは、例えば、上記メモリカードと同様の構成がプリント基板に実装される製品等にも適用可能であり、その実装形態を限定するものではない。
1 メモリカード
2 コントローラ
3 不揮発性半導体記憶装置
4 CPU
5 ROM
6 RAM
7 データキャッシュ
8 ページバッファ
9 メモリセル
2 コントローラ
3 不揮発性半導体記憶装置
4 CPU
5 ROM
6 RAM
7 データキャッシュ
8 ページバッファ
9 メモリセル
Claims (5)
- ページ単位でデータの書き込み及び読み出しが行われる複数のメモリセルと、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第1の記憶部と、前記メモリセルに書き込むページ単位のデータ、及び前記メモリセルから読み出したページ単位のデータを一時的に記憶する第2の記憶部と、を含む不揮発性半導体記憶装置と、
外部のホスト装置からデータの書き込み要求及び読み出し要求を受け付けて、前記不揮発性半導体記憶装置に対するデータ書き込みコマンド及びデータ読み出しコマンドを生成する制御部と、を具備し、
前記制御部は、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの記憶先を、前記第1の記憶部と前記第2の記憶部との間で選択することを特徴とするメモリシステム。 - 前記制御部は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求の受け付け時に、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの一時記憶先を前記第1の記憶部又は前記第2の記憶部に切り替えることを特徴とする請求項1記載のメモリシステム。
- 前記制御部は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求に含まれたアドレスの受け付け時に、前記不揮発性半導体記憶装置に書き込むデータ、前記不揮発性半導体記憶装置から読み出すデータの一時記憶先を前記第1の記憶部又は前記第2の記憶部に切り替えることを特徴とする請求項1記載のメモリシステム。
- 前記制御部は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求の受け付け時、又は、前記ホスト装置から入力されるデータの書き込み要求及び読み出し要求に含まれたアドレスの受け付け時に、前記第1の記憶部に記憶されているデータと、前記第2の記憶部に記憶されているデータを相互に交換することを特徴とする請求項2又は3記載のメモリシステム。
- 前記制御部は、前記ホスト装置から入力されるコマンドの受け付け時に、前記第1の記憶部に記憶されているデータと、前記第2の記憶部に保存されているデータを相互に交換することを特徴とする請求項4記載のメモリシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007069765A JP2008234723A (ja) | 2007-03-19 | 2007-03-19 | メモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007069765A JP2008234723A (ja) | 2007-03-19 | 2007-03-19 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008234723A true JP2008234723A (ja) | 2008-10-02 |
Family
ID=39907340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007069765A Pending JP2008234723A (ja) | 2007-03-19 | 2007-03-19 | メモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008234723A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010047911A1 (en) * | 2008-10-25 | 2010-04-29 | Sandisk 3D Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
-
2007
- 2007-03-19 JP JP2007069765A patent/JP2008234723A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010047911A1 (en) * | 2008-10-25 | 2010-04-29 | Sandisk 3D Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
JP2012507070A (ja) * | 2008-10-25 | 2012-03-22 | サンディスク スリーディー,エルエルシー | データをメモリ装置に再入力することなくページをプログラムするためのページバッファプログラムコマンド及び方法 |
US8397024B2 (en) | 2008-10-25 | 2013-03-12 | Sandisk 3D Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
USRE46154E1 (en) | 2008-10-25 | 2016-09-20 | Sandisk Technologies Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4406339B2 (ja) | コントローラ、メモリカード及びその制御方法 | |
JP3892851B2 (ja) | メモリカード及び半導体装置 | |
JP3979486B2 (ja) | 不揮発性記憶装置およびデータ格納方法 | |
JP2007272635A (ja) | メモリシステム及びコントローラ | |
TWI395101B (zh) | 非揮發性記憶體裝置及減少非揮發性記憶體裝置的資料傳輸時間之方法 | |
JP2006294218A (ja) | 不揮発性メモリ装置及びそのマルチページコピーバック方法 | |
US7725621B2 (en) | Semiconductor device and data transfer method | |
JP4843222B2 (ja) | 半導体記憶装置の制御方法、メモリカード、及びホスト機器 | |
JP3875139B2 (ja) | 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム | |
JP2009301194A (ja) | 半導体記憶装置の制御システム | |
JP5592478B2 (ja) | 不揮発性記憶装置及びメモリコントローラ | |
KR101581311B1 (ko) | 플래시 메모리 장치 및 그 제어 방법 | |
JP4254932B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2007094639A (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2007034581A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2007310680A (ja) | 不揮発性記憶装置およびそのデータ転送方法 | |
US10521157B2 (en) | Jump page cache read method in NAND flash memory and NAND flash memory | |
JP2007233838A (ja) | メモリシステムの制御方法 | |
JP2010026584A (ja) | メモリコントローラおよび不揮発性記憶装置 | |
JP2008234723A (ja) | メモリシステム | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
JP2012128900A (ja) | 半導体記憶装置、及び記憶媒体 | |
JP2010198127A (ja) | 半導体記憶デバイス及びその制御方法 | |
JP4273106B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006331233A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |