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

コンピュータ・システム

Info

Publication number
JPH11167523A
JPH11167523A JP10255829A JP25582998A JPH11167523A JP H11167523 A JPH11167523 A JP H11167523A JP 10255829 A JP10255829 A JP 10255829A JP 25582998 A JP25582998 A JP 25582998A JP H11167523 A JPH11167523 A JP H11167523A
Authority
JP
Japan
Prior art keywords
memory
agp
computer system
gart
graphics
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
JP10255829A
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 JPH11167523A publication Critical patent/JPH11167523A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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
    • 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)【要約】 【課題】加速グラフィックス・ポート(AGP)バス・
デバイスと、ホスト・プロセッサおよびコンピュータ・
システム・メモリとの間のブリッジとして機能するコア
・ロジック・チップセットを有するコンピュータ・シス
テムを提供する。 【解決手段】 コア・ロジック・チップセットは、GA
RTテーブルを用いて、AGPグラフィックス・コント
ローラが用いる仮想メモリ・アドレスを、コンピュータ
・システム・メモリ内に位置する物理メモリ・アドレス
にリマップする。GARTテーブルにより、AGPグラ
フィックス・コントローラは、隣接する仮想メモリ・ア
ドレス空間において動作するが、実際には、物理システ
ム・メモリの非隣接ブロック即ちページを用いてテクス
チャ、コマンド・リスト等を格納することが可能とな
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、バス・ブリッジ
(群)を用いて、中央演算装置(群)、ビデオ・グラフ
ィック・プロセッサ(群)、ランダム・アクセス・メモ
リおよび入出力周辺機器同士のインターフェースを行う
コンピュータ・システムに関し、更に特定すれば、隣接
しない物理メモリ・ページを隣接する加速グラフィック
・ポート・デバイス・アドレスにリマップ(remap)する
ために用いられるグラフィックス・アドレス・リマッピ
ング・テーブルにおけるエントリと関連付けられたリン
ク・ビットの利用に関するものである。
【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」モデルおよび
「実行」モデル双方に対応する。しかしながら、AGP
の主要な動機がグラフィックス・コントローラのローカ
ル・メモリ(ローカル・フレーム・バッファ・メモリを
含む)に対する拡張圧力(growth pressure)を減少させ
ることであるので、「実行」モデルの方が好ましい。こ
の優先順位に従えば、グラフィックス・アクセレレータ
(AGPマスタ)がシステム・メモリ内に動的に割り当
てられるグラフィックス・データ構造の隣接ビューを有
することを保証するためには、AGP仕様は、仮想−物
理アドレス・リマッピング機構を必要とする。このアド
レス・リマッピングは、システム物理アドレス空間の単
一のプログラム可能な範囲にのみ適用され、全てのシス
テム・エージェントに共通となる。この範囲に該当する
アドレスは、物理システム・メモリの非隣接ページにリ
マップされる。この範囲にないアドレスは全て、変更な
く通過させられ、直接主システム・メモリ、またはPC
Iデバイスの物理メモリのようなデバイスに特定の範囲
にマップする。リマッピングは、「グラフィックス・ア
ドレス・リマッピング・テーブル」(「GART tabl
e: Graphics Address Remapping Table」)によって行
われる。グラフィックス・アドレス・リマッピング・テ
ーブルは、GARTミニポート・ドライバ・ソフトウエ
ア(GART miniportdriver software)によって設定および
維持され、コア・ロジック・チップセットがリマッピン
グを実行するために用いられる。互換性の問題を回避
し、将来にわたる実装の柔軟性に対処するために、この
機構はソフトウエア(API)レベルで指定される。言
い換えると、実際のGARTテーブルのフォーマット
は、ハードウエア抽象化レイヤ(「HAL:hardware a
bstraction layer」)またはコア・ロジック・チップセ
ットが備えられたミニポート・ドライバによって、AP
Iに抽象化することができる。このAPIはリマッピン
グ・ハードウエアの将来の区分を制約するものではない
が、リマッピング機能は典型的にコア・ロジック・チッ
プセット内に実施される。
【0016】隣接するAGPグラフィックス・コントロ
ーラのデバイス・アドレスは、GARTテーブルを用い
ることによって、コンピュータ・システムの物理メモリ
内に位置する、対応する物理アドレスにマップ(変換)
される。尚、GARTテーブルも、物理メモリに位置し
てもよい。GARTテーブルは、コア・ロジック・チッ
プセットが、AGP、ホスト、またはPCIバスのいず
れかから発生する可能性があるAGPデバイス・アドレ
スをリマップするために用いられる。GARTテーブル
は、コンピュータ・ソフトウエアのオペレーティング・
システムにサービスを提供するGARTミニポート・ド
ライバが管理する。
【0017】GARTテーブル・エントリをキャッシュ
すれば、グラフィック・テクスチャ・データのために主
メモリにアクセスしなければならない、メモリ・リード
の回数を減らすことができるが、2ページ以上のテクス
チャ・データをAGPグラフィックス・コントローラに
対して変換しなければならない場合、追加のGARTテ
ーブル・エントリ(群)を得て、メモリの次のページを
参照しなければならない。1つ以上の追加のGARTテ
ーブル・エントリが必要か否かは、コンピュータ・シス
テムが、主メモリからグラフィクス情報の追加関連ペー
ジ(群)を必要とするときに、コンピュータ・システム
が決定するために残されている。したがって、主メモリ
に位置する関連AGPグラフィックス・ページ(群)の
仮想AGPデバイス・アドレス空間への変換のために、
他のGARTテーブル・エントリ
【0018】が必要か否かについて判定を行う方法が必
要とされている。
【発明が解決しようとする課題】したがって、本発明の
目的は、主メモリに位置する関連AGPグラフィックス
・ページ(群)の仮想AGPデバイス・アドレス空間へ
の変換のために、他のGARTテーブル・エントリが必
要か否かについて判定を行うことである。本発明の別の
目的は、物理メモリ内に位置する関連AGPグラフィッ
クス・ページを仮想AGPデバイス・アドレスにリマッ
プするために必要な数のGARTテーブル・エントリを
キャッシュすることである。別の目的は、キャッシュ内
の関連GARTテーブル・エントリを更新することであ
る。更に別の目的は、多数の関連GARTテーブル・エ
ントリをキャッシュ内にプリフェッチ(prefetch)するこ
とである。本発明の更に別の目的は、パーソナル・コン
ピュータ・システムにおいて、AGPグラフィックス・
コントローラが要求する所望のグラフィックス・テクス
チャを構成する、関連グラフィックス情報ページのアド
レスをリマップするためにキャッシュする必要があるG
ARTテーブル・エントリを判定する方法を提供するこ
とである。
【0019】
【課題を解決するための手段】本発明の上述のおよびそ
の他の目的は、少なくとも部分的に、コンピュータ・シ
ステム内に、AGPバスとホストおよびメモリ・バスと
の間のブリッジとして機能するコア・ロジック・チップ
セットを備え、コア・ロジック・チップセットが「グラ
フィックス・アドレス・リマッピング・テーブル」
(「GARTテーブル」)を用いて、仮想アドレスを、
コンピュータ・システム・メモリ内に位置する物理アド
レスにリマップすることによって満たされる。GART
テーブルのエントリも、コンピュータ・システム・メモ
リ内に位置付けてもよい。コア・ロジック・チップセッ
トはGARTテーブルを用い、AGPグラフィックス・
コントローラが、隣接仮想アドレス空間内のグラフィッ
クス情報のアドレスを参照するが、実際にはコンピュー
タ・システムの物理システム・メモリの非隣接ブロック
を用いることを可能とする。尚、隣接仮想アドレス空間
のことを、以降「AGPデバイス・アドレス空間」と呼
ぶ。グラフィックス情報は、テクスチャ、コマンド・リ
スト等とすることができる。本発明のコア・ロジック・
チップセットは、必要なGARTテーブル・エントリを
キャッシュし、コンピュータ・メモリ・システムからの
グラフィックス・データの読み出しの高速化を図る。
【0020】各GARTテーブル・エントリは、物理メ
モリ内のグラフィックス・ページの最初のバイトの物理
アドレスを参照する、変換ポインタを含み、GARTテ
ーブル・エントリは、その参照されたページに関連する
フィーチャ・フラグ(featureflag)も収容する。例え
ば、物理メモリ内のグラフィックス・ページは、テクス
チャ、コマンド・ライン等のようなデータを4,096
バイト(4KB)収容することができる。GARTテー
ブル・エントリは、合計32ビットの二進情報として、
4つの8ビット・バイトを含むことができる。GART
テーブル・エントリ内の20の最上位側ビット(31:
12)を物理メモリ・ページ・アドレスに用いる場合、
12の最下位ビット(11:0)は、システム設計者が
当該メモリ・ページに関連するある種の機能および属性
を定義および/またはカストマイズ(customize)するた
めに使用可能である。例えば、1)キャッシュ可能性ビ
ット(cacheability bit)によって、4KBページがキャ
ッシュ可能か否かについて示すことができ、2)ライト
結合可能性ビット(write combinable bit)によって、4
KBページがライト結合可能か否かについて示すことが
でき、3)ダーティ・ビット(dirty bit)によって、当
該ページが変更されたか否かについて示すことができ、
4)リンク・ビットによって、次のGARTテーブル・
エントリが現GARTテーブル・エントリと関連付けら
れているか否かについて示すことができ、更に5)存在
ビット(present bit)によって、GARTテーブル・エ
ントリ(ビット31:12)が参照したページが、GA
RTミニポート・ドライバによって予約されているか否
かについて示すことができる。これらフィーチャ・ビッ
トは、その他多くの組み合わせも利用可能であり、本発
明の範囲内において予期されるものである。これらフィ
ーチャ・ビット(11:0)のことを、以降「フラグ・
ビット」と呼ぶこともあり、典型的にGARTミニポー
ト・ドライバによって管理されるが、コンピュータ・シ
ステムの他のいずれかのデバイス・ドライバ(即ち、R
OM BIOS等)によるアクセスも可能である。何故
なら、GARTテーブルは、典型的に、コンピュータ・
システム・メモリ内に位置するからである。
【0021】本発明の実施形態は、「AGPソフトウエ
ア・フィーチャ制御ビット」の1つとして先に詳細に説
明した、GARTテーブル・エントリの1群の最下位側
ビットの1つを定義する。以降、これを「GARTテー
ブル・エントリ・リンク・ビット」と呼ぶ。GARTテ
ーブル・エントリ・リンク・ビットは、複数のGART
テーブル・エントリが、物理システム・メモリ内に位置
する複数のメモリ・ブロック即ちページ内に格納されて
いる同じグラフィックス情報に関連(関係)付けられて
いるか否かについて判定するために用いることができ
る。GARTテーブル・エントリ・フィーチャ・フラグ
は、次のGARTテーブル・エントリが現GARTテー
ブル・エントリに関係付けられているか否かを示す。こ
のフィーチャ・フラグのことを、以降「リンク・ビッ
ト」と呼ぶこともあり、コア・ロジック・チップセット
が、GARTテーブル・エントリをそのキャッシュにプ
リフェッチする場合に、使用することができる。例え
ば、リンク・ビットを最初のGARTテーブル・エント
リにセットする場合、チップセットは2番目のエントリ
をそのキャッシュにフェッチすることができる。2番目
のGARTテーブル・エントリにおいてリンク・ビット
をセットする場合、3番目のGARTテーブル・エント
リもキャッシュにフェッチすることができる。これは、
リンク・ビットがGARTテーブル・エントリの1つに
セットされなくなるまで、続けることができる。リンク
・ビットが現GARTテーブル・エントリ内にセットさ
れていない場合、これは、次のGARTテーブル・エン
トリが現GARTテーブル・エントリには関係付けられ
ていないことを示す。リンク・ビットは、メモリの(典
型的な)単一ページよりも大きなグラフィックス情報を
フェッチする場合に有用であり、したがって、AGPデ
バイス・アドレス空間(仮想メモリ)内の隣接する多数
のページに同一のリンク・ビットが繰り返し用いられ
る。
【0022】グラフィックス・アプリケーションが、例
えば、マイクロソフトのDirectDrawAPI(マイクロソフ
ト社(Microsoft Corp.)から入手可能。その仕様書は、
この言及により本願にも含まれるものとする)を用いて
AGPデバイス・アドレス空間の割り当てを要求する場
合、グラフィックス・アプリケーションは、グラフィッ
クス・データに必要なメモリ量を示す。すると、Direct
Draw APIは、コア・ロジックのGARTミニポート・ド
ライバにPageMapコールを発行し、指定された数のペー
ジ、例えば、4KBページをマップする。GARTミニ
ポート・ドライバは、次に、この指定された数のページ
を用いて、GARTテーブル・エントリの数を判定する
ことができ、GARTテーブル・エントリ・リンク・ビ
ットが、GARTミニポート・ドライバによってセット
される。GARTテーブル・エントリ・リンク・ビット
はGARTミニポート・ドライバによってセットされる
が、これらのエントリは、コンピュータ・システムのラ
ンダム・アクセス・メモリ(物理メモリ)に配置される
(即ち、キャッシュされる前である)。セットされるG
ARTテーブル・エントリ・リンク・ビットの数は、複
数のページの物理メモリ内に収容されている完全なグラ
フィックス・テクスチャに関係または関連付けられたG
ARTテーブル・エントリ数よりも1少ない。関係付け
られている最後のGARTページ・エントリは、そのリ
ンク・ビットがセットされていない。GARTテーブル
・エントリの順序は、AGPデバイス・アドレス空間の
ページの順序を決定し、最後のGARTテーブル・エン
トリは、所与のグラフィックス・テクスチャに対するA
GPデバイス・アドレス空間の最後のページに対応する
(グラフィックス・テクスチャのサイズは、1ページ以
上のAGPデバイス・アドレス空間を必要とする場合も
ある)。
【0023】例えば、あるグラフィックス・アプリケー
ションは、DirectDrawが3−Dグラフィックス・テクス
チャ・データにAGPデバイス空間の32KB領域を割
り当てるように要求する。すると、DirectDrawはAGP
デバイス・ドライバにPageMapコールを発行し、GAR
Tテーブル内に8ページをマップする。AGPデバイス
・ドライバがGARTテーブル内の8つの隣接するエン
トリを更新することができる場合、リンク・ビットを最
初の7つのエントリにセットし、8番目(最後の)エン
トリでは、リンク・ビットをクリアする。次いで、AG
Pデバイス・ドライバは、他のいずれかの必要なページ
・マッピング機能を実行することができ、終了時に、成
功ステータス・コード(successful status code)をDire
ctDrawに返す。すると、DirectDrawは成功ステータス・
コードをグラフィックス・アプリケーションに返す。
【0024】続いて、AGPグラフィックス・コントロ
ーラは、AGPデバイス・アドレス空間の前述した2K
B領域の先頭にアクセスする。しかしながら、他のAG
Pアクティビティのために、コア・ロジックは、32K
Bの3−Dグラフィックス・テクスチャ・データの最初
の4KBページを示す、必要な最初のGARTテーブル
・エントリをキャッシュしていない。したがって、コア
・ロジック・チップセットは、必要なGARTテーブル
・エントリを、コンピュータ・システムの物理メモリか
らフェッチしなければならない。システム・メモリから
のフェッチは、典型的に、キャッシュ・ライン・リード
要求であり、この要求は4つのクアド・ワード(「QWOR
DS」)即ち32バイトとすることができる。システム・
メモリからフェッチされた8つのGARTテーブル・エ
ントリ(最初の7つのエントリはリンク・ビットがセッ
トされており、8番目のリンク・ビットはリンク・ビッ
トがクリアされている)の各々におけるリンク・ビット
の値に基づいて、コア・ロジック・チップセットは、そ
のGARTキャッシュ内の8つのエントリを更新する。
ここで、32KBのAGPデバイス・アドレス空間を構
成する8つの4KBページの各々に対するベース・アド
レスを有するGARTテーブル・エントリを、本発明の
コア・ロジック・チップセットにキャッシュする。
【0025】本発明の特徴の1つは、リンク・ビットが
特定のGARTテーブル・エントリに対してセットされ
ているとコア・ロジック・チップセットが判定した場合
に、GARTテーブル・エントリ内にクリアされている
リンク・ビットがあり、そのエントリがキャッシュ内で
最後に更新するものであるとコア・ロジック・チップセ
ットが判定するまで、次のエントリを更新しキャッシュ
しようとすることにある。このようにして、必要な数の
関係付けられたGARTテーブル・エントリのみを、キ
ャッシュ内で更新する。本発明の特徴の1つは、次のG
ARTテーブル・エントリが現GARTテーブル・エン
トリに関係付けられている可能性について、動的な情報
をGARTキャッシング・ロジックに提供することであ
り、したがって、次のGARTテーブル・エントリをシ
ステム・メモリからキャッシュにフェッチする必要があ
るか否かについての動的な情報を提供することにある。
本発明の利点の1つは、必要な数の関係するGARTテ
ーブル・エントリのみを、所与のテクスチャのために、
キャッシュにフェッチまたはプリフェッチすればよいこ
とである。本発明の別の利点は、AGPアドレス・トラ
ンザクションに必要なメモリ・アクセス回数を最少に抑
えることである。これによって、中央演算装置(「CP
U」)を含む他のデバイスがコンピュータ・システム・
メモリにアクセスするために、追加の帯域幅を残してお
く。別の利点は、AGPデバイス・アドレス空間へのア
クセスがAGPグラフィックス・コントローラによって
発行される前に、必要数の関係するGARTテーブル・
エントリのみをシステム・メモリから予めロードしてお
くことにより、GARTキャッシュのヒット/ミス比を
改善することである。これによってAGPの性能全体が
向上する。何故なら、関係するGARTテーブル・エン
トリ(リマッピング・アドレス変換ポインタを有する)
は既にコア・ロジック・チップセット内にキャッシュさ
れており、したがって、AGPメモリ・アクセスが開始
するときに、それらを読み出すための追加のメモリ・サ
イクルが不要となるからである。更に別の利点は、必要
数の関係するGARTテーブル・エントリのみをキャッ
シュするので、無関係のGARTテーブル・エントリは
メモリ・リードの間キャッシュされず、したがって既存
のキャッシュ・エントリに不必要な上書きを行わないこ
とである。これによって、必要なキャッシュ・エントリ
を上書きしてしまうことによって発生するキャッシュ・
メモリのスラッシング(thrashing)を改善する。その他
のおよび更に別の目的、特徴および利点は、以下に示す
本発明の現時点における好適な実施形態の説明を、添付
図面と関連付けることから明白となろう。尚、好適な実
施形態の説明は、開示の目的で提示するものである。
【0026】
【発明の実施の形態】本発明は、ホスト・プロセッサと
メモリ・バスとの間のブリッジ、AGPデバイス(群)
に適合するAGPバス、およびPCIデバイスに適合す
るPCIバスを実施可能なコンピュータ・システムにお
いて、コア・ロジック・チップセットを提供する。AG
Pデバイスは、以降「AGPデバイス・アドレス空間」
と呼ぶ隣接する仮想アドレス空間にアドレスすることに
よって、テクスチャのようなグラフィカル・データを利
用する、グラフィックス・コントローラとすればよい。
AGPデバイス・アドレス空間は、コア・ロジック・チ
ップセットによって、コンピュータ・システムの物理メ
モリ内に配置されている非隣接メモリ・ページから変換
されたものである。コア・ロジック・チップセットは
「グラフィックス・アドレス・リマッピング・テーブ
ル」(「GARTテーブル」)を利用する。このテーブ
ルは、システムのランダム・アクセス・メモリのよう
な、コンピュータ・システムの物理メモリ内に置くこと
ができ、コア・ロジック・チップセット・ソフトウエア
・ドライバ(群)によって制御することができる。GA
RTテーブルの機能は、AGPデバイスによって参照さ
れた仮想アドレスを、コンピュータ・システムの物理メ
モリ内に位置するグラフィックス情報の物理アドレスに
リマップすることである。GARTテーブルの各エント
リは、物理メモリのページに対して、第1のバイト・ア
ドレス位置を記述する。物理メモリのページのサイズ
は、4,096バイト(4KB)とするとよい。GAR
Tテーブル・エントリは、メモリ・アドレス変換ポイン
タと、ソフトウエアで制御可能なフィーチャ・フラグ
(図13参照)とから成る。これらのフィーチャ・フラ
グは、物理メモリの関連するページを任意変更(customi
ze)するために使用してもよい。APIソフトウエアお
よびミニポート・ドライバは、これらのフィーチャ・フ
ラグに対するライトおよび/またはリードを行うことが
できる。
【0027】例示の目的のために、これより本発明の好
適な実施形態を、インテル社のx86マイクロプロセッ
サ・アーキテクチャを利用したコンピュータ・システム
について説明する。尚、ある種の用語および参照(refer
ence)はこれらのプロセッサ・プラットフォームに特定
したものである。AGPおよびPCIは、インターフェ
ース規格であるが、ハードウエアからは独立しており、
これらのインターフェース規格に合わせて設計されたあ
らゆるホスト・コンピュータとでも利用可能である。本
発明は、AGPおよびPCIインターフェース規格を利
用するあらゆるコンピュータ・プラットフォームに対す
る適合化および応用が可能であることが、コンピュータ
・システムの技術における当業者には認められよう。
【0028】先に引用した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として含まれている。こ
の出願の内容も、この言及により本願に含まれるものと
する。
【0029】これより、本発明の好適な実施形態の詳細
が図式で示されている図面を参照する。図面における同
様のエレメントは同様の番号で引用し、類似のエレメン
トは、同様の番号に異なる小文字の添え字を付けて表す
ことにする。これより図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とす
ることも可能である。
【0030】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コネクタに差し込む
ことができるものもある。
【0031】ハード・ディスク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とインターフェースする方がコストは低
い。
【0032】次に図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およびそれと連動するキャッシ
ュ・メモリ(図示せず)も考えられ、本発明の範囲内に
該当するものとする。
【0033】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デバイス)に転送することができ
る。
【0034】ホスト・バス・インターフェースおよびキ
ュー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仕様書に
更に詳しく記載されている。
【0035】ホスト/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デバイス・ターゲット(図示せ
ず)のために、ベース・アドレス・レジスタを内蔵して
いる。
【0036】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に
よる使用を可能にする。
【0037】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の制御およびステータ
ス・レジスタのコンフィギュレーションを行なうために
使用することができる。これについては、以下で更に詳
しく説明する。
【0038】次に、図4のAないし図4のC(図13参
照)を参照すると、コンピュータ・システム・メモリ・
マップ、コンピュータ・システム・メモリ内のGART
テーブル、およびGARTテーブル・エントリの概略図
が示されている。コンピュータ・システム・メモリ10
6の論理メモリ・マップは、全体として番号402で示
されており、グラフィックス・コントローラの物理アド
レス空間は番号404で示されており、AGPデバイス
・アドレス空間(仮想メモリ)は番号406で示されて
いる。コンピュータ・システム200は、32ビット・
アドレスで、4ギガバイト(「GB」)までのメモリに
アドレスすることができるが、この4GBのメモリ・ア
ドレス空間のいくつかは、AGPビデオ・グラフィック
ス・コントローラ210のメモリのような、種々のデバ
イスと関連するローカル・メモリのために用いてもよ
い。尚、AGPビデオ・グラフィックス・コントローラ
210のメモリは、ローカル・フレーム・バッファ20
8,テクスチャ・キャッシュ、アルファ・バッファ、Z
−バッファ等を含む場合があり、全てグラフィックス・
コントローラの物理アドレス空間404内でアドレスさ
れる。加えて、本発明によれば、メモリ・アドレス空間
402の中には、AGPデバイス・アドレス空間406
のために用いられるものもある。図4のAでは、コンピ
ュータ・システム・メモリ106の最下位(最も低いア
ドレス)は番号408で表され、最上位(最も高いアド
レス)は番号410で表されている。最下位408と最
上位410との間には、AGPメモリの種々のブロック
即ち「ページ」が、番号412で表されている。各ペー
ジ412は、隣接するメモリ・アドレスの集合を有す
る。
【0039】本発明では、これらの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に異なるビット数を用い別の使用に供する
ことも可能であり、これも本発明の範囲内において予期
されることである。
【0040】本発明の実施形態は、複数のGARTテー
ブル・エントリ418が、複数のメモリ・ページ412
内に格納されている同じグラフィックス情報に関連(関
係)付けられているか否かについて判定を行なう際に、
各GARTテーブル・エントリ418の下位未使用ビッ
トの1つを使用することを考慮する。図4のCを参照す
ると、各GARTテーブル・エントリ418は、4つの
8ビット・バイトとして、合計32ビット(31:0)
の二進情報を含むことができる。GARTテーブル・エ
ントリ418内の上位20ビット426(31:12)
を、対応する4KBページ412のベース・アドレス4
16に使用する場合、下位12ビット(11:0)は、
メモリ・ページ412に関連するあるフィーチャ(featu
re)および属性の定義および/またはカスタマイズ(cust
omize)を行なうために使用可能である。これら下位ビッ
ト(11:0)を、これ以降、「フィーチャ・ビット」
または「フィーチャ・フラグ」と呼ぶことにする。
【0041】本発明では、リンク・ビット422は、次
のGARTテーブル・エントリ418が現GARTテー
ブル・エントリ418に関連付けられているか否かを示
す。リンク・ビット422は、典型的に、GARTミニ
ポート・ドライバによって管理されるが、コンピュータ
・システムの他のいずれかのデバイス・ドライバ(即
ち、ROM BIOS等)でもアクセス可能である。何
故なら、GARTテーブル414は典型的にコンピュー
タ・システム・メモリ106に配置されているからであ
る。したがって、複数のページ412が同じグラフィッ
ク・テクスチャのためのグラフィックス・データを収容
する場合、それぞれのGARTテーブル・エントリ41
8内のリンク・ビット422によって、これらのページ
412を互いに関連付けることができる。
【0042】リンク・ビット422は、関連するGAR
Tテーブル・エントリ418に書き込むことによって、
ページ412の各々に対して変更することも可能であ
る。何故なら、これらは主コンピュータ・システム・メ
モリ106内に配置されているからである。このため、
あらゆるシステム・ソフトウエア(即ち、GARTミニ
ポート・ドライバ)でも、単にリンク・ビット422に
対するリードおよび/またはライトを行なうことによっ
て、メモリ106内に格納されている各AGPページ4
12に関連する、いずれのGARTテーブル・エントリ
418のリンク・ビット422の状態でも、容易にかつ
素早く判定または変更することができる。
【0043】本発明の実施形態では、ビデオ・グラフィ
ックス・コントローラ210は、AGPバス207上で
アドレスをアサートし、必要なグラフィック・テクスチ
ャ・データを要求する。AGPロジック318は、要求
されたグラフィック・テクスチャ・データのためにこれ
らのアドレスを受け取る。要求されたグラフィック・テ
クスチャ・データはAGPデバイス・アドレス406を
参照するが、AGPデバイス・アドレス406は仮想ア
ドレスであり、コンピュータ・システム内には物理的に
存在しない。したがって、AGPロジックは、これらの
AGPデバイス・アドレス406を、メモリ106内に
位置する実際のAGPページ412にリマップしなけれ
ばならない。これらのAGPページ412は隣接してい
るのではなく、しかも何らかの特定の順序になっている
訳でもない。GARTテーブルは、コア・ロジック・チ
ップセット204が、AGPデバイス・アドレス406
を、物理メモリ106(論理メモリ・マップ402)内
に位置するAGPページ412の実際の物理アドレスに
リマップするために用いる。最後に用いられたGART
テーブル・エントリのサブセットをGARTキャッシュ
322にキャッシュし、アドレス変換を行なう場合のA
GPの処理能力向上を図る。
【0044】AGPアドレス変換速度は、メモリ106
に対するリードが必要でない場合、即ち、GARTキャ
ッシュ322のヒットがある場合はいつでも向上する。
GARTキャッシュ322のミスがあった場合、要求さ
れたGARTテーブル・エントリのみのためにキャッシ
ュ322を更新するか、あるいは多数のGARTテーブ
ル・エントリのために更新するかという問題が発生す
る。多数のGARTテーブル・エントリでキャッシュ3
22を更新する利点は、メモリ・アクセスの回数が減少
することである。これは、メモリ・リードが典型的に多
数のクアド・ワード(1クワド・ワードは2GARTテ
ーブル・エントリである)を持ち込むからである。一度
にどれくらい多数のGARTテーブル・エントリをキャ
ッシュ322に持ち込むべきかに関して、問題が存在す
る。GARTテーブル・エントリが不十分では、多数の
リードが必要となるし、GARTテーブル・エントリが
多すぎると、おそらく正常なキャッシュ・エントリを上
書きしてしまい、キャッシュ・スラシング(cache thras
hing)の原因となる。したがって、本発明の特徴は、次
のGARTテーブル・エントリ418もメモリ106か
らフェッチしなければならない可能性について、AGP
ロジック318内のGARTキャッシング・ロジックに
動的な情報を提供することである。本発明は、AGPビ
デオ・グラフィックス・コントローラ210によって要
求された特定のテクスチャのページ412に必要とされ
る数のGARTテーブル・エントリのみを、キャッシュ
322にフェッチまたはプリフェッチすることを可能に
する。これによって、メモリ・リードの回数を減らすこ
とができ、更に不要なキャッシュの更新も減らし、キャ
ッシュ・スラッシングを少なくするのにも役立つ。
【0045】次に図5を参照すると、本発明の概略的な
機能ブロック図およびメモリ・マップが示されている。
ビデオ・グラフィックス・コントローラ210がAGP
バス207上でグラフィックス・テクスチャ・データを
要求した場合、AGPロジック318は、アサートされ
たAGPデバイス・アドレス空間406を評価し、関連
するGARTテーブル・エントリ418がキャッシュ3
22内にあるか否かについて判定を行なう。GARTテ
ーブル・エントリ418がキャッシュ322内にある場
合(キャッシュ・ヒット)、AGPロジック318は、
メモリ・アドレス空間402の物理メモリ106内に配
置されているAGPページ412のメモリ・リードを行
い、ページ412を、所望のAGPデバイス・アドレス
空間406にリマップする。これについては、以下で更
に詳しく説明する。しかしながら、必要なGARTテー
ブル・エントリ418がキャッシュ322内で見つから
ない場合、AGPロジック318は、最初に、必要なG
ARTテーブル・エントリ418でキャッシュ322を
更新しなければならない。
【0046】明確化のために4つのGARTテーブル・
エントリ418を図示しているが、本発明のコア・ロジ
ック・チップセット204のAGPキャッシュ322内
には、あらゆる数のGARTテーブル・エントリ418
を格納することができ、これも本発明の範囲において考
えられることである。GARTテーブル・エントリ41
8を、物理メモリ106内に配置されたGARTテーブ
ル414から読み出す。一旦正しいGARTテーブル・
エントリ418をキャッシュ322に書き込んだなら、
AGPページ412を物理メモリ106から読み出すこ
とができる。AGPページ412は、コア・ロジック・
チップセット204には格納しないが、ビデオ・グラフ
ィックス・コントローラ210は、直接メモリ106か
らこれを用いることができる。AGPロジック318
は、アドレス変換器として機能し、不規則な順序で隣接
していないAGPページ412を、隣接するAGPデバ
イス・アドレス空間406(ビデオ・グラフィクス・コ
ントローラ210の仮想メモリ)にリマップする。本発
明は、一レベルGARTまたは二レベルGART変換の
いずれかを用いて機能する。これについては、以下で更
に詳しく説明する。
【0047】次に、図6を参照すると、本発明の一実施
形態の動作の概略フロー・チャートが示されている。ビ
デオ・グラフィックス・コントローラ210がAGPデ
ータ要求を行なったときはいつでも(ステップ60
2)、AGPロジック318は、必要なGARTテーブ
ル・エントリ418がキャッシュ322内にあるか否か
について判定を行なう(ステップ604)。必要なGA
RTテーブル・エントリ418がキャッシュ322内に
あり、しかも使用可能である場合、AGPロジック31
8は要求されたAGPデータをフェッチする(ステップ
606)。必要なGARTテーブル・エントリ418が
キャッシュ322内にない場合、AGPロジック318
は最初に必要なGARTテーブル・エントリをフェッチ
しなければならない(ステップ608)。AGPロジッ
ク318がステップ608において最初のGARTテー
ブル・エントリをフェッチしている間、AGPロジック
318は、リンク・ビット422がセットされているか
否かについて判定を行なうことができる(ステップ61
0)。リンク・ビット422がセットされていると判定
された場合(ステップ610)、キャッシュ・エントリ
・フェッチ・アルゴリズムがその予め定義した回数のメ
モリ106からのリードを完了していなければ、次のG
ARTテーブル・エントリ418をメモリ106からフ
ェッチすることができる(ステップ614)。このよう
に、リンク・ビット422がクリアされている(ゼロ)
と判定されるまで、またはキャッシュ・フェッチ・アル
ゴリズムの終点に到達するまで(ステップ612)、次
のGARTテーブル・エントリ418をフェッチし続け
る。一旦最後にフェッチしたGARTテーブル・エント
リ418において、リンク・ビット422がセットされ
ていないと判定されたならば(ステップ610)、必要
なGARTテーブル・エントリ418は全てメモリ40
2から読み出され、キャッシュ322にキャッシュされ
たことになる。この時点で、AGPロジック318は、
最後にキャッシュされたGARTテーブル・エントリ4
18を用いて、AGPデータの読み出しを開始すること
ができる(ステップ606)。このように、本発明は、
コア・ロジック・チップセット204が、必要な数の関
係するGARTテーブル・エントリ418のみをキャッ
シュ322内にフェッチすることを可能にする。これに
よって、不要なGARTテーブル・エントリ418をキ
ャッシュ322に書き込むことを防止し、現キャッシュ
・エントリを上書きしてしまい、キャッシュ・メモリ・
スラッシングを発生する可能性を排除する。AGP仕様 先に本願にも含まれるものとした、1996年7月31
日付けの"AcceleratedGraphics Port Interface Specif
ication Revision 1.0"(加速グラフィックス・ポート
・インターフェース仕様書改定第1.0版)と題するイ
ンテル社のAGP仕様書は、AGPバスに対する信号、
プロトコル、電気および機械仕様を提供する。しかしな
がら、AGP機能を有する完全に機能するコンピュータ
・システムを実現する前に、更に多くの設計を実施しな
ければならない。以下の開示は、本発明によるAGPイ
ンターフェースの実施に特定する部分を定義するもので
ある。以下の開示は、GARTテーブル、バッファの深
さ、待ち時間、レジスタ、ならびにドライバの機能性(f
unctionality)およびインターフェースを含むので、当
業者であれば、前述の言及により本願にも含まれるもの
としたインテル社のAGP仕様書と共に使用すれば、さ
ほど経験がなくとも、本発明を実施することができよ
う。
【0048】グラフィックス・コントローラがローカル
・フレーム・バッファからシステム・メモリに、テクス
チャおよびコマンド・リストのようなその他の情報を移
動することを要求する場合、問題が発生する。図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および集積度を高め高速化したチップセットの導入に
よって、この問題は管理可能となりつつある。
【0049】グラフィックス・アドレス・リマッピング
・テーブル(「GARTテーブル」)の必要性を理解す
るには、AGPアドレシング方式を完全に理解する必要
がある。ここで図7のAおよび図7のBを参照すると、
AGP単一レベルアドレス変換およびAGP二レベル・
アドレス変換の概略メモリ・マップがそれぞれ示されて
いる。図1に示す従来技術のコンピュータ・システム・
アーキテクチャでは、グラフィックス・コントローラの
物理アドレス空間は、システム・メモリ106の最上位
410の上に位置する。グラフィックス・コントローラ
110は、ローカル・フレーム・バッファ108,テク
スチャ・キャッシュ、アルファ・バッファ、Z−バッフ
ァ等に、この物理アドレス空間を使用していた。AGP
システムでは、情報は未だにグラフィックス・コントロ
ーラのメモリ(アルファ、z−バッファ、ローカル・フ
レーム・バッファ108等)内に位置するが、以前に従
来技術のローカル・フレーム・バッファ108内に位置
していたデータには、システム・メモリ106に移動さ
せたものもある(主にテクスチャ、しかしコマンド・ラ
イン等も)。グラフィックス・コントローラ210がこ
れらのテクスチャにアクセスするために用いるアドレス
空間は、仮想的となる。即ち、このアドレス空間に対応
する物理メモリは、メモリの最上位の上には実際には存
在しないことを意味する。実際、これらの仮想アドレス
の各々は、システム・メモリ106内の物理アドレスに
対応する。グラフィックス・コントローラ210は、先
に引用した、この仮想アドレス空間にアドレスする。以
降、この仮想アドレス空間のことを、メモリ406の1
つの隣接するブロックとして、「AGPデバイス・アド
レス空間」と呼ぶ。しかし、対応する物理アドレスは、
コンピュータ・システム・メモリ106全体に及ぶ、4
KBの非隣接ページ412に割り当てられる。
【0050】グラフィックス・コントローラの隣接AG
Pデバイス・アドレスを、システム・メモリ106内に
位置する、それらの対応する物理アドレスにリマップす
るためのシステム、方法および装置が必要となる。これ
は、GARTテーブルの機能である。GARTテーブル
は、物理メモリ106(図1)内に位置し、AGPバス
207,ホスト・バス103、またはPCIバス(群)
109のいずれかから発生し得るAGPデバイス・アド
レスを、コア・ロジック・チップセット204がリマッ
プするために用いられる。GARTテーブルは、GAR
Tミニポート・ドライバによって管理される。本発明で
は、GARTテーブルの実施は、AGPアドレスのリマ
ッピングについて、2つの選択肢に対応する。即ち、単
一レベル・アドレス変換および二レベル・アドレス変換
である。単一レベルGARTテーブル変換 単一レベル・アドレス変換は、チップセットが要求する
GARTテーブル・エントリの参照回数を減少させるこ
とによって、AGPの全体的な処理能力を改善すること
ができる。単一レベルとは、チップセットが所望のペー
ジの物理アドレスを得るために(テーブル−>ページ)
GARTテーブルの参照を1回だけ行なえばよいことを
意味する。これが可能なのは、GARTテーブルが、オ
ペレーティング・システムによって、キャッシュ不可能
なメモリの単一の隣接する1つのブロックに割り当てら
れるからである。このメモリの割り当ては、典型的に、
初期化プロセスの早期に行い、隣接メモリが確実に得ら
れるようにする。しかしながら、コンピュータ・システ
ムの動作中いずれかの時点においてコンピュータ・シス
テム・メモリのフラグメンテーション解消(defragmenta
tion)を行い、必要な隣接メモリ空間を得ることも、本
発明の範囲内のことと考えられる。
【0051】単一レベル・アドレス変換を用いるコンピ
ュータ・システムでは、グラフィックス・コントローラ
が用いるAGPデバイス・アドレスは、図8に示すよう
な3つの部分から成るものと見ることができる。3つの
部分とは、デバイス・アドレス空間のベース・アドレス
(ビット31:x)、AGPデバイス・アドレス空間内
へのページ・オフセット(ビットx:12)、および4
KBページへのオフセット(ビット11:0)である。
尚、AGPデバイス・アドレス空間へのページ・オフセ
ットは、GARTテーブル内へのエントリ・インデック
スとしての使用も可能であることを注記しておく。ま
た、AGPデバイス・アドレス空間へのページ・オフセ
ットを構成するビット数は、AGPに割り当てられる仮
想(および物理)メモリのサイズによって異なる。例え
ば、32MBのAGPメモリを有するシステムでは、ペ
ージ全てを表すためには13ビットを要する。図9のテ
ーブルは、AGPメモリ内の各4KBページを表すため
に必要なビット数対AGPメモリのサイズの関係を示
す。
【0052】システム・メモリは、図8に示すフォーマ
ットを有するアドレスを必要とする。このアドレスは、
4KBページのベース・アドレス(ビット31:1
2)、および4KBページへのオフセット(ビット1
1:0)から成る。各4KBページのベース・アドレス
は、GARTテーブルが対応するデバイス・アドレスを
リマップするために必要な情報である。4KBページへ
のオフセットは、AGPデバイス・アドレス内に存在す
るのと同じオフセットである。
【0053】次に、図10を参照すると、単一レベル・
アドレス変換においてデバイス・アドレスを物理アドレ
スに変換する概略フロー・チャートが示されている。A
GPデバイス・アドレス空間のベース・アドレスは、A
GPメモリのサイズと共に、オプションとして、チップ
セットが用いて、要求内にあるアドレスが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データの所望4
kBページのベース・アドレスを示すために必要であ
る。
【0054】設計によっては、二レベル・アドレス変換
の方が、単一レベル・アドレス変換よりも好ましい場合
がある。その理由は、GARTディレクトリおよびGA
RTテーブルを含む4KBページが隣接する必要がない
からである。大きなブロックの隣接するメモリが不要な
ので、オペレーティング・システムは、二レベル・アド
レス変換を用いた方が、物理メモリをGARTテーブル
に首尾よく割り当てる可能性が高くなることも考えられ
る。単一レベルまたは二レベルのアドレス変換のいずれ
かを用いたGARTテーブルの動的な割り当ては、本発
明の範囲内において予期されることである。
【0055】二レベル・アドレス変換を用いるシステム
では、グラフィックス・コントローラが用いるデバイス
・アドレスは、図11に示すように、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ビットを用いてアドレスすることができ
る。図12のテーブルは、AGPメモリにおけるGAR
Tディレクトリおよびページを表すために必要なビット
数とAGPメモリのサイズとの関係を示す。
【0056】次に、図13を参照すると、二レベル・ア
ドレス変換においてデバイス・アドレスを物理アドレス
に変換する概略フロー・チャートが示されている。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
ページ内へのオフセットと等価であることを注記してお
く。
【0057】二レベル・アドレス変換では、GARTテ
ーブルおよびGARTディレクトリ双方を必要とする。
単一レベル・アドレス変換では、GARTテーブルのみ
があればよい。GARTテーブルのフォーマットおよび
その使用は、単一レベル・アドレスおよび二レベル・ア
ドレス変換双方とも同一である。GARTテーブル 次に図14を参照すると、GARTテーブルの概略メモ
リ・マップが示されている。GARTテーブル内の各エ
ントリは4バイト長であり、以下の情報から成るものと
することができる。即ち、ページ・ベース・アドレス
(ビット31:12)、ダーティ・ビット(ビット
2)、リンク・ビット(ビット1)、および有効ビット
(ビット0)である。ページ・ベース・アドレス(ビッ
ト31:12)は、物理メモリ内の対応する4KBペー
ジの最初のバイトの物理アドレスを指定する。このフィ
ールド内のビット(ビット31:12)は、物理アドレ
スの上位20ビットとして解釈され、4KB境界上にお
いて、関連するページを整列させる。ページ・ベース・
アドレスは、GARTミニポート・ドライバによって初
期化され管理される。
【0058】ビット11:0は、関連する各ページを任
意変更し(customize)特徴付けるためのフラグ・ビット
として用いることができる。本発明は、これらのフラグ
・ビットを利用することによって、AGP仕様に対する
将来の改良に対処する。例えば、キャッシュ可能性フラ
グ・ビットは、4KBページがキャッシュ可能か否かを
示すことができ、ライト結合性ビットは、4KBページ
がライト結合可能か否かを示すことができる。本発明の
更に具体的な例を以下に示す。
【0059】ビット2は、ダーティ・ビットとして用い
ることができる。ダーティ・ビットは、このGARTテ
ーブル・エントリによって参照されたページが変更され
たときを示すことができる。
【0060】ビット1は、リンク・ビットとして用いる
ことができる。リンク・ビットは、GARTミニポート
・ドライバによってセットし、管理することができる。
これは、次のGARTテーブル・エントリが現GART
テーブル・エントリに関連付けられていることを示す。
リンク・ビットは、チップセットが、GARTテーブル
・エントリを、GARTテーブル参照の一部として、プ
リフェッチする場合に用いることができる。リンク・ビ
ットが最初のGARTテーブル・エントリにおいてセッ
トされている場合、チップセットは2番目のエントリを
キャッシュすることができる。2番目のエントリにおけ
るリンク・ビットがセットされている場合、3番目のエ
ントリをキャッシュすることができる。これは、エント
リの内の1つにおいてリンク・ビットがセットされてお
らず、通常のキャッシュ・リードを行なう際に利用する
ことができるまで続けて、必要な数を超えるGARTテ
ーブル・エントリをキャッシュしないようにする。即
ち、キャッシュ・ライン全てのリードは必要でない。ま
た、リンク・ビットは、AGPデバイス・アドレス空間
内の隣接する4KBページ内にテクスチャが重複する場
合にも有用である。
【0061】ビット0は存在フラグ(present flag)とし
て用いることができる。この存在フラグは、GARTテ
ーブル・エントリによって示されたAGPデータ・ペー
ジが、GARTミニポート・ドライバによって予約され
ているか否かを示す。存在フラグがセットされている場
合、AGPデータ・ページが物理メモリ内に予約されて
おり、アドレス変換を実行することができる。存在フラ
グがクリアされている場合、AGPデータ・ページはメ
モリ内に予約されておらず、チップセットは、変換を行
なうべきか、あるいはエラー(SERR#)を発生すべきかに
ついて判定を行なわなければならない。存在フラグは、
必ずしも、エントリが実際にAGPデータ・ページにマ
ップするか否かを示す訳ではないが、GARTテーブル
・エントリがGARTミニポート・ドライバによる適用
のために予約されていることを示す。GARTディレクトリ 次に図15を参照すると、GARTディレクトリ内のエ
ントリ、GARTテーブル・エントリのページ、および
AGPメモリの概略メモリ・マップが示されている。G
ARTディレクトリは、キャッシュ不可能な物理メモリ
内に位置する単一の4KBページに収容することができ
る。各GARTディレクトリ・エントリは4ビット長と
することができるので、コンピュータ・システム・メモ
リ内の単一の4KBページ以内には、1024個のGA
RTディレクトリ・エントリが存在することができる。
このように、単一の4KBページ・サイズのGARTデ
ィレクトリによって、4GBまでの物理メモリにアドレ
スすることができる。2GBまでのAGPデバイス・ア
ドレス空間に対応するためには、512個のGARTデ
ィレクトリ・エントリだけあればよい。ビット31:0
は、GARTテーブルのGARTディレクトリ・エント
リの対応するページのベース・アドレス(オフセット=
0)を収容する。これも、物理メモリ内に位置すること
ができる。
【0062】GARTテーブルのサイズは、システムが
要求するAGPメモリ量の関数である。単一レベル・ア
ドレス変換を使用するシステムでは、以下の式を用いて
サイズを計算する。 GARTサイズ(バイト)={必要なAGPメモリ(バ
イト)/ページ・サイズ(4096バイト)}*GAR
Tエントリ・サイズ(4バイト) ここで、 必要なAGPメモリ=AGP専用のシステム・メモリ量 ページ・サイズ=システム・メモリ内の標準的なページ
・サイズ GARTエントリ・サイズ=GARTテーブル内の単一
のエントリのサイズ である。
【0063】この式は、予約されたAGPデバイス・ア
ドレス空間量に基づいて、最大のGARTテーブル・サ
イズを計算することを注記しておく。予約された実際の
GARTテーブル・メモリ量は、オペレーティング・シ
ステムによって異なる場合もある。二レベル・アドレス
変換では、GARTディレクトリに追加の4KBページ
(4096バイト)が必要となる。二レベル・アドレス
変換を使用するシステムでは、以下の式を用いてサイズ
を計算する。 GARTサイズ(バイト)={必要なAGPメモリ/ペ
ージ・サイズ}*GARTエントリ・サイズ+ページ・
サイズ 図16を参照すると、割り当てたAGPメモリとGAR
Tテーブルの最大サイズとの相関関係を示すテーブルが
示されている。明確化のためにのみ、32MB,64M
B,128MB,256MB,512MB,1GB,お
よび2GBのAGPメモリ要求に基づいたGARTテー
ブルの実施態様を示すが、あらゆるAGPメモリ・サイ
ズでも収容することができ、これも本発明の範囲内のも
のと考えられる。尚、二レベル変換では、そのディレク
トリのために、追加の4KBページが1つ必要となるこ
とを注記しておく。 AGP論理アーキテクチャ 次に図17を参照すると、本発明によるAGPチップセ
ット204の機能ブロック図が示されている。AGPチ
ップセット204は、2つの主要な機能を実行する。即
ち、ホスト−PCIブリッジ機能(機能0)およびPC
I−PCIブリッジ機能(機能1)である。ホスト−P
CIブリッジは、一般的に、PCIを基本とするコア・
ロジックにおいて見られる標準的なインターフェースで
ある。PCI−PCIブリッジは、既存のバス一覧コー
ドを変更することなく、AGPポートのコンフィギュレ
ーションを簡便化するために用いられる。これらの機能
の各々は、それ自体のコンフィギュレーション・レジス
タを有しており、PCI2.1仕様が要求するように、
それ自体のPCIコンフィギュレーション・ヘッダ・タ
イプの中に位置する。これらのコンフィギュレーション
・レジスタを、ぞれぞれ図18および図21にリストさ
れる。AGPに特定のレジスタについての更に詳しいレ
ジスタ・ビット情報は、図19、図20,および図22
ないし図33にリストされる。尚、AGPチップセット
は、新能力機構(New Capabilities mechanism)を実施し
ており、その詳細は、1996年5月20日付けの"Add
itionof 'New Capabilities' Structure"(「新能力」
構造の追加)と題する、設計変更通知(「ECN」)に
記載されていることを注記しておく。尚、この文献は、
この言及により本願にも含まれるものとする。新能力構
造は、デバイスが対応する各機能の情報を含むレジスタ
のリンク・リストとして実施される。AGPレジスタ
は、リンク・リストに含まれている。
【0064】PCI−PCIブリッジ320の機能は、
最大限機能するPCI−PCIブリッジである必要はな
い。PCIバス109上で発したメモリ・ライト・トラ
ンザクションを、AGPバス207に向けて送出するこ
とができればよい。AGP−PCIメモリ・ライト・ト
ランザクションを行なう必要はない。更に、例えば、I
/O(リードおよびライト)、コンフィギュレーション
(リードおよびライト)、およびメモリ・リード(メモ
リ・リード、メモリ・リード・ライン、メモリ・リード
多数)のようなその他のPCIコマンド、特殊なサイク
ル、ならびにインターフェースを交差するための割り込
みの承認を行なう必要もない。これらの制限は、PCI
−AGPおよびAGP−PCIインターフェースのみに
適用される。本発明は、ホスト−AGPおよびホスト−
PCIコマンドの全てに対応する。
【0065】AGPに準拠したマスタは所定のメモリ要
件を有し、オフセット20h,22h,24h,26h
にそれぞれ位置するメモリ・ベース・レジスタ、メモリ
限界レジスタ、プリフェッチ可能メモリ・ベース・レジ
スタ、およびプリフェッチ可能メモリ限度レジスタを用
いて、システム・メモリ・マップ内に配置しなければな
らない。ホスト−PCI(機能0)およびPCI−PC
I(機能1)デバイスのIDも異なるものとして、多機
能デバイスのためのデバイス・ドライバに関するマイク
ロソフト社の政策に対処するようにしてもよい。次に示
すレジスタの集合は、以下で説明するが、本発明による
AGP準拠コア・ロジック・チップセットを実装するた
めに必要となり得るレジスタであることが好ましい。
【0066】ホスト−PCIブリッジ 図18を参照すると、本発明の一実施形態による、ホス
ト−PCIブリッジ306機能へのホスト用レジスタの
概略的なテーブルが示されている。ベース・アドレス・
レジスタ0(BAR0)1702は、システムのBIO
Sメモリ・マッピング・ソフトウエアが、AGP準拠マ
スタのためにAGPデバイス・アドレス空間を割り当て
る際に用いられる。図19は、このレジスタにおいて用
いられるビットの機能的記述を示す。システムのBIO
Sは、BAR0 1702に全て1を書き込み、次いで
そのレジスタから読み出すことによって、AGPの実施
のために必要なアドレス空間のサイズおよび型を判定す
る。BAR0 1702の最下位ビットから上方向に戻
り値を走査することによって、BIOSは必要なアドレ
ス空間のサイズを判定することができる。最初に発見し
た1ビットの二進加重値は、必要な空間量を示す。一旦
メモリがBIOSによって割り当てられたなら、AGP
デバイス・アドレス空間のベース・アドレスを、このレ
ジスタのビット31:4に入力する。このレジスタはハ
ード・ワイヤ状とした情報(information hard-wired)も
含み、これはプリフェッチ可能なメモリ範囲であり、3
2ビット・アドレス空間内のどこにでも配置可能である
ことを示す。必要なAGPデバイス・アドレス空間を決
定するためには、他のいずれの手段でも使用可能であ
り、それも本発明の範囲内のものと考えられる。
【0067】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ビット・アドレス空間内のどこかに配置可能で
あることを示す。必要なメモリ・アドレス空間を決定す
るためには、他のいずれの手段でも使用可能であり、そ
れも本発明の範囲内のものと考えられる。
【0068】PCI−PCIブリッジ 図21を参照すると、本発明の一実施形態による、PC
I−PCIブリッジ320(機能1)に対するレジスタ
の概略的なテーブルが示されている。コマンド・レジス
タ1806は、コア・ロジック・チップセット204内
におけるPCI−PCIブリッジ320の機能に対して
粗雑な制御を行なう。このレジスタは、AGPバス20
7およびPCIバス109双方の上においてPCIサイ
クルを発生し応答する能力(ability)を制御する。図2
2は、コマンド・レジスタ1806において用いられる
ビットの機能的記述を示す。
【0069】ステータス・レジスタ1808は、コア・
ロジック・チップセット204内におけるPCI−PC
Iブリッジ320の機能の推移ステータス(course stat
us)を与える。図23は、ステータス・レジスタ180
8内で用いられるビットの機能的記述を示す。ステータ
ス・レジスタ1808は、この明細書では、能力ポイン
タ対応ビット(Capabilities Pointer Supported bit)
(ビット4)を、本発明の実施に応じたホスト・ブリッ
ジにおいて、1にセットすべきことを強調するために含
まれている。ステータス・ビットがセットされている場
合、PCI仕様書によって指定されているように、標準
的な手順を用いてこのビットをクリアする(即ち、
「1」をこのビットに書き込む)。
【0070】二次ステータス・レジスタ1810は、ス
テータス・レジスタ1808(オフセット06h)と機
能およびビット定義において類似しているが、そのビッ
トは、AGPバス207に接続されているPCI−PC
Iブリッジ320インターフェースの二次側のステータ
ス状態を反映する。図24は、二次ステータス・レジス
タ1810において用いられるビットの機能的記述を示
す。PCI−PCIブリッジ仕様において定義されてい
るようにビット14を再定義する他に、66Mhz可能
ビット(66Mhz capable bit)(ビット5)を、AGPの
ために再定義する。ステータス・ビットがセットされて
いる場合、PCI仕様書によって指定されているよう
に、標準的な手順を用いてこのビットをクリアする(即
ち、「1」をこのビットに書き込む)。
【0071】メモリ・ベース・レジスタ1812は、コ
ンピュータ・システムのBIOSメモリ・マッピング・
ソフトウエアが、AGPマスタ(グラフィックス・コン
トローラ)によって用いられるプリフェッチ不可能なア
ドレス範囲のベース・アドレスを格納するために用い
る。図25は、メモリ・ベース・レジスタ1812にお
いて用いられるビットの機能的記述を示す。システムB
IOSバス一覧ソフトウエアは、AGPマスタのベース
・アドレス・レジスタ(BAR)内に見出される必要条
件に基づいて、メモリの最上位(TOM)の上に、1ブ
ロックの物理メモリを割り当てる。BIOSは、このレ
ジスタに、そのメモリ・ブロックのベース・アドレスを
入力する。また、メモリ限度レジスタ1814に、その
アドレス範囲の最上位のアドレスを入力する。この情報
が与えられると、コア・ロジック・チップセット204
は、これら2つのアドレスを用いて、AGPマスタのプ
リフェッチ不可能なメモリ空間へのサイクルをデコード
することができる。このプリフェッチ不可能なメモリ
は、マスタの制御レジスタおよびFIFO状通信インタ
ーフェスがマップされているところにある。メモリ・ア
ドレス範囲は、1MBの境界上に位置することができ
る。
【0072】メモリ限度レジスタ1814は、コンピュ
ータ・システムのBIOSメモリ・マッピング・ソフト
ウエアが、AGPマスタ(グラフィックス・コントロー
ラ)によって用いられるプリフェッチ不可能なアドレス
範囲の最上位アドレスを格納するために用いる。図26
は、メモリ限度レジスタ1814において用いられるビ
ットの機能的記述を示す。システムBIOSバス一覧ソ
フトウエアは、マスタのベース・アドレス・レジスタ
(BAR)内に見出される必要条件に基づいて、メモリ
の最上位(TOM)の上に、1ブロックの物理メモリを
割り当てる。BIOSは、このレジスタに、そのメモリ
・ブロックの最上位アドレスを入力する。また、メモリ
・ベース・レジスタ1812に、そのアドレス範囲のベ
ースのアドレスを入力する。
【0073】プリフェッチ可能メモリ・ベース・レジス
タ1816は、コンピュータ・システムのBIOSメモ
リ・マッピング・ソフトウエアが、AGPマスタ(グラ
フィックス・コントローラ)によって用いられるプリフ
ェッチ可能なアドレス範囲のベース・アドレスを格納す
るために用いる。図27は、プリフェッチ可能メモリ・
ベース・レジスタ1816において用いられるビットの
機能的記述を示す。システムBIOSバス一覧ソフトウ
エアは、マスタのベース・アドレス・レジスタ(BA
R)内に見出される必要条件に基づいて、メモリの最上
位(TOM)の上に、1ブロックのメモリ・アドレスを
割り当てるか、あるいは参照テーブルを用いて、そのコ
ンフィギュレーション・レジスタ内に示されるAGPデ
バイスの形式に基づいて、メモリ・アドレスのブロック
を決定してもよい(図50参照)。BIOSは、プリフ
ェッチ可能メモリ・ベース・レジスタ1816内に、そ
のメモリ・ブロックのベース・アドレスを入力する。ま
た、プリフェッチ可能メモリ限度レジスタ1818に、
そのアドレス範囲の最上位のアドレスを入力する。この
情報が与えられると、コア・ロジック・チップセット2
04は、これら2つのアドレスを用いて、AGPマスタ
のプリフェッチ可能なメモリ空間へのサイクルをデコー
ドすることができる。このプリフェッチ可能なメモリ
は、グラフィックス・コントローラのローカル・フレー
ム・バッファ208がマップされるところにある。メモ
リ・アドレス範囲は、1MBの境界上に位置することが
できる。
【0074】プリフェッチ可能メモリ限度レジスタ18
18は、コンピュータ・システムのBIOSメモリ・マ
ッピング・ソフトウエアが、AGPマスタ(グラフィッ
ク・コントローラ)によって用いられるプリフェッチ可
能なアドレス範囲の最上位アドレスを格納するために用
いられる。図28は、プリフェッチ可能メモリ限度レジ
スタ1818において用いられるビットの機能的記述を
示す。システムBIOSバス一覧ソフトウエアは、AG
Pマスタのベース・アドレス・レジスタ(BAR)内に
見出される必要条件に基づいて、メモリの最上位(TO
M)の上に、1ブロックのメモリ・アドレスを割り当て
るか、あるいは参照テーブルを用いて、そのコンフィギ
ュレーション・レジスタ内に示されるAGPデバイスの
形式に基づいて、メモリ・アドレスのブロックを決定し
てもよい(図51参照)。BIOSは、このレジスタ
に、そのメモリ・ブロックの最上位アドレスを入力す
る。また、プリフェッチ可能メモリ・ベース・レジスタ
1816にそのアドレス範囲のベース・のアドレスを入
力する。この情報が与えられると、コア・ロジック・チ
ップセット204は、これら2つのアドレスを用いてA
GPマスタのプリフェッチ可能なメモリ空間へのサイク
ルをデコードすることができる。このプリフェッチ可能
なメモリは、グラフィックス・コントローラのローカル
・フレーム・バッファがマップされるところにある。メ
モリ・アドレス範囲は、1MBの境界上に位置すること
ができる。
【0075】能力ポインタ・レジスタ1820は、PC
I2.1仕様書に記載されている新機能機構にしたがっ
て、このデバイスが対応する最初の機能へのオフセット
・ポインタを与える(参照:「新能力」を定義するEC
N)。図29は、能力ポインタ・レジスタ1820にお
いて用いられるビットの機能的記述を示す。AGPは、
新能力ECN仕様に対応する機能である。
【0076】AGP能力識別子レジスタ1822は、可
能リスト内にあるこの機能を、AGP機能として識別す
る。図30は、AGP能力レジスタ1822において用
いられるビットの機能的記述を示す。また、これは能力
リスト内にある次の機能に対するポインタも与え、AG
Pデバイスと一致するAGP仕様書の改訂番号(revisio
n number)も引用する。
【0077】AGPステータス・レジスタ1824は、
AGPデバイスに、AGP機能性のステータスを与え
る。図31は、AGPステータス・レジスタ1824に
おいて用いられるビットの機能的記述を示す。報告され
る情報は、最大要求キューの深さ、側波帯アドレシング
能力、および転送レートを含む。AGPステータス・レ
ジスタ1824はリード・オンリ・レジスタである。ラ
イトは何も影響を与えず、予約されているフィールドま
たは実施されていないフィールドが読み出された場合に
は、ゼロを返す。
【0078】AGPコマンド・レジスタ1826は、ソ
フトウエアが側波帯アドレシングをイネーブルし、AG
Pをイネーブルし、AGP転送レートをセットすること
を可能にする。図32は、AGPコマンド・レジスタ1
826において用いられるビットの機能的記述を示す。
【0079】AGPデバイス・アドレス空間サイズ・レ
ジスタ1828は、システムBIOSによって割り当て
られるAGPデバイス・アドレス空間のサイズを判定す
る。図33は、AGPデバイス・アドレス空間サイズ・
レジスタ1828において用いられるビットの機能的記
述を示す。AGPデバイス・アドレス空間サイズ・レジ
スタ1828は、AGPデバイスがコンピュータ・シス
テムにおいて有効か否かについての判定も行うことがで
きる。
【0080】次に図34を参照すると、本発明の一実施
形態による、メモリ・マップ・レジスタ(memory-mapped
register)の概略的なテーブルが示されている。図34
に示すチップセットのメモリ・マップ制御レジスタは、
ホスト−CPIブリッジ306(機能0)コンフィギュ
レーション・ヘッダ(オフセット14h)内のBAR1
1704(図18)に位置するアドレスによってアク
セスされる。このアドレスは、システムBIOSによっ
て決定され、BAR1 1704に書き込まれる。この
システム・メモリ106の空間内にあるレジスタは、G
ARTミニポート・ドライバが、実行時間中にチップセ
ット204内部のAGPファンクショナリティを制御す
るために用いることができる。システム・メモリ・マッ
プ・レジスタに情報を格納することの利点は、プロセッ
サ102がメモリ・アクセスによってこれらのメモリ・
マップ・レジスタにアクセスする、即ち、その最も早い
データ読み取り機構を用いてアクセスすることである。
これは、キャッシュ制御レジスタ(図示せず)のよう
な、実行時にアクセス可能なレジスタには重要な場合も
ある。
【0081】改訂IDレジスタ1902は、GARTミ
ニポート・ドライバが、チップセットに特定のAGP制
御レジスタによって与えられるフォーマットおよびフィ
ーチャの識別を可能とするために備えられたものであ
る。図35は、改訂IDレジスタ1902において用い
られるビットの機能的記述を示す。
【0082】GART能力レジスタ1904は、コア・
ロジック・チップセットが対応するGARTフィーチャ
を定義する。図36は、GART能力レジスタ1904
において用いられるビットの機能的記述を示す。
【0083】AGPフィーチャ制御レジスタ1906
は、チップセット204が対応するGARTフィーチャ
をイネーブルする。図19のDは、AGPフィーチャ制
御レジスタ1906において用いられるビットの機能的
記述を示す。
【0084】AGPフィーチャ・ステータス・レジスタ
1908は、AGPおよびGARTに関係するイベント
について、ステータス情報を記録するために用いられ
る。図38は、AGPフィーチャ・ステータス・レジス
タ1908において用いられるビットの機能的記述を示
す。論理「1」がビットに書き込まれたときはいつで
も、そのビットはリセットされる。
【0085】GARTテーブル/ディレクトリ・ベース
・アドレス・レジスタ1910は、システム・メモリ内
のGARTテーブル/ディレクトリに物理アドレスを与
える。図39は、GARTテーブル/ディレクトリ・ベ
ース・アドレス・レジスタ1910において用いられる
ビットの機能的記述を示す。単一レベル・アドレス変換
を使用するシステムでは、このレジスタはGARTテー
ブルのベース・アドレスに対応する。二レベル・アドレ
ス変換を使用するシステムでは、このレジスタはGAR
Tディレクトリのベース・アドレスに対応する。このレ
ジスタは、GARTテーブル/ディレクトリにメモリが
割り当てられたときにはいつでも、GARTミニポート
・ドライバによって初期化される。GARTテーブルの
メモリ割り当てについての更に詳しい説明については、
以下のソフトウエア仕様の記載を参照されたい。
【0086】GARTディレクトリ/テーブル・キャッ
シュ・サイズ・レジスタ1912は、GARTディレク
トリおよびGARTテーブルキャッシュにおいて、コア
・ロジック・チップセットがキャッシュすることができ
るエントリの最大数を識別する。図40は、GARTデ
ィレクトリ/テーブル・キャッシュ・サイズ・レジスタ
1912において用いられるビットの機能的記述を示
す。
【0087】GARTディレクトリ/テーブル・キャッ
シュ制御レジスタ1914は、GARTディレクトリお
よびテーブル・キャッシュ全体を無効化し、システム・
メモリ内のGARTディレクトリおよびテーブルとのコ
ヒーレンシを維持する機構をソフトウエアに与える。図
41は、GARTディレクトリ/テーブル・キャッシュ
制御レジスタ1914において用いられるビットの機能
的記述を示す。単一レベル・アドレス変換を使用するシ
ステムでは、このレジスタはGARTテーブル・キャッ
シュのみに適用される。二レベル・アドレス変換を用い
るシステムでは、このレジスタはGARTディレクトリ
・キャッシュおよびGARTテーブル・キャッシュ双方
に適用される。
【0088】GARTテーブル・キャッシュ・エントリ
制御レジスタ1916は、ソフトウエアが特定のGAR
Tテーブル・キャッシュ・エントリを更新/無効化する
ために用いられる。図42は、GARTテーブル・キャ
ッシュ・エントリ制御レジスタ1916において用いら
れるビットの機能的記述を示す。GARTミニポート・
ドライバがGARTテーブル内のエントリを更新/無効
化するためのコールを受け取ったとき、GARTテーブ
ル・キャッシュのコヒーレンシを維持しなければならな
い。更新/無効化されたエントリがGARTキャッシュ
内にない場合、無効化機能は何も効力を生じない。GA
RTミニポート・ドライバは、32ビット・ライト・ア
クセスをこのレジスタのみに実行する。
【0089】ポスティド(posted)・ライト・バッファ
制御レジスタ(Posted Write BufferControl Register)
1918は、GARTミニポート・ドライバによってセ
ットされ、チップセットのプロセッサをメモリ・ポステ
ィド・ライト・バッファに書き出す(flush)。図43
は、ポスティド・ライト・バッファ制御レジスタ191
8において用いられるビットの機能的記述を示す。これ
は、GARTテーブル・エントリのマッピングの間必要
となる。プロセッサが有効なエントリをGARTテーブ
ルに書き込むと、チップセットのポスティド・ライト・
バッファにデータを入力することができる。グラフィッ
クス・コントローラが、ポスティド・されたGARTテ
ーブル・エントリにアクセスしようとすると、エントリ
は有効ではなく、エラーが発生する。同様の問題は、プ
ロセッサがGARTテーブル・エントリをクリアしたと
きにも発生する。データが転記され、グラフィックス・
コントローラがそのGARTテーブル・エントリにアク
セスしようとすると、戻されるデータは転化している場
合がある。
【0090】図44に示す、AGPバス利用度/帯域幅
/レイテンシ・コマンド・レジスタ1920は、コア・
ロジック・チップセット204内にあるAGPバス利用
カウンタ、帯域カウンタ、およびレイテンシ・カウンタ
を制御する。AGPバス利用度、帯域幅、およびレイテ
ンシを測定するためには、3つの32ビット・カウンタ
を備えればよい。各基準32ビット・カウンタは、66
MHz AGPクロックを用いて駆動(増分)する。6
6MHz AGPクロックは60秒間カウントする。利
用度、帯域幅またはレイテンシを測定するためには、基
準カウンタの期間が終了した後の利用度カウンタ内の値
に15nsを乗算し、60で除算しなければならない。
利用度カウンタ、帯域幅カウンタ、およびレイテンシ・
カウンタは、このレジスタを用いて、初期化しイネーブ
ルすることができる。クリア利用度レジスタ・ビット
は、これらのカウンタ全てをクリアする。AGPバス利
用度レジスタ1922,帯域幅レジスタ1924、およ
びレイテンシ・レジスタ1926は、図45ないし図4
7に示すように、それぞれ、AGPバス利用度/帯域幅
/レイテンシ・コマンド・レジスタ1920内の対応す
る部分のビットをセットすることによって、独立して起
動可能なカウンタである。カウント動作は、AGPバス
利用度/帯域幅/レイテンシ・コマンド・レジスタ19
20内の対応するビットが論理「0」にクリアされるま
で、AGPバス利用度レジスタ1922、帯域幅レジス
タ1924、およびレイテンシ・レジスタ1926のカ
ウンタ内において継続する。
【0091】AGPバス利用度レジスタ1922は、A
GPバス利用度カウンタ値を保持する。このカウンタ値
は、図45に示すトランザクションのいずれか1つによ
ってAGP AD[31:0]バスがアクティブになっていると
きに、各AGPバス・クロック毎に増分される。
【0092】AGPバス帯域レジスタ1924は、AG
Pバス帯域カウンタ値を保持する。このカウンタ値は、
図46に示すようにAGP AD[31:0]バスがアクティブ
になっているときに、各AGPバス・クロック毎に増分
される。
【0093】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ページの範囲に及ぶことを仮定していること
を注記しておく。キャッシュ・サイズを拡大することに
よって、更にシステムの処理能力は向上する。
【0094】グラフィックス・コントローラは、典型的
に、GARTテーブルを通じてAGPメモリにアクセス
する、少なくとも4つのストリームを識別する。それら
は、CPU,ビデオ、テクスチャ、およびコマンド・リ
ストである。これが与えられると、AGPグラフィック
ス・コントローラ204の好適な実施形態は、少なくと
も、4方向にセットされた連想GARTテーブル・キャ
ッシュを有し、スラッシングを防止する。二レベル・ア
ドレス変換を使用するシステムでは、GARTディレク
トリ・キャッシュは、少なくとも4つのエントリ、即
ち、各ストリーム毎に1つを有することが好ましい。
【0095】GARTテーブル・エントリをプリフェッ
チすることによっても、処理能力を向上させることがで
きる。プリフェッチが行われるのは、現AGP要求に応
ずるために必要なGARTテーブル・エントリをフェッ
チする間に、チップセットが次のGARTテーブル・エ
ントリを読み出す場合である。このエントリは、以前の
GARTテーブル・エントリと共にキャッシュされる。
この余分なエントリをプリフェッチするためのオーバー
ヘッドは、各GARTテーブル・エントリが4バイト幅
であり、一方典型的なメモリ・データ・バスが8バイト
幅であることを考えると、無視することができる。これ
は、1回の要求で、2つのGARTテーブル・エントリ
が読み出されることを意味する。加えて、チップセット
の中には、メモリからデータを読み出すときに、キャッ
シュ・ライン全体(8バイト)をバーストするものもあ
る。この場合、7つのGARTテーブル・エントリを、
容易にプリフェッチすることができる。GARTテーブ
ル・エントリのプリフェッチを、図49に示す。
【0096】コア・ロジック・チップセットのデータ・
コヒーレンシ コア・ロジック・チップセット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ストリームに対するアクセスに、ホスト・プロセッサ
のキャッシュをスヌープしないので、コヒーレンシの問
題が発生する場合がある。
【0097】コア・ロジック・チップセット204は、
ホスト・バス103およびPCIバス109からのリー
ド・アクセスが、AGPバス207上におけるAGPス
トリームに対するライト・アクセスとコヒーレントであ
ることを、AGPフラッシュ・コマンドのみを用いるこ
とによって保証することが好ましい。一旦AGPフラッ
シュ・コマンドをAGPバス207上で回収したなら、
以前に回収したAGPライト・データは全て、ホストバ
ス103およびPCIバス109上のデバイスそれぞれ
に使用可能となる。AGPフラッシュ・コマンドを用い
ないと、コヒーレンシの問題が発生する場合がある。AGPグラフィックス・コントローラ 本発明の好適な実施形態と共に、以下の仕様にしたがっ
てAGPグラフィックス・コントローラを実装可能であ
ることが好ましい。キャッシュ・ラインの境界上にAG
P要求を発行し、処理の改善を図る。コア・ロジック・
チップセットは、典型的に、メモリに入出力するキャッ
シュ・ライン転送に最適化されている。AGPマスタが
リード・データを要求し、トランザクション・サイズが
キャッシュ・ラインの境界を交差する場合、そのデータ
をフェッチするためには2回のキャッシュ・ライン・メ
モリ・リードが必要となる。これは非効率的である。特
に、マスタがキャッシュ・ライン境界から離れてバック
−ツー−バック・キャッシュ・ライン・リード(back-to
-back cache line read)を実行する場合は非効率的であ
る。キャッシュ・ラインが整列されていないトランザク
ションによる非効率性は、要求のサイズを大きくするこ
とによって最低化する。
【0098】AGP要求のサイズは、リードでは8バイ
トないし32クワド・ワード(QW)まで、ライトでは
8QWまでの範囲とすることができる。これが意味する
のは、グラフィック・コントローラは全ての要求をキャ
ッシュ・ライン境界上で発行することは不可能であると
いうことである。したがって、チップセットは、複数回
のリードを組み合わせて、順序を入れ換えることによ
り、サイズが4QW未満の要求を実行することによる影
響を最少に抑えることが好ましい。
【0099】キャッシュ・ラインのサイズまたはキャッ
シュ・ラインの倍数のサイズを有するAGP要求を発行
し、処理の改善を図る。コア・ロジック・チップセット
は、典型的に、32バイト(キャッシュ・ライン)で主
システム・メモリにアクセスする場合に対して最適化さ
れている。可能なときはいつでも、AGPに準拠したマ
スタが、32バイトの倍数であるデータ転送長で、32
バイト・アドレスに整整列させたアクセス(32 byte add
ress alighed access)を実行可能なことが好ましい。こ
れによって、主システム・メモリとAGPバスとの間の
帯域幅を最大限拡張することができる。
【0100】PIPEの代わりに、SBA要求キューイ
ング機構(SBA request queuing mechanism)を用いる。
好適なホスト・ブリッジAGPターゲット要求キュー
は、多数の要求を保持することができる。ターゲットの
効率を最大限高めるためには、要求キューを可能なかぎ
り最大に保持すべきことが好ましい。これは、側波帯要
求の待ち行列化(sideband request enqueueing)を用い
て達成することが好ましく、これによってAGP2Xモ
ードの速度を利用し、ADバス調停のオーバーヘッドを
回避する。
【0101】グラフィックス・コントローラ210がP
CIサイクルを発生することができる場合、PCIキャ
ッシュ・ライン・サイズ・レジスタ(コンフィギュレー
ション空間オフセット0Ch)を実装し、可能な限り最
も効率的なPCIライトおよびリード・コマンドを使用
する。PentiumおよびPentium Proシステムは、32バイ
トのキャッシュ・ライン・サイズを使用しているので、
少なくともこのサイズに対応していると好ましい。
【0102】メモリ・ライトおよび無効化(MWI:Me
mory Write and Invalidate)コマンドは、特に、CP
Uキャッシュ・スヌープ・オーバーヘッドが高いPentiu
m Proを基本とするシステム上で、ライト・バーストを
実行する際に役に立つ。これは、ホスト・ブリッジがC
PUキャッシュ・ライトバック・データを無視すること
を可能にする。一旦CPUがスヌープ・アドレスを認識
したなら、ホスト・ブリッジはPCIストリームからメ
モリにデータを書き込むことができる。このコマンド
は、切断せずに多数のキャッシュ・ラインをバーストす
る場合に好ましい。
【0103】メモリ・リード・ライン(MRL:Memory
Read Line)およびメモリ・リード・マルチプル(MR
M:Memory Read Multiple)コマンドは、ホスト・ブリ
ッジに、メモリから追加のキャッシュ・ラインをプリフ
ェッチさせる。これはリード・バーストを高速化し、回
数が更に多い状況においても、切断することなく、バー
ストを継続させることができる。これらのコマンドがな
いと、CPUキャッシュ・スヌープはバーストを停止さ
せる(hold up)。プリフェッチは、前回のキャッシュ・
ライン・データ転送の間、スヌープ時間を隠す。
【0104】次に図50を参照すると、本発明の一実施
例による、AGPグラフィックス・コントローラ210
のコンフィギュレーション・レジスタの概略的なテーブ
ルが示されている。グラフィックス・コントローラ21
0内のAGPコンフィギュレーション・レジスタは、A
GPマスタに対してAGPバス・パラメータを構成する
ために必要な情報を収容する。能力ポインタ・レジスタ
2202は、PCI2.1仕様書(参照:「新能力」を
定義するECN)に記載されている新能力機構にしたが
って、このデバイスが対応する最初の機能へのオフセッ
ト・ポインタを与える。AGPは、新能力が対応する機
能である。図51は、能力ポインタ・レジスタ2202
において用いられるビットの機能的記述を示す。
【0105】AGP能力識別子レジスタ2204は、能
力リスト内のこの機能が、AGP機能であることを識別
する。図52は、AGP能力識別子レジスタ2204に
おいて用いられているビットの機能的記述を示す。AG
P能力識別子レジスタ2204は、能力リスト内の次の
機能へのポインタも与え、このデバイスが準拠するAG
P仕様書の改訂番号を引用する。
【0106】AGPステータス・レジスタ2206は、
このデバイスに、AGP機能性のステータスを与える。
図53は、AGPステータス・レジスタ2206におい
て用いられるビットの機能的記述を示す。報告される情
報は、最大要求キューの深さ、側波帯アドレシング能
力、および転送レートを含む。このAGPステータス・
レジスタは、好ましくは、リード・オンリ・レジスタで
ある。ライトは何も影響を与えず、予約されているフィ
ールドまたは実施されていないフィールドが読み出され
た場合には、ゼロを返す。
【0107】AGPコマンド・レジスタ2208は、ソ
フトウエアが側波帯アドレシングをイネーブルし、AG
Pをイネーブルし、AGP転送レートをセットすること
を可能にする。図54は、AGPコマンド・レジスタ2
208において用いられるビットの機能的記述を示す。
これらのビットは、初期化の間にオペレーティング・シ
ステムによってセットされる。
【0108】AGPレイテンシ インテル社のAGP仕様書第1.0版は、AGPサイク
ルに対するレイテンシを特定していない。本発明を開示
する目的のために、AGPレイテンシを、単一のサイク
ルをキューに入れた時点から、データの最初の二重ワー
ド(対応する要求に対する)がAGPマスタに提示され
るまでに発生するAGPバス・クロック(66MHz)
の数と定義することにする。レイテンシが開始するの
は、要求がAGPマスタによってADバスまたはSBA
バスにいずれかの上に置かれ(どのAGPアドレシング
方式を用いているかによって異なる)、PIPE#またはSBA
(それぞれ)がアクティブのときである。レイテンシが
終了するのは、TRDY#がアクティブであり、対応する要
求に対するデータの最初の二重ワードがADバス上に置
かれたときである。レイテンシは、AGPリード・サイ
クルに関してのみ定義する。何故なら、ライト・サイク
ルは、コア・ロジック・チップセット204内において
通知されるからである。図55は、最良の場合、典型的
な場合、および最悪の場合について予測されるレイテン
シを示す。
【0109】最良の場合のレイテンシは、目的とするデ
ータを読み出す間、GARTキャッシュ・ヒットおよび
メモリ・サブシステム・ページ・ヒットが得られた(即
ち、プリチャージなし)と仮定することによって、算出
することができる。また、ADバスが使用可能であり、
要求がキャッシュ・ライン上で整列され、コア・ロジッ
ク・チップセットのメモリ・バス・アービタがAGP要
求アクセスをメモリ・バスに直ちに付与することも仮定
する。計算に用いられるCAS#レイテンシは、2クロック
である。
【0110】典型的なレイテンシでは、ADバスが直ち
に使用可能であり、要求がキャッシュ・ライン上で整合
され、GARTキャッシュ・ヒットおよびメモリ・サブ
システム・ページ・ミス(即ち、プリチャージおよび活
性化が必要)が発生したと仮定する。この場合、AGP
要求は、アービタによってメモリ・バスが付与される前
に、行われている最中のプロセッサ−メモリ間サイクル
またはPCIバス−メモリ間サイクルが完了するのを待
たなければならない。プリチャージおよび活性化の不利
(penalty)が含まれる。計算に用いられるCAS#レイテン
シは、2クロックである。
【0111】最悪の場合のレイテンシでは、ADバスが
直ちに使用可能であり、要求がキャッシュ・ライン境界
上で整列され、GARTキャッシュ・ミス(即ち、GA
RTテーブル・エントリの参照が必要)およびページ・
ミス(即ち、プリチャージおよび活性化が必要)が発生
したと仮定する。この場合、GARTテーブル・エント
リの参照は、メモリ・バスが付与される前に、行われて
いる最中のプロセッサ−メモリ間サイクルまたはPCI
−メモリ間サイクルが完了するのを待たなければならな
い。一旦メモリ・バスが使用可能になれば、チップセッ
トはGARTテーブル・エントリのリードを実行する。
次いで、AGP要求は、メモリ・バスが付与される前
に、もう1回プロセッサまたはPCI−メモリ間サイク
ルおよびリフレッシュ・サイクルを待たなければならな
い。一旦メモリ・バスへのアクセスが付与されたなら、
AGPデータをメモリから読み出す。プリチャージおよ
び活性化の不利が含まれる。計算に用いられるCAS#レイ
テンシは、2クロックである。ソフトウエアの説明 AGPソフトウエア・アーキテクチャの主要コンポーネ
ントには、システムBIOS,チップセット・ミニポー
ト・ドライバ、オペレーティング・システム、およびグ
ラフィックス即ちDirect Drawドライバが含まれる。こ
れらのコンポーネントは、図21に示すように、チップ
セットおよびグラフィックス・コントローラ内におい
て、AGPおよびGARTテーブル機能を初期化し、制
御するために必要である。以下の開示では、主要なAG
Pソフトウエア・コンポーネントについて論ずる。主
に、システムBIOSおよびGARTミニポート・ドラ
イバ双方について検討する。また、AGPに適用された
場合のオペレーティング・システム/APIおよびグラ
フィックス・コントローラ・ドライバについても簡単に
説明する。
【0112】システムBIOS ブートの間、システムBIOS起動時自己検査(POS
T:power-on self-test)が以下のAGP機能を実行す
る。1)コア・ロジック・チップセットのAGPエラー
報告をイネーブルする。2)AGPデバイス・アドレス
空間のサイズを用いて、コア・ロジック・チップセット
のコンフィギュレーションを決定することも可能である
(オプション)。これらの機能の各々について、以下に
更に詳細に説明する。
【0113】エラー報告のイネーブル グラフィックス・コントローラが有効でないAGPメモ
リ内のページにアクセスしようとする場合、チップセッ
トは失敗(failure)を無視し処理を継続するか、あるい
はSERR#を発生することができる。このフィーチャはプ
ラットフォームに特定であるので、システムBIOSは
適切なレジスタをセットする役割を担う(GARTミニ
ポート・ドライバとは異なる)。これは、AGP失敗時
に、以下のアルゴリズムを用いてSERR#を発生するよう
に、システムのコンフィギュレーションを決定する。 1.システムBIOSは、最初に、AGP能力レジスタ
1904(図34および図36を参照)内のチップセッ
トの有効ビット・エラー報告対応ビット(ビット0)を
読み込むことによって、AGPエラー報告に対応してい
るか否かについて判定を行う。このビットが1にセット
されている場合、チップセットは、グラフィックス・コ
ントローラがAGPメモリ内の無効ページにアクセスし
ようとした場合に、SERR#を発生することができる。 2.SERR#の発生に対応する場合、チップセットはAG
Pフィーチャ制御レジスタ1906内の有効ビット・エ
ラー報告イネーブル・ビット(ビット0)を1にセット
することによって、SERR#の発生をイネーブルすること
ができる(図34および図37を参照)。このビットを
0にセットすると、システムは失敗を無視し、要求の処
理を継続する。
【0114】AGPデバイス・アドレス空間のサイズの
決定(configuring) 既存のバス一覧コードを再利用し、AGPに割り当てら
れる仮想および物理メモリ量を最適化するために、シス
テムBIOSは、バス一覧コードの実行の前に、チップ
セットのホスト−PCIブリッジ・コンフィギュレーシ
ョン・ヘッダ(機能0)(図18を参照)におけるベー
ス・アドレス・レジスタ0(BAR0)1702内のリ
ード/ライト属性のコンフィギュレーションを決定する
ことができる。コア・ロジック・チップセットがこのフ
ィーチャに対応すると仮定する。システムBIOSは以
下のアルゴリズムを用いてこれを行う。 1.バス一覧/メモリ・マッピング・ソフトウエアの前
に、システム内にインストールされているAGPグラフ
ィックス・コントローラの構造(make)およびモデルを判
定する。グラフィックス・コントローラに基づき、BI
OSは、AGPによって要求されたメモリ量を判定する
ことができる。 2.ステップ1で得られたサイズを用いて、チップセッ
トのPCI−PCIブリッジ・コンフィギュレーション
・ヘッダ(機能1)(図21および図33を参照)にア
クセスされたAGPデバイス・アドレス空間サイズ・レ
ジスタ1828のVASサイズ・ビット(ビット2:
1)に、適切なサイズをセットする。ビット2:1を変
更すると、チップセットは自動的にホスト−PCIブリ
ッジ・コンフィギュレーション・ヘッダ(機能1)のB
AR0 1702におけるリード/ライト属性を調節
し、所望のメモリ量を反映する(図18および図20を
参照)。 3.AGPデバイスが何も発見されなかった場合、AG
Pデバイス・アドレス空間サイズ・レジスタ内のAGP
有効ビットを0にセットし、AGPが無効であることを
示す。チップセットは自動的にホスト−PCIブリッジ
・コンフィギュレーション・ヘッダのBAR0 170
2を更新し、AGPに要求されたメモリがないことを示
す。PCI−PCIブリッジ(機能1)能力ポインタ
は、リンク・リスト内の次の項目を示すようにセットさ
れるか、または他に項目がない場合にはヌルにセットさ
れる。 4.バス一覧コードは、BAR0 1702内に要求さ
れたサイズを見出し、このメモリを(必要に応じて)メ
モリ・マップ内に割り当てる。AGPデバイス・アドレ
ス空間のブロックのベース・アドレスは、BAR0 1
702内に置かれ、32−MB境界上に位置する。
【0115】AGPデバイス・アドレス空間サイズ・レ
ジスタの実装は、チップセットに特定である。BIOS
は、そのコア・ロジック・チップセットが、AGPデバ
イス・アドレス空間サイズのコンフィギュレーションに
対応するか否かについて知っていなければならない。知
らない場合、AGPデバイス・アドレス空間サイズを、
ホスト−PCIブリッジ・コンフィギュレーション・ヘ
ッダのBAR0 1702にハード・コードし、BIO
Sによって要求されるアクションはない。
【0116】GARTミニポート・ドライバ 本発明のGARTミニポート・ドライバ(以降、「GA
RT MPD」または「MPD」)は、オペレーティン
グ・システム・ソフトウエアが以下の機能を実行するた
めに用いられる。
【0117】・チップセット内のGART能力を初期化
する。 ・GARTテーブルを作成し、初期化する。 ・GARTテーブル・エントリを予約する。 ・割り当てられた4KBページを用いてGARTテーブ
ル・エントリを物理メモリにマップする。
【0118】・L1/L2キャッシュにページを書き出
す。 ・GARTテーブル・エントリを非マップ(unmap)し、
GARTキャッシュおよびリンク・ビット・コヒーレン
シを維持する。 ・GARTテーブル・エントリを解放する。 ・実行を終える(exit)際に、GART変換を終了する。 これらの機能の各々について、以下で更に詳しく説明す
る。GARTミニポート・ドライバが提供するサービス
を図57ないし図62に示す。GARTミニポート・ド
ライバに使用可能なサービスを図63および図64に示
す。これらのサービスに関する更なる情報については、
マイクロソフトAGPソフトウエア機能仕様書を参照さ
れたい。マイクロソフトAGPソフトウエア機能仕様書
は、ワシントン、レッドモンドのマイクロソフト社から
入手可能であり、その内容は、この言及により本願にも
含まれるものとする。
【0119】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の役割である。
【0120】GARTディレクトリ/テーブルの割り当
ておよび初期化 AGPの初期化に続き、オペレーティング・システムか
らのPCIMPReset()コールを受け取ると、チップセット・
ミニポート・ドライバ(MPD)は、以下の機能を実行
し、GARTディレクトリ/テーブルの(再)作成およ
び初期化を行う。 1.MPDは、PCIAllocatePages()コマンドを用いてオ
ペレーティング・システムをコールすることにより、G
ARTテーブルに、4KBページのシステム・メモリを
「n」個割り当てる。MPDは、「n」、即ち、割り当
てるべきページ数を、使用可能なシステム・メモリのペ
ージ数(PCIMPresetコール内にオペレーティング・シス
テムによって与えられる)、およびシステムBIOSに
よって割り当てられるAGPデバイス・アドレス空間の
量(チップセットのホスト−PCIブリッジ・コンフィ
ギュレーション・ヘッダ内のBAR0を参照する)に基
づいて決定しなければならない。尚、二レベル・アドレ
ス変換を使用するシステムは、GARTディレクトリに
割り当てられる追加のエントリを有さなければならない
ことを注記しておく。
【0121】先に開示したように、本発明のAGPを実
装することにより、2種類のアドレス変換、即ち、一レ
ベル・アドレス変換(ページ−>テーブル)および二レ
ベル変換(ディレクトリ−>テーブル−>ページ)に対
応する。単一レベル・アドレス変換を用いるシステムで
は、GARTには、単一の隣接するメモリ・ブロックを
割り当てなければならない。PCIAllocatePages()サービ
スを用いる場合、MPDはPageContigフラグをセット
し、オペレーティング・システムからの隣接ページを要
求しなければならない。好ましくは、GARTテーブル
のためのメモリ割り当ては、オペレーティング・システ
ムの起動後直ちに実行し、必要な隣接メモリが確実に得
られるようにする。二レベル・アドレス変換を用いるシ
ステムでは、GARTテーブルは隣接する必要はない。
MPDは、オペレーティング・システムが割り当てら
れたページをゼロで満たすように、PCIAllocatePages()
サービス内にPageZeroInitフラグをセットし、GART
ディレクトリ/テーブルを初期化する。L1/L2キャ
ッシュ・コヒーレンシを維持するために、MPDはMP#F
LUSHES#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ディレクト
リを満たす。
【0122】GARTテーブル・エントリの予約 実行時間の間、およびオペレーティング・システムから
PCIMPReserveEntries()コールを受け取ったとき、チッ
プセット・ミニポート・ドライバ(MPD)は、以下の
機能を実行し、オペレーティング・システムのためにG
ARTテーブル・エントリを予約する。 1.MPDはGARTテーブルを検索し、「n」個の使
用可能な隣接するエントリを求める。ここで、「n」
は、PCIMPReserveEntries()コールにおいてオペレーテ
ィング・システムが要求した4KBページの数である。
隣接するエントリを発見したなら、MPDは、各GAR
Tテーブル・エントリに有効ビット(ビット0)をセッ
トすることによって、これらのエントリをオペレーティ
ング・システムのために予約する。 2.次に、MPDはマップ・ハンドルを返す。マップ・
ハンドルとは、予約された最初のGARTテーブル・エ
ントリの線形アドレスである。このマップ・ハンドル
は、後にMPDが、GARTテーブル・エントリをマッ
プし維持するために用いる。尚、マップ・ハンドルは、
AGPデバイス・アドレス空間内の対応するページのベ
ース・アドレスに対応することを注記しておく。
【0123】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」は、マッピングが必要なページ数である。マップ
・ハンドルおよびシステム線形アドレスは、各繰り返し
毎に増分しなければならないことを注記しておく。 5.ステップ1ないし4の完了時に、MPDは、チップ
セットのホスト−PCIブリッジ・コンフィギュレーシ
ョン・ヘッダ内のベース・アドレス・レジスタ1(BA
R1−オフセット14h)から、AGPメモリ・マップ
制御レジスタへのポインタを得る。このポインタを用い
て、MPDは、チップセットのホスト−メモリポスティ
ド・ライト・バッファを書き出し、ポスティド・ライト
・バッファ制御レジスタ(オフセット14h)内のフラ
ッシュポスティド・ライト・バッファ・ビット(ビット
0)を1にセットする。このビットは、完了時に、チッ
プセットによって0にリセットされる。MPDは、フラ
ッシュの完了を確認するために、このビットをポールす
る必要はない。代わりに、GARTテーブルに書き込ま
れた最後のエントリのリード・バックを行う。フラッシ
ュの完了は、データがリード・バックから戻される前
に、保証される。
【0124】L1/L2キャッシュのフラッシュイング GARTテーブル・エントリのマッピングの直後、およ
びオペレーティング・システムからPCIMPFlushPages()
コールを受け取ったときに、チップセット・ミニポート
・ドライバ(MPD)は、以下の機能を実行し、L1/
L2キャッシュに特定のページを書き出す。 1.MPDは、プロセッサのCR3レジスタを用いて、
L1キャッシュを書き出す。 2.MPDは、可能であれば、L2キャッシュから特定
のページを書き出す。MPDが特定のL2ページを書き
出すことができない場合、L2キャッシュ全体を書き出
してはならない。代わりに、何もすべきではない。
【0125】GARTテーブル・エントリの非マッピン
グ、ならびにGARTキャッシュおよびリンク・ビット
・コヒーレンシの維持 実行時間中、およびオペレーティング・システムからPC
IMPUnMapEntries()コールを受け取った場合、チップセ
ット・ミニポート・ドライバ(MPD)は以下の機能を
実行し、GARTキャッシュのコヒーレンシを維持しつ
つ、GARTテーブル・エントリを非マップ(unmap)す
る。
【0126】1.PCIMPUnMapEntries()コールによって
与えられたマップ・ハンドルを、GARTテーブルへの
線形アドレスとして用い、MPDは、インデックスされ
たGARTテーブル・エントリ(有効ビットを含まな
い)を、何らかの無効状態に初期化する。有効ビットは
有効のままであり、このエントリがアプリケーションの
ために未だ予約されていることを示す。
【0127】2.GARTキャッシングがイネーブルさ
れている場合、MPDは特定のキャッシュされたエント
リまたはGARTキャッシュ全体のいずれかを無効化し
なければならない。特定のGARTキャッシュ・ライン
を無効化するには、MPDはAGPデバイス・アドレス
を、GARTキャッシュ・エントリ制御レジスタ(オフ
セット10h)のビット31:12に書き込み、その同
じレジスタにおいて、GARTキャッシュ・エントリ無
効化ビット(ビット0)を1にセットする。単一のGA
RTキャッシュ・エントリは無効化されない。完了時
に、チップセットによって、ビット0が0にリセットさ
れる。エントリが存在しない場合、要求は無視される。
GARTキャッシュ全体を無効化するには、MPDは、
GARTキャッシュ制御レジスタ(オフセット0Ch)
のGARTキャッシュ無効化ビット(ビット0)に1を
書き込む。GARTキャッシュ全体は、自動的に無効化
される。完了時に、キャッシュ無効化ビットは、チップ
セットによって、0にリセットされる。
【0128】GARTキャッシュ全体の無効化は、
「n」個のGARTテーブル・エントリが全て無効化さ
れた後に行うことが好ましい。ここで、「n」は、PCIM
PFreeEntries()コールによって与えられた、解放すべき
GARTテーブル・エントリの数である。
【0129】3.リンクがイネーブルされている場合、
MPDはリンク・ビット・コヒーレンシが維持されてい
ることを保証しなければならない。例えば、GARTテ
ーブル・エントリ0,1,2,3が存在し、リンク・ビ
ットがエントリ0,1,2においてセットされており、
エントリ2,3が解放されている場合、エントリ1内の
リンク・ビットをディスエーブルしなければならない。
リンク・ビット・コヒーレンシを維持し損なうと、不必
要なGARTテーブル・エントリをキャッシュする結果
となる。
【0130】4.ステップ1ないし3を「n」回繰り返
す。ここで、「n」は、解放すべきGARTテーブル・
エントリの数である。この値は、PCIMPFreeEntries()コ
ールによって、入力パラメータとして与えられる。尚、
マップ・ハンドルは、各繰り返し毎に増分しなければな
らないことを注記しておく。
【0131】5.ステップ1ないし4の完了時に、MP
Dは、チップセットのホスト−PCIブリッジ・コンフ
ィギュレーション・ヘッダ内のベース・アドレス・レジ
スタ1(BAR1−オフセット14h)から、AGPメ
モリ・マップ制御レジスタへのポインタを得る。このポ
インタを用いて、MPDはチップセットのホスト・メモ
リポスティド・ライト・バッファを書き出し、ポスティ
ド・ライト・バッファ制御レジスタ(オフセット14
h)内のフラッシュポスティド・ライト・バッファ・ビ
ット(ビット0)を1にセットする。このビットは、完
了時に、チップセットによって0にリセットされる。M
PDは、フラッシュの完了を確認するために、このビッ
トをポールする必要はない。代わりに、GARTテーブ
ルに書き込まれた最後のエントリのリード・バックを行
う。フラッシュの完了は、データがリード・バックから
戻される前に、保証される。
【0132】GARTテーブル・エントリの解放 オペレーティング・システムからPCIMPFreeEntries()コ
ールを受け取ったとき、チップセット・ミニポート・ド
ライバ(MPD)は、以下の機能を実行してGARTテ
ーブル・エントリを解放する。
【0133】1.PCIMPFreeEntries()コールによって与
えられたマップ・ハンドルを、GARTテーブル・エン
トリに対する線形アドレスとして用い、MPDはGAR
Tテーブル・エントリの有効ビットを無効(0)にセッ
トする。このステップは、「n」回実行される。ここ
で、「n」は、PCIMPFreeEntries()コールにおいて渡さ
れたページ数である。
【0134】2.ステップ1の完了時に、MPDは、チ
ップセットのホスト−PCIブリッジ・コンフィギュレ
ーション・ヘッダ内のベース・アドレス・レジスタ1
(BAR1−オフセット14h)から、AGPメモリ・
マップ制御レジスタへのポインタを得る。このポインタ
を用いて、MPDはチップセットのホスト・メモリ・ポ
スティド・ライト・バッファを書き出し、ポスティド・
ライト・バッファ制御レジスタ(オフセット14h)内
のフラッシュ・ポスティド・ライト・バッファ・ビット
(ビット0)を1にセットする。このビットは、完了時
に、チップセットによって0にリセットされる。MPD
は、フラッシュの完了を確認するために、このビットを
ポールする必要はない。代わりに、GARTテーブルに
書き込まれた最後のエントリのリード・バックを行う。
フラッシュの完了は、データがリード・バックから戻さ
れる前に、保証される。
【0135】GARTテーブル機能性の終了 オペレーティング・システムからのPCIMPExit()コール
を受け取った場合、チップセット・ミニポート・ドライ
バ(MPD)は、以下の機能を実行してGART機能性
をディスエーブルする。
【0136】1.MPDは、GARTディレクトリ/テ
ーブル・キャッシュ制御レジスタ(オフセット0Ch)
のGARTキャッシュ無効ビット(ビット0)に1を書
き込むことによって、GARTディレクトリおよびテー
ブル・キャッシュを書き出す。GARTキャッシュ全体
が、自動的に無効化される。完了時に、キャッシュ無効
化ビットが、チップセットによって0にリセットされ
る。
【0137】2.MPDはPCIFreePages()をコールし、
GARTテーブルに割り当てられていたページを解放す
る。MPDは、GARTテーブルのベースの線形アドレ
ス、および解放するページ数を供給しなければならな
い。
【0138】3.MPDは、以前に割り当てたGART
テーブル位置の全てに0を書き込むことによって、解放
したページを初期化する。
【0139】AGP機能性は、GART機能性を終了す
る前に、ディスエーブルすることが好ましい。AGP機
能性は、ターゲットにおいてAGP機能性をディスエー
ブルする前に、マスタにおいてディスエーブルされる。
【0140】オペレーティング・システム オペレーティング・システムは、以下のAGP機能を実
行する。 ・マスタおよびターゲット双方においてデータ転送レー
トを設定する。 ・必要に応じて、マスタおよびターゲット双方において
側波帯アドレシングをイネーブルする。 ・マスタにおいて要求キューの深さを設定する。 ・ターゲットおよびマスタにおいて、AGPをイネーブ
ルする。 ・必要に応じて、物理メモリの割り当ておよび解放を行
なう。 ・GARTミニポート・ドライバのために、リード/ラ
イト・サービスを行なう。 AGPに適用されるオペレーティング・システムのファ
ンクショナリティに関するこれ以上の詳細については、
マイクロソフトのAGPソフトウエア機能仕様書を参照
されたい。
【0141】グラフィックス・ドライバ/Direct X グラフィックス・ドライバ即ちDirect Xは以下のAGP
機能を実行する。 ・アプリケーションが用いるために、AGPデバイス・
メモリのページを予約する。
【0142】・予約したデバイス・メモリのページを引
き渡す(commit)ことにより、システム・メモリを割り当
てる。 ・予約したデバイス・メモリのページを回収する(uncom
mit)ことにより、システム・メモリの割り当てを解除す
る。 ・AGPデバイス・メモリの以前に予約したページを解
放する。 ・情報が引き渡されたメモリを獲得する。 AGPに適用されるグラフィックス・ドライバおよびDi
rect Xドライバのファンクショナリティに関するこれ以
上の詳細については、マイクロソフトのAGPソフトウ
エア機能仕様書を参照されたい。AGPに適用されるグ
ラフィックス・ドライバおよびDirect Xドライバのファ
ンクショナリティに関するこれ以上の詳細については、
マイクロソフトのAGPソフトウエア機能仕様書を参照
されたい。
【0143】以上のように、本発明は、その目的を達成
し、前述の結果(end)および利点、ならびにその他の本
発明特有の利点を得るのに十分に適合したものである。
特定の好適な実施形態を参照しながら本発明を図示し、
説明し、定義したが、かかる参照は、本発明に対する限
定を暗示するものではなく、かかる限定を何ら推論する
ものでもない。本発明は、当業者には想起されるよう
に、その形態および機能において、かなりの変更、変
形、および均等物が可能である。図示し記載した本発明
の好適な実施形態は例示に過ぎず、本発明の範囲を網羅
するものではない。したがって、本発明は、あらゆる観
点において均等物を最大限認める、特許請求の範囲の精
神および範囲によってのみ限定されることを意図するも
のである。
【図面の簡単な説明】
【図1】従来技術のコンピュータ・システムの概略ブロ
ック図。
【図2】本発明によるコンピュータ・システムの概略ブ
ロック図。
【図3】図2のコンピュータ・システムによる、本発明
の実施形態の概略機能ブロック図。
【図4】本発明による、コンピュータ・システムのメモ
リ・マップ、GARTテーブルおよびGARTテーブル
・エントリの概略図。
【図5】本発明による概略機能ブロック図およびメモリ
・マップ。
【図6】本発明による一実施形態の動作の概略フロー・
チャート。
【図7】AGP単一レベル・アドレス変換のメモリ・マ
ップおよびAGP二レベル・アドレス変換のメモリ・マ
ップの概略図。
【図8】図7によるAGP単一レベル・アドレス変換の
概略機能ブロック図。
【図9】単一レベル変換において、ページ・オフセット
に必要なビットを示すテーブル。
【図10】単一レベル・アドレス・リマッピングの概略
フロー・チャート。
【図11】図10のBによるAGP二レベル・アドレス
変換の概略機能ブロック図。
【図12】二レベル変換において、ディレクトリおよび
ページ・オフセットに必要なビットを示すテーブル。
【図13】二レベル・アドレス・リマッピングの概略フ
ロー・チャート。
【図14】本発明によるGARTテーブルのメモリ・マ
ップの概略図。
【図15】本発明による、GARTディレクトリ内のエ
ントリ、GARTテーブル・エントリのページおよびA
GPメモリのメモリ・マップの概略図。
【図16】最大GARTテーブル・サイズとAGPメモ
リのサイズとの関係を示すテーブル。
【図17】AGP論理アーキテクチャの概略機能ブロッ
ク図。
【図18】図17のAGP機能ブロック図よび本発明の
一実施形態によるレジスタを概略的に示すテーブル。
【図19】本発明による、図18のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図20】本発明による、図18のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図21】図17のAGP機能ブロック図および本発明
の一実施形態によるレジスタを概略的に示すテーブル。
【図22】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図23】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図24】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図25】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図26】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図27】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図28】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図29】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図30】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図31】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図32】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図33】本発明による、図21のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図34】図17のAGP機能ブロック図および本発明
の一実施形態による、メモリ・マップ・レジスタを概略
的に示すテーブル。
【図35】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図36】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図37】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図38】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図39】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図40】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図41】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図42】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図43】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図44】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図45】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図46】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図47】本発明による、図34のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図48】本発明の一実施形態による、GARTテーブ
ル・エントリをキャッシュする場合の概略メモリ・マッ
プ。
【図49】本発明の一実施形態による、GARTテーブ
ル・エントリをプリフェッチする場合の概略メモリ・マ
ップ。
【図50】図17のAGP機能ブロック図および本発明
の一実施形態による、AGPグラフィックス・コントロ
ーラのコンフィギュレーション・レジスタを概略的に示
すテーブル。
【図51】本発明による、図17のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図52】本発明による、図17のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図53】本発明による、図17のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図54】本発明による、図17のAGPレジスタ内で
用いられるビットの機能的記述を示すテーブル。
【図55】本発明による、AGPに対する最良、典型
的、および最悪の場合のレイテンシを示すテーブル。
【図56】AGPソフトウエア・アーキテクチャの概略
機能ブロック図。
【図57】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図58】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図59】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図60】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図61】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図62】GARTミニポート・ドライバが提供するソ
フトウエア・サービスを示すテーブル。
【図63】GARTミニポート・ドライバに使用可能な
ソフトウエア・サービスを示すテーブル。
【図64】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 (41)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・プロセッサおよびメモリ
    を、加速グラフィックス・ポート(AGP)プロセッサ
    に接続するコア・ロジック・チップセットを有するコン
    ピュータ・システムであって、 ソフトウエア命令を実行し、グラフィックス・データを
    発生するシステム・プロセッサと、 複数の記憶バイトから成るアドレス可能メモリ空間を有
    するシステム・メモリであって、前記複数の記憶バイト
    の各々が一意のアドレスを有する、前記システム・メモ
    リと、 前記ソフトウエア命令および前記グラフィックス・デー
    タが、前記システム・メモリの前記複数の記憶バイトの
    いくつかに格納され、前記グラフィックス・データが複
    数のグラフィックス・データのページに格納され、前記
    複数のグラフィックス・データのページの各々が、前記
    複数の記憶バイトの内ある数の記憶バイトを含み、 加速グラフィックス・ポート(AGP)プロセッサであ
    って、前記グラフィックス・データから、ビデオ・ディ
    スプレイ上に表示するためのビデオ表示データを発生す
    る前記AGPプロセッサと、 コア・ロジック・チップセットであって、 前記システム・プロセッサを前記システム・メモリに接
    続するための第1のインターフェース・ロジックと、 前記システム・プロセッサおよび前記システム・メモリ
    を前記AGPプロセッサに接続するための第2のインタ
    ーフェース・ロジックと、 前記コア・ロジック・チップセットが、キャッシュ・メ
    モリとを有する前記コア・ロジック・チップセットと、 複数のエントリを有するグラフィックス・アドレス・リ
    マッピング・テーブル(GARTテーブル)であって、
    前記複数のGARTテーブル・エントリの各々が、前記
    複数のグラフィックス・データのページの対応する1つ
    へのアドレス・ポインタと、前記複数のGARTテーブ
    ル・エントリの内選択した複数のエントリが関係がある
    か否かについて判定を行なうためのリンク・ビットとを
    備える、前記GARTテーブルと、を含み、 前記コア・ロジック・チップセットが、前記複数のGA
    RTテーブル・エントリのうち前記選択した複数のエン
    トリを読み出し、前記選択したエントリのうち第1のエ
    ントリを前記キャッシュ・メモリに格納し、そのリンク
    ・ビットがセットされているか否かについて判定を行
    い、前記選択したエントリのうち前記第1のエントリの
    リンク・ビットがセットされている場合、前記選択した
    エントリの次のエントリを前記キャッシュ・メモリに格
    納し、そのリンク・ビットがセットされている場合、そ
    のリンク・ビットの1つがセットされていないと判定さ
    れるまで、前記選択されたエントリのうち後続のエント
    リを前記キャッシュ・メモリに格納し、 前記コア・ロジック・チップセットが、前記キャッシュ
    ・メモリに格納されている前記複数のGARTテーブル
    ・エントリの前記選択した複数のエントリを用いて、前
    記システム・メモリ内に格納されている前記グラフィッ
    クス・データの第1部分の関連するページを示し、前記
    グラフィックス・データの前記第1部分の前記関連する
    ページが、前記コア・ロジック・チップセットによって
    読み出され、かつ隣接するAGPデバイス・アドレス空
    間内に再配列されて、前記AGPプロセッサが前記ビデ
    オ表示データを発生する際に用いられる、ことを特徴と
    するコンピュータ・システム。
  2. 【請求項2】 請求項1記載のコンピュータ・システム
    において、前記コア・ロジックが、更に、前記システム
    ・プロセッサおよび前記システム・メモリを、周辺素子
    相互接続(PCI)バス上の入出力デバイスに接続する
    ための、第3のインターフェース・ロジックを有するこ
    とを特徴とするコンピュータ・システム。
  3. 【請求項3】 請求項2記載のコンピュータ・システム
    において、前記コア・ロジックが、更に、前記AGPプ
    ロセッサを前記PCIバスに接続するための第4のイン
    ターフェース・ロジックを有することを特徴とするコン
    ピュータ・システム。
  4. 【請求項4】 請求項1記載のコンピュータ・システム
    において、前記システム・プロセッサが複数のシステム
    ・プロセッサであることを特徴とするコンピュータ・シ
    ステム。
  5. 【請求項5】 請求項1記載のコンピュータ・システム
    であって、更に、前記AGPプロセッサに接続されたロ
    ーカル・フレーム・バッファ・メモリを備え、該ローカ
    ル・フレーム・バッファが、前記システム・メモリから
    の前記グラリックス・データの第2部分を格納すること
    を特徴とするコンピュータ・システム。
  6. 【請求項6】 請求項5記載のコンピュータ・システム
    において、前記ローカル・フレーム・バッファ・メモリ
    が、前記グラフィックス・データの前記第2部分を、隣
    接するAGPデバイス・アドレス空間に格納し、前記A
    GPプロセッサが、前記キャッシュ・メモリ内に格納さ
    れている前記GARTテーブル・エントリを用いること
    によって、前記隣接するAGPデバイス・アドレス空間
    内の前記グラフィックス・データの前記第1部分にアク
    セスし、更に前記ローカル・フレーム・バッファ・メモ
    リからの前記グラフィックス・データの前記第2部分に
    アクセスすることを特徴とするコンピュータ・システ
    ム。
  7. 【請求項7】 請求項6記載のコンピュータ・システム
    において、前記グラフィックス・プロセッサが、前記隣
    接するAGPデバイス・アドレス空間内の前記グラフィ
    ックス・データの前記第1および第2部分を読み出すこ
    とを特徴とするコンピュータ・システム。
  8. 【請求項8】 請求項1記載のコンピュータ・システム
    において、前記複数のグラフィックス・データのページ
    を、非隣接および不規則な順序で、前記システム・メモ
    リに格納することを特徴とするコンピュータ・システ
    ム。
  9. 【請求項9】 請求項1記載のコンピュータ・システム
    において、前記複数のGARTテーブル・エントリを、
    前記システム・メモリ内に格納することを特徴とするコ
    ンピュータ・システム。
  10. 【請求項10】 請求項1記載のコンピュータ・システ
    ムにおいて、前記複数のGARTテーブル・エントリ
    を、前記システム・メモリ内の複数のGARTテーブル
    ・エントリのページに格納することを特徴とするコンピ
    ュータ・システム。
  11. 【請求項11】 請求項10記載のコンピュータ・シス
    テムにおいて、前記複数のGARTテーブル・エントリ
    のページを、非隣接および不規則な順序で、前記システ
    ム・メモリに格納することを特徴とするコンピュータ・
    システム。
  12. 【請求項12】 請求項11記載のコンピュータ・シス
    テムであって、更に、複数のエントリを有するGART
    ディレクトリを備え、前記複数のGARTディレクトリ
    ・エントリの各々が、前記複数のGARTテーブル・エ
    ントリのページの内対応する1つへのアドレス・ポイン
    タを備え、前記コア・ロジック・チップセットが、前記
    複数のGARTディレクトリ・エントリを用いて、前記
    複数のGARTテーブル・エントリのページを前記シス
    テム・メモリ内に配置することを特徴とするコンピュー
    タ・システム。
  13. 【請求項13】 請求項1記載のコンピュータ・システ
    ムにおいて、前記複数のグラフィックス・データのペー
    ジの各々における前記複数の記憶バイトの数が、409
    6バイトであることを特徴とするコンピュータ・システ
    ム。
  14. 【請求項14】 請求項1記載のコンピュータ・システ
    ムにおいて、前記コア・ロジック・チップセットが、少
    なくとも1つの集積回路であることを特徴とするコンピ
    ュータ・システム。
  15. 【請求項15】 請求項14記載のコンピュータ・シス
    テムにおいて、前記少なくとも1つの集積回路のコア・
    ロジック・チップセットが、少なくとも1つの特定用途
    集積回路であることを特徴とするコンピュータ・システ
    ム。
  16. 【請求項16】 請求項14記載のコンピュータ・シス
    テムにおいて、前記少なくとも1つの集積回路のコア・
    ロジック・チップセットが、少なくとも1つのプログラ
    ム可能ロジック・アレイ集積回路であることを特徴とす
    るコンピュータ・システム。
  17. 【請求項17】 請求項1記載のコンピュータ・システ
    ムであって、更に、ビデオ・ディスプレイを備えること
    を特徴とするコンピュータ・システム。
  18. 【請求項18】 請求項1記載のコンピュータ・システ
    ムであって、更に、ネットワーク・インターフェース・
    カード、ハード・ディスク、フロッピ・ディスク・ドラ
    イブ、モデム、キーボード、およびマウスを備えること
    を特徴とするコンピュータ・システム。
  19. 【請求項19】 請求項1記載のコンピュータ・システ
    ムであって、更に、直列ポート、並列ポート、キーボー
    ドおよびリアル・タイム・クロックを備えることを特徴
    とするコンピュータ・システム。
  20. 【請求項20】 請求項1記載のコンピュータ・システ
    ムであって、更に、リード・オンリ・メモリ基本入出力
    システム(ROM BIOS)、不揮発性ランダム・ア
    クセス・メモリ(NVRAM)、テープ・ドライブおよ
    びCDROMドライブを備えることを特徴とするコンピ
    ュータ・システム。
  21. 【請求項21】 コンピュータ・プロセッサおよびメモ
    リを加速グラフィックス・ポート(AGP)バスおよび
    周辺素子相互接続(PCI)バスに接続するコア・ロジ
    ック・チップセットを有するコンピュータ・システムで
    あって、 ホスト・バスに接続された中央演算装置と、 ランダム・アクセス・メモリ・バスに接続されたランダ
    ム・アクセス・メモリと、 キャッシュ・メモリを有し、前記ホスト・バスと前記ラ
    ンダム・アクセス・メモリ・バスとに接続されたコア・
    ロジック・チップセットと、を含み、 前記コア・ロジック・チップセットが、前記ホスト・バ
    スと前記ランダム・アクセス・メモリ・バスとの間の第
    1のインターフェース・ブリッジ、前記ホスト・バスと
    第1の周辺素子相互接続(PCI)バスとの間の第2の
    インターフェース・ブリッジ、および前記ランダム・ア
    クセス・メモリ・バスと前記第1のPCIバスとの間の
    第3のインターフェース・ブリッジとして構成され、 前記コア・ロジック・チップセットが、前記ホスト・バ
    スと加速グラフィクス・ポート(AGP)バスとの間の
    第4のインターフェース・ブリッジとして構成され、 前記コア・ロジック・チップセットが、前記ランダム・
    アクセス・メモリ・バスと前記AGPバスとの間の第5
    のインターフェース・ブリッジとして構成され、 前記コア・ロジック・チップセットが、前記ランダム・
    アクセス・メモリに格納されている複数のエントリを有
    するグラフィックス・アドレス・リマッピング・テーブ
    ル(GARTテーブル)を用い、前記複数のGARTテ
    ーブル・エントリの各々が、前記ランダム・アクセス・
    メモリに格納された前記複数のグラフィックス・データ
    のページの対応する1つへのアドレス・ポインタと、前
    記複数のGARTテーブル・エントリの内選択した複数
    のエントリが関係付けられているか否かについて判定を
    行なうためのリンク・ビットとを備え、 前記コア・ロジック・チップセットが、前記ランダム・
    アクセス・メモリに格納されている前記複数のGART
    テーブル・エントリの内前記選択した複数のエントリを
    読み出し、前記コア・ロジック・チップセットが、前記
    選択したエントリの内第1のエントリを前記キャッシュ
    ・メモリに格納し、そのリンク・ビットがセットされて
    いるか否かについて判定を行い、前記選択したエントリ
    の内前記第1のエントリのリンク・ビットがセットされ
    ている場合、前記選択したエントリの次のエントリを前
    記キャッシュ・メモリに格納し、更にそのリンク・ビッ
    トがセットされている場合、そのリンク・ビットの1つ
    がセットされていないと判定されるまで、前記選択され
    たエントリの内後続のエントリを前記キャッシュ・メモ
    リに格納する、ことを特徴とするコンピュータ・システ
    ム。
  22. 【請求項22】 請求項21記載のコンピュータ・シス
    テムにおいて、前記中央演算装置が複数の中央演算装置
    であることを特徴とするコンピュータ・システム。
  23. 【請求項23】 請求項21記載のコンピュータ・シス
    テムにおいて、前記複数のグラフィックス・データのペ
    ージを、非隣接および不規則な順序で、前記ランダム・
    アクセス・メモリに格納することを特徴とするコンピュ
    ータ・システム。
  24. 【請求項24】 請求項23記載のコンピュータ・シス
    テムにおいて、前記複数のGARTテーブル・エントリ
    の各1つが、複数の二進ビットから成り、前記複数のグ
    ラフィックス・データのページの各1つが前記複数のG
    ARTテーブル・エントリの前記各1つに関連付けら
    れ、前記複数の二進ビットの第1数の最上位側ビット
    が、前記複数のグラフィックス・データのページの対応
    する各1つのベース・アドレスから成ることを特徴とす
    るコンピュータ・システム。
  25. 【請求項25】 請求項24記載のコンピュータ・シス
    テムにおいて、前記複数の二進ビットの第2数の最下位
    側ビットのあるビットが、前記複数のグラフィックス・
    データのページの対応する各1つに対するリンク・ビッ
    トから成ることを特徴とするコンピュータ・システム。
  26. 【請求項26】 請求項21記載のコンピュータ・シス
    テムにおいて、前記複数のGARTテーブル・エントリ
    を、前記ランダム・アクセス・メモリの少なくとも1つ
    のページに格納することを特徴とするコンピュータ・シ
    ステム。
  27. 【請求項27】 請求項21記載のコンピュータ・シス
    テムにおいて、前記複数のグラフィックス・データのペ
    ージの各々が4096バイトであることを特徴とするコ
    ンピュータ・システム。
  28. 【請求項28】 請求項21記載のコンピュータ・シス
    テムにおいて、前記中央演算装置が、ソフトウエア命令
    を実行し、前記グラフィックス・データを発生すること
    を特徴とするコンピュータ・システム。
  29. 【請求項29】 請求項21記載のコンピュータ・シス
    テムであって、更に、前記グラフィックス・データから
    ビデオ表示データを発生するグラフィックス・プロセッ
    サを備えることを特徴とするコンピュータ・システム。
  30. 【請求項30】 請求項21記載のコンピュータ・シス
    テムにおいて、前記コア・ロジック・チップセットが、
    前記ランダム・アクセス・メモリから、前記キャッシュ
    ・メモリに対する前記複数のGARTテーブル・エント
    リの内前記選択した複数のエントリをプリフェッチする
    ことを特徴とするコンピュータ・システム。
  31. 【請求項31】 請求項29記載のコンピュータ・シス
    テムであって、更に、前記グラフィックス・プロセッサ
    に結合されたローカル・フレーム・バッファ・メモリを
    備え、前記グラフィクス・プロセッサが、前記キャッシ
    ュ・メモリに格納されている前記複数のGARTテーブ
    ル・エントリの内前記選択した複数のエントリに基づい
    て、前記ローカル・フレーム・バッファ・メモリに格納
    されているビデオ・データを、前記ランダム・アクセス
    ・メモリから読み出した前記複数のグラフィックス・デ
    ータのページの対応するページと組み合わせ、ビデオ表
    示データを発生することを特徴とするコンピュータ・シ
    ステム。
  32. 【請求項32】 コンピュータ・システムにおいて、キ
    ャッシュ・メモリに対する複数のグラフィックス・アド
    レス・リマッピング・テーブル(GARTテーブル)エ
    ントリの内、正しい数の選択したエントリを、前記コン
    ピュータ・システムのメモリから動的にフェッチする方
    法であって、 (a)コンピュータ・システムのシステム・メモリに、
    複数のグラフィックス・データ・ページをいずれかの順
    序で格納するステップと、 (b)複数のエントリを有するグラフィックス・アドレ
    ス・リマッピング・テーブル(GARTテーブル)であ
    って、前記複数のGARTテーブル・エントリの各々
    が、前記システム・メモリに格納されている前記複数の
    グラフィックス・データ・ページの関連するページへの
    アドレス・ポインタと、前記複数のGARTテーブル・
    エントリの内所定のエントリを互いに関連付けるために
    用いられるリンク・ビットとから成る前記GARTテー
    ブルを前記システム・メモリに格納するステップと、 (c)前記システム・メモリに格納されている前記複数
    のGARTテーブル・エントリの内選択した1つを読み
    出すステップと、 (d)前記システム・メモリから読み出した前記選択し
    た1つのGARTテーブル・エントリにおいて、前記リ
    ンク・ビットがセットされているか否かについて判定を
    行なうステップと、 (e)前記システム・メモリから読み出した前記選択し
    た1つのGARTテーブル・エントリをキャッシュ・メ
    モリに格納するステップと、 (f)前記リンク・ビットが、前記選択したGARTテ
    ーブル・エントリの内直前に読み出した1つにおいてセ
    ットされている場合、前記複数のGARTテーブル・エ
    ントリの内次の選択した1つを読み出すことによって、
    ステップ(c)ないしステップ(e)を繰り返すステッ
    プと、から成ることを特徴とする方法。
  33. 【請求項33】 請求項32記載の方法であって、更
    に、前記複数のGARTテーブル・エントリの内前記選
    択した複数のエントリによって決定される順序で、前記
    複数のグラフィックス・データ・ページを読み出すステ
    ップを含むことを特徴とする方法。
  34. 【請求項34】 請求項32記載の方法において、前記
    複数のGARTテーブル・エントリの内関連する1つに
    格納されているベース・アドレスと、前記ベース・アド
    レスに加算されるオフセット・アドレスによって、前記
    複数のグラフィックス・データ・ページに格納されてい
    るグラフィックス・データの各バイトに対して、システ
    ム・メモリ・アドレスを決定することを特徴とする方
    法。
  35. 【請求項35】 請求項32記載の方法であって、更
    に、アプリケーション・プログラミング・インターフェ
    ースによって、前記複数のGARTテーブル・エントリ
    の内少なくとも1つの前記リンク・ビットをセットする
    ステップを含むことを特徴とする方法。
  36. 【請求項36】 請求項35記載の方法であって、更
    に、アプリケーション・プログラミング・インターフェ
    ースによって、前記複数のGARTテーブル・エントリ
    の内少なくとも1つの前記リンク・ビットを読み出すス
    テップを含むことを特徴とする方法。
  37. 【請求項37】 請求項32記載の方法であって、更
    に、コンピュータ・システムの初期化の間に、前記シス
    テムにメモリ位置を割り当て、前記複数のGARTテー
    ブル・エントリを格納するステップを含むことを特徴と
    する方法。
  38. 【請求項38】 コンピュータ・システムにおいて、シ
    ステム・メモリに格納されているランダムな非隣接グラ
    フィックス・データ・ページを、隣接するグラフィック
    ス・デバイス・アドレス空間にリマップする目的のため
    に、キャッシュ・メモリに対する複数のグラフィックス
    ・アドレス・リマッピング・テーブル(GARTテーブ
    ル)エントリの内、正しい数の選択したエントリを、前
    記コンピュータ・システムのメモリから動的にフェッチ
    する方法であって、 (a)コンピュータ・システムのシステム・メモリに、
    複数のグラフィックス・データ・ページをいずれかの順
    序で格納するステップと、 (b)複数のエントリを有するグラフィックス・アドレ
    ス・リマッピング・テーブル(GARTテーブル)であ
    って、前記複数のGARTテーブル・エントリの各々
    が、前記システム・メモリに格納されている前記複数の
    グラフィックス・データ・ページの関連するページへの
    アドレス・ポインタと、前記複数のGARTテーブル・
    エントリの内所定のエントリを互いに関連付けるために
    用いられるリンク・ビットとから成る前記GARTテー
    ブルを前記システム・メモリに格納するステップと、 (c)前記システム・メモリに格納されている前記複数
    のGARTテーブル・エントリの内選択した1つを読み
    出すステップと、 (d)前記システム・メモリから読み出した前記選択し
    た1つのGARTテーブル・エントリにおいて、前記リ
    ンク・ビットがセットされているか否かについて判定を
    行なうステップと、 (e)前記システム・メモリから読み出した前記選択し
    た1つのGARTテーブル・エントリをキャッシュ・メ
    モリに格納するステップと、 (f)前記リンク・ビットが、前記選択したGARTテ
    ーブル・エントリの内直前に読み出した1つにおいてセ
    ットされている場合、前記複数のGARTテーブル・エ
    ントリの内次の選択した1つを読み出すことによって、
    ステップ(c)ないしステップ(e)を繰り返すステッ
    プと、 (g)前記キャッシュ・メモリに格納されてい
    る前記複数のGARTテーブル・エントリの内選択した
    複数のエントリの順序で、前記システム・メモリに格納
    されている前記グラフィックス・データ・ページを読み
    出し、前記読み出したグラフィックス・データ・ページ
    を、隣接するグラフィックス・デバイス・アドレス空間
    に変換するステップと、から成ることを特徴とする方
    法。
  39. 【請求項39】 請求項38記載の方法であって、グラ
    フィックス・プロセッサが前記隣接するグラフィックス
    ・デバイス・アドレス空間内の前記グラフィックス・デ
    ータ・ページを読み出すことにより、前記グラフィック
    ス・プロセッサによってビデオ表示データを発生するス
    テップを含むことを特徴とする方法。
  40. 【請求項40】 請求項39記載の方法であって、更
    に、 前記グラフィックス・プロセッサによって、前記隣接す
    るグラフィックス・デバイス・アドレス空間内の新たな
    グラフィックス・データ・ページを要求するステップ
    と、 前記キャッシュ・メモリが、前記新たなグラフィックス
    ・データ・ページに関連する、前記複数のGARTテー
    ブル・エントリの内前記選択した複数のエントリを収容
    しているか否かについて判定を行なうステップと、 前記キャッシュ・メモリが前記選択した複数のエントリ
    を収容していない場合、ステップ(c)ないしステップ
    (f)によって、前記選択した複数のエントリをフェッ
    チするステップと、 前記キャッシュ・メモリが前記選択した複数のエントリ
    を収容している場合、ステップ(g)を実行するステッ
    プと、を含むことを特徴とする方法。
  41. 【請求項41】 コンピュータ・プロセッサおよびメモ
    リ、加速グラフィックス・ポート(AGP)バス、なら
    びに周辺素子相互接続(PCI)バスへの接続に適合し
    たコア・ロジック・チップセットであって、 加速グラフィックス・ポート(AGP)要求キューと、 AGP回答キューと、 AGPデータおよび制御ロジックと、 AGPキャッシュ・メモリと、 AGPアービタと、 ホスト−周辺素子相互接続(PCI)ブリッジと、 PCI−PCIブリッジと、 コンピュータ・システムのランダム・アクセス・メモリ
    への接続に適合したメモリ・インターフェースおよび制
    御ロジックと、 少なくとも1つの中央演算装置が接続されたコンピュー
    タ・システム・ホスト・バスへの接続に適合したホスト
    ・バス・インターフェースと、を含み、 前記AGP要求および回答キューが、前記メモリ・イン
    ターフェースおよび制御ロジックに接続され、 前記AGPデータおよび制御ロジックが、前記メモリお
    よびインターフェース制御ロジックに接続され、 前記AGPデータおよび制御ロジックがホスト・バス・
    インターフェースに接続され、 前記ホスト−PCIバス・ブリッジが前記ホスト・バス
    ・インターフェースに接続され、かつコンピュータ・シ
    ステムのPCIバスへの接続に適合し、 前記PCI−PCIブリッジが前記AGPデータおよび
    制御ロジックに接続され、該PCI−CPIブリッジ
    が、前記ホスト−PCIバス・ブリッジと前記AGPデ
    ータおよび制御ロジックとの間で、PCI情報トランザ
    クションを転送し、 前記AGPデータおよび制御ロジックと、前記AGPア
    ービタが、AGPデバイスを有するAGPバスへの接続
    に適合したものであり、 前記AGPデータおよび制御ロジックが、複数のエント
    リを有するグラフィックス・アドレス・リマッピング・
    テーブル(GARTテーブル)を用いるように適合して
    おり、前記複数のエントリの各々が、前記コンピュータ
    ・システムのランダム・アクセス・メモリ内の複数のグ
    ラフィックス・データの1つに対するアドレス・ポイン
    タと、前記複数のGARTテーブル・エントリの内選択
    した複数のエントリが互いに関連するか否かについて判
    定を行なうためのリンク・ビットとを備え、 前記AGPデータおよび制御ロジックが、前記コンピュ
    ータ・メモリのランダム・アクセス・メモリに格納され
    ている前記複数のGARTテーブル・エントリの内前記
    選択した複数のエントリを読み出すように適合してお
    り、前記AGPデータおよび制御ロジックが、前記AG
    Pキャッシュ・メモリに前記選択した複数のエントリの
    内第1のエントリを格納し、そのリンク・ビットがセッ
    トされているか否かについて判定を行い、前記選択した
    エントリの内前記第1のエントリのリンク・ビットがセ
    ットされている場合、前記選択したエントリの次のエン
    トリを前記AGPキャッシュ・メモリに格納し、そのリ
    ンク・ビットがセットされている場合、そのリンク・ビ
    ットの1つがセットされていないと判定されるまで、前
    記選択されたエントリの内後続のエントリを前記AGP
    キャッシュ・メモリに格納する、ことを特徴とするコア
    ・ロジック・チップセット。
JP10255829A 1997-09-09 1998-09-09 コンピュータ・システム Pending JPH11167523A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US926426 1992-08-10
US08/926,426 US5933158A (en) 1997-09-09 1997-09-09 Use of a link bit to fetch entries of a graphic address remapping table

Publications (1)

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

Family

ID=25453186

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US5933158A (ja)
EP (1) EP0902356A3 (ja)
JP (1) JPH11167523A (ja)

Cited By (4)

* 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)アドレス変換
JP2008033928A (ja) * 2006-07-31 2008-02-14 Nvidia Corp Gpuにおけるページマッピングのための専用機構
JP2009070249A (ja) * 2007-09-14 2009-04-02 Ricoh Co Ltd データ転送装置
JP2014506700A (ja) * 2011-02-10 2014-03-17 クゥアルコム・インコーポレイテッド グラフィックス処理のためのデータストレージアドレス割当て

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6130680A (en) * 1997-12-01 2000-10-10 Intel Corporation Method and apparatus for multi-level demand caching of textures in a graphics display device
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6211891B1 (en) * 1998-08-25 2001-04-03 Advanced Micro Devices, Inc. Method for enabling and configuring and AGP chipset cache using a registry
US6269459B1 (en) 1998-08-25 2001-07-31 Advanced Micro Devices, Inc. Error reporting mechanism for an AGP chipset driver using a registry
US6525739B1 (en) * 1999-12-02 2003-02-25 Intel Corporation Method and apparatus to reuse physical memory overlapping a graphics aperture range
US6557087B1 (en) 2000-02-22 2003-04-29 International Business Machines Corporation Management of PCI read access to a central resource
US6908601B2 (en) * 2002-02-08 2005-06-21 The Boc Group, Inc. Method for the production of nitrogen trifluoride
US20040127207A1 (en) * 2002-09-25 2004-07-01 Interdigital Technology Corporation Programmable radio interface
US7324106B1 (en) * 2004-07-27 2008-01-29 Nvidia Corporation Translation of register-combiner state into shader microcode
US9058292B2 (en) 2004-12-29 2015-06-16 Intel Corporation System and method for one step address translation of graphics addresses in virtualization
US20080276067A1 (en) * 2007-05-01 2008-11-06 Via Technologies, Inc. Method and Apparatus for Page Table Pre-Fetching in Zero Frame Display Channel
US8495349B2 (en) 2008-10-09 2013-07-23 International Business Machines Corporation Generating a primary BIOS code memory address and a recovery BIOS code memory address, where the recovery BIOS service code is loaded when the primary BIOS code fails to execute
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 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4126894A (en) * 1977-02-17 1978-11-21 Xerox Corporation Memory overlay linking system
JPS6047623B2 (ja) * 1982-02-12 1985-10-22 株式会社日立製作所 アドレス変換方式
US4583165A (en) * 1982-06-30 1986-04-15 International Business Machines Corporation Apparatus and method for controlling storage access in a multilevel storage system
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
JPH0997214A (ja) * 1995-09-29 1997-04-08 Internatl Business Mach Corp <Ibm> 補助プロセッサのためのアドレス変換を含む情報処理システム
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 (5)

* 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)アドレス変換
JP2008033928A (ja) * 2006-07-31 2008-02-14 Nvidia Corp Gpuにおけるページマッピングのための専用機構
JP2009070249A (ja) * 2007-09-14 2009-04-02 Ricoh Co Ltd データ転送装置
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

Also Published As

Publication number Publication date
EP0902356A2 (en) 1999-03-17
US5933158A (en) 1999-08-03
EP0902356A3 (en) 2000-01-12

Similar Documents

Publication Publication Date Title
US5914730A (en) System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
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
US5999743A (en) System and method for dynamically allocating accelerated graphics port memory space
TW468111B (en) An apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller
US8866831B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
US6249853B1 (en) GART and PTES defined by configuration registers
US4868738A (en) Operating system independent virtual memory computer system
US8370533B2 (en) Executing flash storage access requests
US6760786B2 (en) Multiprocessing system configured to perform efficient block copy operations
JP3264319B2 (ja) バスブリッジ
JPH11167523A (ja) コンピュータ・システム
US5913923A (en) Multiple bus master computer system employing a shared address translation unit
US5515514A (en) Peripheral processor card for upgrading a computer
KR100515229B1 (ko) 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
US6223266B1 (en) System and method for interfacing an input/output system memory to a host computer system memory
US6266723B1 (en) Method and system for optimizing of peripheral component interconnect PCI bus transfers
US6282625B1 (en) GART and PTES defined by configuration registers