JP4185058B2 - フラッシュメモリのリマッピング方法 - Google Patents
フラッシュメモリのリマッピング方法 Download PDFInfo
- Publication number
- JP4185058B2 JP4185058B2 JP2005026846A JP2005026846A JP4185058B2 JP 4185058 B2 JP4185058 B2 JP 4185058B2 JP 2005026846 A JP2005026846 A JP 2005026846A JP 2005026846 A JP2005026846 A JP 2005026846A JP 4185058 B2 JP4185058 B2 JP 4185058B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- physical unit
- compaction
- physical
- cost
- 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.)
- Active
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
一般的に、家電機器、通信機器、セットトップボックスなどの内蔵型システムでは、データを保存して処理するための保存媒体として不揮発性メモリが多く使われている。
前記不揮発性メモリのうち主に使われるフラッシュメモリは、電気的にデータを削除または再記録できる不揮発性記憶素子であり、マグネチックディスクメモリを基盤とする保存媒体に比べて電力消耗が少ないつつもハードディスクのような速いアクセスタイムを持ち、かつコンパクトなサイズのために携帯機器の保存媒体として広く使われている。
すなわち、前記フラッシュメモリは、ホストでは論理的な演算単位のセクターにデータを記録する一方、前記セクターに所定のデータを上書きする場合には前記セクターが含まれたブロック全体を削除する。
この時、データ記録と削除との不一致が、前記フラッシュメモリの性能を低下させる主な理由となる。
すなわち、前記ホストで要請する論理アドレスに対するデータ再生/記録演算は、多様な種類のマッピングアルゴリズムにより実際フラッシュメモリの物理アドレスに対する再生/記録演算に変更される。この時、前記フラッシュメモリの物理的な状態を考慮してマッピングするため、前記フラッシュメモリの性能を最大化しうる。
前記ブロックリマッピング技法は、修正または削除によって前記フラッシュメモリ10に記録された物理ブロック番号(Physical Block Number;以下、PBNと称する)が変更されても、同じ論理ブロック番号(Logical Block
すなわち、図1に図示されたように、特定LBNに対するデータの再生または記録が要請されれば、前記LBNの所定の論理ユニット番号(Logical Unit Number:以下、LUN)をLBN−LUNマッピングテーブルを通じて求めた後、前記LUNに対する物理ユニット番号(Physical Unit Number:以下、PUN)をLUN−PUNマッピングテーブルを通じて求める。
この時、前記EUH 11、21には、各物理ユニット10、20についてのいろいろなメタ情報が保存され、前記BAM 12、22は前記EUH 11、21の下部に少なくとも一つ以上のブロックを集めて記録できる。
このようなBAMには、該当物理ユニットに属するブロックに関する情報(LBN、状態など)が記録されうる。
したがって、特定論理ブロックに対するデータ記録は、前記論理ブロックに該当するPUNを求めた後、前記PUNのBAMで記録可能なブロックにデータを記録すれば、その論理ブロックアドレスは前記BAMに保存される。
また、特定論理ブロックに対するデータ再生演算も同じ方法で行われうる。
この時、データエラーの発生時にデータ復旧のために、特定ブロックの状態情報を保存するためのラップカウントという概念が導入された。
すなわち、所定ブロックの状態は、未定(Free=1111)、有効(valid)、削除(deleted=0000)に分けられ、前記有効状態は再び3つの状態、s0=1110、s1=1100、s2=1000に区分される。
例えば、図4に図示されたように、5番目以後にエラーが発生すれば、有効データが2つ存在し、そのそれぞれのラップカウントは1110及び1100である。
この時、前記1110が1100に順序的に先行するため、以後データで復旧する政策を使えば右側データが削除される。
しかし、前記フラッシュメモリで空の物理ユニットを使用する場合、各物理ユニットの削除回数に関係なく空の物理ユニットを任意に選択して使用するために、前記フラッシュメモリの寿命を延長させるのに限界があるという問題点がある。
また、常に空の物理ユニットを割り当てるため、データを記録するために追加的に行われる演算が増加し、データ記録演算に対する性能低下を引き起こす問題点がある。
本発明のさらに他の目的は、ユーザーのデータ記録要請を処理するためのフラッシュメモリへの接近回数を最小化してユーザーに速い応答を提供することである。
望ましくは、所定の論理ユニットにマッピングされた複数の物理ユニット間の前後関係を表す深さ値が、各物理ユニットに含まれる。
望ましくは、前記マッピングされていない物理ユニットが存在していない場合、前記論理ユニット内で空の物理ユニットを生成するコンパクション演算を行う第3段階を含む。
望ましくは、前記深さ値の最も大きい物理ユニットは、コンパクション演算から除外する。
望ましくは、前記コンパクションコストは、所定物理ユニットの有効なセクター数及びコピーコストに基づいて有効セクターを移すのにかかる時間の相対的な値に設定される。
望ましくは、論理セクターを前記物理ユニットの固定されていない位置に保存する場合、前記コンパクションコストCは、C=Sv*Ccにより求められるが、前記Svは有効セクター数、Ccはコピーコストである。
望ましくは、前記割り当てコストは、物理ユニットの削除時間の相対的な値及び物理ユニットのメタ情報記録時間の相対的な値を通じて設定される。
望ましくは、前記物理ユニットのコンパクションコストCは、C=Sv*Ccにより求められるが、前記Svは有効セクター数、Ccはコピーコストである。
望ましくは、前記コンパクションコストは、最も小さなコンパクションコストを持つ物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットのコンパクションコストが追加される。
望ましくは、前記第5段階は、前記最小削除回数を持つ物理ユニットに対するコンパクション演算を行う。
その他の実施形態の具体的な事項は、詳細な説明及び図面に含まれている。
第1に、マッピングされていない複数の物理ユニットのうちECNTの少ない順に所定の論理ユニットにマッピングすることにより、あらゆる物理ユニットを均一に使用できるため、フラッシュメモリの寿命を延ばせる。
第2に、フラッシュメモリのデータ記録演算時、コンパクション演算を通じてフラッシュメモリへの接近回数を最小化してユーザーに速い応答を提供できる。
一般的に、フラッシュメモリは小ブロックフラッシュメモリと大ブロックフラッシュメモリとに分けられる。
この時、前記小ブロックフラッシュメモリは、論理的な演算単位と物理的な演算単位とが同じ一方、前記大ブロックフラッシュメモリは論理的な演算単位に比べて物理的な演算単位が大きい特徴を持つ。
参考的に、前記論理的な演算単位及び物理的な演算単位は、前記セクター及びページに限定されず、前記フラッシュメモリが使われる装置によって多様な大きさになりうる。
図5は、一般的な大ブロックフラッシュメモリの構造が概略的に図示された図面であって、前記フラッシュメモリは、それぞれ複数のページ102よりなる複数のブロック101よりなり、少なくとも一つ以上のブロックが集まって一つの論理ユニット100を構成する。
このような論理ユニット100は、マッピングされた論理ユニットとマッピングされていない論理ユニットとに分けることができるが、前記マッピングされた論理ユニットは有効なセクターを持っており、前記マッピングされていない論理ユニットは、有効なセクターを持っていないため、新たにマッピングされて使用可能な論理ユニットである。
ここで、前記論理ユニット100は、該当論理ユニットのLUNが保存されるメタ情報保存領域110と、データが保存されるデータ保存領域120とに区分できる。
この時、前記Depthは新たにマッピングされた物理ユニットであるほど大きい値を持つようにして、大きい値の深さを持つほどさらに最新のデータであると判断可能にする。
一方、前記データ保存領域120は図7に図示されたように、データが保存される物理セクター121及び、該当物理セクター121に対する論理セクター番号(Logical Sector Number:以下、LSN)が保存されるメタ情報122を含む。
この時、同じLUNを持つPUNを各物理ユニットのDepth順に並べ、前記Depth値が大きいほど最新の有効なデータと判断される。
このようなフラッシュメモリの各物理ユニットは独立的な使用寿命を持つ。すなわち、各物理ユニットは所定のECNTを持つため、ECNTの少ない物理ユニットを先に使用して初めて前記フラッシュメモリの寿命を延長させうる。
この時、前記マッピングされていない物理ユニットは有効なセクターを持っておらず、新たにマッピングされて使用可能な空の物理ユニットである。
以後、前記マッピングされていない物理ユニットのうち所定の論理ユニットに物理ユニットを新たにマッピングして使用する場合、前記ECNTの少ない物理ユニットを優先使用してあらゆる物理ユニットを均一に使用できる。
以後、検索された論理ユニットに前記論理セクターを保存する空間が存在しているかどうかを判断する(S120)。
前記判断結果、前記論理セクターを保存する空間が存在する場合、該当空の空間にデータを保存する(S130)。
以後、前記論理ユニットに追加でマッピングされた物理ユニットの空の空間にデータを記録する。
この時、前記コンパクション演算は、論理ユニットと物理ユニットとのマッピング関係が1:N(N>2)である場合、前記論理ユニットと物理ユニットとのマッピング関係を1:N−1にマッピングして空の物理ユニットを少なくとも一つ以上生成することである。
このようなコンパクション演算方法を、図11を参照としてさらに詳細に説明すれば、まず少なくとも一つ以上の物理ユニットがマッピングされた論理ユニットを対象に前記論理ユニットのコンパクションコストの最も小さな論理ユニットを検索する(S171)。
すなわち、前記物理ユニットのコンパクションコストは、論理ユニットで空の物理ユニットを生成するための時間の相対的な値であって、フラッシュメモリに接近せねばならない回数を通じて得られる。
例えば、前記物理ユニット削除のコストは10、セクター記録のコストは3、セクターコピーのコストは4、セクター再生のコストは1とし、コンパクション演算を行うためには1個の物理ユニットを削除せねばならず、総12個のセクターをコピーする場合、前記論理ユニットのコンパクションコストは58であるといえる。
以後、前記物理ユニットのコンパクションコストのうち最も小さな値を前記論理ユニットのコンパクションコストと選定する。
これは、最も最近にマッピングされた物理ユニットの有効セクターを移すためには常に空の物理ユニットを割り当てねばならないためである。
したがって、最も最近にマッピングされた物理ユニットを除いて、最も小さなコンパクションコストを持つ物理ユニットのコンパクションコストが、該当論理ユニットのコンパクションコストとなる。
そして、前記論理ユニットのコンパクションコストとなる該当物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットを選定し、現在論理ユニットのコンパクションコストに、最も小さなコンパクションコストを持つ物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットのコンパクションコストを加える。
前記コンパクションコストの最も小さな論理ユニットが検索されれば、前記論理ユニット内でコンパクションコストの最も小さな物理ユニットAを検索する(S172)。
この時、前記コンパクション演算のために前記物理ユニットAの有効セクターを移すのに空の物理ユニットが必要であるかどうかを判断する(S173)。
前記判断結果、空の物理ユニットが必要でない場合には、前記コンパクションコストが、物理ユニットAの有効セクターを前記論理ユニット内の空の空間にコピーする(S174)。
もし、前記判断結果、空の物理ユニットが必要な場合、前記論理ユニット内で、前記コンパクションコストの最も小さい物理ユニットに次いでコンパクションコストの小さい物理ユニットBを検索する(S176)。
以後、前記論理ユニットに空の物理ユニットを割り当てる(S177)。
この時、前記コンパクション演算のための空の物理ユニットを前記論理ユニットにマッピングし(S178)、前記物理ユニットBを前記空の物理ユニットにコピーする(S179)。
一方、前記のようなコンパクション演算方法は、前記物理ユニット内に保存される論理セクターの位置が固定された場合とそうでない場合とによって所定の差を持つ。
すなわち、前記論理セクターは、図12に図示されたように、前記物理ユニット内の固定された位置に保存されることもあり、図13に図示されたように、前記物理ユニット内の固定されていない位置に保存されることもある。
例えば、論理セクター0番から論理セクター3番までは論理ユニット0番に保存され、論理セクター4番から論理セクター7番までは論理ユニット2番に保存され、論理セクター8番から論理セクター11番までは論理ユニット3番に保存される場合を説明する。
この時、前記論理ユニットのコンパクションコストを選定するためには各物理ユニットに対するコンパクションコストを選定せねばならない。
ここで、前記物理ユニットに対するコンパクションコストCは、C=Sv*Cc+Se*Weにより求められるが、前記Svは有効セクター数、Ccはコピーコスト、Seは空のセクター数、Weは空のセクターに対する加重値である。
したがって、前記論理アドレス0番で前記物理ユニット7番のコンパクションコストは1*3+3*0.5=4.5であり、前記物理ユニット5番のコンパクションコストは2*3+1*0.5=6.5であり、前記物理ユニット4番のコンパクションコストは1*3+0*0.5=3である。
また、前記論理ユニット0番のコンパクションコストは、物理ユニット4番のコンパクションコストである3となる。
一方、前記論理アドレス1番で物理アドレス2番のコンパクションコストは、前記物理ユニット7番、5番、4番と同じ方法を通じて4.5を得ることができ、前記物理アドレス1番のコンパクションコストは4を得ることができる。
この時、前記論理アドレス2番は一つの物理ユニットのみマッピングされているので、コンパクション対象から除外される。
ここで、前記論理セクター11番を記録する場合を例として説明すれば、前記論理セクター11番が保存される論理ユニットは論理ユニット2番となる。
すなわち、前記コンパクションコストの最も小さな論理ユニットは前記論理ユニット0番となる。
また、前記論理ユニット0番でコンパクションコストの最も小さな物理ユニットは物理ユニット4番となる。
以後、図16に図示されたように、前記論理ユニット0番のマッピングから除外された物理ユニットを前記論理ユニット2番にマッピングし、論理セクター11番を前記物理ユニット4番に保存する。
この時、論理セクター0番から3番までは論理ユニット0番に保存され、論理セクター4番から論理セクター7番までは論理ユニット1番に保存され、論理セクター8番から論理セクター11番までは論理ユニット2番に保存される場合を例として説明する。
この時、各論理ユニットのコンパクションコストはシステム初期化時に計算し、以後に更新される度に該当論理ユニットのコンパクションコストを更新できる。
前記物理ユニットのコンパクションコストCは、C=Sv*Ccにより求められるが、前記Svは有効セクター数、Ccはコピーコストである。
ここで、前記コピーコストは3、ユニットを削除するコストは10、メタ情報を記録するコストは2である場合を例として説明する。
まず、前記論理ユニット0番のコンパクションコストを得るために、前記物理ユニット7番、5番、4番のコンパクションコストを求める。すなわち、前記物理ユニット7番のコンパクションコストは1*3=3、前記物理ユニット5番のコンパクションコストは2*3=6、前記物理ユニット4番のコンパクションコストは1*3=3であることが分かる。
したがって、前記論理ユニット0番のコンパクションコストは、前記物理ユニット4番のコンパクションコストの3となる。
また、前記論理ユニット1番のコンパクションコストは、前記物理ユニット2番のコンパクションコストが1*3=3であり、前記物理ユニット1番のコンパクションコストが3*3=9であるので、最も最近にマッピングされた物理ユニット2番を除外すれば、前記論理ユニット1番のコンパクションコストは9となる。
また、前記物理ユニット1番を除いて、コンパクションコストの最も小さな物理ユニットは2番となるために、前記論理ユニット1番のコンパクションコストである21に3を加算して、前記論理ユニット1番のコンパクションコストは24となる。
一方、前記論理ユニット2番の一つの物理ユニットのみマッピングされているので、コンパクション演算の対象から除外する。
この時、前記論理ユニット2番には空のセクターが存在していないのでコンパクションを行うが、まず、コンパクションコストの最も小さな論理ユニットは0番となる。
また、前記論理ユニット0番で最も最近にマッピングされた物理ユニット7番を除外すれば、コンパクションコストの最も小さな物理ユニットは4番となる。
この時、前記物理ユニット4番の有効セクター1個は該当論理ユニットの空のセクターに移すことができるので、空のユニットが要らなくなる。
以後、図19に図示されたように、マッピングされていない物理ユニットのうちECNTの最も少ない物理ユニットを選定して前記論理ユニット2番にマッピングする。
したがって、前記論理セクター11番を、前記論理ユニット2番に新たにマッピングされた物理ユニット4番の最初のセクターに記録する。
この時、マッピングされていない物理ユニットの数が少ない場合、全体物理ユニットの均一な使用を保証するために前記コンパクションコスト以外にウェアレベリングコストを付与して、コンパクション演算を行う物理ユニットを設定できる。
すなわち、このようなウェアレベリングを利用したデータ記録を例として説明すれば、図20に図示されたように、まず所定のセクターにデータを使う場合、前記データが保存されるLUNを検索する(S210)。
前記判断結果、前記セクターを保存する空間が存在する場合、該当空の空間にデータを保存する(S230)。
もし、前記論理ユニットにデータを保存するセクターが存在していない場合、追加でマッピング可能な物理ユニットが存在しているかどうかを判断する(S240)。
次いで、前記論理ユニットに追加でマッピングされた物理ユニットの空の空間にデータを記録する。
この時、最も最近にマッピングされた物理ユニット2番を除いて、コンパクションコストの最も小さい物理ユニットは6番となる。したがって、前記論理ユニット1番のコンパクションコストは3となる。
この時、前記物理ユニット6番を除外したコンパクションコストの最も小さな物理ユニットは2番であるため、前記物理ユニット2番のコンパクションコスト3を加算すれば、前記論理ユニット1番のコンパクションコストは18となる。
論理ユニット3番の物理ユニット4番のコンパクションコストは1*3=3であり、物理ユニット1番のコンパクションコストは3*3=9である。
また、前記物理ユニット1番を除外すれば、コンパクションコストの最も小さな物理ユニット4番のコンパクションコスト3を加算すれば、前記論理ユニット3番のコンパクションコストは24となる。
最も最近にマッピングされた物理ユニット7番を除外すれば、物理ユニット9番のコンパクションコストが9であるため、前記論理ユニット4番のコンパクションコストは9となる。この時、前記物理ユニット9番の有効セクター3個は該当論理ユニット内の空のセクターにすべて移すことができないので、新たな物理ユニットを割り当てられて前記論理ユニット4番のコンパクションコストは、割り当てコスト12が加算されて21となる。
この時、前記論理ユニット0番に論理セクター0番を保存する場合を例として説明すれば、前記論理ユニット0番には論理セクターを保存する空のセクターがもう存在しなくなる。
この時、前記物理ユニット6番の有効セクター1個を該当論理ユニット内の空のセクターに移すことができないので、空の物理ユニットが必要となる。
したがって、図22に図示されたように、マッピングされていない物理ユニット1つを前記論理ユニット1番に新たにマッピングする。
また、前記物理ユニット6番の有効セクター1個を新たにマッピングされた物理ユニットにコピーし、前記物理ユニット6番をマッピングから除外する。
この時、図23に図示されたように、前記物理ユニット6番及び2番がマッピングされていない物理ユニットに含まれるが、このうちECNTの少ない物理ユニット6番を前記論理ユニット0番にマッピングする。
すなわち、図24に図示されたように、各物理ユニットの最小ECNTと最大ECNTとの差が所定の範囲を超過するかどうかを判断することである。
したがって、前記最小ECNTを持つ物理ユニットの9番を強制にコンパクションさせる。
11,21…ヘッダ(EUH)
12,22…ブロック割り当てマップ(BAM)
13,23…ブロック
Claims (14)
- 所定の論理ユニットにマッピングされていない複数の物理ユニットを削除回数によって並べる第1段階と、
前記削除回数の少ない順に物理ユニットを所定の論理ユニットにマッピングする第2段階と、
前記マッピングされていない物理ユニットが存在していない場合、前記論理ユニット内で空の物理ユニットを生成するコンパクション演算を行う第3段階を含み、
前記第3段階は、所定の論理ユニット内でコンパクションコストの最も小さな物理ユニットを選定する第1過程と、
前記選定された物理ユニットのコンパクションコストを前記論理ユニットのコンパクションコストと設定する第2過程と、
前記コンパクションコストの最も小さな物理ユニットの有効セクターを、前記論理ユニットの空の空間にコピーした後、前記物理ユニットをマッピングから除外する第3過程とを含み、
前記コンパクションコストは、所定物理ユニットの有効なセクター数及びコピーコストに基づいて有効セクターを移すのにかかる時間の相対的な値に設定されることを特徴とするフラッシュメモリのリマッピング方法。 - 所定の論理ユニットにマッピングされた複数の物理ユニット間の前後関係を表す深さ値が、各物理ユニットに含まれることを特徴とする請求項1に記載のフラッシュメモリのリマッピング方法。
- 前記深さ値が大きいほど、最も最近にマッピングされた物理ユニットであると判断されることを特徴とする請求項2に記載のフラッシュメモリのリマッピング方法。
- 前記マッピングされていない物理ユニットが存在していない場合、前記論理ユニット内で空の物理ユニットを生成するコンパクション演算を行う第3段階を含むことを特徴とする請求項3に記載のフラッシュメモリのリマッピング方法。
- 前記深さ値の最も大きい物理ユニットは、コンパクション演算から除外することを特徴とする請求項4に記載のフラッシュメモリのリマッピング方法。
- 論理セクターを前記物理ユニットの固定された位置に保存する場合、前記コンパクションコストCは、C=Sv*Cc+Se*Weにより求められるが、前記Svは有効セクター数、Ccはコピーコスト、Seは空のセクター数、Weは空のセクターに対する加重値であることを特徴とする請求項5に記載のフラッシュメモリのリマッピング方法。
- 論理セクターを前記物理ユニットの固定されていない位置に保存する場合、前記コンパクションコストCは、C=Sv*Ccにより求められるが、前記Svは有効セクター数、Ccはコピーコストであることを特徴とする請求項5に記載のフラッシュメモリのリマッピング方法。
- 前記コンパクションコストは、前記有効セクターを所定の論理ユニット内で移せない場合、新たな物理ユニットを割り当てるための割り当てコストが追加されることを特徴とする請求項6または7のいずれか一つに記載のフラッシュメモリのリマッピング方法。
- 前記割り当てコストは、物理ユニットを削除する時間の相対的な値及び物理ユニットのメタ情報を記録する時間の相対的な値を通じて設定されることを特徴とする請求項8に記載のフラッシュメモリのリマッピング方法。
- 前記物理ユニットのコンパクションコストCは、C=Sv*Ccにより求められるが、前記Svは有効セクター数、Ccはコピーコストであることを特徴とする請求項9に記載のフラッシュメモリのリマッピング方法。
- 前記コンパクションコストは、最も小さなコンパクションコストを持つ物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットのコンパクションコストが追加されることを特徴とする請求項10に記載のフラッシュメモリのリマッピング方法。
- 前記第3段階は、前記コンパクションコストの最も小さな論理ユニットの有効セクターをコピーするための空の空間が存在していない場合、
コンパクションコストの最も小さな物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットを検索する第4過程と、
所定の空の物理ユニットを前記論理ユニットにマッピングする第5過程と、
コンパクションコストの最も小さな物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットの有効セクターを前記空の物理ユニットにコピーした後、マッピングから除外する第6過程と
をさらに含むことを特徴とする請求項11に記載のフラッシュメモリのリマッピング方法。 - 所定の論理ユニットにマッピングされた物理ユニットの最小削除回数及び最大削除回数を把握する第4段階と、
前記最小削除回数及び最大削除回数が所定値を超過する場合に前記コンパクション演算を行う第5段階と
をさらに含むことを特徴とする請求項12に記載のフラッシュメモリのリマッピング方法。 - 前記第5段階は、前記最小削除回数を持つ物理ユニットに対するコンパクション演算を
行うことを特徴とする請求項13に記載のフラッシュメモリのリマッピング方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2004-0008068A KR100526190B1 (ko) | 2004-02-06 | 2004-02-06 | 플래시 메모리의 재사상 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005222550A JP2005222550A (ja) | 2005-08-18 |
JP4185058B2 true JP4185058B2 (ja) | 2008-11-19 |
Family
ID=34676016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005026846A Active JP4185058B2 (ja) | 2004-02-06 | 2005-02-02 | フラッシュメモリのリマッピング方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7516295B2 (ja) |
EP (1) | EP1562122A3 (ja) |
JP (1) | JP4185058B2 (ja) |
KR (1) | KR100526190B1 (ja) |
CN (1) | CN1315057C (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
JP5008845B2 (ja) | 2005-09-01 | 2012-08-22 | 株式会社日立製作所 | ストレージシステムとストレージ装置及びその制御方法 |
US20070180167A1 (en) * | 2006-02-02 | 2007-08-02 | Seagate Technology Llc | Dynamic partition mapping in a hot-pluggable data storage apparatus |
KR100781517B1 (ko) | 2006-02-16 | 2007-12-03 | 삼성전자주식회사 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
KR100791325B1 (ko) * | 2006-10-27 | 2008-01-03 | 삼성전자주식회사 | 비휘발성 메모리를 관리하는 장치 및 방법 |
US8719501B2 (en) * | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
KR101354152B1 (ko) | 2006-12-18 | 2014-01-27 | 삼성전자주식회사 | 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 |
JP4292225B2 (ja) * | 2007-12-17 | 2009-07-08 | 株式会社東芝 | 情報記録装置および情報記録方法 |
KR100964374B1 (ko) * | 2007-12-17 | 2010-06-17 | 한국전자통신연구원 | 전파식별 태그의 메모리 관리 장치 및 방법 |
KR101077339B1 (ko) | 2007-12-28 | 2011-10-26 | 가부시끼가이샤 도시바 | 반도체 기억 장치 |
JP4675985B2 (ja) | 2008-03-01 | 2011-04-27 | 株式会社東芝 | メモリシステム |
JP4745356B2 (ja) * | 2008-03-01 | 2011-08-10 | 株式会社東芝 | メモリシステム |
KR101067457B1 (ko) * | 2008-03-01 | 2011-09-27 | 가부시끼가이샤 도시바 | 메모리 시스템 |
JP4498426B2 (ja) | 2008-03-01 | 2010-07-07 | 株式会社東芝 | メモリシステム |
US8275928B2 (en) * | 2008-05-15 | 2012-09-25 | Silicon Motion, Inc. | Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables |
JP4683438B2 (ja) * | 2008-06-13 | 2011-05-18 | 讀賣テレビ放送株式会社 | データ放送システム、データ放送方法及びプログラム |
TWI410976B (zh) * | 2008-11-18 | 2013-10-01 | Lite On It Corp | 固態儲存媒體可靠度的測試方法 |
JP4821844B2 (ja) * | 2008-12-22 | 2011-11-24 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4821845B2 (ja) * | 2008-12-22 | 2011-11-24 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8700840B2 (en) | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
JP4952740B2 (ja) * | 2009-04-13 | 2012-06-13 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US8296503B2 (en) * | 2009-05-26 | 2012-10-23 | Mediatek Inc. | Data updating and recovering methods for a non-volatile memory array |
TWI410795B (zh) * | 2009-06-23 | 2013-10-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
US8463983B2 (en) * | 2009-09-15 | 2013-06-11 | International Business Machines Corporation | Container marker scheme for reducing write amplification in solid state devices |
US8055942B2 (en) * | 2009-12-03 | 2011-11-08 | Seagate Technology Llc | Data storage devices and methods for power-on initialization |
JP5609683B2 (ja) * | 2011-01-31 | 2014-10-22 | ソニー株式会社 | メモリ装置およびメモリシステム |
TWI494948B (zh) * | 2011-01-31 | 2015-08-01 | Phison Electronics Corp | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 |
JP2012203443A (ja) | 2011-03-23 | 2012-10-22 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
US9406346B2 (en) | 2011-06-30 | 2016-08-02 | Sandisk Technologies Llc | Smart bridge for memory core |
US9208070B2 (en) * | 2011-12-20 | 2015-12-08 | Sandisk Technologies Inc. | Wear leveling of multiple memory devices |
CN104008061B (zh) * | 2013-02-22 | 2018-01-23 | 华为技术有限公司 | 内存回收方法及装置 |
TWI571882B (zh) * | 2016-02-19 | 2017-02-21 | 群聯電子股份有限公司 | 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI584292B (zh) * | 2016-09-08 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
KR102507140B1 (ko) * | 2017-11-13 | 2023-03-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102512727B1 (ko) * | 2017-12-22 | 2023-03-22 | 삼성전자주식회사 | 가비지 컬렉션을 수행하는 스토리지 장치, 및 스토리지 장치의 가비지 컬렉션 방법 |
US11860947B2 (en) * | 2019-01-31 | 2024-01-02 | International Business Machines Corporation | Deleted data restoration |
US11061598B2 (en) * | 2019-03-25 | 2021-07-13 | Western Digital Technologies, Inc. | Optimized handling of multiple copies in storage management |
CN111290716A (zh) * | 2020-03-05 | 2020-06-16 | 莆田学院 | 一种基于Norflash的磨损平衡处理方法 |
CN112394884A (zh) * | 2020-11-18 | 2021-02-23 | 珠海全志科技股份有限公司 | 减少ubi子系统管理开销的方法、ubi子系统及介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473765A (en) * | 1994-01-24 | 1995-12-05 | 3Com Corporation | Apparatus for using flash memory as a floppy disk emulator in a computer system |
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
JPH08124393A (ja) * | 1994-10-20 | 1996-05-17 | Fujitsu Ltd | データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置 |
GB2291991A (en) * | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Disk drive emulation with a block-erasable memory |
CN1136503C (zh) * | 1996-01-30 | 2004-01-28 | Tdk株式会社 | 闪烁存储系统 |
GB2317721B (en) * | 1996-09-30 | 2001-09-12 | Nokia Mobile Phones Ltd | Memory device |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
KR100297986B1 (ko) * | 1998-03-13 | 2001-10-25 | 김영환 | 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법 |
JP3544859B2 (ja) * | 1998-05-11 | 2004-07-21 | 富士通株式会社 | 不揮発性半導体メモリを使用した2次記憶装置 |
US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US6801994B2 (en) * | 2000-12-20 | 2004-10-05 | Microsoft Corporation | Software management systems and methods for automotive computing devices |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP4772214B2 (ja) | 2001-06-08 | 2011-09-14 | ルネサスエレクトロニクス株式会社 | 不揮発性記憶装置及びその書き換え制御方法 |
US6621746B1 (en) * | 2002-02-27 | 2003-09-16 | Microsoft Corporation | Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations |
KR100914646B1 (ko) | 2002-08-31 | 2009-08-28 | 지인정보기술 주식회사 | 멀티-플레인 구조의 플래시 메모리 관리 방법 |
-
2004
- 2004-02-06 KR KR10-2004-0008068A patent/KR100526190B1/ko active IP Right Grant
-
2005
- 2005-02-02 JP JP2005026846A patent/JP4185058B2/ja active Active
- 2005-02-02 EP EP05250578A patent/EP1562122A3/en not_active Withdrawn
- 2005-02-03 CN CNB2005100052562A patent/CN1315057C/zh active Active
- 2005-02-07 US US11/050,737 patent/US7516295B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP1562122A3 (en) | 2007-05-02 |
US7516295B2 (en) | 2009-04-07 |
CN1315057C (zh) | 2007-05-09 |
EP1562122A2 (en) | 2005-08-10 |
KR20050079576A (ko) | 2005-08-10 |
CN1652089A (zh) | 2005-08-10 |
JP2005222550A (ja) | 2005-08-18 |
KR100526190B1 (ko) | 2005-11-03 |
US20050174849A1 (en) | 2005-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4185058B2 (ja) | フラッシュメモリのリマッピング方法 | |
JP4931810B2 (ja) | 最適化されたシーケンシャルなクラスタの管理のためのfat分析 | |
US8521949B2 (en) | Data deleting method and apparatus | |
JP4778942B2 (ja) | 不揮発性メモリを管理する装置及び方法 | |
JP5405513B2 (ja) | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム | |
JP4988215B2 (ja) | 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム | |
JP4991320B2 (ja) | ホスト装置およびメモリシステム | |
US8364885B2 (en) | Semiconductor storage system for decreasing page copy frequency and controlling method thereof | |
JP2009199625A (ja) | メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
CN110362499B (zh) | 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法 | |
JP2009244962A (ja) | メモリシステム | |
WO2011095516A1 (en) | Method and system for mass storage on flash memory | |
CN108073359B (zh) | 数据储存装置的操作方法 | |
US20100318726A1 (en) | Memory system and memory system managing method | |
KR20110139956A (ko) | 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법 | |
US20050169058A1 (en) | Data management apparatus and method used for flash memory | |
JP2018160189A (ja) | メモリシステム | |
JP2015053075A (ja) | メモリシステム、情報処理装置および記憶装置 | |
JP5649709B2 (ja) | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法およびプログラム | |
JP5452735B2 (ja) | メモリコントローラ及びメモリアクセス方法 | |
KR100638638B1 (ko) | 플래시 메모리의 제어 방법 | |
JP6464606B2 (ja) | ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法 | |
JP2016177822A (ja) | メモリシステム | |
CN113094004A (zh) | 一种存储设备中针对特定规律数据镜像映射优化处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070821 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080707 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080805 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080904 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110912 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4185058 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120912 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: 20130912 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 |
|
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 |