(57)【特許請求の範囲】
【請求項１】
プログラムされた命令を有するプロセッサを備える装置であって、前記命令は、
混合削除特性を有するデータを中間記憶装置内の第１の物理消去ブロック（ＰＥＢ）の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第１の削除特性を有する第１のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記ログを使用して、前記第１の削除特性を有する前記第１のデータを識別することと、
前記第１の削除特性を有する前記第１のデータを、メインメモリ内の第２のＰＥＢに排出することと、を行い、
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
異なる削除特性を識別する複数のログ識別子（ＩＤ）を維持することと、
前記複数のログＩＤの中から第１のログＩＤを選択することであって、前記第１のログＩＤが、前記第１のデータに対応する前記第１の削除特性を識別する、選択することと、
前記第２のＰＥＢが開放されており、かつ、前記第１の削除特性を有する任意のデータに割り当てられていることを判定することと、
前記第１のデータを前記第２のＰＥＢに書き込むことと、を行い、
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
最も古い有効なメタデータエントリからスタートして、前記複数のメタデータエントリのウィンドウをスキャンすることと、
前記第１のログＩＤが前記複数のメタデータエントリの前記ウィンドウ内の最大数のメタデータエントリに対応することに応答して、前記第１のログＩＤを選択することと、を行う、装置。
【請求項２】
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、前記最も古い有効なメタデータエントリに対応するデータを排出することに応答して、前記ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、前記ウィンドウをシフトさせる、請求項１に記載の装置。
【請求項３】
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記第１のログＩＤに対応するいくつかのデータが排出されたことを判定することと、
前記第２のＰＥＢが閉じられていることを判定することと、
開放されている、メインメモリ内の第３のＰＥＢを識別することと、
第２のログＩＤを選択することであって、前記第２のログＩＤは、第２のデータに対応し、かつ前記複数のメタデータエントリの前記ウィンドウ内の更新された最大数のメタデータエントリに対応する第２の削除特性を識別する、選択することと、
前記第２のデータを前記第３のＰＥＢに書き込むことと、を行う、請求項１に記載の装置。
【請求項４】
プログラムされた命令を有するプロセッサを備える装置であって、前記命令は、
混合削除特性を有するデータを中間記憶装置内の第１の物理消去ブロック（ＰＥＢ）の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第１の削除特性を有する第１のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記ログを使用して、前記第１の削除特性を有する前記第１のデータを識別することと、
前記第１の削除特性を有する前記第１のデータを、メインメモリ内の第２のＰＥＢに排出することと、を行い、
前記ログが、フラッシュメモリ内の第１のログ及びランダムアクセスメモリ（ＲＡＭ）内の第２のログを含み、前記複数のメタデータエントリが、前記フラッシュメモリ内の複数の第１のメタデータエントリ及び前記ＲＡＭ内の複数の第２のメタデータエントリを含み、前記メタデータが、第１のメタデータ及び第２のメタデータを含み、前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記メタデータを前記第１のメタデータエントリに書き込むことと、
前記第１のメタデータを前記第２のメタデータエントリに書き込むことと、を行う、装置。
【請求項５】
混合削除特性を有する前記データが、前記第１のメタデータに対応する第２のデータを含み、前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記第１のメタデータに対応する前記第２のデータを排出することと、
前記第２のメタデータを前記第２のメタデータエントリに書き込むことと、を行う、請求項４に記載の装置。
【請求項６】
プログラムされた命令を有するプロセッサを備える装置であって、前記命令は、
混合削除特性を有するデータを中間記憶装置内の第１の物理消去ブロック（ＰＥＢ）の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第１の削除特性を有する第１のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記ログを使用して、前記第１の削除特性を有する前記第１のデータを識別することと、
前記第１の削除特性を有する前記第１のデータを、メインメモリ内の第２のＰＥＢに排出することと、を行い、
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記第１のＰＥＢの前記複数のデータエントリの第１の部分が前記メインメモリに排出されていることを判定することと、
前記第１のＰＥＢを消去することと、を行い、
前記プロセッサが、書き込みＩ／Ｏタイプ識別子を含む複数の入力／出力（Ｉ／Ｏ）タイプ識別子を維持する更なるプログラムされた命令を有し、前記第１のＰＥＢの前記複数のデータエントリの前記第１の部分が前記書き込みＩ／Ｏタイプ識別子に対応する、装置。
【請求項７】
システムであって、
ホストログ履歴（ＨＬＨ）ログと、
前記ＨＬＨログに結合されたコントローラであって、
混合削除特性を有するデータを中間記憶装置内の第１の物理消去ブロック（ＰＥＢ）の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第１の削除特性を有する第１のデータを含む、書き込むことと、
メタデータを前記ＨＬＨログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記ＨＬＨログを使用して、前記第１の削除特性を有する前記第１のデータを識別することと、
前記第１の削除特性を有する前記第１のデータを、メインメモリ内の第２のＰＥＢに排出することと、を行う、コントローラと、を備え、
前記コントローラが、
異なる削除特性を識別する複数のログ識別子（ＩＤ）を維持することと、
前記複数のログＩＤの中から第１のログＩＤを選択することであって、前記第１のログＩＤが、前記第１のデータに対応する前記第１の削除特性を識別する、選択することと、
前記第２のＰＥＢが開放されており、かつ、前記第１の削除特性を有する任意のデータに割り当てられていることを判定することと、
前記第１のデータを前記第２のＰＥＢに書き込むことと、を行い、
前記コントローラが、
最も古い有効なメタデータエントリからスタートして、前記複数のメタデータエントリのウィンドウをスキャンすることと、
前記第１のログＩＤが前記複数のメタデータエントリの前記ウィンドウ内の最大数のメタデータエントリに対応することに応答して、前記第１のログＩＤを選択することと、を行う、システム。
【請求項８】
前記コントローラが、前記最も古い有効なメタデータエントリに対応するデータを排出することに応答して、前記ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、前記ウィンドウをシフトさせる、請求項７に記載のシステム。
【請求項９】
前記コントローラが、
前記第１のログＩＤに対応する全てのデータが排出されたことを判定することと、
第２のログＩＤを選択することであって、前記第２のログＩＤは、第２のデータに対応する第２の削除特性を識別する、選択することと、
前記第２のデータを前記第２のＰＥＢに書き込むことと、を行う、請求項７に記載のシステム。
【請求項１０】
方法であって、
混合削除特性を有するデータを中間記憶装置内の第１の物理的消去ブロック（ＰＥＢ）の複数のデータエントリに、コントローラによって連続的に書き込むことであって、前記混合削除特性を有する前記データは、第１の削除特性を有する第１のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に、前記コントローラによって維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記コントローラによって、かつ、前記ログを使用して、前記第１の削除特性を有する前記第１のデータを識別することと、
前記第１の削除特性を有する前記第１のデータをメインメモリ内の第２のＰＥＢに、前記コントローラによって排出することと、を含み、
メタデータを前記コントローラによって維持することが、異なる削除特性を識別する複数のログ識別子（ＩＤ）を、前記コントローラによって維持することを含み、
前記コントローラによって、かつ、前記ログを使用して、前記第１の削除特性を有する前記第１のデータを識別することが、
前記複数のログＩＤの中から第１のログＩＤを、前記コントローラによって選択することであって、前記第１のログＩＤが、前記第１のデータに対応する前記第１の削除特性を識別する、選択することと、
前記第２のＰＥＢが開放されており、かつ、前記第１の削除特性を有する任意のデータに割り当てられていることを、前記コントローラによって判定することと、を含み、
前記第１の削除特性を有する前記第１のデータをメインメモリ内の第２のＰＥＢに、前記コントローラによって排出することが、前記第１のデータを前記第２のＰＥＢに書き込むことを含み、
前記複数のログＩＤの中から第１のログＩＤを、前記コントローラによって選択することが、
最も古い有効なメタデータエントリからスタートして前記複数のメタデータエントリのウィンドウを、前記コントローラによってスキャンすることと、
前記第１のログＩＤが前記複数のメタデータエントリの前記ウィンドウ内の最大数のメタデータエントリに対応することに応答して、前記第１のログＩＤを、前記コントローラによって選択することと、を含む、方法。
【請求項１１】
前記最も古い有効なメタデータエントリに対応するデータを排出することに応答して、前記ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、前記ウィンドウを、前記コントローラによってシフトすることを更に含む、請求項１０に記載の方法。
【請求項１２】
前記第１のログＩＤに対応するいくつかのデータが排出されたことを、前記コントローラによって判定することと、
前記第２のＰＥＢが閉じていることを、前記コントローラによって判定することと、
開放されている、メインメモリ内の第３のＰＥＢを、前記コントローラによって識別することと、
第２のログＩＤを、前記コントローラによって選択することであって、前記第２のログＩＤは、第２のデータに対応し、かつ前記複数のメタデータエントリの前記ウィンドウ内の更新された最大数のメタデータエントリに対応する第２の削除特性を識別する、選択することと、
前記第２のデータを前記第３のＰＥＢに書き込むことと、を更に含む、請求項１０に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
不揮発性メモリシステムでは、ファイルシステムは、フラッシュ変換層との相互作用を通じて、複数のログファイルシステムからのデータがどのように記憶及び取得されるかを制御することができる。ある実施形態では、ハードウェアの制約に起因して、ファイルシステムは、フラッシュ変換層と相互作用して、複数のログファイルシステムログから単一の物理消去ブロックにデータを書き込むことができる。
【発明の概要】
【０００２】
本開示は、様々な実施形態において、不揮発性メモリに関し、より具体的には、混合データを異なるデータタイプで分離することに関する。
【０００３】
本明細書で開示される例示的な実施形態は、中間記憶装置内の第１の物理消去ブロック（ＰＥＢ）の複数のデータエントリに、混合削除特性を有するデータを連続的に書き込む、プログラムされた命令を有するプロセッサを含む装置である。混合削除特性を有するデータは、第１の削除特性を有する第１のデータを含む。プロセッサは、ログ内の複数のメタデータエントリ内にメタデータを維持する、プログラムされた命令を有する。メタデータは、混合削除特性を有するデータに対応する。プロセッサは、ログを使用して、第１の削除特性を有する第１のデータを識別し、かつ、第１の削除特性を有する第１のデータをメインメモリ内の第２のＰＥＢに排出する、プログラムされた命令を有する。
【０００４】
本明細書に開示される別の例示的な実施形態は、ホストログ履歴（ＨＬＨ）ログと、ＨＬＨログに結合されたコントローラとを含むシステムである。コントローラは、中間記憶装置内の第１の物理的消去ブロック（ＰＥＢ）の複数のデータエントリに、混合削除特性を有するデータを連続的に書き込む。この混合削除特性を有するデータは、第１の削除特性を有する第１のデータを含む。コントローラは、ＨＬＨログ内の複数のメタデータエントリ内にメタデータを維持する。メタデータは、混合削除特性を有するデータに対応する。コントローラは、ＨＬＨログを使用して、第１の削除特性を有する第１のデータを識別し、第１の削除特性を有する第１のデータをメインメモリ内の第２のＰＥＢに排出する。
【０００５】
本明細書に開示される別の例示的な実施形態は、コントローラによって、中間記憶装置内の第１の物理消去ブロック（ＰＥＢ）の複数のデータエントリに、混合削除特性を有するデータを連続的に書き込むことを含む方法である。混合削除特性を有するデータは、第１の削除特性を有する第１のデータを含む。この方法は、コントローラによって、ログ内の複数のメタデータエントリ内にメタデータを維持することを含む。メタデータは、混合削除特性を有するデータに対応する。本方法は、コントローラによって、かつログを使用して、第１の削除特性を有する第１のデータを識別することと、コントローラによって、第１の削除特性を有する第１のデータをメインメモリ内の第２のＰＥＢに排出することと、を含む。
【図面の簡単な説明】
【０００６】
【図１】いくつかの実施形態による、論理アドレス空間、及びログ構造化ファイルシステムに見られるような、連続的なログベースの追加専用の書き込み構造の一実施形態を描写する。
【０００７】
【図２】いくつかの実施形態による、混合データを異なるデータタイプで分離するためのシステムを描写する。
【０００８】
【図３Ａ】いくつかの実施形態による、メタデータエントリを描写する。
【０００９】
【図３Ｂ】いくつかの実施形態による、連結されたメタデータエントリを描写する。
【００１０】
【図４】いくつかの実施形態による、排出候補の選択の際のＨＬＨキャッシュの例示的実施形態を描写する。
【００１１】
【図５】いくつかの実施形態による、データを異なるデータタイプで分離するためのプロセスの例示的なフローチャートを描写する。
【発明を実施するための形態】
【００１２】
以下の詳細な説明では、本明細書の一部をなす、添付図面を参照する。図面において、同様の記号は、文脈がそうでない旨を指示しない限り、典型的には同様の構成要素を識別する。詳細な説明、図面、及び特許請求の範囲に記載される例示的な実施形態は、限定することを意図するものではない。他の実施形態を利用することができ、本明細書に提示される主題の趣旨又は範囲から逸脱することなく、他の変更が行われてもよい。本開示の態様は、本明細書に概ね記載され、図面に示されるように、様々な異なる構成で配置、置換、組み合わせ、及び設計することができ、これらの全てが明示的に企図され、本開示の一部をなすものであることが容易に理解されるであろう。
【００１３】
マルチログファイルシステムは、データを異なるデータタイプで分離するために、いくつかのログファイルシステム（ＬＦＳ）ログを管理する。フラッシュ記憶デバイスは、マルチログファイルシステムとインターフェースして、いくつかのＬＦＳログのデータを記憶する。リソースの制約に起因して、モバイルの埋め込み記憶セグメントでは、フラッシュ記憶装置のフラッシュ遷移層（ＦＴＬ）でのＬＦＳログ当たりの開放された物理消去ブロック（ＰＥＢ）を有することは実用的ではない。したがって、いくつかの実施形態では、全てのＬＦＳログは、単一の解放ＰＥＢに書き込まれ、対応するデータが、物理的媒体内で混合される。
【００１４】
１つのＰＥＢ内でいくつかのＬＦＳログを混合すると、ＰＥＢ内の論理的に連続したデータのフラグメンテーションが増加する。フラグメンテーションの第１の影響は、キャッシング効率に起因する。ログからのデータがＰＥＢに連続的に書き込まれるとき、ＰＥＢ内のデータの論理対物理（Ｌ２Ｐ）のマッピングは、所与の圧縮比で圧縮され、ＲＡＭにキャッシュされ得る。ＲＡＭ内にアクセス可能なＬ２Ｐで複数の読み出し要求を供給することは、読み出し性能が向上する結果をもたらすことができる。しかしながら、フラグメンテーションは、Ｌ２ＰをＲＡＭにキャッシュする際の圧縮比及び効率を低下させ、ひいては全体的な読み出し性能に悪影響を及ぼす。
【００１５】
フラグメンテーションの第２の影響は、ＦＴＬデータ経路（ＤＰ）のパイプ効率に起因する。ＤＰは、連続的な読み出しを並列に実行するＮ個のダイを含む。しかしながら、データが物理的に隣接していない場合、必ずしも全てのダイが利用されない。単一のブロック内の全てのログを混合することにより、論理的に連続的でなく、その結果、物理的に隣接しない、データが得られ、劣化した連続読み取り性能をもたらす。
【００１６】
いくつかのＬＦＳログを混合すると、複数の物理的ブロック内の廃棄データの数が増加する。複数の物理的ブロックでの廃棄データの増加は、ＦＴＬの不要データ収集（ＧＣ）によって、過剰なＦＴＬメタデータの更新及び有効データの複数の再配置につながる。過剰なメタデータの更新及び再配置は、書き込み増幅を増加させ、フラッシュデバイスの性能を低下させる。必要とされるものは、リソースの制約下で動作して、いくつかのＬＦＳログの異なるデータタイプを分離し、各データタイプのデータを専用記憶装置に記憶して、論理的に連続するデータがやはり物理的に隣接することを確実にすることができるシステム及び方法である。
【００１７】
本明細書に記載の開示の実施形態では、異なるデータタイプのデータを分離するシステム及び方法が示される。一実施形態では、システムは、ホストログ履歴（ＨＬＨ）ログ内のメタデータエントリを用いてデータを追跡する。一実施形態では、ＨＬＨログの一部は、より速い読み取りのためにＲＡＭにキャッシュされる。一実施形態では、システムは、メタデータエントリ内で識別されたデータタイプに基づいて、メインメモリに排出されるログの候補を選択する。一実施形態では、システムは、データタイプに割り当てられた物理的消去ブロックに共通のデータタイプを有する複数のデータエントリを排出するのに、「最大のものが最初」の排出ポリシーを使用する。
【００１８】
本開示のいくつかの実施形態では、システムは、ＬＦＳログの空間的局所性を改善する。結果として、システム及び方法は、論理的に連続するデータがやはり物理的に隣接しているときに、より良好なＬ２Ｐキャッシュ圧縮比と、ＦＬＴ  ＤＰパイプのより良好な利用とに起因して、性能を改善する。いくつかの実施形態では、システムは、ＦＬＴ  ＧＣ作用での書き込み増幅を低減する。
【００１９】
ある実施形態では、ファイルシステムは、本明細書で使用するとき、データ又はデータの単位がフラッシュ変換層（ＦＴＬ）との相互作用を通じてどのように記憶及び取得されるかを制御するシステムを指し得る。本明細書に記載されるとき、データは、コンピュータ可読媒体内で記憶可能であるように、体系化された情報を指すことができる。更に、ファイルシステムは、ファイルを管理し、ファイル上で動作を実行してもよい。ある実装では、ファイルシステムは論理ファイルシステムを指し、ファイルシステムは、ファイル及びメモリとユーザアプリケーションとの間のファイルレベルの動作に関与する。更に、ファイルシステムは、要求された動作を、処理のためのフラッシュ変換層に渡すことができる。少なくとも１つの実装では、ファイルシステムは、ログ構造化ファイルシステムであってもよい。
【００２０】
本明細書で使用するとき、フラッシュ変換層（ＦＴＬ）は、線形フラッシュメモリにファイル又はディスクドライブのようなオペレーティングシステムに出現させるようにフラッシュメモリを制御するドライバ又はコントローラを指し得る。フラッシュメモリをディスクドライブとして出現させるために、ＦＴＬは、フラッシュメモリのより大きい消去ブロックから「仮想的な」データの小さいブロックを生成することができる。また、ＦＴＬは、管理されたデータがフラッシュメモリ内の異なる位置に実際に記憶されているときに、フラッシュメモリ上のデータをそれが「適所に書き込まれている」ように思われるように管理することができる。更に、ＦＴＬは、データを記憶するための、クリーンな／消去された場所が存在するようにフラッシュメモリを管理することができる。
【００２１】
図１は、論理アドレス空間１２０と、ログ構造化ファイルシステムに見られるような、連続的なログベースの追加専用の書き込み構造１４０の一実施形態を描写する。不揮発性メモリ装置の論理アドレス空間１２０は、図示の実施形態では、不揮発性メモリ装置の物理的記憶容量及び対応する記憶デバイスのアドレス空間よりも大きくなることができる。描写された実施形態では、不揮発性メモリデバイスは、論理アドレス「０」３２２で始まり、論理アドレス「２６４−１」３２６まで延在する６４ビット論理アドレス空間１２０を有する。図示されるように、論理アドレス空間１２０は、「Ｘ」でマークされた位置にデータを記憶することができ、「Ｘ」のない位置にデータを記憶するために利用可能な位置を有することができる。記憶デバイスのアドレス空間は、不揮発性メモリデバイスの論理アドレス空間１２０のサブセットのみに対応するため、論理アドレス空間１２０の残りの部分は、不揮発性メモリデバイスの他の機能のために限定されるか、又は使用されてもよい。
【００２２】
描写された実施形態での連続的なログベースの追加専用の書き込み構造１４０は、不揮発性メモリデバイスの物理的記憶媒体の論理表現である。ある実施形態では、不揮発性メモリデバイスは、データを連続的に記憶し、データを、追加点１４４でログベースの書き込み構造１４０に追加する。描写された実施形態では、割り当てを解除された／未使用の論理ブロックを記憶する不揮発性記憶媒体は、不揮発性メモリデバイス用の利用可能な記憶プール１４６に追加される。不揮発性メモリ装置から無効データを消去し、消去されたデータに対応する物理的記憶容量を利用可能な記憶プール１４６に戻って追加することによって、一実施形態では、ログベースの書き込み構造１４０は、周期的で、環状であり、理論的に無限の容量を有する。
【００２３】
描写された実施形態では、追加点１４４は、データ「Ａ」〜「Ｍ」を記憶する円形パターン１４２内で、ログベースの追加専用の書き込み構造１４０の周囲を進む。一実施形態では、円形パターン１４２は、不揮発性メモリ媒体のバランスを着用しており、不揮発性メモリ媒体の可使時間を延ばす。描写された実施形態では、ファイルシステムは、ブロック１４８、１５０、１５２、１５４上の「Ｘ」のマークによって表される、いくつかのブロック１４８、１５０、１５２、１５４を無効なものとして、指し示すことができる。ファイルシステムは、一実施形態では、無効ブロック１４８、１５０、１５２、１５４の物理的記憶容量を回復することができ、回復された容量を利用可能な記憶プール１４６に追加することができる。ファイルシステムは、無効なブロックを新しいデータで上書きすることができる。描写された実施形態では、ブロック１４８、１５０、１５２、３５４の修正されたバージョンは、読み取り、修正、書き込み動作などで新規ブロック１５６、１５８、１６０、１６２として、ログベースの書き込み構造３４０に追加されており、元のブロック１４８、１５０、１５２、１５４を復元することができる。
【００２４】
ある実施形態では、ログベースの書き込み構造１４０などのログベースの書き込み構造は、複数のログを維持する。少なくとも１つの実施形態では、データは、異なる因子に基づいて、複数のログのうちの１つに保存され得る。例えば、データは、データタイプに基づいて異なるログに保存されてもよい。本明細書で使用されるとき、データタイプはデータの特徴付けである。データタイプは、データのソース、データが更新及び／又は削除される頻度又は再新性（例えば、削除特性）等を記述することができる。データが更新及び／又は削除される頻度を記述するデータタイプに基づいて、データが異なるログに保存され得る少なくとも１つの実装では、データは、ホットログ、ウォームログ、及びコールドログに保存され得る。
【００２５】
ある実施形態では、ログベースの書き込み構造は、フラッシュフレンドリファイルシステム（Ｆ２ＦＳ）によって制御されてもよい。Ｆ２ＦＳの一部として、ファイルシステムは、複数のログを維持することができる。一実施形態では、Ｆ２ＦＳは、ホットノードログ、ホットデータログ、ウォームノードログ、ウォームデータログ、コールドノードログ、及びコールドデータログを含む６つのログを維持することができる。例えば、Ｆ２ＦＳは、データがディレクトリのための直接ノードブロックを表すときに、データがホットノードログに属すると判定することができる。Ｆ２ＦＳは、データがディレクトリエントリブロック内に記憶されているときに、データがホットデータログに属すると判定することができる。Ｆ２ＦＳは、データが規則的なファイルのための直接ノードブロック内に記憶されているときに、データがウォームノードログに属すると判定することができる。Ｆ２ＦＳは、データがユーザによって作られたデータブロック内に記憶されているときに、データがウォームデータログに属すると判定することができる。Ｆ２ＦＳは、データが間接ノードブロック内に記憶されているときに、データがコールドノードログに属すると判定することができる。Ｆ２ＦＳは、データが、クリーニングによって移動されたデータブロック内に記憶され、ユーザによって指定されたデータブロック内に記憶されるか、又はマルチメディアファイルデータに記憶されているときに、データがコールドデータログに属すると判定することができる。一実施形態では、Ｆ２ＦＳは、２ＭＢサイズのＦ２ＦＳセグメントでのログ内にランダムデータを連続的に書き込む。一実施形態では、Ｆ２ＦＳは、セクションをクリーニングする（例えば、ブロックを無効として指し示す）。セクションのサイズは、セグメントのサイズの倍数であってもよい。一実施形態では、セグメントのサイズは、不揮発性メモリ内の物理消去ブロックのサイズに等しい。
【００２６】
図２は、データを異なるデータタイプで分離するためのシステム２００を示す。システム２００は、フラッシュ変換層（ＦＴＬ）２０２を含む。ＦＴＬ２０２は、複数のログに関連付けられた混合データのための論理アドレスを、メインメモリ（ＭＭ）２０４内の記憶装置のための物理アドレスに変換することができる。本明細書で使用するとき、混合データは、異なるデータタイプを有するデータを指す。本明細書で使用するとき、メインメモリ２０４は、データを記憶するために使用される不揮発性メモリ素子上のメモリの一部であってもよい。一実施形態では、メインメモリは、セル当たり複数のビットが記憶され得る複数のマルチレベルセルを含んでもよい。メインメモリ２０４に記憶する前に、混合データは中間記憶装置２０６に記憶されてもよい。本明細書で使用するとき、中間記憶装置２０６は、メインメモリ２０４にデータを記憶する前にデータが記憶され得るメモリの一部であってもよい。一実施形態では、中間記憶装置２０６は、セルがセル当たり単一のビットを記憶する単一レベルのセル記憶領域であってもよい。一実施形態では、メインメモリ２０４及び中間記憶装置２０６は、フラッシュメモリの一部である。
【００２７】
ＦＴＬ２０２は、ファイルシステムから書き込み要求を受信して、複数のログからデータを書き込むことができる。一実施形態では、ファイルシステムは、システム２００に結合されたホスト上にある。一実施形態では、システム２００は、ホストとインターフェースするフラッシュ記憶デバイスである。ＦＴＬ２０２は、複数のログからのデータを、中間記憶装置（ＩＳ）２０６内の単一の開放物理消去ブロック（ＰＥＢ）２０８（１）にデータを書き込むことができる。データが複数のログからＰＥＢ２０８（１）に書き込まれるとき、複数のログからのデータが混合される。例えば、ホットノードログ、ホットデータログ、ウォームノードログ、ウォームデータログ、コールドノードログ、及びコールドデータログからのデータが、ＰＥＢ２０８（１）に書き込まれてもよい。ＰＥＢ２０８（１）が利用可能な空間を有さないときは、ＦＴＬ２０２はＰＥＢ２０８（１）を閉じ、第２のＰＥＢ２０８（２）を開くことができる。ＦＴＬ２０２は、複数のログから第２のＰＥＢ２０８（２）に更なるデータを書き込むことができる。一般に、中間記憶装置２０６は、Ｎ１個のＰＥＢ２０８（１）〜ＰＥＢ２０８（Ｎ１）を有することができる。
【００２８】
ＰＥＢ２０８（１）は、データエントリを保持する。データの各ユニットは、別個のデータエントリに書き込まれてもよい。例えば、ＦＴＬ２０２は、第１のログからの第１のデータをＰＥＢ２０８（１）の第１のデータエントリ２１０（１）に書き込むことができる。各データエントリは、異なる削除特性などの異なるデータタイプに関連付けられてもよい。例えば、データエントリ２１０（１）は、ホットログからのデータを含んでもよく、データエントリ２１０（２）は、ウォームログからのデータを含んでもよく、データエントリ２１０（３）は、コールドログからのデータを含んでもよい。異なる削除特性が、異なるパターンで図２に描写されている。各データエントリは、書き込み及び廃棄などの異なる入力／出力タイプに関連付けられてもよい。例えば、データエントリ２１０（１）〜２１０（３）は、書き込まれるデータを含んでもよい。したがって、データエントリ２１０（１）〜２１０（３）のデータは、「書き込み」Ｉ／Ｏタイプのものであってもよい。一実施形態では、書き込みＩ／Ｏタイプデータは、有効データと同義である。データエントリ２１０（４）は、古くなったデータ（例えば、書き込まれるべきデータであるが、データのより新しいバージョンによって取って代わられるデータ）を含むことができる。したがって、データエントリ２１０（４）は、「廃棄」Ｉ／Ｏタイプのものであってもよい。一実施形態では、廃棄Ｉ／Ｏタイプデータは無効データと同義である。一般に、各ＰＥＢ２０８は、Ｎ２個のデータエントリ２１０（１）〜２１０（Ｎ２）のための空間を有することができる。一実施形態では、データエントリは可変サイズのものである。一実施形態では、各ＰＥＢ２０８は、異なる量のデータエントリ又は異なるサイズのデータエントリを有する。この点に関して、Ｎ２は、ＰＥＢ２０８ごとに異なることができる。
【００２９】
書き込み要求を受信する部分として、ＦＴＬ２０２は、中間記憶装置２０６に書き込まれているデータに関するメタデータを受信することができる。システム２００は、ホストログ履歴（ＨＬＨ）ログ２１２を含む。一実施形態では、ＨＬＨログ２１２は、フラッシュメモリの一部である。ＦＴＬ２０２は、書き込み要求の一部として受信したメタデータを、ＨＬＨログ２１２のメタデータエントリ２１４（１）〜２１４（Ｎ３）に書き込むことができる。メタデータエントリ２１４（１）は、ＨＬＨログ２１２のヘッドと称されてもよく、メタデータエントリ２１４（Ｎ３）は、ＨＬＨログ２１２のテールと称されてもよい。各メタデータエントリ２１４は、中間記憶装置２０６内のデータエントリ２１０を指す。
【００３０】
ここで例示的な実施形態図３Ａを参照すると、メタデータエントリ２１４は、データエントリ２１０のスタートブロックアドレス（ＢＡ）３０２、データエントリ２１０のサイズ３０４、データエントリ２１０のログ識別子（ＩＤ）３０６、及びデータエントリ２１０のＩ／Ｏタイプ３０８を含む。一実施形態では、ログＩＤ３０６は、データエントリ２１０に記憶されたデータの削除特性のタイプを示す。一実施形態では、Ｉ／Ｏタイプ３０８は、データエントリ２１０に記憶されたデータのＩ／Ｏタイプを示す。一実施形態では、メタデータエントリ２１４は４バイト（４Ｂ）であり、スタートＢＡ３０２は２１ビット（２１ｂ）であり、サイズ３０４は７ｂであり、ログＩＤ３０６は３ｂであり、Ｉ／Ｏタイプ３０８は１ｂである。一実施形態では、ＢＡ３０２は論理ＢＡ（ＬＢＡ）である。一実施形態では、ＢＡ３０２は物理ＢＡ（ＰＢＡ）である。一実施形態では、メタデータエントリは、データエントリの物理位置を直接指す。一実施形態では、ＢＡ３０２がＰＢＡであることに応答して、Ｌ２Ｐ変換は不要である。一実施形態において、サイズ３０４に割り当てられた７ｂは、データエントリ２１０のサイズを示すのに十分な大きさではない。一実施形態では、単一のデータエントリ２１０は、複数のメタデータエントリ２１４によって指されてもよい。
【００３１】
一実施形態では、第１のメタデータエントリ及び第１のメタデータエントリに隣接する第２のメタデータエントリは、同じ削除特性を示す同じログＩＤを有し得る。一実施形態では、ＦＴＬ２０２は、第１のメタデータエントリ及び第２のメタデータエントリが同じ削除特性を有することを判定し、ＦＴＬ２０２は、第１のメタデータエントリ及び第２のメタデータエントリを連結する。ここで図３Ｂの例示的実施形態を参照すると、メタデータエントリ２１４は、第１のスタートＬＢＡ３０２と、第１のデータサイズ３０４と、第１のデータＩ／Ｏタイプ３０８と、第２のスタートＬＢＡ３０２と、第２のデータサイズ３０４と、第２のデータＩ／Ｏタイプ３０８と、ログＩＤ３０６と、を含む。追加の、より少ない、又は異なる部分が、メタデータエントリ２１４内に含まれてもよく、この部分は、実施形態に応じて、図３Ａ、３Ｂに関して任意の順序で配置されてもよい。
【００３２】
図２を再び参照すると、システム２００はＨＬＨキャッシュ２１６を含む。ＦＴＬ２０２は、ＨＬＨログ２１２の一部をテールからＨＬＨキャッシュ２１６に書き込むことができる。一実施形態では、ＨＬＨキャッシュ２１６は、ランダムアクセスメモリ（ＲＡＭ）の一部である。ＦＴＬ２０２は、メタデータエントリ２１４（１）〜２１４（Ｎ３）の一部を、ＨＬＨキャッシュ２１６のメタデータエントリ２１８（１）〜２１８（Ｎ４）に書き込むことができる。
【００３３】
一実施形態では、ＦＴＬ２０２は、中間記憶装置２０６内のデータの部分を選択する。一実施形態では、選択されたデータの部分は、同じ削除特性を有する。ＦＴＬ２０２は、データの部分に対応する（例えば、データの部分のデータエントリ２１０で指し示す）メタデータエントリ２１８を読み取ることによって、データの部分を識別することができる。一実施形態では、ＦＴＬ２０２は、データの部分に対応するメタデータエントリ２１８が、同じ削除特性を示す同じログＩＤ３０６を有すると判定してもよい。一実施形態では、ＦＴＬ２０２は、データの部分を、中間記憶装置２０６からメインメモリ２０４に排出する。一実施形態では、データを排出することは、メインメモリ２０４内のＰＥＢの追加点にデータを書き込むことを指す。
【００３４】
メインメモリ２０４への選択的な排出に起因する中間記憶装置２０６でのフラグメンテーションに対処するために、一実施形態では、ＦＴＬ２０２は、ＨＬＨログ候補を決定して選択する。図４を参照すると、ＨＬＨキャッシュ４１０が示されている。一実施形態では、ＦＴＬ２０２は、所定のウィンドウ４１２内で、最も古い有効なメタデータエントリ、例えば、図２に関するメタデータエントリ２１８（Ｎ４）からスタートして、（図２に関する）メタデータエントリ２１８をスキャンする（例えば、連続的に読み出す）。一実施形態では、所定のウィンドウ４１２の長さは、ＨＬＨキャッシュ４１０内のメタデータエントリ２１８の数に等しい。一実施形態では、所定のウィンドウ４１２の長さは、ＨＬＨキャッシュ４１０内のメタデータエントリ２１８の数よりも短い。ＦＴＬ２０２は、一実施形態では、所定のウィンドウ４１２内でメタデータエントリ２１８の各ログＩＤ３０６を識別する。異なるログＩＤ３０６は、異なるパターンで図４に表される。一実施形態では、ＦＴＬ２０２は、各識別されたログＩＤ３０６に対応するデータペイロードを決定する。ＦＴＬ２０２は、一実施形態では、ログＩＤ３０６を有するメタデータエントリ２１８のサイズ３０４の合計として、ログＩＤ３０６に対応するデータペイロードを計算する。一実施形態では、ＦＴＬ２０２は、データペイロードを、ログＩＤ３０６を有するメタデータエントリ２１８によって指されたデータエントリ２１０の合計を計算する。一実施形態では、ＦＴＬ２０２は、最大のデータペイロードに対応する第１のログＩＤ３０６を有するメタデータエントリ２１８を選択する。したがって、図４に関するＨＬＨキャッシュ４１０の例示的実施形態では、ＦＴＬ２０２は、メタデータエントリ４１４を選択する。
【００３５】
ＦＴＬ２０２は、一実施形態では、メタデータエントリ４１４のそれぞれに対応するデータの物理的位置を決定する。ＦＴＬ２０２は、一実施形態では、メタデータエントリ４１４のそれぞれで、スタートＬＢＡ３０２を識別する。一実施形態では、ＦＴＬ２０２は、論理対物理（Ｌ２Ｐ）のマッピング構造を使用して、各スタートＬＢＡ３０２を物理アドレスに変換することによって、データの物理アドレスを識別する。一実施形態では、Ｌ２Ｐマッピング構造は、システム２００のＲＡＭ内に記憶される。
【００３６】
システム２００はメインメモリ２０４を含む。一実施形態では、ＦＴＬ２０２は、メインメモリ２０４のＰＥＢ２２０（１）を識別する。識別されたＰＥＢ２２０（１）は、一実施形態では、（例えば、第１の削除特性を有した）第１のログＩＤ３０６を有するデータに割り当てられる。一実施形態では、ＦＴＬ２０２は、識別された物理アドレスに位置するデータをメインメモリ２０４のＰＥＢ２２０（１）に排出する。一実施形態では、ＦＴＬ２０２は、識別された物理アドレスに位置するデータを、データエントリ２２２（１）〜２２２（Ｎ５）の部分に書き込む。一般に、メインメモリ２０４は、ＰＥＢ２２０（１）〜２２０（Ｎ６）を含む。
【００３７】
一実施形態では、ＦＴＬ２０２は、メタデータエントリ４１４に対応するデータを排出することに応答して、それらのメタデータエントリのデータが排出されたことをデータ構造内に示す。データ構造は、メタデータエントリに対応するインデックスと、そのメタデータエントリのデータが排出されたかどうかを示すインデックスに対応する値と、を有するルックアップテーブルであってもよい。一実施形態では、ＦＴＬ２０２は、メタデータエントリ４１４に対応するデータを排出することに応答して、メタデータエントリ４１４を削除する。一実施形態では、このメタデータエントリ４１４はもはや有効メタデータエントリ４１４ではない。
【００３８】
図４を再び参照すると、ＨＬＨキャッシュ４２０は、メタデータエントリ４１４に対応するデータの排出の結果として示される。ＨＬＨキャッシュ４２０において、メタデータエントリ４１４は、メタデータエントリがもはや有効ではないことを示すパターンを有していないものとして描写されている。一実施形態では、ＦＴＬ２０２は、所定のウィンドウ４２２内で、最も古い有効なメタデータエントリからスタートして所定のメタデータエントリをスキャンする。所定のウィンドウ４２２は、一実施形態では、所定のウィンドウ４１２と同じである。ＦＴＬ２０２は、一実施形態では、既に排出されたデータのどんなメタデータエントリも除外して、所定のウィンドウ４１２内でメタデータエントリの各ログＩＤ３０６を識別する。一実施形態では、ＦＴＬ２０２は、各識別されたログＩＤ３０６に対応するデータペイロードを決定する。一実施形態では、ＦＴＬ２０２は、残りのメタデータエントリの最大のデータペイロードに対応する第２のログＩＤ３０６を有するメタデータエントリを選択する。したがって、ＨＬＨキャッシュ４２０の例示的実施形態では、ＦＴＬ２０２は、メタデータエントリ４２４を選択する。ＦＴＬ２０２は、一実施形態では、メタデータエントリ４２４に対応するデータをメインメモリ２０４の第２のＰＥＢ２２０（２）に排出する。識別されたＰＥＢ２２０（２）は、一実施形態では、第２のログＩＤ３０６を有するデータに割り当てられる。
【００３９】
ＨＬＨキャッシュ４３０は、メタデータエントリ４２４に対応するデータの排出の結果として示される。ＨＬＨキャッシュ４３０では、メタデータエントリ４１４及びメタデータエントリ４２４は、メタデータエントリ４１４及びメタデータエントリ４２４に対応するデータが排出されたことを示すパターンを有していないものとして描写される。一実施形態では、ＦＴＬ２０２は、所定のウィンドウ４３２内で、最も古い有効なメタデータエントリからスタートして所定のメタデータエントリをスキャンする。一実施形態では、ＦＴＬ２０２は、最も古い有効なメタデータエントリが変更された（例えば、ＨＬＨキャッシュ４３０の最も古い有効なメタデータエントリは、ＨＬＨキャッシュ４２０の最も古い有効なメタデータエントリとは異なる）と判定する。最も古い有効なメタデータエントリが変更されたと判定することに応答して、一実施形態では、ＦＴＬ２０２は、それが最も古い有効なエントリからスタートするように、ウィンドウ４３２をシフトさせる。したがって、所定のウィンドウ４３２は、一実施形態では、ウィンドウ４３２がシフトされていることを除いて、所定のウィンドウ４２２と同じである。ＦＴＬ２０２は、一実施形態では、残りのメタデータエントリの最大のデータペイロードに対応する第３のログＩＤ３０６を有するメタデータエントリ４３４を選択する。ＦＴＬ２０２は、一実施形態では、メタデータエントリ４３４に対応するデータをメインメモリ２０４の第３のＰＥＢ２２０（３）に排出する。識別されたＰＥＢ２２０（３）は、一実施形態では、第３のログＩＤ３０６を有するデータに割り当てられる。
【００４０】
一実施形態では、ＦＴＬ２０２は、ＨＬＨキャッシュ２１６内の全てのメタデータエントリが無効になっている（例えば、既に排出されているデータを指しているか、又は廃棄データを示している）と判定すると、メタデータエントリを削除し、かつ／又はＨＬＨログ２１２からの他のメタデータエントリでメタデータエントリを上書きすることができる。一実施形態では、ＨＬＨキャッシュ２１６は、ＨＬＨログ２１２のテールからスタートし、ＨＬＨキャッシュ２１６が再度満たされるまで、ＨＬＨログ２１２のヘッドに向かってＨＬＨログ２１２の部分を徐々に書き込むことによって、ＨＬＨログ２１２からスライド方式で再度満たされる。
【００４１】
ＦＴＬ２０２は、（あるログＩＤ３０６を有した）あるタイプの削除特性を有するデータを、メインメモリ２０４の対応する割り当てられたＰＥＢ２２０に書き込む。一実施形態では、メインメモリ２０４は、所定の期間内にＦＴＬ２０２によって識別された数個のログＩＤとして、たかだか数個の開放ＰＥＢ２２０を有する。一実施形態では、割り当てられたＰＥＢ２２０をある削除特性のデータで満たすと、割り当てられたＰＥＢ２２０は閉じられ、新しいＰＥＢ２２０が、ある削除特性を有するデータに割り当てられる。一実施形態では、割り当てられたＰＥＢ２２０が満たされ、それによって閉じられる前に、第１のログＩＤ３０６に対応するデータのいくつかのみが割り当てられたＰＥＢ２２０に排出される。一実施形態では、ＦＴＬ２０２は、新しいＰＥＢ２２０を識別し、ＨＬＨキャッシュ２１６内のメタデータエントリ２１８のウィンドウの新しいスキャンを開始する。一実施形態では、ＦＴＬ２０２は、第２のデータに対応し、かつ、メタデータエントリ２１８のウィンドウ内の最大数のメタデータエントリ（例えば、メタデータエントリ４１４）に対応する、第２のログＩＤ３０６を選択する。一実施形態では、ＦＴＬ２０２は、第２のデータを新しいＰＥＢ２２０に書き込む。
【００４２】
一実施形態では、ＦＴＬ２０２は、第１のＰＥＢ２２０が所定の閾値を超える場合に開放されることに応答して、ＨＬＨキャッシュ２１６内の次の最後の有効エントリの次のログＩＤを選択し、かつ、第１のＰＥＢ２２０が最初に次のログＩＤに割り当てられていなくても、次のログＩＤに対応するデータを第１のＰＥＢ２２０に排出することができる。所定の条件は、所定の経過時間、所定の数の読み取られるメタデータエントリ、又は所定の数のメインメモリ２０４に排出されるデータであってもよい。
【００４３】
ＦＴＬ２０２は、カスタムＶＬＳＩ回路又はゲートアレイ、論理チップ、トランジスタ、又は他のディスクリート部品等の市販の半導体、を含むハードウェア回路として実装されてもよい。ＦＴＬ２０２は、フィールドプログラマブルゲートアレイ、プログラマブルアレイ論理、プログラマブル論理デバイス等の、プログラマブルハードウェアデバイスに実装されてもよい。ＦＴＬ２０２は、また、様々なタイプのプロセッサによる、実行のためのソフトウェア（例えば、プログラムされた命令）に、少なくとも部分的に実装されてもよい。ＦＴＬ２０２は、一実施形態では、様々なタイプのプロセッサを含む。ソフトウェア部分は、持続性記憶媒体を含む１つ以上のコンピュータ可読及び／又は実行可能な記憶媒体上に記憶されてもよい。
【００４４】
図５は、異なるデータタイプでデータを分離するためのプロセス５００の例示的なフローチャートを示す。プロセス５００は、図２に関するＦＴＬ２０２などのコントローラによって実行されてもよい。追加の動作、より少ない動作、又は異なる動作が、実施形態に応じて、プロセス５００で、実行されてもよい。コントローラは、中間記憶装置内の第１の物理消去ブロック（ＰＥＢ）に、混合データを書き込む（５０２）。本明細書で混合データは、混合データタイプを有するデータを指す。一実施形態では、データタイプは、削除特性によって規定される。一実施形態では、コントローラは、セグメントの単位で第１のＰＥＢにデータを書き込む。一実施形態では、データエントリは、第１のＰＥＢ内のユニットである。本明細書のデータエントリは、１つのログソース（例えば、ホットノードログ）からの論理的に連続するデータである。１つのセグメントに複数のデータエントリが存在してもよい。
【００４５】
コントローラは、メタデータをログに維持する（５０４）。メタデータは、混合データに対応する。一実施形態では、コントローラは、メタデータエントリとしてログ内にメタデータを書き込む。各メタデータエントリは、異なるデータエントリを指すことができる。一実施形態では、ログは、フラッシュメモリ内の第１のログと、ランダムアクセスメモリ（ＲＡＭ）内の第２のログと、を含む。一実施形態では、コントローラは、フラッシュメモリ内の第１のログにメタデータエントリを書き込む。コントローラは、一実施形態では、メタデータエントリの部分をＲＡＭ内の第２のログに書き込む。一実施形態では、コントローラは、ＲＡＭ内の第２のログを使用して、排出するデータを選択する。
【００４６】
一実施形態では、コントローラは、メタデータエントリ内で、異なる削除特性を識別するログＩＤを維持する。コントローラは、第１のメタデータエントリ、及び第１のメタデータエントリに隣接する第２のメタデータエントリが、同じ削除特性を有する（例えば、メタデータエントリの対応するログＩＤフィールドに記憶された同じログＩＤを有する）ことを判定することができる。コントローラは、第１のメタデータエントリ及び第２のメタデータエントリを連結することができる。コントローラは、一実施形態では、Ｉ／Ｏのタイプを示す入力／出力（Ｉ／Ｏ）タイプ識別子は、メタデータエントリによって参照されるデータに関連付けられる。Ｉ／Ｏタイプ識別子は、書き込み、消去、及び廃棄を含むことができる。一実施形態では、消去は、マッピングされたアドレス空間からマッピングされていないアドレス空間にデータが移動されるＩ／Ｏのタイプである。一実施形態では、廃棄は、消去機能の無保護の変異型である。この点に関して、破棄は、データが永続的に削除されるＩ／Ｏのタイプであってもよい。
【００４７】
コントローラは、ログを使用して、第１の削除特性を有する第１のデータを識別する（５０６）。コントローラは、メタデータエントリのウィンドウをスキャンすることができる。一実施形態では、ウィンドウは所定の長さを有し、最も古い有効なメタデータエントリからスタートする。一実施形態では、コントローラは、ウィンドウのスタート位置を決定することができる。コントローラは、最も古い有効なメタデータエントリに対応するデータを排出することに応答して、ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、ウィンドウをシフトさせることができる。
【００４８】
コントローラは、第１のデータの第１の削除特性を識別する第１のログＩＤを選択することができる。一実施形態では、コントローラは、第１のログＩＤがウィンドウ内の最大数のメタデータエントリに対応することに応答して第１のログＩＤを選択する。コントローラは、一実施形態では、メインメモリ内の第２のＰＥＢが第１の削除特性を有する任意のデータに割り当てられると判定する。コントローラは、第２のＰＥＢが書き込みのために開放されていると判定することができる。
【００４９】
コントローラは、第１のデータをメインメモリ内の第２のＰＥＢに排出する（５０８）。一実施形態では、コントローラは、第１のデータを第２のＰＥＢの追加点に書き込む。一実施形態では、コントローラは、排出されたデータを指す、ＲＡＭ内の第２のログ内のメタデータエントリを追跡する。一実施形態では、コントローラは、ＲＡＭ内の第２のログ内の全てのメタデータエントリに対応するデータを排出することに応答して、ＲＡＭ内の第２のログ内のメタデータエントリを、フラッシュメモリ内の第１のログからの他のメタデータエントリで上書きする。
【００５０】
一実施形態では、コントローラは、第１のＰＥＢからの全てのデータエントリがメインメモリに排出されたことを判定する。判定に応答して、一実施形態では、コントローラは第１のＰＥＢを消去する。一実施形態では、コントローラは、第１のＰＥＢの利用可能な空間を利用可能なメモリプールに戻す。一実施形態では、コントローラは、書き込みＩ／Ｏタイプを示すメタデータを有する（第１のＰＥＢからの）全てのデータエントリがメインメモリに排出されたことを判定する。判定に応答して、一実施形態では、コントローラは第１のＰＥＢを消去する。
【００５１】
一実施形態では、コントローラは、第１のログＩＤに対応する全てのデータが排出されたこと、及び、第２のＰＥＢが利用可能なスペース（例えば、追加点）を有することを判定する。コントローラは、一実施形態では、第２のログＩＤを選択する。一実施形態では、第２のログＩＤは、第２のデータに対応する第２の削除特性を識別する。コントローラは、一実施形態では、第２のデータを第２のＰＥＢの追加点に書き込む。
例示的実施形態の構成
【００５２】
様々な例示的な実施形態に示されるようなシステム及び方法の構成及び配置は、単なる例示に過ぎない。本開示では、わずかな実施形態のみが詳細に説明されてきたが、多くの修正（例えば、様々な要素のサイズ、寸法、構造、形状、及び比率の変化、パラメータの値、実装配置、材料、色、配向の使用など）が可能である。例えば、要素の位置を逆転させるか、又は別の方法で変化させてもよく、個別の要素又は位置の性質又は数を変更し又は変化させてもよい。したがって、全てのこのような修正は、本開示の範囲内に含まれることが意図される。任意のプロセス又は方法ステップの順序又はシーケンスは、代替実施形態に従って変更又は並び直しされてもよい。他の置換、修正、変更、及び省略が、本開示の範囲から逸脱することなく、例示的な実施形態の設計、動作条件、及び配置で行われてもよい。
【００５３】
本開示は、様々な動作を達成するための、方法、システム、及び任意の機械可読媒体上のプログラム製品を企図する。本開示の実施形態は、既存のコンピュータプロセッサを使用して、又はこの若しくは別の目的のために組み込まれた適切なシステム用の専用コンピュータプロセッサによって、又はハードワイヤードシステムによって実装されてもよい。本開示の範囲内の実施形態は、機械実行可能命令又はその上に記憶されたデータ構造を搬送又は有するための機械可読媒体を備えるプログラム製品を含む。このような機械可読媒体は、汎用又は専用のコンピュータ、又はプロセッサを備える他の機械によってアクセスすることができる任意の利用可能な媒体であり得る。例として、このような機械可読媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶デバイス、又は、機械実行可能命令又はデータ構造の形態で所望のプログラムコードを搬送又は記憶するために使用することができ、汎用又は専用のコンピュータ又はプロセッサを備える他のマシンによってアクセスすることができる任意の他の媒体を備えることができる。情報がネットワーク又は別の通信接続（有線、無線、又は有線若しくは無線の組み合わせのいずれか）を介して機械に情報が転送又は提供されるとき、機械はこの接続を機械可読媒体として適切に見なす。したがって、任意のこのような接続は、機械可読媒体と適切に称される。上記の組み合わせもまた、機械可読媒体の範囲内に含まれる。機械実行可能命令としては、例えば、汎用コンピュータ、専用コンピュータ、又は専用の処理機械に、ある機能又は機能群を実行させる命令及びデータを含む。
【００５４】
図面は方法ステップの具体的な順序を示しているが、ステップの順序は描写されているものと異なっていてもよい。また、２つ以上のステップが、同時に、又は部分的な同時性で実行されてもよい。そのような変更は、選択されたソフトウェア及びハードウェアのシステム、並びに設計者の選択に依存する。全てのこのような変更は、本開示の範囲内である。同様に、ソフトウェア実装は、様々な接続ステップ、処理ステップ、比較ステップ及び決定ステップを達成するための、ルールベースの論理及び他の論理を有する標準的なプログラミング技術で達成され得るはずである。
【図１】
0006916336.tif 000002
【図２】
0006916336.tif 000003
【図３Ａ】
0006916336.tif 000004
【図３Ｂ】
0006916336.tif 000005
【図４】
0006916336.tif 000006
【図５】
0006916336.tif 000007