JP2001521220A - 改善されたフラッシュファイルシステム - Google Patents
改善されたフラッシュファイルシステムInfo
- Publication number
- JP2001521220A JP2001521220A JP2000517345A JP2000517345A JP2001521220A JP 2001521220 A JP2001521220 A JP 2001521220A JP 2000517345 A JP2000517345 A JP 2000517345A JP 2000517345 A JP2000517345 A JP 2000517345A JP 2001521220 A JP2001521220 A JP 2001521220A
- Authority
- JP
- Japan
- Prior art keywords
- physical
- unit
- virtual
- block
- units
- 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
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
らに詳細には、フラッシュディスクとして機能することができるページモードフ
ラッシュデバイスで情報の格納および検索を行うシステムに関する。
気的消去可能プログラマブル読出し専用メモリ(EEPROM)を含み、機能お
よび性能に関してEPROMメモリと類似である不揮発性メモリであり、メモリ
のページを消去する回路内部においてプログラム可能な操作を実現することがで
きる付加的な機能を備えている。フラッシュデバイスは、従来の磁気記憶ディス
クに比べて、比較的廉価で、比較的電力が少なくて済むという利点を備えている
。しかし、フラッシュデバイスにおいて、その領域の以前のページを消去せずに
、以前に書込んだ領域に再書込みを行うことは実際的ではない。フラッシュデバ
イスにはこのような制限があるために代表的な既存のオペレーティングシステム
プログラムと共存することはできない。データが以前に書込まれた領域を最初に
消去しない限り、フラッシュデバイスの中にあるメモリの領域にデータを書込む
ことができないからである。
システムプログラムの修正を行うことなく、フラッシュデバイスを既存のコンピ
ュータオペレーティングプログラムによって処理することができることであった
。しかし、このような従来技術プログラムはすべて、欠点を持っている。たとえ
ば、あるプログラムはフラッシュメモリを「追記型」装置として作動させる。こ
の従来のソフトウェア製品は、以前に書込んだ記憶位置を再利用することができ
ない。結局すべての位置が書込まれた場合には、特定の利用者の介在なしに、メ
モリをそれ以上使用することはできない。他の従来技術プログラムは、SanD
iskによって提案されたプログラムのように、新たなデータがページに書込ま
れることになるたびに、メモリページ全体を消去し、再書込みを行う。このよう
なシステムは複数の消去サイクルを必要とするという欠点があり、これらのサイ
クルは比較的遅い上、非効率的であり、物理的な媒体そのものの急速な劣化を引
き起こす。
FFS)が米国特許第5,404,485号に開示され、参照として本願に包含
される。FFSはフラッシュデバイスにデータ格納およびデータ操作のシステム
を提供し、これらのデバイスに磁気ディスクを基にしたデータ格納をエミュレー
トすることができるようにした。上記のように、比較的廉価であると共に電力消
費が少ないため、フラッシュデバイスはデータ格納、特にラップトップのポータ
ブルコンピュータに好都合な選択となる。FFSは磁気ディスク記憶装置の代わ
りとして作用するフラッシュデバイスの能力を強化する。さらに言えば、FFS
は、米国特許第5,404,485号に開示されたように、きわめて有用である
ことが判明したため、データ形式の仕様は、フラッシュ変換層(FTL)と呼ば
れる規格として、PCMCIA(Personal Computer Mem
ory Card International Association)お
よびJEIDA(日本電子工業振興協会)の委員会によって採用された。
を表している。仮想マップは、フラッシュデバイス内部の読取り/書込みブロッ
クの物理アドレスをそのブロックの仮想アドレスと関連付ける表である。これら
のブロックのそれぞれは比較的小さいため、512バイト、すなわち仮想マップ
自体のサイズは相当大きい。FFSはまた、フラッシュEEPROM装置に仮想
マップの容量に格納および維持し、仮想マップの格納に必要な他のメモリの量を
最小限に抑える方法を含む。
ュレータに変形する場合に特にうまくいくことが判明し、産業規格として採用さ
れたほどである。しかしながら、FFSは、さらに新たなフラッシュデバイス技
術の要件をすべて満たすことはできない。特に、FFSはNANDおよびAND
フラッシュ技術の場合にはうまくいかない。
消去するシステムの欠点を克服しようとする試みの別の例は、米国特許第5,4
79,638号に開示される。米国特許第5,479,638号のシステムにお
いて、書込み済みのブロックに対してさらにプログラムの書込みがさらに必要で
ある場合には、特定の読出し/書込みブロックの物理的な位置がシフトされる。
しかし、このシステムは、一度に512バイトの単一の読出し/書込みブロック
を消去することができるフラッシュデバイスを利用して操作されることができる
にすぎないという欠点を持っている。このような要件はハードウェアレベルで実
装されるため、このシステムはまた、さらに新たなNANDおよびANDフラッ
シュ技術に対して使用されることはできない。
る。第一に、消去可能なユニットサイズは、以前のフラッシュデバイスの64K
Bとは対照的に、NANDおよびANDの場合には約8KBと小さめである。第
二に、単一バイトを消去するために必要な時間として測定された場合であっても
、NANDおよびANDの場合、消去時間が相当速い。第三に、フラッシュメモ
リはNANDおよびANDのために長さ256または512バイトのページに分
割され、ハードウェアデバイス自体の不変の特性である。「ページ」および「ブ
ロック」の特有の特性はある程度異なるが、ここで使用している「ページ」なる
語は、以前のフラッシュ技術で使用される「ブロック」なる語と概ね同意義であ
ることに留意すべきである。このような特徴は、NANDおよびAND技術に基
づくフラッシュデバイスの動作に非常に密接な関係がある。
固定オーバヘッドを備える。対照してみると、従来のフラッシュ技術における書
込み動作のためのオーバヘッドは、書込まれたバイト数に比例した。第二に、各
ページが特にアドレス呼出し可能である複数の予備バイトを有するように、NA
NDおよびANDにおけるフラッシュメモリは構成される。このような予備バイ
トは、フラッシュメモリシステムに関する情報の格納に好都合な位置にある。最
後に、消去される前にページを書込むことができる回数に制限がある。事前の消
去を行うことなくさらに書込む場合は信頼性に欠けることを考慮して、この制限
は比較的低く、8または10回である。したがって、ページモードメモリは、成
功するデータの格納および検索に対して、重要な利点および新たな難題の両方を
有する。
ム、すなわちFFSは、ページモードにおけるフラッシュメモリの動作に関して
、重大な欠点がある。特に、ページモードプログラミングによって課せられる制
限のために、FFSはNANDおよびANDなどのページモードフラッシュ技術
では最適でない性能を例証する。さらに、ブロックごとの消去動作に必要な要件
のために、米国特許第5,479,638号に開示されたシステムも、このよう
なフラッシュ技術に対して使用することができない。
あるが、ページモードフラッシュ技術の性能を最適化するようなNANDおよび
ANDフラッシュデバイスの上でデータ格納を処理するためのシステムが必要で
あり、そのようなシステムを備えることは大いに好都合であると思われる。
込みの部分にのみ書込むことができるため、メモリの書込み済みの部分を未書込
みの状態にするために消去しなければならず、データの読込みまたは書込み用の
メモリ部分のサイズは、消去用の最小メモリ部分のサイズとは異なる方法を提供
する。本方法は、(a)メモリの複数の物理ユニットを提供するステップであっ
て、物理ユニットのそれぞれが消去用の最小メモリ部分であり、物理ユニットの
それぞれが物理ユニット番号によって表され、物理ユニットのそれぞれが複数の
物理ブロックに分割され、複数の物理ブロックのそれぞれがデータの読出しおよ
び書込み用のメモリ部分であり、複数の物理ブロックのそれぞれが物理ユニット
内部の物理ブロックオフセットによって表されるようなステップと、(b)メモ
リの複数の仮想ユニットを提供するステップであって、各仮想ユニットが仮想ユ
ニット番号によって表され、仮想ユニットのそれぞれが複数の仮想ブロックを特
徴付け、仮想ブロックのそれぞれが仮想ユニット内部の仮想ブロックオフセット
によって表されるようなステップと、(c)各仮想ユニットを少なくとも1つの
物理ユニットにマッピングするための仮想マップを提供するステップと、(d)
仮想ユニット内部の各仮想ブロックを少なくとも1つの物理ユニット内部の1つ
の物理ブロックにマッピングするステップと、を含む。
信するステップと、(f)仮想ブロックを含む仮想ユニットを突き止めるステッ
プと、(g)仮想ユニットにマッピングされる物理ユニット内部の書込み可能ブ
ロックを突き止めるステップと、(h)書込み可能な物理ブロックにデータを書
込むステップと、を含むことが好ましい。本方法はさらに、(I)書込み済みの
物理ユニットにおいて未書込みの物理ブロックを突き止めることができない場合
には、未書込みの物理ユニットを突き止めるステップと、(j)未書込みの物理
ユニットの書込み可能な物理ブロックにデータを書込むステップと、(k)仮想
ユニットを未書込みの物理ユニットに追加的にマッピングすることによって仮想
マップを更新するステップであって、仮想ユニットが未書込みの物理ユニットお
よび書込み済みの物理ユニットに対応し、未書込みの物理ユニットおよび書込み
済みの物理ユニットが物理ユニットのチェーンを形成するようになっているステ
ップと、を含むことがさらに好ましい。未書込みの物理ユニットの書込み可能な
物理ブロックが物理ブロックオフセットを備え、物理ブロックオフセットがマッ
ピングされる仮想ユニットの仮想ブロックオフセットに対応することが最も好ま
しい。また、本方法はさらに、(l)書込み済みの物理ユニットにおいて未書込
みの物理ブロックを突き止めることができない場合には、チェーンにおいて複数
の物理ユニットに対応する第2の仮想ユニットを突き止めるステップと、(m)
チェーンにおいて最終物理ユニットを突き止めるステップと、(n)書込み済み
の物理ユニットの物理ブロックのそれぞれから最終物理ユニットの書込み可能な
物理ブロックまで、データを移動するステップであって、書込み可能な物理ブロ
ックが書込み済みの物理ユニットの物理ブロックと実質的に同一のブロックオフ
セットを備えるステップと、(o)仮想ユニットを最終物理ユニットにマッピン
グすることによって仮想マップを更新するステップであって、仮想ユニットが実
質的に最終物理ユニットにのみ対応するようになっているステップと、を含むこ
とが最も好ましい。本方法はまた、(p)最終物理ユニットを除いて、チェーン
における書込み済みの物理ユニットの実質的にすべてを消去するステップをさら
に含むことが好ましい。
理ユニットが利用可能でない場合には、再構成のために未書込みの物理ユニット
を割当てるステップと、(m)書込み済みの物理ユニットの物理ブロックのそれ
ぞれから未書込みの物理ユニットの書込み可能な物理ブロックまでデータを移動
するステップと、(n)仮想ユニットを未書込みの物理ユニットに仮想ユニット
をマッピングすることによって仮想マップを更新するステップであって、仮想ユ
ニットが実質的に未書込みの物理ユニットにのみ対応するようになっているステ
ップと、を含むことが好ましい。本方法はさらに、(o)書込み済みの物理ユニ
ットのすべてを消去するステップを含むことがさらに好ましい。
物理ユニットにおいて未書込みの物理ブロックを突き止めることができない場合
には、物理ユニットのチェーンを形成するために未書込みの物理ユニットを割当
てるステップであって、未書込みの物理ユニットがチェーンの最終物理ユニット
であるようになっているステップと、(j)最終物理ユニットにおける未書込み
の物理ブロックにデータを書込むステップと、(k)ステップ(j)で書込まれ
たデータを除いて、物理ブロックのそれぞれから未書込みの物理ユニットの書込
み可能なブロックにデータを移動するステップと、(m)書込み済みの物理ユニ
ットに仮想ユニットをマッピングすることによって仮想マップを更新するステッ
プであって、仮想ユニットが書込み済みの物理ユニットに対応するようになって
いるステップと、を含む。
メモリの未書込みの部分にのみデータを書込むことができるため、未書込みの状
態にするためにメモリの書込み済みの部分を消去しなければならない方法を提供
する。本方法は、(a)複数の物理ブロックに分割されることになっている複数
の物理ユニットを提供するステップであって、物理ユニットのそれぞれが物理ユ
ニット番号を備え、物理ブロックのそれぞれが物理ユニット内部に物理ブロック
オフセットを備えるステップと、(b)複数の仮想ブロックに分割されることに
なっている複数の仮想ユニットを提供するステップであって、仮想ユニットのそ
れぞれが仮想ユニット番号を備え、仮想ブロックのそれぞれが仮想ユニット内部
に仮想ブロックオフセットを備え、各仮想ユニットが少なくとも1つの物理ユニ
ットにマッピングされるステップと、(c)仮想ブロックでデータを書込むため
の書込み命令を受信するステップと、(d)仮想ブロックオフセットを有する仮
想ブロックを含む仮想ユニットを決定するステップと、(e)仮想ユニットに対
応する物理ユニットを突き止めるステップと、(f)物理ユニット内部において
物理ブロックを突き止めるステップと、(g)物理ブロックが未書込みかどうか
を決定するステップと、(h)物理ブロックが未書込みの場合に限り、物理ブロ
ックにデータを書込むステップと、(i)別法として、物理ブロックが未書込み
でない場合には、未書込みの物理ユニットを割当てるステップと、(j)未書込
みの物理ユニットの内部において書込み可能な物理ブロックを突き止めるステッ
プであって、書込み可能な物理ブロックが物理ブロックオフセットを備えるステ
ップと、(k)書込み可能な物理ブロックにデータを書込むステップと、(l)
仮想ユニットを書込み可能な物理ブロックを含む未書込みの物理ユニットに追加
的にマッピングするステップであって、物理ユニットのチェーンを形成するため
に、仮想ユニットが未書込みの物理ユニットに追加的にマッピングされるように
なっているステップと、を含む。
ロックを突き止めることができない場合には、チェーンにおいて複数の物理ユニ
ットに対応する第2の仮想ユニットを突き止めるステップと、(n)チェーンに
おいて最終物理ユニットを突き止めるステップと、(o)書込み済みの物理ユニ
ットの物理ブロック内部の全データを最終物理ユニットの物理ブロックに移動す
るステップと、(p)仮想ユニットが最終物理ユニットにのみ対応するように仮
想マップを更新するステップと、を含むことが好ましい。本方法はさらに、(q
)書込み済みの物理ユニットのすべてを消去するステップを含むことがさらに好
ましい。
可能でない場合には、チェーンにおいて最終物理ユニットを突き止めるステップ
と、(m)書込み済みの物理ユニットの物理ブロック内部の全データを最終物理
ユニットの物理ブロックに移動するステップと、(n)仮想ユニットが最終物理
ユニットにのみ対応するように仮想マップを更新するステップと、を含むことが
好ましい。本方法はさらに、(o)最終物理ユニットを除き、書込み済みの物理
ユニットの実質的にすべてを消去するステップを含むことがさらに好ましい。
サイズが、ユニットなどの消去のための最小部分のサイズと異なるようになって
いるフラッシュメモリを構成する方法に関する。本発明の方法によって構成され
ることができるフラッシュメモリの種類の例は、これに限定されるわけではない
が、NANDおよびAND技術によって例示されるページモードデバイスを含む
。方法はまた、フラッシュメモリにデータの読出しおよび書込みを行うための方
法および未書込みの物理ユニットがそれ以上利用可能でない場合には、フラッシ
ュメモリを再構成する方法である。
またはその整数倍であるメモリの物理的な媒体またはハードウェアにあるユニッ
トとして定義される。それは連続的な固定サイズの消去可能なメモリの部分であ
る。「物理ブロック」なる語は、データの読出しまたは書込み用のメモリの部分
として定義される。以下、「仮想ユニット」なる語は、物理ユニットと同一のサ
イズとして定義される。NANDおよびANDなどのページモードメモリ技術の
ために、消去することができるメモリの最小部分はページサイズより大きく、通
常は約8KBである。ここで使用されるように、「物理ブロック」なる語は、ペ
ージモードメモリ技術のための「ページ」なる語と同意義である。したがって、
仮想ユニットは物理ユニットと同一の大きさである。
理ユニットに関連付ける表を表す。上記のように、各ユニット、すなわち仮想ユ
ニットまたは物理ユニットは、複数のブロックで構成される。以下でさらに説明
するように、ユニット内のブロックの正確な位置は、1つ以上の予め定められた
規則に基づいて決定される。
は、物理ブロックオフセットによって与えられる。同様に、各仮想ユニットは仮
想ユニット番号によって表される。各仮想ブロックの位置は、仮想ブロックオフ
セットによって与えられる。各仮想ユニット番号は、1つ以上の物理ユニット番
号に対応することができることを留意すべきである。したがって、仮想ユニット
と物理ユニットとの間のマッピングは、1対1または1対多のいずれかであって
もよい。
行為を表す。「読出しデータ」なる語は、フラッシュメモリからデータを検索す
る行為を表す。以下、「未書込み」なる語は、データを書込ませることができる
物理ブロックなどのメモリの一部分を示す。したがって、「未書込み」なる語は
、これに限定されるわけではないが、ちょうど消去されたばかりのメモリの部分
を含む。
電子デバイスにおいて、そのデバイスのオペレーティングシステムが、読出しお
よび書込みデータのために仮想ユニットおよび仮想ブロックに相互作用を及ぼす
。仮想媒体は仮想ユニットおよびブロックを含むため、フラッシュメモリデバイ
スに相互作用を及ぼすオペレーティングシステムのためのインターフェースとし
て作用する。たとえば、オペレーティングシステムは、仮想ブロックオフセット
で仮想ブロックにデータを書込むための書込み命令を発する。次に、仮想ブロッ
クを含む仮想ユニットが突き止められる。次いで、仮想マップが、データが実際
に格納されるメモリの物理ユニット内部の対応する物理ブロックを突き止める。
オペレーティングシステムは、仮想ユニットおよび仮想ブロックがフラッシュメ
モリの実際のハードウェアであるかのように、読出しおよび書込み命令を発する
が、実は実際のハードウェアはフラッシュメモリの物理ユニットおよび物理ブロ
ックに組み込まれている。したがって、オペレーティングシステムは、仮想ユニ
ットおよびブロックを認識するのみであり、ハードウェア自体に直接相互作用を
及ぼさない。
システムが相互作用を及ぼすことによって、さらに書込み可能となる前に消去し
なければならないという要件などのフラッシュメモリに固有の欠点を、克服する
ことができることである。さらに、電子デバイスのオペレーティングシステムに
はフラッシュメモリのアドレスを構成する必要がない。さらに、1つのインター
フェースがフラッシュメモリデバイスの多数の種類に使用されることができるた
め、オペレーティングシステムは、著しい修整の必要がなく、さまざまな異なる
フラッシュメモリ技術に相互作用を及ぼすことができる。したがって、本発明の
方法は、フラッシュメモリデバイスおよびそれらを使用する電子デバイスに最大
の適応性を許容することができる。
ッシュメモリデバイスを構成するためのシステムを提供する。このシステムは、
フラッシュデバイスなどから読み出したり、フラッシュデバイスなどに書込んだ
りするための方法を含む。さらに、このシステムはまた、フラッシュデバイスが
磁気ディスク記憶装置をうまくエミュレートすることができるようなインターフ
ェースも提供する。パーソナルコンピュータまたはラップトップコンピュータな
どさまざまなホストデバイスに、このようなフラッシュメモリデバイスを取付け
ることができる。
ュメモリなどの同様の書込み、読出しおよびユニット消去の特性を備えたデータ
記憶デバイスに応用可能であることを当業者は理解されたい。
ムの原理および動作は、図面および添付する詳細を参照すれば、よりよく理解さ
れるであろう。
技術の物理的なページモードフラッシュメモリデバイスを模式的に示している。
「物理的なデバイス」なる語は、以下、フラッシュメモリデバイスのための物理
的な媒体を含む実際のハードウェア自体として定義される。このような物理的な
媒体は一般に、フラッシュEEPROM装置から構成されるが、適切な不揮発性
のプログラム可能なメモリデバイスのいずれで代用してもよい。「プログラム可
能な」なる語は、以下、たとえば、データをメモリデバイスに書込ませることに
よってなど、変更可能であるとして定義される。
備えているように示される。物理ユニット12は、消去可能な物理デバイス10
の最小のセグメントである。物理ユニット12は整数倍のブロックを含み、個別
にブロック1〜nとして表され、ここでnは整数であり、集合的にはブロック1
4として表される。ブロック14は、連続した固定長のグループの物理的なバイ
トアドレスから構成され、ハードウェアの特徴である。具体的に言えば、ブロッ
ク14のサイズは物理デバイス10の特性である。ブロック14の基本データ領
域16に、利用者データを格納することができる。各ブロック14はまた、制御
データ領域18も有する。制御データ領域18は、ブロック14の主要部分から
個別アルゴリズムによってアドレス呼出しを行うことができ、ブロック14のサ
イズの計算には含まれない。以下でさらに説明するように、制御データ領域18
は、フラッシュファイリングシステム自体に関連する情報の格納に好都合である
。各物理ユニット12は、配分済みのユニットか未配分のユニットのいずれかで
ある。未配分ユニットはそれぞれ、自由であり、利用データを含まず、配分およ
び割当てが行われる用意がなされている。各配分済みのユニットは割当てされ、
データを含む。
ている。システム20は、仮想媒体22および物理デバイス10の両方を制御し
、仮想マップ24によって仮想媒体22を物理デバイス10に関連付ける。仮想
媒体22は複数の仮想ユニット26を含む。各仮想ユニット26は複数の仮想ブ
ロック28を含む。各仮想ユニット26は仮想アドレスによって表される。仮想
アドレスは、特定の仮想ユニット26を表す仮想ユニット番号を含む。各仮想ブ
ロック28は仮想ブロックオフセットによって表される。同様に、各物理ユニッ
ト12は物理アドレスを有する。物理アドレスは、特定の物理ユニット12を表
す物理ユニット番号を含む。各物理ブロック14は物理ブロックオフセットを有
する。
みの物理ユニットである少なくとも1つの物理ユニット12にマッピングする。
物理ユニットに関して、仮想ユニットが少なくとも1つの物理ユニットにマッピ
ングされた場合には、それは配分済みの仮想ユニットである。しかし、1つの仮
想ユニット26は1つ以上の物理ユニット12にマッピングされることができる
。したがって、仮想ユニット26と物理ユニット12との対応は、1対1または
1対多のいずれであってもよい。
)を含む電子デバイスのオペレーティングシステムは、読出し命令または書込み
命令などの命令を特定の仮想ユニット26内部の特定の仮想ブロック28に送信
する。次に、仮想マップ24が物理ユニット12内部の対応する物理ブロック1
4を突き止める。
想ユニット26に対して、マッピングの対応が1対1である場合には、状況は比
較的単純であるように思える。しかし、上記のように、物理デバイス10は、追
加的なデータを書込むことができる前に、定期的な消去を実行するための要件を
含め、読出しおよび書込みのための特定の物理的な制約条件がある。このような
制約条件に対して、物理デバイス10またはデバイスの一部で頻繁に繰り返され
る消去を伴わない可能な解決法は2通りである。
との対応が1対多であるため、各仮想ユニット26が複数の物理ユニット12に
対応する。仮想マップ24は、このようなマッピングを実行するために必要な情
報を保持しなければならない。仮想マップ24の一部の例が図3Aに挙げられて
おり、本発明のANDシステムを適用することができる。
想ユニット26内部の仮想ブロック28を示す。この例では、ある特定の仮想ユ
ニット30が2つの物理ユニット12に対応する。第1の物理ユニット12は基
本ユニット32である。第2の物理ユニット12は置換ユニット34である。各
仮想ユニット26の場合には、1つの基本ユニット32のみであってもよい。し
かし、各仮想ユニット26に関連するゼロ以上の置換ユニット34であってもよ
い。たとえば、仮想ユニット36は基本ユニット38にのみ対応し、置換ユニッ
ト34には対応しないため、仮想ユニット36は非置換型仮想ユニットの例であ
る。
14の数に依存する。仮想ユニット30の場合には、複数の仮想ブロック28が
基本ユニット32内部の物理ブロック14に対応する一方、他の仮想ブロック2
8が置換ユニット34内部の物理ブロック14に対応する。仮想ユニット36の
場合には、実質的にすべての仮想ブロック28が基本ユニット38内部の物理ブ
ロック14に対応する。
ブロック14を突き止めるための手順は以下の通りである。仮想ユニット36は
、仮想ユニット36を表す仮想ユニット番号44および仮想ブロック42を表す
仮想ブロックオフセット46を有する。仮想ブロックオフセット46も番号であ
ることを留意されたい。物理ユニット番号50は基本ユニット38を表す。物理
ブロックオフセット52は基本ユニット38内部の物理ブロック54を表す。デ
ータの読出しまたは書込みを行うための物理ブロック54を突き止めるために、
第1の規則は、仮想ユニット番号44を決定するために仮想ユニットごとのブロ
ックの数によって、所望の仮想ブロックオフセット46を割り振ることである。
次に、仮想マップ24は仮想ユニット番号44を物理ユニット番号50にマッピ
ングする。第2の規則は、仮想ブロックオフセット46と同一の番号でなければ
ならない物理ブロックオフセット52によって、所望の物理ブロック14、この
場合には物理ブロック54を物理ユニット38の内部で突き止めることができる
ことである。したがって、仮想マップ24は、仮想および物理ユニットに関する
情報を含むだけであるが、適正なブロックオフセットを決定するために規則が使
用される。
。この場合には、2つ以上の物理ユニットのグループが「チェーン」と呼ばれる
。たとえば、仮想ユニット番号72は仮想ユニット30を表し、仮想ブロックオ
フセット74が仮想ブロック70を表す。物理ユニット番号78は置換ユニット
34を表し、物理ブロックオフセット80は置換ユニット34内部の物理ブロッ
ク82を表す。したがって、仮想ユニット30の仮想ブロック70は置換ユニッ
ト34の物理ブロック82に対応する。
に、再び第1の規則は、仮想ユニット番号72を決定するために仮想ユニットご
とのブロックの数によって、所望の仮想ブロックオフセット74を割り振ること
である。次に、仮想マップ24は仮想ユニット番号72を物理ユニット番号78
にマッピングする。しかし、問題がある。前述したように、第2の規則は、仮想
ブロックオフセットと同一の番号でなければならない物理ブロックオフセットに
よって、所望の物理ブロックが物理ユニットの中で突き止められることである。
この場合には、チェーンに複数の物理ブロック14がある。いずれの物理ブロッ
ク14がデータを有するかを決定するために、第3の規則は、仮想ブロック70
と同一のブロックオフセットを有する各物理ブロック14が、チェーンの各物理
ユニット内部にあるかを調査することである。最終非自由物理ブロック14、こ
の場合には置換ユニット34の物理ブロック82が、読み出し用の所望のデータ
を含む。逆に、書込みデータの場合には、第1の自由物理ブロック14が所望の
ブロックである。
「最終非自由物理ブロック」なる語は、未だ自由ではないが、チェーンの中で最
も遠い下にあるユニットの物理ブロックを呼ぶ。チェーンにはユニットがそれ以
上存在しないか、またはチェーンにおける次のユニットに同一のブロックオフセ
ットを有する物理ブロックが自由であるかのいずれかである。同様に、第1の自
由物理ブロックを発見するために、所望のブロックオフセットを有する各物理ブ
ロックがチェーンの各物理ユニットにあるかどうかを調査し、この調査は基本ユ
ニットから始めて、今度は各置換ユニットを通じて下に続き、自由ブロックが発
見されるまで続く。
システムを使用するが、図3Bに示すように、各基本ユニットには1つの置換ユ
ニットのみを備える。これを実現するために、FMAXは単一および複合の置換
(物理)ユニットを使用する。単一置換ユニットは、物理ユニットの物理ブロッ
クオフセットの実質的にすべてが対応する仮想ユニットの仮想ブロックオフセッ
トに直接的に相関されるユニットである。複合置換ユニットは、仮想ブロックオ
フセットと物理ブロックオフセットとのこのような直接の対応関係が必ずしも存
在しないユニットである。代わりに、対応する物理ブロックオフセットを有する
物理ブロックが書込みに利用可能でない場合には、異なる物理ブロックが選択さ
れる。次に、仮想ブロックと物理ブロックとの実際の対応関係を決定するために
、制御情報が制御データ領域に書込まれる。
有し、それぞれのブロックが仮想ユニット104の仮想ブロック102に対応す
る単一置換ユニット98を有する。各物理ブロックオフセットは、同一のオフセ
ット番号である仮想ブロックオフセットに対応する。
用可能でない場合には、同一の物理ユニットの異なる物理ブロックが書込まれな
ければならず、置換ユニットは複合置換ユニットになる。第2の基本ユニット1
09は、複数の物理ブロック112を有し、それぞれのブロックが仮想ユニット
116の仮想ブロック114に対応する複合物理ユニット110を有する。しか
し、1つの物理ブロックオフセットが同一のオフセット番号である仮想ブロック
オフセットに対応することができる一方、第2の物理ブロックオフセットは同一
のオフセット番号でない第2の仮想ブロックオフセットに対応してもよい。特定
の物理ブロックを見つけるために、制御データ領域に書込まれた制御情報を調査
しなければならない。以下にさらに説明するように、これは、データの書込みの
場合および必要に応じてFMAXシステムを再構成する場合の両方の場合におい
て、きわめて重要である。
は図3Bの仮想マップを操作するためのフローチャートを示す。最も簡素な場合
、すなわちすべての置換ユニットが単一ユニットまたは1つのみの置換ユニット
を備える基本ユニットである場合には、ANDおよびFMAXのいずれも同じス
テップを使用することができる。まず、突き止められる対象の仮想ブロックの数
を、仮想ユニット番号を与える仮想ユニットごとのブロックの数で割ることによ
って、仮想ユニット番号および仮想ブロックオフセットが計算される。法または
割算の剰余が仮想ブロックオフセットである。
調査される。仮想ユニットに対応する物理ユニットを発見することができない場
合には、物理メモリの必要な部分はフラッシュデバイスに存在しない。上記のよ
うに、すべての置換ユニットが単一ユニットであるか、または基本ユニットが唯
一の置換ユニットを有する場合にのみ、このような単一の方式が有効である。し
かし、データが書込まれることになっている物理ブロックがすでにプログラムさ
れているか、または他のデータで書込まれている場合には、この方式は作用しな
い。この場合には、データを書込むことができる別の物理ブロックを発見するタ
スクを処理することができるような置換方式が必要とされる。
X)に示されている。両方のアルゴリズムは同一の方式で始まる。ステップ1に
おいて、所望の物理ユニットが突き止められる。ステップ2において、特定のブ
ロックオフセットに対応する物理ブロックが、その物理ユニットの内部で突き止
められる。ステップ3において、ブロックが未書込みの場合には、データがブロ
ックに書込まれる。所望の物理ブロックが利用可能でない場合には、本発明の2
つのシステム、すなわちANDおよびFMAXは、各技術が所望の物理ブロック
がすでに書込まれた状況に対処するような方法で分岐される。
てこの状況に対処する。ステップ4において、x番目の置換物理ユニットが調査
される。ここでxは、最初は1に等しい整数である。その物理ユニットが所望の
物理ブロックオフセットを備えた未書込みの物理ブロックを有する場合には、デ
ータが物理ブロックに書込まれる。ブロックが利用可能でない場合には、ステッ
プ5に示されるように、xは1ずつ増分され、ステップ4が反復される。データ
がブロックに書込まれるか、またはチェーンの他の置換ユニットが発見されなく
なるまで、ステップ4および5が反復される。ステップ6において、未配分の物
理ユニットが置換ユニットとして配分され、データが所望のブロックオフセット
を備えたブロックに書込まれる。
する。ステップ4において、置換ユニットにおける同一の物理ブロックオフセッ
トを有する物理ブロックが突き止められる。その物理ブロックが未書込みの場合
には、データがその物理ブロックに書込まれる。そうでない場合には、ステップ
5のように、置換ユニットの中の異なる物理ブロックオフセットを備えた物理ブ
ロックが突き止められる。未書込みの物理ブロックが突き止められるまで、ステ
ップ5が反復される。今度は、仮想ブロックオフセットがもはや物理ブロックオ
フセットと同一でないため、置換ユニットが複合ユニットである。ステップ6に
おいて、マッピング方式が複合ユニット内部のいかなる物理ブロックの正確な位
置も発見できるようにするために、制御情報が物理ユニットの制御データ領域に
付加される。
求のすべてに対処するのに十分でないと思われる。ANDおよびFMAXシステ
ムの両方とも、最後には物理ブロックが利用可能でないため、物理ユニット内部
のブロックにさらなるデータを書込むことができない状況に達するであろう。
ットに再構築するために、仮想ユニットを再構成しなければならない。この再構
成処理中、以前に仮想ユニット表示が属していた物理置換ユニットが解放され、
それによって、割当てられていないまたは自由な物理ユニットとなる。AND置
換ユニットおよび単一FMAX置換ユニットの両方に関して、この再構成処理は
、フォールディングと呼ばれ、以下の図5Aに図示される。
のと同一の物理ブロックオフセットで書込まれる対象の物理ブロックを必要とす
る。その理由については、処理が説明されるとさらに明らかになるであろう。フ
ォールディングの第1のステップにおいて、チェーンの最終物理ユニットが物理
ユニットxと識別される。ここで、xは1からいくつかの予め決定された実装依
存制限数までの整数である。xが1に等しい場合、置換ユニットが実際に基本ユ
ニットであり、残りのアルゴリズムは実行されないことに留意されたい。また、
FMAXの場合には、xは1または2に等しいことにも留意されたい。
である。データがブロックnに書込まれている場合には、nは1ずつ増分される
。そうでない場合には、ステップ3においてxが1ずつ減分される。xが0に等
しいかまたは書込み済みのブロックnが発見されるかのいずれかになるまで、ス
テップ2および3が反復される。書込み済みのブロックnが発見された場合には
、ステップ4において、データがチェーンの最終置換ユニットのブロックnまで
移動される。すべてのデータが次に基本ユニットとなる最終置換ユニットに移動
されるまで、ステップ2〜4が反復される。次に、事前の基本ユニットを含める
にしてもチェーンの他のすべてのユニットが解放され、割当てに利用可能となる
。今度は仮想ユニットが1つの物理ユニットに対応するという事実を反映するた
めに、仮想マップも更新される。
に等しい物理ブロックオフセットを持っているとは限らないため、フォールディ
ングは、複合FMAX置換ユニットの場合には作用しない。再割当ての異なる処
理が、図5Bの複合物理ユニットのために示されている。ステップ1において、 新たな未割当ての物理ユニットが、新たな基本物理ユニットと呼ばれる。ステ
ップ2において、複合物理ユニットのブロックnが調査される。データが複合物
理ユニットのブロックnに書込まれている場合には、ステップ3において、デー
タが新たな基本ユニットにコピーされる。そうでない場合には、古い基本ユニッ
トのブロックnからデータが新たな基本ユニットに書込まれる。ステップ4にお
いて、nが1ずつ増分される。すべてのブロックがコピーされるまで、ステップ
2〜4が反復される。一旦、ブロックのすべてがコピーされると、古い基本ユニ
ットのほか以前の置換ユニットも解放され、割当てのために利用可能となる。以
前の手順のように、今度は仮想ユニットが1つのみの物理ユニットに対応すると
いう事実を反映するために、仮想マップが更新される。
において、置換ユニットが割当てられた直後に再構成の処理が行われる。したが
って、置換ユニットはシステムの一時的な特徴にすぎず、静止状態、すなわち物
理メモリが書込み処理を実行していない状態において、データは基本非置換ユニ
ットにのみ存在する。置換ユニットは、書込み処理のためだけに存在する。処理
の終了時に、情報のすべてが新たなユニットに移動されるため、置換ユニットは
実質的に消失する。この方法は、実装の容易さおよびそれを管理するために必要
とされる制御構造の簡便さという利点を備える。しかし、その欠点は、この方法
が効率的ではないため、システムの書込み性能を低下させることにある。
、物理的なフラッシュデバイス自体に制御情報を記録することが可能でなければ
ならない。特に、ユニットおよびブロックの制御情報は格納されることが好まし
いが、別法としてそのようなデータは他の種類のデータから再構築することもで
きる。ユニット制御情報は、物理ユニットに配分された物理ユニット番号、基本
または置換ユニットとしての物理ユニット自体の状態および他のユニットに対す
るそのユニットの位置を表示する。ブロック制御情報は、物理ブロックが使用さ
れているか、解放されているかまたは異なる物理ブロックに存在する情報によっ
て取り替えられているかどうかを表示する。
記録することができる。図1で上記のように、好ましくは、ANDおよびFMA
Xシステムは各物理ユニット12を物理的なフラッシュデバイスに記録される実
際の利用者データを含む基本データ領域16および制御情報を含む制御データ領
域18に分割する。このような領域は、ブロック16の下位区分として示される
が、物理ユニット12はまた、ブロックへの分割に実質的に独立である基本デー
タ領域および制御データ領域に分割されてもよい。制御データ領域18は基本デ
ータ領域16のブロック探索方式の中に含まれず、物理的なフラッシュディスク
の全体サイズを計算する場合にも含まれないことに留意すべきである。
するため、制御情報が通常、ブロックの空白領域に記録され、利用者データが基
本ブロック領域に配置される。
するための主要領域および必要な制御情報を格納するためのオーバヘッド部分に
、すべての物理ユニットを分割することができる。
本発明の精神および範囲の中で可能であることを認識されたい。
。
の図である。
す。
示す。
す。
示す。
Claims (16)
- 【請求項1】 メモリのためのメモリ構成方法であって、前記メモリの未書
込みの部分にのみデータを書込むことができるため、前記メモリの書込み済みの
部分を未書込みの状態にするために消去しなければならず、読出しまたは書込み
のデータ用のメモリ部分のサイズが、消去用の最小メモリ部分のサイズと異なる
ようになっているメモリ構成法であって、 (a)前記メモリの複数の物理ユニットを設けるステップであって、前記物理
ユニットのそれぞれが消去用の最小メモリ部分のサイズであり、前記物理ユニッ
トのそれぞれが物理ユニット番号によって表され、前記物理ユニットのそれぞれ
が複数の物理ブロックに分割され、前記複数の物理ブロックのそれぞれが読出し
または書込みのデータ用のメモリ部分のサイズであり、前記物理ブロックのそれ
ぞれが前記物理ユニット内部の物理ブロックオフセットによって表されるように
なっているステップと、 (b)前記メモリの複数の仮想ユニットを設けるステップであって、前記仮想
ユニットのそれぞれが仮想ユニット番号によって表され、前記仮想ユニットのそ
れぞれが複数の仮想ブロックを特徴付け、前記仮想ブロックのそれぞれが前記仮
想ユニット内部の仮想ブロックオフセットによって表されるようになっているス
テップと、 (c)各仮想ユニットを少なくとも1つの物理ユニットにマッピングし、仮想
マップを形成するステップと、 (d)前記仮想マップによって、前記仮想ユニット内部の各仮想ブロックを前
記少なくとも1つの物理ユニット内部の1つの物理ブロックにマッピングするス
テップと、を含む方法。 - 【請求項2】 (e)前記メモリの前記複数の仮想ユニットの少なくとも1
つと前記メモリの前記複数の物理ユニットの少なくとも1つとの対応関係を変更
することによって、前記メモリにおける変更を反映するために前記仮想マップを
変更するステップと、をさらに含む請求項1に記載の方法。 - 【請求項3】 (e)仮想ブロックでデータを書込むための書込み命令を受
信するステップと、 (f)前記仮想ブロックを含む仮想ユニットを突き止めるステップと、 (g)前記仮想ユニットにマッピングされる物理ユニット内部の書込み可能な
ブロックを突き止めるステップと、 (h)前記データを前記書込み可能な物理ブロックに書込み、書込み済みの物
理ユニットを形成するステップと、をさらに含む請求項1に記載の方法。 - 【請求項4】 (i)前記書込み済みの物理ユニットにおいて、未書込みの
物理ブロックを突き止めることができない場合には、第2の物理ユニットを突き
止めるステップと、 (j)前記データを前記第2の物理ユニットの書込み可能な物理ブロックに書
込むステップと、 (k)前記仮想ユニットを前記第2の物理ユニットに追加的にマッピングする
ことによって、前記仮想マップを更新し、前記仮想ユニットが前記第2の物理ユ
ニットおよび前記書込み済みの物理ユニットに対応するようにするステップであ
って、前記第2の物理ユニットおよび前記書込み済みの物理ユニットが物理ユニ
ットのチェーンを形成するようになっているステップと、をさらに含む請求項3
に記載の方法。 - 【請求項5】 前記第2の物理ユニットの前記書込み可能な物理ブロックが
、物理ブロックオフセットを備え、前記物理ブロックオフセットが前記マッピン
グされた仮想ユニットの前記仮想ブロックオフセットに対応する請求項4に記載
の方法。 - 【請求項6】 前記第2の物理ユニットの前記書込み可能な物理ブロックが
物理ブロックオフセットを備え、前記物理ブロックオフセットが前記マッピング
された仮想ユニットの前記仮想ブロックオフセットとは異なる請求項4に記載の
方法。 - 【請求項7】 (l)任意の物理ユニットにおいて、未書込みの物理ブロッ
クを突き止めることができない場合には、チェーンにおいて複数の物理ユニット
に対応する第2の仮想ユニットを突き止めるステップと、 (m)前記チェーンにおいて前記最終物理ユニットを突き止めるステップと、 (n)前記書込み済みの物理ユニットの前記物理ブロックのそれぞれから前記
最終物理ユニットの書込み可能な物理ブロックまで、データを移動するステップ
であって、前記書込み可能な物理ブロックが前記書込み済みの物理ユニットの前
記物理ブロックと同一のブロックオフセットを備えるようになっているステップ
と、 (o)前記仮想ユニットを前記最終物理ユニットにマッピングすることによっ
て、前記仮想マップを更新し、前記仮想ユニットが前記最終物理ユニットにのみ
対応するようになっているステップと、をさらに含む請求項4に記載の方法。 - 【請求項8】 (p)前記チェーンにおいて、前記最終物理ユニットを除き
、前記書込み済みの物理ユニットのすべてを消去するステップをさらに含む請求
項7に記載の方法。 - 【請求項9】 (l)未書込みの物理ユニットが前記チェーンの割当てに利
用可能でない場合には、再構成のために未書込みの物理ユニットを割当てるステ
ップと、 (m)前記書込み済みの物理ユニットの前記物理ブロックから前記未書込みの
物理ユニットの書込み可能な物理ブロックまで、データを移動するステップと、 (n)前記仮想ユニットを前記未書込みの物理ユニットにマッピングすること
によって、前記仮想マップを更新し、前記仮想ユニットが前記未書込みの物理ユ
ニットにのみ対応するようになっているステップと、をさらに含む請求項4に記
載の方法。 - 【請求項10】 メモリのためのメモリ構成方法であって、前記メモリの未
書込みの部分にのみデータを書込むことができるため、前記メモリの書込み済み
の部分を未書込みの状態にするために消去しなければならず、データの読出しま
たは書込み用のメモリ部分のサイズが消去用の最小メモリ部分のサイズと異なる
方法であって、 (a)前記メモリの複数の物理ユニットを設けるステップであって、前記物理
ユニットのそれぞれが消去用の最小メモリ部分であり、前記物理ユニットのそれ
ぞれが物理ユニット番号によって表され、前記物理ユニットのそれぞれが複数の
物理ブロックに分割され、前記複数の物理ブロックのそれぞれが読出しまたは書
込みのデータ用のメモリ部分であり、前記物理ブロックのそれぞれが前記物理ユ
ニット内部の物理ブロックオフセットによって表されるようになっているステッ
プと、 (b)前記メモリの複数の仮想ユニットを設けるステップであって、前記仮想
ユニットのそれぞれが仮想ユニット番号によって表され、前記仮想ユニットのそ
れぞれが複数の仮想ブロックを特徴付け、前記仮想ブロックのそれぞれが前記仮
想ユニット内部の仮想ブロックオフセットによって表されるようになっているス
テップと、 (c)各仮想ユニットを少なくとも1つの物理ユニットにマッピングするため
の仮想マップを設けるステップと、 (d)前記仮想ユニット内部の各仮想ブロックを前記少なくとも1つの物理ユ
ニット内部の1つの物理ブロックにマッピングするステップと、 (e)仮想ブロックでデータを書込むための書込み命令を受信するステップと
、 (f)前記仮想ブロックを含む仮想ユニットを突き止めるステップと、 (g)前記仮想ユニットにマッピングされる物理ユニット内部で書込み可能な
ブロックを突き止めるステップと、 (h)前記データを前記書込み可能な物理ブロックに書込むステップと、 (i)書込み済みの物理ユニットにおいて未書込みの物理ブロックを突き止め
ることができない場合には、物理ユニットのチェーンを形成するために未書込み
の物理ユニットを割当て、前記未書込みの物理ユニットが前記チェーンにおいて
最終物理ユニットであるようにするステップと、 (j)前記データを前記最終物理ユニットの未書込みの物理ブロックに書込む
ステップと、 (k)ステップ(j)において書込まれたデータを除いて、データを前記複数
の物理ブロックのそれぞれから前記最終物理ユニットの書込み可能な物理ブロッ
クまで、移動するステップと、 (l)前記仮想ユニットを前記書込み済みの物理ユニットにマッピングすること
によって前記仮想マップを更新し、前記仮想ユニットが前記書込み済みの物理ユ
ニットに対応するようになっているステップと、を含む方法。 - 【請求項11】 メモリのためのデータ書込み方法であって、前記メモリの
未書込みの部分にのみデータを書込むことができるため、前記メモリの書込み済
みの部分を未書込みの状態にするために消去しなければならない方法であって、 (a)複数の物理ブロックに分割されることになる複数の物理ユニットを設け
るステップであって、前記物理ユニットのそれぞれが物理ユニット番号を備え、
前記物理ブロックのそれぞれが前記物理ユニット内部の物理ブロックオフセット
を備えているステップと、 (b)複数の仮想ブロックに分割されることになる複数の仮想ユニットを設け
るステップであって、前記仮想ユニットのそれぞれが仮想ユニット番号を備え、
前記仮想ブロックのそれぞれが前記仮想ユニット内部の仮想ブロックオフセット
を備え、各仮想ユニットが少なくとも1つの物理ユニットにマッピングされるよ
うになっているステップと、 (c)仮想ブロックでデータを書込むための書込み命令を受信するステップと
、 (d)仮想ブロックオフセットを有する前記仮想ブロックを含む仮想ユニット
を決定するステップと、 (e)前記仮想ユニットに対応する物理ユニットを突き止めるステップと、 (f)前記物理ユニットの内部で物理ブロックを突き止めるステップと、 (g)前記物理ブロックが未書込みであるかどうかを決定するステップと、 (h)前記物理ブロックが未書込みの場合に限り、前記データを前記物理ブロ
ックに書込むステップと、 (i)別法として、前記物理ブロックが未書込みでない場合には、第2の物理
ユニットを割当てるステップと、 (j)前記第2の物理ユニット内部の書込み可能な物理ブロックを突き止める
ステップであって、前記書込み可能な物理ブロックが物理ブロックオフセットを
備えるステップと、 (k)前記データを前記書込み可能な物理ブロックに書込むステップと、 (l)前記仮想ユニットを前記書込み可能な物理ブロックを含む前記第2の物
理ユニットに追加的にマッピングし、前記仮想ユニットが、物理ユニットのチェ
ーンを形成するために前記第2の物理ユニットに追加的にマッピングされるよう
になっているステップと、 (m)書込まれた物理ユニットにおいて、未書込みの物理ブロックを突き止め
ることができない場合には、チェーンにおいて複数の物理ユニットに対応する第
2の仮想ユニットを突き止めるステップと、 (n)前記チェーンにおいて最終物理ユニットを突き止めるステップと、 (o)前記書込み済みの物理ユニットの前記物理ブロック内部の全データを前
記最終物理ユニットの前記物理ブロックに移動するステップと、 (p)前記仮想ユニットが前記最終物理ユニットにのみ対応するように前記仮
想マップを更新するステップと、 を含む方法。 - 【請求項12】 前記書込み可能な物理ブロックの前記物理ブロックオフセ
ットが、前記仮想ブロックオフセットと同一のブロックオフセット番号を有する
請求項11に記載の方法。 - 【請求項13】 (q)前記書込み済みの物理ユニットのすべてを消去する
ステップをさらに含む請求項11に記載の方法。 - 【請求項14】 メモリのためのデータの書込み方法であって、前記メモリ
の未書込みの部分にのみデータを書込むことができるため、前記メモリの書込み
済みの部分を未書込みの状態にするために消去しなければならない方法であって
、 (a)複数の物理ブロックに分割されることになる複数の物理ユニットを設け
るステップであって、前記物理ユニットのそれぞれが物理ユニット番号を備え、
前記物理ブロックのそれぞれが前記物理ユニット内部の物理ブロックオフセット
を備えているステップと、 (b)複数の仮想ブロックに分割されることになる複数の仮想ユニットを設け
るステップであって、前記仮想ユニットのそれぞれが仮想ユニット番号を備え、
前記仮想ブロックのそれぞれが前記仮想ユニット内部の仮想ブロックオフセット
を備え、各仮想ユニットが少なくとも1つの物理ユニットにマッピングされるス
テップと、 (c)仮想ブロックでデータを書込むための書込み命令を受信するステップと
、 (d)仮想ブロックオフセットを有する前記仮想ブロックを含む仮想ユニット
を決定するステップと、 (e)前記仮想ユニットに対応する物理ユニットを突き止めるステップと、 (f)前記物理ユニットの内部で物理ブロックを突き止めるステップと、 (g)前記物理ブロックが未書込みであるかどうかを決定するステップと、 (h)前記物理ブロックが未書込みの場合に限り、前記データを前記物理ブロ
ックに書込むステップと、 (i)別法として、前記物理ブロックが未書込みでない場合には、第2の物理
ユニットを割当てるステップと、 (j)前記第2の物理ユニット内部の書込み可能な物理ブロックを突き止める
ステップであって、前記書込み可能な物理ブロックが物理ブロックオフセットを
備えるステップと、 (k)前記データを前記書込み可能な物理ブロックに書込むステップと、 (l)前記仮想ユニットを前記書込み可能な物理ブロックを含む前記第2の物
理ユニットに追加的にマッピングし、前記仮想ユニットが、物理ユニットのチェ
ーンを形成するために前記第2の物理ユニットに追加的にマッピングされるよう
になっているステップと、 (m)未書込みの物理ユニットが割当てに利用可能でない場合には、チェーン
において最終物理ユニットを突き止めるステップと、 (n)前記書込み済みの物理ユニットの前記物理ブロック内部の全データを前
記最終物理ユニットの前記物理ブロックに移動するステップと、 (o)前記仮想ユニットが前記最終物理ユニットにのみ対応するように前記仮
想マップを更新するステップと、を含む方法。 - 【請求項15】 (p)前記最終物理ユニットを除いて、前記書込み済みの
物理ユニットのすべてを消去するステップをさらに含む請求項14に記載の方法
。 - 【請求項16】 メモリのためのメモリ構成方法であって、前記メモリの未
書込みの部分にのみデータを書込むことができるため、前記メモリの書込み済み
の部分を未書込みの状態にするために消去しなければならず、データの読出しま
たは書込み用のメモリ部分のサイズが消去用の最小メモリ部分のサイズと異なる
方法であって、 (a)前記メモリの複数の物理ユニットを設けるステップであって、前記物理
ユニットのそれぞれが消去用の最小メモリ部分のサイズであり、前記物理ユニッ
トのそれぞれが物理ユニット番号によって表され、前記物理ユニットのそれぞれ
が複数の物理ブロックに分割され、前記複数の物理ブロックのそれぞれが読出し
または書込みのデータ用のメモリ部分のサイズであり、前記物理ブロックのそれ
ぞれが前記物理ユニット内部の物理ブロックオフセットによって表されるように
なっているステップと、 (b)前記メモリの複数の仮想ユニットを設けるステップであって、前記仮想
ユニットのそれぞれが仮想ユニット番号によって表され、前記仮想ユニットのそ
れぞれが複数の仮想ブロックを特徴付け、前記仮想ブロックのそれぞれが前記仮
想ユニット内部の仮想ブロックオフセットによって表されるようになっているス
テップと、 (c)各仮想ユニットを少なくとも1つの物理ユニットにマッピングするため
の仮想マップを設けるステップと、 (d)前記仮想ユニット内部の各仮想ブロックを前記少なくとも1つの物理ユ
ニット内部の1つの物理ブロックにマッピングするステップと、 (e)仮想ブロックでデータを書込むための書込み命令を受信するステップと
、 (f)前記仮想ブロックを含む仮想ユニットを突き止めるステップと、 (g)前記仮想ユニットにマッピングされる物理ユニット内部で書込み可能な
ブロックを突き止めるステップと、 (h)前記データを前記書込み可能な物理ブロックに書込み、書込み済みの物
理ユニットを形成するステップと、 (i)前記書込み済みの物理ユニットにおいて未書込みの物理ブロックを突き
止めることができない場合には、書込み可能な物理ブロックを備えた第2の物理
ユニットを突き止めるステップと、 (j)前記データを前記第2の物理ユニットの前記書込み可能な物理ブロック
に書込むステップと、 (k)前記仮想ユニットを前記第2の物理ユニットに追加的にマッピングする
ことによって、前記仮想マップを更新し、前記仮想ユニットが前記第2の物理ユ
ニットおよび前記書込み済みの物理ユニットに対応し、前記第2の物理ユニット
および前記書込み済みの物理ユニットが物理ユニットのチェーンを形成するよう
になっているステップと、 (l)任意の物理ユニットにおいて、未書込みの物理ブロックを突き止めるこ
とができない場合には、チェーンにおいて複数の物理ユニットに対応する第2の
仮想ユニットを突き止めるステップと、 (m)前記チェーンにおいて最終物理ユニットを突き止めるステップと、 (n)前記書込み済みの物理ユニットの前記物理ブロックのそれぞれから前記
最終物理ユニットの書込み可能な物理ブロックまで、データを移動するステップ
であって、前記書込み可能な物理ブロックが前記書込み済みの物理ユニットの前
記物理ブロックと実質的に同一のブロックオフセットを有するステップと、 (o)前記仮想ユニットを前記最終物理ユニットにマッピングすることによっ
て前記仮想マップを更新し、前記仮想ユニットが前記最終物理ユニットに対応す
るようになっているステップと、を含む方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/951,644 US5937425A (en) | 1997-10-16 | 1997-10-16 | Flash file system optimized for page-mode flash technologies |
US08/951,644 | 1997-10-16 | ||
PCT/US1998/021017 WO1999021093A1 (en) | 1997-10-16 | 1998-10-05 | Improved flash file system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001521220A true JP2001521220A (ja) | 2001-11-06 |
JP3712231B2 JP3712231B2 (ja) | 2005-11-02 |
Family
ID=25491960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000517345A Expired - Fee Related JP3712231B2 (ja) | 1997-10-16 | 1998-10-05 | 改善されたフラッシュファイルシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US5937425A (ja) |
EP (1) | EP1025502A4 (ja) |
JP (1) | JP3712231B2 (ja) |
KR (1) | KR100495722B1 (ja) |
CN (1) | CN1223945C (ja) |
AU (1) | AU9685898A (ja) |
WO (1) | WO1999021093A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005022393A1 (ja) * | 2003-08-29 | 2005-03-10 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置及びその書込み方法 |
US6938116B2 (en) * | 2001-06-04 | 2005-08-30 | Samsung Electronics Co., Ltd. | Flash memory management method |
JP2006515086A (ja) * | 2002-10-28 | 2006-05-18 | サンディスク コーポレイション | ブロック内のページをグループ化する方法及び装置 |
US7287117B2 (en) | 2003-12-10 | 2007-10-23 | Samsung Electronics Co. Ltd. | Flash memory and mapping control apparatus and method for flash memory |
JP2007280108A (ja) * | 2006-04-07 | 2007-10-25 | Sony Corp | 記憶媒体制御装置、記憶媒体制御方法、プログラム |
Families Citing this family (275)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5845313A (en) | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US6978342B1 (en) | 1995-07-31 | 2005-12-20 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
US6728851B1 (en) | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US8171203B2 (en) | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
US6148354A (en) | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
KR100544175B1 (ko) * | 1999-05-08 | 2006-01-23 | 삼성전자주식회사 | 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법 |
US6578054B1 (en) | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method and system for supporting off-line mode of operation and synchronization using resource state information |
CN1088218C (zh) * | 1999-11-14 | 2002-07-24 | 邓国顺 | 用于数据处理系统的快闪电子式外存储方法及其装置 |
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 |
US7167944B1 (en) | 2000-07-21 | 2007-01-23 | Lexar Media, Inc. | Block management for mass storage |
US7113432B2 (en) | 2000-09-14 | 2006-09-26 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US7373656B2 (en) * | 2000-10-27 | 2008-05-13 | Sandisk Il Ltd. | Automatic configuration for portable devices |
US6986030B2 (en) | 2000-10-27 | 2006-01-10 | M-Systems Flash Disk Pioneers Ltd. | Portable memory device includes software program for interacting with host computing device to provide a customized configuration for the program |
US7606733B2 (en) * | 2000-10-27 | 2009-10-20 | Sandisk Il Ltd. | Account portability for computing |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US6510488B2 (en) | 2001-02-05 | 2003-01-21 | M-Systems Flash Disk Pioneers Ltd. | Method for fast wake-up of a flash memory system |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
US6591330B2 (en) * | 2001-06-18 | 2003-07-08 | M-Systems Flash Disk Pioneers Ltd. | System and method for flexible flash file |
US6760805B2 (en) | 2001-09-05 | 2004-07-06 | M-Systems Flash Disk Pioneers Ltd. | Flash management system for large page size |
US7108975B2 (en) * | 2001-09-21 | 2006-09-19 | Regents Of The University Of Michigan | Atlastin |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
GB0123421D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Power management system |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
GB0123410D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
US6883114B2 (en) * | 2001-11-08 | 2005-04-19 | M-Systems Flash Disk Pioneers Ltd. | Block device driver enabling a ruggedized file system |
US6668336B2 (en) * | 2001-11-08 | 2003-12-23 | M-Systems Flash Disk Pioneers Ltd. | Ruggedized block device driver |
US6977847B2 (en) * | 2001-11-23 | 2005-12-20 | M-Systems Flash Disk Pioneers Ltd. | Detecting partially erased units in flash devices |
TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
US6909910B2 (en) * | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
US7231643B1 (en) | 2002-02-22 | 2007-06-12 | Lexar Media, Inc. | Image rescue system including direct communication between an application program and a device driver |
US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US6621746B1 (en) | 2002-02-27 | 2003-09-16 | Microsoft Corporation | Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations |
US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
KR100914646B1 (ko) * | 2002-08-31 | 2009-08-28 | 지인정보기술 주식회사 | 멀티-플레인 구조의 플래시 메모리 관리 방법 |
US7174440B2 (en) * | 2002-10-28 | 2007-02-06 | Sandisk Corporation | Method and apparatus for performing block caching in a non-volatile memory system |
US7082512B2 (en) * | 2002-11-21 | 2006-07-25 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
JP3928724B2 (ja) * | 2003-02-20 | 2007-06-13 | ソニー株式会社 | 記録媒体の記録制御方法および記録媒体の記録制御装置 |
US7526598B2 (en) * | 2003-03-03 | 2009-04-28 | Sandisk Il, Ltd. | Efficient flash memory device driver |
US7003621B2 (en) * | 2003-03-25 | 2006-02-21 | M-System Flash Disk Pioneers Ltd. | Methods of sanitizing a flash-based data storage device |
US7664987B2 (en) * | 2003-05-25 | 2010-02-16 | Sandisk Il Ltd. | Flash memory device with fast reading rate |
US7372731B2 (en) * | 2003-06-17 | 2008-05-13 | Sandisk Il Ltd. | Flash memories with adaptive reference voltages |
US6988175B2 (en) * | 2003-06-30 | 2006-01-17 | M-Systems Flash Disk Pioneers Ltd. | Flash memory management method that is resistant to data corruption by power loss |
US7188228B1 (en) * | 2003-10-01 | 2007-03-06 | Sandisk Corporation | Hybrid mapping implementation within a non-volatile memory system |
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
US7012835B2 (en) | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7644376B2 (en) | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
KR100533682B1 (ko) * | 2003-12-26 | 2005-12-05 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
US7433993B2 (en) * | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
JP4284200B2 (ja) * | 2004-01-28 | 2009-06-24 | 株式会社東芝 | 不揮発性半導体記憶システム |
US7716413B2 (en) * | 2004-02-15 | 2010-05-11 | Sandisk Il Ltd. | Method of making a multi-bit-cell flash memory |
US8019928B2 (en) * | 2004-02-15 | 2011-09-13 | Sandisk Il Ltd. | Method of managing a multi-bit-cell flash memory |
US7725628B1 (en) | 2004-04-20 | 2010-05-25 | Lexar Media, Inc. | Direct secondary device interface by a host |
TWI249670B (en) * | 2004-04-29 | 2006-02-21 | Mediatek Inc | System and method capable of sequentially writing a flash memory |
CN100353341C (zh) * | 2004-04-30 | 2007-12-05 | 联发科技股份有限公司 | 可循序写入数据至闪存中的系统及其方法 |
US7370166B1 (en) | 2004-04-30 | 2008-05-06 | Lexar Media, Inc. | Secure portable storage device |
WO2005121959A2 (en) * | 2004-06-08 | 2005-12-22 | Dartdevices Corporation | Architecture, apparatus and method for device team recruitment and content renditioning for universal device interoperability platform |
KR100568115B1 (ko) * | 2004-06-30 | 2006-04-05 | 삼성전자주식회사 | 점진적 머지 방법 및 그것을 이용한 메모리 시스템 |
DE102004033593A1 (de) * | 2004-07-07 | 2006-02-02 | Siemens Ag | Verfahren zur Simulation einer technischen Anlage |
US7386700B2 (en) * | 2004-07-30 | 2008-06-10 | Sandisk Il Ltd | Virtual-to-physical address translation in a flash file system |
KR100597411B1 (ko) * | 2004-08-04 | 2006-07-05 | 삼성전자주식회사 | 파일의 효율적인 데이터 관리를 위한 방법 및 장치 |
US7464306B1 (en) | 2004-08-27 | 2008-12-09 | Lexar Media, Inc. | Status of overall health of nonvolatile memory |
US7594063B1 (en) | 2004-08-27 | 2009-09-22 | Lexar Media, Inc. | Storage capacity status |
JP2008511929A (ja) * | 2004-08-30 | 2008-04-17 | シリコン ストレージ テクノロジー、 インク. | 携帯電話の不揮発性メモリを管理するシステムおよび方法 |
US20060059296A1 (en) * | 2004-09-16 | 2006-03-16 | M-Systems Flash Disk Pioneers, Ltd. | Emulating small block size of flash memory |
US7164611B2 (en) | 2004-10-26 | 2007-01-16 | Micron Technology, Inc. | Data retention kill function |
US7395404B2 (en) | 2004-12-16 | 2008-07-01 | Sandisk Corporation | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array |
US7366826B2 (en) * | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7386655B2 (en) * | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7315916B2 (en) * | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7149111B2 (en) * | 2004-12-17 | 2006-12-12 | Msystems Ltd. | Method of handling limitations on the order of writing to a non-volatile memory |
FR2880152B1 (fr) * | 2004-12-24 | 2007-03-02 | Trusted Logic Sa | Procede et systeme pour l'optimisation de la gestion de fichiers a enregistrements |
US7308525B2 (en) * | 2005-01-10 | 2007-12-11 | Sandisk Il Ltd. | Method of managing a multi-bit cell flash memory with improved reliablility and performance |
US7426623B2 (en) * | 2005-01-14 | 2008-09-16 | Sandisk Il Ltd | System and method for configuring flash memory partitions as super-units |
US8341371B2 (en) * | 2005-01-31 | 2012-12-25 | Sandisk Il Ltd | Method of managing copy operations in flash memories |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US9104315B2 (en) * | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
CA2597551A1 (en) * | 2005-02-11 | 2006-08-17 | M-Systems Flash Disk Pioneers Ltd. | Nand flash memory system architecture |
US8244958B2 (en) | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US7275140B2 (en) * | 2005-05-12 | 2007-09-25 | Sandisk Il Ltd. | Flash memory management method that is resistant to data corruption by power loss |
US7389397B2 (en) * | 2005-06-01 | 2008-06-17 | Sandisk Il Ltd | Method of storing control information in a large-page flash memory device |
US20060282610A1 (en) | 2005-06-08 | 2006-12-14 | M-Systems Flash Disk Pioneers Ltd. | Flash memory with programmable endurance |
KR100827227B1 (ko) * | 2005-06-24 | 2008-05-07 | 삼성전자주식회사 | 저성능 저장장치의 drm 권리 객체를 효율적으로관리하는 방법 및 장치 |
US7748031B2 (en) | 2005-07-08 | 2010-06-29 | Sandisk Corporation | Mass storage device with automated credentials loading |
US8335920B2 (en) | 2005-07-14 | 2012-12-18 | Imation Corp. | Recovery of data access for a locked secure storage device |
US8321953B2 (en) * | 2005-07-14 | 2012-11-27 | Imation Corp. | Secure storage device with offline code entry |
US8015606B1 (en) | 2005-07-14 | 2011-09-06 | Ironkey, Inc. | Storage device with website trust indication |
US8438647B2 (en) * | 2005-07-14 | 2013-05-07 | Imation Corp. | Recovery of encrypted data from a secure storage device |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
TW200705180A (en) * | 2005-07-29 | 2007-02-01 | Genesys Logic Inc | Adjustable flash memory management system and method |
US7949845B2 (en) * | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US20070067620A1 (en) * | 2005-09-06 | 2007-03-22 | Ironkey, Inc. | Systems and methods for third-party authentication |
US7631245B2 (en) | 2005-09-26 | 2009-12-08 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US8291295B2 (en) | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US7652922B2 (en) | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
US20070165457A1 (en) * | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
US11948629B2 (en) | 2005-09-30 | 2024-04-02 | Mosaid Technologies Incorporated | Non-volatile memory device with concurrent bank operations |
WO2007036050A1 (en) * | 2005-09-30 | 2007-04-05 | Mosaid Technologies Incorporated | Memory with output control |
US7747833B2 (en) | 2005-09-30 | 2010-06-29 | Mosaid Technologies Incorporated | Independent link and bank selection |
US20070076502A1 (en) * | 2005-09-30 | 2007-04-05 | Pyeon Hong B | Daisy chain cascading devices |
US7814262B2 (en) * | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
US7529905B2 (en) | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
US7509471B2 (en) * | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
US7631162B2 (en) | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7793068B2 (en) | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US8639873B1 (en) | 2005-12-22 | 2014-01-28 | Imation Corp. | Detachable storage device with RAM cache |
US8266378B1 (en) | 2005-12-22 | 2012-09-11 | Imation Corp. | Storage device with accessible partitions |
KR100755700B1 (ko) | 2005-12-27 | 2007-09-05 | 삼성전자주식회사 | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법 |
US20070147115A1 (en) * | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
US7519754B2 (en) * | 2005-12-28 | 2009-04-14 | Silicon Storage Technology, Inc. | Hard disk drive cache memory and playback device |
US8335868B2 (en) * | 2006-03-28 | 2012-12-18 | Mosaid Technologies Incorporated | Apparatus and method for establishing device identifiers for serially interconnected devices |
US8069328B2 (en) * | 2006-03-28 | 2011-11-29 | Mosaid Technologies Incorporated | Daisy chain cascade configuration recognition technique |
US8364861B2 (en) * | 2006-03-28 | 2013-01-29 | Mosaid Technologies Incorporated | Asynchronous ID generation |
US7551492B2 (en) * | 2006-03-29 | 2009-06-23 | Mosaid Technologies, Inc. | Non-volatile semiconductor memory with page erase |
CN102063931B (zh) * | 2006-03-31 | 2014-07-30 | 莫塞德技术公司 | 闪烁存储器系统控制方案 |
US8645793B2 (en) | 2008-06-03 | 2014-02-04 | Marvell International Ltd. | Statistical tracking for flash memory |
US7583545B2 (en) * | 2006-05-21 | 2009-09-01 | Sandisk Il Ltd | Method of storing data in a multi-bit-cell flash memory |
US7711890B2 (en) * | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
US20080046641A1 (en) * | 2006-08-21 | 2008-02-21 | Sandisk Il Ltd. | NAND flash memory controller exporting a logical sector-based interface |
US20080046630A1 (en) * | 2006-08-21 | 2008-02-21 | Sandisk Il Ltd. | NAND flash memory controller exporting a logical sector-based interface |
US7904639B2 (en) * | 2006-08-22 | 2011-03-08 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
KR100802059B1 (ko) * | 2006-09-06 | 2008-02-12 | 삼성전자주식회사 | 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법 |
US7593259B2 (en) | 2006-09-13 | 2009-09-22 | Mosaid Technologies Incorporated | Flash multi-level threshold distribution scheme |
US7886204B2 (en) * | 2006-09-27 | 2011-02-08 | Sandisk Corporation | Methods of cell population distribution assisted read margining |
US7716538B2 (en) * | 2006-09-27 | 2010-05-11 | Sandisk Corporation | Memory with cell population distribution assisted read margining |
US8700818B2 (en) * | 2006-09-29 | 2014-04-15 | Mosaid Technologies Incorporated | Packet based ID generation for serially interconnected devices |
KR100771519B1 (ko) * | 2006-10-23 | 2007-10-30 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
US7814263B2 (en) * | 2006-10-26 | 2010-10-12 | Sandisk Il Ltd. | Erase history-based flash writing method |
KR100789406B1 (ko) | 2006-11-03 | 2007-12-28 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법 |
US7817470B2 (en) | 2006-11-27 | 2010-10-19 | Mosaid Technologies Incorporated | Non-volatile memory serial core architecture |
KR100816761B1 (ko) * | 2006-12-04 | 2008-03-25 | 삼성전자주식회사 | 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법 |
US8010709B2 (en) * | 2006-12-06 | 2011-08-30 | Mosaid Technologies Incorporated | Apparatus and method for producing device identifiers for serially interconnected devices of mixed type |
US8271758B2 (en) | 2006-12-06 | 2012-09-18 | Mosaid Technologies Incorporated | Apparatus and method for producing IDS for interconnected devices of mixed type |
US8331361B2 (en) * | 2006-12-06 | 2012-12-11 | Mosaid Technologies Incorporated | Apparatus and method for producing device identifiers for serially interconnected devices of mixed type |
US7818464B2 (en) * | 2006-12-06 | 2010-10-19 | Mosaid Technologies Incorporated | Apparatus and method for capturing serial input data |
US7853727B2 (en) | 2006-12-06 | 2010-12-14 | Mosaid Technologies Incorporated | Apparatus and method for producing identifiers regardless of mixed device type in a serial interconnection |
US7529149B2 (en) * | 2006-12-12 | 2009-05-05 | Mosaid Technologies Incorporated | Memory system and method with serial and parallel modes |
US8984249B2 (en) * | 2006-12-20 | 2015-03-17 | Novachips Canada Inc. | ID generation apparatus and method for serially interconnected devices |
US8127200B2 (en) * | 2006-12-24 | 2012-02-28 | Sandisk Il Ltd. | Flash memory device and system with randomizing for suppressing errors |
US8370561B2 (en) * | 2006-12-24 | 2013-02-05 | Sandisk Il Ltd. | Randomizing for suppressing errors in a flash memory |
US7721040B2 (en) * | 2007-01-18 | 2010-05-18 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US8010710B2 (en) | 2007-02-13 | 2011-08-30 | Mosaid Technologies Incorporated | Apparatus and method for identifying device type of serially interconnected devices |
US20080201588A1 (en) * | 2007-02-16 | 2008-08-21 | Mosaid Technologies Incorporated | Semiconductor device and method for reducing power consumption in a system having interconnected devices |
US8095723B2 (en) * | 2007-02-16 | 2012-01-10 | Electronics And Telecommunications Research Institute | Log-based flash translation layer and operating method thereof |
US8086785B2 (en) * | 2007-02-22 | 2011-12-27 | Mosaid Technologies Incorporated | System and method of page buffer operation for memory devices |
WO2008101316A1 (en) | 2007-02-22 | 2008-08-28 | Mosaid Technologies Incorporated | Apparatus and method for using a page buffer of a memory device as a temporary cache |
US7796462B2 (en) | 2007-02-22 | 2010-09-14 | Mosaid Technologies Incorporated | Data flow control in multiple independent port |
US8370562B2 (en) * | 2007-02-25 | 2013-02-05 | Sandisk Il Ltd. | Interruptible cache flushing in flash memory systems |
US7577059B2 (en) * | 2007-02-27 | 2009-08-18 | Mosaid Technologies Incorporated | Decoding control with address transition detection in page erase function |
US7804718B2 (en) * | 2007-03-07 | 2010-09-28 | Mosaid Technologies Incorporated | Partial block erase architecture for flash memory |
US7573773B2 (en) * | 2007-03-28 | 2009-08-11 | Sandisk Corporation | Flash memory with data refresh triggered by controlled scrub data reads |
US7477547B2 (en) * | 2007-03-28 | 2009-01-13 | Sandisk Corporation | Flash memory refresh techniques triggered by controlled scrub data reads |
US7808834B1 (en) | 2007-04-13 | 2010-10-05 | Marvell International Ltd. | Incremental memory refresh |
US7869277B1 (en) * | 2007-04-25 | 2011-01-11 | Apple Inc. | Managing data writing to memories |
US7689762B2 (en) * | 2007-05-03 | 2010-03-30 | Atmel Corporation | Storage device wear leveling |
US7577029B2 (en) * | 2007-05-04 | 2009-08-18 | Mosaid Technologies Incorporated | Multi-level cell access buffer with dual function |
CN101398759B (zh) * | 2007-06-29 | 2012-06-13 | 北京中星微电子有限公司 | 避免启动代码在数据段搬移时自我覆盖的方法 |
US8031526B1 (en) | 2007-08-23 | 2011-10-04 | Marvell International Ltd. | Write pre-compensation for nonvolatile memory |
US8189381B1 (en) | 2007-08-28 | 2012-05-29 | Marvell International Ltd. | System and method for reading flash memory cells |
US8085605B2 (en) | 2007-08-29 | 2011-12-27 | Marvell World Trade Ltd. | Sequence detection for flash memory with inter-cell interference |
US7970983B2 (en) * | 2007-10-14 | 2011-06-28 | Sandisk Il Ltd. | Identity-based flash management |
US8024545B2 (en) | 2007-10-19 | 2011-09-20 | Inha-Industry Partnership Institute | Efficient prefetching and asynchronous writing for flash memory |
US7913128B2 (en) * | 2007-11-23 | 2011-03-22 | Mosaid Technologies Incorporated | Data channel test apparatus and method thereof |
US8200904B2 (en) * | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
US7983099B2 (en) | 2007-12-20 | 2011-07-19 | Mosaid Technologies Incorporated | Dual function compatible non-volatile memory device |
US7865658B2 (en) * | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
US7940572B2 (en) * | 2008-01-07 | 2011-05-10 | Mosaid Technologies Incorporated | NAND flash memory having multiple cell substrates |
US8356105B2 (en) * | 2008-05-02 | 2013-01-15 | Marblecloud, Inc. | Enterprise device policy management |
US20100042900A1 (en) * | 2008-08-18 | 2010-02-18 | Apple Inc. | Write Failure Handling of MLC NAND |
TWI452467B (zh) * | 2008-10-13 | 2014-09-11 | A Data Technology Co Ltd | 記憶體系統及其控制方法 |
US8838876B2 (en) * | 2008-10-13 | 2014-09-16 | Micron Technology, Inc. | Translation layer in a solid state storage device |
US8219781B2 (en) * | 2008-11-06 | 2012-07-10 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
US8316201B2 (en) * | 2008-12-18 | 2012-11-20 | Sandisk Il Ltd. | Methods for executing a command to write data from a source location to a destination location in a memory device |
JP4551958B2 (ja) * | 2008-12-22 | 2010-09-29 | 株式会社東芝 | 半導体記憶装置および半導体記憶装置の制御方法 |
US20100169540A1 (en) * | 2008-12-30 | 2010-07-01 | Sinclair Alan W | Method and apparatus for relocating selected data between flash partitions in a memory device |
US8261009B2 (en) * | 2008-12-30 | 2012-09-04 | Sandisk Il Ltd. | Method and apparatus for retroactive adaptation of data location |
US20100228906A1 (en) * | 2009-03-06 | 2010-09-09 | Arunprasad Ramiya Mothilal | Managing Data in a Non-Volatile Memory System |
US8065469B2 (en) * | 2009-04-20 | 2011-11-22 | Imation Corp. | Static wear leveling |
US8176295B2 (en) | 2009-04-20 | 2012-05-08 | Imation Corp. | Logical-to-physical address translation for a removable data storage device |
TWI457940B (zh) * | 2009-05-15 | 2014-10-21 | Macronix Int Co Ltd | 區塊為基礎快閃記憶體之位元組存取 |
US8745365B2 (en) * | 2009-08-06 | 2014-06-03 | Imation Corp. | Method and system for secure booting a computer by booting a first operating system from a secure peripheral device and launching a second operating system stored a secure area in the secure peripheral device on the first operating system |
US8683088B2 (en) * | 2009-08-06 | 2014-03-25 | Imation Corp. | Peripheral device data integrity |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US8612718B2 (en) * | 2009-08-19 | 2013-12-17 | Seagate Technology Llc | Mapping alignment |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US8595411B2 (en) * | 2009-12-30 | 2013-11-26 | Sandisk Technologies Inc. | Method and controller for performing a sequence of commands |
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US9396104B1 (en) | 2010-03-22 | 2016-07-19 | Seagate Technology, Llc | Accessing compressed data of varying-sized quanta in non-volatile memory |
US9235530B2 (en) | 2010-05-31 | 2016-01-12 | Sandisk Technologies Inc. | Method and system for binary cache cleanup |
JP2012226822A (ja) | 2011-04-15 | 2012-11-15 | Samsung Electronics Co Ltd | 不揮発性メモリ装置 |
US9069477B1 (en) * | 2011-06-16 | 2015-06-30 | Amazon Technologies, Inc. | Reuse of dynamically allocated memory |
US9588883B2 (en) | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
US20130080731A1 (en) * | 2011-09-28 | 2013-03-28 | Ping-Yi Hsu | Method and apparatus for performing memory management |
US8687421B2 (en) | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9251086B2 (en) * | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
CN102662849B (zh) * | 2012-03-07 | 2015-12-16 | 忆正科技(武汉)有限公司 | 多通道闪存的区块管理方法 |
KR20140038110A (ko) | 2012-09-20 | 2014-03-28 | 한국전자통신연구원 | 파일 시스템 관리 방법 및 이를 이용하는 장치 |
US9495288B2 (en) | 2013-01-22 | 2016-11-15 | Seagate Technology Llc | Variable-size flash translation layer |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9268502B2 (en) | 2013-09-16 | 2016-02-23 | Netapp, Inc. | Dense tree volume metadata organization |
US9405783B2 (en) | 2013-10-02 | 2016-08-02 | Netapp, Inc. | Extent hashing technique for distributed storage architecture |
US9152684B2 (en) | 2013-11-12 | 2015-10-06 | Netapp, Inc. | Snapshots and clones of volumes in a storage system |
US9201918B2 (en) | 2013-11-19 | 2015-12-01 | Netapp, Inc. | Dense tree volume metadata update logging and checkpointing |
US9170746B2 (en) | 2014-01-07 | 2015-10-27 | Netapp, Inc. | Clustered raid assimilation management |
US9529546B2 (en) | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US9251064B2 (en) | 2014-01-08 | 2016-02-02 | Netapp, Inc. | NVRAM caching and logging in a storage system |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
US9152330B2 (en) | 2014-01-09 | 2015-10-06 | Netapp, Inc. | NVRAM data organization using self-describing entities for predictable recovery after power-loss |
US9256549B2 (en) | 2014-01-17 | 2016-02-09 | Netapp, Inc. | Set-associative hash table organization for efficient storage and retrieval of data in a storage system |
US9483349B2 (en) | 2014-01-17 | 2016-11-01 | Netapp, Inc. | Clustered raid data organization |
US9454434B2 (en) | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
US9268653B2 (en) | 2014-01-17 | 2016-02-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9230689B2 (en) | 2014-03-17 | 2016-01-05 | Sandisk Technologies Inc. | Finding read disturbs on non-volatile memories |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9501359B2 (en) | 2014-09-10 | 2016-11-22 | Netapp, Inc. | Reconstruction of dense tree volume metadata state across crash recovery |
US9524103B2 (en) | 2014-09-10 | 2016-12-20 | Netapp, Inc. | Technique for quantifying logical space trapped in an extent store |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US10114562B2 (en) | 2014-09-16 | 2018-10-30 | Sandisk Technologies Llc | Adaptive block allocation in nonvolatile memory |
US9552171B2 (en) | 2014-10-29 | 2017-01-24 | Sandisk Technologies Llc | Read scrub with adaptive counter management |
US9978456B2 (en) | 2014-11-17 | 2018-05-22 | Sandisk Technologies Llc | Techniques for reducing read disturb in partially written blocks of non-volatile memory |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9349479B1 (en) | 2014-11-18 | 2016-05-24 | Sandisk Technologies Inc. | Boundary word line operation in nonvolatile memory |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9449700B2 (en) | 2015-02-13 | 2016-09-20 | Sandisk Technologies Llc | Boundary word line search and open block read methods with reduced read disturb |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
WO2016175028A1 (ja) | 2015-04-28 | 2016-11-03 | 日本電気株式会社 | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム |
WO2017006675A1 (ja) | 2015-07-06 | 2017-01-12 | 日本電気株式会社 | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム |
JP6691669B2 (ja) | 2015-07-06 | 2020-05-13 | 日本電気株式会社 | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US10565230B2 (en) | 2015-07-31 | 2020-02-18 | Netapp, Inc. | Technique for preserving efficiency for replication between clusters of a network |
US10394660B2 (en) | 2015-07-31 | 2019-08-27 | Netapp, Inc. | Snapshot restore workflow |
US9653154B2 (en) | 2015-09-21 | 2017-05-16 | Sandisk Technologies Llc | Write abort detection for multi-state memories |
US9785525B2 (en) | 2015-09-24 | 2017-10-10 | Netapp, Inc. | High availability failover manager |
US20170097771A1 (en) | 2015-10-01 | 2017-04-06 | Netapp, Inc. | Transaction log layout for efficient reclamation and recovery |
US9836366B2 (en) | 2015-10-27 | 2017-12-05 | Netapp, Inc. | Third vote consensus in a cluster using shared storage devices |
US10235059B2 (en) | 2015-12-01 | 2019-03-19 | Netapp, Inc. | Technique for maintaining consistent I/O processing throughput in a storage system |
US10691553B2 (en) | 2015-12-16 | 2020-06-23 | Netapp, Inc. | Persistent memory based distributed-journal file system |
US10489346B2 (en) | 2015-12-16 | 2019-11-26 | Netapp, Inc. | Atomic update of B-tree in a persistent memory-based file system |
US10229009B2 (en) | 2015-12-16 | 2019-03-12 | Netapp, Inc. | Optimized file system layout for distributed consensus protocol |
US9830103B2 (en) | 2016-01-05 | 2017-11-28 | Netapp, Inc. | Technique for recovery of trapped storage space in an extent store |
US10108547B2 (en) | 2016-01-06 | 2018-10-23 | Netapp, Inc. | High performance and memory efficient metadata caching |
US9846539B2 (en) | 2016-01-22 | 2017-12-19 | Netapp, Inc. | Recovery from low space condition of an extent store |
WO2017130022A1 (en) | 2016-01-26 | 2017-08-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for adding storage devices to a data storage system with diagonally replicated data storage blocks |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US9952767B2 (en) | 2016-04-29 | 2018-04-24 | Netapp, Inc. | Consistency group management |
US9817593B1 (en) | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10713158B2 (en) | 2018-06-28 | 2020-07-14 | Western Digital Technologies, Inc. | Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring |
JP7242016B2 (ja) | 2019-07-26 | 2023-03-20 | 内田工業株式会社 | 複合遊具 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
TW261687B (ja) * | 1991-11-26 | 1995-11-01 | Hitachi Seisakusyo Kk | |
JP3485938B2 (ja) * | 1992-03-31 | 2004-01-13 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
US5459850A (en) * | 1993-02-19 | 1995-10-17 | Conner Peripherals, Inc. | Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5682497A (en) * | 1993-09-28 | 1997-10-28 | Intel Corporation | Managing file structures for a flash memory file system in a computer |
US5867641A (en) * | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
-
1997
- 1997-10-16 US US08/951,644 patent/US5937425A/en not_active Expired - Lifetime
-
1998
- 1998-10-05 WO PCT/US1998/021017 patent/WO1999021093A1/en active IP Right Grant
- 1998-10-05 JP JP2000517345A patent/JP3712231B2/ja not_active Expired - Fee Related
- 1998-10-05 KR KR10-2000-7004068A patent/KR100495722B1/ko active IP Right Grant
- 1998-10-05 CN CNB988101777A patent/CN1223945C/zh not_active Expired - Lifetime
- 1998-10-05 EP EP98950946A patent/EP1025502A4/en not_active Withdrawn
- 1998-10-05 AU AU96858/98A patent/AU9685898A/en not_active Abandoned
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938116B2 (en) * | 2001-06-04 | 2005-08-30 | Samsung Electronics Co., Ltd. | Flash memory management method |
USRE44052E1 (en) | 2001-06-04 | 2013-03-05 | Samsung Electronics Co., Ltd. | Flash memory management method |
USRE45222E1 (en) | 2001-06-04 | 2014-10-28 | Samsung Electronics Co., Ltd. | Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table |
USRE45577E1 (en) * | 2001-06-04 | 2015-06-23 | Samsung Electronics Co., Ltd. | Method of writing to a flash memory including data blocks and log blocks |
USRE46404E1 (en) * | 2001-06-04 | 2017-05-16 | Samsung Electronics Co., Ltd. | Flash memory management method |
JP2006515086A (ja) * | 2002-10-28 | 2006-05-18 | サンディスク コーポレイション | ブロック内のページをグループ化する方法及び装置 |
WO2005022393A1 (ja) * | 2003-08-29 | 2005-03-10 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置及びその書込み方法 |
US7987314B2 (en) | 2003-08-29 | 2011-07-26 | Panasonic Corporation | Non-volatile memory device and write method thereof |
US7287117B2 (en) | 2003-12-10 | 2007-10-23 | Samsung Electronics Co. Ltd. | Flash memory and mapping control apparatus and method for flash memory |
JP2007280108A (ja) * | 2006-04-07 | 2007-10-25 | Sony Corp | 記憶媒体制御装置、記憶媒体制御方法、プログラム |
Also Published As
Publication number | Publication date |
---|---|
AU9685898A (en) | 1999-05-10 |
WO1999021093A1 (en) | 1999-04-29 |
WO1999021093B1 (en) | 1999-07-22 |
EP1025502A4 (en) | 2006-11-08 |
CN1223945C (zh) | 2005-10-19 |
KR100495722B1 (ko) | 2005-06-17 |
CN1281562A (zh) | 2001-01-24 |
EP1025502A1 (en) | 2000-08-09 |
KR20010031157A (ko) | 2001-04-16 |
JP3712231B2 (ja) | 2005-11-02 |
US5937425A (en) | 1999-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001521220A (ja) | 改善されたフラッシュファイルシステム | |
US7734862B2 (en) | Block management for mass storage | |
US8171203B2 (en) | Faster write operations to nonvolatile memory using FSInfo sector manipulation | |
US6567307B1 (en) | Block management for mass storage | |
EP1410399B1 (en) | Method and apparatus for decreasing block write operation times performed on nonvolatile memory | |
US6034897A (en) | Space management for managing high capacity nonvolatile memory | |
JP4155463B2 (ja) | 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 | |
US5953737A (en) | Method and apparatus for performing erase operations transparent to a solid state storage system | |
JP4931810B2 (ja) | 最適化されたシーケンシャルなクラスタの管理のためのfat分析 | |
US6262918B1 (en) | Space management for managing high capacity nonvolatile memory | |
JP5295778B2 (ja) | フラッシュメモリ管理方法 | |
US7681008B2 (en) | Systems for managing file allocation table information | |
US7752412B2 (en) | Methods of managing file allocation table information | |
KR101329068B1 (ko) | 블록 관리를 가지는 비휘발성 메모리 | |
TW200417856A (en) | Method and apparatus for splitting a logical block | |
EP2156299A1 (en) | Method and system for storage address re-mapping for a memory device | |
KR20010029171A (ko) | 플래시 메모리와 그 제어 방법 | |
KR20020092261A (ko) | 멀티-플레인 구조의 플래시 메모리 관리 방법 | |
JP3555456B2 (ja) | フラッシュ型メモリの管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041221 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050216 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050223 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050719 |
|
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: 20050802 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050812 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080826 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080826 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090826 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090826 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090826 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100826 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110826 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110826 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120826 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130826 Year of fee payment: 8 |
|
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 |