特許第6916336号(P6916336)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ウェスタン デジタル テクノロジーズ インコーポレーテッドの特許一覧

特許6916336不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置
<>
  • 特許6916336-不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置 図000002
  • 特許6916336-不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置 図000003
  • 特許6916336-不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置 図000004
  • 特許6916336-不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置 図000005
  • 特許6916336-不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置 図000006
  • 特許6916336-不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6916336
(24)【登録日】2021年7月19日
(45)【発行日】2021年8月11日
(54)【発明の名称】不揮発性メモリ内の異なるデータタイプのためのログベースの記憶装置
(51)【国際特許分類】
   G06F 12/02 20060101AFI20210729BHJP
   G06F 12/00 20060101ALI20210729BHJP
【FI】
   G06F12/02 510A
   G06F12/00 597U
【請求項の数】12
【外国語出願】
【全頁数】18
(21)【出願番号】特願2020-50989(P2020-50989)
(22)【出願日】2020年3月23日
(65)【公開番号】特開2021-9678(P2021-9678A)
(43)【公開日】2021年1月28日
【審査請求日】2020年3月24日
(31)【優先権主張番号】16/457,298
(32)【優先日】2019年6月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】504056130
【氏名又は名称】ウェスタン デジタル テクノロジーズ インコーポレーテッド
(74)【代理人】
【識別番号】110002572
【氏名又は名称】特許業務法人平木国際特許事務所
(72)【発明者】
【氏名】ミカエル ザイドマン
(72)【発明者】
【氏名】ヨナタン ハレビ
(72)【発明者】
【氏名】ジュダー ガムリエル ハーン
(72)【発明者】
【氏名】アーセニー アハロノブ
(72)【発明者】
【氏名】ヨアブ マルクス
【審査官】 後藤 彰
(56)【参考文献】
【文献】 国際公開第2012/020544(WO,A1)
【文献】 特開2010−211618(JP,A)
【文献】 米国特許出願公開第2019/0121567(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/02
(57)【特許請求の範囲】
【請求項1】
プログラムされた命令を有するプロセッサを備える装置であって、前記命令は、
混合削除特性を有するデータを中間記憶装置内の第1の物理消去ブロック(PEB)の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第1の削除特性を有する第1のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記ログを使用して、前記第1の削除特性を有する前記第1のデータを識別することと、
前記第1の削除特性を有する前記第1のデータを、メインメモリ内の第2のPEBに排出することと、を行い、
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
異なる削除特性を識別する複数のログ識別子(ID)を維持することと、
前記複数のログIDの中から第1のログIDを選択することであって、前記第1のログIDが、前記第1のデータに対応する前記第1の削除特性を識別する、選択することと、
前記第2のPEBが開放されており、かつ、前記第1の削除特性を有する任意のデータに割り当てられていることを判定することと、
前記第1のデータを前記第2のPEBに書き込むことと、を行い、
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
最も古い有効なメタデータエントリからスタートして、前記複数のメタデータエントリのウィンドウをスキャンすることと、
前記第1のログIDが前記複数のメタデータエントリの前記ウィンドウ内の最大数のメタデータエントリに対応することに応答して、前記第1のログIDを選択することと、を行う、装置。
【請求項2】
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、前記最も古い有効なメタデータエントリに対応するデータを排出することに応答して、前記ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、前記ウィンドウをシフトさせる、請求項に記載の装置。
【請求項3】
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記第1のログIDに対応するいくつかのデータが排出されたことを判定することと、
前記第2のPEBが閉じられていることを判定することと、
開放されている、メインメモリ内の第3のPEBを識別することと、
第2のログIDを選択することであって、前記第2のログIDは、第2のデータに対応し、かつ前記複数のメタデータエントリの前記ウィンドウ内の更新された最大数のメタデータエントリに対応する第2の削除特性を識別する、選択することと、
前記第2のデータを前記第3のPEBに書き込むことと、を行う、請求項に記載の装置。
【請求項4】
プログラムされた命令を有するプロセッサを備える装置であって、前記命令は、
混合削除特性を有するデータを中間記憶装置内の第1の物理消去ブロック(PEB)の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第1の削除特性を有する第1のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記ログを使用して、前記第1の削除特性を有する前記第1のデータを識別することと、
前記第1の削除特性を有する前記第1のデータを、メインメモリ内の第2のPEBに排出することと、を行い、
前記ログが、フラッシュメモリ内の第1のログ及びランダムアクセスメモリ(RAM)内の第2のログを含み、前記複数のメタデータエントリが、前記フラッシュメモリ内の複数の第1のメタデータエントリ及び前記RAM内の複数の第2のメタデータエントリを含み、前記メタデータが、第1のメタデータ及び第2のメタデータを含み、前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記メタデータを前記第1のメタデータエントリに書き込むことと、
前記第1のメタデータを前記第2のメタデータエントリに書き込むことと、を行う、装置。
【請求項5】
混合削除特性を有する前記データが、前記第1のメタデータに対応する第2のデータを含み、前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記第1のメタデータに対応する前記第2のデータを排出することと、
前記第2のメタデータを前記第2のメタデータエントリに書き込むことと、を行う、請求項に記載の装置。
【請求項6】
プログラムされた命令を有するプロセッサを備える装置であって、前記命令は、
混合削除特性を有するデータを中間記憶装置内の第1の物理消去ブロック(PEB)の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第1の削除特性を有する第1のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記ログを使用して、前記第1の削除特性を有する前記第1のデータを識別することと、
前記第1の削除特性を有する前記第1のデータを、メインメモリ内の第2のPEBに排出することと、を行い、
前記プロセッサが、更なるプログラムされた命令を有し、前記更なるプログラムされた命令は、
前記第1のPEBの前記複数のデータエントリの第1の部分が前記メインメモリに排出されていることを判定することと、
前記第1のPEBを消去することと、を行い、
前記プロセッサが、書き込みI/Oタイプ識別子を含む複数の入力/出力(I/O)タイプ識別子を維持する更なるプログラムされた命令を有し、前記第1のPEBの前記複数のデータエントリの前記第1の部分が前記書き込みI/Oタイプ識別子に対応する、装置。
【請求項7】
システムであって、
ホストログ履歴(HLH)ログと、
前記HLHログに結合されたコントローラであって、
混合削除特性を有するデータを中間記憶装置内の第1の物理消去ブロック(PEB)の複数のデータエントリに連続的に書き込むことであって、前記混合削除特性を有する前記データは、第1の削除特性を有する第1のデータを含む、書き込むことと、
メタデータを前記HLHログ内の複数のメタデータエントリ内に維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記HLHログを使用して、前記第1の削除特性を有する前記第1のデータを識別することと、
前記第1の削除特性を有する前記第1のデータを、メインメモリ内の第2のPEBに排出することと、を行う、コントローラと、を備え、
前記コントローラが、
異なる削除特性を識別する複数のログ識別子(ID)を維持することと、
前記複数のログIDの中から第1のログIDを選択することであって、前記第1のログIDが、前記第1のデータに対応する前記第1の削除特性を識別する、選択することと、
前記第2のPEBが開放されており、かつ、前記第1の削除特性を有する任意のデータに割り当てられていることを判定することと、
前記第1のデータを前記第2のPEBに書き込むことと、を行い、
前記コントローラが、
最も古い有効なメタデータエントリからスタートして、前記複数のメタデータエントリのウィンドウをスキャンすることと、
前記第1のログIDが前記複数のメタデータエントリの前記ウィンドウ内の最大数のメタデータエントリに対応することに応答して、前記第1のログIDを選択することと、を行う、システム。
【請求項8】
前記コントローラが、前記最も古い有効なメタデータエントリに対応するデータを排出することに応答して、前記ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、前記ウィンドウをシフトさせる、請求項に記載のシステム。
【請求項9】
前記コントローラが、
前記第1のログIDに対応する全てのデータが排出されたことを判定することと、
第2のログIDを選択することであって、前記第2のログIDは、第2のデータに対応する第2の削除特性を識別する、選択することと、
前記第2のデータを前記第2のPEBに書き込むことと、を行う、請求項に記載のシステム。
【請求項10】
方法であって、
混合削除特性を有するデータを中間記憶装置内の第1の物理的消去ブロック(PEB)の複数のデータエントリに、コントローラによって連続的に書き込むことであって、前記混合削除特性を有する前記データは、第1の削除特性を有する第1のデータを含む、書き込むことと、
メタデータをログ内の複数のメタデータエントリ内に、前記コントローラによって維持することであって、前記メタデータは、前記混合削除特性を有する前記データに対応する、維持することと、
前記コントローラによって、かつ、前記ログを使用して、前記第1の削除特性を有する前記第1のデータを識別することと、
前記第1の削除特性を有する前記第1のデータをメインメモリ内の第2のPEBに、前記コントローラによって排出することと、を含み、
メタデータを前記コントローラによって維持することが、異なる削除特性を識別する複数のログ識別子(ID)を、前記コントローラによって維持することを含み、
前記コントローラによって、かつ、前記ログを使用して、前記第1の削除特性を有する前記第1のデータを識別することが、
前記複数のログIDの中から第1のログIDを、前記コントローラによって選択することであって、前記第1のログIDが、前記第1のデータに対応する前記第1の削除特性を識別する、選択することと、
前記第2のPEBが開放されており、かつ、前記第1の削除特性を有する任意のデータに割り当てられていることを、前記コントローラによって判定することと、を含み、
前記第1の削除特性を有する前記第1のデータをメインメモリ内の第2のPEBに、前記コントローラによって排出することが、前記第1のデータを前記第2のPEBに書き込むことを含み、
前記複数のログIDの中から第1のログIDを、前記コントローラによって選択することが、
最も古い有効なメタデータエントリからスタートして前記複数のメタデータエントリのウィンドウを、前記コントローラによってスキャンすることと、
前記第1のログIDが前記複数のメタデータエントリの前記ウィンドウ内の最大数のメタデータエントリに対応することに応答して、前記第1のログIDを、前記コントローラによって選択することと、を含む、方法。
【請求項11】
前記最も古い有効なメタデータエントリに対応するデータを排出することに応答して、前記ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、前記ウィンドウを、前記コントローラによってシフトすることを更に含む、請求項10に記載の方法。
【請求項12】
前記第1のログIDに対応するいくつかのデータが排出されたことを、前記コントローラによって判定することと、
前記第2のPEBが閉じていることを、前記コントローラによって判定することと、
開放されている、メインメモリ内の第3のPEBを、前記コントローラによって識別することと、
第2のログIDを、前記コントローラによって選択することであって、前記第2のログIDは、第2のデータに対応し、かつ前記複数のメタデータエントリの前記ウィンドウ内の更新された最大数のメタデータエントリに対応する第2の削除特性を識別する、選択することと、
前記第2のデータを前記第3のPEBに書き込むことと、を更に含む、請求項10に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
不揮発性メモリシステムでは、ファイルシステムは、フラッシュ変換層との相互作用を通じて、複数のログファイルシステムからのデータがどのように記憶及び取得されるかを制御することができる。ある実施形態では、ハードウェアの制約に起因して、ファイルシステムは、フラッシュ変換層と相互作用して、複数のログファイルシステムログから単一の物理消去ブロックにデータを書き込むことができる。
【発明の概要】
【0002】
本開示は、様々な実施形態において、不揮発性メモリに関し、より具体的には、混合データを異なるデータタイプで分離することに関する。
【0003】
本明細書で開示される例示的な実施形態は、中間記憶装置内の第1の物理消去ブロック(PEB)の複数のデータエントリに、混合削除特性を有するデータを連続的に書き込む、プログラムされた命令を有するプロセッサを含む装置である。混合削除特性を有するデータは、第1の削除特性を有する第1のデータを含む。プロセッサは、ログ内の複数のメタデータエントリ内にメタデータを維持する、プログラムされた命令を有する。メタデータは、混合削除特性を有するデータに対応する。プロセッサは、ログを使用して、第1の削除特性を有する第1のデータを識別し、かつ、第1の削除特性を有する第1のデータをメインメモリ内の第2のPEBに排出する、プログラムされた命令を有する。
【0004】
本明細書に開示される別の例示的な実施形態は、ホストログ履歴(HLH)ログと、HLHログに結合されたコントローラとを含むシステムである。コントローラは、中間記憶装置内の第1の物理的消去ブロック(PEB)の複数のデータエントリに、混合削除特性を有するデータを連続的に書き込む。この混合削除特性を有するデータは、第1の削除特性を有する第1のデータを含む。コントローラは、HLHログ内の複数のメタデータエントリ内にメタデータを維持する。メタデータは、混合削除特性を有するデータに対応する。コントローラは、HLHログを使用して、第1の削除特性を有する第1のデータを識別し、第1の削除特性を有する第1のデータをメインメモリ内の第2のPEBに排出する。
【0005】
本明細書に開示される別の例示的な実施形態は、コントローラによって、中間記憶装置内の第1の物理消去ブロック(PEB)の複数のデータエントリに、混合削除特性を有するデータを連続的に書き込むことを含む方法である。混合削除特性を有するデータは、第1の削除特性を有する第1のデータを含む。この方法は、コントローラによって、ログ内の複数のメタデータエントリ内にメタデータを維持することを含む。メタデータは、混合削除特性を有するデータに対応する。本方法は、コントローラによって、かつログを使用して、第1の削除特性を有する第1のデータを識別することと、コントローラによって、第1の削除特性を有する第1のデータをメインメモリ内の第2のPEBに排出することと、を含む。
【図面の簡単な説明】
【0006】
図1】いくつかの実施形態による、論理アドレス空間、及びログ構造化ファイルシステムに見られるような、連続的なログベースの追加専用の書き込み構造の一実施形態を描写する。
【0007】
図2】いくつかの実施形態による、混合データを異なるデータタイプで分離するためのシステムを描写する。
【0008】
図3A】いくつかの実施形態による、メタデータエントリを描写する。
【0009】
図3B】いくつかの実施形態による、連結されたメタデータエントリを描写する。
【0010】
図4】いくつかの実施形態による、排出候補の選択の際のHLHキャッシュの例示的実施形態を描写する。
【0011】
図5】いくつかの実施形態による、データを異なるデータタイプで分離するためのプロセスの例示的なフローチャートを描写する。
【発明を実施するための形態】
【0012】
以下の詳細な説明では、本明細書の一部をなす、添付図面を参照する。図面において、同様の記号は、文脈がそうでない旨を指示しない限り、典型的には同様の構成要素を識別する。詳細な説明、図面、及び特許請求の範囲に記載される例示的な実施形態は、限定することを意図するものではない。他の実施形態を利用することができ、本明細書に提示される主題の趣旨又は範囲から逸脱することなく、他の変更が行われてもよい。本開示の態様は、本明細書に概ね記載され、図面に示されるように、様々な異なる構成で配置、置換、組み合わせ、及び設計することができ、これらの全てが明示的に企図され、本開示の一部をなすものであることが容易に理解されるであろう。
【0013】
マルチログファイルシステムは、データを異なるデータタイプで分離するために、いくつかのログファイルシステム(LFS)ログを管理する。フラッシュ記憶デバイスは、マルチログファイルシステムとインターフェースして、いくつかのLFSログのデータを記憶する。リソースの制約に起因して、モバイルの埋め込み記憶セグメントでは、フラッシュ記憶装置のフラッシュ遷移層(FTL)でのLFSログ当たりの開放された物理消去ブロック(PEB)を有することは実用的ではない。したがって、いくつかの実施形態では、全てのLFSログは、単一の解放PEBに書き込まれ、対応するデータが、物理的媒体内で混合される。
【0014】
1つのPEB内でいくつかのLFSログを混合すると、PEB内の論理的に連続したデータのフラグメンテーションが増加する。フラグメンテーションの第1の影響は、キャッシング効率に起因する。ログからのデータがPEBに連続的に書き込まれるとき、PEB内のデータの論理対物理(L2P)のマッピングは、所与の圧縮比で圧縮され、RAMにキャッシュされ得る。RAM内にアクセス可能なL2Pで複数の読み出し要求を供給することは、読み出し性能が向上する結果をもたらすことができる。しかしながら、フラグメンテーションは、L2PをRAMにキャッシュする際の圧縮比及び効率を低下させ、ひいては全体的な読み出し性能に悪影響を及ぼす。
【0015】
フラグメンテーションの第2の影響は、FTLデータ経路(DP)のパイプ効率に起因する。DPは、連続的な読み出しを並列に実行するN個のダイを含む。しかしながら、データが物理的に隣接していない場合、必ずしも全てのダイが利用されない。単一のブロック内の全てのログを混合することにより、論理的に連続的でなく、その結果、物理的に隣接しない、データが得られ、劣化した連続読み取り性能をもたらす。
【0016】
いくつかのLFSログを混合すると、複数の物理的ブロック内の廃棄データの数が増加する。複数の物理的ブロックでの廃棄データの増加は、FTLの不要データ収集(GC)によって、過剰なFTLメタデータの更新及び有効データの複数の再配置につながる。過剰なメタデータの更新及び再配置は、書き込み増幅を増加させ、フラッシュデバイスの性能を低下させる。必要とされるものは、リソースの制約下で動作して、いくつかのLFSログの異なるデータタイプを分離し、各データタイプのデータを専用記憶装置に記憶して、論理的に連続するデータがやはり物理的に隣接することを確実にすることができるシステム及び方法である。
【0017】
本明細書に記載の開示の実施形態では、異なるデータタイプのデータを分離するシステム及び方法が示される。一実施形態では、システムは、ホストログ履歴(HLH)ログ内のメタデータエントリを用いてデータを追跡する。一実施形態では、HLHログの一部は、より速い読み取りのためにRAMにキャッシュされる。一実施形態では、システムは、メタデータエントリ内で識別されたデータタイプに基づいて、メインメモリに排出されるログの候補を選択する。一実施形態では、システムは、データタイプに割り当てられた物理的消去ブロックに共通のデータタイプを有する複数のデータエントリを排出するのに、「最大のものが最初」の排出ポリシーを使用する。
【0018】
本開示のいくつかの実施形態では、システムは、LFSログの空間的局所性を改善する。結果として、システム及び方法は、論理的に連続するデータがやはり物理的に隣接しているときに、より良好なL2Pキャッシュ圧縮比と、FLT DPパイプのより良好な利用とに起因して、性能を改善する。いくつかの実施形態では、システムは、FLT GC作用での書き込み増幅を低減する。
【0019】
ある実施形態では、ファイルシステムは、本明細書で使用するとき、データ又はデータの単位がフラッシュ変換層(FTL)との相互作用を通じてどのように記憶及び取得されるかを制御するシステムを指し得る。本明細書に記載されるとき、データは、コンピュータ可読媒体内で記憶可能であるように、体系化された情報を指すことができる。更に、ファイルシステムは、ファイルを管理し、ファイル上で動作を実行してもよい。ある実装では、ファイルシステムは論理ファイルシステムを指し、ファイルシステムは、ファイル及びメモリとユーザアプリケーションとの間のファイルレベルの動作に関与する。更に、ファイルシステムは、要求された動作を、処理のためのフラッシュ変換層に渡すことができる。少なくとも1つの実装では、ファイルシステムは、ログ構造化ファイルシステムであってもよい。
【0020】
本明細書で使用するとき、フラッシュ変換層(FTL)は、線形フラッシュメモリにファイル又はディスクドライブのようなオペレーティングシステムに出現させるようにフラッシュメモリを制御するドライバ又はコントローラを指し得る。フラッシュメモリをディスクドライブとして出現させるために、FTLは、フラッシュメモリのより大きい消去ブロックから「仮想的な」データの小さいブロックを生成することができる。また、FTLは、管理されたデータがフラッシュメモリ内の異なる位置に実際に記憶されているときに、フラッシュメモリ上のデータをそれが「適所に書き込まれている」ように思われるように管理することができる。更に、FTLは、データを記憶するための、クリーンな/消去された場所が存在するようにフラッシュメモリを管理することができる。
【0021】
図1は、論理アドレス空間120と、ログ構造化ファイルシステムに見られるような、連続的なログベースの追加専用の書き込み構造140の一実施形態を描写する。不揮発性メモリ装置の論理アドレス空間120は、図示の実施形態では、不揮発性メモリ装置の物理的記憶容量及び対応する記憶デバイスのアドレス空間よりも大きくなることができる。描写された実施形態では、不揮発性メモリデバイスは、論理アドレス「0」322で始まり、論理アドレス「264−1」326まで延在する64ビット論理アドレス空間120を有する。図示されるように、論理アドレス空間120は、「X」でマークされた位置にデータを記憶することができ、「X」のない位置にデータを記憶するために利用可能な位置を有することができる。記憶デバイスのアドレス空間は、不揮発性メモリデバイスの論理アドレス空間120のサブセットのみに対応するため、論理アドレス空間120の残りの部分は、不揮発性メモリデバイスの他の機能のために限定されるか、又は使用されてもよい。
【0022】
描写された実施形態での連続的なログベースの追加専用の書き込み構造140は、不揮発性メモリデバイスの物理的記憶媒体の論理表現である。ある実施形態では、不揮発性メモリデバイスは、データを連続的に記憶し、データを、追加点144でログベースの書き込み構造140に追加する。描写された実施形態では、割り当てを解除された/未使用の論理ブロックを記憶する不揮発性記憶媒体は、不揮発性メモリデバイス用の利用可能な記憶プール146に追加される。不揮発性メモリ装置から無効データを消去し、消去されたデータに対応する物理的記憶容量を利用可能な記憶プール146に戻って追加することによって、一実施形態では、ログベースの書き込み構造140は、周期的で、環状であり、理論的に無限の容量を有する。
【0023】
描写された実施形態では、追加点144は、データ「A」〜「M」を記憶する円形パターン142内で、ログベースの追加専用の書き込み構造140の周囲を進む。一実施形態では、円形パターン142は、不揮発性メモリ媒体のバランスを着用しており、不揮発性メモリ媒体の可使時間を延ばす。描写された実施形態では、ファイルシステムは、ブロック148、150、152、154上の「X」のマークによって表される、いくつかのブロック148、150、152、154を無効なものとして、指し示すことができる。ファイルシステムは、一実施形態では、無効ブロック148、150、152、154の物理的記憶容量を回復することができ、回復された容量を利用可能な記憶プール146に追加することができる。ファイルシステムは、無効なブロックを新しいデータで上書きすることができる。描写された実施形態では、ブロック148、150、152、354の修正されたバージョンは、読み取り、修正、書き込み動作などで新規ブロック156、158、160、162として、ログベースの書き込み構造340に追加されており、元のブロック148、150、152、154を復元することができる。
【0024】
ある実施形態では、ログベースの書き込み構造140などのログベースの書き込み構造は、複数のログを維持する。少なくとも1つの実施形態では、データは、異なる因子に基づいて、複数のログのうちの1つに保存され得る。例えば、データは、データタイプに基づいて異なるログに保存されてもよい。本明細書で使用されるとき、データタイプはデータの特徴付けである。データタイプは、データのソース、データが更新及び/又は削除される頻度又は再新性(例えば、削除特性)等を記述することができる。データが更新及び/又は削除される頻度を記述するデータタイプに基づいて、データが異なるログに保存され得る少なくとも1つの実装では、データは、ホットログ、ウォームログ、及びコールドログに保存され得る。
【0025】
ある実施形態では、ログベースの書き込み構造は、フラッシュフレンドリファイルシステム(F2FS)によって制御されてもよい。F2FSの一部として、ファイルシステムは、複数のログを維持することができる。一実施形態では、F2FSは、ホットノードログ、ホットデータログ、ウォームノードログ、ウォームデータログ、コールドノードログ、及びコールドデータログを含む6つのログを維持することができる。例えば、F2FSは、データがディレクトリのための直接ノードブロックを表すときに、データがホットノードログに属すると判定することができる。F2FSは、データがディレクトリエントリブロック内に記憶されているときに、データがホットデータログに属すると判定することができる。F2FSは、データが規則的なファイルのための直接ノードブロック内に記憶されているときに、データがウォームノードログに属すると判定することができる。F2FSは、データがユーザによって作られたデータブロック内に記憶されているときに、データがウォームデータログに属すると判定することができる。F2FSは、データが間接ノードブロック内に記憶されているときに、データがコールドノードログに属すると判定することができる。F2FSは、データが、クリーニングによって移動されたデータブロック内に記憶され、ユーザによって指定されたデータブロック内に記憶されるか、又はマルチメディアファイルデータに記憶されているときに、データがコールドデータログに属すると判定することができる。一実施形態では、F2FSは、2MBサイズのF2FSセグメントでのログ内にランダムデータを連続的に書き込む。一実施形態では、F2FSは、セクションをクリーニングする(例えば、ブロックを無効として指し示す)。セクションのサイズは、セグメントのサイズの倍数であってもよい。一実施形態では、セグメントのサイズは、不揮発性メモリ内の物理消去ブロックのサイズに等しい。
【0026】
図2は、データを異なるデータタイプで分離するためのシステム200を示す。システム200は、フラッシュ変換層(FTL)202を含む。FTL202は、複数のログに関連付けられた混合データのための論理アドレスを、メインメモリ(MM)204内の記憶装置のための物理アドレスに変換することができる。本明細書で使用するとき、混合データは、異なるデータタイプを有するデータを指す。本明細書で使用するとき、メインメモリ204は、データを記憶するために使用される不揮発性メモリ素子上のメモリの一部であってもよい。一実施形態では、メインメモリは、セル当たり複数のビットが記憶され得る複数のマルチレベルセルを含んでもよい。メインメモリ204に記憶する前に、混合データは中間記憶装置206に記憶されてもよい。本明細書で使用するとき、中間記憶装置206は、メインメモリ204にデータを記憶する前にデータが記憶され得るメモリの一部であってもよい。一実施形態では、中間記憶装置206は、セルがセル当たり単一のビットを記憶する単一レベルのセル記憶領域であってもよい。一実施形態では、メインメモリ204及び中間記憶装置206は、フラッシュメモリの一部である。
【0027】
FTL202は、ファイルシステムから書き込み要求を受信して、複数のログからデータを書き込むことができる。一実施形態では、ファイルシステムは、システム200に結合されたホスト上にある。一実施形態では、システム200は、ホストとインターフェースするフラッシュ記憶デバイスである。FTL202は、複数のログからのデータを、中間記憶装置(IS)206内の単一の開放物理消去ブロック(PEB)208(1)にデータを書き込むことができる。データが複数のログからPEB208(1)に書き込まれるとき、複数のログからのデータが混合される。例えば、ホットノードログ、ホットデータログ、ウォームノードログ、ウォームデータログ、コールドノードログ、及びコールドデータログからのデータが、PEB208(1)に書き込まれてもよい。PEB208(1)が利用可能な空間を有さないときは、FTL202はPEB208(1)を閉じ、第2のPEB208(2)を開くことができる。FTL202は、複数のログから第2のPEB208(2)に更なるデータを書き込むことができる。一般に、中間記憶装置206は、N個のPEB208(1)〜PEB208(N)を有することができる。
【0028】
PEB208(1)は、データエントリを保持する。データの各ユニットは、別個のデータエントリに書き込まれてもよい。例えば、FTL202は、第1のログからの第1のデータをPEB208(1)の第1のデータエントリ210(1)に書き込むことができる。各データエントリは、異なる削除特性などの異なるデータタイプに関連付けられてもよい。例えば、データエントリ210(1)は、ホットログからのデータを含んでもよく、データエントリ210(2)は、ウォームログからのデータを含んでもよく、データエントリ210(3)は、コールドログからのデータを含んでもよい。異なる削除特性が、異なるパターンで図2に描写されている。各データエントリは、書き込み及び廃棄などの異なる入力/出力タイプに関連付けられてもよい。例えば、データエントリ210(1)〜210(3)は、書き込まれるデータを含んでもよい。したがって、データエントリ210(1)〜210(3)のデータは、「書き込み」I/Oタイプのものであってもよい。一実施形態では、書き込みI/Oタイプデータは、有効データと同義である。データエントリ210(4)は、古くなったデータ(例えば、書き込まれるべきデータであるが、データのより新しいバージョンによって取って代わられるデータ)を含むことができる。したがって、データエントリ210(4)は、「廃棄」I/Oタイプのものであってもよい。一実施形態では、廃棄I/Oタイプデータは無効データと同義である。一般に、各PEB208は、N個のデータエントリ210(1)〜210(N)のための空間を有することができる。一実施形態では、データエントリは可変サイズのものである。一実施形態では、各PEB208は、異なる量のデータエントリ又は異なるサイズのデータエントリを有する。この点に関して、Nは、PEB208ごとに異なることができる。
【0029】
書き込み要求を受信する部分として、FTL202は、中間記憶装置206に書き込まれているデータに関するメタデータを受信することができる。システム200は、ホストログ履歴(HLH)ログ212を含む。一実施形態では、HLHログ212は、フラッシュメモリの一部である。FTL202は、書き込み要求の一部として受信したメタデータを、HLHログ212のメタデータエントリ214(1)〜214(N)に書き込むことができる。メタデータエントリ214(1)は、HLHログ212のヘッドと称されてもよく、メタデータエントリ214(N)は、HLHログ212のテールと称されてもよい。各メタデータエントリ214は、中間記憶装置206内のデータエントリ210を指す。
【0030】
ここで例示的な実施形態図3Aを参照すると、メタデータエントリ214は、データエントリ210のスタートブロックアドレス(BA)302、データエントリ210のサイズ304、データエントリ210のログ識別子(ID)306、及びデータエントリ210のI/Oタイプ308を含む。一実施形態では、ログID306は、データエントリ210に記憶されたデータの削除特性のタイプを示す。一実施形態では、I/Oタイプ308は、データエントリ210に記憶されたデータのI/Oタイプを示す。一実施形態では、メタデータエントリ214は4バイト(4B)であり、スタートBA302は21ビット(21b)であり、サイズ304は7bであり、ログID306は3bであり、I/Oタイプ308は1bである。一実施形態では、BA302は論理BA(LBA)である。一実施形態では、BA302は物理BA(PBA)である。一実施形態では、メタデータエントリは、データエントリの物理位置を直接指す。一実施形態では、BA302がPBAであることに応答して、L2P変換は不要である。一実施形態において、サイズ304に割り当てられた7bは、データエントリ210のサイズを示すのに十分な大きさではない。一実施形態では、単一のデータエントリ210は、複数のメタデータエントリ214によって指されてもよい。
【0031】
一実施形態では、第1のメタデータエントリ及び第1のメタデータエントリに隣接する第2のメタデータエントリは、同じ削除特性を示す同じログIDを有し得る。一実施形態では、FTL202は、第1のメタデータエントリ及び第2のメタデータエントリが同じ削除特性を有することを判定し、FTL202は、第1のメタデータエントリ及び第2のメタデータエントリを連結する。ここで図3Bの例示的実施形態を参照すると、メタデータエントリ214は、第1のスタートLBA302と、第1のデータサイズ304と、第1のデータI/Oタイプ308と、第2のスタートLBA302と、第2のデータサイズ304と、第2のデータI/Oタイプ308と、ログID306と、を含む。追加の、より少ない、又は異なる部分が、メタデータエントリ214内に含まれてもよく、この部分は、実施形態に応じて、図3A、3Bに関して任意の順序で配置されてもよい。
【0032】
図2を再び参照すると、システム200はHLHキャッシュ216を含む。FTL202は、HLHログ212の一部をテールからHLHキャッシュ216に書き込むことができる。一実施形態では、HLHキャッシュ216は、ランダムアクセスメモリ(RAM)の一部である。FTL202は、メタデータエントリ214(1)〜214(N)の一部を、HLHキャッシュ216のメタデータエントリ218(1)〜218(N)に書き込むことができる。
【0033】
一実施形態では、FTL202は、中間記憶装置206内のデータの部分を選択する。一実施形態では、選択されたデータの部分は、同じ削除特性を有する。FTL202は、データの部分に対応する(例えば、データの部分のデータエントリ210で指し示す)メタデータエントリ218を読み取ることによって、データの部分を識別することができる。一実施形態では、FTL202は、データの部分に対応するメタデータエントリ218が、同じ削除特性を示す同じログID306を有すると判定してもよい。一実施形態では、FTL202は、データの部分を、中間記憶装置206からメインメモリ204に排出する。一実施形態では、データを排出することは、メインメモリ204内のPEBの追加点にデータを書き込むことを指す。
【0034】
メインメモリ204への選択的な排出に起因する中間記憶装置206でのフラグメンテーションに対処するために、一実施形態では、FTL202は、HLHログ候補を決定して選択する。図4を参照すると、HLHキャッシュ410が示されている。一実施形態では、FTL202は、所定のウィンドウ412内で、最も古い有効なメタデータエントリ、例えば、図2に関するメタデータエントリ218(N)からスタートして、(図2に関する)メタデータエントリ218をスキャンする(例えば、連続的に読み出す)。一実施形態では、所定のウィンドウ412の長さは、HLHキャッシュ410内のメタデータエントリ218の数に等しい。一実施形態では、所定のウィンドウ412の長さは、HLHキャッシュ410内のメタデータエントリ218の数よりも短い。FTL202は、一実施形態では、所定のウィンドウ412内でメタデータエントリ218の各ログID306を識別する。異なるログID306は、異なるパターンで図4に表される。一実施形態では、FTL202は、各識別されたログID306に対応するデータペイロードを決定する。FTL202は、一実施形態では、ログID306を有するメタデータエントリ218のサイズ304の合計として、ログID306に対応するデータペイロードを計算する。一実施形態では、FTL202は、データペイロードを、ログID306を有するメタデータエントリ218によって指されたデータエントリ210の合計を計算する。一実施形態では、FTL202は、最大のデータペイロードに対応する第1のログID306を有するメタデータエントリ218を選択する。したがって、図4に関するHLHキャッシュ410の例示的実施形態では、FTL202は、メタデータエントリ414を選択する。
【0035】
FTL202は、一実施形態では、メタデータエントリ414のそれぞれに対応するデータの物理的位置を決定する。FTL202は、一実施形態では、メタデータエントリ414のそれぞれで、スタートLBA302を識別する。一実施形態では、FTL202は、論理対物理(L2P)のマッピング構造を使用して、各スタートLBA302を物理アドレスに変換することによって、データの物理アドレスを識別する。一実施形態では、L2Pマッピング構造は、システム200のRAM内に記憶される。
【0036】
システム200はメインメモリ204を含む。一実施形態では、FTL202は、メインメモリ204のPEB220(1)を識別する。識別されたPEB220(1)は、一実施形態では、(例えば、第1の削除特性を有した)第1のログID306を有するデータに割り当てられる。一実施形態では、FTL202は、識別された物理アドレスに位置するデータをメインメモリ204のPEB220(1)に排出する。一実施形態では、FTL202は、識別された物理アドレスに位置するデータを、データエントリ222(1)〜222(N)の部分に書き込む。一般に、メインメモリ204は、PEB220(1)〜220(N)を含む。
【0037】
一実施形態では、FTL202は、メタデータエントリ414に対応するデータを排出することに応答して、それらのメタデータエントリのデータが排出されたことをデータ構造内に示す。データ構造は、メタデータエントリに対応するインデックスと、そのメタデータエントリのデータが排出されたかどうかを示すインデックスに対応する値と、を有するルックアップテーブルであってもよい。一実施形態では、FTL202は、メタデータエントリ414に対応するデータを排出することに応答して、メタデータエントリ414を削除する。一実施形態では、このメタデータエントリ414はもはや有効メタデータエントリ414ではない。
【0038】
図4を再び参照すると、HLHキャッシュ420は、メタデータエントリ414に対応するデータの排出の結果として示される。HLHキャッシュ420において、メタデータエントリ414は、メタデータエントリがもはや有効ではないことを示すパターンを有していないものとして描写されている。一実施形態では、FTL202は、所定のウィンドウ422内で、最も古い有効なメタデータエントリからスタートして所定のメタデータエントリをスキャンする。所定のウィンドウ422は、一実施形態では、所定のウィンドウ412と同じである。FTL202は、一実施形態では、既に排出されたデータのどんなメタデータエントリも除外して、所定のウィンドウ412内でメタデータエントリの各ログID306を識別する。一実施形態では、FTL202は、各識別されたログID306に対応するデータペイロードを決定する。一実施形態では、FTL202は、残りのメタデータエントリの最大のデータペイロードに対応する第2のログID306を有するメタデータエントリを選択する。したがって、HLHキャッシュ420の例示的実施形態では、FTL202は、メタデータエントリ424を選択する。FTL202は、一実施形態では、メタデータエントリ424に対応するデータをメインメモリ204の第2のPEB220(2)に排出する。識別されたPEB220(2)は、一実施形態では、第2のログID306を有するデータに割り当てられる。
【0039】
HLHキャッシュ430は、メタデータエントリ424に対応するデータの排出の結果として示される。HLHキャッシュ430では、メタデータエントリ414及びメタデータエントリ424は、メタデータエントリ414及びメタデータエントリ424に対応するデータが排出されたことを示すパターンを有していないものとして描写される。一実施形態では、FTL202は、所定のウィンドウ432内で、最も古い有効なメタデータエントリからスタートして所定のメタデータエントリをスキャンする。一実施形態では、FTL202は、最も古い有効なメタデータエントリが変更された(例えば、HLHキャッシュ430の最も古い有効なメタデータエントリは、HLHキャッシュ420の最も古い有効なメタデータエントリとは異なる)と判定する。最も古い有効なメタデータエントリが変更されたと判定することに応答して、一実施形態では、FTL202は、それが最も古い有効なエントリからスタートするように、ウィンドウ432をシフトさせる。したがって、所定のウィンドウ432は、一実施形態では、ウィンドウ432がシフトされていることを除いて、所定のウィンドウ422と同じである。FTL202は、一実施形態では、残りのメタデータエントリの最大のデータペイロードに対応する第3のログID306を有するメタデータエントリ434を選択する。FTL202は、一実施形態では、メタデータエントリ434に対応するデータをメインメモリ204の第3のPEB220(3)に排出する。識別されたPEB220(3)は、一実施形態では、第3のログID306を有するデータに割り当てられる。
【0040】
一実施形態では、FTL202は、HLHキャッシュ216内の全てのメタデータエントリが無効になっている(例えば、既に排出されているデータを指しているか、又は廃棄データを示している)と判定すると、メタデータエントリを削除し、かつ/又はHLHログ212からの他のメタデータエントリでメタデータエントリを上書きすることができる。一実施形態では、HLHキャッシュ216は、HLHログ212のテールからスタートし、HLHキャッシュ216が再度満たされるまで、HLHログ212のヘッドに向かってHLHログ212の部分を徐々に書き込むことによって、HLHログ212からスライド方式で再度満たされる。
【0041】
FTL202は、(あるログID306を有した)あるタイプの削除特性を有するデータを、メインメモリ204の対応する割り当てられたPEB220に書き込む。一実施形態では、メインメモリ204は、所定の期間内にFTL202によって識別された数個のログIDとして、たかだか数個の開放PEB220を有する。一実施形態では、割り当てられたPEB220をある削除特性のデータで満たすと、割り当てられたPEB220は閉じられ、新しいPEB220が、ある削除特性を有するデータに割り当てられる。一実施形態では、割り当てられたPEB220が満たされ、それによって閉じられる前に、第1のログID306に対応するデータのいくつかのみが割り当てられたPEB220に排出される。一実施形態では、FTL202は、新しいPEB220を識別し、HLHキャッシュ216内のメタデータエントリ218のウィンドウの新しいスキャンを開始する。一実施形態では、FTL202は、第2のデータに対応し、かつ、メタデータエントリ218のウィンドウ内の最大数のメタデータエントリ(例えば、メタデータエントリ414)に対応する、第2のログID306を選択する。一実施形態では、FTL202は、第2のデータを新しいPEB220に書き込む。
【0042】
一実施形態では、FTL202は、第1のPEB220が所定の閾値を超える場合に開放されることに応答して、HLHキャッシュ216内の次の最後の有効エントリの次のログIDを選択し、かつ、第1のPEB220が最初に次のログIDに割り当てられていなくても、次のログIDに対応するデータを第1のPEB220に排出することができる。所定の条件は、所定の経過時間、所定の数の読み取られるメタデータエントリ、又は所定の数のメインメモリ204に排出されるデータであってもよい。
【0043】
FTL202は、カスタムVLSI回路又はゲートアレイ、論理チップ、トランジスタ、又は他のディスクリート部品等の市販の半導体、を含むハードウェア回路として実装されてもよい。FTL202は、フィールドプログラマブルゲートアレイ、プログラマブルアレイ論理、プログラマブル論理デバイス等の、プログラマブルハードウェアデバイスに実装されてもよい。FTL202は、また、様々なタイプのプロセッサによる、実行のためのソフトウェア(例えば、プログラムされた命令)に、少なくとも部分的に実装されてもよい。FTL202は、一実施形態では、様々なタイプのプロセッサを含む。ソフトウェア部分は、持続性記憶媒体を含む1つ以上のコンピュータ可読及び/又は実行可能な記憶媒体上に記憶されてもよい。
【0044】
図5は、異なるデータタイプでデータを分離するためのプロセス500の例示的なフローチャートを示す。プロセス500は、図2に関するFTL202などのコントローラによって実行されてもよい。追加の動作、より少ない動作、又は異なる動作が、実施形態に応じて、プロセス500で、実行されてもよい。コントローラは、中間記憶装置内の第1の物理消去ブロック(PEB)に、混合データを書き込む(502)。本明細書で混合データは、混合データタイプを有するデータを指す。一実施形態では、データタイプは、削除特性によって規定される。一実施形態では、コントローラは、セグメントの単位で第1のPEBにデータを書き込む。一実施形態では、データエントリは、第1のPEB内のユニットである。本明細書のデータエントリは、1つのログソース(例えば、ホットノードログ)からの論理的に連続するデータである。1つのセグメントに複数のデータエントリが存在してもよい。
【0045】
コントローラは、メタデータをログに維持する(504)。メタデータは、混合データに対応する。一実施形態では、コントローラは、メタデータエントリとしてログ内にメタデータを書き込む。各メタデータエントリは、異なるデータエントリを指すことができる。一実施形態では、ログは、フラッシュメモリ内の第1のログと、ランダムアクセスメモリ(RAM)内の第2のログと、を含む。一実施形態では、コントローラは、フラッシュメモリ内の第1のログにメタデータエントリを書き込む。コントローラは、一実施形態では、メタデータエントリの部分をRAM内の第2のログに書き込む。一実施形態では、コントローラは、RAM内の第2のログを使用して、排出するデータを選択する。
【0046】
一実施形態では、コントローラは、メタデータエントリ内で、異なる削除特性を識別するログIDを維持する。コントローラは、第1のメタデータエントリ、及び第1のメタデータエントリに隣接する第2のメタデータエントリが、同じ削除特性を有する(例えば、メタデータエントリの対応するログIDフィールドに記憶された同じログIDを有する)ことを判定することができる。コントローラは、第1のメタデータエントリ及び第2のメタデータエントリを連結することができる。コントローラは、一実施形態では、I/Oのタイプを示す入力/出力(I/O)タイプ識別子は、メタデータエントリによって参照されるデータに関連付けられる。I/Oタイプ識別子は、書き込み、消去、及び廃棄を含むことができる。一実施形態では、消去は、マッピングされたアドレス空間からマッピングされていないアドレス空間にデータが移動されるI/Oのタイプである。一実施形態では、廃棄は、消去機能の無保護の変異型である。この点に関して、破棄は、データが永続的に削除されるI/Oのタイプであってもよい。
【0047】
コントローラは、ログを使用して、第1の削除特性を有する第1のデータを識別する(506)。コントローラは、メタデータエントリのウィンドウをスキャンすることができる。一実施形態では、ウィンドウは所定の長さを有し、最も古い有効なメタデータエントリからスタートする。一実施形態では、コントローラは、ウィンドウのスタート位置を決定することができる。コントローラは、最も古い有効なメタデータエントリに対応するデータを排出することに応答して、ウィンドウが次に最も古い有効なメタデータエントリからスタートするように、ウィンドウをシフトさせることができる。
【0048】
コントローラは、第1のデータの第1の削除特性を識別する第1のログIDを選択することができる。一実施形態では、コントローラは、第1のログIDがウィンドウ内の最大数のメタデータエントリに対応することに応答して第1のログIDを選択する。コントローラは、一実施形態では、メインメモリ内の第2のPEBが第1の削除特性を有する任意のデータに割り当てられると判定する。コントローラは、第2のPEBが書き込みのために開放されていると判定することができる。
【0049】
コントローラは、第1のデータをメインメモリ内の第2のPEBに排出する(508)。一実施形態では、コントローラは、第1のデータを第2のPEBの追加点に書き込む。一実施形態では、コントローラは、排出されたデータを指す、RAM内の第2のログ内のメタデータエントリを追跡する。一実施形態では、コントローラは、RAM内の第2のログ内の全てのメタデータエントリに対応するデータを排出することに応答して、RAM内の第2のログ内のメタデータエントリを、フラッシュメモリ内の第1のログからの他のメタデータエントリで上書きする。
【0050】
一実施形態では、コントローラは、第1のPEBからの全てのデータエントリがメインメモリに排出されたことを判定する。判定に応答して、一実施形態では、コントローラは第1のPEBを消去する。一実施形態では、コントローラは、第1のPEBの利用可能な空間を利用可能なメモリプールに戻す。一実施形態では、コントローラは、書き込みI/Oタイプを示すメタデータを有する(第1のPEBからの)全てのデータエントリがメインメモリに排出されたことを判定する。判定に応答して、一実施形態では、コントローラは第1のPEBを消去する。
【0051】
一実施形態では、コントローラは、第1のログIDに対応する全てのデータが排出されたこと、及び、第2のPEBが利用可能なスペース(例えば、追加点)を有することを判定する。コントローラは、一実施形態では、第2のログIDを選択する。一実施形態では、第2のログIDは、第2のデータに対応する第2の削除特性を識別する。コントローラは、一実施形態では、第2のデータを第2のPEBの追加点に書き込む。
例示的実施形態の構成
【0052】
様々な例示的な実施形態に示されるようなシステム及び方法の構成及び配置は、単なる例示に過ぎない。本開示では、わずかな実施形態のみが詳細に説明されてきたが、多くの修正(例えば、様々な要素のサイズ、寸法、構造、形状、及び比率の変化、パラメータの値、実装配置、材料、色、配向の使用など)が可能である。例えば、要素の位置を逆転させるか、又は別の方法で変化させてもよく、個別の要素又は位置の性質又は数を変更し又は変化させてもよい。したがって、全てのこのような修正は、本開示の範囲内に含まれることが意図される。任意のプロセス又は方法ステップの順序又はシーケンスは、代替実施形態に従って変更又は並び直しされてもよい。他の置換、修正、変更、及び省略が、本開示の範囲から逸脱することなく、例示的な実施形態の設計、動作条件、及び配置で行われてもよい。
【0053】
本開示は、様々な動作を達成するための、方法、システム、及び任意の機械可読媒体上のプログラム製品を企図する。本開示の実施形態は、既存のコンピュータプロセッサを使用して、又はこの若しくは別の目的のために組み込まれた適切なシステム用の専用コンピュータプロセッサによって、又はハードワイヤードシステムによって実装されてもよい。本開示の範囲内の実施形態は、機械実行可能命令又はその上に記憶されたデータ構造を搬送又は有するための機械可読媒体を備えるプログラム製品を含む。このような機械可読媒体は、汎用又は専用のコンピュータ、又はプロセッサを備える他の機械によってアクセスすることができる任意の利用可能な媒体であり得る。例として、このような機械可読媒体は、RAM、ROM、EPROM、EEPROM、CD−ROM、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶デバイス、又は、機械実行可能命令又はデータ構造の形態で所望のプログラムコードを搬送又は記憶するために使用することができ、汎用又は専用のコンピュータ又はプロセッサを備える他のマシンによってアクセスすることができる任意の他の媒体を備えることができる。情報がネットワーク又は別の通信接続(有線、無線、又は有線若しくは無線の組み合わせのいずれか)を介して機械に情報が転送又は提供されるとき、機械はこの接続を機械可読媒体として適切に見なす。したがって、任意のこのような接続は、機械可読媒体と適切に称される。上記の組み合わせもまた、機械可読媒体の範囲内に含まれる。機械実行可能命令としては、例えば、汎用コンピュータ、専用コンピュータ、又は専用の処理機械に、ある機能又は機能群を実行させる命令及びデータを含む。
【0054】
図面は方法ステップの具体的な順序を示しているが、ステップの順序は描写されているものと異なっていてもよい。また、2つ以上のステップが、同時に、又は部分的な同時性で実行されてもよい。そのような変更は、選択されたソフトウェア及びハードウェアのシステム、並びに設計者の選択に依存する。全てのこのような変更は、本開示の範囲内である。同様に、ソフトウェア実装は、様々な接続ステップ、処理ステップ、比較ステップ及び決定ステップを達成するための、ルールベースの論理及び他の論理を有する標準的なプログラミング技術で達成され得るはずである。
図1
図2
図3A
図3B
図4
図5