(57)【特許請求の範囲】
【請求項１】
１つまたは複数のＩ／Ｏポートを介してシステム・メモリおよびＩ／Ｏコントローラに結合するように構成され、１つまたは複数のＩ／Ｏポートを介してコンピュータ・システムのメイン・メモリとの間でデータ転送を可能にする第１インターフェース・ユニットと、
アクセラレーテッド・グラフィックス・ポート（ＡＧＰ）バスを介して周辺装置との間でのデータ転送を可能にするためにバス制御信号およびアドレスを供給するアクセラレーテッド・グラフィックス・ポート（ＡＧＰ）ユニットと、そして
前記第１インターフェース・ユニットおよび前記ＡＧＰインターフェース・ユニットと結合されたアドレス変換ユニットと
を具備し、
前記アドレス変換ユニットは、グラフィックス・アドレス再配置デーブル（ＧＡＲＴ）を含むスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）にアクセスすることによって、前記ＡＧＰバスで受け取ったインバウンドＡＧＰトランザクションに関連するグラフィックス・アドレスを変換し、
前記ＧＡＲＴは、コンピュータ・システムのメイン・メモリ内のページの物理的アドレスと、そしてグラフィックス・アクセラレータからのトラフィックがシステム・バス３１５とコヒーレントである必要があるかどうかを示すコヒーレント・ビットとを含む
ことを特徴とするグラフィックス拡張ブリッジ。
【請求項２】
１つまたは複数の入出力（Ｉ／Ｏ）ポートとアクセラレーテッド・グラフィックス・ポート（ＡＧＰ）バスとの間でのバス・プロトコル・ブリッジング機能を提供し、ローカル・メモリ内に格納されたグラフィックス・アドレス再配置テーブル（ＧＡＲＴ）に基づいて、インバウンド・トランザクションに関連する仮想アドレスを、コンピュータ・システムのメイン・メモリ内の物理的アドレスに変換するように構成されたグラフィックス拡張ブリッジと、そして
グラフィックス拡張ブリッジに結合され、コンピュータ・システムのシステム・バスおよびメモリ・バスに結合するように構成され、グラフィックス拡張ブリッジのためにメイン・メモリとの間でのデータ転送を実行するように構成されたシステム・メモリおよびＩ／Ｏコントローラと
を具備し、
前記ＧＡＲＴは、グラフィックス・アクセラレータからのトラフィックがシステム・バス３１５とコヒーレントである必要があるかどうかを示すコヒーレント・ビットを含む、
ことを特徴とするチップセット。
【発明の詳細な説明】
【０００１】
（著作権表示）
本明細書に含まれる資料は著作権保護の対象となる。著作権者は、この特許開示が米国特許商標局の特許ファイルまたは記録中に見出されるとき、それが何人によって複製されることに対しても異議はないが、そうでない場合は、その著作権に対するすべての権利を何であれ留保する。
【０００２】
（発明の背景）
発明の分野
本発明は、一般にバス・プロトコル・ブリッジングに関する。より詳細には、本発明は、連続する論理アドレス空間を不連続かもしれないアドレス空間に再マップすることなど、ブリッジでの入出力（Ｉ／Ｏ）アドレス変換に関する。
【０００３】
関連技術の説明
入出力（Ｉ／Ｏ）周辺装置は、一般に、システム・メモリ（メイン・メモリ）の大きな連続するビューとともに示された場合により効率的に動作する。これにより、このような装置が、注目するデータを含むメモリの広い領域にランダム・アクセスを行うことが可能となる。メモリの連続するビューは、ディスプレイ装置にシーンをレンダリングするために、テクスチャ・マップ全体を取り出さなければならないことが多いグラフィックス・カードにとって特に重要である。本願では、大規模な連続するアドレス空間を認識する、Ｉ／Ｏ周辺装置がその中で動作するアドレス空間を「仮想アドレス空間」と呼ぶ。
【０００４】
いずれにしても、周辺装置は、ホスト・コンピュータ・システムのメイン・メモリとは異なるアドレス空間を利用するので、周辺装置によって供給される仮想アドレスを、対応するメイン・メモリ内の不連続かもしれないアドレスにマップする「アドレス変換」と呼ばれるプロセスが必要である。
【０００５】
次に、アドレス変換のための現在の技法の例を図１を参照しながら説明する。図１は、グラフィックス・アドレスの物理アドレスへの変換を示す、汎用コンピュータ・システム１００の高レベルブロック図である。コンピュータ・システム１００は、１つまたは複数のプロセッサ１０５および１１０などの処理手段、チップセット１２０、メイン・メモリ１２５、メモリ・バス１２４、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ）バス１３０、およびＰＣＩバス１４０を含む。この例では、メイン・メモリは、グラフィックス・アクセラレータ１３５などの周辺装置によって使用される仮想アドレスを、メイン・メモリ１２５中の物理アドレスにマップするためのエントリを含むグラフィックス・アドレス再配置テーブル（ＧＡＲＴ）を含む。
【０００６】
チップセット１２０は、ＡＧＰバス１３０、ＰＣＩバス１４０、およびメモリ・バス１２４の間のブリッジング機能を提供する。ブリッジング機能の一部として、チップセット１２０は、インバウンド読取りおよび書込みトランザクション（例えば、グラフィックス・アクセラレータ１３５から発信された読取りおよび書込みトランザクション）中に含まれるグラフィックス・アドレスを、ＧＡＲＴ１２６を用いて、対応するメイン・メモリ１２５中の物理アドレスに変換する。したがって、図１に従って構成されたコンピュータ・システムでは、テクスチャ・マップなどのグラフィックス・データの処理は、メイン・メモリ１２５に複数のアクセスを必要とする。まず、チップセット１２０は、実行されるトランザクション中で指定されたグラフィックス・アドレスに対応するＧＡＲＴ１２６からエントリを取り出さなければならない。次いで、所望の物理アドレスがチップセット１２０によって決定された後、チップセット１２０は、トランザクションによって指定されたデータを読み書きするために、メイン・メモリ１２５に第２のアクセスを実行しなければならない。
【０００７】
ＡＧＰの大きな利点の１つは、コンピュータ・システムの残りの部分からＡＧＰがビデオ・サブシステムを分離し、したがってＩ／Ｏ帯域幅を介する競合がＰＣＩほどではないことである。しかし、上述の説明より、ＡＧＰトランザクションの変換が現在処理されている方式に関連するいくつかの非効率が存在することは明らかであろう。まず、動的ランダム・アクセス・メモリ（ＤＲＡＭ）から一般に構成されるメイン・メモリ１２５へのアクセスは、例えば静的ランダム・アクセス・メモリ（ＳＲＡＭ）へのアクセスと比較して相対的に低速である。第２に、アドレス変換のためのメイン・メモリ１２５アクセスは、プロセッサ１０５または１１０から発信され、システム・バス１１５を介して受け取られるアクセス要求、またはＰＣＩバス１４０上で受け取られるアクセス要求などの他のアクセス要求と競合しなければならない。その結果、ＡＧＰ変換は競合するトラフィックによってスローダウンする。最後に、変換ユニット（図示せず）が複数のタイプのトラフィック、例えばシステム・バス・トラフィック、ＰＣＩトラフィック、およびＡＧＰトラフィックを処理する場合、様々なタイプのインバウンド・トランザクションおよびアウトバウンド・トランザクションの間の変換ユニットについての競合をアービトレーション論理が解決することが必要となるので、この状況はさらに悪化する。
【０００８】
したがって、Ｉ／Ｏトランザクションの実行をスピードアップし、アドレス変換論理の単純な実装を提供する、Ｉ／Ｏアドレスを変換するための技法を提供することが望ましい。加えて、システム・バス・トラフィックまたは他のＩ／Ｏ装置からのトラフィックなどの他のタイプのトラフィックから分離する装置中で、必要なＩ／Ｏアドレス変換を実行することが有利である。
【０００９】
（発明の簡潔な概要）
入出力（Ｉ／Ｏ）拡張ブリッジでのアドレス変換を実行するための方法および装置を説明する。Ｉ／Ｏ拡張ブリッジは、第１インターフェース・ユニット、第２インターフェース・ユニット、およびアドレス変換ユニットを含む。第１インターフェース・ユニットは、１つまたは複数のＩ／Ｏポートを介して、システム・メモリとＩ／Ｏコントローラに結合するように構成される。第１インターフェース・ユニットは、コンピュータ・システムのメイン・メモリとの間で、１つまたは複数のＩ／Ｏポートを介してデータを転送できる。第２インターフェース・ユニットは、周辺装置との間で、バスを介してデータを転送するための、バス制御信号およびアドレスを供給する。アドレス変換ユニットは、第１インターフェース・ユニットおよび第２インターフェース・ユニットに結合される。アドレス変換ユニットは、コンピュータ・システムのメイン・メモリ内のページの物理アドレスを含むローカル・メモリにアクセスすることによって、第２インターフェースで受け取ったトランザクションに関連するアドレスを変換する。
【００１０】
本発明の他の特徴および利点は、添付の図面および詳細な説明から明らかとなろう。
【００１１】
本発明を、限定的なものではなく、例示的なものとして添付の図面に示す。同一の参照番号は、類似の要素を指す。
【００１２】
（発明の詳細な説明）
Ｉ／Ｏ拡張ブリッジでのアドレス変換を実行するための方法および装置を説明する。本発明の実施形態は、Ｉ／Ｏ拡張ブリッジなどのＩ／Ｏ変換装置をシステム・バス・トランザクションなどの他のタイプのトラフィックから分離することによって、Ｉ／Ｏトランザクションの実行をスピードアップする、Ｉ／Ｏアドレスを変換するための技法を提供することを試みる。本発明の一特徴によれば、ＧＡＲＴは、メモリ・バスを通らずに、ローカルＳＲＡＭ中に格納することができる。インターフェースはローカルであり、かつ、ＧＡＲＴエントリを取り出すためのアクセスが他のタイプのトラフィックと競合する必要がないので、トランザクションをより高速に完了することができ、変換装置の実装を単純にすることができる。
【００１３】
以下の説明では、説明の目的で、本発明の完全な理解を与えるために多数の特定の細部を説明する。しかし、本発明をこれらの特定の細部の一部を用いずに実施できることは当業者には明らかであろう。他の場合には、周知の構造および装置をブロック図形式で示す。
【００１４】
本発明は、以下で説明する様々なステップを含む。本発明のステップは、ハードウェア構成要素によって実行することができ、あるいは、汎用プロセスもしくは特殊目的プロセッサ、または命令によってプログラムされた論理回路にこのステップを実行させるために使用することのできるマシン実行可能命令で実施することができる。あるいは、このステップは、ハードウェアおよびソフトウェアの組み合わせによって実行することもできる。
【００１５】
重要なことであるが、本発明の実施形態は、様々なＡＧＰおよびＰＣＩライクのトランザクションを変換するための、様々なグラフィックス拡張ブリッジ（ＧＸＢ）にとってローカルにアクセス可能なアクセラレーテッド・グラフィックス・ポート（ＡＧＰ）およびグラフィックス・アドレス再配置テーブル（ＧＡＲＴ）に関連して説明するが、本明細書で説明する方法および装置は、他のタイプのＩ／ＯトランザクションおよびＩ／Ｏ拡張ブリッジ、あるいはＩ／Ｏバスの装置がメイン・メモリの連続するビューを必要とする他のタイプのバスにも等しく適用することができる。例えば、本明細書で説明する技法は、ＶＥＳＡローカル・バス（ＶＬＢ）および／または周辺構成要素相互接続（ＰＣＩ）バスに関係するトランザクションに関連して有用であると考えられる。
【００１６】
用語
本発明の様々な実施形態を実装することができる例示的環境を説明する前に、本願全体を通して使用する、いくつかの用語を簡潔に説明する。
【００１７】
用語「バス」は、一般に、情報が２つ以上の装置の間を流れる物理的通信媒体またはチャネルを指す。装置をその上に２つだけ有するバスは、本明細書で使用する「ポート」と見ることもあるが、バスという用語は、このようなポートも包含するものとする。
【００１８】
用語「プロセッサ・バス」、「システム・バス」、または「ホスト・バス」は、一般に、コンピュータ・システムのバスの階層中の最高レベルのバスを指す。このバスは、一般にシステム・チップセットによって使用され、コンピュータ・システムの１つまたは複数のプロセッサに情報が送受信される。
【００１９】
メモリ・バスは、メモリ・サブシステムを、システム・チップセットおよびプロセッサに接続するバスを指す。重要なことであるが、一部のコンピュータ・システムでは、プロセッサ・バスおよびメモリ・バスは、同じバスとすることができる。
【００２０】
「ローカルＩ／Ｏバス」は、一般に、メモリ、システム・チップセット、および／またはコンピュータ・システムのプロセッサに様々なタイプの周辺装置を接続するために使用される高速入出力（Ｉ／Ｏ）バスである。例えば、ビデオ・カード、ディスク記憶装置、高速ネットワーク・インターフェース、パフォーマンス・クリティカルな他の周辺装置は、一般にこの種類のバスに結合される。共通ローカルＩ／Ｏバスは、ＶＥＳＡローカル・バス（ＶＬＢ）、周辺構成要素相互接続（ＰＣＩ）バス、およびアクセラレーテッド・グラフィックス・ポート（ＡＧＰ）バスを含む。やはり、この開示では、Ｉ／ＯポートまたはＡＧＰなどの、３つ以上の装置が共用するために設計されたバスと、２つだけの装置が使用するために設計されたポートのどちらもバスとする。
【００２１】
「アクセラレーテッド・グラフィックス・ポート」（ＡＧＰ）は、３Ｄグラフィックスおよびビデオ・イメージの高速で高品質な表示の目的で設計されている、Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｒｅｖｉｓｉｏｎ２．０，Ｍａｙ  ４，１９９８およびそれに続く改訂に記載されている高性能バス仕様である。
【００２２】
「ＰＣＩトランザクション」は、一般に、ＡＧＰバスに対して発行されるＡＧＰセマンティクスを有するＰＣＩトランザクションを指す。
【００２３】
本明細書で仕様するように、「ブリッジ」は、一般に、例えば２つのバスを接続し、一方のバスの装置が他のバスの装置と通信できるようにすると共にその逆をも可能にするために、チップセットで具体化された論理および回路を指す。一例として、コンピュータ・システムで見つかる１つの共通ブリッジは、ＰＣＩ−ＩＳＡブリッジであり、一般にシステム・チップセットの一部である。ＰＣＩバスは、ＰＣＩ拡張ブリッジ（ＰＸＢ）と呼ばれる、プロセッサ・バスへのブリッジも有することができる。
【００２４】
本願では、「トランザクション」は、１つまたは複数の要求（アドレス）フェーズおよびデータ・フェーズを含む。トランザクションは、一般に、開始アドレス、トランザクション・タイプ、および転送すべきデータ量の表示を含む。
【００２５】
特定のトランザクションの指示は、プロセッサの予測から決定される。したがって、「インバウンド・トランザクション」は、一般に、ビデオ・カード、ディスク記憶装置、または高速ネットワーク・インターフェースなどの周辺装置によって、コンピュータ・システムに向けて送られる読取り要求または書込み要求を指し、「アウトバウンド・トランザクション」は、一般に、コンピュータ・システムによって周辺装置に向けて送られる読取り要求または書込み要求を指す。
【００２６】
（入出力アドレス変換）
本発明の様々な特徴は、Ｉ／Ｏ拡張ブリッジでアドレス変換を実行することに関連して一般に有用であると考えられる。本発明のこの広範な態様を説明する目的で、次に、本発明の一実施形態を実現することのできる例示的コンピュータ・システム・アーキテクチャを、図２を参照しながら説明する。図２は、本発明の一実施形態による方法の１つまたは複数のステップを実行することができ、本発明による一実施形態による装置がその中に常駐することができる汎用コンピュータ・システム２００を示す。コンピュータ・システム２００は、１つまたは複数のプロセッサ２０５および２１０、チップセット２２０、メイン・メモリ２２５、メモリ・バス２２４、およびローカルＩ／Ｏバス２３０などの処理手段を含む。この実施形態によれば、チップセット２２０は、アドレス変換テーブル２２６を含む。アドレス変換テーブルは、周辺装置２３５から受け取った仮想アドレスを、メイン・メモリ２２５中の物理アドレスに変換するエントリ（図示せず）を含む。以下でさらに説明するように、チップセット２２０は、様々なチップセット機能、例えばシステム・バス・アービトレーション、Ｉ／Ｏアドレス変換などを配置させることのできる１つまたは複数の集積回路を含むことができる。この例では、チップセット２２０は、ローカルＩ／Ｏバス２３０とシステム・バス２１５およびローカルＩ／Ｏバス２３０とメモリ・バス２２４の双方の間でブリッジとして働く。そのブリッジ動作の一部として、チップセット２２０は、ローカル・アドレス変換テーブル２２６にアクセスして、周辺装置２３５によって利用される連続するＩ／Ｏアドレス空間を、メイン・メモリ２２５の物理アドレス空間にマップする。重要なことであるが、以下でさらに説明するように、アドレス変換テーブル２２６をチップセット２２０にローカルに（例えば専用オンチップまたはオフチップＳＲＡＭ中に）配置することによって、周辺装置２３５からのインバウンド・トランザクションをより効率的に実行することができる。
【００２７】
グラフィックス・アドレス変換
本発明の様々な特徴は、ＡＧＰ互換グラフィックス装置によって利用されるグラフィックス・アドレス空間などのグラフィックス・アドレス空間から、メイン・メモリ２２５の物理アドレス空間にアドレス変換を実行するために特に有用であると考えられる。図３は、本発明の一実施形態による、改善された仮想アドレス変換技法を実装することのできる汎用コンピュータ・システム３００を示す高レベル・ブロック図である。コンピュータ・システム３００は、１つまたは複数のプロセッサ３０５および３１０、チップセット３２０、メイン・メモリ２２５、メモリ・バス３２４、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ）バス３３０、およびＰＣＩバス３４０などの処理手段を含む。図の実施形態では、チップセット３２０はグラフィックス・アドレス再配置テーブル（ＧＡＲＴ）３２６を含む。ＧＡＲＴ３２６は、グラフィックス・アクセラレータ３３５から受け取った仮想アドレスをメイン・メモリ３２５の物理アドレスに変換するための情報を含むＧＡＲＴエントリ（以下で説明する）を含む。
【００２８】
この実施形態によれば、ＧＡＲＴ３２６は、メモリ・バス３２４を通ってメイン・メモリ３２５中で見つけられるのではなく、チップセット３２０にローカルにアクセス可能となる。チップセット３２０は、ＡＧＰバス３３０、ＰＣＩバス３４０、およびメモリ・バス３２４との間のブリッジング機能を果たしている。ブリッジング機能の一部として、チップセット３２０は、インバウンド読取りおよび書込みトランザクション（例えば、グラフィックス・アクセラレータ３３５から発信された読取りおよび書込みトランザクション）中に含まれるグラフィックス・アドレスを、ローカルＧＡＲＴ３２６を用いて、対応するメイン・メモリ３２５中の物理アドレスに変換する。図２を参照して上記で説明したのと同様に、チップセット３２０中にＧＡＲＴ３２６を位置付けることによって、グラフィックス・アクセラレータ３３５などの、周辺装置からのインバウンド・トランザクションをより効率的に処理し、実行することができる。重要なことであるが、メイン・メモリ３２５（例えばＤＲＡＭ）からデータを取り出すのにおよそ３００〜５００ナノ秒が必要であるのに対して、ローカルＳＲＡＭからの取出しは、約３０ナノ秒以下で実行することができる。
【００２９】
例示的チップセット
本発明を利用することができる例示的環境を簡潔に説明したので、次に例示的チップセット実装を、図４を参照しながら説明する。図４は、本発明の一実施形態による、複数のユニット（例えばチップ）間の機能の例示的割り振りを示す。この例では、チップセット３２０は、システム・アドレス・コントローラ（ＳＡＣ）４１５、システム・データ・コントローラ（ＳＤＣ）４２０、ＰＣＩ拡張ブリッジ（ＰＸＢ）４２５、グラフィックス拡張ブリッジ（ＧＸＢ）４１０、および静的ＲＡＭ（ＳＲＡＭ）４０５を含む。
【００３０】
ＳＡＣ４１５は、システム・バス３１５のアドレス部分と制御部分（図示せず）に接続される。ＳＡＣは、システム・バス３１５アクセスを翻訳し、適切なＩ／Ｏポートまたはメイン・メモリ３２５に向けて送ることを担当する。ＳＡＣは、インバウンド・トラフィックに対して経路指定エージェントとしても働き、インバウンド・トラフィックをピアＩ／Ｏポート４１２または４２７、メイン・メモリ３２５、またはシステム・バス３１５に向けて送る。
【００３１】
ＳＤＣは、システム・バス３１５上のデータ信号（図示せず）に接続され、メモリ・バス３２４およびＳＡＣ４１５によってメイン・メモリ３２５にも接続する。システム・バス３１５からメイン・メモリ３２５に、Ｉ／Ｏポート４１２または４２７の一方からメモリに、あるいはピア・ツー・ピアでＩ／Ｏポート４１２または４２７に転送される場合でも、すべての転送に関するデータはＳＤＣを通過する。ＳＡＣ４１５とＳＤＣ４２０の間の接続により、システム・バス３１５へ、ならびにＩ／Ｏポート４１２または４２７への同時データ転送が可能となり、それによって各システム・エージェントに対する利用可能な帯域幅を最大にすることができる。代替方法実施形態では、ＳＡＣ４２０およびＳＤＣの機能は、単一のシステム・メモリおよびＩ／Ｏコントローラ４２１に組み合わせることができ、または追加の集積回路を介して分散させることもできる。
【００３２】
ＰＸＢ４２５は、Ｆ１６バスなどのＩ／Ｏポート４２７と、ＰＣＩバス３４０の間のバス・プロトコル・ブリッジング機能を提供する。単一のＰＸＢ４２５は、一般に、１つのＩ／Ｏポート４２７に接続し、２つの３３Ｍｈｚ、３２ビットＰＣＩバスを形成する。あるいは、ＰＸＢ４２５は、単一の６４ビットＰＣＩバスをサポートすることもできる。コンピュータ・システムは、複数のＰＸＢを含むことができる（一般には１〜４個）。
【００３３】
ＧＸＢ４１０は、Ｉ／Ｏポート４１２とＡＧＰバス３３０の間のバス・プロトコル・ブリッジング機能を提供することによって、Ｉ／Ｏポート４１２、例えば２つのＦ１６バスと、ＡＧＰバス３３０の間のブリッジを形成する。このようにして、ＧＸＢ４１０は、コンピュータ・システムに高性能な専用グラフィックス・ポートを加える。複数のＧＸＢをコンピュータ・システム中でインスタンス化して、複数の多重グラフィックス・ポート・ワークステーションを形成することができる。ＧＸＢ４１０の主要機能は、Ｉ／Ｏポート４１２とＡＧＰバス３３０の間のブリッジを形成することである。簡単に言えば、ＧＸＢ４１０は、Ｉ／Ｏポート４１２からアウトバウンド・トランザクションを受諾し、内部にそれを格納し、次いで適切な信号プロトコルを使用して、ＡＧＰバス３３０に対してそれを送ることによってこのことを行う。逆に言えば、ＧＸＢ４１０は、ＡＧＰバス３３０に発行されたインバウンド・トランザクションを受諾し、それをこの場合も内部に格納し、インバウンド・トランザクションに関連するグラフィックス・アドレスに変換し、変換後インバウンド・トランザクションをＩ／Ｏポート４１２に発行する。以下にさらに詳細に説明するように、ＧＸＢ４１０は、オンチップまたはオフチップＳＲＡＭ４０５中に格納されたＧＡＲＴ３２６にアクセスすることによってアドレス変換を実行する。図４のチップセット・アーキテクチャにより、いくつかの利点が達成される。第１に、ＧＸＢ４１０はシステム・バス３１５および関連するシステム・トラフィックから分離し、それによってＧＸＢ４１０のリソースについての競合の源がなくなり、関連するアービトレーション論理の必要がなくなる。第２に、ＧＡＲＴ３２６はＧＸＢ４１０中に常駐するので、アドレス変換処理はメイン・メモリトラフィックとは干渉せず、メモリ・バス３２４はより効率的に使用される。加えて、ＧＡＲＴ３２６にアクセスするローカルＳＲＡＭは、ＧＸＢ４１０がメモリ・バス３２４を介して進まなければならない場合よりも約１０倍高速になる。したがって、最終結果として、ＡＧＰバス３３０上のトランザクションを処理するためのプロトコル・ブリッジが改善される。この改善されたプロトコル・ブリッジは、前述の、現在のブリッジング技法よりも単純であり、高速であり、かつ効率的である。ＧＸＢ４１０の例示的な内部区分化を以下で説明する。
【００３４】
重要なことであるが、最近の集積化の波を考えて、ＧＸＢ４１０構成要素のうちの１つまたは複数を単一の集積回路（ＩＣ）上に統合できることを企図する。加えて、代替実施形態では、ＧＸＢ４１０構成要素のうちの１つまたは複数を、単一の集積回路上のプロセッサおよび／またはメモリで統合することもできる。
【００３５】
グラフィックス拡張ブリッジ機能区分化
次に、特定のユニットへの、ＧＸＢ４１０の様々な機能の例示的区分化を、図５Ａを参照しながら説明する。図５Ａは、本発明の一実施形態によるグラフィックス拡張ブリッジの機能単位間の高レベル相互接続を示す概略ブロック図である。この例では、ＧＸＢ４１０は、ＡＧＰバス・インターフェース・ユニット５０５、データ・バッファ・ユニット５１０、トランザクション・キュー・ユニット５１５、ＧＡＲＴユニット５２０、およびＩ／Ｏポート・インターフェース・ユニット５２５を含む。ＡＧＰバス・インターフェース・ユニット５０５は、６６Ｍｈｚ、３２−ビットＰＣＩバスに基づくことができる。実際には、実装を容易にするために、ＡＧＰバス・インターフェース・ユニット５０５を、コアＰＣＩバスと、ＡＧＰ機能を追加する増分論理にさらに分割することができる。ＡＧＰ側では、ＡＧＰバス・インターフェース・ユニット５０５は、インバウンド・トランザクションとアウトバウンド・トランザクションとの間でＡＧＰバス３３０所有権を管理するためのアービトレーション論理（図示せず）を含む。加えて、バス制御信号およびアドレスが、ＡＧＰバス・インターフェース・ユニット５０５によって供給され、ＡＧＰバス３３０を介したＡＧＰデータ転送が可能となる。ＡＧＰバス・インターフェース・ユニット５０５は、必要などんなイントラ・ストリーム記録も実行し、かつ、トランザクションを処理するためにトランザクション・キュー・ユニット５１５中で十分なリソースが利用可能となるまでトランザクションを保持するために、内部トランザクション・キューおよびデータ・バッファ（図示せず）を維持することもできる。
【００３６】
以下でさらに詳細に説明するように、トランザクション・キュー・ユニット５１５は、インバウンド・トランザクションおよびアウトバウンド・トランザクションについての、１つまたは複数の内部トランザクション・キューを実装する。様々なデータ・バッファリングの必要をサポートするために、ＧＸＢ４１０中にバッファ・スペースも実装することができる。例えば、データ・バッファ・ユニット５１０は、ＧＸＢ４１０内にデータを一時的に格納するためのデータ・バッファを含むことができる。このデータ・バッファは、各指示でのトランザクション・タイプごとに別々のバッファとして実装することができ、または共通バッファとして実装することができる。
【００３７】
前述のように、現在のグラフィックス・アドレス変換機構では、ＧＡＲＴ１２６はメイン・メモリ１２５中に格納される。したがって、そのような実装では、ＧＡＲＴ機能はメイン・メモリ１２５の近くで実行される。それとは対照的に、本実施形態によれば、ＧＡＲＴ機能は、ＧＡＲＴユニット５２０によってＧＸＢ４１０内で実行される。一実施形態によれば、ＧＡＲＴユニットは、プッシュ・モデルを実装し、有効なトランザクションがトランザクション・キューの１つにあるときはいつでも、トランザクションを変換する。これに関して、ＧＡＲＴユニット５２０は、トランザクション・キューからインバウンド・トランザクションを受諾し、必要に応じてそのトランザクションを変換することを担当する。ここで示す実施形態では、ＧＡＲＴユニット５２０は、ＧＡＲＴ３２６を含むローカル・オフチップＳＲＡＭ４０５に結合される。あるいは、ＧＡＲＴ３２６は、オンチップＳＲＡＭ中に格納することもできる。ＧＡＲＴユニット５２０は、ＳＲＡＭ４０５の内容をプログラムすることも担当する。ＳＲＡＭ４０５は、無効として初期化するか、またはどんなアクセスが開始する前にもプログラムすべきである。例えば新しいアプリケーションが開始するごとに動的にＳＲＡＭ４０５をプログラムするように、ＧＡＲＴユニット５２０に指示することができる。プログラミングは、システム・バス３１５からプログラミング・アクセス要求を発行することによって達成することができる。
【００３８】
Ｉ／Ｏポート・インターフェース・ユニット５２５は、１つまたは複数のＩ／Ｏポートを介する要求およびデータ転送を使用可能にすることによって、１つまたは複数のＩ／Ｏポートに対するインターフェースを提供する。例えば、一実施形態によれば、Ｉ／Ｏポート・インターフェース・ユニット５２５は、２つのＦ１６バスとインターフェースをとる。Ｉ／Ｏポート・インターフェース・ユニット５２５は、可用性およびストリーム優先度に基づいてトランザクション・キュー・ユニット５１５中に維持されるインバウンド・トランザクション・キューからトランザクションを削除し、適切なＩ／Ｏポート４１２を通じてトランザクションを送信する。要求が書込みである場合、データがデータ・バッファ・ユニット５１０の中の適切なバッファから読み取られ、送信もされる。アウトバウンド・トランザクションについては、トランザクション・キュー・ユニット５１５中の適切なアウトバウンド・トランザクション・キューにエントリが加えられる。必要な場合、アウトバウンド・トランザクションに関連するデータは、データ・バッファ・ユニット５１０中の適切なバッファに送られる。
【００３９】
この説明では、トランザクションと、それに関係するデータは、別々の単位に区分される。しかし、様々な他の代替方法実施形態を企図することができる。例えば、一実施形態によれば、関係するデータ・バッファおよびトランザクションは、グループ化することができる。したがって、本明細書で開示される事柄は、ＧＸＢ機能の特定の区分化に基づく実施形態に本発明を限定するものとして解釈すべきではない。
【００４０】
図５Ｂは、本発明の一実施形態によるグラフィックス拡張ブリッジ４１０のより詳細なビューを示す概略ブロック図である。この例によれば、ＡＧＰ仕様の精神において、高および低ＡＧＰおよびＰＣＩストリームが、Ｉ／Ｏポート・インターフェース・ユニット５２５まで、別々の構造として維持される。トランザクション・キュー・ユニット５１５は、ＡＧＰ低優先度キュー５６０、ＡＧＰ高優先度キュー５６５、ＰＣＩインバウンド・キュー５７０、ＳＡＣインバウンド制御論理５８０、ＳＡＣアウトバウンド制御論理５８５、ＰＣＩアウトバウンド・キュー５９０を含む。ＡＧＰバス・インターフェース・ユニット５０５は、ＡＧＰバス３３０からインバウンドＡＧＰトランザクションを受け取り、それを適切なキュー５６０、５６５、または５７０に加える。例えば、ＡＧＰバス３３０からのインバウンドＰＣＩトランザクションは、ＡＧＰバス・インターフェース・ユニット５０５によってＰＣＩインバウンド・キュー５７０に発送される。
【００４１】
ＳＡＣアウトバウンド制御論理５８５は、Ｉ／Ｏポート４１２からアウトバウンド・トランザクションを受け取り、それをＰＣＩアウトバウンド・キュー５９０上に待ち行列化する。ＰＣＩアウトバウンド・キュー５９０は、ＡＧＰバス・インターフェース・ユニット５０５によってアンロードされる。重要なことであるが、アウトバウンド・トランザクションはアドレス変換を必要としないので、ＧＡＲＴユニット５２０を介して進む必要がない。
【００４２】
この実施形態によれば、ＧＡＲＴユニット６２０は、アービトレーション・ユニット５３０、実行ユニット５３５、および書戻しユニット５４０を含む。アービトレーション・ユニット５３０は、（１）ＡＧＰおよびＰＣＩアクセスと、構成制御ユニット５９５から来るＳＲＡＭアクセス（プログラミング・アクセス）との間のアービトレーション、（２）ＳＲＡＭアドレス（ＧＡＲＴ索引）の生成という２つの主要な機能を実行する。アービトレーション・ユニット５３０のアービトレーション機能は、トランザクション・キュー５６０、５６５、および５７０の先頭のトランザクションのうちのどのトランザクションを次に変換するかを決定するものである。トランザクション・キュー５６０、５６５、および５７０中のインバウンド・トランザクションに関連する仮想アドレス（一実施形態では４０ビット幅である）は、ＳＲＡＭ  ４０５に直接供給するには広過ぎる。したがって、アービトレーション・ユニット５３０のＳＲＡＭアドレス生成関数（ＧＡＲＴ指標生成関数）は、アービトレーションを得たトランザクションの仮想アドレスに基づいてＳＲＡＭアドレスを決定する。次いで、アービトレーション・ユニット５３０は、ＳＲＡＭオペレーションのための適切な制御信号（例えば書込みまたは読取り）をアサートすべき実行ユニット５３５と通信することができる。このようにして、実行ユニット５３５は、アドレスをさらに処理する必要がなく、直ちにＳＲＡＭサイクルを発行することができる。あるいは、アービトレーション・ユニット５３０は、ＳＲＡＭアドレスで実行ユニット５３５を提供することもでき、実行ユニット５３５は、全パケットをアセンブルし、それをＳＲＡＭ４０５に発行することができる。
【００４３】
理想的には、ＳＲＡＭ４０５は、パイプライン・モードで動作すべきであり、クロックごとに、アービトレーション・ユニット５３０は、変換すべき次のトランザクションについてのアドレスを供給し、次のトランザクションの可用性を実行ユニット５３５に通信することができるべきである。
【００４４】
一実施形態では、実行ユニット５３５は、適切な時にＳＲＡＭ制御信号をアサートし、デアサートすることによって、様々なＳＲＡＭオペレーションを開始し、制御する。代替実施形態では、実行ユニット５３５は、アービトレーション・ユニット５３０からの着信ＳＲＡＭアドレスを処理し、それをＳＲＡＭ４０５に送ることによってそれを実行することを含む実行ステージを実行することができる。実行ユニット５３５がＧＡＲＴエントリを受け取ったとき、アドレス変換を実行するためにＧＡＲＴエントリを使用し、またはそれを廃棄する。ＧＡＲＴエントリに対応するインバウンド・トランザクション・アドレスがＧＡＲＴアパーチャ内にある場合、ＧＡＲＴエントリを使用してアドレス変換が実行される。しかし、インバウンド・トランザクション・アドレスがＧＡＲＴアパーチャの外にある場合（例えば物理アドレスである場合）、ＧＡＲＴエントリは飛ばされ、変換は実行されない。代替実施形態では、実行ユニット５３５は、古い変換を保持し、または変換索引バッファを使用して、アドレス変換を行うことができる。いずれにしても、「変換後アドレス」、例えば元のインバウンド・トランザクション・アドレスまたは物理アドレスは、書戻しユニット５４０に供給される。
【００４５】
書戻しユニット５４０は、ＳＲＡＭデータを受け取り、実行ユニット５３５によって供給された情報を使用し、構成制御ユニット５９５は、データをフォーマットしてそれを正しい宛先（例えばトランザクション・キュー・ユニット５１５の中のキューのエントリ）に発送する。例えば、ここで示す実施形態によれば、書戻しユニット５４０は、インバウンド・トランザクションの仮想アドレスを、実行ユニットによって供給される変換後アドレスで上書きすることを担当する。
【００４６】
高レベル・トランザクション処理
図６は、本発明の一実施形態によるトランザクション処理を概念的に示す高レベルの流れ図である。この例では、ステップ６１０で、トランザクションを受け取る。その後、ステップ６２０で、トランザクション・タイプに基づいて、アドレス変換を実行するかどうかの決定を行う。トランザクションがインバウンド・トランザクション（例えば、ＡＧＰバス３３０から受け取ったトランザクション）である場合、トランザクション処理はステップ６３０に進む。そうでない場合、トランザクションがアウトバウンド・トランザクション（例えば１つまたは複数のＩ／Ｏポート４１２から受け取ったトランザクション）である場合、処理はステップ６４０に進む。ステップ６３０で変換処理を実行する。便宜上、ＧＡＲＴエントリをＳＲＡＭ４１０から予測的に取り出すことができるが、すべてのインバウンド・トランザクションが変換されるわけではない。例えば、ＡＧＰ範囲外の仮想アドレス（例えばＧＡＲＴアパーチャ）を指定するインバウンド・トランザクションは、変換されないことになる。ステップ６４０では、アウトバウンド・トランザクションは変換処理を迂回する。最後に、ステップ６５０では、適切なバスのトランザクションを実行する（例えば、１つまたは複数のＩ／Ｏポート４１２に対してインバウンド・トランザクションを実行し、ＡＧＰバス３３０に対してアウトバウンド・トランザクションを実行する）。
【００４７】
インバウンドＰＣＩ書込みトランザクション処理
好ましくは、図５Ｂに示すように、ＧＸＢ４１０は、ＡＧＰバス３３０上で受け取ったＡＧＰトランザクションおよびＰＣＩトランザクションの両方を処理し、下位互換性のレベルを提供するように構成される。ＧＸＢ４１０を通過する処理は、ＰＣＩ、低優先度ＡＧＰ、および高優先度ＡＧＰストリームのそれぞれに対して非常に類似している。したがって、例示的なＰＣＩトランザクションの処理だけを本明細書で説明する。
【００４８】
図７は、本発明の一実施形態によるインバウンドＰＣＩ書込みトランザクション処理を示す流れ図である。ここで説明する例では、ステップ７１０で、ＰＣＩサイクルは、ＡＧＰバス３３０上で動作してＰＣＩトランザクションをＧＸＢ４１０に送り、その後にＰＣＩトランザクションに関連するデータが続く。ステップ７２０では、ＰＣＩトランザクションをＰＣＩインバウンド・バッファ５７０中にバッファリングする。アービトレーションを得ると、以下でさらに詳細に説明するように、ＰＣＩトランザクションに関連する仮想アドレスをメイン・メモリ３２５中の物理アドレスに変換する（ステップ７３０）。ＰＣＩトランザクションの仮想アドレスは、ステップ７４０で、変換後アドレスで上書きされる。ＧＡＲＴエントリの検索の予測的な性質のために、変換を実行すべきでないとき、変換後アドレスを仮想アドレスと同じにすることができる。いずれにしても、ステップ７５０で、トランザクションを適切なＩ／Ｏポート４１２に対して実行することができるまで、変換後ＰＣＩトランザクションをＳＡＣインバウンド・バッファ５８０中にバッファリングする。最後に、Ｉ／Ｏポート４１２に対して書込みサイクルを実行することによって、変換後ＰＣＩトランザクションを実行する。
【００４９】
アウトバウンドＰＣＩ書込みトランザクション処理
前述のように、アウトバウンド・トランザクションをＧＸＢ４１０で変換する必要はない。このことをさらに示すために、次に、アウトバウンドＰＣＩ書込みトランザクションに関連する処理を図８を参照しながら説明する。この例によれば、Ｉ／Ｏポート４１２に対して書込み要求を実行し、ＰＣＩ要求が受け取られ、ＳＡＣアウトバウンド制御論理５８５に発送される（ステップ８１０および８２０）。ＰＣＩ要求に関連するデータは、データ・バッファ・ユニット５１０に転送される。ステップ８４０では、アービトレーション時間スロットを得ると、ＡＧＰバス３３０に対して書込みサイクルを実行することによって、アウトバウンドＰＣＩ書込みトランザクションを実行する。アウトバウンドＰＣＩ書込みトランザクションが首尾よく完了した後に、書込み完了表示を供給することができる（ステップ８５０および８６０）。
【００５０】
アドレス変換の概要
図９は、本発明の一実施形態による物理アドレス空間変換に対するグラフィックス（仮想）を概念的に示す。簡潔には、この例では、仮想アドレス９１５は、ＡＧＰアドレス９２０およびオフセット９２５を含む。仮想アドレス９１５は、例えばグラフィックス・アクセラレータ３３５が利用する、連続する論理アドレス空間中のアドレスを表す。ＡＧＰアドレス９２０、その一部、またはＡＧＰアドレス９２０から導出される他の情報は、ＧＡＲＴ９０５からの適切なエントリを取り出すために使用される。ＧＡＲＴエントリ内に含まれる情報は、仮想アドレス９１５に対応する物理アドレスを含むメイン・メモリ３２５中の物理ページを識別する。ＧＡＲＴエントリで識別される物理ページは、仮想アドレス９１５からのオフセット９２５と共に組み合わされ、メイン・メモリ・アドレス９３０が形成される。
【００５１】
複数ページ・サイズのサポート
一実施形態によれば、ＧＸＢ４１０は、メイン・メモリ３２５中の２つの異なるページ・サイズをサポートする。仮想アドレス９１５の変換は、対応する物理アドレスがその中に常駐するページ・サイズに依存する。一実施形態では、ＧＡＲＴアパーチャ内にあるすべてのページに対して固定ページ・サイズ（例えば４Ｋバイトまたは４Ｍバイト）が使用され、ページ・サイズの表示は、システム・ブート中にＧＸＢ４１０中の制御レジスタ中に格納される。現在、ＡＧＰプログラミング・モデルは、ＧＡＲＴエントリに対して４Ｋバイト・ページを用いて設計される。より大きなページ・サイズ（例えば２Ｍバイト、４Ｍバイトなど）を使用可能にすることによって、ＧＸＢ４１０は、高性能コンピュータ・システムと互換となる。
【００５２】
上記で、ＧＡＲＴアパーチャ中のすべてのページは１つのサイズまたは別のサイズであるが、代替実施形態では、ＧＡＲＴアパーチャは、異なるサイズのページを同時に含むことができる。この実施形態では、以下で説明するように、アドレス変換を動的に制御する必要がある。
【００５３】
図１０Ａに、メイン・メモリ内の４Ｋバイト・ページ中に常駐するデータを参照するために利用することができる、例示的な仮想アドレス・フォーマットを示す。この実施形態によれば、仮想アドレス９１５は４０ビット幅である。ＡＧＰアドレス１０２０は２８ビットを有し、オフセット１０２５は１２ビットを有する。
【００５４】
図１０Ｂに、メイン・メモリ内の４Ｍバイト・ページ中に常駐するデータを参照するために利用することができる、例示的な仮想アドレス・フォーマットを示す。この実施形態によれば、仮想アドレス９１５はやはり４０ビット幅である。しかし、ＡＧＰアドレス１０２１は１８ビットに減少し、オフセット１０２５は２２ビットに増加する。様々な他のページ・サイズも収容できるものとする。
【００５５】
図１１Ａに、メイン・メモリ内の４Ｋバイト・ページへのアドレス変換をサポートするための、例示的なＧＡＲＴエントリ・フォーマット１１０５を示す。この例では、エントリ１１０５は３２ビット幅で、パリティ・ビット１１１５、コヒーレンス・ビット１１２０、有効ビット１１２５、新しいページ・アドレス１１３０、および予約済み領域１１１０を含む。各エントリは、１つの４Ｋバイト・ページをカバーする。２５６ｋエントリ、または４Ｋバイト・ページについての合計１ＧＢの変換可能スペースを保持するのに１メガバイトで十分である。
【００５６】
パリティ・ビット１１１５は、ＧＡＲＴエントリ１１０５全体をカバーする。パリティ・ビット１１１５はハードウェアで生成することができ、パリティ・ビット１１１５を含む１の合計数が、偶数または奇数になるように計算することができる。
【００５７】
コヒーレント・ビット１１２０は、グラフィックス・カードからのトラフィックがシステム・バス３１５とコヒーレントである必要があるかどうかを示す。コヒーレンスは以下でさらに論じる。
【００５８】
有効ビット１１２５は、ＳＲＡＭ４０５がこのエントリに関する有効データを含むかどうかを示す。データがこのエントリに関して有効であることを有効ビット１１２５が示す場合、アドレス変換のためにこのエントリを使用することができる。
【００５９】
この例では、この新しいページ・アドレス１１３０は２４ビット幅である。この新しいページ・アドレス１１３０は、所望の物理アドレスを含むメイン・メモリ３２５中の４Ｋバイト物理ページの開始アドレスを含む。
【００６０】
図１１Ｂに、メイン・メモリ内の４Ｍバイト・ページへのアドレス変換をサポートするための、例示的なＧＡＲＴエントリ・フォーマットを示す。この例では、上記と同様に、エントリ１１０６は３２ビット幅で、パリティ・ビット１１１６、コヒーレンス・ビット１１２１、有効ビット１１２６、新しいページ・アドレス１１３１、および予約済み領域１１１１および１１３６を含む。各エントリは、４Ｍバイト・ページをカバーする。
【００６１】
上記と同様に、パリティ・ビット１１１６は、ＧＡＲＴエントリ１１０６全体をカバーし、パリティ・ビット１１１６を含む１の合計数が、偶数または奇数になるように計算することができる。
【００６２】
コヒーレンス・ビット１１２１は、グラフィックス・カードからのトラフィックがシステム・バス３１５とコヒーレントである必要があるかどうかを示す。コヒーレンスは以下でさらに論じる。
【００６３】
有効ビット１１２６は、ＳＲＡＭ４０５が当該のエントリに関する有効データを含むかどうかを示す。データがこのエントリに関して有効であることを有効ビット１１２６が示す場合、アドレス変換のためにこのエントリを使用することができる。
【００６４】
この例では、この新しいページ・アドレス１１３１は１４ビット幅である。この新しいページ・アドレス１１３１は、所望の物理アドレスを含むメイン・メモリ３２５中の４Ｍバイト物理ページの開始アドレスを含む。
【００６５】
代替実施形態では、ビットおよびフィールドの相対的位置決めを図１１Ａおよび図１１Ｂの例で示したものとは異なるものとすることができる。やはり、代替実施形態では、エントリ・フォーマットは、宛先ページ・サイズ（例えば４Ｋバイトまたは４Ｍバイト）を示すためのページ・モードビットも含むことができ、アドレス変換プロセスの動的制御を実現することができる。このようにして複数の異なるページ・サイズを同時にサポートすることができる。
【００６６】
（コヒーレンス）
グラフィックス・カード（例えばグラフィックス・アクセラレータ３３５）からのトラフィックは、システム・バス３２５とコヒーレントにしたいこともあり、そうでないこともある。一実施形態によれば、コヒーレンスはページごとに選択可能である。この開示では、「コヒーレンス」とは、１つまたは複数のプロセッサ３０５および３１０がアドレスに関するキャッシュをスヌープすることができるように、そのアドレスがシステム・バス３２５上に出現することを意味する。テクスチャ・マップまたは他のイメージ・データが、プロセッサによって、書込み結合（ＷＣ）とマークされた場合、そのデータはコヒーレントではない。プロセッサのＷＣバッファ中でヒットする、システム・バス３２５に対するアドレスはスヌープされない。あるいは、アプリケーションは、メイン・メモリ３２５中のデータがプロセッサによって使用されなかった（例えば、データがディスクから来た）ことを認識し、システム・バス３２５帯域幅を使用せずにデータを取り出すようにグラフィックス・カードに要求し、したがって強制的にアクセスを非コヒーレントにすることができる。
【００６７】
前述と同様に、ＡＧＰ範囲中にヒットするすべてのＡＧＰタイプ・アクセスについて、アドレスがコヒーレントであるかどうかを判定するＧＡＲＴエントリごとのビットが存在する。ＡＧＰ範囲外のＡＧＰタイプ・アクセスについて、情報（例えば１ビット・コヒーレンス標識）をＧＸＢ４１０の構成レジスタから読み取り、コヒーレンスを判定することができる。重要なことであるが、コヒーレンスまたは非コヒーレンスは、ＡＧＰプロトコルを使用するアクセスだけに当てはまる。ＰＣＩプロトコルを使用するアクセスは、変換テーブルにヒットするかどうかに関わらず、常にコヒーレントに行われる。
【００６８】
上記の明細書において、本発明の特定の実施形態を参照しながら本発明を説明した。しかし、本発明のより広範な精神および範囲から逸脱することなく、それに対して様々な修正形態および変更を行えることは明らかであろう。したがって、この明細書および図面は、限定的な意味ではなく、例示的な意味とみなすべきである。
【図面の簡単な説明】
【図１】  グラフィックス・アドレス変換のための従来技術の手法を示すブロック図である。
【図２】  本発明の一実施形態による入出力アドレス変換を示すブロック図である。
【図３】  本発明の一実施形態によるグラフィックス・アドレス変換を示すブロック図である。
【図４】  本発明の実施形態を実装することができる例示的チップセットを示すブロック図である。
【図５Ａ】  本発明の一実施形態によるグラフィックス拡張ブリッジの機能単位間の高レベル相互接続を示す単純化したブロック図である。
【図５Ｂ】  本発明の一実施形態によるグラフィックス拡張ブリッジのより詳細なビューを示す単純化したブロック図である。
【図６】  本発明の一実施形態によるトランザクション処理を概念的に示す高レベル流れ図である。
【図７】  本発明の一実施形態によるインバウンドＰＣＩ書込みトランザクション処理を示す流れ図である。
【図８】  本発明の一実施形態によるアウトバウンドＰＣＩ書込みトランザクション処理を示す流れ図である。
【図９】  本発明の一実施形態によるグラフィックス（仮想）−物理アドレス空間変換を概念的に示す図である。
【図１０】  メイン・メモリ内の４Ｋバイト・ページ中に常駐するデータを参照するために利用することができる例示的仮想アドレス・フォーマットを示す図である。
【図１１】  メイン・メモリ内の４Ｋバイト・ページへのアドレス変換をサポートするための例示的ＧＡＲＴエントリ・フォーマットを示す図である。
【図１】
0004607405.tif 000002
【図２】
0004607405.tif 000003
【図３】
0004607405.tif 000004
【図４】
0004607405.tif 000005
【図５Ａ】
0004607405.tif 000006
【図５Ｂ】
0004607405.tif 000007
【図６】
0004607405.tif 000008
【図７】
0004607405.tif 000009
【図８】
0004607405.tif 000010
【図９】
0004607405.tif 000011
【図１０】
0004607405.tif 000012
【図１１】
0004607405.tif 000013