JP2007183926A - 固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法 - Google Patents

固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法 Download PDF

Info

Publication number
JP2007183926A
JP2007183926A JP2006312287A JP2006312287A JP2007183926A JP 2007183926 A JP2007183926 A JP 2007183926A JP 2006312287 A JP2006312287 A JP 2006312287A JP 2006312287 A JP2006312287 A JP 2006312287A JP 2007183926 A JP2007183926 A JP 2007183926A
Authority
JP
Japan
Prior art keywords
write request
priority
pacing
write
fixed size
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.)
Granted
Application number
JP2006312287A
Other languages
English (en)
Other versions
JP4857086B2 (ja
Inventor
Matthew B Houzenga
マシュー・ブライアン・ハウゼンガ
Alan G Mcclure
アラン・ジョージ・マクルーア
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007183926A publication Critical patent/JP2007183926A/ja
Application granted granted Critical
Publication of JP4857086B2 publication Critical patent/JP4857086B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0893Caches characterised by their organisation or structure
    • 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/0877Cache access modes
    • 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

Landscapes

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

Abstract

【課題】固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法の提供。
【解決手段】割り当てられたペーシング値に基づいて書き込み要求の処理を差別化し、キャッシュの書き込み要求数を調整する装置、システム、方法。優先順位モジュールは、オペレーティング・システムが定めた入力/出力優先順位値に基づいて、書き込み要求の優先順位を決定する。評価モジュールは、固定サイズのキャッシュ内に書き込み要求を格納するための格納要求レベルを評価する。割り当てモジュールは、優先順位に基づき、格納要求レベルに応答して、ペーシング値を書き込み要求に割り当てる。許可モジュールは、書き込み要求のペーシング値が満たされた時点でアプリケーションが次の書き込み要求を出すことを許可する。ペーシング値によって指定された時間が満了するまで待つことによって、ペーシング値が満たされる。
【選択図】図12

Description

本発明は、書き込み要求をキャッシングに関し、より具体的には、固定サイズのキャッシュにおける書き込み要求の数を調整することに関する。
殆ど全てのコンピュータ・ソフトウェア・アプリケーションが、情報を格納する。ソフトウェア・アプリケーションは、ハードディスク、テープ・ドライブ、ソリッド・ステート・メモリ・デバイス、又は他の記憶装置のような揮発性又は不揮発性のストレージ・ボリューム上に情報を格納する。幾つかのコンピュータ・システムにおいては、ストレージ・ボリュームは、ソフトウェア・アプリケーションが実行されているマシンと同じマシンの一部である。他のコンピュータ・システムにおいて、ストレージ・ボリュームは、アプリケーションから物理的に分離されている。これらのシステムにおいては、バス又はネットワークが、ソフトウェア・アプリケーション及びストレージ・ボリュームを接続し、ソフトウェア・アプリケーションとストレージ・ボリュームとの間の通信を可能にする。
多くの場合、ストレージ・ボリュームがアプリケーションから物理的に分離されているとき、多数のアプリケーションが単一のストレージ・ボリュームにアクセスでき、同時に情報をストレージ・ボリュームに書き込もうと試みることが可能である。その結果、アプリケーションは、ストレージ・ボリュームが別のアプリケーションからの書き込み要求に対応するのに忙しい際に、情報をストレージ・ボリュームに書き込もうと試みることがある。したがって、ストレージ・ボリュームが、必ずしも、書き込み要求を受信した直後に該書き込み要求を実行できるとは限らない。
この問題に対する従来の手法は、ストレージ・ボリュームが書き込み要求を実行することができるまで、書き込み要求をキャッシュ内に格納するというものである。一般的に、キャッシュは、書き込み要求を受け取った順番に格納する。ストレージ・ボリュームが利用可能になると、書き込み要求は、通常、それらを受け取った順番にキャッシュから取り出され、実行される。従来より、キャッシュは、アプリケーションと同じマシン上に物理的に配置される。
書き込み要求のキャッシングは、書き込み要求のためのスペースがキャッシュ内にある限り有効である。しかしながら、従来のキャッシュは、一般に、固定サイズのものであり、これらの固定サイズのキャッシュは、特定の稼動期間中に書き込み要求でいっぱいになることがある。書き込み要求のキャッシュがいっぱいになると、アプリケーションから付加的な書き込み要求を受け入れることができない。その結果、アプリケーションは、キャッシュが空き領域を有するまで待ち、その後に書き込み要求を再実行依頼する必要がある。
図1は、例示的なキャッシュ100のコンテンツを示すチャートである。例示的なキャッシュ100は、10個の書き込み要求スロット102を有する。各々のスロット102は、1つの書き込み要求を格納することができる。勿論、実際のキャッシュは、一般に、何百、何千、又はそれ以上のエントリを格納する。簡単にするために、示された例示的なキャッシュ100は、10個の書き込み要求スロット102を有する。
各々の書き込み要求は、該要求を作成するアプリケーションの名前、情報が格納されることになるストレージ・ボリューム、書き込まれることになるデータへのポインタ、又はデータ自体等のような情報を含むことができる。例示的なキャッシュ100は、書き込み要求を作成するアプリケーションの名前104、及び、情報が書き込まれることになるストレージ・ボリューム106を示す。
例示的なキャッシュ100は、3つの書き込み要求108、110、112を含む。「アプリケーションA」は、3つの書き込み要求108、110、112全てを実行依頼した。この例において、「アプリケーションA」は、100ミリ秒毎に臨界温度データを記録するアプリケーションである。この例においては、ストレージ・ボリュームのオペレータは、「アプリケーションA」のオペレータとのサービス内容合意書を有し、一般にブロッキングと呼ばれる「アプリケーションA」の待機を必要とせずに、「アプリケーションA」によって出された全ての書き込み要求が、ストレージ・ボリューム上に書き込まれることを、ストレージ・ボリュームのオペレータが保証することを明記する。
例示的なキャッシュ100は、書き込み要求を到着順に格納し、最も古い書き込み要求がキャッシュの下になり、最新の書き込み要求がキャッシュの上になる。「アプリケーションA」によって作成された第1の書き込み要求108は、次に実行されることになる書き込み要求である。「アプリケーションA」によって作成された第2の書き込み要求110は、第1の書き込み要求108の後に実行される。同様に、第3の書き込み要求112は、第2の書き込み要求110が実行された後に実行される。
図2は、2つのアプリケーションからの書き込み要求に対応する例示的な書き込み要求キャッシュ130のコンテンツを示すチャートである。「アプリケーションA」は、100ミリ秒毎に温度データを記録するために、定期的な書き込み要求を送る。対照的に、「アプリケーションB」は、不規則な間隔で書き込み要求のバーストを送る。この例において、キャッシュ130は、「アプリケーションA」の書き込み要求132及び「アプリケーションB」の書き込み要求134の小さいバーストの両方のためのスペースを有する。
図3は、例示的な書き込み要求キャッシュ160のコンテンツを示すチャートである。この例示的なキャッシュ160において、全ての利用可能な書き込み要求スロット102は、定期的な「アプリケーションA」の書き込み要求132、及び「アプリケーションB」の書き込み要求の2つのバースト162、164でいっぱいになった。したがって、キャッシュは満杯であり、次の重要な「アプリケーションA」の書き込み要求のためのスペースはない。その結果、次の「アプリケーションA」の書き込み要求は、ドロップされるか又は遅延され、「アプリケーションA」のオペレータとサービス・ボリュームのオペレータとの間のサービス内容合意書に違反することになる。
幾つかの従来技術のシステムは、書き込み要求のペーシングを実施することによって、このオーバーフロー問題の可能性を減少させる。書き込み要求のペーシングは、アプリケーションに書き込み要求の遅延を強いることによって、キャッシュに入る書き込み要求の速度を落とすというものである。しかしながら、粒度が不足しているため、従来のペーシング方法は非常に限定的なものである。従来のペーシングの方法は、全ての書き込み要求に同じペーシング値を割り当てる。従来のペーシング方法は、キャッシュ内にある全ての書き込み要求の速度を落とし、高い優先順位の書き込み要求と低い優先順位の書き込み要求を区別することができない。さらに、従来のペーシングの方法は、宛先ストレージ・ボリュームによって、キャッシュ内の書き込み要求を区別することができない。代わりに、ペーシングが可能になったとき、キャッシュ内の書き込み要求が同じように処理される。
上記の説明から、固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法に対する必要性が存在することは明らかである。この装置、システム、及び方法は、重要でない書き込み要求を遅延させることによって、重要な書き込み要求のためのスペースがキャッシュ内にあることを保証する。付加的に、この装置、システム、及び方法は、優先順位及び宛先ストレージ・ボリュームに基づいて、書き込み要求をペーシングする方法を提供するべきである。
本発明は、当該技術分野の現在の状態に応答して、特に、現在利用可能なキャッシュ調整方法によってまだ完全に解決されていない当該技術分野の問題及び必要性に応答して開発された。したがって、本発明は、当該技術分野における上述した欠点の多く又は全てを克服する、固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法を提供するものである。
固定サイズのキャッシュにおける書き込み要求の数を調整するための装置には、固定サイズのキャッシュにおける書き込み要求の数を調整するステップを機能的に実行するように構成された複数のモジュールを含む論理ユニットが与えられる。説明された実施形態におけるこれらのモジュールは、調査モジュール、優先順位モジュール、評価モジュール、及び、割り当てモジュールを含む。
調査モジュールは、アプリケーションによって出された保留中の書き込み要求を調査する。優先順位モジュールは、オペレーティング・システムによって定めることができる関連した入力/出力優先順位値に基づいて、書き込み要求についての優先順位を決定する。評価モジュールは、特定の組のストレージ・ボリュームと関連付けられた、固定サイズのキャッシュ内に格納されている書き込み要求の数をカウントすることによって、書き込み要求を固定サイズのキャッシュ内に格納するための格納要求レベルを評価する。次に、評価モジュールは、カウントをしきい値と比較する。
カウントがしきい値より上である場合、割り当てモジュールは、優先順位モジュールによって決定された優先順位に基づいて、ペーシング値を書き込み要求に割り当てる。ペーシング値は、実質的にゼロミリ秒から実質的に5秒までの間の時間である。1つの実施形態において、割り当てモジュールは、第1の優先順位を持つ書き込み要求に第1のペーシング値を割り当て、第1の優先順位とは異なる優先順位を持つ書き込み要求に第2のペーシング値を割り当てる。別の実施形態においては、割り当てモジュールは、1組の優先順位と1組のペーシング値との間の一対一のマッピングに基づいて、ペーシング値を書き込み要求に割り当てる。
許可モジュールは、元の要求と関連付けられたペーシング値が満たされた時点で、アプリケーションが、次の書き込み要求を出すことを許可する。ペーシング値は、ペーシング値によって指定された時間が満了するまで待つことによって満たされる。
固定サイズのキャッシュにおける書き込み要求の数を調整するための本発明によるシステムも提示される。1つの実施形態において、このシステムは、固定サイズのキャッシュ、アプリケーション、少なくとも1つのストレージ・ボリューム、第1の通信バス、第2の通信バス、及び、ストレージ・コントローラを含む。固定サイズのキャッシュは、書き込み要求を格納する。アプリケーションは、書き込み要求を出す。1つの実施形態においては、アプリケーションは、ストレージ・コントローラが元の書き込み要求を確認するまで、次の書き込み要求を保留する。
ストレージ・ボリュームは、書き込み要求によって指定されたデータを格納する。第1の通信バスは、固定サイズのキャッシュとストレージ・ボリュームとの間の通信を容易にする。第2の通信バスは、アプリケーションと、ストレージ・コントローラと、固定サイズのキャッシュとの間の通信を容易にする。ストレージ・コントローラは、調査モジュール、優先順位モジュール、評価モジュール、割り当てモジュール、及び許可モジュールを含む。
調査モジュールは、アプリケーションによって生成された書き込み要求を調査する。優先順位モジュールは、該書き込み要求の特性に基づいて、該書き込み要求の優先順位を決定する。1つの実施形態において、特性は、オペレーティング・システムによって定められた入力/出力の優先順位である。
評価モジュールは、固定サイズのキャッシュ内に書き込み要求を格納するための格納要求レベルを評価する。1つの実施形態において、評価モジュールは、固定サイズのキャッシュが受け取った書き込み要求の速度をしきい値と比較することによって、格納要求レベルを評価する。別の実施形態においては、評価モジュールは、固定サイズのキャッシュ内に格納されている特定の組のストレージ・ボリュームと関連付けられた書き込み要求のカウントをしきい値と比較することによって、格納要求レベルを決定する。
格納要求レベルがしきい値より上である場合、割り当てモジュールは、優先順位に基づいて、ペーシング値を書き込み要求に割り当てる。1つの実施形態において、ペーシング値は、実質的にゼロミリ秒から実質的に5秒までの間の時間である。この実施形態において、ペーシング値によって指定された時間が満了するまで待つことによって、ペーシング値が満たされる。別の実施形態において、ペーシング値は、所定の固定サイズのキャッシュの占有率を含む。この実施形態においては、現在の固定サイズのキャッシュの占有率が、所定の固定サイズのキャッシュの占有率より低いとき、ペーシング値が満たされる。
1つの実施形態において、割り当てモジュールは、第1の優先順位を持つ書き込み要求に第1のペーシング値を割り当て、第1の優先順位とは異なる優先順位を持つ書き込み要求に第2のペーシング値を割り当てる。別の実施形態においては、割り当てモジュールは、1組の優先順位と1組のペーシング値との間の一対一対応に基づいて、ペーシング値を書き込み要求に割り当てる。許可モジュールは、元の書き込み要求のペーシング値が満たされた時点で、アプリケーションが、次の書き込み要求を出すことを許可する。
固定サイズのキャッシュにおける書き込み要求の数を調整する方法も提供される。開示された実施形態における方法は、説明された装置及びシステムの操作に関して上に与えられた機能を実行するのに必要なステップを実質的に含む。
書き込み要求の特性に基づいて、アプリケーションによって生成された書き込み要求についての優先順位が決定される。固定サイズのキャッシュ内に書き込み要求を格納するための格納要求レベルが評価される。優先順位に基づいて、かつ、格納要求レベルに応答して、ペーシング値が書き込み要求に割り当てられる。元の書き込み要求のペーシング値が満たされた時点で、アプリケーションは、次の書き込み要求を出すことが可能になる。
装置、システム、及び方法が、書き込み要求の優先順位に従って、固定サイズのキャッシュにおける書き込み要求の数を調整する。この装置、システム、及び方法は、各々の書き込み要求に割り当てられたペーシング値に従って書き込み要求の確認を遅延させることによって、固定サイズのキャッシュがいっぱいになる可能性を減少させる。これらの特徴及び利点は、以下の説明及び添付の特許請求の範囲からより完全に明らかになるであろう、或いは、以下に述べられる本発明の実施によって学ぶことができる。
本発明の利点を容易に理解するために、添付図面に示される特定の実施形態を参照することによって、上記に簡単に述べられた本発明のより具体的な説明が与えられる。これらの図面は、本発明の典型的な実施形態を示すものにすぎず、よって本発明の範囲の制限と考えるべきではないことを理解すると共に、本発明が、添付図面を用いて、さらに具体的かつ詳細に述べられ、説明される。
図4は、固定サイズのキャッシュ204における書き込み要求の数を調整するためのシステム200の1つの実施形態を示す。このシステム200は、少なくとも1つのストレージ・ボリューム202、固定サイズのキャッシュ204、アプリケーション206、ストレージ・コントローラ208、第1の通信バス210、及び第2の通信バス212を含む。当業者であれば、システム200は、ここに記載されたものに対応するモジュール又はサブシステムを含む限り、示されるものより簡単なものであっても、複雑なものにもであってもよいことを理解するであろう。
固定サイズのキャッシュ204は、アプリケーション206によって出された書き込み要求を格納する。固定サイズのキャッシュ204は、ソリッド・ステート・メモリ、ディスク・ドライブ等のような揮発性又は不揮発メモリを含むことができる。固定サイズのキャッシュ204は、一定数の書き込み要求を格納することができる。固定サイズのキャッシュ204は、複数のストレージ・ボリューム202に対して、複数のアプリケーション206によって出された書き込み要求を格納することができる。
アプリケーション206は、ストレージ・ボリューム202にデータを書き込む要求を出す。この書き込み要求は、実行される(ストレージ・ボリューム202に書き込まれる)前に、固定サイズのキャッシュ204内に格納される。システム200は、各々が書き込み要求を固定サイズのキャッシュ204に送る、複数のアプリケーション206を含むことができる。アプリケーション206は、書き込み要求を定期的に出すことができ、又はアプリケーション206は、書き込み要求を不規則に出すことができる。アプリケーション206は、一度に1つの書き込み要求を出すことができ、又は短期間に書き込み要求のバーストを出すことができる。アプリケーション206は、実質的に、データをストレージ・ボリューム202上に保存する如何なるソフトウェア・プログラムとしてもよい。1つの実施形態において、アプリケーション206は、ストレージ・コントローラ208が元の書き込み要求を確認するまで、次の書き込み要求を保留する。
ストレージ・ボリューム202は、データを格納する。特定的には、ストレージ・ボリューム202は、アプリケーション206が出した書き込み要求によって指定されたデータを格納する。ストレージ・ボリューム202は、Direct Access Storage Device(DASD)、ディスク・ドライブ、テープ・ドライブ、ソリッド・ステート・メモリ、又は揮発性であろうと不揮発性であろうと他のメモリとすることができる。1つの実施形態において、システム200は、複数のストレージ・ボリューム202を含む。管理者は、複数のストレージ・ボリューム202を組織化し、関連したストレージ・ボリュームのサブセットにすることができる。
第1の通信バス210は、ストレージ・ボリューム202及び固定サイズのキャッシュ204を作動的に結合させ、固定サイズのキャッシュ204とストレージ・ボリューム202との間の通信を容易にする。第2の通信バス212は、固定サイズのキャッシュ204、アプリケーション206、及びストレージ・コントローラ208を作動的に結合させ、固定サイズのキャッシュ204、アプリケーション206、及びストレージ・コントローラ208との間の通信を容易にする。
第1の通信バス210及び第2の通信バス212は、バス、有線ネットワーク、無線ネットワーク、又は他の接続通信技術とすることができる。第1の通信バス210及び第2の通信バス212は、イーサネット、インターネット・プロトコル(IP)、非同期転送モード(Asynchronous Transfer Mode、ATM)、時分割多重(Time Division Multiplexing、TDM)、Peripheral Communication Interface(PCI)、Small Computer System Interface(SCSI)、Internet Small Computer System Interface(iSCSI)等を含む、階層化された多数の通信プロトコルを使用することができる。
1つの実施形態において、ストレージ・コントローラ208は、Extended Remote Copy(XRC)プロトコルを用いて、書き込み要求を、固定サイズのキャッシュ204からストレージ・ボリューム202に中継する。固定サイズのキャッシュ204及びストレージ・ボリューム202が同じキャビネット内に配置されるとき、一般に、第1の通信バス210はバスである。代替的に、固定サイズのキャッシュ204及びストレージ・ボリューム202が、最低数フィート又は最高で何千マイルだけ物理的に分離されるとき、一般に、第1の通信バス210はネットワークである。別の実施形態においては、第1の通信バス210及び第2の通信バス212が接続され、ストレージ・ボリューム202、固定サイズのキャッシュ204、アプリケーション206、及びストレージ・コントローラ208の間の通信を容易にする。
ストレージ・コントローラ208は、アプリケーション206によって生成された書き込み要求を調査する。ストレージ・コントローラ208は、固定サイズのキャッシュ204から書き込み要求を読み取ることによって、書き込み要求を調査することができる。固定サイズのキャッシュ204内に格納された書き込み要求は、その要求を出したアプリケーション206を識別する識別子を含むことができる。書き込み要求は、ストレージ・ボリューム202についての識別子と、書き込みが行われることになるストレージ・ボリューム202上の位置とを含むこともできる。書き込み要求は、ストレージ・ボリューム202上に書き込まれることになるデータへのポインタを含むこともできる。代替的に、書き込み要求は、ストレージ・ボリューム202上に書き込まれることになるデータを含むことができる。
ストレージ・コントローラ208は、書き込み要求の特性に基づいて、該書き込み要求についての優先順位を決定する。1つの実施形態において、特性は、アプリケーション206が用いるオペレーティング・システムによって指定された入力/出力の優先順位値である。アプリケーション又はオペレーティング・システムのサービス内容合意書モジュールによって、入力/出力の優先順位値を指定することもできる。代替的に、アプリケーション206が、入力/出力優先順位値を設定する。
ストレージ・コントローラ208は、固定サイズのキャッシュ204内に書き込み要求を格納するための格納要求レベルを評価する。格納要求レベルは、固定サイズのキャッシュ204内のスペースに対する、現在の要求レベルを示す。格納要求レベルがしきい値より下である場合には、固定サイズのキャッシュ204内に、付加的な書き込み要求のためのスペースがあり、ペーシングを必要としない。格納要求レベルが高い場合には、固定サイズのキャッシュ204内に限られたスペースしかない。したがって、付加的な書き込み要求をキャッシュ内に配置するアプリケーション206の能力を調整するためにペーシングを必要とし、これによりキャッシュ204内にスペースが保存される。
格納要求レベルが、固定サイズのキャッシュ204における書き込み要求の数を調整するのにペーシングが必要であることを示す場合には、ストレージ・コントローラ208は、以前決定された書き込み要求と関連付けられた優先順位に基づいて、ペーシング値を書き込み要求に割り当てる。1つの実施形態において、ペーシング値は、実質的にゼロミリ秒から実質的に5秒までの間の時間を含む。ペーシング値によって指定された時間が満了するまで待つことによって、ペーシング値が満たされる。ストレージ・コントローラ208がペーシング値を書き込み要求に割り当てると、ストレージ・コントローラ208により、元の書き込み要求と関連付けられたペーシング値が満たされた後で、アプリケーション206が次の書き込み要求を出すことが可能になる。
図5は、ストレージ・コントローラ300の1つの実施形態を示す。ストレージ・コントローラ300は、図4に関連して上述されたストレージ・コントローラ208として働くように構成されることが好ましい。ストレージ・コントローラ300は、調査モジュール302、優先順位モジュール304、評価モジュール306、割り当てモジュール308、及び許可モジュール310を含む。調査モジュール302は、アプリケーション206によって生成された書き込み要求を調査する。調査モジュール302は、固定サイズのキャッシュ204から書き込み要求を読み取り、該書き込み要求を種々のフィールドに構文解析することによって、該書き込み要求を調査することができる。代替的に、調査モジュール302は、アプリケーション206から書き込み要求を取得することができる。
優先順位モジュール304は、書き込み要求の特性に基づいて、該書き込み要求についての優先順位を決定する。優先順位は、数値、16進法、2進法、英数字、又は他の指定子とすることができる。1つの実施形態において、特性は、オペレーティング・システムによって定められた入力/出力の優先順位値である。例えば、特性は、IBM(IBM Corporationの商標) zシリーズ・オペレーティング・システム(z/OS:IBM Corporationの商標)の定義エクステント・チャネル・コマンド語(CCW)のパラメータに用いられる入力/出力優先順位値とすることができる。
オペレーティング・システムは、入力/出力優先順位値の1つを該オペレーティング・システム内で実行する各アプリケーション206を割り当てることができる。したがって、オペレーティング・システムは、アプリケーション206によって出された全ての書き込み要求に、同じ入力/出力優先順位値を割り当てる。このように、オペレーティング・システムは、入力/出力操作について、他のアプリケーションに優る優先順位を特定のアプリケーションに与える。システム管理者は、オペレーティング・システムが各アプリケーション206に与える入力/出力優先順位値を構成することができる。代替的に、アプリケーション206は、自分自身に、入力/出力優先順位値を割り当てることができ、又は、オペレーティング・システムから入力/出力優先順位値を要求することもできる。
入力/出力優先順位値は、書き込み要求の一部とすることができ、又は、オペレーティング・システムが、書き込み要求とは別個のデータ構造体内に入力/出力優先順位値を格納することもできる。入力/出力優先順位値が別個のデータ構造体内に格納された場合、優先順位モジュール304は、オペレーティング・システムから、特定の書き込み要求についての入力/出力優先順位値を獲得する。入力/出力優先順位値が書き込み要求の一部である場合には、優先順位モジュール304は、該書き込み要求を構文解析し、入力/出力優先順位を獲得する。
特性を、書き込み要求のパラメータとすることもできる。1つの実施形態において、アプリケーション206は、書き込み要求の優先順位を示すパラメータを、該書き込み要求内に含む。アプリケーション206は、値が各々の書き込み要求の相対的な優先順位を示す1組の所定の優先順位値からの1つの値に、パラメータを割り当てることができる。パラメータを用いることにより、アプリケーション206が、種々の優先順位を有する書き込み要求を出すことが可能になり、そこで、各々の書き込み要求の優先順位は、アプリケーション206によって決定される。優先順位モジュール304は、書き込み要求を種々のパラメータに構文解析し、次に、書き込み要求の相対的な優先順位を示すパラメータを検査することによって、該書き込み要求から特性を抽出する。
優先順位に基づいた特性は、サービス内容合意書識別子、アプリケーションの名前、割り込み優先順位値等とすることもできる。優先順位モジュール304が、書き込み要求についての優先順位を決定するために該書き込み要求の特性を用いた時点で、優先順位モジュール304は、優先順位と書き込み要求との間の関連性をデータ構造体内に格納することができるので、割り当てモジュール308は、続いて、ペーシング値の割り当ての際に、その関連性を用いることができる。
評価モジュール306は、書き込み要求を固定サイズのキャッシュ204内に格納するために、格納要求レベルを評価する。評価モジュール306は、格納要求レベルが、しきい値より上であるか、下であるか、又はしきい値と等しいかを判断することによって、格納要求レベルを評価する。評価モジュール306は、格納要求レベルの状態(しきい値をより上であるか、下であるか、又はこれと等しいか)を割り当てモジュール308に提供する。格納要求レベルがしきい値より上である場合、割り当てモジュール308は、ペーシング値を書き込み要求に割り当てることができる。代替的に、格納要求レベルがしきい値より上であるか又はしきい値と等しい場合、割り当てモジュール308は、ペーシング値を書き込み要求に割り当てることができる。
評価モジュール306は、幾つかの異なる手法で、書き込み要求を固定サイズのキャッシュ204内に格納するための要求を評価し、又は測定することができる。1つの実施形態において、評価モジュール306は、現在固定サイズのキャッシュ204内に格納されている書き込み要求の総数をカウントする。次に、評価モジュール306は、そのカウントをしきい値と比較することができる。
図6は、例示的な固定サイズのキャッシュ400のコンテンツを示す。例示的な固定サイズのキャッシュ400は、10個の書き込み要求スロット102を有する。勿論、典型的な固定サイズのキャッシュは、何百、何千、又はそれ以上の書き込み要求を格納することができる。図6は、優先順位モジュール304によって決定されるような書き込み要求の各々についての優先順位408も示す。図6に破線で示唆されるように、優先順位408は、固定サイズのキャッシュ204内に格納することができ、又は固定サイズのキャッシュ204の外にあるデータ構造体内に格納することができる。
例示的な固定サイズのキャッシュ400において、書き込み要求が、合計6個の書き込み要求スロット102を占める。「アプリケーションA」402からの書き込み要求は1つのスロットを占め、「アプリケーションB」404からの書き込み要求は4つのスロットを占め、「アプリケーションC」406からの書き込み要求は1つのスロットを占める。1つの実施形態において、評価モジュール306は、どのアプリケーション206が書き込み要求を出したかを考慮せずに、固定サイズのキャッシュ204における書き込み要求の総数をカウントすることによって、格納要求レベルを評価する。
この例において、カウントは6である。次に、評価モジュール306は、このカウントをしきい値と比較し、割り当てモジュール308に格納要求レベルの状態を提供する。状態は、カウントがしきい値より下であるか、しきい値と等しいか、又はしきい値より上であるかを示す。
別の実施形態において、評価モジュール306は、特定のアプリケーション206によって出された固定サイズのキャッシュ204における書き込み要求の数をカウントすることによって、格納要求レベルを評価する。次に、評価モジュール306は、カウントをしきい値と比較し、割り当てモジュール308に格納要求レベルの状態を提供する。図6の例示的な固定サイズのキャッシュ400において、評価モジュール306は、「アプリケーションA」402からの書き込み要求の数をカウントし、そのカウントをしきい値と比較し、該カウントの状態を割り当てモジュール308に提供することができる。同様に、評価モジュール306は、「アプリケーションB」404によって出された書き込み要求及び「アプリケーションC」406によって出された書き込み要求の状態を判断することができる。
図7は、別の例示的な固定サイズのキャッシュ430のコンテンツを示す。1つの実施形態において、評価モジュール306は、特定のストレージ・ボリューム202と関連付けられた固定サイズのキャッシュ204における書き込み要求の数をカウントすることによって、格納要求レベルを評価する。次に、評価モジュール306は、そのカウントをしきい値と比較し、割り当てモジュール308に格納要求レベルの状態を提供する。図7の例示的な固定サイズのキャッシュ430において、評価モジュール306は、「ボリューム1」432についての書き込み要求の数をカウントし、そのカウントをしきい値と比較し、該カウントの状態を割り当てモジュール308に提供することができる。同様に、評価モジュール306は、「ボリューム3」434についての書き込み要求の状態を判断することができる。
別の実施形態において、評価モジュール306は、1組のストレージ・ボリューム202と関連付けられた固定サイズのキャッシュ204における書き込み要求の数をカウントすることによって、格納要求レベルを評価することができる。例えば、図6において、評価モジュール306は、「ボリューム1」及び「ボリューム3」を含む1組のボリュームと関連付けられた全ての書き込み要求をカウントし、そのカウントを第1のしきい値と比較することができる。評価モジュール306は、「ボリューム6」を含む第2の組のボリュームと関連付けられた全ての書き込み要求をカウントし、そのカウントを第2のしきい値と比較することもできる。
図8は、別の例示的な固定サイズのキャッシュ460のコンテンツを示す。別の実施形態において、評価モジュール306は、特定の優先順位値408を有する、固定サイズのキャッシュ204における書き込み要求の数をカウントすることによって、格納要求レベルを評価する。次に、評価モジュール306は、そのカウントをしきい値と比較し、割り当てモジュール308に格納要求レベルの状態を提供する。図8の例示的な固定サイズのキャッシュ460において、評価モジュール306は、「優先順位1」462を有する書き込み要求の数をカウントし、そのカウントをしきい値と比較し、該カウントの状態を割り当てモジュール308に提供することができる。同様に、評価モジュール306は、「優先順位4」464を有する書き込み要求464の状態を判断することができる。
さらに別の実施形態において、評価モジュール306は、アプリケーション206が書き込み要求を固定サイズのキャッシュ204に送る速度を決定することによって、格納要求レベルを評価する。評価モジュール306は、所定の時間中にアプリケーション206によって出された書き込み要求の数をカウントすることによって、速度を判断することができる。
次に、評価モジュール306は、カウントをしきい値と比較し、割り当てモジュール308に格納要求レベルの状態を提供する。評価モジュール306はまた、所定の時間でカウントを除算して速度を獲得し、次にその速度をしきい値と比較し、割り当てモジュール308に格納要求レベルの状態を提供することもできる。
上述した評価モジュール306の実施形態の各々において、評価モジュール306に、しきい値が与えられる。評価モジュール306の実施形態の各々は、格納要求レベルを評価するために評価モジュール306が用いる方法に基づいて、異なるしきい値を必要とすることがある。ユーザ、構成ファイル、アプリケーション・プログラミング・インターフェース(API)、変数、データ構造、又は当業者に公知の他の方法によって、評価モジュール306にしきい値を与えることができる。代替的に、しきい値は、評価モジュール306の一部としてハードコード化することができる。割り当てモジュール308及び許可モジュール310がペーシングを可能にし、これにより固定サイズのキャッシュ204が完全にいっぱいになる前に、書き込み要求の速度が落ちるように、しきい値が選択される。
ここで図5に戻ると、格納要求レベルがしきい値より上である(又は、幾つかの実施形態においては、しきい値より上であるか、しきい値と等しい)場合には、割り当てモジュール308は、ペーシング値を書き込み要求に割り当てる。ペーシング値は、優先順位モジュール304によって与えられた優先順位に基づいている。ペーシング値により、遅延機構が提供される。割り当てモジュール308が書き込み要求をペーシング値に割り当てると、許可モジュール310は、ペーシング値が満たされた後まで、アプリケーション206からの次の書き込み要求を許可しない。
1つの実施形態において、ペーシング値は、時間を含む。ペーシング値によって指定された時間が満了すると、このタイプのペーシング値が満たされる。ペーシング値によって指定された時間は、実質的にゼロミリ秒から実質的に5秒までの間とすることができる。
別の実施形態において、ペーシング値は、所定の固定サイズのキャッシュの占有率を含む。現在の固定サイズ・キャッシュの占有率が、ペーシング値によって指定された所定の固定サイズのキャッシュの占有率より低いとき、このタイプのペーシング値が満たされる。例えば、ペーシング値が50パーセントであり、現在の固定サイズのキャッシュの占有率が60パーセントである場合、ペーシング値は満たされない。いつペーシング値が満たされるかを判断するために、許可モジュール310は、固定サイズのキャッシュの占有率を定期的にサンプリングすることができる。この例においては、サンプリングされた占有率が50パーセントより低いとき、ペーシング値が満たされる。
ペーシング値のこの実施形態によって導入される遅延量は、可変のものであり、一定ではない。この遅延量は、許可モジュール310が固定サイズのキャッシュの占有率をサンプリングする頻度、ペーシング値が割り当てられたときの固定サイズのキャッシュ204内にあるエントリの数、固定サイズのキャッシュ204内の書き込み要求が実行される速度といった要因、及び当業者に公知の他の要因によって決まる。
所定数の中央処理装置(CPU)クロック・サイクル又は所定の固定サイズのキャッシュの占有率の低下といった、他のペーシング値を用いることができる。さらに他のペーシング値は、特定の組のストレージ・ボリューム202に対する書き込み要求の所定の固定サイズのキャッシュの占有率、特定の優先順位を有する書き込み要求の所定の固定サイズのキャッシュの占有率、特定の組のアプリケーション206からの書き込み要求の所定の固定サイズのキャッシュの占有率などを含む。
割り当てモジュール308は、1組のペーシング値と1組の優先順位との間のマッピングに基づいて、ペーシング値を書き込み要求に割り当てることができる。割り当てモジュール308は、ファイル、オブジェクト、変数、リスト等のようなデータ構造におけるマッピングを保持することができ、又は割り当てモジュール308は、API、変数、関数呼出し等を通してマッピングを受け取ることもできる。マッピングは、ハードコード化することができ、又はユーザ構成可能なものにしてもよい。
図9は、1組の優先順位502と1組のペーシング値504との間のマッピング500の1つの実施形態を示すチャートである。この実施形態において、ペーシング値は、時間である。しかしながら、他の実施形態においては、ペーシング値は、キャッシュの占有率、CPUのサイクル数、又は上述した他のタイプのペーシング値の1つとすることができる。この実施形態においては、割り当てモジュール308は、各々の優先順位に固有のペーシング値を割り当てるので、優先順位502の組とペーシング値504の組と間に一対一対応が存在する。
例えば、優先順位「FF」508は、「0ms」のペーシング値506にマッピングされる。この例のペーシング値は、ミリ秒の指定された時間であるので、「0ms」のペーシング値506は、遅延をもたらさず、優先順位「FF」508を有する書き込み要求についてのペーシングを事実上使用不能にする。低い優先順位の書き込み要求を遅延させながら、高い優先順位の書き込み要求を遅延なく処理することを可能にし、高い優先順位の書き込み要求を妨げないので、特定の書き込み要求についてペーシングを使用不能にすることは望ましい。
図10は、1組の優先順位502と1組のペーシング値504との間のマッピング530の別の実施形態を示すチャートである。この実施形態において、割り当てモジュール308は、第1の優先順位534を有する書き込み要求に第1のペーシング値532を割り当て、第1の優先順位534以外の優先順位538を有する書き込み要求に第2のペーシング値536を割り当てる。上記の図9におけるように、図10に図示された実施形態は、ペーシング値として時間を示す。しかしながら、ペーシング値は、上述された他のタイプの1つとすることができる。
図11は、1組の優先順位502と1組のペーシング値504との間のマッピング560のさらに別の実施形態を示すチャートである。この実施形態においては、割り当てモジュール308は、第1の複数の優先順位564のうちの1つを有する書き込み要求に第1のペーシング値562を割り当て、第2の複数の優先順位568を有する書き込み要求に第2のペーシング値566を割り当て、結果として多対一のマッピングをもたらす。図11は、2つの複数の優先順位564、568を示しているが、付加的な複数の優先順位をペーシング値にマッピングすることも可能である。上記の図9におけるように、図11に示される実施形態は、ペーシング値として時間を示す。しかしながら、ペーシング値は、上述された他のタイプの1つとすることができる。
ここで図5に戻ると、許可モジュール310により、元の要求と関連付けられたペーシング値が満たされた時点で、アプリケーション206が次の書き込み要求を出すことが許可される。許可モジュール310は、いつペーシング値が満たされたかを判断する。許可モジュール310は、ペーシング値が満たされたかどうかを定期的に確認することによってこの判断を行うことができる。代替的に、許可モジュール310は、ペーシング値が満たされた時点で許可モジュール310に通知を与える機構を用いることができる。許可モジュール310は、当業者に公知の他の方法を用いて、いつペーシング値が満たされたかを判断することもできる。
1つの実施形態において、許可モジュール310及びアプリケーション206は、許可モジュール310が元の書き込み要求を確認するまで、アプリケーション206が次の書き込み要求を出さないような方法で通信する。この実施形態においては、許可モジュール310は、ペーシング値が満たされた後まで元の書き込み要求の確認を送るのを待つ。アプリケーション206が確認を受信するまで、次の書き込み要求を出さないので、許可モジュール310により、ペーシング値が満たされるまで確認を保留することによって、アプリケーション206が固定サイズのキャッシュ204に書き込み要求を付加する速度が事実上低下される。この速度の低下により、固定サイズのキャッシュ204における書き込み要求の数が調整される。
格納要求レベルがしきい値より下である(又は、幾つかの実施形態においては、しきい値と等しいか、或いはしきい値より下である)場合には、割り当てモジュール308は、ペーシング値を割り当てることができず、よって許可モジュール310により、書き込み要求の確認が遅延されない。固定サイズのキャッシュ204内のスロットに対する要求が増大するにつれて、最終的に格納要求レベルがしきい値より上がり、許可モジュール310が確認の遅延を始め、よってキャッシュに入る書き込み要求の数が低下する。同時に、キャッシュ内の書き込み要求が実行され、固定サイズのキャッシュから除去され、新しい書き込み要求のためのスペースを作る。最終的に、書き込み要求が、キャッシュに付加する速度を上回る速度で実行された場合、格納要求レベルは、格納要求レベルのしきい値を下回り、もはや許可モジュールは確認を遅延させない。
勿論、他の方法を用いて、元の書き込み要求のペーシング値が満たされた時点で次の書き込み要求を可能にすることができる。例えば、アプリケーション206がトークンを所有する場合に、アプリケーション206が書き込み要求を出すことができるように、トークン手法を用いることができる。許可モジュール310は、アプリケーション206が書き込み要求を出す時点でトークンを所有することになり、該書き込み要求と関連付けられたペーシング値が満たされるまでトークンを放棄しない。許可モジュール310は、当業者に公知の次の書き込み要求を可能にするために、他の同様の技術を用いることもできる。
図12は、固定サイズのキャッシュ204における書き込み要求の数を調整する方法600の1つの実施形態を示すフローチャート図である。この方法600は、コンピュータ可読コードを修正し、上述のストレージ・コントローラ208を実装することによって、従来のシステムに実装できることが好ましい。この方法600は、調査モジュール302が、アプリケーション206によって出された書き込み要求を調査する(604)ときに開始する(602)。
次に、優先順位モジュール304が、書き込み要求についての優先順位を決定する606。上述のように、優先順位モジュール304は、オペレーティング・システムによって定められた入力/出力優先順位値のような書き込み要求の特性に基づいて、優先順位を決定する。次に、評価モジュール306が、固定サイズのキャッシュ204についての格納要求レベルを評価する608。評価モジュール306は、上述の技術を用いて、固定サイズのキャッシュ204内のスロットに対する要求が、しきい値より上であるか、下であるか、又はしきい値と等しいかを判断することができる。要求がしきい値より上である(又は、幾つかの実施形態においては、しきい値と等しい)場合には、割り当てモジュール308は、ペーシング値を書き込み要求に割り当てる(610)。ペーシング値は、時間、又は上述された他のタイプのペーシング値の1つとすることができる。
次に、許可モジュール310は、ペーシング値が満たされたかどうかを判断する(612)。ペーシング値が満たされた場合には、許可モジュール310は、アプリケーション206が、次の書き込み要求を出すことを可能にし(614)、方法が終了する(616)。次に、ペーシング値が満たされない場合には、許可モジュール310は、ペーシング値が満たされるまで、アプリケーション206から次の書き込み要求を出す許可を保留する。
コンピュータ可読コードをコンピューティング・システムに組み入れる、コンピューティング・インフラストラクチャを配置する方法が、固定サイズのキャッシュ204における書き込み要求の数を調整するための装置300を用いる。
本発明は、固定サイズのキャッシュ204内のスロットを消費する速度を落とすことによって、アプリケーション206が、固定サイズのキャッシュ204における書き込み要求の数を調整するというものである。本発明は、固定サイズのキャッシュ204における書き込み要求の数を調整することによって、高い優先順位の書き込み操作における固定サイズのキャッシュ204のオーバーフロー及び遅延を減少させる。さらに、本発明は、書き込み要求当たりのベースに基づいてペーシング値を割り当て、細かい粒度を提供する。本発明はまた、書き込み要求の宛先ストレージ・ボリュームに基づいてペーシング値を割り当てることも可能にする。
本発明は、その精神及び本質的な特性から逸脱することなく、他の特定の形態で実施することができる。説明された実施形態は、あらゆる点で、例証としてのみ考えるべきであり、限定的なものであると考えるべきではない。したがって、本発明の範囲は、上記の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の等価物の意味及び範囲内にある全ての変更が、その範囲内に含まれるべきである。
本明細書の全体にわたる、特徴、利点、又は類似した語への参照は、本発明を用いて実現することができる特徴及び利点の全てが、本発明のいずれかの単一の実施形態内に存在すべきであるか、又は存在することを意味するものではない。寧ろ、特徴及び利点に関する語は、1つの実施形態に関して説明された特定の特徴、利点、又は特性が、本発明の少なくとも1つの実施形態内に含まれることを意味するように理解される。したがって、本明細書の全体にわたって、特徴及び利点、及び類似した語の記載は、必ずしもではないが、同じ実施を指すことがある。
さらに、1つ又は複数のの実施形態において、本発明の説明された特徴、利点、及び特性が、何らかの適切な方法で組み合わせることができる。当業者であれば、本発明は、特定の実施形態の特定の特徴又は利点の1つ又は複数を用いずに実施できることを認識するであろう。他の例においては、特定の実施形態において、本発明の全ての実施形態内に存在しない付加的な特徴及び利点を認識することができる。
本明細書に説明された多くの機能単位は、その実装上の独立性を特に強調するために、モジュールと表記された。例えば、モジュールは、カスタムVLSI回路又はゲートアレイ、論理チップのような市販の半導体、トランジスタ、又は他の別個のコンポーネントを含むハードウェア回路として実装することができる。モジュールはまた、データ値プログラム可能ゲートアレイ、プログラム可能アレイ論理、プログラム可能論理デバイス等のようなプログラム可能なハードウェア・デバイス内に実装することができる。
種々のタイプのプロセッサによる実行のために、モジュールをソフトウェア内にプログラム等として実装することもできる。例えば、実行可能コードの識別されたモジュールは、例えば、オブジェクト、手続き、又は関数として組織化することができる、コンピュータ命令の1つ又は複数の物理的ブロック又は論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの実行ファイルは、物理的に一緒に配置する必要はなく、論理的に一緒に接続されたとき、モジュールを含み、モジュールについて述べられた目的を達成する、異なる位置に格納された異なる命令を含むことができる。
実際に、実行可能コードのモジュールは、単一の命令又は多数の命令とすることができ、幾つかの異なるコード・セグメントにわたって、異なるプログラムの間に、幾つかのメモリ・デバイスにわって分散させることさえできる。同様に、操作データは、モジュール内でここに識別し、示すことができ、いずれかの適切な形態で具体化することができ、いずれかの適切なタイプのデータ構造内で組織化することができる。操作データは、単一のデータ・セットとして収集することができ、又は異なるストレージ・デバイス上を含む、異なる位置にわたって分散させることができ、単にシステム又はネットワーク上の電気信号として少なくとも部分的に存在することも可能である。
本明細書の全体にわたる、「1つの実施形態」、「実施形態」、又は類似の語への参照は、その実施形態に関して説明された特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書の全体にわたる、「1つの実施形態において」、「実施形態において」と言う句及び同様の語の出現は、必ずしもというわけではないが、全てが同じ実施形態を指している。
上記の説明において、本発明の実施形態の完全な理解を与えるために、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等のような多数の特定の詳細が与えられている。しかしながら、当業者であれば、本発明は、そのような特定の詳細の1つ又は複数を用いずに、或いは、他の方法、コンポーネント、材料等を用いて実施できることを認識するであろう。他の例においては、本発明の態様を不明瞭にしないように、周知の構造、材料、又は操作は、詳細に示されず、又は説明されない。
例示的な書き込み要求キャッシュのコンテンツを示すチャートである。 例示的な書き込み要求キャッシュのコンテンツを示すチャートである。 例示的な書き込み要求キャッシュのコンテンツを示すチャートである。 本発明による、固定サイズのキャッシュにおける書き込み要求の数を調整するためのシステムの1つの実施形態を示すブロック図である。 本発明による、固定サイズのキャッシュにおける書き込み要求の数を調整するための装置の1つの実施形態を示すブロック図である。 例示的な書き込み要求キャッシュのコンテンツを示すチャートである。 例示的な書き込み要求キャッシュのコンテンツを示すチャートである。 例示的な書き込み要求キャッシュのコンテンツを示すチャートである。 本発明による、1組の優先順位と1組のペーシング値との間の例示的なマッピングを示すチャートである。 本発明による、1組の優先順位と1組のペーシング値との間の例示的なマッピングを示すチャートである。 本発明による、1組の優先順位と1組のペーシング値との間の例示的なマッピングを示すチャートである。 本発明による、固定サイズのキャッシュにおける書き込み要求の数を調整する方法の1つの実施形態を示すフローチャート図である。
符号の説明
100、204、400、430、460 キャッシュ
102 スロット
200 システム
202 ストレージ・ボリューム
206 アプリケーション
208、300 ストレージ・コントローラ
210 第1の通信バス
212 第2の通信バス
300 装置
302 調査モジュール
304 優先順位モジュール
306 評価モジュール
308 割り当てモジュール
310 許可モジュール
408、502 優先順位
504 ペーシング値

Claims (20)

  1. 固定サイズのキャッシュにおける書き込み要求の数を調整するための操作を行うように、デジタル処理装置によって実行可能な機械可読命令のプログラムであって、前記操作が、
    前記書き込み要求の特性に基づいて、アプリケーションによって生成された書き込み要求についての優先順位を決定するための操作と、
    固定サイズのキャッシュ内に書き込み要求を格納するための格納要求レベルを評価するための操作と、
    前記格納要求レベルに応答して、前記優先順位に基づいてペーシング値を前記書き込み要求に割り当てるための操作と、
    前記書き込み要求のペーシング値を満たすことに応答して、次の書き込み要求を許可するための操作と、
    を含むプログラム。
  2. 前記ペーシング値は、実質的にゼロミリ秒から実質的に5秒までの間の時間を含み、ペーシング値を満たすことは、前記時間が満了するまで待つことを含む、請求項1に記載のプログラム。
  3. 前記ペーシング値は、所定の固定サイズのキャッシュの占有率を含み、現在の固定サイズのキャッシュの占有率が、前記所定の固定サイズのキャッシュの占有率より低いとき、該ペーシング値が満たされる、請求項1に記載のプログラム。
  4. 格納要求レベルを評価するための前記操作は、受け取った書き込み要求の速度をしきい値と比較することをさらに含む、請求項1に記載のプログラム。
  5. 格納要求レベルを評価するための前記操作は、前記固定サイズのキャッシュ内に格納された1組のストレージ・ボリュームと関連付けられた書き込み要求のカウントをしきい値と比較することをさらに含む、請求項1に記載のプログラム。
  6. 割り当てるための前記操作は、第1の優先順位を有する書き込み要求に第1のペーシング値を割り当てること、及び前記第1の優先順位とは異なる優先順位を有する書き込み要求に第2のペーシング値を割り当てることをさらに含む、請求項1に記載のプログラム。
  7. 割り当てるための前記操作は、1組の優先順位と1組のペーシング値との間の一対一対応に基づいて、ペーシング値を前記書き込み要求に割り当てることをさらに含む、請求項1に記載のプログラム。
  8. 前記特性は、オペレーティング・システムによって定められた入力/出力優先順位値である、請求項1に記載のプログラム。
  9. 固定サイズのキャッシュにおける書き込み要求の数を調整するためのシステムであって、
    固定サイズのキャッシュと、
    アプリケーションと、
    少なくとも1つのストレージ・ボリュームと、
    前記アプリケーションによって生成された書き込み要求を調査するように構成された調査モジュールと、
    前記書き込み要求の特性に基づいて、該書き込み要求についての優先順位を決定するように構成された優先順位モジュールと、
    前記固定サイズのキャッシュ内に書き込み要求を格納するために格納要求レベルを評価するように構成された評価モジュールと、
    前記格納要求レベルに応答して、前記優先順位に基づいて前記書き込み要求にペーシング値を割り当てるように構成された割り当てモジュールと、
    前記書き込み要求の前記ペーシング値を満たすことに応答して、次の書き込み要求を許可するように構成された許可モジュールと
    を含むストレージ・コントローラと、
    前記固定サイズのキャッシュと前記ストレージ・ボリュームとの間の通信を容易にするように構成された第1の通信バスと、
    前記アプリケーション、ストレージ・コントローラ、及び固定サイズのキャッシュ間の通信を容易にするように構成された第2の通信バスと
    を備えるシステム。
  10. 前記ペーシング値は、実質的にゼロミリ秒から実質的に5秒までの間の時間を含み、ペーシング値を満たすことは、前記時間が満了するまで待つことを含む、請求項9に記載のシステム。
  11. 前記アプリケーションは、前記ストレージ・コントローラが元の書き込み要求を確認するまで付加的な書き込み要求を保留するようにさらに構成される、請求項9に記載のシステム。
  12. 前記評価モジュールは、受け取った書き込み要求の速度をしきい値と比較するようにさらに構成される、請求項9に記載のシステム。
  13. 前記割り当てモジュールは、第1の優先順位を有する書き込み要求に第1のペーシング値を割り当て、前記第1の優先順位とは異なる優先順位を有する書き込み要求に第2のペーシング値を割り当てるようにさらに構成される、請求項9に記載のシステム。
  14. ペーシング値を書き込み要求に割り当てるための装置であって、
    アプリケーションによって生成された書き込み要求と関連付けられた、オペレーティング・システムが定めた入力/出力優先順位値を読み取るように構成された調査モジュールと、
    前記書き込み要求の前記入力/出力優先順位値に基づいて、該書き込み要求についての優先順位を決定するように構成された優先順位モジュールと、
    固定サイズのキャッシュ内に格納された、1組のストレージ・ボリュームと関連付けられた書き込み要求のカウントをしきい値と比較することによって、書き込み要求を固定サイズのキャッシュ内に格納するための格納要求レベルを評価するように構成された評価モジュールと、
    前記格納要求レベルに応答して、前記優先順位に基づいてペーシング値を前記書き込み要求に割り当てるように構成された割り当てモジュールであって、前記ペーシング値は実質的にゼロミリ秒から実質的に5秒までの間の時間を含み、該ペーシング値を満たすことは、前記時間が満了するまで待つことを含む、割り当てモジュールと、
    前記書き込み要求の前記ペーシング値を満たすことに応答して、次の書き込み要求を許可するように構成された許可モジュールと
    を備える装置。
  15. 前記割り当てモジュールは、第1の優先順位を有する書き込み要求に第1のペーシング値を割り当て、前記第1の優先順位とは異なる優先順位を有する書き込み要求に第2のペーシング値を割り当てるようにさらに構成される、請求項14に記載の装置。
  16. 前記割り当てモジュールは、1組の優先順位と1組のペーシング値との間の一対一対応に基づいて、前記書き込み要求にペーシング値を割り当てるようにさらに構成される、請求項14に記載の装置。
  17. コンピュータ可読コードをコンピュータ・システム内に統合するステップを含むコンピューティング・インフラストラクチャを配置する方法であって、前記コンピュータ・システムと協働する前記コードは、固定サイズのキャッシュにおける書き込み要求の数を調整することができる、前記方法が、
    アプリケーションによって生成された書き込み要求を調査するステップと、
    前記書き込み要求の特性に基づいて、該書き込み要求についての優先順位を決定するステップと、
    固定サイズのキャッシュ内に書き込み要求を格納するための格納要求レベルを評価するステップと、
    前記格納要求レベルに応答して、前記優先順位に基づいて、ペーシング値を前記書き込み要求に割り当てるステップと、
    前記書き込み要求の前記ペーシング値を満たすことに応答して、次の書き込み要求を許可するステップと
    を含む方法。
  18. 前記ペーシング値は時間を含み、該ペーシング値を満たすことは、前記時間が満了するまで待つステップを含む、請求項17に記載の方法。
  19. 格納要求レベルを評価する前記ステップは、固定サイズのキャッシュ内に格納された1組のストレージ・ボリュームと関連付けられた書き込み要求のカウントをしきい値と比較するステップをさらに含む、請求項17に記載の方法。
  20. 前記割り当てるステップは、1組の優先順位と1組のペーシング値との間の一対一対応に基づいて、ペーシング値を前記書き込み要求に割り当てるステップをさらに含む、請求項17に記載の方法。
JP2006312287A 2006-01-03 2006-11-17 固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法 Expired - Fee Related JP4857086B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/324592 2006-01-03
US11/324,592 US7523271B2 (en) 2006-01-03 2006-01-03 Apparatus, system, and method for regulating the number of write requests in a fixed-size cache

Publications (2)

Publication Number Publication Date
JP2007183926A true JP2007183926A (ja) 2007-07-19
JP4857086B2 JP4857086B2 (ja) 2012-01-18

Family

ID=38226022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006312287A Expired - Fee Related JP4857086B2 (ja) 2006-01-03 2006-11-17 固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法

Country Status (3)

Country Link
US (1) US7523271B2 (ja)
JP (1) JP4857086B2 (ja)
CN (1) CN100458737C (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783839B2 (en) * 2007-01-08 2010-08-24 International Business Machines Corporation Using different algorithms to destage different types of data from cache
US7721043B2 (en) * 2007-01-08 2010-05-18 International Business Machines Corporation Managing write requests in cache directed to different storage groups
US7934069B2 (en) * 2007-04-27 2011-04-26 Hewlett-Packard Development Company, L.P. Enabling and disabling cache in storage systems
US7702871B1 (en) * 2007-08-31 2010-04-20 Emc Corporation Write pacing
US8019732B2 (en) 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US8639888B2 (en) 2010-12-10 2014-01-28 International Business Machines Corporation Systems and methods for managing cache destage scan times
US8656109B2 (en) 2010-12-10 2014-02-18 International Business Machines Corporation Systems and methods for background destaging storage tracks
US8661202B2 (en) 2010-12-10 2014-02-25 International Business Machines Corporation Systems and methods for destaging storage tracks from cache
US8661201B2 (en) 2010-12-10 2014-02-25 International Business Machines Corporation Systems and methods for managing destage conflicts
US8560771B2 (en) 2011-07-22 2013-10-15 International Business Machines Corporation Efficient track destage in secondary storage
KR101381689B1 (ko) * 2012-08-03 2014-04-22 기초과학연구원 콘텐츠 이용 특성에 기초하여 콘텐츠를 관리하는 콘텐츠 제공 장치
US9182922B2 (en) 2013-09-11 2015-11-10 GlobalFoundries, Inc. Dynamically adjusting write pacing by calculating a pacing level and then delaying writes for a first channel command word (CCW) based on pacing level
US9378219B1 (en) * 2013-09-30 2016-06-28 Emc Corporation Metro-cluster based on synchronous replication of virtualized storage processors
US9880777B1 (en) 2013-12-23 2018-01-30 EMC IP Holding Company LLC Embedded synchronous replication for block and file objects
US9679162B2 (en) * 2014-02-24 2017-06-13 Google Inc. Application permission settings
CN105573920B (zh) * 2014-10-09 2019-02-01 华为技术有限公司 存储空间管理方法和装置
US9417814B1 (en) * 2015-02-12 2016-08-16 HGST Netherlands B.V. Tempered pacing of shingled magnetic storage devices
CN114691698B (zh) * 2022-04-24 2022-11-08 山西中汇数智科技有限公司 一种计算机系统的数据处理系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01183752A (ja) * 1988-01-18 1989-07-21 Daikin Ind Ltd データ入出力制御装置および方法
JPH04264940A (ja) * 1991-02-20 1992-09-21 Hitachi Ltd 制御装置及び制御装置の制御方法
JP2002197046A (ja) * 2000-09-28 2002-07-12 Matsushita Electric Ind Co Ltd ディスクi/oサブシステムのサービス品質に期限と優先順位とを同時に提供する方法
JP2005301442A (ja) * 2004-04-07 2005-10-27 Hitachi Ltd ストレージ装置
US20060095686A1 (en) * 2004-10-29 2006-05-04 Miller Wayne E Management of I/O operations in data storage systems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336143B1 (en) 1993-09-27 2002-01-01 International Business Machines Corporation Method and apparatus for multimedia data interchange with pacing capability in a distributed data processing system
US6085277A (en) 1997-10-15 2000-07-04 International Business Machines Corporation Interrupt and message batching apparatus and method
US6023720A (en) * 1998-02-09 2000-02-08 Matsushita Electric Industrial Co., Ltd. Simultaneous processing of read and write requests using optimized storage partitions for read and write request deadlines
CN1229953A (zh) * 1998-02-17 1999-09-29 国际商业机器公司 具有全局和局部标记状态的高速缓存相干性协议
US6434161B1 (en) 1998-02-25 2002-08-13 3Com Corporation UART with direct memory access buffering of data and method therefor
SE511849C2 (sv) 1998-03-31 1999-12-06 Ericsson Telefon Ab L M Anordning och metod för buffertskydd
US6654343B1 (en) 2001-03-19 2003-11-25 Turin Networks Method and system for switch fabric flow control
JP3977698B2 (ja) * 2002-07-05 2007-09-19 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法、及びプログラム
US7225293B2 (en) * 2003-06-16 2007-05-29 Hitachi Global Storage Technologies Netherlands B.V. Method, system, and program for executing input/output requests

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01183752A (ja) * 1988-01-18 1989-07-21 Daikin Ind Ltd データ入出力制御装置および方法
JPH04264940A (ja) * 1991-02-20 1992-09-21 Hitachi Ltd 制御装置及び制御装置の制御方法
US5418929A (en) * 1991-02-20 1995-05-23 Hitachi, Ltd. Controller for storage unit and method of controlling storage unit
JP2002197046A (ja) * 2000-09-28 2002-07-12 Matsushita Electric Ind Co Ltd ディスクi/oサブシステムのサービス品質に期限と優先順位とを同時に提供する方法
US6871011B1 (en) * 2000-09-28 2005-03-22 Matsushita Electric Industrial Co., Ltd. Providing quality of service for disks I/O sub-system with simultaneous deadlines and priority
JP2005301442A (ja) * 2004-04-07 2005-10-27 Hitachi Ltd ストレージ装置
US20060095686A1 (en) * 2004-10-29 2006-05-04 Miller Wayne E Management of I/O operations in data storage systems

Also Published As

Publication number Publication date
JP4857086B2 (ja) 2012-01-18
CN1996267A (zh) 2007-07-11
CN100458737C (zh) 2009-02-04
US7523271B2 (en) 2009-04-21
US20070156961A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
JP4857086B2 (ja) 固定サイズのキャッシュにおける書き込み要求の数を調整するための装置、システム、及び方法
US20230004329A1 (en) Managed fetching and execution of commands from submission queues
US6119190A (en) Method to reduce system bus load due to USB bandwidth reclamation
US7496699B2 (en) DMA descriptor queue read and cache write pointer arrangement
US8775549B1 (en) Methods, systems, and computer program products for automatically adjusting a data replication rate based on a specified quality of service (QoS) level
WO2019156727A1 (en) Method and system for user-space storage i/o stack with user-space flash translation layer
US7213084B2 (en) System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US20150058597A1 (en) Splitting direct memory access windows
US6067591A (en) Method and apparatus for avoidance of invalid transactions in a bus host controller
KR20220035242A (ko) 호스트 컴퓨팅 디바이스와 네트워크 인터페이스 디바이스를 포함하는 프로그래머블 네트워크 인터페이스 디바이스
US9229891B2 (en) Determining a direct memory access data transfer mode
EP1934733B1 (en) Rate pacing
US4604685A (en) Two stage selection based on time of arrival and predetermined priority in a bus priority resolver
US10705985B1 (en) Integrated circuit with rate limiting
US10318457B2 (en) Method and apparatus for split burst bandwidth arbitration
CN111124253B (zh) 管理存储设备的方法、装置和计算机程序产品
CN106537321B (zh) 存取文件的方法、装置和存储系统
CN112015527B (zh) 管理从提交队列获取和执行命令
JPS594733B2 (ja) キヨウツウバスセイギヨカイロ
TW202303378A (zh) 多個固態硬碟(ssd)提交佇列間的公平共享
KR102144011B1 (ko) 가상화 서비스에서 페이지 캐시 관리 방법 및 장치
CN113934671B (zh) 一种接口控制芯片及网络设备
RU2356087C1 (ru) Система и способ антиблокировки доступа к диску
TW202414231A (zh) 用以從讀取優先順序修復工作者份額之系統、方法及媒體
CN113542146A (zh) 报文的限速方法、相关设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111031

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees