JP4155463B2 - 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 - Google Patents
順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 Download PDFInfo
- Publication number
- JP4155463B2 JP4155463B2 JP2003533286A JP2003533286A JP4155463B2 JP 4155463 B2 JP4155463 B2 JP 4155463B2 JP 2003533286 A JP2003533286 A JP 2003533286A JP 2003533286 A JP2003533286 A JP 2003533286A JP 4155463 B2 JP4155463 B2 JP 4155463B2
- Authority
- JP
- Japan
- Prior art keywords
- physical
- block
- page
- virtual
- written
- 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
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の分野】
本発明は、フラッシュデバイスの、より効率的なデータ管理及び保存のためのシステム及び方法に関し、特に、フラッシュデバイスへの情報の保存及び引き出しが、メモリの連続的な物理部分への順次書き込み処理を介して行われるシステム及び方法に関する。
【0002】
【発明の背景】
フラッシュデバイスは、フラッシュタイプのフローティングゲート・トランジスタから形成した電気的に消去可能な、そしてプログラム可能な読み取り専用メモリ(EEPROM)を含み、機能及び性能においてEPROMメモリに類似する不揮発性メモリであり、メモリの一部を消去するための、回路に組み入れられたプログラム可能な処理を可能にする追加の機能がある。フラッシュデバイスは、従来の保存用磁気ディスクに比べ、安価で、消費電力が少ないという利点がある。しかしながら、フラッシュデバイスでは、メモリの書き込み済み領域を、その領域を先に消去せずに書き直すことは、実際には行われない。フラッシュデバイス内のデータが書き込まれたメモリ領域には、その領域をまず消去しなければデータを書き込むことができないという、フラッシュデバイスのこの制限は、通常の既存のオペレーティング・システムのプログラムとは相容れないものである。
【0003】
背景技術においては、オペレーティング・システム・プログラムを変更することなく、既存のコンピュータ操作プログラムでフラッシュデバイスを管理できるソフトウェア製品が提案されている。しかし、これらの背景技術プログラムには、すべて欠点がある。例えば、あるプログラムは、フラッシュメモリを「一度の書き込みで何度も読み取る」デバイスとして操作する。この背景技術ソフトウェア製品は、先に書き込んだ記憶位置をリサイクルすることができない。結局すべての位置が書き込まれた場合、ユーザの特定な介入がなければ、これ以上メモリを使用することはできない。背景技術のこれらの欠点を解決するために、米国特許第5,404,485号にフラッシュ・ファイル・システム(FFS)が開示されている。この特許は、本出願と所有者が共通であり、ここに、参照として本文に完全に記載したものとする。FFSは、フラッシュデバイスへのデータ保存及び処理のためのシステムを提供し、これらのデバイスが磁性ディスクを模倣するようにした。フラッシュデバイスは、先に述べたように、比較的にコストが安価で電力消費量が低いため、特にラップトップ、ポータブル・コンピュータにおけるデータ保存のための選択として好ましい。FFSは、磁性ディスク記憶装置の代用としてのフラッシュデバイスの機能を向上させる。実に、米国特許第5,404,485号に開示したFFSは、非常に有用で、データ・レイアウト仕様がPCMCIA(パソコン・メモリ・カード国際提携)、そしてフラッシュ・トランスレーション・レイヤ(FTL)と呼ばれる規格としてJEIDA(日本電子工業振興協会)委員会に採用されている。
【0004】
FFSは、本質的に、フラッシュEEPROMデバイスのための仮想的なマッピングシステムを表す。仮想マップは、フラッシュデバイス内の読み取り/書き込みページの物理アドレスを、そのページの仮想アドレスに関連づける表である。これらのページの各々は、比較的に小さく、512バイトであるが、仮想マップ自身のサイズは非常に大きい。FFSは、また、仮想マップの保存に必要な他のメモリ量を最小にして、フラッシュEEPROMデバイス上の仮想マップの全体を保存して維持する方法を含む。
【0005】
上記のように、FFSは、特に、フラッシュデバイスを磁性ディスク記憶装置の模倣品に変えることに成功したため、産業規格として採用されている。しかし、FFSは、新しいフラッシュデバイス技術の必要条件の全てを満たすことはできない。FFSは、特に、NAND及びANDフラッシュ技術に関してはそれほどうまく行っていない。したがって、本出願と所有者が同じであり、ここに参照として本文に完全に記載したものとする米国特許第5,937,425号は、これらの技術に対するフラッシュ管理システムの追加の実施例を開示している。しかしながら、これらの両実施例は、主に、フラッシュメモリの特定なタイプの技術に対して役立つものである。
【0006】
前記システムを含む典型的なフラッシュ管理システムは、ランダムな順番でユニット内にページを書き込むことが可能であることに依存しているため、これまで空のブロック内へ書き込むべき第一のページが、必ずしも、物理的にも、そのブロック内の第一のページではなく、むしろ中央あるいは終端のページなることがある。このデータ挿入シーケンスは、ランダムな順番で行われる。これは、フラッシュデバイスはブロック内のページの、どのようなページ書き込み順をも許容すると考えられているためである。上記管理システムは、これらのタイプのフラッシュデバイスに対しては非常によく機能する。
【0007】
このタイプのデータ書き込みメカニズムへの例外は、データのランダムな挿入を避けるフラッシュ管理システムに見られる。これらのシステムは、書き込み処理の各々に対して、新しいブロックを割り当て、この新しいブロックへ既存のブロックから、既に書き込まれているページをコピーし、同時に、その同じブロック内に新しいページを書き込むように処理する。このような方法は、常に連続的に新しいブロックを書き込むことによって、ページ書き込み処理におけるランダムな順番を避けることができるが、ページ書き込み要求それ自体が、ランダムな順で到達する場合、ほぼ全ての書き込み処理に関して新しいブロックを割り当て以前のデータをコピーしなくてはならないため、非常に効率が悪い。したがって、FFS等の最も効率的な、現在利用可能なファイル管理システムは、ランダムなページ順で新しいデータを書き込むことに依存している。
【0008】
しかしながら、フラッシュデバイスは、そのシリコン形状が小型化し続けているため、特性及び作動は、その小さな形状に基づく影響を受けることが増える。特に、書き込みデータのランダムなページ順は、これらの物理的に、よりコンパクトなフラッシュデバイスの処理に対する信頼性を失いつつある。最近、主要なフラッシュ製造業者、東芝(日本)は、0.16ミクロン処理の技術を用いる次世代NANDフラッシュデバイスが、ランダムなページ順によるデータ挿入ではなく、ブロック内の連続したページ書き込み処理を必要とすることを発表した。これらのデバイスは、市場で広く用いられることが期待されているため、フラッシュメモリ内への順次書き込み処理のみを行う効率的なフラッシュ管理システムを開発する必要がある。
【0009】
【発明の要約】
背景技術は、順次ページ書き込み処理に制限されたフラッシュデバイスの、効率的な管理のためのメカニズムを教示あるいは示唆していない。さらに、背景技術は、新たに割り当てたブロックにデータを書き込み、同じ処理の一部として、その新しいブロックへ以前に書き込んだページを移動することを必要としないメカニズムを教示あるいは示唆していない。
【0010】
本発明は、順次ページ書き込み処理に限定されたフラッシュデバイスをサポートするメモリ組織化方法を提供することによって、背景技術のこれらの欠点を克服する。したがって、以前に書き込んだデータの移動を必要とせずに、そして順次書き込み制限を侵害しないで、データをフラッシュデバイスに書き込む。
【0011】
本発明によれば、下記のものからなるシステムが提供される。(a)少なくとも一つのフラッシュデバイスからなるフラッシュメモリ・システム。なお、フラッシュデバイスは、複数のブロックからなるメモリを持ち、各ブロックは複数のページからなる。(b)ページ書き込み要求が受信される順序に拘らず、ページ書き込み要求を管理するフラッシュ管理システム。そして(c)ページ書き込み要求が受信される順序を、書き込み順序へ変換するモジュール。ページ書き込み要求のデータは、ページ書き込み要求の受信順序に拘らず、各ブロック内における物理的に連続したページとして書き込まれる。
【0012】
以下、用語「物理ユニット」は、消去可能なメモリの最小部分である、メモリの物理メディアあるいはハードウェア上のユニットと定義する。メモリはユニットの整数倍であり、ユニットは、連続なメモリの一部で、大きさが一定で消去可能である。
【0013】
用語「ページ」は、以下、一つの処理で書き込まれる最小データ量と定義する。用語「ブロック」及び「ユニット」は、物理ユニットと同じ大きさであり、1ブロックが一つ以上のページを含むと定義する。
【0014】
以下、用語「仮想ユニット」は、物理ユニットと同じ大きさであると定義する。
【0015】
以下、用語「仮想マップ」は、仮想ブロックあるいはページを、少なくとも一つの対応する物理ブロックあるいはページへ関連づける表を示す。
【0016】
以下、用語「データを書き込む」は、フラッシュメモリ上にデータを保存する行為を示す。用語「データを読み取る」は、フラッシュメモリからデータを引き出す行為を示す。以下、用語「書き込まれていない」は、書き込まれるデータを保持可能な、物理ブロック等の、メモリのある部分を示す。したがって、用語「書き込まれていない」は、限定せずに、メモリの消去したばかりの部分を含む。
【0017】
本発明によって組織したフラッシュメモリを持つコンピュータあるいは他の電子装置においては、その装置のオペレーティング・システムは、データの読み取り及び書き込みのために、仮想ユニット及び仮想ページに相互作用する。したがって、仮想ユニット及びページを含む仮想メディアは、オペレーティング・システムがフラッシュメモリ・デバイスに相互作用するためのインタフェースとして機能する。例えば、オペレーティング・システムは、仮想ページへデータを書き込むために、書き込みコマンドを出す。それから、仮想ページを含む仮想ユニットが位置決めされる。それから、仮想マップは、メモリの物理ユニット内に、対応する物理ページの位置を定め、そこに、データが実際に保存される。オペレーティング・システムは、仮想ユニット及び仮想ページがフラッシュメモリの実際のハードウェアであるかのように、読み取り及び書き込みコマンドを出すが、現実は、実際のハードウェアは、フラッシュメモリの物理ユニット及び物理ページに組み込まれている。したがって、オペレーティング・システムは、単に仮想ユニット及びページのみを認識し、ハードウェア自体に直接相互作用しない。このようなインタフェースの利点は、さらに書き込みを行う前に消去処理を行わなければならない等の、フラッシュメモリ固有の欠点を、オペレーティング・システムが物理アドレスではなく仮想アドレスに相互作用することによって克服できるということである。
【0018】
【好適実施例の説明】
本発明は、フラッシュデバイス・ユニットへ順次書き込み処理のみを行うように制限したフラッシュデバイスを効率良く管理するためのシステム及び方法に関する。書き込み要求の受信後、データ書き込みのためのフラッシュデバイスの物理的な部分を位置決めする。これは、以前に書き込んである物理部分の位置、すなわち、同じブロック内の最後に書き込んだ部分に応じて、この物理部分が、ブロック内で、以前に書き込んである物理部分よりも物理的に高いアドレスを持つように決められる。換言すれば、書き込み処理は、ランダムに選択した位置で行わず、順次書き込み制限を侵害しない位置で行う。この部分は、例えばページ等の、ブロック内の位置であることが好ましい。同じブロック内でページが書き込みに利用できる場合、データはそのページに書き込まれる。この場合も、そのページは、そのブロック内の以前に書き込んであるページよりも高いアドレスに来ることが好ましい。したがって、オプションとして、「連続的に」が、物理的に近接のアドレスに言及することがより好ましいが、この用語は、少なくとも、同じブロック内の以前に書き込んであるどのアドレスよりも高いアドレスを表すことが好ましい。
【0019】
オプションとして、複数の書き込み要求が受信される場合、その要求がランダムな順番で受信されたとしても、データはランダムに書き込まれないことが好ましい。その代わりに、データは、各物理ユニット内のページの連続的な順番に従って書き込まれることが好ましい。
【0020】
フラッシュデバイスは、物理アドレスにマッピングされた複数の仮想アドレスを持つことがより好ましい。各物理アドレスは物理ブロック内の物理ページに対応し、各仮想アドレスは仮想ブロック内の仮想ページに対応する。書き込み要求は、物理アドレスへ変換される仮想アドレスへのデータ書き込み要求を含むことが好ましい。オプションとして、仮想アドレスは、各仮想ブロックを一つ以上の物理ブロック内へマッピングすることによって、物理アドレスへマッピングすることが最も好ましい。択一的に、仮想アドレスは、各仮想ページを一つ以上の物理ページへマッピングすることによって、物理アドレスへマッピングすることが最も好ましい。
【0021】
しかしながら、マッピングのユニットに拘らず、本発明は、書き込まれたデータの物理位置の連続的な順番を維持するために、以前に書き込んであるデータを毎回コピーすることを強いられることはなく、連続的にデータを書き込む処理が可能である。
【0022】
また、オプションとして、本発明は、少なくとも一つのフラッシュデバイス、そして本発明の上記方法に従って書き込むためのフラッシュデバイスを組織化するフラッシュ管理システムを持つシステムとして具現してもよい。
【0023】
本発明は、フラッシュデバイスの範囲で説明するが、その意義は、フラッシュデバイスと同じ書き込み、読み取り、そしてユニット消去の特性を持つデータ記憶装置にも適用できることは、本技術に精通した者には明らかである。
【0024】
本発明によるシステム及び方法の原理及び作用は、図面、そしてその説明文から明確に理解することができる。
【0025】
さて、図面を参照する。図1は、例えばNAND等の技術による、背景技術である物理ページ・モードフラッシュメモリ・デバイスを概略的に示す。用語「物理デバイス」は、以下、フラッシュメモリ・デバイスの物理メディアを含む実際のハードウェア自体を示す。このような物理メディアは、典型的に、フラッシュEEPROMユニットから構成されるが、適当な不揮発性プログラマブルメモリ・デバイスで置き換えてもよい。用語「プログラマブル」は、以下、例えばメモリ・デバイスにデータを書き込むこと等によって、変更できることを示す。
【0026】
フラッシュメモリ物理デバイス10は、図示のように、少なくとも一つの物理ブロック12を持つ。物理ブロック12は、消去可能な物理デバイス10の最小単位、あるいはその整数倍である。物理ブロック12は、個々にページ1からnと定める、整数のページを含む。nは整数で、全体としてページ14と呼ぶ。ページ14は、ハードウェアの特徴である、物理的なバイト・アドレスの近接するグループから構成される。特に、ページ14の大きさは、物理デバイス10の特性による。ユーザ・データは、ページ14の主要データ領域16内に保存することができる。各々のページ14は、また制御データ領域18を持つ。制御データ領域18は、典型的に、ページ14の主な部分から分離したアルゴリズムによってアドレス可能であって、ページ14の大きさの計算には含めない。さらに下記に説明するが、制御データ領域18は、フラッシュ・ファイリング・システム自体に関する情報の保存のために便利である。
【0027】
図2は、基本的なフラッシュメモリ・デバイスを組織化するためのシステムを示す。システム20は、仮想メディア22と物理デバイス10との両方を制御し、仮想マップ24を介して、仮想メディア22を物理デバイス10へ関連づける。仮想メディア22は複数の仮想ブロック26を含み、各仮想ブロック26は複数の仮想ページ28を持つ。各仮想ブロック26は仮想アドレスによって指定される。仮想アドレスは、特定の仮想ブロック26を指定する仮想ブロック番号を含む。各仮想ページ28は仮想ページ・オフセットによって指定される。同様に、各物理ブロック12は物理アドレスを持ち、物理アドレスは、特定な物理ブロック12を指定する物理ブロック番号を含む。各物理ブロック12は複数の物理ページ14を持ち、各物理ページ14は物理ページ・オフセットを持つ。
【0028】
仮想マップ24は、少なくとも一つの物理ブロック12への仮想ブロック26をマッピングし、択一的に、あるいはさらに、少なくとも一つの物理ページ14への仮想ページ28をマッピングする。下記に詳細に説明するが、仮想ブロック26は物理ブロック12へマッピングされる、あるいは択一的に、仮想ページ28は物理ページ14へマッピングされることが好ましい。これらの二つの代替的なマッピング・システムは、ページあるいはブロックが本発明によるマッピングの基礎を構成するという点で同様である。ページあるいはブロックの基本単位によるマッピングは、連続的にデータを書き込む本発明の方法の処理を変えることはない。
【0029】
一つの仮想ブロック26は一つ以上の物理ブロック12にマッピングすることが可能であり、そして/あるいは一つの仮想ページ28は一つ以上の物理ページ14にマッピングすることができることは明らかである。したがって、仮想ブロック26と物理ブロック12との対応は、1対1あるいは1対多数であってもよい。
【0030】
システム20は次のように機能する。フラッシュメモリ・デバイス(図示せず)を含む電子装置のオペレーティング・システムは、特定の仮想ブロック26内の特定な仮想ページ28へ、読み取りコマンドあるいは書き込みコマンド等のコマンドを送信する。仮想マップ24、あるいは、より好ましくは、仮想マップ24内に含まれるこれらの機能を行うソフトウェア・モジュールが、次に、物理ブロック12内の対応する物理ページ14の位置を定める。しかし、本発明によれば、物理ページ14は、順次書き込み処理が物理ブロック12内の物理的に連続なページ14に対して行われるように、物理ブロック12内における次の物理的に連続したページ14である。仮想ページ28は、仮想ブロック26内で連続的である必要はなく、実際、ランダムな順番で書き込み処理を受信してもよい。
【0031】
図3のフローチャートは、本発明による模範的な方法を示す。仮想マップは、少なくとも一つの物理ブロックに各仮想ブロックのマッピングを保存する。フラッシュデバイス(あるいは他のタイプのメモリ)は、メモリの書き込まれていない部分にのみデータを書き込むという特徴を持つと仮定する。この場合、異なるデータをメモリに書き込むことができるように、その前に、書き込まれたメモリの部分を消去しなくてはならない。
【0032】
マッピングの基本単位は1ブロックであり、各仮想ブロックは一つ以上の物理ブロック内へマッピングされると仮定する。そしてステージ1において、書き込み要求は、データを特定な仮想ページへ書き込む要求を含む。もし少なくとも一つの空きページを持つ対応する物理ブロックの位置を定めることができる(位置判定可能)なら、ステージ2で、対応する物理ブロックの位置を決定する。このステージは、まず、仮想ページを含む仮想ブロックを見つけ、次に、データを書き込むための物理ブロックの位置を定めるために仮想マップを用いることによって行う。次に、ステージ3では、物理ブロック内のページを、その物理ブロック内の、最近データを書き込んだ物理ページの位置に応じて位置決めすることが好ましい。すなわち、選択すべき物理ページは、その物理ブロック内における最近書き込んだ物理ページよりも高いアドレスを持つべきである。一つの可能なアプローチとしては、これに限らないが、選択ページは、オプションとして、その物理ブロック内における最近書き込んだ物理ページに物理的に近接することが好ましい。択一的に、選択ページは、物理的に近接しなくてもよいが、その場合でも、より高いアドレスを持つ。ステージ4では、選択物理ページにデータを書き込む。
【0033】
仮想ブロック内においてランダムな順番で複数の書き込み要求が受信される場合でも、物理ブロック内では順次ページ書き込み処理のみが行われることが好ましい。したがって、各ページ書き込み要求に対して、データは、そのページに対する書き込み要求がステージ2においてマッピングされた、物理ブロックにおける次の空の物理ページに書き込まれることが好ましい。この場合、次の空の物理ページは、少なくとも、より高いアドレスを持つが、オプションとして、以前に書き込んだページに物理的に近接していることがより好ましい。
【0034】
オプションとして、物理的に書き込んだページの各々は、物理ページの制御データ領域内に、それに対応する仮想ページ番号が書き込まれる。このような仮想ページ番号は、オプションとして、フラッシュメモリからデータを読み取るための要求仮想ページに対応する、最近書き込んだデータを識別するために用いてもよい。同じ物理ブロック内の複数の物理ページが全く同一の仮想ページ番号を持つ場合は、読み取るべき物理ページは、最近書き込んだデータを含む物理ページであることがより好ましい。複数の物理ページが同一の仮想ページ番号を持つこのような状況は、例えば、オペレーティング・システムが連続的に数回同じ仮想ページに書き込みを求めた場合に起きる可能性がある。各要求は、もう一つの物理ページに書き込むという結果になり、このような物理ページのすべてに関して、同じ仮想ページ番号が与えられる。後にこのページを読み取ろうとするとき、仮想ページ内に保存した最新のデータを得るためには、要求仮想ページ番号を持つページのグループ内における所望の物理ページは、物理ブロック内で最も高いアドレスを持つ物理ページとなる。この物理ページは、本発明の方法に従って最近書き込まれており、したがって最新データを含むページに相違ない。
【0035】
さて図3に戻る。書き込み要求が受信され、それに対する書き込みに利用可能な物理ページを持つ対応する物理ブロックの位置決定が不可能な場合、フローチャートは、ステージ2A 及び3Aで示す代替的な行程に進む。仮想ブロックに対して新しい物理ブロックを割り当てることが好ましい(ステージ 2A に示す)。そして、この物理ブロックの第一のページを選択し(ステージ3Aに示す)、書き込み要求のデータが、ステージ4において、新しい物理ブロックのこの第一の物理ページに書き込まれる。
【0036】
オプションとして、「圧縮する」、すなわちフラッシュデバイス内の使用保存スペース量を減らすことが好ましく、少なくとも時折行うことがより好ましい。この目的で、少なくとも一つの物理ページの少なくとも最新コピーを、新しい物理位置にコピーして少なくとも一つの物理ユニットを解放することが好ましい。新しい物理位置は、新たに割り当てた物理ブロック内でも、あるいは以前にマッピングした物理ブロック内であってもよい。いずれにしても、このようなコピー処理は、各書き込み処理に対して以前に書き込んだデータのコピーを必要とする背景技術の方法よりも優れていることは明らかである。本発明の方法におけるコピーはオプションであり、各書き込み処理に対して必ず行われるものではない。
【0037】
例えば、オプションとして、多くの空きスペースが必要な場合、また、空きスペースの量が予め設定した数よりも少ない場合、このコピー処理が行われることが好ましい。この処理は、例えば、空きブロックの数が、ある所定数よりも少ない場合にオプションとして行うことができる。
【0038】
オプションとして、もう一つの例としては、このコピー処理は、仮想ブロックに対応する物理ブロックのグループの大きさが、所定数よりも大きくなった場合に行うことが好ましい。またオプションとして、この所定数は、物理ブロックのグループが常に1ブロックのみを含むように1に設定され、仮想ブロックが、1対1のマッピングに従って物理ブロックにマッピングされてもよい。
【0039】
基本マッピング・アイテムとしてブロックではなくページを用いるフラッシュ管理システムにおいて、オプションとして、同様のマッピング方法を行ってもよい。この場合は、仮想ブロックの物理ブロック内へのマッピングを定義することなく、仮想ページが物理ページへマッピングされるが、本発明の範囲内に含まれると考えることができる。このような状況では、また、上記説明のものに類似する方法を採ってもよい。その場合、書き込まれる仮想アドレスに拘らず、適用可能な仮想ユニットに対応する物理ブロックのグループの役割は、フラッシュ物理アドレス空間(近接するしないに拘らず、全アドレス空間あるいはその一部)のサブセットに置き換えることができる。
【0040】
上記の説明は、単に例として意図したものであり、多くの他の実施例が本発明の範囲内において可能であることは明らかである。
【図面の簡単な説明】
【図1】 本発明による物理的なフラッシュメモリ・デバイスの概略図である。
【図2】 本発明によるフラッシュメモリ・デバイスを組織化する基本システムを示す図である。
【図3】 本発明による模範的な方法を示すフローチャートである。
Claims (19)
- (a)各物理ブロックが複数のページからなる、複数の前記物理ブロックを含むメモリを持つ少なくとも一つのフラッシュデバイスを有するフラッシュメモリ・システムと、
(b)ページ書き込み要求を受信する順序から独立してページ書き込み要求を管理し、
複数の仮想ブロックの中の一つの、ある仮想アドレスに書き込むためのそれぞれの前記ページ書き込み要求に対して、いかなるページの書き込み要求データも前記ページ書き込み要求の前記仮想ブロックに対応するただ一つの物理ブロックへ書き込まれるように、そして複数の物理ブロックが常に書き込み指定されることができるように、それぞれの前記仮想ブロックと一つ以上の対応する物理ブロックとを結びつける仮想マップを維持する、フラッシュ管理システムと、
(c)前記ページ書き込み要求を受信する前記順序を、書き込み順序へ変換するモジュールであって、前記ページ書き込み要求を受信する前記順序から独立して、前記ページ書き込み要求内のデータが、各物理ブロック内における物理的に連続なページとして書き込まれるモジュールと、
を有することを特徴とするシステム。 - 前記フラッシュ管理システムは、各物理ブロック内において、後続するページ書き込み処理の各々に対して下位の物理アドレスにページが書き込まれるように、各ページ書き込み要求に対して前記仮想アドレスを物理アドレスへマッピングする、請求項1に記載のシステム。
- 物理的に書き込んだページの各々に、対応する仮想ブロック内の対応する仮想ページ番号が付される、請求項2に記載のシステム。
- 物理ブロックが仮想ブロックに対応し、前記物理ブロックが空きページを持たず、前記仮想ブロックに対して書き込み要求が受信された場合、前記仮想ブロックに対する新しい物理ブロックが割り当てられて、前記書き込み要求のデータが、前記新しい物理ブロックの第一のページに書き込まれる、請求項2に記載のシステム。
- 前記フラッシュマネジメントシステムは、仮想ブロックに対応する物理ブロックのグループを、特定な時間に、前記仮想ブロックの仮想ページに対応するデータの少なくとも一部を単一物理ブロックへコピーすることによって、圧縮して、少なくとも一つの物理ブロックを解放する、請求項4に記載のシステム。
- 前記単一の物理ブロックが、新たに割り当てられた物理ブロック、あるいは前記仮想ブロックの最近割り当てられた物理ブロックである、請求項5に記載のシステム。
- 前記物理ブロックは、前記フラッシュ管理システムが新しい物理ブロックを必要とするとき、そして複数の空きブロックが所定数よりも少ないときに圧縮される、請求項6に記載のシステム。
- 前記物理ブロックは、圧縮されずに前記仮想ブロックに対応する物理ブロックの前記グループの大きさが、所定数よりも大きくなったときに圧縮される、請求項6に記載のシステム。
- 前記所定数が1であり、前記仮想ブロックが前記物理ブロックに1対1でマッピングされる、請求項8に記載のシステム。
- 物理ブロック内の順次書き込み処理のみを許容するフラッシュデバイスへ書き込み処理を行うための書き込み要求を、受信する順序に独立して前記書き込み処理を行うための方法であって、
複数の仮想ブロック内のそれぞれの仮想アドレスに対する複数の書き込み要求のデータを受信し、
いかなる書き込み要求の前記データも前記書き込み要求の前記仮想ブロックに対応するただ一つの物理ブロックへ書き込まれるように、そして複数の前記物理ブロックが常に書き込み指定されることができるように、前記フラッシュデバイスの対応する一つ以上の物理ブロックにそれぞれの前記仮想ブロックをマッピングし、
それぞれの前記書き込み要求に対して、物理アドレスが前記予め書き込まれた物理アドレスに物理的に連続するように、前記物理ブロック内のすでに書き込まれている前記物理アドレスに従って前記データを書き込むための、前記それぞれの仮想ブロックに対応する前記複数の物理ブロックのうちの一つの物理ブロック内の物理アドレスを探し、
もし、前記物理アドレスが位置を定められていれば、前記定められた箇所への書き込み要求によって前記データを書き込むことを特徴とする方法。 - 複数の仮想アドレスに対する前記複数の書き込み要求がランダムな順番で受信され、書き込むべき前記仮想アドレスがマッピングされた物理ブロックの第一の空き物理ページ内へ、新たに書き込むページの各々を書き込むことによって、複数の書き込み要求のデータが連続的に書き込まれる、請求項10に記載の方法。
- 物理的に書き込まれたページの各々に、前記仮想ページの前記仮想ブロック内に対応する仮想ページ番号が付される、請求項11に記載の方法。
- 物理ブロックが、書き込みのために利用可能な物理ページを持たず、そして前記物理ブロックに対応する仮想ブロックに対して書き込み要求が受信された場合、前記仮想ブロックに対して新しい物理ブロックが割り当てられ、前記書き込み要求のデータが前記新しい物理ブロックの第一の物理ページ内へ書き込まれる、請求項11に記載の方法。
- さらに、少なくとも一つの物理ブロックを解放する必要がある場合、フラッシュ管理システムは、少なくとも一つの物理ページを新しい物理位置へコピーすることからなる、請求項13に記載の方法。
- 前記新しい物理位置が、新たに割り当てられた物理ブロック、あるいは前記仮想ブロックの最近割り当てられたブロックである、請求項14に記載の方法。
- 新しい物理ブロックが必要なとき、そして複数の空き物理ブロックが所定数よりも少ないとき、前記少なくとも一つの物理ページがコピーされる、請求項14に記載の方法。
- 圧縮されないで仮想ブロックに対応する物理ブロックのグループの大きさが、所定数よりも大きくなったとき、前記少なくとも一つの物理ページがコピーされる、請求項14に記載の方法。
- 前記所定数が1であり、物理ブロックの前記グループが単に1ブロックのみを含み、前記仮想ブロックが、1対1のマッピングに従って前記物理ブロックにマッピングする、請求項17に記載の方法。
- 書き込んだデータの前記物理位置の連続的な順番を維持するために、少なくとも一つの書き込み要求のデータが、以前に書き込んだデータをコピーすることなく書き込まれる、請求項10に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/964,606 US6678785B2 (en) | 2001-09-28 | 2001-09-28 | Flash management system using only sequential write |
PCT/US2002/030303 WO2003030180A1 (en) | 2001-09-28 | 2002-09-25 | Flash management system using only sequential write |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005505818A JP2005505818A (ja) | 2005-02-24 |
JP4155463B2 true JP4155463B2 (ja) | 2008-09-24 |
Family
ID=25508759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003533286A Expired - Fee Related JP4155463B2 (ja) | 2001-09-28 | 2002-09-25 | 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6678785B2 (ja) |
EP (1) | EP1435099A4 (ja) |
JP (1) | JP4155463B2 (ja) |
KR (1) | KR100952135B1 (ja) |
FI (1) | FI121559B (ja) |
WO (1) | WO2003030180A1 (ja) |
Families Citing this family (171)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM 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 |
US6760805B2 (en) * | 2001-09-05 | 2004-07-06 | M-Systems Flash Disk Pioneers Ltd. | Flash management system for large page size |
TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
JP2003223792A (ja) * | 2002-01-25 | 2003-08-08 | Hitachi Ltd | 不揮発性メモリ及びメモリカード |
JP3928724B2 (ja) * | 2003-02-20 | 2007-06-13 | ソニー株式会社 | 記録媒体の記録制御方法および記録媒体の記録制御装置 |
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 |
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 |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
TWI254947B (en) * | 2004-03-28 | 2006-05-11 | Mediatek Inc | Data managing method and data access system for storing all management data in a management bank of a non-volatile memory |
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 | 联发科技股份有限公司 | 可循序写入数据至闪存中的系统及其方法 |
JP4253272B2 (ja) | 2004-05-27 | 2009-04-08 | 株式会社東芝 | メモリカード、半導体装置、及び半導体メモリの制御方法 |
KR100572328B1 (ko) * | 2004-07-16 | 2006-04-18 | 삼성전자주식회사 | 배드 블록 관리부를 포함하는 플래시 메모리 시스템 |
KR100577384B1 (ko) | 2004-07-28 | 2006-05-10 | 삼성전자주식회사 | 페이지 정보를 이용한 페이지 대체 방법 |
JP2006048585A (ja) * | 2004-08-09 | 2006-02-16 | Fujitsu Ltd | フラッシュメモリのアクセス方法 |
CN100442246C (zh) * | 2004-08-26 | 2008-12-10 | 旺玖科技股份有限公司 | 非易失性存储器的数据更新方法 |
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 |
US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7386655B2 (en) * | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7395404B2 (en) * | 2004-12-16 | 2008-07-01 | Sandisk Corporation | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array |
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 |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
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 |
JP2006338371A (ja) * | 2005-06-02 | 2006-12-14 | Toshiba Corp | メモリシステム |
US7748031B2 (en) | 2005-07-08 | 2010-06-29 | Sandisk Corporation | Mass storage device with automated credentials loading |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
US7627733B2 (en) * | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
US7571275B2 (en) * | 2005-08-31 | 2009-08-04 | Hamilton Sundstrand Corporation | Flash real-time operating system for small embedded applications |
KR100673013B1 (ko) * | 2005-09-21 | 2007-01-24 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템 |
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 |
US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7783955B2 (en) * | 2006-01-18 | 2010-08-24 | Sandisk Il Ltd. | Method for implementing error-correction codes in flash memory |
JP2007241539A (ja) * | 2006-03-07 | 2007-09-20 | Hitachi Systems & Services Ltd | 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置 |
WO2007119267A1 (ja) | 2006-03-13 | 2007-10-25 | Matsushita Electric Industrial Co., Ltd. | フラッシュメモリ用のメモリコントローラ |
JP2007280108A (ja) * | 2006-04-07 | 2007-10-25 | Sony Corp | 記憶媒体制御装置、記憶媒体制御方法、プログラム |
US7280398B1 (en) | 2006-08-31 | 2007-10-09 | Micron Technology, Inc. | System and memory for sequential multi-plane page memory operations |
KR100809319B1 (ko) | 2006-09-13 | 2008-03-05 | 삼성전자주식회사 | 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법 |
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 |
KR100806343B1 (ko) * | 2006-10-19 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 |
KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
KR100845552B1 (ko) * | 2006-12-18 | 2008-07-10 | (재)대구경북과학기술연구원 | Ftl의 어드레스 매핑 방법 |
KR101354152B1 (ko) * | 2006-12-18 | 2014-01-27 | 삼성전자주식회사 | 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 |
US7721040B2 (en) | 2007-01-18 | 2010-05-18 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US7477547B2 (en) * | 2007-03-28 | 2009-01-13 | Sandisk Corporation | Flash memory refresh techniques triggered by controlled scrub data reads |
US7573773B2 (en) * | 2007-03-28 | 2009-08-11 | Sandisk Corporation | Flash memory with data refresh triggered by controlled scrub data reads |
US7719890B2 (en) | 2007-09-12 | 2010-05-18 | Sandisk Corporation | Data protection for write abort |
WO2009095902A2 (en) | 2008-01-31 | 2009-08-06 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
US8650352B2 (en) * | 2007-09-20 | 2014-02-11 | Densbits Technologies Ltd. | Systems and methods for determining logical values of coupled flash memory cells |
US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
WO2009053961A2 (en) | 2007-10-25 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
US8335977B2 (en) | 2007-12-05 | 2012-12-18 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells |
US8607128B2 (en) * | 2007-12-05 | 2013-12-10 | Densbits Technologies Ltd. | Low power chien-search based BCH/RS decoding system for flash memory, mobile communications devices and other applications |
US8341335B2 (en) | 2007-12-05 | 2012-12-25 | Densbits Technologies Ltd. | Flash memory apparatus with a heating system for temporarily retired memory portions |
US8200904B2 (en) * | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
WO2009074979A2 (en) * | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications |
US8327246B2 (en) | 2007-12-18 | 2012-12-04 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
US8443260B2 (en) * | 2007-12-27 | 2013-05-14 | Sandisk Il Ltd. | Error correction in copy back memory operations |
US7865658B2 (en) * | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
US8972472B2 (en) * | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
US9594679B2 (en) * | 2008-05-01 | 2017-03-14 | Sandisk Il Ltd. | Flash cache flushing method and system |
US8332725B2 (en) | 2008-08-20 | 2012-12-11 | Densbits Technologies Ltd. | Reprogramming non volatile memory portions |
KR101510120B1 (ko) | 2008-11-21 | 2015-04-10 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
EP2189895A1 (en) * | 2008-11-24 | 2010-05-26 | Deutsche Thomson OHG | Flash based memory comprising a Flash translation layer and method for storing a file therein |
US8452940B2 (en) * | 2008-12-30 | 2013-05-28 | Sandisk Technologies Inc. | Optimized memory management for random and sequential data writing |
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 |
US8205063B2 (en) * | 2008-12-30 | 2012-06-19 | Sandisk Technologies Inc. | Dynamic mapping of logical ranges to write blocks |
US8458574B2 (en) * | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
US8819385B2 (en) * | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
US9063561B2 (en) * | 2009-05-06 | 2015-06-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Direct memory access for loopback transfers in a media controller architecture |
US8166258B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
US8516264B2 (en) * | 2009-10-09 | 2013-08-20 | Lsi Corporation | Interlocking plain text passwords to data encryption keys |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8245112B2 (en) * | 2009-06-04 | 2012-08-14 | Lsi Corporation | Flash memory organization |
US8555141B2 (en) * | 2009-06-04 | 2013-10-08 | Lsi Corporation | Flash memory organization |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
US20100306451A1 (en) * | 2009-06-01 | 2010-12-02 | Joshua Johnson | Architecture for nand flash constraint enforcement |
US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
WO2010144587A2 (en) * | 2009-06-12 | 2010-12-16 | Violin Memory, Inc. | Memory system having persistent garbage collection |
US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
US8305812B2 (en) * | 2009-08-26 | 2012-11-06 | Densbits Technologies Ltd. | Flash memory module and method for programming a page of flash memory cells |
US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US8364924B2 (en) * | 2009-10-21 | 2013-01-29 | International Business Machines Corporation | Achieving a high throughput in a storage cache application using a flash solid state disk |
US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
US8626988B2 (en) | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
US9037777B2 (en) * | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US8607124B2 (en) * | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
US8341502B2 (en) * | 2010-02-28 | 2012-12-25 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US8862819B2 (en) | 2010-03-31 | 2014-10-14 | Kaminario Technologies Ltd. | Log structure array |
US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
US8516274B2 (en) | 2010-04-06 | 2013-08-20 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
US9235530B2 (en) | 2010-05-31 | 2016-01-12 | Sandisk Technologies Inc. | Method and system for binary cache cleanup |
US8539311B2 (en) | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
US8510639B2 (en) | 2010-07-01 | 2013-08-13 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
US8467249B2 (en) | 2010-07-06 | 2013-06-18 | Densbits Technologies Ltd. | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
US8508995B2 (en) | 2010-09-15 | 2013-08-13 | Densbits Technologies Ltd. | System and method for adjusting read voltage thresholds in memories |
US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
US8693258B2 (en) | 2011-03-17 | 2014-04-08 | Densbits Technologies Ltd. | Obtaining soft information using a hard interface |
US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US8667211B2 (en) | 2011-06-01 | 2014-03-04 | Densbits Technologies Ltd. | System and method for managing a non-volatile memory |
US20120317377A1 (en) * | 2011-06-09 | 2012-12-13 | Alexander Palay | Dual flash translation layer |
US8588003B1 (en) | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
US8553468B2 (en) | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
US8687421B2 (en) | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US20130159602A1 (en) * | 2011-12-20 | 2013-06-20 | Bae Systems Controls, Inc. | Unified memory architecture |
US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
KR102050732B1 (ko) * | 2012-09-28 | 2019-12-02 | 삼성전자 주식회사 | 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법 |
US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
US10013322B2 (en) * | 2013-06-03 | 2018-07-03 | Hitachi, Ltd. | Storage apparatus and storage apparatus control method |
US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
US9921955B1 (en) * | 2013-09-30 | 2018-03-20 | EMC IP Holding Company | Flash write amplification reduction |
US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
US9230689B2 (en) | 2014-03-17 | 2016-01-05 | Sandisk Technologies Inc. | Finding read disturbs on non-volatile memories |
US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
US9552171B2 (en) | 2014-10-29 | 2017-01-24 | Sandisk Technologies Llc | Read scrub with adaptive counter management |
KR102287760B1 (ko) | 2014-10-29 | 2021-08-09 | 삼성전자주식회사 | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 |
KR102252378B1 (ko) | 2014-10-29 | 2021-05-14 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
KR102263046B1 (ko) | 2014-10-29 | 2021-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
US9978456B2 (en) | 2014-11-17 | 2018-05-22 | Sandisk Technologies Llc | Techniques for reducing read disturb in partially written blocks of non-volatile memory |
US9349479B1 (en) | 2014-11-18 | 2016-05-24 | Sandisk Technologies Inc. | Boundary word line operation in nonvolatile memory |
US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
US9449700B2 (en) | 2015-02-13 | 2016-09-20 | Sandisk Technologies Llc | Boundary word line search and open block read methods with reduced read disturb |
US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
KR20170011645A (ko) * | 2015-07-23 | 2017-02-02 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법 |
KR102491624B1 (ko) * | 2015-07-27 | 2023-01-25 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 |
US9653154B2 (en) | 2015-09-21 | 2017-05-16 | Sandisk Technologies Llc | Write abort detection for multi-state memories |
US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
US11429296B2 (en) | 2020-06-01 | 2022-08-30 | Western Digital Technologies, Inc. | Storage system, host, and method for extended and imaginary logical-to-physical address mapping |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452311A (en) * | 1992-10-30 | 1995-09-19 | Intel Corporation | Method and apparatus to improve read reliability in semiconductor memories |
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5519847A (en) * | 1993-06-30 | 1996-05-21 | Intel Corporation | Method of pipelining sequential writes in a flash memory |
US5666494A (en) * | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
US5930815A (en) * | 1995-07-31 | 1999-07-27 | Lexar Media, Inc. | Moving sequential sectors within a block of information in a flash memory mass storage architecture |
US5978808A (en) * | 1995-12-27 | 1999-11-02 | Intel Corporation | Virtual small block file manager for flash memory array |
WO1998003915A2 (en) * | 1996-07-19 | 1998-01-29 | Tokyo Electron Limited | Flash memory card |
US5943692A (en) * | 1997-04-30 | 1999-08-24 | International Business Machines Corporation | Mobile client computer system with flash memory management utilizing a virtual address map and variable length data |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
WO1999030239A1 (fr) * | 1997-12-05 | 1999-06-17 | Tokyo Electron Limited | Memoire et procede d'acces |
US6263399B1 (en) * | 1998-06-01 | 2001-07-17 | Sun Microsystems, Inc. | Microprocessor to NAND flash interface |
GB9903490D0 (en) * | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
JP2000276883A (ja) * | 1999-03-25 | 2000-10-06 | Sanyo Electric Co Ltd | 不揮発性メモリの書き込み回路 |
US6282605B1 (en) * | 1999-04-26 | 2001-08-28 | Moore Computer Consultants, Inc. | File system for non-volatile computer memory |
JP4842417B2 (ja) * | 1999-12-16 | 2011-12-21 | ソニー株式会社 | 記録装置 |
FR2803080A1 (fr) * | 1999-12-22 | 2001-06-29 | St Microelectronics Sa | Memoire flash programmable page par page |
-
2001
- 2001-09-28 US US09/964,606 patent/US6678785B2/en not_active Expired - Lifetime
-
2002
- 2002-09-25 JP JP2003533286A patent/JP4155463B2/ja not_active Expired - Fee Related
- 2002-09-25 WO PCT/US2002/030303 patent/WO2003030180A1/en active Application Filing
- 2002-09-25 EP EP02763710A patent/EP1435099A4/en not_active Withdrawn
- 2002-09-25 KR KR1020037007163A patent/KR100952135B1/ko not_active IP Right Cessation
-
2003
- 2003-05-26 FI FI20030789A patent/FI121559B/fi not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20040034580A (ko) | 2004-04-28 |
KR100952135B1 (ko) | 2010-04-09 |
FI121559B (fi) | 2010-12-31 |
WO2003030180A1 (en) | 2003-04-10 |
US6678785B2 (en) | 2004-01-13 |
FI20030789A (fi) | 2003-07-16 |
EP1435099A4 (en) | 2006-07-19 |
JP2005505818A (ja) | 2005-02-24 |
FI20030789A0 (fi) | 2003-05-26 |
EP1435099A1 (en) | 2004-07-07 |
US20030065876A1 (en) | 2003-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4155463B2 (ja) | 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 | |
US6591330B2 (en) | System and method for flexible flash file | |
KR100495722B1 (ko) | 개선된 플래시 파일 시스템 | |
US8452940B2 (en) | Optimized memory management for random and sequential data writing | |
US8205063B2 (en) | Dynamic mapping of logical ranges to write blocks | |
US8117374B2 (en) | Flash memory control devices that support multiple memory mapping schemes and methods of operating same | |
US6076137A (en) | Method and apparatus for storing location identification information within non-volatile memory devices | |
US8239639B2 (en) | Method and apparatus for providing data type and host file information to a mass storage system | |
US7487303B2 (en) | Flash memory device and associated data merge method | |
US7669003B2 (en) | Reprogrammable non-volatile memory systems with indexing of directly stored data files | |
US7949845B2 (en) | Indexing of file data in reprogrammable non-volatile memories that directly store data files | |
US7734862B2 (en) | Block management for mass storage | |
US7962687B2 (en) | Flash memory allocation for improved performance and endurance | |
CN1658171B (zh) | 通过控制频繁受访问扇区对非易失性存储器的更快写操作 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
KR20210108107A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US5717886A (en) | Semiconductor disk device and memory management method | |
JP2009503729A (ja) | 論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム | |
EP1960887A2 (en) | Method for flash-memory management | |
JP2005502124A (ja) | 大きなページ・サイズに対するフラッシュ管理システム | |
KR101055324B1 (ko) | 강화된 호스트 인터페이스 | |
JP2009503740A (ja) | データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け | |
CN103150256B (zh) | 提高usb闪存写入性能的方法和器件 | |
US20050169058A1 (en) | Data management apparatus and method used for flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071102 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080130 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080206 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080228 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080306 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080401 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080408 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20080408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080417 |
|
TRDD | Decision of grant or rejection written | ||
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080522 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080603 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
RD15 | Notification of revocation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7435 Effective date: 20080606 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080703 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4155463 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |