(57)【要約】【課題】キャッシュメモリ内にリードバック・データをキャッシングする方法および装置を得る。【解決手段】キャッシュされたリードバック・データがホスト装置へ転送されると、キャッシュ・マネージャはその時間パラメータおよび局所性パラメータに関連してリードバック・データのキャッシュメモリ内への保持を強制するように動作する。リードバック・データはキャッシュヒットを満たすことを願って保持されるか、または保持されずにキャッシュされたデータを調節する。キャッシュ・マネージャは時間パラメータを時間閾値と比較し局所性パラメータを局所性閾値と比較し、両方の閾値が満たされればリードバック・データの保持を強制する。リードバック・データはＲＡＩＤストライプ等のデータ構造と関連付けられ、時間パラメータは構造への最終アクセス以来の経過時間を示し、局所性パラメータは構造へのアクセスを示す。【選択図】図５
2008016026.tif 000002
【特許請求の範囲】
【請求項１】
記憶アレイからリードバック・データを受信するキャッシュメモリ、および前記データに関連する時間パラメータおよび局所性パラメータに関連して前記データをホスト装置へ転送した後でリードバック・データのキャッシュメモリ内への保持を強制するように構成されたキャッシュ・マネージャを含む装置。
【請求項２】
請求項１に記載の装置であって、キャッシュ・マネージャは時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較し、前記両方の閾値が満たされれば前記転送時にリードバック・データのキャッシュメモリ内への前記保持を強制する装置。
【請求項３】
請求項１に記載の装置であって、キャッシュメモリはホストへの転送が未決のリードバック・データの初期格納を行うように構成されたメモリセルのアレイを含み、キャッシュ・マネージャによる前記強制保持はリードバック・データの格納を継続して前記セルが他のデータによりオーバライトされるのを防止するようにキャッシュメモリ内の前記メモリセルを割り当て、そうでなければ前記メモリセルは後で導入されるキャッシュされたデータによりオーバライトするために割当て解除されることを含む装置。
【請求項４】
請求項１に記載の装置であって、時間パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造への最終アクセス以来の経過時間として特徴づけられる装置。
【請求項５】
請求項４に記載の装置であって、データ構造は記憶アレイの選択されたデータ記憶装置上のＲＡＩＤストライプに対応する装置。
【請求項６】
請求項１に記載の装置であって、局所性パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造へ行われたいくつかのアクセスとして特徴づけられる装置。
【請求項７】
請求項１に記載の装置であって、さらに、キャッシュ・マネージャにより強制的に保持されてからのリードバック・データの経過期間を測定するタイミングカウントを与えるタイマを含む装置。
【請求項８】
請求項１に記載の装置であって、キャッシュ・マネージャは各々が記憶アレイの選択されたサブセットに対応する領域のアレイを形成し、ホストからの後続リード要求がキャッシュメモリから満たされるレートに関連して前記リードバック・データの保持を強制する装置。
【請求項９】
請求項８に記載の装置であって、キャッシュ・マネージャは前記レートに関連して少なくとも１つのパラメータを適応的に調節する装置。
【請求項１０】
請求項８に記載の装置であって、前記アレイの少なくとも１つの領域はＲＡＩＤセットに対する再構成境界に対応する装置。
【請求項１１】
記憶アレイからリードバック・データを受信するように構成されたキャッシュメモリ、および時間パラメータおよび局所性パラメータに関連して前記データをホスト装置へ転送した後でリードバック・データのキャッシュメモリ内への保持を強制する第１の手段を含む装置。
【請求項１２】
請求項１１に記載の装置であって、第１の手段は時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較し、前記両方の閾値が満たされれば前記転送時にリードバック・データのキャッシュメモリ内への前記保持を強制するキャッシュ・マネージャを含む装置。
【請求項１３】
記憶アレイからのリードバック・データをキャッシュメモリ内に一時的に格納し、前記リードバック・データに関連する時間パラメータおよび局所性パラメータに関連して前記データをホスト装置へ転送した後でリードバック・データのキャッシュメモリ内への保持を強制するステップを含む方法。
【請求項１４】
請求項１３に記載の方法であって、強制保持ステップは時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較し、前記両方の閾値が満たされれば前記転送時にリードバック・データのキャッシュメモリ内への前記保持を強制する方法。
【請求項１５】
請求項１３に記載の方法であって、一時的格納ステップのキャッシュメモリはホストへの転送が未決のリードバック・データの初期格納を行うように構成されたメモリセルのアレイを含み、強制保持ステップはリードバック・データの格納を継続して前記セルが他のデータによりオーバライトされるのを防止するようにキャッシュメモリ内の前記メモリセルを割り当て、そうでなければ前記セルは後で導入されるキャッシュされたデータによりオーバライトするために割当て解除されるステップを含む方法。
【請求項１６】
請求項１３に記載の方法であって、時間パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造への最終アクセス以来の経過時間として特徴づけられる方法。
【請求項１７】
請求項１３に記載の方法であって、局所性パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造へ行われたいくつかのアクセスとして特徴づけられる方法。
【請求項１８】
請求項１３に記載の方法であって、さらに、各々が記憶アレイの選択されたサブセットに対応する領域のアレイを発生する前ステップを含み、ホストからの後のリード要求がキャッシュメモリから満たされるレートに関連して前記リードバック・データの強制保持が実施される方法。
【請求項１９】
請求項１８に記載の方法であって、キャッシュ・メモリは前記レートに関連して少なくとも１つのパラメータを適応的に調節する方法。
【請求項２０】
請求項１８に記載の方法であって、前記アレイの少なくとも１つの領域はＲＡＩＤセットに対する再構成境界に対応する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にデータ記憶システムの分野に関し、制約はしないが、特に、記憶アレイからのリードバックデータをキャッシングする方法および装置に関する。
【背景技術】
【０００２】
高速かつ効率的方法でデータにアクセスするために記憶装置が使用される。ある種の記憶装置は媒体表面上に規定されたトラックにデータを書込みその後データを読み出す１つ以上のデータトランスデューサと共に回転可能な記録媒体を使用する。
【０００３】
マルチデバイス・アレイ（ＭＤＡ）は多数の記録装置を利用して統合されたメモリスペースを形成する。ＭＤＡに対する１つの広く利用されるフォーマットはＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｃｓ）構成を利用し、入力データはアレイ内の多数の記憶装置にわたって格納される。ＲＡＩＤレベルに応じて、ミラーリング、ストライピングおよびパリティコード発生を含むさまざまな技術を利用して格納されたデータの完全性を高めることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
記憶容量および性能のレベルは絶えず高まることが要求され続けているため、このようなアレイ内の記憶装置の動作が管理される方法の改善が継続的に必要とされている。本発明の好ましい実施例は一般的にこれらおよびその他の改善に向けられる。
【課題を解決するための手段】
【０００５】
本発明の好ましい実施例は一般的に記憶アレイからのリードバック・データをキャッシングする方法および装置に関する。
【０００６】
好ましい実施例では、キャッシュメモリが記憶アレイから取得されたリードバックデータを格納する。キャッシュされたリードバックがホスト装置へ転送されると、キャッシュ・マネージャが動作してリードバック・データのキャッシュメモリ内への保持を強制すべきかどうか決定する。好ましくは、この決定は前記データに関連する時間パラメータおよび局所性パラメータに関連して行われる。
【０００７】
このようにして、リードバック・データは後でキャッシュヒットを満たすことを願って保持されるか、あるいは保持されずに後続キャッシュデータを調節する。好ましくは、キャッシュ・マネージャが時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較して、前記した両方の閾値が満たされればリードバック・データの前記保持を強制する。
【０００８】
リードバック・データは好ましくはＲＡＩＤストライプ等のデータ構造に関連付けられ、時間パラメータは好ましくは構造への最終アクセス以来の経過時間を示し、局所性パラメータは好ましくは構造へのアクセスを示す。
【０００９】
もう１つの好ましい実施例では、キャッシュ・マネージャが領域のアレイを形成し、各領域は記憶アレイの選択されたサブセットに対応する。リードバック・データの保持を強制する判断はその後、好ましくは、ホストからの後のリード要求がキャッシュメモリから満たされる割合に関連してなされる。
【００１０】
好ましくは、キャッシュ・マネージャは観察されたキャッシュ・ヒットレートに関連して少なくとも１つのパラメータを適応的に調節する。ＲＡＩＤセット障害が検出されると、好ましくは、アレイの少なくとも１つの領域はＲＡＩＤセットに対する再構成境界に対応するように調節される。
【００１１】
下記の詳細な説明を読みかつ添付図を検討すれば、特許請求された本発明を特徴づけるこれらおよびさまざまな他の特徴および利点が明白となる。
【実施例】
【００１２】
図１はユーザデータを格納かつ取得するように構成された典型的な記憶装置１００を示す。好ましくは、装置１００はハードディスクドライブとして特徴づけられるが、所望により、他の装置構成も容易に利用することができる。
【００１３】
ベースデッキ１０２がトップカバー（図示せず）と嵌合して密閉筐体を形成する。スピンドルモータ１０４が筐体内に搭載されて、好ましくは、磁気記録ディスクとして特徴づけられる媒体１０６を制御可能に回転させる。
【００１４】
制御可能に移動可能なアクチュエータ１０８はボイスコイルモータ（ＶＣＭ）１１２へ電流を印加することにより、媒体表面上に規定されたトラックに隣接するリード／ライト・トランスデューサ１１０のアレイを移動させる。フレックス回路アセンブリ１１４はアクチュエータ１０８および外部搭載印刷回路板（ＰＣＢ）１１６上の装置制御エレクトロニクス間の電気通信パスを提供する。
【００１５】
図２はｎ個の記憶装置（ＳＤ）１００を有利に内蔵して統合記憶アレイ１２２を形成する典型的なネットワークシステム１２０を一般的に示している。冗長コントローラ１２４，１２６が好ましくは記憶アレイ１２２およびサーバ１２８間でデータを転送するように動作する。サーバ１２８はローカルエリアネットワーク（ＬＡＮ）、インターネット、等のファブリック１３０に接続されている。
【００１６】
遠隔ユーザは、それぞれ、パーソナルコンピュータ（ＰＣ）１３２，１３４，１３６を介してファブリック１３０にアクセスする。このようにして、選択されたユーザは記憶スペース１２２にアクセスして、所望により、データを書込みまたは検索することができる。
【００１７】
好ましくは、装置１００およびコントローラ１２４，１２６はマルチデバイス・アレイ（ＭＤＡ）１３８に内蔵される。好ましくは、ＭＤＡ１３８は１つ以上の選択されたＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｃｓ）構成を使用して装置１００に亘ってデータを格納する。図２には１つだけのＭＤＡと３人の遠隔ユーザしか例示されていないが、これは単なる説明が目的であって制約的意味合いは無く、所望により、ネットワークシステム１２０は任意数およびタイプのＭＤＡ、サーバ、クライアントおよびホスト装置、ファブリック構成およびプロトコル、等を利用することができる。
【００１８】
図３は図２のネットワーク内で有用なアレイコントローラ構成１４０を示している。２つのインテリジェント記憶プロセッサ（ＩＳＰ）１４２，１４４が中間バス１４６（「Ｅバス」と呼ばれる）により接続されている。好ましくは、各ＩＳＰ１４２，１４４は共通コントローラボード上の個別の集積回路パッケージ内に配置される。好ましくは、各ＩＳＰ１４２，１４４はファイバチャネル・サーバリンク１４８，１５０を介してアップストリーム・アプリケーション・サーバと通信し、かつファイバチャネル・記憶リンク１５２，１５４を介して記憶装置１００と通信する。
【００１９】
ポリシープロセッサ１５６，１５８はコントローラ１４０に対するリアルタイム・オペレーティングシステム（ＲＴＯＳ）を実行し、ＰＣＩバス１６０，１６２を介して各ＩＳＰ１４２，１４４と通信する。ポリシープロセッサ１５６，１５８は、さらに、カスタマイズされた論理を実行して定められた記憶アプリケーションに対してＩＳＰ１４２，１４４と共に精巧な処理タスクを実施する。ＩＳＰ１４２，１４４およびポリシープロセッサ１５６，１５８は動作中に必要とされるメモリモジュール１６４，１６６にアクセスする。
【００２０】
図４は図３の選択されたＩＳＰに対する好ましい構造を提供する。纏めて１６８に示すいくつかのファンクション・コントローラはホスト交換、直接メモリアクセス（ＤＭＡ）、排他的ｏｒ（ＸＯＲ）、コマンドルーティング、メタデータ制御、およびディスク交換等のいくつかのコントローラ動作に対するファンクション・コントローラ・コア（ＦＣＣ）として機能する。好ましくは、各ＦＣＣはメモリ交換その他のスケジューリングタスクを容易にする非常に柔軟な機能セットおよびインターフェイスを含んでいる。
【００２１】
一般的に１７０に示すいくつかのリストマネージャは、キャッシュテーブル管理、メタデータ保守、およびバッファ管理等のコントローラ動作中にさまざまなデータおよびメモリ管理タスクに使用される。好ましくは、リストマネージャ１７０はメモリ上の単純ではあるが明確に定義された動作を実施してＦＣＣ１６８により指令されるタスクを遂行する。好ましくは、各リストマネージャは、好ましくは、ＦＣＣによるメモリアクセスに対するメッセージプロセッサとして作動して、好ましくは、規定されたプロトコルに従って受信メッセージにより規定される操作を実行する。
【００２２】
リストマネージャ１７０は、それぞれ、交換メモリブロック１７２、キャッシュテーブル・ブロック１７４、バッファメモリ・ブロック１７６およびＳＲＡＭ１７８を含むいくつかのメモリモジュールと通信しかつ制御する。ファンクション・コントローラ１６８およびリストマネージャ１７０は、それぞれ、クロスポイントスイッチ（ＣＰＳ）モジュール１８０を介して通信する。このようにして、コントローラ１６８の選択されたファンクション・コアはＣＰＳ１８０を介した対応するリストマネージャ１７０への通信パスウェイを確立してステータスを通信し、メモリモジュールをアクセスし、あるいは所望のＩＳＰ動作を呼び出すことができる。
【００２３】
同様に、選択されたリストマネージャ１７０はＣＰＳ１８０を介してファンクション・コントローラ１６８へ応答を通信し返すことができる。図示されてはいないが、好ましくは、図４の各エレメント間にその間のデータ転送を調整するために個別のデータバス接続を確立することができる。所望により、他の構成を容易に利用できることがお判りであろう。
【００２４】
ＰＣＩインターフェイス（Ｉ／Ｆ）モジュール１８２はポリシープロセッサ１５６およびＩＳＰ１４２間でトランザクションを確立して指示する。Ｅ−ＢＵＳＩ／Ｆモジュール１８４はＦＣＣおよび各ＩＳＰ１４２，１４４のリストマネージャ間のＥ−ＢＵＳ１４６を介した通信を容易にする。所望により、ポリシープロセッサ１５６，１５８はＥ−ＢＵＳ１４６を介したシステムの他の部分との通信を開始し受信することもできる。
【００２５】
図３および４のコントローラ・アーキテクチュアはアレイに対するスケーラブルで、非常に機能的なデータ管理および制御を有利に提供する。好ましくは、ストライプ・バッファリスト（ＳＢＬ）および他のメタデータ構造は記録媒体上のストライプ境界および記憶トランザクション中にディスクストライプに関連付けられるデータを専用に格納するキャッシュ内の基準データバッファに揃えられる。
【００２６】
処理効率をさらに高めるために、好ましくは、コントローラ・アーキテクチュアは新しいリードバック・データ・キャッシング方法論を利用する。一般的に、リードバック・データは記憶装置１００からホスト装置への転送が未決であるキャッシュメモリへ取得する。後述するように、２Ｄダイナミック適応データキャッシング技術は、好ましくは、このような転送の後でこのようなリードバック・データをキャッシュメモリ内に保持すべきか、そうであれば、何に基づいてこのようなデータを後で新しいキャッシュされたリードバック・データと置換すべきかを決定するのに利用される。「２Ｄ」という用語は一般的には空間（局所性）および時間の要因の（少なくとも）２次元解析のことである。
【００２７】
図５に示すように、好ましくは、キャッシュされたデータはストライプ・データ記述子（ＳＤＤ）１９２と呼ばれるデータ構造を使用してキャッシュ・マネージャ（ＣＭ）１９０によりノードベースで管理される。各ＳＤＤは関連するデータへの最近および現在のアクセスに関するデータを保持する。このようにして、各ＳＤＤは好ましくは対応するＲＡＩＤストライプ１９４（すなわち、特定のパリティセットに関連する選択された装置１００上の全データ）等の、全体記憶アレイのサブセットとしてのデータ構造に対応し揃えられる。好ましくは、各ＳＤＤ１９２はさらに特定のＳＢＬ１９６に従う。
【００２８】
ＣＭ１９０により管理される各キャッシュノードは、好ましくは、ある特定のＳＤＤを参照し、論理ディスクの定められたセット（装置１００のサブセット）に対するアクティブＳＤＤ構造は、好ましくは、標準フォワードおよびバックワード・リンクリストを使用して仮想ブロックアドレス（ＶＢＡ）を介して昇ベキの順でリンクされる。好ましくは、論理ディスクは関連する論理ディスク記述子（ＬＤＤ）を使用して管理される。
【００２９】
好ましくは、ＶＢＡ値はしばしばＲＡＩＤアロケーション・グリッドシステム（ＲＡＩＤ  Ａｌｌｏｃａｔｉｏｎ  ＧｒｉｄＳｙｓｔｅｍ（ＲＡＧＳ））と呼ばれるグリッドシステムを使用してＲＡＩＤデータ編成と揃えられる。一般的に、同じＲＡＩＤストリップ２００に属するブロックの任意特定の集り（たとえば、特定のパリティセットに寄与する全データ）が特定のシート上の特定の信頼できる記憶ユニット（ＲＳＵ）に割当てられる。
【００３０】
数枚のシートからなるブックが異なる装置１００からのブロックの多数の隣接セットから構成される。実際のシートおよびＶＢＡに基づいて、ブックは特定の装置または装置セットを示す（冗長度が利用される場合）ゾーンへ細分割される。
【００３１】
好ましくは、各ＳＤＤ１９２はアクセス歴、最終オフセット、最終ブロック、タイムスタンプデータ（一日の時間、ＴＯＤ）、および利用されるＲＡＩＤレベルを含むデータのさまざまなステータスを示す変数を含んでいる。後述するように、領域ＳＤＤ、アクセスされた領域、および領域ＴＯＤに関連する変数を含むＳＤＤ構造内でいくつかの領域変数も好ましくは利用される。
【００３２】
好ましくは、ＬＤＤ１９８は領域サイズ、ヒット率、リード、ＴＯＤ閾値、アクセス閾値、履歴方向（ｈｙｓｔｅｒｅｔｉｃ  ｄｉｒｅｃｔｉｏｎ）（閾値およびサイズ）、および領域履歴（ｒｅｇｉｏｎ  ｈｙｓｔｅｒｅｔｉｃ）（閾値およびサイズ）を含む後述するように使用される変数を含んでいる。履歴値はヒット率レート、すなわち、さまざまなパラメータが調節される時の性能変化（良かれ悪しかれ）レートの進行を追跡する。
【００３３】
好ましくは、正規動作中にキャッシュ・マネージャ１９０は記憶アレイから、図５のブロック２０２で表される、キャッシュメモリへのデータの検索を指示するように動作する。データは通常ホスト装置（たとえば、図２のＰＣ１３２，１３４，１３６）からのリード要求に応答して取得され、取得されるとデータは関連するＦＣＣその他のプロセッサにより読み出してホストへ転送できるような時間までキャッシュメモリ２０２内に一時的に格納される。
【００３４】
この点において、好ましくは、ＣＭ１９０は転送されたデータをこのような転送後にキャッシュメモリ２０２内に保持すべきかどうかを決定する。当業者ならばお判りのように、ホスト装置によるデータに対する後のリード要求を満たすことを願ってキャッシュされたリードバック・データを保持するのが有利となることがあり、その場合記憶装置１００によるデータリードバック操作を予定し実行する必要無しにキャッシュから直接データを転送することができる。
【００３５】
キャッシュメモリは一般的に制限されたリソースであるが、ホストにより再要求されそうもないリードバック・データ（再要求されたまたは実際的ではない）によりキャッシュメモリを満たすと、実質的に全ての新しい要求がディスク評価操作を必要とするため全体転送レート性能に有害な影響を及ぼすことがある。
【００３６】
好ましくは、システム要求条件に応じて、ＣＭ１９０は同時に作動していくつかの異なるレベルでリードバック・データを管理する。好ましくは、第１のレベルは定められたＳＤＤ１９２のアクセス変数（ここでは「局所性パラメータ」とも呼ばれる）を関連するＬＤＤ１９８のアクセス閾値（「局所性閾値」）と比較し、かつＳＤＤのＴＯＤ変数（「時間パラメータ」）をＬＤＤのＴＯＤ閾値（「時間閾値」）と比較することにより、そのＳＤＤ１９２に関連する記憶装置１００から読み出されたばかりのブロックのキャッシングを強制することを伴う。
【００３７】
好ましくは、ＳＤＤ１９２のアクセス変数はＳＤＤに関連するデータへのアクセスが行われるレートの相対的測度を与える。たとえば、アクセス変数はＳＤＤにより規定された記憶アレイ内のデータへアクセス（リードオンリー、またはリードおよびライト）するたびに更新される増分カウントとすることができる。このようにして、アクセス変数はこの局所性のデータ内の「ホスト関心（ｈｏｓｔ  ｉｎｔｅｒｅｓｔ）」の表示を与え、正規状況の元で、より高い既存数のアクセスにより近い将来より多くのアクセスが生じるより高い尤度が作り出されることがある。
【００３８】
ＴＯＤ変数は一般的に最も最近のアクセス以来の経過時間の表示を与える。ＴＯＤ変数を現在時間から減じることにより、ＳＤＤがどれだけ頻繁に（またはまれに）アクセスされているかの経時（ａｇｉｎｇ）評価を行うことができる。ＬＤＤ１９８のアクセスおよびＴＯＤ閾値は任意適切な各値に設定される。
【００３９】
このシナリオの元で、アクセス閾値とＴＯＤ閾値の両方が満たされれば、ＣＭ１９０はリードバック・データをキャッシュ内に保持する（たとえば、強制キャッシング）と決定する、すなわち、ＳＤＤ１９２により表されるアクセス数がＬＤＤ１９８のアクセス閾値を満たすかあるいはそれを超え、かつＳＤＤ１９２に関連する最終アクセス以来の時間がＬＤＤ１９８のＴＯＤ閾値以下である場合に好ましくは強制キャッシングが行われる。
【００４０】
好ましくは、ＴＯＤ変数はフリーランニング・カウンタ２０４からの１／１００秒（１０ミリ秒，ｍｓ）等の適切な分解に維持される。精度を保証するために、好ましくは、時間計算はカウンタ２０４のロールオーバを考慮しなければならない。好ましい実施例では、カウンタの全回路等の全時間（たとえば、１０分程度）にわたってアクセスされていないキャッシュされたリードバック・データは自動的にキャッシュから出される。
【００４１】
好ましくは、キャッシュからデータを除去することは関連するメモリセルの割当解除を伴い、このようなセルは新たにキャッシュされたデータにより即座にオーバライトされ、キャッシュからの除去されたデータの実際の転送を必ずしも伴わないことがある。
【００４２】
前記した動作の他に、アクセス数が第２のより高い閾値よりも上で最終アクセス以来の時間が比較的小さい範囲内であれば、ＣＭ１９０により付加閾値を設定することができる。それによりバースト・アクティビティ（非常に小さい時間フレーム内の非常に局所化された繰返しリード）を有利に検出することができる。
【００４３】
関連する実施例では、ＣＭ１９０は適応的に作動して進行中の演算負荷（ｏｐｅｒａｔｉｏｎａｌ  ｌｏａｄｉｎｇ）と一致するようにパラメータを連続的に調節する。たとえば、一実施例では、前記閾値は初期値に設定され、閾値がどれだけうまく既存の要求条件を満たすかを調べるために、定められた期間にわたってキャッシュヒット数（キャッシュから満たされているリード要求）が累積される。次に、キャッシュ・ヒットレートを高めるために閾値の一方または両方を調節することができる。
【００４４】
あるいは、前記した領域変数に基づいて適応調節を行うことができる。図６に一般的に示すように、記憶アレイ内の領域２０８のアレイ２０６を任意に定義することができる。好ましくは、各領域２０８は２の累乗のサイズであり、たとえば、その領域に関連する全データを管理するのに使用される領域２０８内の最初のＳＤＤを有する多数のＳＤＤ１９２に対応することができる。このようにして、隣接ＳＤＤにわたるトレンドを検出して効率的に管理することができる。この管理技術は全体記憶アレイ（またはその連続部）、あるいは図６の「Ｘ」マーク領域２０８で示すその選定部分に適用することができる。
【００４５】
好ましくは、この実施例においてＣＭ１９０はサイズおよび閾値変数を含むＬＤＤ変数を履歴変数およびヒット率の変化に基づいて適応的に調節する。このプロセスはベースライン数のリードが検出される時に実行することができる。ＳＤＤ内のアクセスおよびＴＯＤ変数をＬＤＤ閾値と単に比較するのではなく、この代替実施例は領域ＳＤＤ（最初のＳＤＤ）内の領域変数を使用しかつ維持し、これらの値を強制キャッシングに利用する。
【００４６】
ＬＤＤパラメータはいくつかの方法で適応的に調節することができる。好ましい方法では、ヒット率は履歴値の対応するカウントを有する最適値を有する。好ましくは、カウント値はリードの総数がある閾値を超える定められた期間に対して最適（「最善」）ヒット率が達成されている回数を示す。最適リードヒットレベルよりも低いレベルを経験している時は、ＣＭ１９０は好ましくは閾値を特定の方向に１つずつ調節し、性能が悪化したら方向を反転する。好ましくは、方向変化数が増加すると変化間の増加する期間数が作られる。
【００４７】
最適値が追跡され新しい最適設定が発見されると好ましくはカウント値がリセットされる。領域２０８のサイズ変更には一般的に全体ＳＤＤリストを無視して領域ＳＤＤ（最初のＳＤＤ）変数を調節する必要があることに注目願いたい。
【００４８】
もう１つの実施例では、さまざまな前記したキャッシング方法は、さらに、システムにより経験される障害状態を考慮するように構成される。たとえば、冗長度およびパリティが発生されるＲＡＩＤコンテキストでは、ＲＡＩＤセットが低減され（装置１００の損失等による）データが再構成されそうな場合には、リードバック・データのキャッシング・レベルを増すことが一般的に有利である。このような場合、領域サイズは好ましくは再構成境界と揃えられるように調節される。
【００４９】
好ましくは、再構成境界はより大きいＲＡＩＤストライプの個別のＲＡＩＤストライプに対応するように設定される。いくつかの要因により、「消失」ストライプ（たとえば、装置障害イベントにより再構成する必要のある１つ又は複数のストライプ）に対するコラムオフセットは変動することがある。それにもかかわらず、残りのＲＡＩＤストライプデータから消失データを再構成するのに必要な処理があるため、消失ストライプからの再構成データは異なる処理を行うのが一般的に望ましい。
【００５０】
アレイは定められたデータセットが再構成されているか（あるいは、これから再構成する必要があるか）を調べるための効率的な方法を提供する。データが再構成されていなければ、消失データに対してより低い閾値を利用することができる。このようにして、好ましくは、キャッシュ・マネージャ１９０は最初に定められたＲＡＩＤストリップが再構成されない領域内にあるかどうか調べ、次に、特定のＳＤＤが消失データに対応するかどうかを調べる。そうであれば、好ましくはデータを保持するための遥かに低い閾値が利用される。
【００５１】
図７は、好ましくは前記した検討に従って実施されるステップを一般的に表す、リードバック・データ・キャッシング・ルーチン３００に対するフロー図を説明するものである。ステップ３０２において、図２のネットワーク１２０のようなシステムが初期化され、データ転送動作を実施するための準備完了状態とされる。
【００５２】
ステップ３０４において、さまざまなホスト装置（１３２，１３４，１３６等）によりリードデータ要求が出され、データが記憶アレイ（装置１００等）から取得され、キャッシュメモリ（２０２等）へ一時的に移され、要求するホストへ転送される。
【００５３】
次に、好ましくは、ステップ３０６において１９０等のキャッシュ・マネージャによりキャッシュ保持判断がなされ、将来ホスト要求を満たすことを願って取得されたリードバック・データがキャッシュメモリ内に保持されるかどうか決定される。判断は一般的に時間および局所性要因に依存し、演算負荷その他のシステムパラメータに応じていくつかの代替方法をとることができる。
【００５４】
ステップ３０８において、定められたデータ構造に関連するリードバック・データは最近アクセス数および経過時間値の比較に関連して強制キャッシュされる。好ましくは、ＳＤＤのアクセス変数がＬＤＤのアクセス閾値と比較され、ＳＤＤに対する最も最近のアクセス以来の時間に関連する経時値（ａｇｉｎｇ  ｖａｌｕｅ）がＬＤＤのＴＯＤ閾値と比較される。両方の基準が満たされると、データはキャッシュメモリ２０２内に保持される。必要ではないが、ステップ３０８の操作は比較的低い局所化されたリードレートが経験される時に生じることが考えられる。
【００５５】
ステップ３１０において代替適応的方法が実施され、連続的データ構造に揃えられた領域２０８のアレイ２０６が発生され領域毎ベースでデータアクセスが追跡される。好ましくは、これは比較的高い局所化リードレートが経験される時にトリガされる。
【００５６】
ステップ３１２において、初期閾値が確立されキャッシュヒットのカウントが追跡される。前と同様に、時間および局所性パラメータがキャッシング判断において利用される。しかしながら、各時間およびアクセス閾値数だけでなく領域サイズおよびグルーピングを含むさまざまなパラメータが個別に調節されて最適設定を見つけ、性能利得を追跡するように履歴値が維持される。
【００５７】
好ましくは、ステップ３１４に示すように、障害装置１００等によりＲＡＩＤ再構成操作が検出されると、ステップ３１０の領域境界は関連するＲＡＩＤセットに対する再構成境界に対応するようにさらに調節される。
【００５８】
前記した操作は逐次またはタンデムに実施することができ、たとえば、記憶装置１００のある場所（たとえば、ある本等の）は比較的低いアクセス・アクティビティ・レベルとすることができ、その場合これらの場所専用のキャッシュ・リソースはステップ３０８を使用して処理することができ、他のよりアクティビティの高い場所（たとえば、ホットブック）についてはステップ３１０−３１４のフローを同時に行うことができる。
【００５９】
前記した実施例は従来技術に優るいくつかの利点を提供する。強制キャッシュ判断を行うのに時間と局所性の両方の要因を使用することにより、一般的に性能負荷（ｐｅｒｆｏｒｍａｎｃｅ  ｌｏａｄｉｎｇ）の全体トレンドのより良い評価が提供され、キャッシュ・リソースがより効率的にデータの保持に割当てられる。前記した適応的技術は、さらに、さまざまなキャッシング・パラメータを、特に高アクティビティ領域内で、システムの変化するニーズを満たすように連続的に微調整する機構を提供する。さらに、図６に示すような領域キャッシング管理は、前記したブック構造等の、クロス・ストライプレベルでリードバック・トレンドの手早い検出を考慮している。
【００６０】
キャッシュメモリ内にデータを保持する操作は新しい着信データにより即座にオーバライトされてしまうため、「強制」キャッシング等の用語は前記検討と矛盾しないと解釈される。キャッシュメモリはシングルデバイスとしたり多数のデバイスに跨るメモリスペースとして内蔵することができる。
【００６１】
必ずしも必要ではないが、好ましくは、強制操作は現在リードバック・データを格納しているキャッシュメモリ内のメモリセルを、それが他のデータによりオーバライトされるのを防止するように、割り当てる判断を行う。好ましくは、このような保持されたデータを後でキャッシュから解放することは、前記セルの割当てを解除し新たに導入されたキャッシュされたデータにより後でそれをオーバライトできるようにすることを含んでいる。
【００６２】
添付された特許請求の範囲の目的に対して、引用した「最初の手段」は図７に従ってリードバック・データ・キャッシング操作を実施するキャッシュ・マネージャ１９０に少なくとも対応することが理解される。
【００６３】
本発明のさまざまな実施例の非常に多くの特徴および利点を、本発明のさまざまな実施例の構造および機能の詳細と共に、前記した明細書に記載してきたが、この詳細な説明は説明用にすぎず詳細、特に、部品の構造および配置に関して本発明の原理内で添付特許請求の範囲が表現される用語の広範な一般的意味により示される限界まで変更を行うことができる。たとえば、特定のエレメントは特定の応用に応じて本発明の精神および範囲を逸脱することなく変動することができる。
【図面の簡単な説明】
【００６４】
【図１】本発明の好ましい実施例に従って構成かつ作動される記憶装置を一般的に示す図である。
【図２】図１に示すようないくつかの記憶装置を利用するネットワークシステムの機能的ブロック図である。
【図３】図２のコントローラの好ましいアーキテクチュアの一般的表現を示す図である。
【図４】図３の選択されたインテリジェント記憶プロセッサの機能的ブロック図である。
【図５】好ましい実施例に従って記憶アレイから取得されたリードバック・データを管理するように動作するキャッシュ・マネージャを一般的に示す図である。
【図６】好ましい実施例に従ってキャッシュ・マネージャにより利用されるキャッシュメモリ・テーブルを示す図である。
【図７】本発明の好ましい実施例に従って実施されるステップを一般的に示す、リードバック・データ・キャッシング・ルーチンに対するフロー図である。
【符号の説明】
【００６５】
１００  記憶装置
１０２  ベースデッキ
１０４  スピンドルモータ
１０６  回転媒体
１０８  アクチュエータ
１１０  リード／ライト・トランスデューサ
１１２  ボイスコイルモータ
１１４  フレックス回路アセンブリ
１１６  印刷回路板
１２０  ネットワーク・システム
１２２  記録アレイ
１２４，１２６  冗長コントローラ
１２８  サーバ
１３０  ファブリック
１３２，１３４，１３６  パーソナルコンピュータ
１３８  マルチデバイス・アレイ
１４０  アレイコントローラ構成
１４２，１４４  インテリジェント・プロセッサ
１４６  中間バス
１４８，１５０  ファイバチャネル・サーバリンク
１５２，１５４  ファイバチャネル記憶リンク
１５６，１５８  ポリシー・プロセッサ
１６０，１６２  ＰＣＩバス
１６４，１６６  アクセスメモリ・モジュール
１６８  ファンクション・コントローラ・コア
１７０  リストマネージャ
１７２  交換メモリブロック
１７４  キャッシュテーブル・ブロック
１７６  バッファメモリ・ブロック
１７８  ＳＲＡＭ
１８０  クロスポイントスイッチ・モジュール
１８２  ＰＣＩインターフェイス・モジュール
１８４  Ｅ−ＢＵＳ  ＩＦモジュール
１９０  キャッシュ・マネージャ
１９２  ストライプ・データ記述子
１９４，２００  ＲＡＩＤストライプ
１９６  ＳＢＬ
１９８  ＬＤＤ
２０２  キャッシュメモリ
２０４  フリーランニング・カウンタ
２０６  アレイ
２０８  領域
【図１】
2008016026.tif 000003
【図２】
2008016026.tif 000004
【図３】
2008016026.tif 000005
【図４】
2008016026.tif 000006
【図５】
2008016026.tif 000007
【図６】
2008016026.tif 000008
【図７】
2008016026.tif 000009
【外国語明細書】
2008016026000001.pdf