JP2008016024A - キャッシュされたデータのダイナミック適応フラッシング - Google Patents

キャッシュされたデータのダイナミック適応フラッシング Download PDF

Info

Publication number
JP2008016024A
JP2008016024A JP2007172478A JP2007172478A JP2008016024A JP 2008016024 A JP2008016024 A JP 2008016024A JP 2007172478 A JP2007172478 A JP 2007172478A JP 2007172478 A JP2007172478 A JP 2007172478A JP 2008016024 A JP2008016024 A JP 2008016024A
Authority
JP
Japan
Prior art keywords
write
data
back data
cache memory
storage array
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
JP2007172478A
Other languages
English (en)
Other versions
JP2008016024A5 (ja
Inventor
Clark E Lubbers
イー.レッベルス クラーク
Michael D Walker
ディー.ウォーカー マイケル
David P Decenzo
ピー.デセンゾ デーヴィッド
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 JP2008016024A publication Critical patent/JP2008016024A/ja
Publication of JP2008016024A5 publication Critical patent/JP2008016024A5/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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

Abstract

【課題】キャッシュされたライトバックデータを記憶アレイにフラッシングする方法および装置を得る。
【解決手段】ライトバックデータのセットが記憶アレイの異なる場所にわたってデータの実質的に均一な分布を維持する目的でキャッシュメモリ内に整列して蓄積される。その後、データの整列されたセットは実質的にライトバックデータの付加セットがホストによりキャッシュメモリへ提供されるレートでキャッシュメモリから記憶アレイへ転送される。好ましくは、各ライトバックデータは複数の隣接データブロックを含み、好ましくは記憶アレイに関してデータの選択された近接範囲内の別個のアクセスコマンドの操作と共に記憶装置に書き込まれる(フラッシュされる)。好ましくは、アレイ内のライトバックデータの各セットに対してストライプデータ記述子(SDD)が維持される。
【選択図】図8

Description

本発明は一般的にデータ記憶システムの分野に関し、制約はしないが、特に、記憶アレイへのキャッシュされたデータのダイナミック適応フラッシング方法および装置に向けられている。
高速かつ効率的方法でデータにアクセスするために記憶装置が使用される。ある種の記憶装置は、媒体表面上に規定されたトラックにデータを書込みその後データを読み出す1つ以上のデータトランスデューサと共に、回転可能な記録媒体を使用する。
マルチデバイス・アレイ(MDA)は多数の記録装置を利用して統合されたメモリスペースを形成する。MDAに対する1つの広く利用されるフォーマットはRAID(redundant array of independent discs)構成を利用し、入力データはアレイ内の多数の記憶装置にわたって格納される。RAIDレベルに応じて、ミラーリング、ストライピングおよびパリティコード発生を含むさまざまな技術を利用して格納されたデータの完全性を高めることができる。
記憶容量および性能のレベルは絶えず高まることが要求され続けているため、このようなアレイ内の記憶装置の動作が管理される方法の改善が継続的に必要とされている。本発明の好ましい実施例は一般的にこれらおよびその他の改善に向けられる。
本発明の好ましい実施例は一般的に記憶アレイへキャッシュされたライトバックデータをフラッシングする装置および方法に向けられている。
好ましい実施例では、記憶アレイの異なる場所にわたってデータの実質的に均一な分布を維持する目的で、ライトバックデータのセットがキャッシュメモリ内に整列して蓄積される。その後、データの整列されたセットは実質的にライトバックデータの付加セットがホストによりキャッシュメモリへ提供されるレートでキャッシュメモリから記憶アレイへ転送される。
ライトバックデータの各セットは好ましくは複数の隣接データブロックを含み、好ましくは記憶アレイに関してデータの選択された近接範囲内の別個のアクセスコマンドの操作と共に記憶装置に書き込まれる(フラッシュされる)。好ましくは、アレイ内のライトバックデータの各セットに対してストライプデータ記述子(SDD)が維持される。
このようにして、キャッシュされたライトバックデータのフラッシングは全体ホストI/Oアクセスレートに著しい変動を生じることはない。
下記の詳細な説明を読みかつ添付図を検討すれば、特許請求された本発明を特徴づけるこれらおよびさまざまな他の特徴および利点が明白となる。
図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に内蔵される。好ましくは、MDAは1つ以上の選択されたRAID(redundant array of independent discs)構成を使用して装置100に亘ってデータを格納する。図2には1つだけのMDAと3人の遠隔ユーザしか例示されていないが、これは単なる説明が目的であって制約的意味合いは無く、所望により、ネットワークシステム120は任意数およびタイプのMDA、サーバ、クライアントおよびホスト装置、ファブリック構成およびプロトコル、等を利用することができる。図3は図2のネットワーク内で有用なアレイコントローラ構成140を示している。
図3は中間バス146(「Eバス」と呼ばれる)により接続された2つのインテリジェント記憶プロセッサ(ISP)142,144を説明する。好ましくは、各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に書き込まれるデータのキャッシング、および後でこのようなライトバックデータの記憶装置100への転送をスケジューリングする(フラッシング)ことを含んでいる。
一般的に、データの時間および局所性の両方を考慮する2次元方法を使用してライトバックデータの隣接ブロックのセットがキャッシュメモリ内に配列される。キャッシュされたライトバックデータの実質的に均一な分布が維持されて、他のアクセス操作と共にデータを書き込むための最適機会を提供する。
好ましくは、データの隣接ブロックのセットは付加ライトバックデータセットがホストによりキャッシュメモリへ提供されるレートと実質的に一致するレートでキャッシュメモリから記憶アレイへ書き込まれる。このようにして、観察されたホストI/O転送レートの大きな変動は実質的に解消される。
図5に示すように、好ましくは、キャッシュされたデータはストライプ・データ記述子(SDD)192と呼ばれるデータ構造を使用してキャッシュ・マネージャ(CM)190によりノードベースで管理される。各SDDは関連するデータへの最近および現在のアクセスに関するデータを保持する。各SDDは好ましくは対応するRAIDストライプ194(すなわち、特定のパリティセットに関連する選択された装置100上の全データ)に揃えられ、特定のSBL196に従う。
CM190により管理される各キャッシュノードは、好ましくは、ある特定のSDDを参照し、論理ディスクの定められたセット(装置100のサブセット)に対するアクティブSDDは、好ましくは、標準フォワードおよびバックワード・リンクリストを使用して仮想ブロックアドレス(VBA)を介して昇ベキの順でリンクされる。
好ましくは、VBA値はしばしばRAID Allocation GridSystem(RAGS)と呼ばれるグリッドシステムを使用してRAIDデータ編成と揃えられる。一般的に、同じRAIDストリップ198に属するブロックの任意特定の集り(たとえば、特定のパリティセットに寄与する全データ)が特定のシート上の特定の信頼できる記憶ユニット(RSU)に割当てられる。
数枚のシートからなるブックが異なる装置100からのブロックの多数の隣接セットから構成される。実際のシートおよびVBAに基づいて、ブックは特定の装置または装置セットを示す(冗長度が利用される場合)ゾーンへ細分割される。
好ましくは、各SDDはアクセス歴、ロック状態、最終オフセット、最終ブロック、タイムスタンプデータ(一日の時間、TOD)、データがどのゾーン(ブック)に属するかの識別子、および利用されるRAIDレベルを含むデータのさまざまな状態を示す変数を含んでいる。好ましくは、SDDに関連するデータのライトバック(「ダーティ」データ)状態がダーティデータ、ダーティバッファ、ダーティLRUおよびフラッシングLRU値に関して管理される。
好ましくは、CM190は同時に作動していくつかの異なるレベルのライトバックデータ・プロセスをシステム要求条件に応じて管理する。第1のレベルは一般的にフルRAIDストリップ198が検出される時のフルSDD構造の周期的フラッシングを含んでいる。これはSDDが関連するデータをダーティとして識別する時にRAIDレベル変数に基づいて定められたSDD192に対して容易に実施することができる。好ましくは、これは十分連続的な隣接SDD構造がダーティデータで十分満たされているかを決定するバックワード検査を含んでいる。そうであれば、SDD構造はフラッシングリスト(199に示す)上に置かれ、データのフラッシングを開始する要求がなされる。フラッシングリスト状態はSDD192のフラッシングLRU値を使用して設定することができる。
データの小さなセットのフラッシングは好ましくはSDDベースで処理される。ダーティブロックを有しロックブロックの無い任意のSDDは好ましくはダーティLRUとして設定され経過期間(age)(たとえば、データがキャッシュ待機フラッシングにおいて過ごした時間)によりソートされる。特定の経過期間に達すると、好ましくはフラッシングLRU変数が設定されフラッシングリスト199が更新される。
好ましくは、フラッシングリストからのデータのフラッシングの攻撃性は実質的に付加ダーティデータがキャッシュ内に入るレートでダーティデータを押出すように適応的に調節される。特定範囲の連続的ダーティブロックをフラッシングする予定の時は、CM190は好ましくは近似局所性を有するRAIDレベルに基づいて他の範囲のダーティブロック、すなわち、シーク時間に関して「すぐ近い」または同じRAIDパリティストリップ199へのアクセスを伴うブロックを捜し出す。
コントローラアーキテクチュアがこれを実施する好ましい方法を図6について見ることができ、それはキャッシュされたライトバックデータのアレイ200を表している。アレイ200はCM190またはコントローラの他の処理ブロックにより維持される。
アレイ200内の各セル202は一般的に記憶装置100内の選択された局所性に対応し、ブック、シートおよび/またはアレイ内のゾーンとして編成することができる。装置内の境界は、たとえば、各コラムが異なる記憶装置100を表しコラム内の各セルはその装置を横切る異なる半径方向バンドを表すように選択することができる。
セルはフラッシングリスト199にフラグを付されている隣接ライトバックデータのセットで「占用されている(populated)」。特に、各占用ブロック204(図6に「X」で示す)は記憶装置100内の異なる論理的または物理的場所に対応する変動するサイズのデータブロックの1つの(またはいくつかの)グループを表す。このようにして、キャッシュ内のライトバックデータのセットは記憶アレイ122へ転送されることを予測してプールすることができる。
アレイ200はさまざまなデータ装置100にわたってデータのライトバックをスケジューリングする有用なフォーマットを提供する。好ましい実施例では、記憶装置100内の選択された場所にわたってアクセスする(たとえば、リードコマンドを実施する)ように特定のアクセスコマンドがスケジュールされると、アレイ200はアクセスコマンドと共に効率的にサービスされるライトバックデータの利用可能なブロックを識別するように参照される。
アレイ200を横切って占用セル204の実質的に均一な分布を維持し、着信ダーティデータのレートをキャッシュと整合させるためにダーティセットが選択的にアレイ200に加えられる。あるシステム負荷の元で、CM190は比較的多数のフラッシング操作をロードアップして、論理的セットまたは物理的媒体を横切ってIDからODへ進行するライト等の、ショートシークのクラスタを生成するように構成することができる。
関連する実施例では、図6のアレイ200は個別のRAIDストライプ(対応するSDD192を有する図5の194等)を表すようにセル202を配置するように構成することができ、アレイ200のコラムは前記したRAGSグリッドのコラムに対応することができる。このような場合、定められたロー内の特定の占用セル204のフラッシングを使用して同じロー内の他の占用セルにより使用されるパリティ(グリッド内には示されていない)への参照を示すことができる。
このようなフラッシング操作の同時スケジューリングにより、特に、RAID−5およびRAID−6環境において性能改善を導くことができ、それはそのロー内の全占用セルに対する4つの(RAID−6の場合は6つの)I/Oアクセスの内の2つが同じパリティRAIDストライプ194にアクセスするためである。
もう1つの好ましい実施例では、アレイ200は各コラム(またはロー)が別個の記憶装置100を表し、各セル202は一般的に装置の媒体106の半径方向幅にわたって異なる隣接ゾーン、すなわち領域、に対応するように配置される。
図7の「W」表記は一般的にこれらのさまざまな場所内のデータの未決ライトバックセットに対応し、したがって各セル202内の装置にわたって分布されるライト機会を表す。各セル202内のW表記の空間的場所は一般的に関連する領域内のそのデータの論理的または物理的場所を表す。W表記は媒体106へ書き込むためにフラッシングリスト199から利用可能な全ライトバックデータセットを必ずしも表すものではない。
リード優先環境では、リードコマンドが優先権を有し、したがって一般的にライトコマンドのサービスよりも優先的にサービスされる。しかしながら、ライト優勢環境では、一般的にリードに較べて比較的多数のライトコマンドがある。1つのこのようなリードコマンドは図7において「R」表記で識別され、一般的に関連するデータが検索される媒体106の領域に対応する。
この実施例では、キャッシュ・マネージャ190は好ましくは関連するリードコマンドを実施してR表記のデータを検索するよう装置100に指令する。このリード操作の終りに、キャッシュ・マネージャ190は、さらに、好ましくは一般的にリードコマンドの近くの(たとえば、同じセル202内の)1つ以上ライトバック操作を装置100に実施させるように進行する。
図7は「丸W」表記を使用してこのようにサービスされる2つのこのようなライトバックデータセットを識別する、すなわち、2つの丸W表記ライトバックフラッシュが関連するリードコマンドの終りに生じる(R表記)。リードコマンド近くの(たとえば、セル202内の)全ライトバックデータがフラッシュされる必要はなく、望ましくないことさえあることに注目願いたい。しかしながら、近くのデータの少なくともいくつかはフラッシュされ、装置100のトランスデューサ110は一般的にこの近くにあるため、これらのライトバックデータ・フラッシュ操作は低減されたシークレーテンシ(seek latencies)で実施することができる。
選択されたライトバックデータがフラッシュされると、キャッシュ・マネージャ190は、フラッシュリストから得られる、この同じ領域への付加ライトバックデータ・セットでアレイ200を「埋め戻す」ように進行する。このようにして、新しいライトコマンドは媒体106のさまざまな半径方向幅にわたってライトバックデータ機会の均一な分布を実質的に維持するようにアレイ200に対して計られる(metered)。
ディスクアクセスを要する未決リードコマンドが無い限り、キャッシュ・マネージャ190は一般的に前と同様にライトバックデータをフラッシュするように動作する。しかしながら、各新しいリードコマンドが発せられると、リードコマンドに優先権が与えられ1つ以上の付加ライトバックセットがリードコマンドの一般的に近くからフラッシュされる。
好ましくは、これは次のリードコマンドがどこへ向けられても効率的方法でフラッシュすることができる1つ以上のライトバックデータセットがその近くにある環境を提供する。好ましい実施例では、キャッシュ・マネージャ190は、任意の定められた時間に未決の30を超えるWおよび2を超えるRが無いように(待ち行列コマンドに対する合計32の「スロット」に対して)、各装置100に対するアレイ200内の「R」に対する「W」の選択された比率を維持するように動作する。しかしながら、他の比率も容易に使用することができる。比率はキャッシュ・マネージャ190により経験されるリード/ライト・コマンドミックス内のバースト変化に関して時間と共に調節することもできる。
図8はライトバックデータ・フラッシング・ルーチン300を説明し、一般的に本発明の好ましい実施例に従って実施されるステップを表す。
システムはステップ302において初期構成される。好ましくは、これはフラッシングリスト199に対するさまざまな境界および記憶装置100の物理的領域をカバーする対応するアレイ200の初期識別を含む。所望により、記憶スペースの適切なサブセットに対する異なるアレイおよびリストを維持することができ、あるいは単一の統合リスト/アレイを維持することができる。
正規のシステム操作が次に開始され、ステップ304に示すように、これはキャッシュメモリへのライトバック(ダーティ)データの周期的提供を含む。このようなライトバックデータは主として図1のPC132,134,136等のホストからのデータライト操作から生じるものと考えられ、その場合、コントローラ124は好ましくはライトバックデータを選択されたキャッシュ場所(図4の176等)に格納し、ライト完了信号を開始装置へ返す。しかしながら、ライトバックデータはシステム状態データ、選択されたメモリバックアップ、メタデータ、等の内部発生ライトとすることもできる。
ステップ306に示すように、SDD192は好ましくは関連するライトバックデータに対して更新される。ダーティデータおよびダーティバッファ値はデータをダーティとして識別するように初期設定することができる。その後、データセットはフルストリップ198とのデータの関係、経過期間、および付加データのキャッシュ内への進入レートを含む前記したいくつかの要因に関してフラッシングリスト199へ移される。アレイ200は前記ブロックのフラッシングリスト199への移動に応答してフラッシングに利用できる隣接データブロックのセットを識別するようにステップ308において対応的に占用される。
ステップ310において、ライトバックデータの選択されたセットは記憶装置100へフラッシュされる。好ましくは、これは他の近接アクセス操作と共に生じるが、装置100にわたってより大きい逐次フラッシング操作をスケジュールすることもできる。前記したように、CM190または他のプロセスは好ましくはキャッシュされたライトバックデータがさらにキャッシュメモリへ導入されるレートに関して利用できるライトバックデータブロックの実質的に均一な分布を維持するように動作する。
ここで検討されたさまざまな好ましい実施例は従来技術に優る利点を提供する。開示された方法論は時間と局所性の両方がフラッシング・アルゴリズムの要因として記憶装置100へのデータの効率的フラッシングを提供する点においてダイナミックである。さらに、方法論は付加ダーティデータがキャッシュメモリへ導入されるレートに実質的に揃えるのに適応的である。好ましい実施例では、キャッシュメモリ内の付加ダーティデータのセットはアレイ200へかつアレイ200から記憶ディスクへ選択的に計られて実質的に平坦な負荷量を維持する。このようにして、ホストI/O内の著しい変動が回避される。
ここに提示された好ましい実施例は複数のディスクドライブ記憶装置を利用するマルチデバイスアレイに向けられているが、それは単なる説明の目的であって制約的意味合いはない。むしろ、特許請求される発明は任意数のさまざまな環境で利用して効率的なデータ処理を促進させることができる。
本発明のさまざまな実施例の非常に多くの特徴および利点を、本発明のさまざまな実施例の構造および機能の詳細と共に、前記した明細書に記載してきたが、この詳細な説明は説明用にすぎず詳細、特に、部品の構造および配置に関して本発明の原理内で添付特許請求の範囲が表現される用語の広範な一般的意味により示される限界まで変更を行うことができる。たとえば、特定のエレメントは特定の応用に応じて本発明の精神および範囲を逸脱することなく変動することができる。
本発明の好ましい実施例に従って構成かつ作動される記憶装置を一般的に示す図である。 図1に示すようないくつかの記憶装置を利用するネットワークシステムの機能的ブロック図である。 図2のコントローラの好ましいアーキテクチュアの一般的表現を示す図である。 図3の選択されたインテリジェント記憶プロセッサの機能的ブロック図である。 好ましい実施例に従って記憶アレイにデータをフラッシュするように動作するキャッシュ・マネージャを一般的に示す図である。 好ましい実施例に従って記憶アレイのいくつかの異なる場所にわたってライトバックデータ機会の分布を提供する図5のキャッシュ・マネージャにより維持されるライトバックデータセットのアレイを表す図である。 もう1つの好ましい実施例に従った図6のアレイの一部を示す図である。 好ましい実施例に従って実施されるステップを示すライトバックデータ・フラッシング・ルーチンに対するフロー図である。
符号の説明
100 記憶装置
102 ベースデッキ
104 スピンドルモータ
106 回転媒体
108 アクチュエータ
110 リード/ライト・トランスデューサ
112 ボイスコイルモータ
114 フレックス回路アセンブリ
116 印刷回路板
120 ネットワーク・システム
122 記録アレイ
124,126 冗長コントローラ
128 サーバ
130 ファブリック
132,134,136 パーソナルコンピュータ
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,198 RAIDストライプ
196 SBL
199 フラッシングリスト
200 アレイ
202,204 セル

Claims (19)

  1. 記憶アレイの場所に関して記憶アレイ内のライトバックデータのセットのアレイを形成するステップと、実質的にライトバックデータの付加セットがホストによりキャッシュメモリへ提供されるレートでライトバックデータの前記セットをキャッシュメモリから記憶アレイへ転送するステップと、を含む方法。
  2. 請求項1に記載の方法であって、ライトバックデータの各セットは複数の隣接データブロックを含む方法。
  3. 請求項1に記載の方法であって、転送ステップは記憶アレイのトランスデューサを記録媒体に隣接する選択された場所へ移動させて選択されたアクセスコマンドをサービスするステップと、選択されたアクセスコマンドの選択された場所とライトバックデータの選択されたセットに対する関連場所との近接に関してライトバックデータの選択されたセットをキャッシュメモリから媒体へ転送するステップと、を含む方法。
  4. 請求項3に記載の方法であって、前記近接はトランスデューサの選択されたシーク長を含む方法。
  5. 請求項1に記載の方法であって、さらに、アレイ内のライトバックデータの各セットに対してストライプデータ記述子(SDD)を与えるステップを含み、SDDはライトバックデータを記憶アレイへフラッシングするための準備完了として識別する値を含む方法。
  6. 請求項1に記載の方法であって、キャッシュメモリはライトバックデータのmセットを格納し、蓄積ステップは記憶アレイへのフラッシングに備えてアレイの異なる非隣接場所に関連する前記ライトバックデータのnセットを配列するステップを含み、nはmよりも小さい方法。
  7. 請求項1に記載の方法であって、さらに、ライトバックデータの前記付加セットがキャッシュメモリへ移されるレートを監視するステップを含み、それに関連して転送ステップを実施して前記キャッシュメモリ内に前記ライトバックデータの実質的に均一な分布を維持する方法。
  8. 記憶アレイの関連する場所へ転送するのに利用できるライトバックデータのセットを格納するキャッシュメモリと、ライトバックデータの前記セットをキャッシュメモリ内に配列して実質的に均一な分布を記憶アレイを横切って提供し、かつ実質的にライトバックデータの付加セットがホストによりキャッシュメモリへ提供されるレートでライトバックデータの前記セットをキャッシュメモリから記憶アレイへ転送するように構成されたプロセッサと、を含む装置。
  9. 請求項8に記載の装置であって、プロセッサはライトバックデータのセットを選択的にフラッシングリストへ移すキャッシュ・マネージャを含む装置。
  10. 請求項8に記載の装置であって、記憶アレイは記録媒体に隣接する選択された場所へ移されて選択されたアクセスコマンドをサービスするように構成されたトランスデューサを含み、プロセッサは選択されたアクセスコマンドの選択された場所とライトバックデータの選択されたセットに対する関連場所との間の近接に関してライトバックデータの選択されたセットをキャッシュメモリから媒体へ転送する装置。
  11. 請求項10に記載の装置であって、前記近接はトランスデューサの選択されたシーク長を含む装置。
  12. 請求項8に記載の装置であって、プロセッサはアレイ内のライトバックデータの各セットに対するストライプデータ記述子(SDD)を発生し、SDDはライトバックデータを記憶アレイへのフラッシング準備完了として識別する値を含む装置。
  13. 請求項8に記載の装置であって、キャッシュメモリはライトバックデータのmセットを格納し、プロセッサは前記ライトバックデータのnセットを記憶アレイフラッシングするために配置し、nはmよりも小さい装置。
  14. 請求項8に記載の装置であって、プロセッサはさらにライトバックデータの前記付加セットがキャッシュメモリへ移されるレートを監視し、それに関して前記データを転送してキャッシュメモリ内に前記ライトバックデータの実質的に均一な分布を維持する装置。
  15. 記憶アレイの関連する場所へ転送するのに利用できるライトバックデータの複数のセットを配列するキャッシュメモリと、実質的にライトバックデータの付加セットがホストによりキャッシュメモリへ提供されるレートでライトバックデータの前記セットを前記アレイから記憶アレイへ転送する第1の手段と、を含む装置。
  16. 請求項15に記載の装置であって、第1の手段はキャッシュ・マネージャを含む装置。
  17. 請求項15に記載の装置であって、記憶アレイは記録媒体に隣接する選択された場所へ移されて選択されたアクセスコマンドをサービスするように構成されたトランスデューサを含み、第1の手段は選択されたアクセスコマンドの選択された場所とライトバックデータの選択されたセットに対する関連場所との間の近接に関してライトバックデータの選択されたセットをキャッシュメモリから媒体へ転送する装置。
  18. 請求項17に記載の装置であって、前記近接はトランスデューサの選択されたシーク長を含む装置。
  19. 請求項15に記載の装置であって、第1の手段はさらにライトバックデータの前記付加セットがキャッシュメモリへ移されるレートを監視し、前記データを転送してプール内にライトバックデータの実質的に均一な分布を維持する装置。
JP2007172478A 2006-06-30 2007-06-29 キャッシュされたデータのダイナミック適応フラッシング Pending JP2008016024A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/480,128 US8234457B2 (en) 2006-06-30 2006-06-30 Dynamic adaptive flushing of cached data

Publications (2)

Publication Number Publication Date
JP2008016024A true JP2008016024A (ja) 2008-01-24
JP2008016024A5 JP2008016024A5 (ja) 2010-08-05

Family

ID=38878227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007172478A Pending JP2008016024A (ja) 2006-06-30 2007-06-29 キャッシュされたデータのダイナミック適応フラッシング

Country Status (2)

Country Link
US (1) US8234457B2 (ja)
JP (1) JP2008016024A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5158576B2 (ja) * 2007-06-05 2013-03-06 日本電気株式会社 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8924387B2 (en) * 2009-09-29 2014-12-30 Cleversafe, Inc. Social networking utilizing a dispersed storage network
US9081686B2 (en) * 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
EP2765528B1 (de) 2013-02-11 2018-11-14 dSPACE digital signal processing and control engineering GmbH Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
WO2014122320A2 (de) * 2013-02-11 2014-08-14 Dspace Digital Signal Processing And Control Engineering Gmbh Verändern eines signalwerts eines fpga zur laufzeit
CN110058786B (zh) * 2018-01-18 2022-12-02 伊姆西Ip控股有限责任公司 用于控制存储系统中的写请求的方法、装置和计算机程序产品

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6391761A (ja) * 1986-10-06 1988-04-22 Alps Electric Co Ltd キヤツシユメモリ制御方法
JPH05100954A (ja) * 1991-10-09 1993-04-23 Hokkaido Nippon Denki Software Kk キヤツシユバツフア処理制御方式
JPH06124596A (ja) * 1991-11-28 1994-05-06 Hitachi Ltd フラッシュメモリを使用した記憶装置
JPH0855072A (ja) * 1994-08-12 1996-02-27 Matsushita Electric Ind Co Ltd ネットワークシステムとデータ処理システムとデータ蓄積方法
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
JPH11265315A (ja) * 1997-10-31 1999-09-28 Hewlett Packard Co <Hp> 様々なdramバンクサイズと複数のインターリービング機構とをサポートする高速でコンパクトなアドレスビット経路指定機構
JPH11328029A (ja) * 1998-05-18 1999-11-30 Olympus Optical Co Ltd 情報記録再生装置
JP2003318947A (ja) * 2002-04-23 2003-11-07 Mitsubishi Electric Corp 多層メモリ使用交換装置
JP2004213470A (ja) * 2003-01-07 2004-07-29 Nec Corp ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
US20050071550A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation (Ibm) Increasing through-put of a storage controller by autonomically adjusting host delay
US6928518B2 (en) * 2001-11-01 2005-08-09 Sun Microsystems, Inc. Disk drive employing adaptive flushing of a write cache
US20050182906A1 (en) * 2004-02-18 2005-08-18 Paresh Chatterjee Systems and methods for cache synchronization between redundant storage controllers
US20060248308A1 (en) * 2005-04-27 2006-11-02 Dot Hill Systems Corp. Multiple mode controller method and apparatus

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1485235A (en) * 1923-09-14 1924-02-26 Mauss Wilhelm Centrifugal separator and the like
BE366538A (ja) * 1929-01-04
US2291117A (en) * 1939-12-29 1942-07-28 Laval Separator Co De Centrifugal separator
US2688437A (en) * 1947-12-04 1954-09-07 Saint Gobain Centrifugal separator
US3369742A (en) * 1965-11-30 1968-02-20 Carl W. Weiland Discharge valve for centrifuge
FR1568746A (ja) * 1967-06-21 1969-05-30
CH514358A (fr) * 1969-08-08 1971-10-31 Termomeccanica Italiana Spa Dispositif de séparation centrifuge des deux constituants à densité différente d'une émulsion
CS153120B1 (ja) * 1971-01-18 1974-02-25
US3791575A (en) * 1971-08-30 1974-02-12 Garrett Corp Centrifugal separator discharge control system
US3797736A (en) * 1972-04-07 1974-03-19 Westfalia Separator Ag Method and apparatus for controlling the concentration factor of a discharge
FR2180589B1 (ja) * 1972-04-21 1975-03-21 Loison Robert
US3814307A (en) * 1973-01-12 1974-06-04 Standard Oil Co Centrifugal clarifier
US3810347A (en) * 1973-01-16 1974-05-14 Signal Oil & Gas Co Centrifugal separator for three phase mixture
FR2268565B2 (ja) * 1974-04-25 1976-10-15 Loison Robert
US3930606A (en) * 1974-05-20 1976-01-06 Rca Corporation Method and apparatus for securing wires to connector terminals
CH584150A5 (ja) * 1974-09-02 1977-01-31 Escher Wyss Ag
DE2501924C3 (de) * 1975-01-18 1981-03-26 Westfalia Separator Ag, 59302 Oelde Vollmantelzentrifuge
US4010891A (en) * 1976-01-08 1977-03-08 Burmah Oil & Gas Company Vapor removal apparatus for oil/water separator
CS188429B1 (en) * 1976-02-12 1979-03-30 Jan Putterlik Method of the automatic control of the discharging of the concentrated fraction from from the centrifuge rotor and device for executing the same
FR2532198B1 (fr) * 1982-08-27 1985-06-21 Bertin & Cie Centrifugeuse a recuperation d'energie
JP2834189B2 (ja) 1989-07-05 1998-12-09 株式会社日立製作所 入出力制御方法
JP3586887B2 (ja) 1994-06-10 2004-11-10 松下電器産業株式会社 情報記録再生装置およびデータキャッシュ方法
US5829018A (en) 1994-10-25 1998-10-27 International Business Machines Corporation Apparatus and method for writing data from a cache to a storage device
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
US6189080B1 (en) * 1996-09-20 2001-02-13 Emc Corporation Minimum read rate throughput in a disk cache system
US5926834A (en) * 1997-05-29 1999-07-20 International Business Machines Corporation Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space
US5908376A (en) * 1997-09-11 1999-06-01 Costner Industries Nevada, Inc. Self-cleaning rotor for a centrifugal separator
US6484234B1 (en) 1998-06-30 2002-11-19 Emc Corporation Method and apparatus for efficiently destaging data from a cache to two or more non-contiguous storage locations
US6312610B1 (en) * 1998-07-13 2001-11-06 Phase Inc. Density screening outer wall transport method for fluid separation devices
US6057789A (en) * 1998-10-29 2000-05-02 Neomagic Corp. Re-synchronization of independently-clocked audio streams by dynamically switching among 3 ratios for sampling-rate-conversion
US6719681B2 (en) * 1999-08-06 2004-04-13 Econova, Inc. Methods for centrifugally separating mixed components of a fluid stream
US6671766B1 (en) 2000-01-07 2003-12-30 Storage Technology Corporation Method and system for implementing memory efficient track aging
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
US6552923B2 (en) * 2000-06-13 2003-04-22 Texas Instruments Incorporated SRAM with write-back on read
US6658533B1 (en) 2000-09-21 2003-12-02 Intel Corporation Method and apparatus for write cache flush and fill mechanisms
US7028297B2 (en) 2000-11-17 2006-04-11 Aristos Logic Corporation System and method of scalable transaction processing
US6618793B2 (en) 2000-12-18 2003-09-09 Redback Networks, Inc. Free memory manager scheme and cache
DE10114598A1 (de) * 2001-03-23 2002-10-02 Aventis Pharma Gmbh CIP-gerechte Ausführung einer Horizontalzentrifuge mit Vollmanteltrommel
US6629211B2 (en) 2001-04-20 2003-09-30 International Business Machines Corporation Method and system for improving raid controller performance through adaptive write back/write through caching
US6789163B2 (en) 2001-09-17 2004-09-07 Seagate Technology Llc Optimizing data transfer performance through partial write command purging in a disc drive
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
JP4219633B2 (ja) * 2002-07-25 2009-02-04 株式会社日立製作所 記憶装置システムのデステージ方法、ディスク制御装置、記憶装置システム、及びプログラム
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
WO2004080601A2 (en) * 2003-03-11 2004-09-23 Phase Inc. Centrifuge with controlled discharge of dense material
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
US7441081B2 (en) * 2004-12-29 2008-10-21 Lsi Corporation Write-back caching for disk drives
SE528387C2 (sv) * 2005-03-08 2006-10-31 Alfa Laval Corp Ab Centrifugalseparator och förfarande för separering av en produkt i åtminstone en relativt tung fas och en relativt lätt fas
US20080041772A1 (en) * 2006-08-17 2008-02-21 Gambro Bct, Inc. Blood Processing Apparatus with Robust Outflow Process Control
US20080272067A1 (en) * 2007-05-01 2008-11-06 Cavaliere William A Methods and Apparatus for Classification of Suspended Materials
GB0724572D0 (en) * 2007-12-17 2008-01-30 Specialist Process Technologie A separation device
US7734854B2 (en) * 2008-01-04 2010-06-08 International Business Machines Corporation Device, system, and method of handling transactions
US20110263405A1 (en) * 2010-04-22 2011-10-27 Specialist Process Technologies Limited Separator

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6391761A (ja) * 1986-10-06 1988-04-22 Alps Electric Co Ltd キヤツシユメモリ制御方法
JPH05100954A (ja) * 1991-10-09 1993-04-23 Hokkaido Nippon Denki Software Kk キヤツシユバツフア処理制御方式
JPH06124596A (ja) * 1991-11-28 1994-05-06 Hitachi Ltd フラッシュメモリを使用した記憶装置
JPH0855072A (ja) * 1994-08-12 1996-02-27 Matsushita Electric Ind Co Ltd ネットワークシステムとデータ処理システムとデータ蓄積方法
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
JPH11265315A (ja) * 1997-10-31 1999-09-28 Hewlett Packard Co <Hp> 様々なdramバンクサイズと複数のインターリービング機構とをサポートする高速でコンパクトなアドレスビット経路指定機構
JPH11328029A (ja) * 1998-05-18 1999-11-30 Olympus Optical Co Ltd 情報記録再生装置
US6928518B2 (en) * 2001-11-01 2005-08-09 Sun Microsystems, Inc. Disk drive employing adaptive flushing of a write cache
JP2003318947A (ja) * 2002-04-23 2003-11-07 Mitsubishi Electric Corp 多層メモリ使用交換装置
JP2004213470A (ja) * 2003-01-07 2004-07-29 Nec Corp ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
US20050071550A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation (Ibm) Increasing through-put of a storage controller by autonomically adjusting host delay
US7171516B2 (en) * 2003-09-29 2007-01-30 International Business Machines Corporation Increasing through-put of a storage controller by autonomically adjusting host delay
US20050182906A1 (en) * 2004-02-18 2005-08-18 Paresh Chatterjee Systems and methods for cache synchronization between redundant storage controllers
US20060248308A1 (en) * 2005-04-27 2006-11-02 Dot Hill Systems Corp. Multiple mode controller method and apparatus

Also Published As

Publication number Publication date
US20080005478A1 (en) 2008-01-03
US8234457B2 (en) 2012-07-31

Similar Documents

Publication Publication Date Title
US8363519B2 (en) Hot data zones
US7743216B2 (en) Predicting accesses to non-requested data
US7996623B2 (en) Read ahead storage control
CN104603739B (zh) 对并行存储的块级访问
US7814351B2 (en) Power management in a storage array
JP4933861B2 (ja) ストレージ制御装置、データ管理システムおよびデータ管理方法
JP5126621B2 (ja) 二重アクティブ・コントローラ内のライト・キャッシュ・データのフェイルオーバーおよびフェイルバック
US7761659B2 (en) Wave flushing of cached writeback data to a storage array
JP5638744B2 (ja) コマンド・キュー・ローディング
JP5882557B2 (ja) 要求優先順位シーク・マネージャ
JP2008016024A (ja) キャッシュされたデータのダイナミック適応フラッシング
JP2006285808A (ja) ストレージシステム
US8244975B2 (en) Command queue ordering by flipping active write zones
US10564865B2 (en) Lockless parity management in a distributed data storage system
JP2005267038A (ja) ストレージシステムの運用方法
JP2005293205A (ja) 記憶制御装置、制御方法、および制御プログラム。
US7590800B2 (en) 2D dynamic adaptive data caching
US7032086B2 (en) System and method for adjusting storage device layout with at least one status for the adjusting
JP2010244532A (ja) ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減するシステム
JP5376624B2 (ja) ホスト適応シーク技術環境
JP2005539303A (ja) 電力効率高容量なスケーラブルな記憶システムのための方法および装置
JP5594942B2 (ja) 好適なゾーン・スケジューリング
JP2009054050A (ja) Raid装置、raid装置の制御部およびraid装置のライトバック制御方法
JP2009070489A (ja) ストレージ装置及びその制御方法、並びにディスク装置
US20080034157A1 (en) Massively parallel data storage and processing system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100622

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100622

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120807