JP2010515162A - 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 - Google Patents
連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 Download PDFInfo
- Publication number
- JP2010515162A JP2010515162A JP2009544199A JP2009544199A JP2010515162A JP 2010515162 A JP2010515162 A JP 2010515162A JP 2009544199 A JP2009544199 A JP 2009544199A JP 2009544199 A JP2009544199 A JP 2009544199A JP 2010515162 A JP2010515162 A JP 2010515162A
- Authority
- JP
- Japan
- Prior art keywords
- data
- file
- block
- logical
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 330
- 238000000034 method Methods 0.000 claims description 95
- 238000013500 data storage Methods 0.000 claims description 19
- 238000012546 transfer Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 230000008672 reprogramming Effects 0.000 claims 3
- 238000013467 fragmentation Methods 0.000 abstract description 5
- 238000006062 fragmentation reaction Methods 0.000 abstract description 5
- 230000007334 memory performance Effects 0.000 abstract description 2
- 230000001105 regulatory effect Effects 0.000 abstract 1
- 230000007704 transition Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 22
- 238000003780 insertion Methods 0.000 description 16
- 230000037431 insertion Effects 0.000 description 16
- 238000013507 mapping Methods 0.000 description 14
- 238000007596 consolidation process Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 8
- 230000008707 rearrangement Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003863 physical function Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
Description
一般的なフラッシュメモリシステムを図1〜図6との関係で説明する。そのようなシステムで本発明の様々な態様を実装できる。図1のホストシステム1は、フラッシュメモリ2の中にデータを蓄積し、このフラッシュメモリからデータを引き出す。フラッシュメモリはホストの中に埋め込むこともできるが、メモリ2はより一般的なカードの形で図に示され、このカードは、機械的および電気的コネクタの嵌合部分3および4を通じて取り外し可能な状態でホストへ接続される。例えばコンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア、トランスフラッシュカード等、様々なフラッシュメモリカードが現在市販されている。これらのカードはいずれも、それぞれの規格化された仕様に従い特有の機械的および/または電気的インターフェイスを備えているが、それぞれに内蔵されたフラッシュメモリシステムはよく似ている。これらのカードはいずれも、本願の出願人であるサンディスク コーポレイションから入手できる。また、サンディスク コーポレイションは、Cruzerという商標のもとで一連のフラッシュドライブを提供し、このフラッシュドライブはユニバーサルシリアルバス(USB)プラグを備える小型の手持ち式メモリシステムで、これをホストのUSB差込口に差し込むことによりホストと接続する。これらのメモリカードとフラッシュドライブはコントローラを内蔵し、このコントローラがホストと連係し、内蔵されたフラッシュメモリの動作を制御する。
論理ブロック(LBA)メモリ/ホストインターフェイスによる操作
図7A、図8A、および図9Aには、ホストおよびメモリシステム間の一般的な論理インターフェイスがそれぞれ異なる形式で示されている。ホストによって生成されるデータファイルには、通常ならばマルチセクタデータからなるクラスタの単位で連続システムアドレス空間(LBAインターフェイス)の論理アドレスがホストによって割り振られる。そして、メモリシステムはこれらの論理アドレスを認識し、データが実際に蓄積されるメモリセルブロックの物理アドレスにマップする。
図7B、図8B、および図9Bに見られるホストと大量データ蓄積用メモリシステムとの各種インターフェイスは、論理アドレス空間の使用を解消する。代わりにホストは、一意なファイルID(またはその他の一意な参照符)とファイル内でのデータ単位(バイト等)によるオフセットアドレスとによって各ファイルのデータを論理的にアドレスする。これらのアドレスはメモリシステムコントローラへ直接提供され、メモリシステムコントローラは、各ホストファイルのデータの物理的な蓄積位置について独自のテーブルを管理する。これは前に相互参照した特許出願の主題にあたる操作である。このファイルインターフェイスは、図2〜図6との関係で前述したものと同じメモリシステムで実装できる。図7B、図8B、および図9Bのファイル本位インターフェイスと図7A、図8A、および図9AのLBAインターフェイスとの主な違いは、メモリシステムがホストシステムと通信しファイルデータを蓄積する方法にある。
図7C、図8C、および図9Cは、図7B、図8B、および図9Bのダイレクトデータファイル手法に図7A、図8A、および図9Aに見られるタイプのLBAインターフェイスを組み合わせたオペレーティングシステムを、それぞれ異なる形式で示すものである。図7Cの「フラッシュ最適化ファイルシステム」の動作は図7Bの「ダイレクトファイル蓄積バックエンドシステム」と基本的に同じだが、ファイルデータは図7Cに見られるLBAインターフェイスの連続アドレス空間の中で論理ブロックにマップされ、図7Bに見られるNANDフラッシュの物理メモリセルブロックにはマップされない。図7CのLBAインターフェイスと「LBA−物理バックエンドシステム」は、図7Aのシステムと共通している。図7Cのシステムでは、LBAインターフェイスの前にダイレクトファイル−ブロックアドレス割り当てが行われるが、NANDフラッシュメモリの物理ブロックではなく、LBAインターフェイスの連続アドレス空間に含まれる論理ブロックアドレスを扱う。
1.蓄積データのセクタ数による物理ページサイズ
2.ともにリンクされ各メタページを形成するページ数によるメタページサイズ
3.1メタブロック当たりのページ数
4.物理メタブロックの第1のページへマップされる最下位論理アドレス
この節では、個々のファイルを連続論理アドレス空間の論理ブロックにマップする手法の代表的な実施例をさらに詳しく説明する。この手法のいくつかの態様は、基本的に同じ機能である図7Cの「フラッシュ最適化ファイルシステム」と、図8Cの「論理ブロックアドレスへのファイルの割り振り」と、図9Cの「ファイル/オフセット−論理アドレス変換」173’との関係で既に説明している。
メモリに新規のデータファイルをプログラムするときには空いている論理ブロックにデータが書き込まれ、この書き込みはこのブロック内の最初の位置から始まって残りの位置を順次進んでいく。データは、ファイルにおけるこのデータのオフセット順序にかかわりなく、ホストからの受信順序に沿って論理ブロック内にプログラムされる。プログラミングは、ファイルの全データが書き込まれるまで続く。ファイル内のデータ量が1論理ブロックの容量を上回る場合は、最初のブロックが一杯になった時点で第2の空の(消去済み)ブロックでプログラミングを継続する。第2の論理ブロックは第1の論理ブロックと同様にプログラムされ、最初の位置からファイルの全データが割り振られるか、第2のブロックが一杯になるまで続く。ファイルのデータが残っている場合は、3番目以降のブロックにプログラムする。1ファイルのデータを蓄積する複数の論理ブロックまたはメタブロックが隣り合っているとは限らない。説明を平易にするため、ここで用いる用語、論理「ブロック」は別段の断りがない限り、システムでメタブロックを使用するか否かに応じて、メモリシステムにおける物理ブロックの最小消去単位と同じ容量を持つ論理ブロックか、通常まとめて消去される多重ブロック物理メタブロックに対応する多重ブロック論理「メタブロック」を指すものとする。
論理ブロックのタイプは、そこに蓄積されたファイルデータの構造に基づいて認識される。連続アドレス空間の中でアドレスを持つ各ファイルは、数ある状態のいずれか1つをとり、各ファイルの状態は、ファイルデータを蓄積するブロックの数とタイプによって決まる。ファイルデータの書き込みにあたっては、好ましくはファイルの現在状態とある状態から別の状態に至る許容遷移とを規制することにより、ある特定のファイルのデータのほかに1つ以上の別のファイルのデータも含むブロックの数を制限する。これにより論理ブロックの有効利用を促進し、新規データやコピーデータの受け付けにあたって十分な消去済みブロックを確保するために後ほど行われる再生操作の頻度を抑える。
・「ファイルブロック」は完全にプログラムされ、1ファイルの有効データを意味する。ある程度の用済みデータのアドレスを含むこともある。
・「プログラムブロック」は部分的にプログラムされ、単独ファイルのみの有効データを意味する。このブロックにはある程度の消去済み容量が残っている。ある程度の用済みデータのアドレスを含むこともある。
・「共通ブロック」は部分的にプログラムされ、2ファイル以上の有効データを意味する。ある程度の消去済み容量が残っている。ある程度の用済みデータのアドレスを含むこともある。
・「フル共通ブロック」は完全にプログラムされ、2ファイル以上の有効データを意味する。ある程度の用済みデータを意味することもある。
・「パーシャルブロック」はある程度の未プログラム容量と、1ファイル以上の有効データのアドレスを含み、ある程度の用済みデータを意味することがある。例えば、プログラムブロックや共通ブロックがパーシャルブロックにあたる。
・「用済みブロック」は、ある程度の用済みデータのアドレスを含むファイルブロックまたはフル共通ブロックである。用済みブロックには消去済み容量がなく、有効データと用済みデータの両方を意味する。
・「無効ブロック」の中に有効データはない。無効ブロックは少なくともある程度の用済みデータのアドレスを含むほか、消去済み容量を含むこともあるが、有効データは意味しない。
図18の状態遷移ラベルの意味は次のとおりである。
A−ファイルのアクティブブロックとして消去済みブロックが割り当てられる。
B−パーシャルブロックが満杯になった。
C−ファイルのアクティブブロックとしてパーシャルブロックが割り当てられる。
D−このファイルのパーシャルブロックが別のファイルのアクティブブロックとして割り当てられる。
E−アクティブブロックとして割り当てられた消去済みブロックに対しデータ遷移が行われる。
F−アクティブブロックとして割り当てられたパーシャルブロックに対しデータ遷移が行われる。
1.ファイルがホストによって削除される。
2.ファイル内のデータがホストによって削除される。
3.書き込み済みのファイルデータがホストによって更新される。
4.再生操作中にファイルデータが再配置される。
図20の状態遷移ラベルの意味は次のとおりである。
G−パーシャルブロックの中でこのファイルの全データが用済みになった。
H−フル共通ブロックの中でこのファイルの全データか他の全てのファイルの全データが用済みになった。
I−パーシャルブロックの中で他の全てのファイルの全データが用済みになった。
J−パーシャルブロックが再生ブロックとして選ばれる。
K−フル共通ブロックが再生ブロックとして選ばれる。
連続論理アドレス空間の論理ブロックにファイルデータを揃えるには2通りの方法がある。前に相互参照した特許出願で説明されている物理メモリセルブロック上で作動するダイレクトデータファイルシステムの場合は、好ましくは新規ファイルの先頭を消去済みメモリセルブロックの先頭に揃える。図24に示すように、ダイレクトデータファイルシステムで論理ブロックを扱う場合にもこれは可能である。3つのファイルA、B、およびCが論理ブロック1〜7に蓄積された状態で描かれている。図24から分かるように、これらのファイルのいずれか1つで全てのデータが書き込まれると、ファイルの最終部分はパーシャルブロックのごく一部分を占めることになる。
1.ファイルの削除か更新によってブロック内のデータが用済みになる、または
2.ブロックが未プログラム容量を持つパーシャルブロックである。
新規ファイルデータの書き込み速度を一定に保つため、再生プロセスにあてる時間はできるだけ一定であることが好ましい。ファイル書き込みプロセスで発生し再生プロセスで処理しなければならないパーシャルブロックの数は予測できないため、これを果たすのは困難である。
前述したように、新規データ蓄積のためのブロックにおける未使用容量再生はブロック管理の一部として行われる。これは、メモリシステムに蓄積されたデータ量がメモリシステムの容量を遥かに下回る場合は特に問題にならないが、メモリシステムはデータで一杯の状態を想定して設計されることが好ましい。これは、未使用容量を再生しながら、用済みデータだけを含むブロックと、有効データのほかにある程度の用済みデータおよび/または未書き込みページを持つ他のブロックを処理することを意味する。目標は、メモリシステムの蓄積容量をできるだけ余すところなく利用すると同時に、システム性能への悪影響を最小限に抑えることにある。
再生利得=(S−kE)/V (1)
式中、Sは合計データ蓄積ページ数によるブロックサイズであり、Eはデータを書き込める消去済み容量のページ数であり、Vは別のブロックへ移す必要がある有効データを含むページ数である。定数kはブロックの消去済み容量の有用性を重み付けするためのものであるが、1に設定することもできる。kEの値が増すにつれ再生利得は低下する。Vの値が増す場合も再生利得は低下する。ステップ703では、再生利得の値が最も高いパーシャルブロックが再生ブロックとして選ばれる。これとは別の数式で項EおよびVを使って再生利得を定義し、有効データを保持することのシステム動作にとってのデメリットと消去済み容量のメリットとでバランスをとることもできる。再生利得はブロックに変化があるたびに、例えばブロックの消去済み容量にデータが書き込まれるたびに、計算し、ファイルディレクトリやFITで管理する情報の一部として蓄積することができる。
これまで本発明の様々な態様をその代表的な実施形態との関係で説明してきたが、本発明が添付の特許請求の範囲内で保護を受ける権利があることは理解される。
Claims (23)
- システム内でファイルオブジェクトのデータを識別する方法であって、
論理ブロックに分割されたシステム論理アドレス空間を管理するステップと、
1つ以上の前記論理ブロックの中で前記ファイルオブジェクトの各々に一意なアドレスを割り当てるステップであって、前記論理ブロックは2つ以上のファイルオブジェクトのアドレスを各々収容できる、一意なアドレスを割り当てるステップと、
単一のファイルオブジェクトが割り当てられていて第2のファイルオブジェクトのデータをも収容する論理ブロックの数を制限するステップと、
を含む方法。 - 請求項1記載の方法において、
前記ファイルオブジェクトの前記データを追加的に提供し、かつメモリシステムとの接続に適した外部インターフェイスで前記論理アドレス空間を利用するホストシステムにおいて、前記方法を遂行するステップをさらに含む方法。 - 請求項1記載の方法において、
外部供給元から前記ファイルオブジェクトの前記データを追加的に受信し、かつ不揮発性データ蓄積媒体とのインターフェイスとして前記メモリシステムの中で前記論理インターフェイスアドレス空間を利用するメモリシステムにおいて、前記方法を遂行するステップをさらに含む方法。 - 請求項1記載の方法において、
ホストに取り外し可能な状態で接続されることに適し、かつメモリシステムに取り外し可能な状態で接続されることに適した処理装置にて、前記方法を遂行するステップをさらに含み、前記ホストは前記データファイルオブジェクトを供給し、前記メモリシステムは前記処理装置とのインターフェイスで前記論理アドレス空間を利用する方法。 - 請求項1〜4のいずれか記載の方法において、
論理ブロックの数を制限するステップは、単一のデータファイルオブジェクトが書き込まれていて第2のファイルオブジェクトのデータをも収容する論理ブロックの数を所定の最大数に制限するステップを含む方法。 - 請求項5記載の方法において、
前記所定の最大数は、2である方法。 - 再プログラミングに先立ちまとめて消去できるメモリセルブロックを有するタイプの不揮発性メモリシステムとの接続に適したインターフェイスを通じて、ホストシステムがファイルオブジェクトのデータを転送する方法であって、
論理ブロックに分割された論理アドレス空間をインターフェイスで管理するステップと、
1つ以上の前記論理ブロックの中で前記ファイルオブジェクトの各々に含まれるデータのアドレスを指定するステップであって、前記論理ブロックは2つ以上のファイルオブジェクトを各々収容できるが、単一ファイルオブジェクトのデータで部分的にしか満たされていない論理ブロックの数は少なくとも1つの事前設定制限未満に制限し、前記部分的に満たされたブロックに1つ以上の別のファイルオブジェクトのデータが書き込まれるようにする、データのアドレスを指定するステップステップと、
を含む方法。 - 請求項7記載の方法において、
前記論理アドレス空間の前記論理ブロックのサイズを、前記ホストシステムとの接続に適したメモリシステムの前記各メモリセルブロックと同じデータ蓄積容量にそれぞれがなるように構成するステップをさらに含む方法。 - 請求項7記載の方法において、
1つ以上の前記論理ブロックにおける前記各ファイルオブジェクトのデータの前記アドレスは、前記ホストが前記インターフェイスを通じて前記ファイルオブジェクトのデータを送信するときに指定される方法。 - データの再プログラミングに先立ちまとめて消去できるメモリセルブロックを有する不揮発性メモリシステムで、ファイルオブジェクトのデータを蓄積する方法であって、
論理アドレス空間は、前記各メモリセルブロックの特性に一致する少なくとも1つの特性を各々が有する論理ブロックに分割され、
各ファイルオブジェクトのデータには、1つ以上の前記論理ブロックの中でアドレスが割り当てられ、前記論理ブロックは、2つ以上のファイルオブジェクトのデータのアドレスを各々収容できるが、ある特定の単一ファイルオブジェクトのデータに加え別のファイルオブジェクトのデータをも収容する論理ブロックの数は制限され、かつ
前記論理ブロックのアドレスは、前記メモリシステムの中でメモリセルブロックのアドレスにマップされる方法。 - 請求項10記載の方法において、
前記特定のファイルオブジェクトのデータにアドレスを割り当てることは、前記特定のファイルオブジェクトのデータで部分的にしか満たされていない論理ブロックの数を所定の数に制限することを含む方法。 - 請求項11記載の方法において、
前記所定の数は、2である方法。 - 請求項10記載の方法において、
前記少なくとも1つの一致する特性は、前記各論理ブロックのデータ蓄積容量が、前記各メモリセルブロックのデータ蓄積容量と同じであることを含む方法。 - 請求項10記載の方法において、
前記少なくとも1つの一致する特性は、
前記各論理ブロックの前記データ蓄積容量が、前記各メモリセルブロックのデータ蓄積容量と同じであることと、
前記各論理ブロックが、データの書き込みのため、前記メモリセルブロックの複数のページと同じデータ蓄積容量を有する複数のページに分割されることと、
前記各論理ブロックの最下位ページアドレスが、前記各メモリセルブロックの第1のページにマップされることと、
を含む方法。 - 再プログラミングに先立ちまとめて消去できるメモリセル単位を有するタイプの不揮発性メモリシステムとの接続に適したインターフェイスを通じて、ホストシステムがファイルオブジェクトのデータを転送する方法であって、
論理ブロックに分割された論理アドレス空間をインターフェイスで管理するステップと、
各ブロック内でアドレスが指定されたファイルデータの構造に基づき、1セットの複数の論理ブロックタイプを指定するステップと、
各ファイルのデータを蓄積する1つ以上の論理ブロックのタイプの組み合わせに基づき、1セットの複数の許容ファイル状態を指定するステップと、
前記論理ブロック内でアドレスが指定された各データファイルの前記ファイル状態の記録を管理するステップと、
単一ファイルのデータのアドレスを、前記記録における前記単一ファイルの前記現在状態に従い選択される1タイプの論理ブロックに指定するステップと、
を含む方法。 - 請求項15記載の方法において、
前記複数の指定データブロックタイプは、ただ1つのファイルのデータを単独の論理ブロックに蓄積する第1の複数のタイプと、2つ以上のファイルのデータを単独の論理ブロックに蓄積する第2の複数のタイプとを含み、前記許容ファイル状態により、単一の前記ファイルのアドレスを指定できる前記第2の複数のタイプの最大ブロック数は制限される方法。 - コンピュータシステムであって、
別個のブロックに分割された連続論理アドレス空間のアドレスによってデータファイルが識別されるインターフェイスと、
前記インターフェイスに作動可能な状態で接続され、これにより各ファイルのデータが選択された1つ以上の前記論理ブロックのアドレスによって識別され、いずれか1つの前記ファイルのデータを部分的に収容するブロックの数を事前設定制限未満に維持するプロセッサと、
を備えるコンピュータシステム。 - 請求項17記載のシステムにおいて、
前記プロセッサは、前記ファイルのデータのアドレスで部分的に満たされた論理ブロックの数に応じて、複数の指定状態のいずれか1つを前記各ファイルに割り当てるようにさらに作動するシステム。 - 請求項17記載のシステムにおいて、
前記プロセッサは、前記論理ブロック内でデータにアドレスが指定された各ファイルに状態を割り当て、かつ前記論理ブロックのうちのある特定のファイルのデータにアドレスを指定するいずれか1つの論理ブロックを、前記特定のファイルの状態に基づき選択するようにさらに作動するシステム。 - 請求項19記載のシステムにおいて、
前記プロセッサは、前記論理ブロック内でデータにアドレスが指定された各ファイルに状態を割り当てるようにさらに作動し、これは少なくとも部分的には、前記ファイルのデータのアドレスで部分的に満たされた論理ブロックの数に基づくシステム。 - 請求項20記載のシステムにおいて、
前記プロセッサは、前記論理ブロック内でデータにアドレスが指定された各ファイルに状態を割り当てるようにさらに作動し、これは、前記ファイルのデータのアドレスで部分的に満たされていて追加のアドレスを指定できる未使用容量をも収容する論理ブロックの数にさらに基づくシステム。 - 請求項20記載のシステムにおいて、
前記プロセッサは、前記論理ブロック内でデータにアドレスが指定された各ファイルに状態を割り当てるようにさらに作動し、これは、前記ファイルのデータのアドレスで部分的に満たされていて1つ以上の別のファイルのデータのアドレスをも収容するブロックの数にさらに基づくシステム。 - 請求項17記載のシステムにおいて、
前記インターフェイスは、外部インターフェイスを含むシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/616,242 | 2006-12-26 | ||
US11/616,236 US7739444B2 (en) | 2006-12-26 | 2006-12-26 | System using a direct data file system with a continuous logical address space interface |
US11/616,242 US8046522B2 (en) | 2006-12-26 | 2006-12-26 | Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks |
US11/616,236 | 2006-12-26 | ||
PCT/US2007/088165 WO2008082996A1 (en) | 2006-12-26 | 2007-12-19 | Use of a direct data file system with a continuous logical address space interface |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010515162A true JP2010515162A (ja) | 2010-05-06 |
JP2010515162A5 JP2010515162A5 (ja) | 2011-02-10 |
JP5266250B2 JP5266250B2 (ja) | 2013-08-21 |
Family
ID=39301492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009544199A Expired - Fee Related JP5266250B2 (ja) | 2006-12-26 | 2007-12-19 | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2097825B1 (ja) |
JP (1) | JP5266250B2 (ja) |
KR (1) | KR101464199B1 (ja) |
TW (1) | TW200844740A (ja) |
WO (1) | WO2008082996A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014504381A (ja) * | 2010-05-19 | 2014-02-20 | カムレッシュ ガンディー | データオブジェクトの構成 |
WO2015008358A1 (ja) * | 2013-07-18 | 2015-01-22 | 株式会社日立製作所 | 情報処理装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8180995B2 (en) * | 2009-01-21 | 2012-05-15 | Micron Technology, Inc. | Logical address offset in response to detecting a memory formatting operation |
EP2425324A1 (en) * | 2009-04-27 | 2012-03-07 | Kamlesh Gandhi | Description |
US9311229B2 (en) | 2011-03-29 | 2016-04-12 | Blackberry Limited | System and method for managing flash memory |
US9846567B2 (en) | 2014-06-16 | 2017-12-19 | International Business Machines Corporation | Flash optimized columnar data layout and data access algorithms for big data query engines |
US9952808B2 (en) | 2015-03-26 | 2018-04-24 | International Business Machines Corporation | File system block-level tiering and co-allocation |
TWI553479B (zh) * | 2016-01-29 | 2016-10-11 | 國立交通大學 | 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 |
TWI676176B (zh) | 2018-10-25 | 2019-11-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI760697B (zh) * | 2020-02-19 | 2022-04-11 | 群聯電子股份有限公司 | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10326227A (ja) * | 1997-05-23 | 1998-12-08 | Nec Corp | フラッシュメモリを記憶媒体とする記憶装置の管理方式 |
JP2008530710A (ja) * | 2005-02-16 | 2008-08-07 | サンディスク コーポレイション | フラッシュメモリにおける直接データファイル記憶 |
JP2009503745A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | ブロック管理を伴う不揮発性メモリ |
JP2010515163A (ja) * | 2006-12-26 | 2010-05-06 | サンディスク コーポレイション | ダイレクトデータファイルメモリシステムにおけるlbaインターフェイスの管理 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0675502B1 (en) | 1989-04-13 | 2005-05-25 | SanDisk Corporation | Multiple sector erase flash EEPROM system |
US5619690A (en) * | 1993-06-21 | 1997-04-08 | Hitachi, Ltd. | Computer system including a computer which requests an access to a logical address in a secondary storage system with specification of a local address in the secondary storage system |
US5809558A (en) | 1994-09-29 | 1998-09-15 | Intel Corporation | Method and data storage system for storing data in blocks without file reallocation before erasure |
US6426893B1 (en) | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
EP1704484A2 (en) | 2003-12-30 | 2006-09-27 | SanDisk Corporation | Non-volatile memory and method with non-sequential update block management |
US20050144363A1 (en) | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
US7383375B2 (en) | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
US7433993B2 (en) | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US8607016B2 (en) | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
US7315917B2 (en) | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
KR101378031B1 (ko) * | 2005-08-03 | 2014-03-27 | 샌디스크 테크놀로지스, 인코포레이티드 | 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리 |
-
2007
- 2007-12-19 EP EP07869536.8A patent/EP2097825B1/en not_active Not-in-force
- 2007-12-19 WO PCT/US2007/088165 patent/WO2008082996A1/en active Application Filing
- 2007-12-19 JP JP2009544199A patent/JP5266250B2/ja not_active Expired - Fee Related
- 2007-12-19 KR KR1020097015016A patent/KR101464199B1/ko not_active IP Right Cessation
- 2007-12-26 TW TW096150398A patent/TW200844740A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10326227A (ja) * | 1997-05-23 | 1998-12-08 | Nec Corp | フラッシュメモリを記憶媒体とする記憶装置の管理方式 |
JP2008530710A (ja) * | 2005-02-16 | 2008-08-07 | サンディスク コーポレイション | フラッシュメモリにおける直接データファイル記憶 |
JP2009503745A (ja) * | 2005-08-03 | 2009-01-29 | サンディスク コーポレイション | ブロック管理を伴う不揮発性メモリ |
JP2010515163A (ja) * | 2006-12-26 | 2010-05-06 | サンディスク コーポレイション | ダイレクトデータファイルメモリシステムにおけるlbaインターフェイスの管理 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014504381A (ja) * | 2010-05-19 | 2014-02-20 | カムレッシュ ガンディー | データオブジェクトの構成 |
WO2015008358A1 (ja) * | 2013-07-18 | 2015-01-22 | 株式会社日立製作所 | 情報処理装置 |
JP5969130B2 (ja) * | 2013-07-18 | 2016-08-17 | 株式会社日立製作所 | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5266250B2 (ja) | 2013-08-21 |
KR101464199B1 (ko) | 2014-11-21 |
WO2008082996A1 (en) | 2008-07-10 |
EP2097825A1 (en) | 2009-09-09 |
KR20090108694A (ko) | 2009-10-16 |
EP2097825B1 (en) | 2013-09-04 |
TW200844740A (en) | 2008-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8046522B2 (en) | Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks | |
US7739444B2 (en) | System using a direct data file system with a continuous logical address space interface | |
US8209461B2 (en) | Configuration of host LBA interface with flash memory | |
US8166267B2 (en) | Managing a LBA interface in a direct data file memory system | |
US7917686B2 (en) | Host system with direct data file interface configurability | |
JP5266250B2 (ja) | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 | |
US8055832B2 (en) | Management of memory blocks that directly store data files | |
US7949845B2 (en) | Indexing of file data in reprogrammable non-volatile memories that directly store data files | |
US7669003B2 (en) | Reprogrammable non-volatile memory systems with indexing of directly stored data files | |
US7877540B2 (en) | Logically-addressed file storage methods | |
KR101272642B1 (ko) | 플래시 메모리시스템 내의 데이터 저장 용량의 리클레이밍 | |
US8880483B2 (en) | System and method for implementing extensions to intelligently manage resources of a mass storage system | |
US20080155175A1 (en) | Host System That Manages a LBA Interface With Flash Memory | |
KR101378031B1 (ko) | 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리 | |
US20070136553A1 (en) | Logically-addressed file storage systems | |
KR20080032636A (ko) | 논리 어드레스 공간 전반에 걸쳐 그리고 직접 데이터 파일기반 위에서 동작하는 인터페이싱 시스템 | |
US20090164745A1 (en) | System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System | |
JP2010515163A (ja) | ダイレクトデータファイルメモリシステムにおけるlbaインターフェイスの管理 | |
JP2009503744A (ja) | 予定再生操作を伴う不揮発性メモリ | |
JP4441577B2 (ja) | 固定サイズ格納ブロックを有するメモリシステムにおける変換データ単位格納 | |
WO2008082999A2 (en) | Configuration of host lba interface with flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101217 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101217 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20120730 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121211 |
|
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: 20130409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130502 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5266250 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |