JP5536807B2 - 共用リソースの割り当てを制御するためのシステム、方法、コンピュータ・プログラム - Google Patents

共用リソースの割り当てを制御するためのシステム、方法、コンピュータ・プログラム Download PDF

Info

Publication number
JP5536807B2
JP5536807B2 JP2011550570A JP2011550570A JP5536807B2 JP 5536807 B2 JP5536807 B2 JP 5536807B2 JP 2011550570 A JP2011550570 A JP 2011550570A JP 2011550570 A JP2011550570 A JP 2011550570A JP 5536807 B2 JP5536807 B2 JP 5536807B2
Authority
JP
Japan
Prior art keywords
request
shared resource
priority
response
requester
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.)
Expired - Fee Related
Application number
JP2011550570A
Other languages
English (en)
Other versions
JP2012518825A (ja
Inventor
エレール、ジュニア、トーマス
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 JP2012518825A publication Critical patent/JP2012518825A/ja
Application granted granted Critical
Publication of JP5536807B2 publication Critical patent/JP5536807B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

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

Description

本発明は、一般に、コンピューティング環境内の処理に関し、更に具体的には、コンピューティング環境における共用リソースの割り当てに関する。
コンピュータ・システム全体の性能は、コンピュータ構造の重要な要素の各々によって影響を受ける。それらの要素には、プロセッサ(複数のプロセッサ)の性能/構造、いずれかのメモリ・キャッシュ(複数のキャッシュ)、入出力(I/O)サブシステム(複数のサブシステム)、メモリ制御機能(複数の機能)の効率、主メモリ・デバイス(複数のデバイス)、ならびに相互接続インタフェース(複数のインタフェース)の種類および構造が含まれる。
コンピュータ・システム/サブシステムの設計または構造あるいはその両方を改良することによってシステム全体の性能および密度を最大化する改良型の解決策または革新的な解決策あるいはその両方を生成するために、この業界において幅広い研究開発の努力が目下進行中である。高可用性システムでは、システム全体の信頼性に関して更に別の問題がある。なぜなら、新しいコンピュータ・システムは、追加機能の提供、性能の向上、記憶容量の増大、動作コストの削減等に加えて、平均故障間隔(MTBF)に関して既存のシステムよりも著しく優れているものだというカスタマの期待があるからである。頻繁に見られる他のカスタマ要求も、コンピュータ・システム設計の問題を更に悪化させる。それらの要求には、アップグレードの容易さおよびシステム環境への影響(スペース、電力、および冷却等)の軽減のような事項が含まれる。
今日のマイクロプロセッサは多くのプロセッサを有し、それらの各々が多くの実行スレッドを動作させる。例えば、今日のマイクロプロセッサは、各々が4個のスレッドを有する8個のプロセッサを有し、ハイパーバイザのソフトウェアを用いて多数の仮想プロセッサを管理する場合がある。同時に実行させるスレッドの数は今後増えると予測されており、マイクロプロセッサは同時に数十のスレッドを動作させるようになると考えられる。
米国特許第7,320,047号
マイクロプロセッサは、ハイパーバイザの制御のもとにある多数の仮想プロセッサによって共用される多くのハードウェア・リソースを有する。これらの共用リソースには、物理プロセッサ、キャッシュ、多数のキャッシュ間のキャッシュ・コヒーレンスを提供する相互接続ネットワーク、メモリ・コントローラ、入出力(I/O)コントローラ等が含まれる。今日のマイクロプロセッサのハードウェア設計は、各物理プロセッサにおけるハードウェア・タイマと組み合わせたハイパーバイザ・ソフトウェアに頼って、仮想プロセッサが物理ハードウェア・リソースの公平な共用資源(share)を受け取ることを保証する。今日の設計においては、キャッシュ・アクセスおよびメモリ・コントローラ・アクセス等の「ダウンストリーム」共用リソースの公平な共用資源を各プロセッサに提供するように仮想プロセスを物理プロセッサにディスパッチするために、仮想プロセッサはハイパーバイザに頼っている。
本発明の例示的な実施形態は、共用リソースの割り当てを制御するためのシステムを含む。このシステムは、共用リソースおよび要求側識別子によって識別される複数の要求側に接続された次要求優先権モジュールを含む。次要求優先権モジュールは、待ち状態要求機構、ロギング機構、および次要求優先権論理を含む。待ち状態要求機構は、要求側の1個以上からの共用リソースに対する1つ以上の待ち状態の要求に優先順位を付ける。各待ち状態の要求は、関連付けられた要求側識別子を含む。待ち状態の要求の1つが、関連付けられた次の要求側識別子を有する次の待ち状態の要求として指名される。ロギング機構は、共用リソースに対する優先権を付与された以前の要求に関連付けられた要求側識別子のログをとる。次要求優先権論理は、次の待ち状態の要求および次の要求側識別子にアクセスし、共用リソースに対する優先権を次の待ち状態の要求に付与するか否かを判定する。この判定は、ログをとった要求側識別子および次の要求側識別子に応じたものである。共用リソースに対する優先権を次の待ち状態の要求に付与することの判定に応答して、共用リソースに対する優先権を次の待ち状態の要求に付与する。この付与に応答して次の要求側識別子のログをとる。
別の例示的な実施形態は、共用リソースの割り当てを制御するための方法を含む。この方法は、共用リソースにアクセスするための要求を受信することを含む。この要求は、プロセッサ上で実行する要求側から受信される。この受信は、プロセッサおよび共用リソースに接続された次要求優先権モジュールにおいて行われる。共用リソースに対する規定数の最も最近の優先権付与のいずれかが要求側に対して行われたか否かを判定する。共用リソースに対する規定数の最も最近の優先権付与のいずれも要求側に対して行われなかった場合、共用リソースに対する優先権を要求に付与する。共用リソースに対する規定数の最も最近の優先権付与のいずれかが要求側に対して行われた場合、共用リソースに対する1つ以上の他の要求が待ち状態であるか否かを判定する。共用リソースに対する他の要求が待ち状態である場合、共用リソースに対する優先権を他の要求の1つに付与するか否かを判定する。
更に別の例示的な実施形態は、共用リソースの割り当てを制御するためのコンピュータ・プログラムを含む。このコンピュータ・プログラムは、処理回路によって読み取り可能でありこの処理回路によって方法を実行するために実行される命令を記憶するタンジブルな記憶媒体を含む。この方法は、共用リソースにアクセスするための要求を受信することを含む。この要求は、プロセッサ上で実行する要求側から受信される。この受信は、プロセッサおよび共用リソースに接続された次要求優先権モジュールにおいて行われる。共用リソースに対する規定数の最も最近の優先権付与のいずれかが要求側に対して行われたか否かを判定する。共用リソースに対する規定数の最も最近の優先権付与のいずれも要求側に対して行われなかった場合、共用リソースに対する優先権を要求に付与する。共用リソースに対する規定数の最も最近の優先権付与のいずれかが要求側に対して行われたと判定された場合、共用リソースに対する1つ以上の他の要求が待ち状態であるか否かを判定する。共用リソースに対する待ち状態の他の要求が存在しない場合、共用リソースに対する優先権を要求に付与する。共用リソースに対する他の要求が待ち状態である場合、共用リソースに対する優先権を他の要求の1つに付与するか否かを判定する。
これより本発明の好適な実施形態について、以下の図面を参照しながら、単に一例として説明する。
本発明の例示的な実施形態によって実施可能であるいくつかのプロセッサおよび共用システム・リソースを有するコンピューティング・システムを示す。 本発明の例示的な実施形態によって実施可能である仮想サーバ制御論理ハードウェアを示す。 従来技術のメモリ・コントローラを示す。 本発明の例示的な実施形態によって実施可能であるメモリ・コントローラを示す。 本発明の例示的な実施形態によって実施可能である、共用システム・リソースに送信される次要求を選択するための一般化フローチャートを示す。 本発明の例示的な実施形態によって実施可能であるコンピュータ・プログラムを示す。
本発明の例示的な実施形態は、単一の仮想サーバまたは仮想サーバのグループに専用とすることができる共用リソースの入口において要求の数を制限するハードウェア制御を提供する。
今日のマイクロプロセッサのハードウェア設計においては、多くの仮想プロセッサを有する単一の仮想サーバが、マイクロプロセッサ・コアの外側で共用ハードウェア・リソースに対する大きな需要を生成する場合がある。この需要は、同一のハードウェア・システム上で現在動作している他の仮想サーバに性能の影響を及ぼすほど大きい場合がある。過去においては、ハイパーバイザまたはいずれかの同様のソフトウェア・システムにとって、仮想サーバの進行状況を監視し、他の仮想サーバを犠牲にして進行中の仮想プロセッサのディスパッチを制限することは比較的容易であった。仮想サーバ当たりのスレッド数が増えた場合、更に、単一のマイクロプロセッサ・チップ上の物理プロセッサ・コア(本明細書においてコア・プロセッサまたはプロセッサとも称する)の数が現在の1から8およびもっと大きい数に増えると、ハイパーバイザが監視することは難しくなる。
更に、キャッシュ挙動の極めて悪い作業負荷を動作させている仮想サーバによって、または(他の可能性の中でも)物理サーバの動作を混乱させようとする悪質なウィルス・プログラムによって、システム・リソースに対する過剰な需要が生じる場合がある。本発明の例示的な実施形態では、ハイパーバイザまたは他の制御プログラムが、仮想サーバまたは仮想サーバのグループによって消費することができるハードウェア・リソースに制限を設定することができる。本発明の例示的な実施形態は、単一の仮想サーバによって消費することができる最大のリソース共用資源を制限する能力を提供する。これらの制限は、ハイパーバイザまたは別の制御プログラムによって設定することができる。例示的な実施形態においては、ハイパーバイザの制御のもとで、各々の一意の仮想サーバに仮想サーバ識別子(VSID)を指定する。VSIDはいずれかの要求と共に送信され、この要求はプロセッサを発し、マイクロプロセッサ・チップ上またはシステム内の他のチップもしくはインタフェース上で共用リソースの使用を試みる。ハードウェア制御またはソフトウェア制御あるいはその両方によって、いずれかの単一の仮想サーバまたは仮想サーバのグループがハードウェア・リソースのある割合以上を占めるのを防ぐ。
図1は、例示的な実施形態によって実施可能であるマイクロプロセッサ・コンピューティング・システムの一部を示す。各コア・プロセッサ100は、専門のインタフェース110、140、および次要求優先権モジュール120を介して、1つ以上の共用リソース150に接続されている。本発明の例示的な実施形態においては、次要求優先権モジュール120はソフトウェアで実施される。本発明の例示的な実施形態では、次要求優先権モジュール120は、コア・プロセッサ100と共用リソース150との間に位置するシステム制御論理(SCL)の部分である。SCLは、複数のマイクロプロセッサ・コア間、および、それらのコアと、メモリ、データ・キャッシュ、I/Oコントローラ、専用アクセレレータ、データ圧縮エンジン等の他のシステム要素との間の物理相互接続を提供する。集中型スイッチ構造を用いる最新のコンピューティング・システムは、スイッチ機能に専用の1つ以上のチップ上でSCLを実施する場合がある。そして、これらのスイッチ・チップが、マイクロプロセッサ・チップおよびメモリ・チップ・アレイおよびシステムの他の要素に接続される。分散型スイッチ構造を用いるコンピューティング・システムは、各マイクロプロセッサ・チップ上でSCLの一部を実施する場合がある。この場合、マイクロプロセッサ・チップを相互に直接接続し、それらの接続のために用いるインタフェースはSCLによって制御される。SCLは、ソース・マイクロプロセッサ・コアと共用システム・リソースとの間の要求の流れを制御するように機能する。また、これは、戻ってくるデータの流れも制御する。
集中型スイッチの場合または分散型スイッチの場合のいずれかにおいて、本発明の実施形態を用いるコンピューティング・システムは、今日のシステムにおいて見られるSCLの典型的な位置の他に、例えばメモリDRAM上で共用リソースに最も近い箇所にSCLの一部を配置することができる。本発明の他の例示的な実施形態は、他の点では標準的なメモリ・インタフェースを駆動するメモリ・コントローラ論理等の共用通信インタフェースのいずれかの端部にSCLの一部を配置することができる。特定のコンピューティング・システム設計におけるSCLの一部の配置は、限定ではないが、利用可能な論理空間、電力消費、および設計の複雑さを含む多数のファクタに依存する。多くの今日の設計はマルチスレッド・プロセッサを含むので、例示的な実施形態において、重要な共用リソースもコアと同じマイクロプロセッサ・チップ上に位置させることができ、従ってSCLの一部もそこに位置させることができる。他の例示的な実施形態では、SRAMまたはeDRAMデータ・キャッシュ等の共用リソースへと通じる論理の共用パイプラインの始点に論理を配置することができる。
図1に示したシステムの1つのコア・プロセッサ100bは、インタフェース110bを介して次要求優先権モジュール120aに接続されている。また、同じコア・プロセッサ100bは、別の専用インタフェース110cを介して次要求優先権モジュール120bに接続されている。共用リソース150に対するアクセスは、次要求優先権モジュール120によって制御される。
図1に示した次要求優先権モジュール120は、仮想サーバ制御論理121および次要求優先権論理122を含む。図2に関連付けて、仮想サーバ制御論理121の例示的な実施形態について以下に説明する。図4に関連付けて、次要求優先権論理122の例示的な実施形態について以下に説明する。
本発明の例示的な実施形態は多数のIBM P6マイクロプロセッサを用い、その各々は4個の処理コアを有する。本発明の例示的な実施形態は、いずれかの数のマイクロプロセッサ・チップを有するシステム上で用いることができる。更に、例示的な実施形態は、いずれかの数のコア・プロセッサを含むいずれかのタイプのマイクロプロセッサと共に実施することができる。更に、例示的な実施形態は、多数のマルチスレッド実施のいずれかをサポートするマイクロプロセッサと組み合わせて用いることができる。
図1に示すように、このシステムにおいて、コア・プロセッサ100の各々にVSIDレジスタ160が設けられている。VSIDレジスタ160は、コア・プロセッサ100上で実行するソフトウェアによって書き込むことができる。本発明の例示的な実施形態は、ハイパーバイザを用いてこのタスクを実行する。マルチスレッドがアクティブであると予想され、一度に多数の仮想サーバからのソフトウェアを動作させるために個々のスレッドが指定されるシステムにおいて、各スレッドにVSIDレジスタ160を提供することができる。本発明の例示的な実施形態において、ハイパーバイザは、制御する各仮想サーバについてVSIDを選択する。仮想サーバを物理プロセッサ(例えばコア・プロセッサ100)にディスパッチすると、そのコア・プロセッサ100についてVSIDレジスタ160にVSIDが書き込まれる。
VSIDレジスタ160の内容は、インタフェース110を介して共用リソース150に伝達されるコマンド、アドレス、およびデータに含まれている。インタフェース110は、最新のメモリ・コントローラに接続するために用いられるもの等の今日の要求インタフェースと同様のものとすることができる。VSID情報および従来技術のコマンド、アドレス、およびデータ情報の組み合わせは、コア・プロセッサ100からダウンストリームで共用リソース150に対するアクセスを制御するために論理によって用いられる。本発明の例示的な実施形態では、次要求優先権モジュール120を用いて、コア・プロセッサ100a〜100cを有するマイクロプロセッサ・チップの外側の(すなわちそのマイクロプロセッサ・チップ上には位置していない)共用リソース150に対するアクセスを制御する。他の実施形態では、同様のハードウェアおよび方法を用いて、オンチップ・メモリ・コントローラ、オンチップI/Oコントローラ、オンチップ・データ・キャッシュ、または他のいずれかのオンチップ・リソース等のマイクロプロセッサ・チップの内側に位置するリソースに対するアクセスを制御する。
本発明の例示的な実施形態において、VSIDは、コンピューティング・システム上でハイパーバイザが現在ホストとして機能している各仮想サーバごとに一意である。本発明の他の実施形態では、一意のVSIDのハッシュまたは全VSIDのビットの単純なサブセットを用いることができる。本発明の1つの例示的な実施形態では、コア・プロセッサ100から共用リソース150へと伝達しなければならない要求情報をVSIDに追加するのに必要なハードウェア・オーバーヘッドを軽減するために、VSIDの最下位2ビットだけを用いる。VSIDのサブセットの使用によって、仮想サーバに対する要求スロット分配の精度レベルが下がるが、コンピューティング・システム上で動作しているほとんどの仮想サーバにとって予測できない性能を防ぐことができる。
本明細書において用いる場合、VSIDは、共用リソース(例えばメモリ)に対する要求に要求側(例えば仮想サーバ)を関連付けるために使用可能な要求側識別子の一例である。代替的な実施形態においては、当業者に明らかであるような他の要求側識別子を利用することができる。
図1に、コア・プロセッサ100と共用リソース150との間の相互接続を、ポイント・ツー・ポイント・バス110、140の集合として示す。本発明の代替的な例示の実施形態では、他の多くの構成の中でも、共用バス、全クロスバー・スイッチ、または一連の相互接続スイッチ等の他のいずれかのタイプの相互接続を利用することができる。
図2は、本発明の例示的な実施形態によって利用可能な仮想サーバ制御論理121を示す。図2に示した仮想サーバ制御論理121は、共用リソース150について待ち状態の要求を格納するための要求キューを構成するレジスタ・グループ220を含む。また、レジスタ220は、各要求ごとに要求側識別子(例えばVSID)を含む。要求側識別子は、要求側(例えばコア・プロセッサ100上で実行している仮想サーバ)に要求を関係付ける。要求キューは、(例えば、キュー内で各要求がどのような長さであったか、キュー内の時間および要求側に関連付けた優先権の組み合わせ等に基づいて)配列され、新しい要求の処理に共用リソース150が利用可能である場合に処理のために評価される次要求として、要求の1つが指名される。レジスタ220は、インタフェース110の1つを介してコア・プロセッサ100から到着した待ち状態の要求を含む。本発明の例示的な実施形態では、4個の要求を待ち状態に保持することができる。他の実施形態では、この機能のためにいかなる数のレジスタも追加して(または減少させて)用いることができる。また、キュー内に保持される要求の数は、プログラム可能な深さによって設計することができる。
また、本発明の例示的な実施形態は、複数のレジスタ230で構成される以前の要求側キューも含む。本発明の例示的な実施形態は、4位置深さ(four positiondeep)先入れ先出しバッファを用いた以前の要求側キューを実施して、共用リソース150に対する優先権を付与された最後の4個の要求のVSIDを保持する。他のいずれかのバッファ深さも用いることができる。また、バッファはプログラム可能な深さを用いて設計することも可能である。例示的な実施形態において、この深さは、ハイパーバイザによって、または他のいずれかの適切なスーパーバイザ・ソフトウェアによって、または適切なハードウェア・アルゴリズムによって設定される。例示的な実施形態においては、バッファの深さはシステムの初期起動シーケンスの間に設定され、次いで後の時点でハイパーバイザによって変更される。
図2に示した要求キュー220は、本発明の例示的な実施形態によって実施可能である待ち状態要求機構の一例である。本発明の例示的な実施形態によって、ハードウェアまたはソフトウェアあるいはその両方において待ち状態要求機構を実施する他の方法を利用可能である。例えば、待ち状態要求機構は、特定のVSIDに有利であるように設計することができる。有利とされたVSIDには、例えば25パーセント等、ある一定の共用リソース使用割合を与えることができる。
同様に、図2に示した以前の要求側キュー230は、本発明の例示的な実施形態によって実施可能であるロギング機構の一例である。本発明の例示的な実施形態によって、ハードウェアまたはソフトウェアあるいはその両方においてロギング機構を実施する他の方法を利用可能である。例えば、特定のVSIDを有する要求に対して共用リソースの次の使用の優先権を付与するたびに増分する1組のカウンタとして、ログを実施することができる。各カウンタには、ある範囲のVSIDを指定することができる。本発明の実施形態を実施するために、待ち状態要求機構およびロギング機構の広範囲の組み合わせを使用可能であることは理解されよう。待ち状態要求機構の状態と共にロギング機構の状態を用いるいずれかの適切な論理を用いて、共用リソースに送信される次の要求を決定することができる。
本発明の例示的な実施形態は、共用リソース150としてメモリを用いる。米国特許第7,320,047号からの図3におけるメモリ・システム300は、本発明の例示的な実施形態と共に使用可能な従来技術のメモリ・システムの一例である。メモリ・システム300は、メモリ・コントローラ310、複数のポイント・ツー・ポイント・リンク320a〜320n、複数のメモリ・サブシステム330a〜330c、およびインタフェース375上の複数のメモリ・サブシステム・ポート378a〜378nを含む。図3において、メモリ・サブシステム330aの更に詳細な図をメモリ・サブシステム340として示す。メモリ・サブシステム340は、メモリ・サブシステム340上に配置されたバッファ・デバイス350および複数のメモリ・デバイス360を含む。バッファ・デバイス350は、チャネル370を介して複数のメモリ・デバイス360に結合されている。
図4に示したメモリ・システム300Bは、図3に示した従来技術のメモリ・システムと共に実施可能である例示的な実施形態を示す。図3と同様に、図4が示すメモリ・システム300Bは、メモリ・コントローラ310B、複数のポイント・ツー・ポイント・リンク320aB〜320nB、複数のメモリ・サブシステム330aB〜330cB、およびインタフェース375B上の複数のメモリ・サブシステム・ポート378aB〜378nBを含む。図4において、メモリ・サブシステム330aBの更に詳細な図をメモリ・サブシステム340Bとして示す。メモリ・サブシステム340Bは、メモリ・サブシステム340B上に配置されたバッファ・デバイス350Bおよび複数のメモリ・デバイス360Bを含む。バッファ・デバイス350Bは、チャネル370Bを介して複数のメモリ・デバイス360Bに結合されている。また、図4に示したメモリ・コントローラ310Bは、図4に要素390Bとして示す次要求優先権論理120、130を含む。図示した例示的な実施形態では次要求優先権モジュール390Bがメモリ・コントローラ310Bに配置されているが、これはメモリ・バッファ・デバイス350Bまたはメモリ・デバイス360Bに位置させることも可能であることは理解されよう。例示的な実施形態は、メモリ・システムにおける使用に限定されず、他のいずれかの共用リソースを同様の方法で制御することができる。
図5は、本発明の例示的な実施形態によって実施可能な、共用システム・リソース150に送信される次要求を選択するための一般化したフローチャートを示す。図5は、仮想サーバ制御論理121および要求インタフェース140を管理する次要求優先権論理122において実施される機能を示す。ブロック410において、次要求優先権論理122は、要求キューにおける次エントリを調査する。前述のように、本発明の1つの例示的な実施形態においては、次エントリは要求キューにおける最も古いエントリである。ブロック420において、次エントリに関連付けられた要求側識別子が、以前の要求側キューにおけるエントリのいずれかと一致するか否かを判定する。図5に示す例示的な実施形態において、以前の要求側キューは、共用リソースに対する優先権が付与された最後の4個の要求側の要求側識別子を含む4深さ先入れ先出しバッファによって実施される。この例において、最も最近の優先権付与の規定数は4であり、他の実施形態においては他の規定数が実施される。
ブロック420において、要求側識別子が以前の要求側キューにおける要求側識別子のいずれかと一致すると判定されると、処理は続いてブロック450において、次の要求が要求キューにおける最後の要求であるか否かを判定する。この場合、共用リソース150を待っている要求側は他には存在しないので、共用リソース150に対する優先権を要求側に付与しなければならない。ブロック460において、要求側は共用リソースに対する優先権を付与される。代替的な例示の実施形態においては、要求キューに存在する要求が1つだけであり、それに関連付けられた要求側識別子が以前の要求キューにおいて見出された場合に、異なるアクションが行われる。この代替的な例示の実施形態においては、次要求に優先権は与えられず、次サイクルにおいて共用リソース150に要求は送信されない。これは、共用リソース150が一度に対応することができる要求数に比べて要求のサービス時間が長い場合に、望ましい場合がある。
ブロック450において、次要求が要求キューにおける最後の要求でないと判定された場合、キューにおける別の要求を次要求として指名し(例えばこれが次に最も古い要求であること、または他の何らかの優先権スキームに基づいて)、処理はブロック410において継続する。
ブロック420において、要求側識別子が以前の要求側キューにおける要求側識別子のいずれにも一致しないと判定された場合、処理はブロック430において継続する。ブロック430において、次要求には共用リソース150に対する優先権が付与される。ブロック440において、次要求に関連付けられた要求側識別子を以前の要求側キューに追加する。本発明の例示的な実施形態においては、新しい要求側識別子によって以前の要求側キューにおける最も古いエントリを置換する。優先権が付与された要求は、インタフェース140を介して共用リソース150に送信される次要求になる。
図5は例示的な実施形態によって実施可能である1つの処理フローを示すが、本発明の代替的な例示的な実施形態によって他の処理フローを実施することも可能である。例えば、本発明の別の例示的な実施形態においては、1つ以上の特定の仮想サーバからの要求を他の全ての要求よりも有利とする優先権機能を実施するために、1つ以上の仮想サーバに要求側識別子を指定し、更に、以前の要求側キュー(または他のロギング機構)にいくつの以前の要求側識別子をセーブするかを選択する。一例においては、多くのCPU間で共用されるメモリ・コントローラについての要求スロットの少なくとも10パーセントを特定の仮想サーバに与えることができる。
本発明の別の例示的な実施形態においては、機能においてVSIDと類似した要求タグ(要求側識別子の一例)を用いるが、これは異なるソフトウェア層によって生成される。例示的な実施形態では、ハイパーバイザによって生成されるVSIDを用いるが、いずれかの個々のオペレーティング・システムは、そのオペレーティング・システム上で動作する個々の作業ユニットを識別する1組のプロセスID(PID)を生成することができる。これらのPIDは、実施可能である別のタイプの要求側識別子であり、それらは、ディスパッチの間にVSIDと同じハードウェア・レジスタに直接書き込むことができる。
別の例示的な実施形態においては、ハードウェアは、CPUのVSIDを変更しようとするオペレーティング・システムの試みを傍受し、その後にCPUの制御をハイパーバイザに渡すように設計されている。この場合、ハイパーバイザは、いずれかの数のアルゴリズムを用いて、VSIDハードウェア・レジスタをどの値に設定するかを決定する。
技術的な努力および利点には、多数の仮想サーバを動作させている場合に物理コンピュータ・サーバが信頼できるレベルの高性能を提供する能力が含まれる。サーバによって、ハイパーバイザまたは他の制御プログラムは、仮想サーバまたは仮想サーバのグループが消費することができるハードウェア・リソースに制限を設定することができる。これにより、単一の仮想サーバが消費することができる最大のリソース共用資源を制限する能力を提供し、結果としてプロセッサの性能向上をもたらすことができる。
本明細書において用いた用語は、特定の実施形態を記載する目的のためだけのものであり、過度に限定することは意図していない。本明細書において用いたように、単数形「1つの(a)、(an)、(the)」は、文脈によって明らかに他の場合が示されない限り、複数形を含むことが意図されている。また、「含む」または「含んでいる」という言葉あるいはその両方は、本明細書において用いられた場合、述べた特徴、整数、ステップ、動作、要素、または構成要素あるいはそれら全ての存在を規定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループあるいはそれら全ての存在または追加を除外するものではないことは、理解されよう。
以下の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に特許請求したような他の特許請求した要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことが意図されている。本発明の実施形態の記載は、例示および記述の目的のために提示したが、網羅的であることや、開示した形態に本発明を限定することは、意図していない。当業者には多くの変更および変形が明らかであろう。実施形態は、原理および実際的な用途を最良に説明するため、更に、想定される特定の用途に適した様々な変更と共に本発明の様々な実施形態を当業者が理解することを可能とするために、選択し記載したものである。
当業者には認められようが、本発明の実施形態は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の実施形態は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の実施形態は、具現化されたコンピュータ使用可能プログラム・コードを有するいずれかのタンジブルな表現媒体において具現化されるコンピュータ・プログラムの形態を取ることも可能である。1つ以上のコンピュータ使用可能またはコンピュータ読み取り可能媒体(複数の媒体)のあらゆる組み合わせを利用することができる。コンピュータ使用可能またはコンピュータ読み取り可能媒体は、例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝播媒体とすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例(非網羅的な列挙)は、以下を含む。すなわち、1本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、電気的プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、インターネットまたはイントラネットをサポートするもの等の伝送媒体、または磁気記憶デバイスである。コンピュータ使用可能またはコンピュータ読み取り可能媒体は、プログラムが印刷されている紙または別の適切な媒体とすることも可能であることに留意すべきである。この場合、プログラムは、例えば紙または他の媒体の光学式走査を行うことで電子的に取り込み、次いで必要であれば適切な方法でコンパイルし、解釈し、または他の方法で処理し、次いでコンピュータ・メモリに記憶することができる。この文書の文脈において、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有、記憶、伝達、伝播、または転送することが可能ないずれかの媒体とすることができる。コンピュータ使用可能媒体は、ベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ使用可能プログラム・コードを有する伝播データ信号を含むことができる。コンピュータ使用可能プログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、RF等を含むいずれかの適切な媒体を用いて、伝送することができる。
本発明の実施形態における動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語を含む従来の手順プログラミング言語を含む1つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータもしくはサーバ上で、実行することができる。後者の場合、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は外部コンピュータに対して行うことができる(例えばインターネット・サービス・プロバイダを用いてインターネットを介して)。
本発明の実施形態に従った方法、装置(システム)、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の実施形態について記載している。フローチャート図またはブロック図あるいはその両方の各ブロックならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置に特定の方法で機能するように指示することができ、これによって、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令手段を含む製造品を生成するようになっている。
また、コンピュータ・プログラム命令を、コンピュータまたは他のプログラマブル・データ処理装置にロードして、そのコンピュータまたは他のプログラマブル装置上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するためのプロセスを提供するようになっている。
上述したように、コンピュータ実施プロセスおよびこれらのプロセスを実施するための装置の形態で実施形態を具現化することができる。例示的な実施形態においては、本発明は、1つ以上のネットワーク要素によって実行されるコンピュータ・プログラム・コードにおいて具現化される。実施形態は、コンピュータ使用可能媒体502上に図6に示すようなコンピュータ・プログラム500を含み、コンピュータ・プログラム・コード論理504が、製造品としてのタンジブルな媒体において具現化された命令を含む。コンピュータ使用可能媒体502のための例示的な製造品は、フレキシブル・ディスケット、CD−ROM、ハード・ドライブ、ユニバーサル・シリアル・バス(USB)・フラッシュ・ドライブ、または他のいずれかのコンピュータ読み取り可能記憶媒体を含むことができる。ここで、コンピュータ・プログラム・コード論理504がコンピュータにロードされてコンピュータによって実行されると、そのコンピュータが本発明の実施形態を実施するための装置となる。実施形態が含むコンピュータ・プログラム・コード論理504は、記憶媒体に記憶されるか、コンピュータにロードされるかまたはコンピュータによって実行されるかあるいはその両方であるか、または、電気的配線またはケーブル上で、光ファイバを介して、もしくは電磁放射によって等、何らかの伝送媒体で送信される。ここで、コンピュータ・プログラム・コード論理504がコンピュータにロードされてコンピュータによって実行されると、そのコンピュータが本発明の実施形態を実施するための装置となる。汎用マイクロプロセッサ上で実施された場合は、コンピュータ・プログラム・コード論理504のセグメントがこのマイクロプロセッサを構成して特定の論理回路を生成する。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を示す。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能(複数の機能)を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方におけるブロックの組み合わせは、特殊目的ハードウェアおよびコンピュータ命令の規定された機能もしくは行為または組み合わせを実行する特殊目的ハードウェア・ベースのシステムによって実施可能であることに留意すべきである。

Claims (19)

  1. 共用リソースの割り当てを制御するためのシステムであって、
    共用リソースおよび要求側識別子によって識別される複数の要求側に接続された次要求優先権モジュールであって、
    前記要求側の1個以上からの前記共用リソースに対する1つ以上の待ち状態の要求に優先順位を付ける待ち状態要求機構であって、各待ち状態の要求が、関連付けられた要求側識別子を含み、前記待ち状態の要求の1つが、関連付けられた次の要求側識別子を有する次の待ち状態の要求として指名される、前記待ち状態要求機構と、
    前記共用リソースに対する優先権を付与された以前の要求に関連付けられた要求側識別子のログをとるロギング機構と、
    前記次の待ち状態の要求および前記次の要求側識別子にアクセスし、前記共用リソースに対する優先権を前記次の待ち状態の要求に付与するか否かを判定する次要求優先権論理であって、該次要求優先権論理による判定が、ログをとった要求側識別子および前記次の要求側識別子に応じたものであり、更に、前記共用リソースに対する優先権を前記次の待ち状態の要求に付与することの判定に応答して前記共用リソースに対する優先権を前記次の待ち状態の要求に付与し、前記優先権の付与に応答して前記次の要求側識別子のログをとる、前記次要求優先権論理と、を含む前記次要求優先権モジュールを含む、システム。
  2. 前記次の待ち状態の要求が唯一の待ち状態の要求であることに応答して、前記共用リソースに対する優先権を前記次の待ち状態の要求に付与することを判定する、請求項1に記載のシステム。
  3. 前記共用リソースに対する優先権を前記次の待ち状態の要求に付与しないことの判定に応答して、前記次要求優先権論理が更に、前記次の待ち状態の要求および前記次の要求側識別子として他の待ち状態の要求および関連付けられた要求識別子を指名する、請求項1に記載のシステム。
  4. 前記共用リソースに対する規定数の最も最近の優先権付与の要求識別子のログをとる、請求項1に記載のシステム。
  5. 前記次の要求側識別子がログをとった要求側識別子と一致しないことに応答して、前記共用リソースに対する優先権を前記次の待ち状態の要求に付与することを判定する、請求項1に記載のシステム。
  6. 前記要求側が仮想サーバである、請求項1に記載のシステム。
  7. 前記要求側が仮想サーバのグループである、請求項1に記載のシステム。
  8. 前記共用リソースがメモリであり、前記次要求優先権モジュールがメモリ・コントローラに位置している、請求項1に記載のシステム。
  9. 前記共用リソースに対する優先権の前記次の要求への前記付与に応答して、前記次要求優先権論理が更に前記次の要求を前記共用リソースに送信する、請求項1に記載のシステム。
  10. 前記次要求優先権モジュールが、前記要求側と前記共用シリソース間の要求の流れを制御するように機能する制御論理によって実施される、請求項1に記載のシステム。
  11. 共用リソースの割り当てを制御するための方法であって、
    共用リソースにアクセスするための要求を受信することであって、前記要求がプロセッサ上で実行する要求側から送信され、前記受信が、前記プロセッサおよび前記共用リソースに接続された次要求優先権モジュールにおいて行われる、ことと、
    前記共用リソースに対する規定数の最も最近の優先権付与のいずれかが前記要求側に対して行われたか否かを判定することと、
    前記共用リソースに対する前記規定数の最も最近の優先権付与のいずれも前記要求側に対して行われなかったことの判定に応答して、前記共用リソースに対する優先権を前記要求に付与することと、
    前記共用リソースに対する前記規定数の最も最近の優先権付与のいずれかが前記要求側に対して行われたことの判定に応答して、
    前記共用リソースに対する1つ以上の他の要求が待ち状態であるか否かを判定することと、
    前記共用リソースに対する前記1つ以上の他の要求が待ち状態であることの判定に応答して、前記共用リソースに対する優先権を前記他の要求の1つに付与するか否かを判定することと、
    を含む、方法。
  12. 前記共用リソースに対する他の要求が待ち状態でないことの判定に応答して、前記共用リソースに対する優先権を前記要求に付与することを更に含む、請求項11に記載の方法。
  13. 前記次要求優先権モジュールが、前記要求側と前記共用シリソース間の要求の流れを制御するように機能する制御論理によって実施される、請求項11に記載の方法。
  14. 前記共用リソースに対する優先権を前記要求に付与することに応答して、前記要求を前記共用リソースに送信することを更に含む、請求項11に記載の方法。
  15. 共用リソースの割り当てを制御するためのコンピュータ・プログラムであって、
    前記コンピュータ・プログラムは、コンピュータに
    要求側から送信される共用リソースにアクセスするための要求を受信するとと、
    前記共用リソースに対する規定数の最も最近の優先権付与のいずれかが前記要求側に対して行われたか否かを判定することと、
    前記共用リソースに対する前記規定数の最も最近の優先権付与のいずれも前記要求側に対して行われなかったことの判定に応答して、前記共用リソースに対する優先権を前記要求に付与することと、
    前記共用リソースに対する前記規定数の最も最近の優先権付与のいずれかが前記要求側に対して行われたことの判定に応答して、
    前記共用リソースに対する1つ以上の他の要求が待ち状態であるか否かを判定することと、
    前記共用リソースに対する前記他の要求が待ち状態でないことの判定に応答して、前記共用リソースに対する優先権を前記要求に付与することと、
    前記共用リソースに対する前記1つ以上の他の要求が待ち状態であることの判定に応答して、前記共用リソースに対する優先権を前記他の要求の1つに付与するか否かを判定することと、
    実行させる、コンピュータ・プログラム。
  16. 前記要求側が仮想サーバである、請求項15に記載のコンピュータ・プログラム。
  17. 前記要求側が仮想サーバのグループである、請求項15に記載のコンピュータ・プログラム。
  18. 前記コンピュータに、前記共用リソースに対する前記他の要求が待ち状態でないことの判定に応答して、前記共用リソースに対する優先権を前記要求に付与することを更に実行させる、請求項15に記載のコンピュータ・プログラム。
  19. 前記コンピュータに、前記共用リソースに対する優先権を前記要求に付与することに応答して、前記要求を前記共用リソースに送信することを更に実行させる、請求項15に記載のコンピュータ・プログラム。
JP2011550570A 2009-02-25 2010-02-18 共用リソースの割り当てを制御するためのシステム、方法、コンピュータ・プログラム Expired - Fee Related JP5536807B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/392,665 2009-02-25
US12/392,665 US8676976B2 (en) 2009-02-25 2009-02-25 Microprocessor with software control over allocation of shared resources among multiple virtual servers
PCT/EP2010/052076 WO2010097331A2 (en) 2009-02-25 2010-02-18 Microprocessor with software control over allocation of shared resources among multiple virtual servers

Publications (2)

Publication Number Publication Date
JP2012518825A JP2012518825A (ja) 2012-08-16
JP5536807B2 true JP5536807B2 (ja) 2014-07-02

Family

ID=42631868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011550570A Expired - Fee Related JP5536807B2 (ja) 2009-02-25 2010-02-18 共用リソースの割り当てを制御するためのシステム、方法、コンピュータ・プログラム

Country Status (7)

Country Link
US (2) US8676976B2 (ja)
EP (1) EP2401677A2 (ja)
JP (1) JP5536807B2 (ja)
KR (1) KR101455899B1 (ja)
CN (1) CN102334103B (ja)
TW (1) TWI459297B (ja)
WO (1) WO2010097331A2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027354B1 (en) * 2009-04-29 2011-09-27 Cisco Technology, Inc. Network consolidation for virtualized servers
KR101568098B1 (ko) * 2011-06-28 2015-11-10 노키아 코포레이션 상황정보 추출
US9191435B2 (en) * 2012-08-23 2015-11-17 TidalScale, Inc. Selective data migration or remapping of virtual processors to provide required data accessibility to processor cores
US9075789B2 (en) * 2012-12-11 2015-07-07 General Dynamics C4 Systems, Inc. Methods and apparatus for interleaving priorities of a plurality of virtual processors
US9515899B2 (en) * 2012-12-19 2016-12-06 Veritas Technologies Llc Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
US9396007B2 (en) 2013-03-22 2016-07-19 Facebook, Inc. Cache management in a multi-threaded environment
US9692706B2 (en) 2013-04-15 2017-06-27 International Business Machines Corporation Virtual enhanced transmission selection (VETS) for lossless ethernet
US9223574B2 (en) * 2014-03-27 2015-12-29 International Business Machines Corporation Start virtual execution instruction for dispatching multiple threads in a computer
CN111666148A (zh) * 2014-04-30 2020-09-15 华为技术有限公司 计算机,控制设备和数据处理方法
WO2017209876A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. Buffer manager
US10353736B2 (en) 2016-08-29 2019-07-16 TidalScale, Inc. Associating working sets and threads
US20180131633A1 (en) * 2016-11-08 2018-05-10 Alibaba Group Holding Limited Capacity management of cabinet-scale resource pools
US10705872B2 (en) 2016-12-08 2020-07-07 International Business Machines Corporation Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
US10394604B2 (en) * 2017-03-15 2019-08-27 Samsung Electronics Co., Ltd. Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system
US11113101B2 (en) * 2017-06-05 2021-09-07 Marvell Asia Pte, Ltd. Method and apparatus for scheduling arbitration among a plurality of service requestors
US11023135B2 (en) 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
EP3543861B1 (en) * 2018-03-23 2022-12-14 Imagination Technologies Limited Arbitration systems and methods
JP7141905B2 (ja) * 2018-10-12 2022-09-26 株式会社日立産機システム コントロール装置及びコントロール方法
US10970132B2 (en) * 2019-03-19 2021-04-06 International Business Machines Corporation Deadlock resolution between distributed processes

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61167647A (ja) * 1985-01-19 1986-07-29 Sumitomo Chem Co Ltd 第一菊酸エステルのラセミ化方法
DE69521549T2 (de) 1994-04-04 2001-10-25 Hyundai Electronics America, Milpitas Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten
TW346574B (en) * 1997-05-09 1998-12-01 Ind Tech Res Inst Method and apparatus for selecting non-blocking multiple interrupt requests in a multi-processor system
US6647508B2 (en) 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6754206B1 (en) * 1997-12-04 2004-06-22 Alcatel Usa Sourcing, L.P. Distributed telecommunications switching system and method
US6233645B1 (en) 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US7010642B2 (en) 2000-01-05 2006-03-07 Rambus Inc. System featuring a controller device and a memory module that includes an integrated circuit buffer device and a plurality of integrated circuit memory devices
AU2002242067A1 (en) * 2001-01-30 2002-08-12 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
JP4018900B2 (ja) 2001-11-22 2007-12-05 株式会社日立製作所 仮想計算機システム及びプログラム
US8005979B2 (en) 2002-10-28 2011-08-23 Oracle America, Inc. System and method for uniquely identifying processes and entities in clusters
US7394808B2 (en) * 2004-05-24 2008-07-01 Nortel Networks Limited Method and apparatus for implementing scheduling algorithms in a network element
US7356631B2 (en) * 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US7249210B2 (en) 2005-03-01 2007-07-24 Qualcomm Incorporated Bus access arbitration scheme
US7779424B2 (en) 2005-03-02 2010-08-17 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of an isolated driver domain in which a shared resource's device driver resides
US20060206891A1 (en) 2005-03-10 2006-09-14 International Business Machines Corporation System and method of maintaining strict hardware affinity in a virtualized logical partitioned (LPAR) multiprocessor system while allowing one processor to donate excess processor cycles to other partitions when warranted
US8255912B2 (en) * 2005-04-13 2012-08-28 Qualcomm Incorporated Techniques for setting events in a multi-threaded system
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7506090B2 (en) 2006-06-14 2009-03-17 Honeywell International Inc. System and method for user-configurable resource arbitration in a process control system
JP5031538B2 (ja) 2007-06-21 2012-09-19 株式会社日立製作所 データ分配方法、データ分配プログラム、及び並列データベースシステム

Also Published As

Publication number Publication date
US8676976B2 (en) 2014-03-18
WO2010097331A2 (en) 2010-09-02
US20120271952A1 (en) 2012-10-25
JP2012518825A (ja) 2012-08-16
US8788672B2 (en) 2014-07-22
CN102334103B (zh) 2014-05-21
TWI459297B (zh) 2014-11-01
US20100217868A1 (en) 2010-08-26
EP2401677A2 (en) 2012-01-04
WO2010097331A3 (en) 2010-11-18
KR20110118810A (ko) 2011-11-01
TW201040840A (en) 2010-11-16
CN102334103A (zh) 2012-01-25
KR101455899B1 (ko) 2014-11-03

Similar Documents

Publication Publication Date Title
JP5536807B2 (ja) 共用リソースの割り当てを制御するためのシステム、方法、コンピュータ・プログラム
US9710310B2 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US7693053B2 (en) Methods and apparatus for dynamic redistribution of tokens in a multi-processor system
US8484495B2 (en) Power management in a multi-processor computer system
US7546405B2 (en) Methods and apparatus for dynamic grouping of requestors of resources in a multi-processor system
US11343177B2 (en) Technologies for quality of service based throttling in fabric architectures
US10614004B2 (en) Memory transaction prioritization
CN107729267B (zh) 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
JP2015504541A (ja) マルチプロセッサ・コンピューティング・システムにおけるメモリ・アクセスを動的に最適化する方法、プログラム、及びコンピューティング・システム
CN107957965B (zh) 服务质量序数修改
US8862786B2 (en) Program execution with improved power efficiency
Zou et al. DirectNVM: Hardware-accelerated NVMe SSDs for high-performance embedded computing
US8135878B1 (en) Method and apparatus for improving throughput on a common bus
Deri et al. Exploiting commodity multi-core systems for network traffic analysis
CN113076189A (zh) 具有多数据通路的数据处理系统及用多数据通路构建虚拟电子设备
JP7047906B2 (ja) 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140205

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: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140424

R150 Certificate of patent or registration of utility model

Ref document number: 5536807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees