JP4155463B2 - 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 - Google Patents

順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 Download PDF

Info

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
Application number
JP2003533286A
Other languages
English (en)
Other versions
JP2005505818A (ja
Inventor
ラッサー メナチェム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Israel Ltd
Original Assignee
SanDisk IL Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SanDisk IL Ltd filed Critical SanDisk IL Ltd
Publication of JP2005505818A publication Critical patent/JP2005505818A/ja
Application granted granted Critical
Publication of JP4155463B2 publication Critical patent/JP4155463B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory 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)
  • Read Only Memory (AREA)

Description

【0001】
【発明の分野】
本発明は、フラッシュデバイスの、より効率的なデータ管理及び保存のためのシステム及び方法に関し、特に、フラッシュデバイスへの情報の保存及び引き出しが、メモリの連続的な物理部分への順次書き込み処理を介して行われるシステム及び方法に関する。
【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)

  1. (a)各物理ブロックが複数のページからなる、複数の前記物理ブロックを含むメモリを持つ少なくとも一つのフラッシュデバイスを有するフラッシュメモリ・システムと、
    (b)ページ書き込み要求を受信する順序から独立してページ書き込み要求を管理し、
    複数の仮想ブロックの中の一つの、ある仮想アドレスに書き込むためのそれぞれの前記ページ書き込み要求に対して、いかなるページの書き込み要求データも前記ページ書き込み要求の前記仮想ブロックに対応するただ一つの物理ブロックへ書き込まれるように、そして複数の物理ブロックが常に書き込み指定されることができるように、それぞれの前記仮想ブロックと一つ以上の対応する物理ブロックとを結びつける仮想マップを維持する、フラッシュ管理システムと、
    (c)前記ページ書き込み要求を受信する前記順序を、書き込み順序へ変換するモジュールであって、前記ページ書き込み要求を受信する前記順序から独立して、前記ページ書き込み要求内のデータが、各物理ブロック内における物理的に連続なページとして書き込まれるモジュールと、
    を有することを特徴とするシステム。
  2. 前記フラッシュ管理システムは、各物理ブロック内において、後続するページ書き込み処理の各々に対して下位の物理アドレスにページが書き込まれるように、各ページ書き込み要求に対して前記仮想アドレスを物理アドレスへマッピングする、請求項に記載のシステム。
  3. 物理的に書き込んだページの各々に、対応する仮想ブロック内の対応する仮想ページ番号が付される、請求項に記載のシステム。
  4. 物理ブロックが仮想ブロックに対応し、前記物理ブロックが空きページを持たず、前記仮想ブロックに対して書き込み要求が受信された場合、前記仮想ブロックに対する新しい物理ブロックが割り当てられて、前記書き込み要求のデータが、前記新しい物理ブロックの第一のページに書き込まれる、請求項に記載のシステム。
  5. 前記フラッシュマネジメントシステムは、仮想ブロックに対応する物理ブロックのグループを、特定な時間に、前記仮想ブロックの仮想ページに対応するデータの少なくとも一部を単一物理ブロックへコピーすることによって、圧縮して、少なくとも一つの物理ブロックを解放する、請求項に記載のシステム。
  6. 前記単一の物理ブロックが、新たに割り当てられた物理ブロック、あるいは前記仮想ブロックの最近割り当てられた物理ブロックである、請求項に記載のシステム。
  7. 前記物理ブロックは、前記フラッシュ管理システムが新しい物理ブロックを必要とするとき、そして複数の空きブロックが所定数よりも少ないときに圧縮される、請求項に記載のシステム。
  8. 前記物理ブロックは、圧縮されずに前記仮想ブロックに対応する物理ブロックの前記グループの大きさが、所定数よりも大きくなったときに圧縮される、請求項に記載のシステム。
  9. 前記所定数が1であり、前記仮想ブロックが前記物理ブロックに1対1でマッピングされる、請求項8に記載のシステム。
  10. 物理ブロック内の順次書き込み処理のみを許容するフラッシュデバイスへ書き込み処理を行うための書き込み要求を、受信する順序に独立して前記書き込み処理を行うための方法であって、
    複数の仮想ブロック内のそれぞれの仮想アドレスに対する複数の書き込み要求のデータを受信し、
    いかなる書き込み要求の前記データも前記書き込み要求の前記仮想ブロックに対応するただ一つの物理ブロックへ書き込まれるように、そして複数の前記物理ブロックが常に書き込み指定されることができるように、前記フラッシュデバイスの対応する一つ以上の物理ブロックにそれぞれの前記仮想ブロックをマッピングし、
    それぞれの前記書き込み要求に対して、物理アドレスが前記予め書き込まれた物理アドレスに物理的に連続するように、前記物理ブロック内のすでに書き込まれている前記物理アドレスに従って前記データを書き込むための、前記それぞれの仮想ブロックに対応する前記複数の物理ブロックのうちの一つの物理ブロック内の物理アドレスを探し、
    もし、前記物理アドレスが位置を定められていれば、前記定められた箇所への書き込み要求によって前記データを書き込むことを特徴とする方法。
  11. 複数の仮想アドレスに対する前記複数の書き込み要求がランダムな順番で受信され、書き込むべき前記仮想アドレスがマッピングされた物理ブロックの第一の空き物理ページ内へ、新たに書き込むページの各々を書き込むことによって、複数の書き込み要求のデータが連続的に書き込まれる、請求項10に記載の方法。
  12. 物理的に書き込まれたページの各々に、前記仮想ページの前記仮想ブロック内に対応する仮想ページ番号が付される、請求項11に記載の方法。
  13. 物理ブロックが、書き込みのために利用可能な物理ページを持たず、そして前記物理ブロックに対応する仮想ブロックに対して書き込み要求が受信された場合、前記仮想ブロックに対して新しい物理ブロックが割り当てられ、前記書き込み要求のデータが前記新しい物理ブロックの第一の物理ページ内へ書き込まれる、請求項11に記載の方法。
  14. さらに、少なくとも一つの物理ブロックを解放する必要がある場合、フラッシュ管理システムは、少なくとも一つの物理ページを新しい物理位置へコピーすることからなる、請求項13に記載の方法。
  15. 前記新しい物理位置が、新たに割り当てられた物理ブロック、あるいは前記仮想ブロックの最近割り当てられたブロックである、請求項14に記載の方法。
  16. 新しい物理ブロックが必要なとき、そして複数の空き物理ブロックが所定数よりも少ないとき、前記少なくとも一つの物理ページがコピーされる、請求項14に記載の方法。
  17. 圧縮されないで仮想ブロックに対応する物理ブロックのグループの大きさが、所定数よりも大きくなったとき、前記少なくとも一つの物理ページがコピーされる、請求項14に記載の方法。
  18. 前記所定数が1であり、物理ブロックの前記グループが単に1ブロックのみを含み、前記仮想ブロックが、1対1のマッピングに従って前記物理ブロックにマッピングする、請求項17に記載の方法。
  19. 書き込んだデータの前記物理位置の連続的な順番を維持するために、少なくとも一つの書き込み要求のデータが、以前に書き込んだデータをコピーすることなく書き込まれる、請求項10に記載の方法。
JP2003533286A 2001-09-28 2002-09-25 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法 Expired - Fee Related JP4155463B2 (ja)

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)

* Cited by examiner, † Cited by third party
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
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
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 旺玖科技股份有限公司 非易失性存储器的数据更新方法
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
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
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques 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
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
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 メモリシステム
US7743409B2 (en) * 2005-07-08 2010-06-22 Sandisk Corporation Methods used in a 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 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing 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 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
JP4524309B2 (ja) 2006-03-13 2010-08-18 パナソニック株式会社 フラッシュメモリ用のメモリコントローラ
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
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US8650352B2 (en) * 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
WO2009095902A2 (en) 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
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
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
WO2009072103A2 (en) 2007-12-05 2009-06-11 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
US8453022B2 (en) 2007-12-05 2013-05-28 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
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
WO2009078006A2 (en) 2007-12-18 2009-06-25 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
US8261009B2 (en) * 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US8205063B2 (en) * 2008-12-30 2012-06-19 Sandisk Technologies Inc. Dynamic mapping of logical ranges to write blocks
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
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8819385B2 (en) * 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations 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
US20100306451A1 (en) * 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
US8286004B2 (en) * 2009-10-09 2012-10-09 Lsi Corporation Saving encryption keys in one-time programmable memory
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
US8296480B2 (en) * 2009-11-30 2012-10-23 Lsi Corporation Context execution in a media controller architecture
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
EP2441004B8 (en) * 2009-06-12 2020-02-19 Violin Systems LLC Memory system having persistent garbage collection
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
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
US8305812B2 (en) * 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
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
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
US8700970B2 (en) * 2010-02-28 2014-04-15 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
US9104610B2 (en) 2010-04-06 2015-08-11 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
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US20120008414A1 (en) 2010-07-06 2012-01-12 Michael Katz 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
US9372792B1 (en) 2011-05-12 2016-06-21 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
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
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies 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
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
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
JP6055544B2 (ja) * 2013-06-03 2016-12-27 株式会社日立製作所 ストレージ装置およびストレージ装置制御方法
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
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
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
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
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
KR102252378B1 (ko) 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102287760B1 (ko) 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
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)

* Cited by examiner, † Cited by third party
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
EP0912939B1 (en) * 1996-07-19 2001-09-26 Tokyo Electron Device 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

Also Published As

Publication number Publication date
FI20030789A0 (fi) 2003-05-26
KR20040034580A (ko) 2004-04-28
EP1435099A4 (en) 2006-07-19
US20030065876A1 (en) 2003-04-03
US6678785B2 (en) 2004-01-13
FI20030789A (fi) 2003-07-16
FI121559B (fi) 2010-12-31
KR100952135B1 (ko) 2010-04-09
JP2005505818A (ja) 2005-02-24
WO2003030180A1 (en) 2003-04-10
EP1435099A1 (en) 2004-07-07

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
US7962687B2 (en) Flash memory allocation for improved performance and endurance
US7734862B2 (en) Block management for mass storage
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US5717886A (en) Semiconductor disk device and memory management method
JP2009503729A (ja) 論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム
CN103150256B (zh) 提高usb闪存写入性能的方法和器件
JP2009525511A (ja) 多段階誤り訂正方法及び装置
JP2005502124A (ja) 大きなページ・サイズに対するフラッシュ管理システム
KR101055324B1 (ko) 강화된 호스트 인터페이스
US20050169058A1 (en) Data management apparatus and method used for flash memory
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
CN114691534A (zh) 控制器以及包括控制器的存储器系统

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 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080417

TRDD Decision of grant or rejection written
A521 Written amendment

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