(57)【要約】【課題】  アドレス変換情報を検索するためのシステムメモリアクセスを減少又は排除する回路、方法及び装置を提供すること。【解決手段】  一つの実施形態では、これらのアクセスは、ＧＰＵによって使用される仮想アドレスをシステムメモリによって使用される物理アドレスに変換するのに使用されるエントリーをグラフィックスＴＬＢに予め格納することにより、減少又は排除される。変換情報は、ディスプレイアクセスのために必要とされるグラフィックスＴＬＢにおけるエントリーをロック又は制限することにより維持される。これは、グラフィックスＴＬＢにフラグ又は他の識別情報を記憶させることにより、又は他の適当な方法により、グラフィックスＴＬＢの特定のロケーションへのアクセスを制限することで行うことができる。【選択図】  図３
2008033928.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックスプロセッサを使用してデータを検索する方法において、
システムメモリにおけるメモリロケーションへのアクセスを要求するメモリーロケーションアクセス要求ステップと、
前記システムメモリにおけるメモリロケーションの少なくとも一つのブロックのためのアドレス情報であって、少なくとも一つの物理メモリアドレスを識別する情報を含むアドレス情報を受け取るアドレス情報受取りステップと、
前記物理メモリアドレスに対応するページテーブルエントリーをキャッシュに記憶させるページテーブルエントリーキャッシュ記憶ステップと、
を備え、キャッシュミスを待たずに、前記アドレス情報が受け取られ、前記ページテーブルエントリーが前記キャッシュに記憶されるようにする、方法。
【請求項２】
前記ページテーブルエントリーを前記システムメモリに記憶させるページテーブルエントリーシステムメモリ記憶ステップを更に備える、請求項１に記載の方法。
【請求項３】
前記ページテーブルエントリーが記憶されている前記キャッシュのロケーションを保護するキャッシュロケーション保護ステップを更に備える、請求項２に記載の方法。
【請求項４】
前記グラフィックスプロセッサは、グラフィックス処理装置である、請求項３に記載の方法。
【請求項５】
前記グラフィックスプロセッサは、統合グラフィックスプロセッサに含まれる、請求項３に記載の方法。
【請求項６】
システムメモリにおけるメモリロケーションへのアクセスのための前記要求は、オペレーティングシステムに対してなされる、請求項３に記載の方法。
【請求項７】
少なくとも一つの物理メモリアドレスを識別する前記情報は、ベースアドレス及びメモリブロックサイズを含む、請求項３に記載の方法。
【請求項８】
システムメモリにおけるメモリロケーションへのアクセスのための要求を与えると共に、前記システムメモリにおけるメモリロケーションに関するアドレス情報であって、少なくとも一つの物理メモリアドレスを識別する情報を含むアドレス情報を受け取るためのデータインターフェースと、
前記物理メモリアドレスに対応するページテーブルエントリーを書き込むためのキャッシュコントローラと、
前記ページテーブルエントリーを記憶するためのキャッシュと、
を備え、キャッシュミスが起こるのを待たずに、前記アドレス情報が受け取られ、前記ページテーブルエントリーが前記キャッシュに記憶されるようにする、グラフィックスプロセッサ。
【請求項９】
前記データインターフェースは、前記システムメモリに前記ページテーブルエントリーを記憶させる要求も与える、請求項８に記載のグラフィックスプロセッサ。
【請求項１０】
前記データインターフェースは、システムの電源投入に続いて前記システムメモリにおけるメモリロケーションへのアクセスのための要求を与える、請求項８に記載のグラフィックスプロセッサ。
【請求項１１】
前記キャッシュコントローラは、前記ページテーブルエントリーが記憶されているロケーションを保護する、請求項８に記載のグラフィックスプロセッサ。
【請求項１２】
前記キャッシュコントローラは、仮想アドレス及び物理アドレスが記憶されているロケーションへのアクセスを制限する、請求項８に記載のグラフィックスプロセッサ。
【請求項１３】
前記データインターフェースは、ＰＣＩＥインターフェース回路である、請求項８に記載のグラフィックスプロセッサ。
【請求項１４】
前記グラフィックスプロセッサは、グラフィックス処理装置である、請求項８に記載のグラフィックスプロセッサ。
【請求項１５】
前記グラフィックスプロセッサは、統合グラフィックスプロセッサに含まれる、請求項８に記載のグラフィックスプロセッサ。
【請求項１６】
グラフィックスプロセッサを使用してデータを検索する方法において、
システムメモリにおけるメモリのブロックのためのベースアドレス及びレンジを受け取るベースアドレスレンジ受取りステップと、
前記ベースアドレス及びレンジを記憶させるためのベースアドレスレンジ記憶ステップと、
第１のアドレスを受け取るアドレス受取りステップと、
前記第１のアドレスが前記レンジ内にあるかを判定するアドレスレンジ判定ステップと、
前記第１のアドレスが前記レンジ内にある場合に、前記ベースアドレスを前記第１のアドレスに加えることによって前記第１のアドレスを第２のアドレスに変換するアドレス変換ステップと、
前記第１のアドレスが前記レンジ内にない場合に、キャッシュからページテーブルエントリーを読み取るページテーブルエントリー読取りステップと、
前記ページテーブルエントリーを使用して前記第１のアドレスを第２のアドレスに変換するページテーブルエントリー使用アドレス変換ステップと、
を備える方法。
【請求項１７】
前記キャッシュからページテーブルエントリーを読み取る前に、キャッシュミスを待たずに、前記キャッシュに前記ページテーブルエントリーを記憶させるページテーブルエントリー読取り前記憶ステップを更に備える、請求項１６に記載の方法。
【請求項１８】
前記キャッシュからページテーブルエントリーを読み取る前に、ページテーブルが前記キャッシュに記憶されているかどうか判定し、前記ページテーブルが前記キャッシュに記憶されていない場合に、前記システムメモリから前記ページテーブルエントリーを読み取るページテーブルエントリー読取り前判定ステップを更に備える、請求項１６に記載の方法。
【請求項１９】
前記グラフィックスプロセッサは、グラフィックス処理装置である、請求項１６に記載の方法。
【請求項２０】
前記グラフィックスプロセッサは、統合グラフィックスプロセッサに含まれる、請求項１６に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]本願は、２００６年７月３１日に出願された米国仮出願第６０／８２０，９５２号及び２００６年８月１日に出願された米国仮出願第６０／８２１，１２７号の利益を主張する。これら両仮出願は、共に、Tong氏等によるものであり、「DEDICATEDMECHANISM FOR PAGE-MAPPING IN A GPU」を発明の名称とするものである。これら両仮出願の明細書は、参照することにより本明細書に組み込まれている。
【０００２】
[0002]本願は、共同出願係属中の、２００５年１０月１８日に出願された「ZeroFrame Buffer」を発明の名称とする米国特許出願第１１／２５３，４３８号、２００５年３月１０日に出願された「Memory Management forVirtual Address Space with Translation Units of Variable Range Size」を発明の名称とする米国特許出願第１１／０７７，６６２号、及び２００５年３月１０日に出願された「MemoryManagement for Virtual Address Space with Translation units of Variable RangeSize」を発明の名称とする米国特許出願第１１／０７７６６２号に関連している。これら特許出願の明細書は、参照することにより本明細書に組み込まれている。
【背景】
【０００３】
[0003]本発明は、システムメモリディスプレイデータアクセスのために必要とされるアドレス変換情報を検索するためのシステムメモリアクセスを排除又は減少させることに関するものである。
【０００４】
[0004]グラフィックス処理装置（ＧＰＵ）は、モニタ又は他のディスプレイデバイス上にグラフィックスイメージを生成するため、コンピュータ、ビデオゲーム、カーナビゲーション及びその他の電子システムの一部分として含まれる。開発された当初のＧＰＵは、フレームバッファと称されるローカルメモリにピクセル値、即ち、実際に表示されるカラーを記憶させていた。
【０００５】
[0005]それ以来、ＧＰＵの複雑さ、特に、カリフォルニア州サンタクララのNVIDIACorporationによって設計開発されるＧＰＵの複雑さは、非常に増してきている。フレームバッファに記憶されるデータのサイズ及び複雑さも同様に増してきている。現在では、このグラフィックスデータは、ピクセル値だけでなく、テクスチャ、テクスチャ記述子、シェーダープログラム命令及び他のデータ及びコマンドをも含んでいる。現在では、これらフレームバッファは、それらの役割が拡張されたことの認識に基づいて、グラフィックスメモリと称されている。
【０００６】
[0006]最近まで、ＧＰＵは、アドバンスドグラフィックスポート又はＡＧＰバスを経由してコンピュータシステムにおける中央処理装置及びその他のデバイスと通信している。このバスのより高速なバージョンが開発されたが、このバージョンでは、ＧＰＵへ十分なグラフィックスデータを分配することができない。したがって、それらグラフィックスデータは、ＡＧＰポートを通さなくともＧＰＵに対して利用できるようなローカルメモリに記憶されていた。都合の良いことには、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）標準又はＰＣＩＥ（ＰＣＩエクスプレス）のエンハンストバージョンである新しいバスが開発されている。このバスのプロトコル及びそのインプリメンテーションは、NVIDIACorporationによって大幅に改善され改良されてきた。その結果として、ＰＣＩＥバスを経由してアクセスされるシステムメモリを有利に使用することができ、ローカルメモリを排除することができた。
【０００７】
[0007]グラフィックスメモリロケーションの変化の結果として、種々な困難な事項が生じてきている。その一つとして、ＧＰＵは、仮想アドレスを使用してデータ記憶場所を追跡するのに対して、システムメモリは、物理アドレスを使用しているということがある。システムメモリからデータを読み取るため、ＧＰＵは、その仮想アドレスを物理アドレスに変換する。このような変換のために過大な時間がかかる場合に、データは、十分に高速なペースにてシステムメモリによってＧＰＵへ与えられないことになってしまう。これは、特に、ＧＰＵへ絶えず素早く与えられなければならないようなピクセル又はディスプレイデータについて言えることである。
【０００８】
[0008]このようなアドレス変換は、仮想アドレスを物理アドレスに変換するのに必要とされる情報がＧＰＵに記憶されていない場合には、過大な時間を要することになってしまう。詳述すると、この変換情報がＧＰＵにて得られない場合には、システムメモリからそれを検索するための第１のメモリアクセスが必要とされる。システムメモリからディスプレイデータ又はその他の必要なデータを読み取るのは、その後の第２のメモリアクセスにおいてでないとできないのである。したがって、第１のメモリアクセスによって与えられるアドレスがないと第２のメモリアクセスを進めることはできないので、第１のメモリアクセスは第２のメモリアクセスの前に行われるべき直列的なものである。この付加的な第１のメモリアクセスは、１マイクロ秒程もの時間長さを要することがあるもので、これにより、ディスプレイデータ又はその他の必要データを読み取る速度が大きく低下してしまうことがある。
【０００９】
[0009]したがって、システムメモリからアドレス変換情報を検索するためのこのような付加的なメモリアクセスを排除又は減少させる回路、方法及び装置が必要とされている。
【概要】
【００１０】
[0010]したがって、本発明の実施形態は、システムメモリディスプレイデータアクセスのために必要とされるアドレス変換情報を検索するためのシステムメモリアクセスを排除又は減少させる回路、方法及び装置を提供するものである。特定すると、アドレス変換情報は、グラフィックスプロセッサに記憶される。こうすることにより、変換情報を検索するための別々のシステムメモリアクセスの必要が減少又は排除される。付加的なメモリアクセスが必要とされないので、プロセッサは、より素早くアドレスを変換し、システムメモリから必要とされるディスプレイデータ又は他のデータを読み取ることができる。
【００１１】
[0011]本発明の一つの典型的な実施形態によれば、グラフィックス変換ルックアサイドバッファ（グラフィックスＴＬＢ）と称されるキャッシュに、ＧＰＵによって使用される仮想アドレスをシステムメモリによって使用される物理アドレスに変換するのに使用されるエントリーを、予め格納すること（以下、プリポピュレーティングという）により、電源投入に続くアドレス変換情報のためのシステムメモリアクセスを排除又は減少させる。本発明の特定の実施形態では、グラフィックスＴＬＢは、ディスプレイデータのために必要とされるアドレス情報をプリポピュレーティングする。しかし、本発明の他の実施形態では、他のタイプのデータに対するアドレスをグラフィックスＴＬＢにプリポピュレーティングすることができる。こうすることにより、さもなければ必要とされてしまうようなアドレス変換情報を検索するための付加的なシステムメモリアクセスを無くすることができる。
【００１２】
[0012]電源投入後、必要とされる変換情報が確実にグラフィックスプロセッサに維持されているようにするため、ディスプレイアクセスのために必要とされるグラフィックスＴＬＢにおけるエントリーは、保護（以下、ロックという）され、又は別の仕方で制限される。これは、グラグラフィックスＴＬＢにフラグ又は他の識別情報を記憶させることにより、又は、その他の適当な方法により、グラフィックスＴＬＢにおける特定のロケーションへのアクセスを制限することによって行うことができる。こうすることにより、データが上書きされるのを防止することができる。このようなデータの上書きがなされてしまうと、もう一度システムメモリから読み取ることが必要となってしまう。
【００１３】
[0013]本発明の別の典型的な実施形態によれば、システムＢＩＯＳによって与えられるシステムメモリの大きな連続ブロックに対する基準アドレス（以下、ベースアドレスという）及びアドレスレンジを記憶することによって、アドレス変換情報のためのメモリアクセスを排除又は減少させる。電源投入又は他の適当なイベントにて、システムＢＩＯＳは、「カーブアウト」と称される大きなメモリブロックをＧＰＵへ割り当てる。ＧＰＵは、ディスプレイデータ又は他のデータのためにこれを使用することができる。ＧＰＵは、チップに、例えば、ハードウエアレジスタにベースアドレス及びレンジを記憶させる。
【００１４】
[0014]ＧＰＵによって使用される仮想アドレスを物理アドレスに変換すべきときには、その仮想アドレスがカーブアウトのレンジ内にあるかを知るためのレンジチェックがなされる。本発明の特定の実施形態では、これは、カーブアウトのベースアドレスをゼロの仮想アドレスに対応させることによって簡単化される。このとき、カーブアウトにおける最も高い仮想アドレスが、物理アドレスのレンジに対応する。変換すべきアドレスがカーブアウトに対する仮想アドレスのレンジ内にある場合に、その仮想アドレスは、その仮想アドレスにベースアドレスを加えることによって物理アドレスに変換されうる。変換すべきアドレスがこのレンジ内に無い場合に、それは、グラフィックスＴＬＢ又はページテーブルを使用して変換することができる。
【００１５】
[0015]本発明の種々な実施形態は、これらの特徴又はここで説明するその他の特徴のうちの一つ以上のものを組み入れることができる。以下の詳細な説明及び添付図面を参照することにより、本発明の特性及び効果についてより良く理解できよう。
【典型的な実施形態の説明】
【００１６】
[0024]図１は、本発明の一つの実施形態を組み入れることにより改善されるコンピュータシステムのブロック図である。このブロック図は、中央処理装置（ＣＰＵ）又はホストプロセッサ１００、システムプラットフォームプロセッサ（ＳＰＰ）１１０、システムメモリ１２０、グラフィックス処理装置（ＧＰＵ）１３０、メディア通信プロセッサ（ＭＣＰ）１５０、ネットワーク１６０並びに内部及び周辺デバイス２７０を含む。フレームバッファ、ローカル又はグラフィックスメモリ１４０も含まれているが、点線で示されている。その点線は、従来のコンピュータシステムでは、このメモリが含まれているが、本発明の実施形態によれば、このメモリを排除できることを示している。この図は、他の添付図と同様に、例示のために示すものに過ぎず、本発明の可能な実施形態を限定するものでもなく、特許請求の範囲を限定するものでもない。
【００１７】
[0025]ＣＰＵ１００は、ホストバス１０５を経由してＳＰＰ１１０に接続する。ＳＰＰ１１０は、ＰＣＩＥバス１３５を経由してグラフィックス処理装置１３０と通信する。ＳＰＰ１１０は、メモリバス１２５を通してシステムメモリ１２０からデータを読み取ったり、システムメモリ１２０へデータを書き込んだりする。ＭＣＰ１５０は、ハイパートランスポートバス１５５のような高速接続を通してＳＰＰ１１０と通信し、ネットワーク１６０並びに内部及び周辺デバイス１７０をコンピュータシステムの他の構成部分へ接続する。グラフィックス処理装置１３０は、ＰＣＩＥバス１３５を通してデータを受け取り、モニタ又は他の表示デバイス（図示していない）上のディスプレイのためのグラフィック及びビデオイメージを生成する。本発明の他の実施形態では、グラフィックス処理装置は、ＳＰＰ１１０に代えて使用される統合グラフィックスプロセッサ（ＩＧＰ）に含まれる。更に他の実施形態では、汎用ＧＰＵを、ＧＰＵ１３０として使用することができる。
【００１８】
[0026]ＣＰＵ１００は、Intel Corporation又はその他のサプライヤーによって製造されているような当業者によく知られたプロセッサであってよい。ＳＰＰ１１０及びＭＣＰ１５０は、普通には、チップセットと称される。システムメモリ１２０は、しばしば、多数のデュアルインラインメモリモジュール（ＤＩＭＭ）に配列された多数のダイナミックランダムアクセスメモリデバイスである。グラフィックス処理装置１３０、ＳＰＰ１１０、ＭＣＰ１５０及びＩＧＰは、使用されるのであれば、NVIDIACorporationによって製造されるのが好ましい。
【００１９】
[0027]グラフィックス処理装置１３０は、グラフィックスカード上に配設することができる。一方、ＣＰＵ１００、システムプラットフォームプロセッサ１１０、システムメモリ１２０及びメディア通信プロセッサ１５０は、コンピュータシステムマザーボード上に配設することができる。グラフィックス処理装置１３０を含むグラフィックスカードは、典型的には、グラフィックス処理装置を取り付けたプリント回路板である。このプリント回路板は、典型的には、コネクタ、例えば、ＰＣＩＥコネクタが取り付けられており、そのコネクタは、マザーボードに含まれたＰＣＩＥスロットに嵌合する。本発明の他の実施形態では、グラフィックスプロセッサは、マザーボードに含まれるか、又は、ＩＧＰ内に組み込まれる。
【００２０】
[0028]例示したコンピュータシステムのようなコンピュータシステムは、一つより多いＧＰＵ１３０を含むことができる。また、それらのグラフィックス処理装置の各々を、別々のグラフィックスカードに配設することができる。これらのグラフィックスカードの２つ以上のものを、ジャンパ又はその他の接続により一緒に接合することができる。このような技術の一つである、先駆的なＳＬＩ（商標名）がNVIDIACorporationによって開発されている。本発明の他の実施形態では、一つ以上のＧＰＵを一つ以上のグラフィックスカード上に配設し、他の一つ以上のＧＰＵをマザーボード上に配設することができる。
【００２１】
[0029]以前に開発されたコンピュータシステムでは、ＧＰＵ１３０は、ＡＧＰバスを経由してノースブリッジのようなところでシステムプラットフォームプロセッサ１１０又は他のデバイスと通信していた。不都合なことに、ＡＧＰバスは、必要とされる速度でＧＰＵ１３０へデータを供給することができなかった。したがって、ＧＰＵの使用のためにフレームバッファ１４０が設けられていた。このメモリにより、データをＡＧＰボトルネックに渡す必要なしに、データへのアクセスが可能となった。
【００２２】
[0030]現在では、ＰＣＩＥ及びハイパートランスポートのようなより高速のデータ転送プロトコルを利用できるようになってきている。特に、改良ＰＣＩＥインターフェースが、NVIDIACorporationによって開発されている。したがって、ＧＰＵ１３０からシステムメモリ１２０までの帯域幅が大きく増大されてきている。かくして、本発明の実施形態は、フレームバッファ１４０を排除しようとするものである。フレームバッファを排除するのに使用できる別の方法及び回路の実施形態については、２００５年１０月１８日に出願された共同出願係属中の「ZeroFrame Buffer」を発明の名称とする米国特許出願第１１／２５３４３８号に開示されており、この出願明細書の記載は、参照することにより本明細書に組み込まれている。
【００２３】
[0031]本発明の実施形態によって可能とされるフレームバッファの排除により、これらのＤＲＡＭをなくすのみならず、同様の付加的な節約をなすことがきる。例えば、それらメモリへの電力供給を制御するのに典型的には電圧調整器が使用されており、電源のフィルタリングを行なうのにキャパシタが使用されている。これらのＤＲＡＭ、調整器及びキャパシタを排除することにより、コストの節約ができ、これにより、グラフィックスカードの部品表（ＢＯＭ）を削減することができる。その上、ボードレイアウトが簡単化され、ボードスペースが減少され、グラフィックカードのテスティングが簡単化される。これらの要因により、研究開発及び設計費、及びその他の工学及びテスト費が削減され、それにより、本発明の実施形態を組み入れたグラフィックスカードのためのグロスマージンが増大される。
【００２４】
[0032]本発明の実施形態は、ゼロフレームバッファグラフィックスプロセッサの性能を改善するのによく適しているが、限定又はオンチップメモリ又は限定ローカルメモリを有するようなグラフィックスプロセッサを含めてその他のグラフィックスプロセッサもまた、本発明の実施形態を組み入れることにより改善される。また、この実施形態は本発明の一つの実施形態を組み入れることによって改善される特定のタイプのコンピュータシステムを提供しているのであるが、他のタイプの電子システム又はコンピュータシステムも又改善することができる。例えば、ビデオ及びその他のゲームシステム、ナビゲーション、セットトップボックス、パチンコマシン並びにその他のタイプのシステムもまた、本発明の実施形態を組み入れることにより改善することができる。
【００２５】
[0033]また、ここに説明するこれらのタイプのコンピュータシステム及び他の電子システムは、今のところ普通のものであるが、他のタイプのコンピュータシステム及び他の電子システムが開発されているところである。また、将来においては、更に別のものが開発されてくるであろう。それらのうちの多くのものもまた、本発明の実施形態を組み入れることによって改善できると考えられる。したがって、ここに列挙した特定の実施形態は、本来的に説明のためのものであり、これらは、本発明の可能な実施形態を限定するものでもなく、特許請求の範囲を限定するものでもない。
【００２６】
[0034]図２は、本発明の一つの実施形態を組み入れることによって改善される別のコンピュータシステムのブロック図である。このブロック図は、中央処理装置又はホストプロセッサ２００、ＳＰＰ２１０、システムメモリ２２０、グラフィックス処理装置２３０、ＭＣＰ２５０、ネットワーク２６０並びに内部及び周辺デバイス２７０を含む。また、フレームバッファ、ローカル又はグラフィックスメモリ２４０が含まれているが、それは、排除されることを強調するため点線で示されている。
【００２７】
[0035]ＣＰＵ２００は、ホストバス２０５を経由してＳＰＰ２１０と通信し、メモリバス２２５を経由してシステムメモリ２２０にアクセスする。ＧＰＵ２３０は、ＰＣＩＥバス２３５を通してＳＰＰ２１０と通信し、メモリバス２４５を通してローカルメモリと通信する。ＭＣＰ２５０は、ハイパートランスポートバス２５５のような高速度接続を経由してＳＰＰ２１０と通信し、ネットワーク２６０並びに内部及び周辺デバイス２７０をそのコンピュータシステムの他の構成部分へ接続する。
【００２８】
[0036]前述したように、中央処理装置又はホストプロセッサ２００は、IntelCorporation又は他のサプライヤーによって製造されている中央処理装置のうちの一つであって良く、当業者には良く知られているものである。グラフィックスプロセッサ２３０、統合グラフィックスプロセッサ２１０並びにメディア及び通信プロセッサ２５０は、NVIDIACorporationによって与えられるのが好ましい。
【００２９】
[0037]図１及び図２におけるフレームバッファ１４０及び２４０を排除し、また、本発明の他の実施形態において他のフレームバッファを排除することは簡単なことではない。例えば、システムメモリにデータを記憶させたりシステムメモリからデータを読み取ったりするのに使用されるアドレスについての困難な事項が生ずる。
【００３０】
[0038]ＧＰＵがデータを記憶するためローカルメモリを使用しているときには、そのローカルメモリは、厳密に、そのＧＰＵの制御下にある。典型的には、他の回路は、そのローカルメモリへアクセスできないものとされている。これにより、ＧＰＵが適当と考えるどのような仕方でもアドレスを追尾し割り当てることができるようにされている。しかしながら、システムメモリは、複数の回路によって使用され、オペレーティングシステムによってスペースがそれらの回路に割り当てられている。オペレーティングシステムによってＧＰＵへ割り当てられたスペースは、一つの連続メモリセクションを形成するものでありうる。より多くの場合、ＧＰＵへ割り当てられたスペースは、多くのブロック又はセクションへ分割されており、それらの幾つかは、異なるサイズを有していることがある。これらのブロック又はセクションは、初期アドレス、開始アドレス又はベースアドレス及びアドレスのメモリサイズ又はレンジによって記述できる。
【００３１】
[0039]グラフィックス処理装置が実際のシステムメモリアドレスを使用するのは難しく非効率的である。なぜならば、ＧＰＵへ与えられるアドレスは、複数の独立したブロックにて割り当てられているからである。また、ＧＰＵへ与えられるアドレスは、電力がターンオンされる毎に、又はメモリアドレスが別の仕方で再割り当てされる毎に、変化することがある。ＧＰＵ上で実行されるソフトウエアがシステムメモリにおける実際の物理アドレスとは独立している仮想アドレスを使用する方がはるかに容易である。詳述すると、ＧＰＵは、メモリスペースを一つの大きな連続ブロックとして取り扱うが、一方、メモリは、幾つかのより小さい別々のブロックにてＧＰＵへ割り当てられている。したがって、データがシステムメモリへ書き込まれたりシステムメモリから読み取られたりするとき、ＧＰＵによって使用される仮想アドレスとシステムメモリによって使用される物理アドレスとの間の変換が行われる。このような変換は、エントリーとして仮想アドレス及びそれらの対応する物理アドレス相当値を含むテーブルを使用して行うことができる。これらのテーブルは、ページテーブルと称され、一方、それらのエントリーは、ページテーブルエントリー（ＰＴＥ）と称される。
【００３２】
[0040]これらのページテーブルは、ＧＰＵに入れるには大き過ぎ、そうすることは、コスト制約上望ましくない。したがって、ページテーブルは、システムメモリに記憶される。都合の悪いことに、こうすることは、データがシステムメモリから必要とされる毎に、必要とされるページテーブルエントリーを検索するための第１の又は付加的なメモリアクセスが必要とされる。そして、必要とされるデータを検索するための第２のメモリアクセスが必要とされることを意味している。したがって、本発明の実施形態では、ページテーブルにおけるデータのうちの幾つかのものが、ＧＰＵのグラフィックスＴＬＢにキャッシュされる。
【００３３】
[0041]ページテーブルエントリーが必要とされ、そのページテーブルエントリーがＧＰＵのグラフィックスＴＬＢにて利用できるときには、ヒットと称され、アドレス変換に進むことができる。そのページテーブルエントリーがＧＰＵのグラフィックスＴＬＢに記憶されていない場合には、ミスと称される。この場合には、必要とされるページテーブルエントリーは、システムメモリにおけるページテーブルから検索される。
【００３４】
[0042]必要とされるページテーブルエントリーが検索された後は、この同じページテーブルエントリーが再び必要とされる可能性は高い。したがって、メモリアクセスの回数を減少させるため、そのページテーブルエントリーをグラフィックスＴＬＢに記憶させておくのが望ましい。キャッシュに空の場所がない場合には、最近使用されていないページテーブルエントリーに対して、この新しいページテーブルエントリーで上書き又は放逐することができる。本発明の種々な実施形態では、放逐前に、現在キャッシュされているエントリーがシステムメモリから読み取られた後にそのグラフィックス処理装置によって変更されているかを判定するためのチェックがなされる。それが変更されている場合には、その新しいページテーブルエントリーでそのグラフィックスＴＬＢにて上書きする前に、その更新されたページテーブルエントリーをシステムメモリへと書込み戻すようなライトバックオペレーションを行う。本発明の他の実施形態では、このようなライトバック手順は行われない。
【００３５】
[0043]本発明の特定の実施形態では、ページテーブルは、システムが割り当てる最小粒度に基づいてインデックスを付与される。例えば、ＰＴＥは、最小で４４ＫＢブロック又はページを表すことができる。したがって、仮想アドレスを１６ＫＢで分割し、それからエントリーのサイズで乗算することにより、ページテーブルにおける問題のインデックスが生成される。グラフィックスＴＬＢのミス後、ＧＰＵは、ページテーブルエントリーを見出すため前述のインデックスを使用する。この特定の実施形態では、ページテーブルエントリーは、４ＫＢより大きい一つ以上のブロックにマッピングすることができる。例えば、ページテーブルエントリーは、最小で４つの４ＫＢブロックにマッピングすることができ、また、４ＫＢより大きく最大で総計２５６ＫＢの４、８又は１６ブロックにマッピングすることができる。このようなページテーブルエントリーがキャッシュにロードされるとき、グラフィックスＴＬＢは、単一ＰＴＥである単一グラフィックスＴＬＢエントリーを参照することにより、その２５６ＫＢ内に仮想アドレスを見出すことができる。この場合において、ページテーブル自体は、各々が少なくとも１６ＫＢにマッピングされる１６バイトエントリーとして構成される。したがって、その２５６ＫＢページテーブルエントリーは、仮想アドレススペースのその２５６ＫＢ内に入るすべてのページテーブルロケーションにコピーされている。したがって、この実施形態では、正確に同じ情報を有する１６ページテーブルエントリーがある。その２５６ＫＢ内のミスは、それらの同一のエントリーのうちの一つを読み取る。
【００３６】
[0044]前述したように、必要とされるページテーブルエントリーがグラフィックスＴＬＢにて利用できない場合には、そのエントリーを検索するための付加的なメモリアクセスが必要とされる。データへの定常的に絶えずアクセスを必要とするような特定のグラフィックスファンクションの場合には、このような付加的なメモリアクセスは非常に望ましくないものである。例えば、グラフィックス処理装置は、必要とされる速度でイメージデータをモニタへ与えることができるようにディスプレイデータに対して信頼性のあるアクセスをする必要がある。過大なメモリアクセスが必要とされる場合には、その結果生ずる待ち時間のため、モニタへのピクセルデータの流れが中断されてしまい、それにより、グラフィックスイメージが乱れてしまうことがある。
【００３７】
[0045]詳述すると、ディスプレイデータアクセスのためのアドレス変換情報がシステムメモリから読み取られる必要がある場合には、そのアクセスは、後のデータアクセスに対して直列的なものである。即ち、必要とされるディスプレイデータがどこに記憶されているかをＧＰＵが知ることができるように、アドレス変換情報をメモリから読み取らなければならない。この付加的なメモリアクセスによって生ずる付加的な待ち時間により、ディスプレイデータがモニタへ与えられる速度が減少させられ、グラフィックスイメージが更に又乱されてしまう。また、これらの付加的なメモリアクセスにより、ＰＣＩＥバスのトラフィックが増大させられ、システムメモリ帯域幅が浪費されてしまう。
【００３８】
[0046]アドレス変換情報を検索するための付加的なメモリ読取りは、グラフィックスＴＬＢが空又はクリアされるときの電源投入又はその他のイベント時に特に起こりやすい。詳述すると、コンピュータシステムの電源投入時に、基本入出力システム（ＢＩＯＳ）は、ＧＰＵがその構成にローカルフレームバッファメモリを有していると予想する。したがって、従来のシステムでは、システムＢＩＯＳは、グラフィックスプロセッサによる使用のためシステムメモリにスペースを割り当てない。むしろ、ＧＰＵは、オペレーティングシステムから特定の量のシステムメモリスペースを要求する。メモリスペースがオペレーティングシステムによって割り当てられた後、ＧＰＵは、システムメモリのページテーブルにページテーブルエントリーを記憶することができ、グラフィックスＴＬＢは空である。ディスプレイデータが必要とされるとき、ＰＴＥに対する各要求においてミスが生じ、それにより、付加的なメモリアクセスが生ずことになる。
【００３９】
[0047]したがって、本発明の実施形態によれば、グラフィックスＴＬＢにページテーブルエントリーをプリポピュレーティングする。即ち、グラフィックスＴＬＢは、ページテーブルエントリーを必要とする要求がキャッシュミスとなる前に、それらページテーブルエントリーで満たされる。このプリポピュレーティングは、典型的には、少なくともディスプレイデータの検索のために必要とされるページテーブルエントリーを含むが、その他のページテーブルエントリーも又グラフィックスＴＬＢにプリポピュレーティングすることができる。更に、ページテーブルエントリーが放逐されるのを防ぐため、幾つかのエントリーをロックし又はその他の仕方で制限することができる。本発明の特定の実施形態では、ディスプレイデータのために必要とされるページテーブルエントリーがロックされ又は制限されるが、他の実施形態では、その他のタイプのデータをロックし又は制限することができる。このような典型的な一つの実施形態を例示するフローチャートを次の図に示している。
【００４０】
[0048]図３は、本発明の一つの実施形態によりシステムメモリに記憶されたディスプレイデータにアクセスする方法を例示するフローチャートである。この図は、他の添付図と同様に、例示の目的で示されており、本発明の可能な実施形態を限定するものでもなく、特許請求の範囲を限定するものでもない。また、この実施形態及びここに示す他の実施形態は、ディスプレイデータにアクセスするのに特によく適したものであるが、その他のタイプのデータアクセスもまた、本発明の実施形態を組み入れることにより改善することができる。
【００４１】
[0049]この方法においては、ＧＰＵ、又はより詳細には、ＧＰＵ上で実行されるドライバ又はリソースマネージャにより、システムメモリから変換情報を検索する必要なしに、ＧＰＵ自体に記憶された変換情報を使用して仮想アドレスを物理アドレスに変換するようにすることができる。これは、グラフィックスＴＬＢに変換エントリーを初期的にプリポピュレーティング又はプリローディングすることによって行われる。それから、ディスプレイデータに関連したアドレスがロックされ、又は、その他の仕方で上書き又は放逐されないようにされる。
【００４２】
[0050]詳述すると、ステップ３１０にて、コンピュータ又は他の電子システムが電源投入され、又は、再起動、パワーリセット又は同様のイベントを受ける。ステップ３２０にて、ＧＰＵに対して作動するドライバの部分であるリソースマネージャが、オペレーティングシステムからシステムメモリスペースを要求する。オペレーティングシステムは、ステップ３３０にてＧＰＵに対してシステムメモリのスペースを割り当てる。
【００４３】
[0051]この実施形態では、ＣＰＵ上で作動するオペレーティングシステムが、フレームバッファ又はシステムメモリにおけるフレームバッファの割り当てを行っているが、本発明の種々な実施形態では、ＣＰＵ又はシステムにおける他のデバイス上で実行されるドライバ又はその他のソフトウエアが、このようなタスクを行うようにすることができる。他の実施形態では、このタスクは、オペレーティングシステムとドライバ又は他のソフトウエアのうちの一つ以上のものとで分担される。ステップ３４０にて、リソースマネージャは、オペレーティングシステムからシステムメモリにおけるスペースに対する物理アドレス情報を受け取る。この情報は、典型的には、少なくとも、システムメモリにおける一つ以上のセクションのベースアドレス及びサイズ又はレンジを含む。
【００４４】
[0052]リソースマネージャは、このとき、ＧＰＵによって使用される仮想アドレスをシステムメモリによって使用される物理アドレスに変換するのに必要とされるページテーブルエントリーの数を制限するように、その情報を圧縮又は他の仕方で配列することができる。例えば、オペレーティングシステムによってＧＰＵから割り当てられるシステムメモリスペースの別々ではあるが隣接するブロックを結合して、単一のベースアドレスをスタートアドレスとして使用し、仮想アドレスをインデックス信号として使用するようにすることができる。これを示す実施形態は、２００５年３月１０日に出願され「MemoryManagement for Virtual Address Space with Translation Units of Variable RangeSize」を発明の名称とする出願係属中の共有の米国特許出願第１１／０７７６６２号に開示されており、この米国特許出願の明細書の記載は、参照することにより本明細書に組み込まれている。また、この実施形態では、このタスクは、ＧＰＵ上で作動するドライバの部分であるリソースマネージャによって行われる。他の実施形態では、この実施形態及び他の実施形態において示されるこのタスク及びここに示す他のタスクは、他のソフトウエア、ファームウエア又はハードウエアによって行われるか、分担される。
【００４５】
[0053]ステップ３５０において、リソース管理プログラムは、変換エントリーをシステムメモリのページテーブルに書き込む。また、リソースマネージャは、グラフィックスＴＬＢにそれらの変換エントリーのうちの少なくとも幾つかをプリロード又はプリポピュレーティングする。ステップ３６０にて、グラフィックスＴＬＢのうちの幾つか又はすべてをロックするか又は他の仕方で放逐されないようにする。本発明の特定の実施形態では、ディスプレイデータのためのアドレスは、ディスプレイ情報のためのアドレスがアドレス変換情報のための付加的なシステムメモリアクセスを必要とせずに与えられるようにするため、上書き又は放逐されないようにされる。
【００４６】
[0054]このようなロックは、本発明の実施形態に係る種々な方法を使用して行うことが出来る。例えば、多数のクライアントがグラフィックスＴＬＢからデータを読み取ることができるような場合には、それらのクライアントのうちの一つ以上のものが、データを制限されたキャッシュロケーションへ書き込むことができず、プールされるか又は制限されていないかの多数のキャッシュラインのうちの一つへそれらデータを書き込まねばならないように制限することができる。より詳細については、２００５年１２月８日に出願され「SharedCache with Client-Specific Replacement Policy」を発明の名称とする出願係属中の共有の米国特許出願第１１／２９８２５６号に開示されており、この米国特許出願の明細書の記載は参照することにより本明細書に組み込まれている。他の実施形態では、グラフィックスＴＬＢへ書き込むことのできる回路に制限をすることができるか、又は、フラグのようなデータをグラフィックスＴＬＢにエントリーと共に記憶させることができる。例えば、幾つかのキャッシュラインの存在をグラフィックＴＬＢへ書き込むことのできる回路から隠すことができる。別の仕方として、フラグがセットされる場合に、その関連したキャッシュラインにおけるデータが上書き又は放逐されないようにすることができる。
【００４７】
[0055]ステップ３７０にて、ディスプレイデータ又は他のデータがシステムメモリから必要とされるとき、ＧＰＵによって使用される仮想アドレスは、グラフィックスＴＬＢにおけるページテーブルエントリーを使用して物理アドレスに変換される。詳述すると、仮想アドレスがグラフィックスＴＬＢへ与えられ、対応する物理アドレスが読み取られる。また、この情報がグラフィックスＴＬＢに記憶されていない場合に、アドレス変換を行う前に、その情報は、システムメモリから要求される必要がある。
【００４８】
[0056]本発明の種々な実施形態では、グラフィックスＴＬＢミスの影響を制限するための他の技法を使用することができる。詳述すると、付加的なステップを採用し、メモリアクセス待ち時間を減少させ、それにより、ディスプレイデータの供給に対するキャッシュミスの影響を減少させるようにする。一つの解決策は、ＰＣＩＥ仕様の部分である仮想チャンネルＶＣ１を利用することである。グラフィックスＴＬＢミスが仮想チャンネルＶＣ１を使用する場合には、他の要求をバイパスして、必要とされるエントリーがより素早く検索されるようにすることができる。しかしながら、従来のチップセットでは、仮想チャンネルＶＣ１へのアクセスが許されない。NVIDIACorporationは、このような解決策を本発明に係る方法によって製品において実施することができるのであるが、他のデバイスとの相互運用性のため現在ではそうすることは望ましくない。しかし、将来においては、このような事情は変わるかもしれない。別の解決策としては、グラフィックスＴＬＢミスから生ずる要求を優先順位付けするか又は標識付けすることがある。例えば、要求に高優先度タグを付してフラグ付けすることができる。この解決策は、前述の解決策と同様に相互運用性の点で問題がある。
【００４９】
[0057]図４Ａから図４Ｃは、本発明の一つの実施形態によるディスプレイデータにアクセスする方法中のコンピュータシステムにおけるコマンド及びデータの転送を例示している。この特定の実施形態では、図１のコンピュータシステムが示されているが、図２に示すシステムのような他のシステムにおけるコマンド及びデータの転送も同様である。
【００５０】
[0058]図４Ａにおいて、システムの電源投入、リセット、再起動又はその他のイベント時に、ＧＰＵは、システムメモリスペースのための要求をオペレーティングシステムへ送る。また、この要求は、ＧＰＵ上で動作するドライバから出され、詳述すると、ドライバのリソースマネージャ部分がこのような要求をなすことができる。しかしながら、他のハードウエア、ファームウエア又はソフトウエアにより、このような要求をなすこともできる。この要求は、システムプラットフォームプロセッサ４１０を通してＧＰＵ４３０から中央処理装置４００へと渡すことができる。
【００５１】
[0059]図４Ｂにおいて、オペレーティングシステムは、フレームバッファ又はグラフィックスメモリ４２２として使用するためシステムメモリのスペースをＧＰＵに対して割り当てる。このフレームバッファ又はグラフィックスメモリ４２２に記憶されるデータは、ディスプレイデータ、即ち、表示のためのピクセル値、テクスチャ、テクスチャ記述子、シェーダープログラム命令及びその他のデータ及びコマンドを含むことができる。
【００５２】
[0060]この実施形態では、システムメモリ４２０における割り当てられたスペースであるフレームバッファ４２２は、連続するものとして示されている。他の実施形態又は例では、その割り当てられたスペースは、連続したものでなくともよく、即ち、それは、別々のもので、複数のセクションに分割されているものでもよい。
【００５３】
[0061]典型的には、システムメモリのセクションの一つ以上のベースアドレス及びレンジを含む情報が、ＧＰＵへ渡される。また、本発明の特定の実施形態では、この情報は、ＧＰＵ４３０上で作動するドライバのリソースマネージャ部分に渡されるが、他のソフトウエア、ファームウエア又はハードウエアを使用することもできる。この情報は、システムプラットフォームプロセッサ４１０を経由してＣＰＵ４００からＧＰＵ４３０へ渡すことができる。
【００５４】
[0062]図４Ｃでは、ＧＰＵは、システムメモリのページテーブルに変換エントリーを書き込む。また、ＧＰＵは、グラフィックスＴＬＢに、これらの変換エントリーのうちの少なくとも幾つかをプリロードする。また、これらのエントリーは、ＧＰＵによって使用される仮想アドレスをシステムメモリ４２０におけるフレームバッファ４２２によって使用される物理アドレスに変換する。
【００５５】
[0063]前述したように、グラフィックスＴＬＢにおけるエントリーのうちの幾つかは、それらが放逐されたり上書きされたりできないように、ロック又はその他の仕方で制限することができる。また、本発明の特定の実施形態では、ピクセル又はディスプレイデータが記憶されているフレームバッファ４２２のロケーションを識別するアドレスを変換するエントリーがロック又はその他の仕方で制限される。
【００５６】
[0064フレームバッファ４２２からデータにアクセスする必要があるときには、ＧＰＵ４３０によって使用される仮想アドレスが、グラフィックスＴＬＢ４３２を使用して物理アドレスに変換される。このとき、これらの要求は、システムプラットフォームプロセッサ４１０へ転送され、システムプラットフォームプロセッサ４１０は、必要とされるデータを読み取り、それをＧＰＵ４３０へ戻す。
【００５７】
[0065]前述の実施形態では、電源投入、又はその他のパワーリセット又は同様の状態に続いて、ＧＰＵは、システムメモリにおけるスペースのための要求をオペレーティングシステムへ送る。本発明の他の実施形態では、ＧＰＵがシステムメモリのスペースを必要とすることが知られており、要求を行う必要はない。この場合においては、電源投入、リセット、再起動又はその他の適当なイベントに続いて、システムＢＩＯＳ、オペレーティングシステム、又は他のソフトウエア、ファームウエア又はハードウエアが、システムメモリのスペースを割り当てることができる。これは、モバイルアプリケーションのような制御環境において、特に適したことである。モバイルアプリケーションにおいては、ＧＰＵが容易に交換又は代用できず、デスクトップアプリケーションにおいてもしばしば同様である。
【００５８】
[0066]ＧＰＵがシステムメモリにおいて使用すべきアドレスを既に知っているようにするか、又は、そのアドレス情報をシステムＢＩＯＳ又はオペレーティングシステムによってＧＰＵへ渡すようにすることができる。どちらの場合にも、メモリスペースは、メモリの連続した部分であってよく、この場合には、単一アドレス、即ち、ベースアドレスのみをＧＰＵに知らせるか又は与えるだけでよい。別の仕方として、メモリスペースは、別々のもの又は連続していないものでもよく、その場合には、ＧＰＵに複数のアドレスを知らせるか又は与える必要がある。典型的には、メモリブロックサイズ又はレンジ情報のような他の情報もまた、ＧＰＵへ渡されるか又は知らされる。
【００５９】
[0067]また、本発明の種々な実施形態では、システムメモリのスペースは、電源投入時にオペレーティングシステムによりシステムによって割り当てられ、ＧＰＵは、後でさらなるメモリのための要求をなすことができる。このような一つの実施形態では、システムＢＩＯＳ及びオペレーティングシステムの両者が、ＧＰＵによる使用のためのシステムメモリのスペースを割り当てることができる。次の図は、システムＢＩＯＳが電源投入時にＧＰＵのためのシステムメモリスペースを割り当てるようにプログラムされるような本発明の一つの実施形態の実施形態を示している。
【００６０】
[0068]図５は、本発明の一つの実施形態によるシステムメモリにおけるディスプレイデータにアクセスする別の方法を例示するフローチャートである。また、本発明の実施形態はディスプレイデータへのアクセスによく適したものであるが、種々な実施形態によれば、このタイプ又は他のタイプのデータへのアクセスもできる。この実施形態において、システムＢＩＯＳは、電源投入時に、システムメモリのスペースをＧＰＵによる使用のために割り当てる必要があることを知る。このスペースは、連続したものでも、連続していないものでもよい。また、この実施形態では、システムＢＩＯＳが、メモリ及びアドレス情報をＧＰＵのドライバのリソースマネージャ又は他の部分へ渡すが、本発明の他の実施形態では、ＧＰＵのドライバのリソースマネージャ又は他の部分が、前もってそのアドレス情報を知っておくことができる。
【００６１】
[0069]詳述すると、ステップ５１０にて、コンピュータ又は他の電子システムが電源投入する。ステップ５２０にて、システムＢＩＯＳ又はオペレーティングシステムの他の適当なソフトウエア、ファームウエア若しくはハードウエアが、ＧＰＵによる使用のためのシステムメモリのスペースを割り当てる。そのメモリスペースが連続したものである場合に、システムＢＩＯＳは、ＧＰＵ上で作動するリソースマネージャ又はドライバにベースアドレスを与える。そのメモリスペースが隣接したものでない場合に、システムＢＩＯＳは、多数のベースアドレスを与える。各ベースアドレスは、典型的には、サイズ又はアドレスレンジ情報のようなメモリブロックサイズ情報を伴う。典型的には、メモリスペースは、カーブアウト、即ち、連続したメモリスペースである。この情報は、典型的には、アドレスレンジ情報を伴う。
【００６２】
[0070]ステップ５４０にて、そのベースアドレス及びレンジがＧＰＵの使用のために記憶される。その後、ステップ５５０にて、仮想アドレスは、仮想アドレスをインデックスとして使用して物理アドレスに変換することができる。例えば、本発明の特定の実施形態では、仮想アドレスは、その仮想アドレスをそのベースアドレスに加えることによって物理アドレスに変換することができる。
【００６３】
[0071]詳述すると、仮想アドレスを物理アドレスに変換すべきときには、レンジチェックが行われる。記憶されている物理ベースアドレスがゼロの仮想アドレスに対応するときには、その仮想アドレスがそのレンジ内にある場合に、仮想アドレスを物理ベースアドレスに加算することにより、仮想アドレスを変換することができる。同様に、記憶されている物理ベースアドレスがＸの仮想アドレスに対応するときには、その仮想アドレスがそのレンジ内にある場合に、仮想アドレスを物理ベースアドレスに加算しＸを減算することによって、仮想アドレスを変換することができる。その仮想アドレスがそのレンジ内にない場合には、前述したように、グラフィックスＴＬＢ又はページテーブルエントリーを使用してその仮想アドレスを変換することができる。
【００６４】
[0072]図６は、本発明の一つの実施形態によるディスプレイデータにアクセスする方法中のコンピュータシステムにおけるコマンド及びデータの転送を例示している。電源投入時に、システムＢＩＯＳは、ＧＰＵ６３０による使用のためシステムメモリ６２０のスペース、即ち、カーブアウト６２２を割り当てる。
【００６５】
[0073]ＧＰＵ６３０は、システムメモリ６２０における割り当てられたスペース又はカーブアウト６２２のためのベースアドレス（又は複数のベースアドレス）を検索し記憶する。このデータは、グラフィックスＴＬＢ６３２に記憶することができ、又は、このデータは、他の場所、例えば、ＧＰＵ６３０のハードウエハレジスタに記憶することができる。このアドレスは、カーブアウト６２２のレンジと共に、例えば、ハードウエアレジスタに記憶される。
【００６６】
[0074]システムメモリ６２０におけるフレームバッファ６２２からデータを読み取るべきときには、ＧＰＵ６３０によって使用される仮想アドレスは、その仮想アドレスをインデックスとして取り扱うことにより、システムメモリによって使用される物理アドレスに変換することができる。また、本発明の特定の実施形態では、カーブアウトアドレスレンジにおける仮想アドレスは、その仮想アドレスをそのベースアドレスに加えることにより物理アドレスに変換される。即ち、そのベースアドレスがゼロの仮想アドレスに対応する場合に、仮想アドレスは、前述したように、それらをベースアドレスに加えることによって物理アドレスに変換することができる。また、そのレンジの外の仮想アドレスは、前述したように、グラフィックスＴＬＢ及びページテーブルを使用して変換することができる。
【００６７】
[0075]図７は、本発明の一つの実施形態に係るグラフィックス処理装置のブロック図である。グラフィックス処理装置７００のこのブロック図によれば、ＰＣＩＥインターフェース７１０、グラフィックスパイプライン７２０、グラフィックスＴＬＢ７３０及びロジック回路７４０が含まれる。ＰＣＩＥインターフェース７１０は、ＰＣＩＥバス７５０を経由してデータの送受信を行う。また、本発明の他の実施形態では、現在開発されている又は開発中の他のタイプのバスを使用することができ、また、将来開発される他のタイプのバスを使用することもできる。グラフィックス処理装置は、典型的には、一つの集積回路上に形成されるが、ある実施形態では、複数の集積回路にてＧＰＵ７００を構成することもできる。
【００６８】
[0076]グラフィックスパイプライン７２０は、ＰＣＩＥインターフェースからデータを受け取り、モニタ又は他のデバイス上に表示するためのデータを与える。グラフィックスＴＬＢ７３０は、グラフィックスパイプライン７２０によって使用される仮想メモリアドレスをシステムメモリによって使用される物理メモリアドレスに変換するのに使用されるページテーブルエントリーを記憶する。ロジック回路７４０は、グラフィックスＴＬＢ７３０を制御し、そこに記憶されるデータのロック又は他の制限のためのチェックを行い、キャッシュからのデータの読取りキャッシュへのデータの書込みを行う。
【００６９】
[0077]図８は、本発明の一つの実施形態によるグラフィックスカードを例示する図である。このグラフィックスカード８００は、グラフィックス処理装置８１０、バスコネクタ８２０及び第２のグラフィックスカードへのコネクタ８３０を含む。バスコネクタ８２０は、ＰＣＩＥスロット、例えば、コンピュータシステムのマザーボードのＰＣＩＥオンスロットに嵌合するように設計されたＰＣＩＥコネクタであってもよい。第２のカードへのコネクタ８３０は、一つ以上の他のグラフィックスカードへのジャンパ又は他の接続に嵌合するように構成することができる。電力供給調整器及びキャパシタのような他のデバイスを含むことができる。このグラフィックスカードにはメモリデバイスは含まれていないことに注意されたい。
【００７０】
[0078]本発明の典型的な実施形態についての前述の記載は、例示的説明の目的でなされたものである。これら記載は、本発明の実施形態のすべてを説明し尽くそうとしているものでもなく、本発明をこれらの記載された詳細な構成に限定しようとしているものでもなく、前述の教示に徴して多くの変形態様がありうるものである。これら実施形態は、当業者が意図した特定の使用に適したような種々な変形態様及び種々な変形態様において本発明を最良に利用できるように本発明の原理及びその実際のアプリケーションを最良に説明するために、選択され記載されたものである。
【図面の簡単な説明】
【００７１】
【図１】本発明の一つの実施形態を組み入れることにより改善されるコンピュータシステムのブロック図である。
【図２】本発明の一つの実施形態を組み入れることにより改善される別のコンピュータシステムのブロック図である。
【図３】本発明の一つの実施形態によるシステムメモリに記憶されたディスプレイデータにアクセスする方法を例示するフローチャートである。
【図４Ａ】本発明の一つの実施形態によるディスプレイデータにアクセスする方法中のコンピュータシステムにおけるコマンド及びデータの転送を例示する。
【図４Ｂ】本発明の一つの実施形態によるディスプレイデータにアクセスする方法中のコンピュータシステムにおけるコマンド及びデータの転送を例示する。
【図４Ｃ】本発明の一つの実施形態によるディスプレイデータにアクセスする方法中のコンピュータシステムにおけるコマンド及びデータの転送を例示する。
【図５】本発明の一つの実施形態によるシステムメモリにおけるディスプレイデータにアクセスする別の方法を例示するフローチャートである。
【図６】本発明の一つの実施形態によるディスプレイデータにアクセスする方法中のコンピュータシステムにおけるコマンド及びデータの転送を例示する。
【図７】本発明の一つの実施形態にしたがうグラフィックス処理装置のブロック図である。
【図８】本発明の一つの実施形態によるグラフィックスカードを示す図である。
【符号の説明】
【００７２】
１００・・・中央処理装置（ＣＰＵ）、１０５・・・ホストバス、１１０・・・システムプラットフォームプロセッサ（ＳＰＰ）、１２０・・・システムメモリ、１２５・・・メモリバス、１３０・・・グラフィックス処理装置（ＧＰＵ）、１３５・・・ＰＣＩＥバス、１４０・・・フレームバッファ、１４５・・・メモリバス、１５０・・・メディア通信プロセッサ（ＭＣＰ）、１５５・・・ハイパートランスポートバス、１６０・・・ネットワーク、１７０・・・内部及び周辺デバイス、２００・・・ＣＰＵ、２０５・・・ホストバス、２１０・・・ＳＰＰ、２２０・・・システムメモリ、２２５・・・メモリバス、２３０・・・ＧＰＵ、２３５・・・ＰＣＩＥバス、２４０・・・フレームバッファ、２４５・・・メモリバス、２５０・・・ＭＣＰ、２５５・・・ハイパートランスポートバス、２６０・・・ネットワーク、２７０・・・内部及び周辺デバイス、４００・・・ＣＰＵ、４０５・・・ホストバス、４１０・・・ＳＰＰ、４２０・・・システムメモリ、４２２・・・フレームバッファ又はページテーブル、４２５・・・メモリバス、４３０・・・ＧＰＵ、４３２・・・グラフィックスＴＬＢ、４３５・・・ＰＣＩＥバス、４５０・・・ＭＣＰ、４６０・・・ネットワーク、４７０・・・内部及び周辺デバイス、６００・・・ＣＰＵ、６０５・・・ホストバス、６１０・・・ＳＰＰ、６２０・・・システムメモリ、６２２・・・カーブアウト、６２５・・・メモリバス、６３０・・・ＧＰＵ、６３２・・・アドレス、レンジ、６３５・・・ＰＣＩＥバス、６５０・・・ＭＣＰ、６６０・・・ネットワーク、６７０・・・内部及び周辺デバイス、７００・・・グラフィックス処理装置、７１０・・・ＰＣＩＥインターフェース、７２０・・・グラフィックスパイプライン、７３０・・・グラフィックスＴＬＢ、７４０・・・ロジック回路、７５０・・・ＰＣＩＥバス、８００・・・グラフィックスカード、８１０・・・グラフィックス処理装置、８２０・・・バスコネクタ、８３０・・・第２のカードへのコネクタ。
【図１】
2008033928.tif 000003
【図２】
2008033928.tif 000004
【図３】
2008033928.tif 000005
【図４Ａ】
2008033928.tif 000006
【図４Ｂ】
2008033928.tif 000007
【図４Ｃ】
2008033928.tif 000008
【図５】
2008033928.tif 000009
【図６】
2008033928.tif 000010
【図７】
2008033928.tif 000011
【図８】
2008033928.tif 000012
【外国語明細書】
2008033928000001.pdf