(57)【特許請求の範囲】
【請求項１】
プロセッサバスと、
前記プロセッサバスに直接的に接続された少なくとも一つのプロセッサと、
前記プロセッサバスに直接的に接続された第１および第２のメモリコントローラと、
前記第１および第２のメモリコントローラにそれぞれ接続された第１および第２のメインメモリと、
を有し、
前記第１のメモリコントローラは、グラフィックアクセラレータが接続される加速グラフィックスポートを有し、
前記第１のメモリコントローラは、
前記加速グラフィックスポートを介して前記グラフィックアクセラレータからメモリリクエストを受信したとき、
前記メモリクエストにおけるアドレスが前記第１のメインメモリのレンジ内であるか否かを解析し、
前記メモリクエストにおけるアドレスが前記第１のメインメモリのレンジ内である場合、前記メモリリクエストを実行し、
該メモリクエストにおけるアドレスが前記第１のメインメモリのレンジ内ではない場合、前記メモリリクエストを前記プロセッサバスを介して前記第２のメモリコントローラに再送する、
マルチメモリコントローラシステム。
【請求項２】
前記第１のメモリコントローラは、仮想アドレスを物理アドレスに変換するための情報を提供する少なくとも一つのページテーブルエントリ（ＰＴＥ）を有するグラフィカルアドレスリマッピングテーブルを含み、
当該仮想アドレスは、第１の部分と第２の部分とを含み、
前記第１の部分は前記グラフィカルアドレスリマッピングテーブルにおける前記ＰＴＥに対応し、
前記第２の部分と前記ＰＴＥによって提供される情報は、前記物理アドレスを提供するために結合される
請求項１に記載のシステム。
【請求項３】
前記第１の部分は、仮想ページ番号フィールドを含む
請求項２に記載のシステム。
【請求項４】
前記第２の部分は、オフセットフィールドを含む
請求項２に記載のシステム。
【請求項５】
前記グラフィカルアドレスリマッピングテーブルは、当該コンピュータシステムのブートアップ期間に、前記第１のメモリコントローラにおける少なくとも一つのコンフィギュレーションレジスタのロードを実行することにより構成され、
前記少なくとも一つのコンフィギュレーションレジスタは、加速グラフィックスポートトランザクションに有効なアドレスレンジを規定する
請求項２に記載のシステム。
【請求項６】
前記少なくとも一つのコンフィギュレーションレジスタは、前記グラフィカルアドレスリマッピングテーブルの開始アドレスを含む
請求項５に記載のシステム。
【請求項７】
前記少なくとも一つのコンフィギュレーションレジスタは、前記グラフィカルアドレスリマッピングテーブルのレンジの最下位アドレスを規定する境界アドレスを含む
請求項５に記載のシステム。
【請求項８】
前記少なくとも一つのコンフィギュレーションレジスタは、前記加速グラフィックスポートトランザクションに有効なメモリ量を規定するレンジレジスタを含む
請求項５に記載のシステム。
【請求項９】
初期化ＢＩＯＳは、前記グラフィカルアドレスリマッピングテーブルにシステムをブートアップする間、前記第１のメモリコントローラにおける前記少なくとも一つのコンフィギュレーションレジスタのロードを実行させる、
請求項５に記載のシステム。
【請求項１０】
オペレーティングシステムは、ＡＰＩを使用する前記グラフィカルアドレスリマッピングテーブルにシステムをブーツアップする間、前記第１のメモリコントローラにおける前記少なくとも一つのコンフィギュレーションレジスタのロードを実行する、
請求項５に記載のシステム。
【請求項１１】
前記少なくとも２つのメインコントローラの一つとメモリは、同じ半導体チップ上にある
請求項１に記載のシステム。
【請求項１２】
グラフィックアクセラレータが接続される加速グラフィックスポートを有する第１のメモリコントローラをプロセッサバスに直接的に接続し、
第１のメインメモリを前記第１のメモリコントローラに直接的に接続し、
前記プロセッサバスに第２のメモリコントーラを直接的に接続し、
第２のメインメモリを前記第２のメモリコントローラに直接的に接続し、
少なくとも一つのコンフィギュレーションレジスタを前記第１のメモリコントローラに接続し、
前記少なくとも一つのコンフィギュレーションレジスタは、加速グラフィックポートトランザクションを有効とする前記第１のメインメモリ内のアドレスレンジを規定し、
前記第１のメモリコントローラは、
前記加速グラフィックスポートを介して前記グラフィックアクセラレータからメモリリクエストを受信したとき、
該メモリクエストにおけるアドレスが前記加速グラフィックスポートトランザクションを有効とする前記第１のメインメモリのアドレスレンジ内か否かを解析し、
前記メモリリクエストにおけるアドレスが、前記加速グラフィックポートトランザクションを有効とする前記第１のメインメモリのアドレスレンジ内である場合は前記メモリリクエストを実行し、
前記メモリリクエストにおけるアドレスが、前記加速グラフィックポートトランザクションを有効とする前記第１のメインメモリのアドレスレンジ内でなければ、前記メモリリクエストを前記プロセッサバスを介して前記第２のメモリコントローラに再送する
マルチメモリコントローラコンピュータを製作し使用する方法。
【請求項１３】
グラフィカルアドレスリマッピングテーブルを、少なくとも第１のメモリマイクロコントローラおよび第２のメモリマイクロコントローラを有するコンピュータシステム上のメモリに記憶し、
第１のメインメモリは前記第１のメモリマイクロコントローラに直接的に接続され、
第２のメインメモリは前記第２のメモリマイクロコントローラに直接的に接続され、
前記第１のメモリマイクロコントローラおよび前記第２のメモリマイクロコントローラの各々は、プロセッサバスに直接的に接続され、
前記第１のメモリマイクロコントローラは、
グラフィックアクセラレータが接続される加速グラフィックスポートを有し、
加速グラフィックスポートトランザクションに有効なアドレスレンジを規定する少なくとも一つのコンフィギュレーションレジスタを有し、
前記加速グラフィックスポートトランザクションに有効なアドレスレンジ内で前記グラフィックスアドレスリマッピングテーブルを記憶し、
前記第１のメモリコントローラは、
前記加速グラフィックスポートを介して前記グラフィックアクセラレータからメモリリクエストを受信したとき、
該メモリクエストにおけるアドレスが前記加速グラフィックスポートトランザクションを有効とする前記第１のメインメモリのアドレスレンジ内かどうかを解析し、
前記加速グラフィックスポートトランザクションを有効とする前記第１のメインメモリのアドレスレンジ内である場合には、前記メモリリクエストを実行し、
前記メモリリクエストにおけるアドレスが前記加速グラフィックポートトランザクションを有効とする前記第１のメインメモリのアドレスレンジ内にない場合には、前記メモリリクエストを前記プロセッサバスを介して前記第２のメモリコントローラに再送する
マルチメモリコントロールシステムを用いる方法。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は、コンピュータシステムに関し、さらに詳細には加速グラフィックスポート（ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ）を含む第２のメモリコントローラを有するコンピュータシステムに関する。
【０００２】
関連技術の説明
図１に示すように、従来のコンピュータシステムアーキテクチャ１００は、プロセッサ１０２、システムロジック１０４、メインメモリ１０６、システムバス１０８、ローカルフレームバッファ１１２および複数の周辺装置１１４と通信するグラフィックスアクセラレータ（ｇｒａｐｈｉｃｓ  ａｃｃｅｌｅｒａｔｏｒ）１１０を含む。プロセッサ１０２は、プロセッサ１０２におけるメモリマネージメントユニット（ＭＭＵ）を通してメインメモリ１０６と通信する。周辺装置１１４とグラフィックスアクセラレータ１１０は、システムバス１０８を通して、メインメモリ１０６とシステムロジック１０４と通信する。標準のシステムバス１０８は、一般にペリフェラルコンポーネントインタフェース（ＰＣＩ）である。本来のパーソナルコンピュータバスであるインダストリスタンダードアーキテクチャ（ＩＳＡ）は、ピークデータ転送レイトは８メガバイト／秒が可能で、オーディオのような低周波数帯の周辺装置に使用されている。これに対して、ＰＣＩは、マルチ周辺コンポーネントおよび１３２メガバイト／秒のピーク帯域のアド−インカードを支援（サポート）している。したがって、ＰＣＩは３０フレーム／秒での全運動（ｆｕｌｌ  ｍｏｔｉｏｎ）ビデオプレイバック、真色高解像度（ｔｒｕｅ  ｃｏｌｏｒ  ｈｉｇｈ−ｒｅｓｏｌｕｔｉｏｎ）グラフィックス、および１００メガバイト／イーサネットローカルエリアネットワークをサポートすることが可能である。
しかしながら、３次元（３Ｄ）グラフィックスアプリケーションのような非常の高帯域グラフィックスは、ＰＣＩバスに過負荷となるおそれがある。
【０００３】
たとえば、３Ｄグラフィックス画像は、２次元画像の処理と、３Ｄオブジェクトの表面上への張り付けあるいはマッピング（写像）により形成される。主なマップの種類には、色およびテクスチャを扱うテクスチャマップ、物質の表面を扱うバンプマップ、反射マップ、屈折マップ、およびクロママップを含む。さらに、景色にリアリズムを付加するために、３Ｄグラフィックスアクセラレータは、しばしば隠線消去および深さ行列用のｚ−バッファを用い、そこでは輝度値（ｉｎｔｅｎｓｉｔｙ  ｖａｌｕｅ）は、距離の関数としてピクセルの明るさを修正するために用いられる。ｚ−バッファメモリは、２次元画像を記憶するために必要なメモリ以上の大きさにする。グラフィックスアクセラレータ１１０は、高価、高性能タイプのメモリであるローカルフレームバッファ１１２から画像データを検索して取り出して処理する。たとえば、１６ビットカラーにおける平均的な３Ｄの景色（３つのポリゴンがオーバーラップ）を７５Ｈｚスクリーンリフレッシュで、３０フレーム／秒で転送するために、３７０メガバイト／秒から８４０メガバイト／秒の見積もられた帯域は、解像度６４０×４８０（ＶＧＡ）から解像度１０２４×７６８（ＸＧＡ）のスクリーン解像度のために必要とされる。したがって、ディスプレイ上の３Ｄグラフィックスのレンダリングは、３Ｄテクスチャマップおよびｚ−バッファデータが存するグラフィックスアクセラレータ１１０とローカルフレームバッファ１１２間で多量の帯域を要する。
【０００４】
加えて、多数のコンピュータシステムは、プロセッサ１０２にメインメモリ１０６における物理的に存するメモリ以上のアドレスを許容する仮想メモリシステムを用いている。仮想メモリシステムは、全てのメモリがコンピュータシステムのメインメモリの一部でかるかのように、非常に多量のメモリのアドレッシングを許容する。仮想メモリシステムは、たとえ実際のメインメモリがアドレス可能な空間よりいくつかの実質的に少量の記憶空間により構成されていても、これを許容する。たとえば、メインメモリは１６メガバイト（１６，７７７，２１６バイト）のランダムアクセスメモリを含むことができ、一方、仮想メモリアドレッシングシステムは、４ギガバイト（４，２９４，９６７，２９６バイト）メモリのアドレッシングを許容する。
【０００５】
仮想メモリシステムは、メモリマネージメントユニット（ＭＭＵ）を用いる能力を提供し、仮想メモリアドレスを、所望の情報が実際に存する対応する物理メモリアドレスに変換する。所望の情報を保持する特定の物理アドレスは、メインメモリ、あるいは、テープドライブやハードディスクのような大容量記憶装置（ｍａｓｓ  ｓｔｏｒａｇｅ）に存することができる。もし、情報の物理アドレスがメインメモリにある場合、その情報は直ちにアクセスされ、利用される。他の状況では、物理アドレスによって参照される情報が大容量記憶装置にある場合、システムはこの情報（通常、ブロックでページという）を、サブシークエント使用のためにメインメモリに転送する。この転送は、新しい情報の部屋を作成するために、メインメモリからの他の情報の大容量記憶装置へのスワッピングを要求できる。もし、そうならば、ＭＭＵは、情報の大容量記憶装置へのスワッピングを制御する。
【０００６】
ページは、仮想メモリシステムにおいてアドレッシング情報に用いられる通常の手段（ｍｅｃｈａｎｉｓｍ）である。ページは番号付けされ、物理および仮想の両アドレスは、しばしばページ番号およびページのオフセットを含む。さらに、物理オフセットと仮想オフセットは、典型的に同じである。仮想および物理アドレス間の変換のために、基本仮想メモリシステムは、ページテーブルと呼ばれ、メインメモリに記憶される一連のルックアップテーブルを生成する。これらのページテーブルは、コンピュータで使用される仮想アドレスページ番号を記憶する。記憶された各仮想アドレスページ番号は、情報を得るためにアクセスされるべき物理アドレスページ番号に対応する。しばしば、ページテーブルは、大きく、それら自身がページ付けられる。メモリマネージメントユニットに提供されるいずれの仮想アドレスのページ番号は、対応する物理アドレスページ番号を検索するのに用いるマッチング仮想アドレスページ番号を求めるため、これらテーブルに記憶されている値と比較される。
【０００７】
しばしばいくつかのレベルのテーブルがあり、比較は、相当量のシステムクロックタイムに用いる。たとえば、メインメモリに記憶されているルックアップテーブルを用いる物理ページアドレスを検索するため、典型的なＭＭＵは、まず他のレベルのテーブルのポインタを記憶するベーステーブルのアドレス用レジスタを見る。ＭＭＵは、ベーステーブルからこのポインタを検索し、それをもう一つのレジスタに置く。そしてＭＭＵは、このポインタを次のレベルのテーブルに行くために用いる。この処理は、得ようとされる情報の物理ページアドレスが取り出されるまで続ける。その物理アドレスが取り出されると、それは仮想アドレスの一部としての供給されるオフセットと結合され、プロセッサはその結果を所望する特定の情報をアクセスするために用いる。ページテーブルにおける典型なルックアップの完結は、各サーチレベルで、１０〜１５クロックサイクルを必要とする。このような性能は、グラフィックスアプリケーション処理においては受け入れられない。
【０００８】
グラフィックスデータの処理を容易にするための一つの解決は、メモリコントローラとグラフィックスアクセラレータ間のポイント−ツ−ポイント接続（ｐｏｉｎｔ  ｔｏ  ｐｏｉｎｔ  ｃｏｎｎｅｃｔｉｏｎ）を持つことを含む。このようなアーキテクチャは、インテル社によってリリースされたリビジョン１．０（１９９６年７月３１日）の加速グラフィックスポートインタフェース仕様により規定（ｄｅｆｉｎｅｄ）される。しかしながら、これらシステムの一つの問題は、ＰＣＩバスが、全てのメモリトランザクションにボトルネックとしてふるまうことである。コンピュータ製造業者は、このボトルネックを取り除くためのシステムが必要である
【０００９】
メモリのアクセスを容易する他の解決策がある。リポースキー（Ｌｉｐｏｖｓｋｉ）によるＵ．Ｓ．Ｐａｔｅｎｔ、Ｎｏ４，０１６，５４５は、マルチメモリコントローラを用いることを教えている。しかしながら、リポースキーはメモリコントローラとグラフィックスアクセラレータ間のポイント−ツ−ポイント接続について説明していない。このような接続は、グラフィックデータの高速処理に必要とされる。
【００１０】
加えて、ジョンソンによるＵ．Ｓ．出願、Ｎｏ４，５０７，７３０は、マルチメモリコントローラを用いることを教えている。しかしながら、ジョンソンは、マルチメモリコントローラを故障許容範囲で用いている。ジョンソンにおいては、一つのメモリコントローラが一旦故障を見つけられると、それはオフラインに切り替えられ、もう一つのメモリコントローラがその場で活性化される。ジョンソンにおけるメモリコントローラは、グラフィックアプリケーション用メモリの効率的な転送は容易ではない。
【００１１】
以上論じた限定的な点からみて、コンピュータ製造業者は、記憶方法、アドレッシング方法、およびメインメモリからのグラフィックスデータの取り出し（検索）方法を改善したアーキテクチャを要する。さらに、システムコストにおいて実質的に増加するものを除いて高帯域グラフィックスアプリケーションに必要なアドレスのために、コンピュータ製造業者は、現システムバス帯域の制約を克服するための技術の改善を要する。
【００１２】
発明の要約
本発明の一つの実施形態は、マルチメモリコントローラシステムを含み、このマルチメモリコントローラシステムは、少なくとも２つのメモリコントローラを有し、この少なくとも２つのメモリコントローラの一つは、加速グラフィックスポートと、加速グラフィックスポートトランザクションに用いられるアドレスの好適な範囲（レンジ）を規定する少なくとも一つのコンフィグレーションレジスタを有する。
【００１３】
また、本発明の他の実施形態は、コンピュータを含み、このコンピュータは、少なくとも一つのプロセッサと、少なくとも２つのメモリコントローラを有し、この少なくとも２つのメモリコントローラの一つは、加速グラフィックスポートと、加速グラフィックスポートトランザクションに用いられるアドレスの好適なレンジを規定する少なくとも一つのコンフィグレーションレジスタを含む。
【００１４】
発明の詳細な記述
以下の詳細な記述は、本発明の特定的な実施形態の記述を提供している。しかしながら、本発明は、クレームによって定義されカバーされる多数の異なる方法によって具体化が可能である。この記述において、同様な部分が同様な数字により至る所が示された図面が参照される。
【００１５】
図２は、本発明の一実施形態のコンピュータシステムを図解するブロック図である。このコンピュータ１５０は、プロセッサあるいはホストバスにより、第１のメモリコントローラ１５４および第２のメモリコントローラ１５５に接続された少なくとも一つのプロセッサ１５２を含む。コンピュータ１５０は、また、それぞれ第１のメモリコントローラ１５４および第２のメモリコントローラ１５５に接続された第１のメインメモリ１５６、および第２のメインメモリ１５７を有する。グラフィックスアクセラレータ１６０は、加速グラフィックスポート（ＡＧＰ；ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ）１６６を通して、ローカルフレームバッファ１６２、および第１のメモリコントローラ１５４と通信する。ＡＧＰ１６６は、バスというより、ＡＧＰコプライアント（ｃｏｍｐｌｉａｎｔ）ターゲットである第１のメモリコントローラ１５４と、ＡＧＰコプライアント（ｃｏｍｐｌｉａｎｔ）マスタであるグラフィックスアクセラレータ１６０間のポイント−ツ−ポイント接続である。ＡＧＰ１６６のポイント−ツ−ポイント接続は、クロックエッジの立ち上がりおよび立ち下がりにおけるデータ転送を有効にし、データの完全な状態を活用し、ＡＧＰプロトコルを簡単にし、バス調停のオーバーヘッドを取り除く。ＡＧＰは、メインメモリ１５６にリードおよびライトアクセスのためにパインラインを可能にするプロトコルエンハンスメントを提供する。第１のメモリコントローラ１５４および第２のメモリコントローラ１５５は、また、ＰＣＩバス１５８からのメモリリクエストを受け付ける。
【００１６】
上述したように、図２の実施形態は、グラフィックスアクセラレータ１６０の第１のメインメモリ１５６とローカルフレームバッファ１６２の両者へのアクセスを可能にする。グラフィックスアクセラレータ１６０から見ると、メインメモリ１５６とローカルフレームバッファ１６２は、論理的に等価である。したがって、システムの性能を効率的に利用するために、グラフィックスデータは第１のメインメモリ１５６あるいはローカルフレームバッファ１６２のいずれかに記憶される。グラフィックスデータが使用に先立ちロングシーケンシャルブロック転送によって、メインメモリ１５６からローカルフレームバッファ１６２にコピーするダイレクトメモリアクセス（ＤＭＡ）モデルと対比して、本発明のグラフィッスアクセラレータ１６０は、それに存する（”実行（ｅｘｃｅｃｕｔｅ）”モデル）メモリから直接的にグラフィックスデータを使用あるいは”実行（ｅｘｃｅｃｕｔｅ）”することができる。
【００１７】
図３は、本発明のコンピュータシステム（図２）のアドレス空間１８０の一実施形態を図解している。たとえば、３２ビットプロセッサ１５２（図２）は、２３２（あるいは４，２９４，９６７，２９６）の異なるアドレスを含むアドレス空間１８０を有する。コンピュータシステム１５０（図２）は、典型的には、異なるデバイスおよびシステムエージェントのためにアドレス空間１８０の異なる範囲（レンジ）を用いる。一実施形態において、アドレス空間１８０は、グラフィックスアドレスリマッピングテーブル（ＧＡＲＴ）レンジ１８４およびメインメモリレンジ１８６を含む。
【００１８】
第１のメモリコントローラ１５４は、ＡＧＰトランザクションの有効レンジを規定するため、レジスタセットを提供する。ベースレジスタ１６５は、ＡＧＰアドレスのベースアドレスを規定するために用いられる。レンジレジスタ１６６は、ＡＧＰトランザクションに専用的に用いられるベースアドレスに続くメモリ量を確立するために用いられる。また、下位および上位アドレスレジスタはＡＧＰアドレスレンジを規定するために用いられる。これらの値が提供されるオペレーティングシステムは、このメモリレンジ内でＧＡＲＴページの割り当てを試みる。先行技術のシステムに対比して、このオペレーティングシステムは、ＧＡＲＴレンジ１８４内のアドレス立ち下がりの第１メモリコントローラ１５４への第１リマップを試みる。
【００１９】
それぞれ第１および第２のメインメモリ１５６，１５７、並びに２つのメモリコントローラ１５４，１５５を用いることによって、単一のシステムメモリおよび一つのメモリコントローラを用いる先行技術のシステムより、より高速なトランザクション処理が実現される。特に、２つのメモリトランザクションは、一方のトランザクションは第１のメモリコントローラ１５４を用いて実行し、他方のトランザクションは第２のメモリコントローラ１５５により実行することにより、同時に実行することができる。
【００２０】
グラフィックスデータは、典型的には、変更されあるいはライトされる場合を除いて何度もリードされる。リードおよびライトの遅延は、グラフィックスデータを第１のメモリコントローラ１５４に記憶し、一方、他のデータを第２のメモリコントローラ１５５に記憶することにより低減される。
【００２１】
再び図３を参照すると、コンピュータ１５０は、物理アドレス０〜０ｘ０３ＦＦＦＦＦＦを包含する６４メガバイトのメインメモリ２１８を有する。このメモリの３２メガバイトは第１のメモリコントローラ１５４にアサインされ、３２メガバイトは第２のメモリ１５５にアサインされる。第１のメモリコントローラ１５４により提供されるベースレジスタ１６５およびレンジレジスタ１６６を用いることにより、オペレーティングシステムは、物理アドレス０ｘ００００００００〜０ｘ０１ＦＦＦＦＦＦにより参照される第１のメインメモリ１５６の下位３２メガバイトを占める関連するデータをＡＧＰにセットする。たとえば、ＧＡＲＴレンジ１８４が、２５６メガバイトの仮想アドレス境界０ｘ１０００００００で始まる場合、本発明は、ＧＡＲＴレンジ１８４内の仮想アドレスの、０ｘ００００００００〜０ｘ０１ＦＦＦＦＦＦレンジにおける物理アドレスに対応する第１のメインメモリ１５６の下位３２メガバイトにおける物理アドレスへの変換を可能にする。
【００２２】
グラフィックスアクセラレータ１６０からリクエストを受けると、第１のメモリコントローラ１５４は、リクエストにおけるアドレスが第１のメインメモリ１５６のアドレスと同一であるかを解析する。もし、そのアドレスが第１のメインメモリ１５６内でない場合には、第１のメモリコントローラ１５４は、そのリクエストを第２のメモリコントローラ１５５に再送する。ＧＡＲＴテーブルを持ち、ＡＧＰを有する第１のメモリコントローラ１５４に配置されるメモリにより参照されることにより、他のメモリコントローラ１５５へのメモリリクエストの再送は、最小限度で行われる。
【００２３】
一実施形態において、ハードウェアアブストラクションレイヤ（ＨＡＬ）が、オペレーティングシステムに第１のメモリコントローラ１５４にＧＡＲＴテーブルおよびテクスチャメモリを置くように指示する。ＨＡＬは、小さいレイヤのソフトウェアで、このソフトウェアはプロセッサ１５２の一部ではないどのハードウェアのアブストラクトモデルを伴うコンピュータシステムの残り部分に提供する。ＨＡＬは、システムの残り部分からのプラットフォームの特定のディテールを隠し、異なるベンダ（ｖｅｎｄｏｒｓ）からプラットフォームのためのオペレーティングシステムの異なるバージョンを持つ必要性を取り除く。
【００２４】
図４を参照して、本発明の第２の実施形態が図解される。この第２の実施形態は、グラフィックスアクセラレータ１７０により使用するための加速グラフィックスポート１９２を持つ第２のメモリコントローラ１９０を有する。各メモリコントローラ１５４、１９０は、加速グラフィックスポートトランザクションのためにオペレーティングシステムによって使用されるアドレスレンジを規定するレジスタセットを提供する。本発明の第３の実施形態においては、単一チップが複数のメモリコントローラを含んでおり、各メモリコントローラは、ＡＧＰとＡＧＰトランザクションのために使用されるアドレスのレンジを確認するコンフィギュレーションレジスタのセットを有している。
【００２５】
図５は、本発明の一実施形態において、仮想アドレス２００から物理アドレス２０２への変換を図解している。前述したように、一実施形態において、オペレーティングシステムは、ＧＡＲＴレンジ１８４（図３）内で立ち下がる仮想アドレスの、第１のメインメモリ１５６（図３）への割り当てを試みる。
【００２６】
仮想アドレス２００は、仮想ページ番号フィールド２０４、およびオフセットフィールド２０６を含む。仮想ページ番号フィールド２０４の内容の変換（ｔｒａｎｓｌａｔｉｏｎ）は、ＧＡＲＴテーブル２１０における複数のＧＡＲＴ  ＰＴＥ中の仮想ページ番号フィールドに対応するページテーブルエントリ（ＰＴＥ）を求めることにより発生する。物理アドレストランスレーションを持つ適当なＰＴＥを確認するため、ＧＡＲＴベースアドレス２１２は、ステート２１３でＰＴＥアドレス２１４を得るために、仮想ページ番号フィールド２０４の内容と結合される。ＰＴＥアドレス２１４によって参照される内容は、仮想ページ番号２０４に対応する物理ページ番号２１６を提供する。物理ページ番号２１６は、ステート２１７で物理アドレス２０２を形成するために、オフセットフィールド２０６の内容と結合される。物理アドレス２０２は、所望の情報を有する第１のメインメモリ１５６における場所を順次に参照する。
【００２７】
ＧＡＲＴテーブル２１０は、プロセッサ１５２（図２）により使用されるメモリページサイズに対応するサイズを有する複数のＰＴＥ２０８を含むことができる。たとえば、インテル（登録商標）ペンティアム（登録商標）あるいはペンティアム（登録商標）プロプロセッサは、４Ｋサイズのメモリページで動作する。したがって、これらプロセッサに使用するために適用されるＧＡＲＴテーブル２１０は、４Ｋページを参照するＰＴＥを含むことができる。一実施形態においては、仮想ページ番号フィールド２０４は、３２ビット仮想アドレス２００の上位２０ビットを含み、オフセットフィールド２０６は３２ビット仮想アドレス２００の下位１２ビットを含む。したがって、各ページは、２１２＝４０９６（４Ｋ）アドレスを含み、下位１２ビットのオフセットフィールド２０６は、上位２０ビットの仮想ページ番号フィールド２０４によって参照されるページ内で所望の情報を配置する。
【００２８】
図６は、ＧＡＲＴＰＴＥ２００のとり得る一つのフォーマットを図解している。ＧＡＲＴＰＴＥ２００は、フィーチャー（ｆｅａｔｕｒｅ）ビットフィールド２２２、および物理（フィジカル）ページトランスレーション（ＰＰＴ）フィールド２２４を含む。ハード的な回路がページテーブルフォーマットを規定する先行技術のシステムに対比して、ＧＡＲＴテーブル２１０（図５）は、適合長で最適化が可能（ｃｏｎｆｉｇｕｒａｂｌｅ  ｌｅｎｇｔｈ  ｅｎａｂｌｉｎｇ  ｏｐｔｉｍｉｚａｔｉｏｎ）なテーブルサイズで、ソフトウェアによって規定されるフィーチャービットを使用するＰＴＥを含む。ＰＰＴフィールド２２４は、物理アドレス２０２（図５）を生成するためのＰＰＴサイズビットを含む。ＰＰＴサイズは、変換可能なアドレスの数を規定する。
【００２９】
一実施形態において、初期化ＢＩＯＳは、ＧＡＲＴテーブル２１０（図５）にシステムをブートアップ（ｂｏｏｔ  ｕｐ）する間、第１のメモリコントローラ１５４（図２）におけるコンフィギュレーションレジスタのロードを実行させる。他の実施形態においては、オペレーティングシステムが、ＡＰＩを使用するＧＡＲＴテーブル１５４（図５）に、システムをブートアップ（ｂｏｏｔ  ｕｐ）する間、第１のメモリコントローラ１５４（図３）におけるコンフィギュレーションレジスタのロードを実行させる。
【００３０】
先に注記したように、ＧＡＲＴテーブル２１０は、各々が物理ページトランスレーション情報２２４およびソフトウェアフィーチャービット２２２を有するマルチＰＴＥを含む。ＧＡＲＴテーブル２１０は、２メガバイト物理アドレス０ｘ００２０００００のようなメインメモリ２１８におけるいずれかの物理アドレスに配置される。オペレーティングシステムは、空間が有効ならば、ＧＡＲＴテーブル２１０を、第１のメモリコントローラ１５４におけるレジスタ１６５，１６６によって提供されるメモリレンジに配置することを試みる。ＧＡＲＴテーブル２１０をこのメモリレンジに置くことによって、旧システムと比較して、ＰＣＩバス１５８を通って第２のメモリコントローラ１６６へ伝送すべきグラフィックスアクセラレータ１６０からのメモリリクエストがより少なくなる。４Ｋメモリページサイズおよび８バイト長のＧＡＲＴＰＴＥ２２０を有するシステムには、ＧＡＲＴのテーブル２１０は以下にように構成される。
Ｐｈｙベース    ：＝０ｘ００００００００・・リマップ物理アドレスの開始
Ｐｈｙサイズ    ：＝３２メガバイト・・リマップ物理アドレスのサイズ
ＡＧＰアパーチャ：＝０ｘ１０００００００・・ＧＡＲＴレンジの開始アドレス
ＧＡＲＴベース  ：＝０ｘ００２０００００・・ＧＡＲＴテーブル開始アドレス
２ＰＴＥサイズ  ：＝８バイト・・各ＧＡＲＴページテーブルエントリのサイズ
ページサイズ    ＊＝４キロバイト  ・・メモリページサイズ
ＧＡＲＴテーブル２１０におけるＰＴＥの数を決定するため、データに関連するＡＧＰに割り当てられるメインメモリ２１８における物理アドレス空間のサイズ、上位３３２メガバイト＝３３５５４４３２バイトは、８１９２のＰＴＥを得るために、メモリページサイズ４Ｋ＝４０９６バイトにより分割される。
【００３１】
各ＰＴＥは８バイトであることかから、ＧＡＲＴテーブルは、６５，５３６バイト（８１９２×８）からなる。なお、８１９２＝２１３＝２ＰＴＥサイズであり、したがってＰＴＥサイズ＝１３である。ベースレジスタおよびレンジレジスタにより供給される値を用いることにより、オペレーティングシステムは、ＧＡＲＴテーブル２１０をセットアップするため、以下の値をコンフィグレーションレジスタにプログラムする。
Ｐｈｙベース    ：＝０ｘ００００００００・・リマップ物理アドレスの開始
ＡＧＰアパーチャ：＝０ｘ１０００００００・・ＧＡＲＴレンジの開始アドレス
ＧＡＲＴベース  ：＝０ｘ００００００００・・ＧＡＲＴテーブルの開始アドレス
ＰＴＥサイズ    ：＝３  ・・２ＰＴＥサイズ＝ＰＴＥのバイトにおけるサイズベースレジスタ１６５：＝０ｘ００００００００・・第１のメモリコントローラ１５４におけるメモリの開始ポイント
レンジレジスタ１６５：＝０ｘ０１ＦＦＦＦＦＦ・・ＡＧＰトランザクションに有効なメモリのレンジ
なお、オペレーティングシステムは、第１のメモリコントローラ１５４に配置されたベースレジスタ１６５およびレンジレジスタ１６６により示唆されるアドレスのレンジにおいて、ＧＡＲＴベースおよびＰｈｙベースをセットアップしている。
【００３２】
図７は、トランスレーションルックアサイドバッファ（ＴＬＢ：translationlookaside buffer）２４０を用いる仮想アドレス２００の物理アドレス２０２（図５ａ）への変換を図解している。前のように、仮想アドレス２００は、仮想ページ番号フィールド２０４およびオフセットフィールド２０６を含む。仮想ページ番号フィールド２０４の変換（ｔｒａｎｓｌａｔｉｏｎ）は、仮想ページ番号フィールド２０４の内容に対応するＧＡＲＴテーブル２１０のＰＴＥを求めることにより発生する。ＧＡＲＴベースアドレス２１２は、ステート２１３でＰＴＥアドレス２１４を得るために、仮想ページ番号フィールド２０４の内容と結合される。ＰＴＥアドレス２１４は、仮想ページ番号２０４に対応する物理ページ番号２１６を順次に提供する。現時点において、ＴＬＢエントリ２４２は、仮想ページフィールド２４６、それに対応する物理ページフィールド２４４、ＴＬＢエントリ２４２の相対的エイジを決定するためのリーストリーセントリユーズド（ＬＲＵ：least recently used ）カウンタ２５０、およびＴＬＢ２４０が有効な情報を持っているときに決定するためのステータスインディケータ２４８を持つことで形成される。ＴＬＢエントリ２４２は複数のＴＬＢエントリ２５２を持つＴＬＢ２４０に記憶される。一実施形態において、全ＧＡＲＴレンジ１８４（図３）において変換可能なアドレスの全てをカバーするために、十分な量のＴＬＢエントリ２５２がある。この実施形態においては、第１のメモリコントローラ１５４（図２）は、ＴＬＢ２４０を補うために、レジスタブロックを含む。他の実施形態においては、第１のメモリコントローラ１５４（図２）は、ＴＬＢ２４０を補うために、キャッシュＳＲＡＭのような高速メモリ部を含む。
【００３３】
本発明は、技術および代替えに存在するいくつかの制約を有益的に克服する。たとえば、ＡＧＰ接続は、１秒に５００メガバイト以上のデータ転送をサポートできる。ＡＧＰトランザクションに有効なメモリセットを定義することにより、オペレーティングシステムは、加速グラフィックスポートを備えたメモリコントローラ上のグラフィックデータを維持することによって、システム性能を最適化できる。加速グラフィックスポートを備えたメモリコントローラは、メモリトランザクションを、他のメモリコントローラによって処理されているトランザクションと共に処理する。
【００３４】
加えて、本発明は、現システムバスデザインの帯域制限を除いて、比較的に安価なメインメモリから、グラフィックスデータの記憶、アドレッシング、および検索を可能できる。本発明の代替えの実施形態において、複数のメモリコントローラは、同じ半導体チップ上に存することが可能であることに注意すべきである。
【００３５】
従来のコンピュータシステム１００（図１）と対比して、本発明の複数の実施形態は、テクスチャデータのような３Ｄグラフィックスデータの部分のローカルフレームバッファからサイズ、およびフレームバッファのコストを低減するための専用的なメモリコントローラに接続されたメインメモリへのリロケーションを可能にし、システム性能を改善することができる。たとえば、テスクチャデータは一般にリードされるのみであることから、それをメインメモリに移動することは、一貫性あるいはデータの矛盾の問題を引き起こさない。
【００３６】
さらに、３Ｄ画像の複雑さおよび質が向上していることから、３Ｄグラフィックスデータをローカルフレームバッファに置くことは、コンピュータシステムコストを増加させている。３Ｄグラフィックスデータをメインメモリを持つメモリコントローラに移動することにより、本発明のアーキテクチャは、ローカルフレームバッファメモリ１１２を増大させるより、第２のコントローラ１５４を備えたメインメモリ１５６を増加させる方が安価であることから、トータルのシステムコストが減少する。
【００３７】
本発明は、その精神あるいは本質的な特徴から逸脱しない範囲で、他の特定の形態で具体化できる。記述した実施形態は、図解および図解しないすべての点において考慮されるべきであり、本発明の範囲は、したがって、前述の記述によってよりむしろ付加したクレームによって示めされる。クレームの等価的意味および範囲内のすべての変更は、それらの範囲に包含される。
【図面の簡単な説明】
【図１】  図１は、先行技術であるコンピュータシステムの構成を図解するブロック図である。
【図２】  図２は、本発明のコンピュータシステムの一実施形態を図解するブロック図である。
【図３】  図３は、本発明の一実施形態のプロセッサのアドレス空間を図解するブロック図である。
【図４】  図４は、本発明の第２の実施形態を図解するブロック図である。
【図５】  図５は、本発明の一実施形態の仮想アドレスの物理アドレスへの置き換えを図解するブロック図である。
【図６】図６は、本発明の一実施形態のグラフィックアドレスリマッピングテーブルのページテーブルエントリの図である。
【図７】図７は、本発明の一実施形態のトランスレーションルックアサイドバッファエントリの生成を図解するブロック図である。
【図１】
0004022369.tif 000002
【図２】
0004022369.tif 000003
【図３】
0004022369.tif 000004
【図４】
0004022369.tif 000005
【図５】
0004022369.tif 000006
【図６】
0004022369.tif 000007
【図７】
0004022369.tif 000008