"重複排除システム内の複数の入力データセグメントに対して、合成バックアップのプロセッサデバイスによる構築を容易にする方法であって、前記複数の入力データセグメントの各々の入力データセグメントに対して、前記入力データセグメントによって参照される格納データセグメントの複数の格納重複排除ダイジェストを取り出すステップと、前記各々の入力データセグメントを複数の固定サイズのデータサブセグメントの各々に分割するステップと、前記複数のデータサブセグメントの各々に対して、前記取り出された複数の格納重複排除ダイジェストに基づいて、複数の入力重複排除ダイジェストの各々を計算するステップと、前記複数のサブセグメント重複排除ダイジェストの各々を集約して前記各々の入力データセグメントの重複排除ダイジェストを生成するステップとを含み、前記各々の入力データセグメントの前記重複排除ダイジェストが前記合成バックアップの重複排除ダイジェストを形成する、方法。前記格納データセグメントの前記複数の格納重複排除ダイジェストを前記複数の入力重複排除ダイジェストに対して照合することによって、前記各々の入力データセグメントを重複排除するステップをさらに含む、請求項1に記載の方法。前記照合の後で、前記複数の入力重複排除ダイジェストをインデックス内に格納するステップをさらに含み、前記複数の入力重複排除ダイジェストのうちの少なくとも1つの入力重複排除ダイジェストと整合する前記複数の格納重複排除ダイジェストのうちの少なくとも1つの格納重複排除ダイジェストを、前記少なくとも1つの入力重複排除ダイジェストで置き換えることができる、請求項2に記載の方法。前記合成バックアップを構築するステップをさらに含む、前記請求項のいずれかに記載の方法。前記合成バックアップを構築する前記ステップは、前記重複排除ストレージシステム内にメタデータファイルを作成するステップ、及び連続するストレージ命令を最適化するステップをさらに含む、請求項4に記載の方法。各々の前記最適化されたストレージ命令に対して、前記最適化されたストレージ命令によって指示される入力データセグメントに関連付けられたメタデータセグメントを取り出すステップと、前記メタデータセグメントを、前記入力データセグメントのみを参照するように調整するステップと、前記調整されたメタデータセグメントを前記合成バックアップの前記メタデータファイルにコピーするステップと、前記メタデータセグメントによって参照された各々のストレージブロックに対して、参照計数値を増加させるステップとをさらに含む、請求項5に記載の方法。複数のサブセグメント重複排除ダイジェストの各々を計算するステップは、バイトオフセットした前記複数の入力データセグメント内の各々のブロックに対するハッシュ値を計算するステップと、選択された複数の最大ハッシュ値を重要性の順序に従って降順に並べるステップと、前記最大ハッシュ値に関連付けられた前記ブロックに対して決定された位置にあるブロックをシフトブロックとして識別するステップと、前記シフトブロックの前記ハッシュ値の部分集合を、前記複数の入力データサブセグメントの少なくとも1つの第1の識別特性のために選択するステップと、前記シフトブロックの前記ハッシュ値の付加的な部分集合を、前記複数の入力データセグメントの少なくとも1つの第2の識別特性のために選択するステップとを含む、前記請求項のいずれかに記載の方法。前記少なくとも1つの第2の識別特性を格納するための、前記複数の入力データセグメントに関する識別特性DCインデックスを構成するステップと、前記少なくとも1つの第1の識別特性を格納するための、前記複数の入力データサブセグメントに関するストレージ識別子SIインデックスを構成するステップとをさらに含む、請求項7に記載の方法。前記少なくとも1つの第1及び第2の識別特性を計算するステップをさらに含む、請求項8に記載の方法。重複排除ストレージシステム内の複数の入力データセグメントに対して、合成バックアップの構築を容易にするためのシステムであって、重複排除コンピューティングストレージ環境において動作可能な少なくとも1つのプロセッサデバイスを備え、前記少なくとも1つのプロセッサデバイスは、前記請求項のいずれかに記載の方法ステップを実行するように適合される、システム。重複排除ストレージシステム内の複数の入力データセグメントに対して、少なくとも1つのプロセッサデバイスによる合成バックアップの構築を容易にするためのコンピュータプログラムであって、コンピュータ可読プログラムコード部分を含み、前記コンピュータ可読プログラムコード部分は、コンピュータによって実行されたとき、請求項1から請求項9までのいずれかに記載の方法ステップを実行する、コンピュータプログラム。本発明の課題は、重複排除ストレージシステム内の合成バックアップの構築を容易にする方法及びシステムを提供することである。バックアップ環境において、完全バックアップは、バックアップされる全データセットを含む。増分バックアップは、最新のバックアップが完全バックアップであっても、増分バックアップであっても、その最新バックアップの後に修正されたデータセットの部分のみを含む通常、ファイルの解像度で。差分バックアップは、最新の完全バックアップの後に修正されたデータセットの部分のみを含む。増分及び差分バックアップの利点は、完全バックアップよりも含むデータが少ないのでストレージ及び処理時間の点でより効率的であることである。ある特定の時点までのバックアップされたデータセットを完全に復元するためには、普通、その時点に先立つ完全バックアップが復元され、次にその時点までの全てのその後の増分バックアップがそれらの経時的順序で復元される。同様のプロセスが差分バックアップを用いて行われるが、この場合には完全バックアップを復元した後で復元すべきなのは一般に1つの差分バックアップのみである。明らかに、そのような復元動作は時間がかかり、単一のバックアップを復元するよりも複雑である。上記の復元プロセスの複雑さを軽減するために、合成バックアップの考えが導入された。合成バックアップは、完全バックアップ及びその後の特定の時点に至るまでの増分バックアップからのデータが1つの合成バックアップ内に組み込まれるプロセスを用いる、バックアップアプリケーションによって構築される。作成された合成バックアップは、実際にはその時点に対応する完全バックアップである。そのようなバックアップは、データがソースから読み出されてバックアップとして格納される正規のバックアッププロセスによって作成されるのではなく、既存のバックアップのデータを用いて合成バックアップが構築される合成プロセスによって作成されることから、合成と呼ばれる。合成バックアップの復元は、完全バックアップの復元と同じく簡単であり、前述の増分バックアップ又は差分バックアップを復元するプロセスよりも迅速に行われる。合成バックアップの付加的な利点は、合成バックアップの作成が、データに関して同一の完全バックアップの作成に比べてより速いことである。合成バックアップによってもたらされる効率及びその他の特性における利点のために、合成バックアップ機能及び関連するアーキテクチャを重複排除ストレージシステム内に組み込むことが望ましい。従って、重複排除ストレージシステムにおける合成バックアップの構築を容易にするための種々の実施形態を提供する。一実施形態において、例示のみを目的として、重複排除ストレージシステムは、バックアップアプリケーションから、ソース及びターゲットデータを記述する一連の圧縮メタデータ命令を受け取り、これに基づいて、重複排除ストレージシステムは、構築中の合成バックアップのために作成されるメタデータ構造の中に既存のバックアップのデータに対する参照を追加することにより、合成バックアップを効率的に構築する。さらに別の実施形態において、例示のみを目的として、重複排除ストレージシステムは、既に構築された合成バックアップのデータを用いて新規入力データを重複排除することを可能にし、この目的のために、構築中の合成バックアップに関する重複排除ダイジェストを、合成バックアップによって参照されるデータの既存のダイジェストに基づいて効率的に計算する。構築中の合成バックアップの複数の入力データセグメントの各々の入力データセグメントに対して、該入力データセグメントによって参照される格納データセグメントの複数の重複排除ダイジェストがインデックスから取り出される。各々のデータセグメントは、複数の固定サイズのデータサブセグメントの各々に分割され、複数の入力データサブセグメントの各々が、複数の格納データサブセグメントを参照することができる。複数の入力データサブセグメントの各々に対して、入力データサブセグメントに関する重複排除ダイジェストを生成する計算が実行され、その計算は、入力データサブセグメントによって参照される複数の格納データサブセグメントの取り出された重複排除ダイジェストに基づく。複数のサブセグメント重複排除ダイジェストが集約されて、各々の入力データセグメントの重複排除ダイジェストが生成される。各々の入力データセグメントの重複排除ダイジェストが、合成バックアップの重複排除ダイジェストを形成する。前述の例示的な方法の実施形態に加えて、他の例示的なシステム及びコンピュータ製品の実施形態が提供され、関連する利点が提供される。これから、本発明の実施形態を、添付の図面を参照しながら単に例証として説明する。図1は、例示的な合成バックアップのアーキテクチャ10を示す。アーキテクチャ10は、図に示すようにタイムライン12にわたって実施される。完全バックアップ14は最も初期の時点で作成される。この時間から、増分バックアップ16、18、及び20が図に示すような後続の間隔で実行される。完全バックアップ14並びに増分バックアップ16、18及び20の各々を、図に示すように、そして以下でさらに説明するように合成バックアップ22に組み込むことができる。合成バックアップ22のような合成バックアップの構築は、普通は既存のバックアップ14、16、18、及び20からのデータを合成バックアップ22内にコピーすることからなる。コピーは、バックアップアプリケーションにより、ソースバックアップからデータセグメントを読み出し、これらのデータセグメントをターゲットの合成バックアップ内に書込むことにより実行することもでき、又は、より効率的には、ストレージシステムにより、ソース及びターゲットデータセグメントを識別するバックアップアプリケーションにより供給される情報を用いてデータのコピーを実行することができる。次の図2は、これら2つの場合を合成バックアップの例示的な構築フロー30で示す。第1の場合には、上述のように、バックアップアプリケーション32は、図示するようにストレージデバイス40と通信するストレージサーバ36との通信によって、ソースバックアップからデータセグメントを読み出し、これらデータセグメントをターゲットの合成バックアック内に書込む。第2の場合には、やはり上述のように、ストレージデバイス42と通信するストレージサーバ38が、やはり図示するようにバックアップアプリケーション34から得られるソース及びターゲットデータセグメントを識別するメタデータ情報を用いて、合成バックアップの構築中にデータをコピーする。例証的な実施形態の機構は、重複排除ストレージシステム内での合成バックアップの効率的な構築を規定する。重複排除ストレージシステムは、一般に、新規入力データのセグメントを既存のデータのセグメントによって効率的に表すように設計されている。入力データを処理してストレージ内の整合するセグメントを見出し、次いでこれらが、新規データを格納するプロセスにおいてデータ自体を格納するのではなく参照される。整合しないデータセグメントだけが実データとしてストレージ内に書込まれる。参照は、実データ参照なしとして格納されている物理データパターンとすることもでき、又は、物理データパターン及び論理データパターンの両方に対する参照とすることもでき、この場合、後者はそれ自体が、物理及び論理パターンに対する参照の集合である。合成バックアップの効率的な構築のための例証的な実施形態の第1の態様は、バックアップアプリケーションが、データコピー動作を用いて合成バックアップを構築するのではなく、重複排除ストレージシステムに対して、既存のソースバックアップのデータセグメントと構築中のターゲット合成バックアップ内でのその指定位置とを指定する一連の圧縮メタデータ命令を発行することができることである。例証的な実施形態は、重複排除ストレージシステム内でこれら命令を効率的に処理して合成バックアップを構築することを規定する。例証的な実施形態の1つにおいて、重複排除ストレージシステム内で、それら命令の各々が効率的に処理され、その結果、その命令によって参照されるデータセグメントに関連付けられたメタデータが取り出され、この情報に基づいて、既存バックアップのデータセグメントに対する参照が作成され、構築中の合成バックアップのメタデータに加えられる。さらに、バックアップアプリケーションによって発行された入力命令をストレージシステムにより最適化して処理効率を向上させることができる。一例は、隣接するソースデータセグメントを参照する命令を統合して、このプロセス内でのストレージアクセスの効率を向上させることである。この方法により、合成バックアップは、重複排除ストレージシステムにより通常本来的にサポートされている内部的な高速メタデータ動作である参照動作を用いて高度に効率的なプロセスで構築される。例証的な実施形態の機構はまた、合成バックアップのデータを用いて新規入力データを重複排除することも可能にする。これは、重複排除プロセス中のストレージ内の類似データセグメントの検索に役立つ、合成バックアップのデータのダイジェストを計算し、このダイジェストを、本明細書ではダイジェストインデックスと呼ぶ重複排除を促進するインデックス内に挿入することによって達成される。新規入力データが処理されるときに、その入力データのダイジェストが計算され、ダイジェストインデックス内で検索される。整合するダイジェスト各々がストレージ内の類似のデータセグメントを指示するがインデックス内で見出された場合には、付加的なプロセスを用いてストレージ内の正確な整合データセグメントが精徴化されrefine識別される。このようにして、合成バックアップのデータを後で重複排除プロセス内の新規入力データと整合させることができる。さらに、例証的な実施形態の機構において、合成バックアップのデータのダイジェストは、合成バックアップのデータ自体に基づいて新たに計算されるのではなく、合成バックアップによって参照されるデータセグメントの既存の格納されたダイジェストに基づいて効率的に計算される。このことにより、合成バックアップの構築中に合成バックアップのデータへのアクセスを減らすことが可能になり、さらに、データ自体に基づくダイジェストの計算を減らすことが可能になる。例証的な実施形態の機構は、合成バックアップに関する重複排除ダイジェストの計算を著しく加速し、従って、合成バックアップの構築時間全体を著しく改善する。例証的な実施形態の態様を実現することができる重複排除ストレージシステムの例示的な一実施形態において実装することができる、重複排除のためのデータのダイジェストを計算して使用するための方法は、引用によりその関連部分が本明細書に組み入れられるSystemsandMethodsforEfficientDataSearching,StorageandReductionと題する特許文献1で明記されている。例証的な実施形態の一つの態様は次のように要約される。合成バックアップの入力データセグメントに対して、該入力データセグメントにより参照される格納データセグメントの精細化されたfine-grained重複排除ダイジェストがインデックスから取り出される。入力データセグメントは、固定サイズのサブセグメントに分割され、これらサブセグメントの各々は、複数の格納サブセグメントを参照することができるアラインメントに応じて。入力サブセグメントの各々に対して、該入力サブセグメントに関する重複排除ダイジェストを生成する計算が実行され、この計算は、入力サブセグメントによって参照された格納サブセグメントの取り出された重複排除ダイジェストに基づく。この計算を完了できない特定の場合には、入力サブセグメントのデータに基づいて重複排除ダイジェストが計算される。しかし、これらの場合の頻度は、計算を完了することができる場合に比べて通常は低い。次いで入力サブセグメントの計算されたダイジェストを集約して入力データセグメントの重複排除ダイジェストを生成する。合成バックアップの全データセグメントの重複排除ダイジェストが、合成バックアップ全体の重複排除ダイジェストを形成する。新規入力データのセグメントを既存データのセグメントによって表す機能は、重複排除ストレージシステムにとって本来的なものである。入力データを処理してストレージ内の整合するセグメントが見出され、次にこれが新規データを格納するプロセスにおいてデータ自体を格納するのではなく参照される。整合しないデータセグメントだけが実データとしてストレージに書込まれる。参照機能を実装するための幾つかの方式がある。一般に、参照は、物理データパターン又は論理データパターンに基づいて実装することができる。第1の選択肢において、新規データパターンは、実データ参照なしとして格納されているデータパターンであって、ある種のストレージ識別子を用いて参照することができるデータパターンを参照する。そのようなデータパターンを物理データパターンと呼ぶ。第2の選択肢においては、新規データパターンは物理データパターン及び論理データパターンの両方を参照することができ、ここで論理データパターンは、それら自体が物理パターン及び論理パターンに対するそのような参照の集合である。次いで、図3において、2つの参照手法52、54をひとまとめにして参照パターン50として示す。物理データパターンの参照を示す事例Aにおいて、新規データパターン56、58は、図に示すように物理データパターン60-74即ち、実データとして格納されているデータパターンを参照する。論理データパターンの参照を示す事例Bにおいて、新規データパターン76は、図に示すように、論理データパターン78、80並びに物理データパターン82-96の両方を参照する。例証的な一実施形態において、重複排除されたデータは、物理データパターンとしてストレージブロック内に格納され、ここで各ストレージブロックは関連付けられた参照計数プロパティを有する。新規データセグメントを格納するために、新規セグメントは既存データセグメントと照合され種々の手法を用いて実施することができる、整合データを見出すための独立した方法を用いて、整合データセグメントのメタデータが取り出され、次いで、新規データパターンに関して、整合データセグメントによって参照されたストレージブロック物理データパターンを含むを指示する参照が作成される。これらの参照は、新規データパターンに関して作成されたメタデータファイル内のレコード内にカプセル化される。ストレージブロックは全体として又は部分的に参照することができ、この情報はメタデータレコード内で示される。どの既存データセグメントとも整合しない新規データセグメントを格納するために、そのデータがストレージブロック内に格納され、これらのブロックに対する参照が作成され、そのメタデータファイルに加えられる。あるストレージブロックが参照されたとき、その参照計数プロパティの値は、そのブロックに対してなされた新たな参照の数に応じて増やされる。ストレージブロックが逆参照されたとき、即ち、そのブロックを参照するデータセグメントを削除することにより逆参照されたとき、その参照計数プロパティの値は、除去される参照の数に応じて減らされる。あるストレージブロックの参照計数プロパティの値がゼロより大きい限り、そのブロックはストレージ内に維持されなければならない。この値がゼロになったときには、そのブロックをストレージから除去することができる。次に図4を参照すると、重複排除ストレージシステム内で用いるための合成バックアップを構築する例示的な方法100が示される。一実施形態において、方法100は、重複排除システムコンポーネント、又はコンピューティング環境におけるその他の種々の処理コンポーネント、ネットワーキングコンポーネント及びストレージコンポーネントを用いて実装することができる。当業者であれば、方法100の種々のステップは、特定の用途に適した種々異なる方法で実装することができることを認識するであろう。さらに、ここで説明する方法は、コンピューティング環境上で又はそれ以外にコンピューティング環境との関連で動作可能な、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せなどの種々の手段によって実装することができる。例えば、方法100及び以下に説明する例示的方法は、部分的に又は全体として、内部に格納したコンピュータ可読プログラムコード部分を有するコンピュータ可読記憶媒体を含む、コンピュータプログラム製品として実装することができる。コンピュータ可読記憶媒体としては、ディスクドライブ、フラッシュメモリ、デジタル多用途ディスクDVD、コンパクトディスクCD、及び、前述の他の形式の記憶媒体を挙げることができる。方法100は、構築中の合成バックアップに関するメタデータファイルをストレージ内で作成する104ことで開始するステップ102。合成バックアップに関係した連続的な命令を最適化して適用可能に統合し、処理効率を向上させる。具体的には、隣接するソースデータセグメントを参照する命令を統合して、メタデータへのアクセスの効率を向上させる。一連の最適化された命令が作成される106。第1の最適化された命令を検討するステップ108。各々の最適化された命令に対して、その命令によって指示されるソースデータセグメントに関連付けられたメタデータセグメントがストレージから取り出される。このメタデータ情報は一般に、ストレージブロックソースデータセグメントを構成するデータパターンを含むに対する参照を含むステップ110。このメタデータセグメントは、ソースデータセグメントのみを反映するのに必要なように調整されるステップ112。具体的には、例えば、ソースデータセグメントの端部にあるストレージブロックへの参照は、参照されるブロックのより短い部分を指示するように調整することができる。調整されたメタデータセグメントは、合成バックアップのメタデータファイルにコピーされる付け加えるステップ114。このメタデータセグメントによって参照されたストレージブロックの参照計数プロパティの値は、各ブロックについて、メタデータセグメント内のそのブロックに対する参照の数に応じて増やされるステップ116。更なる最適化された命令が存在する場合ステップ118には、方法100は更なる処理のためにステップ110に戻る。そうでなければ方法100は終了するステップ120。上述の例示的な方法を用いることにより、合成バックアップは、重複排除ストレージシステムにより通常本来的にサポートされている内部的な高速メタデータ動作である参照動作を用いて、高度に効率なプロセスで構築される。例証的な実施形態の一態様において、合成バックアップは、ひとたび作成されると元のバックアップから独立したものとなり、バックアップアプリケーションによってそのようにみなされることができる。即ち、合成バックアップを構築するのにデータが参照されたバックアップの幾つか又は全てが削除された場合でも、合成バックアップは影響を受けない。このことは、例証的な実施形態の一態様において、合成バックアップが正規のバックアップが格納されるのと本質的に同じ方式で重複排除ストレージシステム内に格納されることに起因する。具体的には、合成バックアップ及び正規バックアップに対して同様のメタデータ構造体が作成され、ストレージブロックは合成バックアップ及び正規バックアップに関して同じ方法で参照される。上記の特性に内在する利点は、新しい合成バックアップを構築するときに、合成バックアップをバックアップアプリケーションによって参照することができるということである。さらに、新規入力データを合成バックアップに含まれるデータを用いて重複排除することを可能にすることは、特に合成バックアップが構築される元になった幾つか又は全てのバックアップがストレージから既に削除されている場合に有益である合成バックアップが使用可能である限り、その参照されるストレージブロックは使用可能であることに留意されたい。そのような重複排除を可能にするためには、合成バックアップ内に含まれるデータを新たなバックアップのデータとの照合に使用可能であるようにする必要がある。この使用可能性の実装は、データ重複排除プロセスにおいて新規データと既存データとの照合プロセスを実現するのに用いられる具体的な方法に依存する。例証的な実施形態の態様を組み込んだ例示的な重複排除ストレージシステムにおいて、格納データを新規入力データとの重複排除に使用可能にすることは、重複排除プロセス中のストレージ内の類似データセグメントの検索に役立つデータのダイジェストを計算し、このダイジェストを本明細書ではダイジェストインデックスと呼ぶ重複排除を促進するインデックス内に挿入することによって実装される。その後、新規入力データが処理されるときに、その入力データのダイジェストが計算され、ダイジェストインデックス内で検索される。このインデックスは、新規データのダイジェストが与えられると整合する格納データのダイジェストの検索を可能にする。インデックス内で整合するダイジェスト各々がストレージ内の類似のデータセグメントを指示するが見出された場合には、付加的なプロセスを用いてストレージ内の正確に整合するデータセグメントを精緻化し識別する。次いで、入力データのダイジェストがダイジェストインデックスに挿入され従って、より新しいデータを現在の入力データと照合することが可能になる、場合によっては、入力データと整合した格納データのダイジェストの一部又は全てがインデックスから置き換えられる。次に、図5は、前述の議論を考慮した例示的な重複排除プロセス130を示す。方法130は、新規入力データのそれぞれのダイジェストを計算するステップ134ことによって開始するステップ132。ダイジェストインデックス149を格納データの整合するダイジェストに関して検索するステップ136。整合が見出された場合ステップ138、ストレージ内の格納データ150から整合データセグメントが取り出されるステップ142。取り出されたデータ及びダイジェスト情報を用いて、ストレージ内の正確な整合データセグメントが精緻化され識別されるステップ144。正確な整合の情報を用いて、新規入力データが、既存の格納データに対する参照の集合整合に基づくに不整合データを加えたものとして格納されるステップ146。新規入力データのダイジェストはダイジェストインデックス内に格納され、場合によっては、整合データセグメントのダイジェストが存在するならばそれを置き換えるステップ148。ステップ138に戻ると、整合が見出されない場合には、新規入力データは既存の格納データに対する参照なしで格納されるステップ140。方法130はその後、終了するステップ152。合成バックアップのデータのダイジェストを計算してダイジェストインデックス内に挿入することにより、合成バックアップのデータを、後で重複排除プロセス内の新規入力データと照合することができる。合成バックアップのデータのダイジェストを計算するための可能な方法は、合成バックアップの構築中にこのデータをストレージから取り出し、そのデータに基づいてダイジェストを計算することである。しかし、例証的実施形態の一態様において、合成バックアップはデータ自体になんらアクセスすることなくメタデータ操作のみを用いて構築される即ち、バックアップアプリケーションはメタデータ命令をストレージシステムに与え、ストレージシステムはメタデータ操作のみを実行して合成バックアップを構築するので、そしてまた、データへのアクセス及びデータに対する操作は、メタデータへのアクセス及びメタデータに対する操作よりも著しく遅いデータのサイズは通常、関連付けられたメタデータのサイズよりも遥かに大きいためので、合成バックアップの構築プロセス中にデータにアクセスして取り出すことは、このプロセスを著しく遅くする場合があり、おそらくはその効率を低下させる。この問題に対処するために、例証的な実施形態の一態様は、データ自体へのアクセスを最小限にして、合成バックアップのデータのダイジェストを効率的に計算する方法を提供する。この点について、合成バックアップのデータのダイジェストは、合成バックアップにより参照されるデータセグメントの既存の格納されたダイジェストに基づいてデータ自体に基づいて新しく計算されるのではなく効率的に計算される。この方法は、より精細なダイジェストの集約として計算されるダイジェストに一般的に適用可能である。以下、データの重複排除ダイジェストの例示的な計算を提供する。第1のステップとして、入力データがセグメントに分割され、各セグメントに重複排除の処理が行われる。一実施形態において、それらデータセグメントの各々のサイズは16MBとする。それらセグメントの各々に対して、そのセグメントの重複排除ダイジェストを構成するそれぞれ検索及び表示のためのk個及びm個の識別特性が、図7に示す以下の例示的な方法170を用いて計算される。通常、kの値は低く例えば、数十、mの値は10未満とすることができる。方法170は、入力データセグメント内の全てのブロックに対するハッシュ値を計算することによって開始しステップ172、ここで、これらブロックのサイズは、入力データセグメントのサイズよりも実質的に小さく例えば、4KB、且つ、ブロック同士は重なっており、即ち、あるブロックが入力セグメント内の位置l位置はバイトで指定されるで始まるとすると、次のブロックが始まる位置は位置l1であるステップ174。一実施形態において、これらのハッシュ値はローリングハッシュ関数を用いて計算される。そのようなハッシュ関数を用いて、ハッシュ値は、各ブロックが前のブロックの開始バイトの1バイト後に開始するような連続的なデータブロックに基づいて効率的に計算される。ローリングハッシュ関数は、ひとたびデータのあるブロックに対するハッシュ値が既知になると、次のブロック前のブロックの開始バイトの1バイト後に開始するのハッシュ値の計算はO1操作で行うことができるという利点を有する。前のステップにおいてデータセグメントに対して生成されたハッシュ値のうちのk個の最大ハッシュ値が選択され、それらの値の降順に並べられ、この順序を重要性の順序orderofsignificanceと呼ぶ。k個の最大ハッシュ値に対応するブロックは、k個の最大ブロックと呼ばれ、最大ハッシュ値と同じ順序に論理上で並べられる計算の次のステップのためにステップ176。最大ブロックk個の最大ハッシュ値に関連付けられるの1バイト後に続くブロックが選択され、最大ブロックと同じ順序に論理上で並べられる。これらのブロックはシフトブロックと呼ばれる。遡って図6は、最大ブロック162、それぞれの位置166、それぞれのシフトブロック164、及びそれぞれのシフト位置168を描いたシナリオ160を示す。図7に戻ると、次のステップとして、シフトブロックのk個のハッシュ値が、類似性検索を目的とした入力データセグメントの識別特性として選択されるステップ180。これらの識別特性を引き続き用いて、ストレージ内の類似データセグメントに関してダイジェストインデックスを検索する。新規入力データセグメントの類似性検索中に、最大でk個の識別特性に関してダイジェストインデックス内で検索される可能性がある。最後に、重要性の順に最初のm個ここでm<kのシフトブロックのハッシュ値が、ダイジェストインデックスにおける表示を目的とした入力データセグメントの識別特性として選択されるステップ182。これらの識別特性はその後、入力データセグメントを表すためにダイジェストインデックス内に格納され、その後の新規入力データセグメントが類似性検索中にその入力データセグメントを見出すことを可能にする。方法170はその後、終了するステップ184。最大値は、一様ではない数値分布を有することに留意されたい。しかし、良いハッシュ関数を用いると、このステップで選択される識別特性の数値分布は一様に非常に近くなり、従って、このようにして選択された識別特性はデータのセグメントを一意に識別するためにより効果的になる。任意の繰返し可能なハッシュ値選択基準を図7のステップ176に適用することができることにもまた留意されたい。例えば、k個の最小ハッシュ値を選択すること、又はデータセグメントに対して計算された全てのハッシュ値の中央値に最も近いk個のハッシュ値を選択すること、又はある所定の定数に最も近いk個のハッシュ値を選択することなどである。さらに、最大ハッシュ値に対応するブロックの1バイトシフトを用いる代りに、なんらかのその他の所定の繰返し可能なシフトを用いることもでき、又は、場合により位置及び/又は計算されたハッシュ値に応じて異なるシフトを用いることもできる。最大ハッシュ値及び1バイトシフトを用いることは1つの例示的な実施形態である。上記の例示的な方法170は、所与のデータセグメントに関して、広範囲まで、一意性の、ロバストな、良く広がった、繰返し可能な識別特性を生成する。一意性とは、2つの異なるデータセグメントに対して、十分に高い確率で2つの異なる特性集合が割り当てられることを意味する。ロバストとは、あるデータセグメントに割り当てられた特性が、データセグメントが限定された変化例えば、その計数の25までにおけるを被ってもかなり一定のまま留まることを意味する。良く広がったとは、特性位置がデータセグメントにわたって概ね一様に広がっていることを意味する。繰返し可能とは、データセグメントの特定の形が、常に同じ値の識別特性を生成することを意味する。ダイジェストインデックスにおける類似性検索のためにk個の識別特性を用い、表示のためにm個の識別特性を用いる理由は、類似の格納データセグメントに関しての新規データセグメントの変更により引き起こされ得る最大ハッシュ値に対する2つの可能な影響が存在することである。第1の影響は、対応するブロックを含むデータが変更されたために最大ハッシュ値が消滅する場合があることである。第2の影響は、変更データがより大きい最大ハッシュ値を導入し、それにより以前の最大ハッシュ値を置き換える場合があることである。第2の影響を解決するために、k個の識別特性を用いた類似性検索が行われる一方で、データセグメントはm個の識別特性で表される。一実施形態において、入力データセグメントは、複数の固定サイズのサブセグメントに分割される。このセグメントの可能な固定サイズの値は、数十又は数百キロバイト、例えば512KBである。kの値はサブセグメントの固定サイズより小さいと仮定する。類似性検索のためのk個の識別特性が全データセグメントに対して計算されると同時に、m個の識別特性が各々のサブセグメント、並びに全データセグメントに対して計算され、ダイジェストインデックス内に格納される。さらに、一実施形態において、ダイジェストインデックスは2つの機能場合により2つの内部インデックス構造を伴うを提供する。識別特性distinguishingcharacteristicインデックス又はDCインデックスと呼ぶ第1の機能において、インデックスは、全データセグメントのm個の識別特性、及び検索のための識別特性の所与の値を格納し、格納データセグメントの整合する識別特性の検出を可能にする。照合される識別特性の各インデックスレコードはまた、それぞれのデータセグメントの格納位置と、それぞれのデータセグメント内の識別特性の特定の位置とに対するポインタを含む。ストレージ識別子インデックス又はSIインデックスと呼ぶ第2の機能において、インデックスは、データサブセグメントのm個の識別特性、及びサブセグメントの所与のストレージ識別子ここでストレージ識別子は、本質的にストレージ内でのそれぞれのデータサブセグメントの位置を識別するを格納し、特定のサブセグメントの識別特性の検出を可能にする。取り出された識別特性の各インデックスレコードは、その値、識別特性に関連付けられた最大ハッシュ値、及びその識別特性の格納位置を含む。図8は、例示的な識別特性DCインデックス及びストレージ識別子SIインデックス、並びにインデックスを用いる例示的な方法190を示す。ブロック192において、入力データセグメントのk個の識別特性に関する検索が行われる。これらは、ブロック194において、各データセグメントに関するm個の識別特性を格納するDCインデックスに供給される。類似の格納データセグメントの整合する識別特性を含む検索結果がブロック196において示される。ブロック198において、格納サブセグメントのストレージ識別子/位置を用いて検索が行われる。これらは、ブロック200において、各データサブセグメントに関するm個の識別特性を格納するSIインデックスに供給される。指定された格納データサブセグメントの識別特性を含む検索結果がブロック202において示される。DCインデックスは、入力データセグメントの類似性検索プロセスにおいて、ストレージ内の類似のデータセグメントを見出すために用いられる。SIインデックスは、1以下で詳述する合成バックアップの識別特性の最適化計算、2データセグメント集合がストレージから削除されたときに、これらのデータセグメントの識別特性をSIインデックスから取り出し、次いでDCインデックスSIインデックスからの情報を用いて及びSIインデックスの両方から削除すること、及び3あるデータセグメントの識別特性をDCインデックスから除去する必要があるときに例えば、より新しいデータセグメントの識別特性でそれらを置き換えるために、その識別特性をSIインデックスから取り出し、次いでDCインデックスから除去すること、を含む幾つかの目的のために用いられる。次に図10及び図11を参照すると、合成バックアップ内のデータセグメントの識別特性を既存の識別特性に基づいて計算する例示的な方法200の説明がひとまとめで示される。方法200は、入力データセグメントにより参照される格納データサブセグメントを決定するステップ204ことによって開始するステップ202。これは、バックアップアプリケーションによって与えられるメタデータ命令に基づいて行われ、それにより合成バックアップ内のデータセグメントが構築される。これらのメタデータ命令は、所与のセグメントを構築するために用いられる格納データを指定する。この情報から、ストレージシステムは、入力データセグメントにより参照される格納データサブセグメント及びそれらのストレージ識別子を推定する。参照されたサブセグメントの識別特性各サブセグメントに関するm個の識別特性がSIインデックスから取り出されるステップ206。合成バックアップからの入力データセグメントは固定サイズのサブセグメントに分割され、そのサイズは格納サブセグメントのサイズと同一であるステップ208。第1の入力サブセグメントが検討されるステップ210。入力サブセグメントの各々のサブセグメントに対して、以下が実行される。入力サブセグメントは、少なくとも1つの、且つ、f個までの格納サブセグメントを参照する。サブセグメントのサイズが合成バックアップによって参照されるストレージ内のデータセグメントの最小サイズよりも小さいと仮定すると、入力サブセグメントと格納サブセグメントとのアラインメントに応じて、入力サブセグメントは1個と4個との間の格納サブセグメントを参照することができる。このことは、前の図9に示される。この図において、入力サブセグメントは、それらが参照する格納サブセグメントの上に示され、垂直の実線はサブセグメントのアラインメント境界を示す。この図の部分A及びBは、連続した格納セグメントを参照する入力サブセグメントを示し、部分C-Eは2つの分離した格納セグメントを参照する入力サブセグメントを示す。サブセグメントのサイズが、合成バックアップにより参照されるストレージ内のデータセグメントの最小サイズよりも大きいと仮定すると、入力サブセグメントはf個までの格納サブセグメントを参照することができ、ここで、fは、入力サブセグメントのサイズを合成バックアップにより参照される格納データセグメントの最小サイズで割り、2を掛けた各参照には2つの格納サブセグメントを関連付けることができるため値に等しい。図10に戻ると、入力サブセグメントによって参照される格納サブセグメントの数はrで表される。参照されるサブセグメントの各々にはSIインデックスから取り出されたm個の識別特性が関連付けられ図9に示すように、これらのr×m個の識別特性を以下のように検討する。この識別特性の各々に関連付けられた最大ハッシュ値を考える。SIインデックスから取り出された各々の識別特性のレコード内には、それに関連付けられた最大ハッシュ値も含まれることに留意されたい。ストレージ内のr個の参照されるサブセグメントのうちのサブセグメントjの識別特性に関連付けられた最大ハッシュ値の集合は、次式で表される。閾値ハッシュ値は、次式のように計算されるステップ212。入力サブセグメントが1つよりも多くの格納セグメントを参照する場合図9の部分C-Eで例示、且つ、サブセグメントの識別特性もまたその最後のブロックのバイトに基づいて計算される場合、2つの参照された格納セグメントの間の分離が起る入力サブセグメント内の位置に隣接する、図9のブロックb1及びb2で示す分離位置の両側のデータブロックがロードされ、ハッシュ値は、ブロックb1の各バイトオフセットに対して、以前に指定した方法を用いて計算されるステップ214。参照されるサブセグメントのr×m個の識別特性に関連付けられた最大ハッシュ値、及び前のステップで計算されたハッシュ値を含むハッシュ値の集合から、以下の方法を用いて候補ハッシュ値の部分集合が計算される。ハッシュ値は、その値がhTに等しいか又はそれより大きく、且つ、そのストレージ位置が入力サブセグメントの境界内にある場合に、そのハッシュ値の部分集合に含められるステップ216。候補ハッシュ値の集合の中のハッシュ値の数がmに等しいか又はそれより大きい場合ステップ218、以下のことが実行される。この集合のハッシュ値が、それらの値の降順に並べられるステップ222。最初の即ち、最も大きいm個のハッシュ値が、m個の識別特性を計算するのに用いられ、その結果、各々のハッシュ値νに対して、その識別特性が、ハッシュ値νに関連付けられたブロックに対して1バイトだけシフトしたブロックのハッシュ値となるように選択されるステップ224。検討中のハッシュ値νが参照されるサブセグメントのr×m個の識別特性の集合からの識別特性に関連付けられる場合、その識別特性の値は、SIインデックスから取り出されたそれぞれのレコードから容易に得ることができる。検討中のハッシュ値νがステップ214で計算されたハッシュ値である場合には、その識別特性は、ステップ214で計算されたハッシュ値の集合から容易に得ることができる。前のステップで計算されたm個の識別特性が入力サブセグメントのm個の識別特性として指定されるステップ226。指定された識別特性は後でそのそれぞれの入力サブセグメントに関連付けられてSIインデックス内に格納され、さらに、後にDCインデックス内に格納される、全入力データセグメントのm個の識別特性を計算するための基礎として役立つ以下に詳述するように。ステップ228は、入力セグメント内にさらなるサブセグメントが存在するかどうか問い合わせ、存在する場合には、方法200はさらなる処理のためにステップ212に戻る。ステップ218に戻ると、候補ハッシュ値の集合の中のハッシュ値の数がmより小さい場合、以下のことが実行される。入力サブセグメントのそれぞれのデータがストレージから取り出され、その識別特性がデータに基づいて計算されるステップ220。この場合、サブセグメントのm個の識別特性は、既存の識別特性に基づいて計算することができない。しかし、それらのストレージ位置に関しての識別特性の予想される一様な分布に基づけば、この場合の頻度は、入力サブセグメントのm個の識別特性を既存の識別特性に基づいて計算することができる場合に比べて低いはずである。再び方法200はステップ228に戻り、該当する場合にはさらなる処理のためにステップ212に戻る。ステップ228において、さらなるサブセグメントが存在しない場合、入力データセグメントのm個の識別特性は、以下の方法を用いて計算される。入力セグメント内にs個のサブセグメントがあると仮定して、入力セグメントの全てのサブセグメントに対して計算されたs×m個の識別特性の集合を考える。この集合の識別特性は、そのそれぞれの最大ハッシュ値の降順に並べられるステップ230。この集合のこの順序における最初のm個の識別特性即ち、最も大きいそれぞれの最大ハッシュ値を有するm個の識別特性が、入力データセグメントのm個の識別特性として選択されるステップ232。これらの識別特性は、後でDCインデックス内に格納されるそのそれぞれの入力データセグメントに関連付けられる。方法200はその後、終了するステップ234。合成バックアップのデータのダイジェストを合成バックアップにより参照されるデータセグメントの既存の格納されたダイジェストに基づいて効率的に計算するための上述の方法200は、計算プロセス中のデータ自体へのアクセスを最小限にし、従って、ダイジェスト計算プロセス及び合成バックアップ全体の構築時間の両方を著しく加速する。図12は、例証的な実施形態の態様を実装することができるプロセッサデバイスを前もって含む重複排除システム250の例示的な部分252を示す。重複排除システム250の部分252は、以下の例証的な実施形態の機構を実装することができるコンピュータ環境においてその一部分として動作することができる。しかし、図12は単に例示的なものに過ぎず、種々の実施形態の例示的な態様を実装することができる特定のアーキテクチャに対する何らかの限定を表明又は含意することを意図したものではないことを理解されたい。図12に示すアーキテクチャに対する多くの変更を以下の説明及び特許請求される主題の範囲及び趣旨から逸脱せずに行うことができる。部分252は、プロセッサ254、及びランダムアクセスメモリRAMなどのメモリ256を含む。重複排除システム250は、便宜上図示しないが、ウィンドウなどの画像をグラフィカルユーザインタフェース上でユーザに示すディスプレイ、キーボード、マウス、プリンタなどを含む幾つかのコンポーネントに動作可能に結合することができる。勿論、当業者であれば、上記のコンポーネントの任意の組合せ、又は任意の数の異なるコンポーネント、周辺装置、及び他のデバイスを重複排除システム250と共に使用することができることを認識するであろう。例証的な実施形態において、重複排除システム250及び/又は部分252は、メモリ256に格納されているオペレーティングシステムOS258例えば、z/OS、OS/2、LINUX、UNIX、WINDOWS、MACOS並びに入力及びコマンドを受け取って結果を表示するためのユーザとのインタフェースの制御下で動作する。本発明の一実施形態において、OS258は、本発明による合成バックアップ機能を促進する。最後に、OS258は、以下に説明する例示的な方法における種々のプロセス及び機構を実行するように適合させることができるタスクスケジューリングモジュール264を含む。重複排除システム250及び/又は部分252は、例えばCOBOL、PL/1、C、C、JAVA、ADA、BASIC、VISUALBASICなどのプログラミング言語又は任意の他のプログラミング言語で書かれたアプリケーションプログラム260をプロセッサ254により可読なコードに変換することを可能にするコンパイラ262を実装することができる。コンパイル後、アプリケーションプログラム260は、コンパイラ262を用いて生成された関係及び論理を用いて、重複排除システム250及び/又は部分252のメモリ256の内部に格納されているデータにアクセスし、操作する。本発明による機構及びプロセスをさらに実装及び実行するために、OS258は、メモリ256、プロセッサ254、アプリケーションプログラム260並びに他のコンピュータ処理コンポーネント、ネットワーキングコンポーネント及びストレージコンポーネントと合同して、合成バックアップ機能を実行及び促進するための付加的なモジュールを実装することができるが、これらは便宜上図示しない。当業者であれば認識するように、ここで説明したこれらの付加的なモジュールの機構は、種々の形態及びアーキテクチャで実装することができる。従って、この図におけるタスクスケジューリングモジュール264の説明もやはり、重複排除システム250及び/又は部分252内の可能なコンピューティングコンポーネント間の論理的関係を明示することを意図したものであり、特定の物理構造又は関係を含意するものではない。一実施形態において、オペレーティングシステム258、アプリケーションプログラム260及びコンパイラ262並びにタスクスケジューリングモジュール264及び付加的なモジュールを実装する命令は、コンピュータ可読媒体内に有形に具体化され、この媒体としては、1つ又は複数の固定若しくは取外し可能なデータ記憶装置、例えば、zipドライブ、ディスク、ハードドライブ、DVD/CD-ROM、デジタルテープ、SSDなどを挙げることができる。さらに、オペレーティングシステム258及びアプリケーションプログラム260は、重複排除システム250及び/又は部分252によって読み出されて実行されたときに、重複排除システム250及び/又は部分252に本発明を実施及び/又は使用するのに必要なステップを実行させる。アプリケーションプログラム260及び/又はオペレーティングシステム258の命令はまた、メモリ256内に有形に具体化することもでき、及び/又は、種々のコンポーネントを介したネットワーク機能により伝送するか又はアクセスすることができる。従って、用語製品、プログラムストレージデバイス及びコンピュータプログラム製品は、本明細書で用いる場合、任意のコンピュータ可読デバイス又は媒体からアクセス可能な及び/又は動作可能なコンピュータプログラムを包含することが意図されている。本発明の実施形態は、例えば、ストレージエリアネットワークSANのようなコンピューティングデバイスのネットワークを含む分散コンピュータシステムを管理するための機能を含む1つ又は複数の関連付けられたソフトウェアアプリケーションプログラム260を含むことができる。従って、プロセッサ254は、1つ又は複数のストレージ管理プロセッサSMP又は他の専用デバイスを含むことができる。アプリケーションプログラム260は、単一コンピュータ及び/又は重複排除システム250内で動作することもでき、又は、コンピューティングデバイスのネットワークを含む分散コンピュータシステムの一部として動作することもできる。ネットワークは、ローカルエリアネットワーク及び/又はインターネット接続これは公設のもの、又は、例えば仮想プライベートネットワークVPN接続を介したセキュリティ保護されたものとすることができるを介して、又はファイバチャネルSAN若しくは当業者にはれば理解される他の既知の種類のネットワークを介して接続された、1つ又は複数のコンピュータを包含することができる。ファイバチャネルSANは、通常はコンピュータがストレージシステムと通信するためだけに用いられ、コンピュータ相互の通信には用いられないことに留意されたい。当業者であれば認識するように、本発明の態様は、システム、方法又はコンピュータプログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、又はソフトウェア態様とハードウェア態様とを組み合せた実施形態の形を取ることができ、これらは全て一般的に、本明細書では回路、モジュール又はシステムと呼ぶことができる。さらに、本発明の態様は、具体化されたコンピュータ可読プログラムコードを有する1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータプログラム製品の形態を取ることができる。1つ又は複数のコンピュータ可読媒体の任意の組合せを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、それらに限定されないが、電子、磁気、光、電磁気、赤外、又は半導体のシステム、装置、若しくはデバイス、又はこれらの任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例非網羅的なリストには、1つ又は複数の線を有する電気接続、携帯用コンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み出し専用メモリROM、消去可能プログラム可能読み出し専用メモリEPROM又はフラッシュメモリ、光ファイバ、携帯用コンパクトディスク読み出し専用メモリCD-ROM、光記憶デバイス、磁気記憶デバイス、又はこれらの任意の適切な組合せが含まれる。本明細書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、若しくはデバイスによって、又はそれとの関連で用いられるプログラムを含む又は格納することができる任意の有形媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラムコードは、無線、有線、光ファイバケーブル、RFなど、又はこれらの任意の適切な組合せを含むがそれらに限定されない任意の適切な媒体を用いて伝達することができる。本発明の態様の動作を実行するためのコンピュータプログラムコードは、Java、Smalltalk、Cなどのオブジェクト指向言語、及び、Cプログラミング言語又は類似のプログラミング言語などの通常の手続型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組合せで記述することができる。プログラムコードは、完全にユーザのコンピュータ上で、独立型ソフトウェアパッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上及び部分的に遠隔コンピュータ上で、又は完全に遠隔コンピュータ若しくはサーバ上で実行することができる。後者のシナリオにおいて、遠隔コンピュータは、ローカルエリアネットワークLAN又は広域ネットワークWANを含む任意の型のネットワークを通じてユーザのコンピュータに接続することができ、又は、外部コンピュータへの接続を行う例えば、インターネットサービスプロバイダを用いてインターネットを通じてことができる。上で本発明の態様を、本発明の実施形態による方法、装置システム及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照しながら説明した。フローチャート図及び/又はブロック図の各ブロック、及び、フローチャート図及び/又はブロック図内のブロックの組合せは、コンピュータプログラム命令によって実施することができることを理解されたい。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置に供給して機械を生成し、コンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作成するようにすることができる。これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は特定の様式で機能する他のデバイスに指示することができるコンピュータ可読媒体内に格納して、コンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実施する命令を含んだ製品を生成するようにすることもできる。コンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスにロードし、一連の動作ステップがコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で実行されてコンピュータ実施のプロセスを生成するようにして、コンピュータ又は他のプログラム可能データ処理装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実施するためのプロセスをもたらすようにすることもできる。上記の図のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含むモジュール、セグメント、又はコード部分を表すことができる。また、幾つかの代替的実施において、ブロック内に示された機能は、図に示した順序とは別の順序で行うことができることに留意されたい。例えば、連続して示した2つのブロックは、実際には、実質的に同時に実行することができ、又は、ブロックは、関与する機能に応じて、場合によっては逆の順序で実行することができる。また、ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組合せは、指定された機能若しくは動作を実行する専用ハードウェアをベースとするシステム、又は、専用ハードウェアとコンピュータ命令との組合せによって実施することができることに留意されたい。本発明の1つ又は複数の実施形態を詳しく説明したが、当業者であれば、それらの実施形態に対する変更及び改造を、添付の特許請求の範囲に示す本発明の範囲から逸脱せずに施すことができることを理解するであろう。"