JP2008016026A - 2dダイナミック適応データキャッシング - Google Patents

2dダイナミック適応データキャッシング Download PDF

Info

Publication number
JP2008016026A
JP2008016026A JP2007172840A JP2007172840A JP2008016026A JP 2008016026 A JP2008016026 A JP 2008016026A JP 2007172840 A JP2007172840 A JP 2007172840A JP 2007172840 A JP2007172840 A JP 2007172840A JP 2008016026 A JP2008016026 A JP 2008016026A
Authority
JP
Japan
Prior art keywords
data
readback
cache memory
time
locality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007172840A
Other languages
English (en)
Inventor
Clark E Lubbers
イー.レッベルス クラーク
Michael D Walker
ディー.ウォーカー マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2008016026A publication Critical patent/JP2008016026A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】キャッシュメモリ内にリードバック・データをキャッシングする方法および装置を得る。
【解決手段】キャッシュされたリードバック・データがホスト装置へ転送されると、キャッシュ・マネージャはその時間パラメータおよび局所性パラメータに関連してリードバック・データのキャッシュメモリ内への保持を強制するように動作する。リードバック・データはキャッシュヒットを満たすことを願って保持されるか、または保持されずにキャッシュされたデータを調節する。キャッシュ・マネージャは時間パラメータを時間閾値と比較し局所性パラメータを局所性閾値と比較し、両方の閾値が満たされればリードバック・データの保持を強制する。リードバック・データはRAIDストライプ等のデータ構造と関連付けられ、時間パラメータは構造への最終アクセス以来の経過時間を示し、局所性パラメータは構造へのアクセスを示す。
【選択図】図5

Description

本発明は一般的にデータ記憶システムの分野に関し、制約はしないが、特に、記憶アレイからのリードバックデータをキャッシングする方法および装置に関する。
高速かつ効率的方法でデータにアクセスするために記憶装置が使用される。ある種の記憶装置は媒体表面上に規定されたトラックにデータを書込みその後データを読み出す1つ以上のデータトランスデューサと共に回転可能な記録媒体を使用する。
マルチデバイス・アレイ(MDA)は多数の記録装置を利用して統合されたメモリスペースを形成する。MDAに対する1つの広く利用されるフォーマットはRAID(redundant array of independent discs)構成を利用し、入力データはアレイ内の多数の記憶装置にわたって格納される。RAIDレベルに応じて、ミラーリング、ストライピングおよびパリティコード発生を含むさまざまな技術を利用して格納されたデータの完全性を高めることができる。
記憶容量および性能のレベルは絶えず高まることが要求され続けているため、このようなアレイ内の記憶装置の動作が管理される方法の改善が継続的に必要とされている。本発明の好ましい実施例は一般的にこれらおよびその他の改善に向けられる。
本発明の好ましい実施例は一般的に記憶アレイからのリードバック・データをキャッシングする方法および装置に関する。
好ましい実施例では、キャッシュメモリが記憶アレイから取得されたリードバックデータを格納する。キャッシュされたリードバックがホスト装置へ転送されると、キャッシュ・マネージャが動作してリードバック・データのキャッシュメモリ内への保持を強制すべきかどうか決定する。好ましくは、この決定は前記データに関連する時間パラメータおよび局所性パラメータに関連して行われる。
このようにして、リードバック・データは後でキャッシュヒットを満たすことを願って保持されるか、あるいは保持されずに後続キャッシュデータを調節する。好ましくは、キャッシュ・マネージャが時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較して、前記した両方の閾値が満たされればリードバック・データの前記保持を強制する。
リードバック・データは好ましくはRAIDストライプ等のデータ構造に関連付けられ、時間パラメータは好ましくは構造への最終アクセス以来の経過時間を示し、局所性パラメータは好ましくは構造へのアクセスを示す。
もう1つの好ましい実施例では、キャッシュ・マネージャが領域のアレイを形成し、各領域は記憶アレイの選択されたサブセットに対応する。リードバック・データの保持を強制する判断はその後、好ましくは、ホストからの後のリード要求がキャッシュメモリから満たされる割合に関連してなされる。
好ましくは、キャッシュ・マネージャは観察されたキャッシュ・ヒットレートに関連して少なくとも1つのパラメータを適応的に調節する。RAIDセット障害が検出されると、好ましくは、アレイの少なくとも1つの領域はRAIDセットに対する再構成境界に対応するように調節される。
下記の詳細な説明を読みかつ添付図を検討すれば、特許請求された本発明を特徴づけるこれらおよびさまざまな他の特徴および利点が明白となる。
図1はユーザデータを格納かつ取得するように構成された典型的な記憶装置100を示す。好ましくは、装置100はハードディスクドライブとして特徴づけられるが、所望により、他の装置構成も容易に利用することができる。
ベースデッキ102がトップカバー(図示せず)と嵌合して密閉筐体を形成する。スピンドルモータ104が筐体内に搭載されて、好ましくは、磁気記録ディスクとして特徴づけられる媒体106を制御可能に回転させる。
制御可能に移動可能なアクチュエータ108はボイスコイルモータ(VCM)112へ電流を印加することにより、媒体表面上に規定されたトラックに隣接するリード/ライト・トランスデューサ110のアレイを移動させる。フレックス回路アセンブリ114はアクチュエータ108および外部搭載印刷回路板(PCB)116上の装置制御エレクトロニクス間の電気通信パスを提供する。
図2はn個の記憶装置(SD)100を有利に内蔵して統合記憶アレイ122を形成する典型的なネットワークシステム120を一般的に示している。冗長コントローラ124,126が好ましくは記憶アレイ122およびサーバ128間でデータを転送するように動作する。サーバ128はローカルエリアネットワーク(LAN)、インターネット、等のファブリック130に接続されている。
遠隔ユーザは、それぞれ、パーソナルコンピュータ(PC)132,134,136を介してファブリック130にアクセスする。このようにして、選択されたユーザは記憶スペース122にアクセスして、所望により、データを書込みまたは検索することができる。
好ましくは、装置100およびコントローラ124,126はマルチデバイス・アレイ(MDA)138に内蔵される。好ましくは、MDA138は1つ以上の選択されたRAID(redundant array of independent discs)構成を使用して装置100に亘ってデータを格納する。図2には1つだけのMDAと3人の遠隔ユーザしか例示されていないが、これは単なる説明が目的であって制約的意味合いは無く、所望により、ネットワークシステム120は任意数およびタイプのMDA、サーバ、クライアントおよびホスト装置、ファブリック構成およびプロトコル、等を利用することができる。
図3は図2のネットワーク内で有用なアレイコントローラ構成140を示している。2つのインテリジェント記憶プロセッサ(ISP)142,144が中間バス146(「Eバス」と呼ばれる)により接続されている。好ましくは、各ISP142,144は共通コントローラボード上の個別の集積回路パッケージ内に配置される。好ましくは、各ISP142,144はファイバチャネル・サーバリンク148,150を介してアップストリーム・アプリケーション・サーバと通信し、かつファイバチャネル・記憶リンク152,154を介して記憶装置100と通信する。
ポリシープロセッサ156,158はコントローラ140に対するリアルタイム・オペレーティングシステム(RTOS)を実行し、PCIバス160,162を介して各ISP142,144と通信する。ポリシープロセッサ156,158は、さらに、カスタマイズされた論理を実行して定められた記憶アプリケーションに対してISP142,144と共に精巧な処理タスクを実施する。ISP142,144およびポリシープロセッサ156,158は動作中に必要とされるメモリモジュール164,166にアクセスする。
図4は図3の選択されたISPに対する好ましい構造を提供する。纏めて168に示すいくつかのファンクション・コントローラはホスト交換、直接メモリアクセス(DMA)、排他的or(XOR)、コマンドルーティング、メタデータ制御、およびディスク交換等のいくつかのコントローラ動作に対するファンクション・コントローラ・コア(FCC)として機能する。好ましくは、各FCCはメモリ交換その他のスケジューリングタスクを容易にする非常に柔軟な機能セットおよびインターフェイスを含んでいる。
一般的に170に示すいくつかのリストマネージャは、キャッシュテーブル管理、メタデータ保守、およびバッファ管理等のコントローラ動作中にさまざまなデータおよびメモリ管理タスクに使用される。好ましくは、リストマネージャ170はメモリ上の単純ではあるが明確に定義された動作を実施してFCC168により指令されるタスクを遂行する。好ましくは、各リストマネージャは、好ましくは、FCCによるメモリアクセスに対するメッセージプロセッサとして作動して、好ましくは、規定されたプロトコルに従って受信メッセージにより規定される操作を実行する。
リストマネージャ170は、それぞれ、交換メモリブロック172、キャッシュテーブル・ブロック174、バッファメモリ・ブロック176およびSRAM178を含むいくつかのメモリモジュールと通信しかつ制御する。ファンクション・コントローラ168およびリストマネージャ170は、それぞれ、クロスポイントスイッチ(CPS)モジュール180を介して通信する。このようにして、コントローラ168の選択されたファンクション・コアはCPS180を介した対応するリストマネージャ170への通信パスウェイを確立してステータスを通信し、メモリモジュールをアクセスし、あるいは所望のISP動作を呼び出すことができる。
同様に、選択されたリストマネージャ170はCPS180を介してファンクション・コントローラ168へ応答を通信し返すことができる。図示されてはいないが、好ましくは、図4の各エレメント間にその間のデータ転送を調整するために個別のデータバス接続を確立することができる。所望により、他の構成を容易に利用できることがお判りであろう。
PCIインターフェイス(I/F)モジュール182はポリシープロセッサ156およびISP142間でトランザクションを確立して指示する。E−BUSI/Fモジュール184はFCCおよび各ISP142,144のリストマネージャ間のE−BUS146を介した通信を容易にする。所望により、ポリシープロセッサ156,158はE−BUS146を介したシステムの他の部分との通信を開始し受信することもできる。
図3および4のコントローラ・アーキテクチュアはアレイに対するスケーラブルで、非常に機能的なデータ管理および制御を有利に提供する。好ましくは、ストライプ・バッファリスト(SBL)および他のメタデータ構造は記録媒体上のストライプ境界および記憶トランザクション中にディスクストライプに関連付けられるデータを専用に格納するキャッシュ内の基準データバッファに揃えられる。
処理効率をさらに高めるために、好ましくは、コントローラ・アーキテクチュアは新しいリードバック・データ・キャッシング方法論を利用する。一般的に、リードバック・データは記憶装置100からホスト装置への転送が未決であるキャッシュメモリへ取得する。後述するように、2Dダイナミック適応データキャッシング技術は、好ましくは、このような転送の後でこのようなリードバック・データをキャッシュメモリ内に保持すべきか、そうであれば、何に基づいてこのようなデータを後で新しいキャッシュされたリードバック・データと置換すべきかを決定するのに利用される。「2D」という用語は一般的には空間(局所性)および時間の要因の(少なくとも)2次元解析のことである。
図5に示すように、好ましくは、キャッシュされたデータはストライプ・データ記述子(SDD)192と呼ばれるデータ構造を使用してキャッシュ・マネージャ(CM)190によりノードベースで管理される。各SDDは関連するデータへの最近および現在のアクセスに関するデータを保持する。このようにして、各SDDは好ましくは対応するRAIDストライプ194(すなわち、特定のパリティセットに関連する選択された装置100上の全データ)等の、全体記憶アレイのサブセットとしてのデータ構造に対応し揃えられる。好ましくは、各SDD192はさらに特定のSBL196に従う。
CM190により管理される各キャッシュノードは、好ましくは、ある特定のSDDを参照し、論理ディスクの定められたセット(装置100のサブセット)に対するアクティブSDD構造は、好ましくは、標準フォワードおよびバックワード・リンクリストを使用して仮想ブロックアドレス(VBA)を介して昇ベキの順でリンクされる。好ましくは、論理ディスクは関連する論理ディスク記述子(LDD)を使用して管理される。
好ましくは、VBA値はしばしばRAIDアロケーション・グリッドシステム(RAID Allocation GridSystem(RAGS))と呼ばれるグリッドシステムを使用してRAIDデータ編成と揃えられる。一般的に、同じRAIDストリップ200に属するブロックの任意特定の集り(たとえば、特定のパリティセットに寄与する全データ)が特定のシート上の特定の信頼できる記憶ユニット(RSU)に割当てられる。
数枚のシートからなるブックが異なる装置100からのブロックの多数の隣接セットから構成される。実際のシートおよびVBAに基づいて、ブックは特定の装置または装置セットを示す(冗長度が利用される場合)ゾーンへ細分割される。
好ましくは、各SDD192はアクセス歴、最終オフセット、最終ブロック、タイムスタンプデータ(一日の時間、TOD)、および利用されるRAIDレベルを含むデータのさまざまなステータスを示す変数を含んでいる。後述するように、領域SDD、アクセスされた領域、および領域TODに関連する変数を含むSDD構造内でいくつかの領域変数も好ましくは利用される。
好ましくは、LDD198は領域サイズ、ヒット率、リード、TOD閾値、アクセス閾値、履歴方向(hysteretic direction)(閾値およびサイズ)、および領域履歴(region hysteretic)(閾値およびサイズ)を含む後述するように使用される変数を含んでいる。履歴値はヒット率レート、すなわち、さまざまなパラメータが調節される時の性能変化(良かれ悪しかれ)レートの進行を追跡する。
好ましくは、正規動作中にキャッシュ・マネージャ190は記憶アレイから、図5のブロック202で表される、キャッシュメモリへのデータの検索を指示するように動作する。データは通常ホスト装置(たとえば、図2のPC132,134,136)からのリード要求に応答して取得され、取得されるとデータは関連するFCCその他のプロセッサにより読み出してホストへ転送できるような時間までキャッシュメモリ202内に一時的に格納される。
この点において、好ましくは、CM190は転送されたデータをこのような転送後にキャッシュメモリ202内に保持すべきかどうかを決定する。当業者ならばお判りのように、ホスト装置によるデータに対する後のリード要求を満たすことを願ってキャッシュされたリードバック・データを保持するのが有利となることがあり、その場合記憶装置100によるデータリードバック操作を予定し実行する必要無しにキャッシュから直接データを転送することができる。
キャッシュメモリは一般的に制限されたリソースであるが、ホストにより再要求されそうもないリードバック・データ(再要求されたまたは実際的ではない)によりキャッシュメモリを満たすと、実質的に全ての新しい要求がディスク評価操作を必要とするため全体転送レート性能に有害な影響を及ぼすことがある。
好ましくは、システム要求条件に応じて、CM190は同時に作動していくつかの異なるレベルでリードバック・データを管理する。好ましくは、第1のレベルは定められたSDD192のアクセス変数(ここでは「局所性パラメータ」とも呼ばれる)を関連するLDD198のアクセス閾値(「局所性閾値」)と比較し、かつSDDのTOD変数(「時間パラメータ」)をLDDのTOD閾値(「時間閾値」)と比較することにより、そのSDD192に関連する記憶装置100から読み出されたばかりのブロックのキャッシングを強制することを伴う。
好ましくは、SDD192のアクセス変数はSDDに関連するデータへのアクセスが行われるレートの相対的測度を与える。たとえば、アクセス変数はSDDにより規定された記憶アレイ内のデータへアクセス(リードオンリー、またはリードおよびライト)するたびに更新される増分カウントとすることができる。このようにして、アクセス変数はこの局所性のデータ内の「ホスト関心(host interest)」の表示を与え、正規状況の元で、より高い既存数のアクセスにより近い将来より多くのアクセスが生じるより高い尤度が作り出されることがある。
TOD変数は一般的に最も最近のアクセス以来の経過時間の表示を与える。TOD変数を現在時間から減じることにより、SDDがどれだけ頻繁に(またはまれに)アクセスされているかの経時(aging)評価を行うことができる。LDD198のアクセスおよびTOD閾値は任意適切な各値に設定される。
このシナリオの元で、アクセス閾値とTOD閾値の両方が満たされれば、CM190はリードバック・データをキャッシュ内に保持する(たとえば、強制キャッシング)と決定する、すなわち、SDD192により表されるアクセス数がLDD198のアクセス閾値を満たすかあるいはそれを超え、かつSDD192に関連する最終アクセス以来の時間がLDD198のTOD閾値以下である場合に好ましくは強制キャッシングが行われる。
好ましくは、TOD変数はフリーランニング・カウンタ204からの1/100秒(10ミリ秒,ms)等の適切な分解に維持される。精度を保証するために、好ましくは、時間計算はカウンタ204のロールオーバを考慮しなければならない。好ましい実施例では、カウンタの全回路等の全時間(たとえば、10分程度)にわたってアクセスされていないキャッシュされたリードバック・データは自動的にキャッシュから出される。
好ましくは、キャッシュからデータを除去することは関連するメモリセルの割当解除を伴い、このようなセルは新たにキャッシュされたデータにより即座にオーバライトされ、キャッシュからの除去されたデータの実際の転送を必ずしも伴わないことがある。
前記した動作の他に、アクセス数が第2のより高い閾値よりも上で最終アクセス以来の時間が比較的小さい範囲内であれば、CM190により付加閾値を設定することができる。それによりバースト・アクティビティ(非常に小さい時間フレーム内の非常に局所化された繰返しリード)を有利に検出することができる。
関連する実施例では、CM190は適応的に作動して進行中の演算負荷(operational loading)と一致するようにパラメータを連続的に調節する。たとえば、一実施例では、前記閾値は初期値に設定され、閾値がどれだけうまく既存の要求条件を満たすかを調べるために、定められた期間にわたってキャッシュヒット数(キャッシュから満たされているリード要求)が累積される。次に、キャッシュ・ヒットレートを高めるために閾値の一方または両方を調節することができる。
あるいは、前記した領域変数に基づいて適応調節を行うことができる。図6に一般的に示すように、記憶アレイ内の領域208のアレイ206を任意に定義することができる。好ましくは、各領域208は2の累乗のサイズであり、たとえば、その領域に関連する全データを管理するのに使用される領域208内の最初のSDDを有する多数のSDD192に対応することができる。このようにして、隣接SDDにわたるトレンドを検出して効率的に管理することができる。この管理技術は全体記憶アレイ(またはその連続部)、あるいは図6の「X」マーク領域208で示すその選定部分に適用することができる。
好ましくは、この実施例においてCM190はサイズおよび閾値変数を含むLDD変数を履歴変数およびヒット率の変化に基づいて適応的に調節する。このプロセスはベースライン数のリードが検出される時に実行することができる。SDD内のアクセスおよびTOD変数をLDD閾値と単に比較するのではなく、この代替実施例は領域SDD(最初のSDD)内の領域変数を使用しかつ維持し、これらの値を強制キャッシングに利用する。
LDDパラメータはいくつかの方法で適応的に調節することができる。好ましい方法では、ヒット率は履歴値の対応するカウントを有する最適値を有する。好ましくは、カウント値はリードの総数がある閾値を超える定められた期間に対して最適(「最善」)ヒット率が達成されている回数を示す。最適リードヒットレベルよりも低いレベルを経験している時は、CM190は好ましくは閾値を特定の方向に1つずつ調節し、性能が悪化したら方向を反転する。好ましくは、方向変化数が増加すると変化間の増加する期間数が作られる。
最適値が追跡され新しい最適設定が発見されると好ましくはカウント値がリセットされる。領域208のサイズ変更には一般的に全体SDDリストを無視して領域SDD(最初のSDD)変数を調節する必要があることに注目願いたい。
もう1つの実施例では、さまざまな前記したキャッシング方法は、さらに、システムにより経験される障害状態を考慮するように構成される。たとえば、冗長度およびパリティが発生されるRAIDコンテキストでは、RAIDセットが低減され(装置100の損失等による)データが再構成されそうな場合には、リードバック・データのキャッシング・レベルを増すことが一般的に有利である。このような場合、領域サイズは好ましくは再構成境界と揃えられるように調節される。
好ましくは、再構成境界はより大きいRAIDストライプの個別のRAIDストライプに対応するように設定される。いくつかの要因により、「消失」ストライプ(たとえば、装置障害イベントにより再構成する必要のある1つ又は複数のストライプ)に対するコラムオフセットは変動することがある。それにもかかわらず、残りのRAIDストライプデータから消失データを再構成するのに必要な処理があるため、消失ストライプからの再構成データは異なる処理を行うのが一般的に望ましい。
アレイは定められたデータセットが再構成されているか(あるいは、これから再構成する必要があるか)を調べるための効率的な方法を提供する。データが再構成されていなければ、消失データに対してより低い閾値を利用することができる。このようにして、好ましくは、キャッシュ・マネージャ190は最初に定められたRAIDストリップが再構成されない領域内にあるかどうか調べ、次に、特定のSDDが消失データに対応するかどうかを調べる。そうであれば、好ましくはデータを保持するための遥かに低い閾値が利用される。
図7は、好ましくは前記した検討に従って実施されるステップを一般的に表す、リードバック・データ・キャッシング・ルーチン300に対するフロー図を説明するものである。ステップ302において、図2のネットワーク120のようなシステムが初期化され、データ転送動作を実施するための準備完了状態とされる。
ステップ304において、さまざまなホスト装置(132,134,136等)によりリードデータ要求が出され、データが記憶アレイ(装置100等)から取得され、キャッシュメモリ(202等)へ一時的に移され、要求するホストへ転送される。
次に、好ましくは、ステップ306において190等のキャッシュ・マネージャによりキャッシュ保持判断がなされ、将来ホスト要求を満たすことを願って取得されたリードバック・データがキャッシュメモリ内に保持されるかどうか決定される。判断は一般的に時間および局所性要因に依存し、演算負荷その他のシステムパラメータに応じていくつかの代替方法をとることができる。
ステップ308において、定められたデータ構造に関連するリードバック・データは最近アクセス数および経過時間値の比較に関連して強制キャッシュされる。好ましくは、SDDのアクセス変数がLDDのアクセス閾値と比較され、SDDに対する最も最近のアクセス以来の時間に関連する経時値(aging value)がLDDのTOD閾値と比較される。両方の基準が満たされると、データはキャッシュメモリ202内に保持される。必要ではないが、ステップ308の操作は比較的低い局所化されたリードレートが経験される時に生じることが考えられる。
ステップ310において代替適応的方法が実施され、連続的データ構造に揃えられた領域208のアレイ206が発生され領域毎ベースでデータアクセスが追跡される。好ましくは、これは比較的高い局所化リードレートが経験される時にトリガされる。
ステップ312において、初期閾値が確立されキャッシュヒットのカウントが追跡される。前と同様に、時間および局所性パラメータがキャッシング判断において利用される。しかしながら、各時間およびアクセス閾値数だけでなく領域サイズおよびグルーピングを含むさまざまなパラメータが個別に調節されて最適設定を見つけ、性能利得を追跡するように履歴値が維持される。
好ましくは、ステップ314に示すように、障害装置100等によりRAID再構成操作が検出されると、ステップ310の領域境界は関連するRAIDセットに対する再構成境界に対応するようにさらに調節される。
前記した操作は逐次またはタンデムに実施することができ、たとえば、記憶装置100のある場所(たとえば、ある本等の)は比較的低いアクセス・アクティビティ・レベルとすることができ、その場合これらの場所専用のキャッシュ・リソースはステップ308を使用して処理することができ、他のよりアクティビティの高い場所(たとえば、ホットブック)についてはステップ310−314のフローを同時に行うことができる。
前記した実施例は従来技術に優るいくつかの利点を提供する。強制キャッシュ判断を行うのに時間と局所性の両方の要因を使用することにより、一般的に性能負荷(performance loading)の全体トレンドのより良い評価が提供され、キャッシュ・リソースがより効率的にデータの保持に割当てられる。前記した適応的技術は、さらに、さまざまなキャッシング・パラメータを、特に高アクティビティ領域内で、システムの変化するニーズを満たすように連続的に微調整する機構を提供する。さらに、図6に示すような領域キャッシング管理は、前記したブック構造等の、クロス・ストライプレベルでリードバック・トレンドの手早い検出を考慮している。
キャッシュメモリ内にデータを保持する操作は新しい着信データにより即座にオーバライトされてしまうため、「強制」キャッシング等の用語は前記検討と矛盾しないと解釈される。キャッシュメモリはシングルデバイスとしたり多数のデバイスに跨るメモリスペースとして内蔵することができる。
必ずしも必要ではないが、好ましくは、強制操作は現在リードバック・データを格納しているキャッシュメモリ内のメモリセルを、それが他のデータによりオーバライトされるのを防止するように、割り当てる判断を行う。好ましくは、このような保持されたデータを後でキャッシュから解放することは、前記セルの割当てを解除し新たに導入されたキャッシュされたデータにより後でそれをオーバライトできるようにすることを含んでいる。
添付された特許請求の範囲の目的に対して、引用した「最初の手段」は図7に従ってリードバック・データ・キャッシング操作を実施するキャッシュ・マネージャ190に少なくとも対応することが理解される。
本発明のさまざまな実施例の非常に多くの特徴および利点を、本発明のさまざまな実施例の構造および機能の詳細と共に、前記した明細書に記載してきたが、この詳細な説明は説明用にすぎず詳細、特に、部品の構造および配置に関して本発明の原理内で添付特許請求の範囲が表現される用語の広範な一般的意味により示される限界まで変更を行うことができる。たとえば、特定のエレメントは特定の応用に応じて本発明の精神および範囲を逸脱することなく変動することができる。
本発明の好ましい実施例に従って構成かつ作動される記憶装置を一般的に示す図である。 図1に示すようないくつかの記憶装置を利用するネットワークシステムの機能的ブロック図である。 図2のコントローラの好ましいアーキテクチュアの一般的表現を示す図である。 図3の選択されたインテリジェント記憶プロセッサの機能的ブロック図である。 好ましい実施例に従って記憶アレイから取得されたリードバック・データを管理するように動作するキャッシュ・マネージャを一般的に示す図である。 好ましい実施例に従ってキャッシュ・マネージャにより利用されるキャッシュメモリ・テーブルを示す図である。 本発明の好ましい実施例に従って実施されるステップを一般的に示す、リードバック・データ・キャッシング・ルーチンに対するフロー図である。
符号の説明
100 記憶装置
102 ベースデッキ
104 スピンドルモータ
106 回転媒体
108 アクチュエータ
110 リード/ライト・トランスデューサ
112 ボイスコイルモータ
114 フレックス回路アセンブリ
116 印刷回路板
120 ネットワーク・システム
122 記録アレイ
124,126 冗長コントローラ
128 サーバ
130 ファブリック
132,134,136 パーソナルコンピュータ
138 マルチデバイス・アレイ
140 アレイコントローラ構成
142,144 インテリジェント・プロセッサ
146 中間バス
148,150 ファイバチャネル・サーバリンク
152,154 ファイバチャネル記憶リンク
156,158 ポリシー・プロセッサ
160,162 PCIバス
164,166 アクセスメモリ・モジュール
168 ファンクション・コントローラ・コア
170 リストマネージャ
172 交換メモリブロック
174 キャッシュテーブル・ブロック
176 バッファメモリ・ブロック
178 SRAM
180 クロスポイントスイッチ・モジュール
182 PCIインターフェイス・モジュール
184 E−BUS IFモジュール
190 キャッシュ・マネージャ
192 ストライプ・データ記述子
194,200 RAIDストライプ
196 SBL
198 LDD
202 キャッシュメモリ
204 フリーランニング・カウンタ
206 アレイ
208 領域

Claims (20)

  1. 記憶アレイからリードバック・データを受信するキャッシュメモリ、および前記データに関連する時間パラメータおよび局所性パラメータに関連して前記データをホスト装置へ転送した後でリードバック・データのキャッシュメモリ内への保持を強制するように構成されたキャッシュ・マネージャを含む装置。
  2. 請求項1に記載の装置であって、キャッシュ・マネージャは時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較し、前記両方の閾値が満たされれば前記転送時にリードバック・データのキャッシュメモリ内への前記保持を強制する装置。
  3. 請求項1に記載の装置であって、キャッシュメモリはホストへの転送が未決のリードバック・データの初期格納を行うように構成されたメモリセルのアレイを含み、キャッシュ・マネージャによる前記強制保持はリードバック・データの格納を継続して前記セルが他のデータによりオーバライトされるのを防止するようにキャッシュメモリ内の前記メモリセルを割り当て、そうでなければ前記メモリセルは後で導入されるキャッシュされたデータによりオーバライトするために割当て解除されることを含む装置。
  4. 請求項1に記載の装置であって、時間パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造への最終アクセス以来の経過時間として特徴づけられる装置。
  5. 請求項4に記載の装置であって、データ構造は記憶アレイの選択されたデータ記憶装置上のRAIDストライプに対応する装置。
  6. 請求項1に記載の装置であって、局所性パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造へ行われたいくつかのアクセスとして特徴づけられる装置。
  7. 請求項1に記載の装置であって、さらに、キャッシュ・マネージャにより強制的に保持されてからのリードバック・データの経過期間を測定するタイミングカウントを与えるタイマを含む装置。
  8. 請求項1に記載の装置であって、キャッシュ・マネージャは各々が記憶アレイの選択されたサブセットに対応する領域のアレイを形成し、ホストからの後続リード要求がキャッシュメモリから満たされるレートに関連して前記リードバック・データの保持を強制する装置。
  9. 請求項8に記載の装置であって、キャッシュ・マネージャは前記レートに関連して少なくとも1つのパラメータを適応的に調節する装置。
  10. 請求項8に記載の装置であって、前記アレイの少なくとも1つの領域はRAIDセットに対する再構成境界に対応する装置。
  11. 記憶アレイからリードバック・データを受信するように構成されたキャッシュメモリ、および時間パラメータおよび局所性パラメータに関連して前記データをホスト装置へ転送した後でリードバック・データのキャッシュメモリ内への保持を強制する第1の手段を含む装置。
  12. 請求項11に記載の装置であって、第1の手段は時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較し、前記両方の閾値が満たされれば前記転送時にリードバック・データのキャッシュメモリ内への前記保持を強制するキャッシュ・マネージャを含む装置。
  13. 記憶アレイからのリードバック・データをキャッシュメモリ内に一時的に格納し、前記リードバック・データに関連する時間パラメータおよび局所性パラメータに関連して前記データをホスト装置へ転送した後でリードバック・データのキャッシュメモリ内への保持を強制するステップを含む方法。
  14. 請求項13に記載の方法であって、強制保持ステップは時間パラメータを時間閾値と比較しかつ局所性パラメータを局所性閾値と比較し、前記両方の閾値が満たされれば前記転送時にリードバック・データのキャッシュメモリ内への前記保持を強制する方法。
  15. 請求項13に記載の方法であって、一時的格納ステップのキャッシュメモリはホストへの転送が未決のリードバック・データの初期格納を行うように構成されたメモリセルのアレイを含み、強制保持ステップはリードバック・データの格納を継続して前記セルが他のデータによりオーバライトされるのを防止するようにキャッシュメモリ内の前記メモリセルを割り当て、そうでなければ前記セルは後で導入されるキャッシュされたデータによりオーバライトするために割当て解除されるステップを含む方法。
  16. 請求項13に記載の方法であって、時間パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造への最終アクセス以来の経過時間として特徴づけられる方法。
  17. 請求項13に記載の方法であって、局所性パラメータはリードバック・データが対応する記憶アレイのサブセットを含むデータ構造へ行われたいくつかのアクセスとして特徴づけられる方法。
  18. 請求項13に記載の方法であって、さらに、各々が記憶アレイの選択されたサブセットに対応する領域のアレイを発生する前ステップを含み、ホストからの後のリード要求がキャッシュメモリから満たされるレートに関連して前記リードバック・データの強制保持が実施される方法。
  19. 請求項18に記載の方法であって、キャッシュ・メモリは前記レートに関連して少なくとも1つのパラメータを適応的に調節する方法。
  20. 請求項18に記載の方法であって、前記アレイの少なくとも1つの領域はRAIDセットに対する再構成境界に対応する方法。
JP2007172840A 2006-06-30 2007-06-29 2dダイナミック適応データキャッシング Pending JP2008016026A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/480,088 US7590800B2 (en) 2006-06-30 2006-06-30 2D dynamic adaptive data caching

Publications (1)

Publication Number Publication Date
JP2008016026A true JP2008016026A (ja) 2008-01-24

Family

ID=38878217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007172840A Pending JP2008016026A (ja) 2006-06-30 2007-06-29 2dダイナミック適応データキャッシング

Country Status (2)

Country Link
US (1) US7590800B2 (ja)
JP (1) JP2008016026A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160197A (ja) * 2018-03-16 2019-09-19 富士通株式会社 ストレージ装置,制御プログラムおよび制御方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886386B2 (en) 2013-07-18 2018-02-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Self-adjusting caching system
US10146616B1 (en) * 2015-03-31 2018-12-04 EMC IP Holding Company LLC Cache based recovery of corrupted or missing data
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11409657B2 (en) * 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11422934B2 (en) * 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11507516B2 (en) 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning
CN112363677B (zh) * 2020-12-01 2023-03-31 浙江华忆芯科技有限公司 读请求的处理方法、装置和存储介质及电子装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812996A (en) 1994-07-12 1998-09-22 Sybase, Inc. Database system with methods for optimizing query performance with a buffer manager
US5623608A (en) 1994-11-14 1997-04-22 International Business Machines Corporation Method and apparatus for adaptive circular predictive buffer management
US5761718A (en) 1996-08-30 1998-06-02 Silicon Integrated Systems Corp. Conditional data pre-fetching in a device controller
JP3599554B2 (ja) 1998-01-30 2004-12-08 株式会社日立製作所 内燃機関の気筒判定装置
US6633891B1 (en) 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
US6671766B1 (en) 2000-01-07 2003-12-30 Storage Technology Corporation Method and system for implementing memory efficient track aging
GB2358762B (en) 2000-01-25 2003-09-03 Mitel Corp Caching mechanism to optimize a bidding process used to select resources and services
US6738865B1 (en) 2000-06-09 2004-05-18 International Business Machines Corporation Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
US6658533B1 (en) 2000-09-21 2003-12-02 Intel Corporation Method and apparatus for write cache flush and fill mechanisms
US6813693B2 (en) 2000-12-11 2004-11-02 Microsoft Corporation System and method for the discovery and use of repetitively accessed data
US6618793B2 (en) 2000-12-18 2003-09-09 Redback Networks, Inc. Free memory manager scheme and cache
US6868439B2 (en) 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US6934802B2 (en) 2002-04-19 2005-08-23 Seagate Technology Llc Band detection and performance optimization for a data storage device
US6978325B2 (en) 2002-08-29 2005-12-20 International Business Machines Corporation Transferring data in virtual tape server, involves determining availability of small chain of data, if large chain is not available while transferring data to physical volumes in peak mode
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US7058936B2 (en) 2002-11-25 2006-06-06 Microsoft Corporation Dynamic prefetching of hot data streams
US20040205297A1 (en) 2003-04-14 2004-10-14 Bearden Brian S. Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US7231496B2 (en) 2003-09-15 2007-06-12 International Business Machines Corporation Method, system and program product for caching data objects

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160197A (ja) * 2018-03-16 2019-09-19 富士通株式会社 ストレージ装置,制御プログラムおよび制御方法

Also Published As

Publication number Publication date
US7590800B2 (en) 2009-09-15
US20080005466A1 (en) 2008-01-03

Similar Documents

Publication Publication Date Title
US7743216B2 (en) Predicting accesses to non-requested data
US7996623B2 (en) Read ahead storage control
JP2008016026A (ja) 2dダイナミック適応データキャッシング
US8363519B2 (en) Hot data zones
AU2016362917B2 (en) Writing data in a storage system that includes a first type of storage device and a second type of storage device
JP4986045B2 (ja) 二重アクティブ・コントローラ内のライト・キャッシュ・データのフェイルオーバーおよびフェイルバック
US8145932B2 (en) Systems, methods and media for reducing power consumption in multiple controller information handling systems
JP5955877B2 (ja) システム、記憶デバイスおよび記憶空間割当方法
US9747034B2 (en) Orchestrating management operations among a plurality of intelligent storage elements
US7797487B2 (en) Command queue loading
US20090006877A1 (en) Power management in a storage array
EP3452892A1 (en) Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
JP5882557B2 (ja) 要求優先順位シーク・マネージャ
WO2017039797A1 (en) Systems and methods for data organization in storage systems using large erasure codes
US7761659B2 (en) Wave flushing of cached writeback data to a storage array
US9747040B1 (en) Method and system for machine learning for write command selection based on technology feedback
CN107422989B (zh) 一种Server SAN系统多副本读取方法及存储系统
US8234457B2 (en) Dynamic adaptive flushing of cached data
EP3951582B1 (en) Offloading device management responsibilities from a storage device in an array of storage devices
US7707362B2 (en) Context-free data transactions between dual operating systems embedded within a data storage subsystem
US7725654B2 (en) Affecting a caching algorithm used by a cache of storage system
JP5376624B2 (ja) ホスト適応シーク技術環境
US20180341554A1 (en) Methods for handling storage element failures to reduce storage device failure rates and devices thereof
US10860334B2 (en) System and method for centralized boot storage in an access switch shared by multiple servers
JP2009054050A (ja) Raid装置、raid装置の制御部およびraid装置のライトバック制御方法