(57)【要約】【課題】非揮発性キャッシュ・メモリを有するアトミック・データ・トランザクション装置および方法を得る。【解決手段】データ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるストライプ・バッファ・リスト・エントリの状態情報を定義するストライプ・バッファ・リスト記述子を含むアトミック・ライト・データ構造が提供される。関連する方法も提供され、データ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるメタ・データを構成し、データ記憶スペースおよびキャッシュ間の保留データ・トランザクションに関連する状態変化を反映するようにメタ・データを修正し、修正されたメタ・データをアトミック・ライト記述子に書込み、データ・トランザクション中に割込みが生じたらアトミック・ライト記述子を呼び戻して選択されたアトミック・ブロック・サイズをトランザクションするステップを含む。【選択図】図１
2007004798.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるストライプ・バッファ・リスト・エントリの状態情報を定義するストライプ・バッファ・リスト記述子を含むアトミック・ライト・データ構造。
【請求項２】
請求項１記載のデータ構造であって、記憶スペースおよびキャッシュ間の保留データ・トランザクションにおけるいくつかのブロックを定義するブロック・インジケータを含む前記データ構造。
【請求項３】
請求項２記載のデータ構造であって、データ・バッファ内のブロック数の開始アドレスを定義するオフセット・インジケータを含む前記データ構造。
【請求項４】
請求項３記載のデータ構造であって、データ・トランザクション後の各ストライプの状態と関連付けられた第１のストライプ・バッファ・リスト・エントリへの第１のインデクスを含む前記データ構造。
【請求項５】
請求項４記載のデータ構造であって、データ・トランザクション前の各ストライプの状態と関連付けられた第２のストライプ・バッファ・リスト・エントリへの第２のインデクスを含む前記データ構造。
【請求項６】
請求項５記載のデータ構造であって、保留データ・トランザクションの特性タイプを定義する条件インジケータを含む前記データ構造。
【請求項７】
請求項６記載のデータ構造であって、条件インジケータは、ミス・シーケンス、前の汚染シーケンスおよび独立ドライブのランダム・アレイ更新パリティ・シーケンスからなるセットからデータ・トランザクションの特性タイプを定義する前記データ構造。
【請求項８】
データ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるメタ・データを構成するステップと、
データ記憶スペースおよびキャッシュ間の保留データ・トランザクションに関連する状態変化を反映するようにメタ・データを修正するステップと、
修正されたメタ・データをアトミック・ライト記述子に書き込むステップと、
データ・トランザクションの実行中に割込みが生じたらアトミック・ライト記述子を呼び戻して選択されたアトミック・ブロック・サイズをトランザクションするステップとを含む方法。
【請求項９】
請求項８記載の方法であって、書込みステップは、トランザクションにおけるデータ・ブロック数を定義するブロック・インジケータの書込みにより特徴づけられる方法。
【請求項１０】
請求項８記載の方法であって、書込みステップは、データ・バッファ内のデータ・ブロック数の開始アドレスを定義するオフセット・インジケータの書込みにより特徴づけられる方法。
【請求項１１】
請求項８記載の方法であって、構成ステップは、データ記憶スペースの仮想ストライプとキャッシュ・データを揃えるストライプ・バッファ・リストを定義するステップを含み、書込みステップは、データ・トランザクション後の各ストライプの状態と関連付けられた第１のストライプ・バッファ・リスト・エントリへの第１のインデクスを定義するステップを含む方法。
【請求項１２】
請求項１１記載の方法であって、書込みステップは、データ・トランザクション前の各ストライプの状態と関連付けられた第２のストライプ・バッファ・リスト・エントリへの第２のインデクスを定義するステップを含む方法。
【請求項１３】
請求項１２記載の方法であって、書込みステップは、データ・トランザクションの特性タイプに関連する条件インジケータを定義するステップを含む方法。
【請求項１４】
請求項１２記載の方法であって、書込みステップは、独立ドライブの冗長アレイ内のパリティ・データの状態情報の更新により特徴づけられる方法。
【請求項１５】
請求項１２記載の方法であって、書込みステップは、キャッシュ内に予め存在する汚染データの状態情報の更新により特徴づけられる方法。
【請求項１６】
請求項１２記載の方法であって、書込みステップは、データ・バッファ・セクタ内の汚染データの場所に関連するビット・マップの更新により特徴づけられる方法。
【請求項１７】
請求項１２記載の方法であって、書込みステップは、データ・バッファ・セクタ内の現在データの場所に関連するビット・マップの更新により特徴づけられる方法。
【請求項１８】
キャッシュ・データと仮想データ記憶容量のストライプを関連付けるデータ構造を定義するステップを含む分散記憶システムにおけるデータ・トランザクション実行方法。
【請求項１９】
請求項１８記載の方法であって、定義ステップは、保留データ・トランザクションの特性タイプに関連して一連の実行ステップを決定論的に分岐する条件インジケータを格納するステップを含む方法。
【請求項２０】
請求項１８記載の方法であって、実行中に割込みが生じ、かつ、条件がアイドルでなければ実行ステップのシーケンスはベキ等で完了され、実行の完了後に条件はクリアされる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にデータ記憶装置に関し、制約されないが、特に非揮発性キャッシュ・メモリとのアトミック・データ・トランザクション装置および方法に関する。
【背景技術】
【０００２】
産業標準アーキテクチュアのデータ転送レートがインテル社の８０３８６プロセッサのデータ・アクセス・レートと歩調を揃えられなくなった時コンピュータ・ネット・ワーキングは、蔓延し始めた。ローカル・エリア・ネットワーク（ＬＡＮ）は、ネットワーク内のデータ記憶容量を統合整理することにより記憶エリア・ネットワーク（ＳＡＮ）へと発展した。ユーザは、装置およびＳＡＮ内の装置により処理される関連データの統合整理により、直接取付けられた記憶装置で可能なものよりも一桁大きい記憶装置を処理し、それを管理できるコストで行う能力等の著しい利益を実現している。
【０００３】
より最近になって、データ記憶サブ・システムを制御するネットワーク・セントリック処理法に向かう動きとなってきている。すなわち、記憶装置が統合整理されるのと同じ方法で、記憶装置の機能を制御するシステムは、サーバからネットワーク自体内にオフロードされる。たとえば、ホスト・ベース・ソフトウェアは、保守および管理タスクをインテリジェント・スイッチまたは特殊化されたネットワーク記憶サービス・プラットホームに委任することができる。アプリケーション・ベース・ソリューションは、ホスト内で実行するソフトウェアを不要とし、事業内にノードとして配置されたコンピュータ内で作動する。インテリジェント・データ記憶サブ・システムがその各データ記憶容量を自己決断的に割り当て、管理し、かつ保護し、その容量を仮想記憶スペースとしてネットワークに提示しグローバル記憶要求条件に適合させる。この仮想記憶スペースは、多数の記憶ボリューム内にプロビジョンすることができる。分散コンピューティング環境は、これらのインテリジェント記憶装置を故障時のグローバル・スペアリングのためだけでなくグローバル・プロビジョニングのために使用する。いずれの場合も、インテリジェント・ネットワーク・ソリューションは、ホストから独立して記憶割当てルーチン、バックアップルーチンおよびフォールト・トレランス方式等を中央に集めることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ファイル・トランザクションがこのようなネットワーク・セントリック・システム内で実行されると、記憶コントローラは、物理的記憶媒体上の適切な場所に対してデータを向けなければならない。それにより正しいデータが正しい場所に伝達されることを確認するキャッシングおよびマッピング構造が複雑化する。メタデータの構造は、記憶システム性能および信頼度に、特に、記憶システム内の異なるコンポーネントにわたって著しく影響を及ぼすことがある。１つの既存のインプリメンテーションは、スキャッタ・ギャザ・リストを利用する。しかしながら、必要とされているのは論理的記憶量をデータ記憶媒体内に格納されたデータの物理的ストライプ・ブロックに関連付けるより精巧なマッピング方式、およびこのような改善されたマッピング方式の利益を利用するアトミック・ライト・メタデータである。本発明の実施例は、このソリューションに向けられる。
【課題を解決するための手段】
【０００５】
本発明の実施例は、一般的に、ストライプ・バッファ・リスト・メタデータに関連付けられたアトミック・ライト記述子に向けられる。
【０００６】
一実施例では、データ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるストライプ・バッファ・リスト・エントリの状態情報を定義するストライプ・バッファ・リスト記述子を含むアトミック・ライト・データ構造が提供される。
【０００７】
一実施例では、データ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるメタデータを構成するステップと、ホストまたは媒体更新要求およびキャッシュ間の保留データ・トランザクションに関連する状態変化を反映するようにメタデータを修正するステップと、修正されたメタデータをアトミック・ライト記述子に書き込むステップと、データ・トランザクション実行中に割込みが生じたらアトミック・ライト記述子を呼び戻して選択されたアトミック・ブロック・サイズをトランザクションするステップとを含む方法が提供される。
【０００８】
一実施例では、キャッシュと通信するバルク・データ記憶スペースと、記憶スペースおよびキャッシュ間でアトミックにデータをトランザクションする手段とを含む分散記憶システムが提供される。
【０００９】
本発明を特徴づけるこれらおよびさまざまな他の特徴および利点は、下記の詳細な説明を読み、かつ、添付図面から自明となる。
【実施例】
【００１０】
図１は、本発明の実施例が有用なコンピュータ・システム１００を例示している。１つ以上のホスト１０２がローカル・エリア・ネットワーク（ＬＡＮ）および／またはワイド・エリア・ネットワーク（ＷＡＮ）１０６を介して１つ以上のネットワーク付属サーバ１０４にネットワークされている。好ましくは、ＬＡＮ／ＷＡＮ１０６は、ワールド・ワイド・ウェブを介して通信するインターネット・プロトコル（ＩＰ）ネットワーキング・インフラ・ストラクチュアを使用する。ホスト１０２は、いくつかのインテリジェント・データ記憶サブ・システム１０８の１つ以上に格納されたデータを慣例的に必要とするサーバ１０４内に常駐するアプリケーションにアクセスする。したがって、ＳＡＮ１１０は、格納されたデータにアクセスするためにサーバ１０４をインテリジェント・データ記憶サブ・システム１０８に接続する。インテリジェント・データ・サブ・システム１０８は、シリアルＡＴＡおよびファイバ−チャネル等のさまざまな選択された通信プロトコルを介してデータを格納するデータ記憶容量１０９のブロックを提供し、その中に事業またはディスク・トップ・クラス記憶媒体がある。
【００１１】
図２は、図１のコンピュータ・システム１００の単純化された線図である。ホスト１０２は、ネットワーク、すなわち、ファブリック１１０を介して一対のインテリジェント記憶サブ・システム１０８（それぞれＡおよびＢで示す）とインタラクトするだけでなく互いにインタラクトする。各インテリジェント・データ記憶サブ・システム１０８は、好ましくは独立ドライブの冗長アレイ（ＲＡＩＤ）として特徴づけられる一組のデータ記憶装置としてデータ記憶容量１０９上で作動するデュアル冗長コントローラ１１２（Ａ１，Ａ２およびＢ１，Ｂ２で示す）を含んでいる。好ましくは、コントローラ１１２およびデータ記憶容量１０９は、さまざまなコントローラ１１２が並列冗長リンクを利用し、かつ、システム１００により格納されたユーザ・データの少なくともいくつかは、一組のデータ記憶容量１０９内に冗長フォーマットで格納されるようにフォールト・トレラント構成を利用する。
【００１２】
さらに、単なる例示用であって制約的意味合いは無いが、Ａホスト・コンピュータ１０２およびＡインテリジェント・データ記憶サブ・システム１０８は、第１のサイトに物理的に配置でき、Ｂホスト・コンピュータ１０２およびＢインテリジェント・データ記憶サブ・システム１０８は、第２のサイトに物理的に配置でき、Ｃホスト・コンピュータ１０２は、第３のサイトのままにできることも考えられる。分散コンピュータ・システム上の全エンティティが同じタイプのコンピュータ網を介して接続される。
【００１３】
図３は、本発明の実施例に従って構成されたインテリジェント・データ記憶サブ・システム１０８を例示している。シェルフ１１４は、ミッド・プレーン１１６と電気的に接続されるコントローラ１１２を受入れ係合するキャビティを画定する。次に、シェルフは、キャビネット（図示せず）内に支持される。一対のマルチ・ディスク・アセンブリ（ＭＤＡ）１１８は、ミッド・プレーン１１６の同じ側でシェルフ１１４を受入れ係合する。ミッド・プレーン１１６の反対側には非常時給電を行うデュアル・バッテリ１２２、デュアル交流電源１２４およびデュアル・インターフェイス・モジュール１２６が接続されている。好ましくは、ＭＤＡ１１８のいずれかまたは同時に両方を作動させてコンポーネント故障時のバックアップ保護を行うデュアル・コンポーネントが構成される。
【００１４】
図４は、本発明の実施例に従って構成されたインテリジェント・データ記憶サブ・システム１０８の線図である。コントローラ１１２は、冗長インテリジェント記憶プロセッサ（ＩＳＰ）１３０と共に作動してデータ完全性の管理された信頼度を与える。インテリジェント記憶プロセッサ１３０は、コントローラ１１２内、ＭＤＡ１１８内またはインテリジェント・データ記憶サブ・システム１０８内のどこかに常駐することができる。管理された信頼度の側面は、ＲＡＩＤ戦略等の信頼できるデータ記憶フォーマットを呼び出すことを含んでいる。管理された信頼度は、システムのモニタされた使用に基づいた診断および訂正ルーチンのスケジューリングも含むことができる。データをコピーして再構成するデータ回復操作が実行される。ここで熟慮される管理された信頼度のこれらおよびその他の側面は、本譲受人が譲り受け本開示の一部としてここに組み入れられている特許出願第１０／８１７，６１７号（Managed Reliable Storage System and Method）に開示されている。管理された信頼度の他の側面は、たとえば、本譲受人が譲り受け本開示の一部としてここに組み入れられている特許出願第１１／０４０，４１０号（Deterministic Preventive Recovery From a Predicted Failure in a Distributed Storage System）に開示されているように、予め定められたルールに関連する予測故障表示への応答性を含んでいる。
【００１５】
図１５は、一対の冗長インテリジェント記憶プロセッサ１３０が常駐するインテリジェント記憶プロセッサ回路１３２を例示する。インテリジェント記憶プロセッサ１３０は、データ記憶容量１０９をＳＡＮファブリック１１０にインターフェイスさせる。各インテリジェント記憶プロセッサ１３０は、ルーティング、ボリューム管理およびデータ移動および複写等のさまざまな種類の記憶サービスを管理することができる。インテリジェント記憶プロセッサ１３０は、回路版１３２をバス１３８により接続された２つのＩＳＰサブ・システム１３４，１３６に分離する。ＩＳＰサブ・システム１３４は、それぞれ、リンク１４０，１４２によりファブリック１１０および記憶容量１０９に接続される「Ｂ」で示すＩＳＰ１３０を含んでいる。ＩＳＰサブ・システム１３４は、リアル・タイム・オペレーティング・システムを実行するポリシ・プロセッサ１４４も含んでいる。ＩＳＰ１３０およびポリシ・プロセッサ１４４は、バス１４６を介して通信し、共にメモリ１４８と通信する。
【００１６】
図６は、本発明の実施例に従って構成されたＩＳＰサブ・システム１３４を例示する。ＩＳＰ１３０は、クロス・ポイント・スイッチ（ＣＰＳ）１６６メッセージ・クロスバーを介してリスト・マネージャ１６２，１６４と通信するいくつかのファンクション・コントローラ・コア（ＦＣＣ）（１５０−１６０）を含んでいる。したがって、各ＦＣＣ（１５０−１６０）は、定められた条件に応答してＣＳＰメッセージを発生し、メモリ・モジュールにアクセスし、および／またはＩＳＰ１３０アクションを呼び出すためにＣＰＳを介してリスト・マネージャ１６２，１６４にメッセージを送ることができる。同様に、リスト・マネージャ１６２，１６４からの応答をＣＰＳ１６６を介してＦＣＣ（１５０−１６０）のいずれかに通信することができる。図６の構造および関連する検討は、説明用であって、本発明の意図する実施例を制約するものではない。
【００１７】
ポリシ・プロセッサ１４４は、ＩＳＰ１３０を介して所望の動作を実行するようにプログラムすることができる。たとえば、ポリシ・プロセッサ１４４は、メッセージを送受信するリスト・マネージャ１６２，１６４とＣＰＳ１６６を介して通信することができる。ポリシ・プロセッサ１４４への応答は、メモリ１４８レジスタの読出しをシグナリングする割込みとして働くことができる。
【００１８】
ポリシ・プロセッサ１４４は、制約されないが、前記した管理された信頼度および回復方式等の付加価値機能性を提供するように記憶コントローラ・ベンダによりプログラムすることができる。すなわち、ポリシ・プロセッサ１４４は、カスタム・ロジックを実行してＩＳＰ１３０を介して精巧な動作を実施することができる。ポリシ・プロセッサ１４４は、全てＣＰＳ１６６を介して、任意のリスト・マネージャにメッセージを送り任意のリスト・マネージャから応答を受け取ることができる。ＩＳＰ１３０により発行されるメッセージ応答は、たとえば、ポリシ・プロセッサ１４４へのＰＣＩライトとなることができる。このようにして、ポリシ・プロセッサ１４４は、メモリ１４８にアクセスしＣＰＳ１６６メッセージおよびリスト・マネージャを使用してＩＳＰ１４４内のアクションをトリガすることもできる。
【００１９】
したがって、記憶コントローラは、ポリシ・プロセッサ１４４上で実行するカスタム記憶サービス・アプリケーションを生成することができる。記憶サービス・アプリケーションは、ＩＳＰ１３０を介したレジスタ・アクセスおよびＰＣＩバスを介したＤＭＡ等、およびオーバヘッドを付随する個別のＰＣＩリードまたはライト動作を介してメモリ・ウインドウを開いてアクセスする等によりＩＳＰ１３０の機能にアクセスすることができる。あるインプリメンテーションは、個別のＰＣＩアクセスよりも高速のアクセスもサポートすることができる。一実施例では、たとえば、ポリシ・プロセッサ１４４は、ＰＣＩバス両端間でキャッシュ・ライトを介してＩＳＰ１３０機能にアクセスするパワーＰＣプロセッサによりインプリメントすることができ、他のプロセッサおよびアクセス方法も利用することができる。
【００２０】
一実施例では、ＩＳＰ１３０は、ホスト・ファイバ・チャネル・インターフェイスを介してホスト（たとえば、アプリケーション・サーバ）に接続され、１つ以上の記憶装置ＦＣインターフェイスを介してデータ記憶容量１０９に接続される。ＩＳＰ３０２は、ホストおよび記憶容量１０９間で記憶トランザクション（たとえば、ＳＣＳＩ交換）を通信する。ホストおよび記憶容量１０９間には他のネットワーク接続性も存在し得ることを理解しなければならない。
【００２１】
たとえば、データ記憶トランザクション（たとえば、ＳＣＳＩライト要求）をホスト・ファイバ・チャネル・インターフェイスを介して受信することができる。ホスト・ファイバ・チャネル・インターフェイスは、要求フレームからの保留トランザクションを処理する。要求データは、ファイバ・チャネル（ＯＸＩＤ）を含み、定められたファイバ・チャネル交換を識別する。交換は、ＳＣＳＩタスク等の、対話をカプセル化している、一対のファイバ・チャネル・ポート間を通過する一連の１つ以上の非同時関連要求を表す。交換は、双方向性とすることができ、短命または長寿命とすることができる。ＯＸＩＤは、要求フレームから抽出され要求データを処理するのに使用される。
【００２２】
ＯＸＩＤの等価物は、ＲＸＩＤであり、要求に応答する時に使用されるコンテキストを識別する。たとえば、記憶装置インターフェイスを介した１つの記憶装置からのデータ・フレームがＩＳＰ１３０により処理される。ＲＸＩＤは、データ・フレームから抽出され応答データをルーティングするのに必要なコンテキストを配置するのに使用される。
【００２３】
すなわち、ＯＸＩＤおよびＲＸＩＤは、交換識別子と呼ばれ、他の交換識別子も利用することができる。一実施例では、交換識別子は、定められたトランザクションに対してコンテキストを配置するのに使用される。コンテキストは、単一トランザクション内の個別フレーム間の連続性を提供する。たとえば、ＳＣＳＩライト・コマンドに対してトランザクションが開始されると、トランザクションに対してコンテキストが確立される。さらに、受信コントローラは、関連するストライプに対して、後述するメタデータを割り当てまたは配置し、バッファ・メモリからの利用可能なデータ・バッファを使用してメタ・データの適切な部分をポピュレートする。トランザクションの後続ステージに対して、記憶システムは、交換識別子を使用してメモリからコンテキストを検索し、コンテキスト・データを使用して交換の処理を継続することができる。交換が完了すると、メタデータ構造およびトランザクション用データ・バッファは、キャッシュされたデータが有効である限り、ある時間だけライト・バック・キャッシュとして作用するように維持することができ、ＩＳＰ１３０は、物理的記憶装置からのデータを検索するのではなく、そのキャッシュからのリード要求をサービスすることができる。キャッシュされたデータの有効性は、既知のキャッシング技術を使用して管理される。
【００２４】
データ・ストライピングは、多数のストライプが同時にアクセスできるよう、記憶容量１０９内の多数のデータ記憶ディスクの一部を割当てる。たとえば、単一ディスクから大きいファイルを読み出すよりは、ファイルを細かく刻んで各小片を異なるディスク上の異なるストライプ内に格納し、次に、全ディスクを使用してファイルを並列に読み戻すほうが遥かに速い。たとえば、図５は、ディスク・アレイ１７８内でストライプ・ディスク１７０，１７２，１７４，１７６に接続されたＩＳＰ１３０を示す。ＩＳＰ１３０は、ストライプ１８０内の隣接データを３つのディスク１７０，１７２，１７４にわたって書き込んでいる。特に、ディスク１７０上の第１のストライプ１８０は、完全に書き込まれ、ディスク１７２上の第１のストライプ１８０は、完全に書き込まれ、ディスク１７４上の第１のストライプ１８０は、一部書き込まれる。データがディスク・アレイ１７８から読み出される時、データをディスク１７０，１７２，１７４から並列に読み出すことができる。さらに、ストライピング方式に応じて、１つ以上の付加パリティ・ディスクを利用して１つのデータ・ドライブが故障する場合にデータを回復することができる。
【００２５】
データ・ストライプ１８０は、仮想ブロック・アドレス（ＶＢＡ）の定められたセットまたはデータ・ストライプのある集合に対するパリティを表すある範囲のブロックを仮想化するのに使用される基本ビルディング・ブロックである。ＶＢＡは、論理ブロック・アドレス（ＬＢＡ）にマッピングされ、物理的記憶媒体上のストライプ場所を指定する。記憶要求および応答がＶＢＡに関して伝達され、ＩＳＰ１３０の媒体側コンポーネントが物理的媒体アクセス中にＶＢＡをＬＢＡに対してマッピングする。ＶＢＡは、ストライプのパーシャル・ポピュレーションを考慮するため、定められたストライプ内へのオフセットを含むこともできる。
【００２６】
基礎をなすメタデータ構造は、ストライプ・バッファ・リスト（ＳＢＬ）である。ＩＳＰ１３０は、ＳＢＬをメモリ１６８内等へ格納し、特定のデータ・ストライプに関連付けられる記憶システム・キャッシュ内にデータを記述するＳＢＬ構成をインプリメントする。一実施例では、ＳＢＬは、異なるプール（たとえば、プライマリ・プールおよびセカンダリ・プール）に割り当てられてミラーリングをサポートする。さまざまなストライプ・バッファ・リストがアレイとして構成され、コンテキスト構造が適切なＳＢＬのインデクス（ＳＢＬインデクス）を指定できるようにされる。したがって、各ＳＢＬは、特定のストライプから読み出され、または特定のストライプに向けられるデータがキャッシュされる複数のデータ・バッファを参照する。さらに、各ＳＢＬは、仮想ディスク・ストライプと揃えられ、ＳＢＬの開始ＶＢＡは、ディスク・ストライプ・サイズにより均一に分割でき、ＳＢＬにより参照されたバッファ・スペースの最大量がディスク・ストライプ・サイズに対応するようにされる。一実施例では、各データ・バッファは、２１１２バイトのサイズとされファイル・データの４セクタを保持することができが、他のサイズも考えられる。
【００２７】
コンテキスト構造は、データ・トランザクションがデータ・バッファおよびメタデータのどのプールに指示されるかを示すミラーフラグを指定することもできる。たとえば、ミラーフラグが「０」を示す場合、ＩＳＰ１３０は、コンテキストにより与えられたＳＢＬインデクスを有するプライマリ・プールからのＳＢＬを使用してデータをキャッシュする。ミラーフラグが「１」を示す場合、そのセカンダリ・プールからのＳＢＬが使用される。このようにして、適切なＳＢＬおよび他の関連するメタデータにアクセスするのにＳＢＬインデクスおよびミラーフラグが使用される。
【００２８】
コンテキスト構造は、データ・トランザクションに関連付けられるデータ・ストライプ内の開始セクタ・オフセットも指定することができる。したがって、オフセットは、ＳＢＬ内へのオフセットも指定する。このようにして、ＩＳＰ１３０は、ＳＢＬ内のどこで処理を開始するを決定することができる（たとえば、ＳＢＬにより参照されるデータ・バッファにデータを書き込み、またはＳＢＬにより参照されるデータ・バッファからデータを読み出す）。
【００２９】
後述する他のメタデータ構造は、ストライプ・バッファ・リスト記述子（ＳＢＬＤ）、ストライプ・バッファ・リスト現在ビット（ＳＰＢ）およびストライプ・バッファ・リスト汚染ビット（ＳＤＢ）を含み、データ・バッファがどのように記憶媒体と関連付けられ、かつ、どのようにキャッシュ機構により処理されるかを支配する。ＳＢＬＤテーブルは、個別のＳＢＬを定められた論理ユニット上のＶＢＡの範囲（すなわち、仮想ディスク・ストライプ）と関連付けるエントリを含んでいる。定められたＳＢＬＤテーブル・エントリは、定められたデータ・トランザクションに対する適切なＳＢＬを識別するのに使用される同じＳＢＬインデクスにより参照される。一実施例では、各プールに１つずつの２つのＳＢＬＤテーブルがメモリ内に格納されている。
【００３０】
８バイトＳＢＬＤテーブルに対する典型的なフォーマットが以下に示されている。
【表１】
2007004798.tif 000003
【００３１】
典型的なＳＢＬＤテーブル・エントリ内の状態フィールドが次のように定義される。
【表２】
2007004798.tif 000004
【００３２】
各ＳＢＬエントリに対して、関連付けられるＳＰＢテーブル内にも対応するエントリがあり、ＳＢＬインデクスにより索引することができる。各ＳＰＢテーブル・エントリは、対応するＶＢＡに対するセクタ・データが有効かまたは有効になろうとしているかを示す選択された数のビットからなる。本例に対して、定められたフィールド内の特定ビットは、定められたセクタに対するＶＢＡの下位４ビットに基づく値０ｘ８０００の右シフトを使用して参照することができる。定められた開始ＶＢＡおよび定められたフィールド内の長さＬを有する範囲に対するビット・マスクは、次のように計算される。
【数１】
2007004798.tif 000005
【００３３】
定められたＶＢＡに対する特定のフィールドは、次のように計算される。
【数２】
2007004798.tif 000006
【００３４】
各ＳＢＬエントリに対して、関連付けられるＳＤＢテーブル内にも対応するエントリがあり、同様にＳＢＬインデクスにより索引することができる。各ＳＤＢテーブル・エントリは、対応するＶＢＡに対するセクタ・データが汚染されている（すなわち、ライト・バック・キャッシュされる）かを示す選択された数のビットからなり、したがって、同様にバッファ・メモリ内のキャッシュからフラッシュさせる必要がある。本例に対して、定められたフィールド内の特定ビットは、定められたセクタに対するＶＢＡの下位４ビットに基づく値０ｘ８０００の右シフトを使用して参照される。定められた開始ＶＢＡおよび定められたフィールド内の長さＬを有する範囲に対するビット・マスクは、次のように計算される。
【数３】
2007004798.tif 000007
【００３５】
定められたＶＢＡに対する特定のフィールドは、次のように計算される。
【数４】
2007004798.tif 000008
【００３６】
コンテキスト・データは、ＩＳＰ１３０からＣＰＳ１６６を介してアドレス発生器に伝達され、ＳＢＬインデクスおよびプールに基づいて適切なＳＢＬに対する適切なアドレスを計算する。一実施例では、コンテキストは、制約されないがＳＢＬインデクス、ＳＢＬオフセット（第１の有効なバッファ・インデクスが読み出されるＳＢＬ内へのオフセットを識別する）、セクタ・オフセット（第１の有効なデータ・バッファ内の開始セクタを示す）およびセクタ・カウント（ＩＳＰ１３０からバッファ・メモリへ転送されるセクタ数を表す）を含むメッセージ・パケット内に発生されるアドレスに伝達される。たとえば、データ・バッファ当たり３２セクタならば、ＳＢＬオフセットは、ＶＢＡ［１０：５］に対応し、開始セクタ・インデクスは、ＶＢＡ［４：０］に対応する。データ・バッファ当たり４セクタならば、ＳＢＬオフセットは、ＶＢＡ［７：２］に対応し、開始セクタ・インデクスは、ＶＢＡ［１：０］に対応する。
【００３７】
コンテキストの受信に応答して、アドレス発生器は、メッセージ・パケットをデコードし、ＳＢＬオフセットに従って、識別されたＳＢＬにアクセスして指定されたデータ・バッファ・インデクスを得る。次に、データ・バッファ・インデクスおよびセクタ・オフセットを使用して、アドレス発生器は、データ・バッファ・メモリ・アドレスを計算する。セクタ・オフセットおよびバッファ内のセクタ数は、データ・バッファ内の残りのセクタ数を決定するのに使用される。データ・バッファ・メモリ・アドレスに関連付けられる転送サイズは、残りのデータ・バッファ・スペースおよび総転送サイズ（メッセージ・パケット内に格納された）の少ない方である。データ・バッファ・アドレスおよび転送サイズは、データ・バッファ・マネージャのＦＩＦＯ等のアドレス上に書き込まれる。
【００３８】
図７は、本発明の実施例に従って構成された複数のＳＢＬ１９１エントリを有する典型的なＳＢＬテーブル１９０を示す。ＳＢＬテーブル１９０は、各ストライプに対するＳＢＬ構造１９２，１９４，１９６を記憶媒体上に格納し、バッファ・メモリ１６８内の格納されたデータを索引する。
【００３９】
前記したように、各ＳＢＬ構造１９２，１９４，１９６は、仮想ディスク・ストライプおよび目標記憶媒体上の１つ以上の物理的ディスク・ストライプと揃えられている。記憶コントローラがデータを受信すると（ホストまたは記憶装置から）、データは、受信コントローラ（すなわち、ＦＣインターフェイス）によりフレームバッファ内に格納され、ＦＩＦＯ等の処理に対して編成される。次に、ＦＣＣは、ＣＰＳを介して適切なアドレス発生器（ＡＧ）ロジックとメッセージを送る。メッセージは、どのＳＢＬ１９１を使用しＳＢＬ１９１内のどこで開始するかを識別するのに必要な情報を提供する。メッセージを構成するのに必要なデータは、フレーム・ヘッダから抽出された交換ＩＤを使用して配置される。フレーム内のデータは、メモリに移される。同様に、記憶コントローラがデータを送信すると（ホストまたは記憶装置に）、送信コントローラがポリシ・プロセッサ１４４により提供された要求データからコンテキストを抽出する。
【００４０】
図８は、仮想ディスク・ストライプについて前記したメタデータ構造の典型的なアライメントを例示している。図８の実施例では、４つのストライプ記憶ディスクがメタデータ構造に従って管理される。ＳＢＬテーブル１９０は、複数のＳＢＬ１９１を含み、そのいずれも任意の定められた時間に有効または無効とすることができる。各ＳＢＬ１９１は、記憶媒体上の定められた仮想ストライプと揃えられバッファ・メモリ内のデータ・バッファを参照する１つ以上のバッファ・インデクスを含んでいる。後述するように、ＳＢＬＤテーブル１９８は、各ＳＢＬ１９１に対するエントリを含み、各ＳＢＬ１９１に関連付けられるＶＢＡ範囲および他の特性を指定する。各ＳＢＬ１９１の各データ・バッファによりアドレスされるデータの最大量は、仮想ディスク・ストライプ・サイズに対応する。
【００４１】
ＳＰＢテーブル２００およびＳＤＢテーブル２０２は、データ・バッファのキャッシュ管理を考慮している。ＳＰＢテーブル２００は、定められたセクタに対するキャッシュされたデータが有効になろうとしている（すなわち、対応するセクタに対するカレント・データを有する）かどうかを示す各ＳＢＬ１９１の各セクタに対するビットを含んでいる。それはバッファ・インデクスが有効であることも示す。同じセクタへのリード動作を要求する後続トランザクションにおいて、データは、有効であることをＳＰＢテーブル２００が示す場合、要求は、記憶媒体へのラウンド・トリップを要求するのではなくバッファ・メモリからサービスを受けることができる。ＳＤＢテーブル２０２は、定められたセクタに対するキャッシュされたデータが汚染されている（すなわち、データ・バッファから書き込む必要がある）かどうかを示すＳＢＬ１９１の各セクタに対するビットを含んでいる。たとえば、記憶コントローラが交換の最中にパワーを失う場合には、ＳＤＢテーブル２０２を使用してキャッシュ内のデータを適切な目標へフラッシュさせる必要のあることを示すことができる。したがって、記憶コントローラが再ブートする時に、カタストロフィック・イベントの存在下でデータ完全性が維持される。
【００４２】
結合されたＳＰＢテーブル２００およびＳＤＢテーブル２０２は、以下に示すロジックを表す。「存在および汚染、しかしながらＣＲＣ無効」状態は、データ・バッファ内のデータが修正されたデータを含む条件（たとえば、ＣＲＣは、予期されるものと一致しない）を表す。このようなケースでは、ＣＲＣは、再計算して更新する必要がある。
【表３】
2007004798.tif 000009
【００４３】
図９は、本発明の実施例に従ったＳＢＬＤテーブル１９８内のＳＢＬＤ構造２１０エントリのより詳細な線図である。ＳＢＬＤ構造２１０は、終了ＶＢＡアドレス２１２および開始ＶＢＡアドレス２１４に関して、各ドライブ・ストライプに対応する仮想メモリ内の範囲を含んでいる。ＳＢＬＤ構造２１０は、状態情報２１８だけでなく、論理的デバイス・ユニット識別（ＬＵＩＤ）２１６も含んでいる。
【００４４】
状態情報２１８は、ホストからデータが読み出される時に（たとえば、ＳＣＳＩ目標ライト）各セクタに対してユーザ・データの終りに付加することができるデータ完全性フィールド（ＤＩＦ）２２０を含んでいる。無効ＤＩＦは、関連付けられたメタデータが正規のライト・バック状態にあり、有効な障害回復記録の一部を形成するという一般的ルールの例外である。状態情報２１８は、さらに、パリティ配置２２２および存在２２４データ、フラグ・コピー前のフラッシュ２２６、使用中フラグ２２８および汚染ブロック・カウント２３０を含むことができる。
【００４５】
図１０は、本発明の実施例に従ってデータ・トランザクションをアトミックに書き込む方法２４０におけるステップの単純化されたフロー図である。トランザクション要求に応答して、ブロック２４２において本方法は、トランザクションに関連付けられた既存のメタデータをフェッチする。この既存のメタデータ状態は、ここでは時々メタデータの“ｆｒｏｍ”状態と呼ばれ、言い換えると、ＳＢＬテーブル１９０内のＳＢＬｆｒｏｍインデクスにおいて見つかる。ブロック２４４において、トランザクションにより生じるメタデータへの変化が計算され、変化は、アトミック・ライト記述子（ＡＷＤ）の形でブロック２４６内に格納される。
【００４６】
方法は、ブロック２４８において継続され、トランザクションは、ベキ等で実行される。判断ブロック２５０において、トランザクションは、割り込まれているかどうか決定される。ブロック２５０の決定がノーであれば、方法は、終了する。しかしながら、ブロック２５０の決定がイエスであれば、ブロック２５４においてＡＷＤが呼び戻されトランザクションをアトミックに完了するのに使用される。
【００４７】
図８は、本発明の実施例に従って構成されたＡＷＤ構造２６０の線図である。ＡＷＤ２６０は、データ・トランザクションの成功した実行に従う時のメタデータに対する状態情報２１８を含んでいる。メタデータのこの将来状態は、ここでは、しばしば“ｒｅａｌ”状態と呼ばれ、したがって、ＳＢＬＤｒｅａｌ状態２６２として索引される。ＡＷＤ２６０は、保留データ・トランザクションにおけるいくつかのブロックを定義するブロック・インジケータ２６４、ＳＢＬにより定義されるデータ・ブロックのアレイ内への開始オフセットを定義するオフセット・インジケータ２６６、データ・トランザクション後に各ストライプの状態に関連付けられた第１のＳＢＬ１９１エントリへのＳＢＬｒｅａｌインデクス２６８、データ・トランザクション前に各ストライプの状態に関連付けられた第２のＳＢＬ１９１エントリへのＳＢＬｆｒｏｍインデクス２７０およびトランザクションがミス・シーケンス（“Ｍｉｓｓ”）、前の汚染シーケンス（“Ｄｉｒｔｙ”）および独立ドライブのランダム・アレイ更新パリティ・シーケンス（“ＲＭＷ”）であるかどうか等の保留データ・トランザクションの特性的タイプを定義する条件インジケータ２７２も含むことができる。
【００４８】
Ｍｉｓｓケースは、最も単純であり、ＳＢＬＤに対する新しい汚染カウントを計算し、ＳＤＢ内に汚染ビットを設定する。対処すべき前の汚染バッファ・メモリは、無くクリーン・アップすべきＳＢＬｆｒｏｍも無い。このケースに対するＳＢＬｒｅａｌは、ＳＢＬｒｅａｌインデクス２６８内で見つけられる。
【００４９】
トランザクションに対するブロックの範囲内にいくつかの前の汚染データがあるため、Ｄｉｒｔｙケースは、ＳＢＬｆｒｏｍを予期する。これらのＳＢＬに対するＳＢＬＤおよびＳＤＢは、アトミック・ライティング・スクリプト中のいかなる時間においても更新されない。これは、ＳＢＬｆｒｏｍが書き込まれる新しい汚染データを有するバッファを保持するのに排他的に使用されるためである。それらは、スクリプト完了後パートナにより空きプールに返される。しかしながら、割当ての一部として設定された関連するＳＰＢ内の存在ビットをクリアする必要がある。アルゴリズムの結果バッファのセットは、特定の動作に排他的でなければならないため、パートナは、同じデータ・ストライプ上の多数の同時アトミック・ライティング動作に対して同じＳＢＬｆｒｏｍを使用できることに注目される。
【００５０】
前の汚染データがある場合、アトミック・ライティング方法の本質的部分は、バッファの古いセットをバッファの全部新しいセットと置換することである。このため、好ましくは、動作は、完全なバッファ上で行われる。この条件を達成するために、パートナは、ライトに対するブロックの範囲外である最初および最後のバッファ（それに対してホストから新しいデータが供給されている）内の任意のセクタへのアクセスを阻止する拡張ロックを取り出す必要がある。さらに、これらの外部セクタは、汚染しておればコピーしなければならず、汚染しているかどうかにかかわらず、現在、存在するとマークされておれば存在せずとマークするか、存在すれば単純にコピーしなければならない。ロジックを単純化するために、存在する任意の外部セクタをコピーすることができる。もちろん、転送がバッファ境界に適切に揃えられれば、外部セクタは、無いこともある。
【００５１】
ローおよび恐らくは対角線パリティ・データを維持するために１つまたは２つのＳＢＬが含まれることを除けば、ＲＭＷケースは、Ｍｉｓｓケースに類似している。
【００５２】
図１２Ａ−図１２Ｃは、本発明の実施例に従ってアトミックにライティングする方法２４０のより詳細なフロー図を示し、保留トランザクションのタイプに関連するＡＷＤ２６０の誘導を含んでいる。方法２４０は、最初に逐次判断ブロック２８０，２８２を処理し、そこで保留トランザクションがＲＩＡＤデータに影響を及ぼすかどうかまた保留トランザクションの影響下にあるデータが予めキャッシュされているかどうかが、それぞれ、決定される。ブロック２８０の決定がイエスであるか、または判断ブロック２８０および２８２の決定が共にノーであれば、ブロック２８４においてＳＢＬＤｒｅａｌ状態２１８フィールドがフェッチされ、ブロック２８６においてＳＢＬＤｒｅａｌに対する新しい汚染カウントが計算される。逆に、ブロック２８０の決定がノーであり、かつ、ブロック２８２の決定がイエスであれば、前記したようにＳＢＬＤｒｅａｌ状態２１８がフェッチされ、さらに、ブロック２８８においてＳＤＢｒｅａｌフィールドがフェッチされ、ブロック２９０において前の汚染カウントが計算され、ブロック２８６においてＳＢＬＤｒｅａｌに対する新しい汚染カウントが計算される。
【００５３】
分岐「Ａ１」に対しては（ブロック７２０＝イエス）、ブロック２９２において新しいパリティ・データ２２４が設定され、ブロック２９４において新しいコラム・パリティ２２４が設定され、次に、ブロック２９６においてＡＷＤ２６０が生成される。分岐「Ａ２」に対しては（ブロック２８０がノー、かつ、ブロック２８２がノー）、ＡＷＤ２６０を直接生成することができる。最後に、分岐「Ａ３」に対しては（ブロック２８０がノー、かつ、ブロック２８２がイエス）、ブロック２９８においてＳＢＬｒｅａｌバッファが自由にされ、ブロック３００においてＳＢＬｆｒｏｍに対するＳＰＢがクリアされ、次に、ブロック２９６においてＡＷＤ２６０がクリアされる。ＡＷＤが書き込まれる前にプロセスが割り込まれると自由にされたＳＢＬｒｅａｌバッファは、汚染として終結するため、ブロック２９８、３００において実施される動作が先行できるのは、ブロック２９６における動作だけであることに注目される。
【００５４】
ブロック３０２において、状態（Ｍｉｓｓ，ＤｉｒｔｙまたはＲＭＷ）が設定され、ブロック３０４においてＡＷＤ２６０が書き込まれる。次に、ブロックに３０６おいて保留トランザクションがベキ等により実行される。判断ブロック３０８は、実行が割り込まれるかどうかを決定する。ブロック３０８の決定がノーであれば、コントロールは、次にブロック３１０に分岐され（図１２Ｃ）そこで条件はアイドルに設定されアトミック・ライティング手順は、終了する。しかしながら、実行が完了されず、かつ、ブロック３０８において実行は、割り込まれていると決定されると、ブロック３１４においてＡＷＤ２６０がメモリから呼び戻される。ブロック３１６において条件は、ＲＭＷであると決定されると、ブロック３１８においてＳＢＬｐａｒｉｔｙ状態が更新されブロック３２０においてＡＷＤ２６０により提供される情報からＳＰＬｐａｒｉｔｙに対するＳＤＢが設定される。逆に、条件がＲＭＷでなければブロック３２２においてＳＢＬｒｅａｌ状態が更新されブロック３２４においてＡＷＤ２６０により提供される情報からＳＰＬｒｅａｌに対するＳＤＢが設定される。
【００５５】
ブロック３２６において条件は、汚染ではないと決定されると、コントロールは、次にブロック３１０に分岐され、そこで条件は、アイドルに変えられアトミック・ライティング方法は終了する。逆に、条件が汚染であれば、ＳＢＬｆｒｏｍのバッファ・インデクスがＳＢＬｒｅａｌにコピーされ、次に、ブロック３１０において条件は、アイドルに設定され、アトミック・ライティング方法は、終局的に終了する。
【００５６】
要約すると、ＡＷＤ（２６０等）構造が提供されデータ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるＳＢＬ（１９１等）エントリの状態情報（２１８等）を定義するＳＢＬＤ（１９９等）を含んでいる。
【００５７】
一実施例では、ＡＷＤは、記憶スペースおよびキャッシュ間の保留データ・トランザクションにおけるいくつかのブロックを定義するブロック・インジケータ（２６４等）を含んでいる。一実施例では、ＡＷＤは、データ・バッファ内のブロック数の開始アドレスを定義するオフセット・ブロック・インジケータ（２６６等）を含んでいる。一実施例では、ＡＷＤは、データ・トランザクション後の各ストライプの状態に関連付けられる第１のＳＢＬエントリへの第１のインデクス（２６８等）を含んでいる。ＡＷＤは、データ・トランザクション前の各ストライプの状態に関連付けられる第２のＳＢＬエントリへの第２のインデクス（２７０）を含んでいる。一実施例では、ＡＷＤはミス・シーケンス、前の汚染シーケンスおよび独立ドライブのランダム・アレイ更新パリティ・シーケンス等の保留データ・トランザクションの特性的タイプを定義する条件インジケータ（２７２等）を含んでいる。条件インジケータは、最後に書き込まなければならない。単一ストア動作が全体シーケンスを「アトミック」とする。
【００５８】
一実施例では、アトミック・ライティング方法が提供され、データ記憶スペースの仮想ストライプとキャッシュ・データを関連付けるメタデータを構成するステップ（２４２等）と、データ記憶スペースおよびキャッシュ間の保留データ・トランザクションに関連する状態変化を反映するようにメタデータを修正するステップ（２４４等）と、修正されたメタデータをアトミック・ライト記述子に書き込むステップ（２４６等）と、データ・トランザクション中に割込みが生じたらアトミック・ライト記述子を呼び戻して選択されたアトミック・ブロック・サイズをトランザクションするステップ（２５４等）とを含んでいる。
【００５９】
この方法の書込みステップは、トランザクションにおけるデータ・ブロック数を定義するブロック・インジケータを書き込み、データ・バッファ内のデータ・ブロック数の開始アドレスを定義するオフセット・インジケータを書き込み、データ・トランザクションの特性タイプに関連する条件インジケータを定義し、独立ドライブの冗長アレイ内のパリティ・データの状態情報を更新し、キャッシュ内に予め存在する汚染データの状態情報を更新し、データ・バッファ・セクタ内の汚染データの場所に関連するビット・マップを更新し、データ・バッファ・セクタ内の現在データの場所に関連するビット・マップを更新するステップにより特徴づけることができる。構成ステップは、データ記憶スペースの仮想ストライプをキャッシュ・データに揃えるＳＢＬを定義すステップにより特徴づけることができ、書込みステップは、データ・トランザクション後の各ストライプの状態と関連付けられる第１のストライプ・バッファ・リストへの第１のインデクスを定義し、データ・トランザクション前の各ストライプの状態と関連付けられる第２のストライプ・バッファ・リストへの第２のインデクスを定義するステップにより特徴づけることができる。
【００６０】
一実施例では、分散記憶システムが提供され、キャッシュと通信するバルク・データ記憶スペースと、記憶スペースおよびキャッシュ間でアトミックにデータをトランザクションする手段とを含んでいる。アトミックにトランザクションする手段は、記憶スペースの仮想ストライプとキャッシュ・データを関連付けるアトミック・ライト記述子を格納することにより特徴づけることができる。アトミックにトランザクションする手段は、保留データ・トランザクション前および後の記憶スペースの状態を定義する格納された情報を索引するアトミック・ライト記述子により特徴づけることができる。
【００６１】
本発明のさまざまな実施例の構造および機能の詳細と共に、本発明のさまざまな実施例の非常に多くの特性および利点を前記説明に記載してきたが、この詳細な記述は、説明用にすぎず、添付特許請求の範囲が表現される用語の広範な一般的意味により示される全範囲まで詳細、特に、本発明の原理内の部品の構造および構成を変更することができる。たとえば、本発明の精神および範囲から逸脱せずに、ＭＤＡを構成するデータ記憶装置の数およびサイズに応じて特定のエレメントを変えることができる。
【００６２】
さらに、ここに記述された実施例は、データ記憶システムに向けられているが、当業者ならば特許請求される主題は、そのように制約はされず、本発明の精神および範囲から逸脱せずに、さまざまな他の処理システムが本発明の実施例を利用できることが理解される。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施例が有用であるコンピュータ・システムの線図である。
【図２】図１のコンピュータ・システムの単純化された線図である。
【図３】本発明の実施例に従って構成されたインテリジェント・データ記憶サブ・システムの分解等長図である。
【図４】図３のインテリジェント・データ記憶サブ・システムの機能ブロック図である。
【図５】図３のインテリジェント・データ記憶サブ・システムのインテリジェント記憶プロセッサ回路板の機能ブロック図である。
【図６】図３のインテリジェント・データ記憶サブ・システムのインテリジェント記憶プロセッサの機能ブロック図である。
【図７】本発明の実施例に従って記憶スペースの仮想ストライプをキャッシュ・データと関連させるストライプ・バッファ・リスト・テーブルの線図である。
【図８】図７のストライプ・バッファ・リストと関連付けられるメタデータ構造の線図である。
【図９】本発明の実施例に従ってストライプ・バッファ・リストと関連付けられるメタデータ構造のより詳細な線図である。
【図１０】本発明の実施例に従ってホストまたは媒体更新要求とキャッシュ間でトランザクションの一般的なアトミック・ライティング方法を実施するステップのフロー図である。
【図１１】本発明の実施例に従って構成されたアトミック・ライト記述子メタデータ構造の線図である。
【図１２Ａ】本発明の実施例に従ってミス・シーケンス、前の汚染シーケンス、またはアトミック・ライト記述子を有するＲＡＩＤパリティ更新シーケンスにより特徴づけられる保留トランザクションをアトミックに更新するステップのフロー図である。
【図１２Ｂ】本発明の実施例に従ってミス・シーケンス、前の汚染シーケンス、またはアトミック・ライト記述子を有するＲＡＩＤパリティ更新シーケンスにより特徴づけられる保留トランザクションをアトミックに更新するステップのフロー図である。
【図１２Ｃ】本発明の実施例に従ってミス・シーケンス、前の汚染シーケンス、またはアトミック・ライト記述子を有するＲＡＩＤパリティ更新シーケンスにより特徴づけられる保留トランザクションをアトミックに更新するステップのフロー図である。
【符号の説明】
【００６４】
１００  コンピュータ・システム
１０２  ホスト
１０４  ネットワーク付属サーバ
１０６  ＬＡＮ／ＷＡＮ
１０８  インテリジェント・データ・サブ・システム
１０９  データ記憶容量
１１０  ファブリック
１１２  コントローラ
１１４  シェルフ
１１６  ミッド・プレーン
１１８  マルチ・ディスク・アセンブリ
１２２  バッテリ
１２４  交流電源
１２６  インターフェイス・モジュール
１３０  インテリジェント記憶プロセッサ
１３２  回路板
１３４，１３６  ＩＳＰサブ・システム
１３８，１４６  バス
１４０，１４２  リンク
１４４  ポリシ・プロセッサ
１４８  メモリ
１５０，１５２，１５４，１５６，１５８，１６０  ファンクション・コントローラ・コア
１６２，１６４  リスト・マネージャ
１６６  クロス・ポイント・スイッチ
１６８  バッファ・メモリ
１７０，１７２，１７４，１７６  ストライプ・ディスク
１７８  ディスク・アレイ
１８０  第１のストライプ
１９０，  ＳＢＬテーブル
１９１  ＳＢＬ
１９２，１９４，１９６  ＳＢＬ構造
２００  ＳＰＢテーブル
２０２  ＳＤＢテーブル
２１０  ＳＢＬＤ構造
【図１】
2007004798.tif 000010
【図２】
2007004798.tif 000011
【図３】
2007004798.tif 000012
【図４】
2007004798.tif 000013
【図５】
2007004798.tif 000014
【図６】
2007004798.tif 000015
【図７】
2007004798.tif 000016
【図８】
2007004798.tif 000017
【図９】
2007004798.tif 000018
【図１０】
2007004798.tif 000019
【図１１】
2007004798.tif 000020
【図１２Ａ】
2007004798.tif 000021
【図１２Ｂ】
2007004798.tif 000022
【図１２Ｃ】
2007004798.tif 000023