(57)【要約】【課題】  不揮発性データ保存装置の静的データ領域の検出方法、磨耗度平準化方法及びデータユニットの併合方法とその装置を提供する。【解決手段】  データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、ユニットに保存されたエイジ値を判読するステップと、判読されたエイジ値を通じて静的データ領域を判断するステップと、を含む不揮発性データ保存装置の静的データ領域の検出方法である。これにより、追加的なオーバーヘッドなしに正確な静的データ領域を検出し、これを移動して保存装置全体の磨耗度平準化の効果を高め、保存装置の寿命を延長しうる。【選択図】      図６
2008152909.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性データ保存装置の静的データ領域の検出方法において、
データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、
前記ユニットに保存されたエイジ値を判読するステップと、
前記判読されたエイジ値を通じて静的データ領域を判断するステップと、を含むことを特徴とする検出方法。
【請求項２】
前記エイジ値は、前記データ及び他のデータ間での記録される時点の先後を相対的に表す値であることを特徴とする請求項１に記載の検出方法。
【請求項３】
前記エイジ値を保存するステップは、前記ユニットの余裕空間に前記エイジ値を保存することを特徴とする請求項２に記載の検出方法。
【請求項４】
前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録されることを特徴とする請求項３に記載の検出方法。
【請求項５】
前記エイジカウンタの値は、データが記録されていないフリーユニットが割当てられる度に値が変更されることを特徴とする請求項４に記載の検出方法。
【請求項６】
前記エイジカウンタの値は、前記割当てられるフリーユニットに対するマッピングテーブルの余裕空間に記録され、前記マッピングテーブルが更新される時に共に保存されることを特徴とする請求項５に記載の検出方法。
【請求項７】
前記保存されるエイジ値は、前記エイジ値と共に保存されるデータを記録する時の前記エイジカウンタ値であることを特徴とする請求項６に記載の検出方法。
【請求項８】
前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われることを特徴とする請求項２に記載の検出方法。
【請求項９】
前記保存されたエイジ値を判読するステップは、前記データが割当てられた全ての前記ユニットに対して順次に行われることを特徴とする請求項８に記載の検出方法。
【請求項１０】
前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップは、前記判読されたエイジ値とエイジカウンタ値との差が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを静的データ領域と判断することを特徴とする請求項９に記載の検出方法。
【請求項１１】
前記判断された静的データ領域のデータを他のユニットに移動することによって磨耗度平準化するステップをさらに含むことを特徴とする請求項１に記載の検出方法。
【請求項１２】
前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、
前記エイジカウンタの値は、データが記録されていないフリーユニットが割当てられる度に値が変更されることを特徴とする請求項１１に記載の検出方法。
【請求項１３】
前記判読されたエイジ値を通じて静的データ領域を検出するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含み、
前記判読されたエイジ値とエイジカウンタ値との比較結果、差値が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを静的データ領域として検出することを特徴とする請求項１２に記載の検出方法。
【請求項１４】
前記検出された静的データ領域のデータを他のユニットに移動するステップは、前記静的データ領域のデータが記録されたユニットを、他のデータが記録されているユニットと交換することを特徴とする請求項１１に記載の検出方法。
【請求項１５】
不揮発性データ保存装置のデータユニット併合方法において、
データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、
前記保存されたエイジ値を判読するステップと、
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップと、
前記検出された複数の前記ユニットを併合するステップと、を含むことを特徴とする併合方法。
【請求項１６】
前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、
前記エイジカウンタの値は、データが記録されていないフリーユニットが割当てられる度に値が変更されることを特徴とする請求項１５に記載の併合方法。
【請求項１７】
前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われ、前記データが割当てられた全ての前記ユニットに対して順次に行われることを特徴とする請求項１６に記載の併合方法。
【請求項１８】
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含み、
前記判読されたエイジ値とエイジカウンタ値との比較結果、差値が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを前記併合を行うユニットとして検出することを特徴とする請求項１７に記載の併合方法。
【請求項１９】
前記保存されたエイジ値を判読するステップは、前記システムが認識する論理的単位ユニットに対する複数の前記データユニットのエイジ値の平均値を計算するステップをさらに含むことを特徴とする請求項１７に記載の併合方法。
【請求項２０】
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記併合に伴われるコスト及び利得を計算するステップをさらに含み、
前記コストは、前記併合によって移動するデータの量及び前記計算されたエイジ値の平均値であり、
前記利得は、前記併合によって前記フリーユニットに収集される無効データの量であることを特徴とする請求項１９に記載の併合方法。
【請求項２１】
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記計算されたコストに反比例し、前記利得に比例する優先順位値を計算するステップをさらに含み、
前記優先順位値が最も高い前記複数のデータユニットを、前記併合を行うユニットとして検出することを特徴とする請求項２０に記載の併合方法。
【請求項２２】
不揮発性データ保存装置に対する静的データ領域検出装置において、
データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、
前記ユニットに保存されたエイジ値を判読するエイジ判読部と、
前記判読されたエイジ値を通じて静的データ領域を判断する静的データ判断部と、を備えることを特徴とする検出装置。
【請求項２３】
前記判断された静的データ領域のデータを他のユニットに移動する磨耗度平準化データユニット変換部を備えることを特徴とする請求項２２に記載の検出装置。
【請求項２４】
不揮発性データ保存装置に対するデータユニット併合装置において、
データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、
前記保存されたエイジ値を判読するエイジ判読部と、
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出する併合対象探索部と、
前記検出された複数の前記ユニットを併合する併合部と、を備えることを特徴とする併合装置。
【請求項２５】
請求項１に記載の方法を具現するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磨耗度平準化方法に係り、さらに詳細には、不揮発性データ保存装置内のデータユニットに記録時間を表すエイジ値を保存することによって、静的データ領域を検出して磨耗度平準化の効果を極大化させる不揮発性データ保存装置の磨耗度平準化方法及びその装置に関する。
【背景技術】
【０００２】
最近、モバイル機器を備える多様なマルチメディア装置として使われる不揮発性データ保存装置のうちフラッシュメモリは、低電力、小型化、少ない発熱、高い安定性などの理由で好まれる保存装置として広く使われており、一つのメモリに保存しうる空間のサイズも速い勢いで増大している。
【０００３】
しかし、フラッシュメモリは、一般的に遅いプログラミング（ライト）速度を有し、またデータが記録されたブロックを更新するためには、リライトの前に該当ブロックを消去せねばならないという短所がある。
【０００４】
しかし、消去動作の基本単位であるブロックごとに単一層セル（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ：ＳＬＣ）タイプの場合、１００,０００回、多重層セル（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ：ＭＬＣ）タイプの場合、１０,０００回の消去回数についての制約条件が存在する。このような制約条件は、ライト／リード作業の可能な他の不揮発性データ保存装置の場合にも適用され、したがって、後述する内容は、不揮発性データ保存装置に対して全般的に適用可能である。
【０００５】
前述した消去回数についての制約条件によって、メモリの特定ブロックに頻繁な更新が発生する場合、老化（ａｇｉｎｇ）現象によってバッドブロックが発生し、メモリ全体的に急な寿命低下を招くことがある。これを防止するために、フラッシュメモリを運用するソフトウェアであるフラッシュ変換階層（Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ：ＦＴＬ）は、消去動作を分散する磨耗度平準化技法を必要とし、磨耗度平準化方法によってメモリの寿命に多くの差が現れる。
【０００６】
図１は、従来の技術によるカウンティングランタイム方法によるフラッシュメモリのブロック当たりの消去回数を示す図である。
【０００７】
消去回数を管理するために使われる磨耗度平準化方法は、一般的にブロック当たりの消去回数を保存する方法を使用し、これは、２つに大別される。第１の方法は、保存装置であるフラッシュメモリ内に消去回数情報を含む管理テーブルを有していることであり、第２の方法は、フラッシュメモリではないフラッシュメモリを駆動しているシステム上のメモリ（ＲＡＭ：ランダムアクセスメモリ）に消去回数情報を含む管理テーブルを有していることである。
【０００８】
第１の方法によれば、フラッシュメモリが内部に備えているブロックマップテーブルで、フラッシュメモリの物理的ブロックアドレスと共に消去回数を保存し、システム上のメモリには、マップテーブルキャッシュのみを保存する。したがって、フラッシュメモリの内部に全てのブロックについての消去回数を保存しているので、該当フラッシュメモリの正確な磨耗度平準化が可能であるが、追加された消去回数情報によってブロックマップテーブルのオーバーヘッドが２倍に増加するという短所がある。
【０００９】
第２の方法によれば、フラッシュメモリの内部にあるブロックマップテーブルには、物理的ブロックアドレスのみが保存され、消去回数情報は、システム上のメモリに消去回数配列形態に保存されて管理される。システムの電源が遮断されれば、消去回数情報が初期化されるので、該当フラッシュメモリの完壁な磨耗度平準化は困難であるが、フラッシュメモリの内部のブロックマップテーブルの更新に必要なオーバーヘッドはないという長所がある。
【００１０】
図１を参照するに、オーバーヘッドのない前記第１の方法によるとき、消去回数の管理による磨耗度平準化方法と、ＦＴＬが基本的に運用するアドレス再指定及び廃領域収集の機能によって全体的に消去回数が均一に現れる。ブロック番号０〜７４９を参照するに、各ブロック当たりの消去回数の差が大きくないということが分かる。
【００１１】
しかし、ブロック番号７４９〜９５３領域１１０を参照するに、消去回数が極めて微小であり、したがって、境界領域のブロックとの消去回数の差が非常に大きいということが分かる。前記領域１１０は、静的データ領域であって、データが長期間更新（変更）または消去（削除）されずに保管される領域である。このような、静的データ領域は、前記第２の方法によるとき、消去回数情報の初期化によって正確に検出され難い。
【００１２】
このように、第２の方法を利用した磨耗度平準化方法は、電源遮断時に磨耗度と関連した情報（消去回数情報）が何れも初期化されるので、静的データ領域１１０が広く存在する場合に、磨耗度平準化効果が急減するという短所がある。
【００１３】
図２は、従来の技術による、フラッシュメモリ内の静的領域の磨耗度平準化方法を説明するためのフローチャートである。図２を参照するに、従来の技術による静的領域の磨耗度平準化方法は、記録または消去動作をカウンティングし（２１０）、カウンティング値が、例えば、１０００のような選択された数の倍数値であるとき、ランダムプロセスを発生させて（２２０）磨耗平準化方法を開始する（２３０）。磨耗平準化方法は、特定選択順序を設定するか（２４０）、またはランダムプロセスを発生させて（２５０）、ユニットを選択し（２６０）、選択されたユニットのデータを他のフリーユニットに移動させ（２７０）、選択されたユニットは消去する。
【００１４】
しかし、このような磨耗度平準化方法によれば、ランダム関数を利用してフラッシュメモリ全体に対してブロックの移動または交換を試みるので、静的データ領域でないブロックに対する交換が頻繁に発生する。すなわち、フリーユニット相互間の交換や更新が頻繁なブロックの交換が行われ、また、これによる不要な消去作業がさらに発生してフラッシュメモリ全体の寿命が短縮されるという問題点がある。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、前記問題点を解決するために案出されたものであって、本発明が解決しようとする技術的課題は、不揮発性データ保存装置内のデータユニットに記録時間を表すエイジ値を保存することによって、静的データ領域を正確に検出して磨耗度平準化の効果を極大化させる磨耗度平準化方法及びその装置を提供することである。
【課題を解決するための手段】
【００１６】
前記技術的課題を解決するために、本発明による不揮発性データ保存装置の静的データ領域の検出方法は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、前記ユニットに保存されたエイジ値を判読するステップと、前記判読されたエイジ値を通じて静的データ領域を判断するステップと、を含むことを特徴とする検出方法によって達成される。
【００１７】
前記エイジ値は、前記データが記録される時点の先後を相対的に示す値であることが望ましい。
【００１８】
また、前記エイジ値を保存するステップは、前記ユニットを消去した後、前記データを記録する時に共に保存することが望ましく、前記ユニットの余裕空間に保存することが望ましい。
【００１９】
前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録されることが望ましく、前記エイジカウンタは、データが記録されていないフリーユニットが割当てられる度に値が変更されることが望ましく、前記変更されるエイジカウンタの値は、順次に値が増加することがさらに望ましい。
【００２０】
また、前記エイジカウンタは、前記割当てられるフリーユニットに対するマッピングテーブルの余裕空間に記録され、前記マッピングテーブルが更新される時に共に保存されることが望ましい。
【００２１】
また、前記保存されるエイジ値は、前記エイジ値と共に保存するデータを記録する時の前記エイジカウンタ値であることが望ましい。
【００２２】
前記不揮発性保存装置は、フラッシュメモリであり、前記ユニットは、データブロックであり、前記エイジ値の保存される余裕空間は、前記データブロックの第１ページの余裕空間であり、前記エイジ値は、前記データブロック当たりの一つずつ存在することが望ましい。
【００２３】
一方、前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われることが望ましく、前記保存されたエイジ値を判読するステップは、前記データが割当てられた全ての前記ユニットに対して順次に行われることがさらに望ましい。
【００２４】
一方、前記判読されたエイジ値を通じて静的データ領域を判断するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含むことが望ましく、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップは、前記判読されたエイジ値とエイジカウンタ値との差が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを静的データ領域と判断することが望ましい。
【００２５】
前記課題を解決するために、本発明による不揮発性データ保存装置の磨耗度平準化方法は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、前記保存されたエイジ値を判読するステップと、前記判読されたエイジ値を通じて静的データ領域を検出するステップと、前記検出された静的データ領域のデータを他のユニットに移動するステップと、を含むことを特徴とする磨耗度平準化方法によって達成される。
【００２６】
前記エイジ値は、前記データが記録される時点の先後を相対的に示す値であることが望ましく、前記エイジ値を保存するステップは、前記ユニットを消去した後、前記データを記録する時に共に保存し、前記ユニットの余裕空間に保存することが望ましい。
【００２７】
また、前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、前記エイジカウンタは、データが記録されていないフリーユニットが割当てられる度に値が変更されることが望ましい。
【００２８】
一方、前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われ、前記データが割当てられた全ての前記ユニットに対して順次に行われることが望ましい。
【００２９】
一方、前記判読されたエイジ値を通じて静的データ領域を検出するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含み、前記判読されたエイジ値とエイジカウンタ値との比較結果、差値が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを静的データ領域として検出することが望ましい。
【００３０】
一方、前記検出された静的データ領域のデータを他のユニットに移動するステップは、前記静的データ領域のデータを他のデータが記録されていないフリーユニットに移動することが望ましく、前記移動したデータが記録されたユニットのエイジを更新するステップをさらに含むことがさらに望ましい。
【００３１】
また、前記検出された静的データ領域のデータを他のユニットに移動するステップは、前記静的データ領域のデータが記録されたユニットを他のデータが記録されているユニットと交換することが望ましく、前記静的データ領域のデータが録されたユニットと交換されるユニットは、前記静的データ領域のデータが記録されたユニットが有するエイジ値より相対的に高いエイジ値を有するユニットであることが望ましく、前記交換されたデータが記録されたユニットのエイジを更新するステップをさらに含むことがさらに望ましい。
【００３２】
前記検出された静的データ領域のデータを他のユニットに移動するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われることが望ましい。
【００３３】
前記のさらに他の技術的課題を解決するために、本発明による不揮発性データ保存装置のデータユニット併合方法は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、前記保存されたエイジ値を判読するステップと、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップと、前記検出された複数の前記ユニットを併合するステップと、を含むことを特徴とする併合方法によって達成される。
【００３４】
前記エイジ値は、前記データが記録される時点の先後を相対的に表す値であることが望ましく、前記エイジ値を保存するステップは、前記ユニットを消去した後、前記データを記録する時に共に保存し、前記ユニットの余裕空間に保存することが望ましい。
【００３５】
前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、前記エイジカウンタは、データが記録されていないフリーユニットが割当てられる度に値が変更されることが望ましい。
【００３６】
一方、前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われ、前記データが割当てられた全ての前記ユニットに対して順次に行われることが望ましい。
【００３７】
一方、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含み、前記判読されたエイジ値とエイジカウンタ値との比較結果、差値が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを併合を行うユニットとして検出することが望ましい。
【００３８】
また、前記保存されたエイジ値を判読するステップは、前記システムが認識する論理的な単位ユニットに対する複数の前記データユニットのエイジ値の平均値を計算するステップをさらに含むことが望ましい。
【００３９】
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記計算されたエイジ値の平均値が最も低い前記複数のデータユニットを、前記併合を行うユニットとして検出することが望ましい。
【００４０】
また、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記併合に伴うコスト及び利得を計算するステップをさらに含み、前記コストは、前記併合によって移動するデータの量及び前記計算されたエイジ値の平均値であり、前記利得は、前記併合によって前記フリーユニットに収集される無効データの量であることが望ましい。
【００４１】
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記計算されたコストに反比例し、前記利得に比例する優先順位値を計算するステップをさらに含み、前記優先順位値が最も高い前記複数のデータユニットを、前記併合を行うユニットとして検出することが望ましい。
【００４２】
前記課題を解決するために、本発明による不揮発性データ保存装置についての静的データ領域検出装置は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、前記ユニットに保存されたエイジ値を判読するエイジ判読部と、前記判読されたエイジ値を通じて静的データ領域を判断する静的データ判断部と、を備えることを特徴とする検出装置によって達成される。
【００４３】
前記課題を解決するために、本発明による不揮発性データ保存装置についての磨耗度平準化装置は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、前記保存されたエイジ値を判読するエイジ判読部と、前記判読されたエイジ値を通じて静的データ領域を検出する静的データ検出部と、前記検出された静的データ領域のデータを他のユニットに移動するデータユニット変換部と、を備えることを特徴とする磨耗度平準化装置によっても達成される。
【００４４】
前記課題を解決するために、本発明による不揮発性データ保存装置についてのデータユニット併合装置は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、前記保存されたエイジ値を判読するエイジ判読部と、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出する併合対象探索部と、前記検出された複数の前記ユニットを併合する併合部と、を備えることを特徴とする併合装置によっても達成される。
【００４５】
さらに、前記課題を解決するために、本発明による静的データ領域の検出方法または磨耗度平準化方法またはデータユニットの併合方法を具現するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体を含む。
【発明の効果】
【００４６】
本発明による不揮発性データ保存装置の磨耗度平準化方法によれば、データユニットに保存されたエイジ値を利用して静的データ領域を検出するので、既存方法に比べて正確な静的データ領域を検出してデータを交換しうる。また、データユニットの併合方法によれば、併合演算の対象選定において、静的データ領域を一つの因子変数として追加して、併合対象として静的データが選択される確率を高めうる。したがって、本発明によれば、追加的なオーバーヘッドなしに正確な静的データ領域を検出し、これを移動して保存装置全体の磨耗度平準化の効果を向上させ、保存装置の寿命を延長しうる。
【発明を実施するための最良の形態】
【００４７】
以下、添付された図面を参照して本発明の望ましい実施形態について詳細に説明する。以下で、たとえフラッシュメモリを実施形態として説明しているとしても、これを不揮発性データ保存装置に全般的に適用可能であるというのは、前述した通りである。
【００４８】
図３は、本発明の一実施形態による不揮発性データ保存装置の静的データ領域の検出方法を示すフローチャートである。図３を参照するに、まずデータユニットにエイジ値を保存する（３１０）。このとき、データユニットは、フラッシュメモリのデータブロックとなりうる。
【００４９】
エイジ値は、記録時間を表すパラメータであって、全てのデータブロックに対して消去（削除）後データが記録される時に一つずつ保存される。すなわち、ブロックの第１ページにデータが記録されるとき、該当第１ページの余裕空間にエイジ値を記録しうる。ブロック内のそれぞれのページは、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）情報を記録するための１６Ｂｙｔｅまたは６４Ｂｙｔｅの余裕空間を有している。ここで使われるエイジ値は、整数ほどの大きさであれば、十分であるので、前記余裕空間を十分に余裕に使用しうる。ここで、記録時間を表すエイジ値は、絶対的な時間ではなく、データブロック間の相対的な時間を表す。エイジ値は、フラッシュメモリのような不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録されるが、データが保存される当時のエイジカウンタ値がエイジ値と記録される。一方、前記エイジカウンタは、フリーブロックのようなデータが記録されていないフリーユニットが割当てられる度に値が変更されるが、もし、エイジカウンタの値が順次に１ずつ増加すれば、例えば、２０のエイジ値を有するブロックと２１のエイジ値を有するブロックとは、相対的に前者が先に記録（ライト）されたという事実を意味する。このように、エイジ値は、データブロック間の相対的な記録順序の前／後を知らせる値である。重要なものは、前述したように、エイジ値の保存される時点が、ブロックが消去された後にデータが記録される時であるので、エイジ値が相対的に小さいという意味は、以前に消去されたという意味である。それと共に、フリーブロックが割当てられる時は、常にマッピングテーブルが更新されるので、前記エイジカウンタの値は、このとき、マッピングテーブルの更新と共にテーブル内の該当ページの余裕空間に記録される。したがって、エイジ及びエイジカウンタの運用による追加的なオーバーヘッドはなく、電源遮断の如何と関係なく、保存装置は、エイジという記録時間情報を常に保有しうる。
【００５０】
次いで、データブロックに保存されたエイジ値を判読する（３２０）。保存されたエイジ値を判読する作業は、システムの遊休時間を活用し、これは、データが割当てられた全てのブロックに対して順次に行われる。
【００５１】
最後に、判読されたエイジ値を通じて静的データ領域を判断する（３３０）。これについては、以下図４で詳細に説明する。
【００５２】
図４は、前記図３のステップ３３０をさらに具体的に示すフローチャートである。
【００５３】
静的データ領域を判断するために、まず判読されたエイジ値と現在エイジカウンタの値とを比較する（４１０）。エイジ値は、前述したように、該当ブロックにデータが記録された時間を代表する値であるので、これを現在エイジカウンタの値と比較するものである。それは、エイジカウンタ値は、フリーブロックが割当てられる度に増加された値に変更されるので、前記エイジカウンタ値と該当ブロックのエイジ値とを比較すれば、相対的な記録時間を計れるためである。
【００５４】
したがって、現在エイジカウンタの値から前記判読されたエイジ値を除算した結果値が所定の臨界値より大きい場合には（４２０）、それほど該当ブロックが使われたのが古くなり、その間に更新が起こらなかったということを意味する。ここで、臨界値は、システム設計者がメモリ保存装置の目的によって任意に定めることができ、実験的に最も最適化された性能を導出する値と定めることもできる。
【００５５】
したがって、前述した現在エイジカウンタの値から前記判読されたエイジ値を除算した結果値が所定の臨界値より大きい場合には、該当エイジ値を有するブロックを静的データ領域と判断しうる（４３０）。
【００５６】
図５は、本発明の一実施形態によるデータユニット別エイジ値とエイジカウンタ値とを示す図である。図５を参照して、図面で例示されるエイジ値とエイジカウンタの値との関係を説明する。まず、不揮発性データ保存装置であるフラッシュメモリ５１０があり、消去単位である物理的データブロックが０番〜２番まで現れている（５１１ないし５１３）。代表的に０番ブロックを参照するに、第１ページは、データ領域５１１ａと余裕空間５１１ｂとで形成されている。前述したように、余裕空間５１１ｂに０番ブロックのエイジ値５２０が保存されており、その値は、１２である。他のブロックを見れば、１番ブロック５１２のエイジ値５２０が５であり、２番ブロック５１３のエイジ値５２０が２１である。一方、現在エイジカウンタ値５３０は、３０であるので、最小のエイジ値５２０を有する１番ブロック５１２と比較するとき、１番ブロック５１２が割当てられた後に３０−５＝２５個のフリーブロックがさらに割当てられたという事実が分かる。その間、１番ブロックは、消去されたことがないので、図５では、相対的に静的データ領域と判断しうる。
【００５７】
図６は、本発明の他の実施形態による不揮発性データ保存装置の磨耗度平準化方法を示すフローチャートであり、図７及び図８は、前記図６のステップ６４０の実施形態を具体的に示すフローチャートである。
【００５８】
動作過程を参照するに、まずデータを記録するために割当てられるユニット（データブロック）に記録時間を表すエイジ値を保存し（６１０）、保存されたエイジ値を判読した後（６２０）、判読されたエイジ値を通じて静的データ領域を検出する（６３０）のは、前述した通りである。
【００５９】
次いで、前記検出された静的データ領域のデータを他のブロックに移動するが（６４０）、これは、例示的に２つに分けうる。
【００６０】
第一には、静的データをフリーブロックに移動することである（７１０）。静的データ領域として検出されたブロックは、長時間更新または削除がなされないブロックであるので、このような静的データをフリーブロックに移動させ、以前に静的データを有していたブロックを新たなフリーブロックと指定すれば、次の更新時に新たに割当てられるフリーブロックとして使われて、消去作業と書き込み作業とがさらに頻繁に発生する。一方、以前にフリーブロックであった、静的データが移動したブロックは、前述した方式のように、第１ページの余裕空間に新たなエイジ値（現在エイジカウンタの値）が更新されて保存されるので（７２０）、以後に再び静的データとして検出される前には、前述したように強制移動されないであろう（もちろん、静的データ領域として残り続ける場合には、次回にもフリーブロックに移動される。）。
【００６１】
第二には、静的データ領域のデータが記録されたブロックを、他のデータが記録されているブロックと交換することである。このために、まず前記静的データの記録されたブロックが有するエイジ値より相対的に高いエイジ値を有するブロックを検出し（８１０）、検出されたブロックと前記静的データを有するブロックとを交換する（８２０）。次いで、交換されたデータが記録されたブロックのエイジをそれぞれ更新する（８３０）。静的データを有するブロックと判断されて検出された該当ブロックを相対的に高いエイジ値を有する他のブロックと交換する理由は、相対的に高いエイジ値を有するブロックは、最近に更新作業が起きたという意味を有するためである。このような場合は、再び更新が起きる確率が高いという意味を内包するので、このような交換によって磨耗度平準化が可能になる。それは、頻繁な更新は、廃領域収集作業をもたらし、これにより、フリーブロックに指定されて再び消去と書き込みとが反復されるためである。
【００６２】
静的データ領域を検出し、検出された静的データを移動または交換する作業は、システムの遊休時間に行われ、前記方法は、システムの目的によって設計者が選択して適用しうる。
【００６３】
図９は、本発明のさらに他の実施形態による不揮発性データ保存装置のデータユニット併合方法を示すフローチャートである。
【００６４】
フラッシュメモリ保存装置で一つの論理的ブロックは、頻繁な更新作業によって多数の物理的データブロックに分散されて保存される。このとき、更新によって使われない領域（無効ページ）を収集してフリーブロックを生成する方法として一般的に併合演算が使われる。すなわち、併合演算は、多数のブロックに分散保存されたデータを一つのブロックに収集し、既存のブロックは、フリーブロックとして収集して再使用する方法を提供する。
【００６５】
図９を参照するに、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップ（９１０）と、保存されたエイジ値を判読するステップ（９２０）と、判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップ（９３０）と、前記検出された複数の前記ユニットを併合するステップ（９４０）とを含む。
【００６６】
すなわち、併合演算を行う対象ブロックの検出において、静的データの保存されたブロックが選択されるようにするのに特徴がある。それにより、併合演算を通じて静的データ領域のブロックをフリーブロックとして収集し、次の更新作業時に該当ブロックに消去及び書き込み作業を起こらして磨耗度平準化を図りうる。
【００６７】
図１０は、本発明のさらに他の実施形態によるデータユニット併合過程を示す図である。
【００６８】
ファイルシステムで認識する論理的単位ユニット（４個のブロック）が例示的に現れている（１０１０ないし１０４０）。各ブロックは、４個のページを有すると仮定する。第１ブロック１０１０は、４個のページが全部無効ページであり、第２ブロック１０２０と第３ブロック１０３０とは、１個のページのみが有効ページであり、第４ブロックは、２個の有効ページと２個の無効ページとを有している。既に論理的単位ユニットが何れも使われてクリーンページがないので、次回の更新時には、これらの４個のブロックに対して併合演算がまず起きる。したがって、前述した４個の有効ページを何れも一つのフリーユニット１０５０に収集し、図面のように、１個の有効ブロック１０６０と４個のフリーブロック１０７０ないし１１００とを生成する。
【００６９】
図１１及び図１２は、前記図９のステップ９２０及びステップ９３０の実施形態を具体的に示すフローチャートである。
【００７０】
前述した図１０のような併合演算は、静的データ領域を利用して２つの方法で行われる。
【００７１】
第１の方法は、論理的単位ユニットに対する多数のデータブロックのエイジ値の平均値を求め、最も小さい平均値を有するブロックを併合対象と選定することである。他の論理的単位ユニットと比較して、エイジ値の平均値が相対的に小さいという意味は、それほど静的データとしての論理的データという意味であるので、これらの静的データを併合演算の対象と選定してフリーブロックを収集することが本発明の磨耗度平準化の目的に符合するためである。したがって、システムが認識する論理的単位ユニットに対するデータユニットのエイジ値の平均値を計算し（１１１０）、これを通じて計算された平均値が最も小さいデータユニットを併合演算を行うユニットとして検出する（１１２０）。
【００７２】
第２の方法は、さらに高速に大量記録（ライト）できるようにコスト及び利得を考慮した方法である。概略的には、システムの論理的単位ユニットに対するデータユニットのエイジ値の平均値を計算し（１２１０）、優先順位を考慮して（１２２０）、優先順位を基準に併合対象ブロックを検出する（１２３０）。
【００７３】
併合演算の目的のうち一つは、多数のフリーブロックを収集することである。したがって、静的データ領域のブロックを併合して磨耗度平準化を図ると共に、さらに低いコストで多くの利得が得られる併合演算を行う必要がある。ここで、コストは、併合演算によって移動せねばならないデータ量であり、利得は、併合演算の結果、フリーブロックに収集される更新前データ、すなわち、無効データ（ｄｉｒｔｙ  ｄａｔａまたはｉｎｖａｌｉｄ  ｄａｔａ）である。それと共に、前述したように、エイジ値の平均が低いほど併合対象として適切であるので、これは、コストと見なせる。このように、コストに反比例し、利得に比例するように、適切な定数値Ｃ１,Ｃ２,Ｃ３を選択して優先順位を下記式（１）のように計算しうる。
【００７４】
優先順位＝移動するデータ＊Ｃ１／（収集される無効データ＊Ｃ２＊エイジ値の平均値＊Ｃ３）      （１）
したがって、優先順位が高いほど、コストよりは利得の比率が高いブロックであるので、これを併合演算の対象ブロックと選定する。前記Ｃ１ないしＣ３は、システムの目的によって、設計者が任意に選択でき、実験によって最高性能を表す値と定めることもある。
【００７５】
図１３は、本発明のさらに他の実施形態による不揮発性データ保存装置についての静的データ領域検出装置を示す機能ブロック図である。
【００７６】
各機能ブロック別動作特性を参照するに、不揮発性データ保存装置についての静的データ領域検出装置１３００は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部１３１０と、データユニットに保存されたエイジ値を判読するエイジ判読部１３２０と、判読されたエイジ値を通じて静的データ領域を判断する静的データ判断部１３３０と、を備える。
【００７７】
図１４は、本発明のさらに他の実施形態による不揮発性データ保存装置についての磨耗度平準化装置を示す機能ブロック図である。図１４を参照するに、不揮発性データ保存装置についての磨耗度平準化装置１４００は、データユニットに記録時間を表すエイジ値を保存させるエイジ記録部１４１０と、保存されたエイジ値を判読するエイジ判読部１４２０と、判読されたエイジ値を通じて静的データ領域を検出する静的データ検出部１４３０と、検出された静的データ領域のデータを他のユニットに移動するデータユニット変換部１４４０とを備える。
【００７８】
図１５は、本発明のさらに他の実施形態による不揮発性データ保存装置についてのデータユニット併合装置を示す機能ブロック図である。図１５を参照するに、不揮発性データ保存装置についてのデータユニット併合装置１５００は、データユニットに記録時間を表すエイジ値を保存させるエイジ記録部１５１０と、保存されたエイジ値を判読するエイジ判読部１５２０と、判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出する併合対象探索部１５３０と、検出された複数の前記ユニットを併合する併合部１５４０と、を備えるもので構成される。
【００７９】
本発明による静的データ領域の検出方法、磨耗度平準化方法またはデータユニット併合方法は、またコンピュータで読み取り可能な記録媒体にコンピュータ可読コードとして具現できる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取られるデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）、磁気テープ、フロッピー（登録商標）ディスクのようなマグネチック保存媒体とＣＤ−ＲＯＭ、光データ保存装置のような光学的判読媒体があり、またキャリアウェーブ（例えば、インターネットを通じた伝送）の形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でコンピュータ可読コードが保存され、かつ実行される。
【００８０】
以上、本発明についてその望ましい実施形態を中心に説明した。当業者は、本発明の本質的な特性から逸脱しない範囲で変形された形態で具現できるということが分かるであろう。したがって、開示された実施形態は、限定的な観点でなく、説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明でなく、特許請求の範囲に現れており、それと同等な範囲内にある全ての差異点は、本発明に含まれていると解釈されねばならない。
【産業上の利用可能性】
【００８１】
本発明は、半導体メモリ関連の技術分野に適用可能である。
【図面の簡単な説明】
【００８２】
【図１】従来の技術によるカウンティングランタイム方法によるフラッシュメモリのブロック当たり消去回数を示す図である。
【図２】従来の技術によるフラッシュメモリ内の静的領域の磨耗度平準化方法を説明するためのフローチャートである。
【図３】本発明の一実施形態による不揮発性データ保存装置の静的データ領域の検出方法を示すフローチャートである。
【図４】前記図３のステップ３３０をさらに具体的に示すフローチャートである。
【図５】本発明の一実施形態によるデータユニット別エイジ値とエイジカウンタ値とを示す図である。
【図６】本発明の他の実施形態による不揮発性データ保存装置の磨耗度平準化方法を示すフローチャートである。
【図７】前記図６のステップ６４０の一例を具体的に示すフローチャートである。
【図８】前記図６のステップ６４０の他の例を具体的に示すフローチャートである。
【図９】本発明のさらに他の実施形態による不揮発性データ保存装置のデータユニット併合方法を示すフローチャートである。
【図１０】本発明のさらに他の実施形態によるデータユニット併合過程を示す図である。
【図１１】前記図９のステップ９２０及びステップ９３０の一例を具体的に示すフローチャートである。
【図１２】前記図９のステップ９２０及びステップ９３０の他の例を具体的に示すフローチャートである。
【図１３】本発明のさらに他の実施形態による不揮発性データ保存装置に対する静的データ領域検出装置を示す機能ブロック図である。
【図１４】本発明のさらに他の実施形態による不揮発性データ保存装置に対する磨耗度平準化装置を示す機能ブロック図である。
【図１５】本発明のさらに他の実施形態による不揮発性データ保存装置に対するデータユニット併合装置を示す機能ブロック図である。
【符号の説明】
【００８３】
１３００  静的データ領域検出装置
１３１０,１４１０,１５１０  エイジ記録部
１３２０,１４２０,１５２０  エイジ判読部
１３３０  静的データ判断部
１４００  磨耗度平準化装置
１４３０  静的データ検出部
１４４０  データユニット変換部
１５００  データユニット併合装置
１５３０  併合対象探索部
１５４０  併合部
【図２】
2008152909.tif 000003
【図３】
2008152909.tif 000004
【図４】
2008152909.tif 000005
【図５】
2008152909.tif 000006
【図６】
2008152909.tif 000007
【図７】
2008152909.tif 000008
【図８】
2008152909.tif 000009
【図９】
2008152909.tif 000010
【図１０】
2008152909.tif 000011
【図１１】
2008152909.tif 000012
【図１２】
2008152909.tif 000013
【図１３】
2008152909.tif 000014
【図１４】
2008152909.tif 000015
【図１５】
2008152909.tif 000016
【図１】
2008152909.tif 000017