JPWO2004021191A1 - 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 - Google Patents
半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 Download PDFInfo
- Publication number
- JPWO2004021191A1 JPWO2004021191A1 JP2004532699A JP2004532699A JPWO2004021191A1 JP WO2004021191 A1 JPWO2004021191 A1 JP WO2004021191A1 JP 2004532699 A JP2004532699 A JP 2004532699A JP 2004532699 A JP2004532699 A JP 2004532699A JP WO2004021191 A1 JPWO2004021191 A1 JP WO2004021191A1
- Authority
- JP
- Japan
- Prior art keywords
- page
- block
- data
- transfer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Abstract
Description
フラッシュメモリの記憶領域は一般に、一定数のメモリセルごとに複数のページに分割される。データの書き込み及び読み出しはページごとに行われる。記憶領域は更に、一定数のページごとに複数のブロックに分割される。データ消去はブロックごとに一括して行われる。従って、フラッシュメモリではRAMとは異なり、データのページごとの上書きが厳密な意味では実行できない。
従来の半導体メモリ装置は、フラッシュメモリの一部のページに記憶されるデータの書き換え(以下、ページの書き換えという)、及び、データが書き込まれていないページへの新たなデータの書き込み(以下、ページの追記という)を例えば以下のように実現する。FIG.9は、従来の半導体メモリ装置によるフラッシュメモリ1の一ブロックでのページの書き換え又は追記を説明するための図である。
従来の半導体メモリ装置は、フラッシュメモリ1、及び、退避バッファ20とページバッファ2との二つのRAMを有する。フラッシュメモリ1は複数のブロックB0、B1、…に分割される。物理アドレスはブロックB0、B1、…のそれぞれに割り当てられる。ブロックはそれぞれ32枚のページを含む。例えば、先頭ブロック(すなわち第1ブロック)B0はページP0、P1、…、P31を含み、第(n+1)ブロックBn(n≧1)はページQ0、Q1、…、Q31を含む。ブロック内のページはそのブロックの物理アドレスとそのブロック内でのページ番号との対で特定される。ページ番号は例えば、ブロックの先頭ページから順にそれぞれのページに付与された0〜31のシリアル番号である。退避バッファ20とページバッファ2とはそれぞれ、フラッシュメモリ1の一ページと実質的に同じ記憶容量を持つ。
ホストは半導体メモリ装置に対し、書き込み先ページを示す論理アドレスと書き込み対象データとを送出する。半導体メモリ装置はその書き込み対象データDNをページバッファ2へ格納する。一方、半導体メモリ装置はその論理アドレスからフラッシュメモリ1内の対応ページを特定する。例えば、論理アドレスが先頭ブロックB0の第(p+1)ページPp(0≦p≦31)を示すとき、半導体メモリ装置はその論理アドレスを、先頭ブロックB0の物理アドレスと第(p+1)ページPpのページ番号pとの対へ変換する。その物理アドレスがデータの転送元のブロック(以下、転送元ブロックという)の物理アドレスとして特定される。半導体メモリ装置は続いて、フラッシュメモリ1内から、データが書き込まれていないブロック(以下、データ消去済ブロックという)を一つ選択する。半導体メモリ装置は例えば、データ消去済ブロックである第(n+1)ブロックBnを選択する。その第(n+1)ブロックBnの物理アドレスが、転送元ブロックB0に記憶されるデータの転送先のブロック(以下、転送先ブロックという)の物理アドレスとして特定される。
従来の半導体メモリ装置は次のように、転送元ブロックB0に記憶されるデータを転送先ブロックBnへ転送する。まず、転送元ブロックB0の先頭ページP0のデータD0が退避バッファ20へ読み出される(FIG.9に示される矢印R0参照)。次に、退避バッファ20のデータD0が転送先ブロックBnの先頭ページQ0へ書き込まれる(FIG.9に示される矢印W0参照)。続いて、転送元ブロックB0の第2ページP1のデータD1が退避バッファ20へ読み出される(FIG.9に示される矢印R1参照)。次に、退避バッファ20のデータD1が転送先ブロックBnの第2ページQ1へ書き込まれる(FIG.9に示される矢印W1参照)。そのような退避バッファ20経由のデータ転送が書き込み先ページ(転送元ブロックB0の第(p+1)ページPp)のページ番号pと同数回(=p回)繰り返される。転送元ブロックB0の書き込み先ページ(第(p+1)ページ)Ppがデータの読み出し元のページに設定されるとき、半導体メモリ装置はそのページについては退避バッファ20へのデータ転送をスキップする。その代わり、転送先ブロックBnの第(p+1)ページQpへは、ページバッファ2に保持された書き込み対象データDNが書き込まれる(FIG.9に示される矢印Wp参照)。転送元ブロックB0の書き込み先ページPpの次のページ(第(p+2)ページ)からは再び、退避バッファ20経由のデータ転送が繰り返される。転送元ブロックB0の最終ページP31のデータD31が退避バッファ20経由で転送先ブロックBnの最終ページQ31へ書き込まれる(FIG.9に示される矢印R31とW31参照)。半導体メモリ装置は、転送元ブロックB0の物理アドレスに対応する論理アドレスを転送先ブロックBnの物理アドレスに対応させる。転送先ブロックBnでは転送元ブロックB0と比べ、ページ番号pを持つ第(p+1)ページPpのデータが書き換えられている。こうして、従来の半導体メモリ装置はフラッシュメモリ1の一ブロックに対し、ページの書き換え及び追記を実現する。
半導体メモリ装置はできる限り大容量でかつ小型でなければならない。しかし、フラッシュメモリ素子の集積度の向上は容易ではない。従って、フラッシュメモリ素子以外の回路部分のサイズの縮小が望まれる。例えば、複数の機能部のそれぞれが共通の回路部分を含むとき、それらの共通部分を一つに統合し、その統合された部分を複数の機能部に共用させる。それにより、それらの共通部分の数を減らすことが望ましい。半導体メモリ装置でのサイズの縮小はチップ面積の減少により製造コストを低減させるので更に望ましい。従来の半導体メモリ装置は上記の通り、退避バッファとページバッファとの二つのRAMを持つ。これらのRAMは、バッファメモリとして使用される点、及びフラッシュメモリの一ページと実質的に等量の記憶容量を持つ点で共通する。従って、退避バッファとページバッファとを一つのRAMに統一することが強く望まれた。しかし、従来の半導体メモリ装置によるページの書き換えでは上記の通り、書き込み先ページが退避対象となるまで、ページバッファは書き込み対象データを保持しなければならない。それ故、ページバッファを退避バッファとして兼用することは困難だった。
本発明による半導体メモリ装置は、
(A) 複数のページをそれぞれ含む複数のブロックと、ブロックそれぞれのページオフセットを記憶するページオフセット記憶領域とを有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ;
(B) ページ一つ当たりのデータ記憶容量と実質的に等量のデータを一時記憶するためのページバッファ;
(C) 書き込み先ページを指定する論理アドレス、をホストから受信し、その論理アドレスを書き込み先ページの属するブロック(以下、転送元ブロックという)の物理アドレスと書き込み先ページの論理ページ番号との対へ変換するためのアドレス変換部;及び、
(D) (a) 転送元ブロックの物理アドレスと書き込み先ページの論理ページ番号とを読み込み、(b) データ消去済ブロックの一つを転送先ブロックとして選択し、(c) 書き込み先ページの論理ページ番号に基づき転送先ブロックのページオフセットを決定し、そのページオフセットを転送先ブロックのページオフセットとしてページオフセット記憶領域へ書き込み、(d) ページオフセット記憶領域から転送元ブロックのページオフセットを読み出し、(e) 転送元ブロックのページオフセットと書き込み先ページの論理ページ番号とに基づき書き込み先ページの物理ページ番号を求め、(f) ホストからページバッファへ転送される書き込み対象データを転送先ブロックの先頭ページから順に書き込み、(g) 書き込み対象データのページ数と書き込み先ページの物理ページ番号とに基づき転送元ブロックの転送開始ページの物理ページ番号を求め、(h) 書き込み対象データが書き込まれた転送先ブロックのページ領域、の次のページ以降へ転送元ブロック内に記憶されたデータを、転送開始ページから順次かつ巡回的に、ページバッファを経由し転送する、ためのメモリ制御部;を具備する。
論理ページ番号は、ホストによりフラッシュメモリ内のページそれぞれに割り当てられるシリアル番号である。物理ページ番号は、フラッシュメモリ内のブロックごとにそれぞれの先頭ページから順にそれぞれのページに対し付与されるシリアル番号である。ブロックのページオフセットとは、そのブロックでの論理的なページ順序と物理的なページ順序との巡回的なずれをいう。ブロックのページオフセットは好ましくは、そのブロックの先頭ページの論理ページ番号と等しい。本発明による上記の半導体メモリ装置はフラッシュメモリ内のブロックそれぞれのページオフセットを記憶する。ここで、実際に記憶されるデータはページオフセットそのものの他、特定のページの論理ページ番号であっても良い。ページオフセット記憶領域は好ましくは各ブロックの先頭ページの冗長領域である。ページの冗長領域はそのページのデータ領域とは独立にアクセスされる記憶領域である。冗長領域には例えば、そのページに対応する論理アドレス、そのページが空きページか否かを示すフラグ、そのページに書き込まれたデータの有効/無効(すなわちホストによるアクセスの可否)を示すフラグ、及びそのデータの誤り検出符号(例えばCRC)が記憶される。ページオフセットの記憶場所は上記のフラッシュメモリ内のページオフセット記憶領域の他に、そのフラッシュメモリとは独立な不揮発性メモリ(以下、ページオフセット記憶部という)であっても良い。ページオフセット記憶部は例えばメモリ制御部に含まれる。ページバッファはRAMであり、好ましくはSRAMである。書き込み対象データのページ数とは、フラッシュメモリ内のページ一つ当たりのデータ記憶容量を単位として表された書き込み対象データの量をいう。書き込み対象データのページ数は、その書き込み対象データが書き込まれた転送先ブロックのページ領域のページ数と等しい。
本発明による上記の半導体メモリ装置ではフラッシュメモリ内のページそれぞれの論理ページ番号が物理ページ番号からブロックごとに巡回的にずれても良い。各ページの物理ページ番号はそのページの論理ページ番号とそのページの属するブロックのページオフセットとに基づき算出される。ホストからブロック内の一部のページの書き換え又は新たなページの追記を指示されるとき、本発明による上記の半導体メモリ装置はまず、ホストからページバッファへ転送される書き込み対象データを転送先ブロックへ、その先頭ページから順に書き込む。それにより、転送元ブロックについて退避処理を開始する前にページバッファが開放される。従って、本発明による上記の半導体メモリ装置は転送元ブロックの退避処理時、ページバッファを退避バッファとして兼用できる。その結果、本発明による上記の半導体メモリ装置は従来の装置よりRAMのサイズが小さい。それ故、フラッシュメモリのサイズを一定とするとき、本発明による上記の半導体メモリ装置は従来の装置より全体のサイズが小さい。
本発明による上記の半導体メモリ装置が、(a) ホストから送出される、書き込み先ページの論理アドレスと書き込み対象データと、を受信するためのホストインタフェース;及び、(b) フラッシュメモリ内のブロックそれぞれについて論理アドレスと物理アドレスとの対応を示す論理アドレス/物理アドレス変換表、及び、ブロックそれぞれについてデータ消去済ブロックであるか否かを示すためのフラグ、を記憶するアドレス変換表記憶部;を更に具備し;上記のメモリ制御部が、書き込み対象データのページ数を数え、そのページ数が所定数に達するとき又はホストから書き込み対象データの送出の終了を通知されるとき、転送元ブロックから転送先ブロックへのデータ転送の開始しても良い。ここで、アドレス変換表記憶部は好ましくはRAMである。論理アドレス/物理アドレス変換表は、フラッシュメモリ内のブロックそれぞれに割り当てられた論理アドレスとそのブロックの物理アドレスとの対応関係を示す表である。
ホストインタフェースはメモリ制御部から独立しているので、ホストと半導体メモリ装置との間のデータ通信がフラッシュメモリでのデータ書き込み/読み出しとは独立に実行される。それにより、例えばフラッシュメモリへのデータ書き込みに関するホストの待ち時間が短縮される。
アドレス変換部は例えば、フラッシュメモリ内のページの冗長領域を走査する。それにより、フラッシュメモリ内のブロックそれぞれの論理アドレスをリストアップする。こうして、アドレス変換部は論理アドレス/物理アドレス変換表を作成し、アドレス変換表記憶部へ格納する。アドレス変換部は、書き込み先ページの論理アドレスを転送元ブロックの物理アドレスと書き込み先ページの論理ページ番号との対へ変換するとき、論理アドレス/物理アドレス変換表を参照する。それにより、その論理アドレスに対応する物理アドレスを速やかに検索できる。
アドレス変換部は更に、走査された冗長領域に記憶されたデータに基づき、ブロックそれぞれについてデータ消去済ブロックであるか否かをチェックする。それにより、ブロックそれぞれについて上記のフラグを決定し、アドレス変換表記憶部へ格納する。メモリ制御部は、データ消去済ブロックの一つを転送先ブロックとして選択するとき、上記のフラグを参照する。それにより、転送先ブロックを速やかに決定できる。
メモリ制御部は例えば、ホストからページバッファへ格納される書き込み対象データをページバッファから転送先ブロックへ転送するとき、その転送回数を数える。ホストは半導体メモリ装置に対し書き込み対象データの送出の終了を、例えば所定のコマンドで通知しても良い。メモリ制御部はその場合、その通知の受信時点での上記の転送回数から書き込み対象データのページ数を検出できる。メモリ制御部はそれと同時に、転送元ブロックから転送先ブロックへのデータ転送を開始する。その他に、ホストが半導体メモリ装置に対し、書き込み対象データのページ数を書き込み対象データの送出に先立ち通知しても良い。メモリ制御部はその場合、上記の転送回数がその予告されたページ数に達するとき、転送元ブロックから転送先ブロックへのデータ転送を開始する。
本発明によるフラッシュメモリへのデータ書き込み方法は:
複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ、へデータを書き込む方法であり;
(A) 書き込み先ページを指定する論理アドレス、をホストから受信するステップ;
(B) その論理アドレスを転送元ブロックの物理アドレスと書き込み先ページの論理ページ番号との対へ変換するステップ;
(C) データ消去済ブロックの一つを転送先ブロックとして選択するステップ;
(D) 書き込み先ページの論理ページ番号に基づき転送先ブロックのページオフセットを決定し、そのページオフセットを転送先ブロックのページオフセットとしてフラッシュメモリ内のページオフセット記憶領域(又はページオフセット記憶部)へ書き込むステップ;
(E) フラッシュメモリのページオフセット記憶領域(又はページオフセット記憶部)から転送元ブロックのページオフセットを読み出すステップ;
(F) 転送元ブロックのページオフセットと書き込み先ページの論理ページ番号とに基づき書き込み先ページの物理ページ番号を決定するステップ;
(G) ホストからページバッファへ転送される書き込み対象データを転送先ブロックの先頭ページから順に書き込むステップ;
(H) 書き込み対象データのページ数と書き込み先ページの物理ページ番号とに基づき転送元ブロックの転送開始ページの物理ページ番号を求め、その書き込み対象データが書き込まれた転送先ブロックのページ領域、の次のページ以降へ転送元ブロック内に記憶されたデータを、転送開始ページから順次かつ巡回的に、ページバッファを経由し転送するステップ;を有する。ここで、論理ページ番号、物理ページ番号、ブロックのページオフセット、ページオフセット記憶領域(又はページオフセット記憶部)、ページバッファ、及び書き込み対象データのページ数はそれぞれ上記と同様に定義される。
本発明による上記のデータ書き込み方法では、フラッシュメモリ内のページそれぞれの論理ページ番号が物理ページ番号からブロックごとに巡回的にずれても良い。各ページの物理ページ番号はそのページの論理ページ番号とそのページの属するブロックのページオフセットとに基づき算出される。ホストからブロック内のページの書き換え又は追記を指示されるとき、ホストからページバッファへ転送される書き込み対象データがまず、転送先ブロックへその先頭ページから順に書き込まれる。それにより、転送元ブロックについて退避処理を開始する前にページバッファが開放される。従って、その退避処理時、そのページバッファが退避バッファとして兼用され得る。その結果、上記のデータ書き込み方法では必要なRAMのサイズが従来の方法より小さい。それ故、フラッシュメモリのサイズを一定とするとき、半導体メモリ装置全体のサイズが従来の装置より小さい。
本発明による上記のデータ書き込み方法が更に、書き込み対象データが書き込まれた転送先ブロックのページ領域のページ数を数え、そのページ数が所定数に達するとき又はホストから書き込み対象データの送出の終了を通知されるとき、転送元ブロックから転送先ブロックへのデータ転送を開始するステップ、を有しても良い。例えば、書き込み対象データがページバッファから転送先ブロックへ転送されるごとに、その転送回数が数えられる。ホストは半導体メモリ装置に対し書き込み対象データの送出の終了を、例えば所定のコマンドで通知しても良い。その場合、その通知の受信時点での上記の転送回数から上記のページ領域のページ数が検出される。更にその通知時、転送元ブロックから転送先ブロックへのデータ転送が開始される。その他に、ホストが半導体メモリ装置に対し、書き込み対象データのページ数を書き込み対象データの送出に先立ち通知しても良い。その場合、上記の転送回数がその予告されたページ数に達するとき、転送元ブロックから転送先ブロックへのデータ転送が開始される。
本発明による上記の半導体メモリ装置及びそのデータ書き込み方法では、転送元ブロックについて退避処理が開始される前にページバッファが開放される。従って、その退避処理時、ページバッファが退避バッファとして兼用され得る。その結果、上記の半導体メモリ装置は従来の装置よりRAMのサイズが小さい。それ故、フラッシュメモリのサイズを一定とするとき、本発明による上記の半導体メモリ装置は従来の装置より全体のサイズが小さい。特にチップ面積が小さいので、本発明による上記の半導体メモリ装置は従来の装置より製造コストが低減する。
発明の新規な特徴は添付の請求の範囲に特に記載したものに他ならないが、構成及び内容の双方に関して本発明は、他の目的や特徴と合わせて図面と共に以下の詳細な説明を読むことにより、より良く理解され評価されるであろう。
FIG.2は、本発明の実施例によるフラッシュメモリ1内のセルアレイの構成の概略を示す模式図である。
FIG.3は、本発明の実施例による半導体メモリ装置10について、ホストHからページバッファ2へ転送される書き込み対象データDN8〜DN12に対しメモリ制御部6が行う、ページバッファ2からフラッシュメモリ1への転送処理を示す図である。
FIG.4は、本発明の実施例による半導体メモリ装置10について、メモリ制御部6がFIG.3に示されるデータ転送処理に続けて行う、転送元ブロックB0から転送先ブロックBnへのデータ転送処理の前半を示す図である。
FIG.5は、本発明の実施例による半導体メモリ装置10について、メモリ制御部6がFIG.3に示されるデータ転送処理に続けて行う、転送元ブロックB0から転送先ブロックBnへのデータ転送処理の後半を示す図である。
FIG.6は、本発明の実施例による半導体メモリ装置10のデータ書き込み方法のフローチャートである。
FIG.7は、本発明の実施例による半導体メモリ装置10のデータ書き込み方法について、ページバッファ2から転送先ブロックBnへの書き込み対象データDN(q)〜DN(q+m−1)の転送(ステップS7)のフローチャートである。
FIG.8は、本発明の実施例による半導体メモリ装置10のデータ書き込み方法について、転送元ブロックB0から転送先ブロックBnへのデータ転送(ステップS8)のフローチャートである。
FIG.9は、従来の半導体メモリ装置によるフラッシュメモリ1の一ブロックでのページの書き換え又は追記を説明するための図である。
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
FIG.1は本発明の実施例による半導体メモリ装置10を示すブロック図である。半導体メモリ装置10はホストHと外部バス7で接続される。ここで、ホストHは例えば、パソコン等の情報処理機器、又は、PDA若しくは携帯電話等のモバイル機器である。半導体メモリ装置10はホストHに内蔵されても、外付けされても良い。
フラッシュメモリ1は、好ましくはNAND型EEPROM(電気的消去及び書き込み可能不揮発性メモリ)である。FIG.2はフラッシュメモリ1内のセルアレイの構成の概略を示す模式図である。セルアレイは複数のブロックB0、B1、B2、…の集合である。それぞれのブロックは例えば32枚のページを含む。例えば、先頭ブロックB0は32枚のページP0〜P31を含む。他のブロックB1、B2、…についても同様である。フラッシュメモリ1では、データがブロックごとに一括してのみ消去される。それぞれのページは、(512+16)列×8個のメモリセルの二次元配列を含む。ここで、8個のメモリセルがNAND型に接続され、一つの列を構成する。更に、512列のメモリセルがデータ領域DAを構成し、残り16列のメモリセルは冗長領域RAである。フラッシュメモリ1では、データの書き込み及び読み出しが一ページずつ行われる。但し、データ領域DAと冗長領域RAとは互いに独立にアクセスされる。一つのメモリセルは例えば1ビットのデータを記憶する。そのとき、1列のメモリセルは8ビット=1バイトを記憶する。NAND型EEPROMでは、1列のメモリセルにより記憶されるデータが一つのワードとして同時に入出力される。セルアレイのデータ領域DAは上記の構成から計算されるとおり、1ページ当たりでは512バイト、1ブロック当たりでは512バイト×32=16kB、の記憶容量を持つ。冗長領域RAは、その所属するページのデータ領域DAに記憶されたデータの属性を記憶する。例えば、その所属するページに対応する論理アドレス、そのページが空きページか否かを示すフラグ、そのページに書き込まれたデータの有効/無効(すなわちホストによるアクセスの可否)を示すフラグ、又はそのデータの誤り検出符号(例えばCRC)を含む。
フラッシュメモリ1へ一ブロック以上のサイズを持つ一連のデータが記憶されるとき、そのデータはページごとに分割され、データ消去済ブロックの先頭ページから順にそれぞれのページのデータ領域DAへ書き込まれる。フラッシュメモリ1では特に、それぞれのブロック内で論理的なページ順序が物理的なページ順序から次のように巡回的にずれても良い。例えばFIG.2では、先頭ブロックB0の先頭ページ(第1ページ)P0、第2ページP1、…、第30ページP29、第31ページP30、及び最終ページ(第32ページ)P31のそれぞれはデータD2、D3、…、D31、D0、及びD1を記憶する。ここで、先頭ブロックB0のページを示す符号Pの横の数値がそれぞれのページの物理ページ番号を示す。更に、ページP0〜P31のそれぞれに記憶されるデータを示す符号Dの横の数値がそれぞれのページの論理ページ番号を示す。すなわち、先頭ブロックB0のページP0〜P31それぞれの論理ページ番号が物理ページ番号から一定数「2」だけ巡回的にずれる。
論理的なページ順序と物理的なページ順序との間の巡回的なずれはブロックごとに一般に異なる。この巡回的なずれをそのブロックのページオフセットという。ページオフセットは、そのブロックの先頭ページの論理ページ番号と等しい。フラッシュメモリ1ではページオフセットが0〜31の整数で表され、それぞれのブロックのページオフセット記憶領域に記憶される。ここで、ページオフセット記憶領域は例えば各ブロックの第1ページの冗長領域RAである。FIG.2では、先頭ブロックB0のページオフセット「2」がその先頭ページP0の冗長領域RAに記憶される。ページオフセットはその他に、先頭ページとは別のページの冗長領域RAに記憶されても良い。そのとき記憶されるデータはページオフセットそのものの他、そのページの論理ページ番号であっても良い。半導体メモリ装置10はそのページの論理ページ番号と物理ページ番号との間のずれからページオフセットを算出できる。
ホストインタフェース3(FIG.1参照)は、外部バス7と内部バス8との間でデータを中継し、半導体メモリ装置10内の各機能部とホストHとの間でのデータ交換を実現する。ホストインタフェース3は、ホストHからフラッシュメモリ1に対するデータ読み出し命令を受信するとき、その読み出し命令を解読し、読み出し元のページを指定する論理アドレスをアドレス変換部4へ送出する。ホストインタフェース3は更に、メモリ制御部6によりフラッシュメモリ1からページバッファ2へ転送された読み出し対象データを、外部バス7を通しホストHへ送出する。ホストインタフェース3は、ホストHからフラッシュメモリ1に対するデータ書き込み命令を受信するとき、その書き込み命令を解読し、書き込み先のページを指定する論理アドレスをアドレス変換部4へ送出する。ホストインタフェース3は更に、ホストHから受信した書き込み対象データを、内部バス8を通しページバッファ2へ転送する。
ページバッファ2は好ましくはSRAMであり、ホストインタフェース3とメモリ制御部6との間で交換されるデータを一時記憶する。ページバッファ2の記憶容量は例えば512バイトであり、フラッシュメモリ1内の一ページ(のデータ領域DA)の記憶容量と実質的に等しい。
アドレス変換部4は、ホストインタフェース3から論理アドレスを入力する。その論理アドレスでは例えば、上位ビットがフラッシュメモリ1内の一ブロックの論理アドレス(論理ブロックアドレス)を示し、下位ビットがそのブロック内の一ページの論理ページ番号を示す。アドレス変換部4はまず、入力された論理アドレスを論理ブロックアドレスと論理ページ番号とに分ける。アドレス変換部4は次にアドレス変換表記憶部5にアクセスする。アドレス変換表記憶部5は好ましくはRAMであり、論理アドレス/物理アドレス変換表Lを記憶する。アドレス変換部4はその論理アドレス/物理アドレス変換表Lに基づき、論理ブロックアドレスを対応するブロックの物理アドレスへ変換する。その物理アドレスと論理ページ番号との対がメモリ制御部6へ送出される。ここで、論理アドレス/物理アドレス変換表Lは、フラッシュメモリ1内の有効なブロックのそれぞれに割り当てられた論理ブロックアドレスをそのブロックの物理アドレスに対応させた表である。アドレス変換部4は例えば、半導体メモリ装置10の起動時、フラッシュメモリ1内の各ブロックの先頭ページの冗長領域RAを走査する。それにより、フラッシュメモリ1内の有効なブロックの論理ブロックアドレスをリストアップする。こうして、論理アドレス/物理アドレス変換表Lが作成され、アドレス変換表記憶部5へ格納される。
アドレス変換表記憶部5は論理アドレス/物理アドレス変換表Lの他に、例えば、フラッシュメモリ1のブロックそれぞれについてデータ消去済ブロックであるか否かを示すためのフラグFを記憶する。アドレス変換部4は、フラッシュメモリ1内の各ブロックの冗長領域RAに記憶されたデータに基づき、ブロックそれぞれについてデータ消去済ブロックであるか否かをチェックし、上記のフラグFを決定する。アドレス変換部4は更に、それらのフラグFをアドレス変換表記憶部5へ格納する。
メモリ制御部6は、アドレス変換部4から入力した物理アドレスと論理ページ番号との対に基づきフラッシュメモリ1内の一ページを特定する。メモリ制御部6はその特定されたページに対しデータの読み出し/書き込みを実行する。例えばホストHからの読み出し命令の受信時、メモリ制御部6はまず、その読み出し命令の宛先アドレスから変換された物理アドレスをアドレス変換部4から入力し、その物理アドレスに対応するフラッシュメモリ1内のブロックを特定する。メモリ制御部6は次に、そのブロックの先頭ページの冗長領域からそのブロックのページオフセットを読み出す。メモリ制御部6はそのページオフセットとアドレス変換部4から入力した論理ページ番号とに基づき、その論理ページ番号に対応する物理ページ番号を特定する。メモリ制御部6は、その物理ページ番号を持つページに記憶されるデータをフラッシュメモリ1から読み出し、ページバッファ2へ転送する。
ホストHからの書き込み命令の受信時、メモリ制御部6は以下のようにフラッシュメモリ1に対するデータ書き込み、すなわちフラッシュメモリ1の一ブロック内でのページの書き換え又は追記を実行する。FIG.3〜5はメモリ制御部6によるデータ書き込み方法を説明するための図である。FIG.3は、ホストHからページバッファ2へ転送される書き込み対象データDN8〜DN12(符号DNの横の数値は論理ページ番号を示す)に対しメモリ制御部6が行う、ページバッファ2からフラッシュメモリ1への転送処理を示す。ここで、書き込み命令の宛先アドレスにより示される書き込み先ページの論理ページ番号を「8」とする。更に、書き込み対象データDN8〜DN12の総量がフラッシュメモリ1のページ五つ分の記憶容量と実質的に等しいとする。FIG.4とFIG.5とはそれぞれ、メモリ制御部6がFIG.3に示されるデータ転送処理に続けて行う、転送元ブロックB0から転送先ブロックBnへのデータ転送処理の前半と後半とを示す。
メモリ制御部6はまず、アドレス変換部4から物理アドレスを入力する。メモリ制御部6はそのとき、その物理アドレスに対応するフラッシュメモリ1内のブロックを転送元ブロックとして特定する。例えばFIG.3〜5では、先頭ブロック(第1ブロック)B0が転送元ブロックとして特定される。メモリ制御部6は次に、転送元ブロックB0の先頭ページ(第1ページ)P0の冗長領域RAから転送元ブロックB0のページオフセット「2」を読み出す。転送元ブロックB0のデータ領域DAにはデータD0、D1、…、D31(符号Dの横の数値はそれぞれのデータを記憶するページの論理ページ番号を示す)が記憶される。FIG.3に示される通り、転送元ブロックB0ではページP0〜P31(符号Pの横の数値は物理ページ番号を示す)の論理ページ番号が物理ページ番号からページオフセット「2」だけ巡回的にずれる。ここで、ページP0、P1、…、P31の中には、データを消去された状態(ブランク)のページが含まれても良い。
メモリ制御部6は更に、書き込み先ページの論理ページ番号「8」をアドレス変換部4から入力し、その論理ページ番号「8」と転送元ブロックB0のページオフセット「2」との差「8−2=6」を求める。ここで、その差は一般には−31以上31以下である。その差が負でないとき、メモリ制御部6はその差を書き込み先ページの物理ページ番号として同定する。上記の差が負であるとき、メモリ制御部6はその差に一ブロック当たりの総ページ数(=32)を加算し、その和を書き込み先ページの物理ページ番号として同定する。こうして、書き込み先ページの物理ページ番号が0以上31以下の整数として決定される。FIG.3〜5では転送元ブロックB0の第7ページP6が書き込み先ページとして特定される。
メモリ制御部6はアドレス変換表記憶部5にアクセスし、そこに記憶されたフラグFに基づき、フラッシュメモリ1内のデータ消去済ブロックの一つを転送先ブロックとして選択する。例えばFIG.3〜5では第(n+1)ブロックBn(n≧1)が転送先ブロックとして選択される。転送先ブロックBnでは32枚のページQ0、Q1、…、Q31(符号Qの横の数値は物理ページ番号を示す)がいずれもブランクである。
ホストインタフェース3はホストHから送出される書き込み対象データDN8〜DN12を受信し、一ページずつページバッファ2へ書き込む。メモリ制御部6は書き込み対象データDN8〜DN12を一ページずつ、ページバッファ2から転送先ブロックBnへ転送する(FIG.3に示される矢印参照)。書き込み対象データDN8〜DN12は転送先ブロックBnの先頭ページQ0から順に一ページずつ書き込まれる。それにより、書き込み対象データDN8〜DN12は転送先ブロックBnの先頭ページQ0から第5ページQ4までのデータ領域DAへ格納される(FIG.3参照)。メモリ制御部6は更に、書き込み先ページの論理ページ番号「8」を転送先ブロックBnのページオフセットとして決定し、転送先ブロックBnの先頭ページQ0の冗長領域RAへ書き込む。
メモリ制御部6は書き込み対象データDN8〜DN12をページバッファ2から転送先ブロックBnへ転送するごとにその転送回数を数える。ホストHは半導体メモリ装置10に対し書き込み対象データの送出の終了を所定のコマンドで通知する。メモリ制御部6はホストインタフェース3を通しそのコマンドを検出する。メモリ制御部6はそのコマンドの検出時、上記の転送回数に基づき書き込み対象データDN8〜DN12の格納領域Q0〜Q4のページ数「5」を決定する。メモリ制御部6は更にその後、転送元ブロックB0から転送先ブロックBnへのデータ転送を開始する。ここで、ホストHが半導体メモリ装置10に対し、書き込み対象データDN8〜DN12の記憶に必要なページ数「5」を予告しても良い。メモリ制御部6はその場合、上記の転送回数がその予告されたページ数「5」に達するとき、転送元ブロックB0から転送先ブロックBnへのデータ転送を開始する。
ページバッファ2は転送元ブロックB0から転送先ブロックBnへのデータ転送(以下、ブロック転送という)の開始前に開放される。メモリ制御部6はページバッファ2を利用し、ブロック転送を次のように実行する(FIG.4及びFIG.5参照)。まず、転送元ブロックB0の書き込み先ページ(第7ページ)P6から数えて5番目のページ(第12ページ)P11がブロック転送の開始ページ(以下、転送開始ページという)として特定される(FIG.4参照)。次に、転送開始ページP11から最終ページ(第32ページ)P31までのデータD13、…、D31、D0、D1が以下のように転送先ブロックBnへ転送される(FIG.4参照)。まず、転送開始ページP11のデータD13がページバッファ2へ読み出される(FIG.4に示される矢印R1参照)。更に、ページバッファ2のデータD13が転送先ブロックBnの第6ページQ5へ書き込まれる(FIG.4に示される矢印W1参照)。次に、転送元ブロックB0の第13ページP12のデータD14がページバッファ2へ読み出される(FIG.4に示される矢印R2参照)。更に、ページバッファ2のデータD14が転送先ブロックBnの第7ページQ6へ書き込まれる(FIG.4に示される矢印W2参照)。以上のようなページバッファ2経由のデータ転送が32−(6+5)=21回繰り返される。その結果、転送元ブロックB0の第12ページP11から最終ページP31までのデータD13、D14、…、D31、D0、D1が転送先ブロックBnの第6ページQ5から第26ページQ25までのデータ領域DAへ転送される。
メモリ制御部6は続いて、転送元ブロックB0の先頭ページP0から書き込み先ページP6の一つ前のページ(第6ページ)P5までのデータD2、D3、…、D7を転送先ブロックBnへ以下のように転送する(FIG.5参照)。まず、転送元ブロックB0の先頭ページP0のデータD2がページバッファ2へ読み出される(FIG.5に示される矢印R26参照)。更に、そのデータD2がページバッファ2から転送先ブロックBnの第27ページQ26へ書き込まれる。次に、転送元ブロックB0の第2ページP1のデータD3)が同様に、ページバッファ2経由で転送先ブロックBnの第28ページQ27へ転送される。以上のようなページバッファ2経由のデータ転送が6回繰り返される。その結果、転送元ブロックB0の先頭ページP0から書き込み先ページP6の一つ前のページ(第6ページ)P5までのデータD2、D3、…、D7が転送先ブロックBnの第27ページQ26から最終ページQ31までのデータ領域DAへ転送される。
転送開始ページの物理ページ番号は書き込み先ページの物理ページ番号と書き込み対象データの格納領域のページ数との和に等しい。ここで、その和が一ブロック当たりの総ページ数(=32)以上であるとき、その和からその総ページ数を除いた値が転送開始ページの物理ページ番号として同定される。メモリ制御部6はその場合、転送開始ページから書き込み先ページの一つ前のページまでのデータを転送先ブロックBnへ、FIG.5に示されるデータ転送と同様に転送する。
メモリ制御部6による上記のデータ転送の結果、転送先ブロックBnでは転送元ブロックB0と比べ、論理ページ番号が「8」〜「12」であるページのデータD8〜D12が新たなデータDN8〜DN12へ書き換えられる(FIG.5参照)。更に、論理的なページ順序が巡回的に変化し、ページオフセットが「2」から「8」へ変更される。
メモリ制御部6はブロック転送の完了時、転送元ブロックB0のデータを無効化し又は一括消去する。そのとき、アドレス変換部4は論理アドレス/物理アドレス変換表Lを更新し、転送元ブロックB0の物理アドレスに対応していた論理アドレスを転送先ブロックBnの物理アドレスへ対応させる。アドレス変換部4は更に、転送元ブロックB0がデータ消去済ブロックであることを示すように、アドレス変換表記憶部5に記憶されるフラグFを再設定する。こうして、フラッシュメモリ1の一ブロック内でのページの書き換え及び追記が実現される。
メモリ制御部6は上記の通り、ページバッファ2から転送先ブロックBnへのデータ書き込みをその転送先ブロックBnの先頭ページQ0から開始し、最終ページQ31で終了する。この書き込み順序は従来の装置と共通である。従って、ページバッファから転送先ブロックへのデータ書き込みについては、従来の装置と共通の構成が利用されても良い。
実施例による半導体メモリ装置10でのデータ書き込み方法は以下のフローに従い実行される。FIG.6は、半導体メモリ装置10によるデータ書き込み方法のフローチャートである。
<ステップS1>
ホストHからデータ書き込み命令が送出される。ホストインタフェース3はそのデータ書き込み命令を受信し、書き込み先ページの論理アドレスを解読する。ホストインタフェース3は更にその論理アドレスをアドレス変換部4へ送出する。
<ステップS2>
アドレス変換部4がホストインタフェース3から論理アドレスを受け取る。アドレス変換部4はそのとき論理アドレス/物理アドレス変換表Lを参照し、その論理アドレスを転送元ブロックB0の物理アドレスと書き込み先ページの論理ページ番号q(0≦q≦31)との対へ変換する。アドレス変換部4は更にその対をメモリ制御部6へ送出する。
<ステップS3>
メモリ制御部6はアドレス変換表記憶部5にアクセスし、フラグFに基づきフラッシュメモリ1内のデータ消去済ブロックの一つBnを転送先ブロックとして選択する。ここで、転送元ブロックB0がデータ消去済ブロックであるとき、転送元ブロックB0そのものを転送先ブロックBnとしても良い。その場合、以下のステップS8とS9とはスキップされる。
<ステップS4>
メモリ制御部6が、アドレス変換部4から入力される論理ページ番号qを転送先ブロックBnの先頭ページQ0の冗長領域RAへ書き込む(FIG.3参照)。
<ステップS5>
メモリ制御部6は転送元ブロックB0の先頭ページP0の冗長領域RAから、転送元ブロックB0のページオフセットp(0≦p≦31)を読み出す。
<ステップS6>
メモリ制御部6は書き込み先ページの論理ページ番号qと転送元ブロックB0のページオフセットpとの差を求める。その差q−pが負であるとき(q−p<0)、その差q−pに一ブロック当たりの総ページ数(=32)を加算する。こうして得られた0以上31以下の整数値q−p又は32+q−pが書き込み先ページの物理ページ番号rとして同定される:r=q−p又はr=32+q−p。
<ステップS7>
ホストインタフェース3がホストHから書き込み対象データDN(q)、DN(q+1)、…を受信する(符号DNの横の括弧内の符号は論理ページ番号を示す)。ホストインタフェース3はその書き込み対象データDN(q)、DN(q+1)、…を一ページずつ、ページバッファ2へ転送する。ホストインタフェース3は更にその転送をメモリ制御部6へ通知する。メモリ制御部6はホストインタフェース3からの通知ごとに、ページバッファ2のデータDN(q)、DN(q+1)、…を転送先ブロックBnの先頭ページQ0から順に転送する。FIG.7はその転送のフローチャートである。
サブステップSS71:メモリ制御部6は、ホストインタフェース3から上記の転送を最初に通知されるとき、第一の整数値変数kを0に初期化する。
サブステップSS72:メモリ制御部6はページバッファ2のデータを転送先ブロックBnの第(k+1)ページQ(k)(符号Qの横の括弧内の符号は物理ページ番号を示す)のデータ領域DAへ転送する(FIG.3参照)。
サブステップSS73:メモリ制御部6は第一の整数値変数kを1だけ増やす。こうして、第一の整数値変数kは書き込み対象データDN(q)、DN(q+1)、…のページバッファ2から転送先ブロックBnへの転送回数を示す。
サブステップSS74:ホストHは書き込み対象データDN(q)〜DN(q+m−1)の送出を終えるとき、その送出終了を示す所定のコマンドを発行する。ホストインタフェース3はそのコマンドを検出する。メモリ制御部6はホストインタフェース3へアクセスし、そのコマンドが検出されたか否かをチェックする。そのコマンドが検出されないとき、処理がサブステップSS72から反復される。そのコマンドが検出されるとき、処理がサブステップSS75へ進む。
サブステップSS75:メモリ制御部6はそのコマンドの検出時、第一の整数値変数kを書き込み対象データDN(q)〜DN(q+m−1)の格納領域Q0〜Q(m−1)のページ数m(1≦m≦32−q)として同定する。
<ステップS8>
メモリ制御部6は転送元ブロックB0から転送先ブロックBnへのデータ転送(ブロック転送)を開始する。FIG.8はそのブロック転送のフローチャートである。
サブステップSS81:メモリ制御部6は第二の整数値変数iを0に初期化する。
サブステップSS82:メモリ制御部6は、書き込み先ページの物理ページ番号r(ステップS6参照)、書き込み対象データDN(q)〜DN(q+m−1)の格納領域Q0〜Q(m−1)のページ数m、及び第二の整数値変数iを加算する。その和r+m+iが32未満であるとき(r+m+i<32)、処理はサブステップSS83へ進む。和r+m+iが32以上であるとき(r+m+i≧32)、処理はサブステップSS85へ分岐する。
サブステップSS83:メモリ制御部6は、転送元ブロックB0の第(r+m+i+1)ページP(r+m+i)に記憶されるデータD(q+m+i)を転送先ブロックBnの第(m+i+1)ページQ(m+i)へ、ページバッファ2経由で転送する(FIG.4参照)。ここで、符号P及びDの横の括弧内の符号はそれぞれ物理ページ番号と論理ページ番号とを示す。
サブステップSS84:メモリ制御部6は第二の整数値変数iを1だけ増やす。その後、処理はサブステップSS82から繰り返される。
サブステップSS82〜SS84のループにより、サブステップSS83が第二の整数値変数i=0、1、2、…、31−(r+m)のそれぞれについて反復される。その結果、転送元ブロックB0の第(r+m+1)ページP(r+m)から第32ページ(最終ページ)P31までのデータD(q+m)、D(q+m+1)、…、D(p−1)が、転送先ブロックBnの第(m+1)ページQmから第(32−r)ページQ(31−r)までのデータ領域DAへ転送される(FIG.4参照)。
サブステップSS85:メモリ制御部6は第三の整数値変数jの初期値をr+m+iから32を除いた値と等しく設定する:j=r+m+i−32。ここで、r+m<32では第三の整数値変数jの初期値は0に等しい。r+m≧32では第三の整数値変数jの初期値はr+m−32=q+m−pであり、0以上である。
サブステップSS86:メモリ制御部6は第三の整数値変数jを書き込み先ページの物理ページ番号rと比較する。第三の整数値変数jが書き込み先ページの物理ページ番号r未満のとき(j<r)、処理はサブステップSS87へ進む。第三の整数値変数jが書き込み先ページの物理ページ番号rに等しいとき(j=r)、処理はステップS9へ分岐する。
サブステップSS87:メモリ制御部6は、転送元ブロックB0の第(j+1)ページP(j)のデータD(p+j)を転送先ブロックBnの第(33−r+j)ページQ(32−r+j)へ、ページバッファ2経由で転送する(FIG.5参照)。
サブステップSS88:メモリ制御部6は第三の整数値変数jを1だけ増やす。その後、処理はサブステップSS86から繰り返される。
サブステップSS86〜SS88のループにより、サブステップSS87が第三の整数値変数j=0、1、2、…、r−1、又はj=q+m−p、…、p−1のそれぞれについて反復される。その結果、転送元ブロックB0の第1ページP0から第rページP(r−1)までのデータD(p)、…、D(q−1)が、転送先ブロックBnの第(33−r)ページQ(32−r)から第32ページ(最終ページ)Q31までのデータ領域DAへ転送される(FIG.5参照)。又は、転送元ブロックB0の第(q+m−p+1)ページP(q+m−p)から第rページP(r−1)までのデータD(q+m)、…、D31、D0、…、D(q−1)が、転送先ブロックBnの第(m+1)ページQmから第32ページ(最終ページ)Q31までのデータ領域DAへ転送される。
<ステップS9>
メモリ制御部6は転送元ブロックB0のデータを一括消去し、又は無効化する。アドレス変換部4はそのとき、論理アドレス/物理アドレス変換表Lを更新し、転送元ブロックB0の物理アドレスに対応する論理アドレスを転送先ブロックBnの物理アドレスに対応させる。アドレス変換部4は更に、転送元ブロックB0がデータ消去済ブロックであることを示すように、アドレス変換表記憶部5に記憶されるフラグFを再設定する。
以上の通り、実施例による半導体メモリ装置10は、フラッシュメモリ1の一ブロック内のページの書き換え又は追記時、元のブロックのデータの退避場所としてページバッファ2を兼用する。それにより、従来の装置とは異なり、ページバッファ2とは別の退避バッファを持たない。その結果、従来の装置よりRAMのサイズが小さい。それ故、装置全体のサイズを小さく抑え得る。
発明をある程度の詳細さをもって好適な形態について説明したが、この好適形態の現開示内容は構成の細部において変化してしかるべきものであり、各要素の組合せや順序の変化は請求された発明の範囲及び思想を逸脱することなく実現し得るものである。
【技術分野】
【0001】
本発明は、フラッシュメモリを含む半導体メモリ装置に関する。特に、そのフラッシュメモリへのデータ書き込み方法に関する。
【背景技術】
【0002】
情報処理機器、更に近年ではテレビ及び冷蔵庫等の家電製品はCPUを内蔵し、高度な動作制御をソフトウェアで実現する。それらの機器は動作制御用のプログラム(ファームウェア)及びパラメータを不揮発性メモリに保持する。この不揮発性メモリとして、フラッシュメモリを含む半導体メモリ装置が多用される。半導体メモリ装置は更に、ノートパソコン、携帯情報端末(PDA)、ディジタルカメラ、ポータブルオーディオプレーヤ、及び携帯電話等の携帯型情報処理機器(モバイル機器)で、例えばメモリカードのような外付けの小型記録媒体としても多用される。これらの用途では特に、半導体メモリ装置が大容量でかつ小型であることが望ましい。
【0003】
フラッシュメモリの記憶領域は一般に、一定数のメモリセルごとに複数のページに分割される。データの書き込み及び読み出しはページごとに行われる。記憶領域は更に、一定数のページごとに複数のブロックに分割される。データ消去はブロックごとに一括して行われる。従って、フラッシュメモリではRAMとは異なり、データのページごとの上書きが厳密な意味では実行できない。
【0004】
従来の半導体メモリ装置は、フラッシュメモリの一部のページに記憶されるデータの書き換え(以下、ページの書き換えという)、及び、データが書き込まれていないページへの新たなデータの書き込み(以下、ページの追記という)を例えば以下のように実現する。FIG.9は、従来の半導体メモリ装置によるフラッシュメモリ1の一ブロックでのページの書き換え又は追記を説明するための図である。
【0005】
従来の半導体メモリ装置は、フラッシュメモリ1、及び、退避バッファ20とページバッファ2との二つのRAMを有する。フラッシュメモリ1は複数のブロックB0、B1、…に分割される。物理アドレスはブロックB0、B1、…のそれぞれに割り当てられる。ブロックはそれぞれ32枚のページを含む。例えば、先頭ブロック(すなわち第1ブロック)B0はページP0、P1、…、P31を含み、第(n+1)ブロックBn(n≧1)はページQ0、Q1、…、Q31を含む。ブロック内のページはそのブロックの物理アドレスとそのブロック内でのページ番号との対で特定される。ページ番号は例えば、ブロックの先頭ページから順にそれぞれのページに付与された0〜31のシリアル番号である。退避バッファ20とページバッファ2とはそれぞれ、フラッシュメモリ1の一ページと実質的に同じ記憶容量を持つ。
【0006】
ホストは半導体メモリ装置に対し、書き込み先ページを示す論理アドレスと書き込み対象データとを送出する。半導体メモリ装置はその書き込み対象データDNをページバッファ2へ格納する。一方、半導体メモリ装置はその論理アドレスからフラッシュメモリ1内の対応ページを特定する。例えば、論理アドレスが先頭ブロックB0の第(p+1)ページPp(0≦p≦31)を示すとき、半導体メモリ装置はその論理アドレスを、先頭ブロックB0の物理アドレスと第(p+1)ページPpのページ番号pとの対へ変換する。その物理アドレスがデータの転送元のブロック(以下、転送元ブロックという)の物理アドレスとして特定される。半導体メモリ装置は続いて、フラッシュメモリ1内から、データが書き込まれていないブロック(以下、データ消去済ブロックという)を一つ選択する。半導体メモリ装置は例えば、データ消去済ブロックである第(n+1)ブロックBnを選択する。その第(n+1)ブロックBnの物理アドレスが、転送元ブロックB0に記憶されるデータの転送先のブロック(以下、転送先ブロックという)の物理アドレスとして特定される。
【0007】
従来の半導体メモリ装置は次のように、転送元ブロックB0に記憶されるデータを転送先ブロックBnへ転送する。まず、転送元ブロックB0の先頭ページP0のデータD0が退避バッファ20へ読み出される(FIG.9に示される矢印R0参照)。次に、退避バッファ20のデータD0が転送先ブロックBnの先頭ページQ0へ書き込まれる(FIG.9に示される矢印W0参照)。続いて、転送元ブロックB0の第2ページP1のデータD1が退避バッファ20へ読み出される(FIG.9に示される矢印R1参照)。次に、退避バッファ20のデータD1が転送先ブロックBnの第2ページQ1へ書き込まれる(FIG.9に示される矢印W1参照)。そのような退避バッファ20経由のデータ転送が書き込み先ページ(転送元ブロックB0の第(p+1)ページPp)のページ番号pと同数回(=p回)繰り返される。転送元ブロックB0の書き込み先ページ(第(p+1)ページ)Ppがデータの読み出し元のページに設定されるとき、半導体メモリ装置はそのページについては退避バッファ20へのデータ転送をスキップする。その代わり、転送先ブロックBnの第(p+1)ページQpへは、ページバッファ2に保持された書き込み対象データDNが書き込まれる(FIG.9に示される矢印Wp参照)。転送元ブロックB0の書き込み先ページPpの次のページ(第(p+2)ページ)からは再び、退避バッファ20経由のデータ転送が繰り返される。転送元ブロックB0の最終ページP31のデータD31が退避バッファ20経由で転送先ブロックBnの最終ページQ31へ書き込まれる(FIG.9に示される矢印R31とW31参照)。半導体メモリ装置は、転送元ブロックB0の物理アドレスに対応する論理アドレスを転送先ブロックBnの物理アドレスに対応させる。転送先ブロックBnでは転送元ブロックB0と比べ、ページ番号pを持つ第(p+1)ページPpのデータが書き換えられている。こうして、従来の半導体メモリ装置はフラッシュメモリ1の一ブロックに対し、ページの書き換え及び追記を実現する。
【0008】
【特許文献1】特開平9−282111号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
半導体メモリ装置はできる限り大容量でかつ小型でなければならない。しかし、フラッシュメモリ素子の集積度の向上は容易ではない。従って、フラッシュメモリ素子以外の回路部分のサイズの縮小が望まれる。例えば、複数の機能部のそれぞれが共通の回路部分を含むとき、それらの共通部分を一つに統合し、その統合された部分を複数の機能部に共用させる。それにより、それらの共通部分の数を減らすことが望ましい。半導体メモリ装置でのサイズの縮小はチップ面積の減少により製造コストを低減させるので更に望ましい。従来の半導体メモリ装置は上記の通り、退避バッファとページバッファとの二つのRAMを持つ。これらのRAMは、バッファメモリとして使用される点、及びフラッシュメモリの一ページと実質的に等量の記憶容量を持つ点で共通する。従って、退避バッファとページバッファとを一つのRAMに統一することが強く望まれた。しかし、従来の半導体メモリ装置によるページの書き換えでは上記の通り、書き込み先ページが退避対象となるまで、ページバッファは書き込み対象データを保持しなければならない。それ故、ページバッファを退避バッファとして兼用することは困難だった。
【0010】
本発明は、退避バッファとページバッファとを一つのRAMに統一することでRAMのサイズを低減し、それにより小型化を実現した半導体メモリ装置、の提供を目的とする。
【課題を解決するための手段】
【0011】
本発明による半導体メモリ装置は、
(A) 複数のページをそれぞれ含む複数のブロックと、ブロックそれぞれのページオフセットを記憶するページオフセット記憶領域とを有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ;
(B) ページ一つ当たりのデータ記憶容量と実質的に等量のデータを一時記憶するためのページバッファ;
(C) 書き込み先ページを指定する論理アドレス、をホストから受信し、その論理アドレスを書き込み先ページの属するブロック(以下、転送元ブロックという)の物理アドレスと書き込み先ページの論理ページ番号との対へ変換するためのアドレス変換部;及び、
(D) (a) 転送元ブロックの物理アドレスと書き込み先ページの論理ページ番号とを読み込み、(b) データ消去済ブロックの一つを転送先ブロックとして選択し、(c) 書き込み先ページの論理ページ番号に基づき転送先ブロックのページオフセットを決定し、そのページオフセットを転送先ブロックのページオフセットとしてページオフセット記憶領域へ書き込み、(d) ページオフセット記憶領域から転送元ブロックのページオフセットを読み出し、(e) 転送元ブロックのページオフセットと書き込み先ページの論理ページ番号とに基づき書き込み先ページの物理ページ番号を求め、(f) ホストからページバッファへ転送される書き込み対象データを転送先ブロックの先頭ページから順に書き込み、(g) 書き込み対象データのページ数と書き込み先ページの物理ページ番号とに基づき転送元ブロックの転送開始ページの物理ページ番号を求め、(h) 書き込み対象データが書き込まれた転送先ブロックのページ領域、の次のページ以降へ転送元ブロック内に記憶されたデータを、転送開始ページから順次かつ巡回的に、ページバッファを経由し転送する、ためのメモリ制御部;を具備する。
【0012】
論理ページ番号は、ホストによりフラッシュメモリ内のページそれぞれに割り当てられるシリアル番号である。物理ページ番号は、フラッシュメモリ内のブロックごとにそれぞれの先頭ページから順にそれぞれのページに対し付与されるシリアル番号である。ブロックのページオフセットとは、そのブロックでの論理的なページ順序と物理的なページ順序との巡回的なずれをいう。ブロックのページオフセットは好ましくは、そのブロックの先頭ページの論理ページ番号と等しい。本発明による上記の半導体メモリ装置はフラッシュメモリ内のブロックそれぞれのページオフセットを記憶する。ここで、実際に記憶されるデータはページオフセットそのものの他、特定のページの論理ページ番号であっても良い。ページオフセット記憶領域は好ましくは各ブロックの先頭ページの冗長領域である。ページの冗長領域はそのページのデータ領域とは独立にアクセスされる記憶領域である。冗長領域には例えば、そのページに対応する論理アドレス、そのページが空きページか否かを示すフラグ、そのページに書き込まれたデータの有効/無効(すなわちホストによるアクセスの可否)を示すフラグ、及びそのデータの誤り検出符号(例えばCRC)が記憶される。ページオフセットの記憶場所は上記のフラッシュメモリ内のページオフセット記憶領域の他に、そのフラッシュメモリとは独立な不揮発性メモリ(以下、ページオフセット記憶部という)であっても良い。ページオフセット記憶部は例えばメモリ制御部に含まれる。ページバッファはRAMであり、好ましくはSRAMである。書き込み対象データのページ数とは、フラッシュメモリ内のページ一つ当たりのデータ記憶容量を単位として表された書き込み対象データの量をいう。書き込み対象データのページ数は、その書き込み対象データが書き込まれた転送先ブロックのページ領域のページ数と等しい。
【0013】
本発明による上記の半導体メモリ装置ではフラッシュメモリ内のページそれぞれの論理ページ番号が物理ページ番号からブロックごとに巡回的にずれても良い。各ページの物理ページ番号はそのページの論理ページ番号とそのページの属するブロックのページオフセットとに基づき算出される。ホストからブロック内の一部のページの書き換え又は新たなページの追記を指示されるとき、本発明による上記の半導体メモリ装置はまず、ホストからページバッファへ転送される書き込み対象データを転送先ブロックへ、その先頭ページから順に書き込む。それにより、転送元ブロックについて退避処理を開始する前にページバッファが開放される。従って、本発明による上記の半導体メモリ装置は転送元ブロックの退避処理時、ページバッファを退避バッファとして兼用できる。その結果、本発明による上記の半導体メモリ装置は従来の装置よりRAMのサイズが小さい。それ故、フラッシュメモリのサイズを一定とするとき、本発明による上記の半導体メモリ装置は従来の装置より全体のサイズが小さい。
【0014】
本発明による上記の半導体メモリ装置が、(a) ホストから送出される、書き込み先ページの論理アドレスと書き込み対象データと、を受信するためのホストインタフェース;及び、(b) フラッシュメモリ内のブロックそれぞれについて論理アドレスと物理アドレスとの対応を示す論理アドレス/物理アドレス変換表、及び、ブロックそれぞれについてデータ消去済ブロックであるか否かを示すためのフラグ、を記憶するアドレス変換表記憶部;を更に具備し;上記のメモリ制御部が、書き込み対象データのページ数を数え、そのページ数が所定数に達するとき又はホストから書き込み対象データの送出の終了を通知されるとき、転送元ブロックから転送先ブロックへのデータ転送の開始しても良い。ここで、アドレス変換表記憶部は好ましくはRAMである。論理アドレス/物理アドレス変換表は、フラッシュメモリ内のブロックそれぞれに割り当てられた論理アドレスとそのブロックの物理アドレスとの対応関係を示す表である。
【0015】
ホストインタフェースはメモリ制御部から独立しているので、ホストと半導体メモリ装置との間のデータ通信がフラッシュメモリでのデータ書き込み/読み出しとは独立に実行される。それにより、例えばフラッシュメモリへのデータ書き込みに関するホストの待ち時間が短縮される。
【0016】
アドレス変換部は例えば、フラッシュメモリ内のページの冗長領域を走査する。それにより、フラッシュメモリ内のブロックそれぞれの論理アドレスをリストアップする。こうして、アドレス変換部は論理アドレス/物理アドレス変換表を作成し、アドレス変換表記憶部へ格納する。アドレス変換部は、書き込み先ページの論理アドレスを転送元ブロックの物理アドレスと書き込み先ページの論理ページ番号との対へ変換するとき、論理アドレス/物理アドレス変換表を参照する。それにより、その論理アドレスに対応する物理アドレスを速やかに検索できる。
アドレス変換部は更に、走査された冗長領域に記憶されたデータに基づき、ブロックそれぞれについてデータ消去済ブロックであるか否かをチェックする。それにより、ブロックそれぞれについて上記のフラグを決定し、アドレス変換表記憶部へ格納する。メモリ制御部は、データ消去済ブロックの一つを転送先ブロックとして選択するとき、上記のフラグを参照する。それにより、転送先ブロックを速やかに決定できる。
【0017】
メモリ制御部は例えば、ホストからページバッファへ格納される書き込み対象データをページバッファから転送先ブロックへ転送するとき、その転送回数を数える。ホストは半導体メモリ装置に対し書き込み対象データの送出の終了を、例えば所定のコマンドで通知しても良い。メモリ制御部はその場合、その通知の受信時点での上記の転送回数から書き込み対象データのページ数を検出できる。メモリ制御部はそれと同時に、転送元ブロックから転送先ブロックへのデータ転送を開始する。その他に、ホストが半導体メモリ装置に対し、書き込み対象データのページ数を書き込み対象データの送出に先立ち通知しても良い。メモリ制御部はその場合、上記の転送回数がその予告されたページ数に達するとき、転送元ブロックから転送先ブロックへのデータ転送を開始する。
【0018】
本発明によるフラッシュメモリへのデータ書き込み方法は:
複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ、へデータを書き込む方法であり;
(A) 書き込み先ページを指定する論理アドレス、をホストから受信するステップ;
(B) その論理アドレスを転送元ブロックの物理アドレスと書き込み先ページの論理ページ番号との対へ変換するステップ;
(C) データ消去済ブロックの一つを転送先ブロックとして選択するステップ;
(D) 書き込み先ページの論理ページ番号に基づき転送先ブロックのページオフセットを決定し、そのページオフセットを転送先ブロックのページオフセットとしてフラッシュメモリ内のページオフセット記憶領域(又はページオフセット記憶部)へ書き込むステップ;
(E) フラッシュメモリのページオフセット記憶領域(又はページオフセット記憶部)から転送元ブロックのページオフセットを読み出すステップ;
(F) 転送元ブロックのページオフセットと書き込み先ページの論理ページ番号とに基づき書き込み先ページの物理ページ番号を決定するステップ;
(G) ホストからページバッファへ転送される書き込み対象データを転送先ブロックの先頭ページから順に書き込むステップ;
(H) 書き込み対象データのページ数と書き込み先ページの物理ページ番号とに基づき転送元ブロックの転送開始ページの物理ページ番号を求め、その書き込み対象データが書き込まれた転送先ブロックのページ領域、の次のページ以降へ転送元ブロック内に記憶されたデータを、転送開始ページから順次かつ巡回的に、ページバッファを経由し転送するステップ;を有する。ここで、論理ページ番号、物理ページ番号、ブロックのページオフセット、ページオフセット記憶領域(又はページオフセット記憶部)、ページバッファ、及び書き込み対象データのページ数はそれぞれ上記と同様に定義される。
【0019】
本発明による上記のデータ書き込み方法では、フラッシュメモリ内のページそれぞれの論理ページ番号が物理ページ番号からブロックごとに巡回的にずれても良い。各ページの物理ページ番号はそのページの論理ページ番号とそのページの属するブロックのページオフセットとに基づき算出される。ホストからブロック内のページの書き換え又は追記を指示されるとき、ホストからページバッファへ転送される書き込み対象データがまず、転送先ブロックへその先頭ページから順に書き込まれる。それにより、転送元ブロックについて退避処理を開始する前にページバッファが開放される。従って、その退避処理時、そのページバッファが退避バッファとして兼用され得る。その結果、上記のデータ書き込み方法では必要なRAMのサイズが従来の方法より小さい。それ故、フラッシュメモリのサイズを一定とするとき、半導体メモリ装置全体のサイズが従来の装置より小さい。
【0020】
本発明による上記のデータ書き込み方法が更に、書き込み対象データが書き込まれた転送先ブロックのページ領域のページ数を数え、そのページ数が所定数に達するとき又はホストから書き込み対象データの送出の終了を通知されるとき、転送元ブロックから転送先ブロックへのデータ転送を開始するステップ、を有しても良い。例えば、書き込み対象データがページバッファから転送先ブロックへ転送されるごとに、その転送回数が数えられる。ホストは半導体メモリ装置に対し書き込み対象データの送出の終了を、例えば所定のコマンドで通知しても良い。その場合、その通知の受信時点での上記の転送回数から上記のページ領域のページ数が検出される。更にその通知時、転送元ブロックから転送先ブロックへのデータ転送が開始される。その他に、ホストが半導体メモリ装置に対し、書き込み対象データのページ数を書き込み対象データの送出に先立ち通知しても良い。その場合、上記の転送回数がその予告されたページ数に達するとき、転送元ブロックから転送先ブロックへのデータ転送が開始される。
【発明の効果】
【0021】
本発明による上記の半導体メモリ装置及びそのデータ書き込み方法では、転送元ブロックについて退避処理が開始される前にページバッファが開放される。従って、その退避処理時、ページバッファが退避バッファとして兼用され得る。その結果、上記の半導体メモリ装置は従来の装置よりRAMのサイズが小さい。それ故、フラッシュメモリのサイズを一定とするとき、本発明による上記の半導体メモリ装置は従来の装置より全体のサイズが小さい。特にチップ面積が小さいので、本発明による上記の半導体メモリ装置は従来の装置より製造コストが低減する。
【0022】
発明の新規な特徴は添付の請求の範囲に特に記載したものに他ならないが、構成及び内容の双方に関して本発明は、他の目的や特徴と合わせて図面と共に以下の詳細な説明を読むことにより、より良く理解され評価されるであろう。
【発明を実施するための最良の形態】
【0023】
以下、本発明の最適な実施の形態について、図面を参照しつつ説明する。
FIG.1は本発明の実施例による半導体メモリ装置10を示すブロック図である。半導体メモリ装置10はホストHと外部バス7で接続される。ここで、ホストHは例えば、パソコン等の情報処理機器、又は、PDA若しくは携帯電話等のモバイル機器である。半導体メモリ装置10はホストHに内蔵されても、外付けされても良い。
【0024】
フラッシュメモリ1は、好ましくはNAND型EEPROM(電気的消去及び書き込み可能不揮発性メモリ)である。FIG.2はフラッシュメモリ1内のセルアレイの構成の概略を示す模式図である。セルアレイは複数のブロックB0、B1、B2、…の集合である。それぞれのブロックは例えば32枚のページを含む。例えば、先頭ブロックB0は32枚のページP0〜P31を含む。他のブロックB1、B2、…についても同様である。フラッシュメモリ1では、データがブロックごとに一括してのみ消去される。それぞれのページは、(512+16)列×8個のメモリセルの二次元配列を含む。ここで、8個のメモリセルがNAND型に接続され、一つの列を構成する。更に、512列のメモリセルがデータ領域DAを構成し、残り16列のメモリセルは冗長領域RAである。フラッシュメモリ1では、データの書き込み及び読み出しが一ページずつ行われる。但し、データ領域DAと冗長領域RAとは互いに独立にアクセスされる。一つのメモリセルは例えば1ビットのデータを記憶する。そのとき、1列のメモリセルは8ビット=1バイトを記憶する。NAND型EEPROMでは、1列のメモリセルにより記憶されるデータが一つのワードとして同時に入出力される。セルアレイのデータ領域DAは上記の構成から計算されるとおり、1ページ当たりでは512バイト、1ブロック当たりでは512バイト×32=16kB、の記憶容量を持つ。冗長領域RAは、その所属するページのデータ領域DAに記憶されたデータの属性を記憶する。例えば、その所属するページに対応する論理アドレス、そのページが空きページか否かを示すフラグ、そのページに書き込まれたデータの有効/無効(すなわちホストによるアクセスの可否)を示すフラグ、又はそのデータの誤り検出符号(例えばCRC)を含む。
【0025】
フラッシュメモリ1へ一ブロック以上のサイズを持つ一連のデータが記憶されるとき、そのデータはページごとに分割され、データ消去済ブロックの先頭ページから順にそれぞれのページのデータ領域DAへ書き込まれる。フラッシュメモリ1では特に、それぞれのブロック内で論理的なページ順序が物理的なページ順序から次のように巡回的にずれても良い。例えばFIG.2では、先頭ブロックB0の先頭ページ(第1ページ)P0、第2ページP1、…、第30ページP29、第31ページP30、及び最終ページ(第32ページ)P31のそれぞれはデータD2、D3、…、D31、D0、及びD1を記憶する。ここで、先頭ブロックB0のページを示す符号Pの横の数値がそれぞれのページの物理ページ番号を示す。更に、ページP0〜P31のそれぞれに記憶されるデータを示す符号Dの横の数値がそれぞれのページの論理ページ番号を示す。すなわち、先頭ブロックB0のページP0〜P31それぞれの論理ページ番号が物理ページ番号から一定数「2」だけ巡回的にずれる。
【0026】
論理的なページ順序と物理的なページ順序との間の巡回的なずれはブロックごとに一般に異なる。この巡回的なずれをそのブロックのページオフセットという。ページオフセットは、そのブロックの先頭ページの論理ページ番号と等しい。フラッシュメモリ1ではページオフセットが0〜31の整数で表され、それぞれのブロックのページオフセット記憶領域に記憶される。ここで、ページオフセット記憶領域は例えば各ブロックの第1ページの冗長領域RAである。FIG.2では、先頭ブロックB0のページオフセット「2」がその先頭ページP0の冗長領域RAに記憶される。ページオフセットはその他に、先頭ページとは別のページの冗長領域RAに記憶されても良い。そのとき記憶されるデータはページオフセットそのものの他、そのページの論理ページ番号であっても良い。半導体メモリ装置10はそのページの論理ページ番号と物理ページ番号との間のずれからページオフセットを算出できる。
【0027】
ホストインタフェース3(FIG.1参照)は、外部バス7と内部バス8との間でデータを中継し、半導体メモリ装置10内の各機能部とホストHとの間でのデータ交換を実現する。ホストインタフェース3は、ホストHからフラッシュメモリ1に対するデータ読み出し命令を受信するとき、その読み出し命令を解読し、読み出し元のページを指定する論理アドレスをアドレス変換部4へ送出する。ホストインタフェース3は更に、メモリ制御部6によりフラッシュメモリ1からページバッファ2へ転送された読み出し対象データを、外部バス7を通しホストHへ送出する。ホストインタフェース3は、ホストHからフラッシュメモリ1に対するデータ書き込み命令を受信するとき、その書き込み命令を解読し、書き込み先のページを指定する論理アドレスをアドレス変換部4へ送出する。ホストインタフェース3は更に、ホストHから受信した書き込み対象データを、内部バス8を通しページバッファ2へ転送する。
ページバッファ2は好ましくはSRAMであり、ホストインタフェース3とメモリ制御部6との間で交換されるデータを一時記憶する。ページバッファ2の記憶容量は例えば512バイトであり、フラッシュメモリ1内の一ページ(のデータ領域DA)の記憶容量と実質的に等しい。
【0028】
アドレス変換部4は、ホストインタフェース3から論理アドレスを入力する。その論理アドレスでは例えば、上位ビットがフラッシュメモリ1内の一ブロックの論理アドレス(論理ブロックアドレス)を示し、下位ビットがそのブロック内の一ページの論理ページ番号を示す。アドレス変換部4はまず、入力された論理アドレスを論理ブロックアドレスと論理ページ番号とに分ける。アドレス変換部4は次にアドレス変換表記憶部5にアクセスする。アドレス変換表記憶部5は好ましくはRAMであり、論理アドレス/物理アドレス変換表Lを記憶する。アドレス変換部4はその論理アドレス/物理アドレス変換表Lに基づき、論理ブロックアドレスを対応するブロックの物理アドレスへ変換する。その物理アドレスと論理ページ番号との対がメモリ制御部6へ送出される。ここで、論理アドレス/物理アドレス変換表Lは、フラッシュメモリ1内の有効なブロックのそれぞれに割り当てられた論理ブロックアドレスをそのブロックの物理アドレスに対応させた表である。アドレス変換部4は例えば、半導体メモリ装置10の起動時、フラッシュメモリ1内の各ブロックの先頭ページの冗長領域RAを走査する。それにより、フラッシュメモリ1内の有効なブロックの論理ブロックアドレスをリストアップする。こうして、論理アドレス/物理アドレス変換表Lが作成され、アドレス変換表記憶部5へ格納される。
【0029】
アドレス変換表記憶部5は論理アドレス/物理アドレス変換表Lの他に、例えば、フラッシュメモリ1のブロックそれぞれについてデータ消去済ブロックであるか否かを示すためのフラグFを記憶する。アドレス変換部4は、フラッシュメモリ1内の各ブロックの冗長領域RAに記憶されたデータに基づき、ブロックそれぞれについてデータ消去済ブロックであるか否かをチェックし、上記のフラグFを決定する。アドレス変換部4は更に、それらのフラグFをアドレス変換表記憶部5へ格納する。
【0030】
メモリ制御部6は、アドレス変換部4から入力した物理アドレスと論理ページ番号との対に基づきフラッシュメモリ1内の一ページを特定する。メモリ制御部6はその特定されたページに対しデータの読み出し/書き込みを実行する。例えばホストHからの読み出し命令の受信時、メモリ制御部6はまず、その読み出し命令の宛先アドレスから変換された物理アドレスをアドレス変換部4から入力し、その物理アドレスに対応するフラッシュメモリ1内のブロックを特定する。メモリ制御部6は次に、そのブロックの先頭ページの冗長領域からそのブロックのページオフセットを読み出す。メモリ制御部6はそのページオフセットとアドレス変換部4から入力した論理ページ番号とに基づき、その論理ページ番号に対応する物理ページ番号を特定する。メモリ制御部6は、その物理ページ番号を持つページに記憶されるデータをフラッシュメモリ1から読み出し、ページバッファ2へ転送する。
【0031】
ホストHからの書き込み命令の受信時、メモリ制御部6は以下のようにフラッシュメモリ1に対するデータ書き込み、すなわちフラッシュメモリ1の一ブロック内でのページの書き換え又は追記を実行する。FIG.3〜5はメモリ制御部6によるデータ書き込み方法を説明するための図である。FIG.3は、ホストHからページバッファ2へ転送される書き込み対象データDN8〜DN12(符号DNの横の数値は論理ページ番号を示す)に対しメモリ制御部6が行う、ページバッファ2からフラッシュメモリ1への転送処理を示す。ここで、書き込み命令の宛先アドレスにより示される書き込み先ページの論理ページ番号を「8」とする。更に、書き込み対象データDN8〜DN12の総量がフラッシュメモリ1のページ五つ分の記憶容量と実質的に等しいとする。FIG.4とFIG.5とはそれぞれ、メモリ制御部6がFIG.3に示されるデータ転送処理に続けて行う、転送元ブロックB0から転送先ブロックBnへのデータ転送処理の前半と後半とを示す。
【0032】
メモリ制御部6はまず、アドレス変換部4から物理アドレスを入力する。メモリ制御部6はそのとき、その物理アドレスに対応するフラッシュメモリ1内のブロックを転送元ブロックとして特定する。例えばFIG.3〜5では、先頭ブロック(第1ブロック)B0が転送元ブロックとして特定される。メモリ制御部6は次に、転送元ブロックB0の先頭ページ(第1ページ)P0の冗長領域RAから転送元ブロックB0のページオフセット「2」を読み出す。転送元ブロックB0のデータ領域DAにはデータD0、D1、…、D31(符号Dの横の数値はそれぞれのデータを記憶するページの論理ページ番号を示す)が記憶される。FIG.3に示される通り、転送元ブロックB0ではページP0〜P31(符号Pの横の数値は物理ページ番号を示す)の論理ページ番号が物理ページ番号からページオフセット「2」だけ巡回的にずれる。ここで、ページP0、P1、…、P31の中には、データを消去された状態(ブランク)のページが含まれても良い。
【0033】
メモリ制御部6は更に、書き込み先ページの論理ページ番号「8」をアドレス変換部4から入力し、その論理ページ番号「8」と転送元ブロックB0のページオフセット「2」との差「8−2=6」を求める。ここで、その差は一般には−31以上31以下である。その差が負でないとき、メモリ制御部6はその差を書き込み先ページの物理ページ番号として同定する。上記の差が負であるとき、メモリ制御部6はその差に一ブロック当たりの総ページ数(=32)を加算し、その和を書き込み先ページの物理ページ番号として同定する。こうして、書き込み先ページの物理ページ番号が0以上31以下の整数として決定される。FIG.3〜5では転送元ブロックB0の第7ページP6が書き込み先ページとして特定される。
【0034】
メモリ制御部6はアドレス変換表記憶部5にアクセスし、そこに記憶されたフラグFに基づき、フラッシュメモリ1内のデータ消去済ブロックの一つを転送先ブロックとして選択する。例えばFIG.3〜5では第(n+1)ブロックBn(n≧1)が転送先ブロックとして選択される。転送先ブロックBnでは32枚のページQ0、Q1、…、Q31(符号Qの横の数値は物理ページ番号を示す)がいずれもブランクである。
【0035】
ホストインタフェース3はホストHから送出される書き込み対象データDN8〜DN12を受信し、一ページずつページバッファ2へ書き込む。メモリ制御部6は書き込み対象データDN8〜DN12を一ページずつ、ページバッファ2から転送先ブロックBnへ転送する(FIG.3に示される矢印参照)。書き込み対象データDN8〜DN12は転送先ブロックBnの先頭ページQ0から順に一ページずつ書き込まれる。それにより、書き込み対象データDN8〜DN12は転送先ブロックBnの先頭ページQ0から第5ページQ4までのデータ領域DAへ格納される(FIG.3参照)。メモリ制御部6は更に、書き込み先ページの論理ページ番号「8」を転送先ブロックBnのページオフセットとして決定し、転送先ブロックBnの先頭ページQ0の冗長領域RAへ書き込む。
【0036】
メモリ制御部6は書き込み対象データDN8〜DN12をページバッファ2から転送先ブロックBnへ転送するごとにその転送回数を数える。ホストHは半導体メモリ装置10に対し書き込み対象データの送出の終了を所定のコマンドで通知する。メモリ制御部6はホストインタフェース3を通しそのコマンドを検出する。メモリ制御部6はそのコマンドの検出時、上記の転送回数に基づき書き込み対象データDN8〜DN12の格納領域Q0〜Q4のページ数「5」を決定する。メモリ制御部6は更にその後、転送元ブロックB0から転送先ブロックBnへのデータ転送を開始する。ここで、ホストHが半導体メモリ装置10に対し、書き込み対象データDN8〜DN12の記憶に必要なページ数「5」を予告しても良い。メモリ制御部6はその場合、上記の転送回数がその予告されたページ数「5」に達するとき、転送元ブロックB0から転送先ブロックBnへのデータ転送を開始する。
【0037】
ページバッファ2は転送元ブロックB0から転送先ブロックBnへのデータ転送(以下、ブロック転送という)の開始前に開放される。メモリ制御部6はページバッファ2を利用し、ブロック転送を次のように実行する(FIG.4及びFIG.5参照)。まず、転送元ブロックB0の書き込み先ページ(第7ページ)P6から数えて5番目のページ(第12ページ)P11がブロック転送の開始ページ(以下、転送開始ページという)として特定される(FIG.4参照)。次に、転送開始ページP11から最終ページ(第32ページ)P31までのデータD13、…、D31、D0、D1が以下のように転送先ブロックBnへ転送される(FIG.4参照)。まず、転送開始ページP11のデータD13がページバッファ2へ読み出される(FIG.4に示される矢印R1参照)。更に、ページバッファ2のデータD13が転送先ブロックBnの第6ページQ5へ書き込まれる(FIG.4に示される矢印W1参照)。次に、転送元ブロックB0の第13ページP12のデータD14がページバッファ2へ読み出される(FIG.4に示される矢印R2参照)。更に、ページバッファ2のデータD14が転送先ブロックBnの第7ページQ6へ書き込まれる(FIG.4に示される矢印W2参照)。以上のようなページバッファ2経由のデータ転送が32−(6+5)=21回繰り返される。その結果、転送元ブロックB0の第12ページP11から最終ページP31までのデータD13、D14、…、D31、D0、D1が転送先ブロックBnの第6ページQ5から第26ページQ25までのデータ領域DAへ転送される。
【0038】
メモリ制御部6は続いて、転送元ブロックB0の先頭ページP0から書き込み先ページP6の一つ前のページ(第6ページ)P5までのデータD2、D3、…、D7を転送先ブロックBnへ以下のように転送する(FIG.5参照)。まず、転送元ブロックB0の先頭ページP0のデータD2がページバッファ2へ読み出される(FIG.5に示される矢印R26参照)。更に、そのデータD2がページバッファ2から転送先ブロックBnの第27ページQ26へ書き込まれる。次に、転送元ブロックB0の第2ページP1のデータD3)が同様に、ページバッファ2経由で転送先ブロックBnの第28ページQ27へ転送される。以上のようなページバッファ2経由のデータ転送が6回繰り返される。その結果、転送元ブロックB0の先頭ページP0から書き込み先ページP6の一つ前のページ(第6ページ)P5までのデータD2、D3、…、D7が転送先ブロックBnの第27ページQ26から最終ページQ31までのデータ領域DAへ転送される。
【0039】
転送開始ページの物理ページ番号は書き込み先ページの物理ページ番号と書き込み対象データの格納領域のページ数との和に等しい。ここで、その和が一ブロック当たりの総ページ数(=32)以上であるとき、その和からその総ページ数を除いた値が転送開始ページの物理ページ番号として同定される。メモリ制御部6はその場合、転送開始ページから書き込み先ページの一つ前のページまでのデータを転送先ブロックBnへ、FIG.5に示されるデータ転送と同様に転送する。
【0040】
メモリ制御部6による上記のデータ転送の結果、転送先ブロックBnでは転送元ブロックB0と比べ、論理ページ番号が「8」〜「12」であるページのデータD8〜D12が新たなデータDN8〜DN12へ書き換えられる(FIG.5参照)。更に、論理的なページ順序が巡回的に変化し、ページオフセットが「2」から「8」へ変更される。
【0041】
メモリ制御部6はブロック転送の完了時、転送元ブロックB0のデータを無効化し又は一括消去する。そのとき、アドレス変換部4は論理アドレス/物理アドレス変換表Lを更新し、転送元ブロックB0の物理アドレスに対応していた論理アドレスを転送先ブロックBnの物理アドレスへ対応させる。アドレス変換部4は更に、転送元ブロックB0がデータ消去済ブロックであることを示すように、アドレス変換表記憶部5に記憶されるフラグFを再設定する。こうして、フラッシュメモリ1の一ブロック内でのページの書き換え及び追記が実現される。
【0042】
メモリ制御部6は上記の通り、ページバッファ2から転送先ブロックBnへのデータ書き込みをその転送先ブロックBnの先頭ページQ0から開始し、最終ページQ31で終了する。この書き込み順序は従来の装置と共通である。従って、ページバッファから転送先ブロックへのデータ書き込みについては、従来の装置と共通の構成が利用されても良い。
【0043】
実施例による半導体メモリ装置10でのデータ書き込み方法は以下のフローに従い実行される。FIG.6は、半導体メモリ装置10によるデータ書き込み方法のフローチャートである。
<ステップS1>
ホストHからデータ書き込み命令が送出される。ホストインタフェース3はそのデータ書き込み命令を受信し、書き込み先ページの論理アドレスを解読する。ホストインタフェース3は更にその論理アドレスをアドレス変換部4へ送出する。
<ステップS2>
アドレス変換部4がホストインタフェース3から論理アドレスを受け取る。アドレス変換部4はそのとき論理アドレス/物理アドレス変換表Lを参照し、その論理アドレスを転送元ブロックB0の物理アドレスと書き込み先ページの論理ページ番号q(0≦q≦31)との対へ変換する。アドレス変換部4は更にその対をメモリ制御部6へ送出する。
【0044】
<ステップS3>
メモリ制御部6はアドレス変換表記憶部5にアクセスし、フラグFに基づきフラッシュメモリ1内のデータ消去済ブロックの一つBnを転送先ブロックとして選択する。ここで、転送元ブロックB0がデータ消去済ブロックであるとき、転送元ブロックB0そのものを転送先ブロックBnとしても良い。その場合、以下のステップS8とS9とはスキップされる。
<ステップS4>
メモリ制御部6が、アドレス変換部4から入力される論理ページ番号qを転送先ブロックBnの先頭ページQ0の冗長領域RAへ書き込む(FIG.3参照)。
<ステップS5>
メモリ制御部6は転送元ブロックB0の先頭ページP0の冗長領域RAから、転送元ブロックB0のページオフセットp(0≦p≦31)を読み出す。
<ステップS6>
メモリ制御部6は書き込み先ページの論理ページ番号qと転送元ブロックB0のページオフセットpとの差を求める。その差q−pが負であるとき(q−p<0)、その差q−pに一ブロック当たりの総ページ数(=32)を加算する。こうして得られた0以上31以下の整数値q−p又は32+q−pが書き込み先ページの物理ページ番号rとして同定される:r=q−p又はr=32+q−p。
【0045】
<ステップS7>
ホストインタフェース3がホストHから書き込み対象データDN(q)、DN(q+1)、…を受信する(符号DNの横の括弧内の符号は論理ページ番号を示す)。ホストインタフェース3はその書き込み対象データDN(q)、DN(q+1)、…を一ページずつ、ページバッファ2へ転送する。ホストインタフェース3は更にその転送をメモリ制御部6へ通知する。メモリ制御部6はホストインタフェース3からの通知ごとに、ページバッファ2のデータDN(q)、DN(q+1)、…を転送先ブロックBnの先頭ページQ0から順に転送する。FIG.7はその転送のフローチャートである。
サブステップSS71:メモリ制御部6は、ホストインタフェース3から上記の転送を最初に通知されるとき、第一の整数値変数kを0に初期化する。
サブステップSS72:メモリ制御部6はページバッファ2のデータを転送先ブロックBnの第(k+1)ページQ(k)(符号Qの横の括弧内の符号は物理ページ番号を示す)のデータ領域DAへ転送する(FIG.3参照)。
サブステップSS73:メモリ制御部6は第一の整数値変数kを1だけ増やす。こうして、第一の整数値変数kは書き込み対象データDN(q)、DN(q+1)、…のページバッファ2から転送先ブロックBnへの転送回数を示す。
サブステップSS74:ホストHは書き込み対象データDN(q)〜DN(q+m−1)の送出を終えるとき、その送出終了を示す所定のコマンドを発行する。ホストインタフェース3はそのコマンドを検出する。メモリ制御部6はホストインタフェース3へアクセスし、そのコマンドが検出されたか否かをチェックする。そのコマンドが検出されないとき、処理がサブステップSS72から反復される。そのコマンドが検出されるとき、処理がサブステップSS75へ進む。
サブステップSS75:メモリ制御部6はそのコマンドの検出時、第一の整数値変数kを書き込み対象データDN(q)〜DN(q+m−1)の格納領域Q0〜Q(m−1)のページ数m(1≦m≦32−q)として同定する。
【0046】
<ステップS8>
メモリ制御部6は転送元ブロックB0から転送先ブロックBnへのデータ転送(ブロック転送)を開始する。FIG.8はそのブロック転送のフローチャートである。
サブステップSS81:メモリ制御部6は第二の整数値変数iを0に初期化する。
サブステップSS82:メモリ制御部6は、書き込み先ページの物理ページ番号r(ステップS6参照)、書き込み対象データDN(q)〜DN(q+m−1)の格納領域Q0〜Q(m−1)のページ数m、及び第二の整数値変数iを加算する。その和r+m+iが32未満であるとき(r+m+i<32)、処理はサブステップSS83へ進む。和r+m+iが32以上であるとき(r+m+i≧32)、処理はサブステップSS85へ分岐する。
サブステップSS83:メモリ制御部6は、転送元ブロックB0の第(r+m+i+1)ページP(r+m+i)に記憶されるデータD(q+m+i)を転送先ブロックBnの第(m+i+1)ページQ(m+i)へ、ページバッファ2経由で転送する(FIG.4参照)。ここで、符号P及びDの横の括弧内の符号はそれぞれ物理ページ番号と論理ページ番号とを示す。
サブステップSS84:メモリ制御部6は第二の整数値変数iを1だけ増やす。その後、処理はサブステップSS82から繰り返される。
サブステップSS82〜SS84のループにより、サブステップSS83が第二の整数値変数i=0、1、2、…、31−(r+m)のそれぞれについて反復される。その結果、転送元ブロックB0の第(r+m+1)ページP(r+m)から第32ページ(最終ページ)P31までのデータD(q+m)、D(q+m+1)、…、D(p−1)が、転送先ブロックBnの第(m+1)ページQmから第(32−r)ページQ(31−r)までのデータ領域DAへ転送される(FIG.4参照)。
【0047】
サブステップSS85:メモリ制御部6は第三の整数値変数jの初期値をr+m+iから32を除いた値と等しく設定する:j=r+m+i−32。ここで、r+m<32では第三の整数値変数jの初期値は0に等しい。r+m≧32では第三の整数値変数jの初期値はr+m−32=q+m−pであり、0以上である。
サブステップSS86:メモリ制御部6は第三の整数値変数jを書き込み先ページの物理ページ番号rと比較する。第三の整数値変数jが書き込み先ページの物理ページ番号r未満のとき(j<r)、処理はサブステップSS87へ進む。第三の整数値変数jが書き込み先ページの物理ページ番号rに等しいとき(j=r)、処理はステップS9へ分岐する。
サブステップSS87:メモリ制御部6は、転送元ブロックB0の第(j+1)ページP(j)のデータD(p+j)を転送先ブロックBnの第(33−r+j)ページQ(32−r+j)へ、ページバッファ2経由で転送する(FIG.5参照)。
サブステップSS88:メモリ制御部6は第三の整数値変数jを1だけ増やす。その後、処理はサブステップSS86から繰り返される。
サブステップSS86〜SS88のループにより、サブステップSS87が第三の整数値変数j=0、1、2、…、r−1、又はj=q+m−p、…、p−1のそれぞれについて反復される。その結果、転送元ブロックB0の第1ページP0から第rページP(r−1)までのデータD(p)、…、D(q−1)が、転送先ブロックBnの第(33−r)ページQ(32−r)から第32ページ(最終ページ)Q31までのデータ領域DAへ転送される(FIG.5参照)。又は、転送元ブロックB0の第(q+m−p+1)ページP(q+m−p)から第rページP(r−1)までのデータD(q+m)、…、D31、D0、…、D(q−1)が、転送先ブロックBnの第(m+1)ページQmから第32ページ(最終ページ)Q31までのデータ領域DAへ転送される。
【0048】
<ステップS9>
メモリ制御部6は転送元ブロックB0のデータを一括消去し、又は無効化する。アドレス変換部4はそのとき、論理アドレス/物理アドレス変換表Lを更新し、転送元ブロックB0の物理アドレスに対応する論理アドレスを転送先ブロックBnの物理アドレスに対応させる。アドレス変換部4は更に、転送元ブロックB0がデータ消去済ブロックであることを示すように、アドレス変換表記憶部5に記憶されるフラグFを再設定する。
【0049】
以上の通り、実施例による半導体メモリ装置10は、フラッシュメモリ1の一ブロック内のページの書き換え又は追記時、元のブロックのデータの退避場所としてページバッファ2を兼用する。それにより、従来の装置とは異なり、ページバッファ2とは別の退避バッファを持たない。その結果、従来の装置よりRAMのサイズが小さい。それ故、装置全体のサイズを小さく抑え得る。
【0050】
発明をある程度の詳細さをもって好適な形態について説明したが、この好適形態の現開示内容は構成の細部において変化してしかるべきものであり、各要素の組合せや順序の変化は請求された発明の範囲及び思想を逸脱することなく実現し得るものである。
【産業上の利用可能性】
【0051】
本発明による半導体メモリ装置はページバッファと退避バッファとの統合により小型化を実現する。それ故、本発明は産業上の利用可能性が極めて高い。
【図面の簡単な説明】
【0052】
【FIG.1】 本発明の実施例による半導体メモリ装置10を示すブロック図である。
【FIG.2】 本発明の実施例によるフラッシュメモリ1内のセルアレイの構成の概略を示す模式図である。
【FIG.3】 本発明の実施例による半導体メモリ装置10について、ホストHからページバッファ2へ転送される書き込み対象データDN8〜DN12に対しメモリ制御部6が行う、ページバッファ2からフラッシュメモリ1への転送処理を示す図である。
【FIG.4】 本発明の実施例による半導体メモリ装置10について、メモリ制御部6がFIG.3に示されるデータ転送処理に続けて行う、転送元ブロックB0から転送先ブロックBnへのデータ転送処理の前半を示す図である。
【FIG.5】 本発明の実施例による半導体メモリ装置10について、メモリ制御部6がFIG.3に示されるデータ転送処理に続けて行う、転送元ブロックB0から転送先ブロックBnへのデータ転送処理の後半を示す図である。
【FIG.6】 本発明の実施例による半導体メモリ装置10のデータ書き込み方法のフローチャートである。
【FIG.7】 本発明の実施例による半導体メモリ装置10のデータ書き込み方法について、ページバッファ2から転送先ブロックBnへの書き込み対象データDN(q)〜DN(q+m−1)の転送(ステップS7)のフローチャートである。
【FIG.8】 本発明の実施例による半導体メモリ装置10のデータ書き込み方法について、転送元ブロックB0から転送先ブロックBnへのデータ転送(ステップS8)のフローチャートである。
【FIG.9】 従来の半導体メモリ装置によるフラッシュメモリ1の一ブロックでのページの書き換え又は追記を説明するための図である。
【0053】
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
Claims (6)
- (A) 複数のページをそれぞれ含む複数のブロックと、前記ブロックそれぞれのページオフセットを記憶するページオフセット記憶領域とを有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ;
(B) 前記ページ一つ当たりのデータ記憶容量と実質的に等量のデータを一時記憶するためのページバッファ;
(C) 書き込み先ページを指定する論理アドレス、をホストから受信し、その論理アドレスを前記書き込み先ページの属する前記ブロック(以下、転送元ブロックという)の物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するためのアドレス変換部;及び、
(D) (a) 前記転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号とを読み込み、
(b) 前記データ消去済ブロックの一つを転送先ブロックとして選択し、
(c) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとして前記ページオフセット記憶領域へ書き込み、
(d) 前記ページオフセット記憶領域から前記転送元ブロックのページオフセットを読み出し、
(e) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を求め、
(f) 前記ホストから前記ページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込み、
(g) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、
(h) 前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送する、
ためのメモリ制御部;
を具備する半導体メモリ装置。 - (A) 複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ;
(B) 前記ブロックそれぞれのページオフセットを記憶するためのページオフセット記憶部;
(C) 前記ページ一つ当たりのデータ記憶容量と実質的に等量のデータを一時記憶するためのページバッファ;
(D) 書き込み先ページを指定する論理アドレス、をホストから受信し、その論理アドレスを転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するためのアドレス変換部;及び、
(E) (a) 前記転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号とを読み込み、
(b) 前記データ消去済ブロックの一つを転送先ブロックとして選択し、
(c) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとして前記ページオフセット記憶部へ書き込み、
(d) 前記ページオフセット記憶部から前記転送元ブロックのページオフセットを読み出し、
(e) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を求め、
(f) 前記ホストから前記ページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込み、
(g) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、
(h) 前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送する、
ためのメモリ制御部;
を具備する半導体メモリ装置。 - (A) 前記半導体メモリ装置が、
(a) 前記ホストから送出される、前記書き込み先ページの論理アドレスと前記書き込み対象データと、を受信するためのホストインタフェース;及び、
(b) 前記フラッシュメモリ内の前記ブロックそれぞれについて論理アドレスと物理アドレスとの対応を示す論理アドレス/物理アドレス変換表、及び、前記ブロックそれぞれについて前記データ消去済ブロックであるか否かを示すためのフラグ、を記憶するアドレス変換表記憶部;を更に具備し;
(B) 前記メモリ制御部が、前記ページ領域のページ数を数え、そのページ数が所定数に達するとき又は前記ホストから前記書き込み対象データの送出の終了を通知されるとき、前記転送元ブロックから前記転送先ブロックへのデータ転送を開始する;
請求項1又は2のいずれかに記載の半導体メモリ装置。 - 複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ、へデータを書き込む方法であり;
(A) 書き込み先ページを指定する論理アドレス、をホストから受信するステップ;
(B) 前記論理アドレスを転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するステップ;
(C) 前記データ消去済ブロックの一つを転送先ブロックとして選択するステップ;
(D) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとして前記フラッシュメモリ内のページオフセット記憶領域へ書き込むステップ;
(E) 前記ページオフセット記憶領域から前記転送元ブロックのページオフセットを読み出すステップ;
(F) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を決定するステップ;
(G) 前記ホストからページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込むステップ;
(H) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送するステップ;
を有するフラッシュメモリへのデータ書き込み方法。 - 複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ、へデータを書き込む方法であり;
(A) 書き込み先ページを指定する論理アドレス、をホストから受信するステップ;
(B) 前記論理アドレスを転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するステップ;
(C) 前記データ消去済ブロックの一つを転送先ブロックとして選択するステップ;
(D) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとしてページオフセット記憶部へ書き込むステップ;
(E) 前記ページオフセット記憶部から前記転送元ブロックのページオフセットを読み出すステップ;
(F) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を決定するステップ;
(G) 前記ホストからページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込むステップ;
(H) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送するステップ;
を有するフラッシュメモリへのデータ書き込み方法。 - 前記ページ領域のページ数を数え、そのページ数が所定数に達するとき又は前記ホストから前記書き込み対象データの送出の終了を通知されるとき、前記転送元ブロックから前記転送先ブロックへのデータ転送を開始するステップ、を更に有する、請求項4又は5のいずれかに記載のフラッシュメモリへのデータ書き込み方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002251194 | 2002-08-29 | ||
JP2002251194 | 2002-08-29 | ||
PCT/JP2003/010718 WO2004021191A1 (ja) | 2002-08-29 | 2003-08-25 | 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004021191A1 true JPWO2004021191A1 (ja) | 2005-12-22 |
JP4358111B2 JP4358111B2 (ja) | 2009-11-04 |
Family
ID=31972668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004532699A Expired - Fee Related JP4358111B2 (ja) | 2002-08-29 | 2003-08-25 | 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | USRE42648E1 (ja) |
EP (1) | EP1533702A4 (ja) |
JP (1) | JP4358111B2 (ja) |
KR (1) | KR100944054B1 (ja) |
CN (2) | CN100347685C (ja) |
CA (1) | CA2461446A1 (ja) |
TW (1) | TWI260535B (ja) |
WO (1) | WO2004021191A1 (ja) |
Families Citing this family (274)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377120C (zh) * | 2002-10-02 | 2008-03-26 | 松下电器产业株式会社 | 非易失性存储器装置的控制方法 |
JP4253272B2 (ja) | 2004-05-27 | 2009-04-08 | 株式会社東芝 | メモリカード、半導体装置、及び半導体メモリの制御方法 |
US7383414B2 (en) * | 2004-05-28 | 2008-06-03 | Oracle International Corporation | Method and apparatus for memory-mapped input/output |
JP3969494B2 (ja) * | 2004-08-31 | 2007-09-05 | 三菱電機株式会社 | 車載電子制御装置 |
JP2006085380A (ja) * | 2004-09-15 | 2006-03-30 | Toshiba Corp | ファイルストレージデバイス、プログラム、及び不揮発性半導体メモリの書込方法 |
US7409623B2 (en) * | 2004-11-04 | 2008-08-05 | Sigmatel, Inc. | System and method of reading non-volatile computer memory |
KR100706242B1 (ko) * | 2005-02-07 | 2007-04-11 | 삼성전자주식회사 | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 |
JP5130646B2 (ja) * | 2005-06-06 | 2013-01-30 | ソニー株式会社 | 記憶装置 |
JP4688584B2 (ja) * | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | ストレージ装置 |
KR101197556B1 (ko) * | 2006-01-09 | 2012-11-09 | 삼성전자주식회사 | 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드 |
JP2007199905A (ja) * | 2006-01-25 | 2007-08-09 | Toshiba Corp | 半導体記憶装置の制御方法 |
EP2003569B1 (en) | 2006-03-13 | 2010-06-02 | Panasonic Corporation | Flash memory controller |
US7996598B2 (en) * | 2006-03-14 | 2011-08-09 | Stmicroelectronics Pvt. Ltd. | Memory management module |
JP2008009527A (ja) * | 2006-06-27 | 2008-01-17 | Toshiba Corp | メモリシステム |
KR100816148B1 (ko) * | 2006-09-29 | 2008-03-21 | 주식회사 하이닉스반도체 | 플래시 메모리 소자 및 이의 독출 방법 |
CN101105774B (zh) * | 2006-10-26 | 2010-08-11 | 福昭科技(深圳)有限公司 | 闪存记忆体在进行数据存取时的逻辑与物理地址转换方法 |
TWI326028B (en) | 2006-11-20 | 2010-06-11 | Silicon Motion Inc | Method for flash memory data management |
CN101196851B (zh) * | 2006-12-05 | 2011-09-07 | 慧荣科技股份有限公司 | 闪存的数据管理方法 |
EP1988548B1 (fr) * | 2007-05-02 | 2010-08-25 | Stmicroelectronics Sa | Mémoire non volatile à écriture rapide |
US7962683B2 (en) * | 2007-08-15 | 2011-06-14 | Silicon Motion, Inc. | Flash memory, and method for operating a flash memory |
US20090144458A1 (en) * | 2007-12-03 | 2009-06-04 | Broadcom Corporation | Dongle device and host device with millimeter wave host inerface and method for use therewith |
CN101256564B (zh) * | 2007-12-25 | 2010-06-02 | 深圳市同洲电子股份有限公司 | 一种循环文件的操作方法 |
US20090259806A1 (en) * | 2008-04-15 | 2009-10-15 | Adtron, Inc. | Flash management using bad page tracking and high defect flash memory |
US8028123B2 (en) * | 2008-04-15 | 2011-09-27 | SMART Modular Technologies (AZ) , Inc. | Circular wear leveling |
WO2009129339A2 (en) * | 2008-04-15 | 2009-10-22 | Adtron, Inc. | Circular wear leveling |
US8185778B2 (en) * | 2008-04-15 | 2012-05-22 | SMART Storage Systems, Inc. | Flash management using separate metadata storage |
US8180954B2 (en) * | 2008-04-15 | 2012-05-15 | SMART Storage Systems, Inc. | Flash management using logical page size |
US8566505B2 (en) * | 2008-04-15 | 2013-10-22 | SMART Storage Systems, Inc. | Flash management using sequential techniques |
US8555086B2 (en) * | 2008-06-30 | 2013-10-08 | Intel Corporation | Encrypting data on a non-volatile memory |
KR101038167B1 (ko) * | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
CN101676885B (zh) * | 2008-09-17 | 2013-08-21 | 群联电子股份有限公司 | 数据管理方法及其存储装置与其控制器 |
US8566562B2 (en) * | 2008-10-03 | 2013-10-22 | Skymedi Corporation | Method for sequentially writing data with an offset to a non-volatile memory |
US8296503B2 (en) * | 2009-05-26 | 2012-10-23 | Mediatek Inc. | Data updating and recovering methods for a non-volatile memory array |
TWI426384B (zh) * | 2009-09-10 | 2014-02-11 | Robustflash Technologies Ltd | 資料寫入方法與系統 |
CN101673243B (zh) * | 2009-09-29 | 2011-09-07 | 威盛电子股份有限公司 | 数据储存装置与方法 |
TWI437569B (zh) * | 2009-10-16 | 2014-05-11 | Silicon Motion Inc | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
TWI416525B (zh) * | 2009-12-15 | 2013-11-21 | Asolid Technology Co Ltd | 非揮發性記憶體裝置及其損耗平均方法 |
US8381018B2 (en) | 2010-05-21 | 2013-02-19 | Mediatek Inc. | Method for data recovery for flash devices |
US8909851B2 (en) | 2011-02-08 | 2014-12-09 | SMART Storage Systems, Inc. | Storage control system with change logging mechanism and method of operation thereof |
US8935466B2 (en) | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US8797799B2 (en) * | 2012-01-05 | 2014-08-05 | Conversant Intellectual Property Management Inc. | Device selection schemes in multi chip package NAND flash memory system |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9298252B2 (en) | 2012-04-17 | 2016-03-29 | SMART Storage Systems, Inc. | Storage control system with power down mechanism and method of operation thereof |
TWI486766B (zh) * | 2012-05-11 | 2015-06-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
CN102722456B (zh) * | 2012-05-30 | 2015-02-04 | 深圳市江波龙电子有限公司 | 闪存存储设备的数据写入方法和闪存存储设备 |
US8949689B2 (en) | 2012-06-11 | 2015-02-03 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
CN103019616B (zh) | 2012-11-23 | 2015-11-25 | 记忆科技(深圳)有限公司 | 一种固态硬盘及闪存芯片的充放电控制方法 |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9470720B2 (en) | 2013-03-08 | 2016-10-18 | Sandisk Technologies Llc | Test system with localized heating and method of manufacture thereof |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9313874B2 (en) | 2013-06-19 | 2016-04-12 | SMART Storage Systems, Inc. | Electronic system with heat extraction and method of manufacture thereof |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US11630585B1 (en) | 2016-08-25 | 2023-04-18 | Pure Storage, Inc. | Processing evacuation events in a storage array that includes a plurality of storage devices |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
CN103778964B (zh) * | 2013-12-30 | 2016-08-17 | 上海晨思电子科技有限公司 | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 |
JP2015138272A (ja) * | 2014-01-20 | 2015-07-30 | ソニー株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US9613715B2 (en) | 2014-06-16 | 2017-04-04 | Sandisk Technologies Llc | Low-test memory stack for non-volatile storage |
US8976609B1 (en) | 2014-06-16 | 2015-03-10 | Sandisk Enterprise Ip Llc | Low-test memory stack for non-volatile storage |
CN104166627B (zh) * | 2014-09-02 | 2017-12-08 | 科大智能电气技术有限公司 | 一种基于单片机的nand‑flash写操作方法 |
US9716755B2 (en) | 2015-05-26 | 2017-07-25 | Pure Storage, Inc. | Providing cloud storage array services by a local storage array in a data center |
US11102298B1 (en) | 2015-05-26 | 2021-08-24 | Pure Storage, Inc. | Locally providing cloud storage services for fleet management |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
US9300660B1 (en) | 2015-05-29 | 2016-03-29 | Pure Storage, Inc. | Providing authorization and authentication in a cloud for a user of a storage array |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9444822B1 (en) | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9588691B2 (en) | 2015-06-10 | 2017-03-07 | Pure Storage, Inc. | Dynamically managing control information in a storage device |
US9594512B1 (en) | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
US10310740B2 (en) * | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US9547441B1 (en) * | 2015-06-23 | 2017-01-17 | Pure Storage, Inc. | Exposing a geometry of a storage device |
US10296236B2 (en) | 2015-07-01 | 2019-05-21 | Pure Storage, Inc. | Offloading device management responsibilities from a storage device in an array of storage devices |
US9892071B2 (en) | 2015-08-03 | 2018-02-13 | Pure Storage, Inc. | Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array |
US9851762B1 (en) | 2015-08-06 | 2017-12-26 | Pure Storage, Inc. | Compliant printed circuit board (‘PCB’) within an enclosure |
US11294588B1 (en) | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
US10198194B2 (en) | 2015-08-24 | 2019-02-05 | Pure Storage, Inc. | Placing data within a storage device of a flash array |
US9384082B1 (en) | 2015-10-23 | 2016-07-05 | Pure Storage, Inc. | Proactively providing corrective measures for storage arrays |
US11360844B1 (en) | 2015-10-23 | 2022-06-14 | Pure Storage, Inc. | Recovery of a container storage provider |
US10514978B1 (en) | 2015-10-23 | 2019-12-24 | Pure Storage, Inc. | Automatic deployment of corrective measures for storage arrays |
US10284232B2 (en) | 2015-10-28 | 2019-05-07 | Pure Storage, Inc. | Dynamic error processing in a storage device |
US10374868B2 (en) | 2015-10-29 | 2019-08-06 | Pure Storage, Inc. | Distributed command processing in a flash storage system |
US9740414B2 (en) | 2015-10-29 | 2017-08-22 | Pure Storage, Inc. | Optimizing copy operations |
US10353777B2 (en) | 2015-10-30 | 2019-07-16 | Pure Storage, Inc. | Ensuring crash-safe forward progress of a system configuration update |
US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US10326836B2 (en) | 2015-12-08 | 2019-06-18 | Pure Storage, Inc. | Partially replicating a snapshot between storage systems |
US11616834B2 (en) | 2015-12-08 | 2023-03-28 | Pure Storage, Inc. | Efficient replication of a dataset to the cloud |
US11347697B1 (en) | 2015-12-15 | 2022-05-31 | Pure Storage, Inc. | Proactively optimizing a storage system |
US10162835B2 (en) | 2015-12-15 | 2018-12-25 | Pure Storage, Inc. | Proactive management of a plurality of storage arrays in a multi-array system |
US10346043B2 (en) | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
US9886314B2 (en) | 2016-01-28 | 2018-02-06 | Pure Storage, Inc. | Placing workloads in a multi-array system |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US9760297B2 (en) | 2016-02-12 | 2017-09-12 | Pure Storage, Inc. | Managing input/output (‘I/O’) queues in a data storage system |
US9959043B2 (en) | 2016-03-16 | 2018-05-01 | Pure Storage, Inc. | Performing a non-disruptive upgrade of data in a storage system |
US9841921B2 (en) | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
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 |
US9811264B1 (en) | 2016-04-28 | 2017-11-07 | Pure Storage, Inc. | Deploying client-specific applications in a storage system utilizing redundant system resources |
US10303390B1 (en) | 2016-05-02 | 2019-05-28 | Pure Storage, Inc. | Resolving fingerprint collisions in flash storage system |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US9507532B1 (en) | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US10452310B1 (en) | 2016-07-13 | 2019-10-22 | Pure Storage, Inc. | Validating cabling for storage component admission to a storage array |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US10459652B2 (en) | 2016-07-27 | 2019-10-29 | Pure Storage, Inc. | Evacuating blades in a storage array that includes a plurality of blades |
US10474363B1 (en) | 2016-07-29 | 2019-11-12 | Pure Storage, Inc. | Space reporting in a storage system |
US10671439B1 (en) | 2016-09-07 | 2020-06-02 | Pure Storage, Inc. | Workload planning with quality-of-service (‘QOS’) integration |
US11531577B1 (en) | 2016-09-07 | 2022-12-20 | Pure Storage, Inc. | Temporarily limiting access to a storage device |
US10908966B1 (en) | 2016-09-07 | 2021-02-02 | Pure Storage, Inc. | Adapting target service times in a storage system |
US10331588B2 (en) | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
US11481261B1 (en) | 2016-09-07 | 2022-10-25 | Pure Storage, Inc. | Preventing extended latency in a storage system |
US10146585B2 (en) | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
US10235229B1 (en) | 2016-09-07 | 2019-03-19 | Pure Storage, Inc. | Rehabilitating storage devices in a storage array that includes a plurality of storage devices |
US11960348B2 (en) | 2016-09-07 | 2024-04-16 | Pure Storage, Inc. | Cloud-based monitoring of hardware components in a fleet of storage systems |
US10007459B2 (en) | 2016-10-20 | 2018-06-26 | Pure Storage, Inc. | Performance tuning in a storage system that includes one or more storage devices |
US11379132B1 (en) | 2016-10-20 | 2022-07-05 | Pure Storage, Inc. | Correlating medical sensor data |
US11620075B2 (en) | 2016-11-22 | 2023-04-04 | Pure Storage, Inc. | Providing application aware storage |
US10162566B2 (en) | 2016-11-22 | 2018-12-25 | Pure Storage, Inc. | Accumulating application-level statistics in a storage system |
US10198205B1 (en) | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
US11461273B1 (en) | 2016-12-20 | 2022-10-04 | Pure Storage, Inc. | Modifying storage distribution in a storage system that includes one or more storage devices |
US10489307B2 (en) | 2017-01-05 | 2019-11-26 | Pure Storage, Inc. | Periodically re-encrypting user data stored on a storage device |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US10503700B1 (en) | 2017-01-19 | 2019-12-10 | Pure Storage, Inc. | On-demand content filtering of snapshots within a storage system |
US11340800B1 (en) | 2017-01-19 | 2022-05-24 | Pure Storage, Inc. | Content masking in a storage system |
US11163624B2 (en) | 2017-01-27 | 2021-11-02 | Pure Storage, Inc. | Dynamically adjusting an amount of log data generated for a storage system |
US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US11169727B1 (en) | 2017-03-10 | 2021-11-09 | Pure Storage, Inc. | Synchronous replication between storage systems with virtualized storage |
US11941279B2 (en) | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
US10503427B2 (en) | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US11675520B2 (en) | 2017-03-10 | 2023-06-13 | Pure Storage, Inc. | Application replication among storage systems synchronously replicating a dataset |
US11803453B1 (en) | 2017-03-10 | 2023-10-31 | Pure Storage, Inc. | Using host connectivity states to avoid queuing I/O requests |
US11089105B1 (en) | 2017-12-14 | 2021-08-10 | Pure Storage, Inc. | Synchronously replicating datasets in cloud-based storage systems |
US10454810B1 (en) | 2017-03-10 | 2019-10-22 | Pure Storage, Inc. | Managing host definitions across a plurality of storage systems |
US11442825B2 (en) | 2017-03-10 | 2022-09-13 | Pure Storage, Inc. | Establishing a synchronous replication relationship between two or more storage systems |
US9910618B1 (en) | 2017-04-10 | 2018-03-06 | Pure Storage, Inc. | Migrating applications executing on a storage system |
US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
US11868629B1 (en) | 2017-05-05 | 2024-01-09 | Pure Storage, Inc. | Storage system sizing service |
US11016824B1 (en) | 2017-06-12 | 2021-05-25 | Pure Storage, Inc. | Event identification with out-of-order reporting in a cloud-based environment |
US10976962B2 (en) | 2018-03-15 | 2021-04-13 | Pure Storage, Inc. | Servicing I/O operations in a cloud-based storage system |
US10884636B1 (en) | 2017-06-12 | 2021-01-05 | Pure Storage, Inc. | Presenting workload performance in a storage system |
US11422731B1 (en) | 2017-06-12 | 2022-08-23 | Pure Storage, Inc. | Metadata-based replication of a dataset |
US10417092B2 (en) | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
EP3612922A1 (en) | 2017-06-12 | 2020-02-26 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
US11210133B1 (en) | 2017-06-12 | 2021-12-28 | Pure Storage, Inc. | Workload mobility between disparate execution environments |
US11340939B1 (en) | 2017-06-12 | 2022-05-24 | Pure Storage, Inc. | Application-aware analytics for storage systems |
US10552090B2 (en) | 2017-09-07 | 2020-02-04 | Pure Storage, Inc. | Solid state drives with multiple types of addressable memory |
US10853148B1 (en) | 2017-06-12 | 2020-12-01 | Pure Storage, Inc. | Migrating workloads between a plurality of execution environments |
US10613791B2 (en) | 2017-06-12 | 2020-04-07 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
US11593036B2 (en) | 2017-06-12 | 2023-02-28 | Pure Storage, Inc. | Staging data within a unified storage element |
US11561714B1 (en) | 2017-07-05 | 2023-01-24 | Pure Storage, Inc. | Storage efficiency driven migration |
US11477280B1 (en) | 2017-07-26 | 2022-10-18 | Pure Storage, Inc. | Integrating cloud storage services |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10360214B2 (en) | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
US11455168B1 (en) | 2017-10-19 | 2022-09-27 | Pure Storage, Inc. | Batch building for deep learning training workloads |
US10671435B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Data transformation caching in an artificial intelligence infrastructure |
US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
US11494692B1 (en) | 2018-03-26 | 2022-11-08 | Pure Storage, Inc. | Hyperscale artificial intelligence and machine learning infrastructure |
US10452444B1 (en) | 2017-10-19 | 2019-10-22 | Pure Storage, Inc. | Storage system with compute resources and shared storage resources |
US10509581B1 (en) | 2017-11-01 | 2019-12-17 | Pure Storage, Inc. | Maintaining write consistency in a multi-threaded storage system |
US10484174B1 (en) | 2017-11-01 | 2019-11-19 | Pure Storage, Inc. | Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices |
US10671494B1 (en) | 2017-11-01 | 2020-06-02 | Pure Storage, Inc. | Consistent selection of replicated datasets during storage system recovery |
US10817392B1 (en) | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
US10467107B1 (en) | 2017-11-01 | 2019-11-05 | Pure Storage, Inc. | Maintaining metadata resiliency among storage device failures |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10936238B2 (en) | 2017-11-28 | 2021-03-02 | Pure Storage, Inc. | Hybrid data tiering |
US10990282B1 (en) | 2017-11-28 | 2021-04-27 | Pure Storage, Inc. | Hybrid data tiering with cloud storage |
US10795598B1 (en) | 2017-12-07 | 2020-10-06 | Pure Storage, Inc. | Volume migration for storage systems synchronously replicating a dataset |
US11036677B1 (en) | 2017-12-14 | 2021-06-15 | Pure Storage, Inc. | Replicated data integrity |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10992533B1 (en) | 2018-01-30 | 2021-04-27 | Pure Storage, Inc. | Policy based path management |
US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
US11972134B2 (en) | 2018-03-05 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US10296258B1 (en) | 2018-03-09 | 2019-05-21 | Pure Storage, Inc. | Offloading data storage to a decentralized storage network |
US11288138B1 (en) | 2018-03-15 | 2022-03-29 | Pure Storage, Inc. | Recovery from a system fault in a cloud-based storage system |
US11210009B1 (en) | 2018-03-15 | 2021-12-28 | Pure Storage, Inc. | Staging data in a cloud-based storage system |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US10924548B1 (en) | 2018-03-15 | 2021-02-16 | Pure Storage, Inc. | Symmetric storage using a cloud-based storage system |
US10917471B1 (en) | 2018-03-15 | 2021-02-09 | Pure Storage, Inc. | Active membership in a cloud-based storage system |
US11095706B1 (en) | 2018-03-21 | 2021-08-17 | Pure Storage, Inc. | Secure cloud-based storage system management |
US11171950B1 (en) | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
US10838833B1 (en) | 2018-03-26 | 2020-11-17 | Pure Storage, Inc. | Providing for high availability in a data analytics pipeline without replicas |
US11436344B1 (en) | 2018-04-24 | 2022-09-06 | Pure Storage, Inc. | Secure encryption in deduplication cluster |
US11392553B1 (en) | 2018-04-24 | 2022-07-19 | Pure Storage, Inc. | Remote data management |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US11455409B2 (en) | 2018-05-21 | 2022-09-27 | Pure Storage, Inc. | Storage layer data obfuscation |
US11128578B2 (en) | 2018-05-21 | 2021-09-21 | Pure Storage, Inc. | Switching between mediator services for a storage system |
US11675503B1 (en) | 2018-05-21 | 2023-06-13 | Pure Storage, Inc. | Role-based data access |
US10871922B2 (en) | 2018-05-22 | 2020-12-22 | Pure Storage, Inc. | Integrated storage management between storage systems and container orchestrators |
US11403000B1 (en) | 2018-07-20 | 2022-08-02 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11416298B1 (en) | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
US11146564B1 (en) | 2018-07-24 | 2021-10-12 | Pure Storage, Inc. | Login authentication in a cloud storage platform |
US11954238B1 (en) | 2018-07-24 | 2024-04-09 | Pure Storage, Inc. | Role-based access control for a storage system |
US11632360B1 (en) | 2018-07-24 | 2023-04-18 | Pure Storage, Inc. | Remote access to a storage device |
WO2020039927A1 (ja) * | 2018-08-21 | 2020-02-27 | ソニー株式会社 | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム |
US11436151B2 (en) * | 2018-08-29 | 2022-09-06 | Seagate Technology Llc | Semi-sequential drive I/O performance |
US11860820B1 (en) | 2018-09-11 | 2024-01-02 | Pure Storage, Inc. | Processing data through a storage system in a data pipeline |
US10671302B1 (en) | 2018-10-26 | 2020-06-02 | Pure Storage, Inc. | Applying a rate limit across a plurality of storage systems |
US10963189B1 (en) | 2018-11-18 | 2021-03-30 | Pure Storage, Inc. | Coalescing write operations in a cloud-based storage system |
US11340837B1 (en) | 2018-11-18 | 2022-05-24 | Pure Storage, Inc. | Storage system management via a remote console |
US11526405B1 (en) | 2018-11-18 | 2022-12-13 | Pure Storage, Inc. | Cloud-based disaster recovery |
US11379254B1 (en) | 2018-11-18 | 2022-07-05 | Pure Storage, Inc. | Dynamic configuration of a cloud-based storage system |
US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
US11042452B1 (en) | 2019-03-20 | 2021-06-22 | Pure Storage, Inc. | Storage system data recovery using data recovery as a service |
US11221778B1 (en) | 2019-04-02 | 2022-01-11 | Pure Storage, Inc. | Preparing data for deduplication |
US11068162B1 (en) | 2019-04-09 | 2021-07-20 | Pure Storage, Inc. | Storage management in a cloud data store |
US11853266B2 (en) | 2019-05-15 | 2023-12-26 | Pure Storage, Inc. | Providing a file system in a cloud environment |
US11327676B1 (en) | 2019-07-18 | 2022-05-10 | Pure Storage, Inc. | Predictive data streaming in a virtual storage system |
US11126364B2 (en) | 2019-07-18 | 2021-09-21 | Pure Storage, Inc. | Virtual storage system architecture |
US11392555B2 (en) | 2019-05-15 | 2022-07-19 | Pure Storage, Inc. | Cloud-based file services |
US11526408B2 (en) | 2019-07-18 | 2022-12-13 | Pure Storage, Inc. | Data recovery in a virtual storage system |
US11797197B1 (en) | 2019-07-18 | 2023-10-24 | Pure Storage, Inc. | Dynamic scaling of a virtual storage system |
US11861221B1 (en) | 2019-07-18 | 2024-01-02 | Pure Storage, Inc. | Providing scalable and reliable container-based storage services |
US11487715B1 (en) | 2019-07-18 | 2022-11-01 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11093139B1 (en) | 2019-07-18 | 2021-08-17 | Pure Storage, Inc. | Durably storing data within a virtual storage system |
US11086553B1 (en) | 2019-08-28 | 2021-08-10 | Pure Storage, Inc. | Tiering duplicated objects in a cloud-based object store |
US11693713B1 (en) | 2019-09-04 | 2023-07-04 | Pure Storage, Inc. | Self-tuning clusters for resilient microservices |
US11360689B1 (en) | 2019-09-13 | 2022-06-14 | Pure Storage, Inc. | Cloning a tracking copy of replica data |
US11797569B2 (en) | 2019-09-13 | 2023-10-24 | Pure Storage, Inc. | Configurable data replication |
US11573864B1 (en) | 2019-09-16 | 2023-02-07 | Pure Storage, Inc. | Automating database management in a storage system |
US11669386B1 (en) | 2019-10-08 | 2023-06-06 | Pure Storage, Inc. | Managing an application's resource stack |
US11943293B1 (en) | 2019-12-06 | 2024-03-26 | Pure Storage, Inc. | Restoring a storage system from a replication target |
US11720497B1 (en) | 2020-01-13 | 2023-08-08 | Pure Storage, Inc. | Inferred nonsequential prefetch based on data access patterns |
US11709636B1 (en) | 2020-01-13 | 2023-07-25 | Pure Storage, Inc. | Non-sequential readahead for deep learning training |
US11733901B1 (en) | 2020-01-13 | 2023-08-22 | Pure Storage, Inc. | Providing persistent storage to transient cloud computing services |
US11637896B1 (en) | 2020-02-25 | 2023-04-25 | Pure Storage, Inc. | Migrating applications to a cloud-computing environment |
US11868622B2 (en) | 2020-02-25 | 2024-01-09 | Pure Storage, Inc. | Application recovery across storage systems |
US11321006B1 (en) | 2020-03-25 | 2022-05-03 | Pure Storage, Inc. | Data loss prevention during transitions from a replication source |
US11301152B1 (en) | 2020-04-06 | 2022-04-12 | Pure Storage, Inc. | Intelligently moving data between storage systems |
US11630598B1 (en) | 2020-04-06 | 2023-04-18 | Pure Storage, Inc. | Scheduling data replication operations |
US11494267B2 (en) | 2020-04-14 | 2022-11-08 | Pure Storage, Inc. | Continuous value data redundancy |
US11921670B1 (en) | 2020-04-20 | 2024-03-05 | Pure Storage, Inc. | Multivariate data backup retention policies |
US11431488B1 (en) | 2020-06-08 | 2022-08-30 | Pure Storage, Inc. | Protecting local key generation using a remote key management service |
US11442652B1 (en) | 2020-07-23 | 2022-09-13 | Pure Storage, Inc. | Replication handling during storage system transportation |
US11349917B2 (en) | 2020-07-23 | 2022-05-31 | Pure Storage, Inc. | Replication handling among distinct networks |
US11397545B1 (en) | 2021-01-20 | 2022-07-26 | Pure Storage, Inc. | Emulating persistent reservations in a cloud-based storage system |
US11853285B1 (en) | 2021-01-22 | 2023-12-26 | Pure Storage, Inc. | Blockchain logging of volume-level events in a storage system |
US11563744B2 (en) | 2021-02-22 | 2023-01-24 | Bank Of America Corporation | System for detection and classification of intrusion using machine learning techniques |
US20220365827A1 (en) | 2021-05-12 | 2022-11-17 | Pure Storage, Inc. | Rebalancing In A Fleet Of Storage Systems Using Data Science |
US11816129B2 (en) | 2021-06-22 | 2023-11-14 | Pure Storage, Inc. | Generating datasets using approximate baselines |
US11714723B2 (en) | 2021-10-29 | 2023-08-01 | Pure Storage, Inc. | Coordinated snapshots for data stored across distinct storage environments |
US11914867B2 (en) | 2021-10-29 | 2024-02-27 | Pure Storage, Inc. | Coordinated snapshots among storage systems implementing a promotion/demotion model |
US11893263B2 (en) | 2021-10-29 | 2024-02-06 | Pure Storage, Inc. | Coordinated checkpoints among storage systems implementing checkpoint-based replication |
US11922052B2 (en) | 2021-12-15 | 2024-03-05 | Pure Storage, Inc. | Managing links between storage objects |
US11847071B2 (en) | 2021-12-30 | 2023-12-19 | Pure Storage, Inc. | Enabling communication between a single-port device and multiple storage system controllers |
US11860780B2 (en) | 2022-01-28 | 2024-01-02 | Pure Storage, Inc. | Storage cache management |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
CN115454900A (zh) * | 2022-08-08 | 2022-12-09 | 北京阿帕科蓝科技有限公司 | 数据传输方法、装置、计算机设备、存储介质和程序产品 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3117244B2 (ja) * | 1991-08-09 | 2000-12-11 | 株式会社東芝 | Eepromの制御装置 |
DE69223099T2 (de) | 1991-08-09 | 1998-06-10 | Toshiba Kawasaki Kk | Aufzeichnungsgerät für eine Speicherkarte |
JP3485938B2 (ja) | 1992-03-31 | 2004-01-13 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
JPH05313989A (ja) * | 1992-05-08 | 1993-11-26 | Toshiba Corp | メモリカード装置 |
EP0907142B1 (en) * | 1992-04-02 | 2007-06-13 | Kabushiki Kaisha Toshiba | Memory card apparatus |
US5519847A (en) * | 1993-06-30 | 1996-05-21 | Intel Corporation | Method of pipelining sequential writes in a flash memory |
JP3197815B2 (ja) | 1996-04-15 | 2001-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
CA2284044A1 (en) * | 1997-03-21 | 1998-10-01 | Canal + Societe Anonyme | Computer memory organization |
DE19737182A1 (de) * | 1997-08-26 | 1999-03-04 | Bosch Gmbh Robert | Verfahren zum Ändern von Daten |
JPH11203885A (ja) | 1998-01-09 | 1999-07-30 | Hitachi Ltd | 記憶装置 |
JP4085478B2 (ja) * | 1998-07-28 | 2008-05-14 | ソニー株式会社 | 記憶媒体及び電子機器システム |
US6965963B1 (en) | 1999-07-28 | 2005-11-15 | Sony Corporation | Continuous arrangement of data clusters across multiple storages |
US6721843B1 (en) * | 2000-07-07 | 2004-04-13 | Lexar Media, Inc. | Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible |
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US20030204675A1 (en) * | 2002-04-29 | 2003-10-30 | Dover Lance W. | Method and system to retrieve information from a storage device |
-
2003
- 2003-08-25 EP EP03791270A patent/EP1533702A4/en not_active Withdrawn
- 2003-08-25 JP JP2004532699A patent/JP4358111B2/ja not_active Expired - Fee Related
- 2003-08-25 CN CNB038014769A patent/CN100347685C/zh not_active Expired - Fee Related
- 2003-08-25 KR KR1020047004717A patent/KR100944054B1/ko not_active IP Right Cessation
- 2003-08-25 WO PCT/JP2003/010718 patent/WO2004021191A1/ja active Application Filing
- 2003-08-25 US US12/016,751 patent/USRE42648E1/en not_active Expired - Fee Related
- 2003-08-25 CN CNA2007101472279A patent/CN101114255A/zh active Pending
- 2003-08-25 CA CA002461446A patent/CA2461446A1/en not_active Abandoned
- 2003-08-25 US US10/486,960 patent/US7107389B2/en not_active Ceased
- 2003-08-28 TW TW092123756A patent/TWI260535B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CN1585930A (zh) | 2005-02-23 |
CN100347685C (zh) | 2007-11-07 |
EP1533702A4 (en) | 2007-05-23 |
TWI260535B (en) | 2006-08-21 |
CN101114255A (zh) | 2008-01-30 |
CA2461446A1 (en) | 2004-03-11 |
EP1533702A1 (en) | 2005-05-25 |
JP4358111B2 (ja) | 2009-11-04 |
KR20050033504A (ko) | 2005-04-12 |
US20040193786A1 (en) | 2004-09-30 |
USRE42648E1 (en) | 2011-08-23 |
TW200407769A (en) | 2004-05-16 |
KR100944054B1 (ko) | 2010-02-24 |
WO2004021191A1 (ja) | 2004-03-11 |
US7107389B2 (en) | 2006-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4358111B2 (ja) | 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 | |
US8473672B2 (en) | System and method for storing data using a flexible data format | |
US7136986B2 (en) | Apparatus and method for controlling flash memories | |
US20190227929A1 (en) | Data storage devices and data processing methods | |
US8589618B2 (en) | Memory system comprising nonvolatile memory device and controller | |
JP2003044351A (ja) | フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法 | |
US20040246779A1 (en) | Non-volatile storage device and control method thereof | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
JP2001243110A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法 | |
US20210397370A1 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
JP2003076605A (ja) | ブロック消去型不揮発メモリを搭載した半導体記憶装置とそのデータの書込み・読出し方法 | |
KR100456736B1 (ko) | 플래시 메모리를 구비한 디지털 기기의 부팅 시간 단축 방법 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
JP2002324008A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 | |
CN113504880A (zh) | 存储器缓冲区管理方法、存储器控制电路单元与存储装置 | |
CN117632809B (zh) | 存储器控制器、数据读取方法及存储装置 | |
CN111966606B (zh) | 数据储存装置与数据处理方法 | |
TWI697779B (zh) | 資料儲存裝置與資料處理方法 | |
TWI798034B (zh) | 記憶體控制器與資料處理方法 | |
JP2007310927A (ja) | 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
CN115495009A (zh) | 闪存的数据读取方法及闪存控制器与电子装置 | |
CN116149572A (zh) | 映射表更新方法、存储器存储装置及存储器控制电路单元 | |
CN116009790A (zh) | 有效节点管理方法、存储装置及存储器控制电路单元 | |
CN117762347A (zh) | 跨单元编码方法和存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060306 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061129 |
|
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: 20090707 |
|
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: 20090805 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130814 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |