JP3827682B2 - フラッシュメモリ、そのためのマッピング制御装置及び方法 - Google Patents
フラッシュメモリ、そのためのマッピング制御装置及び方法 Download PDFInfo
- Publication number
- JP3827682B2 JP3827682B2 JP2004106982A JP2004106982A JP3827682B2 JP 3827682 B2 JP3827682 B2 JP 3827682B2 JP 2004106982 A JP2004106982 A JP 2004106982A JP 2004106982 A JP2004106982 A JP 2004106982A JP 3827682 B2 JP3827682 B2 JP 3827682B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- state
- flash memory
- data
- sector
- 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
- 238000013507 mapping Methods 0.000 title claims description 86
- 238000000034 method Methods 0.000 title claims description 78
- 230000007704 transition Effects 0.000 claims description 44
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Description
この種のフラッシュメモリは、既存のRAM、不揮発性保存装置、マグネチックのように、特定の位置に保存されたデータを任意にアクセスすることができるが、データを修正または削除する方法においては、既存の保存装置とは異なり、ブロックを基本単位としてアクセスが行われる。
以下、使用する用語において、物理的に連続したアドレスを有するバイトをセクタといい、セクタは、フラッシュメモリに対する読み出し/書き込み演算の基本単位であり、複数のセクタで構成されるブロックは、フラッシュメモリにおいて一度の削除演算で消すことができる削除演算の基本単位である。
即ち、マッピング技法は、特定のデータに対する論理アドレスと物理アドレス間のマッピング情報を所定のマッピングテーブルで管理することをいい、セクタマッピング方法、ブロックマッピング方法、及び混合方法に大別される。
図示のように、セクタマッピング方法は、フラッシュメモリのセクタ単位でマッピング情報を維持し、論理セクタ情報を用いたフラッシュメモリの物理セクタアクセスを可能にするものである。
その後、フラッシュメモリの6番セクタに該当データを書き込むが、若し、該当セクタに他のデータが書き込まれていると、フラッシュメモリの空いている物理セクタにデータを書き込み、マッピングテーブルにおいてLSN9番に相応するPSNを変更する。
図示のように、ブロックマッピング方法は、フラッシュメモリのブロック単位でマッピング情報を保持し、論理セクタ情報を論理ブロック情報に変換させた後、論理ブロック情報とオフセット情報を用いたフラッシュメモリの物理セクタアクセスを可能にするものである。
このとき、論理ブロックのオフセットと物理ブロックのオフセットとを一致させて算出されたPBNである1番において、オフセット1に相応するセクタにデータを書き込む。
このとき、既存のPBNに残っている有効なデータを新たなPBNにオフセットを一致させてコピーしなければならない。
図示のように、混合マッピング方法は、ブロックマッピング方法のように、ブロック単位のマッピングを行った後、物理ブロック内でセクタマッピング情報を保存することにより、セクタマッピングの性質を得る方法である。
例えば、所定のデータに対して、書き込み動作の要求と共にLSNが9番と指定されると、フラッシュメモリアクセス装置では、論理セクタ番号9番のLBNの9/4=2を求めた後、マッピングテーブルを参照してLBNに相応するPBN1番を得る。
このような従来のマッピング技法の中でセクタマッピング方法は、フラッシュメモリのセクタ単位でマッピング情報を保持するためのマッピング情報が多すぎて、実際にフラッシュメモリに応用するには困難であるとの問題点があった。
このため、最近の技術は、マッピング情報を少しでも不要とするブロックマッピング方法を基盤としている。
このような従来技術の問題点を補完するために既に提案されている、韓国公開特許公報第2002‐92487号(発明の名称:フラッシュメモリの管理方法)は、所定のログブロックを割り当ててデータ更新過程での書き込み演算が要求されるデータをログブロックに書き込みをさせることにより、データの更新が多い環境でもシステムの性能が低下しないようにしたが、ログブロックに書き込まれているデータをデータブロックに移動させる過程での書き込み/削除演算が要求されるため、繰り返しの書き込み演算によるフラッシュメモリのシステム性能の低下を防止するための方法としては不十分であった。
また、オフセットが一致しなくても、既存のブロックマッピングアルゴリズムによるフラッシュメモリアクセス方法を用いたフラッシュメモリアクセスを可能にすることを他の目的とする。
また、状態遷移アルゴリズムを用いた状態情報により削除演算過程を最小化し、フラッシュメモリシステムの全体性能を高めることをさらに他の目的とする。
また、決定されたセクタをアクセスした結果に応じて変更されるブロック状態情報を所定の状態遷移アルゴリズムにより更新するものである。
本発明の一実施形態によるフラッシュメモリのためのマッピング制御装置は、所定のセクタからなるブロックを単位として領域が区分され、前記ブロックの状態を示すブロック状態情報を含むフラッシュメモリと、フラッシュメモリに対する所定の論理演算が要求されると、前記ブロック状態情報により前記論理演算が行われるセクタを決定し、所定の状態遷移アルゴリズムにより前記ブロック状態情報を更新するプロセッサとを備えることを特徴とする。
先ず、本発明によるフラッシュメモリとそのためのマッピング制御装置を含むフラッシュメモリ基盤システムの構成と動作について添付図面に基づいて詳しく説明する。
図2は、本発明の一実施形態によるフラッシュメモリ基盤システムを示す概略図である。
図示のように、システムは、フラッシュメモリ100と、システムメモリ300と、プロセッサ500とからなる。
また、フラッシュメモリ100は、各ブロックの状態を示し、書き込み/読み出し等の論理演算が行われるセクタを決定するのに用いられるブロック状態情報を含む。
ブロック状態情報は、フラッシュメモリ100に関する情報を書き込むメタブロック(Meta Block)に書き込み、または各ブロックの保存領域の中で所定領域(例えば、スペア)を割り当てられて書き込む。
プロセッサ500は、システムメモリ300に書き込まれているフラッシュメモリアクセスコードを用いて、フラッシュメモリ100をアクセスするものであって、所定の論理演算が要求されると、論理セクタのアドレスをフラッシュメモリアクセスのための物理ブロックアドレスに変換し、物理ブロックアドレスを通じて該当ブロックのブロック状態情報により論理演算が行われるセクタを決定して論理演算を行うものである。
各ブロック状態情報により、各ブロックは、ブロックにデータが書き込まれていないFブロックと、Fブロックにおいて所定のデータをセクタオフセットを一致させて書き込みをしたMブロックと、Mブロックにおいて所定のデータをセクタオフセットを一致させずに書き込みをしたNブロックと、ブロック全体にMブロックのデータが書き込まれたSブロックと、NブロックまたはSブロックにおいて有効なデータが新たなブロックに移され、以前のブロックに書き込まれたデータが有効でないOブロックとからなる。
このようなスマートマージ演算により、新たなFブロックに書き込まれるデータは、セクタオフセットが一致され、FブロックはMブロックに遷移させられ、Oブロックは所定の削除演算によりFブロックに遷移させられる。
図示のように、本発明によるソフトウェアの構造は、システムのファイルシステムにより所定のファイルに対する論理演算を行う応用プログラムモジュール(Applications)と、応用プログラムモジュールで行われる論理演算により要求されるフラッシュメモリのデータをアクセスするフラッシュメモリマッピング制御装置モジュールと、フラッシュメモリマッピング制御装置モジュールのアクセス制御により相応するデータを書き込みまたは読み出しをするフラッシュメモリモジュール(Flash Memory)とで構成される。
図示のように、フラッシュメモリ100の所定ブロックに対する状態遷移過程は、ブロックに何らのデータも書き込まれていないFブロックから始める。
Fブロックに対する書き込み演算がプロセッサ500により要求されると、プロセッサ500では書き込み演算を行うセクタを決定し、書き込み演算が要求されるデータのセクタオフセットが一致させることにより、プロセッサ500ではブロック状態情報をFブロックからMブロックに遷移させる(a)。
また、Mブロックに、以前にデータが書き込まれたセクタに対する書き込み演算が要求されると、プロセッサ500では、任意のセクタを書き込み演算が行われるセクタと決定し、ブロック状態情報をMブロックからNブロックに遷移し(c)、決定されたセクタにデータを書き込む。
また、Nブロックにセクタオフセットが一致しないデータに対する書き込み演算が繰り返され、書き込み可能なセクタが存在しなくなると、スマートマージ演算を行って有効なデータのみを新たに割り当てられるFブロックに書き込み、ブロック状態情報をNブロックからOブロックに遷移する(e)。
参考として、前述した本発明の一実施形態によるフラッシュメモリとそのためのマッピング制御装置は、各モジュールが全てハードウェアで構成されても、一部のモジュールがソフトウェアで構成されても、または全体のモジュールがソフトウェアで構成されていてもよい。
本発明によるフラッシュメモリマッピング制御過程の説明において、初期化過程は既存の処理過程と同一であるので、その説明は省略する。
従って、先ず、本発明によるマッピング制御方法による書き込み演算過程を説明してから、マッピング制御方法による読み出し演算過程について説明する。
図5は、本発明の一実施形態による書き込み演算過程を概略的に示すフローチャートである。
図示のように、先ずプロセッサ500では、所定の論理セクタ番号を有するデータに対する書き込み演算が要求されると、指定された論理セクタ番号(以下、論理セクタという)から論理ブロック番号(以下、論理ブロックという)を算出する。
即ち、該当物理ブロックに対して繰り返される書き込み演算により、該当物理ブロックに書き込み可能なセクタが存在しない場合、新たなデータを書き込むブロックを割り当てるために、スワップまたはスマートマージ演算が要求されるか否かを判断することである。
即ち、プロセッサ500では、マッピングテーブルに書き込まれた該当物理ブロックの現在状態がMブロックであれば、MブロックをSブロックに遷移するスワップマージを行い、該当物理ブロックの現在状態がNブロックであれば、新たにFブロックを割り当てた後、Nブロックから有効なデータのみを検出して書き込みをした後、FブロックをMブロックに遷移するスマートマージを行う。
判別の結果、論理ブロックがMブロックまたはNブロックを有すると、プロセッサ500は、MブロックまたはNブロックにおいて、書き込み演算が要求されるデータのオフセット情報と一致するセクタを検索し、該当セクタが空いているか否かを判別する(S4)。
判別の結果、該当ブロックがMブロックであると、該当物理ブロックのブロック状態情報をNブロックに遷移し(S7)、判別の結果、該当ブロックがMブロックでなく、またはMブロックからNブロックに遷移されると、プロセッサ500は、Nブロックから任意のセクタを選択し、セクタオフセットが一致しない状態でデータを書き込む(S8)。
その後、プロセッサ500は、割り当てられたFブロックをMブロックに遷移させ(S10)、Mブロックにおいて書き込み演算が要求されたデータをセクタオフセットが一致するように書き込む(S11)。
図6は、本発明の一実施形態による読み出し演算過程を概略的に示すフローチャートである。
図示のように、先ずプロセッサ500は、所定の論理セクタ番号を有するデータに対する読み出し演算が要求されると、指定された論理セクタから論理ブロックを算出する。
その後、プロセッサ500は、初期化過程で得られるマッピングテーブルから算出された論理ブロックに相応する物理ブロックを検索し、読み出し演算が要求される論理ブロックがMブロックまたはNブロックを有するか否かを判別する(S10)。
判別の結果、論理ブロックがSブロックを有すると、プロセッサ500は、Sブロックにおいて、読み出し演算が要求されたデータのオフセット情報と一致するセクタを検索し、該当セクタに書き込まれたデータを読み出す(S12)。
判別の結果、論理ブロックがMブロックまたはNブロックを有すると、プロセッサ500は、論理ブロックに相応する物理ブロックがMブロックを有するか否かを判別する(S14)。
判別の結果、Nブロックに該当セクタが存在すると、Nブロックの該当セクタに書き込まれたデータを読み出し(S16)、判別の結果、Nブロックに該当セクタが存在しなければ、論理ブロックに相応する物理ブロックがSブロックを有するか否かを判別する(S17)。
判別の結果、論理ブロックに相応する物理ブロックがMブロックであると、プロセッサ500は、読み出し演算が要求されたセクタがMブロックに存在するか否かを判別する(S20)。
判別の結果、論理ブロックがSブロックを有していなければ、プロセッサ500は、読み出し演算が要求されたデータがフラッシュメモリ100に存在しないものと判断し、読み出しミスのメッセージを発生させる(S23)。
次に、このような本発明の一実施形態によるフラッシュメモリと、そのためのマッピング制御装置及び方法について添付図面に基づいて詳しく説明する。
本発明によるマッピングテーブルにおいて、論理ブロックは最大2つ以下の物理ブロックと対応され、2つの物理ブロックは、S状態のブロックとM状態またはN状態のブロックと組み合わされてもよい。
この場合、プロセッサ500では、マッピングテーブルを参照して算出された論理ブロック(LBN=2)に相応する物理ブロック及び状態を検索する(a)。
その後、プロセッサ500では、該当物理ブロックのブロック状態情報からマージ演算が必要か否かを判別する。
スワップマージ演算によって新たなFブロックに物理ブロック2(PBN=2)が割り当てられると、プロセッサ500では、書き込み演算が要求されたデータを新たに割り当てられた物理ブロック2にオフセット値を一致させて書き込み、マッピングテーブルにおいて論理ブロック(LBN=2)に相応する物理ブロック及び状態情報を更新する。
例えば、図8Aに示すように、フラッシュメモリ100の一つのブロックが4つのセクタからなる場合、プロセッサ500では、所定の論理セクタに対する書き込み演算がセクタオフセット0、1、2、3、0の順に要求されると、論理セクタから論理ブロックを算出する。
若し、該当物理ブロックがFブロックであれば、プロセッサ500は、オフセット情報により該当物理ブロックにデータを書き込む。
即ち、プロセッサ500は、ブロック状態情報をFブロックからMブロックに遷移した後、セクタオフセットの順によって0、1、2、3、0の順に該当物理ブロックの各セクタにデータを書き込む。
その後、プロセッサ500は、さらに割り当てられたFブロックのブロック状態情報をFブロックからMブロックに遷移させた後、セクタオフセット0のデータを該当セクタに書き込む(2)。
その後、プロセッサ500は、 マッピングテーブルを参照して算出された論理ブロックに該当する物理ブロックを検索し、検索された物理ブロックのブロック状態情報を確認し、ブロック状態情報によって書き込み演算が行われるセクタを決定する。
即ち、プロセッサ500は、ブロック状態情報をFブロックからMブロックに遷移した後、セクタオフセットの順によって0、1、2、3、0、1、2、3、0の順に該当物理ブロックの各セクタにデータを書き込む。
その後、プロセッサ500は、さらに割り当てられたFブロックのブロック状態情報をFブロックからMブロックに遷移させた後、セクタオフセット0、1、2、3のデータをさらに割り当てられたMブロックの該当セクタに書き込む。
その後、プロセッサ500は、またさらに割り当てられたFブロックのブロック状態情報をFブロックからMブロックに遷移させた後、セクタオフセット0のデータを該当セクタに書き込む(3)。
その後、プロセッサ500は、 マッピングテーブルを参照して算出された論理ブロックに該当する物理ブロックを検索し、検索された物理ブロックのブロック状態情報を確認し、ブロック状態情報によって書き込み演算が行われるセクタを決定する。
即ち、プロセッサ500は、ブロック状態情報をFブロックからMブロックに遷移した後、セクタオフセットの順によって0、0、0、0、1の順に該当物理ブロックの各セクタにデータを書き込む。
このようにセクタオフセットが一致しない書き込み演算が繰り返され、該当物理ブロックに書き込み可能なセクタが存在しなくなると、プロセッサ500では、スマートマージ演算によりFブロックをさらに割り当て、NブロックをOブロックに遷移させる(1)。
即ち、Oブロックに書き込まれているセクタオフセット0のデータのうち、最終に書き込まれたデータのみを読み出し、さらに割り当てられたMブロックのセクタ0に書き込み、セクタオフセット1のデータを該当セクタに書き込む(2)。
300…システムメモリ
500…プロセッサ
Claims (26)
- 所定のセクタからなるブロック単位で領域が区分され、
前記ブロックの状態を示し、書き込み/読み出しが行われるセクタを決定するのに用いられるブロック状態情報を含み、
前記ブロック状態情報は、所定の状態遷移アルゴリズムにより決定されることを特徴とするフラッシュメモリ。 - 前記状態が、前記ブロックにデータが書き込まれていない第1の状態と、
前記第1の状態において所定のデータをセクタオフセットを一致させて書き込みをした第2の状態と、
前記第1の状態において所定のデータをセクタオフセットを一致させずに書き込みをした第3の状態と、
前記ブロックの全体に前記第2の状態のデータが書き込まれた第4の状態と、
前記第3の状態または第4の状態において有効なデータが新たなブロックに移され、以前のブロックに書き込まれたデータが有効でない第5の状態と
を含むことを特徴とする請求項1に記載のフラッシュメモリ。 - 前記状態遷移アルゴリズムは、前記第4の状態において新たに要求される書き込み演算を行うために、第1の状態のブロックをさらに割り当てるスワップマージ演算を行うことを特徴とする請求項2に記載のフラッシュメモリ。
- 前記状態遷移アルゴリズムは、前記第3の状態において該当ブロックの全てのセクタが使用中であれば、新たに要求される書き込み演算を行うために、第1の状態のブロックをさらに割り当て、既存のブロックに書き込まれているデータの中で有効なデータのみを検出し、前記割り当てられたブロックに書き込むスマートマージ演算を行うことを特徴とする請求項2に記載のフラッシュメモリ。
- 前記スマートマージ演算は、前記有効なデータが書き込まれると、前記割り当てられたブロックのブロック状態情報を第1の状態から第2の状態に遷移させ、既存のブロックのブロック状態情報を第3の状態から第5の状態に遷移させることを特徴とする請求項4に記載のフラッシュメモリ。
- 前記第5の状態は、削除演算により前記第1の状態に遷移させられることを特徴とする請求項2に記載のフラッシュメモリ。
- 前記ブロック状態情報は、前記フラッシュメモリに関する情報を書き込むメタブロックに書き込まれたり、前記各ブロックに書き込まれたりすることを特徴とする請求項1に記載のフラッシュメモリ。
- 所定のセクタからなるブロックを単位として領域が区分され、前記ブロックの状態を示すブロック状態情報を含むフラッシュメモリと、
前記フラッシュメモリに対する書き込み/読み出しが要求されると、要求された論理アドレスをマッピングテーブルを参照して物理ブロックアドレスに変換し、この物理ブロックアドレスのブロック状態情報により前記書き込み/読み出しが行われるセクタを決定し、所定の状態遷移アルゴリズムにより前記ブロック状態情報を更新するプロセッサと
を備えることを特徴とするフラッシュメモリのためのマッピング制御装置。 - 前記ブロック状態情報は、前記フラッシュメモリに関する情報を書き込むメタブロックに書き込まれたり、前記各ブロックに書き込まれたりすることを特徴とする請求項8に記載のフラッシュメモリのためのマッピング制御装置。
- 前記プロセッサは、前記ブロック状態情報により決定されるセクタに所定のデータを書き込み、または前記セクタからデータを読み出し、前記更新されるブロック状態情報により削除演算を通じて有効でないブロックのデータを削除することを特徴とする請求項8に記載のフラッシュメモリのためのマッピング制御装置。
- 前記状態は、前記ブロックにデータが書き込まれていない第1の状態と、
前記第1の状態において所定のデータをセクタオフセットを一致させて書き込みをした第2の状態と、
前記第1の状態において所定のデータをセクタオフセットを一致させずに書き込みをした第3の状態と、
前記ブロックの全体に前記第2の状態のデータが書き込まれた第4の状態と、
前記第3の状態または第4の状態において有効なデータが新たなブロックに移され、以前のブロックに書き込まれたデータが有効でない第5の状態と
を含むことを特徴とする請求項8に記載のフラッシュメモリのためのマッピング制御装置。 - 前記状態遷移アルゴリズムは、前記第4の状態において新たに要求される書き込み演算を行うために、第1の状態のブロックをさらに割り当てるスワップマージ演算を行うことを特徴とする請求項11に記載のフラッシュメモリのためのマッピング制御装置。
- 前記状態遷移アルゴリズムは、前記第3の状態において該当ブロックの全てのセクタが使用中であれば、新たに要求される書き込み演算を行うために、第1の状態のブロックをさらに割り当て、既存のブロックに書き込まれているデータの中で有効なデータのみを検出し、前記割り当てられたブロックに書き込むスマートマージ演算を行うことを特徴とする請求項11に記載のフラッシュメモリのためのマッピング制御装置。
- 前記スマートマージ演算は、前記有効なデータが書き込まれると、前記割り当てられたブロックのブロック状態情報を第1の状態から第2の状態に遷移させ、既存のブロックのブロック状態情報を第3の状態から第5の状態に遷移させることを特徴とする請求項13に記載のフラッシュメモリのためのマッピング制御装置。
- 前記第5の状態は、削除演算により前記第1の状態に遷移させられることを特徴とする請求項11に記載のフラッシュメモリのためのマッピング制御装置。
- フラッシュメモリの特定の論理セクタに対し、書き込み/読み出しが要求されると、マッピングテーブルを参照して前記論理セクタに該当する物理ブロックを検索するステップと、
前記物理ブロックのブロック状態情報により前記書き込み/読み出しが行われるセクタを決定するステップと、
前記決定されるセクタをアクセスして前記書き込み/読み出しを行うステップと
を含み、
前記ブロック状態情報は、所定の状態遷移アルゴリズムにより決定されることを特徴とするフラッシュメモリのためのマッピング制御方法。 - 前記論理セクタに該当する物理ブロックを検索するステップは、
前記論理セクタから論理ブロックを算出するステップと、
前記算出された論理ブロックに該当する物理ブロックを前記マッピングテーブルから検索するステップと
を含むことを特徴とする請求項16に記載のフラッシュメモリのためのマッピング制御方法。 - 前記書き込み/読み出しが行われるセクタを決定するステップは、前記物理ブロックのブロック状態情報によりセクタオフセットが一致するセクタを選択することを特徴とする請求項16に記載のフラッシュメモリのためのマッピング制御方法。
- 前記書き込み/読み出しが行われるセクタを決定するステップは、前記物理ブロックのブロック状態情報によりセクタオフセットが一致しないセクタを選択することを特徴とする請求項16に記載のフラッシュメモリのためのマッピング制御方法。
- 前記決定されるセクタをアクセスして前記書き込み/読み出しを行うステップは、
前記書き込み/読み出しに応じて変更される前記物理ブロックのブロック状態情報を所定の状態遷移アルゴリズムにより決定するステップと、
前記決定されたブロック状態情報により、前記物理ブロックのブロック状態情報を更新するステップと
を含むことを特徴とする請求項16に記載のフラッシュメモリのためのマッピング制御方法。 - 前記状態は、前記ブロックにデータが書き込まれていない第1の状態と、
前記第1の状態において所定のデータをセクタオフセットを一致させて書き込みをした第2の状態と、
前記第1の状態において所定のデータをセクタオフセットを一致させずに書き込みをした第3の状態と、
前記ブロックの全体に前記第2の状態のデータが書き込まれた第4の状態と、
前記第3の状態または第4の状態において有効なデータが新たなブロックに移され、以前のブロックに書き込まれたデータが有効でない第5の状態と
を含むことを特徴とする請求項20に記載のフラッシュメモリのためのマッピング制御方法。 - 前記状態遷移アルゴリズムは、前記第4の状態において新たに要求される書き込み演算を行うために、第1の状態のブロックをさらに割り当てるスワップマージ演算を行うことを特徴とする請求項21に記載のフラッシュメモリのためのマッピング制御方法。
- 前記状態遷移アルゴリズムは、前記第3の状態において該当ブロックの全てのセクタが使用中であれば、新たに要求される書き込み演算を行うために、第1の状態のブロックをさらに割り当て、既存のブロックに書き込まれているデータの中で有効なデータのみを検出し、前記割り当てられたブロックに書き込むスマートマージ演算を行うことを特徴とする請求項21に記載のフラッシュメモリのためのマッピング制御方法。
- 前記スマートマージ演算は、前記有効なデータが書き込まれると、前記割り当てられたブロックのブロック状態情報を第1の状態から第2の状態に遷移させ、既存のブロックのブロック状態情報を第3の状態から第5の状態に遷移させることを特徴とする請求項23に記載のフラッシュメモリのためのマッピング制御方法。
- 前記第5の状態は、削除演算により前記第1の状態に遷移させられることを特徴とする請求項21に記載のフラッシュメモリのためのマッピング制御方法。
- 前記ブロック状態情報は、前記フラッシュメモリに関する情報を書き込むメタブロックに書き込まれたり、前記各ブロックに書き込まれたりすることを特徴とする請求項16に記載のフラッシュメモリのためのマッピング制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030089817A KR100608602B1 (ko) | 2003-12-10 | 2003-12-10 | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005174279A JP2005174279A (ja) | 2005-06-30 |
JP3827682B2 true JP3827682B2 (ja) | 2006-09-27 |
Family
ID=34511209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004106982A Expired - Fee Related JP3827682B2 (ja) | 2003-12-10 | 2004-03-31 | フラッシュメモリ、そのためのマッピング制御装置及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7287117B2 (ja) |
EP (1) | EP1542129A3 (ja) |
JP (1) | JP3827682B2 (ja) |
KR (1) | KR100608602B1 (ja) |
CN (1) | CN1306414C (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8607016B2 (en) * | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
US7395384B2 (en) * | 2004-07-21 | 2008-07-01 | Sandisk Corproation | Method and apparatus for maintaining data on non-volatile memory systems |
KR100703727B1 (ko) * | 2005-01-12 | 2007-04-05 | 삼성전자주식회사 | 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법 |
KR100684942B1 (ko) * | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
US8819088B2 (en) * | 2005-07-14 | 2014-08-26 | International Business Machines Corporation | Implementing storage management functions using a data store system |
KR100801072B1 (ko) * | 2005-09-30 | 2008-02-11 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 맵핑 장치 및 방법 |
KR100843133B1 (ko) * | 2006-09-20 | 2008-07-02 | 삼성전자주식회사 | 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법 |
KR100849221B1 (ko) | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
KR100843135B1 (ko) * | 2006-11-20 | 2008-07-02 | 삼성전자주식회사 | 비휘발성 메모리 관리 방법 및 장치 |
KR100794312B1 (ko) * | 2006-12-27 | 2008-01-11 | 삼성전자주식회사 | 명령어 자동 처리 유니트를 포함한 메모리 컨트롤러 및그를 포함한 메모리 시스템 |
KR101447188B1 (ko) * | 2007-07-31 | 2014-10-08 | 삼성전자주식회사 | 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 |
JP4535117B2 (ja) * | 2007-11-06 | 2010-09-01 | ソニー株式会社 | メモリ装置、メモリ管理方法、およびプログラム |
KR100950281B1 (ko) | 2008-02-28 | 2010-03-31 | 아주대학교산학협력단 | 플래시 메모리 시스템 및 플래시 메모리의 데이터 연산방법 |
TWI370969B (en) | 2008-07-09 | 2012-08-21 | Phison Electronics Corp | Data accessing method, and storage system and controller using the same |
CN101567849B (zh) * | 2009-04-30 | 2011-09-21 | 炬才微电子(深圳)有限公司 | 一种数据缓存方法和装置 |
CN102279815A (zh) * | 2010-06-13 | 2011-12-14 | 宇瞻科技股份有限公司 | 以快闪存储器为基础的存储装置及其数据写入方法 |
CN102541777B (zh) * | 2010-12-13 | 2015-08-19 | 深圳市硅格半导体有限公司 | 基于DMA映射的Flash数据传输控制方法及装置 |
KR102034626B1 (ko) * | 2013-06-26 | 2019-10-21 | 삼성전자 주식회사 | 메모리 동작을 제어하는 방법 및 장치 |
KR102402783B1 (ko) * | 2015-05-11 | 2022-05-27 | 삼성전자 주식회사 | 전자 장치 및 이의 페이지 병합 방법 |
CN106325764B (zh) * | 2015-07-08 | 2021-02-26 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
KR20170012629A (ko) * | 2015-07-21 | 2017-02-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20180001681A (ko) * | 2016-06-27 | 2018-01-05 | 에스케이하이닉스 주식회사 | 메모리 시스템, 이의 어드레스 맵핑 방법 및 억세스 방법 |
KR102698994B1 (ko) * | 2018-12-03 | 2024-08-27 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US20230236724A1 (en) * | 2022-01-27 | 2023-07-27 | Dell Products L.P. | Microservices server and storage resource controller |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
JP3604466B2 (ja) * | 1995-09-13 | 2004-12-22 | 株式会社ルネサステクノロジ | フラッシュディスクカード |
US6014724A (en) | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US5745418A (en) | 1996-11-25 | 1998-04-28 | Macronix International Co., Ltd. | Flash memory mass storage system |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
KR100577380B1 (ko) | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US7617352B2 (en) | 2000-12-27 | 2009-11-10 | Tdk Corporation | Memory controller, flash memory system having memory controller and method for controlling flash memory device |
CN1362708A (zh) * | 2001-01-02 | 2002-08-07 | 吴秀林 | 一种闪存芯片的读写方法 |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
KR100389867B1 (ko) | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US6948026B2 (en) | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
JP3818130B2 (ja) | 2001-11-14 | 2006-09-06 | 日本電信電話株式会社 | データ管理方法及び装置及びデータ管理プログラム及びデータ管理プログラムを格納した記憶媒体 |
-
2003
- 2003-12-10 KR KR1020030089817A patent/KR100608602B1/ko active IP Right Grant
-
2004
- 2004-03-31 JP JP2004106982A patent/JP3827682B2/ja not_active Expired - Fee Related
- 2004-07-19 US US10/893,344 patent/US7287117B2/en active Active
- 2004-12-01 EP EP04257479A patent/EP1542129A3/en not_active Withdrawn
- 2004-12-10 CN CNB2004100984083A patent/CN1306414C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR20050056761A (ko) | 2005-06-16 |
CN1306414C (zh) | 2007-03-21 |
KR100608602B1 (ko) | 2006-08-03 |
CN1627271A (zh) | 2005-06-15 |
US7287117B2 (en) | 2007-10-23 |
JP2005174279A (ja) | 2005-06-30 |
EP1542129A2 (en) | 2005-06-15 |
US20050132127A1 (en) | 2005-06-16 |
EP1542129A3 (en) | 2008-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3827682B2 (ja) | フラッシュメモリ、そのためのマッピング制御装置及び方法 | |
JP4740216B2 (ja) | 不揮発性メモリ管理方法及び装置 | |
KR100449708B1 (ko) | 플래시 메모리 관리방법 | |
US7191306B2 (en) | Flash memory, and flash memory access method and apparatus | |
KR100453053B1 (ko) | 플래쉬 메모리용 파일 시스템 | |
US7702844B2 (en) | Address mapping method and mapping information managing method for flash memory, and flash memory using the same | |
USRE45577E1 (en) | Method of writing to a flash memory including data blocks and log blocks | |
JP4773342B2 (ja) | 不揮発性記憶装置及びデータ書込み方法 | |
USRE42263E1 (en) | Address conversion unit for memory device | |
US7734862B2 (en) | Block management for mass storage | |
KR101465789B1 (ko) | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 | |
US20090031076A1 (en) | Method for Managing Flash Memory | |
JP2008192154A (ja) | メモリマッピング方法およびメモリマッピングシステム | |
JP2007280428A (ja) | メモリ管理 | |
JPH08328762A (ja) | 半導体ディスク装置及びそのメモリ管理方法 | |
US7664906B2 (en) | Flash memory access apparatus and method | |
JP2010287049A (ja) | メモリシステムおよびメモリシステムの管理方法 | |
JP4242245B2 (ja) | フラッシュrom制御装置 | |
US11614876B2 (en) | Memory device and method for accessing memory device with namespace management | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
KR100638638B1 (ko) | 플래시 메모리의 제어 방법 | |
KR20050009045A (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
JP2002222120A (ja) | メモリ・アクセス管理装置並びに管理方法 | |
TW202449616A (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
CN119068952A (zh) | 记忆装置、快闪存储器控制器及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060512 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060519 |
|
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: 20060606 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060704 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3827682 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: 20090714 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100714 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: 20110714 Year of fee payment: 5 |
|
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: 20120714 Year of fee payment: 6 |
|
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: 20120714 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130714 Year of fee payment: 7 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |