JP4022369B2 - マルチメモリコントローラコンピュータシステム用加速グラフィックスポート - Google Patents
マルチメモリコントローラコンピュータシステム用加速グラフィックスポート Download PDFInfo
- Publication number
- JP4022369B2 JP4022369B2 JP2000526869A JP2000526869A JP4022369B2 JP 4022369 B2 JP4022369 B2 JP 4022369B2 JP 2000526869 A JP2000526869 A JP 2000526869A JP 2000526869 A JP2000526869 A JP 2000526869A JP 4022369 B2 JP4022369 B2 JP 4022369B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- memory controller
- graphics port
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/001—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
- G09G3/003—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to produce spatial visual effects
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
Description
発明の分野
本発明は、コンピュータシステムに関し、さらに詳細には加速グラフィックスポート(accelerated graphics port)を含む第2のメモリコントローラを有するコンピュータシステムに関する。
【0002】
関連技術の説明
図1に示すように、従来のコンピュータシステムアーキテクチャ100は、プロセッサ102、システムロジック104、メインメモリ106、システムバス108、ローカルフレームバッファ112および複数の周辺装置114と通信するグラフィックスアクセラレータ(graphics accelerator)110を含む。プロセッサ102は、プロセッサ102におけるメモリマネージメントユニット(MMU)を通してメインメモリ106と通信する。周辺装置114とグラフィックスアクセラレータ110は、システムバス108を通して、メインメモリ106とシステムロジック104と通信する。標準のシステムバス108は、一般にペリフェラルコンポーネントインタフェース(PCI)である。本来のパーソナルコンピュータバスであるインダストリスタンダードアーキテクチャ(ISA)は、ピークデータ転送レイトは8メガバイト/秒が可能で、オーディオのような低周波数帯の周辺装置に使用されている。これに対して、PCIは、マルチ周辺コンポーネントおよび132メガバイト/秒のピーク帯域のアド−インカードを支援(サポート)している。したがって、PCIは30フレーム/秒での全運動(full motion)ビデオプレイバック、真色高解像度(true color high−resolution)グラフィックス、および100メガバイト/イーサネットローカルエリアネットワークをサポートすることが可能である。
しかしながら、3次元(3D)グラフィックスアプリケーションのような非常の高帯域グラフィックスは、PCIバスに過負荷となるおそれがある。
【0003】
たとえば、3Dグラフィックス画像は、2次元画像の処理と、3Dオブジェクトの表面上への張り付けあるいはマッピング(写像)により形成される。主なマップの種類には、色およびテクスチャを扱うテクスチャマップ、物質の表面を扱うバンプマップ、反射マップ、屈折マップ、およびクロママップを含む。さらに、景色にリアリズムを付加するために、3Dグラフィックスアクセラレータは、しばしば隠線消去および深さ行列用のz−バッファを用い、そこでは輝度値(intensity value)は、距離の関数としてピクセルの明るさを修正するために用いられる。z−バッファメモリは、2次元画像を記憶するために必要なメモリ以上の大きさにする。グラフィックスアクセラレータ110は、高価、高性能タイプのメモリであるローカルフレームバッファ112から画像データを検索して取り出して処理する。たとえば、16ビットカラーにおける平均的な3Dの景色(3つのポリゴンがオーバーラップ)を75Hzスクリーンリフレッシュで、30フレーム/秒で転送するために、370メガバイト/秒から840メガバイト/秒の見積もられた帯域は、解像度640×480(VGA)から解像度1024×768(XGA)のスクリーン解像度のために必要とされる。したがって、ディスプレイ上の3Dグラフィックスのレンダリングは、3Dテクスチャマップおよびz−バッファデータが存するグラフィックスアクセラレータ110とローカルフレームバッファ112間で多量の帯域を要する。
【0004】
加えて、多数のコンピュータシステムは、プロセッサ102にメインメモリ106における物理的に存するメモリ以上のアドレスを許容する仮想メモリシステムを用いている。仮想メモリシステムは、全てのメモリがコンピュータシステムのメインメモリの一部でかるかのように、非常に多量のメモリのアドレッシングを許容する。仮想メモリシステムは、たとえ実際のメインメモリがアドレス可能な空間よりいくつかの実質的に少量の記憶空間により構成されていても、これを許容する。たとえば、メインメモリは16メガバイト(16,777,216バイト)のランダムアクセスメモリを含むことができ、一方、仮想メモリアドレッシングシステムは、4ギガバイト(4,294,967,296バイト)メモリのアドレッシングを許容する。
【0005】
仮想メモリシステムは、メモリマネージメントユニット(MMU)を用いる能力を提供し、仮想メモリアドレスを、所望の情報が実際に存する対応する物理メモリアドレスに変換する。所望の情報を保持する特定の物理アドレスは、メインメモリ、あるいは、テープドライブやハードディスクのような大容量記憶装置(mass storage)に存することができる。もし、情報の物理アドレスがメインメモリにある場合、その情報は直ちにアクセスされ、利用される。他の状況では、物理アドレスによって参照される情報が大容量記憶装置にある場合、システムはこの情報(通常、ブロックでページという)を、サブシークエント使用のためにメインメモリに転送する。この転送は、新しい情報の部屋を作成するために、メインメモリからの他の情報の大容量記憶装置へのスワッピングを要求できる。もし、そうならば、MMUは、情報の大容量記憶装置へのスワッピングを制御する。
【0006】
ページは、仮想メモリシステムにおいてアドレッシング情報に用いられる通常の手段(mechanism)である。ページは番号付けされ、物理および仮想の両アドレスは、しばしばページ番号およびページのオフセットを含む。さらに、物理オフセットと仮想オフセットは、典型的に同じである。仮想および物理アドレス間の変換のために、基本仮想メモリシステムは、ページテーブルと呼ばれ、メインメモリに記憶される一連のルックアップテーブルを生成する。これらのページテーブルは、コンピュータで使用される仮想アドレスページ番号を記憶する。記憶された各仮想アドレスページ番号は、情報を得るためにアクセスされるべき物理アドレスページ番号に対応する。しばしば、ページテーブルは、大きく、それら自身がページ付けられる。メモリマネージメントユニットに提供されるいずれの仮想アドレスのページ番号は、対応する物理アドレスページ番号を検索するのに用いるマッチング仮想アドレスページ番号を求めるため、これらテーブルに記憶されている値と比較される。
【0007】
しばしばいくつかのレベルのテーブルがあり、比較は、相当量のシステムクロックタイムに用いる。たとえば、メインメモリに記憶されているルックアップテーブルを用いる物理ページアドレスを検索するため、典型的なMMUは、まず他のレベルのテーブルのポインタを記憶するベーステーブルのアドレス用レジスタを見る。MMUは、ベーステーブルからこのポインタを検索し、それをもう一つのレジスタに置く。そしてMMUは、このポインタを次のレベルのテーブルに行くために用いる。この処理は、得ようとされる情報の物理ページアドレスが取り出されるまで続ける。その物理アドレスが取り出されると、それは仮想アドレスの一部としての供給されるオフセットと結合され、プロセッサはその結果を所望する特定の情報をアクセスするために用いる。ページテーブルにおける典型なルックアップの完結は、各サーチレベルで、10〜15クロックサイクルを必要とする。このような性能は、グラフィックスアプリケーション処理においては受け入れられない。
【0008】
グラフィックスデータの処理を容易にするための一つの解決は、メモリコントローラとグラフィックスアクセラレータ間のポイント−ツ−ポイント接続(point to point connection)を持つことを含む。このようなアーキテクチャは、インテル社によってリリースされたリビジョン1.0(1996年7月31日)の加速グラフィックスポートインタフェース仕様により規定(defined)される。しかしながら、これらシステムの一つの問題は、PCIバスが、全てのメモリトランザクションにボトルネックとしてふるまうことである。コンピュータ製造業者は、このボトルネックを取り除くためのシステムが必要である
【0009】
メモリのアクセスを容易する他の解決策がある。リポースキー(Lipovski)によるU.S.Patent、No4,016,545は、マルチメモリコントローラを用いることを教えている。しかしながら、リポースキーはメモリコントローラとグラフィックスアクセラレータ間のポイント−ツ−ポイント接続について説明していない。このような接続は、グラフィックデータの高速処理に必要とされる。
【0010】
加えて、ジョンソンによるU.S.出願、No4,507,730は、マルチメモリコントローラを用いることを教えている。しかしながら、ジョンソンは、マルチメモリコントローラを故障許容範囲で用いている。ジョンソンにおいては、一つのメモリコントローラが一旦故障を見つけられると、それはオフラインに切り替えられ、もう一つのメモリコントローラがその場で活性化される。ジョンソンにおけるメモリコントローラは、グラフィックアプリケーション用メモリの効率的な転送は容易ではない。
【0011】
以上論じた限定的な点からみて、コンピュータ製造業者は、記憶方法、アドレッシング方法、およびメインメモリからのグラフィックスデータの取り出し(検索)方法を改善したアーキテクチャを要する。さらに、システムコストにおいて実質的に増加するものを除いて高帯域グラフィックスアプリケーションに必要なアドレスのために、コンピュータ製造業者は、現システムバス帯域の制約を克服するための技術の改善を要する。
【0012】
発明の要約
本発明の一つの実施形態は、マルチメモリコントローラシステムを含み、このマルチメモリコントローラシステムは、少なくとも2つのメモリコントローラを有し、この少なくとも2つのメモリコントローラの一つは、加速グラフィックスポートと、加速グラフィックスポートトランザクションに用いられるアドレスの好適な範囲(レンジ)を規定する少なくとも一つのコンフィグレーションレジスタを有する。
【0013】
また、本発明の他の実施形態は、コンピュータを含み、このコンピュータは、少なくとも一つのプロセッサと、少なくとも2つのメモリコントローラを有し、この少なくとも2つのメモリコントローラの一つは、加速グラフィックスポートと、加速グラフィックスポートトランザクションに用いられるアドレスの好適なレンジを規定する少なくとも一つのコンフィグレーションレジスタを含む。
【0014】
発明の詳細な記述
以下の詳細な記述は、本発明の特定的な実施形態の記述を提供している。しかしながら、本発明は、クレームによって定義されカバーされる多数の異なる方法によって具体化が可能である。この記述において、同様な部分が同様な数字により至る所が示された図面が参照される。
【0015】
図2は、本発明の一実施形態のコンピュータシステムを図解するブロック図である。このコンピュータ150は、プロセッサあるいはホストバスにより、第1のメモリコントローラ154および第2のメモリコントローラ155に接続された少なくとも一つのプロセッサ152を含む。コンピュータ150は、また、それぞれ第1のメモリコントローラ154および第2のメモリコントローラ155に接続された第1のメインメモリ156、および第2のメインメモリ157を有する。グラフィックスアクセラレータ160は、加速グラフィックスポート(AGP;accelerated graphics port)166を通して、ローカルフレームバッファ162、および第1のメモリコントローラ154と通信する。AGP166は、バスというより、AGPコプライアント(compliant)ターゲットである第1のメモリコントローラ154と、AGPコプライアント(compliant)マスタであるグラフィックスアクセラレータ160間のポイント−ツ−ポイント接続である。AGP166のポイント−ツ−ポイント接続は、クロックエッジの立ち上がりおよび立ち下がりにおけるデータ転送を有効にし、データの完全な状態を活用し、AGPプロトコルを簡単にし、バス調停のオーバーヘッドを取り除く。AGPは、メインメモリ156にリードおよびライトアクセスのためにパインラインを可能にするプロトコルエンハンスメントを提供する。第1のメモリコントローラ154および第2のメモリコントローラ155は、また、PCIバス158からのメモリリクエストを受け付ける。
【0016】
上述したように、図2の実施形態は、グラフィックスアクセラレータ160の第1のメインメモリ156とローカルフレームバッファ162の両者へのアクセスを可能にする。グラフィックスアクセラレータ160から見ると、メインメモリ156とローカルフレームバッファ162は、論理的に等価である。したがって、システムの性能を効率的に利用するために、グラフィックスデータは第1のメインメモリ156あるいはローカルフレームバッファ162のいずれかに記憶される。グラフィックスデータが使用に先立ちロングシーケンシャルブロック転送によって、メインメモリ156からローカルフレームバッファ162にコピーするダイレクトメモリアクセス(DMA)モデルと対比して、本発明のグラフィッスアクセラレータ160は、それに存する(”実行(excecute)”モデル)メモリから直接的にグラフィックスデータを使用あるいは”実行(excecute)”することができる。
【0017】
図3は、本発明のコンピュータシステム(図2)のアドレス空間180の一実施形態を図解している。たとえば、32ビットプロセッサ152(図2)は、232(あるいは4,294,967,296)の異なるアドレスを含むアドレス空間180を有する。コンピュータシステム150(図2)は、典型的には、異なるデバイスおよびシステムエージェントのためにアドレス空間180の異なる範囲(レンジ)を用いる。一実施形態において、アドレス空間180は、グラフィックスアドレスリマッピングテーブル(GART)レンジ184およびメインメモリレンジ186を含む。
【0018】
第1のメモリコントローラ154は、AGPトランザクションの有効レンジを規定するため、レジスタセットを提供する。ベースレジスタ165は、AGPアドレスのベースアドレスを規定するために用いられる。レンジレジスタ166は、AGPトランザクションに専用的に用いられるベースアドレスに続くメモリ量を確立するために用いられる。また、下位および上位アドレスレジスタはAGPアドレスレンジを規定するために用いられる。これらの値が提供されるオペレーティングシステムは、このメモリレンジ内でGARTページの割り当てを試みる。先行技術のシステムに対比して、このオペレーティングシステムは、GARTレンジ184内のアドレス立ち下がりの第1メモリコントローラ154への第1リマップを試みる。
【0019】
それぞれ第1および第2のメインメモリ156,157、並びに2つのメモリコントローラ154,155を用いることによって、単一のシステムメモリおよび一つのメモリコントローラを用いる先行技術のシステムより、より高速なトランザクション処理が実現される。特に、2つのメモリトランザクションは、一方のトランザクションは第1のメモリコントローラ154を用いて実行し、他方のトランザクションは第2のメモリコントローラ155により実行することにより、同時に実行することができる。
【0020】
グラフィックスデータは、典型的には、変更されあるいはライトされる場合を除いて何度もリードされる。リードおよびライトの遅延は、グラフィックスデータを第1のメモリコントローラ154に記憶し、一方、他のデータを第2のメモリコントローラ155に記憶することにより低減される。
【0021】
再び図3を参照すると、コンピュータ150は、物理アドレス0〜0x03FFFFFFを包含する64メガバイトのメインメモリ218を有する。このメモリの32メガバイトは第1のメモリコントローラ154にアサインされ、32メガバイトは第2のメモリ155にアサインされる。第1のメモリコントローラ154により提供されるベースレジスタ165およびレンジレジスタ166を用いることにより、オペレーティングシステムは、物理アドレス0x00000000〜0x01FFFFFFにより参照される第1のメインメモリ156の下位32メガバイトを占める関連するデータをAGPにセットする。たとえば、GARTレンジ184が、256メガバイトの仮想アドレス境界0x10000000で始まる場合、本発明は、GARTレンジ184内の仮想アドレスの、0x00000000〜0x01FFFFFFレンジにおける物理アドレスに対応する第1のメインメモリ156の下位32メガバイトにおける物理アドレスへの変換を可能にする。
【0022】
グラフィックスアクセラレータ160からリクエストを受けると、第1のメモリコントローラ154は、リクエストにおけるアドレスが第1のメインメモリ156のアドレスと同一であるかを解析する。もし、そのアドレスが第1のメインメモリ156内でない場合には、第1のメモリコントローラ154は、そのリクエストを第2のメモリコントローラ155に再送する。GARTテーブルを持ち、AGPを有する第1のメモリコントローラ154に配置されるメモリにより参照されることにより、他のメモリコントローラ155へのメモリリクエストの再送は、最小限度で行われる。
【0023】
一実施形態において、ハードウェアアブストラクションレイヤ(HAL)が、オペレーティングシステムに第1のメモリコントローラ154にGARTテーブルおよびテクスチャメモリを置くように指示する。HALは、小さいレイヤのソフトウェアで、このソフトウェアはプロセッサ152の一部ではないどのハードウェアのアブストラクトモデルを伴うコンピュータシステムの残り部分に提供する。HALは、システムの残り部分からのプラットフォームの特定のディテールを隠し、異なるベンダ(vendors)からプラットフォームのためのオペレーティングシステムの異なるバージョンを持つ必要性を取り除く。
【0024】
図4を参照して、本発明の第2の実施形態が図解される。この第2の実施形態は、グラフィックスアクセラレータ170により使用するための加速グラフィックスポート192を持つ第2のメモリコントローラ190を有する。各メモリコントローラ154、190は、加速グラフィックスポートトランザクションのためにオペレーティングシステムによって使用されるアドレスレンジを規定するレジスタセットを提供する。本発明の第3の実施形態においては、単一チップが複数のメモリコントローラを含んでおり、各メモリコントローラは、AGPとAGPトランザクションのために使用されるアドレスのレンジを確認するコンフィギュレーションレジスタのセットを有している。
【0025】
図5は、本発明の一実施形態において、仮想アドレス200から物理アドレス202への変換を図解している。前述したように、一実施形態において、オペレーティングシステムは、GARTレンジ184(図3)内で立ち下がる仮想アドレスの、第1のメインメモリ156(図3)への割り当てを試みる。
【0026】
仮想アドレス200は、仮想ページ番号フィールド204、およびオフセットフィールド206を含む。仮想ページ番号フィールド204の内容の変換(translation)は、GARTテーブル210における複数のGART PTE中の仮想ページ番号フィールドに対応するページテーブルエントリ(PTE)を求めることにより発生する。物理アドレストランスレーションを持つ適当なPTEを確認するため、GARTベースアドレス212は、ステート213でPTEアドレス214を得るために、仮想ページ番号フィールド204の内容と結合される。PTEアドレス214によって参照される内容は、仮想ページ番号204に対応する物理ページ番号216を提供する。物理ページ番号216は、ステート217で物理アドレス202を形成するために、オフセットフィールド206の内容と結合される。物理アドレス202は、所望の情報を有する第1のメインメモリ156における場所を順次に参照する。
【0027】
GARTテーブル210は、プロセッサ152(図2)により使用されるメモリページサイズに対応するサイズを有する複数のPTE208を含むことができる。たとえば、インテル(登録商標)ペンティアム(登録商標)あるいはペンティアム(登録商標)プロプロセッサは、4Kサイズのメモリページで動作する。したがって、これらプロセッサに使用するために適用されるGARTテーブル210は、4Kページを参照するPTEを含むことができる。一実施形態においては、仮想ページ番号フィールド204は、32ビット仮想アドレス200の上位20ビットを含み、オフセットフィールド206は32ビット仮想アドレス200の下位12ビットを含む。したがって、各ページは、212=4096(4K)アドレスを含み、下位12ビットのオフセットフィールド206は、上位20ビットの仮想ページ番号フィールド204によって参照されるページ内で所望の情報を配置する。
【0028】
図6は、GARTPTE200のとり得る一つのフォーマットを図解している。GARTPTE200は、フィーチャー(feature)ビットフィールド222、および物理(フィジカル)ページトランスレーション(PPT)フィールド224を含む。ハード的な回路がページテーブルフォーマットを規定する先行技術のシステムに対比して、GARTテーブル210(図5)は、適合長で最適化が可能(configurable length enabling optimization)なテーブルサイズで、ソフトウェアによって規定されるフィーチャービットを使用するPTEを含む。PPTフィールド224は、物理アドレス202(図5)を生成するためのPPTサイズビットを含む。PPTサイズは、変換可能なアドレスの数を規定する。
【0029】
一実施形態において、初期化BIOSは、GARTテーブル210(図5)にシステムをブートアップ(boot up)する間、第1のメモリコントローラ154(図2)におけるコンフィギュレーションレジスタのロードを実行させる。他の実施形態においては、オペレーティングシステムが、APIを使用するGARTテーブル154(図5)に、システムをブートアップ(boot up)する間、第1のメモリコントローラ154(図3)におけるコンフィギュレーションレジスタのロードを実行させる。
【0030】
先に注記したように、GARTテーブル210は、各々が物理ページトランスレーション情報224およびソフトウェアフィーチャービット222を有するマルチPTEを含む。GARTテーブル210は、2メガバイト物理アドレス0x00200000のようなメインメモリ218におけるいずれかの物理アドレスに配置される。オペレーティングシステムは、空間が有効ならば、GARTテーブル210を、第1のメモリコントローラ154におけるレジスタ165,166によって提供されるメモリレンジに配置することを試みる。GARTテーブル210をこのメモリレンジに置くことによって、旧システムと比較して、PCIバス158を通って第2のメモリコントローラ166へ伝送すべきグラフィックスアクセラレータ160からのメモリリクエストがより少なくなる。4Kメモリページサイズおよび8バイト長のGARTPTE220を有するシステムには、GARTのテーブル210は以下にように構成される。
Phyベース :=0x00000000・・リマップ物理アドレスの開始
Phyサイズ :=32メガバイト・・リマップ物理アドレスのサイズ
AGPアパーチャ:=0x10000000・・GARTレンジの開始アドレス
GARTベース :=0x00200000・・GARTテーブル開始アドレス
2PTEサイズ :=8バイト・・各GARTページテーブルエントリのサイズ
ページサイズ *=4キロバイト ・・メモリページサイズ
GARTテーブル210におけるPTEの数を決定するため、データに関連するAGPに割り当てられるメインメモリ218における物理アドレス空間のサイズ、上位332メガバイト=33554432バイトは、8192のPTEを得るために、メモリページサイズ4K=4096バイトにより分割される。
【0031】
各PTEは8バイトであることかから、GARTテーブルは、65,536バイト(8192×8)からなる。なお、8192=213=2PTEサイズであり、したがってPTEサイズ=13である。ベースレジスタおよびレンジレジスタにより供給される値を用いることにより、オペレーティングシステムは、GARTテーブル210をセットアップするため、以下の値をコンフィグレーションレジスタにプログラムする。
Phyベース :=0x00000000・・リマップ物理アドレスの開始
AGPアパーチャ:=0x10000000・・GARTレンジの開始アドレス
GARTベース :=0x00000000・・GARTテーブルの開始アドレス
PTEサイズ :=3 ・・2PTEサイズ=PTEのバイトにおけるサイズベースレジスタ165:=0x00000000・・第1のメモリコントローラ154におけるメモリの開始ポイント
レンジレジスタ165:=0x01FFFFFF・・AGPトランザクションに有効なメモリのレンジ
なお、オペレーティングシステムは、第1のメモリコントローラ154に配置されたベースレジスタ165およびレンジレジスタ166により示唆されるアドレスのレンジにおいて、GARTベースおよびPhyベースをセットアップしている。
【0032】
図7は、トランスレーションルックアサイドバッファ(TLB:translationlookaside buffer)240を用いる仮想アドレス200の物理アドレス202(図5a)への変換を図解している。前のように、仮想アドレス200は、仮想ページ番号フィールド204およびオフセットフィールド206を含む。仮想ページ番号フィールド204の変換(translation)は、仮想ページ番号フィールド204の内容に対応するGARTテーブル210のPTEを求めることにより発生する。GARTベースアドレス212は、ステート213でPTEアドレス214を得るために、仮想ページ番号フィールド204の内容と結合される。PTEアドレス214は、仮想ページ番号204に対応する物理ページ番号216を順次に提供する。現時点において、TLBエントリ242は、仮想ページフィールド246、それに対応する物理ページフィールド244、TLBエントリ242の相対的エイジを決定するためのリーストリーセントリユーズド(LRU:least recently used )カウンタ250、およびTLB240が有効な情報を持っているときに決定するためのステータスインディケータ248を持つことで形成される。TLBエントリ242は複数のTLBエントリ252を持つTLB240に記憶される。一実施形態において、全GARTレンジ184(図3)において変換可能なアドレスの全てをカバーするために、十分な量のTLBエントリ252がある。この実施形態においては、第1のメモリコントローラ154(図2)は、TLB240を補うために、レジスタブロックを含む。他の実施形態においては、第1のメモリコントローラ154(図2)は、TLB240を補うために、キャッシュSRAMのような高速メモリ部を含む。
【0033】
本発明は、技術および代替えに存在するいくつかの制約を有益的に克服する。たとえば、AGP接続は、1秒に500メガバイト以上のデータ転送をサポートできる。AGPトランザクションに有効なメモリセットを定義することにより、オペレーティングシステムは、加速グラフィックスポートを備えたメモリコントローラ上のグラフィックデータを維持することによって、システム性能を最適化できる。加速グラフィックスポートを備えたメモリコントローラは、メモリトランザクションを、他のメモリコントローラによって処理されているトランザクションと共に処理する。
【0034】
加えて、本発明は、現システムバスデザインの帯域制限を除いて、比較的に安価なメインメモリから、グラフィックスデータの記憶、アドレッシング、および検索を可能できる。本発明の代替えの実施形態において、複数のメモリコントローラは、同じ半導体チップ上に存することが可能であることに注意すべきである。
【0035】
従来のコンピュータシステム100(図1)と対比して、本発明の複数の実施形態は、テクスチャデータのような3Dグラフィックスデータの部分のローカルフレームバッファからサイズ、およびフレームバッファのコストを低減するための専用的なメモリコントローラに接続されたメインメモリへのリロケーションを可能にし、システム性能を改善することができる。たとえば、テスクチャデータは一般にリードされるのみであることから、それをメインメモリに移動することは、一貫性あるいはデータの矛盾の問題を引き起こさない。
【0036】
さらに、3D画像の複雑さおよび質が向上していることから、3Dグラフィックスデータをローカルフレームバッファに置くことは、コンピュータシステムコストを増加させている。3Dグラフィックスデータをメインメモリを持つメモリコントローラに移動することにより、本発明のアーキテクチャは、ローカルフレームバッファメモリ112を増大させるより、第2のコントローラ154を備えたメインメモリ156を増加させる方が安価であることから、トータルのシステムコストが減少する。
【0037】
本発明は、その精神あるいは本質的な特徴から逸脱しない範囲で、他の特定の形態で具体化できる。記述した実施形態は、図解および図解しないすべての点において考慮されるべきであり、本発明の範囲は、したがって、前述の記述によってよりむしろ付加したクレームによって示めされる。クレームの等価的意味および範囲内のすべての変更は、それらの範囲に包含される。
【図面の簡単な説明】
【図1】 図1は、先行技術であるコンピュータシステムの構成を図解するブロック図である。
【図2】 図2は、本発明のコンピュータシステムの一実施形態を図解するブロック図である。
【図3】 図3は、本発明の一実施形態のプロセッサのアドレス空間を図解するブロック図である。
【図4】 図4は、本発明の第2の実施形態を図解するブロック図である。
【図5】 図5は、本発明の一実施形態の仮想アドレスの物理アドレスへの置き換えを図解するブロック図である。
【図6】図6は、本発明の一実施形態のグラフィックアドレスリマッピングテーブルのページテーブルエントリの図である。
【図7】図7は、本発明の一実施形態のトランスレーションルックアサイドバッファエントリの生成を図解するブロック図である。
Claims (13)
- プロセッサバスと、
前記プロセッサバスに直接的に接続された少なくとも一つのプロセッサと、
前記プロセッサバスに直接的に接続された第1および第2のメモリコントローラと、
前記第1および第2のメモリコントローラにそれぞれ接続された第1および第2のメインメモリと、
を有し、
前記第1のメモリコントローラは、グラフィックアクセラレータが接続される加速グラフィックスポートを有し、
前記第1のメモリコントローラは、
前記加速グラフィックスポートを介して前記グラフィックアクセラレータからメモリリクエストを受信したとき、
前記メモリクエストにおけるアドレスが前記第1のメインメモリのレンジ内であるか否かを解析し、
前記メモリクエストにおけるアドレスが前記第1のメインメモリのレンジ内である場合、前記メモリリクエストを実行し、
該メモリクエストにおけるアドレスが前記第1のメインメモリのレンジ内ではない場合、前記メモリリクエストを前記プロセッサバスを介して前記第2のメモリコントローラに再送する、
マルチメモリコントローラシステム。 - 前記第1のメモリコントローラは、仮想アドレスを物理アドレスに変換するための情報を提供する少なくとも一つのページテーブルエントリ(PTE)を有するグラフィカルアドレスリマッピングテーブルを含み、
当該仮想アドレスは、第1の部分と第2の部分とを含み、
前記第1の部分は前記グラフィカルアドレスリマッピングテーブルにおける前記PTEに対応し、
前記第2の部分と前記PTEによって提供される情報は、前記物理アドレスを提供するために結合される
請求項1に記載のシステム。 - 前記第1の部分は、仮想ページ番号フィールドを含む
請求項2に記載のシステム。 - 前記第2の部分は、オフセットフィールドを含む
請求項2に記載のシステム。 - 前記グラフィカルアドレスリマッピングテーブルは、当該コンピュータシステムのブートアップ期間に、前記第1のメモリコントローラにおける少なくとも一つのコンフィギュレーションレジスタのロードを実行することにより構成され、
前記少なくとも一つのコンフィギュレーションレジスタは、加速グラフィックスポートトランザクションに有効なアドレスレンジを規定する
請求項2に記載のシステム。 - 前記少なくとも一つのコンフィギュレーションレジスタは、前記グラフィカルアドレスリマッピングテーブルの開始アドレスを含む
請求項5に記載のシステム。 - 前記少なくとも一つのコンフィギュレーションレジスタは、前記グラフィカルアドレスリマッピングテーブルのレンジの最下位アドレスを規定する境界アドレスを含む
請求項5に記載のシステム。 - 前記少なくとも一つのコンフィギュレーションレジスタは、前記加速グラフィックスポートトランザクションに有効なメモリ量を規定するレンジレジスタを含む
請求項5に記載のシステム。 - 初期化BIOSは、前記グラフィカルアドレスリマッピングテーブルにシステムをブートアップする間、前記第1のメモリコントローラにおける前記少なくとも一つのコンフィギュレーションレジスタのロードを実行させる、
請求項5に記載のシステム。 - オペレーティングシステムは、APIを使用する前記グラフィカルアドレスリマッピングテーブルにシステムをブーツアップする間、前記第1のメモリコントローラにおける前記少なくとも一つのコンフィギュレーションレジスタのロードを実行する、
請求項5に記載のシステム。 - 前記少なくとも2つのメインコントローラの一つとメモリは、同じ半導体チップ上にある
請求項1に記載のシステム。 - グラフィックアクセラレータが接続される加速グラフィックスポートを有する第1のメモリコントローラをプロセッサバスに直接的に接続し、
第1のメインメモリを前記第1のメモリコントローラに直接的に接続し、
前記プロセッサバスに第2のメモリコントーラを直接的に接続し、
第2のメインメモリを前記第2のメモリコントローラに直接的に接続し、
少なくとも一つのコンフィギュレーションレジスタを前記第1のメモリコントローラに接続し、
前記少なくとも一つのコンフィギュレーションレジスタは、加速グラフィックポートトランザクションを有効とする前記第1のメインメモリ内のアドレスレンジを規定し、
前記第1のメモリコントローラは、
前記加速グラフィックスポートを介して前記グラフィックアクセラレータからメモリリクエストを受信したとき、
該メモリクエストにおけるアドレスが前記加速グラフィックスポートトランザクションを有効とする前記第1のメインメモリのアドレスレンジ内か否かを解析し、
前記メモリリクエストにおけるアドレスが、前記加速グラフィックポートトランザクションを有効とする前記第1のメインメモリのアドレスレンジ内である場合は前記メモリリクエストを実行し、
前記メモリリクエストにおけるアドレスが、前記加速グラフィックポートトランザクションを有効とする前記第1のメインメモリのアドレスレンジ内でなければ、前記メモリリクエストを前記プロセッサバスを介して前記第2のメモリコントローラに再送する
マルチメモリコントローラコンピュータを製作し使用する方法。 - グラフィカルアドレスリマッピングテーブルを、少なくとも第1のメモリマイクロコントローラおよび第2のメモリマイクロコントローラを有するコンピュータシステム上のメモリに記憶し、
第1のメインメモリは前記第1のメモリマイクロコントローラに直接的に接続され、
第2のメインメモリは前記第2のメモリマイクロコントローラに直接的に接続され、
前記第1のメモリマイクロコントローラおよび前記第2のメモリマイクロコントローラの各々は、プロセッサバスに直接的に接続され、
前記第1のメモリマイクロコントローラは、
グラフィックアクセラレータが接続される加速グラフィックスポートを有し、
加速グラフィックスポートトランザクションに有効なアドレスレンジを規定する少なくとも一つのコンフィギュレーションレジスタを有し、
前記加速グラフィックスポートトランザクションに有効なアドレスレンジ内で前記グラフィックスアドレスリマッピングテーブルを記憶し、
前記第1のメモリコントローラは、
前記加速グラフィックスポートを介して前記グラフィックアクセラレータからメモリリクエストを受信したとき、
該メモリクエストにおけるアドレスが前記加速グラフィックスポートトランザクションを有効とする前記第1のメインメモリのアドレスレンジ内かどうかを解析し、
前記加速グラフィックスポートトランザクションを有効とする前記第1のメインメモリのアドレスレンジ内である場合には、前記メモリリクエストを実行し、
前記メモリリクエストにおけるアドレスが前記加速グラフィックポートトランザクションを有効とする前記第1のメインメモリのアドレスレンジ内にない場合には、前記メモリリクエストを前記プロセッサバスを介して前記第2のメモリコントローラに再送する
マルチメモリコントロールシステムを用いる方法。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/000,511 US6252612B1 (en) | 1997-12-30 | 1997-12-30 | Accelerated graphics port for multiple memory controller computer system |
US09/000,517 US6157398A (en) | 1997-12-30 | 1997-12-30 | Method of implementing an accelerated graphics port for a multiple memory controller computer system |
US09/000,511 | 1997-12-30 | ||
US09/000,517 | 1997-12-30 | ||
PCT/US1998/027791 WO1999034293A1 (en) | 1997-12-30 | 1998-12-29 | Accelerated graphics port for multiple memory controller computer system |
CA2313257A CA2313257C (en) | 1997-12-30 | 2000-06-29 | Accelerated graphics port for multiple memory controller computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002500394A JP2002500394A (ja) | 2002-01-08 |
JP4022369B2 true JP4022369B2 (ja) | 2007-12-19 |
Family
ID=27171290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000526869A Expired - Fee Related JP4022369B2 (ja) | 1997-12-30 | 1998-12-29 | マルチメモリコントローラコンピュータシステム用加速グラフィックスポート |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1044411B1 (ja) |
JP (1) | JP4022369B2 (ja) |
CA (1) | CA2313257C (ja) |
TW (1) | TW408263B (ja) |
WO (1) | WO1999034293A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6157398A (en) | 1997-12-30 | 2000-12-05 | Micron Technology, Inc. | Method of implementing an accelerated graphics port for a multiple memory controller computer system |
US6708257B2 (en) * | 1999-07-12 | 2004-03-16 | Koninklijke Philips Electronics N.V. | Buffering system bus for external-memory access |
US6457068B1 (en) * | 1999-08-30 | 2002-09-24 | Intel Corporation | Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation |
US6734862B1 (en) | 2000-06-14 | 2004-05-11 | Intel Corporation | Memory controller hub |
US7116331B1 (en) | 2000-08-23 | 2006-10-03 | Intel Corporation | Memory controller hub interface |
US6859208B1 (en) * | 2000-09-29 | 2005-02-22 | Intel Corporation | Shared translation address caching |
SE521973C2 (sv) | 2001-12-27 | 2003-12-23 | Cerbio Tech Ab | Ytbeläggningsförfarande, biokompatibel ytbeläggning och anordning med biokompatibel ytbeläggning |
US20050160188A1 (en) * | 2004-01-20 | 2005-07-21 | Zohar Bogin | Method and apparatus to manage memory access requests |
JP2005215911A (ja) * | 2004-01-29 | 2005-08-11 | Hitachi Ltd | 情報処理装置 |
US8719547B2 (en) * | 2009-09-18 | 2014-05-06 | Intel Corporation | Providing hardware support for shared virtual memory between local and remote physical memory |
TWI478675B (zh) | 2010-12-10 | 2015-04-01 | Taiwan Paiho Ltd | 帶體束頭之製程及其製作出之帶體束頭 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1992002879A1 (en) * | 1990-08-03 | 1992-02-20 | Du Pont Pixel Systems Limited | Virtual memory system |
US5675762A (en) * | 1992-04-03 | 1997-10-07 | International Business Machines Corporation | System for locking down part of portion of memory and updating page directory with entry corresponding to part of portion of the memory locked down |
US5664162A (en) * | 1994-05-23 | 1997-09-02 | Cirrus Logic, Inc. | Graphics accelerator with dual memory controllers |
US5790138A (en) * | 1996-01-16 | 1998-08-04 | Monolithic System Technology, Inc. | Method and structure for improving display data bandwidth in a unified memory architecture system |
-
1998
- 1998-12-29 WO PCT/US1998/027791 patent/WO1999034293A1/en active IP Right Grant
- 1998-12-29 JP JP2000526869A patent/JP4022369B2/ja not_active Expired - Fee Related
- 1998-12-29 EP EP98965536A patent/EP1044411B1/en not_active Expired - Lifetime
-
1999
- 1999-02-20 TW TW087121872A patent/TW408263B/zh not_active IP Right Cessation
-
2000
- 2000-06-29 CA CA2313257A patent/CA2313257C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2313257A1 (en) | 2001-12-29 |
EP1044411B1 (en) | 2003-05-02 |
EP1044411A1 (en) | 2000-10-18 |
TW408263B (en) | 2000-10-11 |
JP2002500394A (ja) | 2002-01-08 |
CA2313257C (en) | 2012-08-28 |
WO1999034293A1 (en) | 1999-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7777752B2 (en) | Method of implementing an accelerated graphics port for a multiple memory controller computer system | |
US6252612B1 (en) | Accelerated graphics port for multiple memory controller computer system | |
US6418523B2 (en) | Apparatus comprising a translation lookaside buffer for graphics address remapping of virtual addresses | |
US6069638A (en) | System for accelerated graphics port address remapping interface to main memory | |
KR100432470B1 (ko) | 로컬 i/o 버스에 인접한 브리지에서의 입/출력(i/o) 어드레스 번역 | |
US9817770B2 (en) | Memory address re-mapping of graphics data | |
US5999198A (en) | Graphics address remapping table entry feature flags for customizing the operation of memory pages associated with an accelerated graphics port device | |
JP4562919B2 (ja) | ダイナミック・ディスプレイ・メモリを実装するための方法および装置 | |
US7913058B2 (en) | System and method for identifying TLB entries associated with a physical address of a specified range | |
US6750870B2 (en) | Multi-mode graphics address remapping table for an accelerated graphics port device | |
US6629188B1 (en) | Circuit and method for prefetching data for a texture cache | |
US5987582A (en) | Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device | |
US6097402A (en) | System and method for placement of operands in system memory | |
US20010007112A1 (en) | System for implementing a graphic address remapping table as a virtual register file in system memory | |
US5914727A (en) | Valid flag for disabling allocation of accelerated graphics port memory space | |
JP2008033928A (ja) | Gpuにおけるページマッピングのための専用機構 | |
US20140164716A1 (en) | Override system and method for memory access management | |
US5999743A (en) | System and method for dynamically allocating accelerated graphics port memory space | |
JP4022369B2 (ja) | マルチメモリコントローラコンピュータシステム用加速グラフィックスポート | |
US5396597A (en) | System for transferring data between processors via dual buffers within system memory with first and second processors accessing system memory directly and indirectly | |
US20020070941A1 (en) | Memory system having programmable multiple and continuous memory regions and method of use thereof | |
US6282625B1 (en) | GART and PTES defined by configuration registers | |
US6683615B1 (en) | Doubly-virtualized texture memory | |
US7071946B2 (en) | Accelerated graphics port for a multiple memory controller computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050906 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051206 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051213 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060328 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060628 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060705 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070109 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070409 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070416 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070416 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070709 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070904 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071001 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101005 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111005 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121005 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131005 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |