JP2010157234A - 効率的なリマッピング・エンジンの利用 - Google Patents

効率的なリマッピング・エンジンの利用 Download PDF

Info

Publication number
JP2010157234A
JP2010157234A JP2009293729A JP2009293729A JP2010157234A JP 2010157234 A JP2010157234 A JP 2010157234A JP 2009293729 A JP2009293729 A JP 2009293729A JP 2009293729 A JP2009293729 A JP 2009293729A JP 2010157234 A JP2010157234 A JP 2010157234A
Authority
JP
Japan
Prior art keywords
remapping
engine
traffic volume
traffic
remapping engine
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
JP2009293729A
Other languages
English (en)
Inventor
Ramakrishna Saripalli
サリパリ,ラマクリシュナ
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2010157234A publication Critical patent/JP2010157234A/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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Landscapes

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

Abstract

【課題】I/Oデバイスからリマッピング・エンジン114,116に受け取られたDMAリクエストおよび割り込みリクエストのワークロードに不均衡が生じた場合に、DMAリマッピング・ロジック102は、リマッピング・エンジン114,116間のワークロードの均衡を図る。
【解決手段】デバイス、システムおよび方法が開示される。一実施例では、デバイスは、第1のリマッピング・エンジンによってトランスレーションされるトラフィックの第1の量をモニタすることができるリマッピング・エンジン再配分ロジックを含む。トラフィックの第1の量が第1のリマッピング・エンジンのしきい値に達すれば、その後ロジックは、第2のリマッピング・エンジンによってトランスレーションされるトラフィックの一部を転換する。
【選択図】図1

Description

本発明は、仮想化を実行するコンピュータ・プラットフォーム内でのリマッピング・エンジンのトランスレーションに関する。
多くのコンピュータ・プラットフォームは、より効率的にリソース(資源)を管理し優先付けをするための仮想化を使用する。入力/出力(I/O)デバイスも同様に仮想化による恩恵を得ることができる。インテル(登録商標)社は、ダイレクトI/O(VT−d)仕様(修正1.0,2008年9月)用のバーチャライゼーション・テクノロジーを世に出したが、その仕様は、仮想化環境中でダイレクト・メモリ・アクセス(DMA)可能なI/Oデバイスを利用する実行詳細について記述する。
I/Oデバイスから受け取られたDMAリクエストおよび割り込みリクエスト中の仮想アドレスを物理メモリ・アドレスに効率的にトランスレーション(変換)するために、リマッピング・エンジンと呼ばれるトランスレーションを実行するロジックが開発された。与えられたコンピュータ・プラットフォームは、いくつかのリマッピング・エンジンを有する。VT−d仕様によって、プラットフォーム・コンポーネント・インターコネクト(PCI)またはPCIエキスプレス・デバイスのような与えられたI/Oデバイスは、単一のリマッピング・エンジンの支配下になることができる。リマッピング・エンジンへのデバイスのこのマッピングは、ハードウェアのデザイン時に作られ、コンピュータ・プラットフォームのデザイン特性となる。
I/Oデバイスを単一のリマッピング・エンジンにマッピングすることは、仮想マシン・モニタ(VMM)やオペレーティング・システム(OS)に対して柔軟性を失わせ、劣化した性能を呈する結果となるおそれがある。
本発明は、実施例によって表され、図面によって制限されるものではなく、図面中の類似の参照番号は類似の要素を示す。
リマッピング・エンジンを再割り付けし、利用可能なリマッピング・エンジン間の全リマッピング負荷を平均化させるシステムおよびデバイスの実施例を示す。 あるリマッピング・エンジンから別のリマッピング・エンジンにI/Oデバイスを移動させるプロセスの実施例のフロー図である。
リマッピング・エンジンを再割り付けし、利用可能なリマッピング・エンジン間の全リマッピング負荷を平均化させるデバイス、システム、および方法の実施例を示す。多くのシナリオでは、コンピュータ・プラットフォーム上のプライマリ・リマッピング・エンジンは、特定のマップされたI/Oデバイス(DMAまたは割り込みリクエストを通して)によって要求された膨大な量のトランスレーションによりストレスが多くなる。コンピュータ・プラットフォーム内のロジックは、このストレスの多い状況に気づき、現在ストレスのない別のリマッピング・エンジンを見つけることができる。そのロジックは、I/Oデバイスを非ストレス状態の別のリマッピング・エンジンへ移動し、そのプライマリ・リマッピング・エンジンの負担を取り除くことができる。移動が完了すれば、トランスレーションを要求する全ての後続のDMAおよびI/Oデバイスからの割り込みリクエストは、別のリマッピング・エンジンによってトランスレーションされる。
開示された技術の「1つの実施例」あるいは「一実施例」に対する以下の説明および請求項中の参照は、説明された特定の特徴、構造あるいは特性が開示された技術の少なくとも1つの実施例に含まれることを意味する。このように、本明細書を通して様々な場所に現われる「1つの実施例中」という語句は、必ずしも全てが同じ実施例を参照するものではない。
以下の説明および請求項において、用語「含む」、「から成る」はそれらの派生語とともに、互いに同義語として使用され、扱われることを意図する。加えて、以下の説明および請求項において、用語「結合される」、「接続される」はそれらの派生語とともに、使用される。これらの用語は、互いに同義語として扱われることを意図するものではないことを理解すべきである。むしろ、特定の実施例では、「接続される」は、2またはそれ以上の要素が互いに直接物理的または電気的に接触していることを示すために使用される。「結合される」は、2またはそれ以上の要素が互いに直接物理的または電気的に接触していることを意味する。しかしながら、「結合される」は、さらに2またはそれ以上の要素が互いに直接接触していないが、依然として互いに協動または相互作用を及ぼすことを意味することがある。
図1は、リマッピング・エンジンを再割り付けし、利用可能なリマッピング・エンジン間の全リマッピング負荷を平均化させるシステムおよびデバイスの実施例を示す。リマッピング再割り付けシステムは、1またはそれ以上のプロセッサを含むコンピュータ・プラットフォーム(つまり、コンピュータ・システム)の一部である。プロセッサは、各々1またはそれ以上のコアを有していてもよい。そのプロセッサは、インテル(登録商標)のマイクロプロセッサあるいは異なる実施例中では別の商標マイクロプロセッサであってもよい。図1には、プロセッサはで示されていない。
本システムは、物理的なシステム・メモリ100を含む。いくつかの実施例では、システム・メモリ100は、一種のダイナミック・ランダム・アクセス・メモリ(DRAM)である。例えば、そのシステム・メモリは、一種のダブル・データ・レート(DDR)シンクロナスDRAMである。他の実施例では、そのシステム・メモリは、フラッシュ・メモリのような他のタイプのメモリであってもよい。
本システムは、ダイレクト・メモリ・アクセス(DMA)および割り込みリマッピング・ロジック102を含む。DMAおよび割り込みリマッピング・ロジック102のような仮想化リマッピング・ロジックは、I/Oデバイス1(104)およびI/Oデバイス2(106)のような入出力(I/O)デバイスのDMAをI/Oデバイス1(104)用のドメインA(108)およびI/Oデバイス2(106)用のドメインB(110)のような予め割り当てられた物理メモリ領域へ制限することにより、システム・メモリ100の物理的な領域を保護する。リマッピングする・ロジックは、さらにI/Oデバイスが生成した割り込みを同様にこれらの領域に制限する。DMAおよび割り込みリマッピング・ロジック102は、システム中のプロセッサ、システム中のI/Oコンプレックス、あるいはほかの場所に位置する。I/Oコンプレックスは、1またはそれ以上のプロセッサから分離したコンピュータ・システム内の集積回路である。I/Oコンプレックスは、プロセッサ/メモリとI/Oデバイス1(104)およびI/Oデバイス2(106)のようなシステム内の1またはそれ以上のI/Oデバイスとの間で情報の交換を促進させるための1またはそれ以上のI/Oホスト・コントローラを含んでいてもよい。ある実施例では、DMAおよび割り込みリマッピング・ロジック102は、I/Oコンプレックスへ統合されてもよく、I/Oコンプレックスの他の部分は図1中には示されていない。いくつかの実施例では、多くのシステム−オン−チップの実施例のように、I/Oコンプレックスは、プロセッサに統合され、DMAおよび割り込みリマッピング・ロジック102がI/Oコンプレックスへ統合されるなら、したがって、それはこれらの実施例中のプロセッサに統合されるであろう。
DMAおよび割り込みリマッピング・ロジック102は、いくつかの実施例中では、コンピュータ・システム内に仮想化環境を許容する仮想マシン・モニタ(VMM)によってプログラムされる。他の実施例では、DMAおよび割り込みリマッピング・ロジック102は、オペレーティング・システム(OS)によってプログラムされてもよい。
多くの実施例では、I/Oデバイス1(104)およびI/Oデバイス2(106)は、DMA対応および割り込み対応デバイスである。これらの実施例では、DMAおよび割り込みリマッピング・ロジック102は、各到来DMAリクエストおよびI/Oデバイスからの割り込みのアドレスをシステム・メモリ100中の正しい物理メモリにトランスレーションする。多くの実施例中では、DMAおよび割り込みリマッピング・ロジック102は、VMMまたはOSによって提供される情報に基づいて、トランスレーションされた物理アドレスにアクセスする許可をチェックする。
DMAおよび割り込みリマッピング・ロジック102によって、VMMまたはOSは、I/Oデバイス1(104)のためのドメインA(108)およびI/Oデバイス2(106)用のドメインB(110)のような複数のDMA保護ドメインを作成することができる。各保護ドメインは、ホスト物理メモリのサブセット(部分集合)を含む、分離された環境である。DMAおよび割り込みリマッピング・ロジック102によって、VMMまたはOSは、1またはそれ以上のI/Oデバイスを保護ドメインに割り当てることができる。いずれかの所定のI/Oデバイスがシステム・メモリ100中のある記憶域へのアクセスを獲得しようとすると、DMAおよびリマッピング・ロジック102は、その特定の保護ドメインへのそのI/Oデバイスのアクセス許可のためにリマッピング・ページ・テーブル112を参照する。アクセスが許される範囲外をI/Oデバイスがアクセスしようとする場合、DMAおよびリマッピング・ロジック102は、そのアクセスを阻止し、そのフォールトをVMMまたはOSに報告する。
多くの実施例では、DMAおよびリマッピング・ロジック102中に統合されたリマッピング・エンジン1(114)およびリマッピング・エンジン2(116)のような2またはそれ以上のリマッピング・エンジンがある。各リマッピング・エンジンは、1またはそれ以上のI/OデバイスからのDMAリクエストおよび割り込みを取り扱うためのロジックを含む。リマッピング・エンジンは、一般に、特定のI/Oデバイスに割り当てられるものとしてスタートする。例えば、リマッピング・エンジン1(114)は、I/Oデバイス1(104)から受け取られたドメインA(108)へのDMAリクエストおよび割り込みを取り扱うために割り当てられ、また、リマッピング・エンジン2(116)は、I/Oデバイス2(106)から受け取られたドメインB(110)へのDMAリクエストおよび割り込みを取り扱うために割り当てられる。
リマッピング・エンジンは、当初、DMAリクエストおよび割り込みを特定のI/Oデバイス用の物理アドレスへトランスレーションするために割り当てられるが、多くの実施例中では、リマッピング再配分ロジック118は、観察されたワークロード(仕事量)に応じて、これらの当初の割り当てを各リマッピング・エンジンのために動的に修正する。多くの実施例では、DMAおよび割り込みリマッピング・ロジック102およびリマッピング再配分ロジック118の双方は、I/O仮想化技術を利用するコンピュータ・プラットフォーム内で利用される。例えば、I/Oデバイス2(106)が休止している間、I/Oデバイス1(104)が非常に重いDMAリクエストのワークロードを生成することがある。I/Oデバイス1(104)からのその重いDMAリクエストのワークロードは、リマッピング・エンジン1(114)の能力(capacity)に負荷をかけ過ぎることになり、それは、リマッピング・エンジン1(114)に依存する1またはそれ以上の別のI/Oデバイス(図示せず)と同様にI/Oデバイス1(104)からのリクエストに対するパッフォーマンス(例えば、応答時間)の低下を引き起こす恐れがある。この例では、リマッピング再配分ロジック118は、ワークロードの不一致に気づき、リマッピング・エンジン1(114)とそれ以外の未使用リマッピング・エンジン2(116)との間でI/Oデバイス1(104)から受け取られたDMAリクエストのワークロードを等しく分割することを決定することができる。このように、リマッピング・エンジン2(116)により加えられた能力は、リマッピング・エンジン1(114)に要求されるワークロードを軽減し、I/Oデバイス1(104)に対するリクエスト応答パッフォーマンスを増加させることができる。
別の例において、逆もまた真なりであり、リマッピング・エンジン2(116)がI/Oデバイス2(106)から受け取ったDMAリクエストで過負荷になると、リマッピング再配分ロジック118は、受け取った仕事の一部をリマッピング・エンジン1(114)へ分割することができる。さらに別の例では、リマッピング・エンジン1(114)に最初に割り当てられた第3のI/Oデバイス(図示せず)は、トランスレーションのために大量の割り込みトラフィックをリマッピング・エンジン1(114)に送っている。I/Oデバイス3からのこの割り込みトラフィックは、組み合わされたI/Oデバイス1,2からのDMAおよび割り込みリクエストの組み合わせより多くのトラフィックとなることがある。この例では、リマッピング再配分ロジック118は、I/Oデバイス3からの到来リクエストを取り扱うためにリマッピング・エンジン1(114)を残し、リマッピング・エンジン2(116)にI/Oデバイス1(104)を再配分することができる。このように、リマッピング・エンジン2(116)は、I/Oデバイス1,2の双方のために、到来リクエストをトランスレーションする必要がある。
多くのDMAおよび割り込みトラフィックのシナリオでは、リマッピング再配分ロジック118は、あるリマッピング・エンジンから別のリマッピング・エンジンにDMAリクエストを再配分することを試み、受け取ったワークロードを利用可能な全てのリマッピング・エンジン間で均等にする。図1に示されていない多くの実施例では、2を越える全てのリマッピング・エンジンを含むリマッピング・エンジンのプールであってもよい。これらの実施例では、リマッピング再配分ロジック118は、プール全体のDMAリクエストの総数を適正にバランスさせるためにプール中の各リマッピング・エンジン間で仕事を再割り当てすることができる。いくつかの実施例では、リマッピング・エンジン1(114)のような単一のリマッピング・エンジンがDMAリクエストの仕事を全て行なっているが、その仕事量は特定のリマッピング・エンジンの能力に負担を与えないほどに十分に小さい場合、リマッピング再配分ロジック118は、DMAリクエストのワークロードの一部を再割り当てすることはしない。したがって、いくつかの実施例では、与えられたリマッピング・エンジンのためのワークロードがそのリマッピング・エンジンのリクエストに対するしきい値に達した場合、一般に再配分が実行される。多くの実施例では、DMAおよび割り込みリマッピング・ロジック102およびリマッピング再配分ロジック118の双方は、I/O仮想化技術を利用するコンピュータ・プラットフォーム中で利用される。
多くの実施例では、そのリクエストに対するしきい値は、与えられた時間期間におけるリクエスト数であり、それはリマッピング・エンジンがパッフォーマンスに劣化なしに取り扱うことのできる限界に等しい。リマッピング・エンジンのパッフォーマンスにおける劣化は、累積していくDMAリクエストのキューによって引き起こされるが、それは、リマッピング・エンジンがリクエストをトランスレーションすることができるより速い速度で、リクエストがリマッピング・エンジンによって受け取られるからである。リマッピング再配分ロジック118は、DMAリクエストの現在のワークロードに対するしきい値を比較するための多くの異なる方法のうちの1つを利用する。例えば、システム・クロック・サイクルにわたるリクエストの比は、しきい値比と比較される。モニタリング・ロジックをリマッピング再配分ロジック118に統合し、それが一組のI/Oデバイスからリクエストを全て受け取り、各リクエストをリマッピング・エンジンに割り当てるようにしてもよい。
多くの実施例では、DMAリマッピング・ロジック102は、VMMまたはOSがリマッピング・エンジン間のDMAリクエストのワークロードを再配分するためのリマッピング再配分ロジック118の能力をイネーブルあるいはディセーブルするための1またはそれ以上の制御レジスタを提供する。多くの実施例では、同じ一組のI/Oデバイスが各々利用可能である場合、リマッピング・エンジンは、等価リマッピング・エンジンと称される。したがって、理論上、第2のリマッピング・エンジンがアイドルである間、第1のリマッピング・エンジンは、一組のI/OデバイスのためにDMAリクエストのトランスレーションを行なうことができ、その逆もまた真である。I/Oデバイスが、一方のリマッピング・エンジンにアクセス可能であるが、別のリマッピング・エンジンに不能である場合、それらのリマッピング・エンジンは等価とは考えられない。等価リマッピング・エンジンによって、リマッピング再配分ロジック118はDMAリクエストのワークロードを等価リマッピング・エンジンと自由に混合しまた結び付けることができる。
リマッピング・エンジン間の等価が1またはそれ以上の命令レジスタを通してVMMまたはOSによって可能になる場合、そのとき、DMAリクエストのトランスレーション過程に参加するために、各リマッピング・エンジンは、積極的に同じ一組のページ・テーブル112および他の全てのリマッピングに関連するレジスタを使用する。多くの実施例では、1またはそれ以上の制御レジスタは、制御レジスタ120Aのようなシステム・メモリにあるソフトウェアベースのレジスタである。他の実施例では、1またはそれ以上の制御レジスタは、制御レジスタ120BのようなDMAリマッピング・ロジック102に物理的に位置するハードウェアベースのレジスタである。
多くの実施例では、DMAリマッピング・ロジック102は、インテル(登録商標)VT−d仕様に定義された現在のDRHD(DMAリマッピング・ハードウェア・ユニット定義)構造に対する拡張版を使用して、2またはそれ以上のリマッピング・エンジン間の等価な関係をVMMまたはOSと通信する。
各リマッピング・エンジンは、メモリにDRHD構造を有する。例えば、DRHD構造は、システム・メモリ100のリマッピング・ページ・テーブル/構造112部分に位置してもよい。他の実施例では、DRHD構造は、システム・メモリ100内の別の位置にあってもよい。各リマッピング・エンジンのためのDRHD構造は、該リマッピング・エンジンと等価なリマッピング・エンジンのアレイを含み、このアレイは「等価DRHDアレイ」と称される。このアレイは、フィールドの集合で、表1に定義される。アレイは、このような等価をVMMまたはOSに通信するために使用される。必要とされる時に所定のI/Oデバイスに主として割り当てられたリマッピング・エンジンに別のリマッピング・エンジンを使用することを決定するのはVMMまたはOS次第である。
表1 等価DRHDアレイの構造レイアウト
Figure 2010157234
いくつかの実施例では、リマッピング再配分ロジック118は、各リマッピング・エンジンに対するDMAリクエストのトランスレーションのワークロードをVMMまたはOSに報告し、それによって、VMMまたはOSが別のリマッピング・エンジンをイネーブルにし利用するべきかどうかに関して決定することを可能にし、プライマリ・マッピング・エンジンに対するトランスレーションの圧力を軽減するであろう。
DMAリマッピング・ロジック102は、さらにリマッピング・エンジン間でリマッピング・ページ・テーブルを移動することに関し、各リマッピング・エンジンの能力についての情報を通信する。特に、VMMまたはOSがあるリマッピング・エンジンから別のリマッピング・エンジンへDMAおよび割り込みリクエストのためのリマッピング・エントリを移動する決定を一度すると、ソフトウェアベース、あるいはハードウェアベースのページ・テーブル・コピーがある場合がある。
いくつかの実施例では、VMMまたはOSは、新しく再配分されたI/Oデバイスと関係するページ・テーブルを設定し、次に、そのリマッピング・ページ・テーブルをページ・テーブルの古いリマッピング・エンジン・メモリ・スペースからページ・テーブルの新しいリマッピング・エンジン・メモリ・スペースにコピーする。他の実施例では、DMAおよび割り込みリマッピング・ロジック102は、リマッピング・エンジン・メモリ・スペース間でページ・テーブルを黙ってコピーする。これらのページ・テーブルを黙ってコピーすることのよって、オーバーヘッドがVMMまたはOSソフトウェアのレベルから取り除かれ、より低いハードウェア・レベルで行われることを可能にする。これは、ソフトウェアの関与なしに起こってもよい。
一旦ページ・テーブルが古いリマッピング・エンジン・メモリ・スペースから新しいものにコピーされる(つまり、移動する)と、新しいリマッピング・エンジンは、当該I/Oデバイスからの将来のトランスレーションのリクエストすべてをサービスする責任のあるリマッピング・エンジンとなる。古いリマッピング・エンジンは、最早I/Oデバイスに対する責任はなく、そのデバイスから受け取られたDMAまたは割り込みリクエストを最早トランスレーションをしないであろう。
図2は、I/Oデバイスをあるリマッピング・エンジンから別のリマッピング・エンジンに移動するプロセスの実施例のフロー図である。そのプロセスは、ハードウェア、ソフトウェア、あるいはハードウェアとソフトウェアの組み合わせである処理ロジックより実行される。そのプロセスは、DMAまたは割り込みリクエストをI/Oデバイスから受け取る処理ロジックによって開始する(処理ブロック200)。
処理ロジックは、リクエストをサービスするために割り当てられたプライマリ・リマッピング・エンジンが一定期間の間にリクエストのしきい値に達したかどうかを決定する(処理ブロック202)。この決定は、実行カウンタ、タイムスタンプ、アルゴリズム、および他の方法を利用し、そのプライマリ・リマッピング・エンジンが1リクエスト当たりのエンジンのトランスレーション応答性を劣化させるのに十分なトランスレーション・リクエストを現在有しているかどうかを決める。
例えば、VMMまたはOSは、直接あるいはリマッピング再配分ロジック118を通して各リマッピング・エンジンにポーリングを行い、各リマッピング・エンジンへのリマッピング・トランスレーション圧力の現在の状態を質問する。別の例では、DMAおよびリマッピング・ロジック102は、リマッピング・エンジンの少なくとも1つがそのトランスレーション・リソースに対するトランスレーション圧力あるいは制約を受け始める場合、VMMまたはOSに割込みを掛ける。両方の例において、DMAおよび割り込みリマッピング・ロジック102は、さらにトランスレーション圧力の原因である階層あるいは正確なI/Oデバイスを含むトランスレーション圧力の正確な性質に関するより多くの詳細な情報を通信する。VMMまたはOSは、I/Oデバイスのトランスレーション・エントリを別の等価リマッピング・エンジンへ移動すべきかどうかを判断する場合、もし必要であれば、どんなパッフォーマンス情報を使用すべきかどうかを決定する。
図2に戻って、リクエストがしきい値に到達していない場合、処理ロジックは、プライマリ・リマッピング・エンジンにDMAまたは割り込みリクエストをトランスレーションさせ、そのプロセスは終了する(処理ブロック204)。
そうでなく、リクエストがしきい値に到達している場合、そのとき処理ロジックは、1またはそれ以上の他の等価リマッピング・エンジンのどれが利用可能か、また現在使用されているかあるいは全く使用されないかを決める。これは、追加デバイスのトラフィックに含まれる追加圧力に対処するために与えられたバックアップ・リマッピング・エンジンに十分に余裕のある能力があるかどうかを判断することを含む。
一旦利用可能なバックアップ・リマッピング・エンジンが見つかると、その後、処理ロジックは、そのI/Oデバイスのためのリマッピング・ページ・テーブルをプライマリ・リマッピング・エンジンからバックアップ・リマッピング・エンジンへ移動する(処理ブロック206)。一旦バックアップ・リマッピング・エンジンがリマッピングのために利用することができるI/Oデバイスのページ・テーブルを受け取ったならば、その後、処理ロジックは、そのDMAまたは割り込みリクエストをバックアップ・リマッピング・エンジンへ転換し、そのプロセスは終了する(処理ブロック208)。
多くの実施例中において、一旦利用可能な等価なリマッピング・エンジンがあることを処理ロジックが確認したならば、その後、処理ロジックは、新しいバックアップ・リマッピング・エンジンがプライマリ・リマッピング・エンジンと等価であると考えられることを示すためにハードウェア(図1、120B)中の制御レジスタをプログラムする。
この登録のプログラミングを提供するために、Global command register(インテル(登録商標)VT−d仕様に現在定義されている)にある現在の予約フィールドをこのコマンド(例えば、Enable equivalent remapping engineと呼ばれるコマンド)のために再定義することができる。新しいリマッピング・エンジンは、この目的のために別の8バイトのレジスタを通して識別される。表2は、リマッピング・エンジン間の等価性を確認するために実行するグローバルなコマンドおよびステータス・レジスタになされる修正の例を示す。
表2 リマッピング・エンジンの等価性のために利用されるグローバル・コマンドおよびステータス・レジスタ・ビット
Figure 2010157234
VMMまたはOSは、エンジンAの範囲にあるすべての現在のデバイスに対して、あるいはリマッピング・エンジンAの範囲の下に現在あるデバイスのある一組に対してのみのいずれかを等価にすることができる。等価にすることができない場合、DMAおよび割り込みリマッピング・ロジック102は、エラー・レジスタを通してこのエラー・ステータスを通信する。
このように、利用可能なリマッピング・エンジン間の全リマッピン負荷のバランスを保つために、リマッピング・エンジンを再配分する装置、システム、および方法の実施例が開示された。これらの実施例は、それらの特定の典型的な実施例に関して説明された。様々な修正および変更がここに記述された実施例のより広い精神および範囲から逸脱せずに、これらの実施例になされることは、当御者には明らかであろう。したがって、詳細な説明および図面は、限定的な意味ではなく、実例として捕えるべきである。
100 システム・メモリ
102 ダイレクト・メモリ・アクセス(DMA)および割り込みリマッピング・ロジック
104 I/Oデバイス1
106 I/Oデバイス2
108 ドメインA
110 ドメインB
112 リマッピング・ページ・テーブル
114 リマッピング・エンジン1
116 リマッピング・エンジン2
118 リマッピング再配分ロジック
120 制御レジスタ

Claims (24)

  1. 第1のリマッピング・エンジンによってトランスレーションされる第1のトラフィック量をモニタし、かつ
    前記第1のトラフィック量が第1のリマッピング・エンジンのトラフィックしきい値に達する場合、第2のリマッピング・エンジンによってトランスレーションされるために前記第1のトラフィック量の一部を転換する、
    ためのリマッピング・エンジン再配分ロジック、
    を含むことを特徴とするデバイス。
  2. 前記リマッピング・エンジン再配分ロジックは、
    前記第1のトラフィック量の前記一部を転換するに先立って、利用可能なトランスレーション能力の量を決定するために、前記第2のリマッピング・エンジンを質問し、かつ
    前記利用可能なトランスレーション能力の量が転換される前記第1のトラフィック量の前記一部をサービスすることができる場合、前記転換を許可する、
    ためにさらに操作可能であることを特徴とする請求項1記載のデバイス。
  3. 前記リマッピング・エンジン再配分ロジックは、
    前記第1および第2のリマッピング・エンジンの前記能力を決定し、かつ
    各エンジンが各エンジンの最大能力に対してほぼ同じパーセンテージのトラフィックを有するように、前記第1のトラフィック量の一部を前記第1および第2のリマッピング・エンジンへそれぞれ配分する、
    ためにさらに操作可能であることを特徴とする請求項2記載のデバイス。
  4. 前記リマッピング・エンジン再配分ロジックは、
    前記第1のトラフィック量の一部を1またはそれ以上の追加のリマッピング・エンジンへ転換するためにさらに操作可能であり、前記1、第2、および1またはそれ以上の追加のリマッピング・エンジンは、各々、各エンジンの最大能力に対してほぼ同じパーセンテージのトラフィックを有する、
    ことを特徴とする請求項3記載のデバイス。
  5. 前記第1のトラフィック量は、少なくとも第1のデバイスおよび第2のデバイスからのトラフィックを含むことを特徴とする請求項1記載のデバイス。
  6. 前記第2のリマッピング・エンジンに転換された前記第1のトラフィック量の前記一部は、少なくとも前記第2のデバイスからの少なくとも前記トラフィックを含むことを特徴とする請求項5記載のデバイス。
  7. 前記リマッピング・エンジン再配分ロジックは、
    前記第1のリマッピング・エンジンおよび前記第2のリマッピング・エンジンによってトランスレーションされる前記第1のトラフィック量をモニタし、かつ
    前記第1のトラフィック量が前記第1のトラフィックしきい値より下に戻ると、前記第2のリマッピング・エンジンによってトランスレーションされるために前記第1のトラフィック量の前記一部を前記第1のリマッピング・エンジンに転換する、
    ためにさらに操作可能であることを特徴とする請求項1記載のデバイス。
  8. 前記リマッピング・エンジン再配分ロジックは、
    前記第2のリマッピング・エンジンによってトランスレーションされている前記第1のトラフィック量の前記一部が前記第1のリマッピング・エンジンに転換された後、第2のリマッピング・エンジンがシャット・ダウンすることができるパワー・マネジメント・ロジックと通信する、
    ためにさらに操作可能であることを特徴とする請求項7記載のデバイス。
  9. 第1のデバイスおよび第2のデバイスと、
    第1のリマッピング・エンジンおよび第2のリマッピング・エンジンであって、各リマッピング・エンジンは、前記第1および第2のデバイスの両方に結合される、第1および第2のリマッピング・エンジンと、
    前記第1および第2のリマッピング・エンジンの両方に結合されたリマッピング・エンジン再配分ロジックであって、
    第1のリマッピング・エンジンによってトランスレーションされる第1のトラフィック量をモニタし、かつ
    前記第1のトラフィック量が第1のリマッピング・エンジンのトラフィックしきい値に達する場合、第2のリマッピング・エンジンによってトランスレーションされる前記第1のトラフィック量の一部を転換する、
    ためのリマッピング・エンジン再配分ロジックと、
    を含むことを特徴とするシステム。
  10. 前記リマッピング・エンジン再配分ロジックは、
    前記第1のトラフィック量の前記一部を転換するに先立って、利用可能なトランスレーション能力の量を決定するために、前記第2のリマッピング・エンジンを質問し、かつ
    前記利用可能なトランスレーション能力の量が転換される前記第1のトラフィック量の前記一部をサービスすることができる場合、前記転換を許可する、
    ためにさらに操作可能であることを特徴とする請求項9記載のシステム。
  11. 前記リマッピング・エンジン再配分ロジックは、
    前記第1および第2のリマッピング・エンジンの前記能力を決定し、かつ
    各エンジンが各エンジンの最大能力に対してほぼ同じパーセンテージのトラフィックを有するように、前記第1のトラフィック量の一部を前記第1および第2のリマッピング・エンジンへそれぞれ配分する、
    ためにさらに操作可能であることを特徴とする請求項10記載のシステム。
  12. 前記リマッピング・エンジン再配分ロジックは、
    前記第1のトラフィック量の一部を1またはそれ以上の追加のリマッピング・エンジンへ転換するためにさらに操作可能であり、前記1、第2、および1またはそれ以上の追加のリマッピング・エンジンは、各々、各エンジンの最大能力に対してほぼ同じパーセンテージのトラフィックを有する、
    ことを特徴とする請求項11記載のシステム。
  13. 前記第1のトラフィック量は、少なくとも第1のデバイスおよび第2のデバイスからのトラフィックを含むことを特徴とする請求項9記載のシステム。
  14. 前記第2のリマッピング・エンジンに転換された前記第1のトラフィック量の前記一部は、少なくとも前記第2のデバイスからの少なくとも前記トラフィックを含むことを特徴とする請求項13記載のシステム。
  15. 前記リマッピング・エンジン再配分ロジックは、
    前記第1のリマッピング・エンジンおよび前記第2のリマッピング・エンジンによってトランスレーションされる前記第1のトラフィック量をモニタし、かつ
    前記第1のトラフィック量が前記第1のトラフィックしきい値より下に戻ると、前記第2のリマッピング・エンジンによってトランスレーションされるために前記第1のトラフィック量の前記一部を前記第1のリマッピング・エンジンに転換する、
    ためにさらに操作可能であることを特徴とする請求項9記載のシステム。
  16. 前記第1および第2のリマッピング・エンジンの少なくとも各々に送られるパワーを管理するパワー・マネジメント・ロジックを含み、
    前記リマッピング・エンジン再配分ロジックは、前記第2のリマッピング・エンジンによってトランスレーションされている前記第1のトラフィック量の前記一部が前記第1のリマッピング・エンジンに転換された後、前記第2のリマッピング・エンジンに送られるパワーの量を少なくとも低くするために前記パワー・マネジメント・ロジックとさらに通信することができる、
    ことを特徴とする請求項15記載のシステム。
  17. 第1のリマッピング・エンジンによってトランスレーションされる第1のトラフィック量をモニタする段階と、
    前記第1のトラフィック量が第1のリマッピング・エンジンのトラフィックしきい値に達する場合、第2のリマッピング・エンジンによってトランスレーションされるために前記第1のトラフィック量の一部を転換する段階と、
    を含むことを特徴とする方法。
  18. 前記第1のトラフィック量の前記一部を転換するに先立って、利用可能なトランスレーション能力の量を決定するために、前記第2のリマッピング・エンジンを質問する段階と、
    前記利用可能なトランスレーション能力の量が転換される前記第1のトラフィック量の前記一部をサービスすることができる場合、前記転換を許可する、
    ためにさらに操作可能であることを特徴とするの前記一部をサービスすることができる場合に、前記転換を許可する段階と、
    を含むことを特徴とする請求項17記載の方法。
  19. 前記リマッピング・エンジン再配分ロジックは、
    前記第1および第2のリマッピング・エンジンの前記能力を決定し、かつ
    各エンジンが各エンジンの最大能力に対してほぼ同じパーセンテージのトラフィックを有するように、前記第1のトラフィック量の一部を前記第1および第2のリマッピング・エンジンへそれぞれ配分する、
    ためにさらに操作可能であることを特徴とする請求項18記載の方法。
  20. 前記第1のトラフィック量の一部を1またはそれ以上の追加のリマッピング・エンジンへ転換する段階をさらに有し、前記1、第2、および1またはそれ以上の追加のリマッピング・エンジンは、各々、各エンジンの最大能力に対してほぼ同じパーセンテージのトラフィックを有することを特徴とする請求項19記載の方法。
  21. 前記第1のトラフィック量は、少なくとも第1のデバイスおよび第2のデバイスからのトラフィックを含むことを特徴とする請求項17記載の方法。
  22. 前記第2のリマッピング・エンジンに転換された前記第1のトラフィック量の前記一部は、少なくとも前記第2のデバイスからの少なくとも前記トラフィックを含むことを特徴とする請求項21記載の方法。
  23. 前記第1のリマッピング・エンジンおよび前記第2のリマッピング・エンジンによってトランスレーションされる前記第1のトラフィック量をモニタする段階と、
    前記第1のトラフィック量が前記第1のトラフィックしきい値より下に戻ると、前記第2のリマッピング・エンジンによってトランスレーションされている前記第1のトラフィック量の前記一部を前記第1のリマッピング・エンジンに転換する段階と、
    をさらに含むことを特徴とする請求項17記載の方法。
  24. 前記第2のリマッピング・エンジンによってトランスレーションされている前記第1のトラフィック量の前記一部が前記第1のリマッピング・エンジンに転換された後、第2のリマッピング・エンジンがシャット・ダウンすることができるパワー・マネジメント・ロジックと通信する段階をさらに含むことを特徴とする請求項23記載の方法。
JP2009293729A 2008-12-31 2009-12-25 効率的なリマッピング・エンジンの利用 Pending JP2010157234A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/319,060 US20100169673A1 (en) 2008-12-31 2008-12-31 Efficient remapping engine utilization

Publications (1)

Publication Number Publication Date
JP2010157234A true JP2010157234A (ja) 2010-07-15

Family

ID=41716941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009293729A Pending JP2010157234A (ja) 2008-12-31 2009-12-25 効率的なリマッピング・エンジンの利用

Country Status (5)

Country Link
US (1) US20100169673A1 (ja)
JP (1) JP2010157234A (ja)
CN (1) CN101794238B (ja)
DE (1) DE102009060265A1 (ja)
GB (1) GB2466711A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5320140B2 (ja) * 2009-04-14 2013-10-23 株式会社日立製作所 計算機システム、割込み中継回路及び割込み中継方法
US8285915B2 (en) * 2010-01-13 2012-10-09 International Business Machines Corporation Relocating page tables and data amongst memory modules in a virtualized environment
US8478845B2 (en) * 2010-08-16 2013-07-02 International Business Machines Corporation End-to-end provisioning of storage clouds
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
US10990407B2 (en) 2012-04-24 2021-04-27 Intel Corporation Dynamic interrupt reconfiguration for effective power management
US10303618B2 (en) * 2012-09-25 2019-05-28 International Business Machines Corporation Power savings via dynamic page type selection
US8966132B2 (en) * 2012-11-16 2015-02-24 International Business Machines Corporation Determining a mapping mode for a DMA data transfer
US8984179B1 (en) 2013-11-15 2015-03-17 International Business Machines Corporation Determining a direct memory access data transfer mode
US20180039518A1 (en) * 2016-08-02 2018-02-08 Knuedge Incorporated Arbitrating access to a resource that is shared by multiple processors
FR3070514B1 (fr) * 2017-08-30 2019-09-13 Commissariat A L'energie Atomique Et Aux Energies Alternatives Controleur d'acces direct en memoire, dispositif et procede de reception, stockage et traitement de donnees correspondants
CN109783196B (zh) * 2019-01-17 2021-03-12 新华三信息安全技术有限公司 一种虚拟机的迁移方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59158461A (ja) * 1983-02-25 1984-09-07 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン デ−タ転送制御装置
JPH05216842A (ja) * 1992-02-05 1993-08-27 Mitsubishi Electric Corp 資源管理装置
WO2003075161A1 (fr) * 2002-03-07 2003-09-12 Fujitsu Limited Dispositif et procede de gestion de conversion de systeme de virtualisation de memoire
JP2006113827A (ja) * 2004-10-15 2006-04-27 Hitachi Ltd Cpu余裕管理とトランザクション優先度による負荷分散方法
JP2008515093A (ja) * 2004-09-30 2008-05-08 インテル コーポレイション 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2774862B2 (ja) * 1990-07-16 1998-07-09 株式会社日立製作所 Dma制御装置および情報処理装置
US7266823B2 (en) * 2002-02-21 2007-09-04 International Business Machines Corporation Apparatus and method of dynamically repartitioning a computer system in response to partition workloads
JP2005293427A (ja) * 2004-04-02 2005-10-20 Matsushita Electric Ind Co Ltd データ転送処理装置及びデータ転送処理方法
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US20070061549A1 (en) * 2005-09-15 2007-03-15 Kaniyur Narayanan G Method and an apparatus to track address translation in I/O virtualization
US20070067505A1 (en) * 2005-09-22 2007-03-22 Kaniyur Narayanan G Method and an apparatus to prevent over subscription and thrashing of translation lookaside buffer (TLB) entries in I/O virtualization hardware
US8001543B2 (en) * 2005-10-08 2011-08-16 International Business Machines Corporation Direct-memory access between input/output device and physical memory within virtual machine environment
US7613898B2 (en) * 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59158461A (ja) * 1983-02-25 1984-09-07 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン デ−タ転送制御装置
JPH05216842A (ja) * 1992-02-05 1993-08-27 Mitsubishi Electric Corp 資源管理装置
WO2003075161A1 (fr) * 2002-03-07 2003-09-12 Fujitsu Limited Dispositif et procede de gestion de conversion de systeme de virtualisation de memoire
JP2008515093A (ja) * 2004-09-30 2008-05-08 インテル コーポレイション 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上
JP2006113827A (ja) * 2004-10-15 2006-04-27 Hitachi Ltd Cpu余裕管理とトランザクション優先度による負荷分散方法

Also Published As

Publication number Publication date
GB2466711A (en) 2010-07-07
CN101794238A (zh) 2010-08-04
GB0922600D0 (en) 2010-02-10
US20100169673A1 (en) 2010-07-01
CN101794238B (zh) 2014-07-02
DE102009060265A1 (de) 2011-02-03

Similar Documents

Publication Publication Date Title
JP2010157234A (ja) 効率的なリマッピング・エンジンの利用
RU2431186C2 (ru) Воплощение качества обслуживания ресурсов платформы
US9110702B2 (en) Virtual machine migration techniques
US8171236B2 (en) Managing migration of a shared memory logical partition from a source system to a target system
EP2411915B1 (en) Virtual non-uniform memory architecture for virtual machines
JP4639233B2 (ja) プロセッサ・リソースの仮想化のためのシステムおよび方法
WO2018010654A1 (zh) 一种虚拟机热迁移的方法、装置及系统
US8312201B2 (en) Managing memory allocations loans
US20210216453A1 (en) Systems and methods for input/output computing resource control
US20140095769A1 (en) Flash memory dual in-line memory module management
JP4405435B2 (ja) 動的なホスト区画ページ割り当てのための方法および装置
US9715453B2 (en) Computing method and apparatus with persistent memory
US20050216696A1 (en) Multi-processor system and memory accessing method
US8910152B1 (en) Migrating a virtual machine by using a hot-plug event
TW201432454A (zh) 針對大型共享位址空間之映射機構
EP2569702B1 (en) Determination of one or more partitionable endpoints affected by an i/o message
US9652296B1 (en) Efficient chained post-copy virtual machine migration
US11914512B2 (en) Writeback overhead reduction for workloads

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120807

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130212