(57)【特許請求の範囲】
【請求項１】
入出力（Ｉ／Ｏ）ハブにおいて、前記Ｉ／Ｏハブに結合されたＩ／Ｏ装置から、直接メモリ・アクセス（ＤＭＡ）動作に対する要求を受信する工程であって、前記要求が、前記ＤＭＡに関連付けられた装置仮想アドレス（ＤＶＡ）を含む工程と、
前記Ｉ／Ｏハブの第１の変換エンジンにおいて前記ＤＶＡを物理アドレス（ＰＡ）に変換するためのアドレス変換を行うか否かを、前記Ｉ／Ｏハブと前記Ｉ／Ｏハブに結合されたプロセッサとの間の相互接続の帯域に基づき、前記Ｉ／Ｏハブにおいて判定する工程と、
前記Ｉ／Ｏハブが、前記アドレス変換を行わないと判定した場合に、前記ＤＶＡとともに前記要求を前記Ｉ／Ｏハブから、前記Ｉ／Ｏハブに結合された前記プロセッサに送出し、前記プロセッサの第２の変換エンジンにおいて前記アドレス変換を行う工程と、
前記Ｉ／Ｏハブにおいて、前記Ｉ／Ｏ装置から、第２のＤＭＡ動作に対する第２の要求を受信する工程であって、前記第２の要求は前記第２のＤＭＡ動作に関連付けられた第２のＤＶＡを含み、前記第１の変換エンジンにおいて前記第２のＤＶＡを第２のＰＡに変換し、前記Ｉ／Ｏハブから前記プロセッサに前記第２のＰＡとともに前記要求を送出する工程と、
を含む方法。
【請求項２】
前記判定に基づいて前記Ｉ／Ｏハブの前記第１の変換エンジンにおいて前記アドレス変換を行う工程、及び
前記要求を前記ＰＡとともに前記Ｉ／Ｏハブから前記プロセッサに送出し、さもなければ、前記要求を前記ＤＶＡとともに前記Ｉ／Ｏハブから前記プロセッサに送出する工程、
を更に含む請求項１に記載の方法。
【請求項３】
前記第２の変換エンジンは、ＤＶＡからＰＡへの変換を記憶するためのバッファを含み、前記バッファは、前記プロセッサの変換ルックアサイド・バッファとは別個である、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記Ｉ／Ｏ装置がハードウェア変換機構を有する場合、前記Ｉ／Ｏ装置において前記アドレス変換を行い、さもなければ、前記要求を前記ＤＶＡとともに前記Ｉ／Ｏ装置から前記Ｉ／Ｏハブに送出する工程、
を更に含む請求項１に記載の方法。
【請求項５】
前記Ｉ／Ｏハブから前記プロセッサに前記要求を送出する工程、
を更に含み、
前記プロセッサは、前記要求のノード識別子に基づいて、前記ＰＡに対応するメモリの一部分に関連付けられ、前記ノード識別子は前記プロセッサに対応する、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記要求を前記ＤＶＡとともに前記Ｉ／Ｏハブから前記プロセッサに送出することにより、前記Ｉ／Ｏハブと前記プロセッサとの間のポイントツーポイント相互接続上の帯域を削減する工程、
を更に含み、
前記ＤＶＡに対応するアドレス変換情報を、前記プロセッサから前記Ｉ／Ｏハブに送出せず、よって、前記帯域を削減する、
ことを特徴とする請求項１に記載の方法。
【請求項７】
データに対する動作を実行するための少なくとも一コアと、
変換ルックアサイド・バッファを含むキャッシュ・メモリと、
システム・メモリの一部分をプロセッサに結合させて、メモリ・トランザクションを処理するためのメモリ・コントローラと、
装置仮想アドレス（ＤＶＡ）を含む直接メモリ・アクセス（ＤＭＡ）動作を受け取り、前記システム・メモリの前記一部分における場所に対応する物理アドレス（ＰＡ）に前記ＤＶＡを変換するための変換エンジンと、
を含むプロセッサを備え、
前記ＤＭＡ動作は、前記プロセッサに結合された入出力（Ｉ／Ｏ）装置から起動され、
前記変換エンジンは、前記Ｉ／Ｏ装置にＤＶＡ範囲を与えるドライバにより行われる変換起動手順に関連付けられた信号をスヌープし、
前記Ｉ／Ｏ装置は、前記プロセッサに結合されたＩ／Ｏハブの変換エンジンからの更新をスヌープし、前記更新に基づき前記変換エンジンを更新する仮想マシンのための直接Ｉ／Ｏ装置であり、
前記Ｉ／Ｏハブは、前記プロセッサと前記Ｉ／Ｏ装置との間に結合され、前記Ｉ／Ｏハブは、ＤＶＡからＰＡへの変換を行うための第２の変換エンジンを有し、前記Ｉ／Ｏハブは、前記ＤＶＡとともに前記プロセッサに前記ＤＭＡ動作を送出して、前記Ｉ／Ｏハブと前記プロセッサとを結合する相互接続上の帯域を削減する、
ことを特徴とする装置。
【請求項８】
前記相互接続上の前記帯域が閾値量未満の場合、前記第２の変換エンジンが前記ＤＶＡからＰＡへの変換を行う、
ことを特徴とする請求項７に記載の装置。
【請求項９】
第１のプロセッサであって、データに対する動作を実行するための少なくとも１つのコアと、変換ルックアサイド・バッファを含むキャッシュ・メモリと、装置仮想アドレス（ＤＶＡ）を含む直接メモリ・アクセス（ＤＭＡ）動作に対する要求を受信し、前記第１のプロセッサに結合されたメモリの第１の部分にある物理アドレス（ＰＡ）に前記ＤＶＡを変換するための第１の変換エンジンとを含み、前記ＤＭＡ動作は、前記第１のプロセッサに結合された入出力（Ｉ／Ｏ）装置から起動される第１のプロセッサと、
第２のプロセッサであって、データに対する動作を実行するための少なくとも１つの第２のコアと、第２の変換ルックアサイド・バッファを含む第２のキャッシュ・メモリと、ＤＶＡを含むＤＭＡ動作を受信し、前記第２のプロセッサに結合された第２のメモリ部分にあるＰＡに前記ＤＶＡを変換するための第２の変換エンジンとを含む第２のプロセッサと、
前記Ｉ／Ｏ装置、並びに前記第１のプロセッサ及び前記第２のプロセッサの間に結合されたハブと、
を備え、
前記ハブは、前記ＤＶＡに基づいて前記第１のプロセッサ又は前記第２のプロセッサに前記ＤＭＡ動作を向け、
前記ハブは、前記ＤＶＡを前記ＰＡに変換するためのアドレス変換を行うか否かを、前記ハブと前記第１のプロセッサとの間の相互接続の帯域に基づき、ハブ変換エンジンにおいて決定する、
ことを特徴とするシステム。
【請求項１０】
前記第１の変換エンジンは、前記Ｉ／Ｏ装置のＤＶＡ範囲のプログラミングに関連付けられた信号をスヌープし、前記スヌープ信号に基づいて前記第１の変換エンジンのバッファにおけるエントリを更新する、
ことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記第１の変換エンジン及び前記ハブ変換エンジンはそれぞれ、前記第１のプロセッサに結合されたメモリの前記第１の部分における場所に対応する第１のＤＶＡからＰＡへの変換の組を含む、
ことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記ＤＭＡ動作の前記ＤＶＡからＰＡへの変換が前記第１のＤＶＡからＰＡへの変換の組に存在していない場合に、前記第１のプロセッサと前記ハブとの間の相互接続上の複数のメモリ・トランザクションを第１の変換エンジンが阻止する、
ことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記ハブは、前記ハブ及び前記Ｉ／Ｏ装置が通信する第１のプロトコルから、前記ハブ及び前記第１のプロセッサが通信する第２のプロトコルに前記ＤＭＡ動作に対する要求を変換するが、前記ＤＶＡを前記ＰＡに変換しない、
ことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記第１のプロセッサは、前記ハブへのトランザクションの送出なしで前記ＤＭＡ動作を前記メモリの第１の部分にコミットする、
ことを特徴とする請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送するための通信システムに関し、特に、入出力（Ｉ／Ｏ）仮想化動作のプロセッサへのオフロードに関する。
【背景技術】
【０００２】
コンピュータ・システムは、データを転送するための内部通信システムを有する。前述の内部通信システムには、相互接続の組が含まれる。相互接続は、システムの構成部分間のデータ通信を提供する。しかし、前述の相互接続は、システムの構成部分の要求に応えることができない場合、システム性能のボトルネックにもなり得る。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
入出力コントローラや前述の他のハブなどの手段により、システムに結合された周辺構成部分は多くの場合、直接メモリ・アクセス（ＤＭＡ）要求を行う。ＤＭＡ要求を使用して、主メモリの領域にアクセスしてデータを取り出すか、又は書き込む。周辺構成部分は通常、アクセスが可能なオペレーティング・システムによって割り当てられた仮想アドレス範囲を有する。周辺構成部分は、ＤＭＡトランザクションのメモリ位置の、構成部分によって使用される仮想アドレスに対応する物理アドレスを求めることを可能にするマッピング・データを要求し、取り出す。しかし、変換データに対する要求により、システム相互接続を介したトラフィックが過剰になり得る。
【課題を解決するための手段】
【０００４】
種々の実施例では、アドレス変換動作及びメモリ・アクセス・・レーテンシを処理するために必要な帯域を削減することができる。帯域及びメモリ・レーテンシにおける前述の削減を行うために、実施例は、システムのプロセッサ内の拡張アドレス変換機構を提供することができる。より具体的には、他のリソースのうちでも、１つ又は複数のプロセッサ・コア、メモリ管理ユニット（ＭＭＵ）（変換ルックアサイド・バッファ（ＴＬＢ）など）をはじめとするプロセッサ・ノードは、オフロードされたアドレス変換を、プラットフォームに結合された入出力（Ｉ／Ｏ）装置のために行うための、いわゆる仮想化エンジンなどの更なるアドレス変換機能を更に有し得る。
【発明を実施するための最良の形態】
【０００５】
［実施例］
次に図１を参照するに、本発明の一実施例によるシステムのブロック図が示されている。図１に示すように、システム１００は、複数の処理ノード（すなわち、第１のプロセッサ１１０ａ及び第２のプロセッサ１１０ｂ（全体としてプロセッサ１１０））を含む。中央処理装置（ＣＰＵ）であり得るプロセッサ１１０ａは、ＣＰＵコア１１２ａ、統合メモリ・コントローラ１１４ａ及び仮想化エンジン１１６ａを含み得る。同様に、プロセッサ１１０ｂは、コア１１２ｂ、統合メモリ・コントローラ１１４ｂ及び仮想化エンジン１１６ｂを含み得る。
【０００６】
なお図１を参照するに、各プロセッサ１１０は、それに局所的に接続された主メモリの一部分に結合され得る。特に、プロセッサ１１０ａがメモリ１２０ａに結合され得る一方、プロセッサ１１０ｂはメモリ１２０ｂに結合される。一実施例では、メモリ１２０（全体として）は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）であり得るが、本発明の範囲はこの点で限定されるものでない。
【０００７】
図１に更に示すように、プロセッサ１１０は、ポイントツーポイント（Ｐ−Ｐ）相互接続であり得る相互接続１３０ａ及び１３０ｂによって入出力（Ｉ／Ｏ）ハブ１４０に結合され得る。Ｉ／Ｏハブ１４０は仮想化エンジン１３５を含み得る。図１の実施例に示すように、Ｉ／Ｏハブ１４０は種々のＩ／Ｏ装置１５０ａ乃至１５０ｃに結合され得る。図１における特定の実現形態で示しているが、本発明の範囲はそのように限定されるものでない。
【０００８】
各プロセッサはそれ自身の仮想化エンジンを有しているので、Ｉ／Ｏハブからの変換容量のオフロードを実現することができる。プロセッサ内の前述の仮想化エンジンに変換要件及びメモリ・アクセス要件をオフロードすることにより、Ｉ／Ｏハブにおける対応する仮想化エンジンを解放して、容量がより大きくなるようにすることができる。更に、要求（すなわち、ＶＭ割り当て直接装置Ｉ／Ｏ）に関連付けられたＩ／Ｏ装置を保有する仮想マシンを実行するプロセッサに変換アクセス機能を（マッピング及びアクセス要求単位で）オフロードすることにより、装置のＤＭＡ性能を向上させることが可能である。そういうものとして、各プロセッサ・ソケットは、対応するプロセッサの局所メモリにマッピングされる物理アドレスの仮想化ページ・テーブル・エントリを記憶するための仮想化エンジンを備え得る。
【０００９】
よって、Ｉ／Ｏハブ内の仮想化エンジンにキャッシュ・ミスが生じた場合の種々の実施例を使用すれば、対応する要求は単純に、装置仮想アドレス（ＤＶＡ）範囲がマッピングする物理メモリ範囲を所有するプロセッサにトランザクションの詳細（例えば、装置仮想アドレス（ＤＶＡ）、長さ等）とともに装置からオフロードすることができる。対応するメモリと密接に結合されたプロセッサにおける装置からＤＭＡトランザクションを処理することにより、前述のプロセッサの場合、ＶＭがアフィニティ・マスクを有し、ＶＭが装置（すなわち、直接装置割り当てＩ／Ｏ）を所有する場合に性能の向上を実現することができる。
【００１０】
Ｉ／Ｏ装置がプロセッサの仮想化エンジンを使用することが可能になる前に、動作シーケンスを行って前述の動作を可能にすることができる。特に、初期化処理を行って、ＤＭＡの目的で物理メモリ領域を設定し、装置アクセスのためにオペレーティング・システム（ＯＳ）に登録することができる。
【００１１】
次に図２を参照するに、本発明の一実施例による方法のフロー図を示す。図２に示すように、方法２００は、Ｉ／Ｏ装置などの装置がＤＭＡ動作を行おうとする際に方法２００が開始し得る。図２に示すように、ＤＭＡ動作のメモリ範囲をＯＳに登録することができる（ブロック２１０）。一実施例では、装置ドライバ（例えば、ＶＭの一部として、又はネーティブＯＳ上で実行している）は、ＤＭＡ目的で特定の範囲のメモリを割り当て、装置アクセスのためにＯＳに登録する。なお図２を参照するに、次に、Ｉ／Ｏハブの仮想化エンジンを物理メモリ範囲及び対応する装置仮想アドレス（ＤＶＡ）でプログラムすることができる（ブロック２２０）。例えば、ＯＳは、関連付けられた主メモリの物理メモリ範囲で仮想化エンジンをプログラムし、装置仮想アドレスを得ることができる。この動作に関し、ＶＥページ・テーブルを、関連付けられたＣＰＵにおいて更新することができる（ブロック２３０）。例えば、ＣＰＵ内のＶＥは前述のトランザクションをスヌープし、対応するアドレス及びＤＶＡでそれ自身のページ・テーブル・エントリを更新することができる。あるいは、Ｉ／Ｏハブにおける仮想エンジンは、範囲を保有するＣＰＵを指し示す物理アドレス範囲内のノード識別子（ノードＩＤ）などの識別子を復号化し、対応するメッセージをＣＰＵ内のＶＥに送出してそのページ・テーブルを適宜更新することができる。よって、この時点で、同じＤＶＡのページ・テーブル・エントリの複製が２つ存在している。
【００１２】
図２をなお参照すれば、次に、ＤＶＡは、Ｉ／Ｏ装置内の装置ドライバに戻すことができる（ブロック２４０）。よって、Ｉ／Ｏ装置をＤＶＡ範囲でプログラムすることができる（ブロック２５０）。例えば、例として前述のプログラミングに装置-ドライバ専用チャネルを使用することにより、ＤＶＡ範囲でその装置をプログラムすることができる。図２の実施例においてこの特定の実現形態を示しているが、本発明の範囲はこの点で限定されるものでない。
【００１３】
装置の初期化が本発明の実施例により、行われた後、Ｉ／Ｏ装置と、主メモリの一部分などの所望の場所との間のＤＭＡ動作を行うことができる。次に図３を参照するに、本発明の一実施例による方法のフロー図を示す。方法３００を使用してＤＭＡトランザクションを行うことができ、ＤＭＡトランザクションを送出することにより、開始し得る（ブロック３１０）。例えば、Ｉ／Ｏ装置は、メモリからデータを読み出すか、又はメモリにデ―タを直接書き込む旨のＤＭＡトランザクションを送出することができる。制御はブロック３１０から菱形３２０に移る。菱形３２０では、Ｉ／Ｏ装置が、ＴＬＢや他のメモリ管理ユニット（ＭＭＵ）をサポートするか否かを判定することができる。肯定の場合、制御は菱形３３０に移る。菱形３３０では、仮想アドレスから物理アドレスへの変換がＴＬＢや他の前述の構造に存在しているか否かを判定することができる（菱形３３０）。肯定の場合、ＤＭＡトランザクションを、対応する物理アドレスとともにＩ／Ｏ装置から送出することができる（ブロック３３５）。よって、この物理アドレスを、Ｉ／Ｏハブ及び対応するＣＰＵを介して所望のメモリ場所に転送して、ＤＭＡトランザクションを行うことができる。
【００１４】
その代わりに菱形３３０で、変換がＴＬＢに存在していないと判定された場合、ＶＥからの変換の要求を行うことができる（ブロック３４０）。Ｉ／Ｏハブは、Ｉ／Ｏ装置が次いでＤＭＡトランザクションをＰＡとともに送出するように、対応する変換物理アドレスをＩ／Ｏ装置のＴＬＢや他のＭＭＵ構造に供給することができる（やはりブロック３３５）。変換情報をＩ／ＯハブのＶＥからＣＰＵ内のＶＥに供給して、ＶＥがそのエントリ（例えば、ページ・テーブル・エントリ）をイネーブルすることもできる。
【００１５】
例証を容易にするために、図３に示していないが、変換がＩ／ＯハブのＶＥに存在していない場合、対応するページ・テーブルをメモリから読み出すことができ、プロセッサ及びＩ／Ｏハブの（潜在的には）ＶＥのページ・テーブルを更新することができる。更に、Ｉ／Ｏハブは、前述のページ・テーブルをＩ／Ｏ装置に転送してそのＴＬＢや他のＭＭＵ構造を更新することができる。更に他の実施例では、Ｉ／ＯハブのＶＥにおいて変換が欠けている場合、ブロック３６０及び３６５に関して後述するように、プロセッサのＶＥにおいて処理するために、Ｉ／Ｏハブは単純に、ＤＭＡトランザクションをプロセッサに転送することができる。
【００１６】
図３に戻れば、代わりに菱形３２０で、Ｉ／Ｏ装置がＴＬＢをサポートしないと判定された場合、制御はブロック３５０に移る。そこでは、ＤＭＡトランザクションをＩ／Ｏ装置からＩ／ＯハブにＤＶＡ及び長さを使用して、例えば、ＤＭＡ動作の実行を可能にするための情報として送出することができる。次に、菱形３５５で、Ｉ／ＯハブにおけるＶＥが要求を処理することができるか否かを判定することができる。本発明の範囲はこの点で限定されていないが、この決定は、いくつかの要因（例えば、変換がそのＶＥページ・テーブルに既に存在しているか、そのキャッシュ・ミス比、現在処理している負荷、Ｐ−Ｐ相互接続上の負荷（例えば、負荷は閾値帯域を下回っている）等）に基づいて行うことができる。
【００１７】
Ｉ／ＯハブのＶＥが要求を行うことが可能でないと菱形３５５で判定された場合、要求はＣＰＵに転送される（ブロック３６０）。例えば、特定の実施例では、ページ・フォールトを作成して、Ｐ−Ｐ相互接続に沿った関連付けられたメモリ範囲を保有するＣＰＵにＩ／Ｏハブからこのトランザクションを転送することができる。特定の実施例では、Ｉ／Ｏハブは、Ｉ／Ｏ装置及びＩ／Ｏハブが通信し合う第１のプロトコルからＩ／Ｏハブ及びプロセッサが通信し合う第２のプロトコルに着信ＤＭＡトランザクションを変換することができる。特定の一実現形態では、第１の通信プロトコルは、（西暦２００６年１２月２０日発行の）ＰＣＩ  Ｅｘｐｒｅｓｓ（商標）Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｂａｓｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ  ２．０によるＰＣＩ  Ｅｘｐｒｅｓｓ（商標）プロトコルなどの周辺構成部分相互接続（ＰＣＩ）プロトコルに応じていることがあり得る一方、第２の通信プロトコルは、共通システム・インタフェース（ＣＳＩ）通信プロトコル（後述する）に応じていることがあり得るが、本発明の範囲はこの点で限定されるものでない。よって、ブロック３６５で、ＣＰＵはＤＭＡトランザクションを処理し得る。例えば、ＣＰＵ内のＶＥは変換を有し得るものであり、変換をＤＭＡ要求とともに供給して要求のコミットメントを可能にし、次いで、処理するために要求を主メモリに転送することができる。そうすることにより、ＣＰＵとＩ／Ｏハブとの間の複数のトランザクションに対する必要性を避けることができる。応答、完了や他の前述のトランザクションが生起しなくてよいからである。代わりにＣＰＵ  ＶＥが変換を含まない場合、ページ・ウォーク機構を行って前述の変換情報を（例えば、主メモリから）受信し、ＣＰＵのＶＥにロードし、次いで、ＤＭＡトランザクションを行うことができる。
【００１８】
その代わりに、Ｉ／ＯハブにおけるＶＥが要求を処理することが可能であると菱形３５５で判定された場合、制御はブロック３７０に移る。ブロック３７０では、変換を行い、ＤＭＡトランザクションは、対応する物理アドレスとともにＰ−Ｐ相互接続に沿ってＣＰＵに送出することができる。他の実現形態では、変換がＩ／ＯハブのＶＥに存在していない場合、変換をＣＰＵに要求することができる。変換情報が受信されると、Ｉ／ＯハブのＶＥを適宜更新することができる。図３の実施例においてこの特定の実現形態で示しているが、本発明の範囲はこの点で限定されるものでない。
【００１９】
プロセッサのＶＥにおいてアドレス変換を行うことにより、Ｐ−Ｐ相互接続上の通信の削減を実現することができる。例えば、Ｐ−Ｐ相互接続の組に沿ったシステムを介したコヒーレント・トランザクション及び非コヒーレント・トランザクションの通信を可能にするためのキャッシュ・コヒーレント・プロトコルであるＣＳＩプロトコルを実現する実施例では、プロセッサとＩ／Ｏハブとの間の通信の削減を実現することができる。特に、ＤＶＡからＰＡへのアドレス変換をＩ／Ｏハブにおいて行い、変換がＩ／ＯハブのＶＥにおいて欠けている場合、メモリに更新ページ・テーブル情報を要求し、この情報をＩ／ＯハブのＶＥに戻すためにはいくつかのトランザクションがＰ−Ｐ相互接続に沿って生起する必要がある。例えば、Ｉ／Ｏハブは、ＤＶＡの範囲を保持するプロセッサのメモリからページ・テーブルを読み出す必要がある。このことは、コヒーレント読み出し要求を送出し、応答パケットを受信することによって行うことになる。必要なページ・ウォーク数に応じて、ページ・テーブル読み出しは、複数のコヒーレント読み出し要求及び応答パケットに関係し得る。例えば、一実現形態では、４つのメモリ・トランザクション及び４つの完了を行う必要があり、Ｐ−Ｐ相互接続に沿ってトランザクションが８つになり得る。その代わりに、図３において前述した実施例などの実施例を使用すれば、実行するためにＩ／ＯハブからプロセッサにＤＭＡトランザクションを転送するために単一のトランザクションを送出することができる。よって、前述の８つのトランザクションを、実際のＤＭＡ要求をメモリにコミットするための更なるトランザクションとともに避けることができる。これには、更なるコヒーレント・トランザクションが伴い得る。よって、本発明の実施例を使用すれば、Ｉ／Ｏハブにおける仮想化エンジンは、ＤＭＡトランザクションを第１のプロトコルから第２のプロトコルに変換し、これをプロセッサに転送して、プロセッサ内の仮想化エンジンが、ルックアップ全てを行い、トランザクションをその局所メモリにコミットし、Ｐ−Ｐ相互接続上のトランザクションを避けることが可能である。
【００２０】
実施例は、Ｐ−Ｐ相互接続に沿ったプロセッサ・ノード及びＩ／Ｏハブの間のトラフィックを削減するための別々の多くのプラットフォーム・タイプに適していることがあり得る。図４に示すように、マルチプロセッサ・システム５００は、ポイントツーポイント相互接続システムであり、ポイントツーポイント（Ｐ−Ｐ）相互接続５５０を介して結合された第１のプロセッサ５７０及び第２のプロセッサ５８０を含む。図４に示すように、プロセッサ５７０及び５８０それぞれは、第１のプロセッサ・コア及び第２のプロセッサ・コア（すなわち、プロセッサ・コア５７４ａ及び５７４ｂ、並びにプロセッサ・コア５８４ａ及び５８４ｂ）を含むマルチコア・プロセッサであり得るが、他のコアも存在し得る。更に、図４に示すように、第１のプロセッサ５７０及び第２のプロセッサ５８０はそれぞれ、本発明の実施例によれば、仮想化エンジン５７５及び５８５を含む。図４をなお参照すれば、第１のプロセッサ５７０は、メモリ・コントローラ・ハブ（ＨＵＢ）５７２及びＰ−Ｐインタフェース５７６及び５７８を更に含む。同様に、第２のプロセッサ５８０は、ＭＣＨ５８２、並びにＰ−Ｐインタフェース５８６及び５８８を含む。図４に示すように、ＭＣＨ５７２及び５８２は、プロセッサをそれぞれのメモリ（すなわち、メモリ５３２及びメモリ５３４。主メモリの一部（例えば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）や、完全にバッファリングされたデュアル・インライン・メモリ・モジュール（ＦＢＤＩＭＭ）であり得る））に結合する。
【００２１】
第１のプロセッサ５７０及び第２のプロセッサ５８０は、Ｐ−Ｐ相互接続５５２及び５５４それぞれを介してチップセット５９０に結合することができる。図４に示すように、チップセット５９０は、Ｐ−Ｐインタフェース５９４及び５９８を含む。更に、チップセット５９０は、高性能グラフィックス・エンジン５３８とチップセット５９０を結合するためのインタフェース５９２を含む。一実施例では、アドバンスト・グラフィクス・ポート（ＡＧＰ）バス５３９又はポイントツーポイント相互接続を使用してグラフィクス・エンジン５３８をチップセット５９０に結合することができる。チップセット５９０は、アドレス変換を行い、更に、対応するＰ−Ｐ相互接続５５２に沿って、削減された帯域をイネーブルするために、非変換ＤＶＡとともに、ダウンストリーム装置からのトランザクションを転送するか（例えば、第１のプロセッサ５７０及び第２のプロセッサ５８０のうちの選択された一方にＤＭＡトランザクションを転送するか）否かを判定するためのＶＥ５９５を更に含む。図４に示すように、第１のバス５１６を第２のバス５２０に結合するバス・ブリッジ５１８とともに、種々のＩ／Ｏ装置５１４を第１のバス５１６に結合することができる。種々の装置を、一実施例では、例えば、キーボード／マウス５２２、通信装置５２６、及び、コード５３０を含み得るデータ記憶装置５２８を含む第２のバス５２０に結合することができる。更に、オーディオＩ／Ｏ５２４を第２のバス５２０に結合することができる。
【００２２】
実施例は、コードで実現することができ、命令を行うようシステムをプログラムするために使用することが可能な命令を記憶させた記憶媒体上に記憶することができる。記憶媒体には、フロッピー（登録商標）・ディスク、光ディスク、コンパクト・ディスク・リードオンリー・メモリ（ＣＤ−ＲＯＭ）、書き換え可能コンパクト・ディスク（ＣＤ−ＲＷ）及び光磁気ディスク、リードオンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）（ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）など）、消去可能なプログラマブル・リード・オンリー・メモリ（ＥＰＲＯＭ）や、フラッシュ・メモリ、電子的に消去可能なプログラマブル・リード・オンリー・メモリ（ＥＥＰＲＯＭ）などの半導体デバイス、磁気カード若しくは光カードや、電子的命令の記憶に適した何れかの他のタイプの媒体があり得るが、これらに限定されるものでない。
【００２３】
本発明は、限定数の実施例に関して説明してきたが、当業者は数多くの修正及び変形をそこから分かるであろう。特許請求の範囲記載の請求項が、本発明の真の趣旨及び範囲内に収まる限り、前述の修正及び変形を全て包含することを意図している。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施例によるシステムを示すブロック図である。
【図２】本発明の一実施例による方法を示すブロック図である。
【図３】本発明の別の実施例による方法を示すフロー図である。
【図４】本発明の一実施例によるポイントツーポイント相互接続システムを示すブロック図である。
【符号の説明】
【００２５】
１１０  プロセッサ
１１２  コア
１１４  メモリ・コントローラ
１１６  仮想化エンジン
１２０  メモリ
１４０  Ｉ／Ｏハブ
１５０  Ｉ／Ｏ装置
１３５  仮想化エンジン
【図１】
0004805314.tif 000002
【図２】
0004805314.tif 000003
【図３】
0004805314.tif 000004
【図４】
0004805314.tif 000005