"データ記憶システムの操作方法であって、ホストコマンドを受信するためのシステムインターフェースを可能にするステップと、ホスト仮想ブロックアドレスを記憶装置の物理アドレスに変換することを含む前記ホストコマンド用の論理ブロックアドレスのトランザクションレコードを監視するためのマッピングレジスタを更新するステップと、記憶プロセッサによって、前記マッピングレジスタにアクセスして前記トランザクションレコードを階層ポリシーレジスタと比較するステップと、前記トランザクションレコードが前記階層ポリシーレジスタを超えると前記記憶プロセッサが判定した場合に、階層記憶エンジンによってホストデータブロックを前記システムインターフェースにより転送し、かつ同時にティア0、ティア1またはティア2間で転送することを可能にするステップとを含む、データ記憶システムの操作方法。前記システムインターフェースによって前記ホストデータブロックを転送するステップは、前記階層記憶エンジンによって記憶ポートにアクセスするステップと、前記記憶ポートを介して記憶データを転送するステップとを含み、前記記憶データを転送するステップは、前記階層記憶エンジンによって前記記憶データを記憶インターフェースに移動するステップを含む、請求項1に記載の方法。前記階層記憶エンジンに結合され、記憶データと前記ホストデータブロックとの間で転送するためのローカルキャッシュにアクセスするステップをさらに含む、請求項1に記載の方法。前記ホストコマンドを実行するためのコマンドハンドラを前記システムインターフェースにより活性化するステップをさらに含む、請求項1に記載の方法。前記ティア0、前記ティア1、前記ティア2の一部またはそれらの組合わせを有するホスト記憶要素の全ボリュームのスナップショットデータを捕捉するステップをさらに含む、請求項1に記載の方法。ホストコマンドを受信するためのシステムインターフェースと、前記システムインターフェースによりアドレス指定され、前記ホストコマンド用の論理ブロックアドレスのトランザクションレコードを監視するためのマッピングレジスタとを備え、前記マッピングレジスタは、記憶装置の物理アドレスに変換されたホスト仮想ブロックアドレスを含み、さらに前記マッピングレジスタに結合され、前記トランザクションレコードを階層ポリシーレジスタと比較するための記憶プロセッサと、前記記憶プロセッサに結合され、前記トランザクションレコードが前記階層ポリシーレジスタを超えると前記記憶プロセッサが判定した場合に、前記システムインターフェースによってホストデータブロックを転送し、かつ同時にティア0、ティア1またはティア2間で転送するための階層記憶エンジンとを備える、データ記憶システム。前記システムインターフェースによって転送される前記ホストデータブロックは、前記階層記憶エンジンによってアクセスされる記憶ポートと、前記階層記憶エンジンに結合されるローカルキャッシュとを含み、前記ローカルキャッシュは、前記階層記憶エンジンによって、前記記憶ポートを介して転送され、かつ、記憶インターフェースに移動した記憶データを含む、請求項6に記載のシステム。前記階層記憶エンジンに結合され、記憶データおよび前記ホストデータブロックが格納されるローカルキャッシュをさらに備える、請求項6に記載のシステム。前記システムインターフェースによって活性化され、前記ホストコマンドを実行するためのコマンドハンドラをさらに備える、請求項6に記載のシステム。前記ティア0、前記ティア1、前記ティア2の一部またはそれらの組合わせを有するホスト記憶要素をさらに備え、前記ホスト記憶要素は、その残余の部分において、前記記憶プロセッサによりアクセスされ、かつ、前記ホスト記憶要素の全ボリュームを再生するためのスナップショット容量を含む、請求項6に記載のシステム。発明の開示この発明は、データ記憶システムの操作方法を提供するものであって、操作方法は、ホストコマンドを受信するためのシステムインターフェースを可能にするステップと、ホスト仮想ブロックアドレスを記憶装置の物理アドレスに変換することを含むホストコマンド用の論理ブロックアドレスのトランザクションレコードを監視するためのマッピングレジスタを更新するステップと、記憶プロセッサによって、マッピングレジスタにアクセスしてトランザクションレコードを階層ポリシーレジスタと比較するステップと、トランザクションレコードが階層ポリシーレジスタを超えると記憶プロセッサが判定した場合に、階層記憶エンジンによってホストデータブロックをシステムインターフェースにより転送し、かつ同時にティア0、ティア1またはティア2間で転送することを可能にするステップとを含む。この発明は、データ記憶システムを提供するものであって、データ記憶システムは、ホストコマンドを受信するためのシステムインターフェースと、システムインターフェースによりアドレス指定され、ホストコマンド用の論理ブロックアドレスのトランザクションレコードを監視するためのマッピングレジスタとを含み、マッピングレジスタは、記憶装置の物理アドレスに変換されたホスト仮想ブロックアドレスを含み、さらに、データ記憶システムは、マッピングレジスタに結合され、トランザクションレコードを階層ポリシーレジスタと比較するための記憶プロセッサと、記憶プロセッサに結合され、トランザクションレコードが階層ポリシーレジスタを超えると記憶プロセッサが判定した場合に、システムインターフェースによってホストデータブロックを転送し、かつ同時にティア0、ティア1またはティア2間で転送するための階層記憶エンジンとを含む。本発明のある実施の形態は、上述のものに加えて、または上述のものに代えて、他のステップまたは要素を有する。そのステップまたは要素は、添付の図面を参照した以下の詳細な説明を読むことにより当業者に明らかになるであろう。発明を実施するためのベストモード以下の実施の形態は、当業者が本発明を作り、かつ、使用することができるように十分詳細に記載されている。本開示に基づいて他の実施の形態が明らかであろうこと、そして、本発明の範囲から逸脱することなく、システム、プロセス、または機械的な変更がなされ得ることが理解されるべきである。以下の説明において、本発明の完全な理解を提供するために多数の特定の詳細が与えられる。しかしながら、本発明は、これらの特定の詳細なしに実施され得ることは明らかであろう。本発明を不明瞭にすることを避けるために、いくつかの周知の回路、システム構成、およびプロセスのステップは、詳細には開示されていない。システムの実施の形態を示す図面は、概略図であってスケーリングされておらず、特に、いくつかの寸法は、提示を明確にするためのものであって、図面で誇張して示されている。同様に、図の表示は、説明を容易にするために一般的に同様の方向を示しているが、図面のこの描画は、大部分において任意である。概略的には、本発明は、任意の向きで操作され得る。複数の実施の形態がいくつかの共通の特徴を有して開示され記載されている場合には、図、記述およびそれらの理解を明瞭かつ容易にするために、類似の特徴は互いに、通常、同じ参照符号を付して説明されるであろう。解説用として、本明細書で使用される用語水平horizontalは、向きに拘わらず、地面または地球の表面に平行な平面として定義される。用語垂直verticalは、上記で定義された水平に垂直な方向を示す。上のabove、下のbelow、下端bottom、上端top、側side側壁sidewallのような、より高いhigher、より低いlower、上方のupper、超えてover、および下にunder等の用語は、図に示されるように、水平面に対して定義される。本明細書において用語処理processingは、システムデータおよびプログラムを転送し格納することとして用いられる。用語階層記憶tieredstorageは、データ利用の頻度に見合う性能を有する装置にデータを格納し得る構造と定義される。一例として、国勢調査データのような稀にしか使用しないデータは、低性能かつ安価なアーカイブ記憶装置に格納し、一方、頻繁にアクセスされるプログラムデータは、ソリッドステートディスクや、15000rpmで回転し、かつ、より高価な高性能インターフェースを介して通信する磁気ハードディスクドライブに格納し得る。用語アーカイブ装置archivaldeviceは、たとえば、磁気テープ記憶装置や光媒体記憶装置のような、非常に高容量の低性能記憶装置として定義される。用語ティア0tierzeroは、最高性能の記憶装置のグループと定義され、高性能のインターフェースを有する、キャッシュメモリ構造、ソリッドステートディスク、および最高性能の磁気ハードディスクドライブを含み得る。用語ティア1tieroneは、高容量を提供する中間性能の記憶装置のグループと定義され、適度な性能のインターフェースを有する磁気ハードディスクドライブを含み得る。用語ティア2tiertwoは、最も性能の低い記憶装置のグループと定義され、最も性能の低いインターフェースを有する、磁気テープ記憶装置や光媒体記憶装置のようなアーカイブ装置を含み得る。本発明の説明は、動作を説明するために3つの階層を用いるが、任意の数の階層が他の実装において定義され得ることが理解される。多数の階層は、多くのアプリケーションにおいて典型的であるが、しかしながら、他の性能あるいはデータ保護の基準、ストレージクラスメモリSCMのような他の記憶メディアのタイプ、または他の新しいメモリ技術すなわち、位相変化、スピンプログラマブル、メモリスタ、その他同様の技術に対処するために、これらの3タイプを超える異なる数の記憶の階層も存在し得る。用語インバンドinbandは、プライマリインターフェースを利用してシステム管理情報を伝達するメッセージング方法論と定義され、それによってプライマリインターフェースの帯域のいくらかを消費する。用語アウトオブバンドoutofbandは、プライマリインターフェース以外の手段を使用してシステム管理情報を伝達するメッセージング方法論と定義され、それによってプライマリインターフェースの帯域の消費はない。階層記憶に関して、用語昇格promoteは、ある性能の階層よりも高性能の階層に関連する、より高性能の記憶装置に対象データを物理的に動かすことによって、ある性能の階層からより高性能の階層へ対象データを転送することを意味するものと定義される。階層記憶に関して、用語降格demoteは、ある性能の階層よりも低性能の階層に関連する、より低性能の記憶装置に対象データを物理的に動かすことによって、ある性能の階層からより低性能の階層へ対象データを転送することを意味するものと定義される。本願において用語相応commensurateは、データの使用頻度に対して適切な性能レベルと定義され、それによって、頻繁に使用されるデータに対して高性能の記憶装置を提供し、稀にしか使用されないデータに対して低性能の記憶装置を提供する。本願において用語自律autonomousは、対象データを昇格または降格するのに階層データ記憶システムが外部のいかなるホストのリソースの支援や許可を必要としないことを意味するものと定義される。図1を参照して、ここでは、この発明の実施の形態における階層データ記憶システム100の機能ブロック図が示される。階層データ記憶システム100の機能ブロック図には、たとえば、パーソナルコンピュータインターフェースエクスプレスPCI-eTM、ユニバーサルシリアルバスUSBTM、サンダーボルトTMのようなシステムインターフェース102が描かれている。システムインターフェース102は、コマンドハンドラ104に結合され得る。コマンドハンドラ104は、システムインターフェース102を介して受信されるコマンドを復号して実行するためのハードウェアアクセラレータと定義される。コマンドハンドラ104は、たとえば、組合せ論理や、プログラムシーケンサ、順次ステートマシンの組合せであり得る。コマンドハンドラ104は、システムインターフェース102からのコマンドの受信を管理し、コマンドを復号し、コマンドの実行を管理し、そしてシステムインターフェース102との任意のやり取りのためのエラー管理および回復を実行する。コマンドハンドラ104は、マイクロプロセッサや組込マイコン等の記憶プロセッサ106に結合され得る。記憶プロセッサ106は、ホストインターフェース102からのあらゆるデータ転送要求とは関係なく、階層データ記憶システム100の動作全体を制御する。記憶プロセッサ106は、割込みで駆動され、ポーリングにより動作し、またはそれらの組合せで動作し得る。記憶プロセッサは、階層ポリシーレジスタ108によって案内され得る。階層ポリシーレジスタ108は、システムインターフェース102を介して転送されたデータの記憶と関連付けられるルールを含む抵抗アレイまたは不揮発性メモリであり得る。階層ポリシーレジスタ108のルールは、ホスト中央処理装置図示せずと予め取り決められ得る。記憶プロセッサ106は、階層ポリシーレジスタ108のポリシーまたは他のパラメータを修正するために、ホスト中央処理装置図示せずとのインバンドまたはアウトオブバンドの管理インターフェース図示せずを提供することができる。このインターフェースは、たとえば、アドバンストホストコンピュータインタフェースAHCIや、記憶プロセッサ106と通信するための他の手段を用いて、ベンダー固有のSMARTコマンドのような方法を用いてもよい。マッピングレジスタ110は、システムインターフェース102を介して転送されたデータの記憶位置およびアクセスを管理するために、記憶プロセッサ106によってアクセスされる抵抗アレイまたは不揮発性メモリであり得る。マッピングレジスタ110は、仮想から物理的なブロックへのマッピングや、システムインターフェース102を介して転送されたデータブロックへのアクセス回数および頻度の統計のような、トランザクションレコード111を保持することができる。記憶プロセッサ106とマッピングレジスタ110との間の相互作用は、システムインターフェース102を介して転送されたデータが階層ポリシーレジスタ108に基づいて昇格されるべきか降格されるべきかを常に監視し得る。階層ポリシーレジスタ108のルールに基づいて、記憶プロセッサ106は、システムインターフェース102を介して転送されたデータが、マッピングレジスタ110に入力されたアクセス回数およびタイプに相応の性能を有する記憶装置図示せずに移動されるべきであることを決定することができる。昇格または降格の決定をする際に、記憶プロセッサ106は、優先順位、階層化に割り当てられる論理ドライブのレベル、任意のロック変数、および使用されるソリッドステートドライブSSD’sの任意のウェアレベリングを含む、アロケーションブロックでの読み書きのトランザクションレコード111を考慮し得る。論理ブロックアドレス適合ブロック112は、コマンドハンドラ104とマッピングレジスタ110との間に結合される。論理ブロックアドレス適合ブロック112は、ホスト仮想ブロック要求を物理デバイスまたは他の仮想デバイス要求に変換し、システムインターフェース102を介して受信されるデータブロックがマッピングレジスタ110において参照されるかどうかを迅速に確認することができる。論理ブロックアドレス適合ブロック112は、記憶プロセッサ106による介入なしにマッピングレジスタ110を更新することができる。マッピングレジスタ110は、論理ブロックアドレス適合ブロック112からホスト仮想論理ブロックアドレスを取り込み、どの物理ディスクにホスト仮想論理ブロックアドレスがマップされるかを検索し、そして、特定の物理ディスク内のどのページおよびオフセットかを決定する。物理ディスクに代えて、2つの物理ディスクを1セットとするRAIDのような仮想ディスクを用いてもよい。論理ブロックアドレス適合ブロック112は、ルックアップ関数を用いることによって、ホスト仮想論理ブロックアドレスを物理ディスクのページおよびオフセットに変換することができる。コマンドハンドラ104は、階層記憶エンジン114に結合され得る。階層記憶エンジン114は、コマンドハンドラ104から入力を直接受信して、システムインターフェース102を介して転送されたデータブロックを格納し、またはアクセスすることができる。階層記憶エンジン114は、システムインターフェース102を介して転送されたデータを、ダイナミックランダムアクセスメモリDRAMキャッシュのようなローカルキャッシュ116内に任意選択で保持することができる。ローカルキャッシュ116は、階層データ記憶システム100に任意に追加され、それを用いない場合には、階層記憶エンジン114は、シリアルアドバンストテクノロジーアタッチメントSATAディスクドライブ図示せずのような記憶装置図示せずにデータを直接転送することができる。ローカルキャッシュ116が用いられる場合には、階層記憶エンジン114は、適切な性能レベルの装置をデータ用に決定し、あるいはシステムインターフェース102を介して記憶装置に直接転送されたデータを転送するために、ローカルキャッシュ116にデータを維持することができる。階層記憶エンジン114は、記憶ポート118を介して、SATAディスクドライブや、SASディスクドライブ、PCI-e付属ディスクドライブにアクセスすることができる。記憶ポート118は、ローカルキャッシュ116またはシステムインターフェース102のいずれかから格納用のSATAディスクドライブへデータを転送するために、バッファや、コマンド発行器、インターフェースシーケンサのような支援ハードウェアを含むことができる。システムインターフェース102を介してデータがアクセスされると、コマンドハンドラ104は、マッピングレジスタ110内のトランザクションレコード111をそのデータブロック用に更新するために、論理ブロックアドレス適合ブロック112にその動作を伝達する。マッピングレジスタ110がトランザクションレコード111を収集すると、階層ポリシーレジスタ108に格納された、制限を超えるデータブロックの使用について、記憶プロセッサ106は、記憶ポート120のバンクを介してアクセスされ得る異なる性能の装置図示せずへデータブロックを移動させることを開始することができる。記憶プロセッサ106によって開始されたデータブロックの移動により、記憶要素図示せずの適切な階層にデータブロックを格納することができる。記憶要素の階層は、記憶要素の性能によって分割され得る。データブロックの使用パターンに相応の性能を提供する記憶要素にデータブロックを格納することによって、階層データ記憶システム100が最適なシステム性能を維持可能であることが判明した。データブロックの使用は、論理ブロックアドレス適合ブロック112およびマッピングレジスタ110によって監視され得る。記憶プロセッサ106は、データブロックの使用の増減に基づいて、特定の階層にデータを昇格または降格させることができる。記憶プロセッサ106は、システムインターフェース102を介してデータ転送を要求されたホストの実行直後にデータブロックを昇格または降格させることが可能である。図2を参照して、ここでは、図1の階層データ記憶システム100のシステムアプリケーション201の機能ブロック図が示される。階層データ記憶システム100のシステムアプリケーション201の機能ブロック図には、少なくともホスト中央処理ユニット204、ホスト中央処理ユニット204に結合されるホストメモリ206、およびホストバスコントローラ208から成るサーバまたはワークステーションのようなホストコンピュータ202にインストールされた階層データ記憶システム100が描かれている。ホストバスコントローラ208は、ホストインターフェースバス204を提供し、それによってホストコンピュータ202は階層データ記憶システム100を利用することができる。ホストバスコントローラ208の機能は、いくつかの実施ではホスト中央処理ユニット204により提供され得ることが理解される。階層データ記憶システム100は、階層記憶エンジン114と、それが任意選択で含まれている場合にはローカルキャッシュ116とを含む。階層データ記憶システム100は、周辺インターフェースシステムを有する不揮発性メモリベースの記憶装置のようなソリッドステートディスク210や、展開または拡張された不揮発性システムメモリ用の内部メモリカードのような不揮発性メモリ212に結合され得る。階層データ記憶システム100は、ホストコンピュータ202に搭載されるか、ホストコンピュータ202の外部にあるか、またはそれらの組合せであり得るハードディスクドライブHDD216にも結合され得る。ソリッドステートディスク210、不揮発性メモリ212、およびハードディスクドライブ216は、全てダイレクトアタッチトストレージDAS装置と扱われる。階層データ記憶システム100は、ローカルエリアネットワークLAN220それに代えてストレージエリアネットワークSANでもよい。を結合するためのネットワーク取付ポート218を支援し得る。ネットワーク取付ポート218は、ネットワークアタッチトストレージNAS装置222へのアクセスを提供し得る。ネットワークアタッチトストレージ装置222は、ハードディスクドライブとして示されているが、これは例示にすぎない。ネットワークアタッチトストレージ装置222は、ネットワーク取付ポート218を介してアクセスされる、磁気テープ記憶図示せず、およびソリッドステートディスク210、不揮発性メモリ212またはハードディスクドライブ216に類似の記憶装置を含み得ることが理解される。階層データ記憶システム100は、たとえば、記憶装置に取付けられるシリアルアドバンストテクノロジーアタッチメントSATA、シリアルアタッチドSCSISAS、またはパーソナルコンピュータインターフェース-エクスプレスPCI-eのような、ケーブル224により図1の記憶ポート120のバンクを介して複数のダイレクトアタッチトストレージDAS装置へのアクセスを提供し相互作用するためのホストインターフェースバス214に取付けられる。階層記憶エンジン114およびローカルキャッシュ116によって、階層データ記憶システム100は、ホストコンピュータ202によって与えられるデータの性能要求を満足させ、相応の性能を有するソリッドステートディスク210、不揮発性メモリ212、またはハードディスクドライブ216にそのデータを格納することができる。階層データ記憶システム100は、指定されたデータを低性能の記憶装置に移動することによって、最も頻繁に使用されるデータに対して最高性能の記憶装置の利用を制御するために、ホストコンピュータ202により与えられるデータを管理可能であることが判明した。最高性能に満たない高容量の記憶装置は、メガバイトあたりの単価が安いことが理解される。データの使用パターンに相応の性能を有する記憶装置にデータを格納することによって、最高性能の記憶装置の空き容量を効率的に利用することができる。図3を参照して、ここでは、この発明の第2の実施の形態における階層データ記憶システム300のシステムアプリケーション301の機能ブロック図が示される。階層データ記憶システム300のシステムアプリケーション301の機能ブロック図には、階層データ記憶システム300のシステムインターフェース306に結合されるインターフェースケーブル304を有するホストコンピュータ302が描かれている。階層データ記憶システム300は、独立した筐体および電源を有するスタンドアローンのシステムであり得るが、ブレードサーバの筐体のように、ホストコンピュータ302と同じ筐体内に統合されてもよいことが理解される。インターフェースケーブル304は、システムインターフェース306を介してホストコンピュータ302と階層データ記憶システム300との間の通信経路を提供し得る。システムインターフェース306は、アドバンストホストコンピュータインタフェースAHCIや、不揮発性メモリホストコンピュータインターフェースNVMHCI、拡張不揮発性メモリホストコンピュータインターフェースNVMe、スモールコンピュータシステムインターフェースSCSIオーバーPCI-eSOP、またはSCSIのようなプロトコルを利用するインターフェースを含み得る。読出専用メモリやフラッシュメモリ装置のような基本入出力システムBIOS308が任意選択で取り付けられ得る。BIOS308の取付けは、階層データ記憶システム300のためにシステムブート可能な環境を提供し、あるいはホストコンピュータ302にブートプログラムを提供し得る。システムインターフェース306は、階層記憶機能、すなわち、図1の、データブロックのトランザクションレコード111を収集し、データブロックを一時的な性能の階層に格納し、トランザクションレコード111に基づいてデータブロックを異なる性能の階層に昇格または降格させることから成る階層記憶機能を実行し、またはブロックレベルボリュームスナップショット機能のような他の機能を実行するための階層記憶プロセッサ310に結合され得る。階層記憶プロセッサ310は、専用ハードウェアの論理ゲートおよび状態論理、マイクロコード化されたハードウェアエンジン、または、異なるタイプの格納処理あるいは階層化機能を実行するホストコンピュータシステムによって専用化されあるいは再プログラム可能なインターフェース論理を有する汎用中央処理ユニットとして実装され得る。階層記憶プロセッサ310は、ローカルキャッシュ116に結合され、階層記憶プロセッサ310用のローカルキャッシュを任意選択で与え得る。ローカルキャッシュ116は、バッテリのバックアップや不揮発性のソリッドステートメモリと同等物のような、任意の電力損失保護回路図示せずを含み得る。階層記憶プロセッサ310は、ケーブル224を介してハードディスクドライブ216にアクセスするダイレクトアタッチストレージDASインターフェース312に結合され得る。ハードディスクドライブ216は例示にすぎず、ダイレクトアタッチストレージインターフェース312は、シリアルアドバンストテクノロジーアタッチメントSATAディスクドライブや、シリアルアタッチトSCSISASディスクドライブ、またはPCI-eスモールフォームファクタの記憶装置に結合され得る。階層記憶プロセッサ310は、ローカルエリアネットワークLAN220それに代えてストレージエリアネットワークSANでもよい。を結合するためのネットワーク取付ポート218を介した接続を提供し得るネットワークアタッチストレージNASインターフェースに結合され得る。ネットワーク取付ポート218は、図2のネットワークアタッチトストレージNAS装置222へのアクセスを提供し得る。ネットワークアタッチトストレージ装置222は、ネットワーク取付ポート218を介してアクセスされる、磁気テープのストレージ図示せず、ソリッドステートディスク210、フラッシュメモリ212、またはハードディスクドライブ216を含み得ることが理解される。階層記憶プロセッサ310は、ネットワークアダプタ314に結合され得る。ネットワークアダプタ314は、ローカルエリアネットワークLAN220それに代えてストレージエリアネットワークSANでもよい。を結合するためのネットワーク取付ポート218を介して結合され得る。ローカルエリアネットワーク220は、階層データ記憶システム300によって利用され得る追加の記憶装置図示せずへのアクセスを提供し得ることが理解される。階層記憶プロセッサ310は、ソリッドステートドライブ318となり得る、SATA記憶装置や、SAS記憶装置、またはPCI-e付属記憶装置へのアクセスを提供するフラッシュインターフェース316に結合され得る。ソリッドステートドライブ318は、ローカルの高性能記憶階層または他の記憶階層用のデータキャッシュを加えたハイブリッド階層を提供するために、モジュール図示せずまたはソリッドステートドライブ318に直接搭載された部品図示せずを用いて、階層データ記憶システム300にケーブル224を介して接続され、または直接組み込まれ得る。フラッシュインターフェース316に結合される記憶装置は、ソリッドステートドライブ318または任意の他の不揮発性メモリベースの記憶装置図示せずであり得ることが理解される。階層データ記憶システム300は、指定されたデータを低性能の記憶装置に移動することによって、最も頻繁に使用されるデータに対して最高性能の記憶装置の利用を制御するために、ホストコンピュータ202により与えられるデータを管理するスタンドアローンの周辺装置として動作し得ることが判明した。最高性能に満たない高容量の記憶装置は、メガバイトあたりの単価が安いことが理解される。データの使用頻度に相応の性能を有する記憶装置にデータを格納することによって、最高性能の記憶装置の空き容量を効率的に利用することができる。図4を参照して、ここでは、階層データ記憶システム100によって管理される階層記憶アレイ401の機能ブロック図が示される。階層記憶アレイ401の機能ブロック図には、パーソナルコンピュータインターフェースバスPCI-eまたはホストローカルバスに対するインターフェース接続402を有する階層データ記憶システム100が描かれている。インターフェース接続402は、アドバンストホストコンピュータインタフェースAHCIコマンドや、SOPコマンド、NVMeコマンドのようなホストコマンド404、およびホストデータブロック406を階層データ記憶システム100へ伝えることができる。ランダムアクセスメモリのような拡張キャッシュ408が階層データ記憶システム100に結合され得る。拡張キャッシュ408に保持され得るあらゆるホストデータブロック406を保護するために、非常用電源を拡張キャッシュ408に供給するようにバッテリバックアップ410が取り付けられ得る。ホストデータブロック406に関する図1のトランザクションレコード111を記録するために、拡張キャッシュ408および図1の記憶プロセッサ106も、拡張キャッシュ408を管理し格納するのに任意選択で用いられ得る。バッテリバックアップ410は、動作中の停電の場合に、拡張キャッシュ408のインテグリティを維持するように任意選択で設けられる。階層データ記憶システム100は、ケーブル224またはバックプレーン接続図示せずによって、ソリッドステートディスクのような最高性能の記憶装置414のティア0412に結合される。最高性能の記憶装置414は、格納データ上の読出ヘッドを位置決めするための機械的な遅延を招くことなく、全ての記憶システムに共通するファイルシステム構造を維持する能力を提供する。階層データ記憶システム100は、拡張キャッシュ408から、またはインターフェース接続402を介して図2のホストメモリ206から直接、ホストデータブロック406を取り出すことができ、そして記憶データ418をティア0412へ転送することができる。記憶データ418の転送は、シリアルアタッチドSCSISASコマンド420、SASベースのSATAトンネルプロトコルSTP422によって、またはSATAや、NVMe、PCI-e、もしくはSOPのようなインターフェースからの他の記憶インターフェースコマンドによって、通信することを含み得る。階層データ記憶システム100は、性能要件がティア0412上の空間を消費することを正当化していないと記憶データ418のトランザクションレコード111が示唆していることを判定し、図1の記憶プロセッサ106の制御の下で、ティア1424またはティア2426のいずれかへデータを移動することができる。階層データ記憶システム100の階層の数および定義は異なってもよいことが理解される。いかなる数の階層も、最高性能の記憶装置414から最低性能の記憶装置図示せずまでの順序で実装され得る。最高性能の記憶装置414の最新版が導入されると、それらは、現行版の最高性能の記憶装置414をより低い性能階層に移動させ得る。ティア1424は、シリアルアタッチトSCSISAS磁気ディスクやシリアルアドバンストテクノロジーアタッチメントSATA磁気ディスクのような中間速度の記憶装置428を含み得る。中間速度の記憶装置428の性能は、最高性能の記憶装置414よりも低い一方、それらは、メガバイトあたり低コストでかなり多くの容量を提供する。中間速度の記憶装置428は、記憶データ418にアクセスするために同心のデータトラック上で機械的にヘッドを位置決めしなければならないので、最高性能の記憶装置414よりも遅い応答時間を有し得る。ティア2426は、低性能のディスクドライブや、テープドライブ、または光学記憶装置のようなアーカイブ装置430を含み得る。アーカイブ装置430は、位置決めやメディアとの相互作用に必要な時間のために最も低い性能を提供し得る。これらの装置は、典型的には、記憶容量に対してメガバイトあたりのコストが非常に低いけれども、最高性能の記憶装置414および中間速度の記憶装置428と比較したときに非常に高容量を提供し得る。最高性能の記憶装置414および中間速度の記憶装置428は2つだけ示されているけれども、これは一例であって、任意の適切な数の最高性能の記憶装置414および中間速度の記憶装置428が階層データ記憶システム100に結合され得ることが理解される。階層データ記憶システム100は、図3のホストコンピュータ302にソフトウェアドライバをインストールすることなく、ホストコンピュータ302へのインターフェース接続402を介して、最高性能の記憶装置414、中間速度の記憶装置428、およびアーカイブ装置430へのアクセスを提供することが判明した。これは、専用のインターフェース以上に次の価値を提供する。ユーザは、オペレーティングシステムを再構成する必要なしに、ホストコンピュータ302の現行の構成に階層データ記憶システム100をインストールすることができ、また、階層データ記憶システム100は、全ての標準のX86ベースのサーバ、ワークステーション、およびPCとシームレスに動作し、VMwareのESXiTM、OSXTM、SolarisX86TM、LinuxTM、およびWindowsTMのような、それらが利用するオペレーティングシステムから独立して動作し得る。階層データ記憶システム100は、記憶データ418の利用に相応の記憶装置の性能を提供するために記憶データがティア0412、ティア1424、またはティア2426に移動可能かどうかを判定するために、記憶データ418のトランザクションレコード111を監視し得ることも判明した。ティア0412、ティア1424、またはティア2426間で記憶データを移動する階層データ記憶システム100の能力は、ティア0412の容量の使用を最適化し、システム全体の性能を向上させる。図面および説明では3つのティアのみを取り上げたが、これは理解を容易にするための一例にすぎないことが理解される。メディアのタイプ、接続性、書込み耐久性、データ保護レベルまたは性能に基づいて、任意の数のティアが実装され得る。図5を参照して、ここでは、図1の階層データ記憶システム100によって実行されるホスト読出コマンド501のフロー図が示される。ホスト読出コマンド501のフロー図には、読出コマンド受信ブロック504に移行するホスト読出エントリー502が描かれている。読出コマンド受信ブロック504は、図1のコマンドハンドラ104によって開始される。トランザクションレコード用LBA適合ブロック506において、コマンドハンドラ104は、図1のマッピングレジスタ110にアクセスするために、図1の論理ブロックアドレス適合ブロック112を活性化し得る。次いで、フローは、記憶データをキャッシュへ移動するブロック508と、LBAトランザクションレコードを更新するブロック510との双方を活性化することによって進行する。記憶データをキャッシュへ移動するブロック508は、任意選択で省略することができ、その場合、フローは、データをホストへ転送するブロック512へ移行する。図1の階層データ記憶システム100は、フローチャートの双方のパスを同時に実行するために処理を分割することができる。図1の階層記憶エンジン114は、図1のシステムインターフェース102へのデータ転送を実行することができ、一方、図1の記憶プロセッサ106は、図1のトランザクションレコード111を管理し、必要とされ得る階層の任意の変更を扱うことができる。フローの双方の部分は同時に実行すると理解されるけれども、フローの記述は、階層記憶エンジン114によって最初に実行される部分を説明するであろう。階層記憶エンジン114によって実行されるフローは、記憶データをキャッシュへ移動するブロック508に移行するか、システムインターフェース102を介してホストメモリへ直接記憶データを移動する。フローのこのブロックでは、キャッシュが利用される場合、階層記憶エンジン114は、コマンドハンドラ104によって与えられる情報を利用して、図4のティア0412、図4のティア1424、または図4のティア2426にアクセスし、図4の記憶データ418を図1のローカルキャッシュ116へ転送する。そして、フローは、データをホストへ転送するブロック512へ移行する。階層記憶エンジン114は、ローカルキャッシュ116を介してデータをシステムインターフェース102へ転送して図3のホストコンピュータ302へ転送することができる。転送が完了すると、フローは、ステータスを送信するブロック514へ移行し、そこで階層記憶エンジン114は、システムインターフェース102へ終了ステータスを与えてホストコンピュータ302へそのステータスを転送することができる。そして、フローは、出口ブロック516へ移行して階層記憶エンジン114による実行を終了する。一方で、記憶プロセッサ106によって実行されるフローは、LBAトランザクションレコードを更新するブロック510へ移行する。論理ブロックアドレス適合ブロック112は、仮想から物理へのマッピング、およびコマンドハンドラ104からの論理ブロックアドレスに関連する統計を強制的に更新し得る。記憶プロセッサ106は、図1のマッピングレジスタ110からトランザクションレコード111を取得するとともに、記憶データ418を保持するティア0412、ティア1424、またはティア2426のための情報を階層ポリシーレジスタ108から取得することができる。その後、フローは、しきい値チェックブロック518へ移行する。記憶プロセッサは、マッピングレジスタ110から取得されるトランザクションレコード111を階層ポリシーレジスタ108から読出された基準と比較し、記憶データ418が配置されているティア0412、ティア1424、またはティア2426のうちの関連するものに対するしきい値を超えたかどうかを判定し得る。しきい値を超えていない場合は、記憶プロセッサ106は、フローを出口ブロック516へ向けて記憶プロセッサ106による実行を終了する。しきい値を超える場合は、フローは、次いで、新たな階層を判定するブロック520へ移行する。記憶プロセッサ106は、記憶データ418がティア0412、ティア1424、またはティア2426に昇格すべきか、または降格すべきかを判定することができる。そして、フローは、記憶データを移動するブロック522へと移行し、そのブロックにおいて、記憶データが元の場所から読み出され、ティア0412、ティア1424、またはティア2426のうちの適切なものに書き込まれる。あるいは、記憶データは、記憶データの再配置の遅延処理のための支援ハードウェア構造においてフラグで通知される。そして、記憶データ418は、ティア0412、ティア1424、またはティア2426のうちの適切なものにおける新たな位置に書き込まれる。記憶プロセッサ106により実行されるフローは、元のティアからデータを削除するブロック524に移行し、そのブロックにおいて、記憶プロセッサは、ティア0412、ティア1424、またはティア2426のうちの元の適切なティアから記憶データ418を削除する。その後、フローは、レコードを更新するブロック526へと移行し、そのブロックにおいて、記憶プロセッサ106は、記憶データ418用にマッピングレジスタ110のエントリーを更新して、ティア0412、ティア1424、またはティア2426のうちの適切なものにおける新たな位置を示し、マッピングレジスタ110内のトランザクションコード111をリセットまたは調整する。そして、フローは、出口ブロック516へ移行して記憶プロセッサ106による実行を終了する。図6を参照して、ここでは、図1の階層データ記憶システム100によって実行されるホスト書込コマンド601のフロー図が示される。ホスト書込コマンド601のフロー図には、書込コマンド受信ブロック604に移行するホスト書込エントリー602が描かれている。書込コマンド受信ブロック604は、図1のコマンドハンドラ104によって開始される。トランザクションレコード用適合LBAブロック606において、コマンドハンドラ104は、図1のマッピングレジスタ110にアクセスするために、図1の論理ブロックアドレス適合ブロック112を活性化し得る。次いで、フローは、ホストデータをキャッシュへ移動するブロック608と、LBAトランザクションレコードを更新するブロック510との双方を活性化することによって進行する。あるいは、ローカルキャッシュ116が用いられない場合は、適切なティアへの経路が準備されているとき、フローは、図1のシステムインターフェース102を介して図2のホストメモリ206からデータを直接転送するために、ステップ608をバイパスしてデータを階層へ転送するブロック612へ直接移行してもよい。図1の階層データ記憶システム100は、フローチャートの双方のパスを同時に実行するために処理を分割することができる。図1の階層記憶エンジン114は、図1のシステムインターフェース102へのデータ転送を実行することができ、一方、図1の記憶プロセッサ106は、図1のトランザクションレコード111を管理し、必要とされ得る階層の任意の変更を扱うことができる。フローの双方の部分は同時に実行すると理解されるけれども、フローの記述は、階層記憶エンジン114によって最初に実行される部分を説明するであろう。図1のローカルキャッシュ116が任意選択で実装される場合、階層記憶エンジン114によって実行されるフローは、ホストデータをキャッシュへ移動するブロック608へ移行する。フローのこのブロックでは、階層記憶エンジン114は、図4のティア0412、図4のティア1424、または図4のティア2426の書込みに備えて、コマンドハンドラ114によって与えられる情報を利用して図4のホストデータブロック406をローカルキャッシュ116へ転送する。階層記憶エンジン114は、図3のホストコンピュータ302からの転送のためにシステムインターフェース102にアクセスし得る。転送が完了すると、フローは、データを階層に転送するブロック612に移行する。階層記憶エンジン114は、ローカルキャッシュ116を介して、ティア0412、ティア1424またはティア2426のうち図4の記憶データ418として選択されたものへデータを転送することができる。データ転送が完了すると、フローは、ステータスを送信するブロック614へ移行し、そこで階層記憶エンジン114は、システムインターフェース102へ終了ステータスを与えてホストコンピュータ302へそのステータスを転送することができる。そして、フローは、出口ブロック616へ移行して階層記憶エンジン114による実行を終了する。一方で、記憶プロセッサ106によって実行されるフローは、LBAトランザクションレコードを更新するブロック510へ移行する。記憶プロセッサ106によって実行される、書込コマンド601に対しての処理は、図5の読出コマンド501に対しての処理と同じである。論理ブロックアドレス適合ブロック112は、コマンドハンドラ104からの論理ブロックアドレスに関連するトランザクションレコード111を強制的に更新し得る。記憶プロセッサ106は、図1のマッピングレジスタ110からトランザクションレコード111を取得するとともに、記憶データ418を保持するティア0412、ティア1424、またはティア2426のための情報を階層ポリシーレジスタ108から取得することができる。その後、フローは、しきい値チェックブロック518へ移行する。記憶プロセッサは、マッピングレジスタ110から取得されるトランザクションレコード111を階層ポリシーレジスタ108から読出された基準と比較し、記憶データ418が配置されているティア0412、ティア1424、またはティア2426のうちの関連するものに対するしきい値を超えたかどうかを判定し得る。しきい値を超えていない場合は、記憶プロセッサ106は、フローを出口ブロック616へ向けて記憶プロセッサ106による実行を終了する。しきい値を超える場合は、記憶プロセッサ106のフローは、新たな階層を判定するブロック520へ移行する。記憶プロセッサ106は、記憶データ418がティア0412、ティア1424、またはティア2426に昇格すべきか、または降格すべきかを判定することができる。そして、フローは、記憶データを移動するブロック522へと移行し、そのブロックにおいて、記憶データが元の場所からティア0412、ティア1424、またはティア2426のうちの適切なものに読み出される。そして、記憶データ418は、ティア0412、ティア1424、またはティア2426のうちの適切なものにおける新たな位置に書き込まれる。記憶プロセッサ106により実行されるフローは、元のティアからデータを削除するブロック524に移行し、そのブロックにおいて、記憶プロセッサは、ティア0412、ティア1424、またはティア2426のうちの元の適切なティアから記憶データ418を削除する。その後、フローは、レコードを更新するブロック526へと移行し、そのブロックにおいて、記憶プロセッサ106は、記憶データ418用にマッピングレジスタ110のエントリーを更新して、ティア0412、ティア1424、またはティア2426のうちの適切なものにおける新たな位置を示し、マッピングレジスタ110内のトランザクションコード111をリセットする。そして、フローは、出口ブロック616へ移行して記憶プロセッサ106による実行を終了する。図7を参照して、ここでは、階層データ記憶システム300の仮想ビューを有するコンピュータシステム701が示される。階層データ記憶システム300の仮想ビューを有するコンピュータには、階層データ記憶システム300に結合されたインターフェースケーブル304を有するホストコンピュータ302が描かれている。仮想記憶インターフェース702によって、ホストコンピュータ302は、階層データ記憶システム300を単一の記憶要素704を有するものとして検出することができる。階層データ記憶システム300は、データの使用に相応の最適化された性能を提供するために、ティア0412、ティア1424、およびティア2426を自律的に管理し得る。頻繁に読み出されるデータについては、階層データ記憶システム300は、ティア0412にデータを見つけることができる。一度書き込まれると稀にしか読み出されないデータについては、階層データ記憶システム300は、ティア2426にデータを見つけることができる。階層データ記憶システム300は、最初にティア1424にデータを格納し、そのデータのための図1のトランザクションレコード111を作成するために、図1のローカルキャッシュ116内にコピーを必要に応じて維持する。適切なレコードが一旦作成されると、階層データ記憶システム300は、ホストコンピュータ302の知識または支援なしに、図4の記憶データ418を、ティア0412、ティア1424、またはティア2426のうちの適切なものに昇格または降格させ得る。階層データ記憶システム300は、指定されたデータを低性能の記憶装置に移動することによって、最も頻繁に使用されるデータに対して最高性能の記憶装置の利用を制御するために、サーバ、ワークステーションもしくはPCの内部の周辺装置、またはホストコンピュータ302により与えられるデータを管理するスタンドアローンの外部装置のいずれかとして動作し得ることが判明した。最高性能に満たない高容量の記憶装置は、メガバイト当たりの単価が安いことが理解される。データの使用パターンに相応の性能を有する記憶装置にデータを格納することによって、最高性能の記憶装置の空き容量を効率的に利用することができる。さらに、AHCI,SOPまたはNVMeのようなシステムインターフェース102を用いる階層データ記憶システム300を実装することによって、階層データ記憶システム300は、オペレーティングシステムやそのドライバのいかなる変更も必要とせずに、オペレーティングシステムの大部分で動作するであろう。さらに、無停止で、かつ、サーバや仮想サーバ環境に階層を追加するための複雑な手順なしに、現行のインストールされたシステムを更新することが可能である。図8を参照して、ここでは、図1の階層データ記憶システム100のアーキテクチャーのブロック図が示される。階層データ記憶システム100のアーキテクチャーのブロック図には、ホストデータブロック406を受信するための、仮想チャネルやアドレス可能ポートのようなチャネル802を有するシステムインターフェース102が描かれている。記憶プロセッサは、コマンドハンドラ104、マッピングレジスタ110、階層記憶エンジン114、ローカルキャッシュ116、拡張キャッシュバッテリバックアップ408、ならびに階層ポリシーレジスタ108とやり取りすることができる。ローカルキャッシュ116、および拡張キャッシュバッテリバックアップ408は、任意選択で省略され得る。ダイレクトアタッチストレージインターフェース312は、記憶データ418用のレジスタを含み得る。ダイレクトアタッチストレージインターフェース312は、図4のティア0412、図4のティア1424、または図4のティア2426をそれぞれ示す最高性能の記憶装置414、中間速度の記憶装置428、またはアーカイブ装置430に結合され得る。ダイレクトアタッチストレージインターフェース312は、ポート毎に一つの記憶装置を有するように示されるが、これは一例にすぎず、任意の数の記憶装置がダイレクトアタッチストレージインターフェース312に結合され得る。オプションの読出専用メモリ308は、システムインターフェース102に結合されるように示されるが、オプションの読出専用メモリ308は記憶プロセッサ106または階層記憶エンジン114に結合され得ると理解されるので、これは一例にすぎない。図9を参照して、ここでは、階層データ記憶システム100のシステムアプリケーション901のブロック図が示される。システムアプリケーション901のブロック図には、階層化集積回路902を有するホストバスアダプタHBAのような階層データ記憶システム100が描かれている。階層化集積回路902は、システムインターフェース102、階層記憶プロセッサ310、PCIエクスプレスバスコントローラのような周辺コントローラ904、およびバッファマネージャ906を含む。階層化集積回路902は、ダイレクトアタッチストレージインターフェース312、マッピングレジスタ110、階層ポリシーレジスタ108、および統合化ランダムアレイオブインディペンデントディスクRAID機能908に結合され得る。階層化集積回路902は、ファイバーチャネルやiSCSIのような別のディスクドライブ技術をサポートするためにダイレクトアタッチストレージインターフェース312や統合RAID機能908を変更する柔軟性を提供しつつ、階層データ記憶システム100の、高度に統合されたコンパクト版を提供し得ることが判明した。図10を参照して、ここでは、階層データ記憶システム100のバックグラウンドスキャン1001のフロー図が示される。バックグラウンドスキャン1001のフロー図には、マッピングレジスタスキャンエントリー1002が描かれており、それによって、図1の記憶プロセッサ106により実行されるバックグラウンドのポーリング処理が開始する。フローは、ポインタを始点に設定するブロック1004に直ちに移行する。記憶プロセッサ106は、図1のマッピングレジスタ110の最初のページにアドレスを指定し得る。記憶プロセッサ106は、マッピングレジスタ110の現在のアドレス指定されたページについての、図1のトランザクションレコード111を読み出すことができる。そして、フローは、しきい値をチェックするブロック1006へ移行する。しきい値をチェックするブロック1006は、現在のアドレス指定されたページのトランザクションレコード111を比較するために、記憶プロセッサ106に階層ポリシーレジスタ108の内容を読むことを要求する。しきい値をチェックするブロック1006は、トランザクションレコード111が階層ポリシーレジスタ108の内容によって確立された制限を超えるかどうかを判定することができる。階層ポリシーレジスタ108の内容は、マッピングレジスタ110の現在のアドレス指定されたページに記載されたデータの論理ブロックが現在の階層にとどまるべきか、上位の性能の階層に昇格すべきか、あるいは下位の性能の階層に降格すべきかを確立することができる。しきい値を超えたことを、しきい値をチェックするブロック1006が判定すると、フローは、新たな階層を判定するブロック1008へ移行する。新たな階層を判定するブロック1008では、記憶プロセッサ106による比較結果は、相応の性能を有する階層に格納されるためにデータの論理ブロックがどの階層に移動されるべきかを決定することに用いられる。その後、フローは、データを移動させるブロック1010に進む。データを移動させるブロック1010は、データの論理ブロックをハードウェア支援構造図示せずによる移動用の待ち行列に加えるか、または記憶プロセッサ106によって物理的に再配置するかのいずれかをすることができる。データを移動させるブロック1010は、図3のホストコンピュータ302のいかなる支援または知識なしに、バックグラウンド処理の一環としてデータの論理ブロックを昇格または降格させ得る。データの論理ブロックが新たな階層に移動されるまでフローは進行しない。データの論理ブロックが新たな階層に移動すると、フローは、データを削除するブロック1012に進む。そこでは、記憶プロセッサ106は、データの論理ブロックを元の階層から削除し得る。記憶プロセッサ106は、データの論理ブロックの内容を消去するか、またはディレクトリを更新することによって、データの論理ブロックを削除することができる。次いで、フローは、マッピングレジスタを更新するブロック1014へ進む。記憶プロセッサ106は、マッピングレジスタ110内のトランザクションレコード111を更新して、データの論理ブロックが新たな階層に移動したことを示すことができる。続いて、フローは、ポインタをインクリメントするブロック1016へ進み、そこでは、記憶プロセッサ106は、マッピングレジスタ110の後続のページのアドレスを指定する。ポインタをインクリメントするブロック1016は、データの論理ブロックのしきい値が超えられずにデータの論理ブロックが現在の階層に留まるべきであるとしきい値をチェックするブロック1006が判定した場合のフローの移動先でもある。そして、フローは、全ページがスキャンされたかをチェックするブロック1018へ進む。ポインタが最終ページを超えてアドレスを指定していると記憶プロセッサ106が判定すると、フローは出口1020へ進む。ポインタは最終ページを超えてアドレスを指定していないと記憶プロセッサ106が判定すると、フローは、次ページにある図1のトランザクションレコード111を続けてスキャンするために、しきい値をチェックするブロック1006に戻る。図11を参照して、ここでは、スナップショット操作1101における階層データ記憶システム100の機能ブロック図が示される。階層データ記憶システム100の機能ブロック図には、階層データ記憶システム100内に示されるティア0412、ティア1424、およびティア2426が描かれている。階層データ記憶システム100は、ティア0412、ティア1424、およびティア2426の記憶装置の総容量を利用可能であるが、図3のホストコンピュータ302は、総容量の一部のみを利用可能である。記憶プロセッサ106は、いくつかのデータ移行および保護ベースのスキームを実行することができ、たとえば、階層データ記憶システム100において容易に復元され得るデータのコピーを後の時点で作成する目的で、全ボリュームのスナップショットを作成することができる。ホスト記憶要素1102は、ホストコンピュータ302が利用可能な総容量の一部を含み得る。スナップショット容量1104は、データに対するボリュームの増分変化やバックアップおよび回復用のメタデータのようなスナップショットデータ1106を格納するために確保される。一例として、ホスト論理ブロック1108は、ホスト記憶要素1102内に書き込まれてもよい。書込動作中、書込前のホスト論理ブロック1108の内容を反映するスナップショットブロック1110は、スナップショット容量1104に保存され得る。スナップショット操作1101は、予め定められた時間間隔1112で繰り返され、スナップショットデータ1106の全ては、スナップショットプールエリア1114に格納される。予め定められた時間間隔112の任意の特定タイミングにおけるスナップショットデータ1106は、スナップショットデータ1106が格納されたときのホスト記憶要素1102の完全な内容を再生するのに使用することができる。任意の数のスナップショットデータ1106がスナップショットプールエリア1114に保存可能であることが理解される。スナップショットプールエリア1114は、回復可能な状態の固定期間を提供するために循環待ち行列として動作し得る。さらに、スナップショットデータ1106、スナップショットプール1114、および元のボリューム1102の全てまたは一部は、それらの相対的な活動レベルに依存して、および図1の階層ポリシー108に応じて、ティア412,424,426のいずれかに存在してもよい。スナップショットデータ1106が取得される各ポイントで、メタデータは、前回のスナップショットデータ1106からその時点までにホスト記憶要素1102になされた変更を記録する。ホストコンピュータ302によってデータの復旧が開始された場合、記憶プロセッサ106は、図1のマッピングレジスタ110を更新して、対象領域に対応する、予め定められた時間間隔1112のスナップショットデータ1106を一時的に適合させ、元のボリュームを以前の状態に回復しまたは調べるための他のホスト記憶要素図示せずのように、ホスト記憶要素1102をホストコンピュータ302に対する読出専用ボリュームとして提示することができる。あるいは、記憶プロセッサ106は、マッピングレジスタ110を恒久的に更新して、スナップショットデータ1106の所望のコピーを、ホスト記憶要素1102の新たな現在のワーキングコピーとすることができる。図12を参照して、ここでは、この発明のさらなる実施の形態における階層データ記憶システム100の操作の方法1200のフローチャートが示される。方法1200は、ブロック1202において、ホストコマンドを受信するためのシステムインターフェースを可能にするステップと、ブロック1204において、ホスト仮想ブロックアドレスを記憶装置の物理アドレスに変換することを含むホストコマンド用の論理ブロックアドレスのトランザクションレコードを監視するマッピングレジスタを更新するステップと、ブロック1206において、記憶プロセッサによりマッピングレジスタにアクセスしてトランザクションレコードを階層ポリシーレジスタと比較するステップと、ブロック1208において、トランザクションレコードが階層ポリシーレジスタを超えると記憶プロセッサが判定した場合に、階層記憶エンジンによってホストデータブロックをシステムインターフェースにより転送し、かつ同時にティア0、ティア1またはティア2間で転送することを可能にするステップとを含む。以上のように、この発明の階層データ記憶システムおよび装置または製品は、階層データ記憶システムを操作するための、重要かつこれまで未知で利用されていない解決策、能力、および機能的な面を提供して、階層データ記憶システムに特有のソフトウェアドライバを読み込む必要なしに、階層データ記憶システムの性能を最適化することが判明した。得られた方法、プロセス、設備、装置、製品、および/またはシステムは、簡易で、費用効果があり、複雑でなく、汎用性が高く、正確で、精度が高く、効果的であり、そして、公知の要素を適合させることにより実装して、容易に、効率的に、そして経済的に製造し、応用し、利用することができる。本発明のもう一つの重要な側面は、コストを低減し、システムを簡素化し、性能を向上させる歴史的なトレンドを有益にサポートしサービスを提供することである。それゆえに、本発明のこれらおよび他の価値ある側面は、少なくとも次のレベルへの技術の状態を促進するものである。本発明は、特定のベストモードに関連して説明されているが、多くの代替、修正および変形が上述の説明に照らして当業者に明らかであろうことが理解されるべきである。したがって、クレームの範囲に含まれる全てのそのような代替、修正および変形を包含することが意図される。本明細書に記載され、または添付の図面に示される全ての事項は、例示的かつ非限定的な意味で解釈されるべきである。"