(57)【要約】【課題】  メモリ・アドレスの変換およびピン止めのための方法およびシステムを提供すること。【解決手段】  この方法は、メモリ・アドレス・スペース識別子を直接メモリ・アクセス（ＤＭＡ）要求に付加するステップを含み、ＤＭＡ要求はコンシューマにより、所与のアドレス・スペース内の仮想アドレスを使用して送信される。この方法はさらに、ＤＭＡ要求で使用される所与のアドレス・スペース内の仮想アドレスの、物理ページ・フレームへの変換を見つけるために、メモリ・アドレス・スペース識別子を探索するステップも含む。物理ページ・フレームが見つかったという条件で、当該所与のアドレス・スペース内の当該仮想アドレスのマップ解除オペレーションを防ぐために、ＤＭＡ要求が進行中である限りは、物理ページ・フレームをピン止めし、さらに、ＤＭＡ要求を完了するものであって、付加、探索、およびピン止めのステップは、ホスト・ゲートウェイによって中央制御される。【選択図】  図２
2008009982.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・アドレス・スペース識別子を直接メモリ・アクセス（ＤＭＡ）要求に付加するステップであって、前記ＤＭＡ要求はコンシューマにより、所与のアドレス・スペース内の仮想アドレスを使用して送信される、付加するステップと、
前記ＤＭＡ要求で使用される前記所与のアドレス・スペース内の前記仮想アドレスの、物理ページ・フレームへの変換を見つけるために、前記メモリ・アドレス・スペース識別子を探索するステップと、
物理ページ・フレームが見つかったという条件で、前記所与のアドレス・スペース内の前記仮想アドレスのマップ解除オペレーションを防ぐために、前記ＤＭＡ要求が進行中である限りは、前記物理ページ・フレームをピン止めするステップと、
前記ＤＭＡ要求を完了するステップであって、付加、探索、およびピン止めの前記ステップは、ホスト・ゲートウェイによって中央制御される、完了するステップと、
を有する、集中メモリ・アドレス変換およびピン止めのためのコンピュータ実施方法。
【請求項２】
前記ＤＭＡ要求が、前記コンシューマの少なくとも１つの識別子、前記コンシューマのアドレス・スペース内の仮想アドレス、および前記ＤＭＡ要求の長さを含む、請求項１に記載の方法。
【請求項３】
前記探索ステップが、前記コンシューマのメモリ内に配置されたページ・テーブルにおける探索ステップをさらに有する、請求項１に記載の方法。
【請求項４】
前記探索ステップが、前記ＤＭＡ要求の要求であるＩ／Ｏデバイスと結合されたデバイス・コントローラ内に配置された変換制御エントリ（ＴＣＥ）テーブルにおける探索ステップをさらに有し、前記ＴＣＥテーブルが、前記Ｉ／Ｏデバイスと結合されたページ・エントリおよび前記ページ・エントリに対応する仮想アドレスの記録を保持する、請求項１に記載の方法。
【請求項５】
前記物理ページ・フレームが前記探索ステップで見つからない場合、前記方法が、前記変換を確立するためにハイパーバイザまたはオペレーティング・システムへのＩ／Ｏミス割り込み呼び出しを発生させるステップをさらに有する、請求項１に記載の方法。
【請求項６】
前記ピン止め・ステップが、前記ＤＭＡ要求に関与している前記物理ページ・フレームが、前記ハイパーバイザまたはオペレーティング・システムが前記物理ページ・フレームを異なるタスクにマッピングするのを防ぐ旨を、前記ハイパーバイザまたは前記オペレーティング・システムに対してマークするステップをさらに有する、請求項１に記載の方法。
【請求項７】
前記ハイパーバイザまたは前記オペレーティング・システムが前記物理ページ・フレームをマップ解除できるようにするために、前記ＤＭＡ要求が完了されるように、前記ハイパーバイザまたは前記オペレーティング・システムを更新するステップをさらに有する、請求項１に記載の方法。
【請求項８】
前記ホスト・ゲートウェイが処理ユニットのメモリ管理ユニット（ＭＭＵ）と統合される、請求項１に記載の方法。
【請求項９】
前記付加するステップが前記ホスト・ゲートウェイによって制御され、前記探索ステップおよびピン止め・ステップが前記ＭＭＵによって制御される、請求項８に記載の方法。
【請求項１０】
前記ＤＭＡ要求が、前記コンシューマの少なくとも１つの識別子と、前記コンシューマおよびＴＣＥ記録の形で前記コンシューマと結合されたページ・エントリのアドレス・スペースの仮想アドレスと、前記ＤＭＡ要求の長さと、前記ＤＭＡ要求のマッピングＩＤとを含む、請求項４に記載の方法。
【請求項１１】
マッピング・オペレーションについて仮想アドレスを検証および変換するために前記ＴＣＥ記録を使用するステップをさらに有する、請求項４に記載の方法。
【請求項１２】
前記メモリ・アドレス・スペース識別子が前記ＴＣＥテーブルに見当たらない場合、前記ＴＣＥテーブルを更新するステップをさらに有する、請求項４に記載の方法。
【請求項１３】
仮想アドレスがマップ解除するよう意図されることをマークするステップと、
前記仮想アドレスがマップ解除可能であるかどうかを判定するために、仮想アドレス・スペースのアドレス・スペース識別子および前記仮想アドレスを送信するステップと、
前記仮想アドレスがマップ解除であるかどうかを判定するステップと、
を有する、仮想メモリ・アドレス・スペース内の仮想アドレスのマップ解除オペレーションを送るための、コンピュータ実施方法。
【請求項１４】
前記仮想アドレスがマップ解除可能である場合、前記方法が前記仮想アドレスをマップ解除するステップをさらに有する、請求項１３に記載の方法。
【請求項１５】
前記仮想アドレスがマップ解除不可である場合、前記方法が前記マップ解除オペレーションを打ち切るステップをさらに有する、請求項１３に記載の方法。
【請求項１６】
前記仮想アドレスがマップ解除不可である場合、前記方法が待機期間後に前記仮想アドレスのマップ解除を再試行するステップをさらに有する、請求項１３に記載の方法。
【請求項１７】
メモリ・アドレス・スペース識別子を直接メモリ・アクセス（ＤＭＡ）要求に付加するように配置構成されたホスト・ゲートウェイであって、前記ＤＭＡ要求はコンシューマによって、および仮想アドレス・スペースを使用して送信される、ホスト・ゲートウェイと、
前記ＤＭＡ要求で使用される前記仮想アドレス・スペースの、物理ページ・フレームへの変換を見つけるために、前記メモリ・アドレス・スペース識別子を探索するように配置構成された第２の構成要素と、
前記物理ページ・フレームのマップ解除オペレーションを防ぐために、前記ＤＭＡ要求が進行中である限りは、前記物理ページ・フレームをピン止めするように配置構成された第３の構成要素であって、前記第２および第３の構成要素は、前記ホスト・ゲートウェイによって中央制御される、第３の構成要素と、
を備える、集中メモリ・アドレス変換およびピン止めのためのシステム。
【請求項１８】
前記ＤＭＡ要求が、前記コンシューマの少なくとも１つの識別子、前記コンシューマのアドレス・スペース内の仮想アドレス、および前記ＤＭＡ要求の長さを含む、請求項１７に記載のシステム。
【請求項１９】
さらに前記第２の構成要素が、前記コンシューマのメモリ内に配置されたページ・テーブルにおいて探索するように配置構成された、請求項１７に記載のシステム。
【請求項２０】
さらに前記第３の構成要素が、前記ＤＭＡ要求に関与している前記物理ページ・フレームが、ハイパーバイザまたはオペレーティング・システムが前記物理ページ・フレームを異なるタスクにマッピングするのを防ぐ旨を、前記ハイパーバイザまたは前記オペレーティング・システムに対してマークするように配置構成された、請求項１７に記載のシステム。
【請求項２１】
前記ホスト・ゲートウェイが処理ユニットのメモリ管理ユニット（ＭＭＵ）と統合された、請求項１７に記載のシステム。
【請求項２２】
デバイス・コントローラ（ＤＣ）と結合された１つまたは複数のＩ／Ｏデバイスを制御するように配置構成されたデバイス・コントローラ（ＤＣ）をさらに備える、請求項１７に記載のシステム。
【請求項２３】
さらに前記ＤＣが、前記Ｉ／Ｏデバイスと結合されたページ・エントリおよび前記ページ・エントリに対応する仮想アドレスの記録を保持するために、少なくとも１つの変換制御エントリ（ＴＣＥ）テーブルを維持するように配置構成された、請求項１７に記載のシステム。
【請求項２４】
前記ＤＭＡ要求が、前記コンシューマの少なくとも１つの識別子と、前記コンシューマおよびＴＣＥ記録の形で前記コンシューマと結合されたページ・エントリのアドレス・スペースの仮想アドレスと、前記ＤＭＡ要求の長さと、前記ＤＭＡ要求のマッピングＩＤとを含む、請求項２３に記載のシステム。
【請求項２５】
さらに前記ＴＣＥ記録が、マッピング・オペレーションについて仮想アドレスを検証および変換するために、前記ホスト・ゲートウェイによって使用される、請求項２３に記載のシステム。
【請求項２６】
さらに前記ホスト・ゲートウェイが、前記メモリ・アドレス・スペース識別子が前記ＴＣＥテーブルに見当たらない場合、前記ＴＣＥテーブルを更新するように配置構成された、請求項２３に記載のシステム。
【請求項２７】
メモリ・アドレス・スペース識別子を直接メモリ・アクセス（ＤＭＡ）要求に付加するステップであって、前記ＤＭＡ要求はコンシューマにより、仮想・アドレス・スペース内の仮想アドレスを使用して送信される、付加するステップと、
前記ＤＭＡ要求で使用される前記所与のアドレス・スペース内の前記仮想アドレスの、物理ページ・フレームへの変換を見つけるために、前記メモリ・アドレス・スペース識別子を探索するステップと、
物理ページ・フレームが見つかったという条件で、前記所与のアドレス・スペース内の前記仮想アドレスのマップ解除オペレーションを防ぐために、前記ＤＭＡ要求が進行中である限りは、前記物理ページ・フレームをピン止めするステップと、
前記ＤＭＡ要求を完了するステップであって、付加、探索、およびピン止めの前記ステップは、ホスト・ゲートウェイによって中央制御される、完了するステップと、
を有する、コンピュータによって読み取られた場合、前記コンピュータに集中メモリ・アドレス変換およびピン止めのための方法を実行させる、コンピュータ・プログラム命令が格納された、コンピュータ読み取り可能媒体を含む、コンピュータ・ソフトウェア製品。
【請求項２８】
前記探索ステップが、前記コンシューマのメモリ内に配置されたページ・テーブルにおける探索ステップをさらに有する、請求項２７に記載の方法。
【請求項２９】
前記探索ステップが、前記ＤＭＡ要求の要求であるＩ／Ｏデバイスと結合されたデバイス・コントローラ内に配置された変換制御エントリ（ＴＣＥ）テーブルにおける探索ステップをさらに有し、前記ＴＣＥテーブルが、前記Ｉ／Ｏデバイスと結合されたページ・エントリおよび前記ページ・エントリに対応する仮想アドレスの記録を保持する、請求項２７に記載の方法。
【請求項３０】
前記物理ページ・フレームが前記探索ステップで見つからない場合、前記方法が、前記変換を確立するためにハイパーバイザまたはオペレーティング・システムへのＩ／Ｏミス割り込み呼び出しを発生させるステップをさらに有する、請求項２７に記載の方法。
【請求項３１】
前記ピン止め・ステップが、前記ＤＭＡ要求に関与している前記物理ページ・フレームが、前記ハイパーバイザまたはオペレーティング・システムが前記物理ページ・フレームを異なるタスクにマッピングするのを防ぐ旨を、前記ハイパーバイザまたは前記オペレーティング・システムに対してマークするステップをさらに有する、請求項２７に記載の方法。
【請求項３２】
マッピング・オペレーションについて仮想アドレスを検証および変換するために前記ＴＣＥ記録を使用するステップをさらに有する、請求項２９に記載の方法。
【請求項３３】
前記メモリ・アドレス・スペース識別子が前記ＴＣＥテーブルに見当たらない場合、前記ＴＣＥテーブルを更新するステップをさらに有する、請求項２９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピュータおよびプロセッサ・アーキテクチャの分野に関する。とりわけ、本発明は、メモリ・アドレスの変換およびピン止め（pinning）のための方法およびシステムに関する。
【背景技術】
【０００２】
関連出願の相互参照
本発明は、２００６年１月１１日出願の「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＭＥＭＯＲＹ  ＰＲＯＴＥＣＴＩＯＮ  ＡＮＤ  ＳＥＣＵＲＩＴＹ  ＵＳＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」という名称の米国特許出願第１１／３３３０６６号、および２００６年１月１１日出願の「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＰＲＯＴＥＣＴＩＯＮ  ＡＮＤ  ＳＥＣＵＲＩＴＹ  ｏｆ  ＩＯ  ＤＥＶＩＣＥＳ  ＵＳＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」という名称の米国特許出願第１１／３３３７１６号に関連する。
【０００３】
デスクトップからサーバまで、現代のほとんどのパーソナル・コンピュータ（ＰＣ）システムのアーキテクチャが概念的および概略的に図１に示されており、次に、この図について説明する。
【０００４】
ＰＣシステム１０は、通常、１つまたは複数の処理ユニット１２内に組み込むか、またはそれらとは別にすることが可能な、メモリ２０を含む。処理ユニット１２は、通常、１つまたは複数のＩ／Ｏバス１６、たとえば周辺構成要素相互接続（ＰＣＩ）バスを介して、Ｉ／Ｏデバイス１４［１］〜１４［ｉ］と結合される。オプションで、処理ユニット１２とＩ／Ｏデバイス１４［１］〜１４［ｉ］との間の接続をより迅速にするために、ＰＣシステム１０は、処理ユニット１２と通信し、メモリ２０との対話およびＩ／Ｏバス１６を制御する、たとえばノース・ブリッジ・ユニット１８などの１つまたは複数の構成要素を含むこともできる。
【０００５】
通常、処理ユニット１２は、通常は、メモリ管理ユニット（ＭＭＵ）２４によって物理アドレスに変換される、仮想メモリ・アドレス・スペース内の仮想メモリ・アドレスを参照する、中央処理ユニット（ＣＰＵ）２６を含む。
【０００６】
通常、Ｉ／Ｏデバイスが直接メモリ・アクセス（ＤＭＡ）オペレーションを使用してメモリ２０からデータの書き込みまたは読み取りを行う場合、そのデータは物理ページ・フレーム内に配置され、それ自体の仮想メモリ・スペースを有するＩ／Ｏを使用するハイパーバイザ、ＯＳ、またはプロセスなどのコンシューマは、このデータを使用することになる。コンシューマは、通常、ＭＭＵ  ２４によって物理アドレスに変換される仮想アドレスを介してデータにアクセスする。
【０００７】
仮想アドレス・スペースから物理アドレス・スペースへの変換は、ＤＭＡオペレーションが進行中である限り安定状態を維持するために必要であり、たとえば、ＤＭＡが進行中である限り他の物理ページを参照することはできない。この要件に違反すると、データの破損が生じる可能性がある。以下、この要件をメモリ・ピン止めと呼ぶ。
【０００８】
メモリ・ピン止めの既知の方法は、通常、物理アドレスをＩ／Ｏデバイスへ送る。これらの方法は、通常、システム１０の上位層、たとえばＯＳまたはハイパーバイザ（または、図１には示されていない、システム４０のオペレーティング・システムを管理することおよびコンシューマあたりのＩ／Ｏメモリ・スペースを割り振ることが可能な、他の構成要素）での仮想アドレスから物理アドレスへの変換、および変換のピン止めを含む。結果として、各ＤＭＡオペレーションに上位層が関与する必要があるため、Ｉ／Ｏパスはより長くより低速になる。別の方法として、必要なすべての物理メモリを事前に登録することによって、変換はコンシューマのメモリ・スペースであらかじめ実行される。
【特許文献１】２００６年１月１１日出願の「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＭＥＭＯＲＹ  ＰＲＯＴＥＣＴＩＯＮ  ＡＮＤ  ＳＥＣＵＲＩＴＹ  ＵＳＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」という名称の米国特許出願第１１／３３３０６６号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この手法の欠点は、貴重なリソースである物理メモリの「無駄遣い」であり、たとえば、ページ・フレームが所与のプロセスに対してピン止めされている限りは、たとえそのページ・フレームとの間でいかなるＩ／Ｏオペレーションも実行されていない場合であっても、他のプロセスはこれを使用することができない。
【課題を解決するための手段】
【００１０】
本発明の第１の態様によれば、集中メモリ・アドレス変換およびピン止めのためのコンピュータ実施方法が提供される。この方法は、メモリ・アドレス・スペース識別子を直接メモリ・アクセス（ＤＭＡ）要求に付加するステップを含み、ＤＭＡ要求はコンシューマにより、所与のアドレス・スペース内の仮想アドレスを使用して送信される。この方法はさらに、ＤＭＡ要求で使用される所与のアドレス・スペース内の仮想アドレスの、物理ページ・フレームへの変換を見つけるために、メモリ・アドレス・スペース識別子を探索するステップも含む。物理ページ・フレームが見つかったという条件で、当該所与のアドレス・スペース内の当該仮想アドレスのマップ解除オペレーションを防ぐために、ＤＭＡ要求が進行中である限りは、物理ページ・フレームをピン止めし、さらに、ＤＭＡ要求を完了するものであって、付加、探索、およびピン止めのステップは、ホスト・ゲートウェイによって中央制御される。
【００１１】
本発明の第２の態様によれば、仮想メモリ・アドレス・スペース内の仮想アドレスのマップ解除オペレーションを送るための、コンピュータ実施方法が提供される。この方法は、仮想アドレスがマップ解除するよう意図されることをマークするステップと、仮想アドレスがマップ解除可能であるかどうかを判定するために、仮想アドレス・スペースのアドレス・スペース識別子および仮想アドレスを送信するステップと、仮想アドレスがマップ解除であるかどうかを判定するステップとを含む。
【００１２】
本発明の第３の態様によれば、集中メモリ・アドレス変換およびピン止めのためのシステムが提供される。このシステムは、メモリ・アドレス・スペース識別子を直接メモリ・アクセス（ＤＭＡ）要求に付加するように配置構成されたホスト・ゲートウェイを含み、ＤＭＡ要求はコンシューマによって、および仮想アドレス・スペースを使用して送信される。システムは、ＤＭＡ要求で使用される仮想アドレス・スペースの、物理ページ・フレームへの変換を見つけるために、メモリ・アドレス・スペース識別子を探索するように配置構成された第２の構成要素と、物理ページ・フレームのマップ解除オペレーションを防ぐために、ＤＭＡ要求が進行中である限りは、物理ページ・フレームをピン止めするように配置構成された第３の構成要素とをさらに含み、この第２および第３の構成要素は、ホスト・ゲートウェイによって中央制御される。
【００１３】
本発明の第４の態様によれば、コンピュータによって読み取られた場合、コンピュータに集中メモリ・アドレス変換およびピン止めのための方法を実行させる、コンピュータ・プログラム命令が格納された、コンピュータ読み取り可能媒体を含む、コンピュータ・ソフトウェア製品が提供される。この方法は、メモリ・アドレス・スペース識別子を直接メモリ・アクセス（ＤＭＡ）要求に付加するステップを含み、ＤＭＡ要求はコンシューマによって、および所与のアドレス・スペース内の仮想アドレスを使用して、送信される。この方法は、ＤＭＡ要求で使用される所与のアドレス・スペース内の仮想アドレスの、物理ページ・フレームへの変換を見つけるために、メモリ・アドレス・スペース識別子を探索するステップをさらに含む。物理ページ・フレームが見つかったという条件で、当該所与のアドレス・スペース内の当該仮想アドレスのマップ解除オペレーションを防ぐために、ＤＭＡ要求が進行中である限りは、物理ページ・フレームをピン止めし、ＤＭＡ要求を完了するものであって、付加、探索、およびピン止めのステップは、ホスト・ゲートウェイによって中央制御される。
【００１４】
次に、本発明の諸実施形態について、添付の図面を参照しながら単なる例として説明する。
【発明を実施するための最良の形態】
【００１５】
システムの概要
以下の詳細な説明では、本発明を完全に理解するために、多数の特定の細部について説明する。しかしながら、当業者であれば、本発明がこれらの特定の細部なしに実施可能であることを理解されよう。他のインスタンスでは、本発明をわかりにくくしないために、良く知られた方法、手順、および構成要素については詳細に説明しない。
【００１６】
次に、本発明の実施形態に従ったコンピュータ・システム４０を示す概略ブロック図である、図２を参照する。システム４０は、以下で詳細に説明するように、メモリのピン止めおよび変換を利用することができる。
【００１７】
システム４０では、ハイパーバイザ、ＯＳまたは、自体の仮想メモリ・スペース（図示せず）を有するＩ／Ｏが、総称的に「コンシューマ」と呼ばれ、メモリ５０と通信し、１つまたは複数のＩ／Ｏデバイス１４［１］〜１４［ｉ］からメモリ５０へ直接メモリ・アクセス（ＤＭＡ）を要求することができる。ＤＭＡ要求は、たとえば、コンシューマのＩＤ、コンシューマのアドレス・スペース内の仮想アドレス（仮想アドレスは、ページおよびそのページ内のオフセットの両方を供給することができる）、および要求の長さを含むことができる。ＤＭＡ要求は、ＤＭＡ要求にアドレス・スペース識別子を付加することが可能なホスト・ゲートウェイ（ＨＧ）４２に送信可能であり、アドレス・スペース識別子は開始コンシューマのそれである。
【００１８】
図２に示されるように、ＨＧ  ４２は、たとえば周辺構成要素相互接続（ＰＣＩ）バスなどの１つまたは複数のＩ／Ｏバス１６、ならびに、メモリ５０との対話およびＩ／Ｏバス１６を制御することができる１つまたは複数のノース・ブリッジ１８に、結合することができる。
【００１９】
ＤＭＡ要求は、コンシューマのアドレス・スペース、仮想アドレス、オフセット、および前述の長さを含むことが可能な形で、ＨＧ  ４２からデバイス・コントローラ（ＤＣ）４６に送信することができる。その後ＤＣ  ４６は、ＤＭＡ要求をＩ／Ｏデバイス１４［１］〜１４［ｉ］へ送信することができる。ＤＭＡ要求が実行された後、ＤＣ  ４６は、同じ形（アドレス・スペース、仮想アドレス、オフセット、長さ）で、Ｉ／Ｏオペレーションに関与したバッファをＨＧ  ４２に送信することができる。その後ＨＧ  ４２は、実際のデータをメモリ５０内へ配置することができる。
【００２０】
本発明のいくつかの諸実施形態によれば、ＨＧ  ４２は（図２に示されるように）処理ユニット１２から分離することができる。この構成では、ＨＧ  ４２は第１にアドレス変換を実行し、その後、その変換ならびにＤＭＡ要求およびＩ／Ｏオペレーションに関与したページをピン止めし、次に、実際のデータ配置を実行することができる。
【００２１】
本発明のいくつかの他の諸実施形態によれば、ＨＧ  ４２は処理ユニット１２、とりわけＭＭＵ  ２４に統合することが可能である。この構成（図示せず）では、ＨＧ  ４２は、メモリ５０にアクセスする場合、仮想アドレスを使用することが可能であり、ＭＭＵ  ２４は変換を制御および実行し、Ｉ／Ｏミス割り込み（IO miss interrupt）のケースなどを処理することが可能である。
【００２２】
ピン止めおよび変換オペレーション
次に、本発明の諸実施形態に従った、メモリのピン止めおよび変換のための方法を示す概略流れ図である、図３を参照する。この方法の以下の説明では、メモリのピン止めおよび変換の責務を負うエンティティ、たとえばＨＧ  ４２は、処理ユニット１２から分離している。この構成によれば、ＨＧ  ４２は、メモリ・アドレス・スペース識別子を着信するＤＭＡ要求に付加する（ステップ３００）責務を負うことができる。その後ＨＧ  ４２は、着信するＤＭＡ要求を受信すると必ず、たとえば、ＤＭＡ要求に付加されたアドレス・スペース識別子によって識別されるアドレス・スペース、または他の事前に定義されたアドレス・スペース内で、バッファの仮想アドレスを探索することによって、要求内で参照されたバッファに関する変換が存在するかどうかをチェックする（ステップ３０２）。すべての変換が存在し、有効である場合、ＨＧ  ４２は（ホスト・ページ・テーブルまたは何らかの他の変換情報を使用して）、仮想アドレスを対応する物理ページ・フレームに変換する（ステップ３０４）ことができる。
【００２３】
変換が存在しない場合、ＨＧ  ４２は、変換を確立するために、システム４０の上位層、たとえばハイパーバイザまたはＯＳへ、「Ｉ／Ｏミス割り込み」呼び出しを発生させる（ステップ３０６）ことができる。ハイパーバイザは、そのＩ／Ｏミス割り込みが、そのＯＳの下で実行中のアプリケーションによって実行されたＩ／Ｏオペレーションによって発生した場合、このＩ／Ｏミス割り込みを、その下で実行中のＯＳに反映させることができる。
【００２４】
変換が見つかった場合、ＤＭＡオペレーションおよびメモリ内へのデータの配置が進行中である限りは、たとえばそれぞれのページ・フレームなどの物理ページをピン止めする（ステップ３０８）ことが可能であり、その結果、データの配置が進行中の間、上位層はそれらをマップ解除しないことになる。
【００２５】
本発明のこの実施形態によれば、ＤＭＡオペレーションは、上位層の関与または制御なしに（前述の特定のケースを除く）、コンシューマ、ＨＧ  ４２、ＤＣ  ４６、およびＩ／Ｏデバイスの間で実行されるため、ＨＧ  ４２は、ＤＭＡオペレーションに関与している間、上位層がページをマップ解除するのを防ぐ必要があり、上位層は、ページをマップ解除する前にＨＧ  ４２でマップ解除プロトコルを実行することができる。このように実行するために、ＨＧ  ４２は、どのページが現在ＤＭＡオペレーションおよびデータの配置に関与しているか、したがって上位層によってマップ解除できないかをマークし、ＤＭＡ「読み取り」オペレーションに関与していたどのページがダーティ（dirty）であるかを上位層の知識なしにマークすることができる。これらのマーキングは、たとえば各タイプのマークに関するダーティ・ビットを使用することによって達成可能である。
【００２６】
ＤＭＡオペレーションが終了すると、ＨＧ  ４２は、たとえばダーティ・ビットを更新することによって、ページのマップ解除が可能な上位層を更新する（ステップ３１０）ことができる。
【００２７】
ＨＧ  ４２がＭＭＵ  ２４と統合されている構成では、ピン止めおよび変換オペレーションは、コンシューマのＣＰＵメモリ・アクセスに対して実行されたものと同じ方法で、ＭＭＵを介して実行可能であることに留意されたい。この方法では、ＨＧ  ４２は、着信するＤＭＡ要求にアドレス・スペース識別子を付加する責務を負うことができる。ＭＭＵ  ２４も、自動的にページ・テーブル・エントリのダーティ化を担当することができる。
【００２８】
データ・トランザクション
図２および３に関連して、次に、本発明の実施形態に従った、データ・トランザクションの方法を示す例示的流れ図である、図４を参照する。
【００２９】
コンシューマは、ＨＧ  ４２に対してＤＭＡ要求を開始する（ステップ４００）ことができる。ＨＧ  ４２は、コンシューマのアドレス・スペース内の仮想アドレスである、コンシューマＩＤを受け取ることができる（仮想アドレスは、ページとそのページ内のオフセットの両方、およびＤＭＡ要求の長さを供給することができる）。
【００３０】
コンシューマは、ＤＭＡ要求が開始された旨を上位層に通知することなく、ＨＧ  ４２に対して直接ＤＭＡ要求を開始できることに留意されたい。
【００３１】
ＨＧ  ４２は、同じ情報を備えたＤＭＡ要求を、ＤＣ  ４６に渡す（ステップ４０２）に渡す（ステップ４０２）ことができる。この情報は、本出願の譲受人に譲渡された、２００６年１月１１日出願の「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＭＥＭＯＲＹ  ＰＲＯＴＥＣＴＩＯＮ  ＡＮＤ  ＳＥＣＵＲＩＴＹ  ＵＳＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」という名称の米国特許出願第１１／３３３０６６号に記載されたように、その保全性を維持するために保護することができる。
【００３２】
何らかの時点で、ＤＭＡ要求がＩ／Ｏデバイスによって完了された場合、ＤＣ  ４６は、ＤＭＡオペレーションをコンシューマのメモリにあるその宛先へと完了するために必要なバッファ情報を含む、Ｉ／Ｏオペレーションを、ＨＧ  ４２に送信する（ステップ４０４）ことができる。たとえば、各バッファについて、コンシューマの仮想アドレス・スペース内のバッファのアドレス、コンシューマＩＤ（その後アドレス・スペースＩＤに変換される）、バッファの長さなどを含むことができる。オプションで、バッファを保護する証明書を含むことなどもできる。
【００３３】
ＨＧ  ４２は、Ｉ／Ｏオペレーションによって提供されたアドレスの妥当性をチェックし、有効であれば、ＨＧ  ４２は、ＤＭＡ要求によるアクセスに関して要求されたアドレスを、コンシューマＩＤからアドレス・スペースＩＤに変換し、その後、前述のようにアドレス・スペースおよび仮想アドレスから物理ページ・フレームに変換する（ステップ４０６）ことができる。
【００３４】
変換が見つかった場合、ＨＧ  ４２は、ＤＭＡオペレーションを進行させ、特定のアドレス・スペース内の特定の仮想アドレスに対してデータ配置オペレーションが実行される旨をマークする（ステップ４０８）ことができる。変換が見つからない場合、ＨＧ  ４２は、メモリ５０内のこの特定のアドレス・スペースについて、ページ・テーブルをチェックする（ステップ４１０）ことができる。ページ・テーブルはメモリ５０内に配置可能であるが、処理ユニット１２内にも配置可能であることに留意されたい。ページ・テーブルは、ＣＰＵ  ２６と、ＣＰＵ上で実行中の最高の特権が与えられたソフトウェア・アプリケーション、たとえばＯＳまたはハイパーバイザ、との間で共有される、データ構造である。
【００３５】
ページ・テーブル内で変換が見つかった場合、ＨＧ  ４２はこの変換を使用して、Ｉ／Ｏオペレーションを進行させ、前述のようにステップ４０８で、Ｉ／Ｏオペレーションが進行中である旨をマークする。ページ・テーブル内で変換が見つからない場合、ＨＧはＩ／Ｏミス割り込みを発生させる（ステップ４１２）。以下で詳細に説明するように、たとえばハイパーバイザまたはＯＳなどの上位層によってＩ／Ｏミス割り込みが処理され、ページが更新される（ステップ４１４）と、ＨＧ  ４２はＩ／Ｏオペレーションを進行させるか、別の方法として、ＨＧ  ４２はＩ／Ｏオペレーションを打ち切るか、または上位層から受け取る応答に応じて任意の他のアクションを実行することができる。
【００３６】
Ｉ／Ｏミス割り込みという用語は、初期の割り込み、たとえば、ＤＭＡ要求がコンシューマから受け取られ、ＤＣ  ４６に送られる前に、ＨＧ  ４２が必要な変換情報を見つけられない場合に発生する割り込み、または、遅延（late）割り込み、すなわちＤＣ  ４６がＩ／Ｏオペレーションを送り、ＨＧ  ４２が必要な変換情報を見つけられない場合に発生する割り込み、あるいはその両方の組み合わせを含むことに留意されたい。どちらの場合も、ＨＧ  ４２は同じ変換およびピン止め・オペレーションを実行することができる。相違点は、変換がピン止めされたままである時間の長さである。変換が早く実行されるほど、ピン止めされたままである時間は長い。したがって、初期の割り込みによって確立される変換は、遅延割り込み後に確立される変換よりも、ピン止めされたままである時間は長くなる。
【００３７】
Ｉ／Ｏオペレーションが完了し、データ配置オペレーションが終了すると、ＨＧ  ４２は、ＤＭＡプロセスに使用された仮想アドレスがもはやデータの配置には使用されない旨をマークする（ステップ４１６）ことができる。
【００３８】
たとえば、メモリ５０内での探索オペレーションの実行、Ｉ／Ｏミス割り込みの発生など、ＨＧ  ４２が実行するルーチン・オペレーションよりも多くのＨＧ  ４２からのリソースを必要とするオペレーションを、ＨＧ  ４２が実行する必要がある場合、着信するＤＭＡ要求をペーシングする（pace）必要がある可能性があることに留意されたい。ＨＧ  ４２は、以下のいずれかを、望ましさの高い順から実行することができる。
【００３９】
ＨＧ  ４２は、ＤＣ  ４６に対してＤＭＡ要求を再試行するように要求することができる。その後、近い将来、ＤＭＡ要求の再試行はＤＣ  ４６の責務となり、ＤＭＡ要求が再試行される場合に、ＨＧ  ４２はマッピングが存在することを保証するためのアクションを行うことができる。
【００４０】
別の方法として、ＨＧ  ４２はメモリ５０内のフリー・ページの事前割振りリストへのＤＭＡ要求を実行し、その後、コンシューマが予測した箇所で必ずマッピングされて終わるように、マッピングを修正するために上位層に対してＩ／Ｏミス割り込みを発生させることができる。
【００４１】
あまり好ましくない代替形態は、ＤＭＡ要求を失敗させ、最終的に再試行が生じることを予期することである。ＨＧ  ４２は、マッピングを持たない任意のＤＭＡ要求を失敗させることができるため、ＨＧ  ４２は、たとえばすべての他のＤＭＡ要求／Ｉ／Ｏオペレーションを失敗させることによって、すべてのＩ／Ｏバッファのピン止めをあらかじめ効果的に要求することができることに留意されたい。
【００４２】
他のオプションは、ＨＧ  ４２それ自体にＤＭＡ要求をバッファリングすることである。このオプションは最も費用のかかるオプションである。追加のオプションは、ＤＣ  ４６がＨＧ  ４２に対して明示的なプリフェッチ要求を発行することである。こうした要求は、ＨＧ  ４２がそれに関する変換を確立すべき１つまたはいくつかのバッファ・アドレスを含むことができる。
【００４３】
前述のように、ＨＧ  ４２がＩ／Ｏミス割り込みを発生させるケースがある。ハイパーバイザがＩ／Ｏミス割り込みをＨＧ  ４２から受信した場合、ハイパーバイザは所与のアドレスおよび所与のアドレス・スペース内の領域に対して有効なマッピングを確立することができる。アドレス・スペースがＯＳに属している場合、ＯＳがマッピング自体を実行する。アドレス・スペースがＯＳ内で実行中のアプリケーションに属している場合、これがＩ／Ｏミス割り込みをＯＳに反映させ、ＯＳに処理させる。ページ・テーブルが更新されると、ＨＧ  ４２に通知され、ＤＭＡオペレーションを進行させることができる。
【００４４】
たとえば、現在実行中のプロセスに生じるなど、典型的には同期的な最先端のページ障害とは異なり、Ｉ／Ｏミス割り込みは本質的には非同期的であることに留意されたい。ＭＭＵによって管理されるページ障害は、通常、現在実行中のコードが物理アドレスへの有効な変換を持たない仮想アドレスを参照した場合に、ＭＭＵによって発生する。これらの変換はアドレス・スペースごとの変換であり、たとえば、異なるアドレス・スペース内の同じ仮想アドレスは、異なる物理アドレスを示すことができる。ページ障害が発生した場合、これは、現在実行中のコードのアドレス・スペースである、現在のアドレス・スペース内の変換に対して生じるものである。
【００４５】
ページ障害とは異なり、Ｉ／Ｏミス割り込みは、必ずしも現在実行中のコードおよびそのアドレス・スペースに関係しているとは限らない、Ｉ／Ｏアクティビティの結果として発生する可能性があることに留意されたい。
【００４６】
最先端のページ障害は、通常、特定の良く知られたアドレス・スペース内で実行中である、現在実行中のコードに代わって発生するものであるため、本質的には、そのアドレス・スペース内でページ障害を処理するべきであるページを処理する構成要素に渡す必要はない。前述のように、これはＩ／Ｏミス割り込みには当てはまらないため、ＨＧ  ４２は、たとえば、そのアドレス・スペース内でこのＩ／Ｏミス割り込みを処理するべきである、Ｉ／Ｏミス割り込みを処理するコンシューマ・コードと通信する必要が生じる場合がある。この追加情報は、アーキテクチャに応じて、Ｉ／Ｏミス割り込みスタック上、または何らかのアーキテクチャ特有のレジスタ内で、渡すことができる。
【００４７】
ページのマップ解除
前述のように、ＨＧ  ４２は、ページがＤＭＡオペレーションに関与している間、たとえばデータが書き込まれている間は、上位層がそのページをマップ解除するのを防ぐ必要がある。したがって、たとえばハイパーバイザまたはＯＳがページのマップを解除する必要がある場合、マップ解除が意図されているページがＩ／Ｏオペレーションに関与している可能性があり、その場合はデータの破損を避けるためにマップ解除オペレーションを防ぐべきであるため、ページをマップ解除するという意図をＨＧ  ４２に伝えなければならない。
【００４８】
次に、マップ解除オペレーションをＨＧ  ４２に送るための方法を示す流れ図である、図５を参照する。通信エンティティは、マップ解除オペレーションを制御することが可能な、たとえばＯＳまたはハイパーバイザなどのシステムの上位層にあるものとすることができる。
【００４９】
はじめに、上位層のエンティティは、マップ解除するよう意図されるページ・テーブル・エンティティ（ＰＴＥ）は存在しないが、そのＰＴＥの物理フレームを他の目的では再使用しないものとしてマークする（ステップ５００）ことができる。その後、上位層のエンティティは、マップ解除するよう意図されるページのアドレス・スペース識別子および仮想アドレスをＨＧ  ４２に送信する（ステップ５０２）ことができる。ＨＧ  ４２は、このページがマップ解除可能であるかどうかをチェックする（ステップ５０４）ことが可能であり、たとえば、データの配置が進行中である場合、マップ解除オペレーションは実行できない。
【００５０】
ＨＧ  ４２が、ページはマップ解除可能であると応答した場合、上位層のエンティティはページをマップ解除し、応答の受信を確認する（ステップ５０６）ことができる。別の方法として、マップ解除が実行できない場合、上位層のエンティティは要求されたページのマップ解除の試行を打ち切る（ステップ５０８）か、または待機期間後にマップ解除を再試行する（５０８Ａ）ことができる。
【００５１】
この２つのどちらを選択するかは、主に、マップ解除オペレーションが要求された本来の理由によって決定されることに留意されたい。たとえば、プロセスが終了したためである場合、可能性の高い決定は、これを再試行することである。メモリ不足のためである場合は、マップ解除オペレーションの打ち切りおよび何らかの他のページの試行の可能性が高い。
【００５２】
このマップ解除オペレーションを送るための方法は、Ｉ／Ｏ用に仮想アドレスを使用するコンシューマのアドレス・スペース内でＰＴＥをマップ解除する場合に必要となる可能性があるが、それ以外の場合は必要でない可能性があることにも留意されたい。この場合、本出願の譲受人に譲渡された、２００６年１月１１日出願の「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＭＥＭＯＲＹ  ＰＲＯＴＥＣＴＩＯＮ  ＡＮＤ  ＳＥＣＵＲＩＴＹ  ＵＳＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」という名称の米国特許出願第１１／３３３０６６号に記載されたように、上位層、たとえばＯＳまたはハイパーバイザのそれぞれが、Ｉ／Ｏオペレーションが開始される前にコンシューマに証明書を認可する必要がある可能性がある。Ｉ／Ｏターゲットを所与のページ・テーブルに関する変換のサブセットに制約することによって、結果としてそれらの変換のみが、前述のマップ解除オペレーションを送るための方法を使用することになるような、追加の最適化も可能である。
【００５３】
スケーラブルな分散型システム
本発明のいくつかの実施形態によれば、提案されたシステムはスケーラブルであり、以下で詳細に説明するように、たとえば追加のコンシューマ、Ｉ／Ｏデバイス、ホスト・ゲートウェイ（ＨＧ）、およびデバイス・コントローラ（ＤＣ）を、システムに容易に追加することが可能である。
【００５４】
システムのスケーラビリティは、システムに追加することができるデバイスにとって重要な情報を分散させることによって達成可能である。本発明のいくつかの実施形態によれば、ＤＣ  ４６はその関連する変換制御エントリ（ＴＣＥ）を維持することができる。ＴＣＥは、Ｉ／Ｏデバイスに結合された、ページ・エントリおよびそれらの対応する仮想アドレスのテーブルである。ＤＣ  ４６は、制御するすべてのＩ／Ｏデバイスに対して単一のＴＣＥを維持するか、または、ＤＣ  ４６が制御する１つのＩ／Ｏデバイスに対して１つのＴＣＥという、複数のＴＣＥを維持することができる。たとえばそれ自体の仮想メモリ・スペースを有するＩ／Ｏを使用するハイパーバイザ、ＯＳ、またはプロセスなどの、コンシューマの観点からすれば、コンシューマのＩ／Ｏ変換テーブルは、分散型ＴＣＥの形ですべてのＤＣ  ４６の間で分散される。特定のコンシューマが必要とする可能性のあるすべてのマッピングには、たとえば以下で説明するような証明書を管理するために使用可能な、マッピングＩＤ、ＭＩＤでマーク付けすることが可能である。以下のように、単一のＭＩＤを使用して多くの機能を管理することが可能であり、さらに、マッピング証明書ＣＡＰＭは１つまたは複数のＴＣＥを検証することができることに留意されたい。
ＴＣＥｉ＝［仮想アドレス領域、物理アドレス、フラグ］
ＣＡＰＭｉ＝［ＭＩＤ、ＴＣＥｉ、時間、保護ビット］
ｉ：同じＭＩＤによって識別される１つまたは複数のＴＣＥエントリ
【００５５】
ＨＧ  ４２がコンシューマからＩ／Ｏ要求を受信し、したがってマッピングが要求される可能性がある場合、ＨＧ  ４２は符号ＣＡＰＭを作成し、これを関連するＤＣ  ４６に送信することができる。
【００５６】
ＤＣ  ４６が、事前に定義された時間ウィンドウ（ＴＷ）によって要求されたＤＭＡオペレーションをＨＧ  ４２に提供することに失敗した場合、ＣＡＰＭを更新できることに留意されたい。ＣＡＰＭの更新は、たとえば、本出願の譲受人に譲渡された、２００６年１月１１日出願の「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＭＥＭＯＲＹ  ＰＲＯＴＥＣＴＩＯＮ  ＡＮＤ  ＳＥＣＵＲＩＴＹ  ＵＳＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」という名称の米国特許出願第１１／３３３０６６号に記載されたように、適用可能である。遅延ピン止めが必要な場合、たとえばＣＡＰＭが生成された時点でマッピングがわかっていない場合、たとえば有効なＭＩＤなしのＣＡＰＭなどのｎｕｌｌ  ＣＡＰＭをＤＣに送信して、ＤＣによってＤＭＡオペレーションが開始された時点でページ障害をトリガできることにも留意されたい。
【００５７】
ＤＣ  ４６は、関連するＴＣＥおよびＣＡＰＭと共に、ＤＭＡオペレーションをＨＧ  ４２に送信することができる。ＨＧ  ４２は、この情報を使用して仮想アドレスを検証および変換することができる。ＨＧ  ４２が、ＣＡＰＭが有効であること、たとえば、有効な証明書、時間ウィンドウ内の時間、およびＭＩＤが、証明書の更新を管理するためにＨＧ  ４２によって使用される取り消された証明書リストに掲載されていないことを決定した場合、変換を実行し、ＤＭＡオペレーションを進行させることができる。変換が無効である場合、ＨＧ  ４２は再試行要求をＤＣ  ４６に送信することができる。加えて、ＨＧ  ４２は、上位層にマッピングを要求することができる。新しいマッピングが受信されると、更新済みのＣＡＰＭをＤＣ  ４６に送信することが可能であり、次にこれがＤＭＡオペレーションを再試行することができる。
【００５８】
マッピングは、たとえば以下の場合に無効な可能性があることに留意されたい。
・遅延ピン止めが要求された（たとえばｎｕｌｌ  ＣＡＰＭによって）場合
・前のＴＷ内にＯＳまたはハイパーバイザからのマッピング更新が受信された場合
後者の場合、ＨＧ  ４２は取り消されたリストにＭＩＤを追加することが可能であり、これを任意の新しい受信変換をチェックするために使用することができる。ＣＡＰＭはあらゆるＴＷを更新しなければならないため、本出願の譲受人に譲渡された、２００６年１月１１日出願の「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＭＥＭＯＲＹ  ＰＲＯＴＥＣＴＩＯＮ  ＡＮＤ  ＳＥＣＵＲＩＴＹ  ＵＳＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」という名称の米国特許出願第１１／３３３０６６号に記載されたように、取り消されたリストの長さは制限される。
【００５９】
さらに、本発明のいくつかの実施形態によれば、ＨＧ  ４２およびＤＣ  ４６は、転送されるデータの任意の状態情報を格納する必要がなく、たとえばステートレスである可能性がある。前述のように、共通の状態のみが、ＨＧ  ４２によって維持される取り消されたリストである。ＴＣＥは、たとえば、（関連ＴＣＥの更新を必要とする可能性がある）ＯＳまたはハイパーバイザのページ・テーブル更新通知は、ＨＧ  ４２にのみ送信可能であり、マッピング障害時にのみ、更新を関連ＤＣ  ４６に送信可能であるなど、グローバルな同期化なしに、様々なＤＣ  ４６全体にわたって分散することができる。
【００６０】
上記の説明では、本発明を完全に理解するために多数の特定の細部について説明した。しかしながら、当業者であれば、本発明がこれらの特定の細部なしに実施可能であることが明らかとなろう。他のインスタンスでは、従来のアルゴリズムおよびプロセスに関する良く知られた回路、制御論理、ならびにコンピュータ・プログラム命令の細部については、本発明を不必要にわかりにくくしないために、詳細に示してはいない。
【００６１】
本発明の諸態様を具体化するソフトウェア・プログラミング・コードは、通常、コンピュータ読み取り可能媒体などの永続ストレージ内に維持される。クライアント・サーバ環境では、こうしたソフトウェア・プログラミング・コードをクライアントまたはサーバ上に格納することができる。ソフトウェア・プログラミング・コードは、データ処理システムで使用するために多様な知られた媒体のいずれで具体化することもできる。これには、ディスク・ドライブ、磁気テープ、コンパクト・ディスク（ＣＤ）、デジタル・ビデオ・ディスク（ＤＶＤ）などの、磁気および光のストレージ・デバイス、ならびに、信号が変調される搬送波を伴うかまたは伴わない伝送媒体内で具体化されるコンピュータ命令信号が含まれるが、これらに限定されるものではない。たとえば伝送媒体は、インターネットなどの通信ネットワークを含むことができる。加えて、本発明はコンピュータ・ソフトウェア内で具体化することができるが、本発明を実施するのに必要な機能は、特定用途向け集積回路または他のハードウェアなどのハードウェア構成要素、あるいはハードウェア構成要素およびソフトウェアの何らかの組み合わせを使用して、別の方法で部分的または全体的に具体化することもできる。たとえばＨＧ  ４２は、コンピュータ・ソフトウェア内で、あるいは別の方法として、ハードウェア構成要素を使用して部分的または全体的に、具体化することができる。
【００６２】
本発明は、通常、コンピュータまたは同様のデバイスを制御するためのプログラム命令のセットを備える、コンピュータ・プログラム製品として実施される。これらの命令は、システムに事前ロードされるか、またはＣＤ−ＲＯＭなどのストレージ媒体上に記録されて供給するか、あるいはインターネットまたは移動電話網などのネットワークを介してダウンロードするために入手可能とすることができる。
【００６３】
前述の内容には、本発明の範囲を逸脱することなく、改良および修正を実行することができる。
【００６４】
当業者であれば、本発明が、上記で具体的に図示および説明された内容に限定されるものでないことを理解されよう。むしろ、本発明の範囲には、前述の様々な特徴の組み合わせおよび下位組み合わせ（sub-combination）の両方、ならびに、当業者が前述の説明を読めば思いつくであろう、従来技術にはないそれらの変形形態および修正形態が含まれる。
【図面の簡単な説明】
【００６５】
【図１】従来技術のコンピュータ・システムを示す概略ブロック図である。
【図２】本発明の一実施形態に従ったコンピュータ・システムを示す概略ブロック図である。
【図３】本発明の諸実施形態に従った、メモリのピン止めおよび変換のための方法を示す概略流れ図である。
【図４】本発明の実施形態に従った、データ・トランザクションの方法を示す例示的流れ図である。
【図５】マップ解除オペレーションを送るための方法を示す流れ図である。
【符号の説明】
【００６６】
１２    処理ユニット
１４    Ｉ／Ｏデバイス
１６    Ｉ／Ｏバス
１７    Ｉ／Ｏブリッジ
１８    ノース・ブリッジ
２２    キャッシュ
２４    ＭＭＵ
２６    ＣＰＵ
２８    ＤＭＡエンジン
４０    コンピュータ・システム
４２    ＨＧ
４６    ＤＣ
５０    メモリ
【図１】
2008009982.tif 000003
【図２】
2008009982.tif 000004
【図３】
2008009982.tif 000005
【図４】
2008009982.tif 000006
【図５】
2008009982.tif 000007