(57)【要約】  本発明は、フラッシュメモリに最適化された入出力制御方法および装置に関するものであって、より詳細にはフラッシュメモリの性能を向上させることができるフラッシュメモリに最適化された入出力制御方法および装置に関するものである。  本発明の実施形態によるフラッシュメモリに最適化された入出力制御方法は、フラッシュメモリにデータのランダムな記録演算が発生するかを判断する段階、および前記ランダムな記録演算が発生すると判断されると、ランダムに入力されるデータを前記フラッシュメモリの既設定された余分の領域に順次に記録する段階を含む。
2010535379.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリにデータのランダムな記録演算が発生するかを判断する段階、および
前記ランダムな記録演算が発生すると判断されると、ランダムに入力されるデータを前記フラッシュメモリの既設定された余分の領域に順次に記録する段階を含む、フラッシュメモリに最適化された入出力制御方法。
【請求項２】
前記ランダムな記録演算が発生するかを判断する段階は、
以前に記録演算が要請された論理セクタと現在記録演算が要請された論理セクタとの間に空のセクタが存在すればランダムな記録演算が発生したものと判断し、空のセクタが存在しなければ順次の記録演算が発生したものと判断する段階を含む、請求項１に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項３】
前記フラッシュメモリは、ボリューム領域を示す第１領域、前記既設定された余分の領域を示す第２領域およびメタデータを保存する第３領域に論理的に割当てられる、請求項２に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項４】
前記順次の記録演算が発生すると判断されると、前記フラッシュメモリの第１領域にデータを順次に記録する段階をさらに含む、請求項３に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項５】
前記既設定された余分の領域は、複数のセグメントで構成され、前記各セグメントのサイズは前記フラッシュメモリの物理的演算単位と、フラッシュ変換階層のスーパーブロック（ＳｕｐｅｒＢｌｏｃｋ）単位と、前記単位らの倍数のうち何れか一つで構成される、請求項１に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項６】
前記ランダムに入力されるデータを順次に記録する段階は、
前記セグメント内に順次に記録する段階を含む、請求項５に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項７】
前記各セグメントは、保存されたデータのうち有効なデータが０％であるクリーン（ｃｌｅａｎ）状態、有効なデータがｘ％（ｘは正数）であるダーティー（ｄｉｒｔｙ）状態が存在し、
前記クリーン状態のセグメントのリスト、前記ダーティー状態のセグメントのリストを保存および管理する段階をさらに含む、請求項５に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項８】
前記ランダムな記録演算が発生すると判断されると、前記クリーン状態のセグメントのリストが存在するかを確認する段階、および
前記確認結果、前記クリーン状態のセグメントのリストが存在すれば、前記少なくとも一つのクリーン状態のセグメント内に順次にデータを記録する段階をさらに含む、請求項７に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項９】
前記確認結果、前記クリーン状態のセグメントのリストが存在しなければ、前記少なくとも一つのダーティー状態のセグメントをフラッシュリスト（ｆｌｕｓｈ  ｌｉｓｔ）として保存する段階、および
前記フラッシュリストを参照して前記ダーティー状態のセグメントをクリーン状態のセグメントに転換する段階をさらに含む、請求項８に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１０】
前記クリーン状態のセグメントに転換する段階は、
前記既設定された余分の領域に記録された有効なデータを前記既設定された余分の領域と論理的に区分されたボリューム領域に記録する段階を含む、請求項９に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１１】
前記クリーン状態のセグメントに転換する間に前記ランダムな記録演算が発生すると、前記ランダムに入力されるデータを前記ボリューム領域にランダムに記録する段階をさらに含む、請求項１０に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１２】
前記メタデータは、論理アドレスと実際データが記録された物理アドレスとの間のマッピング情報、データが実際記録された第２領域の物理アドレスとデータが本来記録されるべき第１領域の物理アドレスとの間のマッピング情報を含む、請求項３に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１３】
前記マッピング情報は、ツリー方式で管理され、リアルタイムに更新される、請求項１２に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１４】
前記フラッシュメモリにデータの判読演算が発生する場合、前記第１領域と前記第２領域のうち少なくとも一つで該当データを判読する段階をさらに含む、請求項４に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１５】
前記ランダムな記録演算に対するデータが既設定された重要データであるかを判断する段階と、
前記既設定された重要データである場合、前記第１領域に記録する段階をさらに含む、請求項３に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１６】
前記既設定された重要データは、システムが非正常に終了するかまたはシステムに故障が発生した場合、ファイルシステムを復旧することに使用され得る情報を含む、請求項１５に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１７】
前記既設定された余分の領域が空いていなければ、前記既設定された余分の領域のうち少なくとも一部をクリーン（ｃｌｅａｎ）な状態する段階をさらに含む、請求項１に記載のフラッシュメモリに最適化された入出力制御方法。
【請求項１８】
データを保存するためのフラッシュメモリ、および
前記フラッシュメモリにデータのランダムな記録演算が発生するかを判断し、前記ランダムな記録演算が発生すると判断されると、ランダムに入力されるデータを前記フラッシュメモリの既設定された余分の領域に順次に記録する記録演算制御部を含む、フラッシュメモリに最適化された入出力制御装置。
【請求項１９】
前記記録演算制御部は、以前に記録演算が要請された論理セクタと現在記録演算が要請された論理セクタとの間に空のセクタが存在すれば、ランダムな記録演算が発生したものと判断し、空のセクタが存在しなければ順次の記録演算が発生したものと判断する、請求項１８に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２０】
前記フラッシュメモリは、ボリューム領域を示す第１領域、前記既設定された余分の領域を示す第２領域およびメタデータを保存する第３領域に論理的に割当てられる、請求項１９に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２１】
前記記録演算制御部は、前記順次の記録演算が発生すると判断されると、前記フラッシュメモリの第１領域にデータを順次に記録する、請求項２０に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２２】
前記既設定された余分の領域は、複数のセグメントで構成され、前記各セグメントのサイズは前記フラッシュメモリの物理的演算単位と、フラッシュ変換階層のスーパーブロック（ＳｕｐｅｒＢｌｏｃｋ）単位と、前記単位の倍数のうち何れか一つで構成される、請求項１８に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２３】
前記記録演算制御部は、前記ランダムに入力されるデータを前記セグメント内に順次に記録する、請求項２２に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２４】
前記各セグメントは、保存されたデータのうち有効なデータが０％であるクリーン（ｃｌｅａｎ）状態、有効なデータがｘ％（ｘは正数）であるダーティー（ｄｉｒｔｙ）状態が存在し、
前記記録演算制御部は、前記クリーン状態のセグメントのリスト、前記ダーティー状態のセグメントのリストを保存および管理する、請求項２２に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２５】
前記記録演算制御部は、前記ランダムな記録演算が発生すると判断されると、前記クリーン状態のセグメントのリストが存在するかを確認し、前記確認結果、前記クリーン状態のセグメントのリストが存在すれば、前記少なくとも一つのクリーン状態のセグメント内に順次にデータを記録する、請求項２４に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２６】
前記記録演算制御部は、前記確認結果、前記クリーン状態のセグメントのリストが存在しなければ、前記少なくとも一つのダーティー状態のセグメントをフラッシュリスト（ｆｌｕｓｈ  ｌｉｓｔ）として保存し、前記フラッシュリストを参照して前記ダーティー状態のセグメントをクリーン状態のセグメントに転換する、請求項２５に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２７】
前記記録演算制御部は、前記クリーン状態のセグメントに転換時、前記既設定された余分の領域に記録された有効なデータを前記既設定された余分の領域と論理的に区分されたボリューム領域に記録する、請求項２６に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２８】
前記記録演算制御部は、前記クリーン状態のセグメントに転換する間に前記ランダムな記録演算が発生すると、前記ランダムに入力されるデータを前記ボリューム領域にランダムに記録する、請求項２７に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項２９】
前記メタデータは、論理アドレスと実際データが記録された物理アドレスとの間のマッピング情報、データが実際記録された第２領域の物理アドレスとデータが本来記録されるべき第１領域の物理アドレスとの間のマッピング情報を含む、請求項２０に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項３０】
前記マッピング情報は、ツリー方式で管理され、リアルタイムに更新される、請求項２９に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項３１】
前記フラッシュメモリにデータの判読演算が発生する場合、前記第１領域と前記第２領域のうち少なくとも一つで該当データを判読する判読演算制御部をさらに含む、請求項２１に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項３２】
前記記録演算制御部は、前記ランダムな記録演算に対するデータが既設定された重要データであるかを判断し、前記既設定された重要データである場合、前記第１領域に記録する、請求項２０に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項３３】
前記既設定された重要データは、システムが非正常に終了するか、またはシステムに故障が発生した場合、ファイルシステムを復旧することに使用され得る情報を含む、請求項３２に記載のフラッシュメモリに最適化された入出力制御装置。
【請求項３４】
前記記録演算制御部は、前記既設定された余分の領域が空いていなければ、前記既設定された余分の領域のうち少なくとも一部をクリーン（ｃｌｅａｎ）な状態にする、請求項１８に記載のフラッシュメモリに最適化された入出力制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリに関するものであって、より詳細にはフラッシュメモリの性能を向上させることができるフラッシュメモリに最適化された入出力制御方法および装置に関するものである。
【背景技術】
【０００２】
一般的に、オペレーティングシステム（ＯＳ、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）は、オペレーティングシステムが設置されたシステム上に存在するデータを管理するためにファイルシステムを使用する。ここでファイルシステムとは、ファイルを管理するために最も先に構成されなければならない論理的な構造である。例えば、マイクロソフトＷｉｎｄｏｗｓ（登録商標）でのｆｏｒｍａｔ命令は、このようなファイルシステムを作り初期化する過程である。このようにファイルシステムが生成された後に、ユーザは始めてファイルを保存したり削除したりすることができる。
【０００３】
このようなファイルシステムは、オペレーティングシステムによってその種類が非常に多様である。Ｗｉｎｄｏｗｓ（登録商標）系のオペレーティングシステムでは、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）またはＮＴＦＳ（Ｎｅｗ  Ｔｅｃｈｎｏｌｏｇｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）というファイルシステムが、Ｕｎｉｘ（登録商標）／Ｌｉｎｕｘ系のオペレーティングシステムでは、ＵＦＳ（Ｕｎｉｘ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＥＸＴ２（Ｅｘｔｅｎｄｅｄ  ２）、ＥＸＴ３（Ｅｘｔｅｎｄｅｄ  ３）、ＪＦＳ（ｊｏｕｒｎａｌｅｄ  ｆｉｌｅ  ｓｙｓｔｅｍ）など多様なファイルシステムが存在する。
【０００４】
一方、フラッシュメモリは、電気的にデータの削除および記録（ｗｒｉｔｅ）が可能な不揮発性メモリであって、軽くて物理的な衝撃に強いながらも、電力消耗が少ないため、携帯電話、ＰＤＡ、デジタルカメラなどのような携帯用情報機器の保存媒体として多く使用されている。しかし、ＥＥＰＲＯＭの一種であるフラッシュメモリでデータを記録するためには削除演算を先行すべきであり、一般的に削除単位は記録単位より大きい。このような特性は補助記憶装置としてフラッシュメモリを使用する場合、一般ハードディスク用のファイルシステムをそのまま活用することを難しくする。
【０００５】
したがって、このような制約を解消してフラッシュメモリをハードディスクのようなブロックデバイスとして使用できるようにファイルシステムとフラッシュメモリとの間のミドルウェアであるフラッシュ変換階層（Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ）が提案されて使用されている。フラッシュ変換階層は、仮想のブロックデバイス上の論理的な位置とフラッシュメモリ上の物理的な位置との間のマッピング（ｍａｐｐｉｎｇ）情報を維持しながら、所定の論理的な位置に対して記録／判読演算が要請されれば、前記マッピング情報を利用して論理的な位置を物理的な位置に変換する役割を果たす。特に、論理的な位置に対してデータを変更する記録演算が要請される場合、論理的な位置に対応する物理的な位置を電気的に消去した後再び記録するかまたは論理的な位置を他の物理的な位置に再マッピングする役割を果たす。
【０００６】
しかし、従来のファイルシステムおよびＩ／Ｏスケジューラ（Ｉ／Ｏ  ｓｃｈｅｄｕｌｅｒ）などがフラッシュ変換階層の動作に最適化されておらず、ハードディスクに最適化されており、フラッシュ変換階層を利用するとしてもフラッシュメモリの性能低下が発生する。特に、フラッシュメモリにランダム記録演算が発生したとき、記録効率低下が表れる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、前記した問題点を改善するために案出されたものであって、フラッシュメモリの性能を向上させることができるフラッシュメモリに最適化された入出力制御方法および装置を提供することにその目的がある。
【０００８】
しかし、本発明の目的は、前記に言及された目的に制限されず、言及されていないまた他の目的は、次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明の実施形態によるフラッシュメモリに最適化された入出力制御方法は、フラッシュメモリにデータのランダムな記録演算が発生するかを判断する段階、および前記ランダムな記録演算が発生すると判断されると、ランダムに入力されるデータを前記フラッシュメモリの既設定された余分の領域に順次に記録する段階を含む。
【００１０】
前記目的を達成するために、本発明の実施形態によるフラッシュメモリに最適化された入出力制御装置は、データを保存するためのフラッシュメモリ、および前記フラッシュメモリにデータのランダムな記録演算が発生するかを判断し、前記ランダムな記録演算が発生すると判断されると、ランダムに入力されるデータを前記フラッシュメモリの既設定された余分の領域に順次に記録する記録演算制御部を含む。
【発明の効果】
【００１１】
前記したように本発明によるフラッシュメモリに最適化された入出力制御方法および装置によれば、フラッシュメモリの性能を向上させることができる効果がある。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態によるフラッシュメモリの制御装置の構成を示す図である。
【図２】本発明の実施形態によるフラッシュメモリの論理的な割当領域を示す図である。
【図３】本発明の実施形態による記録演算制御部の記録演算過程を示すフローチャートである。
【図４】各々本発明の実施形態による記録演算の実施形態を示す図である。
【図５】各々本発明の実施形態による記録演算の実施形態を示す図である。
【図６】各々本発明の実施形態による記録演算の実施形態を示す図である。
【図７】本発明の実施形態による判読演算制御部の判読演算過程を示すフローチャートである。
【図８】各々本発明の実施形態による判読演算の実施形態を示す図である。
【図９】各々本発明の実施形態による判読演算の実施形態を示す図である。
【図１０】各々本発明の実施形態による判読演算の実施形態を示す図である。
【発明を実施するための形態】
【００１３】
その他実施形態の具体的な内容は詳細な説明および図面に含まれており、本発明の利点、特徴、およびそれらを達成する方法は、添付される図面と共に詳細に後述されている実施形態を参照すれば明確になるであろう。
【００１４】
しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で具現されることができ、本実施形態は、単に本発明の開示が完全になるように、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は請求項の範囲によってのみ定義される。明細書全体にかけて、同一の参照符号は、同一の構成要素を指称する。
【００１５】
以下、添付されたブロック図または処理フローチャートに対する図面を参照して本発明の実施形態によるフラッシュメモリに最適化された入出力制御方法および装置について説明する。
【００１６】
このとき、フローチャートの各ブロックとフロ−チャートの組合わせはコンピュータプログラムインストラクションにより実行可能なのが理解できるであろう。
【００１７】
これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータまたはその他のプログラマブルデータプロセッシング装備のプロセッサーに搭載されうるので、コンピュータまたはその他のプログラマブルデータプロセッシング装備のプロセッサーを通じて実行されるそのインストラクションがフローチャートのブロックで説明された機能を行う手段を生成するように機構を作れる。
【００１８】
これらコンピュータプログラムインストラクションは特定方式で機能を具現するためにコンピュータまたはその他のプログラマブルデータプロセッシング装備を指向できるコンピュータ利用可能またはコンピュータ判読可能メモリに保存されることも可能なので、そのコンピュータ利用可能またはコンピュータ判読可能メモリに保存されたインストラクションはフローチャートのブロックで説明された機能を行うインストラクション手段を内包する製造品目を生産することも可能である。コンピュータプログラムインストラクションはコンピュータまたはその他のプログラマブルデータプロセッシング装備上に搭載することも可能であるため、コンピュータまたはその他のプログラマブルデータプロセッシング装備上で一連の動作段階が実行されてコンピュータで実行されるプロセスを生成し、コンピュータまたはその他のプログラマブルデータプロセッシング装備を行うインストラクションはフローチャートのブロックで説明された機能を実行するための段階を提供することも可能である。
【００１９】
また、各ブロックは特定された論理的機能を実行するための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示し得る。また、いくつかの代替実行形態ではブロックで言及された機能が順序から外れ発生することも可能なことに注目しなければならない。例えば、連続して図示されている２つのブロックは事実上、実質的に同時に実行されることも可能であり、またはそのブロックが該当する機能に応じて逆順で実行されることも可能である。
【００２０】
図１は、本発明の実施形態によるフラッシュメモリに最適化された入出力制御装置の構成を示す図である。
【００２１】
図示するように、本発明の実施形態によるフラッシュメモリに最適化された入出力制御装置は、フラッシュメモリ１０と、ファイルシステム１２と、記録（ｗｒｉｔｅ）演算制御部１４と、判読（ｒｅａｄ）演算制御部１６を含む。このようなフラッシュメモリに最適化された入出力制御装置は、コンピュータ、デジタルＴＶ、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、デジタルカメラ、ＭＰ３プレーヤなどに具現され得るが、これに限定されるものではない。
【００２２】
フラッシュメモリ１０は、不揮発性メモリであって、削除演算の基本単位であるブロックで構成されて、各ブロックは記録／判読演算の基本単位であるいくつかのセクタで成される。このようなフラッシュメモリ１０が適用された保存装置にはＵＳＢフラッシュドライブ（ＵＦＤ、ＵＳＢ  Ｆｌａｓｈ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）、ＭＭＣ（ｍｕｌｔｉ−ｍｅｄｉａ  ｃａｒｄ）などがある。
【００２３】
このようなフラッシュメモリ１０は、本実施形態において図２に示すように論理的に大きくボリューム（ｖｏｌｕｍｅ）領域２２、ログ（ｌｏｇ）領域２４、メタデータ領域２６に区分される。すなわち、本実施形態では既存のフラッシュメモリ１０に割当てられていたボリューム領域２０のサイズを調節し、これによって残る空間をログ領域２４とメタデータ領域２６で割当てて使用する。
【００２４】
ボリューム領域２２およびログ領域２４には記録／判読対象であるデータブロックが保存される。従来の場合、記録要請されたすべてのデータブロックは、ボリューム領域２０に保存されたが、ランダムに記録要請されたデータブロックの場合、ボリューム領域２０にランダムに記録すると性能低下が生じるため本発明ではログ領域２４に順次に記録する。このときの記録は後述するログ領域２４のセグメント内でのみ順次に記録されるものであっでも充分である。
【００２５】
ログ領域２４は、複数のセグメントで構成され、セグメントのサイズはフラッシュメモリ１０の物理的演算単位（例えば、既存フラッシュ変換階層のログブロックのサイズ）、フラッシュ変換階層のスーパーブロック（ＳｕｐｅｒＢｌｏｃｋ）単位、あるいはこのような単位の倍数個で構成してフラッシュメモリ１０の性能を極力発揮できるようにするのが好ましい。
【００２６】
それぞれのセグメントは、保存されたデータブロックのうち有効なデータブロックが０％であるクリーン（ｃｌｅａｎ）状態、有効なデータブロックがｘ％（ｘは正数）であるダーティー（ｄｉｒｔｙ）状態が存在し、クリーン状態のセグメントのリスト（以下、「クリーンリスト」と称する）、ダーティー状態のセグメントのリスト（以下、「ダーティーリスト」と称する）が保存されて管理される。また、ダーティーリストのうち少なくとも一つは、クリーンリストが存在しないとき、フラッシュリスト（ｆｌｕｓｈ  ｌｉｓｔ）として保存される。このようなフラッシュリストは後述するガーベージコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）で削除されるデータブロックリストとして活用される。もちろん、クリーンリストが存在しないとき、フラッシュリストが保存されることに限定されるものではなく、周期的にあるいは非周期的にフラッシュリストの更新が成されることもできる。
【００２７】
メタデータ領域２６は、メタデータが保存される領域であって、このようなメタデータはログ領域２４と関連したマッピング（ｍａｐｐｉｎｇ）情報を含み得る。ログ領域２４と関連したマッピング情報は、ログ領域２４にデータブロックが記録された場合に生成されるが、具体的にマッピング情報は論理アドレスと実際データブロックが記録されたログ領域２４の物理アドレスとの間のマッピング情報、実際データブロックが記録されたログ領域２４の物理アドレスと本発明が適用される前にデータブロックが本来記録されるべきボリューム領域２２の物理アドレスとの間のマッピング情報などを含み得る。
【００２８】
一方、基本的に、要請された論理アドレスがマッピング情報に存在しない場合には要請された論理アドレスに該当する物理アドレスが要請された論理アドレスと同一である。
【００２９】
ここで、マッピング情報はツリー（ｔｒｅｅ）方式で管理されることによってマッピング情報の挿入、削除および更新を容易にする。
【００３０】
一方、ボリューム領域２２、ログ領域２４、メタデータ領域２６は、論理的な分割を示すものであるため、物理的に互いに連続的に存在することもでき、非連続的に散在して存在することもできる。
【００３１】
ファイルシステム１２は、アプリケーション（ａｐｐｌｉｃａｔｉｏｎ）から記録／判読の要請を受けて、記録／判読の要請された論理セクタ番号（ＬＳＮ、Ｌｏｇｉｃａｌ  Ｓｅｃｔｏｒ  Ｎｕｍｂｅｒ）を記録演算制御部１４／判読演算制御部１６に伝達する。
【００３２】
記録演算制御部１４／判読演算制御部１６は、論理アドレスに対する記録／判読の要請を物理的アドレスに対する記録／判読の要請に変換する。すなわち、記録演算制御部１４／判読演算制御部１６は、論理セクタに対する要請をフラッシュメモリ１０上の物理的アドレスに変換して記録／判読の演算を実行する。
【００３３】
記録演算制御部１４／判読演算制御部１６の具体的な動作について各々図３および図７を参照して説明する。
【００３４】
図３は、本発明の実施形態による記録演算制御部１４の記録演算過程を示すフローチャートである。
【００３５】
図３に示すように、先にファイルシステム１２から所定の論理セクタ番号を有するデータブロックに対する記録演算が要請されると（Ｓ１０）、記録演算制御部１４は前記要請されたデータブロックが既設定された重要データブロックなのかを判断する（Ｓ１２）。ここで、既設定された重要データブロックはシステムが非正常的に終了したりシステムに故障が発生したりする場合、ファイルシステム１２を復旧するのに使用され得る情報を含み、一例としてファイルシステム１２のメタデータのうちジャーナル（ｊｏｕｒｎａｌ）を含み得る。
【００３６】
記録演算が要請されたデータブロックが既設定された重要データブロックであると判断されると、記録演算制御部１４は前記要請された論理セクタ番号に対応するボリューム領域２２の物理セクタ番号（＝要請された論理セクタ番号）にデータブロックを記録する。これに、フラッシュメモリ１０のボリューム領域２２にデータブロックが記録される（Ｓ１６）。
【００３７】
一方、記録演算が要請されたデータブロックが既設定された重要データブロックではないと判断されると、ランダムの可否に関わらずログ領域２４に順次に記録されるべきデータブロックなのかを判断する（Ｓ１３）。ここで、ランダムの可否に関わらずログ領域２４に順次に記録されるべきデータブロックはファイルシステムのメタデータのうち一部（既設定された重要データブロックと設定されたメタデータ（例えば、ジャーナル）は除く）であり得る。例えば、ＥＸＴ３の場合、メタデータはジャーナルと一般メタデータに大きく区分することができるが、一般メタデータの場合、ランダムの可否に関わらずログ領域２４に順次に記録するのが好ましい。データブロックをログ領域２４に順次に記録する具体的な方法は後述する。
【００３８】
一方、記録演算が要請されたデータブロックがランダムの可否に関わらずログ領域２４に順次に記録されるべきデータブロックではないと判断されると、記録演算制御部１４はデータブロックが順次に入力されるか、そうでなければランダムに入力されるかを確認する（Ｓ１４）。
【００３９】
具体的に、データブロックが順次に入力されるか、そうでなければランダムに入力されるかを判断する方法は次のとおりである。
【００４０】
先ず、記録演算が要請された論理セクタの番号が「（論理セクタの開始番号、論理セクタの個数）」のような情報を含むと仮定する。
【００４１】
例えば、以前に記録演算が要請された論理セクタ番号が（ｎ、ｍ）であり、現在記録演算が要請された論理セクタ番号が（ｎ＋ｍ、ｉ）である場合、記録演算制御部１４はデータブロックが順次に入力されるものと判断する。
【００４２】
すなわち、以前に記録演算が要請された論理セクタと現在記録演算が要請された論理セクタとの間に空のセクタが存在しなければ記録演算が要請されたデータブロックが順次に入力されるものであり、空のセクタが存在すれば記録演算が要請されたデータブロックがランダムに入力されるものである。
【００４３】
データブロックが順次に入力されるものと確認されると、記録演算制御部１４は要請された論理セクタに該当するボリューム領域２２内の物理セクタに前記データブロックを記録する（Ｓ１６）。この場合もやはり前述したように該当する物理セクタ番号が要請された論理セクタ番号と同一であるため、図４に示すようにフラッシュメモリ１０のボリューム領域２２に現在データブロックが以前記録要請されたデータブロックに次いで順次に記録される。
【００４４】
一方、記録演算が要請されたデータブロックがランダムに入力されるものと確認されると、記録演算制御部１４はログ領域２４に記録する空間が存在するかを判断する（Ｓ１８）。具体的に、記録演算制御部１４はクリーンリストが存在するかを確認する。クリーンリストが存在すれば、図５のようにクリーンリストのうち少なくとも一つのセグメント内に順次にデータブロックを記録する（Ｓ２０）。このために、記録演算制御部１４は記録演算要請された論理セクタ番号をクリーンセグメント内の物理セクタ番号に変換し、変換された物理セクタ番号にデータブロックを記録する。そして、メタデータ領域２６にあるマッピング情報を更新する。これに、ランダムに記録要請されたとしてもログ領域２４のセグメント内にデータブロックを順次に記録することによってフラッシュメモリ１０の性能を向上させることができる。
【００４５】
そして、仮にログ領域２４に記録する空間が存在しなければ、例えば、クリーンリストが存在しなければ、記録演算制御部１４はダーティーリストのうち少なくとも一つのダーティーセグメントをフラッシュリストとして保存する。そして、図６に示すように記録演算制御部１４はガーベージコレクションを実行し、ログ領域２４に記録する空間（例えば、クリーンセグメント）を生成する（Ｓ２２，Ｓ２４））。このとき、ログ領域２４内の有効なデータブロックがメタデータ領域２６のマッピング情報に基づいてボリューム領域２２の元の位置で記録され、これによるマッピング情報は再び更新される。そして、再び記録演算が要請されると、前記の過程を繰り返す。
【００４６】
ガーベージコレクションを実行する間にランダム記録演算が要請される場合には既存と同一にボリューム領域２２にランダムに記録され得るが、ガーベージコレクションが完了すると、再びランダムな記録演算が発生しなくなる。
【００４７】
図７は、本発明の実施形態による判読演算制御部１６の判読演算過程を示すフローチャートである。
【００４８】
図７に示すように、ファイルシステム１２から所定の論理セクタ番号を有するデータブロックに対する判読演算が要請されると（Ｓ４０）、判読演算制御部１６はメタデータ領域２６のメタデータを参照して該当データブロックがフラッシュメモリ１０に存在するかを判断する（Ｓ４２）。
【００４９】
該当データブロックがフラッシュメモリ１０に存在しなければエラーを生じさせ（Ｓ４４）、存在すれば要請された論理セクタ番号の該当物理セクタ番号がフラッシュメモリ１０のボリューム領域２２に存在するか、そうでなければログ領域２４に存在するかを判断する（Ｓ４６）。このために、判読演算制御部１６はフラッシュメモリ１０のメタデータ領域２６に存在するマッピング情報を参照し、前述したようにマッピング情報がツリー形態で管理されることによって判読演算制御部１６のマッピング情報に対するはやいアクセスが可能である。
【００５０】
一方、データブロックに対する判読演算は一つあるいは二つ以上の論理セクタ番号を有するデータブロックに対する判読演算であり得る。
【００５１】
判読演算制御部１６は、要請された論理セクタ番号の該当物理セクタ番号がフラッシュメモリ１０のボリューム領域２２にのみ存在するものと判断されると、図８のようにフラッシュメモリ１０のボリューム領域２２の該当物理セクタ番号からデータブロックを判読する（Ｓ４８）。
【００５２】
一方、判読演算制御部１６は、要請された論理セクタ番号の該当物理セクタ番号がフラッシュメモリ１０のログ領域２４にのみ存在するものと判断されると、図９のようにフラッシュメモリ１０のログ領域２４の該当物理セクタ番号からデータブロックを判読する（Ｓ５０）。
【００５３】
また、判読演算制御部１６は、要請された論理セクタ番号の該当物理セクタ番号がフラッシュメモリ１０のボリューム領域２２およびログ領域２４に同時に存在すると判断されると（この場合は二つ以上の論理セクタ番号を有するデータブロックに対する判読演算である）、図１０のようにフラッシュメモリ１０のボリューム領域２２およびログ領域２４の該当物理セクタ番号からデータブロックを判読する。
【００５４】
記録演算制御部１４および判読演算制御部１６は、各々一つあるいは二つ以上の階層で具現されることができ、記録演算制御部１４と判読演算部が統合された形態の階層で具現されることもできる。また、記録演算制御部１４および判読演算制御部１６はファイルシステム１２あるいはフラッシュメモリ１０内に具現されることもできる。
【００５５】
一方、本実施形態では記録演算制御部１４および判読演算制御部１６がファイルシステム１２から要請された記録／判読演算を実行するものと述べたが、これに限定されるものではなく、記録演算制御部１４および判読演算制御部１６は、ファイルシステム１２なしでフラッシュメモリ１０がＵＳＢコネクションを通じて、ＰＣでＵＭＳ（ＵＳＢ  Ｍａｓｓ  Ｓｔｏｒａｇｅ）形態で認識される場合にも記録／判読演算を実行できるため多様な使用環境でフラッシュメモリ１０に適するようにＩ／Ｏパターンを最適化することができる。
【００５６】
一方、前述した実施形態では「データブロック」という表現を使用したが、データがブロック単位で記録／判読要請されることだけを限定するものではなく、一つの例示に過ぎないことを理解することができる。
【００５７】
このように、本発明は、フラッシュメモリにランダム記録発生時フラッシュメモリのログ領域に順次にデータを記録するようにすることによってランダム記録による性能を向上させることができる。
【００５８】
以上、例示された図面を参照して本発明によるフラッシュメモリの制御方法および装置について説明したが、本発明は、本明細書に開示された実施形態と図面によって限定されず、その発明の技術思想の範囲内で当業者によって多様な変形が成され得るはもちろんである。
【符号の説明】
【００５９】
１０    フラッシュメモリ
１２    ファイルシステム
１４    記録演算制御部
１６    判読演算制御部
【図１】
2010535379.tif 000003
【図２】
2010535379.tif 000004
【図３】
2010535379.tif 000005
【図４】
2010535379.tif 000006
【図５】
2010535379.tif 000007
【図６】
2010535379.tif 000008
【図７】
2010535379.tif 000009
【図８】
2010535379.tif 000010
【図９】
2010535379.tif 000011
【図１０】
2010535379.tif 000012
【国際調査報告】
2010535379.tif 000013
2010535379.tif 000014