JPH11167524A - コンピュータ・システム - Google Patents

コンピュータ・システム

Info

Publication number
JPH11167524A
JPH11167524A JP10255832A JP25583298A JPH11167524A JP H11167524 A JPH11167524 A JP H11167524A JP 10255832 A JP10255832 A JP 10255832A JP 25583298 A JP25583298 A JP 25583298A JP H11167524 A JPH11167524 A JP H11167524A
Authority
JP
Japan
Prior art keywords
entry
memory
agp
gart
computer system
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.)
Pending
Application number
JP10255832A
Other languages
English (en)
Inventor
Gregory N Santos
グレゴリー・エヌ・サントス
Robert C Elliott
ロバート・シー・エリオット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH11167524A publication Critical patent/JPH11167524A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Bus Control (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 メモリのアドレス変換を有効に行う。 【解決手段】中央処理ユニット(システム・プロセッ
サ)102と、システム・メモリ106と、ビデオ・デ
ィスプレイ112に接続されグラフィックス・データか
らビデオ表示データを生成してビデオ・ディスプレイ上
に表示させるグラフィックス・プロセッサ(ビデオ・グ
ラフィックス・コントローラ)210と、システム・プ
ロセッサ102をシステム・メモリ106に接続する第
1のインターフェース・ロジック(コア・ロジック20
4内)と、システム・プロセッサ及びシステム・メモリ
をグラフィックス・プロセッサに接続する第2のインタ
ーフェース・ロジック(コア・ロジック内)と、複数の
エントリを有するグラフィックス・アドレス・リマッピ
ング・テーブル(コア・ロジック内)とからなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、バス・ブリッジ
(群)を用いて、中央処理装置(群)、ビデオ・グラフ
ィックス・プロセッサ(群)、ランダム・アクセス・メ
モリ(RAM)および入出力周辺機器同士のインターフ
ェースを行うコンピュータ・システムに関し、更に特定
すれば、隣接しない物理メモリ・ページを隣接する加速
(アクセレレイテド)グラフィックス・ポート(AG
P)・デバイス・アドレスにリマップ(remap)するため
に用いられるグラフィックス・アドレス・リマッピング
・テーブル(GARTテーブル)を用い、リマッピング
処理の高速化のためにGARTテーブルの選択されたエ
ントリがキャッシュに格納され、かつ、キャッシュ無い
のGARTテーブルのエントリが有効でない場合又は更
新が不要な場合に、当該エントリを、キャッシュ内の他
のGARTテーブルのエントリに影響を与えることな
く、マークすることができるコンピュータ・システムに
関するものである。
【0002】
【従来の技術】本願は、1997年5月9日に出願され
た、Ronald T. Horan(ロナルドT.ホラン)およびSom
pong Olaring(ソンポン オラリング)による"Dual Pu
rposeApparatus, Method and System for Accelerated
Graphics Port and Peripheral Component Interconnec
t"(加速グラフィックス・ポートおよび周辺素子相互接
続のための二重目的装置、方法およびシステム)と題す
る、本願と同じ所有者の米国特許出願番号第08/85
3,289号に関連がある。尚、この出願の内容は、こ
の言及により本願にも含まれるものとする。
【0003】業務および家庭におけるコンピュータ、特
に、パーソナル・コンピュータの使用は増々普及しつつ
ある。その理由は、コンピュータが、会計、法律、設
計、保険、サービス、販売等の分野に携わる殆どの情報
関連従事者に不可欠なツールとなっているからである。
コンピュータ分野における急速な技術進歩のために、こ
れまで古い技術のメインフレーム・コンピュータでは実
現できなかった、または余りに高価過ぎて利用できなか
った、多くの新しい応用分野に道が開かれた。これらの
パーソナル・コンピュータは、単体のワークステーショ
ン(個々のハイ・エンド・パーソナル・コンピュー
タ)、デスク・トップ型パーソナル・コンピュータ、携
帯ラップトップ・コンピュータ等が考えられる。また、
これらは、「ネットワーク・サーバ」によってネットワ
ークに互いにリンクすることも可能である。ネットワー
ク・サーバもまたパーソナル・コンピュータであり、そ
のネットワークにおける目的に特化した追加の特徴をい
くつか有するものとすればよい。ネットワーク・サーバ
は、大量のデータを格納するために用いることができ、
更に、電子メール(「E−メール」)、文書データベー
ス、テレビ会議、ホワイト・ボード機能、一体化企業用
カレンダ、仮想エンジニアリング設計等のために、ネッ
トワークに接続されている個々のワークステーションの
双方向処理を簡便化することができる。また、多数のネ
ットワーク・サーバも、ローカル・エリア・ネットワー
ク(「LAN」)およびワイド・エリア・ネットワーク
(「WAN」)によって相互接続することが可能であ
る。
【0004】パーソナル・コンピュータが増々普及して
いく中で、僅か数年前と比較した場合、その低価格以外
で重要な部分は、精巧なプログラムを実行させ、多くの
有用かつ新規な作業を行うその能力である。今日のパー
ソナル・コンピュータは、新たな周辺デバイスを用いて
容易に更新し、柔軟性向上および処理能力向上を図るこ
とができる。パーソナル・コンピュータ(ワークステー
ションおよびネットワーク・サーバ双方)の性能におけ
る主要な進展は、ビデオ・グラフィックス・アダプタ、
ローカル・エリア・ネットワーク・インターフェース、
SCSIバス・アダプタ、全モーション・ビデオ、冗長
エラー・チェックおよび訂正ディスク・アレイ(redunda
nt error checking and correcting disk array)等のよ
うな、精巧な周辺デバイスの実装によるものであった。
これら精巧な周辺デバイスは、コンピュータ・システム
・マイクロプロセッサ中央演算装置(「CPU」)の本
来の速度(native speed)に近づくデータ転送レートが可
能である。周辺デバイスのデータ転送速度は、高速拡張
ローカル・バスを通じて、マイクロプロセッサ(群)お
よび関連するシステムのランダム・アクセス・メモリに
周辺デバイスを接続することによって得られる。最も顕
著なのは、マイクロプロセッサには独立した高速拡張ロ
ーカル・バス規格が新たに作られ、多数の周辺ハードウ
エア製造者およびソフトウエア・プログラマに受け入れ
られたことである。この高速拡張バス規格は、「周辺構
成要素相互接続」または「PCI:Peripheral Componen
t Interconnect」と呼ばれるものである。更に完成度を
高めたPCIローカル・バスの定義が、PCI Local Bus
Specification, revision 2.1(PCIローカル・バス
仕様書改訂第2.1版)、「PCI/PCI Bridge Specifica
tion, revision 1.0(PCI/PCIブリッジ仕様書改
訂第1.0版)、PCI System Design Guide, revision
1.0(PCIシステム設計ガイド改訂第1.0版)、PCI
BIOS Specification, revision 2.1(PCI BIO
S仕様書改訂第2.1版)、および1996年5月20
日付けの"Addition of 'New Capabilities' Structure"
(「新能力構造の追加」)と題するEngineering Change
Notice(「ECN」設計変更通知)に見ることができ
る。これらは、この言及により本願にも含まれるものと
する。これらのPCI仕様書およびECNは、PCI Spec
ial Interest Group, P.O. Box 14070, Portland, OR 9
7214から入手可能である。
【0005】コンピュータ・システムは、ホスト・バ
ス、メモリ・バス、PCIバスのような少なくとも1系
統の高速拡張ローカル・バス、および小型コンピュータ
・システム・インターフェース(SCSI)、拡張業界
標準アーキテクチャ(EISA)、および業界標準アー
キテクチャ(ISA)のようなその他の周辺バスのよう
な、複数の情報(データおよびアドレス)バスを有す
る。コンピュータ・システムのマイクロプロセッサ
(群)は、主メモリ、およびコンピュータ・システムを
構成する周辺機器と、これら種々のバスを通じて通信す
る。マイクロプロセッサ(群)は、メモリ・バス・ブリ
ッジに至るホスト・バスを通じて、主メモリと通信す
る。周辺機器は、それらのデータ転送速度の必要条件に
応じて、種々のバスに接続され、更に、これらのバスが
バス・ブリッジを介して、マイクロプロセッサのホスト
・バスに接続されている。バス・ブリッジは、要求され
たアクションを検出し、調停を行い、更に種々のバス間
でデータおよびアドレス双方の変換を行う。
【0006】増々精巧度が高まりつつあるマイクロプロ
セッサは、複雑なアプリケーション・ソフトウエアのメ
インフレーム・コンピュータの速度での実行を可能にす
ることにより、パーソナル・コンピュータの役割に革新
を起こした。最新のマイクロプロセッサは、僅か数年前
にはメインフレームおよびミニコンピュータ・システム
でなければ得ることができなかったレベルの技術的精巧
度をパーソナル・コンピュータにもたらした。これら新
たなマイクロプロセッサの代表的な例は、"PNETIUM"お
よび"PENTIUM PRO"(インテル社(Intel Corporation)の
登録商標)である。また、Advanced Micro Devices(ア
ドバンスト・マイクロ・デバイスイズ社)、Cyrix(サ
イリックス社)、IBM、Digital Equipment Corp.,
(デジタル・エクイップメント社)、およびMotorola
(モトローラ社)も、先進のマイクロプロセッサを製造
している。
【0007】一方、これら精巧なマイクロプロセッサ
は、コンピュータ支援製図および製造、エンジニアリン
グ・シミュレーション、ゲーム等のために、先進の三次
元(「3−D」)グラフィックスを使用する複雑なアプ
リケーション・プログラムを実行することを可能にし
た。増々複雑化する3−Dグラフィックスは、メモリに
格納されている、増々大量化するグラフィックス・デー
タに対するアクセス速度を一層高速化しなければならな
い。このメモリは、ビデオ・グラフィックス・プロセッ
サ・システムの一部であってもよいが、好ましくは、メ
イン・コンピュータ・システム・メモリの一部であれ
ば、最良である(コストが最も低い)。インテル社
は、"Accelerated Graphics Port"(AGP:加速グラ
フィックス・ポート)と呼ばれる低コストであるが改善
された3−Dグラフィックス規格を率先して提案した。
AGP3−Dを用いると、グラフィックス・データ、特
に、テクスチャを、グラフィックス・コントローラのロ
ーカル・メモリからコンピュータ・システム・メモリに
移行させることができる。コンピュータ・システム・メ
モリはグラフィックス・コントローラのローカル・メモ
リよりも低コストであり、グラフィックス・データの格
納以外にも、多数の他の使用に容易に合わせることがで
きる。
【0008】インテル社が提案したAGP3−Dグラフ
ィックス規格は、高速データ・パイプライン、即ち、
「AGPバス」をグラフィックス・コントローラとシス
テム・メモリとの間に定義する。このAGPバスは、グ
ラフィックス・コントローラがシステム・メモリからテ
クスチャを読み出し、しかもコンピュータ・システムの
他の非グラフィックス・オペレーションに影響を及ばす
ことのない程の十分な帯域幅を有する。インテル社の3
−Dグラフィックス規格は、信号、プロトコル、電気
的、および機械的仕様をAGPバスおよびそれに取り付
けられているデバイスに与える仕様書である。この仕様
書は、1996年7月31日付けで、"Accelerated Gra
phics Port Interface Specification Revision 1.0"
(加速グラフィックス・ポート・インターフェース仕様
書改訂第1.0版)と題するものである。その開示内容
は、この言及により本願にも含まれるものとする。AG
P仕様書は、カリフォルニア州サンタ クララのインテ
ル社から入手可能である。
【0009】AGP仕様は、66MHzのPCI(改訂
第2.1版)仕様を、動作基準線として用い、PCI仕
様に3つの性能改善を付け加え、これらを用いて高性能
3−Dグラフィックス用途のためにAGP仕様を最適化
している。3つの改善とは、1)パイプライン型メモリ
・リードおよびライト動作、2)側波帯信号(sideband
signal)の使用による、AGPバス上のアドレスおよび
データのデマルチプレックス、および3)毎秒500メ
ガバイト(「MB/s」)を超えるデータ・スループッ
トのための、133MHzのデータ転送レートである。
これら以外のAGP仕様は、PCI仕様を変更していな
いが、3−Dグラフィックス用ハードウエアおよびソフ
トウエア設計者による使用のために、ある範囲のグラフ
ィックス指向の性能向上を代わりに与えている。AGP
仕様は、コンピュータ・システムにおけるPCI規格の
使用を置換することも、減少させることも意味するもの
ではない。AGP仕様は、グラフィックス・コントロー
ラのような3−Dグラフィックス・デバイスによる使用
のために、独立した追加の高速ローカル・バスを創出
し、コンピュータ・システムの他の入出力(「I/
O」)デバイスは、PCI,SCSI,EISAおよび
ISAバスのいかなる組み合わせにおいても残ることが
できる。
【0010】このAGP3−Dグラフィックス・バスを
機能的に可能にするためには、新たなコンピュータ・シ
ステムのハードウエアおよびソフトウエアが必要とな
る。このために、新たなコンピュータ・システムのコア
・ロジックが、AGP仕様を満足するホスト・バス/メ
モリ・バス/PCIバス−AGPバス・ブリッジとして
機能するように設計する必要があり、更にコンピュータ
・システムにおいてAGPに依存するハードウエアが機
能状態となるようにするために、新たなリード・オンリ
・メモリ基本入出力システム(「ROM BIOS」)
およびアプリケーション・プログラミング・インターフ
ェース(「API」)ソフトウエアも必要となる。更
に、コンピュータ・システムのコア・ロジックは、先に
引用したPCI規格を満足し、PCIバス(群)のコン
ピュータ・システムの残りの部分へのインターフェース
を容易にする必要もある。加えて、機械的および電気的
にAGPバス・コネクタと適正にインターフェースする
ように新たなAGP互換デバイス・カードを設計しなけ
ればならない。
【0011】AGPおよびPCIインターフェース仕様
間に信号機能の共通性がいくらかはあるものの、AGP
およびPCIデバイス・カードは物理的にも電気的にも
相互に交換可能ではない。今日のAGP仕様は、AGP
バス上に単一のAGPデバイスのみを許可するに過ぎ
ず、一方、PCI仕様は、PCIデバイス用に2つのプ
ラグイン・スロット、および66MHzで動作するPC
Iバス上に1つのブリッジを許可する。この単一のAG
Pデバイスは、1xモード(最大264MB/s)およ
び2xモード(最大532MB/s)双方で機能するこ
とができる。AGPバスは、32ビット・バスとして定
義され、1xモードではクロック当たり4バイトまでの
データ転送、および2xモードではクロック当たり8バ
イトまでのデータ転送を行うことができる。PCIバス
は、32ビット・バスまたは64ビット・バスのいずれ
かとして定義され、それぞれ、クロック当たり4バイト
または8バイトまでのデータ転送を行うことができる。
しかしながら、AGPバスは、追加の側波帯信号を有
し、このために、PCIバスを用いて可能なよりも、更
に効率的なデータ・ブロックの転送が可能となってい
る。2xモードで動作するAGPバスは、十分なビデオ
・データ・スループット(最大532MB/s)を備え
ているので、増々複雑化する3−Dグラフィックス・ア
プリケーションでも、パーソナル・コンピュータ上で実
行することを可能にする。
【0012】コンピュータ・システムにおいてAGPを
用いることによる主な性能/コスト改善は、テクスチャ
・データをローカル・グラフィックス・メモリから主メ
モリにシフトすることによって得られる。テクスチャ
は、いくつかの理由で、このシフトに適している理想的
なものである。テクスチャは通常読み取りのみであるの
で、アクセス順序やコヒーレンシ(coherency)の問題が
起こる可能性が少ない。テクスチャのシフト動作は、シ
ステム・メモリとローカル・グラフィックス・メモリと
の間の帯域幅負荷をバランスさせる。何故なら、高いキ
ャッシュ機能を有するホスト・プロセッサは、3−Dレ
ンダリング機械よりもメモリ帯域要件が少ないからであ
る。恐らく、テクスチャのアクセスは、レンダリング・
メモリ帯域幅の最も大きな単一のコンポーネントを含む
ので、ローカル・グラフィックス・メモリ内にテクスチ
ャをロードまたはキャッシュすることを回避すれば、こ
のためのローカル・メモリ帯域幅のコンポーネントを節
約できるだけでなく、最初にテクスチャを記憶装置にロ
ードするために必要な帯域幅も節約できる。更に、この
データは、大容量記憶デバイスからロードする際に、何
らかの方法で主メモリを通過させなければならない。テ
クスチャ・サイズは、ディスプレイの解像度よりは、む
しろアプリケーションの品質に左右される。したがっ
て、ソフトウエア・アプリケーションが進化すればする
程、メモリに最大の増大が必要となる可能性がある。テ
クスチャ・データは永続的ではなく、ソフトウエア・ア
プリケーションの期間だけコンピュータ・システムのメ
モリ内に位置すればよいので、テクスチャの格納に費や
すシステム・メモリはいずれも、アプリケーションが終
了すれば、空きメモリの集合(heap)に戻される(永続的
に使用するために残ることがあるグラフィック・コント
ローラのローカル・フレーム・バッファとは異なる)。
これらの理由のために、ローカル・グラフィックス・メ
モリから主メモリにテクスチャ・データをシフトするこ
とは、3−Dグラフィックスを実施する場合には、コン
ピュータ・システムのコストを大幅に削減することにな
る。
【0013】通常、コンピュータ・システムのメモリ・
アーキテクチャでは、グラフィックス・コントローラの
物理アドレス空間は、システム・メモリの上に位置す
る。グラフィックス・コントローラはこの物理アドレス
空間を用いて、グラフィックス画面を発生するために必
要な情報を保持する、そのローカル・メモリにアクセス
する。AGPシステムでは、情報は未だグラフィックス
・コントローラのローカル・メモリ(テクスチャ、アル
ファ、z−バッファ等)内に位置するが、このローカル
・メモリ内に以前に位置したデータの中には、システム
・メモリに移動させられるものもある(主にテクスチャ
であるが、コマンド・リスト等も含まれる)。グラフィ
ックス・コントローラがこれらのテクスチャにアクセス
するために用いられるアドレス空間は、仮想的となる。
即ち、このアドレス空間に対応する物理メモリは、メモ
リ上には実際に存在しないことを意味する。実際には、
これら仮想アドレスの各々は、システム・メモリ内の物
理アドレスに対応する。グラフィックス・コントローラ
はこの仮想アドレス空間を1つの隣接メモリ・ブロック
として見るが、対応する物理メモリ・アドレスは、コン
ピュータ・システムの物理メモリ全体にわたって4キロ
バイト(「KB」)の非隣接ページに割り当てられるこ
ともある。尚、仮想空間アドレスのことを、以降「AG
Pデバイス・アドレス空間」と呼ぶことにする。
【0014】データをどのように区分しアクセスするの
かに関して必要な3Dレンダリング、およびその結果得
られるインターフェース・データのフロー特性のため
に、2つの主要なAGP使用モデルがある。「DMA」
モデルでは、主グラフィックス・メモリは、「ローカル
・フレーム・バッファ」と呼ばれるローカル・メモリと
なり、AGPグラフィックス・コントローラ即ち「ビデ
オ・アクセレレータ」と連動する。3D構造はシステム
・メモリに格納されるが、このメモリから直接用いられ
る(または「実行される」)ことはない。代わりに、こ
れらは主(ローカル)メモリにコピーされ、(AGPグ
ラフィックス・コントローラの)レンダリング・エンジ
ンのアドレス発生器はコピーの方を参照する。これは、
AGPバス上のトラフィックが長く連続する転送となる
傾向があり、システム・メモリから主グラフィックス
(ローカル)メモリへの一括データ搬送の目的を果たす
ことを示唆する。この種のアクセス・モデルは、(ディ
スクまたはネットワーク入出力デバイスの処理と同様
に)ソフトウエアによって与えられる物理アドレスのリ
ンク・リスト(linked list)に従い、メモリ空間の非隣
接ビュー(non-contiguous view)には通常敏感ではな
い。「実行」モデルでは、ビデオ・アクセレレータは、
ローカル・メモリおよびシステム・メモリ双方を主グラ
フィックス・メモリとして用いる。アクセレレータの観
点からは、2つのメモリ・システムは論理的に同等であ
り、あらゆるデータ構造でもいずれのメモリにも割り当
てることができ、唯一の選択の基準として性能の最適化
を用いる。通常、システム・メモリ空間の構造は、ビデ
オ・アクセレレータによる使用前では、ローカル・メモ
リ内にコピーされないが、適切な場所で「実行」され
る。これは、AGPバス上のトラフィックが短いランダ
ム・アクセスとなる傾向があり、ソフトウエアによって
解決する物理アドレスのリスト(software resolved lis
t)に基づくアクセス・モデルに従わないことを示唆す
る。アクセレレータはシステム・メモリに直接参照(dir
ect reference)を発生するので、その空間の隣接ビュー
は必須である。しかし、システム・メモリは、例えば、
メモリのランダムな4,096バイト・ブロック(以
降、4キロバイト(「KB」)ページと呼ぶ)単位に動
的に割り当てられるので、「実行」モデルでは、ランダ
ムな4KBページを単一の隣接するアドレス空間にマッ
プする、アドレス・マッピング機構を備えることが必要
となる。
【0015】AGP仕様は、「DMA」モデルおよび
「実行(execute)」モデル双方に対応する。しかしなが
ら、AGPの主要な動機がグラフィックス・コントロー
ラのローカル・メモリ(ローカル・フレーム・バッファ
・メモリを含む)に対する拡張圧力(growth pressure)
を減少させることであるので、「実行」モデルの方が好
ましい。この優先順位に従えば、グラフィックス・アク
セレレータ(AGPマスタ)がシステム・メモリ内に動
的に割り当てられるグラフィックス・データ構造の隣接
ビューを有することを保証するためには、AGP仕様
は、仮想−物理アドレス・リマッピング機構を必要とす
る。このアドレス・リマッピングは、システム物理アド
レス空間の単一のプログラム可能な範囲にのみ適用さ
れ、全てのシステム・エージェントに共通となる。この
範囲に該当するアドレスは、物理システム・メモリの非
隣接ページにリマップされる。この範囲にないアドレス
は全て、変更なく通過させられ、直接主システム・メモ
リ、またはPCIデバイスの物理メモリのようなデバイ
スに特定の範囲にマップする。リマッピングは、「グラ
フィックス・アドレス・リマッピング・テーブル」
(「GART table: GraphicsAddress Remapping Tabl
e」)によって行われる。グラフィックス・アドレス・
リマッピング・テーブルは、GARTミニポート・ドラ
イバ・ソフトウエア(GART miniport driver software)
によってセットアップおよび維持され、コア・ロジック
・チップセットがリマッピングを実行するために用いら
れる。互換性の問題を回避し、将来にわたる実装の柔軟
性に対処するために、この機構はソフトウエア(AP
I)レベルで指定される。言い換えると、実際のGAR
Tテーブルのフォーマットは、ハードウエア抽象化レイ
ヤ(「HAL:hardware abstractionlayer」)または
コア・ロジック・チップセットが備えられたミニポート
・ドライバによって、APIに抽象化することができ
る。このAPIはリマッピング・ハードウエアの将来の
区分を制約するものではないが、リマッピング機能は典
型的にコア・ロジック・チップセット内に実施される。
【0016】隣接するAGPグラフィックス・コントロ
ーラのデバイス・アドレスは、GARTテーブルを用い
ることによって、コンピュータ・システムの物理メモリ
内に位置する、対応する物理アドレスにマップ(変換)
される。尚、GARTテーブルも、物理メモリに位置し
てもよい。GARTテーブルは、コア・ロジック・チッ
プセットが、AGP、ホスト、またはPCIバスのいず
れかから発生する可能性があるAGPデバイス・アドレ
スをリマップするために用いられる。GARTテーブル
は、コンピュータ・ソフトウエアのオペレーティング・
システムにGARTサービスを提供する「GARTミニ
ポート・ドライバ」と呼ばれるソフトウエア・プログラ
ムが管理する。
【0017】システム・メモリに存在する場合、GAR
Tテーブルは、コア・ロジック・ドライバ・ソフトウエ
ア(すなわち、GARTミニポート・ドライバ)、若し
くは他のソフトウエア・プログラム又はアプリケーショ
ン仕様インターフェース(API)プログラムによっ
て、読み出し/書き込みが実行される。GARTテーブ
ルは、AGPグラフィックス・コントローラによって要
求されたグラフィックス・データの仮想アドレスを、シ
ステム・メモリ注の物理アドレス・ページにリマッピン
グするために、コンピュータ・システムのコア・ロジッ
クにより使用される。AGPグラフィックス・コントロ
ーラは、隣接する仮想アドレス空間で動作するが、テク
スチャ等のグラフィックス・データを記憶するために、
物理システム・メモリの非連続ページにおいても使用さ
れる。
【0018】
【発明が解決しようとする課題】一般に、コア・ロジッ
クは、GARTテーブル・エントリを最も最近使用した
サブセットをキャッシュに記憶して、アドレス変換が生
じたときにシステム能力(パフォーマンス)を向上させ
る。しかしながら、キャッシュに記憶されたGARTテ
ーブル・エントリは、システム・メモリ中の対応するG
ARTテーブル・エントリが更新された場合に不要又は
無効なものとなる。システム・メモリのGARTテーブ
ル・エントリの更新は、例えば、GARTミニポート・
ドライバがグラフィックス・アプリケーション・プログ
ラムによって呼び出されて、システム・メモリ中のグラ
フィックス・データのページを割り当て又は割り当て解
除するときに生じるものであり、これにより、GART
テーブル・エントリの更新が必要となる。システム・メ
モリ中のGARTテーブル・エントリの更新は、通常、
コア・ロジックが書き込みアドレスの全てをGARTテ
ーブルにスヌープすることが必要となる。これは、コア
・ロジック中に比較ロジックを具備することが必要とな
る。コア・ロジックはまた、GARTミニポート・ドラ
イバがシステム・メモリ中のGARTテーブルを更新す
る度に、キャッシュ内のGARTテーブル・エントリを
全て無効化するよう、プログラム可能なレジスタに指令
する。スヌープをするためにコア・ロジック・チップセ
ット中に比較ロジックを構築することは、困難であり、
かつ、ゲートの数を増大させてしまい、これにより、コ
ア・ロジック・チップセットの価格を増加させてしま
い、また、構成を複雑にしてしまう。広範囲の無効化
は、キャッシュ中の無効化を必要としていないGART
テーブル・エントリをもフラッシュしてしまうことにな
る。したがって、アドレス変換がAGPトランザクショ
ン要求にために必要な場合、AGPバス能力を低下させ
てしまう。
【0019】このような観点から、コア・ロジック・チ
ップセットにキャッシュされたGARTテーブル・エン
トリの内の不要なエントリを、有効状態を保持している
他のGARTテーブル・エントリに影響を与えることな
く、無効化及び更新する方法の提供が待望されている。
【0020】本発明の第1の目的は、GARTテーブル
・エントリを個々に無効化及び更新することである。本
発明の第2の目的は、GARTテーブル・アドレス変換
機能を有するコア・ロジック・チップセット及びGAR
Tキャッシュに必要なロジックを低減させることであ
る。本発明の第3の目的は、物理メモリ中のGARTテ
ーブルへの書き込みをスヌープする必要がないようにす
ることである。本発明の第4の目的は、物理メモリ中の
グラフィックス・データのページがマッピングされてい
ないときに、キャッシュ中の対応するGARTテーブル
・エントリを無効化することである。本発明の第5の目
的は、物理メモリ中のグラフィックス・データのページ
がリパッピングされたときに、キャッシュ中の対応する
GARTテーブル・エントリを更新することである。本
発明の第6の目的は、GARTテーブル・エントリを物
理メモリからコア・ロジック・チップセットにプリフェ
ッチすることである。
【0021】
【課題を解決するための手段】本発明の上述した目的
は、少なくとも部分的に、コンピュータ・システム内
に、AGPバスとホストおよびメモリ・バスとの間のブ
リッジとして機能するコア・ロジック・チップセットを
備え、コア・ロジック・チップセットが「グラフィック
ス・アドレス・リマッピング・テーブル」(「GART
テーブル」)を用いて、仮想アドレスを、コンピュータ
・システム・メモリ内に位置する物理アドレスにリマッ
プすることによって満たされる。GARTテーブルのエ
ントリも、コンピュータ・システム・メモリ内に位置付
けてもよい。コア・ロジック・チップセットはGART
テーブルを用い、AGPグラフィックス・コントローラ
が、隣接仮想アドレス空間内のグラフィックス情報のア
ドレスを参照するが、実際にはコンピュータ・システム
の物理システム・メモリの非隣接ブロックを用いること
を可能とする。尚、隣接仮想アドレス空間のことを、以
降「AGPデバイス・アドレス空間」と呼ぶ。グラフィ
ックス情報は、テクスチャ、コマンド・リスト等とする
ことができる。本発明のコア・ロジック・チップセット
は、必要なGARTテーブル・エントリをキャッシュ
し、コンピュータ・メモリ・システムからのグラフィッ
クス・データの読み出しの高速化を図ることができる。
【0022】GARTテーブルは、複数のエントリを有
している。GARTミニポート・ドライバは、GART
テーブルを構成するエントリを、コンピュータ・システ
ムのシステム・メモリに生成する。各GARTテーブル
・エントリは、物理メモリ内のページの幾つかの上位バ
イトの物理アドレスを参照する変換ポインタを含み、さ
らに、参照されたページに対応するフィーチャ(特徴)
・フラグ(feature flag)も含んでいる。GARTテーブ
ルによって参照された物理メモリ内の各ページは、AG
Pグラフィックス・テクスチャを含んでいる。特徴フラ
ッグは、ポインタ・アドレスによって参照されたメモリ
の関連ページ各々をカスタマイズするために使用され
る。例えば、物理メモリ内の1ページはテクスチャ、コ
マンド・リスト等のデータを4,096バイト(約4K
B)収容することができる。GARTテーブル・エント
リは、合計32ビットのバイナリ情報として、4つの8
ビット・バイトを含むことができる。GARTテーブル
・エントリ内の上位側の20ビット(31:12)を物
理メモリ・ページ・アドレスに用いる場合、12の下位
ビット(11:0)は、システム設計者が当該メモリ・
ページに関連するある種の機能および属性を定義および
カストマイズするために使用可能である。
【0023】例えば、フィーチャ・フラッグ(下位側の
ビット)は、以下のように表される。1)キャッシュ可
能性ビット(cacheability bit)によって、4KBページ
がキャッシュ可能か否かについて示すことができ、2)
ライト(書き込み)結合可能性ビット(write combinabl
e bit)によって、4KBページがライト結合可能か否か
について示すことができ、3)ダーティ・ビット(dirty
bit)によって、当該ページが変更されたか否かについ
て示すことができ、4)リンク・ビットによって、次の
GARTテーブル・エントリが現GARTテーブル・エ
ントリと関連付けられているか否かについて示すことが
でき、更に5)存在ビット(present bit)によって、G
ARTテーブル・エントリ(ビット31:12)が参照
したページが、GARTミニポート・ドライバによって
リザーブされているか否かについて示すことができる。
これらフィーチャ・ビットは、その他多くの組み合わせ
も利用可能であり、本発明の範囲内において予期される
ものである。これらフィーチャ・ビット(11:0)の
ことを、以降「フラグ・ビット」と呼ぶこともあり、典
型的にGARTミニポート・ドライバによって管理され
るが、コンピュータ・システムの他のいずれかのデバイ
ス・ドライバ(即ち、ROM BIOS等)によるアク
セスも可能である。何故なら、GARTテーブル・エン
トリは、通常、コンピュータ・システム・メモリ内に位
置するからである。本発明に係るコア・ロジック・チッ
プセットは、システム・メモリからのグラフィックス・
データのページの検索を高速化し、かつAGPデバイス
・アドレス空間への変換を高速化するために、必要なG
ARTテーブル・エントリをキャッシュすることができ
る。
【0024】本発明の実施形態においては、コア・ロジ
ック・チップセットは、単一レベルすなわち1レベルリ
マッピングが実行される場合には、複数のGARTテー
ブル・エントリから選択して記憶し、2レベルのリマッ
ピングが実行される場合には、複数のGARTディレク
トリから選択して記憶するキャッシュメモリを構成す
る。キャッシュの各エントリは、複数のGARTテーブ
ル・エントリから選択されたものを記憶し、AGPデバ
イス・アドレス空間の線形アドレスのページ境界に参照
される。選択されてキャッシュに記憶されたGARTテ
ーブル・エントリは、物理メモリに記憶されたグラフィ
ックス・データのページ及び上記説明したフラッグ・ビ
ットを有している。レジスタ・ロジックは、キャッシュ
内の各GARTテーブル・エントリに関する「GART
キャッシュ・エントリ更新ビット」及び「GARTキャ
ッシュ・エントリ無効化ビット」に関連付けられてい
る。
【0025】コア・ロジック・セットのAGPメモリ・
マッピング・コントロール・レジスタは、ホスト−PC
Iブリッジ・コンフィギュレーション・ヘッダに存在す
るベース・アドレス・レジスタを介してアクセスされ
る。ベース・アドレスは、決定されて、POST中に、
システムBIOSによってベース・アドレス・レジスタ
に書き込まれる。AGPメモリ・マッピング・コントロ
ール・レジスタは、コンピュータ・システムの動作中
に、チップセット内で機能的にAGPをダイナミックに
制御するために、GARTミニポート・ドライバによっ
て使用される。公的には、GARTキャッシュ・エント
リ・コントロール・レジスタは、GARTミニポート・
ドライバ等にソフト上によって、特定のGARTキャッ
シュ・エントリを更新及び無効化するために使用され
る。GARTミニポート・ドライバが、システムの物理
メモリに記憶されているGARTテーブルのエントリを
更新及び無効化するためのコール(要求)を受け取る
と、キャッシュ内のGARTテーブル・エントリの一貫
性を維持することが要求される。更新又は無効化のGA
RTテーブル・エントリGARTキャッシュ中に存在し
ない場合、無効化機能は何の影響も与えない。キャッシ
ュ中のGARTテーブル・エントリが更新されるべき場
合、本発明においては、システムの物理メモリから新G
ARTテーブル・エントリをプリフェッチする。これに
より、より高速のアドレス変換ができる。
【0026】GARTキャッシュ・エントリ・コントロ
ール・レジスタは32ビット幅(ダブル・ワード)で、
無効化又は更新すべき特定のGARTテーブル・エント
リのAGPデバイス・アドレスヲ規定する複数のビット
(31:12)からなるGARTエントリ・オフセット
を備えている。GARTミニポート・ドライバは、線形
アドレス(Lin-to-Devコマンド)からデバイス・アドレ
スヲ生成する。デバイス・アドレスがGARTミニポー
ト・ドライバによって該レジスタに書き込まれると、G
ARTキャッシュ・エントリ更新ビット/GARTキャ
ッシュ・エントリ無効化ビット(ビット1及び2)に適
宜設定されている情報に基づいて、参照されたキャッシ
ュ・エントリを更新/無効化するが、これは、以下のよ
うにして実行される。
【0027】GARTキャッシュ・エントリ更新ビット
がロジック1にセットされていると、チップセットは、
システム・メモリ内のGARTテーブルの現在のエント
リにより、GARTエントリ・オフセット・ビット3
1:12によって参照されたGARTキャッシュ・エン
トリを更新する。更新機能は、このレジスタへの書き込
みに続いて実行される。更新機能が完了すると、コア・
ロジック・チップセットは当該ビットを0にリセットす
る。更新動作が完了を有効化するために、GARTミニ
ポート・ドライバが該ビットをポーリングする。GAR
Tキャッシュ・エントリ無効化ビットがロジック1にセ
ットされていると、GARTテーブル・エントリ・キャ
ッシュに存在する場合、チップセットは、GARTエン
トリ・オフセット・ビット31:12によって参照され
たGARTキャッシュ・エントリを無効化する。無効化
機能は、このレジスタへの書き込みに直後に実行され
る。無効化動作が完了すると、コア・ロジック・チップ
セットは当該ビットを0にリセットする。コア・ロジッ
ク・チップセットはまた、更新すべきGARTテーブル
・エントリをキャッシュ中にプリフェッチする。
【0028】グラフィックス・アプリケーションは、例
えば、マイクロソフト社のDirectDraw APIがテクスチ
ャ用にAGPメモリの32KB領域を割り当て解除する
よう要求する。すると、DirectDrawは、AGPデバイス
・ドライバ(GARTミニポート・ドライバ)にPageUn
Mapコールを発行し、GARTテーブル中の指定された
8つの4KBページを非マッッピングする。AGPデバ
イス・ドライバは、GARTキャッシュ・エントリ・コ
ントロール・レジスタに書き込みを行って、AGPメモ
リの非マッピングされた8つの4KBページに関連する
8つのGARTテーブル・エントリのみを無効化する。
本発明においては、コア・ロジック・チップセットは、
これら8つのGARTテーブル・エントリがキャッシュ
されたかどうかを検出し、そして、GARTキャッシュ
中に存在する場合に該エントリを無効化する。
【0029】他の例は、グラフィックス・アプリケーシ
ョンが、DirectDraw APIにテクスチャ用にAGPメモ
リの32KB領域を割り当てるよう要求する場合であ
る。すると、DirectDrawは、AGPデバイス・ドライバ
にPageMapコールを発行し、GARTテーブル中の指定
された8つの4KBページをリマッッピングする。以前
のAGPトランザクション機能により、GARTキャッ
シュは、これら8つのページに対応する以前のアドレス
・リマップ値を含んでいる。AGPデバイス・ドライバ
はGARTキャッシュ・エントリ・コントロール・レジ
スタに書き込みを行って、GARTキャッシュ中に現存
するGARTテーブル・エントリを無効化し、かつ更新
する。無効化機能は、基本的には、キャッシュ中の現在
のエントリを無効化することである。しかしながら、更
新機能は、AGPトランザクション要求を実行するとき
に先のフィーチャを使用するために、コア・ロジック・
チップセットが新GARTテーブル・エントリをプリフ
ェッチするために使用される。これにより、AGPメモ
リへのアクセスが開始されたときに、コア・ロジック・
キャッシュに変換されたアドレスが既に記憶されている
ので、AGP能力を改善することができる。
【0030】本発明の特徴の1つは、GARTテーブル
・エントリの各々に対して、該テーブル中の他のエント
リに影響を及ぼすことなく、GARTキャッシュ中で無
効化又は更新の少なくとも一方が実行されることであ
る。本発明の利点は、コア・ロジック・チップセットに
関連させるスヌープ・ロジックを必要としないことであ
る。他の利点は、DirectDrawがシステムの物理メモリに
あるGARTテーブル中のエントリを更新するコールを
発生する度に、GARTデバイス・ドライバが、GAR
Tキャッシュ中のいくつのエントリを無効化するのかを
制御することができることである。更に他の利点は、A
GPメモリ・トランザクション要求をAGPグラフィッ
クス・デバイスが発生する前に、システムの物理メモリ
からGARTテーブル・エントリを予めローディングで
きることである。
【0031】
【発明の実施の形態】本発明は、ホスト・プロセッサと
メモリ・バスとの間のブリッジ、AGPデバイス(群)
に適合するAGPバス、およびPCIデバイスに適合す
るPCIバスを実施可能なコンピュータ・システムにお
いて、コア・ロジック・チップセットを提供する。AG
Pデバイスは、以降「AGPデバイス・アドレス空間」
と呼ぶ隣接する仮想アドレス空間にアドレスすることに
よって、テクスチャのようなグラフィカル・データを利
用する、グラフィックス・コントローラとすればよい。
AGPデバイス・アドレス空間は、コア・ロジック・チ
ップセットによって、コンピュータ・システムの物理メ
モリ内に配置されている非隣接メモリ・ページから変換
されたものである。コア・ロジック・チップセットは
「グラフィックス・アドレス・リマッピング・テーブ
ル」(「GARTテーブル」)を利用する。このテーブ
ルは、システムのランダム・アクセス・メモリのよう
な、コンピュータ・システムの物理メモリ内に置くこと
ができ、コア・ロジック・チップセット・ソフトウエア
・ドライバ(群)によって制御することができる。GA
RTテーブルの機能は、AGPデバイスによって参照さ
れた仮想アドレスを、コンピュータ・システムの物理メ
モリ内に位置するグラフィックス情報の物理アドレスに
リマップすることである。GARTテーブルの各エント
リは、物理メモリのページに対して、第1のバイト・ア
ドレス位置を記述する。物理メモリのページのサイズ
は、4,096バイト(4KB)とするとよい。GAR
Tテーブル・エントリは、メモリ・アドレス変換ポイン
タと、ソフトウエアで制御可能なフィーチャ・フラグ
(図13参照)とから成る。これらのフィーチャ・フラ
グは、物理メモリの関連するページを任意変更(customi
ze)するために使用してもよい。APIソフトウエアお
よびミニポート・ドライバは、これらのフィーチャ・フ
ラグに対するライトおよび/またはリードを行うことが
できる。
【0032】例示の目的のために、これより本発明の好
適な実施形態を、インテル社のx86マイクロプロセッ
サ・アーキテクチャを利用したコンピュータ・システム
について説明する。尚、ある種の用語および参照(refer
ence)はこれらのプロセッサ・プラットフォームに特定
したものである。AGPおよびPCIは、インターフェ
ース規格であるが、ハードウエアからは独立しており、
これらのインターフェース規格に合わせて設計されたあ
らゆるホスト・コンピュータとでも利用可能である。本
発明は、AGPおよびPCIインターフェース規格を利
用するあらゆるコンピュータ・プラットフォームに対す
る適合化および応用が可能であることが、コンピュータ
・システムの技術における当業者には認められよう。
【0033】先に引用したPCI仕様書は、容易に入手
可能であり、この言及により本願にも含まれるものとす
る。また、先に引用した、1996年7月31日付け
の"Accelerated Graphics Port Interface Specificati
on Revision 1.0"(加速グラフィックス・ポート・イン
ターフェース仕様書改訂第1.0版)と題するAGP仕
様書は、インテル社から容易に入手可能であり、この言
及により本願にも含まれるものとする。このAGP仕様
の更に詳しい定義および改良が、1997年4月1日付
けの"Compaq's Supplement to the 'Accelerated Graph
ics Port Interface Specification Version 1.0' "
(コンパックの「加速グラフィックス・ポート・インタ
ーフェース仕様書第1.0版」に対する補足)第0.8
版に更に詳しく定義されており、この言及により、本願
にも含まれるものとする。これらのAGP仕様書は双方
とも、1997年5月9日に出願されたRonald T. Hora
nおよびSompong Olarig(ロナルドT.ホーランおよび
ソンポン オラリグ)による"Dual Purpose Apparatus,
Method and System for Accelerated Graphics Port a
nd Peripheral Component Interconnect"(加速グラフ
ィックス・ポートおよび周辺素子相互接続のための二重
目的装置、方法およびシステム)と題する、本願と同一
所有者の同時係属中の米国出願番号第08/853,2
89号に、補足資料AおよびBとして含まれている。こ
の出願の内容も、この言及により本願に含まれるものと
する。
【0034】これより、本発明の好適な実施形態の詳細
が図式で示されている図面を参照する。図面における同
様のエレメントは同様の番号で引用し、類似のエレメン
トは、同様の番号に異なる小文字の添え字を付けて表す
ことにする。これより図2を参照すると、本発明を利用
したコンピュータ・システムの概略ブロック図が示され
ている。コンピュータ・システムは全体的に番号200
で示されており、中央処理装置(群)(「CPU」)1
02、コア・ロジック・チップセット204、システム
・ランダム・アクセス・メモリ(「RAM」)106,
ビデオ・グラフィックス・コントローラ210、ローカ
ル・フレーム・バッファ208,ビデオ・ディスプレイ
112、PCI/SCSIバス・アダプタ114,PC
I/EISA/ISAブリッジ116、およびPCI/
IDEコントローラ118を含む。マイクロプロセッサ
・コンピュータ・システムの最新技術によるコンピュー
タ・システム200には、単一またはマルチレベルのキ
ャッシュ・メモリ(図示せず)も含むことができる。C
PU102は、対称または非対称マルチ・プロセッサ・
コンフィギュレーションでは、複数のCPU102とす
ることも可能である。
【0035】CPU(群)102は、ホスト・バス10
3を通じて、コア・ロジック・チップセット204に接
続されている。システムRAM106は、メモリ・バス
105を通じて、コア・ロジック・チップセット204
に接続されている。ビデオ・グラフィックス・コントロ
ーラ(群)210は、AGPバス207を通じて、コア
・ロジック・チップセット204に接続されている。P
CI/SCSIバス・アダプタ114、PCI/EIS
A/ISAブリッジ116、およびPCI/IDEコン
トローラ118は、一次PCIバス109を通じて、コ
ア・ロジック・チップセット204に接続されている。
また、PCIバス109には、ネットワーク・インター
フェース・カード(「NIC」)122およびPCI/
PCIブリッジ124も接続されている。NIC122
およびPCI/PCIブリッジ124のような、PCI
デバイスの中には、コンピュータ・システム200のマ
ザーボード(図示せず)上のPCIコネクタに差し込む
ことができるものもある。
【0036】ハード・ディスク130およびテープ・ド
ライブ132が、SCSIバス111を通じて、PCI
/SCSIバス・アダプタ114に接続されている。N
IC122は、ローカル・エリア・ネットワーク119
に接続されている。PCI/EISA/ISAブリッジ
116は、EISA/ISAバス113を通じて、RO
M BIOS140、不揮発性ランダム・アクセス・メ
モリ(NVRAM)142、モデム120、および入出
力コントローラ126に接続する。モデム120は、電
話回線121に接続する。入出力コントローラ126
は、キーボード146、リアル・タイム・クロック(R
TC:real time clock)144、マウス148、フロ
ッピ・ディスク・ドライブ(「FDD」)150、およ
び直列/並列ポート152,154とインターフェース
する。EISA/ISAバス113は、PCIバス10
9よりも速度が遅い情報バスであるが、EISA/IS
Aバス113とインターフェースする方がコストは低
い。
【0037】次に図3を参照すると、本発明による、図
2のコア・ロジック・チップセット204の概略機能ブ
ロック図が示されている。コア・ロジック・チップセッ
ト204は、機能的に、CPUホスト・バス・インター
フェースおよびキュー302、メモリ・インターフェー
スおよび制御部304、ホスト/PCIブリッジ30
6、AGPロジック318、ならびにPCI/PCIブ
リッジ320を備えている。AGPロジック318は、
AGPアービタ316、GARTキャッシュ322、A
GPデータおよび制御部310、ならびにAGP要求/
回答キュー312を備えている。CPUホスト・バス・
インターフェースおよびキュー302は、ホスト・バス
103に接続し、コンピュータ・システム200のCP
U(群)102と関連する全てのデータ、アドレスおよ
び制御信号のためのインターフェース・ロジックを含
む。多数のCPU102およびそれと連動するキャッシ
ュ・メモリ(図示せず)も考えられ、本発明の範囲内に
該当するものとする。
【0038】CPUホスト・バス・インターフェースお
よびキュー302は、コア・ロジック・バス311を通
じて、ホスト/PCIブリッジ306ならびにメモリ・
インターフェースおよび制御部304とインターフェー
スする。CPUホスト・バス・インターフェースおよび
キュー302は、コア・ロジック・バス311を通じ
て、AGPロジック318とインターフェースする。メ
モリ・インターフェースおよび制御部304は、コア・
ロジック・バス309を通じて、AGPロジック318
とインターフェースする。別個のバス309,311を
有することの利点の1つとして、同時バス動作をその上
で実行可能であることがあげられる。例えば、ホスト・
バス103上のCPU102がPCIバス109上の独
立したPCIデバイス(即ち、NIC122)にアクセ
スしている間に、AGPバス207上でではバス105
に接続されているシステムRAM106に格納されてい
るビデオ・データをビデオ・グラフィックス・コントロ
ーラ210(AGPデバイス)に転送することができ
る。
【0039】ホスト・バス・インターフェースおよびキ
ュー302は、CPU102がサイクルをパイプライン
化し、スヌープ・アクセス(snoop access)をスケジュー
ルすることを可能にする。メモリ・インターフェースお
よび制御部304は、コンピュータ・システムRAM1
06に、制御およびタイミング信号を発生する。コンピ
ュータ・システムRAM106は、同期ダイナミックR
AM等とするとよい。メモリ・インターフェースおよび
制御部304はアービタ(図示せず)を有し、CPUラ
イト、CPUリード、PCIライト、PCIリード、A
GPリード、AGPライト、およびダイナミック・メモ
リ・リフレッシュのためのメモリ・アクセス間で選択を
行なう。調停を現メモリ・サイクルにパイプライン化し
てもよく、これによって、現メモリ・サイクルを完了す
る前に、メモリ・バス105上で次のメモリ・アドレス
を確実に得ることができる。この結果、メモリ・サイク
ル間の遅延は、あるにしても、最小となる。メモリ・イ
ンターフェースおよび制御部304は、PCIマスタが
リード・マルチプル・コマンド(read multiple comman
d)を発行する場合、PCIマスタ・リードに先駆けて読
み取ることができる。これについては、PCI仕様書に
更に詳しく記載されている。
【0040】ホスト/PCIブリッジ306は、PCI
バス109のインターフェースを制御する。CPU10
2がPCIバス109にアクセスするとき、ホスト/P
CIブリッジ306はCPIマスタとして動作する。P
CIデバイスがPCIバス109上のマスタとなると、
ホスト/PCIブリッジ306はPCIスレーブとして
動作する。ホスト/PCIブリッジ306は、そのPC
Iバス109上のPCIデバイス・ターゲット(図示せ
ず)のために、ベース・アドレス・レジスタを内蔵して
いる。
【0041】AGPデータおよび制御部310、AGP
アービタ316,およびAGP要求/回答キュー312
は、AGPバス207にインターフェースし、更に、A
GPおよびPCI仕様書に規定されている信号の実施の
ために、信号、電力および接地接続部(図示せず)も有
する。AGPバス207は、AGPデバイス(群)およ
び/またはAGPコネクタ(群)(図示せず)に接続す
るように改造されている。GARTキャッシュ322
は、GARTテーブル・エントリを格納するために用い
られ、コンピュータ・システム・メモリ106内のラン
ダムな非隣接AGPページ412(図4のA)を隣接A
GPデバイス・アドレス空間406に並び替え、読み出
すことにより、グラフィックス・コントローラ210に
よる使用を可能にする。
【0042】PCI/PCIブリッジ320は、PCI
バス109とAGPバス207との間に接続されてい
る。PCI/PCIブリッジ320は、コンピュータ・
システムBIOS140内の既存の一覧コード(enumera
tion code)が、AGPバス207上に位置する、ビデオ
・グラフィックス・コントローラ210のような、AG
P準拠デバイスを認識し、かつ処理することを可能にす
る。PCI/PCIブリッジ320は、例えば、POS
Tの間バス一覧によって、双方ともAGPバス207に
接続されているAGPグラフィックス・コントローラ2
10またはAGPロジック318の制御およびステータ
ス・レジスタのコンフィギュレーションを行なうために
使用することができる。これについては、以下で更に詳
しく説明する。
【0043】次に、図4のA〜図4のC(図13参照)
を参照すると、コンピュータ・システム・メモリ・マッ
プ、コンピュータ・システム・メモリ内のGARTテー
ブル、およびGARTテーブル・エントリの概略図が示
されている。コンピュータ・システム・メモリ106の
論理メモリ・マップは、全体として番号402で示され
ており、グラフィックス・コントローラの物理アドレス
空間は番号404で示されており、AGPデバイス・ア
ドレス空間(仮想メモリ)は番号406で示されてい
る。コンピュータ・システム200は、32ビット・ア
ドレスで、4ギガバイト(「GB」)までのメモリにア
ドレスすることができるが、この4GBのメモリ・アド
レス空間のいくつかは、AGPビデオ・グラフィックス
・コントローラ210のメモリのような、種々のデバイ
スと関連するローカル・メモリのために用いてもよい。
尚、AGPビデオ・グラフィックス・コントローラ21
0のメモリは、ローカル・フレーム・バッファ208,
テクスチャ・キャッシュ、アルファ・バッファ、Z−バ
ッファ等を含む場合があり、全てグラフィックス・コン
トローラの物理アドレス空間404内でアドレスされ
る。加えて、本発明によれば、メモリ・アドレス空間4
02の中には、AGPデバイス・アドレス空間406の
ために用いられるものもある。図4のAでは、コンピュ
ータ・システム・メモリ106の最下位(最も低いアド
レス)は番号408で表され、最上位(最も高いアドレ
ス)は番号410で表されている。最下位408と最上
位410との間には、AGPメモリの種々のブロック即
ち「ページ」が、番号412で表されている。各ページ
412は、隣接するメモリ・アドレスの集合を有する。
【0044】本発明では、これらのAGPメモリ・ペー
ジ(412a,412b,412cで示す)のいくつか
は、テクスチャ、リスト等のようなAGP情報を格納す
るために用いられ、少なくとも1つのページ(414で
示す)は、GARTテーブル414内のエントリを格納
するために用いられる。GARTテーブル414は、複
数のエントリ418(図4のB)を含む。コンピュータ
・システム200内で用いられる、関連するAGPデバ
イス・アドレス空間406全てを表すために、十分なG
ARTテーブル・エントリ419が格納されている。各
GARTテーブル・エントリ418は、AGPメモリの
各ページ412のベース・アドレス416を表す。別の
メモリ・ページを用いてGARTディレクトリ(図示せ
ず)を格納してもよい。GARTディレクトリは、二レ
ベル・アドレス・リマッピング(two-level address rem
apping)のために用いられる。これについては、以下で
更に詳しく説明する。各GARTテーブル・エントリ4
18は、32の二進ビット情報(図4のC)を格納す
る。GARTテーブル414は、上位ビット(31:1
2)を用いて、対応する各4KBページ412の最初の
バイトのベース・アドレス416を格納することによ
り、AGPデバイス・アドレス空間406をページ41
2のアドレスにリマップするために用いられる。AGP
デバイス・アドレス406の下位12ビットは、ページ
412のアドレスの下位12ビットと同一である。図1
1のAおよび図12のAならびにそれに関係する明細書
の記載も参照されたい。したがって、各GARTテーブ
ル・エントリ418によってアドレスされる4KBサイ
ズのページ412を用いる場合、下位12ビット(1
1:0)は、APGテクスチャ・データにアドレスする
以外、空きとなり、他の使用に供することができる。他
のメモリ・ページ・サイズでは、GARTテーブル・エ
ントリ418に異なるビット数を用い別の使用に供する
ことも可能である。
【0045】各GARTテーブル・エントリ418は、
図4のCを参照すると、4つの8ビット・バイトとし
て、合計32ビットの二進情報を含むことができる。G
ARTテーブル・エントリ418内の上位20ビット4
26(31:12)を、対応する4KBページ412の
ベース・アドレス416に使用する場合、下位12ビッ
ト(11:0)は、メモリ・ページ412に関連するあ
るフィーチャ(feature)および属性の定義および/また
はカスタマイズ(customize)を行なうために使用可能で
ある。これら下位ビット(11:0)を、これ以降、
「フィーチャ・ビット」または「フィーチャ・フラグ」
と呼ぶことにする。
【0046】ビデオ・グラフィックス・コントローラ2
10は、AGPバス207上でアドレスをアサートし、
必要なグラフィック・テクスチャ・データを要求する。
AGPロジック318は、要求されたグラフィック・テ
クスチャ・データのためにこれらのアドレスを受け取
る。要求されたグラフィック・テクスチャ・データはA
GPデバイス・アドレス406を参照するが、AGPデ
バイス・アドレス406は仮想アドレスであり、コンピ
ュータ・システム内には物理的に存在しない。したがっ
て、AGPロジックは、これらのAGPデバイス・アド
レス406を、メモリ106内に位置する実際のAGP
ページ412にリマップしなければならない。これらの
AGPページ412は隣接しているのではなく、しかも
何らかの特定の順序になっている訳でもない。GART
テーブルは、コア・ロジック・チップセット204が、
AGPデバイス・アドレス406を、物理メモリ106
(論理メモリ・マップ402)内に位置するAGPペー
ジ412の実際の物理アドレスにリマップするために用
いる。最後に用いられたGARTテーブル・エントリ4
18のサブセットを、コア・ロジックがキャッシュし、
アドレス変換を行なう場合のAGPの処理能力向上を図
る。AGPアドレス変換速度は、メモリ106に対する
リード(読み出し)が選択されたGARTテーブルエン
トリを得るために必要でない場合、即ち、GARTキャ
ッシュ322のヒットがある場合はいつでも、向上す
る。
【0047】次に図5を参照すると、本発明の概略的な
機能ブロック図およびメモリ・マップが示されている。
ビデオ・グラフィックス・コントローラ210がAGP
バス207上でグラフィックス・テクスチャ・データを
要求した場合、AGPロジック318は、アサートされ
たAGPデバイス・アドレス空間406を評価し、関連
するGARTテーブル・エントリ418がキャッシュ3
22内にあるか否かについて判定を行なう。GARTテ
ーブル・エントリ418がキャッシュ322内にある場
合(キャッシュ・ヒット)、AGPロジック318は、
物理メモリ402内に配置されているAGPページ41
2のメモリ・リードを行い、ページ412を、所望のA
GPデバイス・アドレス空間406にリマップする。こ
れについては、以下で更に詳しく説明する。しかしなが
ら、必要なGARTテーブル・エントリ418がキャッ
シュ322内で見つからない場合、AGPロジック31
8は、最初に、必要なGARTテーブル・エントリ41
8でキャッシュ322を更新しなければならない。
【0048】図5においては、明確化のために4つのG
ARTテーブル・エントリ418を図示しているが、本
発明のコア・ロジック・チップセット204のAGPキ
ャッシュ322内には、あらゆる数のGARTテーブル
・エントリ418を格納することができる。GARTテ
ーブル・エントリ418を、物理メモリ106内に配置
されたGARTテーブル414から読み出す。一旦正し
いGARTテーブル・エントリ418をキャッシュ32
2に書き込んだなら、AGPページ412を物理メモリ
106から読み出すことができる。AGPページ412
は、コア・ロジック・チップセット204には格納しな
いが、ビデオ・グラフィックス・コントローラ210
は、直接メモリ106からこれを用いることができる。
AGPロジック318は、アドレス変換器として機能
し、不規則な順序で隣接していないAGPページ412
を、隣接するAGPデバイス・アドレス空間406(ビ
デオ・グラフィクス・コントローラ210の仮想メモ
リ)にリマップする。本発明は、一レベルGARTまた
は二レベルGART変換のいずれかを用いて機能する。
これについては、以下で更に詳しく説明する。
【0049】本発明の一実施例においては、AGPロジ
ック318は、単一レベル(1レベル)リマッピングが
実行される場合に、GARTテーブル・エントリ418
aを選択して記憶するためのキャッシュ・メモリ322
を備えている。まなお、2レベルのアドレス・リマッピ
ングが実行される場合(不図示)は、GARTディレク
トリを選択してキャッシュ・メモリ322に格納する。
各記憶位置には、GARTテーブル414から選択され
たエントリ418aが記憶され、AGPデバイス・アド
レス空間406の線形アドレス406aのページ境界
に、該記憶位置は参照される。キャッシュ322に記憶
されたGARTテーブル414の選択されたエントリ4
08aは、物理メモリ106に記憶されたグラフィック
ス・データのページ412のベース・アドレスと、フラ
グ・ビットとを備えている。レジスタ・ロジックは又、
キャッシュ中のGARTテーブル・エントリ418aの
各々に、GARTキャッシュ・エントリ更新ビット50
2及びGARTキャッシュ・エントリ無効化ビット50
4を関連づけるために、AGPロジック318中に備え
られている。
【0050】コア・ロジック・チップセット204のA
GPメモリ・マッピング・コントロール・レジスタ(図
33)は、ホスト−PCIブリッジ・コンフィギュレー
ション・ヘッダ(図17)に存在するベース・アドレス
・レジスタ(図17,図19)を介してアクセスされ
る。ベース・アドレスは、POSTの期間中、システム
BIOSによってベース・アドレス・レジスタBAR1
1704に書き込まれる。AGPメモリ・マッピング・
コントロール・レジスタ(図33)は、GARTミニポ
ート・ドライバによって用いられて、コンピュータ・シ
ステム200の動作中、コア・ロジック・チップセット
204内でAGP機能を動的に制御する。好適には、G
ARTキャッシュ・エントリ・コントロール・レジスタ
1916(図33、図42)は、GARTミニポート・
ドライバ等のソフトウエアによって用いられて、特定の
GARTキャッシュ・エントリ418aを更新/無効化
する。GARTミニポート・ドライバがシステムの物理
メモリ中にあるGARTテーブル内のエントリを更新/
無効化するためのコールを受け取ったとき、キャッシュ
322内のGARTテーブル・エントリの一貫性を維持
するようよう要求する。更新/無効化すべきGARTテ
ーブル・エントリがGARTキャッシュ322に存在し
ていない場合、無効化機能は実行されない。キャッシュ
中のGARTテーブル・エントリ418aが更新される
べき場合、AGPロジック318は、システムの物理メ
モリ106からGARTテーブル・エントリをプリフェ
ッチする。これにより、アドレス変換がよう高速化され
る。
【0051】GARTキャッシュ・エントリ・コントロ
ール・レジスタ1916は、32バイト幅(ダブル・ワ
ード)であり、かつ、複数のビット(31:12)を有
するGARTエントリ・オフセット1950(図41)
を備えている。これらビットは、無効化/更新すべきG
ARTテーブル・エントリ418aのAGPデバイス・
アドレス406aGARTキャッシュ・エントリ更新1
952(ビット番号1)及びGARTキャッシュ・エン
トリ無効化1954(ビット番号0)を規定する。GA
RTミニポート・ドライバは、このデバイス・アドレス
をリニア(線形)・アドレス(Lin-to-Devコマンド)か
ら生成する。デバイス・アドレス406aがGARTミ
ニポート・ドライバによってGARTキャッシュ・エン
トリ・コントロール・レジスタに書き込まれたとき、A
GPロジック318は、参照されたキャッシュ・エント
リを無効化/更新する。これは、GARTキャッシュ・
エントリ更新1952/GARTキャッシュ・エントリ
無効化1954の設定に基づいて、以下膿瘍にして実行
される。GARTキャッシュ・エントリ更新1952が
ロジック1にセットされている場合、AGPロジック3
18は、GARTエントリ・オフセット1950のビッ
ト31:12によって参照されているGARTテーブル
・エントリ418aを、システム・メモリ106のGA
RTテーブル414中の現在のエントリ418に更新す
る。更新機能は、このレジスタへの書き込みに続いて実
行される。更新動作が完了すると、AGPロジック31
8は、GARTキャッシュ・エントリ更新1952を0
にリセットする。GARTミニポート・ドライバは、G
ARTキャッシュ・エントリ更新1952をポーリング
して、更新完了を認証する・GARTキャッシュ・エン
トリ無効化1954がロジック1にセットされている場
合は、AGPロジック318は、GARTエントリ・オ
フセットのビット31:12によって参照されているキ
ャッシュ中のGARTテーブル・エントリ418aを無
効化する。ただし、これは、該エントリがGARTエン
トリ・キャッシュ中に存在する場合である。無効化機能
は、レジスタへの書き込みの直後に実行される。無効化
機能が完了すると、AGPロジック318は、GART
キャッシュ・エントリ無効化1954を0にリセットす
る。GARTミニポート・ドライバは、GARTキャッ
シュ・エントリ無効化1954を0にリセットして、無
効化動作の完了を確認する。
【0052】AGPロジック318はまた、キャッシュ
・メモリ322の各位置に関するGARTキャッシュ・
エントリ・コントロール・レジスタ1916のGART
キャッシュ・エントリ更新1952及びGARTキャッ
シュ・エントリ無効化1954に対応するビットを備え
ている。図5を参照すると、GARTキャッシュ・エン
トリ更新ビット502及びGARTキャッシュ・エント
リ無効化ビット504は、キャッシュ・メモリ322中
の各GARTテーブル・エントリ418aに対するデバ
イス・アドレスに対応する、GARTキャッシュ・エン
トリ更新1952及びGARTキャッシュ・エントリ無
効化1954からのロジック・レベルを記憶するための
ものである。ビット502、504は、AGPロジック
318が自動的に、無効の1又は複数のGARTテーブ
ル・エントリ418aを無効化しかつビット504をロ
ジック1にセットし、キャッシュ322に、更新すべき
1又は複数のGARTテーブル・エントリ418aをプ
リフェッチしかつビット502をロジック1にセットす
る。ビット502、504は、指示された動作が完了し
た後に、AGPによってリセットされる。AGP仕様 先に本願にも含まれるものとした、1996年7月31
日付けの"AcceleratedGraphics Port Interface Specif
ication Revision 1.0"(加速グラフィックス・ポート
・インターフェース仕様書改定第1.0版)と題するイ
ンテル社のAGP仕様書は、AGPバスに対する信号、
プロトコル、電気および機械仕様を提供する。しかしな
がら、AGP機能を有する完全に機能するコンピュータ
・システムを実現する前に、更に多くの設計を実施しな
ければならない。以下の開示は、本発明によるAGPイ
ンターフェースの実施に特定する部分を定義するもので
ある。以下の開示は、GARTテーブル、バッファの深
さ、待ち時間、レジスタ、ならびにドライバの機能性(f
unctionality)およびインターフェースを含むので、当
業者であれば、前述の言及により本願にも含まれるもの
としたインテル社のAGP仕様書と共に使用すれば、さ
ほど経験がなくとも、本発明を実施することができよ
う。
【0053】グラフィックス・コントローラがローカル
・フレーム・バッファからシステム・メモリに、テクス
チャおよびコマンド・リストのようなその他の情報を移
動することを要求する場合、問題が発生する。図1に示
す、現在実施中の従来技術のコンピュータ・システム・
アーキテクチャは、将来の3−Dグラフィックスを強化
したアプリケーションの帯域の要求には対応することが
できない。標準的なPCIバス109(33MHz,3
2ビット)の帯域幅は、最大132MB/sであり、典
型的には50MB/sである。マイクロソフト社は、将
来のグラフィックス・アプリケーションは、200MB
/s以上を必要とすると推定している。これが意味する
のは、図1に示すコンピュータ・システム・アーキテク
チャにおけるPCIバス109では、グラフィックス・
コントローラ110、および同様にPCIバス109に
アクセスしようとする他のPCIデバイス(122,1
24,114,116,118)には不十分であるとい
うことである。AGPアーキテクチャ この状況に対処するために、インテル社は図2および図
3に示すAGPアーキテクチャを開発した。インテル社
のAGPアーキテクチャでは、グラフィックス・コント
ローラ210を既存のPCIバス109から除去し、帯
域幅が広いAGPバス207上に配置した。このAGP
バス207は、毎秒532メガバイト(「MB/s」の
最大帯域幅を有する。今日、コア・ロジック・チップセ
ット204およびメモリ・バス105には帯域幅が障害
となっている。これらは、メモリ・インターフェースお
よび制御部304によって、ホスト・バス103、PC
Iバス109,およびAGPバス207(図2)からの
要求、ならびにメモリ106のリフレッシュを処理しな
ければならない。しかしながら、高速化したメモリ10
6および集積度を高め高速化したチップセットの導入に
よって、この問題は管理可能となりつつある。
【0054】グラフィックス・アドレス・リマッピング
・テーブル(「GARTテーブル」)の必要性を理解す
るには、AGPアドレシング方式を完全に理解する必要
がある。ここで図6のAおよび図6のBを参照すると、
AGP単一レベルアドレス変換およびAGP二レベル・
アドレス変換の概略メモリ・マップがそれぞれ示されて
いる。図1に示す従来技術のコンピュータ・システム・
アーキテクチャでは、グラフィックス・コントローラの
物理アドレス空間は、システム・メモリ106の最上位
410の上に位置する。グラフィックス・コントローラ
110は、ローカル・フレーム・バッファ108,テク
スチャ・キャッシュ、アルファ・バッファ、Z−バッフ
ァ等に、この物理アドレス空間を使用していた。AGP
システムでは、情報は未だにグラフィックス・コントロ
ーラのメモリ(アルファ、z−バッファ、ローカル・フ
レーム・バッファ108等)内に位置するが、以前に従
来技術のローカル・フレーム・バッファ108内に位置
していたデータには、システム・メモリ106に移動さ
せたものもある(主にテクスチャ、しかしコマンド・ラ
イン等も)。グラフィックス・コントローラ210がこ
れらのテクスチャにアクセスするために用いるアドレス
空間は、仮想的となる。即ち、このアドレス空間に対応
する物理メモリは、メモリの最上位の上には実際には存
在しないことを意味する。実際、これらの仮想アドレス
の各々は、システム・メモリ106内の物理アドレスに
対応する。グラフィックス・コントローラ210は、先
に引用した、この仮想アドレス空間にアドレスする。以
降、この仮想アドレス空間のことを、メモリ406の1
つの隣接するブロックとして、「AGPデバイス・アド
レス空間」と呼ぶ。しかし、対応する物理アドレスは、
コンピュータ・システム・メモリ106全体に及ぶ、4
KBの非隣接ページ412に割り当てられる。
【0055】グラフィックス・コントローラの隣接AG
Pデバイス・アドレスを、システム・メモリ106内に
位置する、それらの対応する物理アドレスにリマップす
るためのシステム、方法および装置が必要となる。これ
は、GARTテーブルの機能である。GARTテーブル
は、物理メモリ106(図1)内に位置し、AGPバス
207,ホスト・バス103、またはPCIバス(群)
109のいずれかから発生し得るAGPデバイス・アド
レスを、コア・ロジック・チップセット204がリマッ
プするために用いられる。GARTテーブルは、GAR
Tミニポート・ドライバによって管理される。本発明で
は、GARTテーブルの実施は、AGPアドレスのリマ
ッピングについて、2つの選択肢に対応する。即ち、単
一レベル・アドレス変換および二レベル・アドレス変換
である。単一レベルGARTテーブル変換 単一レベル・アドレス変換は、チップセットが要求する
GARTテーブル・エントリの参照回数を減少させるこ
とによって、AGPの全体的な処理能力を改善すること
ができる。単一レベルとは、チップセットが所望のペー
ジの物理アドレスを得るために(テーブル→ページ)G
ARTテーブルの参照を1回だけ行なえばよいことを意
味する。これが可能なのは、GARTテーブルが、オペ
レーティング・システムによって、キャッシュ不可能な
メモリの単一の隣接する1つのブロックに割り当てられ
るからである。このメモリの割り当ては、典型的に、初
期化プロセスの早期に行い、隣接メモリが確実に得られ
るようにする。しかしながら、コンピュータ・システム
の動作中いずれかの時点においてコンピュータ・システ
ム・メモリのフラグメンテーション解消(defragmentati
on)を行い、必要な隣接メモリ空間を得ることも、本発
明の範囲内のことと考えられる。
【0056】単一レベル・アドレス変換を用いるコンピ
ュータ・システムでは、グラフィックス・コントローラ
が用いるAGPデバイス・アドレスは、図7に示すよう
な3つの部分から成るものと見ることができる。3つの
部分とは、デバイス・アドレス空間のベース・アドレス
(ビット31:x)、AGPデバイス・アドレス空間内
へのページ・オフセット(ビットx:12)、および4
KBページへのオフセット(ビット11:0)である。
尚、AGPデバイス・アドレス空間へのページ・オフセ
ットは、GARTテーブル内へのエントリ・インデック
スとしての使用も可能であることを注記しておく。ま
た、AGPデバイス・アドレス空間へのページ・オフセ
ットを構成するビット数は、AGPに割り当てられる仮
想(および物理)メモリのサイズによって異なる。例え
ば、32MBのAGPメモリを有するシステムでは、ペ
ージ全てを表すためには13ビットを要する。図8のテ
ーブルは、AGPメモリ内の各4KBページを表すため
に必要なビット数対AGPメモリのサイズの関係を示
す。
【0057】システム・メモリは、図7に示すフォーマ
ットを有するアドレスを必要とする。このアドレスは、
4KBページのベース・アドレス(ビット31:1
2)、および4KBページへのオフセット(ビット1
1:0)から成る。各4KBページのベース・アドレス
は、GARTテーブルが対応するデバイス・アドレスを
リマップするために必要な情報である。4KBページへ
のオフセットは、AGPデバイス・アドレス内に存在す
るのと同じオフセットである。
【0058】次に、図9を参照すると、単一レベル・ア
ドレス変換においてデバイス・アドレスを物理アドレス
に変換する概略フロー・チャートが示されている。AG
Pデバイス・アドレス空間のベース・アドレスは、AG
Pメモリのサイズと共に、オプションとして、チップセ
ットが用いて、要求内にあるアドレスがAGPデバイス
・アドレス空間に該当するか否かについて、リマップを
行なう前に判定することができる。アドレスをリマップ
するためには、AGPベース・アドレスからのページ・
オフセットに、単一GARTテーブル・エントリのサイ
ズ(4)を乗算し、GARTテーブルのベース・アドレ
スに加算する。これによって、要求されたGARTテー
ブル・エントリの物理アドレスが得られる。このエント
リを、システム・メモリ内に位置するGARTテーブル
から読み出す。このGARTテーブル・エントリ内に
は、所望の4KBページ、即ち、システム・メモリのど
こかに位置するページのベース・アドレスがある。4K
Bページへのオフセットをこのベース・アドレスに加算
することによって、要求された物理アドレスが得られ
る。尚、仮想AGPメモリ内の4KBページへのオフセ
ット(ビット11:0)は、物理(システム)メモリ内
の4KBページへのオフセットと等価であることを注記
しておく。二レベルGARTテーブル変換 二レベル・アドレス変換は、AGPデバイス・アドレス
をメモリ内の物理アドレスにリマップするためには、2
回のGARTテーブルの参照を必要とする(ディレクト
リ→ページ→テーブル)。最初の参照では、システム・
メモリからGARTディレクトリ・エントリを読み出
す。GARTディレクトリ・エントリは、同様に物理メ
モリ内に位置する、GARTテーブル・エントリの対応
するページの物理アドレスを含む。2回目の参照は、適
切なGARTテーブル・エントリを読み出し、コンピュ
ータ・システム物理メモリ内のAGPデータの所望4k
Bページのベース・アドレスを示すために必要である。
【0059】設計によっては、二レベル・アドレス変換
の方が、単一レベル・アドレス変換よりも好ましい場合
がある。その理由は、GARTディレクトリおよびGA
RTテーブルを含む4KBページが隣接する必要がない
からである。大きなブロックの隣接するメモリが不要な
ので、オペレーティング・システムは、二レベル・アド
レス変換を用いた方が、物理メモリをGARTテーブル
に首尾よく割り当てる可能性が高くなることも考えられ
る。単一レベルまたは二レベルのアドレス変換のいずれ
かを用いたGARTテーブルの動的な割り当ては、本発
明の範囲内において予期されることである。
【0060】二レベル・アドレス変換を用いるシステム
では、グラフィックス・コントローラが用いるデバイス
・アドレスは、図10に示すように、4つの部分から成
るものと見ることができる。その4つの部分とは、AG
Pデバイス・アドレス空間のベース・アドレス(ビット
31:x)、AGPデバイス・アドレス空間へのディレ
クトリ・オフセット(ビットx:22)、テーブル・エ
ントリへのページ・オフセット(ビット21:12)、
および4KBページへのオフセット(ビット11:0)
である。尚、AGPデバイス・アドレス空間へのディレ
クトリ・オフセットを構成するビット数は、AGPデバ
イス・アドレス空間のサイズによって異なることを注記
しておく。例えば、256MBのAGPメモリを有する
システムにおいてGARTディレクトリ・エントリの全
て(64)を表すには、6ビットを要する。各GART
ディレクトリ・エントリは4MBのアドレス空間(即
ち、1024ページ)に対応するので、各ページ・オフ
セットは、10ビットを用いてアドレスすることができ
る。図11のテーブルは、AGPメモリにおけるGAR
Tディレクトリおよびページを表すために必要なビット
数とAGPメモリのサイズとの関係を示す。
【0061】次に、図12を参照すると、二レベル・ア
ドレス変換においてデバイス・アドレスを物理アドレス
に変換する概略フロー・チャートが示されている。AG
Pデバイス・アドレス空間(ビット31:x)のベース
・アドレスは、AGPメモリのサイズと共に、オプショ
ンとして、チップセット204が用いて、要求の中にあ
るアドレスがAGPデバイス・アドレス空間に該当する
か否かについて、リマップを行なう前に判定することが
できる。アドレスをリマップするために、ディレクトリ
・オフセット(ビットx:22)を、単一のGARTデ
ィレクトリ・エントリのサイズ(4バイト)と乗算し、
GARTディレクトリのベース・アドレス(即ち、ディ
レクトリを含む4KBページのベース・アドレス)に加
算する。これによって、要求されたGARTディレクト
リ・エントリの物理アドレスが得られる。物理メモリか
らGARTディレクトリ・エントリを読み出す。このG
ARTディレクトリ・エントリ内には、要求に対応する
GARTテーブル・エントリを保持する4KBページの
ベースに対する物理アドレスがある。GARTテーブル
・エントリを得るために、ページ・オフセット(ビット
21:12)を、単一のGARTテーブル・エントリの
サイズ(4バイト)で乗算し、GARTテーブルの読み
出したページのベース・アドレスに加算する。次に、こ
のGARTテーブル・エントリをメモリからフェッチす
ると、このGARTテーブル・エントリ内には、AGP
グラフィックス・データの所望4KBページのベース・
アドレスがある。AGPグラフィックス・データ・ペー
ジはシステム・メモリ内に位置する。AGPデータ4K
Bページへのオフセット(ビット11:0)のベース・
アドレスを加算することにより、要求された物理アドレ
スが得られる。尚、AGPデバイス・アドレス空間内に
おける4KBページへのオフセット(ビット11:0)
は、物理(システム)メモリ内のAGPデータの4KB
ページ内へのオフセットと等価であることを注記してお
く。
【0062】二レベル・アドレス変換では、GARTテ
ーブルおよびGARTディレクトリ双方を必要とする。
単一レベル・アドレス変換では、GARTテーブルのみ
があればよい。GARTテーブルのフォーマットおよび
その使用は、単一レベル・アドレスおよび二レベル・ア
ドレス変換双方とも同一である。GARTテーブル 次に図13を参照すると、GARTテーブルの概略メモ
リ・マップが示されている。GARTテーブル内の各エ
ントリは4バイト長であり、以下の情報から成るものと
することができる。即ち、ページ・ベース・アドレス
(ビット31:12)、ダーティ・ビット(ビット
2)、リンク・ビット(ビット1)、および有効ビット
(ビット0)である。ページ・ベース・アドレス(ビッ
ト31:12)は、物理メモリ内の対応する4KBペー
ジの最初のバイトの物理アドレスを指定する。このフィ
ールド内のビット(ビット31:12)は、物理アドレ
スの上位20ビットとして解釈され、4KB境界上にお
いて、関連するページを整列させる。ページ・ベース・
アドレスは、GARTミニポート・ドライバによって初
期化され管理される。
【0063】ビット11:0は、関連する各ページを任
意変更し(customize)特徴付けるためのフラグ・ビット
として用いることができる。本発明は、これらのフラグ
・ビットを利用することによって、AGP仕様に対する
将来の改良に対処する。例えば、キャッシュ可能性フラ
グ・ビットは、4KBページがキャッシュ可能か否かを
示すことができ、ライト結合性ビットは、4KBページ
がライト結合可能か否かを示すことができる。本発明の
更に具体的な例を以下に示す。
【0064】ビット2は、ダーティ・ビットとして用い
ることができる。ダーティ・ビットは、このGARTテ
ーブル・エントリによって参照されたページが変更され
たときを示すことができる。
【0065】ビット1は、リンク・ビットとして用いる
ことができる。リンク・ビットは、GARTミニポート
・ドライバによってセットし、管理することができる。
これは、次のGARTテーブル・エントリが現GART
テーブル・エントリに関連付けられていることを示す。
リンク・ビットは、チップセットが、GARTテーブル
・エントリを、GARTテーブル参照の一部として、プ
リフェッチする場合に用いることができる。リンク・ビ
ットが最初のGARTテーブル・エントリにおいてセッ
トされている場合、チップセットは2番目のエントリを
キャッシュすることができる。2番目のエントリにおけ
るリンク・ビットがセットされている場合、3番目のエ
ントリをキャッシュすることができる。これは、エント
リの内の1つにおいてリンク・ビットがセットされてお
らず、通常のキャッシュ・リードを行なう際に利用する
ことができるまで続けて、必要な数を超えるGARTテ
ーブル・エントリをキャッシュしないようにする。即
ち、キャッシュ・ライン全てのリードは必要でない。ま
た、リンク・ビットは、AGPデバイス・アドレス空間
内の隣接する4KBページ内にテクスチャが重複する場
合にも有用である。
【0066】ビット0は存在フラグ(present flag)とし
て用いることができる。この存在フラグは、GARTテ
ーブル・エントリによって示されたAGPデータ・ペー
ジが、GARTミニポート・ドライバによって予約され
ているか否かを示す。存在フラグがセットされている場
合、AGPデータ・ページが物理メモリ内に予約されて
おり、アドレス変換を実行することができる。存在フラ
グがクリアされている場合、AGPデータ・ページはメ
モリ内に予約されておらず、チップセットは、変換を行
なうべきか、あるいはエラー(SERR#)を発生すべきかに
ついて判定を行なわなければならない。存在フラグは、
必ずしも、エントリが実際にAGPデータ・ページにマ
ップするか否かを示す訳ではないが、GARTテーブル
・エントリがGARTミニポート・ドライバによる適用
のために予約されていることを示す。GARTディレクトリ 次に図14を参照すると、GARTディレクトリ内のエ
ントリ、GARTテーブル・エントリのページ、および
AGPメモリの概略メモリ・マップが示されている。G
ARTディレクトリは、キャッシュ不可能な物理メモリ
内に位置する単一の4KBページに収容することができ
る。各GARTディレクトリ・エントリは4ビット長と
することができるので、コンピュータ・システム・メモ
リ内の単一の4KBページ以内には、1024個のGA
RTディレクトリ・エントリが存在することができる。
このように、単一の4KBページ・サイズのGARTデ
ィレクトリによって、4GBまでの物理メモリにアドレ
スすることができる。2GBまでのAGPデバイス・ア
ドレス空間に対応するためには、512個のGARTデ
ィレクトリ・エントリだけあればよい。ビット31:0
は、GARTテーブルのGARTディレクトリ・エント
リの対応するページのベース・アドレス(オフセット=
0)を収容する。これも、物理メモリ内に位置すること
ができる。
【0067】GARTテーブルのサイズは、システムが
要求するAGPメモリ量の関数である。単一レベル・ア
ドレス変換を使用するシステムでは、以下の式を用いて
サイズを計算する。
【0068】GARTサイズ(バイト)={必要なAG
Pメモリ(バイト)/ページ・サイズ(4096バイ
ト)}*GARTエントリ・サイズ(4バイト) ここで、 必要なAGPメモリ=AGP専用のシステム・メモリ量 ページ・サイズ=システム・メモリ内の標準的なページ
・サイズ GARTエントリ・サイズ=GARTテーブル内の単一
のエントリのサイズ である。
【0069】この式は、予約されたAGPデバイス・ア
ドレス空間量に基づいて、最大のGARTテーブル・サ
イズを計算することを注記しておく。予約された実際の
GARTテーブル・メモリ量は、オペレーティング・シ
ステムによって異なる場合もある。
【0070】二レベル・アドレス変換では、GARTデ
ィレクトリに追加の4KBページ(4096バイト)が
必要となる。二レベル・アドレス変換を使用するシステ
ムでは、以下の式を用いてサイズを計算する。
【0071】GARTサイズ(バイト)={必要なAG
Pメモリ/ページ・サイズ}*GARTエントリ・サイ
ズ+ページ・サイズ 図15を参照すると、割り当てたAGPメモリとGAR
Tテーブルの最大サイズとの相関関係を示すテーブルが
示されている。明確化のためにのみ、32MB,64M
B,128MB,256MB,512MB,1GB,お
よび2GBのAGPメモリ要求に基づいたGARTテー
ブルの実施態様を示すが、あらゆるAGPメモリ・サイ
ズでも収容することができ、これも本発明の範囲内のも
のと考えられる。尚、二レベル変換では、そのディレク
トリのために、追加の4KBページが1つ必要となるこ
とを注記しておく。 AGP論理アーキテクチャ 次に図16を参照すると、本発明によるAGPチップセ
ット204の機能ブロック図が示されている。AGPチ
ップセット204は、2つの主要な機能を実行する。即
ち、ホスト−PCIブリッジ機能(機能0)およびPC
I−PCIブリッジ機能(機能1)である。ホスト−P
CIブリッジは、一般的に、PCIを基本とするコア・
ロジックにおいて見られる標準的なインターフェースで
ある。PCI−PCIブリッジは、既存のバス一覧コー
ドを変更することなく、AGPポートのコンフィギュレ
ーションを簡便化するために用いられる。これらの機能
の各々は、それ自体のコンフィギュレーション・レジス
タを有しており、PCI2.1仕様が要求するように、
それ自体のPCIコンフィギュレーション・ヘッダ・タ
イプの中に位置する。これらのコンフィギュレーション
・レジスタを、ぞれぞれ図18および図21にリストさ
れる。AGPに特定のレジスタについての更に詳しいレ
ジスタ・ビット情報は、図18、図19,および図21
〜図32にリストされる。尚、AGPチップセットは、
新可能出力機構(New Capabilities mechanism)を実施し
ており、その詳細は、1996年5月20日付けの"Add
itionof 'New Capabilities' Structure"(「新可能出
力」構造の追加)と題する、設計変更通知(「EC
N」)に記載されていることを注記しておく。尚、この
文献は、この言及により本願にも含まれるものとする。
新可能出力構造は、デバイスが対応する各機能の情報を
含むレジスタのリンク・リストとして実施される。AG
Pレジスタは、リンク・リストに含まれている。
【0072】PCI−PCIブリッジ320の機能は、
最大限機能するPCI−PCIブリッジである必要はな
い。PCIバス109上で発したメモリ・ライト・トラ
ンザクションを、AGPバス207に向けて送出するこ
とができればよい。AGP−PCIメモリ・ライト・ト
ランザクションを行なう必要はない。更に、例えば、I
/O(リードおよびライト)、コンフィギュレーション
(リードおよびライト)、およびメモリ・リード(メモ
リ・リード、メモリ・リード・ライン、メモリ・リード
多数)のようなその他のPCIコマンド、特殊なサイク
ル、ならびにインターフェースを交差するための割り込
みの承認を行なう必要もない。これらの制限は、PCI
−AGPおよびAGP−PCIインターフェースのみに
適用される。本発明は、ホスト−AGPおよびホスト−
PCIコマンドの全てに対応する。
【0073】AGPに準拠したマスタは所定のメモリ要
件を有し、オフセット20h,22h,24h,26h
にそれぞれ位置するメモリ・ベース・レジスタ、メモリ
限界レジスタ、プリフェッチ可能メモリ・ベース・レジ
スタ、およびプリフェッチ可能メモリ限度レジスタを用
いて、システム・メモリ・マップ内に配置しなければな
らない。ホスト−PCI(機能0)およびPCI−PC
I(機能1)デバイスのIDも異なるものとして、多機
能デバイスのためのデバイス・ドライバに関するマイク
ロソフト社の政策に対処するようにしてもよい。次に示
すレジスタの集合は、以下で説明するが、本発明による
AGP準拠コア・ロジック・チップセットを実装するた
めに必要となり得るレジスタであることが好ましい。
【0074】ホスト−PCIブリッジ 図17を参照すると、本発明の一実施形態による、ホス
ト−PCIブリッジ306機能へのホスト用レジスタの
概略的なテーブルが示されている。ベース・アドレス・
レジスタ0(BAR0)1702は、システムのBIO
Sメモリ・マッピング・ソフトウエアが、AGP準拠マ
スタのためにAGPデバイス・アドレス空間を割り当て
る際に用いられる。図18は、このレジスタにおいて用
いられるビットの機能的記述を示す。システムのBIO
Sは、BAR0 1702に全て1を書き込み、次いで
そのレジスタから読み出すことによって、AGPの実施
のために必要なアドレス空間のサイズおよび型を判定す
る。BAR01702の最下位ビットから上方向に戻り
値を走査することによって、BIOSは必要なアドレス
空間のサイズを判定することができる。最初に発見した
1ビットの二進加重値は、必要な空間量を示す。一旦メ
モリがBIOSによって割り当てられたなら、AGPデ
バイス・アドレス空間のベース・アドレスを、このレジ
スタのビット31:4に入力する。このレジスタはハー
ド・ワイヤ状とした情報(informationhard-wired)も含
み、これはプリフェッチ可能なメモリ範囲であり、32
ビット・アドレス空間内のどこにでも配置可能であるこ
とを示す。必要なAGPデバイス・アドレス空間を決定
するためには、他のいずれの手段でも使用可能であり、
それも本発明の範囲内のものと考えられる。
【0075】PCIデバイスのコンフィギュレーション
空間へのアクセスは比較的遅い。インテル社のx86系
コンピュータ・システムでは、1回のPCIレジスタへ
のアクセスには、2回のI/Oサイクルが必要である。
即ち、PCIアドレス・レジスタ(アドレスCF8h)
に1回、PCIデータ・レジスタ(アドレスCFCh)
に別の1回である。プロセッサに関係するI/Oサイク
ルも、メモリ・サイクルよりは遅い。したがって、本発
明では、GARTミニポート・ドライバがベース・アド
レス・レジスタ1(BAR1)1704を用いて、メモ
リ・マップされたAGP制御レジスタにアクセスできる
ようにした。図20は、このレジスタにおいて用いられ
るビットの機能的記述を示す。システムBIOSは、B
AR1 1704に全て1を書き込み、次いでレジスタ
から読み出すことによって、AGPメモリ・マップされ
た制御レジスタが必要とするアドレス空間のサイズおよ
び型を判定する。BAR1 1704の最下位ビットか
ら上方向に戻り値を走査することによって、BIOSは
必要なメモリ・アドレス空間のサイズを判定することが
できる。最初に発見された1ビットの二進加重値は、必
要な空間量を示す。一旦メモリがBIOSによって割り
当てられたなら、AGPメモリ・アドレス空間のベース
・アドレスを、このレジスタのビット31:4に入力す
る。また、このレジスタはハード・ワイヤ状とした情報
も含み、これはプリフェッチ不可能なメモリ範囲であ
り、32ビット・アドレス空間内のどこかに配置可能で
あることを示す。必要なメモリ・アドレス空間を決定す
るためには、他のいずれの手段でも使用可能であり、そ
れも本発明の範囲内のものと考えられる。
【0076】PCI−PCIブリッジ 図20を参照すると、本発明の一実施形態による、PC
I−PCIブリッジ320(機能1)に対するレジスタ
の概略的なテーブルが示されている。コマンド・レジス
タ1806は、コア・ロジック・チップセット204内
におけるPCI−PCIブリッジ320の機能に対して
粗雑な制御を行なう。このレジスタは、AGPバス20
7およびPCIバス109双方の上においてPCIサイ
クルを発生し応答する能力(ability)を制御する。図2
1は、コマンド・レジスタ1806において用いられる
ビットの機能的記述を示す。
【0077】ステータス・レジスタ1808は、コア・
ロジック・チップセット204内におけるPCI−PC
Iブリッジ320の機能の推移ステータス(course stat
us)を与える。図22は、ステータス・レジスタ180
8内で用いられるビットの機能的記述を示す。ステータ
ス・レジスタ1808は、この明細書では、能力ポイン
タ対応ビット(Capabilities Pointer Supported bit)
(ビット4)を、本発明の実施に応じたホスト・ブリッ
ジにおいて、1にセットすべきことを強調するために含
まれている。ステータス・ビットがセットされている場
合、PCI仕様書によって指定されているように、標準
的な手順を用いてこのビットをクリアする(即ち、
「1」をこのビットに書き込む)。
【0078】二次ステータス・レジスタ1810は、ス
テータス・レジスタ1808(オフセット06h)と機
能およびビット定義において類似しているが、そのビッ
トは、AGPバス207に接続されているPCI−PC
Iブリッジ320インターフェースの二次側のステータ
ス状態を反映する。図23は、二次ステータス・レジス
タ1810において用いられるビットの機能的記述を示
す。PCI−PCIブリッジ仕様において定義されてい
るようにビット14を再定義する他に、66Mhz可能
ビット(66Mhz capable bit)(ビット5)を、AGPの
ために再定義する。ステータス・ビットがセットされて
いる場合、PCI仕様書によって指定されているよう
に、標準的な手順を用いてこのビットをクリアする(即
ち、「1」をこのビットに書き込む)。
【0079】メモリ・ベース・レジスタ1812は、コ
ンピュータ・システムのBIOSメモリ・マッピング・
ソフトウエアが、AGPマスタ(グラフィックス・コン
トローラ)によって用いられるプリフェッチ不可能なア
ドレス範囲のベース・アドレスを格納するために用い
る。図24は、メモリ・ベース・レジスタ1812にお
いて用いられるビットの機能的記述を示す。システムB
IOSバス一覧ソフトウエアは、AGPマスタのベース
・アドレス・レジスタ(BAR)内に見出される必要条
件に基づいて、メモリの最上位(TOM)の上に、1ブ
ロックの物理メモリを割り当てる。BIOSは、このレ
ジスタに、そのメモリ・ブロックのベース・アドレスを
入力する。また、メモリ限度レジスタ1814に、その
アドレス範囲の最上位のアドレスを入力する。この情報
が与えられると、コア・ロジック・チップセット204
は、これら2つのアドレスを用いて、AGPマスタのプ
リフェッチ不可能なメモリ空間へのサイクルをデコード
することができる。このプリフェッチ不可能なメモリ
は、マスタの制御レジスタおよびFIFO状通信インタ
ーフェスがマップされているところにある。メモリ・ア
ドレス範囲は、1MBの境界上に位置することができ
る。
【0080】メモリ限度レジスタ1814は、コンピュ
ータ・システムのBIOSメモリ・マッピング・ソフト
ウエアが、AGPマスタ(グラフィックス・コントロー
ラ)によって用いられるプリフェッチ不可能なアドレス
範囲の最上位アドレスを格納するために用いる。図25
は、メモリ限度レジスタ1814において用いられるビ
ットの機能的記述を示す。システムBIOSバス一覧ソ
フトウエアは、マスタのベース・アドレス・レジスタ
(BAR)内に見出される必要条件に基づいて、メモリ
の最上位(TOM)の上に、1ブロックの物理メモリを
割り当てる。BIOSは、このレジスタに、そのメモリ
・ブロックの最上位アドレスを入力する。また、メモリ
・ベース・レジスタ1812に、そのアドレス範囲のベ
ースのアドレスを入力する。
【0081】プリフェッチ可能メモリ・ベース・レジス
タ1816は、コンピュータ・システムのBIOSメモ
リ・マッピング・ソフトウエアが、AGPマスタ(グラ
フィックス・コントローラ)によって用いられるプリフ
ェッチ可能なアドレス範囲のベース・アドレスを格納す
るために用いる。図26は、プリフェッチ可能メモリ・
ベース・レジスタ1816において用いられるビットの
機能的記述を示す。システムBIOSバス一覧ソフトウ
エアは、マスタのベース・アドレス・レジスタ(BA
R)内に見出される必要条件に基づいて、メモリの最上
位(TOM)の上に、1ブロックのメモリ・アドレスを
割り当てるか、あるいは参照テーブルを用いて、そのコ
ンフィギュレーション・レジスタ内に示されるAGPデ
バイスの形式に基づいて、メモリ・アドレスのブロック
を決定してもよい(図54参照)。BIOSは、プリフ
ェッチ可能メモリ・ベース・レジスタ1816内に、そ
のメモリ・ブロックのベース・アドレスを入力する。ま
た、プリフェッチ可能メモリ限度レジスタ1818に、
そのアドレス範囲の最上位のアドレスを入力する。この
情報が与えられると、コア・ロジック・チップセット2
04は、これら2つのアドレスを用いて、AGPマスタ
のプリフェッチ可能なメモリ空間へのサイクルをデコー
ドすることができる。このプリフェッチ可能なメモリ
は、グラフィックス・コントローラのローカル・フレー
ム・バッファ208がマップされるところにある。メモ
リ・アドレス範囲は、1MBの境界上に位置することが
できる。
【0082】プリフェッチ可能メモリ限度レジスタ18
18は、コンピュータ・システムのBIOSメモリ・マ
ッピング・ソフトウエアが、AGPマスタ(グラフィッ
ク・コントローラ)によって用いられるプリフェッチ可
能なアドレス範囲の最上位アドレスを格納するために用
いられる。図27は、プリフェッチ可能メモリ限度レジ
スタ1818において用いられるビットの機能的記述を
示す。システムBIOSバス一覧ソフトウエアは、AG
Pマスタのベース・アドレス・レジスタ(BAR)内に
見出される必要条件に基づいて、メモリの最上位(TO
M)の上に、1ブロックのメモリ・アドレスを割り当て
るか、あるいは参照テーブルを用いて、そのコンフィギ
ュレーション・レジスタ内に示されるAGPデバイスの
形式に基づいて、メモリ・アドレスのブロックを決定し
てもよい(図51参照)。BIOSは、このレジスタ
に、そのメモリ・ブロックの最上位アドレスを入力す
る。また、プリフェッチ可能メモリ・ベース・レジスタ
1816にそのアドレス範囲のベース・のアドレスを入
力する。この情報が与えられると、コア・ロジック・チ
ップセット204は、これら2つのアドレスを用いてA
GPマスタのプリフェッチ可能なメモリ空間へのサイク
ルをデコードすることができる。このプリフェッチ可能
なメモリは、グラフィックス・コントローラのローカル
・フレーム・バッファがマップされるところにある。メ
モリ・アドレス範囲は、1MBの境界上に位置すること
ができる。
【0083】能力ポインタ・レジスタ1820は、PC
I2.1仕様書に記載されている新機能機構にしたがっ
て、このデバイスが対応する最初の機能へのオフセット
・ポインタを与える(参照:「新能力」を定義するEC
N)。図28は、能力ポインタ・レジスタ1820にお
いて用いられるビットの機能的記述を示す。AGPは、
新能力ECN仕様に対応する機能である。
【0084】AGP能力識別子レジスタ1822は、能
力リスト内にあるこの機能を、AGP機能として識別す
る。図29は、AGP能力レジスタ1822において用
いられるビットの機能的記述を示す。また、これは能力
リスト内にある次の機能に対するポインタも与え、AG
Pデバイスと一致するAGP仕様書の改訂番号(revisio
n number)も引用する。
【0085】AGPステータス・レジスタ1824は、
AGPデバイスに、AGPファンクショナリティのステ
ータスを与える。図30は、AGPステータス・レジス
タ1824において用いられるビットの機能的記述を示
す。報告される情報は、最大要求キューの深さ、側波帯
アドレシング能力、および転送レートを含む。AGPス
テータス・レジスタ1824はリード・オンリ・レジス
タである。ライトは何も影響を与えず、予約されている
フィールドまたは実施されていないフィールドが読み出
された場合には、ゼロを返す。
【0086】AGPコマンド・レジスタ1826は、ソ
フトウエアが側波帯アドレシングをイネーブルし、AG
Pをイネーブルし、AGP転送レートをセットすること
を可能にする。図31は、AGPコマンド・レジスタ1
826において用いられるビットの機能的記述を示す。
【0087】AGPデバイス・アドレス空間サイズ・レ
ジスタ1828は、システムBIOSによって割り当て
られるAGPデバイス・アドレス空間のサイズを判定す
る。図32は、AGPデバイス・アドレス空間サイズ・
レジスタ1828において用いられるビットの機能的記
述を示す。AGPデバイス・アドレス空間サイズ・レジ
スタ1828は、AGPデバイスがコンピュータ・シス
テムにおいて有効か否かについての判定も行うことがで
きる。
【0088】次に図33を参照すると、本発明の一実施
形態による、メモリ・マップ・レジスタ(memory-mapped
register)の概略的なテーブルが示されている。図33
に示すチップセットのメモリ・マップ制御レジスタは、
ホスト−CPIブリッジ306(機能0)コンフィギュ
レーション・ヘッダ(オフセット14h)内のBAR1
1704(図17)に位置するアドレスによってアク
セスされる。このアドレスは、システムBIOSによっ
て決定され、BAR1 1704に書き込まれる。この
システム・メモリ106の空間内にあるレジスタは、G
ARTミニポート・ドライバが、実行時間中にチップセ
ット204内部のAGPファンクショナリティを制御す
るために用いることができる。システム・メモリ・マッ
プ・レジスタに情報を格納することの利点は、プロセッ
サ102がメモリ・アクセスによってこれらのメモリ・
マップ・レジスタにアクセスする、即ち、その最も早い
データ読み取り機構を用いてアクセスすることである。
これは、キャッシュ制御レジスタ(図示せず)のよう
な、実行時にアクセス可能なレジスタには重要な場合も
ある。
【0089】改訂IDレジスタ1902は、GARTミ
ニポート・ドライバが、チップセットに特定のAGP制
御レジスタによって与えられるフォーマットおよびフィ
ーチャの識別を可能とするために備えられたものであ
る。図34は、改訂IDレジスタ1902において用い
られるビットの機能的記述を示す。
【0090】GART能力レジスタ1904は、コア・
ロジック・チップセットが対応するGARTフィーチャ
を定義する。図35は、GART能力レジスタ1904
において用いられるビットの機能的記述を示す。
【0091】AGPフィーチャ制御レジスタ1906
は、チップセット204が対応するGARTフィーチャ
をイネーブルする。図36は、AGPフィーチャ制御レ
ジスタ1906において用いられるビットの機能的記述
を示す。
【0092】AGPフィーチャ・ステータス・レジスタ
1908は、AGPおよびGARTに関係するイベント
について、ステータス情報を記録するために用いられ
る。図37は、AGPフィーチャ・ステータス・レジス
タ1908において用いられるビットの機能的記述を示
す。論理「1」がビットに書き込まれたときはいつで
も、そのビットはリセットされる。
【0093】GARTテーブル/ディレクトリ・ベース
・アドレス・レジスタ1910は、システム・メモリ内
のGARTテーブル/ディレクトリに物理アドレスを与
える。図38は、GARTテーブル/ディレクトリ・ベ
ース・アドレス・レジスタ1910において用いられる
ビットの機能的記述を示す。単一レベル・アドレス変換
を使用するシステムでは、このレジスタはGARTテー
ブルのベース・アドレスに対応する。二レベル・アドレ
ス変換を使用するシステムでは、このレジスタはGAR
Tディレクトリのベース・アドレスに対応する。このレ
ジスタは、GARTテーブル/ディレクトリにメモリが
割り当てられたときにはいつでも、GARTミニポート
・ドライバによって初期化される。GARTテーブルの
メモリ割り当てについての更に詳しい説明については、
以下のソフトウエア仕様の記載を参照されたい。
【0094】GARTディレクトリ/テーブル・キャッ
シュ・サイズ・レジスタ1912は、GARTディレク
トリおよびGARTテーブルキャッシュにおいて、コア
・ロジック・チップセットがキャッシュすることができ
るエントリの最大数を識別する。図39は、GARTデ
ィレクトリ/テーブル・キャッシュ・サイズ・レジスタ
1912において用いられるビットの機能的記述を示
す。
【0095】GARTディレクトリ/テーブル・キャッ
シュ・コントロール(制御)レジスタ1914は、GA
RTディレクトリおよびテーブル・キャッシュ全体を無
効化し、システム・メモリ内のGARTディレクトリお
よびテーブルとの一貫性(コヒーレンシ)を維持する機
構をソフトウエアに与える。図40は、GARTディレ
クトリ/テーブル・キャッシュ制御レジスタ1914に
おいて用いられるビットの機能的記述を示す。単一レベ
ル・アドレス変換を使用するシステムでは、このレジス
タはGARTテーブル・キャッシュのみに適用される。
二レベル・アドレス変換を用いるシステムでは、このレ
ジスタはGARTディレクトリ・キャッシュおよびGA
RTテーブル・キャッシュ双方に適用される。
【0096】GARTテーブル・キャッシュ・エントリ
制御レジスタ1916は、ソフトウエアが特定のGAR
Tテーブル・キャッシュ・エントリを更新/無効化する
ために用いられる。図41は、GARTテーブル・キャ
ッシュ・エントリ制御レジスタ1916において用いら
れるビットの機能的記述を示す。GARTミニポート・
ドライバがGARTテーブル内のエントリを更新/無効
化するためのコールを受け取ったとき、GARTテーブ
ル・キャッシュのコヒーレンシを維持しなければならな
い。更新/無効化されたエントリがGARTキャッシュ
内にない場合、無効化機能は何も効力を生じない。GA
RTミニポート・ドライバは、32ビット・ライト・ア
クセスをこのレジスタのみに実行する。
【0097】ポステド・ライト・バッファ・コントロー
ル・レジスタ(Posted Write BufferControl Register)
1918は、GARTミニポート・ドライバによってセ
ットされ、チップセットのプロセッサをメモリ・ポステ
ド・ライト・バッファに書き出す(flush)。図42は、
ポステド・ライト・バッファ・コントロール・レジスタ
1918において用いられるビットの機能的記述を示
す。これは、GARTテーブル・エントリのマッピング
の間必要となる。プロセッサが有効なエントリをGAR
Tテーブルに書き込むと、チップセットのポステド・ラ
イト・バッファにデータを入力することができる。グラ
フィックス・コントローラが、転記されたGARTテー
ブル・エントリにアクセスしようとすると、エントリは
有効ではなく、エラーが発生する。同様の問題は、プロ
セッサがGARTテーブル・エントリをクリアしたとき
にも発生する。データが転記され、グラフィックス・コ
ントローラがそのGARTテーブル・エントリにアクセ
スしようとすると、戻されるデータは転化している場合
がある。
【0098】図43に示す、AGPバス利用度/帯域幅
/レイテンシ・コマンド・レジスタ1920は、コア・
ロジック・チップセット204内にあるAGPバス利用
カウンタ、帯域カウンタ、およびレイテンシ・カウンタ
を制御する。AGPバス利用度、帯域幅、およびレイテ
ンシを測定するためには、3つの32ビット・カウンタ
を備えればよい。各基準32ビット・カウンタは、66
MHz AGPクロックを用いて駆動(増分)する。6
6MHzのAGPクロックは60秒間カウントする。利
用度、帯域幅またはレイテンシを測定するためには、基
準カウンタの期間が終了した後の利用度カウンタ内の値
に15nsを乗算し、60で除算しなければならない。
利用度カウンタ、帯域幅カウンタ、およびレイテンシ・
カウンタは、このレジスタを用いて、初期化しイネーブ
ルすることができる。クリア利用度レジスタ・ビット
は、これらのカウンタ全てをクリアする。AGPバス利
用度レジスタ1922,帯域幅レジスタ1924、およ
びレイテンシ・レジスタ1926は、図44〜46に示
すように、それぞれ、AGPバス利用度/帯域幅/レイ
テンシ・コマンド・レジスタ1920内の対応する部分
のビットをセットすることによって、独立して起動可能
なカウンタである。カウント動作は、AGPバス利用度
/帯域幅/レイテンシ・コマンド・レジスタ1920内
の対応するビットが論理「0」にクリアされるまで、A
GPバス利用度レジスタ1922、帯域幅レジスタ19
24、およびレイテンシ・レジスタ1926のカウンタ
内において継続する。
【0099】AGPバス利用度レジスタ1922は、A
GPバス利用度カウンタ値を保持する。このカウンタ値
は、図19のLに示すトランザクションのいずれか1つ
によってAGP AD[31:0]バスがアクティブになってい
るときに、各AGPバス・クロック毎に増分される。
【0100】AGPバス帯域レジスタ1924は、AG
Pバス帯域カウンタ値を保持する。このカウンタ値は、
図19のMに示すようにAGP AD[31:0]バスがアクテ
ィブになっているときに、各AGPバス・クロック毎に
増分される。
【0101】AGPバス・レイテンシ・レジスタ192
6は、AGPバス・レイテンシ・カウンタ値を保持す
る。このカウンタ値は、チップセットが特定のAGPリ
ード要求を処理している間、各AGPバス・クロックが
消滅する(expire)毎に増分される。AGPバス・レイテ
ンシ・カウンタ・レジスタ値は、リード要求がキューに
入れられた時点で開始し、データの最初のクアド・ワー
ドがマスタに返されたときに完了するAGPトランザク
ションを処理するのに必要な時間を表す。好ましくは、
コア・ロジック・チップセット204は、特定のAGP
リード要求がキューに入れられた時点で開始し、データ
の最初のクアド・ワードがAGPマスタに返されたとき
に終了するまで、このAGPリード要求を追跡する。GARTテーブルのキャッシュ動作およびプリフェッチ
動作 AGPサイクルのレイテンシは、各AGP要求がGAR
Tテーブル/ディレクトリの参照を必要とする場合、重
大な影響を受けることになる。単一レベル・アドレス変
換を使用するシステムでは、GARTテーブル・エント
リをメモリからフェッチすると、最少でも16AGPク
ロック(66MHz)がAGP要求に追加されることに
なる。これは、リフレッシュ・サイクルのためにメモリ
・バスおよび時間の調停を行う際に必要な追加の時間を
考慮すると更に悪化する。この問題を防止し処理能力の
向上を図るためには、GARTテーブル・エントリをキ
ャッシュ(セーブ)することが好ましい。これを図48
に示す。同様に、二レベル・アドレス変換を使用するシ
ステムでは、GARTテーブルおよびGARTディレク
トリ・エントリ双方をキャッシュすることも好ましい。
各GARTディレクトリ・エントリは4MBのアドレス
空間をカバーするので、GARTディレクトリ・キャッ
シュはGARTテーブル・キャッシュ程大きくする必要
はない。 AGP要求の最少サイズが8バイトのデータ
であることを理解すると、GARTキャッシュの必要性
が一層明白となる。最悪の場合として、512回のAG
P要求は、物理メモリ内の同一の4KBページにアクセ
スすることができる。最初の要求に応ずるために、必要
なGARTテーブルおよびディレクトリ・エントリをフ
ェッチしキャッシュすることによって、次の511の要
求はGARTテーブルまたはディレクトリの参照を要求
する必要がなくなる。このように、単一のエントリをキ
ャッシュすることにより、処理能力が大幅に向上する。
尚、これは、テクスチャが物理メモリ内に隣接して位置
し、4KBページの範囲に及ぶことを仮定していること
を注記しておく。キャッシュ・サイズを拡大することに
よって、更にシステムの処理能力は向上する。
【0102】グラフィックス・コントローラは、典型的
に、GARTテーブルを通じてAGPメモリにアクセス
する、少なくとも4つのストリームを識別する。それら
は、CPU,ビデオ、テクスチャ、およびコマンド・リ
ストである。これが与えられると、AGPグラフィック
ス・コントローラ204の好適な実施形態は、少なくと
も、4方向にセットされた連想GARTテーブル・キャ
ッシュを有し、スラッシングを防止する。二レベル・ア
ドレス変換を使用するシステムでは、GARTディレク
トリ・キャッシュは、少なくとも4つのエントリ、即
ち、各ストリーム毎に1つを有することが好ましい。
【0103】GARTテーブル・エントリをプリフェッ
チすることによっても、処理能力を向上させることがで
きる。プリフェッチが行われるのは、現AGP要求に応
ずるために必要なGARTテーブル・エントリをフェッ
チする間に、チップセットが次のGARTテーブル・エ
ントリを読み出す場合である。このエントリは、以前の
GARTテーブル・エントリと共にキャッシュされる。
この余分なエントリをプリフェッチするためのオーバー
ヘッドは、各GARTテーブル・エントリが4バイト幅
であり、一方典型的なメモリ・データ・バスが8バイト
幅であることを考えると、無視することができる。これ
は、1回の要求で、2つのGARTテーブル・エントリ
が読み出されることを意味する。加えて、チップセット
の中には、メモリからデータを読み出すときに、キャッ
シュ・ライン全体(8バイト)をバーストするものもあ
る。この場合、7つのGARTテーブル・エントリを、
容易にプリフェッチすることができる。GARTテーブ
ル・エントリのプリフェッチを、図48に示す。
【0104】コア・ロジック・チップセットのデータ・
コヒーレンシ コア・ロジック・チップセット204は、AGPバス2
07およびホスト・プロセッサ・バス103双方のデバ
イスがAGPデバイスのアドレス範囲を通じてAGPメ
モリにアクセスしている限り、AGPバス207からの
リード・アクセスが、ホスト・プロセッサ・バス103
からのライト・アクセスとコヒーレントであることを保
証することが好ましい。例えば、AGPバス207およ
びホスト・バス103双方のデータ転送がAGPデバイ
ス・アドレス空間を用いるとすると(GARTテーブル
変換)、AGPバス207からのリード要求は、ホスト
・バス103から最後に書き込まれたデータを抜き出す
ことになる。デバイス・アドレス範囲には、ホスト・プ
ロセッサ102において、キャッシュ不可能と印してお
くことが好ましい。これによって、コア・ロジック・チ
ップセット204は、AGPバス207上でAGPスト
リームにアクセスする毎に、ホスト・プロセッサ102
のキャッシュ(群)をスヌープしなくてもよいことが保
証される。ホスト・プロセッサが、仮想グラフィックス
・アドレス範囲外において、直接AGPメモリにアクセ
スする場合、ホスト・プロセッサには恐らくこの領域に
ライトバック・キャッシュ可能(writeback cacheable)
と印してあり、これらのアクセスをキャッシュする。コ
ア・ロジック・チップセットは、AGPバス上でのAG
Pストリームに対するアクセスに、ホスト・プロセッサ
のキャッシュをスヌープしないので、コヒーレンシの問
題が発生する場合がある。
【0105】コア・ロジック・チップセット204は、
ホスト・バス103およびPCIバス109からのリー
ド・アクセスが、AGPバス207上におけるAGPス
トリームに対するライト・アクセスとコヒーレントであ
ることを、AGPフラッシュ・コマンドのみを用いるこ
とによって保証することが好ましい。一旦AGPフラッ
シュ・コマンドをAGPバス207上で回収したなら、
以前に回収したAGPライト・データは全て、ホストバ
ス103およびPCIバス109上のデバイスそれぞれ
に使用可能となる。AGPフラッシュ・コマンドを用い
ないと、コヒーレンシの問題が発生する場合がある。AGPグラフィックス・コントローラ 本発明の好適な実施形態と共に、以下の仕様にしたがっ
てAGPグラフィックス・コントローラを実装可能であ
ることが好ましい。
【0106】キャッシュ・ラインの境界上にAGP要求
を発行し、処理の改善を図る。コア・ロジック・チップ
セットは、典型的に、メモリに入出力するキャッシュ・
ライン転送に最適化されている。AGPマスタがリード
・データを要求し、トランザクション・サイズがキャッ
シュ・ラインの境界を交差する場合、そのデータをフェ
ッチするためには2回のキャッシュ・ライン・メモリ・
リードが必要となる。これは非効率的である。特に、マ
スタがキャッシュ・ライン境界から離れてバック−ツー
−バック・キャッシュ・ライン・リード(back-to-back
cache line read)を実行する場合は非効率的である。キ
ャッシュ・ラインが整列されていないトランザクション
による非効率性は、要求のサイズを大きくすることによ
って最低化する。
【0107】AGP要求のサイズは、リードでは8バイ
トないし32クワド・ワード(QW)まで、ライトでは
8QWまでの範囲とすることができる。これが意味する
のは、グラフィック・コントローラは全ての要求をキャ
ッシュ・ライン境界上で発行することは不可能であると
いうことである。したがって、チップセットは、複数回
のリードを組み合わせて、順序を入れ換えることによ
り、サイズが4QW未満の要求を実行することによる影
響を最少に抑えることが好ましい。
【0108】キャッシュ・ラインのサイズまたはキャッ
シュ・ラインの倍数のサイズを有するAGP要求を発行
し、処理の改善を図る。コア・ロジック・チップセット
は、典型的に、32バイト(キャッシュ・ライン)で主
システム・メモリにアクセスする場合に対して最適化さ
れている。可能なときはいつでも、AGPに準拠したマ
スタが、32バイトの倍数であるデータ転送長で、32
バイト・アドレスに整整列させたアクセス(32 byte add
ress alighed access)を実行可能なことが好ましい。こ
れによって、主システム・メモリとAGPバスとの間の
帯域幅を最大限拡張することができる。
【0109】PIPEの代わりに、SBA要求キューイ
ング機構(SBA request queuing mechanism)を用いる。
好適なホスト・ブリッジAGPターゲット要求キュー
は、多数の要求を保持することができる。ターゲットの
効率を最大限高めるためには、要求キューを可能なかぎ
り最大に保持すべきことが好ましい。これは、側波帯要
求の待ち行列化(sideband request enqueueing)を用い
て達成することが好ましく、これによってAGP2Xモ
ードの速度を利用し、ADバス調停のオーバーヘッドを
回避する。
【0110】グラフィックス・コントローラ210がP
CIサイクルを発生することができる場合、PCIキャ
ッシュ・ライン・サイズ・レジスタ(コンフィギュレー
ション空間オフセット0Ch)を実装し、可能な限り最
も効率的なPCIライトおよびリード・コマンドを使用
する。PentiumおよびPentium Proシステムは、32バイ
トのキャッシュ・ライン・サイズを使用しているので、
少なくともこのサイズに対応していると好ましい。
【0111】メモリ・ライトおよび無効化(MWI:Me
mory Write and Invalidate)コマンドは、特に、CP
Uキャッシュ・スヌープ・オーバーヘッドが高いPentiu
m Proを基本とするシステム上で、ライト・バーストを
実行する際に役に立つ。これは、ホスト・ブリッジがC
PUキャッシュ・ライトバック・データを無視すること
を可能にする。一旦CPUがスヌープ・アドレスを認識
したなら、ホスト・ブリッジはPCIストリームからメ
モリにデータを書き込むことができる。このコマンド
は、切断せずに多数のキャッシュ・ラインをバーストす
る場合に好ましい。
【0112】メモリ・リード・ライン(MRL:Memory
Read Line)およびメモリ・リード・マルチプル(MR
M:Memory Read Multiple)コマンドは、ホスト・ブリ
ッジに、メモリから追加のキャッシュ・ラインをプリフ
ェッチさせる。これはリード・バーストを高速化し、回
数が更に多い状況においても、切断することなく、バー
ストを継続させることができる。これらのコマンドがな
いと、CPUキャッシュ・スヌープはバーストを停止さ
せる(hold up)。プリフェッチは、前回のキャッシュ・
ライン・データ転送の間、スヌープ時間を隠す。
【0113】次に図49を参照すると、本発明の一実施
例による、AGPグラフィックス・コントローラ210
のコンフィギュレーション・レジスタの概略的なテーブ
ルが示されている。グラフィックス・コントローラ21
0内のAGPコンフィギュレーション・レジスタは、A
GPマスタに対してAGPバス・パラメータを構成する
ために必要な情報を収容する。能力ポインタ・レジスタ
2202は、PCI2.1仕様書(参照:「新能力」を
定義するECN)に記載されている新能力機構にしたが
って、このデバイスが対応する最初の機能へのオフセッ
ト・ポインタを与える。AGPは、新能力が対応する機
能である。図50は、能力ポインタ・レジスタ2202
において用いられるビットの機能的記述を示す。
【0114】AGP能力識別子レジスタ2204は、能
力リスト内のこの機能が、AGP機能であることを識別
する。図51は、AGP能力識別子レジスタ2204に
おいて用いられているビットの機能的記述を示す。AG
P能力識別子レジスタ2204は、能力リスト内の次の
機能へのポインタも与え、このデバイスが準拠するAG
P仕様書の改訂番号を引用する。
【0115】AGPステータス・レジスタ2206は、
このデバイスに、AGPファンクショナリティのステー
タスを与える。図52は、AGPステータス・レジスタ
2206において用いられるビットの機能的記述を示
す。報告される情報は、最大要求キューの深さ、側波帯
アドレシング能力、および転送レートを含む。このAG
Pステータス・レジスタは、好ましくは、リード・オン
リ・レジスタである。ライトは何も影響を与えず、予約
されているフィールドまたは実施されていないフィール
ドが読み出された場合には、ゼロを返す。
【0116】AGPコマンド・レジスタ2208は、ソ
フトウエアが側波帯アドレシングをイネーブルし、AG
Pをイネーブルし、AGP転送レートをセットすること
を可能にする。図53は、AGPコマンド・レジスタ2
208において用いられるビットの機能的記述を示す。
これらのビットは、初期化の間にオペレーティング・シ
ステムによってセットされる。
【0117】AGPレイテンシ インテル社のAGP仕様書第1.0版は、AGPサイク
ルに対するレイテンシを特定していない。本発明を開示
する目的のために、AGPレイテンシを、単一のサイク
ルをキューに入れた時点から、データの最初の二重ワー
ド(対応する要求に対する)がAGPマスタに提示され
るまでに発生するAGPバス・クロック(66MHz)
の数と定義することにする。レイテンシが開始するの
は、要求がAGPマスタによってADバスまたはSBA
バスにいずれかの上に置かれ(どのAGPアドレシング
方式を用いているかによって異なる)、PIPE#またはSBA
(それぞれ)がアクティブのときである。レイテンシが
終了するのは、TRDY#がアクティブであり、対応する要
求に対するデータの最初の二重ワードがADバス上に置
かれたときである。レイテンシは、AGPリード・サイ
クルに関してのみ定義する。何故なら、ライト・サイク
ルは、コア・ロジック・チップセット204内において
転記されるからである。図54は、最良の場合、典型的
な場合、および最悪の場合について予測されるレイテン
シを示す。
【0118】最良の場合のレイテンシは、目的とするデ
ータを読み出す間、GARTキャッシュ・ヒットおよび
メモリ・サブシステム・ページ・ヒットが得られた(即
ち、プリチャージなし)と仮定することによって、算出
することができる。また、ADバスが使用可能であり、
要求がキャッシュ・ライン上で整列され、コア・ロジッ
ク・チップセットのメモリ・バス・アービタがAGP要
求アクセスをメモリ・バスに直ちに付与することも仮定
する。計算に用いられるCAS#レイテンシは、2クロック
である。
【0119】典型的なレイテンシでは、ADバスが直ち
に使用可能であり、要求がキャッシュ・ライン上で整合
され、GARTキャッシュ・ヒットおよびメモリ・サブ
システム・ページ・ミス(即ち、プリチャージおよび活
性化が必要)が発生したと仮定する。この場合、AGP
要求は、アービタによってメモリ・バスが付与される前
に、行われている最中のプロセッサ−メモリ間サイクル
またはPCIバス−メモリ間サイクルが完了するのを待
たなければならない。プリチャージおよび活性化の不利
(penalty)が含まれる。計算に用いられるCAS#レイテン
シは、2クロックである。
【0120】最悪の場合のレイテンシでは、ADバスが
直ちに使用可能であり、要求がキャッシュ・ライン境界
上で整列され、GARTキャッシュ・ミス(即ち、GA
RTテーブル・エントリの参照が必要)およびページ・
ミス(即ち、プリチャージおよび活性化が必要)が発生
したと仮定する。この場合、GARTテーブル・エント
リの参照は、メモリ・バスが付与される前に、行われて
いる最中のプロセッサ−メモリ間サイクルまたはPCI
−メモリ間サイクルが完了するのを待たなければならな
い。一旦メモリ・バスが使用可能になれば、チップセッ
トはGARTテーブル・エントリのリードを実行する。
次いで、AGP要求は、メモリ・バスが付与される前
に、もう1回プロセッサまたはPCI−メモリ間サイク
ルおよびリフレッシュ・サイクルを待たなければならな
い。一旦メモリ・バスへのアクセスが付与されたなら、
AGPデータをメモリから読み出す。プリチャージおよ
び活性化の不利が含まれる。計算に用いられるCAS#レイ
テンシは、2クロックである。ソフトウエアの説明 AGPソフトウエア・アーキテクチャの主要コンポーネ
ントには、システムBIOS,チップセット・ミニポー
ト・ドライバ、オペレーティング・システム、およびグ
ラフィックス即ちDirect Drawドライバが含まれる。こ
れらのコンポーネントは、図20に示すように、チップ
セットおよびグラフィックス・コントローラ内におい
て、AGPおよびGARTテーブル機能を初期化し、制
御するために必要である。以下の開示では、主要なAG
Pソフトウエア・コンポーネントについて論ずる。主
に、システムBIOSおよびGARTミニポート・ドラ
イバ双方について検討する。また、AGPに適用された
場合のオペレーティング・システム/APIおよびグラ
フィックス・コントローラ・ドライバについても簡単に
説明する。
【0121】システムBIOS ブートの間、システムBIOS起動時自己検査(POS
T:power-on self-test)が以下のAGP機能を実行す
る。1)コア・ロジック・チップセットのAGPエラー
報告をイネーブルする。2)AGPデバイス・アドレス
空間のサイズを用いて、コア・ロジック・チップセット
のコンフィギュレーションを決定することも可能である
(オプション)。これらの機能の各々について、以下に
更に詳細に説明する。
【0122】エラー報告のイネーブル グラフィックス・コントローラが有効でないAGPメモ
リ内のページにアクセスしようとする場合、チップセッ
トは失敗(failure)を無視し処理を継続するか、あるい
はSERR#を発生することができる。このフィーチャはプ
ラットフォームに特定であるので、システムBIOSは
適切なレジスタをセットする役割を担う(GARTミニ
ポート・ドライバとは異なる)。これは、AGP失敗時
に、以下のアルゴリズムを用いてSERR#を発生するよう
に、システムのコンフィギュレーションを決定する。 1.システムBIOSは、最初に、AGP能力レジスタ
1904(図33および図35を参照)内のチップセッ
トの有効ビット・エラー報告対応ビット(ビット0)を
読み込むことによって、AGPエラー報告に対応してい
るか否かについて判定を行う。このビットが1にセット
されている場合、チップセットは、グラフィックス・コ
ントローラがAGPメモリ内の無効ページにアクセスし
ようとした場合に、SERR#を発生することができる。 2.SERR#の発生に対応する場合、チップセットはAG
Pフィーチャ制御レジスタ1906内の有効ビット・エ
ラー報告イネーブル・ビット(ビット0)を1にセット
することによって、SERR#の発生をイネーブルすること
ができる(図33および図35を参照)。このビットを
0にセットすると、システムは失敗を無視し、要求の処
理を継続する。
【0123】AGPデバイス・アドレス空間のサイズの
決定(configuring) 既存のバス一覧コードを再利用し、AGPに割り当てら
れる仮想および物理メモリ量を最適化するために、シス
テムBIOSは、バス一覧コードの実行の前に、チップ
セットのホスト−PCIブリッジ・コンフィギュレーシ
ョン・ヘッダ(機能0)(図17を参照)におけるベー
ス・アドレス・レジスタ0(BAR0)1702内のリ
ード/ライト属性のコンフィギュレーションを決定する
ことができる。コア・ロジック・チップセットがこのフ
ィーチャに対応すると仮定する。システムBIOSは以
下のアルゴリズムを用いてこれを行う。 1.バス一覧/メモリ・マッピング・ソフトウエアの前
に、システム内にインストールされているAGPグラフ
ィックス・コントローラの構造(make)およびモデルを判
定する。グラフィックス・コントローラに基づき、BI
OSは、AGPによって要求されたメモリ量を判定する
ことができる。 2.ステップ1で得られたサイズを用いて、チップセッ
トのPCI−PCIブリッジ・コンフィギュレーション
・ヘッダ(機能1)(図20および図32を参照)にア
クセスされたAGPデバイス・アドレス空間サイズ・レ
ジスタ1828のVASサイズ・ビット(ビット2:
1)に、適切なサイズをセットする。ビット2:1を変
更すると、チップセットは自動的にホスト−PCIブリ
ッジ・コンフィギュレーション・ヘッダ(機能1)のB
AR0 1702におけるリード/ライト属性を調節
し、所望のメモリ量を反映する(図17および図19を
参照)。 3.AGPデバイスが何も発見されなかった場合、AG
Pデバイス・アドレス空間サイズ・レジスタ内のAGP
有効ビットを0にセットし、AGPが無効であることを
示す。チップセットは自動的にホスト−PCIブリッジ
・コンフィギュレーション・ヘッダのBAR0 170
2を更新し、AGPに要求されたメモリがないことを示
す。PCI−PCIブリッジ(機能1)能力ポインタ
は、リンク・リスト内の次の項目を示すようにセットさ
れるか、または他に項目がない場合にはヌルにセットさ
れる。 4.バス一覧コードは、BAR0 1702内に要求さ
れたサイズを見出し、このメモリを(必要に応じて)メ
モリ・マップ内に割り当てる。AGPデバイス・アドレ
ス空間のブロックのベース・アドレスは、BAR0 1
702内に置かれ、32−MB境界上に位置する。
【0124】AGPデバイス・アドレス空間サイズ・レ
ジスタの実装は、チップセットに特定である。BIOS
は、そのコア・ロジック・チップセットが、AGPデバ
イス・アドレス空間サイズのコンフィギュレーションに
対応するか否かについて知っていなければならない。知
らない場合、AGPデバイス・アドレス空間サイズを、
ホスト−PCIブリッジ・コンフィギュレーション・ヘ
ッダのBAR0 1702にハード・コードし、BIO
Sによって要求されるアクションはない。
【0125】GARTミニポート・ドライバ 本発明のGARTミニポート・ドライバ(以降、「GA
RT MPD」または「MPD」)は、オペレーティン
グ・システム・ソフトウエアが以下の機能を実行するた
めに用いられる。 ・チップセット内のGART能力を初期化する。 ・GARTテーブルを作成し、初期化する。 ・GARTテーブル・エントリを予約する。 ・割り当てられた4KBページを用いてGARTテーブ
ル・エントリを物理メモリにマップする。 ・L1/L2キャッシュにページを書き出す。 ・GARTテーブル・エントリをアンマップ(unmap)
し、GARTキャッシュおよびリンク・ビット・コヒー
レンシを維持する。 ・GARTテーブル・エントリを解放する。 ・実行を終える(exit)際に、GART変換を終了する。 これらの機能の各々について、以下で更に詳しく説明す
る。GARTミニポート・ドライバが提供するサービス
を図56ないし図60に示す。GARTミニポート・ド
ライバに使用可能なサービスを図62および図63に示
す。これらのサービスに関する更なる情報については、
マイクロソフトAGPソフトウエア機能仕様書を参照さ
れたい。マイクロソフトAGPソフトウエア機能仕様書
は、ワシントン、レッドモンドのマイクロソフト社から
入手可能であり、その内容は、この言及により本願にも
含まれるものとする。
【0126】GART能力の初期化 オペレーティング・システムからPCIMPInit()コールを
受け取ったとき、GARTミニポート・ドライバ(MP
D)は、以下の機能を実行し、チップセット内における
GARTファンクショナリティを初期化する。 1.MPDは、チップセットのホスト−PCIブリッジ
・コンフィギュレーション・ヘッダ内のBAR0から、
AGPデバイス・アドレス空間へのポインタを読み出
す。このポインタは、AGPデバイス・アドレス空間の
ベースを示す。MPDはこのポインタを格納する。 2.MPDは、チップセットのPCI−PCIブリッジ
・コンフィギュレーション・ヘッダ内に位置するチップ
セットのAGPデバイス・アドレス空間サイズ・レジス
タから、デバイス・アドレス空間サイズ・フィールド
(ビット2:1)を読み出す。このフィールドは、MP
Dに、AGPに割り当てられたデバイス・アドレス空間
量を与える。MPDは、後に使用するためにこの値を格
納する。本発明の好適な実施形態では、この値は、32
MB,64MG,128MG,256MB,512M
B,1GB,または2GBとすることができる。 3.MPDは、チップセットのホスト−PCIブリッジ
・コンフィギュレーション・ヘッダ内のベース・アドレ
ス・レジスタ1(BAR1−オフセット14h)から、
AGPメモリ・マップ制御レジスタへのポインタを得
る。このポインタを、後に使用するために格納してお
く。また、MPDは、GARTテーブルのベース・アド
レス・レジスタの位置も格納する。このレジスタは、G
ARTテーブルのメモリ・マップ空間内のオフセット0
4hに位置する。 4.MPDは、チップセットのホスト−PCIブリッジ
・コンフィギュレーション・ヘッダ内のベース・アドレ
ス・レジスタ1(BAR1−オフセット14h)から、
AGPメモリ・マップ制御レジスタへのポインタを得
る。このポインタを用いて、MPDは、AGPフィーチ
ャ制御レジスタ(ポインタからオフセット02h)内の
GARTキャッシュ・イネーブル・ビット(ビット3)
を1にセットすることにより、GARTテーブル・キャ
ッシュをイネーブルする。ここでは、GARTキャッシ
ュ・コヒーレンシを維持するのは、GART MPDの
役割である。 5.MPDは、チップセットのホスト−PCIブリッジ
・コンフィギュレーション・ヘッダ内のベース・アドレ
ス・レジスタ1(BAR1−オフセット14h)から、
AGPメモリ・マップ制御レジスタへのポインタを得
る。このポインタを用いて、MPDはAGP能力レジス
タ(ポインタからオフセット01h)内のGARTエン
トリ・リンキング対応ビット(GART Entry Linking Supp
orted bit)(ビット1)を読み出し、このチップセット
がリンクに対応するか否かについて判定を行う。チップ
セットがリンクに対応する場合、MPDは、AGPフィ
ーチャ制御レジスタ(ポインタからオフセット02h)
内のGARTエントリ・リンキング・イネーブル・ビッ
ト(ビット1)を1にセットし、リンク/プリフェッチ
機能をイネーブルする。ここでは、必要に応じてリンク
・ビットをセットするのは、MPDの役割である。
【0127】GARTディレクトリ/テーブルの割り当
ておよび初期化 AGPの初期化に続き、オペレーティング・システムか
らのPCIMPReset()コールを受け取ると、チップセット・
ミニポート・ドライバ(MPD)は、以下の機能を実行
し、GARTディレクトリ/テーブルの(再)作成およ
び初期化を行う。 1.MPDは、PCIAllocatePages()コマンドを用いてオ
ペレーティング・システムをコールすることにより、G
ARTテーブルに、4KBページのシステム・メモリを
「n」個割り当てる。MPDは、「n」、即ち、割り当
てるべきページ数を、使用可能なシステム・メモリのペ
ージ数(PCIMPresetコール内にオペレーティング・シス
テムによって与えられる)、およびシステムBIOSに
よって割り当てられるAGPデバイス・アドレス空間の
量(チップセットのホスト−PCIブリッジ・コンフィ
ギュレーション・ヘッダ内のBAR0を参照する)に基
づいて決定しなければならない。尚、二レベル・アドレ
ス変換を使用するシステムは、GARTディレクトリに
割り当てられる追加のエントリを有さなければならない
ことを注記しておく。先に開示したように、本発明のA
GPを実装することにより、2種類のアドレス変換、即
ち、一レベル・アドレス変換(ページ→テーブル)およ
び二レベル変換(ディレクトリ→テーブル→ページ)に
対応する。単一レベル・アドレス変換を用いるシステム
では、GARTには、単一の隣接するメモリ・ブロック
を割り当てなければならない。PCIAllocatePages()サー
ビスを用いる場合、MPDはPageContigフラグをセット
し、オペレーティング・システムからの隣接ページを要
求しなければならない。好ましくは、GARTテーブル
のためのメモリ割り当ては、オペレーティング・システ
ムの起動後直ちに実行し、必要な隣接メモリが確実に得
られるようにする。二レベル・アドレス変換を用いるシ
ステムでは、GARTテーブルは隣接する必要はない。
MPDは、オペレーティング・システムが割り当てられ
たページをゼロで満たすように、PCIAllocatePages()サ
ービス内にPageZeroInitフラグをセットし、GARTデ
ィレクトリ/テーブルを初期化する。L1/L2キャッ
シュ・コヒーレンシを維持するために、MPDはMP#FLU
SHES#L2#CACHEフラグをセットし、オペレーティング・
システムがL1およびL2キャッシュを書き出すべきこ
とを示す。 2.PCIAllocatePages()コールに応答して、オペレーテ
ィング・システムは、要求に応じられなかった(fail)場
合にはNULLを返し、またコールが成功した場合GART
テーブルの線形アドレスを返す。この線形アドレスは、
MPDが今後使用するためにセーブしておく。また、M
PDは、PCILinToDev()コマンドを用いて、この線形ア
ドレスを物理アドレスに変換しなければならない。次
に、MPDは、チップセットのホスト−PCIブリッジ
・コンフィギュレーション・ヘッダ内のベース・アドレ
ス・レジスタ1(BAR1−オフセット14h)から、
AGPメモリ・マップ制御レジスタへのポインタを得
る。このポインタを用いて、MPDは、チップセットの
AGPメモリ・マップ空間内のAGP GARTベース
・アドレス・レジスタ(ポインタからオフセット04
h)に、割り当てられた最初の4KBページに対するベ
ース(物理)アドレスを書き込む。単一レベル変換を使
用するシステムでは、この最初のエントリは、GART
テーブルのベースを示す。二レベル変換を使用するシス
テムでは、このエントリはGARTディレクトリのベー
スである。 3.二レベル・アドレス変換を使用するシステムでは、
MPDは、戻された線形アドレスの範囲を「歩き」、割
り当てられたばかりの各4KBページの物理アドレスを
判定し、各4KBページの先頭の物理アドレスを、それ
に対応するGARTディレクトリ・エントリに書き込ま
なければならない。これによって、GARTディレクト
リを満たす。
【0128】GARTテーブル・エントリの予約 実行時間の間、およびオペレーティング・システムから
PCIMPReserveEntries()コールを受け取ったとき、チッ
プセット・ミニポート・ドライバ(MPD)は、以下の
機能を実行し、オペレーティング・システムのためにG
ARTテーブル・エントリを予約する。 1.MPDはGARTテーブルを検索し、「n」個の使
用可能な隣接するエントリを求める。ここで、「n」
は、PCIMPReserveEntries()コールにおいてオペレーテ
ィング・システムが要求した4KBページの数である。
隣接するエントリを発見したなら、MPDは、各GAR
Tテーブル・エントリに有効ビット(ビット0)をセッ
トすることによって、これらのエントリをオペレーティ
ング・システムのために予約する。 2.次に、MPDはマップ・ハンドルを返す。マップ・
ハンドルとは、予約された最初のGARTテーブル・エ
ントリの線形アドレスである。このマップ・ハンドル
は、後にMPDが、GARTテーブル・エントリをマッ
プし維持するために用いる。尚、マップ・ハンドルは、
AGPデバイス・アドレス空間内の対応するページのベ
ース・アドレスに対応することを注記しておく。
【0129】GARTテーブル・エントリのマッピング GARTテーブル・エントリが予約された後、オペレー
ティング・システムからPCIMPMapEntries()コールを受
け取ると、チップセット・ミニポート・ドライバ(MP
D)は、以下の機能を実行し、予約されたGARTテー
ブル・エントリを用いて、以前に割り当てられた4KB
ページを物理メモリにマップする。 1.MPDは、PCILinToDev()コマンドを用いて、PCIMP
MapEntries()コールによって与えられたシステム線形ア
ドレスを物理アドレスに変換する。得られたアドレス
は、物理システム・メモリ内の特定の4KBページのベ
ース・アドレスを表す。尚、物理アドレス空間における
非隣接4KBページは、システム線形アドレス空間内の
プロセッサには、隣接しているように見える。 2.MPDは、得られた物理アドレスを、マップ・ハン
ドラによってインデックスされた特定のGARTテーブ
ル・エントリに書き込む。このマップ・ハンドラは、G
ARTテーブル・エントリを予約する間に得られ、オペ
レーティング・システムによってMPDに渡される。マ
ップ・ハンドルは、各GARTテーブル・エントリに対
する線形アドレスである。ページは4KBの境界上に位
置するので、ビット31:12は、GARTテーブル・
エントリ内のビット31:12に書き込まれる。 3.システムにおいてリンクに対応する場合、必要に応
じて、MPDによってリンク・ビット(ビット1)を対
応するエントリにセットする。リンク・ビットは、次の
GARTテーブル・エントリが現GARTテーブル・エ
ントリに関連付けられていることを示す。リンクがイネ
ーブルされた「n」個のエントリをマップする場合、エ
ントリ1ないしn−1にリンク・ビットをセットしなけ
ればならない。例えば、PCIMPMapEntries()コールの結
果として8つのエントリをマップする場合、8つのエン
トリが全て関連付けられていると仮定する。エントリ1
ないし7にリンク・ビットをセットすることにより、エ
ントリ2ないし8をプリフェッチし、GARTテーブル
・キャッシュにキャッシュすることが可能となる。尚、
これは、GARTテーブルの参照中に、チップセット・
バースト・メモリにアクセスすることを想定しているこ
とを注記しておく。 4.ステップ1ないし3を「n」回繰り返す。ここで、
「n」は、マッピングが必要なページ数である。マップ
・ハンドルおよびシステム線形アドレスは、各繰り返し
毎に増分しなければならないことを注記しておく。
【0130】5.ステップ1ないし4の完了時に、MP
Dは、チップセットのホスト−PCIブリッジ・コンフ
ィギュレーション・ヘッダ内のベース・アドレス・レジ
スタ1(BAR1−オフセット14h)から、AGPメ
モリ・マップ・コントロール・レジスタへのポインタを
得る。このポインタを用いて、MPDは、チップセット
のホスト−メモリ・ポステド・ライト・バッファを書き
出し、ポステド・ライト・バッファ・コントロール・レ
ジスタ(オフセット14h)内のフラッシュ・ポステド
・ライト・バッファ・ビット(ビット0)を1にセット
する。このビットは、完了時に、チップセットによって
0にリセットされる。MPDは、フラッシュの完了を確
認するために、このビットをポールする必要はない。代
わりに、GARTテーブルに書き込まれた最後のエント
リのリード・バックを行う。フラッシュの完了は、デー
タがリード・バックから戻される前に、保証される。
【0131】L1/L2キャッシュのフラッシュ GARTテーブル・エントリのマッピングの直後、およ
びオペレーティング・システムからPCIMPFlushPages()
コールを受け取ったときに、チップセット・ミニポート
・ドライバ(MPD)は、以下の機能を実行し、L1/
L2キャッシュに特定のページを書き出す。 1.MPDは、プロセッサのCR3レジスタを用いて、
L1キャッシュを書き出す。 2.MPDは、可能であれば、L2キャッシュから特定
のページを書き出す。MPDが特定のL2ページを書き
出すことができない場合、L2キャッシュ全体を書き出
してはならない。代わりに、何もすべきではない。
【0132】GARTテーブル・エントリのアンマッピ
ング、ならびにGARTキャッシュおよびリンク・ビッ
ト・コヒーレンシの維持 実行時間中、およびオペレーティング・システムからPC
IMPUnMapEntries()コールを受け取った場合、チップセ
ット・ミニポート・ドライバ(MPD)は以下の機能を
実行し、GARTキャッシュのコヒーレンシを維持しつ
つ、GARTテーブル・エントリをアンマップ(unmap)
する。 1.PCIMPUnMapEntries()コールによって与えられたマ
ップ・ハンドルを、GARTテーブルへの線形アドレス
として用い、MPDは、インデックスされたGARTテ
ーブル・エントリ(有効ビットを含まない)を、何らか
の無効状態に初期化する。有効ビットは有効のままであ
り、このエントリがアプリケーションのために未だ予約
されていることを示す。 2.GARTキャッシングがイネーブルされている場
合、MPDは特定のキャッシュされたエントリまたはG
ARTキャッシュ全体のいずれかを無効化しなければな
らない。特定のGARTキャッシュ・ラインを無効化す
るには、MPDはAGPデバイス・アドレスを、GAR
Tキャッシュ・エントリ制御レジスタ(オフセット10
h)のビット31:12に書き込み、その同じレジスタ
において、GARTキャッシュ・エントリ無効化ビット
(ビット0)を1にセットする。単一のGARTキャッ
シュ・エントリは無効化されない。完了時に、チップセ
ットによって、ビット0が0にリセットされる。エント
リが存在しない場合、要求は無視される。GARTキャ
ッシュ全体を無効化するには、MPDは、GARTキャ
ッシュ制御レジスタ(オフセット0Ch)のGARTキ
ャッシュ無効化ビット(ビット0)に1を書き込む。G
ARTキャッシュ全体は、自動的に無効化される。完了
時に、キャッシュ無効化ビットは、チップセットによっ
て、0にリセットされる。GARTキャッシュ全体の無
効化は、「n」個のGARTテーブル・エントリが全て
無効化された後に行うことが好ましい。ここで、「n」
は、PCIMPFreeEntries()コールによって与えられた、解
放すべきGARTテーブル・エントリの数である。 3.リンクがイネーブルされている場合、MPDはリン
ク・ビット・コヒーレンシが維持されていることを保証
しなければならない。例えば、GARTテーブル・エン
トリ0,1,2,3が存在し、リンク・ビットがエント
リ0,1,2においてセットされており、エントリ2,
3が解放されている場合、エントリ1内のリンク・ビッ
トをディスエーブルしなければならない。リンク・ビッ
ト・コヒーレンシを維持し損なうと、不必要なGART
テーブル・エントリをキャッシュする結果となる。 4.ステップ1ないし3を「n」回繰り返す。ここで、
「n」は、解放すべきGARTテーブル・エントリの数
である。この値は、PCIMPFreeEntries()コールによっ
て、入力パラメータとして与えられる。尚、マップ・ハ
ンドルは、各繰り返し毎に増分しなければならないこと
を注記しておく。 5.ステップ1ないし4の完了時に、MPDは、チップ
セットのホスト−PCIブリッジ・コンフィギュレーシ
ョン・ヘッダ内のベース・アドレス・レジスタ1(BA
R1−オフセット14h)から、AGPメモリ・マップ
・コントロール・レジスタへのポインタを得る。このポ
インタを用いて、MPDはチップセットのホスト・メモ
リ・ポステド(転記)ライト・バッファを書き出し、ポ
ステド・ライト・バッファ・コントロール・レジスタ
(オフセット14h)内のフラッシュ・ポステド・ライ
ト・バッファ・ビット(ビット0)を1にセットする。
このビットは、完了時に、チップセットによって0にリ
セットされる。MPDは、フラッシュの完了を確認する
ために、このビットをポールする必要はない。代わり
に、GARTテーブルに書き込まれた最後のエントリの
リード・バックを行う。フラッシュの完了は、データが
リード・バックから戻される前に、保証される。
【0133】GARTテーブル・エントリの解放 オペレーティング・システムからPCIMPFreeEntries()コ
ールを受け取ったとき、チップセット・ミニポート・ド
ライバ(MPD)は、以下の機能を実行してGARTテ
ーブル・エントリを解放する。 1.PCIMPFreeEntries()コールによって与えられたマッ
プ・ハンドルを、GARTテーブル・エントリに対する
線形アドレスとして用い、MPDはGARTテーブル・
エントリの有効ビットを無効(0)にセットする。この
ステップは、「n」回実行される。ここで、「n」は、
PCIMPFreeEntries()コールにおいて渡されたページ数で
ある。 2.ステップ1の完了時に、MPDは、チップセットの
ホスト−PCIブリッジ・コンフィギュレーション・ヘ
ッダ内のベース・アドレス・レジスタ1(BAR1−オ
フセット14h)から、AGPメモリ・マップ・コント
ロール・レジスタへのポインタを得る。このポインタを
用いて、MPDはチップセットのホスト・メモリ・ポス
テド・ライト・バッファを書き出し、ポステド・ライト
・バッファ・コントロール・レジスタ(オフセット14
h)内のフラッシュ・ポステド・ライト・バッファ・ビ
ット(ビット0)を1にセットする。このビットは、完
了時に、チップセットによって0にリセットされる。M
PDは、フラッシュの完了を確認するために、このビッ
トをポールする必要はない。代わりに、GARTテーブ
ルに書き込まれた最後のエントリのリード・バックを行
う。フラッシュの完了は、データがリード・バックから
戻される前に、保証される。
【0134】GARTテーブルファンクショナリティの
終了 オペレーティング・システムからのPCIMPExit()コール
を受け取った場合、チップセット・ミニポート・ドライ
バ(MPD)は、以下の機能を実行してGARTファン
クショナリティをディスエーブルする。 1.MPDは、GARTディレクトリ/テーブル・キャ
ッシュ制御レジスタ(オフセット0Ch)のGARTキ
ャッシュ無効ビット(ビット0)に1を書き込むことに
よって、GARTディレクトリおよびテーブル・キャッ
シュを書き出す。GARTキャッシュ全体が、自動的に
無効化される。完了時に、キャッシュ無効化ビットが、
チップセットによって0にリセットされる。 2.MPDはPCIFreePages()をコールし、GARTテー
ブルに割り当てられていたページを解放する。MPD
は、GARTテーブルのベースの線形アドレス、および
解放するページ数を供給しなければならない。 3.MPDは、以前に割り当てたGARTテーブル位置
の全てに0を書き込むことによって、解放したページを
初期化する。AGPファンクショナリティは、GART
ファンクショナリティを終了する前に、ディスエーブル
することが好ましい。AGPファンクショナリティは、
ターゲットにおいてAGPファンクショナリティをディ
スエーブルする前に、マスタにおいてディスエーブルさ
れる。
【0135】オペレーティング・システム オペレーティング・システムは、以下のAGP機能を実
行する。 ・マスタおよびターゲット双方においてデータ転送レー
トを設定する。 ・必要に応じて、マスタおよびターゲット双方において
側波帯アドレシングをイネーブルする。 ・マスタにおいて要求キューの深さを設定する。 ・ターゲットおよびマスタにおいて、AGPをイネーブ
ルする。 ・必要に応じて、物理メモリの割り当ておよび解放を行
なう。 ・GARTミニポート・ドライバのために、リード/ラ
イト・サービスを行なう。 AGPに適用されるオペレーティング・システムのファ
ンクショナリティに関するこれ以上の詳細については、
マイクロソフトのAGPソフトウエア機能仕様書を参照
されたい。
【0136】グラフィックス・ドライバ/Direct X グラフィックス・ドライバ即ちDirect Xは以下のAGP
機能を実行する。 ・アプリケーションが用いるために、AGPデバイス・
メモリのページを予約する。 ・予約したデバイス・メモリのページを引き渡す(commi
t)ことにより、システム・メモリを割り当てる。 ・予約したデバイス・メモリのページを回収する(uncom
mit)ことにより、システム・メモリの割り当てを解除す
る。 ・AGPデバイス・メモリの以前に予約したページを解
放する。 ・情報が引き渡されたメモリを獲得する。 AGPに適用されるグラフィックス・ドライバおよびDi
rect Xドライバのファンクショナリティに関するこれ以
上の詳細については、マイクロソフトのAGPソフトウ
エア機能仕様書を参照されたい。AGPに適用されるグ
ラフィックス・ドライバおよびDirect Xドライバのファ
ンクショナリティに関するこれ以上の詳細については、
マイクロソフトのAGPソフトウエア機能仕様書を参照
されたい。
【0137】以上のように、本発明は、その目的を達成
し、前述の結果(end)および利点、ならびにその他の本
発明特有の利点を得るのに十分に適合したものである。
特定の好適な実施形態を参照しながら本発明を図示し、
説明し、定義したが、かかる参照は、本発明に対する限
定を暗示するものではなく、かかる限定を何ら推論する
ものでもない。本発明は、当業者には想起されるよう
に、その形態および機能において、かなりの変更、変
形、および均等物が可能である。図示し記載した本発明
の好適な実施形態は例示に過ぎず、本発明の範囲を網羅
するものではない。したがって、本発明は、あらゆる観
点において均等物を最大限認める、特許請求の範囲の精
神および範囲によってのみ限定されることを意図するも
のである。
【図面の簡単な説明】
【図1】従来技術のコンピュータ・システムの概略ブロ
ック図。
【図2】本発明によるコンピュータ・システムの概略ブ
ロック図。
【図3】図2のコンピュータ・システムによる、本発明
の実施形態の概略機能ブロック図。
【図4】本発明による、コンピュータ・システムのメモ
リ・マップ、GARTテーブル、GARTテーブル・エ
ントリの概略図。
【図5】本発明による概略機能ブロック図およびメモリ
・マップ。
【図6】AGP単一レベル・アドレス変換のメモリ・マ
ップの概略図。
【図7】図6のAによるAGP単一レベル・アドレス変
換の概略機能ブロック図。
【図8】単一レベル変換において、ページ・オフセット
に必要なビットを示すテーブル。
【図9】単一レベル・アドレス・リマッピングの概略フ
ロー・チャート。
【図10】図6のBによるAGP二レベル・アドレス変
換の概略機能ブロック図。
【図11】二レベル変換において、ディレクトリおよび
ページ・オフセットに必要なビットを示すテーブル。
【図12】二レベル・アドレス・リマッピングの概略フ
ロー・チャート。
【図13】本発明によるGARTテーブルのメモリ・マ
ップの概略図。
【図14】本発明による、GARTディレクトリ内のエ
ントリ、GARTテーブル・エントリのページおよびA
GPメモリのメモリ・マップの概略図。
【図15】最大GARTテーブル・サイズとAGPメモ
リのサイズとの関係を示すテーブル。
【図16】AGP論理アーキテクチャの概略機能ブロッ
ク図。
【図17】図16のAGP機能ブロック図よび本発明の
一実施形態によるレジスタを概略的に示すテーブル。
【図18】本発明による、図17のAのAGPレジスタ
内で用いられるビットの機能的記述を示すテーブル。
【図19】本発明による、図17のAのAGPレジスタ
内で用いられるビットの機能的記述を示すテーブル。
【図20】図16のAGP機能ブロック図および本発明
の一実施形態によるレジスタを概略的に示すテーブル。
【図21】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図22】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図23】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図24】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図25】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図26】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図27】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図28】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図29】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図30】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図31】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図32】本発明による、図20のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図33】図16のAGP機能ブロック図および本発明
の一実施形態による、メモリ・マップ・レジスタを概略
的に示すテーブル。
【図34】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図35】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図36】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図37】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図38】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図39】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図40】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図41】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図42】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図43】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図44】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図45】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図46】本発明による、図33のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図47】本発明の一実施形態による、GARTテーブ
ル・エントリをキャッシュする場合の概略メモリ・マッ
プ。
【図48】本発明の一実施形態による、GARTテーブ
ル・エントリをプリフェッチする場合の概略メモリ・マ
ップ。
【図49】図16のAGP機能ブロック図および本発明
の一実施形態による、AGPグラフィックス・コントロ
ーラのコンフィギュレーション・レジスタを概略的に示
すテーブル。
【図50】本発明による、図16のAのAGPレジスタ
内で用いられるビットの機能的記述を示すテーブル。
【図51】本発明による、図16のAのAGPレジスタ
内で用いられるビットの機能的記述を示すテーブル。
【図52】本発明による、図16のAのAGPレジスタ
内で用いられるビットの機能的記述を示すテーブル。
【図53】本発明による、図16のAのAGPレジスタ
内で用いられるビットの機能的記述を示すテーブル。
【図54】本発明による、AGPに対する最良、典型
的、および最悪の場合のレイテンシを示すテーブル。
【図55】AGPソフトウエア・アーキテクチャの概略
機能ブロック図。
【図56】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図57】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図58】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図59】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図60】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図61】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図62】GARTミニポート・ドライバに使用可能な
ソフトウエア・サービスを示すテーブル。
【図63】GARTミニポート・ドライバに使用可能な
ソフトウエア・サービスを示すテーブル。
【符号の説明】
103 ホスト・バス 105 メモリ・バス 109 一次PCIバス 111 SCSIバス 113 EISA/ISAバス 119 ローカル・エリア・ネットワーク 121 電話回線 200 コンピュータ・システム 204 コア・ロジック・チップセット 207 AGPバス 302 CPUホスト・バス・インターフェースおよ
びキュー 304 メモリ・インターフェースおよび制御部 306 ホスト/PCIブリッジ 309,311 コア・ロジック・バス 318 AGPロジック 322 キャシュ 402 論理メモリ・マップ 412a,412b,412c AGPメモリ・ペー
ジ 414 GARTテーブル 416 ベース・アドレス 418 GARTテーブル・エントリ 422 リンク・ビット
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591030868 20555 State Highway 249,Houston,Texas 77070,United States o f America (72)発明者 ロバート・シー・エリオット アメリカ合衆国テキサス州77069,ヒュー ストン,チャンピオンズ・センター・ドラ イブ 13222

Claims (52)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムにおいて、 ソフトウエア命令を実行し、グラフィックス・データを
    発生するシステム・プロセッサと、 複数の記憶バイトから成るアドレス可能メモリ空間を有
    するシステム・メモリであって、前記複数の記憶バイト
    の各々が一意的なアドレスを有し、前記ソフトウエア命
    令および前記グラフィックス・データが、システム・メ
    モリの前記複数の記憶バイトのいくつかに格納され、前
    記グラフィックス・データが複数のグラフィックス・デ
    ータのページに格納され、前記複数のグラフィックス・
    データのページの各々が、前記複数の記憶バイト内の所
    定数の記憶バイトから成る、システム・メモリと、 ビデオ・ディスプレイに接続され、前記グラフィックス
    ・データからのビデオ表示データを生成して、該ビデオ
    表示データを前記ビデオ・ディスプレイ上に表示させる
    グラフィックス・プロセッサと、 前記システム・プロセッサを前記システム・メモリに接
    続するための第1のインターフェース・ロジックと、 前記システム・プロセッサおよび前記システム・メモリ
    を前記グラフィックス・プロセッサに接続するための第
    2のインターフェース・ロジックであって、キャッシュ
    ・メモリとキャッシュ・エントリ・コントロール・レジ
    スタを有し、前記キャッシュ・メモリが、それぞれがア
    ドレス部分、エントリ部分、エントリ更新部分及びエン
    トリ無効化部分を有している複数の記憶位置を備えてい
    る、第2のインターフェース・ロジックと、 複数のエントリを有するグラフィックス・アドレス・リ
    マッピング・テーブル(GARTテーブル)であって、
    前記GARTテーブル・エントリの各々が、前記複数の
    グラフィックス・データのページ中の対応する1つのグ
    ラフィックス・データへのアドレス・ポインタを備えて
    いるGARTテーブルとからなり、 前記第2のインターフェース・ロジックが、前記GAR
    Tテーブル・エントリ中の1つ又は複数を選択して読み
    出し、かつ該読み出されたGARTテーブル・エントリ
    を、前記グラフィックス・プロセッサによってアサート
    されたグラフィックス・デバイス・アドレスに関連する
    前記キャッシュ・メモリ中の記憶位置のエントリ部分に
    記憶し、 前記キャッシュ・エントリ・コントロール・レジスタ
    が、ソフトウエア命令のアプリケーション・プログラミ
    ング・インターフェース(API)からのグラフィック
    ス・デバイス・アドレス、エントリ更新、及びエントリ
    無効化の情報を受信し、 前記キャッシュ・エントリ・コントロール・レジスタを
    介して受け取った情報により、前記エントリ更新部分が
    第1のロジック・レベルにセットされるべき場合に、前
    記第2のインターフェース・ロジックが、複数のGAR
    Tエントリを読み出して、キャッシュ・エントリ・コン
    トロール・レジスタにより受信されたグラフィックス・
    デバイス・アドレスと対応する記憶位置にある情報を更
    新し、 前記キャッシュ・エントリ・コントロール・レジスタを
    介して受け取った情報により、前記エントリ無効化部分
    が前記第1のロジック・レベルにセットされるべき場合
    に、前記第2のインターフェース・ロジックが、キャッ
    シュ・エントリ・コントロール・レジスタにより受信さ
    れたグラフィックス・デバイス・アドレスと関連する記
    憶位置にある情報を無効化することを特徴とするコンピ
    ュータ・システム。
  2. 【請求項2】 請求項1記載のコンピュータ・システム
    において、 該システムはさらに、前記キャッシュ・エントリ・コン
    トロール・レジスタ中にキャッシュ・エントリ更新ビッ
    トを含み、 前記キャッシュ・エントリ更新ビットは、前記キャッシ
    ュ・エントリ・コントロール・レジスタに書き込みを行
    うAPIによって前記第1のロジック・レベルにセット
    され、かつ、前記第1のロジック・レベルにセットされ
    るべきか又は第2のロジック・レベルにクリアされるべ
    きかを決定するためにAPIによって読み出すことがで
    き、 APIによって第1のロジック・レベルにキャッシュ・
    エントリ更新ビットをセットすることにより、前記第2
    のインターフェース・ロジックが、前記システム・メモ
    リに記憶された前記複数のGARTテーブル・エントリ
    から、APIからキャッシュ・エントリ・コントロール
    ・レジスタによって受け取られたグラフィックス・デバ
    イス・アドレスに対応する記憶位置に更新し、 前記第
    2のインターフェース・ロジックは、前記キャッシュ・
    エントリ・コントロール・レジスタにより受け取られた
    グラフィックス・デバイス・アドレスに関連する記憶位
    置を更新した後、前記キャッシュ・エントリ更新ビット
    を前記第2のロジック・レベルにクリアすることを特徴
    とするコンピュータ・システム。
  3. 【請求項3】 請求項1記載のコンピュータ・システム
    において、 該システムはさらに、前記キャッシュ・エントリ・コン
    トロール・レジスタ中にキャッシュ・エントリ無効化ビ
    ットを含み、 前記キャッシュ・エントリ無効化ビットは、前記キャッ
    シュ・エントリ・コントロール・レジスタに書き込みを
    行うAPIによって前記第1のロジック・レベルにセッ
    トされ、かつ、前記第1のロジック・レベルにセットさ
    れるべきか又は第2のロジック・レベルにクリアされる
    べきかを決定するためにAPIによって読み出すことが
    でき、 APIによって第1のロジック・レベルにキャッシュ・
    エントリ無効化ビットをセットすることにより、前記第
    2のインターフェース・ロジックが、APIからキャッ
    シュ・エントリ・コントロール・レジスタによって受け
    取られたグラフィックス・デバイス・アドレスに関連す
    る記憶位置を無効化し、 前記第2のインターフェース・ロジックは、前記キャッ
    シュ・エントリ・コントロール・レジスタにより受け取
    られたグラフィックス・デバイス・アドレスに関連する
    記憶位置を無効化した後、前記キャッシュ・エントリ無
    効化ビットを前記第2のロジック・レベルにクリアする
    ことを特徴とするコンピュータ・システム。
  4. 【請求項4】 請求項1記載のコンピュータ・システム
    において、前記アプリケーション・プログラミング・イ
    ンターフェース(API)は、GARTミニポート・ド
    ライバであることを特徴とするコンピュータ・システ
    ム。
  5. 【請求項5】 請求項1記載のコンピュータ・システム
    において、 前記第2のインターフェース・ロジックは、前記キャッ
    シュ・メモリに記憶された前記選択されたGARTテー
    ブル・エントリを用いて、前記システム・メモリに記憶
    されたグラフィックス・データの第1の部分の関連する
    ページのアドレスを指定し、 前記関連するページは、ビデオ表示データを生成するた
    めに前記グラフィックス・プロセッサによって読み出さ
    れることを特徴とするコンピュータ・システム。
  6. 【請求項6】 請求項5記載のコンピュータ・システム
    において、該システムは更に、前記グラフィックス・プ
    ロセッサに接続されたローカル・フレーム・メモリを備
    え、該ローカル・フレーム・メモリは、前記システム・
    メモリからのグラフィックス・データの第2の部分を記
    憶することを特徴とするコンピュータ・システム。
  7. 【請求項7】 請求項5記載のコンピュータ・システム
    において、前記グラフィックス・データの第1の部分
    は、グラフィックス・データの複数のページのランダム
    な非隣接ページに記憶されることを特徴とするコンピュ
    ータ・システム。
  8. 【請求項8】 請求項6記載のコンピュータ・システム
    において、 前記ローカル・フレーム・バッファ・メモリが、前記グ
    ラフィックス・データの第2の部分を隣接する仮想アド
    レス空間に記憶し、 前記グラフィックス・プロセッサが、前記キャッシュ・
    メモリに記憶された前記選択されたGARTテーブル・
    エントリを用いて、隣接する仮想アドレス空間にある前
    記グラフィックス・データの第2の部分にアクセスし、
    かつ、前記フレーム・バッファ・メモリからのグラフィ
    ックス・データの第2の部分にアクセスすることを特徴
    とするコンピュータ・システム。
  9. 【請求項9】 請求項8記載のコンピュータ・システム
    において、前記グラフィックス・プロセッサは、前記隣
    接する仮想アドレス空間のグラフィックス・データの第
    1及び第2の部分を読み出すことを特徴とするコンピュ
    ータ・システム。
  10. 【請求項10】 請求項1記載のコンピュータ・システ
    ムにおいて、前記第1のロジック・レベルはロジック1
    であり、前記第2のロジック・レベルはロジック0であ
    ることを特徴とするコンピュータ・システム。
  11. 【請求項11】 請求項1記載のコンピュータ・システ
    ムにおいて、前記第1のロジック・レベルはロジック0
    であり、前記第2のロジック・レベルはロジック1であ
    ることを特徴とするコンピュータ・システム。
  12. 【請求項12】 請求項1記載のコンピュータ・システ
    ムにおいて、該システムはさらに、前記システム・プロ
    セッサ及び前記システム・メモリを入出力デバイスに接
    続するための第3のインターフェース・ロジックを具え
    ていることを特徴とするコンピュータ・システム。
  13. 【請求項13】 請求項1記載のコンピュータ・システ
    ムにおいて、該システムは更に、前記システム・プロセ
    ッサ及び前記システム・メモリを記憶デバイスに接続す
    るための第4のインターフェース・ロジックを具えてい
    ることを特徴とするコンピュータ・システム。
  14. 【請求項14】 請求項1記載のコンピュータ・システ
    ムにおいて、前記複数のGARTテーブル・エントリ
    は、前記システム・メモリに記憶されることを特徴とす
    るコンピュータ・システム。
  15. 【請求項15】 請求項1記載のコンピュータ・システ
    ムにおいて、前記複数のGARTテーブル・エントリ
    は、前記システム・メモリ中の複数のGARTページに
    記憶されることを特徴とするコンピュータ・システム。
  16. 【請求項16】 請求項15記載のコンピュータ・シス
    テムにおいて、前記複数のGARTテーブル・エントリ
    は、非隣接でランダムに前記システム・メモリに記憶さ
    れることを特徴とするコンピュータ・システム。
  17. 【請求項17】 請求項16記載のコンピュータ・シス
    テムにおいて、 該システムは更に、複数のエントリを有するGARTデ
    ィレクトリを備え、 該GARTディレクトリの各々エントリは、GARTテ
    ーブル・エントリの複数のページの対応する1つへのア
    ドレス・ポインタを備え、 前記第2のインターフェース・ロジックは、前記システ
    ム・メモリ中のGARTテーブル・エントリの複数のペ
    ージを位置決めするために、GARTディレクトリの複
    数のエントリを使用することを特徴とするコンピュータ
    ・システム。
  18. 【請求項18】 請求項1記載のコンピュータ・システ
    ムにおいて、前記グラフィックス・データの複数のペー
    ジの各々は、4096バイトの記憶容量であることを特
    徴とするコンピュータ・システム。
  19. 【請求項19】 請求項1記載のコンピュータ・システ
    ムにおいて、該システムは更に、ビデオ・ディスプレイ
    を備えていることを特徴とするコンピュータ・システ
    ム。
  20. 【請求項20】 中央処理ユニット及びランダム・アク
    セス・メモリ(RAM)をアクセレレイテド・グラフィ
    ックス・ポート(AGP)に接続するコア・ロジック・
    チィップセットを有するコンピュータ・システムにおい
    て、 ホスト・バスに接続された中央処理ユニットと、 RAMバスに接続されたRAMと、 前記ホスト・バス及び前記RAMバスに接続されたコア
    ・ロジック・チップセットとからなり、 前記コア・ロジック・チップセットは、前記ホスト・バ
    スを前記RAMバスに接続するための第1のインターフ
    ェース・ブリッジと、前記ホスト・バスをAGPバスに
    接続するための第2のインターフェース・ブリッジと、
    前記RAMバスを前記AGPバスに接続するための第3
    のインターフェース・ブリッジとを備え、 前記キャッシュ・メモリは複数の記憶位置を有し、該記
    憶位置の各々は、アドレス部分、エントリ部分、エント
    リ更新部分、及びエントリ無効化部分を有し、 前記コア・ロジック・チップセットは、複数のエントリ
    を有するグラフィックス・アドレス・リマッピング・テ
    ーブル(GARTテーブル)を用い、該GARTテーブ
    ルの各エントリは、前記RAMに記憶されたグラフィッ
    クス・データの複数のページ中の対応するページへのア
    ドレス・ポインタを備え、 前記コア・ロジック・チップセットは、前記RAMに記
    憶されたGARTテーブルの選択されたエントリを読み
    出して、前記キャッシュ・メモリの複数の記憶位置の前
    記アドレス部分に対応しているエントリ部分に記憶し、 前記キャッシュ・エントリ・コントロール・レジスタ
    は、グラフィックス・デバイス・アドレス、エントリ更
    新、及びエントリ無効化に関する情報を受け取り、 前記キャッシュ・エントリ・コントロール・レジスタを
    介して受け取った情報により、エントリ更新部分が第1
    のロジック・レベルにセットすべき場合は、前記コア・
    ロジック・チップセットが複数のGARTエントリを読
    み出して、前記キャッシュ・エントリ・コントロール・
    レジスタにより受け取られたグラフィックス・デバイス
    ・アドレスに関連する記憶位置を更新し、 前記キャッシュ・エントリ・コントロール・レジスタを
    介して受け取った情報により、エントリ無効化部分が第
    1のロジック・レベルにセットすべき場合は、前記コア
    ・ロジック・チップセットが前記キャッシュ・エントリ
    ・コントロール・レジスタにより受け取られたグラフィ
    ックス・デバイス・アドレスに関連する記憶位置を無効
    化することを特徴とするコンピュータ・システム。
  21. 【請求項21】 請求項20記載のコンピュータ・シス
    テムにおいて、前記中央処理ユニットは、複数の中央処
    理ユニットで構成されていることを特徴とするコンピュ
    ータ・システム。
  22. 【請求項22】 請求項22記載のコンピュータ・シス
    テムにおいて、前記グラフィックス・データの複数のペ
    ージは、前記RAMに非隣接でランダムな順序で記憶さ
    れることを特徴とするコンピュータ・システム。
  23. 【請求項23】 請求項22記載のコンピュータ・シス
    テムにおいて、前記GARTテーブルの複数のページは
    複数のバイナリ・ビットで構成され、前記グラフィック
    ・データの複数のページの各々は、前記GARTテーブ
    ルの複数のエントリの各々に関連付けられており、前記
    複数のバイナリ・ビットの所定数の最上位ビットが、前
    記複数のグラフィックス・データの各ページに関連する
    ベース・アドレスから成ることを特徴とするコンピュー
    タ・システム。
  24. 【請求項24】 請求項20記載のコンピュータ・シス
    テムにおいて、 前記キャッシュ・エントリ・コントロール・レジスタ
    は、第1のロジック・レベルにセットされ、かつ、第1
    のロジック・レベルにセットされるか又は第2のロジッ
    ク・レベルにクリアされるかを決定するために読み出す
    ことができるキャッシュ・エントリ更新ビットを備え、 前記キャッシュ・エントリ更新ビットを第1のロジック
    ・ビットにセットすることにより、前記コア・ロジック
    ・チップセットが前記システム・メモリに記憶された複
    数のGARTテーブル・エントリから、前記キャッシュ
    ・エントリ・コントロール・レジスタによって受け取ら
    れたグラフィックス・デバイス・アドレスに関連する記
    憶位置に更新し、 前記コア・ロジック・チップセットは、前記キャッシュ
    ・エントリ・コントロール・レジスタによって受け取ら
    れたグラフィックス・デバイス・アドレスに関連する位
    置を更新してから、前記キャッシュ・エントリ更新ビッ
    トを前記第2のロジック・レベルにクリアすることを特
    徴とするコンピュータ・システム。
  25. 【請求項25】 請求項20記載のコンピュータ・シス
    テムにおいて、 前記キャッシュ・エントリ・コントロール・レジスタ
    は、第1のロジック・レベルにセットされ、かつ、第1
    のロジック・レベルにセットされるか又は第2のロジッ
    ク・レベルにクリアされるかを決定するために読み出す
    ことができるキャッシュ・エントリ無効化ビットを備
    え、 前記キャッシュ・エントリ無効化ビットを第1のロジッ
    ク・ビットにセットすることにより、前記コア・ロジッ
    ク・チップセットが、前記キャッシュ・エントリ・コン
    トロール・レジスタによって受け取られたグラフィック
    ス・デバイス・アドレスに関連する記憶位置を無効化
    し、 前記コア・ロジック・チップセットは、前記キャッシュ
    ・エントリ・コントロール・レジスタによって受け取ら
    れたグラフィックス・デバイス・アドレスに関連する位
    置を無効化してから、前記キャッシュ・エントリ無効化
    ビットを前記第2のロジック・レベルにクリアすること
    を特徴とするコンピュータ・システム。
  26. 【請求項26】 請求項20記載のコンピュータ・シス
    テムにおいて、前記複数のGARTテーブル・エントリ
    は、前記RAMの少なくとも1つのページに記憶される
    ことを特徴とするコンピュータ・システム。
  27. 【請求項27】 請求項20記載のコンピュータ・シス
    テムにおいて、前記複数のグラフィックス・データのペ
    ージの各々が、4096バイトであることを特徴とする
    コンピュータ・システム。
  28. 【請求項28】 請求項20記載のコンピュータ・シス
    テムにおいて、前記コア・ロジック・チップセットは、
    少なくとも1つの集積回路で構成されていることを特徴
    とするコンピュータ・システム。
  29. 【請求項29】 請求項28記載のコンピュータ・シス
    テムにおいて、前記集積回路は、少なくとも1つのアプ
    リケーション特定集積回路であることを特徴とするコン
    ピュータ・システム。
  30. 【請求項30】 請求項28記載のコンピュータ・シス
    テムにおいて、前記集積回路は、少なくとも1つのプロ
    グラマブル・ロジック・アレイ集積回路であることを特
    徴とするコンピュータ・システム。
  31. 【請求項31】 請求項20記載のコンピュータ・シス
    テムにおいて、前記中央処理ユニットは、ソフトウエア
    命令を実行し、かつグラフィックス・データを生成する
    ことを特徴とするコンピュータ・システム。
  32. 【請求項32】 請求項20記載のコンピュータ・シス
    テムにおいて、該システムは更に、前記グラフィックス
    ・データに基づいてビデオ表示データを生成するための
    グラフィックス・プロセッサを具えていることを特徴と
    するコンピュータ・システム。
  33. 【請求項33】 請求項32記載のコンピュータ・シス
    テムにおいて、 該システムは更に、前記グラフィックス・プロセッサに
    接続されたローカル・フレーム・バッファ・メモリを備
    え、 前記グラフィックス・プロセッサは、ビデオ表示データ
    を生成するために、前記キャッシュ・メモリに記憶され
    たGARTテーブル・エントリ中の選択されたものに基
    づいて、前記ローカル・フレーム・バッファ・メモリに
    記憶されたビデオ・データを、前記RAMから読み出さ
    れたグラフィックス・データの関連するページに結合す
    ることを特徴とするコンピュータ・システム。
  34. 【請求項34】 請求項20記載のコンピュータ・シス
    テムにおいて、前記コア・ロジック・チップセットは、
    前記ホスト・バスを入出力デバイスに接続される周辺機
    器相互接続(PCI)バスに接続するための第4のイン
    ターフェース・ブリッジを具えていることを特徴とする
    コンピュータ・システム。
  35. 【請求項35】 請求項34記載のコンピュータ・シス
    テムにおいて、前記コア・ロジック・チップセットは、
    前記RAMバスをPCIバスに接続するための第5のイ
    ンターフェース・ブリッジを具えていることを特徴とす
    るコンピュータ・システム。
  36. 【請求項36】 請求項34記載のコンピュータ・シス
    テムにおいて、前記コア・ロジック・チップセットは、
    前記AGPバスをPCIバスに接続するための第6のイ
    ンターフェース・ブリッジを具えていることを特徴とす
    るコンピュータ・システム。
  37. 【請求項37】 請求項20記載のコンピュータ・シス
    テムにおいて、該システムは更に、ネットワーク・イン
    ターフェース・カード、ハード・ディスク、フロッピ・
    ディスク・ドライブ、モデム、キーボード、及びマウス
    を具えていることを特徴とするコンピュータ・システ
    ム。
  38. 【請求項38】 請求項20記載のコンピュータ・シス
    テムにおいて、該システムはさらに、シリアル・ポー
    ト、パラレル・ポート、及びリアル・タイム・クロック
    手段を具えていることを特徴とするコンピュータ・シス
    テム。
  39. 【請求項39】 請求項20記載のコンピュータ・シス
    テムにおいて、該システムは更に、読み出し専用メモリ
    基準の入出力システム(ROM BIOS)、不揮発性
    RAM(NVRAM)、テープ・ドライブ、及びCD
    ROMドライブを具えていることを特徴とするコンピュ
    ータ・システム。
  40. 【請求項40】 コンピュータ・システムにおいて、キ
    ャッシュ・メモリに記憶された複数のグラフィックス・
    アドレス・リマッピング・テーブル(GARTテーブ
    ル)エントリの内の選択されたエントリを更新しかつ無
    効化するための方法であって、 コンピュータ・システムのシステム・メモリに、複数の
    グラフィックス・データのページを任意の順序で格納す
    るステップと、 前記システム・メモリにグラフィックス・アドレス・リ
    マッピング・テーブル(GARTテーブル)の複数のエ
    ントリを記憶するステップであって、前記GARTテー
    ブルの複数のエントリの各々が、前記システム・メモリ
    に格納されている前記グラフィックス・データの複数の
    ページに関連している、ステップと、 前記システム・メモリに記憶されたGARTテーブルの
    エントリから選択して読み出すステップと、 前記システム・メモリから読み出されたエントリを、キ
    ャッシュ・メモリに記憶するステップであって、該キャ
    ッシュ・メモリは複数の記憶位置を有し、各記憶位置
    は、グラフィックス・デバイス・アドレス部分、エント
    リ部分、エントリ更新部分、及びエントリ無効化部分を
    含み、前記読み出されたエントリを前記エントリ部分に
    記憶するステップと、 前記読み出されたエントリの1つが前記システム・メモ
    リからの更新を要求しているとき、複数の記憶位置の1
    つの記憶位置のエントリ更新部分に第1のロジック・レ
    ベルを書き込むステップと、 前記読み出されたエントリの1つが無効であるとき、複
    数の記憶位置の1つの記憶位置のエントリ無効化部分に
    第1のロジック・レベルを書き込むステップとからなる
    ことを特徴とする方法。
  41. 【請求項41】 請求項40記載の方法において、該方
    法は更に、 前記キャッシュ・メモリの複数の記憶位置のエントリ更
    新部分を読み出すステップと、 前記第1のロジック・レベルを有するエントリ更新部分
    の各々に関して、前記システム・メモリの前記GART
    テーブルの複数のエントリを新たに選択して読み出すス
    テップと、 前記第1のロジック・レベルを有するエントリ更新部分
    の各々に関連するエントリ部分に、新たに読み出された
    エントリを格納するステップと、 新たに読み出されたエントリを各エントリ部分に格納し
    た後に、前記エントリ更新部分をそれぞれ第2のロジッ
    ク・レベルにリセットするステップとからなることを特
    徴とする方法。
  42. 【請求項42】 請求項40記載の方法において、該方
    法は更に、 キャッシュ・メモリの複数の記憶位置のエントリ無効化
    部分を読み出すステップと、 第1のロジック・レベルを含んでいるエントリ無効化部
    分の各々に対応する記憶位置を無効化するステップと、 該記憶位置を無効化した後に、各エントリ無効化部分を
    リセットするステップとを含んでいることを特徴とする
    方法。
  43. 【請求項43】 請求項40記載の方法において、該方
    法は更に、前記グラフィックス・データの複数のページ
    中のいくつかを、前記キャッシュ・メモリに記憶された
    前記複数のGARTテーブル・エントリ中の選択された
    エントリによって決定される順番で、読み出すステップ
    を含んでいることを特徴とする方法。
  44. 【請求項44】 請求項40記載の方法において、シス
    テム・メモリのアドレスは、前記複数のGARTテーブ
    ル・エントリの対応するエントリに記憶されたベース・
    アドレスと、該ベース・アドレスに加算されるオフセッ
    ト・アドレスとによって、グラフィック・データの前記
    複数のページに記憶されたグラフィック・データの各バ
    イトに対して決定されていることを特徴とする方法。
  45. 【請求項45】 請求項40記載の方法において、該方
    法は更に、コンピュータ・システムの初期化中に、複数
    のGARTテーブル・エントリを記憶するために、コン
    ピュータ・システムのメモリ位置を割り当てるステップ
    を含んでいることを特徴とする方法。
  46. 【請求項46】 請求項41記載の方法において、該方
    法は更に、前記キャッシュ・メモリに記憶された複数の
    GARTテーブル・エントリから選択されたグラフィッ
    ク・デバイス・アドレスを、キャッシュ・エントリ・コ
    ントロール・レジスタに書き込み、かつ第1のロジック
    ・レベルをキャッシュ・エントリ・コントロール・レジ
    スタのキャッシュ・エントリ更新ビットに書き込むステ
    ップを含み、該第1のロジック・レベルは、グラフィッ
    クス・デバイス・アドレスと対応する記憶位置のエント
    リ更新部分に書き込まれることを特徴とする方法。
  47. 【請求項47】 請求項46記載の方法において、該方
    法は更に、新しいGARTテーブル・エントリを記憶し
    た後に、キャッシュ・エントリ更新ビットを第1のロジ
    ック・レベルから第2のロジック・レベルにクリアする
    ステップを含んでいることを特徴とする方法。
  48. 【請求項48】 請求項42記載の方法において、該方
    法は更に、前記キャッシュ・メモリに記憶された複数の
    GARTテーブル・エントリから選択されたエントリの
    グラフィック・デバイス・アドレスを、キャッシュ・エ
    ントリ・コントロール・レジスタに書き込み、かつ第1
    のロジック・レベルをキャッシュ・エントリ・コントロ
    ール・レジスタのキャッシュ・エントリ無効化ビットに
    書き込むステップを含み、該第1のロジック・レベル
    は、グラフィックス・デバイス・アドレスと対応する記
    憶位置のエントリ無効化部分に書き込まれることを特徴
    とする方法。
  49. 【請求項49】 請求項48記載の方法において、該方
    法は更に、当該記憶位置を無効化した後に、キャッシュ
    ・エントリ無効化ビットを第1のロジック・レベルから
    第2のロジック・レベルにクリアするステップを含んで
    いることを特徴とする方法。
  50. 【請求項50】 コンピュータ中央処理ユニットをラン
    ダム・アクセス・メモリ(RAM)、アクセレレイテド
    ・グラフィックス・ポート(AGP)バス、及び周辺機
    器相互接続(PCI)バスに接続するためのコア・ロジ
    ック・チップセットにおいて、 アクセレレイテド・グラフィックス・ポート(AGP)
    要求キューと、 AGP要求キューと、 AGPキャッシュ・エントリ・コントロール・レジスタ
    を有するAGPデータ及びコントロール・ユニットと、 複数の記憶位置を有し、各記憶位置が、グラフィックス
    ・デバイス・アドレス部分、エントリ部分、エントリ更
    新部分、及びエントリ無効化部分を備えている、AGP
    キャッシュ・メモリと、 AGPアービタと、 ホスト−周辺機器相互接続(PCI)ブリッジと、 PCI−PCIブリッジと、 コンピュータ・システムのRAMへの接続に適合したメ
    モリ・インターフェースおよびコントロール・ロジック
    と、 少なくとも1つの中央処理ユニットが接続されたコンピ
    ュータ・システム・ホスト・バスへの接続に適合したホ
    スト・バス・インターフェースと、から成り、 前記AGP要求および回答キューが、前記メモリ・イン
    ターフェースおよびコントロール・ロジックに接続さ
    れ、 前記AGPデータおよびコントロール・ロジックが、前
    記メモリおよびインターフェース・コントロール・ロジ
    ックに接続され、 前記AGPデータおよびコントロール・ロジックが、P
    CIバスへの接続のために、ホスト・バス・インターフ
    ェースに接続され、 前記PCI−PCIブリッジが、前記AGPデータ及び
    コントロール・ロジックに接続され、該ブリッジは、ホ
    スト−PCIバス・ブリッジ及び前記AGPデータ及び
    コントロール・ロジックの間でPCI情報トランザクシ
    ョンを転送するよう構成されており、 AGPデータ及びコントロール・ロジックとAGPアビ
    ータは、AGPデバイスを有するAGPバスへ接続する
    よう構成され、 前記AGPデータ及びコントロール・ロジックは、複数
    のエントリを有するグラフィックス・アドレス・リマッ
    ピング・テーブル(GARTテーブル)を使用するよう
    構成されており、GARTテーブル・エントリの各々
    は、コンピュータ・システムのRAMに記憶されたグラ
    フィックス・データの複数のページの1つへのアドレス
    ・ポインタを備えており、 前記AGPデータ及びコントロール・ロジックは、前記
    RAMに格納されている前記複数のGARTテーブル・
    エントリの内の前記選択した複数のエントリを読み出
    し、かつ、前記キャッシュ・メモリの複数の記憶位置の
    エントリ部分に複数のGARTテーブル・エントリから
    前記選択されたエントリを格納するよう構成されてお
    り、各エントリ部分が前記グラフィックス・デバイス・
    アドレス部分の1つと関連し、 前記キャッシュ・エントリ・コントロール・レジスタ
    は、グラフィックス・デバイス・アドレス、エントリ更
    新及びエントリ無効化に付いての情報を受け取るよう構
    成されており、 エントリ更新情報を受け取った場合、エントリ更新部分
    を第1のロジック・レベルにセットし、前記AGPデー
    タ及びコントロール・ロジックは、前記RAMに記憶さ
    れたGARTテーブル・エントリから、前記グラフィッ
    クス・デバイス・アドレスに対応する記憶位置を更新す
    るよう構成されており、 エントリ無効化情報を受け取った場合、エントリ無効化
    部分を第1のロジック・レベルにセットし、前記AGP
    データ及びコントロール・ロジックは、前記グラフィッ
    クス・デバイス・アドレスに対応する記憶位置を無効化
    するよう構成されていることを特徴とするコア・ロジッ
    ク・チップセット。
  51. 【請求項51】 請求項50記載のコア・ロジック・チ
    ップセットにおいて、 前記キャッシュ・エントリ・コントロール・レジスタ
    は、キャッシュ・エントリ更新ビットを備え、該更新ビ
    ットは、第1のロジック・レベルにセット可能であり、
    かつ、第1のロジック・レベルにセットするか又は第2
    のロジック・レベルにクリアするかを決定するために読
    み出すことができ、 キャッシュ・エントリ更新ビットを第1のロジック・レ
    ベルにセットすることにより、前記AGPデータ及びコ
    ントール・ロジックが、前記システム・メモリに記憶さ
    れたGARTテーブル・エントリから、前記キャッシュ
    ・エントリ・コントロール・レジスタによって受け取ら
    れたグラフィックス・デバイス・アドレスに対応する記
    憶位置に更新し、 前記AGPデータ及びコントロール・ロジックは、前記
    キャッシュ・エントリ・コントロール・レジスタが受け
    取ったグラフィックス・デバイス・アドレスと対応する
    記憶位置を更新した後に、キャッシュ・エントリ更新ビ
    ットを第2のロジック・レベルにクリアすることを特徴
    とするコア・ロジック・チップセット。
  52. 【請求項52】 請求項50記載のコア・ロジック・チ
    ップセットにおいて、 前記キャッシュ・エントリ・コントロール・レジスタ
    は、キャッシュ・エントリ無効化ビットを備え、該無効
    化ビットは、第1のロジック・レベルにセット可能であ
    り、かつ、第1のロジック・レベルにセットするか又は
    第2のロジック・レベルにクリアするかを決定するため
    に読み出すことができ、 キャッシュ・エントリ無効化ビットを第1のロジック・
    レベルにセットすることにより、前記AGPデータ及び
    コントール・ロジックが、前記システム・メモリに記憶
    されたGARTテーブル・エントリから、前記キャッシ
    ュ・エントリ・コントロール・レジスタによって受け取
    られたグラフィックス・デバイス・アドレスに対応する
    記憶位置を無効化し、 前記AGPデータ及びコントロール・ロジックは、前記
    キャッシュ・エントリ・コントロール・レジスタが受け
    取ったグラフィックス・デバイス・アドレスと対応する
    記憶位置を無効化した後に、キャッシュ・エントリ無効
    化ビットを第2のロジック・レベルにクリアすることを
    特徴とするコア・ロジック・チップセット。
JP10255832A 1997-09-09 1998-09-09 コンピュータ・システム Pending JPH11167524A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US926421 1992-08-10
US08/926,421 US5914730A (en) 1997-09-09 1997-09-09 System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests

Publications (1)

Publication Number Publication Date
JPH11167524A true JPH11167524A (ja) 1999-06-22

Family

ID=25453177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10255832A Pending JPH11167524A (ja) 1997-09-09 1998-09-09 コンピュータ・システム

Country Status (3)

Country Link
US (1) US5914730A (ja)
EP (1) EP0902355A3 (ja)
JP (1) JPH11167524A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003508850A (ja) * 1999-08-30 2003-03-04 インテル・コーポレーション ローカルi/oバスに近接するブリッジでの入出力(i/o)アドレス変換
US7145568B2 (en) 2000-09-29 2006-12-05 Intel Corporation Shared translation address caching
JP2007026433A (ja) * 2005-06-24 2007-02-01 Nvidia Corp オペレーティングシステム補足ディスクのキャッシュシステムおよび方法
JP2011065650A (ja) * 2009-09-18 2011-03-31 Intel Corp ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
JP2014506700A (ja) * 2011-02-10 2014-03-17 クゥアルコム・インコーポレイテッド グラフィックス処理のためのデータストレージアドレス割当て
JP2019506670A (ja) * 2016-01-21 2019-03-07 エイアールエム リミテッド アドレス変換レイテンシの測定

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157397A (en) * 1998-03-30 2000-12-05 Intel Corporation AGP read and CPU wire coherency
US6321276B1 (en) * 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US6360220B1 (en) 1998-08-04 2002-03-19 Microsoft Corporation Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries
US6594701B1 (en) 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US6269459B1 (en) 1998-08-25 2001-07-31 Advanced Micro Devices, Inc. Error reporting mechanism for an AGP chipset driver using a registry
US6211891B1 (en) * 1998-08-25 2001-04-03 Advanced Micro Devices, Inc. Method for enabling and configuring and AGP chipset cache using a registry
US6209052B1 (en) * 1998-09-30 2001-03-27 Compaq Computer Corporation System and method for suppressing processor cycles to memory until after a peripheral device write cycle is acknowledged by the memory arbiter
US6581148B1 (en) * 1998-12-07 2003-06-17 Intel Corporation System and method for enabling advanced graphics port and use of write combining cache type by reserving and mapping system memory in BIOS
US6362826B1 (en) 1999-01-15 2002-03-26 Intel Corporation Method and apparatus for implementing dynamic display memory
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
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
US7324106B1 (en) * 2004-07-27 2008-01-29 Nvidia Corporation Translation of register-combiner state into shader microcode
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US20060080511A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Enhanced bus transactions for efficient support of a remote cache directory copy
US20070124543A1 (en) * 2005-11-28 2007-05-31 Sudhir Dhawan Apparatus, system, and method for externally invalidating an uncertain cache line
US7836258B2 (en) 2006-11-13 2010-11-16 International Business Machines Corporation Dynamic data cache invalidate with data dependent expiration
US8345052B1 (en) * 2007-11-08 2013-01-01 Nvidia Corporation Method and system for using a GPU frame buffer in a multi-GPU system as cache memory
JP5012628B2 (ja) * 2008-04-04 2012-08-29 日本電気株式会社 メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法
GB2466981A (en) * 2009-01-16 2010-07-21 Advanced Risc Mach Ltd Memory management unit with a dedicated cache memory for storing management data used to fetch requested data
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US9195623B2 (en) * 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8578129B2 (en) * 2011-12-14 2013-11-05 Advanced Micro Devices, Inc. Infrastructure support for accelerated processing device memory paging without operating system integration
US10394711B2 (en) * 2016-11-30 2019-08-27 International Business Machines Corporation Managing lowest point of coherency (LPC) memory using a service layer adapter
KR102423278B1 (ko) * 2017-11-28 2022-07-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11567803B2 (en) 2019-11-04 2023-01-31 Rambus Inc. Inter-server memory pooling

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
WO1993004462A1 (en) * 1991-08-21 1993-03-04 Digital Equipment Corporation Computer graphics system
JPH0997214A (ja) * 1995-09-29 1997-04-08 Internatl Business Mach Corp <Ibm> 補助プロセッサのためのアドレス変換を含む情報処理システム
US5802568A (en) * 1996-06-06 1998-09-01 Sun Microsystems, Inc. Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers
US5812789A (en) * 1996-08-26 1998-09-22 Stmicroelectronics, Inc. Video and/or audio decompression and/or compression device that shares a memory interface

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003508850A (ja) * 1999-08-30 2003-03-04 インテル・コーポレーション ローカルi/oバスに近接するブリッジでの入出力(i/o)アドレス変換
US7145568B2 (en) 2000-09-29 2006-12-05 Intel Corporation Shared translation address caching
JP2007026433A (ja) * 2005-06-24 2007-02-01 Nvidia Corp オペレーティングシステム補足ディスクのキャッシュシステムおよび方法
JP2011065650A (ja) * 2009-09-18 2011-03-31 Intel Corp ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
JP2014506700A (ja) * 2011-02-10 2014-03-17 クゥアルコム・インコーポレイテッド グラフィックス処理のためのデータストレージアドレス割当て
US9047686B2 (en) 2011-02-10 2015-06-02 Qualcomm Incorporated Data storage address assignment for graphics processing
JP2019506670A (ja) * 2016-01-21 2019-03-07 エイアールエム リミテッド アドレス変換レイテンシの測定

Also Published As

Publication number Publication date
EP0902355A3 (en) 2000-01-12
EP0902355A2 (en) 1999-03-17
US5914730A (en) 1999-06-22

Similar Documents

Publication Publication Date Title
JPH11167524A (ja) コンピュータ・システム
US5936640A (en) Accelerated graphics port memory mapped status and control registers
US5999198A (en) Graphics address remapping table entry feature flags for customizing the operation of memory pages associated with an accelerated graphics port device
US6750870B2 (en) Multi-mode graphics address remapping table for an accelerated graphics port device
US5990914A (en) Generating an error signal when accessing an invalid memory page
US5914727A (en) Valid flag for disabling allocation of accelerated graphics port memory space
US5905509A (en) Accelerated Graphics Port two level Gart cache having distributed first level caches
US6326973B1 (en) Method and system for allocating AGP/GART memory from the local AGP memory controller in a highly parallel system architecture (HPSA)
US5949436A (en) Accelerated graphics port multiple entry gart cache allocation system and method
US4868738A (en) Operating system independent virtual memory computer system
US8370533B2 (en) Executing flash storage access requests
US5999743A (en) System and method for dynamically allocating accelerated graphics port memory space
US8669992B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
TW468111B (en) An apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller
US6249853B1 (en) GART and PTES defined by configuration registers
US8171230B2 (en) PCI express address translation services invalidation synchronization with TCE invalidation
US5913923A (en) Multiple bus master computer system employing a shared address translation unit
US5933158A (en) Use of a link bit to fetch entries of a graphic address remapping table
KR100515229B1 (ko) 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템
JPH1125033A (ja) バスブリッジ
US6223266B1 (en) System and method for interfacing an input/output system memory to a host computer system memory
CN117120990A (zh) 用于转移分层存储器管理的方法和装置
US6266723B1 (en) Method and system for optimizing of peripheral component interconnect PCI bus transfers
US6282625B1 (en) GART and PTES defined by configuration registers
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法