(57)【要約】      （修正有）【課題】フラッシュメモリのあらゆる領域を均一に使用可能にして、フラッシュメモリの寿命を延長できるフラッシュメモリのリマッピング方法を提供するとともに、ユーザーのデータ記録要請を処理するためのフラッシュメモリへの接近回数を最小化してユーザーに速い応答を提供する。【解決手段】所定の論理ユニットにマッピングされていない複数の物理ユニットを削除回数によって並べる第１段階と、前記削除回数の少ない順に物理ユニットを所定の論理ユニットにマッピングする第２段階とを含むフラッシュメモリのリマッピング方法。【選択図】図９
2005222550.tif 000002
【特許請求の範囲】
【請求項１】
所定の論理ユニットにマッピングされていない複数の物理ユニットを削除回数によって並べる第１段階と、
前記削除回数の少ない順に物理ユニットを所定の論理ユニットにマッピングする第２段階と
を含むことを特徴とするフラッシュメモリのリマッピング方法。
【請求項２】
所定の論理ユニットにマッピングされた複数の物理ユニット間の前後関係を表す深さ値が、各物理ユニットに含まれることを特徴とする請求項１に記載のフラッシュメモリのリマッピング方法。
【請求項３】
前記深さ値が大きいほど、最も最近にマッピングされた物理ユニットであると判断されることを特徴とする請求項２に記載のフラッシュメモリのリマッピング方法。
【請求項４】
前記マッピングされていない物理ユニットが存在していない場合、前記論理ユニット内で空の物理ユニットを生成するコンパクション演算を行う第３段階を含むことを特徴とする請求項３に記載のフラッシュメモリのリマッピング方法。
【請求項５】
前記深さ値の最も大きい物理ユニットは、コンパクション演算から除外することを特徴とする請求項４に記載のフラッシュメモリのリマッピング方法。
【請求項６】
前記第３段階は、所定の論理ユニット内でコンパクションコストの最も小さな物理ユニットを選定する第１過程と、
前記選定された物理ユニットのコンパクションコストを前記論理ユニットのコンパクションコストと設定する第２過程と、
前記コンパクションコストの最も小さな物理ユニットの有効セクターを、前記論理ユニットの空の空間にコピーした後、前記物理ユニットをマッピングから除外する第３過程と
を含むことを特徴とする請求項５に記載のフラッシュメモリのリマッピング方法。
【請求項７】
前記コンパクションコストは、所定物理ユニットの有効なセクター数及びコピーコストに基づいて有効セクターを移すのにかかる時間の相対的な値に設定されることを特徴とする請求項６に記載のフラッシュメモリのリマッピング方法。
【請求項８】
論理セクターを前記物理ユニットの固定された位置に保存する場合、前記コンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃ＋Ｓｅ＊Ｗｅにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコスト、Ｓｅは空のセクター数、Ｗｅは空のセクターに対する加重値であることを特徴とする請求項７に記載のフラッシュメモリのリマッピング方法。
【請求項９】
論理セクターを前記物理ユニットの固定されていない位置に保存する場合、前記コンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコストであることを特徴とする請求項７に記載のフラッシュメモリのリマッピング方法。
【請求項１０】
前記コンパクションコストは、前記有効セクターを所定の論理ユニット内で移せない場合、新たな物理ユニットを割り当てるための割り当てコストが追加されることを特徴とする請求項８または９のいずれか一つに記載のフラッシュメモリのリマッピング方法。
【請求項１１】
前記割り当てコストは、物理ユニットを削除する時間の相対的な値及び物理ユニットのメタ情報を記録する時間の相対的な値を通じて設定されることを特徴とする請求項１０に記載のフラッシュメモリのリマッピング方法。
【請求項１２】
前記物理ユニットのコンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコストであることを特徴とする請求項１１に記載のフラッシュメモリのリマッピング方法。
【請求項１３】
前記コンパクションコストは、最も小さなコンパクションコストを持つ物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットのコンパクションコストが追加されることを特徴とする請求項１２に記載のフラッシュメモリのリマッピング方法。
【請求項１４】
前記第３段階は、前記コンパクションコストの最も小さな論理ユニットの有効セクターをコピーするための空の空間が存在していない場合、
コンパクションコストの最も小さな物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットを検索する第４過程と、
所定の空の物理ユニットを前記論理ユニットにマッピングする第５過程と、
コンパクションコストの最も小さな物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットの有効セクターを前記空の物理ユニットにコピーした後、マッピングから除外する第６過程と
をさらに含むことを特徴とする請求項１３に記載のフラッシュメモリのリマッピング方法。
【請求項１５】
所定の論理ユニットにマッピングされた物理ユニットの最小削除回数及び最大削除回数を把握する第４段階と、
前記最小削除回数及び最大削除回数が所定値を超過する場合に前記コンパクション演算を行う第５段階と
をさらに含むことを特徴とする請求項１４に記載のフラッシュメモリのリマッピング方法。
【請求項１６】
前記第５段階は、前記最小削除回数を持つ物理ユニットに対するコンパクション演算を行うことを特徴とする請求項１５に記載のフラッシュメモリのリマッピング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリのリマッピング方法に係り、さらに詳細にはフラッシュメモリの接近回数を最小化し、前記フラッシュメモリのあらゆる領域を均一に使用できるフラッシュメモリのマッピング方法に関する。
一般的に、家電機器、通信機器、セットトップボックスなどの内蔵型システムでは、データを保存して処理するための保存媒体として不揮発性メモリが多く使われている。
前記不揮発性メモリのうち主に使われるフラッシュメモリは、電気的にデータを削除または再記録できる不揮発性記憶素子であり、マグネチックディスクメモリを基盤とする保存媒体に比べて電力消耗が少ないつつもハードディスクのような速いアクセスタイムを持ち、かつコンパクトなサイズのために携帯機器の保存媒体として広く使われている。
【０００２】
また、前記フラッシュメモリは、ハードウェア的特性上、既存のＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）や不揮発性保存媒体、マグネチック保存媒体などのように特定位置に保存されたデータに任意に接近できるが、データを削除する場合には既存の保存媒体とは違ってブロック単位で削除がなされる。
すなわち、前記フラッシュメモリは、ホストでは論理的な演算単位のセクターにデータを記録する一方、前記セクターに所定のデータを上書きする場合には前記セクターが含まれたブロック全体を削除する。
この時、データ記録と削除との不一致が、前記フラッシュメモリの性能を低下させる主な理由となる。
【０００３】
したがって、記録前の削除問題を解決するために論理アドレス及び物理アドレスの概念が導入された。
すなわち、前記ホストで要請する論理アドレスに対するデータ再生／記録演算は、多様な種類のマッピングアルゴリズムにより実際フラッシュメモリの物理アドレスに対する再生／記録演算に変更される。この時、前記フラッシュメモリの物理的な状態を考慮してマッピングするため、前記フラッシュメモリの性能を最大化しうる。
【０００４】
フラッシュ変換階層（Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ；以下、ＦＴＬと称する）は、前記フラッシュメモリ１０をブロックデバイスのように使用可能にするソフトウェアであって、一般的に前記フラッシュメモリ１０を管理するためのブロックリマッピング（Ｒｅｍａｐｐｉｎｇ）技法を支援する。
前記ブロックリマッピング技法は、修正または削除によって前記フラッシュメモリ１０に記録された物理ブロック番号（Ｐｈｙｓｉｃａｌ  Ｂｌｏｃｋ  Ｎｕｍｂｅｒ；以下、ＰＢＮと称する）が変更されても、同じ論理ブロック番号（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  
【０００５】
Ｎｕｍｂｅｒ；以下、ＬＢＮと称する）でフラッシュメモリ１０に記録されたデータに接近可能に、特定のデータに対するＬＢＮとＰＢＮ間のマッピング情報を管理することである。
すなわち、図１に図示されたように、特定ＬＢＮに対するデータの再生または記録が要請されれば、前記ＬＢＮの所定の論理ユニット番号（Ｌｏｇｉｃａｌ Ｕｎｉｔ Ｎｕｍｂｅｒ：以下、ＬＵＮ）をＬＢＮ−ＬＵＮマッピングテーブルを通じて求めた後、前記ＬＵＮに対する物理ユニット番号（Ｐｈｙｓｉｃａｌ Ｕｎｉｔ Ｎｕｍｂｅｒ：以下、ＰＵＮ）をＬＵＮ−ＰＵＮマッピングテーブルを通じて求める。
【０００６】
この時、前記物理ユニットを概略的に説明すれば、図２に図示されたように、各物理ユニット１０、２０はヘッダ（Ｅｒａｓｅ Ｕｎｉｔ Ｈｅａｄｅｒ：以下、ＥＵＨ）１１、２１と、ブロック割り当てマップ（Ｂｌｏｃｋ Ａｌｌｏｃａｔｉｏｎ Ｍａｐ：以下、ＢＡＭ）１２、２２及び所定のデータが保存される複数のブロック１３、２３を持つ。
この時、前記ＥＵＨ １１、２１には、各物理ユニット１０、２０についてのいろいろなメタ情報が保存され、前記ＢＡＭ １２、２２は前記ＥＵＨ １１、２１の下部に少なくとも一つ以上のブロックを集めて記録できる。
【０００７】
また、前記ＢＡＭ １２、２２は、ＮＡＮＤタイプのフラッシュメモリのスペア・アレイのような特定空間にブロック別に分けられて記録されることもある。
このようなＢＡＭには、該当物理ユニットに属するブロックに関する情報（ＬＢＮ、状態など）が記録されうる。
したがって、特定論理ブロックに対するデータ記録は、前記論理ブロックに該当するＰＵＮを求めた後、前記ＰＵＮのＢＡＭで記録可能なブロックにデータを記録すれば、その論理ブロックアドレスは前記ＢＡＭに保存される。
【０００８】
例えば、図３に図示されたように、論理ブロック３番にデータ記録が２回要請された場合、２番目の記録演算は空の４番目ブロックにデータを記録し、前記ＢＡＭの４番目に論理ブロック番号３を記録する。
また、特定論理ブロックに対するデータ再生演算も同じ方法で行われうる。
この時、データエラーの発生時にデータ復旧のために、特定ブロックの状態情報を保存するためのラップカウントという概念が導入された。
すなわち、所定ブロックの状態は、未定（Ｆｒｅｅ＝１１１１）、有効（ｖａｌｉｄ）、削除（ｄｅｌｅｔｅｄ＝００００）に分けられ、前記有効状態は再び３つの状態、ｓ０＝１１１０、ｓ１＝１１００、ｓ２＝１０００に区分される。
【０００９】
この時、前記ｓ０、ｓ１、及びｓ２は、ｓ０＜ｓ１、ｓ１＜ｓ２、ｓ２＜ｓ０の循環的な関係を持っている。ここで、前記“＜”は、順序的な前後関係を表す。したがって、エラーが発生した場合、以前あるいは以後データで復旧できる。
例えば、図４に図示されたように、５番目以後にエラーが発生すれば、有効データが２つ存在し、そのそれぞれのラップカウントは１１１０及び１１００である。
この時、前記１１１０が１１００に順序的に先行するため、以後データで復旧する政策を使えば右側データが削除される。
【００１０】
前記のようなフラッシュメモリは、論理ユニットと物理ユニットとが１：１にマッピングされて特定論理ユニットに対するセクター更新が頻繁に行われるため、論理ユニット内に空のセクターが存在していない場合、常に空の物理ユニットを割り当てられて削除した後、有効セクターを前記空の物理ユニットにコピーして空のセクターがある物理ユニットにした後、セクター更新を行える。
【００１１】
この時、前記フラッシュメモリの物理ユニットの削除回数は制限されている。したがって、前記フラッシュメモリの物理ユニットを均一に使用することにより、前記フラッシュメモリの寿命を延長させうる。
しかし、前記フラッシュメモリで空の物理ユニットを使用する場合、各物理ユニットの削除回数に関係なく空の物理ユニットを任意に選択して使用するために、前記フラッシュメモリの寿命を延長させるのに限界があるという問題点がある。
また、常に空の物理ユニットを割り当てるため、データを記録するために追加的に行われる演算が増加し、データ記録演算に対する性能低下を引き起こす問題点がある。
【００１２】
特許文献１は、写像テーブル更新は、ある物理ページグループの記録が遂行される時に毎度遂行されず、書き込みブロックグループ内のすべての物理ページグループの記録が終る始点に書き込みブロックグループに記録されたすべての論理ページグループに対して一度に遂行されるようにして、不必要なフラッシュメモリの接近を最小化するように構成されたフラッシュメモリ管理方法を開示しているが、これは物理ページグループに対する削除回数を考慮しないので、フラッシュメモリの寿命を延ばすのに限界があるという問題点がある。
【００１３】
【特許文献１】韓国公開特許２００２−００９２２６１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、ユーザーが論理セクターに対するデータ記録を要請した場合、フラッシュメモリのあらゆる領域を均一に使用可能にしてフラッシュメモリの寿命を延長できるフラッシュメモリのリマッピング方法を提供するところに、その目的がある。
本発明のさらに他の目的は、ユーザーのデータ記録要請を処理するためのフラッシュメモリへの接近回数を最小化してユーザーに速い応答を提供することである。
【課題を解決するための手段】
【００１５】
前記目的を達成するために、本発明の実施形態によるフラッシュメモリのリマッピング方法は、所定の論理ユニットにマッピングされていない複数の物理ユニットを削除回数によって並べる第１段階と、前記削除回数の少ない順に物理ユニットを所定の論理ユニットにマッピングする第２段階とを含む。
望ましくは、所定の論理ユニットにマッピングされた複数の物理ユニット間の前後関係を表す深さ値が、各物理ユニットに含まれる。
【００１６】
望ましくは、前記深さ値が大きいほど、最も最近にマッピングされた物理ユニットであると判断される。
望ましくは、前記マッピングされていない物理ユニットが存在していない場合、前記論理ユニット内で空の物理ユニットを生成するコンパクション演算を行う第３段階を含む。
望ましくは、前記深さ値の最も大きい物理ユニットは、コンパクション演算から除外する。
【００１７】
望ましくは、前記第３段階は、所定の論理ユニット内でコンパクションコストの最も小さな物理ユニットを選定する第１過程と、前記選定された物理ユニットのコンパクションコストを前記論理ユニットのコンパクションコストと設定する第２過程と、前記コンパクションコストの最も小さな物理ユニットの有効セクターを前記論理ユニットの空の空間にコピーした後、前記物理ユニットをマッピングから除外する第３過程とを含む。
望ましくは、前記コンパクションコストは、所定物理ユニットの有効なセクター数及びコピーコストに基づいて有効セクターを移すのにかかる時間の相対的な値に設定される。
【００１８】
望ましくは、論理セクターを前記物理ユニットの固定された位置に保存する場合、前記コンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃ＋Ｓｅ＊Ｗｅにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコスト、Ｓｅは空のセクター数、Ｗｅは空のセクターに対する加重値である。
望ましくは、論理セクターを前記物理ユニットの固定されていない位置に保存する場合、前記コンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコストである。
【００１９】
望ましくは、前記コンパクションコストは、前記有効セクターを所定の論理ユニット内で移せない場合、新たな物理ユニットを割り当てるための割り当てコストが追加される。
望ましくは、前記割り当てコストは、物理ユニットの削除時間の相対的な値及び物理ユニットのメタ情報記録時間の相対的な値を通じて設定される。
望ましくは、前記物理ユニットのコンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコストである。
望ましくは、前記コンパクションコストは、最も小さなコンパクションコストを持つ物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットのコンパクションコストが追加される。
【００２０】
望ましくは、前記第３段階は、前記コンパクションコストの最も小さな論理ユニットの有効セクターをコピーするための空の空間が存在していない場合、コンパクションコストの最も小さな物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットを検索する第４過程と、所定の空の物理ユニットを前記論理ユニットにマッピングする第５過程と、コンパクションコストの最も小さな物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットの有効セクターを前記空の物理ユニットにコピーした後、マッピングから除外する第６過程とをさらに含む。
【００２１】
望ましくは、所定の論理ユニットにマッピングされた物理ユニットの最小削除回数及び最大削除回数を把握する第４段階と、前記最小削除回数及び最大削除回数が所定値を超過する場合に前記コンパクション演算を行う第５段階とをさらに含む。
望ましくは、前記第５段階は、前記最小削除回数を持つ物理ユニットに対するコンパクション演算を行う。
その他の実施形態の具体的な事項は、詳細な説明及び図面に含まれている。
【発明の効果】
【００２２】
本発明のフラッシュメモリのリマッピング方法によれば、次のような効果がある。
第１に、マッピングされていない複数の物理ユニットのうちＥＣＮＴの少ない順に所定の論理ユニットにマッピングすることにより、あらゆる物理ユニットを均一に使用できるため、フラッシュメモリの寿命を延ばせる。
第２に、フラッシュメモリのデータ記録演算時、コンパクション演算を通じてフラッシュメモリへの接近回数を最小化してユーザーに速い応答を提供できる。
【発明を実施するための最良の形態】
【００２３】
本発明の利点及び特徴、そしてこれを達成する方法は添付された図面に基づいて詳細に後述されている実施形態を参照すれば明確になる。しかし、本発明は以下で開示される実施形態に限定されるものではなく、この実施形態から外れて多様な形に具現でき、本明細書で説明する実施形態は本発明の開示を完全にし、本発明が属する技術分野で当業者に発明の範ちゅうを完全に報せるために提供されるものであり、本発明は請求項及び発明の詳細な説明により定義されるだけである。一方、明細書全体に亙って同一な参照符号は同一な構成要素を示す。
【００２４】
以下、添付された図面を参照して本発明の望ましい実施形態を詳細に説明する。
一般的に、フラッシュメモリは小ブロックフラッシュメモリと大ブロックフラッシュメモリとに分けられる。
この時、前記小ブロックフラッシュメモリは、論理的な演算単位と物理的な演算単位とが同じ一方、前記大ブロックフラッシュメモリは論理的な演算単位に比べて物理的な演算単位が大きい特徴を持つ。
【００２５】
ここで、前記論理的な演算単位はユーザー側でのデータ演算単位であって、一般的にセクターと呼ばれ、前記物理的な演算単位は実際フラッシュメモリでのデータ演算単位であって、一般的にページと呼ばれる。
参考的に、前記論理的な演算単位及び物理的な演算単位は、前記セクター及びページに限定されず、前記フラッシュメモリが使われる装置によって多様な大きさになりうる。
図５は、一般的な大ブロックフラッシュメモリの構造が概略的に図示された図面であって、前記フラッシュメモリは、それぞれ複数のページ１０２よりなる複数のブロック１０１よりなり、少なくとも一つ以上のブロックが集まって一つの論理ユニット１００を構成する。
【００２６】
以下、一つの論理ユニットに含まれた各ブロックは物理ユニットと称する。
このような論理ユニット１００は、マッピングされた論理ユニットとマッピングされていない論理ユニットとに分けることができるが、前記マッピングされた論理ユニットは有効なセクターを持っており、前記マッピングされていない論理ユニットは、有効なセクターを持っていないため、新たにマッピングされて使用可能な論理ユニットである。
ここで、前記論理ユニット１００は、該当論理ユニットのＬＵＮが保存されるメタ情報保存領域１１０と、データが保存されるデータ保存領域１２０とに区分できる。
【００２７】
また、前記メタ情報保存領域１１０は、図６に図示されたように、ＬＵＮ１１１以外にも所定の論理ユニットにマッピングされた複数の物理ユニットに対する前後関係を表す深さ（以下、Ｄｅｐｔｈ）１１２、各物理ユニットの削除回数（ＥｒａｓｅＣｏｕｎｔ、以下、ＥＣＮＴ）１１３を含む。
この時、前記Ｄｅｐｔｈは新たにマッピングされた物理ユニットであるほど大きい値を持つようにして、大きい値の深さを持つほどさらに最新のデータであると判断可能にする。
一方、前記データ保存領域１２０は図７に図示されたように、データが保存される物理セクター１２１及び、該当物理セクター１２１に対する論理セクター番号（Ｌｏｇｉｃａｌ Ｓｅｃｔｏｒ Ｎｕｍｂｅｒ：以下、ＬＳＮ）が保存されるメタ情報１２２を含む。
【００２８】
図８は、同じＬＵＮを持つ複数のＰＵＮを各物理ユニットのＤｅｐｔｈ順に並べたものである。
この時、同じＬＵＮを持つＰＵＮを各物理ユニットのＤｅｐｔｈ順に並べ、前記Ｄｅｐｔｈ値が大きいほど最新の有効なデータと判断される。
このようなフラッシュメモリの各物理ユニットは独立的な使用寿命を持つ。すなわち、各物理ユニットは所定のＥＣＮＴを持つため、ＥＣＮＴの少ない物理ユニットを先に使用して初めて前記フラッシュメモリの寿命を延長させうる。
【００２９】
本実施形態は、前記ＥＣＮＴによってあらゆる物理ユニットを均一に使用できるフラッシュメモリのリマッピング方法に係り、図９に図示されたように、マッピングされていない物理ユニットを前記ＥＣＮＴの少ない順に並べる。
この時、前記マッピングされていない物理ユニットは有効なセクターを持っておらず、新たにマッピングされて使用可能な空の物理ユニットである。
以後、前記マッピングされていない物理ユニットのうち所定の論理ユニットに物理ユニットを新たにマッピングして使用する場合、前記ＥＣＮＴの少ない物理ユニットを優先使用してあらゆる物理ユニットを均一に使用できる。
【００３０】
このようなフラッシュメモリのリマッピング方法を利用したデータ記録を例として説明すれば、図１０に図示されたように、まず、所定の論理セクターにデータを記録する場合、前記データが保存されるＬＵＮを検索する（Ｓ１１０）。
以後、検索された論理ユニットに前記論理セクターを保存する空間が存在しているかどうかを判断する（Ｓ１２０）。
前記判断結果、前記論理セクターを保存する空間が存在する場合、該当空の空間にデータを保存する（Ｓ１３０）。
【００３１】
もし、前記検索された論理ユニットにデータを保存するセクターが存在していない場合、追加でマッピング可能な物理ユニットが存在しているかどうかを判断する（Ｓ１４０）。前記判断結果、追加でマッピング可能な物理ユニットが存在する場合、マッピングされていない物理ユニットのうちＥＣＮＴの最も少ない物理ユニットを選択し（Ｓ１５０）、前記選択された物理ユニットを前記論理ユニットに追加でマッピングする（Ｓ１６０）。
以後、前記論理ユニットに追加でマッピングされた物理ユニットの空の空間にデータを記録する。
【００３２】
もし、追加でマッピング可能な物理ユニットが存在していない場合には、使用中の物理ユニットのうちコンパクション演算を行ってマッピングされていない物理ユニットを生成し、前記生成された物理ユニットのうちＥＣＮＴの最も少ない物理ユニットを選択し、これを前記論理ユニットにマッピングする（Ｓ１７０）。
この時、前記コンパクション演算は、論理ユニットと物理ユニットとのマッピング関係が１：Ｎ（Ｎ＞２）である場合、前記論理ユニットと物理ユニットとのマッピング関係を１：Ｎ−１にマッピングして空の物理ユニットを少なくとも一つ以上生成することである。
【００３３】
すなわち、前記論理ユニットにマッピングされた複数の物理ユニットのうち空の物理ユニットを作る物理ユニットを選定し、前記選定された物理ユニットの有効セクターを他の物理ユニットの空のセクターに移して空の物理ユニットを生成することである。
このようなコンパクション演算方法を、図１１を参照としてさらに詳細に説明すれば、まず少なくとも一つ以上の物理ユニットがマッピングされた論理ユニットを対象に前記論理ユニットのコンパクションコストの最も小さな論理ユニットを検索する（Ｓ１７１）。
【００３４】
この時、前記論理ユニットのコンパクションコストは、まず該当論理ユニットにマッピングされた物理ユニットのコンパクションコストを求めねばならないが、前記物理ユニットのコンパクションコストは、有効セクターの数などに基づいて前記有効セクターを移すのにかかる時間の相対的な値で求めることができる。
すなわち、前記物理ユニットのコンパクションコストは、論理ユニットで空の物理ユニットを生成するための時間の相対的な値であって、フラッシュメモリに接近せねばならない回数を通じて得られる。
【００３５】
この時、前記フラッシュメモリの接近は、物理ユニット削除、セクター記録、セクターコピー、セクター再生などに大別できる。
例えば、前記物理ユニット削除のコストは１０、セクター記録のコストは３、セクターコピーのコストは４、セクター再生のコストは１とし、コンパクション演算を行うためには１個の物理ユニットを削除せねばならず、総１２個のセクターをコピーする場合、前記論理ユニットのコンパクションコストは５８であるといえる。
以後、前記物理ユニットのコンパクションコストのうち最も小さな値を前記論理ユニットのコンパクションコストと選定する。
【００３６】
この時、前記論理ユニットにマッピングされた複数の物理ユニットのうち最も最近にマッピングされたユニットは、コンパクション対象から除外する。
これは、最も最近にマッピングされた物理ユニットの有効セクターを移すためには常に空の物理ユニットを割り当てねばならないためである。
したがって、最も最近にマッピングされた物理ユニットを除いて、最も小さなコンパクションコストを持つ物理ユニットのコンパクションコストが、該当論理ユニットのコンパクションコストとなる。
【００３７】
この時、前記論理ユニットのコンパクションコストとなる該当物理ユニットの有効セクターをいずれも空の空間に移すことが不可能であれば、新たな物理ユニットを割り当てねばならないので、前記論理ユニットのコンパクションコストに割り当てコストを加える。
そして、前記論理ユニットのコンパクションコストとなる該当物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットを選定し、現在論理ユニットのコンパクションコストに、最も小さなコンパクションコストを持つ物理ユニットに次いで小さなコンパクションコストを持つ物理ユニットのコンパクションコストを加える。
【００３８】
このように、論理ユニットのコンパクションコストをいずれも求めて選定したコンパクションコストの最も小さな論理ユニットを検索することである。
前記コンパクションコストの最も小さな論理ユニットが検索されれば、前記論理ユニット内でコンパクションコストの最も小さな物理ユニットＡを検索する（Ｓ１７２）。
この時、前記コンパクション演算のために前記物理ユニットＡの有効セクターを移すのに空の物理ユニットが必要であるかどうかを判断する（Ｓ１７３）。
前記判断結果、空の物理ユニットが必要でない場合には、前記コンパクションコストが、物理ユニットＡの有効セクターを前記論理ユニット内の空の空間にコピーする（Ｓ１７４）。
【００３９】
以後、前記有効セクターがいずれもコピーされれば、前記物理ユニットＡを前記論理ユニットのマッピングから除外する（Ｓ１７５）。
もし、前記判断結果、空の物理ユニットが必要な場合、前記論理ユニット内で、前記コンパクションコストの最も小さい物理ユニットに次いでコンパクションコストの小さい物理ユニットＢを検索する（Ｓ１７６）。
以後、前記論理ユニットに空の物理ユニットを割り当てる（Ｓ１７７）。
この時、前記コンパクション演算のための空の物理ユニットを前記論理ユニットにマッピングし（Ｓ１７８）、前記物理ユニットＢを前記空の物理ユニットにコピーする（Ｓ１７９）。
【００４０】
以後、前記物理ユニットＢを前記論理ユニットのマッピングから除外し（Ｓ１８０）、前記物理ユニットＡを論理ユニットのマッピングから除外する過程（Ｓ１７５）を行う。
一方、前記のようなコンパクション演算方法は、前記物理ユニット内に保存される論理セクターの位置が固定された場合とそうでない場合とによって所定の差を持つ。
すなわち、前記論理セクターは、図１２に図示されたように、前記物理ユニット内の固定された位置に保存されることもあり、図１３に図示されたように、前記物理ユニット内の固定されていない位置に保存されることもある。
【００４１】
まず、前記物理ユニット内に保存される論理セクターの位置が固定された場合を説明すれば、図１４に図示されたように、一つの論理ユニットには複数の物理ユニットがマッピングされている。
例えば、論理セクター０番から論理セクター３番までは論理ユニット０番に保存され、論理セクター４番から論理セクター７番までは論理ユニット２番に保存され、論理セクター８番から論理セクター１１番までは論理ユニット３番に保存される場合を説明する。
【００４２】
また、論理ユニット０番には物理ユニット７番、５番、４番がマッピングされ、論理ユニット１番には物理ユニット２番、１番がマッピングされ、論理ユニット２番には物理ユニット０番がマッピングされる場合を説明する。
この時、前記論理ユニットのコンパクションコストを選定するためには各物理ユニットに対するコンパクションコストを選定せねばならない。
ここで、前記物理ユニットに対するコンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃ＋Ｓｅ＊Ｗｅにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコスト、Ｓｅは空のセクター数、Ｗｅは空のセクターに対する加重値である。
【００４３】
この時、前記コピーコストは３、空のセクターに対する加重値は０．５である場合を例として説明する。
したがって、前記論理アドレス０番で前記物理ユニット７番のコンパクションコストは１＊３＋３＊０．５＝４．５であり、前記物理ユニット５番のコンパクションコストは２＊３＋１＊０．５＝６．５であり、前記物理ユニット４番のコンパクションコストは１＊３＋０＊０．５＝３である。
【００４４】
ここで、最も最近にマッピングされた物理ユニット７番を除いて、最も小さいコンパクションコストを持つ物理ユニットは４番となる。したがって、前記物理ユニット４番の有効セクター１個は、物理ユニット５番にすべて移すことができる。
また、前記論理ユニット０番のコンパクションコストは、物理ユニット４番のコンパクションコストである３となる。
一方、前記論理アドレス１番で物理アドレス２番のコンパクションコストは、前記物理ユニット７番、５番、４番と同じ方法を通じて４．５を得ることができ、前記物理アドレス１番のコンパクションコストは４を得ることができる。
【００４５】
この時、最も最近にマッピングされた物理ユニット２番を除いて、最も小さいコンパクションコストを持つ物理ユニット１番の有効セクター１個は、物理ユニット２番にすべて移すことができ、前記論理ユニット１番のコンパクションコストは物理ユニット１番のコンパクションコストである１となる。
この時、前記論理アドレス２番は一つの物理ユニットのみマッピングされているので、コンパクション対象から除外される。
ここで、前記論理セクター１１番を記録する場合を例として説明すれば、前記論理セクター１１番が保存される論理ユニットは論理ユニット２番となる。
【００４６】
この時、前記論理ユニット２番では空のセクターが存在していないためにコンパクション演算を行って空の空間の物理ユニットを生成する。
すなわち、前記コンパクションコストの最も小さな論理ユニットは前記論理ユニット０番となる。
また、前記論理ユニット０番でコンパクションコストの最も小さな物理ユニットは物理ユニット４番となる。
【００４７】
したがって、図１５に図示されたように、前記物理ユニット４番の有効セクター１個を前記物理ユニット５番にコピーし、前記物理ユニット４番を前記論理ユニット０番のマッピングから除外する。
以後、図１６に図示されたように、前記論理ユニット０番のマッピングから除外された物理ユニットを前記論理ユニット２番にマッピングし、論理セクター１１番を前記物理ユニット４番に保存する。
【００４８】
一方、他の実施形態で論理セクターが保存される位置が固定されていない場合を説明すれば、図１７に図示されたように、一つの論理ユニットには複数の物理ユニットがマッピングされ、一つの物理ユニットに４個の論理セクターを保存できる場合、各物理ユニットに論理セクターを保存する時は順次に空の論理セクターに保存できる。
この時、論理セクター０番から３番までは論理ユニット０番に保存され、論理セクター４番から論理セクター７番までは論理ユニット１番に保存され、論理セクター８番から論理セクター１１番までは論理ユニット２番に保存される場合を例として説明する。
【００４９】
ここで、前記論理ユニット０番には物理ユニット７番、５番、４番がマッピングされ、前記論理ユニット１番には物理ユニット２番、１番がマッピングされ、前記論理ユニット２番には物理ユニット０番がマッピングされる。
この時、各論理ユニットのコンパクションコストはシステム初期化時に計算し、以後に更新される度に該当論理ユニットのコンパクションコストを更新できる。
前記物理ユニットのコンパクションコストＣは、Ｃ＝Ｓｖ＊Ｃｃにより求められるが、前記Ｓｖは有効セクター数、Ｃｃはコピーコストである。
【００５０】
また、割り当てコストＱは、Ｑ＝Ｕｃ＋Ｉｗにより求められるが、前記Ｕｃはユニットを削除するコスト、Ｉｗはメタ情報を記録するコストである。
ここで、前記コピーコストは３、ユニットを削除するコストは１０、メタ情報を記録するコストは２である場合を例として説明する。
まず、前記論理ユニット０番のコンパクションコストを得るために、前記物理ユニット７番、５番、４番のコンパクションコストを求める。すなわち、前記物理ユニット７番のコンパクションコストは１＊３＝３、前記物理ユニット５番のコンパクションコストは２＊３＝６、前記物理ユニット４番のコンパクションコストは１＊３＝３であることが分かる。
【００５１】
この時、前記論理ユニット０番で最も最近にマッピングされた物理ユニット７番を除いて、コンパクションコストの最も小さな物理ユニットは４番となる。
したがって、前記論理ユニット０番のコンパクションコストは、前記物理ユニット４番のコンパクションコストの３となる。
また、前記論理ユニット１番のコンパクションコストは、前記物理ユニット２番のコンパクションコストが１＊３＝３であり、前記物理ユニット１番のコンパクションコストが３＊３＝９であるので、最も最近にマッピングされた物理ユニット２番を除外すれば、前記論理ユニット１番のコンパクションコストは９となる。
【００５２】
この時、前記物理ユニット１番の有効セクター３個は、前記論理ユニット１番の空の空間にすべて移すことができないため、新たなユニットを割り当てる割り当てコスト１２を加算する。したがって、前記論理ユニット１番のコンパクションコストは２１となる。
また、前記物理ユニット１番を除いて、コンパクションコストの最も小さな物理ユニットは２番となるために、前記論理ユニット１番のコンパクションコストである２１に３を加算して、前記論理ユニット１番のコンパクションコストは２４となる。
一方、前記論理ユニット２番の一つの物理ユニットのみマッピングされているので、コンパクション演算の対象から除外する。
【００５３】
ここで、前記論理セクター１１番を記録する場合を例として説明すれば、前記論理セクター１１番が保存される論理ユニットは論理ユニット２番となる。
この時、前記論理ユニット２番には空のセクターが存在していないのでコンパクションを行うが、まず、コンパクションコストの最も小さな論理ユニットは０番となる。
また、前記論理ユニット０番で最も最近にマッピングされた物理ユニット７番を除外すれば、コンパクションコストの最も小さな物理ユニットは４番となる。
この時、前記物理ユニット４番の有効セクター１個は該当論理ユニットの空のセクターに移すことができるので、空のユニットが要らなくなる。
【００５４】
したがって、図１８に図示されたように、前記物理ユニット４番の有効セクターである論理セクター３番を前記物理ユニット７番の空のセクターにコピーし、前記物理ユニット４番は前記論理ユニット０番のマッピングから除外する。
以後、図１９に図示されたように、マッピングされていない物理ユニットのうちＥＣＮＴの最も少ない物理ユニットを選定して前記論理ユニット２番にマッピングする。
したがって、前記論理セクター１１番を、前記論理ユニット２番に新たにマッピングされた物理ユニット４番の最初のセクターに記録する。
【００５５】
前記のような本実施形態は、複数の物理ユニットの均一な使用のためにマッピングされていない物理ユニットを使用する時、最もＥＣＮＴの小さなユニットを使用している。
この時、マッピングされていない物理ユニットの数が少ない場合、全体物理ユニットの均一な使用を保証するために前記コンパクションコスト以外にウェアレベリングコストを付与して、コンパクション演算を行う物理ユニットを設定できる。
【００５６】
また、最小ＥＣＮＴと最大ＥＣＮＴとの差が所定の範囲を超過する場合、前記最小ＥＣＮＴを持つ物理ユニットの有効セクターを該当論理ユニットの空のセクターに移し、前記最小ＥＣＮＴを持つ物理ユニットをマッピングから除外して最小ＥＣＮＴを持つ物理ユニットを使用できる。
すなわち、このようなウェアレベリングを利用したデータ記録を例として説明すれば、図２０に図示されたように、まず所定のセクターにデータを使う場合、前記データが保存されるＬＵＮを検索する（Ｓ２１０）。
【００５７】
次いで、検索されたＬＵＮ内に前記セクターのデータを保存する空間が存在しているかどうかを判断する（Ｓ２２０）。
前記判断結果、前記セクターを保存する空間が存在する場合、該当空の空間にデータを保存する（Ｓ２３０）。
もし、前記論理ユニットにデータを保存するセクターが存在していない場合、追加でマッピング可能な物理ユニットが存在しているかどうかを判断する（Ｓ２４０）。 
【００５８】
前記判断の結果、追加でマッピング可能な物理ユニットが存在する場合、マッピングされていない物理ユニットのうちＥＣＮＴの最も少ない物理ユニットを選択し（Ｓ２５０）、前記選択された物理ユニットを前記論理ユニットに追加でマッピングする（Ｓ２６０）。
次いで、前記論理ユニットに追加でマッピングされた物理ユニットの空の空間にデータを記録する。
【００５９】
もし、追加でマッピング可能な物理ユニットが存在していない場合には、使用中の物理ユニットを通じたコンパクション演算を行ってマッピングされていない物理ユニットを生成し、それを前記論理ユニットに追加でマッピングする（Ｓ２７０）。すなわち、図２１に図示されたように、論理ユニット０番には一つの物理ユニットがマッピングされているので、コンパクション演算対象から除外する。
【００６０】
論理ユニット１番に属する各物理ユニットのコンパクションコストを求めれば、物理ユニット２番のコンパクションコストは１＊９＝３であり、物理ユニット０番のコンパクションコストは２＊３＝６であり、物理ユニット６番のコンパクションコース借金１＊３＝３である。
この時、最も最近にマッピングされた物理ユニット２番を除いて、コンパクションコストの最も小さい物理ユニットは６番となる。したがって、前記論理ユニット１番のコンパクションコストは３となる。
【００６１】
この時、前記物理ユニット６番の有効セクター１個は、該当論理ユニットの空のセクターにすべて移すことができないので、新たな物理ユニットの割り当てコスト１２を加算する。したがって、前記論理ユニット１番のコンパクションコストは１５となる。
この時、前記物理ユニット１番を除外したコンパクションコストの最も小さな物理ユニットは２番であるため、前記物理ユニット２番のコンパクションコスト３を加算すれば、前記論理ユニット１番のコンパクションコストは１８となる。
論理ユニット３番の物理ユニット４番のコンパクションコストは１＊３＝３であり、物理ユニット１番のコンパクションコストは３＊３＝９である。
【００６２】
最も最近にマッピングされた物理ユニット４番を除いて、物理ユニット１番のコンパクションコストが９であるので、前記論理ユニット３番のコンパクションコストは９となる。この時、前記物理ユニット１番の有効セクター３個は該当論理ユニット内の空のセクターにすべて移すことができないので、新たな物理ユニット割り当てコスト１２を加算すれば、前記論理ユニット３番のコンパクションコストは２１となる。
また、前記物理ユニット１番を除外すれば、コンパクションコストの最も小さな物理ユニット４番のコンパクションコスト３を加算すれば、前記論理ユニット３番のコンパクションコストは２４となる。
【００６３】
論理ユニット４番に属する各物理ユニットのコンパクションコストを求めれば、物理ユニット７番のコンパクションコストは１＊３＝３であり、物理ユニット９番のコンパクションコストは３＊３＝９である。
最も最近にマッピングされた物理ユニット７番を除外すれば、物理ユニット９番のコンパクションコストが９であるため、前記論理ユニット４番のコンパクションコストは９となる。この時、前記物理ユニット９番の有効セクター３個は該当論理ユニット内の空のセクターにすべて移すことができないので、新たな物理ユニットを割り当てられて前記論理ユニット４番のコンパクションコストは、割り当てコスト１２が加算されて２１となる。
【００６４】
また、前記物理ユニット９番を除いて、コンパクションコストの最も小さな物理ユニットは７番であるため、前記物理ユニット７番のコンパクションコストを加算して前記論理ユニット４番のコンパクションコストは２４となる。
この時、前記論理ユニット０番に論理セクター０番を保存する場合を例として説明すれば、前記論理ユニット０番には論理セクターを保存する空のセクターがもう存在しなくなる。
【００６５】
また、コンパクションコストの最も小さな論理ユニットは論理ユニット１番であり、前記論理ユニット１番でコンパクションコストの最も小さな物理ユニットは物理ユニット２番を除外すれば、物理ユニット６番となる。
この時、前記物理ユニット６番の有効セクター１個を該当論理ユニット内の空のセクターに移すことができないので、空の物理ユニットが必要となる。
したがって、図２２に図示されたように、マッピングされていない物理ユニット１つを前記論理ユニット１番に新たにマッピングする。
【００６６】
以後、前記物理ユニット６番に次いでコンパクションコストの小さな物理ユニットは２番であるため、前記物理ユニット２番の有効セクター１個を新たにマッピングされた物理ユニットにコピーし、前記物理ユニット２番はマッピングから除外する。
また、前記物理ユニット６番の有効セクター１個を新たにマッピングされた物理ユニットにコピーし、前記物理ユニット６番をマッピングから除外する。
この時、図２３に図示されたように、前記物理ユニット６番及び２番がマッピングされていない物理ユニットに含まれるが、このうちＥＣＮＴの少ない物理ユニット６番を前記論理ユニット０番にマッピングする。
【００６７】
この時、最小ＥＣＮＴと最大ＥＣＮＴとの差が所定の範囲を超過するかどうかを判断し（Ｓ２８０）、前記判断結果所定の範囲を超過した場合、強制にウェアレベリングを行う（Ｓ２９０）。
すなわち、図２４に図示されたように、各物理ユニットの最小ＥＣＮＴと最大ＥＣＮＴとの差が所定の範囲を超過するかどうかを判断することである。
【００６８】
この時、前記所定範囲が１００である場合を例として説明すれば、最大ＥＣＮＴは物理ユニット８番の２１であり、最小ＥＣＮＴは無理ユニット９番の１２１となって１００となる。
したがって、前記最小ＥＣＮＴを持つ物理ユニットの９番を強制にコンパクションさせる。
【００６９】
以上、例示された図を参照して 本発明によるフラッシュメモリのリマッピング方法を説明したが、本発明は前記実施形態に限定されず、本発明の技術的要旨を外れない範囲内で当業者により多様に変形実施することができる。
【産業上の利用可能性】
【００７０】
本発明は、携帯機器の保存媒体として用いられるフラッシュメモリのリマッピング技術分野に好適に適用できる。
【図面の簡単な説明】
【００７１】
【図１】一般的な論理ブロック番号とＬＵＮとのマッピングテーブル及びＬＵＮとＰＵＮとのマッピングテーブルが図示された図である。
【図２】一般的な物理ユニットの構造が図示された図である。
【図３】一般的な物理ユニットのデータ記録が図示された図である。
【図４】一般的なラップカウントが図示された図である。
【図５】一般的な大ブロックフラッシュメモリの構造が図示された図である。
【図６】本発明による論理ユニットのメタ情報保存領域が図示された図である。
【図７】本発明による論理ユニットのデータ保存領域が図示された図である。
【図８】本発明による論理ユニットにマッピングされた物理ユニットが図示された図である。
【図９】本発明によるマッピングされていない物理ユニットが、ＥＣＮＴの少ない順に並んだ図面である。
【図１０】本発明による論理セクター記録方法が図示された図である。
【図１１】本発明によるコンパクション演算方法が図示された図である。
【図１２】本発明による物理ユニットの固定された位置に論理セクターを書込む方法が図示された図である。
【図１３】本発明による物理ユニットの固定されていない位置に論理セクターを書込む方法が図示された図である。
【図１４】本発明による物理ユニットの固定された位置に論理セクターを書込む場合のコンパクション演算過程が図示された図である。
【図１５】本発明による物理ユニットの固定された位置に論理セクターを書込む場合のコンパクション演算過程が図示された図である。
【図１６】本発明による物理ユニットの固定された位置に論理セクターを書込む場合のコンパクション演算過程が図示された図である。
【図１７】本発明による物理ユニットの固定されていない位置に論理セクターを書込む場合のコンパクション演算過程が図示された図面である。
【図１８】本発明による物理ユニットの固定されていない位置に論理セクターを書込む場合のコンパクション演算過程が図示された図である。
【図１９】本発明による物理ユニットの固定されていない位置に論理セクターを書込む場合のコンパクション演算過程が図示された図である。
【図２０】本発明による強制コンパクション演算方法が図示された図である。
【図２１】本発明による強制コンパクション方法におけるコンパクション演算過程が図示された図である。
【図２２】本発明による強制コンパクション方法におけるコンパクション演算過程が図示された図である。
【図２３】本発明による強制コンパクション方法におけるコンパクション演算過程が図示された図である。
【図２４】本発明による強制コンパクション方法におけるコンパクション演算過程が図示された図である。
【符号の説明】
【００７２】
１０，２０…物理ユニット
１１，２１…ヘッダ（ＥＵＨ）
１２，２２…ブロック割り当てマップ（ＢＡＭ）
１３，２３…ブロック
【図１】
2005222550.tif 000003
【図２】
2005222550.tif 000004
【図３】
2005222550.tif 000005
【図４】
2005222550.tif 000006
【図５】
2005222550.tif 000007
【図６】
2005222550.tif 000008
【図７】
2005222550.tif 000009
【図８】
2005222550.tif 000010
【図９】
2005222550.tif 000011
【図１０】
2005222550.tif 000012
【図１１】
2005222550.tif 000013
【図１２】
2005222550.tif 000014
【図１３】
2005222550.tif 000015
【図１４】
2005222550.tif 000016
【図１５】
2005222550.tif 000017
【図１６】
2005222550.tif 000018
【図１７】
2005222550.tif 000019
【図１８】
2005222550.tif 000020
【図１９】
2005222550.tif 000021
【図２０】
2005222550.tif 000022
【図２１】
2005222550.tif 000023
【図２２】
2005222550.tif 000024
【図２３】
2005222550.tif 000025
【図２４】
2005222550.tif 000026