JP2008009942A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2008009942A
JP2008009942A JP2006182631A JP2006182631A JP2008009942A JP 2008009942 A JP2008009942 A JP 2008009942A JP 2006182631 A JP2006182631 A JP 2006182631A JP 2006182631 A JP2006182631 A JP 2006182631A JP 2008009942 A JP2008009942 A JP 2008009942A
Authority
JP
Japan
Prior art keywords
data
page
memory
row address
write
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.)
Granted
Application number
JP2006182631A
Other languages
English (en)
Other versions
JP5002201B2 (ja
Inventor
Hideki Tsuji
秀貴 辻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006182631A priority Critical patent/JP5002201B2/ja
Priority to KR1020070064437A priority patent/KR100884429B1/ko
Priority to US11/770,344 priority patent/US7937523B2/en
Priority to TW096123646A priority patent/TWI358020B/zh
Priority to CN2007101269602A priority patent/CN101097543B/zh
Publication of JP2008009942A publication Critical patent/JP2008009942A/ja
Priority to US13/078,647 priority patent/US20110185225A1/en
Application granted granted Critical
Publication of JP5002201B2 publication Critical patent/JP5002201B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk

Abstract

【課題】データの書き込み速度を向上出来るメモリシステムを提供すること。
【解決手段】ページ単位でデータを一括して書き込み、前記ページを複数含み且つ各々がデータの消去単位となる複数のメモリブロックBLKを備えた不揮発性半導体メモリ11と、前記不揮発性メモリ11に対して書き込みデータ及び第1ロウアドレスを転送し、且つ転送した前記第1ロウアドレスの変更命令と、該第1ロウアドレスとは異なる第2ロウアドレスとを発行するコントローラ12とを具備し、前記不揮発性半導体メモリ11は、前記変更命令が発行されない際には前記第1ロウアドレスに対応する前記ページに前記書き込みデータを書き込み、前記変更命令が発行された際には前記第2ロウアドレスに対応する前記ページに前記書き込みデータを書き込む。
【選択図】 図9

Description

この発明は、メモリシステムに関する。例えば、不揮発性の半導体メモリと、その動作を制御するカードコントローラとを備えたメモリシステムに関する。
NAND型フラッシュメモリにおいては、データは複数のメモリセルにつき一括して書き込まれる。この一括書き込みの単位はページと呼ばれる。近年のNAND型フラッシュメモリの大容量化に伴って、ページサイズは大きくなってきている。
しかし、ホスト機器からのアクセス単位は必ずしもページ単位であるとは限られない。例えば書き込み動作の場合、書き込みデータの終端位置がページ境界でない場合がある。そして、ホスト機器から連続したアドレスで再び書き込みアクセスがなされる可能性が高い。これは、ホスト機器が大きなデータを一度にフラッシュメモリに送ることが出来ず、複数回に分割してデータを書き込む等の理由からである。
この際、従来のNAND型フラッシュメモリでは、同一のカラム位置に対して2度書き込みを行うオーバーライトをしない限りは、同一ページに書き込みを行うことが一般的には許可されている。従って、このような場合には問題は生じない。
しかし、近年ではメモリセルの微細化や多値化に伴って、同一ページに複数回の書き込みを行うことが信頼性上問題となり、このような動作が禁止されているNAND型フラッシュメモリも増えてきている。
上記のようなホスト機器のアクセスを予測してNAND型フラッシュメモリの制御システムでは、連続する書き込みアクセスがページの終端位置でないところで終了する場合、そのページのデータを他のメモリブロックに書き込むことが行われている。メモリブロックとはメモリセルの集合であり、データの消去単位となる。この際、予め書き込み終了アドレスがホスト機器から通知されない場合や、ホスト機器からのデータ転送が何らかの理由により中断された場合には、ページサイズ分のデータをバッファに蓄積しておく技術が知られている(例えば特許文献1参照)。本方法の場合、最終的にデータサイズがページサイズに満たなかった場合には、別のメモリブロックに当該データを書き込む。
しかし本方法であると、最終的にデータサイズが確定するまでデータの書き込みを行うことができず、時間のロスになるという問題があった。
特開2006−092169号公報
この発明は、データの書き込み速度を向上出来るメモリシステムを提供する。
この発明の一態様に係るメモリシステムは、ページ単位でデータを一括して書き込み、前記ページを複数含み且つ各々がデータの消去単位となる複数のメモリブロックを備えた不揮発性半導体メモリと、前記不揮発性メモリに対して書き込みデータ及び第1ロウアドレスを転送し、且つ転送した前記第1ロウアドレスの変更命令と、該第1ロウアドレスとは異なる第2ロウアドレスとを発行するコントローラとを具備し、前記不揮発性半導体メモリは、前記変更命令が発行されない際には前記第1ロウアドレスに対応する前記ページに前記書き込みデータを書き込み、前記変更命令が発行された際には前記第2ロウアドレスに対応する前記ページに前記書き込みデータを書き込む。
本発明によれば、データの書き込み速度を向上出来るメモリシステムを提供出来る。
以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[第1の実施形態]
この発明の第1の実施形態に係るメモリシステムについて、図1を用いて説明する。図1は、本実施形態に係るメモリシステムのブロック図である。
図示するようにメモリシステムは、メモリカード1及びホスト機器2を備えている。ホスト機器2は、バスインタフェース14を介して接続されるメモリカード1に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。メモリカード1は、ホスト機器2に接続された時に電源供給を受けて動作し、ホスト機器2からのアクセスに応じた処理を行う。
メモリカード1は、ホスト機器2とバスインタフェース14を介して情報の授受を行う。メモリカード1は、NAND型フラッシュメモリチップ(単にNAND型フラッシュメモリ、またはフラッシュメモリと呼ぶことがある)11、フラッシュメモリチップ11を制御するカードコントローラ12、および複数の信号ピン(第1ピン乃至第9ピン)13を備えている。
複数の信号ピン13は、カードコントローラ12と電気的に接続されている。複数の信号ピン13における第1ピン乃至第9ピンに対する信号の割り当ては、例えば図2に示すようになっている。図2は、第1ピン乃至第9ピンと、それらに割り当てられた信号とを示す表である。
データ0乃至データ3は、第7ピン、第8ピン、第9ピン、および第1ピンにそれぞれ割り当てられている。第1ピンは、また、カード検出信号に対しても割り当てられている。さらに、第2ピンはコマンドに割り当てられ、第3ピンおよび第6ピンは接地電位Vssに、第4ピンは電源電位Vddに、第5ピンはクロック信号に割り当てられている。
また、メモリカード1は、ホスト機器2に設けられたスロットに対して挿抜可能なように形成されている。ホスト機器2に設けられたホストコントローラ(図示せず)は、これら第1ピン乃至第9ピンを介してメモリカード1内のカードコントローラ12と各種信号およびデータを通信する。例えば、メモリカード1にデータが書き込まれる際には、ホストコントローラは、書き込みコマンドを、第2ピンを介してカードコントローラ12にシリアルな信号として送出する。このとき、カードコントローラ12は、第5ピンに供給されているクロック信号に応答して、第2ピンに与えられる書き込みコマンドを取り込む。
ここで、前述したように、書き込みコマンドは、第2ピンのみを利用してカードコントローラ12にシリアルに入力される。コマンドの入力に割り当てられている第2ピンは、図2に示すように、データ3用の第1ピンと接地電位Vss用の第3ピンとの間に配置されている。複数の信号ピン13とそれに対するバスインタフェース14は、ホスト機器2内のホストコントローラとメモリカード1とが通信するのに使用される。
これに対し、フラッシュメモリ11とカードコントローラ12との間の通信は、NAND型フラッシュメモリ用のインタフェースによって行われる。したがって、ここでは図示しないが、フラッシュメモリ11とカードコントローラ12とは例えば8ビットの入出力(I/O)線により接続されている。
例えば、カードコントローラ12がフラッシュメモリ11にデータを書き込む際には、カードコントローラ12は、これらI/O線を介してデータ入力コマンド80H、カラムアドレス、ページアドレス、データ、およびプログラムコマンド10Hをフラッシュメモリ11に順次入力する。ここで、コマンド80Hの“H”は16進数を示すものであり、実際には“10000000”という8ビットの信号が、8ビットのI/O線にパラレルに与えられる。つまり、このNAND型フラッシュメモリ用のインタフェースでは、複数ビットのコマンドがパラレルに与えられる。
また、NAND型フラッシュメモリ用のインタフェースでは、フラッシュメモリ11に対するコマンドとデータが同じI/O線を共用して通信されている。このように、ホスト機器2内のホストコントローラとメモリカード1とが通信するインタフェースと、フラッシュメモリ11とカードコントローラ12とが通信するインタフェースとは異なる。
次に、図1に示すメモリカード1の備えるカードコントローラの内部構成について図3を用いて説明する。図3はカードコントローラ12のブロック図である。
カードコントローラ12は、フラッシュメモリ11内部の物理状態(例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか)を管理する。カードコントローラ12は、ホストインタフェースモジュール21、MPU(Micro processing unit)22、フラッシュコントローラ23、ROM(Read-only memory)24、RAM(Random access memory)25、およびバッファ26を有する。
ホストインタフェースモジュール21は、カードコントローラ12とホスト機器2との間のインタフェース処理を行う。
MPU22は、メモリカード1全体の動作を制御する。MPU22は、例えばメモリカード1が電源供給を受けたときに、ROM24に格納されているファームウェア(制御プログラム)をRAM25上に読み出して所定の処理を実行することにより、各種のテーブルをRAM25上に作成する。またMPU22は、ホスト機器2から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、フラッシュメモリ11に対して所定の処理を実行したり、バッファ26を通じたデータ転送処理を制御したりする。
ROM24は、MPU22により制御される制御プログラムなどを格納する。RAM25は、MPU22の作業エリアとして使用され、制御プログラムや各種のテーブル(表)を記憶する。フラッシュコントローラ23は、カードコントローラ12とフラッシュメモリ11との間のインタフェース処理を行う。
バッファ26は、ホスト機器2から送られてくるデータをフラッシュメモリ11へ書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶したり、フラッシュメモリ11から読み出されるデータをホスト機器2へ送り出す際に、一定量のデータを一時的に記憶したりする。
次に、NAND型フラッシュメモリ11の内部構成について簡単に説明する。図4はNAND型フラッシュメモリ11のブロック図である。図示するようにNAND型フラッシュメモリ11は、メモリセルアレイ30及びページバッファ31を備えている。
メモリセルアレイ30は、複数のメモリセルブロックBLK0〜BLKn(nは2以上の自然数)を含んでいる。なお以下ではメモリセルブロックBLK0〜BLKnを単純にメモリブロックBLKと呼ぶことがある。また、データの消去はメモリブロックBLK単位で行われる。すなわち、同一メモリセルブロックBLK内のデータは一括して消去される。メモリセルブロックBLKの各々は、複数のメモリセルMCを備えている。各メモリセルは、フローティングゲートとコントロールゲートとを含む積層ゲートを備えたMOSトランジスタである。またメモリセルブロックBLK内には、複数のワード線WL0、WL1、…(以下ワード線WLと呼ぶ)と、ワード線WLに直交するビット線BL0、BL1、…(以下ビット線BLと呼ぶ)とが設けられている。そして、同一行にあるメモリセルMCは同一のワード線に共通接続されている。また、同一列にあるメモリセルMCは、複数のメモリセル単位でビット線BLに共通接続されている。なお、データの書き込み及び読み出しは複数のメモリセルの集合毎に行われ、このメモリセルの集合を1ページと呼ぶ。なお、読み出し時及び書き込み時において、ロウアドレスによっていずれかのワード線WLが選択され、カラムアドレスによっていずれかのビット線BLが選択される。図4の例であると、フラッシュメモリ11の各ページは、2112バイト(512バイト分のデータ記憶部×4+10バイト分の冗長部×4+24バイト分の管理データ記憶部)を有しており、各メモリブロックBLKは例えば128ページを含んでいる。
ページバッファ31は、フラッシュメモリ11へのデータ入出力を行い、データを一時的に保持する。ページバッファ31が保持可能なデータサイズは、各メモリブロックBLKのページサイズと同じく2112バイト(2048バイト+64バイト)である。データ書き込みなどの際、ページバッファ11は、フラッシュメモリ11に対するデータ入出力処理を、自身の記憶容量に相当する1ページ分の単位で実行する。なお、以下では説明の簡単化のために、冗長部及び管理データ記憶部については省略し、1ページのデータサイズが2048バイトであるとして説明を行う。
次に、上記構成のメモリシステムにおけるデータの書き込み方法について説明する。まず、図5を用いてカードコントローラ12が主体となって行う処理について説明する。図5は、カードコントローラ12における処理を示すフローチャートである。
図示するように、まずカードコントローラ12はホスト機器2からデータの書き込み命令と、NAND型フラッシュメモリ11においてデータを書き込むべきアドレスとを受信する(ステップS10)。引き続きカードコントローラ12は、ホスト機器2から書き込みデータを受信する(ステップS11)。そしてカードコントローラ12は、フラッシュメモリ11に対して第1書き込み命令、書き込みデータ、及びアドレスを出力する。フラッシュメモリ11は、第1書き込み命令を受信することにより、書き込み動作が開始されることを認識する。ただし、実際にデータがメモリセルMCに書き込まれるのは、後述する第2書き込み命令が与えられた時点である。
次に、カードコントローラ12のMCU22は、ホスト機器2から書き込みアクセスの終了、または中断命令があるか否かを判定する(ステップS13)。無い場合には(ステップS13、NO)、MCU22は第2書き込み命令をフラッシュメモリ11へ出力する(ステップS14)。なお、中断命令がない場合で且つ書き込みデータがフラッシュメモリ11のページサイズを満たしていない場合には、ステップS14においてフラッシュメモリ11はカードコントローラからページサイズ分のデータが転送されるのを待つ。そして、書き込みデータがページサイズに達した時点で、MCU22は第2書き込み命令をフラッシュメモリ11に対して出力する。
ステップS13において終了命令または中断命令が与えられていた場合には(ステップS13、YES)、フラッシュメモリ11に転送された書き込みデータが、フラッシュメモリ11におけるページサイズを満たしているか否かを、MCU22が判定する(ステップS15)。すなわち、書き込みデータのデータサイズが2048バイトであるかそれ未満であるかを判定する。満たしていた場合、つまりデータサイズが2048バイトであった場合には(ステップS16、YES)、MCU22は第2書き込み命令をフラッシュメモリ11へ出力する(ステップS17)。満たしていない場合、つまりデータサイズが2048バイト未満であった場合には(ステップS16、NO)、MCU22はロウアドレス変更命令と、新たなロウアドレスとを発行して、これをフラッシュメモリ11へ出力する(ステップS18)。そしてステップS17の処理を行う。
以上の処理において、カードコントローラ12からフラッシュメモリ11へ与えられる信号につき図6を用いて説明する。図6は、カードコントローラ12がフラッシュメモリ11へ出力する信号のタイミングチャートであり、上段は終了または中断命令が無い場合(ステップS13、NO)、若しくは書き込みデータがページサイズを満たしていた場合(ステップS16、YES)に出力される信号である。また下段に示す信号は、書き込みデーがページサイズを満たしていなかった場合(ステップS16、NO)に出力される信号である。
図示するように、いずれの場合もまず時刻t0で第1書き込み命令が出力され、その後アドレス(ロウアドレス及びカラムアドレス)及び書き込みデータが、それぞれ時刻t1、t2で順次出力される。その後、終了または中断命令が無い場合、若しくは書き込みデータがページサイズを満たしていた場合には、時刻t4で第2書き込み命令が出力されて、一連の信号の流れは終了する。他方、書き込みデータがページサイズを満たしていない場合には、ページサイズを満たしている場合に比べてデータ量が少ないので、時刻t4よりも早い時刻t3でデータの転送は終了する。そして書き込みデータに引き続いて、時刻t4でロウアドレス変更命令が出力され、時刻t5で新たなロウアドレスが出力される。その後、時刻t6で第2書き込み命令が出力される。後者の場合、有効とされるロウアドレスは時刻t1で出力されるロウアドレスでは無く、時刻t5で出力される新たなロウアドレスである。そして新たなロウアドレスは、最初のロウアドレスが該当するメモリブロックBLKとは異なるメモリブロックBLKに該当するアドレスである。
次に図7を用いてNAND型フラッシュメモリ11が主体となって行う処理について説明する。図7は、フラッシュメモリ11における処理を示すフローチャートである。図示するように、まずフラッシュメモリ11はカードコントローラ12から第1書き込み命令、書き込みデータ、及びアドレスを受信する(ステップS20)。そして、ロウアドレス変更命令及び新しいロウアドレスを受信しているか否かを判定する(ステップS21)。ロウアドレス変更命令及び新しいロウアドレスを受信していない場合には(ステップS22、NO)、カードコントローラ12から第2書き込み命令を受信した後(ステップS23)、ステップS20で受信したロウアドレスとカラムアドレスで指定されるメモリセルMCにデータを書き込む(ステップS24)。ステップS22でロウアドレス変更命令を受信していた場合には(ステップS22、YES)、第2書き込み命令を受信した後(ステップS25)、ステップS20で受信したカラムアドレスと、ロウアドレス変更命令の次に受信した新たなロウアドレスで指定されるメモリセルMCにデータを書き込む(ステップS26)。
上記の書き込み動作の様子を、図8及び図9を用いて説明する。図8及び図9はメモリシステムのブロック図であり、図8は終了または中断命令が無い場合(ステップS13、NO)、若しくは書き込みデータがページサイズを満たしていた場合(ステップS16、YES)について示しており、図9は書き込みデータがページサイズを満たしていなかった場合(ステップS16、NO)について示している。なお、図8及び図9においては、1ページのデータサイズが2048バイトであり、カードコントローラ12は512バイト単位のデータをフラッシュメモリ11へ転送する場合を示しており、図中において斜線で示した領域は書き込みデータを示す。
まず図8について説明する。図示するように、ホスト機器2から与えられる書き込みデータはカードコントローラ12のバッファ26に格納される。また、アドレスがカードコントローラ12に与えられる。すると、カードコントローラ12はバッファ26内の書き込みデータを、ページバッファ31へ転送する。図8では、それぞれが512バイトのデータサイズを有する4つのデータ、すなわち2048バイトの書き込みデータがページバッファ31に転送されている様子を示している。また、カードコントローラ12は上記ステップS12においてロウアドレスを、フラッシュメモリ11内のロウデコーダ32へ転送する。ロウデコーダ32は、ステップS12で与えられたロウアドレスに基づいて、いずれかのワード線WLを選択する。図8ではメモリブロックBLK0内のワード線WLが選択される。そして、第2書き込み命令に応答して、ページバッファ31内の書き込みデータが、ロウデコーダ32によって選択されたワード線WLに接続されるメモリセルMCに書き込まれる。
次に図9について説明する。図8では、それぞれが512バイトのデータサイズを有する4つのデータ、すなわち2048バイトの書き込みデータが、メモリブロックBLK0の2ページに順次書き込まれ、引き続き、連続したアドレスに対してそれぞれが512バイトのデータサイズを有する3つのデータ、すなわち、1536バイトの書き込みデータがメモリブロックBLK0に書き込まれるべく、ページバッファ31に転送されている様子を示している。ここでは図8の場合と異なる点についてのみ説明する。ステップS12においてフラッシュメモリ11に与えられたロウアドレスは、メモリブロックBLK0におけるワード線WLに相当していたと仮定する。カードコントローラ12のMCU22は、バッファ26(すなわちページバッファ31)内のデータがページサイズ未満(1536バイト<2048バイト)であると判定した後、ロウアドレス変更命令をフラッシュメモリ11へ出力し、更に新たなロウアドレスを発行してロウデコーダ32へ出力する。この新たなロウアドレスは、メモリブロックBLK1内のワード線WLに相当すると仮定する。するとロウデコーダ32は、新たなロウアドレスに基づいて、メモリブロックBLK0ではなくメモリブロックBLK1内のワード線WLを選択する。そして、第2書き込み命令に応答して、ページバッファ31内の1536バイトの書き込みデータが、ロウデコーダ32によって選択されたワード線WLに接続されるメモリセルMCに書き込まれる。
上記構成のメモリシステムであると、下記の効果が得られる。
(1)データの書き込み速度を向上出来る。
本実施形態に係るメモリシステムであると、ページバッファ31内のデータがページサイズよりも小さい場合には、それまでにデータを書き込んでいたメモリブロックBLKとは異なるメモリブロックBLKに書き込んでいる。すなわち、ページバッファ内のデータがページサイズに達するまで書き込み動作を待つ必要が無い。従って、書き込み速度を向上出来る。
また本実施形態に係るメモリシステムであると、カードコントローラ12はロウアドレス変更命令と、新たなロウアドレスとを発行する。そしてフラッシュメモリ11は、ロウアドレス変更命令が与えられた際には、新たなロウアドレスに基づいてメモリセルアレイ30のロウ方向を選択する。従って、ページバッファ31に転送したデータを異なるメモリブロックBLKに高速に書き込むことが出来る。
この点、カードコントローラ12がロウアドレス変更命令を有しない場合には、ページバッファ31内のデータを異なるメモリブロックBLKに書き込もうとすると、カードコントローラからページバッファへの再度のデータの転送をしなければならない。具体的に説明すると、ロウアドレスを変更する場合には、まず書き込み命令をキャンセルするためにカードコントローラはリセット命令を出力する。次に第1書き込み命令を発行して、新たなロウアドレスを指定する。次にカードコントローラはページバッファへデータを再入力する。最後に第2書き込み命令を発行する。このように、ページバッファへの再度の転送が必要となり、これが時間のロスとなる。本実施形態であると、データの再転送が不要となるため、データの書き込み速度を向上出来る。
次に、この発明の第2の実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1の実施形態に係る構成において、1ページ未満のデータサイズを有する複数のデータを集約して1ページを構成する(これを以下データの集約と呼ぶ)方法に関するものである。図10は、本実施形態に係るメモリシステムにおける、データの集約方法のフローチャートである。なお、本実施形態に係るNAND型フラッシュメモリ11は、第1の実施形態で説明した図8及び図9に示す構成において、更にデータキャッシュを備えている。データキャッシュはページバッファと同じくページ単位のデータを一時的に保持する。
図示するように、まずカードコントローラ12のMCU22は読み出し命令をフラッシュメモリ11へ出力する(ステップS30)。この読み出し命令は、通常の単なるデータを読み出す旨の命令では無く、データの集約命令の一部としての読み出し命令であっても良い。読み出し命令とともに、カードコントローラ12からアドレスがフラッシュメモリ11へ与えられる。次にフラッシュメモリ11は、ステップS30で与えられたアドレスに対応するページを選択して、データをページ単位でデータバッファへ読み出す(ステップS31)。その後、ページバッファへ読み出されたデータはデータキャッシュへと転送される(ステップS32)。引き続きデータキャッシュへ転送されたデータは、カードコントローラ12のバッファ26へ転送される(ステップS33)。
上記ステップS30乃至S33の様子を図11に示す。図11はカードコントローラ12及びフラッシュメモリ11のブロック図である。図示するように、メモリブロックBLK0には2ページ分のデータサイズ、すなわち4096バイトのデータサイズを有するデータD1が保持され、メモリブロックBLK1にはページサイズ未満のデータサイズ、例えば1536バイトのデータサイズを有するデータD2が保持され、メモリブロックBLKnにはページサイズ未満のデータサイズ、例えば512バイトのデータサイズを有するデータD3が保持される。このような構成において、1536バイトのデータD2と512バイトのデータD3とを集約して、2048バイト、すなわち1ページのサイズを有するデータとして、メモリブロックBLK0に書き写す場合を例に説明する。
図示するように、カードコントローラ12から読み出し命令が与えられると、ロウデコーダ32は例えばメモリブロックBLK1のいずれかのワード線WLを選択する。その結果、ページバッファ31には、データD2が含まれるページのデータが、ページ単位で読み出される。ページ単位で読み出されたデータを、以下ページデータと呼ぶことがある。この時点で読み出されたページデータは、1536バイトのデータD2以外に、(2048−1536)=512バイトの不要なデータが含まれる。引き続き、データバッファに読み出されたページデータのうちのデータD2は、データキャッシュ33へと転送され、更にバッファ26へと転送される。
図10に戻って説明を続ける。ステップS33の後、カードコントローラ12のMCU22は、バッファ26に転送されたデータD2についてエラー検出を行い、エラーが検出された場合にはエラー訂正を行う。更にフラッシュメモリ11は、カードコントローラ12がエラー検出及びエラー訂正を行っている間に、ステップS31とは異なるデータをページ単位でページバッファ31へ読み出す(ステップS34)。
上記ステップS34の様子を図12に示す。図示するように、ロウデコーダ32は例えばメモリブロックBLKnのいずれかのワード線WLを選択する。その結果、ページバッファ31には、512バイトのデータD3が含まれるページのデータが、ページ単位で読み出される。なお、ステップS34で選択されるワード線WLに対応するロウアドレスは、ステップS30で与えられても良いし、カードコントローラ12がエラー検出及びエラー訂正を行う前のいずれかの時点で与えられる。この際、データD2と集約して1ページ分のデータサイズとするために、いずれのデータ(ここではデータD3)を読み出すのが適切であるかは、カードコントローラ12が判断する。すなわち、カードコントローラ12はいずれの領域のどのようなデータが格納されているかをテーブルとして保持しているので、このテーブルを参照して、適切なデータを選択する。また、図12の例ではメモリブロックBLK0とは異なるメモリブロックBLKnからデータを読み出しているが、同一のメモリブロックBLK0内の別のページから読み出しても良い。
図10に戻って説明を続ける。ステップS34の後、フラッシュメモリはステップS34においてページバッファ31に読み出されたデータのうち、必要なデータのみをデータキャッシュ33へと転送する(ステップS35)。この際、データキャッシュ33にはステップS32において転送された、ページサイズ未満のデータが保持されている。つまり、データキャッシュ33には空き領域がある。言い換えれば、ステップS32ではページ単位でデータが読み出されるから、必要なデータ以外に、このデータと同一ページにある不要なデータもデータキャッシュ33には保持されている。同じくステップS34でもデータはページ単位で読み出されるので、不要なデータも一緒にデータバッファに読み出される。そこでステップS35では、ステップS34で読み出されたページ単位のデータのうち、必要なデータのみを、データキャッシュ33において不要なデータが保持されている領域に転送する。その結果、データキャッシュ33には、ステップS32で読み出されたページサイズ未満のデータと、ステップS34で読み出されたページサイズ未満のデータとが保持され、両者を併せてちょうど1ページと同じデータサイズとなる(ステップS36)。すなわち、2つのデータがページサイズに集約される。その後、ステップS35でデータキャッシュ33に転送されたデータが、メモリコントローラ12のバッファ26に転送される(ステップS37)。そしてMCU22がエラー検出及びエラー訂正を行う(ステップS38)。
上記ステップS35乃至S38の様子を図13に示す。図示するように、データバッファ31に読み出されたデータD3を含むページデータのうち、必要であるデータD3のみが、データキャッシュ33に転送される。すなわち、データキャッシュ33には1536バイトのデータD3が保持されているから、残りの512バイト分の空き領域がある。従って、この空き領域に、512バイトのデータD3が転送される。その結果、データキャッシュ33にはデータD2とデータD3とが保持され、データD2とデータD3とを合わせたデータサイズは、ちょうど1ページのデータサイズ2048バイトとなる。そして、データキャッシュ33内のデータD3はバッファ26へと転送される。
再び図10に戻って説明を続ける。ステップS38の後、MCU22はいずれかのデータにおいてエラーを検出し、検出したエラーを訂正した場合には(ステップS39、YES)、訂正済みのデータをデータキャッシュ33へ転送する(ステップS40)。この際、MCU22は訂正済みのデータのみをデータキャッシュ33へと転送し、訂正前のデータと置き換える。そして、フラッシュメモリ11はデータキャッシュ33に保持されるデータを、ページ単位でメモリセルMCへ書き込む(ステップS41)。
上記ステップS39乃至S41の様子を図14に示す。図示するように、データの訂正があった場合には、データキャッシュ33内のデータが訂正後のデータに置き換えられる。そして、データキャッシュ33内のデータ(データD2とデータD3とが集約された2048バイトのデータ)がデータバッファ33へ転送され、更にメモリセルアレイ30に書き込まれる。すなわち、ロウデコーダ32は、メモリブロックBLK0において、データD1に連続したアドレスに対応するワード線WLを選択する。これにより、データD2、D3がメモリブロックBLK0の同一ページ内に書き込まれる。なお、ロウデコーダ32がワード線WLを選択するためのロウアドレスは、ステップS41においてカードコントローラ12からロウデコーダ32に与えられていても良いし、ステップS30またはステップS40において与えられても良い。
上記のようなメモリシステムであると、下記の(2)の効果が得られる。
(2)ページサイズ未満のデータの集約を簡便にし、高速化出来る。
本実施形態に係るメモリシステムでは、ページバッファ31とデータキャッシュ33との間で、ページ単位未満の単位でデータの授受を行っている。従って、データの集約を簡便にし、データの集約速度を高速化出来る。
パージバッファとデータキャッシュとの間のデータの授受は、ページサイズ単位で行われるのが一般的であった。しかしこの方法であると、ページサイズ未満のデータを1ページに集約する処理は、カードコントローラ12におけるバッファ26で行う必要があった。また、例えば2回の読み出し動作で読み出された2つのデータを集約する場合には、データキャッシュは後に読み出されたデータを保持し、先に読み出されたデータは保持出来ない。従って、読み出したデータにおける誤りの有無にかかわらず、集約後のデータは、カードコントローラ12のバッファ26からデータキャッシュ33に転送されなければならない。この転送が、集約処理において時間のロスとなる。
しかし本実施形態であると、ページバッファ31とデータキャッシュ33との間で、ページ単位未満の単位でデータの授受を行っている。すなわち、データキャッシュ33上で複数のデータを1ページに集約出来る。従って、データに誤りがあった場合には、訂正済みのデータをバッファ26からデータキャッシュ33へ転送する必要があるが、誤りが無かった場合には転送は不要である。従って、データの集約処理を簡便にし、高速化出来る。
次に、この発明の第3の実施形態に係るメモリシステムについて説明する。本実施形態は、上記第2の実施形態に係る方法をデータの書き込み時に適用したものである。すなわち、データの書き込み時に書き込みデータがページサイズ未満のデータサイズであった場合に、データの集約を行うことにより書き込むべきデータをページサイズにする方法に関するものである。まず、図15を用いてカードコントローラ12が主体となって行う処理について説明する。図15は、カードコントローラ12における処理を示すフローチャートである。
図示するように、ステップS10乃至S17の処理は上記第1の実施形態と同様であるので説明は省略する。ステップS15の判定の結果、書き込みデータのデータサイズがページサイズ未満であった場合(ステップS16、NO)、カードコントローラ12のMCU22は書き込みキャンセル命令をフラッシュメモリ11へ出力する(ステップS50)。書き込みキャンセル命令とは、フラッシュメモリ11に対して以後の書き込み動作を中止させる命令である。引き続きMCU22は、フラッシュメモリ11へデータの読み出し命令を出力する(ステップS51)。読み出し命令とともに、読み出すべきデータのアドレスも、MCU22からフラッシュメモリ11へ与えられる。ステップS51で読み出すべきデータは、ステップS15、S16においてページサイズに満たないと判定された書き込みデータと集約することにより、ちょうど1ページサイズとなるデータである。
そして、フラッシュメモリ11においてデータが読み出されると、その読み出しデータについてMCU22はエラー検出及びエラー訂正を行う(ステップS52)。その後、エラー訂正を行ったデータのみをフラッシュメモリ11へ転送し、更にフラッシュメモリ11に対して、データキャッシュ33内のデータの書き込みを命令する(ステップS53)。
次に図16を用いてNAND型フラッシュメモリ11が主体となって行う処理について説明する。本実施形態では、上記ステップS50において書き込みキャンセル命令が出力された際の動作について説明する。その他の動作は第1の実施形態と同様である。図16は、フラッシュメモリ11における処理を示すフローチャートである。
図示するように、まずフラッシュメモリ11はカードコントローラ12から書き込みキャンセル命令を受信する(ステップS60)。書き込みキャンセル命令を受信すると、フラッシュメモリ11はデータの書き込みを中止し、データキャッシュ33内のデータをそのまま保持する(ステップS61)。そして、カードコントローラ12からステップS51において与えられる読み出し命令に基づいて、データをページ単位でページバッファ31へ読み出す(ステップS62)。そして、ページバッファ31に読み出されたデータのうち、必要なデータのみをデータキャッシュ33へと転送する(ステップS35)。その結果、データキャッシュ33には、ページサイズ未満の書き込みデータと、ステップS62で読み出されたページサイズ未満のデータとが保持され、両者を併せてちょうど1ページと同じデータサイズとなる(ステップS36)。すなわち、2つのデータがページサイズに集約される。その後、ステップS35でデータキャッシュ33に転送されたデータが、メモリコントローラ12のバッファ26に転送される(ステップS37)。ステップS35乃至S37の処理は、第2の実施形態で説明したとおりである。
その後、データに関して誤り訂正がある場合には、MCU22から訂正後のデータを受信(ステップS63)した後、データキャッシュ33内のデータを当初のロウアドレスに対応するページに書き込む(ステップS41)。
上記の書き込み動作の様子を、図17乃至図19を用いて説明する。図17はメモリシステムのブロック図であり、図18及び図19はメモリカードのブロック図である。なお、図17乃至図19においては、1ページのデータサイズが2048バイトであり、カードコントローラ12は512バイト単位のデータをフラッシュメモリ11へ転送する場合を示しており、図中において斜線で示した領域は書き込みデータを示す。図17に示すように、メモリブロックBLKnにはページサイズ未満のデータサイズ、例えば512バイトのデータサイズのデータD4が書き込まれている状況において、2ページ分のデータサイズ(2048×2=4096バイト)を有するデータD5及びページサイズ未満のデータサイズ、例えば1536バイトのデータD6が順次メモリブロックBLK0に書き込まれる場合を仮定する。そして、データD5は既にメモリブロックBLK0に書き込まれ、データD5に連続したアドレスにデータD6が書き込まれる場合を考える。
まず図17に示すように、データD6はページサイズ未満であるので、MCU22は書き込みキャンセル命令をフラッシュメモリ11へ出力する。すると、フラッシュメモリ11のロウデコーダ32はワード線WLの非選択とし、データキャッシュ33に転送済みのデータD6のメモリブロックBLK0への書き込み動作が中止される。
次に図18に示すように、MCU22はフラッシュメモリ11に対して例えばメモリブロックBLKnからデータD4の読み出し命令とアドレスとを出力する。これに応答してフラッシュメモリ11は、メモリブロックBLKnからデータD4が含まれるページのデータをページ単位でデータバッファ31へ読み出す。また、データバッファ31に読み出したページデータのうち、512バイトのデータサイズのデータD4のみをデータキャッシュ33に転送する。この際、データキャッシュ33には1536バイトのデータD6が保持されているから、残りの512バイト分の空き領域がある。従って、この空き領域に、512バイトのデータD4が転送される。その結果、データキャッシュ33ではデータD6とデータD4とが集約されて、あわせてちょうど1ページのデータサイズとなる。更にデータキャッシュ33内のデータD4は、カードコントローラ12のバッファ26に転送されて、誤り検出及び誤り訂正が行われる。
その後図19に示すように、誤り訂正が行われた場合には訂正済みのデータがデータキャッシュ33に上書きされて、データキャッシュ33に保持されるデータD6とデータD4とが、メモリブロックBLK0における同一ページ内に書き込まれる。データD4とデータD6とが書き込まれるページは、当初データD6が書き込まれるべきであった、データD5に連続したアドレスに対応する領域である。
上記構成のメモリシステムであると、第2の実施形態で説明した(2)の効果に加えて、下記の(3)の効果が得られる。
(3)データの集約処理を効率化出来る。
本実施形態に係るメモリシステムであると、ページバッファ31とデータキャッシュ33との間におけるページ単位未満の単位でのデータの授受を利用して、データの書き込み時にデータの集約を行っている。データの集約処理を効率的に行うことが出来る。
上記のように、この発明の第1乃至第3の実施形態に係る構成であると、NAND型フラッシュメモリの動作速度を向上出来る。なお、上記第2、第3の実施形態においてデータの集約を行う際に、いずれのデータを読み出して集約すればちょうど1ページ分のデータサイズになるか、という情報は、カードコントローラ12自身が例えばRAM25などにテーブルとして保持している。すなわち、カードコントローラ12はどのアドレスにどのようなデータサイズのデータが書き込まれているかを把握しているので、そのうちのいずれか適切なものを選択して読み出し命令を出せば良い。
更に、上記第2、第3の実施形態は、ファイルシステムに応用することでより顕著な効果か得られる。以下、ファイルシステムについて簡単に説明する。ファイルシステムとは、メモリに記録されているファイル(データ)を管理する方式のことである。以下ではFAT(File Allocation Table)ファイルシステムを例に挙げて説明する。ファイルシステムにおいては、メモリにおけるファイルやフォルダなどのディレクトリ情報の作成方法、ファイルやフォルダなどの移動方法や削除方法、データの記録方式、管理領域の場所や利用方法などが定められる。図20は、上記実施形態に係るNAND型フラッシュメモリ11のメモリ空間の概念図である。
図示するようにメモリ空間は、おおまかにはユーザデータ領域40及び管理領域41に分けられる。ユーザデータ領域40は、ユーザによって書き込まれる正味のデータを格納する領域である。
管理領域41は、例えばブート領域42、パーティション情報領域43、FAT1(44)、及びFAT2(45)、及びルートディレクトリエントリ領域46を含んでいる。ブート領域42は、例えばブート情報を記憶する。パーティション情報領域43はパーティション情報を記憶する。FAT1及びFAT2は、データがいずれのアドレスに記憶されているかを記憶する。以下、FAT1、FAT2について簡単に説明する。
ユーザデータ領域40は、クラスタと呼ばれる複数の領域を含んでいる。そして、書き込まれるデータがクラスタサイズより大きい場合、クラスタ単位に分割されて記憶される。この際、データが書き込まれるクラスタは連続しない場合がある。すなわち、1つのデータが場所的に離れたクラスタに書き込まれる。この際に、データがどのクラスタに分割されて書き込まれたかを管理するための管理データが、FAT1、FAT2に記憶される。
ルートディレクトリエントリ領域46は、ルートディレクトリエントリの情報を記憶する。そして、ファイル名又はフォルダ名、ファイルサイズ、属性及びファイルの更新日時などとともに、FAT1、FAT2に示されたどのクラスタがファイルの先頭クラスタであるかを示すフラグを記憶する。
上記管理領域内の各データ(以下管理データと呼ぶ)、特にFAT1、FAT2は、頻繁に更新が行われるデータであり、且つそのデータサイズは小さく、1ページに満たないデータサイズであることが通常である。NAND型フラッシュメモリではデータの上書きが禁止されているため、このように頻繁に更新されるデータは、いずれかの消去メモリブロック(これをキャッシュブロックと呼ぶ)に一時的に書き込まれる。そして、データが更新される度に、キャッシュブロックに順次書き込まれていく。そして所定のタイミングにて、キャッシュブロック内の最新のデータが、別のメモリブロックに書き写される(これをキャッシュの撤収と呼ぶ)。このキャッシュの撤収の高速化の観点からも、上記実施形態に係る方法を用いることが望ましい。この点につき、以下説明する。
図21はメモリブロックBLK0の概念図である。図示するようにメモリブロックBLK0は128ページを備え、各ページにおける512バイト単位毎にアドレス“000”、“001”、“002”、…“1FF”が割り当てられているとする。このメモリブロックBLK0に対して、5回の書き込みA〜Eが行われた場合を考える。書き込みAは、アドレス“000”に対する512バイトのデータの書き込みである。書き込みBは、アドレス“005”に対する1024バイトのデータの書き込みである。書き込みCは、アドレス“03F”に対する2048バイトのデータの書き込みである。書き込みDは、アドレス“000”に対する1024バイトのデータの書き込みである。書き込みEは、アドレス“003”に対する1024バイトのデータの書き込みである。これらの書き込みデータは例えば管理データなどの頻繁に更新のあるデータであって、まずキャッシュブロックに書き込まれるものと仮定する。
まず、従来方法によるキャッシュの撤収について図22を用いて説明する。図22はキャッシュブロックとメモリブロックBLK0の概念図であり、キャッシュの撤収の様子を示している。
まず、書き込みAがキャッシュブロックのページ1において行われる。次に、書き込みBがキャッシュブロックのページ2において行われる。次に、書き込みCがキャッシュブロックのページ3、4にまたがって行われる。引き続き、書き込みDがキャッシュブロックのページ6において行われる。
その後、キャッシュの撤収が行われる。まず、アドレス“000”に書き込まれるべきデータは、書き込みDにおいて書き込まれたデータである。すなわち、書き込みAで書き込まれたデータは書き込みDにおけるデータに上書きされたことになり、不要となる。従って、まずキャッシュブロックのページ5からデータを読み出す。次に、メモリブロックBLK0のアドレス“002”には更新がなされなかったので、もとのデータをそのまま使用するために、メモリブロックBLK0のアドレス“002”のデータを読み出す。更に、アドレス“003”のデータは書き込みEにおいて書き込まれたデータであるので、キャッシュブロックのページ6からデータを読み出す。以上の3回のデータの読み出しの結果、メモリブロックBLK0のページ1に書き込むべきデータが集約される。
次に、上記実施形態を適用した場合のキャッシュの撤収について図23を用いて説明する。図23はキャッシュブロックとメモリブロックBLK0の概念図であり、キャッシュの撤収の様子を示している。
まず、従来と同様に、書き込みAがキャッシュブロックのページ1において行われる。次に、書き込みBがキャッシュブロックのページ2において行われる。次に、書き込みCがキャッシュブロックのページ3、4にまたがって行われる。引き続き、書き込みDがキャッシュブロックのページ6において行われる。この書き込み動作時に従来方法と異なるのは、キャッシュブロックへの書き込みが、メモリブロックBLK0内のデータと集約された1ページサイズのデータとして行われる点である。
すなわち、ページ1への書き込みの際には、書き込みAで与えられる512バイトのデータと、メモリブロックBLK0からアドレス“001”〜“003”の1536バイトのデータとが集約されて、ページ1に書き込まれる。ページ2以降への書き込みの際も同様である。ページ6への書き込みの際には、書き込みEで与えられる512バイトのデータと、キャッシュブロックからのデータDとアドレス“002”のデータとが集約される。
その後、キャッシュの撤収が行われる。メモリブロックBLK0のページ1に対応するデータは、キャッシュブロックのページ1、5、6に保持されている。このうち、最新のデータを保持しているページ6が読み出され、メモリブロックBLK0のページ1に書き込まれる。また、キャッシュブロックのページ2のデータが、メモリブロックBLK0のページ2に書き写される。
つまり、本実施形態を用いた場合には、キャッシュブロックにデータを書き込む時点で、書き込みデータと、もとのメモリブロック内の他のデータとを集約して1ページサイズのデータとし、このデータをキャッシュブロックに書き込んでいる。従って、キャッシュの撤収時には、ページ単位でデータが更新される。従って、キャッシュの撤収時における読み出し動作は、1ページあたり1回で済み、キャッシュの撤収を高速化出来る。
また、メモリブロックBLK0とキャッシュブロックとの対応は、図22の場合には512バイトの領域毎に対応を取らねばならず、その情報量は膨大である。しかし上記実施形態を適用した図23の場合にはページ単位で対応を取れば良く、対応情報を少なくすることが出来る。
更に、上記キャッシュの撤収や対応関係の点のみならず、ホスト機器からの読み出しの観点からも、上記方法が好ましい。つまり、FATの更新等、ファイルシステムの操作を効率的に行うためには、ホスト機器では、データをある程度まとめて予め読み込んでおくことが一般的に行われている。すなわち、フラッシュメモリにおいてはFAT領域などにおいて、データサイズの小さいランダムな書き込みが発生するとともに、これらをまとめて一定の大きなデータ量での読み出しが発生することがある。このような場合においても、本実施形態に係る方法であると、データサイズの小さいデータがページ単位でまとまっているため、動作速度を向上させることが出来る。
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
この発明の第1の実施形態に係るメモリシステムのブロック図。 この発明の第1の実施形態に係るメモリカードにおける信号ピンに対する信号割り当てを示す図。 この発明の第1の実施形態に係るメモリカードの備えるカードコントローラのブロック図。 この発明の第1の実施形態に係るフラッシュメモリのブロック図。 この発明の第1の実施形態に係るフラッシュメモリのデータ書き込み方法を示すフローチャートであり、カードコントローラにおける処理を示す図。 この発明の第1の実施形態に係るフラッシュメモリのカードコントローラが出力する信号のタイミングチャート。 この発明の第1の実施形態に係るフラッシュメモリのデータ書き込み方法を示すフローチャートであり、NAND型フラッシュメモリにおける処理を示す図。 この発明の第1の実施形態に係るメモリシステムのブロック図であり、データの書き込み時の様子を示す図。 この発明の第1の実施形態に係るメモリシステムのブロック図であり、データの書き込み時の様子を示す図。 この発明の第2の実施形態に係るフラッシュメモリのデータ書き込み方法を示すフローチャート。 この発明の第2の実施形態に係るメモリシステムのブロック図であり、データの集約時の様子を示す図。 この発明の第2の実施形態に係るメモリシステムのブロック図であり、データの集約時の様子を示す図。 この発明の第2の実施形態に係るメモリシステムのブロック図であり、データの集約時の様子を示す図。 この発明の第2の実施形態に係るメモリシステムのブロック図であり、データの集約時の様子を示す図。 この発明の第3の実施形態に係るフラッシュメモリのデータ集約方法を示すフローチャートであり、カードコントローラにおける処理を示す図。 この発明の第3の実施形態に係るフラッシュメモリのデータ書き込み方法を示すフローチャートであり、NAND型フラッシュメモリにおける処理を示す図。 この発明の第3の実施形態に係るメモリシステムのブロック図であり、データの集約時の様子を示す図。 この発明の第3の実施形態に係るメモリカードのブロック図であり、データの集約時の様子を示す図。 この発明の第3の実施形態に係るメモリカードのブロック図であり、データの集約時の様子を示す図。 この発明の第2、第3の実施形態に係るメモリシステムの備えるNAND型フラッシュメモリのメモリ空間を示す概念図。 フラッシュメモリのブロック図。 フラッシュメモリのブロック図であり、データの集約の様子を示す図。 この発明の第2、第3の実施形態の変形例に係るフラッシュメモリのブロック図であり、データの集約の様子を示す図。
符号の説明
1…メモリカード、2…ホスト機器、11、11−1〜11−4…NAND型フラッシュメモリ、12…カードコントローラ、13…信号ピン、21…ホストインタフェースモジュール、22…MPU、23…フラッシュコントローラ、24…ROM、25…RAM、26…バッファ、30…メモリセルアレイ、31…ページバッファ、32…ロウデコーダ、33…データキャッシュ、40…ユーザデータ領域、41…管理領域、42…ブート領域、43…パーティション情報、44、45…FAT、46…ルートディレクトリエントリ

Claims (5)

  1. ページ単位でデータを一括して書き込み、前記ページを複数含み且つ各々がデータの消去単位となる複数のメモリブロックを備えた不揮発性半導体メモリと、
    前記不揮発性メモリに対して書き込みデータ及び第1ロウアドレスを転送し、且つ転送した前記第1ロウアドレスの変更命令と、該第1ロウアドレスとは異なる第2ロウアドレスとを発行するコントローラと
    を具備し、前記不揮発性半導体メモリは、前記変更命令が発行されない際には前記第1ロウアドレスに対応する前記ページに前記書き込みデータを書き込み、前記変更命令が発行された際には前記第2ロウアドレスに対応する前記ページに前記書き込みデータを書き込む
    ことを特徴とするメモリシステム。
  2. 前記コントローラは、前記書き込みデータのデータサイズがページサイズ未満である場合に、前記変更命令及び前記第2ロウアドレスを発行し、
    前記第2ロウアドレスは、前記第1ロウアドレスとは異なる前記メモリブロック内の前記ページに対応する
    ことを特徴とする請求項1記載のメモリシステム。
  3. ページ単位でデータを一括して書き込み、前記ページを複数含み且つ各々がデータの消去単位となる複数のメモリブロックを備えた不揮発性半導体メモリと、
    前記不揮発性半導体メモリの動作を制御するコントローラと
    を具備し、前記不揮発性半導体メモリは、前記メモリブロックと、
    前記メモリブロックとの間で前記ページ単位によりデータを授受し、1ページ分のデータを保持可能な第1バッファ回路と、
    前記第1バッファ回路及び前記コントローラとの間で1ページ分のデータサイズ以下のデータ単位によりデータを授受し、1ページ分のデータを保持可能な第2バッファ回路と
    を備えることを特徴とするメモリシステム。
  4. 前記コントローラは、前記不揮発性半導体メモリに対してデータの読み出し命令及び第1ロウアドレス及び第2ロウアドレスを発行し、
    前記不揮発性半導体メモリは、前記第1ロウアドレスに対応し、且つ前記ページサイズ未満の第1データを含む第1ページデータを前記第2バッファ回路に読み出し、更に前記第2ロウアドレスに対応し、且つ前記ページサイズ未満の第2データを含む第2ページデータを前記第1バッファ回路に読み出し、
    前記第1バッファ回路は、前記第2ページデータのうちの前記第2データのみを、前記第2バッファ回路において前記第1データ以外を保持する領域に転送する
    ことを特徴とする請求項3記載のメモリシステム。
  5. 前記コントローラは、データの書き込み時に第1ロウアドレスを発行するとともに、前記第2バッファ回路に対して第1データを転送し、
    前記コントローラは、前記第2バッファ回路に転送した前記第1データのデータサイズがページサイズ未満である場合に、書き込み中止命令、データの読み出し命令、及び第2ロウアドレスを発行し、
    前記不揮発性半導体メモリは、前記書き込み中止命令に応答して前記第1データを前記第2バッファ回路に保持しつつ書き込み動作を中断し、前記読み出し命令に応答して、前記第2ロウアドレスに対応し且つ前記ページサイズ未満の第2データを含むページデータを前記第1バッファ回路に読み出し、
    前記第1バッファ回路は、前記ページデータのうちの前記第2データのみを、前記第2バッファ回路において前記第1データ以外を保持する領域に転送し、
    前記第2バッファ回路は前記第1、第2データを、前記第1ロウアドレスに対応するページに一括して書き込む
    ことを特徴とする請求項3記載のメモリシステム。
JP2006182631A 2006-06-30 2006-06-30 メモリシステム Expired - Fee Related JP5002201B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006182631A JP5002201B2 (ja) 2006-06-30 2006-06-30 メモリシステム
KR1020070064437A KR100884429B1 (ko) 2006-06-30 2007-06-28 불휘발성 반도체 메모리를 구비하는 메모리 시스템
US11/770,344 US7937523B2 (en) 2006-06-30 2007-06-28 Memory system with nonvolatile semiconductor memory
TW096123646A TWI358020B (en) 2006-06-30 2007-06-29 Memory system with nonvolatile semiconductor memor
CN2007101269602A CN101097543B (zh) 2006-06-30 2007-07-02 具备非易失性半导体存储器的存储器系统
US13/078,647 US20110185225A1 (en) 2006-06-30 2011-04-01 Memory system with nonvolatile semiconductor memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006182631A JP5002201B2 (ja) 2006-06-30 2006-06-30 メモリシステム

Publications (2)

Publication Number Publication Date
JP2008009942A true JP2008009942A (ja) 2008-01-17
JP5002201B2 JP5002201B2 (ja) 2012-08-15

Family

ID=39011388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006182631A Expired - Fee Related JP5002201B2 (ja) 2006-06-30 2006-06-30 メモリシステム

Country Status (5)

Country Link
US (2) US7937523B2 (ja)
JP (1) JP5002201B2 (ja)
KR (1) KR100884429B1 (ja)
CN (1) CN101097543B (ja)
TW (1) TWI358020B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211229A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2009211220A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2010044620A (ja) * 2008-08-13 2010-02-25 Toshiba Corp 半導体装置
US8108593B2 (en) 2008-03-01 2012-01-31 Kabushiki Kaisha Toshiba Memory system for flushing and relocating data
JP2015111458A (ja) * 2008-11-04 2015-06-18 コンバーサント・インテレクチュアル・プロパティ・マネジメント・インコーポレイテッドConversant Intellectual Property Management Inc. 構成可能な仮想ページサイズを有するブリッジデバイス

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI103329B1 (fi) * 1997-12-22 1999-06-15 Nordberg Lokomo Oy Tapa leukamurskaimen kulutusleuan kiinnittämiseksi ja leukamurskain
US20100318723A1 (en) * 2007-02-23 2010-12-16 Masahiro Nakanishi Memory controller, nonvolatile memory device, and nonvolatile memory system
JP5032155B2 (ja) * 2007-03-02 2012-09-26 株式会社東芝 不揮発性半導体記憶装置、及び不揮発性半導体記憶システム
US7962683B2 (en) * 2007-08-15 2011-06-14 Silicon Motion, Inc. Flash memory, and method for operating a flash memory
US8185685B2 (en) 2007-12-14 2012-05-22 Hitachi Global Storage Technologies Netherlands B.V. NAND flash module replacement for DRAM module
TWI385519B (zh) * 2008-04-18 2013-02-11 Phison Electronics Corp 資料寫入方法及使用此方法的快閃儲存系統與其控制器
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
CN101859605B (zh) * 2009-04-10 2013-05-01 国民技术股份有限公司 一种使用瑕疵闪存的方法
TWI435215B (zh) * 2009-08-26 2014-04-21 Phison Electronics Corp 下達讀取指令與資料讀取方法、控制器與儲存系統
JP5657242B2 (ja) 2009-12-09 2015-01-21 株式会社東芝 半導体装置及びメモリシステム
TWI416331B (zh) * 2009-12-23 2013-11-21 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制器與儲存裝置
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
JP5768654B2 (ja) * 2011-10-25 2015-08-26 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
CN103680610A (zh) * 2012-09-03 2014-03-26 北京兆易创新科技股份有限公司 差分存储NAND Flash存储器写操作的方法及装置
KR102133573B1 (ko) 2013-02-26 2020-07-21 삼성전자주식회사 반도체 메모리 및 반도체 메모리를 포함하는 메모리 시스템
EP3333853A1 (en) * 2013-03-07 2018-06-13 Charles I. Peddle High speed flash controllers
US9069660B2 (en) * 2013-03-15 2015-06-30 Apple Inc. Systems and methods for writing to high-capacity memory
US20150095551A1 (en) 2013-09-30 2015-04-02 Micron Technology, Inc. Volatile memory architecutre in non-volatile memory devices and related controllers
JP6107625B2 (ja) * 2013-12-02 2017-04-05 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US9460019B2 (en) * 2014-06-26 2016-10-04 Intel Corporation Sending packets using optimized PIO write sequences without SFENCEs
JP2016028319A (ja) * 2014-07-08 2016-02-25 富士通株式会社 アクセス制御プログラム、アクセス制御装置及びアクセス制御方法
KR20170008339A (ko) * 2015-07-13 2017-01-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11809727B1 (en) * 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
CN109582235B (zh) * 2018-11-27 2021-12-21 杭州宏杉科技股份有限公司 管理元数据存储方法及装置
CN109815711B (zh) * 2018-12-21 2020-12-25 航天信息股份有限公司 一种存储设备、数据存储方法和数据读取方法
KR20210142974A (ko) * 2020-05-19 2021-11-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
JP2022047855A (ja) 2020-09-14 2022-03-25 キオクシア株式会社 メモリシステム
CN113409849A (zh) * 2021-05-21 2021-09-17 芯天下技术股份有限公司 一种降低编程功耗的方法、装置、存储介质和终端
CN113409852A (zh) * 2021-06-17 2021-09-17 芯天下技术股份有限公司 一种提高闪存编程效率的方法、装置、存储介质和终端
CN113409850A (zh) * 2021-06-17 2021-09-17 芯天下技术股份有限公司 一种提高编程效率的方法、装置、存储介质和终端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242630A (ja) * 1997-12-26 1999-09-07 Mitsubishi Electric Corp ベースバンドic
JP2000067582A (ja) * 1998-08-14 2000-03-03 Texas Instr Inc <Ti> メモリシステムおよび電子装置の動作方法
JP2002236610A (ja) * 2000-12-28 2002-08-23 Texas Instruments Inc バースト・アクセス・メモリシステム
JP2005339231A (ja) * 2004-05-27 2005-12-08 Toshiba Corp メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
JP2008524706A (ja) * 2004-12-16 2008-07-10 サンディスク コーポレイション 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680647A (en) * 1983-09-26 1987-07-14 Pioneer Electronic Corporation Method for recording and reproducing video format signal
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
FR2710445B1 (fr) * 1993-09-20 1995-11-03 Sgs Thomson Microelectronics Circuit de redondance dynamique pour mémoire en circuit intégré.
GB2285524B (en) 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
US6047352A (en) * 1996-10-29 2000-04-04 Micron Technology, Inc. Memory system, method and predecoding circuit operable in different modes for selectively accessing multiple blocks of memory cells for simultaneous writing or erasure
JPH11224492A (ja) 1997-11-06 1999-08-17 Toshiba Corp 半導体記憶装置、不揮発性半導体記憶装置及びフラッシュメモリ
JP3979486B2 (ja) 2001-09-12 2007-09-19 株式会社ルネサステクノロジ 不揮発性記憶装置およびデータ格納方法
US6850438B2 (en) * 2002-07-05 2005-02-01 Aplus Flash Technology, Inc. Combination nonvolatile memory using unified technology with byte, page and block write and simultaneous read and write operations
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
CN100349138C (zh) 2003-08-08 2007-11-14 倚天资讯股份有限公司 非挥发性存储器存取系统及其循环使用存取空间方法
JP2005063038A (ja) 2003-08-08 2005-03-10 Sony Corp データ処理装置、その方法、そのプログラムおよび記録媒体
CN100543702C (zh) 2003-11-18 2009-09-23 松下电器产业株式会社 文件记录装置及其控制方法和执行方法
JP2005332125A (ja) 2004-05-19 2005-12-02 Victor Co Of Japan Ltd メモリコントローラ及び共有メモリシステム
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
JP4738038B2 (ja) 2005-03-25 2011-08-03 株式会社東芝 メモリカード
KR100634457B1 (ko) * 2005-07-04 2006-10-16 삼성전자주식회사 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242630A (ja) * 1997-12-26 1999-09-07 Mitsubishi Electric Corp ベースバンドic
JP2000067582A (ja) * 1998-08-14 2000-03-03 Texas Instr Inc <Ti> メモリシステムおよび電子装置の動作方法
JP2002236610A (ja) * 2000-12-28 2002-08-23 Texas Instruments Inc バースト・アクセス・メモリシステム
JP2005339231A (ja) * 2004-05-27 2005-12-08 Toshiba Corp メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
JP2008524706A (ja) * 2004-12-16 2008-07-10 サンディスク コーポレイション 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211229A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2009211220A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4592774B2 (ja) * 2008-03-01 2010-12-08 株式会社東芝 メモリシステム
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
US8108593B2 (en) 2008-03-01 2012-01-31 Kabushiki Kaisha Toshiba Memory system for flushing and relocating data
JP2010044620A (ja) * 2008-08-13 2010-02-25 Toshiba Corp 半導体装置
JP4649503B2 (ja) * 2008-08-13 2011-03-09 株式会社東芝 半導体装置
JP2015111458A (ja) * 2008-11-04 2015-06-18 コンバーサント・インテレクチュアル・プロパティ・マネジメント・インコーポレイテッドConversant Intellectual Property Management Inc. 構成可能な仮想ページサイズを有するブリッジデバイス

Also Published As

Publication number Publication date
KR100884429B1 (ko) 2009-02-19
KR20080002646A (ko) 2008-01-04
US7937523B2 (en) 2011-05-03
TW200819976A (en) 2008-05-01
US20110185225A1 (en) 2011-07-28
CN101097543B (zh) 2010-06-23
US20080046639A1 (en) 2008-02-21
TWI358020B (en) 2012-02-11
CN101097543A (zh) 2008-01-02
JP5002201B2 (ja) 2012-08-15

Similar Documents

Publication Publication Date Title
JP5002201B2 (ja) メモリシステム
KR100874998B1 (ko) 반도체 집적 회로 장치의 데이터 기록 방식
US8356134B2 (en) Memory device with non-volatile memory buffer
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US11630766B2 (en) Memory system and operating method thereof
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20100042774A1 (en) Block management method for flash memory, and storage system and controller using the same
JP2008009919A (ja) カードコントローラ
US20100057979A1 (en) Data transmission method for flash memory and flash memory storage system and controller using the same
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US11488671B2 (en) Method, associated memory device and controller thereof for performing programming management
US9146861B2 (en) Memory address management method, memory controller and memory storage device
JP2008084184A (ja) メモリコントローラ
US20080109588A1 (en) Memory Card and Method of Driving the Same
JP4334331B2 (ja) フラッシュメモリのアクセス制御方法
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20121009

LAPS Cancellation because of no payment of annual fees