JP4547028B2 - ブロック管理を伴う不揮発性メモリ - Google Patents
ブロック管理を伴う不揮発性メモリ Download PDFInfo
- Publication number
- JP4547028B2 JP4547028B2 JP2008525178A JP2008525178A JP4547028B2 JP 4547028 B2 JP4547028 B2 JP 4547028B2 JP 2008525178 A JP2008525178 A JP 2008525178A JP 2008525178 A JP2008525178 A JP 2008525178A JP 4547028 B2 JP4547028 B2 JP 4547028B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- blocks
- list
- circuit
- data
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 32
- 230000008672 reprogramming Effects 0.000 claims 6
- 230000004044 response Effects 0.000 claims 4
- 230000008569 process Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Description
前述した特許出願で説明されている直接データファイル記憶法はブロックのリストを作成し、個々のブロックの使用に関する所定の値を持つ項目がこのリストから選択される。ここでは、これらのブロックリストの内容アドレス指定可能な探索のための手法を説明する。本願明細書では、添付の図1〜3を参照する。
「プログラムブロック」は部分的にプログラムされ、かつただひとつのファイルの有効データを収容する。このブロックにはある程度の消去済み容量が残存する。これはある程度の用済みデータを収容することもある。
「共通ブロック」は部分的にプログラムされ、かつ2つ以上のファイルの有効データを収容する。ある程度の消去済み容量が残存する。ある程度の用済みデータを収容することもある。
「フル共通ブロック」は完全にプログラムされ、かつ2つ以上のファイルの有効データを収容する。ある程度の用済みデータを収容することもある。
「ファイルブロック」は完全にプログラムされ、かつ1つのファイルの有効データを収容する。ある程度の用済みデータを収容することもある。
「無効ブロック」は有効データを収容しない。無効ブロックは少なくともある程度は用済みデータを収容し、消去済み容量を収容することもあるが、有効データは収容しない。
「消去済みブロック」はブロックの全容量がプログラムされておらず、データを受け付けることができる。消去済みブロックの中にデータはない。メモリがデータで満たされているかまたはほぼ満たされている場合は通常、使用中のブロックの中にある使われていない容量を連続的に再生することによって特定の最小消去済みブロック数のプールを維持する。
「不完全ブロック」はある程度のプログラムされていない容量を収容し、1つ以上のファイルの有効データを収容し、かつある程度の用済みデータを収容することがある。プログラムブロックと共通ブロックは不完全ブロックの例である。
「用済みブロック」は、ある程度の用済みブロックを収容するファイルブロックまたはフル共通ブロックである。用済みブロックは消去済み容量を収容せず、有効データと用済みデータの両方を収容する。
「消去済みブロック」の定義は同一名のブロックタイプと同じであり、つまりデータがないブロックである。
不完全ブロックリスト(Pリスト)は、システム内の全ての不完全ブロックにつき、すなわちある程度の有効データとある程度の消去済み容量の両方を収容する全ブロックにつき、項目を収容する。ある程度の用済みデータを収容することもある。
P(V)リスト:ブロックに記憶される有効データ容量に従って項目が序列される不完全ブロックリスト
P(A)リスト:ブロックのブロックアドレスに従って項目が序列される不完全ブロックリスト
O(V)リスト:ブロックに記憶される有効データ容量に従って項目が序列される用済みブロックリスト
O(A)リスト:ブロックのブロックアドレスに従って項目が序列される用済みブロックリスト
Eリスト:消去済みブロックリスト
前述したセクションで明らかにしたブロックリスト上のブロックに関係する情報を記憶するために、1つ以上のブロックまたはメタブロックが割り当てられる。これらはレコードブロックとして知られ、書き込みまたは更新が1ページ単位で行われる。レコードブロック内の情報のために内容アドレス指定が使用される。
ブロックリストの中で参照されるブロックの全ての項目とインデックス情報は、フラッシュメモリの1つ以上のレコードブロックに収容される。レコードブロックはメタブロックであり、ページ単位で更新される。
レコードブロックは次の特性を持つ。
1.あらゆるタイプのブロックリストをまとめて1つのレコードブロックに記憶できる。
2.必要に応じ、複数のレコードブロックを使用できる。
3.レコードブロックは特定の数の論理ページを持ち、これはこの例においてブロック内の物理ページ数の25%に規定される。
4.最後に書き込まれたページのレコードブロックインデックスセクションは、各論理ページから物理ページへのマッピングを提供する。
5.論理ページは、使用可能な次の物理ページにこれを再度書き込むことによって更新できる。
6.ブロックリストのため、またはブロックのレコードのために使用されるあらゆるタイプのページに論理ページを割り当てることができる。
7.レコードブロックは、満杯のときに圧縮され消去済みブロックに再度書き込まれる。
レコードブロックインデックスは、レコードブロックの中にある各ページの1セクションとして存在する。これは最後に書き込まれたページの中にあるものだけが有効である。レコードブロックインデックスは可能な各論理ページにつき項目を収容し、論理ページ番号に従って序列される。各項目は次に示す3つのフィールドを持つ。
1.ページタイプを識別する数字コード
a.P(V)リストページ
b.P(A)リストページ
c.O(V)リストページ
d.O(A)リストページ
e.Eリストページ
f.レコードページ
g.割り当てされていない論理ページ
2.ページ内の最初の項目の値(これにより、P(V)、P(A)、O(V)、O(A)リストページの各タイプで値の範囲を設定し、キャッシュできる。)
3.論理ページのマップ先にあたる物理ページのポインタ
レコードはそのリストのうちの1つの項目をブロックに関係する必要情報を全て収容し、レコードページに記憶される。レコードページは次に示す3つのセクションに細分される。
1.項目状態
2.レコード
3.共通ブロックレコード
1.ブロックアドレス
2.ブロック内の有効データ容量
3.ブロック内のページ書き込みポインタの位置
4.ブロック内の最初のデータグループのファイルID
5.ブロック内にデータが存在するファイルの合計数
6.ブロックの共通ブロックレコードへのオフセット(値0は共通ブロックレコードが存在しないことを意味する。)
1.共通ブロックにおける後続データグループのファイルID
2.レコード終了インジケータ
リストページは、1組のブロックの項目を、記述子値によって規定される順序で収容する。P(V)リストとO(V)リスト内の項目における記述子は有効データ容量であり、P(A)リストとO(A)リスト内の項目における記述子はブロックアドレスである。
1.ブロック内の有効データ容量
2.レコードページ内のブロックのレコードを指すポインタ(レコードページはリストページと同じレコードブロックの中になくてもよい。)
1.ブロックアドレス
2.レコードページ内のブロックのレコードを指すポインタ(レコードページはリストページと同じレコードブロックの中になくてもよい。)
1.ブロックアドレス
PリストまたはOリストで目標ブロックのレコードにアクセスするには、次のステップからなるシーケンスを使用する。
1.P(V)リスト、O(V)リスト、P(A)リスト、またはO(A)リストを目標リストとして設定する。
2.レコードブロックの中で最後に書き込まれたページからレコードブロックインデックスを読み出す。この情報はあらかじめキャッシュの中に存在することがある。
3.ステップ1で規定した目標リストで目標記述子値のリストページに割り当てられた論理ページ番号を判定する。
4.ステップ3で判定した論理ページ番号をレコードブロックから読み出す。
5.目標ブロックの項目を読み出すために、ステップ4で読み出したリストページを探索する。
6.ステップ5で読み出した項目によって規定されるレコードブロックからレコードページを読み出す。
7.ステップ6で読み出したレコードページからターゲットブロックのレコードを読み出す。
第2の例では前述した第1の例と同じく、特定のブロックが、そこに収容されるデータに従い、それぞれ分類され、これらのブロックのためのレコードが保守される。リストは、ブロックに記憶されるデータに関係する記述子値に従って序列され、保守される。ブロックの中にある有効データ量は、このような記述子値の一例である。しかし、この第2の例で、ブロックの管理に用いる構造および方法のいくつかは異なる。第1および第2の例の構造および方法は代案とみなすべきものであり、両例の構造および/または手法の様々な組み合わせもまた本発明の開示の一部とみなされる。第2の例は、第1の例との違いに焦点をあてながら説明する。よって、両例に共通の要素は第2の例に関して重ねて詳述しない場合がある。
ブロックディレクトリは、ブロックアドレスによってブロックを識別し、対応するブロックレコードの位置を指示する、序列された項目の集まりである。ブロックレコードの保守が行われる各ブロックにつき1項目がブロックディレクトリの中に存在する。この例では、不完全ブロック、用済みブロック、コンプリート共通ブロック、および消去済みブロックの各ブロックにつき1項目が存在する。ブロックディレクトリは1つ以上のディレクトリブロックに収容される。
ブロックディレクトリページは、1組のブロックディレクトリ項目を、それらのブロックアドレス値の順に収容する。図7Aにはブロックディレクトリページ731の一例が示されている。有効ブロックディレクトリ項目733はブロックディレクトリページ731の中で一連の項目位置を占めるが、ページ全体を埋め尽くす必要はないため、消去済みの空間が残ることがある。各々のブロックディレクトリページはレコードインデックス(後述する)を収容する。ここで、ブロックディレクトリページ731はレコードインデックス735を収容する。ブロックディレクトリ項目733の中に用済み項目はなく、ブロックアドレス値は連続しなくともよい。ある1つのブロックディレクトリページにおけるブロックアドレス値の範囲は、別のブロックディレクトリページにおけるブロックアドレス値の範囲に重複しない。
(1)論理ページの割り当て状態フラグ
(2)ページのタイプ、例えばブロックディレクトリ、PBリスト、またはOBリスト
(3)ブロックディレクトリページ内の最初の項目のブロックアドレス、またはリストページ(PBまたはOB)内の最初の項目の有効データ容量値(これにより各論理ページでブロックアドレスまたは有効データ値の範囲を確立し、キャッシュできる。)
(4)論理ページのマッピングにあたるブロックディレクトリの中の物理ページへのポインタ
ブロックリストページは、1ブロック分類につき1組のブロックリスト項目を、ブロックに収容されたデータ(例えば、ブロックに収容された有効データ量)を記述する記述子値の順に、収容する。図7Bにはブロックリストページ751の一例が示されている。この例で、ブロックリストページはPBリストページまたはOBリストページである。図7BはOBリストページ751を示している。有効ブロックリスト項目753はブロックリストページ751の中で一連の項目位置を占めるが、ページ全体を埋め尽くす必要はない。ブロックリストページの中には通常、用済み項目はない。ブロックリスト項目753は記述子値によって序列されるが、記述子値は連続しなくともよく、繰り返すことができる。この例で、有効データ容量値は連続しなくともよく、繰り返すことができる。ある1つのブロックリストページの記述子値の範囲は、同一ブロック分類の別のブロックリストページの記述子値の範囲に重複しない。
ブロックレコードはレコードの集まりであり、各レコードは、ブロックアドレスによって識別されるブロックの情報を収容する。各ブロックディレクトリ項目につき1つのレコードが存在する。ブロックレコードはブロックディレクトリ項目によってアドレス指定され、ブロックレコードページが修正されるときにはブロックディレクトリページを修正しなければならない。
(1)ブロックアドレス
(2)ブロックのタイプ、PB、OB、CCB、またはEB
(3)ブロック内の有効データ容量
(4)ブロック内のページ書き込みポインタの位置
(5)ブロック内にデータが存在するファイルの合計数
(6)ブロック内にデータが存在する各ファイルのファイルID
ブロックレコードは1つ以上のレコードブロックの中に収容され、ブロックディレクトリ項目によって直接アドレス指定される。新規または更新済みブロックレコードをプログラムするにあたって使用できる消去済みページは、ただひとつのレコードブロックに収容される。それ以外の全てのレコードブロックで全てのページがプログラムされていたとしても、完全に用済みまたは部分的に用済みのページがブロックに収容されることがある。用済みブロックレコードによって占められる容量の再生は、再生される次のブロックとして1つのレコードブロックを指定することにより、そしてこの再生ブロックからブロックレコード書き込みポインタによって現在指定されているページへページを徐々にコピーすることにより、その後に再生ブロックを消去することにより、遂行される。
メモリアレイでブロックにデータが書き込まれるとき、またはファイルが削除されるときには、1つ以上のブロックレコードを更新する必要がある。また、対応するブロックディレクトリおよびリスト項目を更新する必要がある。図10に示された次のプロセスは、第2の例の各種構造の更新を説明するものであり、このとき(既にある程度の用済みデータを収容する)不完全ブロックには追加の有効データが記憶され、ブロックは用済みブロックになる。
(1)追加データを記憶するブロックのアドレスを受け取る。
(2)このブロックのディレクトリ項目175を収容するディレクトリページ173の物理ページ位置を判定するため、ブロックディレクトリブロック170の最終書き込みページでディレクトリインデックス171を調べる。
(3)ブロックの項目175を見つけるため、ディレクトリページ173の中でバイナリ探索を遂行する。
(4)項目175の論理識別子からレコードインデックス177の情報に沿って、ブロックレコードブロック181の中でこのブロックのレコード183を収容する物理ページ179を判定する。受け取ったアドレスに対応する正しいレコード183を見つけるため、ディレクトリ項目175の中のオフセットを使用する。
(5)レコード183からブロックの分類を判定する。追加データの記憶によって分類が変化するか否かを判定する。ここでブロックは不完全ブロックであり、このブロックに残された空間は追加データで満たされるから、このブロックは用済みブロックになる。
(6)レコードページ183の内容を、書き込みポインタ185によって指示される位置へコピーし、対象ブロックのレコード183は、異なるタイプのブロック、有効データ、ページ書き込みポインタの位置等を反映させるために更新される。
(7)ディレクトリページ173をブロックディレクトリブロック170の使用可能な次の物理ページへコピーする。レコードページの新しい物理位置を反映させるため、更新された項目とレコードインデックスを新しいディレクトリページに書き込む。また、新しい物理ページでディレクトリインデックスを更新する。
(8)ブロックの項目189を収容する不完全ブロックリストページ187の物理ページ位置を判定するため、ディレクトリインデックスを再び調べる(場合によっては複数のリストを調べる)。
(9)記述子値が対象ブロックのそれに等しいリスト項目189を見つけるため、ページ187の中でバイナリ探索を遂行する。複数のリスト項目が記述子値を有する場合は、ブロックアドレスにより一致する全ての項目を探索する。
(10)不完全ブロックリストページ187を新しい位置へコピーし、対象ブロックの項目189は削除される。新しい不完全ブロックページは、不完全ブロックページの新しい物理位置で更新されたディレクトリインデックスを含む。
(11)対象ブロックの有効データ量を含む、ブロック範囲当たりの有効データをカバーする用済みブロックリストページの物理ページ位置を判定するため、ディレクトリインデックスを再び調べる(図示せず)。
(12)用済みブロックリストページをコピーし、対象ブロックの新しい項目を、ブロック内の現在の有効データ量に基づき、適切なオフセットのところに追加する。新しい用済みブロックリストページは、用済みブロックリストの新しい位置を示す更新済みディレクトリインデックスを含む(図示せず)。
第3の例では、メモリアレイの各ブロックにつき常時レコードを保守する。これには1つ以上の追加のブロック分類が関係し、例えば用済みデータを収容しないファイルブロックのための追加の分類を、図4に示された第2の例の分類に加えることができる。各ブロックごとにレコードを保守すると保守する各レコードの合計数が増えるが、より簡素な構造を使用することができる。第3の例は、ブロックごとにレコードを用意する点を除き、第2の例と同様に進行する。
Claims (9)
- 再プログラム可能な不揮発性メモリシステムであって、
不揮発性メモリ回路であって、
メモリセルのブロックにグループ分けされ、前記ブロックのページにデータを再プログラムする前に同時に消去されるメモリセルアレイであって、前記ブロックが消去単位であるとともに物理ブロックアドレスによって識別され、前記ページが書き込み単位である、メモリセルアレイと、
前記メモリセルに接続可能なことにより、前記メモリセルを消去しかつ再プログラムすることができる読み出し回路、書き込み回路および消去回路と、を備える不揮発性メモリ回路と、
前記メモリセルアレイと動作可能に接続している制御回路であって、
前記メモリ回路とメモリシステム外部との間のデータ転送を制御するとともに、前記メモリ回路上でホストデータを記憶することも制御し、かつ
前記メモリ回路とメモリシステム外部との間でデータを転送するためのインターフェイス回路と、
処理回路とを備え前記処理回路は、
前記インターフェイス回路を介してメモリシステム外部からデータを受信し、そして前記受信済みデータをブロックのうちの1つ以上のブロックに記憶し、
メモリセルアレイのブロック内にマネージメントデータを保持し、前記マネージメントデータは、
複数のブロック用の複数のレコードであって、前記レコードが、前記ブロックのアドレスによって識別されるように前記レコードと関係のある複数のブロックのうちの1つのブロックに記憶されるデータの異なった態様の複数の記述子の値を個々に含み、前記制御回路が、対応するブロック内の有効データ量であるレコード内の第1の記述子の値を書き込み、かつ対応するブロック内の消去済み容量の量であるレコード内の第2の記述子の値を書き込むように操作する、複数のレコードと、
複数のブロックのアドレスによるポインタを含む第1のリストであって、前記ポインタが、前記1つのブロックのアドレスを受信することに応じて、ブロックのうちの1つのブロック用のレコードのうちの1つのレコードがメモリセルアレイ内に位置するように個々に指示し、かつ前記ポインタをそれぞれの複数のブロックのアドレスの順序にしたがってポインタのリスト内に並べる、第1のリストと、
複数のブロックの対応するレコードが少なくとも第1と第2の記述子の値を含んでいる複数のブロックのアドレスを含む第2のリストであって、前記第2のリスト内の複数のブロックのアドレスをその対応するレコード内の第1の記述子の値の順序にしたがって並べる、第2のリストと、
複数のブロックの対応するレコードが対応するブロック内の少なくとも有効データ量と対応するブロック内の用済みデータの量とである少なくとも記述子の値を含んでいる複数のブロックのアドレスを含む第3のリストであって、前記制御回路がその対応するブロック内の有効データ量の値の順序にしたがって前記第3のリスト内の複数のブロックのアドレスを並べるように操作する、第3のリストとを含み、
前記処理回路を動作させ、前記第2のリストに出現する順序にしたがって前記第2のリスト内の複数のブロックのうちの個々のブロックに記憶されるデータで前記読み出し回路、書き込み回路および消去回路のうちの1つ以上を利用して動作させる、メモリシステム。 - 請求項1記載のメモリシステムにおいて、
複数のブロックのうちの個々のブロックに記憶されるデータ上での制御回路の動作が、個々のブロックからの有効データを消去済み空間を有する他のブロックにコピーし、その後その個々のブロックを消去することを含むメモリシステム。 - 請求項1記載のメモリシステムにおいて、
前記制御回路を、第2の記述子の値を含む対応するレコードを有する前記第3のリストからブロックを省くように操作するメモリシステム。 - 再プログラム可能な不揮発性メモリシステムであって、
不揮発性メモリ回路であって、
メモリセルのブロックにグループ分けされ、前記ブロックのページにデータを再プログラムする前に同時に消去されるメモリセルアレイであって、前記ブロックが消去単位であるとともに物理ブロックアドレスによって識別され、前記ページが書き込み単位である、メモリセルアレイと、
前記メモリセルに接続可能なことにより、前記メモリセルを消去しかつ再プログラムすることができる読み出し回路、書き込み回路および消去回路と、を備える不揮発性メモリ回路と、
前記メモリセルアレイと動作可能に接続している制御回路であって、
前記メモリ回路とメモリシステム外部との間のデータ転送を制御するとともに、前記メモリ回路上でホストデータを記憶することも制御し、かつ
前記メモリ回路とメモリシステム外部との間でデータを転送するためのインターフェイス回路と、
処理回路とを備え前記処理回路は、
前記インターフェイス回路を介して前記メモリシステムによって受信された複数のブロック内のデータを記憶するように動作し、
メモリセルアレイのブロック内のマネージメントデータを保持するように動作し、前記マネージメントデータは、
複数のブロック用の複数のレコードであって、前記レコードが、前記ブロックのアドレスによって識別されるように前記レコードと関係のある複数のブロックのうちの個々のブロック内の有効データ量、用済みデータの量、および消去済み容量の量の表示を個々に含む、複数のレコードと、
複数のブロックのアドレスによるポインタを含む第1のリストであって、前記ポインタが、前記1つのブロックのアドレスを受信することに応じて、ブロックのうちの1つのブロック用のレコードのうちの1つのレコードがメモリセルアレイ内に位置するように個々に指示し、かつ前記ポインタをそれぞれの複数のブロックのアドレスの順序にしたがってポインタのリスト内に並べる、第1のリストと、
複数のブロックの対応するレコードが少なくとも有効データと消去済み容量の正の値を含んでいる複数のブロックのアドレスを含む第2のリストであって、前記第2のリスト内の複数のブロックのアドレスをその対応するレコード内の有効データ量の順序にしたがって並べる、第2のリストと、
複数のブロックの対応するレコードが少なくとも有効データと用済みデータの正の値を含むが、消去済み容量の量は含んでいない複数のブロックのアドレスを含む第3のリストであって、前記第3のリスト内の複数のブロックのアドレスをその対応するレコード内の有効データ量の順序にしたがって並べる、第3のリストとを含み、
前記処理回路は、前記ブロックのアドレスが第2および第3のリスト上にある前記ブロックを、前記第2および第3のリストに出現する順序にしたがって複数のブロックのうちの個々のブロックに記憶されるデータで前記メモリシステムを動作させるために前記読み出し回路、書き込み回路および消去回路のうちの1つ以上を利用してアクセスさせる、メモリシステム。 - メモリ回路と制御回路とを有する不揮発性メモリシステムを操作する方法であって、前記メモリ回路がメモリセルのブロックにグループ分けされ、前記ブロックのページにデータを再プログラムする前に同時に消去されるメモリセルを含み、前記ブロックが消去単位であるとともに物理ブロックアドレスによって識別され、前記ページが書き込み単位であり、前記メモリ回路が前記メモリセルに接続可能な読み出し回路、書き込み回路および消去回路を備え、前記制御回路が前記メモリシステムと通信するホストと前記メモリ回路との間のデータ転送を制御するとともに、前記メモリ回路上でホストデータを記憶することも制御する、前記方法において、
前記制御回路を介して前記メモリシステムによって受信された複数のブロック内のデータを前記書き込み回路を利用して記憶するステップと、
複数のブロックのうちの対応するブロック用の複数のレコードを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記レコードが、前記ブロックのアドレスによって識別されるように前記レコードと関係のある複数のブロックのうちの1つのブロックに記憶されるデータの異なった態様の少なくとも第1、第2、および第3の記述子の値を個々に含み、前記第1の記述子が対応するブロック内の有効データ量であり、前記第2の記述子が対応するブロック内の消去済み容量の量であり、前記第3の記述子が対応するブロック内の用済みデータの量である、保持するステップと、
複数のブロックのアドレスによるポインタを含む第1のリストを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記ポインタが、前記1つのブロックのアドレスを受信することに応じて、ブロックのうちの1つのブロック用のレコードのうちの1つのレコードがメモリシステム内に位置するように個々に指示し、かつ前記ポインタをそれぞれの複数のブロックのアドレスの順序にしたがってポインタのリスト内に並べる、保持するステップと、
複数のブロックの対応するレコードが少なくとも第1と第2の記述子の値を含んでいる複数のブロックのアドレスを含む第2のリストを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記第2のリスト内の複数のブロックのアドレスをその対応するレコード内の第1の記述子の値の順序にしたがって並べる、保持するステップと、
複数のブロックの対応するレコードが少なくとも第1と第3の記述子の値を含んでいる複数のブロックのアドレスを含む第3のリストを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記第3のリスト内の複数のブロックのアドレスをその対応するレコード内の第1の記述子の値の順序にしたがって並べる、保持するステップと、
前記第2のリストに出現する順序にしたがって前記第2のリスト内の複数のブロックのうちの個々のブロックに記憶されるデータ上で前記読み出し回路、書き込み回路および消去回路のうちの1つ以上を利用することによって前記メモリシステムの動作をするステップと、
を含む方法。 - 請求項5記載の方法において、
前記メモリシステムの動作を遂行するステップが、個々のブロックからの有効データを消去済み空間を有する他のブロックにコピーし、その後その個々のブロックを消去することを含む方法。 - 請求項5記載の方法において、
前記第3のリストでは、対応するレコードが第2の記述子の値を含んでいる複数のブロックのアドレスが除外される方法。 - 請求項5記載の方法において、
前記第2のリストでは、対応するレコードが第3の記述子の値を含んでいる複数のブロックのアドレスが除外される方法。 - メモリ回路と制御回路とを有する不揮発性メモリシステムを操作する方法であって、前記メモリ回路がメモリセルのブロックにグループ分けされ、前記ブロックのページにデータを再プログラムする前に同時に消去されるメモリセルを含み、前記ブロックが消去単位であるとともに物理ブロックアドレスによって識別され、前記ページが書き込み単位であり、前記メモリ回路が前記メモリセルに接続可能な読み出し回路、書き込み回路および消去回路を備え、前記制御回路が前記メモリシステムと通信するホストと前記メモリ回路との間のデータ転送を制御するとともに、前記メモリ回路上でホストデータを記憶することも制御する、前記方法において、
前記制御回路を介して前記メモリシステムによって受信された複数のブロック内のデータを前記書き込み回路を利用して記憶するステップと、
複数のブロック用の複数のレコードを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記レコードが、前記ブロックのアドレスによって識別されるように前記レコードと関係のある複数のブロックのうちの個々のブロック内の有効データ量、用済みデータの量、および消去済み容量の量の表示を個々に含む、保持するステップと、
複数のブロックのアドレスによるポインタを含む第1のリストを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記ポインタが、前記1つのブロックのアドレスを受信することに応じて、ブロックのうちの1つのブロック用のレコードのうちの1つのレコードがメモリシステム内に位置するように個々に指示し、かつ前記ポインタをそれぞれの複数のブロックのアドレスの順序にしたがってポインタのリスト内に並べる、保持するステップと、
複数のブロックの対応するレコードが少なくとも有効データと消去済み容量の正の値を含んでいる複数のブロックのアドレスを含む第2のリストを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記第2のリスト内の複数のブロックのアドレスをその対応するレコード内の有効データ量の順序にしたがって並べる、保持するステップと、
複数のブロックの対応するレコードが少なくとも有効データと用済みデータの正の値を含むが、消去済み容量の量は含んでいない複数のブロックのアドレスを含む第3のリストを前記制御回路によって前記メモリ回路の第1のブロック内に保持するステップであって、前記第3のリスト内の複数のブロックのアドレスをその対応するレコード内の有効データ量の順序にしたがって並べる、保持するステップと、
前記ブロックのアドレスが第2および第3のリスト上にある前記ブロックを、前記第2および第3のリストに出現する順序にしたがって複数のブロックのうちの個々のブロックに記憶されるデータ上で前記メモリシステムの動作をするために前記読み出し回路、書き込み回路および消去回路のうちの1つ以上を利用することによってアクセスするステップと、
を含む方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US70538805P | 2005-08-03 | 2005-08-03 | |
US74674006P | 2006-05-08 | 2006-05-08 | |
US11/459,260 US7552271B2 (en) | 2005-08-03 | 2006-07-21 | Nonvolatile memory with block management |
US11/459,268 US7558906B2 (en) | 2005-08-03 | 2006-07-21 | Methods of managing blocks in nonvolatile memory |
PCT/US2006/030228 WO2007019217A1 (en) | 2005-08-03 | 2006-08-01 | Nonvolatile memory with block management |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009503745A JP2009503745A (ja) | 2009-01-29 |
JP2009503745A5 JP2009503745A5 (ja) | 2009-09-17 |
JP4547028B2 true JP4547028B2 (ja) | 2010-09-22 |
Family
ID=40361356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008525178A Expired - Fee Related JP4547028B2 (ja) | 2005-08-03 | 2006-08-01 | ブロック管理を伴う不揮発性メモリ |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP4547028B2 (ja) |
AT (1) | ATE493707T1 (ja) |
DE (1) | DE602006019263D1 (ja) |
TW (1) | TWI399642B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008082996A1 (en) * | 2006-12-26 | 2008-07-10 | Sandisk Corporation | Use of a direct data file system with a continuous logical address space interface |
JP2009211233A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8219781B2 (en) * | 2008-11-06 | 2012-07-10 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
JP4738536B1 (ja) * | 2010-01-29 | 2011-08-03 | 株式会社東芝 | 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法 |
TWI423023B (zh) * | 2011-04-22 | 2014-01-11 | Silicon Motion Inc | 快閃記憶體之區塊選取方法及資料儲存裝置 |
TWI454912B (zh) * | 2012-01-06 | 2014-10-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
US8370567B1 (en) * | 2012-03-23 | 2013-02-05 | DSSD, Inc. | Storage system with self describing data |
US11119950B2 (en) * | 2018-11-13 | 2021-09-14 | SK Hynix Inc. | Storage device and method of operating the same |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5740395A (en) * | 1992-10-30 | 1998-04-14 | Intel Corporation | Method and apparatus for cleaning up a solid state memory disk storing floating sector data |
US5867641A (en) * | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
JPH10326227A (ja) * | 1997-05-23 | 1998-12-08 | Nec Corp | フラッシュメモリを記憶媒体とする記憶装置の管理方式 |
JP2000227871A (ja) * | 1999-02-05 | 2000-08-15 | Seiko Epson Corp | 不揮発性記憶装置、その制御方法、および、情報記録媒体 |
US6591358B2 (en) * | 2001-01-26 | 2003-07-08 | Syed Kamal H. Jaffrey | Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
JP4280055B2 (ja) * | 2001-11-28 | 2009-06-17 | 株式会社Access | メモリ制御方法および装置 |
JP2003208352A (ja) * | 2002-01-17 | 2003-07-25 | Fujitsu Ltd | 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ |
US6895464B2 (en) * | 2002-06-03 | 2005-05-17 | Honeywell International Inc. | Flash memory management system and method utilizing multiple block list windows |
US7254668B1 (en) * | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
WO2004040454A2 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Method and apparatus for performing multi-page write operations in a non-volatile memory system |
JP2004280752A (ja) * | 2003-03-19 | 2004-10-07 | Sony Corp | データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム |
JP4245959B2 (ja) * | 2003-04-09 | 2009-04-02 | 日本電信電話株式会社 | Icカードにおけるメモリ管理方法、及びicカード |
TWI240863B (en) * | 2003-09-05 | 2005-10-01 | Megawin Technology Co Ltd | Method for efficiently controlling flash memory read/write |
JP2005122439A (ja) * | 2003-10-16 | 2005-05-12 | Sharp Corp | デバイス機器、及びデバイス機器の記録装置のフォーマット変換方法 |
KR20070007264A (ko) * | 2003-12-30 | 2007-01-15 | 쌘디스크 코포레이션 | 비순차 갱신 블록 관리를 구비한 비휘발성 메모리 및 방법 |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
-
2006
- 2006-08-01 DE DE602006019263T patent/DE602006019263D1/de active Active
- 2006-08-01 AT AT06789283T patent/ATE493707T1/de not_active IP Right Cessation
- 2006-08-01 JP JP2008525178A patent/JP4547028B2/ja not_active Expired - Fee Related
- 2006-08-03 TW TW95128510A patent/TWI399642B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2009503745A (ja) | 2009-01-29 |
ATE493707T1 (de) | 2011-01-15 |
TW200739342A (en) | 2007-10-16 |
DE602006019263D1 (de) | 2011-02-10 |
TWI399642B (zh) | 2013-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101329068B1 (ko) | 블록 관리를 가지는 비휘발성 메모리 | |
US7552271B2 (en) | Nonvolatile memory with block management | |
US7558906B2 (en) | Methods of managing blocks in nonvolatile memory | |
US7624239B2 (en) | Methods for the management of erase operations in non-volatile memories | |
US7669003B2 (en) | Reprogrammable non-volatile memory systems with indexing of directly stored data files | |
US7949845B2 (en) | Indexing of file data in reprogrammable non-volatile memories that directly store data files | |
US7783845B2 (en) | Structures for the management of erase operations in non-volatile memories | |
JP5000316B2 (ja) | オブジェクト・ベースのデータ記憶装置 | |
US8607016B2 (en) | FAT analysis for optimized sequential cluster management | |
JP4155463B2 (ja) | 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 | |
US7610434B2 (en) | File recording apparatus | |
JP4547028B2 (ja) | ブロック管理を伴う不揮発性メモリ | |
US7739444B2 (en) | System using a direct data file system with a continuous logical address space interface | |
US7917686B2 (en) | Host system with direct data file interface configurability | |
US7774392B2 (en) | Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order | |
US20080155175A1 (en) | Host System That Manages a LBA Interface With Flash Memory | |
US20030229753A1 (en) | Flash memory file system | |
US20050174849A1 (en) | Method of remapping flash memory | |
US7779056B2 (en) | Managing a pool of update memory blocks based on each block's activity and data order | |
JP2011519095A (ja) | マルチバンク記憶装置のためのストレージアドレス再マッピングのための方法およびシステム | |
JP2006504195A (ja) | 不揮発性記憶システムにおける摩耗一様化 | |
KR101378031B1 (ko) | 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리 | |
JP5266250B2 (ja) | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 | |
JP2010515163A (ja) | ダイレクトデータファイルメモリシステムにおけるlbaインターフェイスの管理 | |
JP2009503740A (ja) | データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090803 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090803 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20090803 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090807 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20090902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091117 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100127 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100513 |
|
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: 20100608 |
|
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: 20100702 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4547028 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |