JPWO2004021191A1 - 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 - Google Patents

半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 Download PDF

Info

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
Application number
JP2004532699A
Other languages
English (en)
Other versions
JP4358111B2 (ja
Inventor
善久 稲垣
善久 稲垣
本多 利行
利行 本多
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2004021191A1 publication Critical patent/JPWO2004021191A1/ja
Application granted granted Critical
Publication of JP4358111B2 publication Critical patent/JP4358111B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

本発明はフラッシュメモリの1ブロック内のページの書き換え又は追記時、元のブロックのデータの退避場所としてページバッファ2を兼用することにより、ページバッファ2とは別の退避バッファを持たず、従来の装置よりサイズを小さく抑えうるものである。ホストによりページバッファ2へ格納される書き込み対象データ(DN8〜DN12)が転送先ブロックの先頭ページから順に各ページのデータ領域に書き込まれる。ホストから書き込み対象データの送出完了が通知されるとき、順次かつ巡回的に、転送元ブロック内のデータ(D13〜D31、D0〜D7)がページバッファ経由で転送先ブロックのページに転送される。

Description

本発明は、フラッシュメモリを含む半導体メモリ装置に関する。特に、そのフラッシュメモリへのデータ書き込み方法に関する。
情報処理機器、更に近年ではテレビ及び冷蔵庫等の家電製品はCPUを内蔵し、高度な動作制御をソフトウェアで実現する。それらの機器は動作制御用のプログラム(ファームウェア)及びパラメータを不揮発性メモリに保持する。この不揮発性メモリとして、フラッシュメモリを含む半導体メモリ装置が多用される。半導体メモリ装置は更に、ノートパソコン、携帯情報端末(PDA)、ディジタルカメラ、ポータブルオーディオプレーヤ、及び携帯電話等の携帯型情報処理機器(モバイル機器)で、例えばメモリカードのような外付けの小型記録媒体としても多用される。これらの用途では特に、半導体メモリ装置が大容量でかつ小型であることが望ましい。
フラッシュメモリの記憶領域は一般に、一定数のメモリセルごとに複数のページに分割される。データの書き込み及び読み出しはページごとに行われる。記憶領域は更に、一定数のページごとに複数のブロックに分割される。データ消去はブロックごとに一括して行われる。従って、フラッシュメモリでは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に統一することが強く望まれた。しかし、従来の半導体メモリ装置によるページの書き換えでは上記の通り、書き込み先ページが退避対象となるまで、ページバッファは書き込み対象データを保持しなければならない。それ故、ページバッファを退避バッファとして兼用することは困難だった。
本発明は、退避バッファとページバッファとを一つの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.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の一ブロックでのページの書き換え又は追記を説明するための図である。
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
以下、本発明の最適な実施の形態について、図面を参照しつつ説明する。
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)

  1. (A) 複数のページをそれぞれ含む複数のブロックと、前記ブロックそれぞれのページオフセットを記憶するページオフセット記憶領域とを有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ;
    (B) 前記ページ一つ当たりのデータ記憶容量と実質的に等量のデータを一時記憶するためのページバッファ;
    (C) 書き込み先ページを指定する論理アドレス、をホストから受信し、その論理アドレスを前記書き込み先ページの属する前記ブロック(以下、転送元ブロックという)の物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するためのアドレス変換部;及び、
    (D) (a) 前記転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号とを読み込み、
    (b) 前記データ消去済ブロックの一つを転送先ブロックとして選択し、
    (c) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとして前記ページオフセット記憶領域へ書き込み、
    (d) 前記ページオフセット記憶領域から前記転送元ブロックのページオフセットを読み出し、
    (e) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を求め、
    (f) 前記ホストから前記ページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込み、
    (g) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、
    (h) 前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送する、
    ためのメモリ制御部;
    を具備する半導体メモリ装置。
  2. (A) 複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ;
    (B) 前記ブロックそれぞれのページオフセットを記憶するためのページオフセット記憶部;
    (C) 前記ページ一つ当たりのデータ記憶容量と実質的に等量のデータを一時記憶するためのページバッファ;
    (D) 書き込み先ページを指定する論理アドレス、をホストから受信し、その論理アドレスを転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するためのアドレス変換部;及び、
    (E) (a) 前記転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号とを読み込み、
    (b) 前記データ消去済ブロックの一つを転送先ブロックとして選択し、
    (c) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとして前記ページオフセット記憶部へ書き込み、
    (d) 前記ページオフセット記憶部から前記転送元ブロックのページオフセットを読み出し、
    (e) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を求め、
    (f) 前記ホストから前記ページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込み、
    (g) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、
    (h) 前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送する、
    ためのメモリ制御部;
    を具備する半導体メモリ装置。
  3. (A) 前記半導体メモリ装置が、
    (a) 前記ホストから送出される、前記書き込み先ページの論理アドレスと前記書き込み対象データと、を受信するためのホストインタフェース;及び、
    (b) 前記フラッシュメモリ内の前記ブロックそれぞれについて論理アドレスと物理アドレスとの対応を示す論理アドレス/物理アドレス変換表、及び、前記ブロックそれぞれについて前記データ消去済ブロックであるか否かを示すためのフラグ、を記憶するアドレス変換表記憶部;を更に具備し;
    (B) 前記メモリ制御部が、前記ページ領域のページ数を数え、そのページ数が所定数に達するとき又は前記ホストから前記書き込み対象データの送出の終了を通知されるとき、前記転送元ブロックから前記転送先ブロックへのデータ転送を開始する;
    請求項1又は2のいずれかに記載の半導体メモリ装置。
  4. 複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ、へデータを書き込む方法であり;
    (A) 書き込み先ページを指定する論理アドレス、をホストから受信するステップ;
    (B) 前記論理アドレスを転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するステップ;
    (C) 前記データ消去済ブロックの一つを転送先ブロックとして選択するステップ;
    (D) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとして前記フラッシュメモリ内のページオフセット記憶領域へ書き込むステップ;
    (E) 前記ページオフセット記憶領域から前記転送元ブロックのページオフセットを読み出すステップ;
    (F) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を決定するステップ;
    (G) 前記ホストからページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込むステップ;
    (H) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送するステップ;
    を有するフラッシュメモリへのデータ書き込み方法。
  5. 複数のページをそれぞれ含む複数のブロック、を有し、データをデータ消去済ブロックの先頭ページから順に書き込む、フラッシュメモリ、へデータを書き込む方法であり;
    (A) 書き込み先ページを指定する論理アドレス、をホストから受信するステップ;
    (B) 前記論理アドレスを転送元ブロックの物理アドレスと前記書き込み先ページの論理ページ番号との対へ変換するステップ;
    (C) 前記データ消去済ブロックの一つを転送先ブロックとして選択するステップ;
    (D) 前記書き込み先ページの論理ページ番号に基づき前記転送先ブロックのページオフセットを決定し、そのページオフセットを前記転送先ブロックのページオフセットとしてページオフセット記憶部へ書き込むステップ;
    (E) 前記ページオフセット記憶部から前記転送元ブロックのページオフセットを読み出すステップ;
    (F) 前記転送元ブロックのページオフセットと前記書き込み先ページの論理ページ番号とに基づき前記書き込み先ページの物理ページ番号を決定するステップ;
    (G) 前記ホストからページバッファへ転送される書き込み対象データを前記転送先ブロックの先頭ページから順に書き込むステップ;
    (H) 前記書き込み対象データのページ数と前記書き込み先ページの物理ページ番号とに基づき前記転送元ブロックの転送開始ページの物理ページ番号を求め、前記書き込み対象データが書き込まれた前記転送先ブロックのページ領域、の次のページ以降へ前記転送元ブロック内に記憶されたデータを、前記転送開始ページから順次かつ巡回的に、前記ページバッファを経由し転送するステップ;
    を有するフラッシュメモリへのデータ書き込み方法。
  6. 前記ページ領域のページ数を数え、そのページ数が所定数に達するとき又は前記ホストから前記書き込み対象データの送出の終了を通知されるとき、前記転送元ブロックから前記転送先ブロックへのデータ転送を開始するステップ、を更に有する、請求項4又は5のいずれかに記載のフラッシュメモリへのデータ書き込み方法。
JP2004532699A 2002-08-29 2003-08-25 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 Expired - Fee Related JP4358111B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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