JP3712231B2 - 改善されたフラッシュファイルシステム - Google Patents
改善されたフラッシュファイルシステム Download PDFInfo
- Publication number
- JP3712231B2 JP3712231B2 JP2000517345A JP2000517345A JP3712231B2 JP 3712231 B2 JP3712231 B2 JP 3712231B2 JP 2000517345 A JP2000517345 A JP 2000517345A JP 2000517345 A JP2000517345 A JP 2000517345A JP 3712231 B2 JP3712231 B2 JP 3712231B2
- Authority
- JP
- Japan
- Prior art keywords
- physical
- unit
- block
- virtual
- replacement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 41
- 238000013507 mapping Methods 0.000 claims description 8
- 239000002131 composite material Substances 0.000 claims description 7
- 238000010572 single replacement reaction Methods 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 230000000737 periodic 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/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)
Description
【発明の属する技術分野】
本発明は、フラッシュデバイスのデータ格納の処理を行うシステムに関し、さらに詳細には、フラッシュディスクとして機能することができるページモードフラッシュデバイスで情報の格納および検索を行うシステムに関する。
【0002】
【従来の技術】
フラッシュデバイスは、フラッシュ型浮遊ゲートトランジスタで形成される電気的消去可能プログラマブル読出し専用メモリ(EEPROM)を含み、機能および性能に関してEPROMメモリと類似である不揮発性メモリであり、メモリのページを消去する回路内部においてプログラム可能な操作を実現することができる付加的な機能を備えている。フラッシュデバイスは、従来の磁気記憶ディスクに比べて、比較的廉価で、比較的電力が少なくて済むという利点を備えている。しかし、フラッシュデバイスにおいて、その領域の以前のページを消去せずに、以前に書込んだ領域に再書込みを行うことは実際的ではない。フラッシュデバイスにはこのような制限があるために代表的な既存のオペレーティングシステムプログラムと共存することはできない。データが以前に書込まれた領域を最初に消去しない限り、フラッシュデバイスの中にあるメモリの領域にデータを書込むことができないからである。
【0003】
ソフトウェア製品が従来技術において提案してきたことは、オペレーティングシステムプログラムの修正を行うことなく、フラッシュデバイスを既存のコンピュータオペレーティングプログラムによって処理することができることであった。しかし、このような従来技術プログラムはすべて、欠点を持っている。たとえば、あるプログラムはフラッシュメモリを「追記型」装置として作動させる。この従来のソフトウェア製品は、以前に書込んだ記憶位置を再利用することができない。結局すべての位置が書込まれた場合には、特定の利用者の介在なしに、メモリをそれ以上使用することはできない。他の従来技術プログラムは、SanDiskによって提案されたプログラムのように、新たなデータがページに書込まれることになるたびに、メモリページ全体を消去し、再書込みを行う。このようなシステムは複数の消去サイクルを必要とするという欠点があり、これらのサイクルは比較的遅い上、非効率的であり、物理的な媒体そのものの急速な劣化を引き起こす。
【0004】
従来技術のこのような欠点を克服するために、フラッシュファイルシステム(FFS)が米国特許第5,404,485号に開示され、参照として本願に包含される。FFSはフラッシュデバイスにデータ格納およびデータ操作のシステムを提供し、これらのデバイスに磁気ディスクを基にしたデータ格納をエミュレートすることができるようにした。上記のように、比較的廉価であると共に電力消費が少ないため、フラッシュデバイスはデータ格納、特にラップトップのポータブルコンピュータに好都合な選択となる。FFSは磁気ディスク記憶装置の代わりとして作用するフラッシュデバイスの能力を強化する。さらに言えば、FFSは、米国特許第5,404,485号に開示されたように、きわめて有用であることが判明したため、データ形式の仕様は、フラッシュ変換層(FTL)と呼ばれる規格として、PCMCIA(Personal Computer Memory Card International Association)およびJEIDA(日本電子工業振興協会)の委員会によって採用された。
【0005】
FFSは本来、フラッシュEEPROM装置のための仮想マッピングシステムを表している。仮想マップは、フラッシュデバイス内部の読取り/書込みブロックの物理アドレスをそのブロックの仮想アドレスと関連付ける表である。これらのブロックのそれぞれは比較的小さいため、512バイト、すなわち仮想マップ自体のサイズは相当大きい。FFSはまた、フラッシュEEPROM装置に仮想マップの容量に格納および維持し、仮想マップの格納に必要な他のメモリの量を最小限に抑える方法を含む。
【0006】
上記のように、FFSは、フラッシュデバイスを磁気ディスク記憶装置のエミュレータに変形する場合に特にうまくいくことが判明し、産業規格として採用されたほどである。しかしながら、FFSは、さらに新たなフラッシュデバイス技術の要件をすべて満たすことはできない。特に、FFSはNANDおよびANDフラッシュ技術の場合にはうまくいかない。
【0007】
従来技術のフラッシュメモリアーキテクチャのある種の欠点、特に書込み前に消去するシステムの欠点を克服しようとする試みの別の例は、米国特許第5,479,638号に開示される。米国特許第5,479,638号のシステムにおいて、書込み済みのブロックに対してさらにプログラムの書込みがさらに必要である場合には、特定の読出し/書込みブロックの物理的な位置がシフトされる。しかし、このシステムは、一度に512バイトの単一の読出し/書込みブロックを消去することができるフラッシュデバイスを利用して操作されることができるにすぎないという欠点を持っている。このような要件はハードウェアレベルで実装されるため、このシステムはまた、さらに新たなNANDおよびANDフラッシュ技術に対して使用されることはできない。
【0008】
【発明が解決しようとする課題】
NANDおよびANDは多くの点に関して、以前のフラッシュデバイスと異なる。第一に、消去可能なユニットサイズは、以前のフラッシュデバイスの64KBとは対照的に、NANDおよびANDの場合には約8KBと小さめである。第二に、単一バイトを消去するために必要な時間として測定された場合であっても、NANDおよびANDの場合、消去時間が相当速い。第三に、フラッシュメモリはNANDおよびANDのために長さ256または512バイトのページに分割され、ハードウェアデバイス自体の不変の特性である。「ページ」および「ブロック」の特有の特性はある程度異なるが、ここで使用している「ページ」なる語は、以前のフラッシュ技術で使用される「ブロック」なる語と概ね同意義であることに留意すべきである。このような特徴は、NANDおよびAND技術に基づくフラッシュデバイスの動作に非常に密接な関係がある。
【0009】
第一に、ページモードメモリは、1ページまたは任意のページを書込むための固定オーバヘッドを備える。対照してみると、従来のフラッシュ技術における書込み動作のためのオーバヘッドは、書込まれたバイト数に比例した。第二に、各ページが特にアドレス呼出し可能である複数の予備バイトを有するように、NANDおよびANDにおけるフラッシュメモリは構成される。このような予備バイトは、フラッシュメモリシステムに関する情報の格納に好都合な位置にある。最後に、消去される前にページを書込むことができる回数に制限がある。事前の消去を行うことなくさらに書込む場合は信頼性に欠けることを考慮して、この制限は比較的低く、8または10回である。したがって、ページモードメモリは、成功するデータの格納および検索に対して、重要な利点および新たな難題の両方を有する。
【0010】
不幸なことに、上記のように、一般に利用可能な従来技術のデータ処理システム、すなわちFFSは、ページモードにおけるフラッシュメモリの動作に関して、重大な欠点がある。特に、ページモードプログラミングによって課せられる制限のために、FFSはNANDおよびANDなどのページモードフラッシュ技術では最適でない性能を例証する。さらに、ブロックごとの消去動作に必要な要件のために、米国特許第5,479,638号に開示されたシステムも、このようなフラッシュ技術に対して使用することができない。
【0011】
したがって、以前の非ページモードフラッシュデバイスの上で未だ利用可能であるが、ページモードフラッシュ技術の性能を最適化するようなNANDおよびANDフラッシュデバイスの上でデータ格納を処理するためのシステムが必要であり、そのようなシステムを備えることは大いに好都合であると思われる。
【0012】
【課題を解決するための手段】
第1の本発明は、複数の物理ユニットから構成されるメモリを管理する方法であって、物理ユニットの各々は複数の物理ブロックから構成され、物理ブロックの各々は、物理ユニット内でのそれぞれの物理ブロックオフセットを有しており、物理ユニットは消去可能なメモリの最も小さい部分であり、物理ブロックは書き込み可能なメモリの最も小さい部分である。本方法は、(a)複数の仮想ユニットであって、仮想ユニットの各々が複数の仮想ブロックを含み、仮想ブロックの各々が仮想ユニット内でのそれぞれの仮想ブロックオフセットを有する複数の仮想ユニットを提供するステップ;(b)目的の仮想ブロックにデータを書き込む命令を受信するステップ;(c)目的の仮想ブロックを含む仮想ユニットを突き止めるステップ;(d)目的の仮想ブロックを含む仮想ユニットを、対応する第1の物理ユニットのチェーンにマッピングするステップ;(e)第1の物理ユニット内での物理ブロックオフセットが、目的の仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい物理ブロックが、書き込まれた状態であり、また、第1の物理ユニットが、少なくとも2つの物理ユニットからなるチェーンの第1番目の物理ユニットであって、チェーンの全ての他の物理ユニットに対して、チェーンの他の物理ユニット内での物理ブロックオフセットが、仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい他の物理ユニットの物理ブロックも、書き込まれた状態であるときは:データを書き込むための未書込みの物理ユニットを探すステップ;(f)未書込みの物理ユニットを見つけられなかったときに:物理ユニットのチェーンを、チェーンの最終物理ユニットにフォールディングするステップ、を含む。
【0013】
本方法はさらに、(g)未書込み物理ユニットを見つけたときに:データを、未書込み物理ユニットに書き込むステップ、を含むことが好ましい。本方法はさらに、(g)フォールディングに続いて:チェーンの最終物理ユニットを除くチェーンの全ての物理ユニットを消去するステップ、を含むことが好ましい。本方法はまた、フォールディングが、未書込みの物理ユニットを見つけることができなかったときだけ実行されるように構成されることが好ましい。
【0014】
第2の本発明は、複数の物理ユニットから構成されるメモリを管理する方法であって、物理ユニットの各々は複数の物理ブロックから構成され、物理ブロックの各々は、物理ユニット内でのそれぞれの物理ブロックオフセットを有しており、物理ユニットは消去可能なメモリの最も小さい部分であり、物理ブロックは書き込み可能なメモリの最も小さい部分である。本方法は、(a)複数の仮想ユニットであって、仮想ユニットの各々が複数の仮想ブロックを含み、仮想ブロックの各々が仮想ユニット内でのそれぞれの仮想ブロックオフセットを有する複数の仮想ユニットを提供するステップ;(b)目的の仮想ブロックにデータを書き込む命令を受信するステップ;(c)目的の仮想ブロックを含む仮想ユニットを突き止めるステップ;(d)目的の仮想ブロックを含む仮想ユニットを、対応する第1の物理ユニットにマッピングするステップ;(e)第1の物理ユニット内での物理ブロックオフセットが、目的の仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい物理ブロックが未書込みの状態にあるときは:第1の物理ユニット内での物理ブロックオフセットが、仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい物理ブロックに、データを書き込むステップ;(f)さもなければ:第1の物理ユニットが、置換物理ユニットと関連付けられていないときは:(i)第1の物理ユニットを一つの未書込み物理ユニットに関連付け、一つの未書込み物理ユニットを置換物理ユニットとし、そして、(ii)置換物理ユニット内での物理ブロックオフセットが、目的の仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい物理ブロックに、データを書き込むステップ;(g)さもなければ:(i)置換物理ユニット内での物理ブロックオフセットが、目的の仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい物理ブロックが、未書込みの状態にあるときは:置換物理ユニット内での物理ブロックオフセットが、目的の仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい物理ブロックに、データを書き込むステップ;(ii)さもなければ:置換物理ユニットにおいて未書込み物理ブロックを探すステップ、を含む。
【0015】
本方法はさらに、(h)置換物理ユニットで未書込み物理ユニットを見つけたときに:未書込み物理ブロックにデータを書き込むステップ、を含むことが好ましい。本方法はさらに、(h)置換物理ユニットにおいて未書込み物理ユニットを見つけられないときに:置換物理ユニットが単一置換ユニットであるときは:第1の物理ユニットを置換物理ユニットにフォールディングするステップ、を含むことが好ましい。
【0016】
本発明はさらに、(i)第1の物理ユニット内での物理ブロックオフセットが、目的の仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい第1の物理ユニットの物理ブロックにデータを書き込むときに:第1の物理ユニット内での物理ブロックオフセットが、目的の仮想ブロックを含む仮想ユニット内での目的の仮想ブロックの仮想ブロックオフセットと等しい第1の物理ユニットの物理ブロックを、目的の仮想ブロックと関連付けるステップ;(j)置換物理ユニットの物理ブロックにデータを書き込むときに:以前に目的の仮想ブロックと関連付けられた物理ブロックに代えて、置換物理ユニットの物理ブロックを目的の仮想ブロックと関連付けるステップ;そして、(k)置換物理ユニットにおいて未書込み物理ブロックを見つけられないときに:置換物理ユニットが、複合置換物理ユニットであるときは:仮想ブロックと関連付けられている第1の物理ユニットと置換物理ユニットの物理ブロックを、未書込み物理ユニットにコピーするステップ、を含むことが好ましい。
【0019】
【発明の実施の形態】
本発明は、ブロックなどのデータの読出しおよび書込みのためのメモリ部分のサイズが、ユニットなどの消去のための最小部分のサイズと異なるようになっているフラッシュメモリを構成する方法に関する。本発明の方法によって構成されることができるフラッシュメモリの種類の例は、これに限定されるわけではないが、NANDおよびAND技術によって例示されるページモードデバイスを含む。方法はまた、フラッシュメモリにデータの読出しおよび書込みを行うための方法および未書込みの物理ユニットがそれ以上利用可能でない場合には、フラッシュメモリを再構成する方法である。
【0020】
以下、「物理ユニット」なる語は、消去されることができるメモリの最小部分またはその整数倍であるメモリの物理的な媒体またはハードウェアにあるユニットとして定義される。それは連続的な固定サイズの消去可能なメモリの部分である。「物理ブロック」なる語は、データの読出しまたは書込み用のメモリの部分として定義される。以下、「仮想ユニット」なる語は、物理ユニットと同一のサイズとして定義される。NANDおよびANDなどのページモードメモリ技術のために、消去することができるメモリの最小部分はページサイズより大きく、通常は約8KBである。ここで使用されるように、「物理ブロック」なる語は、ページモードメモリ技術のための「ページ」なる語と同意義である。したがって、仮想ユニットは物理ユニットと同一の大きさである。
【0021】
以下、「仮想マップ」なる語は、仮想ユニットを少なくとも1つの対応する物理ユニットに関連付ける表を表す。上記のように、各ユニット、すなわち仮想ユニットまたは物理ユニットは、複数のブロックで構成される。以下でさらに説明するように、ユニット内のブロックの正確な位置は、1つ以上の予め定められた規則に基づいて決定される。
【0022】
各物理ユニットは物理ユニット番号によって表される。各物理ブロックの位置は、物理ブロックオフセットによって与えられる。同様に、各仮想ユニットは仮想ユニット番号によって表される。各仮想ブロックの位置は、仮想ブロックオフセットによって与えられる。各仮想ユニット番号は、1つ以上の物理ユニット番号に対応することができることを留意すべきである。したがって、仮想ユニットと物理ユニットとの間のマッピングは、1対1または1対多のいずれかであってもよい。
【0023】
以下、「書込みデータ」なる語は、フラッシュメモリの上にデータを格納する行為を表す。「読出しデータ」なる語は、フラッシュメモリからデータを検索する行為を表す。以下、「未書込み」なる語は、データを書込ませることができる物理ブロックなどのメモリの一部分を示す。したがって、「未書込み」なる語は、これに限定されるわけではないが、ちょうど消去されたばかりのメモリの部分を含む。
【0024】
本発明によって構成されるフラッシュメモリを有するコンピュータまたは他の電子デバイスにおいて、そのデバイスのオペレーティングシステムが、読出しおよび書込みデータのために仮想ユニットおよび仮想ブロックに相互作用を及ぼす。仮想媒体は仮想ユニットおよびブロックを含むため、フラッシュメモリデバイスに相互作用を及ぼすオペレーティングシステムのためのインターフェースとして作用する。たとえば、オペレーティングシステムは、仮想ブロックオフセットで仮想ブロックにデータを書込むための書込み命令を発する。次に、仮想ブロックを含む仮想ユニットが突き止められる。次いで、仮想マップが、データが実際に格納されるメモリの物理ユニット内部の対応する物理ブロックを突き止める。オペレーティングシステムは、仮想ユニットおよび仮想ブロックがフラッシュメモリの実際のハードウェアであるかのように、読出しおよび書込み命令を発するが、実は実際のハードウェアはフラッシュメモリの物理ユニットおよび物理ブロックに組み込まれている。したがって、オペレーティングシステムは、仮想ユニットおよびブロックを認識するのみであり、ハードウェア自体に直接相互作用を及ぼさない。
【0025】
このようなインターフェースの利点は、仮想メモリを用いてオペレーティングシステムが相互作用を及ぼすことによって、さらに書込み可能となる前に消去しなければならないという要件などのフラッシュメモリに固有の欠点を、克服することができることである。さらに、電子デバイスのオペレーティングシステムにはフラッシュメモリのアドレスを構成する必要がない。さらに、1つのインターフェースがフラッシュメモリデバイスの多数の種類に使用されることができるため、オペレーティングシステムは、著しい修整の必要がなく、さまざまな異なるフラッシュメモリ技術に相互作用を及ぼすことができる。したがって、本発明の方法は、フラッシュメモリデバイスおよびそれらを使用する電子デバイスに最大の適応性を許容することができる。
【0026】
【実施例】
本発明は、NANDまたはANDフラッシュデバイスなどのページモードフラッシュメモリデバイスを構成するためのシステムを提供する。このシステムは、フラッシュデバイスなどから読み出したり、フラッシュデバイスなどに書込んだりするための方法を含む。さらに、このシステムはまた、フラッシュデバイスが磁気ディスク記憶装置をうまくエミュレートすることができるようなインターフェースも提供する。パーソナルコンピュータまたはラップトップコンピュータなどさまざまなホストデバイスに、このようなフラッシュメモリデバイスを取付けることができる。
【0027】
本発明は、フラッシュメモリに関して説明するが、その教えはまた、フラッシュメモリなどの同様の書込み、読出しおよびユニット消去の特性を備えたデータ記憶デバイスに応用可能であることを当業者は理解されたい。
【0028】
本発明によるページモードフラッシュメモリデバイスを構成するためのシステムの原理および動作は、図面および添付する詳細を参照すれば、よりよく理解されるであろう。
【0029】
ここで図面を参照すると、図1は、たとえば、NANDなどの技術による従来技術の物理的なページモードフラッシュメモリデバイスを模式的に示している。「物理的なデバイス」なる語は、以下、フラッシュメモリデバイスのための物理的な媒体を含む実際のハードウェア自体として定義される。このような物理的な媒体は一般に、フラッシュEEPROM装置から構成されるが、適切な不揮発性のプログラム可能なメモリデバイスのいずれで代用してもよい。「プログラム可能な」なる語は、以下、たとえば、データをメモリデバイスに書込ませることによってなど、変更可能であるとして定義される。
【0030】
フラッシュメモリ物理デバイス10は、少なくとも1つの物理ユニット12を備えているように示される。物理ユニット12は、消去可能な物理デバイス10の最小のセグメントである。物理ユニット12は整数倍のブロックを含み、個別にブロック1〜nとして表され、ここでnは整数であり、集合的にはブロック14として表される。ブロック14は、連続した固定長のグループの物理的なバイトアドレスから構成され、ハードウェアの特徴である。具体的に言えば、ブロック14のサイズは物理デバイス10の特性である。ブロック14の基本データ領域16に、利用者データを格納することができる。各ブロック14はまた、制御データ領域18も有する。制御データ領域18は、ブロック14の主要部分から個別アルゴリズムによってアドレス呼出しを行うことができ、ブロック14のサイズの計算には含まれない。以下でさらに説明するように、制御データ領域18は、フラッシュファイリングシステム自体に関連する情報の格納に好都合である。各物理ユニット12は、配分済みのユニットか未配分のユニットのいずれかである。未配分ユニットはそれぞれ、自由であり、利用データを含まず、配分および割当てが行われる用意がなされている。各配分済みのユニットは割当てされ、データを含む。
【0031】
図2は、基本的なフラッシュメモリデバイスを構成するためのシステムを示している。システム20は、仮想媒体22および物理デバイス10の両方を制御し、仮想マップ24によって仮想媒体22を物理デバイス10に関連付ける。仮想媒体22は複数の仮想ユニット26を含む。各仮想ユニット26は複数の仮想ブロック28を含む。各仮想ユニット26は仮想アドレスによって表される。仮想アドレスは、特定の仮想ユニット26を表す仮想ユニット番号を含む。各仮想ブロック28は仮想ブロックオフセットによって表される。同様に、各物理ユニット12は物理アドレスを有する。物理アドレスは、特定の物理ユニット12を表す物理ユニット番号を含む。各物理ブロック14は物理ブロックオフセットを有する。
【0032】
仮想マップ24は、配分済みの仮想ユニットである仮想ユニット26を配分済みの物理ユニットである少なくとも1つの物理ユニット12にマッピングする。物理ユニットに関して、仮想ユニットが少なくとも1つの物理ユニットにマッピングされた場合には、それは配分済みの仮想ユニットである。しかし、1つの仮想ユニット26は1つ以上の物理ユニット12にマッピングされることができる。したがって、仮想ユニット26と物理ユニット12との対応は、1対1または1対多のいずれであってもよい。
【0033】
システム20は以下のように作動する。フラッシュメモリデバイス(図示せず)を含む電子デバイスのオペレーティングシステムは、読出し命令または書込み命令などの命令を特定の仮想ユニット26内部の特定の仮想ブロック28に送信する。次に、仮想マップ24が物理ユニット12内部の対応する物理ブロック14を突き止める。
【0034】
示されているように、厳密に1つの物理ユニット12にマッピングされる各仮想ユニット26に対して、マッピングの対応が1対1である場合には、状況は比較的単純であるように思える。しかし、上記のように、物理デバイス10は、追加的なデータを書込むことができる前に、定期的な消去を実行するための要件を含め、読出しおよび書込みのための特定の物理的な制約条件がある。このような制約条件に対して、物理デバイス10またはデバイスの一部で頻繁に繰り返される消去を伴わない可能な解決法は2通りである。
【0035】
第1の解決法は図3Aに示されており、仮想ユニット26と物理ユニット12との対応が1対多であるため、各仮想ユニット26が複数の物理ユニット12に対応する。仮想マップ24は、このようなマッピングを実行するために必要な情報を保持しなければならない。仮想マップ24の一部の例が図3Aに挙げられており、本発明のANDシステムを適用することができる。
【0036】
仮想マップ24の部分は、物理ユニット12内部の物理ブロック14および仮想ユニット26内部の仮想ブロック28を示す。この例では、ある特定の仮想ユニット30が2つの物理ユニット12に対応する。第1の物理ユニット12は基本ユニット32である。第2の物理ユニット12は置換ユニット34である。各仮想ユニット26の場合には、1つの基本ユニット32のみであってもよい。しかし、各仮想ユニット26に関連するゼロ以上の置換ユニット34であってもよい。たとえば、仮想ユニット36は基本ユニット38にのみ対応し、置換ユニット34には対応しないため、仮想ユニット36は非置換型仮想ユニットの例である。
【0037】
仮想ブロック28の構成は、特定の仮想ユニット26に対応する物理ブロック14の数に依存する。仮想ユニット30の場合には、複数の仮想ブロック28が基本ユニット32内部の物理ブロック14に対応する一方、他の仮想ブロック28が置換ユニット34内部の物理ブロック14に対応する。仮想ユニット36の場合には、実質的にすべての仮想ブロック28が基本ユニット38内部の物理ブロック14に対応する。
【0038】
最も簡素な例において、仮想ユニットは非置換型ユニットであり、特定の物理ブロック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は、仮想および物理ユニットに関する情報を含むだけであるが、適正なブロックオフセットを決定するために規則が使用される。
【0039】
さらに複雑な場合には、各仮想ユニットは1つ以上の物理ユニットに対応する。この場合には、2つ以上の物理ユニットのグループが「チェーン」と呼ばれる。たとえば、仮想ユニット番号72は仮想ユニット30を表し、仮想ブロックオフセット74が仮想ブロック70を表す。物理ユニット番号78は置換ユニット34を表し、物理ブロックオフセット80は置換ユニット34内部の物理ブロック82を表す。したがって、仮想ユニット30の仮想ブロック70は置換ユニット34の物理ブロック82に対応する。
【0040】
データの読出しまたは書込みを行うための物理ブロック82を突き止めるために、再び第1の規則は、仮想ユニット番号72を決定するために仮想ユニットごとのブロックの数によって、所望の仮想ブロックオフセット74を割り振ることである。次に、仮想マップ24は仮想ユニット番号72を物理ユニット番号78にマッピングする。しかし、問題がある。前述したように、第2の規則は、仮想ブロックオフセットと同一の番号でなければならない物理ブロックオフセットによって、所望の物理ブロックが物理ユニットの中で突き止められることである。この場合には、チェーンに複数の物理ブロック14がある。いずれの物理ブロック14がデータを有するかを決定するために、第3の規則は、仮想ブロック70と同一のブロックオフセットを有する各物理ブロック14が、チェーンの各物理ユニット内部にあるかを調査することである。最終非自由物理ブロック14、この場合には置換ユニット34の物理ブロック82が、読み出し用の所望のデータを含む。逆に、書込みデータの場合には、第1の自由物理ブロック14が所望のブロックである。
【0041】
物理ブロックは属するチェーンにおいて物理ユニットの順に書込まれるため、「最終非自由物理ブロック」なる語は、未だ自由ではないが、チェーンの中で最も遠い下にあるユニットの物理ブロックを呼ぶ。チェーンにはユニットがそれ以上存在しないか、またはチェーンにおける次のユニットに同一のブロックオフセットを有する物理ブロックが自由であるかのいずれかである。同様に、第1の自由物理ブロックを発見するために、所望のブロックオフセットを有する各物理ブロックがチェーンの各物理ユニットにあるかどうかを調査し、この調査は基本ユニットから始めて、今度は各置換ユニットを通じて下に続き、自由ブロックが発見されるまで続く。
【0042】
FMAXと対照してみると、FMAXは同様の仮想マップおよびアドレス指定システムを使用するが、図3Bに示すように、各基本ユニットには1つの置換ユニットのみを備える。これを実現するために、FMAXは単一および複合の置換(物理)ユニットを使用する。単一置換ユニットは、物理ユニットの物理ブロックオフセットの実質的にすべてが対応する仮想ユニットの仮想ブロックオフセットに直接的に相関されるユニットである。複合置換ユニットは、仮想ブロックオフセットと物理ブロックオフセットとのこのような直接の対応関係が必ずしも存在しないユニットである。代わりに、対応する物理ブロックオフセットを有する物理ブロックが書込みに利用可能でない場合には、異なる物理ブロックが選択される。次に、仮想ブロックと物理ブロックとの実際の対応関係を決定するために、制御情報が制御データ領域に書込まれる。
【0043】
図3Bに示されるように、基本ユニット97は、複数の物理ブロック100を有し、それぞれのブロックが仮想ユニット104の仮想ブロック102に対応する単一置換ユニット98を有する。各物理ブロックオフセットは、同一のオフセット番号である仮想ブロックオフセットに対応する。
【0044】
しかしながら、必要とする物理ブロックオフセットを有する物理ブロックが利用可能でない場合には、同一の物理ユニットの異なる物理ブロックが書込まれなければならず、置換ユニットは複合置換ユニットになる。第2の基本ユニット109は、複数の物理ブロック112を有し、それぞれのブロックが仮想ユニット116の仮想ブロック114に対応する複合物理ユニット110を有する。しかし、1つの物理ブロックオフセットが同一のオフセット番号である仮想ブロックオフセットに対応することができる一方、第2の物理ブロックオフセットは同一のオフセット番号でない第2の仮想ブロックオフセットに対応してもよい。特定の物理ブロックを見つけるために、制御データ領域に書込まれた制御情報を調査しなければならない。以下にさらに説明するように、これは、データの書込みの場合および必要に応じてFMAXシステムを再構成する場合の両方の場合において、きわめて重要である。
【0045】
図4Aは図3Aの仮想マップを操作するためのフローチャートを示し、図4Bは図3Bの仮想マップを操作するためのフローチャートを示す。最も簡素な場合、すなわちすべての置換ユニットが単一ユニットまたは1つのみの置換ユニットを備える基本ユニットである場合には、ANDおよびFMAXのいずれも同じステップを使用することができる。まず、突き止められる対象の仮想ブロックの数を、仮想ユニット番号を与える仮想ユニットごとのブロックの数で割ることによって、仮想ユニット番号および仮想ブロックオフセットが計算される。法または割算の剰余が仮想ブロックオフセットである。
【0046】
次に、仮想マップが、仮想ユニットに対応する物理ユニットを発見するために調査される。仮想ユニットに対応する物理ユニットを発見することができない場合には、物理メモリの必要な部分はフラッシュデバイスに存在しない。上記のように、すべての置換ユニットが単一ユニットであるか、または基本ユニットが唯一の置換ユニットを有する場合にのみ、このような単一の方式が有効である。しかし、データが書込まれることになっている物理ブロックがすでにプログラムされているか、または他のデータで書込まれている場合には、この方式は作用しない。この場合には、データを書込むことができる別の物理ブロックを発見するタスクを処理することができるような置換方式が必要とされる。
【0047】
2通りの異なるアルゴリズムが、図4A(ANAND)および図4B(FMAX)に示されている。両方のアルゴリズムは同一の方式で始まる。ステップ1において、所望の物理ユニットが突き止められる。ステップ2において、特定のブロックオフセットに対応する物理ブロックが、その物理ユニットの内部で突き止められる。ステップ3において、ブロックが未書込みの場合には、データがブロックに書込まれる。所望の物理ブロックが利用可能でない場合には、本発明の2つのシステム、すなわちANDおよびFMAXは、各技術が所望の物理ブロックがすでに書込まれた状況に対処するような方法で分岐される。
【0048】
図4Aに示されるように、ANDシステムは、置換ユニットを見ることによってこの状況に対処する。ステップ4において、x番目の置換物理ユニットが調査される。ここでxは、最初は1に等しい整数である。その物理ユニットが所望の物理ブロックオフセットを備えた未書込みの物理ブロックを有する場合には、データが物理ブロックに書込まれる。ブロックが利用可能でない場合には、ステップ5に示されるように、xは1ずつ増分され、ステップ4が反復される。データがブロックに書込まれるか、またはチェーンの他の置換ユニットが発見されなくなるまで、ステップ4および5が反復される。ステップ6において、未配分の物理ユニットが置換ユニットとして配分され、データが所望のブロックオフセットを備えたブロックに書込まれる。
【0049】
FMAXシステムは、図4Bに示されるように、この状況に異なる方法で対処する。ステップ4において、置換ユニットにおける同一の物理ブロックオフセットを有する物理ブロックが突き止められる。その物理ブロックが未書込みの場合には、データがその物理ブロックに書込まれる。そうでない場合には、ステップ5のように、置換ユニットの中の異なる物理ブロックオフセットを備えた物理ブロックが突き止められる。未書込みの物理ブロックが突き止められるまで、ステップ5が反復される。今度は、仮想ブロックオフセットがもはや物理ブロックオフセットと同一でないため、置換ユニットが複合ユニットである。ステップ6において、マッピング方式が複合ユニット内部のいかなる物理ブロックの正確な位置も発見できるようにするために、制御情報が物理ユニットの制御データ領域に付加される。
【0050】
しかしながら、これらの置換アルゴリズムも、フラッシュデバイスの異なる要求のすべてに対処するのに十分でないと思われる。ANDおよびFMAXシステムの両方とも、最後には物理ブロックが利用可能でないため、物理ユニット内部のブロックにさらなるデータを書込むことができない状況に達するであろう。
【0051】
このような状況において、データを最も簡素な状態、すなわち非置換基本ユニットに再構築するために、仮想ユニットを再構成しなければならない。この再構成処理中、以前に仮想ユニット表示が属していた物理置換ユニットが解放され、それによって、割当てられていないまたは自由な物理ユニットとなる。AND置換ユニットおよび単一FMAX置換ユニットの両方に関して、この再構成処理は、フォールディングと呼ばれ、以下の図5Aに図示される。
【0052】
フォールディングは、置換ユニットにおいて基本ユニットにおいて書込まれたのと同一の物理ブロックオフセットで書込まれる対象の物理ブロックを必要とする。その理由については、処理が説明されるとさらに明らかになるであろう。フォールディングの第1のステップにおいて、チェーンの最終物理ユニットが物理ユニットxと識別される。ここで、xは1からいくつかの予め決定された実装依存制限数までの整数である。xが1に等しい場合、置換ユニットが実際に基本ユニットであり、残りのアルゴリズムは実行されないことに留意されたい。また、FMAXの場合には、xは1または2に等しいことにも留意されたい。
【0053】
ステップ2において、ユニットxのブロックnが調査される。ここでnは整数である。データがブロックnに書込まれている場合には、nは1ずつ増分される。そうでない場合には、ステップ3においてxが1ずつ減分される。xが0に等しいかまたは書込み済みのブロックnが発見されるかのいずれかになるまで、ステップ2および3が反復される。書込み済みのブロックnが発見された場合には、ステップ4において、データがチェーンの最終置換ユニットのブロックnまで移動される。すべてのデータが次に基本ユニットとなる最終置換ユニットに移動されるまで、ステップ2〜4が反復される。次に、事前の基本ユニットを含めるにしてもチェーンの他のすべてのユニットが解放され、割当てに利用可能となる。今度は仮想ユニットが1つの物理ユニットに対応するという事実を反映するために、仮想マップも更新される。
【0054】
残念なことに、置換ユニット内部のブロックが常に、仮想ブロックオフセットに等しい物理ブロックオフセットを持っているとは限らないため、フォールディングは、複合FMAX置換ユニットの場合には作用しない。再割当ての異なる処理が、図5Bの複合物理ユニットのために示されている。ステップ1において、 新たな未割当ての物理ユニットが、新たな基本物理ユニットと呼ばれる。ステップ2において、複合物理ユニットのブロックnが調査される。データが複合物理ユニットのブロックnに書込まれている場合には、ステップ3において、データが新たな基本ユニットにコピーされる。そうでない場合には、古い基本ユニットのブロックnからデータが新たな基本ユニットに書込まれる。ステップ4において、nが1ずつ増分される。すべてのブロックがコピーされるまで、ステップ2〜4が反復される。一旦、ブロックのすべてがコピーされると、古い基本ユニットのほか以前の置換ユニットも解放され、割当てのために利用可能となる。以前の手順のように、今度は仮想ユニットが1つのみの物理ユニットに対応するという事実を反映するために、仮想マップが更新される。
【0055】
再構成方式のきわめて簡略化した実施例も可能である。この簡略化した実施例において、置換ユニットが割当てられた直後に再構成の処理が行われる。したがって、置換ユニットはシステムの一時的な特徴にすぎず、静止状態、すなわち物理メモリが書込み処理を実行していない状態において、データは基本非置換ユニットにのみ存在する。置換ユニットは、書込み処理のためだけに存在する。処理の終了時に、情報のすべてが新たなユニットに移動されるため、置換ユニットは実質的に消失する。この方法は、実装の容易さおよびそれを管理するために必要とされる制御構造の簡便さという利点を備える。しかし、その欠点は、この方法が効率的ではないため、システムの書込み性能を低下させることにある。
【0056】
本発明に含まれる方法のすべては、格納されるデータの状態を記述するために、物理的なフラッシュデバイス自体に制御情報を記録することが可能でなければならない。特に、ユニットおよびブロックの制御情報は格納されることが好ましいが、別法としてそのようなデータは他の種類のデータから再構築することもできる。ユニット制御情報は、物理ユニットに配分された物理ユニット番号、基本または置換ユニットとしての物理ユニット自体の状態および他のユニットに対するそのユニットの位置を表示する。ブロック制御情報は、物理ブロックが使用されているか、解放されているかまたは異なる物理ブロックに存在する情報によって取り替えられているかどうかを表示する。
【0057】
これらの異なる種類の1つまたは両方の情報を物理デバイスの特別な部分に、記録することができる。図1で上記のように、好ましくは、ANDおよびFMAXシステムは各物理ユニット12を物理的なフラッシュデバイスに記録される実際の利用者データを含む基本データ領域16および制御情報を含む制御データ領域18に分割する。このような領域は、ブロック16の下位区分として示されるが、物理ユニット12はまた、ブロックへの分割に実質的に独立である基本データ領域および制御データ領域に分割されてもよい。制御データ領域18は基本データ領域16のブロック探索方式の中に含まれず、物理的なフラッシュディスクの全体サイズを計算する場合にも含まれないことに留意すべきである。
【0058】
NANDおよびANDフラッシュ技術は、メモリの各ブロックに空白領域を有するため、制御情報が通常、ブロックの空白領域に記録され、利用者データが基本ブロック領域に配置される。
【0059】
空白領域が設けられていないフラッシュ技術の場合には、利用者データを格納するための主要領域および必要な制御情報を格納するためのオーバヘッド部分に、すべての物理ユニットを分割することができる。
【0060】
上記の説明は例として使用することのみを目的とし、さまざまな他の実施例が本発明の精神および範囲の中で可能であることを認識されたい。
【図面の簡単な説明】
本発明は、添付図面に関して、例としてのみここには説明される。
【図1】 本発明による物理的なフラッシュメモリデバイスの概略図である。
【図2】 本発明によるフラッシュメモリデバイスを構成する基本システムの図である。
【図3A】 本発明によるANDシステムを示す。
【図3B】 本発明によるFMAXシステムを示す。
【図4A】 本発明によるANDシステムのための書込みアルゴリズムを示す。
【図4B】 本発明によるFMAXシステムのための書込みアルゴリズムを示す。
【図5A】 本発明によるANDシステムのための再構成アルゴリズムを示す。
【図5B】 本発明によるFMAXシステムのための再構成アルゴリズムを示す。
Claims (8)
- 複数の物理ユニットから構成されるメモリを管理する方法であって、
前記物理ユニットの各々は複数の物理ブロックから構成され、
前記物理ブロックの各々は、前記物理ユニット内でのそれぞれの物理ブロックオフセットを有しており、
前記物理ユニットは消去可能なメモリの最も小さい部分であり、
前記物理ブロックは書き込み可能なメモリの最も小さい部分であり、
(a) 複数の仮想ユニットであって、前記仮想ユニットの各々が複数の仮想ブロックを含み、前記仮想ブロックの各々が前記仮想ユニット内でのそれぞれの仮想ブロックオフセットを有する複数の仮想ユニットを提供するステップ;
(b) 目的の仮想ブロックにデータを書き込む命令を受信するステップ;
(c) 前記目的の仮想ブロックを含む前記仮想ユニットを突き止めるステップ;
(d) 前記目的の仮想ブロックを含む前記仮想ユニットを、対応する第1の物理ユニットのチェーンにマッピングするステップ;
(e) 前記第1の物理ユニット内での物理ブロックオフセットが、前記目的の仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい物理ブロックが、書き込まれた状態であり、
また、前記第1の物理ユニットが、少なくとも2つの物理ユニットからなるチェーンの第1番目の物理ユニットであって、
前記チェーンの全ての他の物理ユニットに対して、前記チェーンの前記他の物理ユニット内での物理ブロックオフセットが、前記仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい前記他の物理ユニットの物理ブロックも、書き込まれた状態であるときは:
前記データを書き込むための未書込みの物理ユニットを探すステップ;
(f) 前記未書込みの物理ユニットを見つけられなかったときに:
物理ユニットのチェーンを、前記チェーンの最終物理ユニットにフォールディングするステップ
を含む方法。 - (g) 前記未書込み物理ユニットを見つけたときに:
前記データを、前記未書込み物理ユニットに書き込むステップ
をさらに含むことを特徴とする請求項1に記載の方法。 - (g) 前記フォールディングに続いて:
前記チェーンの前記最終物理ユニットを除く前記チェーンの全ての物理ユニットを消去するステップ
をさらに含むことを特徴とする請求項1に記載の方法。 - 前記フォールディングが、前記未書込みの物理ユニットを見つけることができなかったときだけ実行されることを特徴とする請求項1に記載の方法。
- 複数の物理ユニットから構成されるメモリを管理する方法であって、
前記物理ユニットの各々は複数の物理ブロックから構成され、
前記物理ブロックの各々は、前記物理ユニット内でのそれぞれの物理ブロックオフセットを有しており、
前記物理ユニットは消去可能なメモリの最も小さい部分であり、
前記物理ブロックは書き込み可能なメモリの最も小さい部分であり、
(a) 複数の仮想ユニットであって、前記仮想ユニットの各々が複数の仮想ブロックを含み、前記仮想ブロックの各々が前記仮想ユニット内でのそれぞれの仮想ブロックオフセットを有する複数の仮想ユニットを提供するステップ;
(b) 目的の仮想ブロックにデータを書き込む命令を受信するステップ;
(c) 前記目的の仮想ブロックを含む前記仮想ユニットを突き止めるステップ;
(d) 前記目的の仮想ブロックを含む前記仮想ユニットを、対応する第1の物理ユニットにマッピングするステップ;
(e) 前記第1の物理ユニット内での物理ブロックオフセットが、前記目的の仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい物理ブロックが未書込みの状態にあるときは:
前記第1の物理ユニット内での物理ブロックオフセットが、前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい前記物理ブロックに、前記データを書き込むステップ;
(f) さもなければ:
前記第1の物理ユニットが、置換物理ユニットと関連付けられていないときは:
(i) 前記第1の物理ユニットを一つの未書込み物理ユニットに関連付け、前記一つの未書込み物理ユニットを前記置換物理ユニットとし、そして、
(ii) 前記置換物理ユニット内での物理ブロックオフセットが、前記目的の仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい物理ブロックに、前記データを書き込むステップ;
(g) さもなければ:
(i) 前記置換物理ユニット内での物理ブロックオフセットが、前記目的の仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい物理ブロックが、未書込みの状態にあるときは:
前記置換物理ユニット内での物理ブロックオフセットが、前記目的の仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい前記物理ブロックに、前記データを書き込むステップ;
(ii) さもなければ:
前記置換物理ユニットにおいて未書込み物理ブロックを探すステップ
を含む方法。 - (h) 前記置換物理ユニットで前記未書込み物理ユニットを見つけたときに:
前記未書込み物理ブロックに前記データを書き込むステップ
をさらに含むことを特徴とする請求項5に記載の方法。 - (h) 前記置換物理ユニットにおいて前記未書込み物理ユニットを見つけられないときに:
前記置換物理ユニットが単一置換ユニットであるときは:
前記第1の物理ユニットを前記置換物理ユニットにフォールディングするステップ
をさらに含むことを特徴とする請求項5に記載の方法。 - (i) 前記第1の物理ユニット内での物理ブロックオフセットが、前記目的の仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい前記第1の物理ユニットの前記物理ブロックに前記データを書き込むときに:
前記第1の物理ユニット内での物理ブロックオフセットが、前記目的の仮想ブロックを含む前記仮想ユニット内での前記目的の仮想ブロックの前記仮想ブロックオフセットと等しい前記第1の物理ユニットの前記物理ブロックを、前記目的の仮想ブロックと関連付けるステップ;
(j) 前記置換物理ユニットの物理ブロックに前記データを書き込むときに:
以前に前記目的の仮想ブロックと関連付けられた物理ブロックに代えて、前記置換物理ユニットの前記物理ブロックを前記目的の仮想ブロックと関連付けるステップ;そして、
(k) 前記置換物理ユニットにおいて前記未書込み物理ブロックを見つけられないときに:
前記置換物理ユニットが、複合置換物理ユニットであるときは:
仮想ブロックと関連付けられている前記第1の物理ユニットと前記置換物理ユニットの前記物理ブロックを、未書込み物理ユニットにコピーするステップ
をさらに含むことを特徴とする請求項6に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/951,644 | 1997-10-16 | ||
US08/951,644 US5937425A (en) | 1997-10-16 | 1997-10-16 | Flash file system optimized for page-mode flash technologies |
PCT/US1998/021017 WO1999021093A1 (en) | 1997-10-16 | 1998-10-05 | Improved flash file system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001521220A JP2001521220A (ja) | 2001-11-06 |
JP3712231B2 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7242016B2 (ja) | 2019-07-26 | 2023-03-20 | 内田工業株式会社 | 複合遊具 |
Families Citing this family (279)
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 |
US8171203B2 (en) | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
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 |
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 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
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 |
US7373656B2 (en) * | 2000-10-27 | 2008-05-13 | Sandisk Il Ltd. | Automatic configuration for portable devices |
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 |
KR100389867B1 (ko) | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
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 |
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 |
GB0123410D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
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 |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method 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 |
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 |
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 |
US7254668B1 (en) * | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | 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 |
JP4667243B2 (ja) * | 2003-08-29 | 2011-04-06 | パナソニック株式会社 | 不揮発性記憶装置及びその書込み方法 |
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 |
KR100608602B1 (ko) | 2003-12-10 | 2006-08-03 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 |
KR100533682B1 (ko) * | 2003-12-26 | 2005-12-05 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
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 |
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 |
US7370166B1 (en) | 2004-04-30 | 2008-05-06 | Lexar Media, Inc. | Secure portable storage device |
CN100353341C (zh) * | 2004-04-30 | 2007-12-05 | 联发科技股份有限公司 | 可循序写入数据至闪存中的系统及其方法 |
US7730482B2 (en) * | 2004-06-08 | 2010-06-01 | Covia Labs, Inc. | Method and system for customized programmatic dynamic creation of interoperability content |
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 |
EP1797645B1 (en) * | 2004-08-30 | 2018-08-01 | Google LLC | Systems and methods for providing nonvolatile memory management in wireless phones |
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 |
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 |
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 |
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 |
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 |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion 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 |
US8015606B1 (en) | 2005-07-14 | 2011-09-06 | Ironkey, Inc. | Storage device with website trust indication |
US8321953B2 (en) * | 2005-07-14 | 2012-11-27 | Imation Corp. | Secure storage device with offline code entry |
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 |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
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 |
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 |
US20070076502A1 (en) * | 2005-09-30 | 2007-04-05 | Pyeon Hong B | Daisy chain cascading devices |
KR101293365B1 (ko) | 2005-09-30 | 2013-08-05 | 모사이드 테크놀로지스 인코퍼레이티드 | 출력 제어 메모리 |
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 |
US7747833B2 (en) * | 2005-09-30 | 2010-06-29 | Mosaid Technologies Incorporated | Independent link and bank selection |
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 |
US7631162B2 (en) | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
US7509471B2 (en) * | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US7793068B2 (en) | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing 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 |
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 |
US8335868B2 (en) * | 2006-03-28 | 2012-12-18 | Mosaid Technologies Incorporated | Apparatus and method for establishing device identifiers for serially interconnected devices |
US7551492B2 (en) | 2006-03-29 | 2009-06-23 | Mosaid Technologies, Inc. | Non-volatile semiconductor memory with page erase |
ATE488009T1 (de) * | 2006-03-31 | 2010-11-15 | Mosaid Technologies Inc | Flash-speichersystem-steuerverfahren |
JP2007280108A (ja) * | 2006-04-07 | 2007-10-25 | Sony Corp | 記憶媒体制御装置、記憶媒体制御方法、プログラム |
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 |
US20080046630A1 (en) * | 2006-08-21 | 2008-02-21 | Sandisk Il Ltd. | NAND flash memory controller exporting a logical sector-based interface |
US20080046641A1 (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 |
US7716538B2 (en) * | 2006-09-27 | 2010-05-11 | Sandisk Corporation | Memory with cell population distribution assisted read margining |
US7886204B2 (en) * | 2006-09-27 | 2011-02-08 | Sandisk Corporation | Methods of 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 | 삼성전자주식회사 | 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법 |
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 |
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 |
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 |
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 |
US7769945B2 (en) * | 2007-01-18 | 2010-08-03 | 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 |
US8095723B2 (en) * | 2007-02-16 | 2012-01-10 | Electronics And Telecommunications Research Institute | Log-based flash translation layer and operating method thereof |
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 |
US8046527B2 (en) | 2007-02-22 | 2011-10-25 | Mosaid Technologies Incorporated | Apparatus and method for using a page buffer of a memory device as a temporary cache |
US8086785B2 (en) | 2007-02-22 | 2011-12-27 | Mosaid Technologies Incorporated | System and method of page buffer operation for memory devices |
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 |
WO2009137371A2 (en) * | 2008-05-02 | 2009-11-12 | Ironkey, Inc. | Enterprise device recovery |
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 |
US8285970B2 (en) * | 2008-11-06 | 2012-10-09 | 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 | 株式会社東芝 | 半導体記憶装置および半導体記憶装置の制御方法 |
US8261009B2 (en) * | 2008-12-30 | 2012-09-04 | Sandisk Il Ltd. | Method and apparatus for retroactive adaptation of data location |
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 |
US20100228906A1 (en) * | 2009-03-06 | 2010-09-09 | Arunprasad Ramiya Mothilal | Managing Data in a Non-Volatile Memory System |
US8176295B2 (en) | 2009-04-20 | 2012-05-08 | Imation Corp. | Logical-to-physical address translation for a removable data storage device |
US8065469B2 (en) | 2009-04-20 | 2011-11-22 | Imation Corp. | Static wear leveling |
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 |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
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 |
US9251064B2 (en) | 2014-01-08 | 2016-02-02 | Netapp, Inc. | NVRAM caching and logging in a storage system |
US9529546B2 (en) | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
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 |
US9268653B2 (en) | 2014-01-17 | 2016-02-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
US9454434B2 (en) | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
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 |
US10649890B2 (en) | 2015-04-28 | 2020-05-12 | Nec Corporation | Information processing system, storage control apparatus, storage control method, and storage control program |
JP6691669B2 (ja) | 2015-07-06 | 2020-05-13 | 日本電気株式会社 | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム |
US10592148B2 (en) | 2015-07-06 | 2020-03-17 | Nec Corporation | Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium |
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 |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation 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 |
US10489346B2 (en) | 2015-12-16 | 2019-11-26 | Netapp, Inc. | Atomic update of B-tree in a persistent memory-based file system |
US10691553B2 (en) | 2015-12-16 | 2020-06-23 | Netapp, Inc. | Persistent memory based distributed-journal 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 |
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 EP EP98950946A patent/EP1025502A4/en not_active Withdrawn
- 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 WO PCT/US1998/021017 patent/WO1999021093A1/en active IP Right Grant
- 1998-10-05 CN CNB988101777A patent/CN1223945C/zh not_active Expired - Lifetime
- 1998-10-05 AU AU96858/98A patent/AU9685898A/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7242016B2 (ja) | 2019-07-26 | 2023-03-20 | 内田工業株式会社 | 複合遊具 |
Also Published As
Publication number | Publication date |
---|---|
JP2001521220A (ja) | 2001-11-06 |
EP1025502A4 (en) | 2006-11-08 |
KR20010031157A (ko) | 2001-04-16 |
WO1999021093A1 (en) | 1999-04-29 |
AU9685898A (en) | 1999-05-10 |
CN1281562A (zh) | 2001-01-24 |
WO1999021093B1 (en) | 1999-07-22 |
US5937425A (en) | 1999-08-10 |
CN1223945C (zh) | 2005-10-19 |
EP1025502A1 (en) | 2000-08-09 |
KR100495722B1 (ko) | 2005-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3712231B2 (ja) | 改善されたフラッシュファイルシステム | |
US9489301B2 (en) | Memory systems | |
EP1410399B1 (en) | Method and apparatus for decreasing block write operation times performed on nonvolatile memory | |
JP4238514B2 (ja) | データ記憶装置 | |
US8171203B2 (en) | Faster write operations to nonvolatile memory using FSInfo sector manipulation | |
US6591330B2 (en) | System and method for flexible flash file | |
JP4206688B2 (ja) | データ処理装置及びデータ処理方法 | |
US7426623B2 (en) | System and method for configuring flash memory partitions as super-units | |
JP4611024B2 (ja) | ブロック内のページをグループ化する方法及び装置 | |
US6034897A (en) | Space management for managing high capacity nonvolatile memory | |
US5953737A (en) | Method and apparatus for performing erase operations transparent to a solid state storage system | |
US7752412B2 (en) | Methods of managing file allocation table information | |
US7389397B2 (en) | Method of storing control information in a large-page flash memory device | |
US7681008B2 (en) | Systems for managing file allocation table information | |
KR101329068B1 (ko) | 블록 관리를 가지는 비휘발성 메모리 | |
WO2005059966A2 (en) | Rotational use of memory to minimize write cycles | |
KR20070060070A (ko) | 최적화된 순차적인 클러스터 관리용 에프에이티 분석 | |
GB2411499A (en) | Maintaining erased blocks in a non-volatile memory | |
WO2008042594A1 (en) | Managing file allocation table information |
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 |