JPH11328106A - グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム - Google Patents

グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム

Info

Publication number
JPH11328106A
JPH11328106A JP10365121A JP36512198A JPH11328106A JP H11328106 A JPH11328106 A JP H11328106A JP 10365121 A JP10365121 A JP 10365121A JP 36512198 A JP36512198 A JP 36512198A JP H11328106 A JPH11328106 A JP H11328106A
Authority
JP
Japan
Prior art keywords
bus
interface
computer system
request
pci
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.)
Withdrawn
Application number
JP10365121A
Other languages
English (en)
Inventor
James R Reif
ジェームズ・アール・レイフ
Khaldoun Alzien
カルダウン・アルジェン
Maria L Melo
マリア・エル・メロ
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 JPH11328106A publication Critical patent/JPH11328106A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration

Abstract

(57)【要約】 【課題】適応推測読み出しにより、メモリ・ヒット率及
び効率を向上させる。 【解決手段】CPUバス103とPCIバスとを接続す
るブリッジ・ロジック・ユニットは、CPUバス・イン
ターフェース制御ユニット302を備えたCPUインタ
ーフェースを204を備えている。制御ユニット302
がCPUから最初の読み出し要求を受け取ると、フェッ
チ制御ユニット802の制御の下に、主メモリから一つ
のデータ・ラインをフェッチし、連続するデータ・ライ
ンに対する読み出し要求を受け取ると、要求されたデー
タ・ラインだけでなく、連続するデータ・ラインも推測
してフェッチする。CPUが不連続データ・ラインに対
するメモリ読み出しを要求すると、そのデータ・ライン
のみをフェッチする。推測フェッチにより、メモリ読み
出し効率が向上する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムに関し、更に特定すれば、高性能コンピュータ・
システムにおいて使用するための統合型バス・ブリッジ
設計に関するものである。また、本発明は、コンピュー
タ・システムにおいて採用されるプリフェッチ機構にも
関するものである。
【0002】
【従来の技術】コンピュータ・アーキテクチャは、一般
的に、1系統以上のバスによって相互接続された複数の
デバイスを含む。例えば、従来のコンピュータ・システ
ムは、通常、ブリッジ・ロジックを通じて外部の主メモ
リに結合されたCPUを含む。このため、ブリッジ・ロ
ジックには主メモリ・コントローラが組み込まれてお
り、主メモリにアクセスするために種々の制御信号を発
生する。周辺要素相互接続(PCI)バスのような広帯
域ローカル拡張バスに対するインターフェースが、ブリ
ッジ・ロジックの一部として含まれる場合もある。ロー
カル拡張バスに結合可能なデバイスの例には、ネットワ
ーク・インターフェース・カード、ビデオ・アクセレレ
ータ、オーディオ・カード、SCSIアダプタ、電話カ
ード等が含まれる。旧式の拡張バスでさえも、追加のバ
ス・インターフェースによって対応可能となり、以前の
バージョンの拡張バス・アダプタとの互換性を得ること
ができる。かかる拡張バスの例には、ATバスとも呼ば
れている業界標準アーキテクチャ(ISA)バス、拡張
業界標準アーキテクチャ(EISA)バス、及びマイク
ロチャネル・アーキテクチャ(MCA)バスが含まれ
る。この二次拡張バスには、ファックス/モデム・カー
ド、サウンド・カード等を含む種々のデバイスを結合す
ることができる。
【0003】ブリッジ・ロジックは、CPUバス、PC
Iバスのような周辺バス、及びメモリ・バスに、単にリ
ンク即ちインターフェースすることができるだけではな
い。グラフィックスを大量に用いる用途では、グラフィ
ックスに関連する転送のために最適化した別個の周辺バ
スも、ブリッジ・ロジックによる対応が可能となる。こ
のようなバスの例として、AGP(Advanced
Graphics Port:アドバンスド・グラフィ
ックス・ポート)バスが普及している。AGPは、一般
的に、三次元グラフィック表示の用途に最適化された、
高性能な構成要素レベルの相互接続機構と考えられてお
り、PCIに対する1組の性能拡張即ち性能向上を基本
としている。AGPは、三次元レンダリング(rend
ering)に対するメモリ容量の要求増大を一要因と
して開発されたものである。AGPは、グラフィックス
・アクセレレータとシステム・メモリとの間のデータ転
送に、1桁高い帯域の改善をもたらした。これによっ
て、三次元レンダリング・データ構造のいくつかを効果
的に主メモリにシフトできるようになり、グラフィック
ス・アクセレレータ又はフレーム・バッファに専用の大
容量のメモリを組み込むコストが軽減されることになっ
た。
【0004】AGPは、動作基準(operation
al baseline)としてPCI仕様を用い、そ
の上3つの重要な処理能力の拡張即ち向上をこの仕様に
与えている。これらの拡張には、高度にパイプライン化
した(deeply pipelined )読み出し
(リード)及び書き込み(ライト)動作、AGPバス上
のアドレス及びデータのデマルチプレクス処理、ならび
にデータ転送高速化のためのタイミング仕様が含まれ
る。元来、コンピュータ・システムは、業務用アプリケ
ーション、とりわけワード・プロセッシング及びスプレ
ッドシートを含むアプリケーションのために開発された
ものであるので、このようなシステム内のブリッジ・ロ
ジックは一般的に、CPUの主メモリへのアクセスに関
して比較的高い性能をCPUに与えるように最適化され
てきた。しかしながら、ブリッジ・ロジックは、一般的
に、周辺バス上に位置する他のデバイスによる主メモリ
へのアクセスに関しては、発揮する処理能力は比較的低
く、同様に、CPUと周辺バスとの間、及びブリッジ・
ロジックを通じて相互接続されている周辺デバイス間に
おけるデータ転送に関しても、その処理能力は比較的低
いものであった。
【0005】しかしながら、最近になって、コンピュー
タ・システムは、ビデオ及びオーディオ、電話(tel
ephony)、ならびに音声認識のようなマルチメデ
ィアの用途を含む、種々のリアル・タイム・アプリケー
ションを処理するために増々利用されるようになってき
ている。これらのシステムでは、CPUが主メモリに対
して適切なアクセスを有することだけでなく、AGPバ
スやPCIバスのような種々の周辺バス上に位置するデ
バイスが主メモリに対して公平なアクセスを有すること
も必要である。更に、CPU、AGPバス及びPCIバ
ス間のトランザクションが効率的に処理されることが、
多くの場合重要となる。したがって、最新のコンピュー
タ・システムのためのバス・ブリッジ・ロジックは、主
メモリ及びブリッジ・ロジックを通じて結合されている
その他のシステム構成要素に対してアクセスしようとす
るデバイスの様々な要求間で、効率的に優先順位を決定
し、アービトレーション(仲裁)する機構を含まなけれ
ばならない。
【0006】
【発明が解決しようとする課題】しかしながら、CPU
及びPCIバス・マスタの両方がAGPバスへのアクセ
スを必要とするシステムにおいては、ある種の問題が生
じる。AGPバスへのCPUアクセスに関するレイテン
シは、低いことが好ましいが、PCIデバイスに対し
て、AGPバスへの比較的公正なアクセスを提供する必
要もある。さらに、CPU及びPCIバス・マスタの双
方がAGPバスに対して連続してアクセス可能であるよ
うにすることも重要である。したがって、バス機構は、
AGPバスへのCPUアクセスに対して比較的低いレイ
テンシを提供し、さらに、CPU及びPCIバス・マス
タの両方がAGPバスへ連続してアクセスすることがで
きるようにすることが好ましいく、本発明の目的は、こ
のようなバス機構を備えたコンピュータ・システムを提
供することである。
【0007】
【課題を解決するための手段】上記した本発明の目的を
達成するために、本発明のコンピュータ・システムにお
いては、グラフィックス・バスへ多数のバス・マスタが
アクセス可能となるようにするための仲裁機構(アービ
トレーション機構)を備えていることを特徴としてい
る。一実施例においては、マイクロプロセッサがCPU
バスを介してブリッジ・ロジック・ユニットに接続され
ている。該ブリッジ・ロジック・ユニットは、PCIバ
ス等の第1の周辺バス、AGPバス等のグラフィックス
・バス、及び主メモリに対するインターフェースを提供
する。PCIバスにはPCI周辺デバイスが接続され、
AGPバスにはグラフィックス・コントローラを含んで
いるディスプレイ装置が接続可能である。ブリッジ・ロ
ジック・ユニットは、CPUバスに接続されたCPUイ
ンターフェースと、PCIバスに接続されたPCIイン
ターフェースと、AGPバスに接続されたAGPインタ
ーフェースとを備えている。これらのインターフェース
は、非ローカルのメモリ・キュー・マネージャを介し
て、相互に通信する。非ローカルのメモリ・キュー・マ
ネージャは、CPU及びPCIデバイスによって開始さ
れるAGPバス・アービタの所有権を要求する複数の要
求の間の仲裁を行うAGPバス・アービタを備えている
ことが好ましい。
【0008】該AGPバス・アービタは、ラウンド・ロ
ビン仲裁アルゴリズムを実行して、CPUバス及びPC
Iバスから受け取った競合する要求を仲裁する。いずれ
のバスからもペンディング状態の要求が到来しない場合
は、AGPバス・アービタは、CPUインターフェース
にアクノレッジ信号をアサートすることにより、CPU
バス上に止まる。このようにして、AGPバス・アービ
タは、マイクロプロセッサによるAGPバスへのアクセ
スを低レイテンシを実現する。さらに、多数のバースト
的な転送要求を最適化するために、要求を行う各インタ
ーフェースによって他の信号(LastAddrRe
q)が発生される。この信号(LastAddrRe
q)は、特定の要求が、関連するバス上でのバースト・
トランザクションに対応する最後の要求であることを示
している。要求しているインターフェースが仲裁により
要求権を獲得すると、AGPバス・アービタは、該勝者
のインターフェースに止まり、他のインターフェースが
要求する権利を獲得しないようにする。この状態は、バ
スのその時点でのオーナによりアサートされた信号(L
astAddrReq)が検出されるまで、継続され
る。このようにすることにより、バースト・サイクルは
効果的に連続して実行される。本発明のその他の目的及
び利点は、以下の詳細な説明を読み、添付図面を参照す
ることにより明白となろう。
【0009】
【発明の実施の形態】まず初めに、本発明には種々の変
更や代替形態が可能であるが、一例としてその具体的な
実施形態を図面を参照して詳細に説明する。しかしなが
ら、図面及びその詳細な説明は、開示する特定形態に本
発明を限定することを意図するものでなく、逆に、特許
請求の範囲に規定する本発明の技術思想及び範囲に該当
するあらゆる変更、等価及び代替を包含することを意図
するものであることは理解されよう。
【0010】図1は、コンピュータ・システム100の
ブロック図である。コンピュータ・システム100は、
CPU(中央演算装置)101を含み、統合型ブリッジ
・ロジック・ユニット102を通じて、様々なシステム
構成要素に結合されている。図示するシステムでは、主
メモリ104がメモリ・バス106を通じてブリッジ・
ロジック・ユニット102に結合され、グラフィックス
・コントローラ108がAGPバス110を通じてブリ
ッジ・ロジック・ユニット102に結合されている。最
後に、複数のPCIデバイス112が、PCIバス11
4を通じて、ブリッジ・ロジック・ユニット102に結
合されている。更に、二次ブリッジ・ロジック・ユニッ
ト116も備え、EISA/ISAバス120を通じて
1つ以上のEISA又はISAデバイス118に対する
インターフェースにも対処するようにしてもよい。
【0011】ISA/EISAバスに対するインターフ
ェースを備えることに加えて、必要に応じて、二次ブリ
ッジ・ロジック・ユニット116が更に追加の機能(f
unctionality)を組み込んでもよい。例え
ば、一実施形態では、二次ブリッジ・ロジック・ユニッ
ト116は、マスタPCIアービタ(図示せず)を含
み、PCIバス114の所有権のアービトレーションを
行う。加えて、二次ブリッジ・ロジック・ユニット11
6は、ディスク・ドライブ・コントローラ、割り込みコ
ントローラ、及び電力管理支援機能を組み込むことがで
きる。所望であれば、二次ブリッジ・ロジック・ユニッ
ト116の外部に又はこれと一体化して、入出力コント
ローラ(図示せず)もコンピュータ・システム100内
に含ませ、キーボード及びマウス130、ならびに種々
のシリアル及びパラレル・ポートのための動作的支援を
与えることも可能である。
【0012】CPU101の一例は、例えば、ペンティ
アム・プロ(Pentium Pro:登録商標)マイ
クロプロセッサである。しかしながら、コンピュータ・
システム100の他の実施形態では、別の形式のマイク
ロプロセッサも採用可能であることは理解されよう。他
の実施形態では、外部キャッシュ・ユニット(図示せ
ず)をCPUバス103に結合してもよい。主メモリ1
04は、アプリケーション・プログラムを格納してお
り、CPU101が主にアクセスするためのメモリであ
る。適切な主メモリ104は、DRAM(ダイナミック
・ランダム・アクセス・メモリ)であり、好ましくは、
複数のSDRAM(同期DRAM)のバンクから成る。
PCIデバイス112は、例えば、ネットワーク・イン
ターフェース・カード、ビデオ・アクセレレータ、オー
ディオ・カード、ハード又はフロッピ・ディスク・ドラ
イブ、SCSI(小型コンピュータ・システム・インタ
ーフェース)アダプタ、及び電話カードのような種々の
周辺デバイスを表す。同様に、ISAデバイス118
は、モデムのような種々の形式の周辺デバイスを表すも
のである。
【0013】グラフィックス・コントローラ108は、
ディスプレイ135上におけるテキスト及び画像のレン
ダリングを制御するためのものである。グラフィックス
・コントローラ108は、当技術分野では一般的に公知
の三次元データ構造のレンダリングを行うグラフィック
ス・アクセレレータを実現化し、効率的な主メモリ10
4に対する双方向のシフトを効果的に行うことを可能に
する。したがって、グラフィックス・コントローラ10
8は、ブリッジ・ロジック・ユニット102内のターゲ
ット・ インターフェースに対するアクセスを要求しか
つ受け取ることにより、主メモリ104に対するアクセ
スを得るという点で、AGPバス110のマスタである
と言うことができる。専用のグラフィックス・バスが、
主メモリ104からのデータの迅速な検索に対処する。
ある種の動作では、グラフィックス・コントローラ10
8は、AGPバス110上でPCIプロトコル・トラン
ザクションを発生するように構成することも可能であ
る。このように、ブリッジ・ロジック・ユニット102
のAGPインターフェースは、PCIプロトコル・ター
ゲット及びイニシエータ・トランザクションだけでな
く、AGPプロトコル・トランザクション双方に対応す
る機能(ファンクショナリティ)を含むことができる。
ディスプレイ135は、画像又はテキストを提示可能な
任意の電子式ディスプレイである。適切なディスプレイ
135には、陰極線管(「CRT」)、液晶ディスプレ
イ(「LCD」)等が含まれる。
【0014】図2には、ブリッジ・ロジック・ユニット
102の一実施形態のブロック図が示されている。図示
したブリッジ・ロジック・ユニット102の実施形態
は、メモリ・キュー・マネージャ206及びPCI/A
GPキュー・マネージャ208(NLM(非ローカル・
メモリ)マネージャとも呼ぶ)に結合されたCPUイン
ターフェース204を含んでいる。メモリ・コントロー
ラ210、PCIインターフェース212、及びAGP
インターフェース214も、メモリ・キュー・マネージ
ャ206に結合されている状態が示されている。図示の
ブリッジ・ロジック・ユニット102の構成要素は、単
一のモノリシック集積回路チップ上に構築することがで
きる。
【0015】以下で更に詳しく説明するが、主メモリ1
04に対する全ての要求は、読み出しであっても書き込
みであっても、メモリ・キュー・マネージャ206によ
って処理される。メモリ・キュー・マネージャ206
は、図示したインターフェースの各々から要求を受け取
るように構成され、それらの間でアービトレーションを
行い、各要求をリード要求キュー220又はライト要求
キュー222のいずれかに適切にロードする。次に、リ
ード要求キュー220及びライト要求キュー222から
の要求は、メモリ・コントローラ210に供給され、続
いて主メモリ104へのデータ又は主メモリ104から
のデータの転送を調整する。図示のように、メモリ読み
出し要求の結果得られたリード・データは、メモリ・コ
ントローラ210から直接CPUインターフェース20
4及びAGPインターフェース214に返送することが
できる。CPU101からPCIバス114又はAGP
バス110のいずれかに結合されているデバイスへの非
ローカル・メモリ要求、及びAGPバス110とPCI
バス114との間の要求は、PCI/AGPキュー・マ
ネージャ208によって処理される。非ローカル・メモ
リ要求は、割り込み承認、I/Oサイクル、コンフィギ
ュレーション・サイクル、特殊サイクル、及び主メモリ
・アドレス範囲外のアドレス範囲に対するメモリ・サイ
クルを含んでいる。
【0016】PCI/AGPキュー・マネージャは、A
GPNLMアービタであるアービトレーション機構(仲
裁機構)を備えおり、該アービトレーション機構は、A
GPバス110に向けられたCPU101からの書き込
み要求及び読み出し要求とPCIバス114からの書き
込み要求との間の仲裁を行う。アービトレーション機構
は、CPUインターフェース204及びPCIインター
フェース212のいずれからも、ペンディング状態の要
求が存在しない場合は常に、CPUインターフェース2
04上に止まるように構成されている。このアービトレ
ーション機構は、ラウンド・ロビン仲裁アルゴリズムを
用いて、AGPバス110へのアクセスを両方のインタ
ーフェースが要求している場合の競合を解決する。アー
ビトレーション・サイクルは、CPUインターフェース
204又はPCIインターフェース212が要求信号を
アサートし、アービトレーション機構がアクノレッジ信
号を返送したときにはいつでも、実行される。アービト
レーション・サイクルはまた、アービトレーション機構
がCPUインターフェース204上に停留し、かつPC
Iインターフェース212によって要求信号がアサート
された場合にも、実行される。
【0017】多重のクワドワード転送要求を最適化する
ために、LastAddrReqとして示されている信
号が、CPUインターフェース204又はPCIインタ
ーフェース212のいずれかによって発生され、これに
より、特定信号が、関連するバス上のバースト・サイク
ルに対応して転送すべき最後のクワドワード・データで
あることを示す。要求元のインターフェースがアクセス
権を獲得すると、アービトレーション機構は、該勝者の
インターフェース上に止まり、該勝者のインターフェー
スがLastAddReq信号をアサートするまで、他
のインターフェースがアクセス権を獲得しないようにす
る。このようにして、AGPバス110への連続的なバ
ースト転送が保持される。さらに、ペンディングの要求
がない場合に、アービトレーション機構がCPUインタ
ーフェース204上に止まるので、CPUバス103と
AGPバス110との間に比較的低レイテンシの転送が
実現される。この特徴については、以下に小差に説明す
る。
【0018】次に、図2に示す種々のブロックの適切な
実現に関する更に詳しい内容について論ずる。図3を参
照すると、CPUインターフェース204の一実施例の
ブロック図が示されている。CPUインターフェース2
04は、CPU101が実行する種々のトランザクショ
ンに関して、ターゲットとして動作する。図示の実施形
態では、CPUインターフェース204は、整列キュー
(in−order queue)304及びリード・
バック・キュー(read back queue)3
06に結合されたCPUバス・インターフェース制御ユ
ニット302を含んでいる。更に、図示の例では、CP
U−メモリ一時バッファ308及びCPU−NLM一時
バッファ310も、CPUバス・インターフェース制御
ユニット302に結合されている。
【0019】CPUバス・インターフェース制御ユニッ
ト302は、CPUバス103上で実行されるサイクル
を検出し追跡するために備えられている。CPU101
がペンティアム・プロ・マイクロプロセッサである一実
施形態では、CPUバス・インターフェース制御ユニッ
ト302は、要求フェーズのデコード処理、スヌープの
追跡、応答の追跡、及びデータの追跡に別個の状態マシ
ンを含む。ペンティアム・プロ・マイクロプロセッサ
は、多数の未処理の要求をパイプライン状に処理するこ
とを可能にするので、CPUバス・インターフェース制
御ユニット302は、多数のサイクルを同時に追跡する
ように構成することができる。一実施形態では、4つま
でのCPUバス・サイクルを同時にアクティブ状態にす
ることができる。
【0020】サイクルが実行されるに連れて、CPU1
01からの要求が順に整列(イン・オーダー)キュー3
04にロードされる。これらの要求は、主メモリ104
に対するアクセスのための読み出し又は書き込み要求、
及びI/O要求を含む、非ローカル・メモリに対する読
み出し又は書き込み要求を含む場合がある。尚、実施態
様及びシステム要件において採用される特定のマイクロ
プロセッサによっては、フラッシュ・サイクル、割り込
み承認サイクル等を含む種々の特殊サイクルのような、
様々なその他の種別の要求にも対処可能である。一実施
形態では、4つまでの要求を整列キュー304内に保留
しておくことができる(CPUバス103上で保留にし
ておくことができる4つまでの未処理のトランザクショ
ンに対応する)。整列キュー304からの要求の除去即
ち引き抜きは、特定のトランザクションがCPUバス1
03上で完了したときに行われる。
【0021】CPUバス・インターフェース制御ユニッ
ト302は、更に、整列キュー304から要求を取り出
し(de−queue)、更にCPUサイクルをデコー
ドするように構成されている。CPUバス・インターフ
ェース・ユニット302は、CPU要求が、主メモリ1
04、GART(グラフィックス・アダプタ・リマップ
・テーブル)領域、AGPバス110又はPCIバス1
14のどれに対するアクセスのためのものであるかにつ
いて、判定を行う。更に、CPUバス・インターフェー
ス制御ユニット302は、トランザクションを受け入れ
ることができるか、転記(post)することができる
か、又は再試行(retry)しなければならないかに
ついても判定することができる。CPUインターフェー
ス204内に、いくつかのバッファを組み込むことがで
きる。CPU−メモリ一時バッファ308が、メモリ・
キュー・マネージャ206にインターフェースする。一
実施形態では、これは2キャッシュ・ラインの深さであ
る。CPU−非ローカル・メモリ(NLM)一時バッフ
ァ310が、PCI/AGPキュー・マネージャ208
にインターフェースする。一実施形態では、CPU−N
LM一時バッファ310も、2キャッシュ・ラインの深
さである。これらのバッファは、CPUインターフェー
ス204が読み出し、書き込み及びその他の種々雑多の
要求のために、ブリッジ・ロジック・ユニット102の
他のモジュールに通信するための簡単な機構を提供す
る。
【0022】CPU−メモリ一時バッファ308は、メ
モリ要求がメモリ・キュー・マネージャ206による処
理が可能となるまで、これらを格納しておくことができ
るエリアを与える。CPU−メモリ一時バッファ308
は、2ラインの深さとすることができるので、メモリ・
キュー・マネージャ206が1つの位置から読み取りな
がら、整列キュー304を介して他の位置に他の要求を
ロードすることができる。CPU−メモリ一時バッファ
308が収容する要求情報は、要求アドレス、要求種別
情報、及びライト・データ(書き込み要求の場合のみ)
を含む。一実施形態では、メモリ・キュー・マネージャ
206は、CPU−メモリ一時バッファ308内に有る
データ部分から、一度に64ビットのデータを抽出す
る。
【0023】CPU101からAGPバス110又はP
CIバス114いずれかへの種々のトランザクション
(以下で更に論じる)は、CPU−NLM一時バッファ
310を通じて、PCI/AGPキュー・マネージャ2
08に伝達される。一実施形態では、PCI/AGPキ
ュー・マネージャ208に対する要求はすべて、クアド
ワード(即ち64ビット)に基づくものである。CPU
101からのキャッシュ・ライン書き込みは、CPU−
NLM一時バッファのデータ部分内の4つの位置を占め
るが、アドレスは1つだけである。PCI/AGPキュ
ー・マネージャ208に対する個々の要求は、各クアド
ワード毎に発生し、各要求の後、格納するアドレスを1
だけ増分する。
【0024】一実施形態では、実際の要求が単一のクア
ドワードの読み出し要求であっても、CPU−メモリ一
時バッファ308は、常に主メモリ104から最大のキ
ャッシュ・ラインのデータを要求することができる。一
方、CPU−NLM一時バッファ310は、一度に1ク
アドワードのデータのみを要求する。リード・バック・
バッファ306を通って、主メモリ104からのデータ
読み出しのためのフィードバック経路が備えられてい
る。更に、バイパス経路307を備えることにより、デ
ータがリード・バック・バッファ306を迂回し、直接
CPUバス103上に通信させることも可能である。更
に、PCI/AGPキュー・マネージャ208からのリ
ード・データは、経路312上に提供される。CPUバ
ス・インターフェース制御ユニット302は、主メモリ
104からの連続ラインを推察的にプリフェッチするよ
う構成されている。この推察的プリフェッチされた情報
は、リードバック・バッファ306に一時的に格納され
る。
【0025】CPUインターフェース204は、ある種
の書き込みサイクルを常に転記(post)するよう
に、更にその他のサイクルは決して転記しないように構
成することができる。同様に、ある形式の読み出しサイ
クルでは、その結果としてスヌープが停止し、他の読み
出しサイクルでは停止しないということも可能である。
例えば、一実施形態では、I/Oサイクルについては決
して転記せず、主メモリ104及び非ローカル・メモリ
へのメモリ・サイクルを常に転記させるようにすること
ができる。I/O読み出し及び非ローカル・メモリ読み
出しでは、データが準備できるまで、スヌープを停止さ
せるようにするとよい。何故なら、ある状況の下では、
サイクルを再試行する必要がある場合もあるからであ
る。これについては以下で論じる。一方、主メモリへの
読み出し要求では、スヌープ・ストールが発生しないよ
うにし、むしろ要求されたデータがリード・バック・バ
ッファ306において入手可能となるまで、CPUバス
・インターフェース制御ユニット302が単にDRDY
信号のアサートを取り下げるようにしてもよい。尚、C
PU−メモリ一時バッファ308及びCPU−NLM一
時バッファ310は、適切なキュー・マネージャが要求
に応ずることができるようになるまで、CPU101か
らのアドレス及びデータを蓄積しておくことを可能とす
るためにライト・ポスティング・バッファ(write
posting buffer)として機能し、更に
多数の読み出しサイクルを未処理のままにしておくこと
ができるようにリード要求バッファとして機能するもの
である。
【0026】スヌープ制御ユニット316が、CPUイ
ンターフェース204内に備えられている。スヌープ制
御ユニット316は、CPUバス103上にスヌープ・
トランザクションを発生し、主メモリ104へのPCI
サイクルの間メモリのコヒーレンシ(coherenc
y)を確保するように構成されている。CPU101
(又は外部キャッシュ・ユニット)からの変更データの
書き戻し(ライトバック)が発生するある種の状況で
は、スヌープ制御ユニット316は、ライトバック・デ
ータ・ラインをPCIバス114からメモリへのライト
・データと併合することができる。ライトバック・デー
タは、更に、PCIメモリ読み出し動作に応答して取り
込まれ(snarf)、PCIインターフェース216
を通じてライトバック・データを直接PCIバス114
に供給することを可能にする。
【0027】図4は、PCIインターフェース216の
適切な一実施形態の構成を示している。PCIインター
フェース216は、PCIバス114とPCI/AGP
キュー・マネージャ208の間に結合されたPCIイン
ターフェース・マスタ制御ユニット402を含む。PC
Iインターフェース・マスタ制御ユニット402は、C
PUから開始されたトランザクション又はPCIバス1
14を目標とするAGPライト・トランザクションの代
わりに、PCIバス114上でトランザクションを開始
するように構成されている。先に述べたように、CPU
及びAGPが開始しPCIバス114を目標とするトラ
ンザクションは、PCI/AGPキュー・マネージャ2
08を通じて、PCIインターフェース216に伝達さ
れる。CPIバス114に対するデータの読み出し要求
又は書き込み要求がPCIインターフェース・マスタ制
御ユニット402によって受け取られた場合、PCIイ
ンターフェース・マスタ制御ユニット402は、PCI
バス114に対するアービトレーションを行い、PCI
バス114上でトランザクションを開始する。アドレ
ス、バイト・イネーブル、トランザクション種別記述、
及びデータ(ライト・トランザクションの場合)が、P
CI/AGPキュー・マネージャ208からPCIイン
ターフェース・マスタ制御ユニット402に渡され、P
CIバス114上での適正なサイクルの実行に対処す
る。
【0028】PCI/AGPキュー・マネージャ208
からPCIインターフェース216への要求の転送は、
クアドワード転送を基本とすることができる。キャッシ
ュ・ライン転送は、4つの別個のクアドワードとして転
送する。更に、バイト・イネーブルがPCIインターフ
ェース・マスタ制御ユニット402に渡され、最終的に
PCIバス114上のデータ転送のサイズを決定するた
めに利用される。PCIインターフェース・マスタ制御
ユニット402は、アサートされたバイト・イネーブル
に応じて、下位又は上位いずれか4バイトのイネーブル
をPCIバス114に多重化することができる。全ての
バイト・イネーブルがアサートされている場合、PCI
インターフェース・マスタ制御ユニット402は、クア
ドワード転送を、PCIバス114上の2つのダブルワ
ードのバーストに変換することができる(何故なら、P
CIバスは32ビットのデータ幅を有するからであ
る)。上位4バイト又は下位4バイトのイネーブルがデ
アサートされた場合、PCIインターフェース・マスタ
制御ユニット402は、PCI/AGPキュー・マネー
ジャ208からの要求を、PCIバス114上の単一の
ダブルワード転送としてドライブすることができる。
尚、PCIインターフェース・マスタ制御ユニット40
2は、更に、CPUバス103又はAGPバス110か
らの連続的なライト・データの書き込みの組み合わせに
も、対応することができるものである。PCI/AGP
キュー・マネージャ208及びPCIインターフェース
・マスタ制御ユニット402は、単純な要求/承認プロ
トコルを採用して、2つのインターフェース間のトラン
ザクションのフローを制御することができる。更に、別
個の要求及び承認信号を採用し、AGPインターフェー
ス214とPCIインターフェース216との間のデー
タの転送を制御することも可能である。
【0029】図5は、PCIインターフェース・マスタ
制御ユニット402内に備えられたPCIマスタ一時リ
ード・バッファの実施態様のブロック図である。図示の
ように、PCIバス114の多重化アドレス/データ・
ライン422からのリード・データが、1対のマルチプ
レクサ424,426に供給される。リード・データが
整合する64ビット・クアドワードに応じて、ラッチ4
28又は430のいずれかの中で、所定のクロックでデ
ータがラッチされる。このように、PCIバス114か
らの32ビット・ダブルワード情報は、CPUインター
フェース204によって受け取られるために、クワドワ
ードに整合される。
【0030】図6は、PCIインターフェース・マスタ
制御ユニット402内に採用可能なPCIマスタ一時ラ
イト・バッファの実施態様のブロック図を示す。PCI
マスタ一時リード・バッファと同様に、図6に示したP
CIマスタ一時ライト・バッファは、PCIバス114
の多重化アドレス/データ・ライン422上にドライブ
するために、PCI/AGPキュー・マネージャ208
のライト・データの上位ダブルワード又は下位ダブルワ
ードのいずれかを選択する。図示の実施態様では、マル
チプレクサ444,446を通じて、それぞれフリップ
・フロップ440,442内で所定のクロックで64ビ
ット・データを格納する。次に、マルチプレクサ448
及びマルチプレクサ450を通じて、書き込まれる適切
なダブルワードのデータを選択し、フリップ・フロップ
452を通じてPCIバス114上にドライブする。
尚、PCIトランザクションのアドレス・フェーズ中
に、マルチプレクサ450によってアドレス情報を選択
し、PCIバス114の多重化アドレス/データ・ライ
ン422上にドライブしてもよく、更に、PCIインタ
ーフェース216がスレーブとして動作している場合、
スレーブ・モード読み出しサイクルの間にマルチプレク
サ450によってリード・データも同様に選択してもよ
い。これについては、以下で更に詳しく論ずることにす
る。
【0031】図4に戻って、PCIインターフェース2
16は、更に、スレーブ・インターフェース410を含
み、これが、主メモリ104を目標とするトランザクシ
ョン、バス・ブリッジ・ユニット102内のPCIコン
フィギュレーション・アドレス・ベース、AGPバス1
10を目標とするメモリ書き込み、及びメモリ・マップ
AGP制御レジスタへのサイクルを受け入れる。スレー
ブ・インターフェース410は、PCIスレーブ・アド
レス・バッファ414に結合されたPCIインターフェ
ース制御ユニット412、PCIスレーブ一時リード・
バッファ416、及びPCIスレーブ一時ライト・バッ
ファ418を含んでいる。
【0032】PCIバス114上でFRAME_信号が
アサートされ、PCIトランザクションの開始が示され
ると、このトランザクションのアドレスがPCIスレー
ブ・アドレス・バッファ414内に格納される。PCI
インターフェース・スレーブ制御ユニット412は、更
に、実行中のサイクルの種別を示す、PCIバス114
からのコマンド情報を受信する。PCIインターフェー
ス・スレーブ制御ユニット412は、コマンド及びアド
レス情報をデコードし、トランザクションがバス・ブリ
ッジ・ユニット102を目標とするのか否かについて判
定を行うように構成されており、更に、DEVSEL_
信号をアサートし、適切なときに、サイクルを要求す
る。各アドレスがPCIスレーブ・アドレス・バッファ
414内に格納されるので、PCIアドレスをデコード
して、何時グラフィックス・アドレスの変換が必要なの
かについて判定する。PCIアドレスが、GART(グ
ラフィックス・アダプタ・リマップ・テーブル)機構
(図示せず)によって規定される仮想グラフィックス・
アドレス範囲の境界内にある場合、PCIスレーブ・イ
ンターフェース(410)は、メモリ・キュー・マネー
ジャ206に、この要求にはアドレス変換が必要である
ことを示す。これは、主メモリ104にグラフィックス
適用リマップ・テーブルのエントリに基づいて判断され
る。
【0033】PCIトランザクションが主メモリ104
を目標とする場合、スレーブ・インターフェース410
は、読み出しトランザクションのためのデータを供給す
るか、書き込みトランザクションのためのデータを受け
入れ始めるか、又はPCIバス・トランザクションを再
試行するかのいずれかである。PCIメモリ読み出しト
ランザクションでは、PCIスレーブ・インターフェー
スは、PCI「遅延読み出し」トランザクションを実行
する。PCI遅延読み出しトランザクションの間、スレ
ーブ・インターフェース410は、要求をメモリ・キュ
ー・マネージャ206に供給することによってリード・
データを要求し、メモリ・キュー・マネージャ206か
らデータが返送されてくるまで、PCI読み出しトラン
ザクションを再試行する(例えば、PCI STOP_
信号により)。PCIメモリ書き込みトランザクション
では、一旦PCIトランザクションが肯定的に(pos
itively)デコードされたなら、データはPCI
スレーブ一時ライト・バッファ418内に受け入れられ
る。キャッシュ・ライン全体がPCIスレーブ一時ライ
ト・バッファ418内に受け入れられ終えたか、あるい
はPCIバス・トランザクションが終了したときに、続
いて、有効なPCIライト・データを含む対応する要求
が、メモリ・キュー・マネージャ206に供給される。
加えて、PCIインターフェース・スレーブ制御ユニッ
ト412は、主メモリ104内の新たなキャッシュ・ラ
インに対する各PCIマスタ・アクセス毎に、メモリ・
キュー・マネージャ206に対するスヌープ要求を提供
することができる。このスヌープ要求はアサートされ、
キャッシュのコヒーレンシが維持される。
【0034】図7は、PCIスレーブ一時リード・バッ
ファ416の実施態様について、その一例の構成を示し
ている。図7の実施態様では、PCIスレーブ一時リー
ド・バッファ416が、16対32ビット・リード・バ
ッファを含み、PCIマスタが要求するリード・データ
の2キャッシュ・ラインまでを受け入れるようにしてい
る。リード・バッファは、メモリ・キュー・マネージャ
206からの有効なデータを受け入れるために用いられ
る。このデータは、主メモリ104からフェッチしたデ
ータであるか、又は、ダーティ・キャッシュ・ライン
(dirty cache line)に対するスヌー
プ・ヒットから生じたCPUライトバック・データのい
ずれかをデータ源とする。PCIマスタが主メモリ10
4からのデータを要求し、CPUバス103上のスヌー
プ・トランザクションの実行時に、キャッシュ・メモリ
内に変更されたラインがあることが判定された場合、メ
モリ・キュー・マネージャ206は、ライトバック・デ
ータが主メモリ104に書き込まれる前に、CPU書き
戻し(ライトバック)トランザクションからのデータを
戻すことができる。PCIマスタが主メモリ104から
のデータを要求し、キャッシュ・ラインがクリーンであ
る場合、メモリ・キュー・マネージャ206は、主メモ
リ104からフェッチしたデータを戻す。一実施態様で
は、PCI読み出しコマンドの種別(即ち、メモリ読み
出し、多重メモリ読み出し、又はメモリ読み出しライ
ン)には無関係に、キャッシュ・ライン全体のデータが
常にメモリ・キュー・マネージャ206から要求され
る。
【0035】図7に示すように、PCIスレーブ一時リ
ード・バッファ416は、リード・データをキャッシュ
・ラインの境界と整合させる。この整合は、1組のマル
チプレクサ460A〜460Hによってサポートされ
る。したがって、データは常に線形状でメモリから戻さ
れ、PCIスレーブ一時リード・バッファ416内にお
いて8つのエントリを更新する。メモリ・キュー・マネ
ージャ206からクアドワードが供給されると、これら
はマルチプレクサ460A〜460Hを通じて、対応す
る32ビット・レジスタ対(即ち、レジスタ対462A
〜462H)に供給される。これらのレジスタ対は、ラ
イン対における各クワドワードの位置に対応する。一時
リード・バッファには合計で16個の32ビット記憶レ
ジスタがあるので、2キャッシュ・ラインまでのリード
・データを格納することができる。これによって、PC
Iマスタがキャッシュ・ラインの境界を交差するという
予測の下で、PCIインターフェース・スレーブ制御ユ
ニット412がデータをプリフェッチしつつ、その時点
のライン(現ライン)からのデータをPCIバス114
に供給するということが可能となる。尚、特定のPCI
読み出しトランザクションの間に要求されたレジスタ対
462A〜462Hの1つから32ビット・データを選
択し、マルチプレクサ464を通じて供給し、マルチプ
レクサ450及びフリップ・フロップ452を通じて、
PCIバス114の多重化アドレス/データ・ライン4
22に受け渡してもよい。
【0036】再び図4に戻り、PCIメモリ読み出し要
求が主メモリ104を目標とする場合、PCIインター
フェース・スレーブ制御ユニット412は、PCIスレ
ーブ一時リード・バッファ416の内容が有効なリード
・データであるかについて、チェックする。要求に対応
する有効なリード・データがPCIスレーブ一時リード
・バッファ466内に存在する場合、PCIトランザク
ションのデータ・フェーズの間にデータをPCIバス1
14に供給する。PCIスレーブ一時リード・バッファ
416内に有効なリード・データが存在しない場合、P
CIインターフェース・スレーブ制御ユニット412は
通常PCIメモリ読み出しトランザクションを再試行さ
せる(例えば、PCISTOP_信号を用いて)。PC
Iインターフェース・スレーブ制御ユニット412は、
更に、読み出し要求(推測的に発生した、又は以前に再
試行した(遅延した)トランザクション)が既にメモリ
・キュー・マネージャ206内で未処理ではない場合、
又は以前に再試行した(遅延した)トランザクションか
らの有効なリード・データがPCIスレーブ一時リード
・バッファ416内にない場合、メモリ・キュー・マネ
ージャ206からのリード・データを含んでいるキャッ
シュ・ラインを要求する。PCIマスタによる同じデー
タを読み込むための再試行を続いて行っても、データが
未だPCIスレーブ一時リード・バッファ416内で得
られない場合(又は、代わりに、以下で論ずるような、
保留の遅延リード・サイクルに対応するスヌープ・サイ
クルのスヌープ・フェーズが未だ完了していない場
合)、PCIインターフェース・スレーブ制御ユニット
412がトランザクションを再試行することになる。P
CIマスタが読み出し要求を再度開始し、リード・デー
タがPCIスレーブ一時リード・バッファ416内に既
に格納されている場合、データはそのPCI読み出しサ
イクルの間に供給される。
【0037】PCIインターフェース・スレーブ制御ユ
ニット412は、読み出しサイクルが保留の遅延読み出
しサイクルと一致し、スヌープ・サイクルのスヌープ・
フェーズが終了している場合、PCIマスタを再試行し
ないように構成することも可能である。このようにする
代わりに、この状態の間、PCIスレーブは、要求され
たデータが得られるまで、TRDYをニゲートする。ま
た、マスタは、推測読み出し要求のスヌープ・サイクル
のスヌープ・フェーズが終了した場合、いくつかのキャ
ッシュ・ラインに及ぶバースト読み出し転送の間、待機
状態に保持することも可能である。これは、アービトレ
ーション・レイテンシを最小に抑え、継続的なキャッシ
ュ・ライン読み出し(back to back ca
cheline read)を最適化することができる
という利点がある。
【0038】加えて、PCIインターフェース・スレー
ブ制御ユニット412は、同時に多数の遅延読み出しト
ランザクションに対応しないようにすることも可能であ
る。このような実施形態では、遅延読み出しトランザク
ションが保留の間に、二次PCIマスタの主メモリから
読み出そうとするあらゆる試みは、第1のPCIマスタ
がその読み出しトランザクションを再び開始し、少なく
とも1回のデータ転送を完了するまで、繰り返される。
第1のPCIマスタがその読み出しトランザクションを
再び開始し、PCIスレーブ一時リード・バッファ41
6内にデータを残した場合、PCIインターフェース・
スレーブ制御ユニット412が残りのデータに推測的と
いうマークを付ける。PCIインターフェース・スレー
ブ制御ユニット412は、メモリ・キュー・マネージャ
206に対する各キャッシュ・ライン読み出し要求と同
時に、スヌープ要求をアサートし、キャッシュのコヒー
レンシを維持する。一旦要求したリード・データがメモ
リ・キュー・マネージャ206から戻された場合、以前
に再試行した(遅延)読み出しトランザクションに対応
する要求を受け入れ、リード・データをPCIマスタに
提供する。
【0039】更にまた、PCIインターフェース・スレ
ーブ制御ユニット412は、主メモリ104からのデー
タのプリフェッチ処理を制御するように構成することも
可能である。具体的な一実施態様では、PCIメモリ読
み出しライン・コマンド又はPCIメモリ読み出し多重
コマンドが主メモリ104を目標とする場合、PCIイ
ンターフェース・スレーブ制御ユニット412は、直ち
にメモリ・キュー・マネージャ206を通じて、主メモ
リ104から2キャッシュ・ラインのデータを要求す
る。PCIマスタが多数のキャッシュ・ラインのデータ
を読み込むという予測の下で、PCIインターフェース
・スレーブ制御ユニット412は、PCIスレーブ一時
リード・バッファ416において空間が使用可能となる
と、追加の推測読み出し要求を行う。主メモリ104か
らデータをプリフェッチすることにより、スレーブ・イ
ンターフェース410は、メモリ・キュー・マネージャ
206に対する読み出し要求を、PCIバス114上で
のデータ転送と重複することができ、データ転送能力向
上を達成するという利点がある。
【0040】推測リード・データは、PCIスレーブ一
時リード・バッファ416内ではシーケンシャル・デー
タであり、純粋にPCIマスタが次の連続メモリ・アド
レスを読み込むという予測の下で、要求されたものであ
る。PCIマスタが、PCIスレーブ一時リード・バッ
ファ416内の連続データ全てを読み出さずにトランザ
クションを終了した場合、残りのデータには、残留推測
リード・データとマークが付けられる。PCIスレーブ
一時リード・バッファ416内に残ったデータは、最後
の読み出し転送の間にマスタが全てのバイト・イネーブ
ル・セットを有していなかった場合、残留推測データと
マークしなくてもよい。残留推測データは、種々の条件
に応答して、PCIスレーブ一時リード・バッファ41
6内で無効化される。例えば、PCIマスタ・メモリ読
み出しライン・トランザクション又は多重トランザクシ
ョンが不連続なメモリ・アドレスに対して行われようと
する場合、PCIメモリ読み出し(通常)トランザクシ
ョンが主メモリに対して行われようとする場合、CPU
−PCI書き込みトランザクションが検出された場合
(何故なら、CPU−PCI書き込みトランザクション
は、同期イベントと見なされるからである)、又はPC
I−メモリ書き込みが行われ推測データが位置する2つ
のキャッシュ・ライン・アドレス空間にヒットした場
合、残留推測データを無効化することができる。加え
て、破棄カウンタによって制御される所定の時間期間以
内に、マスタが、以前に再試行した要求を繰り返さず、
遅延読み出しを実行しなかった場合、遅延リード・デー
タ(PCIスレーブ一時リード・バッファ416に保持
されている)を破棄するために用いられた破棄カウンタ
のタイムアップにより、PCIスレーブ一時リード・バ
ッファ416内に位置するデータに無効とマークするこ
とができる。
【0041】スレーブ・インターフェース410のPC
Iスレーブ一時ライト・バッファ418は、PCIマス
タからのライト・データの2キャッシュ・ラインまでの
ポスティングを考慮する。2キャッシュ・ラインまでの
ライト・データのバッファ機能を備えることによって、
スレーブ・インターフェース410は、PCIバス11
4からのライト・データの受け入れを、メモリ・キュー
・マネージャ206又はPCI/AGPキュー・マネー
ジャ208へのデータ転送と重複することが可能とな
る。有効なライト・データがPCIバス114上にある
場合(即ち、IRDYがアサートされている場合)、デ
ータ及びバイト・イネーブルはPCIスレーブ一時ライ
ト・バッファ418内に受け入れられる。
【0042】PCIスレーブ一時ライト・バッファ41
8は、メモリ・キュー・マネージャモード又はNLMモ
ードのいずれかで動作する。メモリ・キュー・マネージ
ャモードでは、PCIインターフェース・スレーブ制御
ユニット412は、PCIバス転送サイズが1バイトか
又は1キャッシュ・ラインかには無関係に、一度に1キ
ャッシュ・ラインずつ、データをメモリ・キュー・マネ
ージャ206に転送することができる。PCIバス11
4上に転送されないバイトに対するバイト・イネーブル
は、メモリ・キュー・マネージャ206に渡されるとき
に、デアサートされる。一旦PCIスレーブ一時ライト
・バッファ418内のキャッシュ・ラインが満杯になっ
たなら、あるいはPCIマスタがメモリへの書き込み転
送を終了した直後に、有効なライト・データ要求及びバ
イト・イネーブルをメモリ・キュー・マネージャ206
に供給する。
【0043】NLMモードでは、PCIスレーブ一時ラ
イト・バッファ418は、一度に1クアドワードずつ、
データをPCI/AGPキュー・マネージャ208に転
送する。一旦PCIスレーブ一時ライト・バッファ41
8内のキャッシュ・ラインが満杯になったなら、あるい
はPCIマスタがその書き込み転送(例えば、AGPバ
ス110への)を終了した直後に、PCIスレーブ一時
ライト・バッファ418内の要求を、PCI/AGPキ
ュー・マネージャ208に転送する。PCI/AGPキ
ュー・マネージャ208へのキャッシュ・ラインの転送
は、PCI/AGPキュー・マネージャ208に、PC
Iインターフェース216がキャッシュ・ライン書き込
みを実行していることを通知することにより、最適化す
ることができる。キャッシュ・ライン・モードでは、P
CI/AGPキュー・マネージャ208は、キャッシュ
・ラインが完全に転送されるまで、PCIスレーブ・イ
ンターフェース410上に止まる。PCIメモリ書き込
みが主メモリ104を目標とする場合、スレーブ・イン
ターフェース410は直ちにPCIバス114からのラ
イト・データを受け入れ始める。スレーブ・インターフ
ェース410は、DEVSEL_をアサートし、PCI
バス114からのデータを、PCIスレーブ一時ライト
・バッファ418に転記する。加えて、スレーブ・イン
ターフェース410は、待ち状態ゼロで、PCIスレー
ブ一時ライト・バッファ418への連続バースト書き込
みのポスティングに対応することも可能である。
【0044】PCI書き込みトランザクションを最初に
肯定的にデコードするとき、及びバースト・トランザク
ションの間にPCIマスタが新たなキャッシュ・ライン
に書き込みを行い、PCIアドレスをスヌープすべきこ
とを示すとき、スレーブ・インターフェース410によ
って、メモリ・キュー・マネージャ206への書き込み
要求をアサートすることができる。メモリ・キュー・マ
ネージャ206は、全てのスヌープ処理が完了している
こと、及びPCIライト・データが主メモリに書き込ま
れる前に、メモリ・ライト・データ・キュー、CPU−
メモリ一時バッファ、又はCPUキャッシュ内のあらゆ
る変更データが主メモリに書き込まれることを保証す
る。ライトバック・データをキャッシュ・メモリから供
給する状況では、データ・マージ(データ統合)を採用
してもよい。PCIメモリ書き込み及び無効化コマンド
が主メモリ104を目標とする場合、PCIスレーブ・
インターフェース410は、このコマンドを、PCIメ
モリ書き込みコマンドと同様に扱う。しかしながら、P
CIインターフェース・スレーブ制御ユニット412
は、書き戻し(ライトバック)及び無効化指示を、書き
込み要求と同時に、メモリ・キュー・マネージャ206
に供給するように構成することができる。これにより、
CPUインターフェース204及びメモリ・キュー・マ
ネージャ206は、この条件を用いて、ダーティ・キャ
ッシュ・ラインにヒットした、CPU101からのライ
トバック・データを無視することができる。
【0045】最後に、PCIインターフェース・スレー
ブ制御ユニット412は、PCI/AGPキュー・マネ
ージャ208を通じて制御信号をCPUインターフェー
ス204に供給し、CPU−PCI書き込みポスティン
グをイネーブル又はディスエーブルするように構成する
ことができる。この制御信号は、PCIインターフェー
ス216が、データ・コヒーレンシ及びレイテンシの問
題を防止することを可能にするという利点がある。適切
な実施態様の1つでは、CPU−PCI書き込みポステ
ィング(CPU−NLM一時バッファ310内におけ
る)は、PCIマスタが主メモリからの遅延読み出しを
確立したときにディスエーブルされ、CPUバス103
上でスヌープ・サイクルのスヌープ・フェーズが完了
し、CPU−PCIポスティング・バッファが空になる
まで、ディスエーブルされたままとなっている。更に、
PCIバス114上でフラッシュ要求信号FLSHRE
Q_がアサートされた場合も、ポスティングをディスエ
ーブルするようにしてもよい。
【0046】再度図2を参照して、次にメモリ・コント
ローラ210について更に詳細に検討する。メモリ・コ
ントローラ210は、メモリ・キュー・マネージャ20
6から受け取った要求を処理し、主メモリ104内の対
応する位置にアクセスするように構成されている。一実
施形態では、メモリ・コントローラ210は同期DRA
Mに対応し、好ましくは、非インターリーブ、無パリテ
ィ、無ECCメモリ・コントローラとして実現される。
メモリ・コントローラのタイミングは、プログラム可能
であり、アドレス・パイプライン処理に対応することも
可能である。更に、メモリ・コントローラ210は、多
数の物理的メモリ・バンクにも対応することが可能であ
る。また、メモリ・コントローラ210は、所望であれ
ば、ページング対応及びリフレッシュのような種々の追
加機能にも対応するように構成することができる。メモ
リ・コントローラ210は、メモリ・キュー・マネージ
ャ206からの要求を、リード(RD)要求キュー22
0及びライト(WD)要求キュー222を通じて処理す
る。書き込み要求の場合、メモリ・コントローラ210
は、指定された書き込み要求キュー・エントリ(例え
ば、「キューの先頭」のエントリ)からデータを取り出
し、関連して主メモリ104に対するアクセスを発生す
る。読み出し要求の場合、メモリ・コントローラ210
は、主メモリ104からデータを検索し、それを要求元
のインターフェースに転送するために出力する。
【0047】一実施形態では、メモリ・コントローラ2
10は、リード要求キュー220内で保留となっている
要求を処理し、所定の複数の書き込み要求がライト要求
キュー222内で保留となるまで、ライト要求キュー2
22内の要求を処理しない。具体的には、メモリ・キュ
ー・マネージャ206は、WrReqAlmostFu
llと称する制御信号を発生するように構成することが
できる。この信号は、アサートされたときは、ライト要
求キュー222が殆ど満杯であることを示す。この制御
信号がアサートされていない場合、メモリ・コントロー
ラ210は、リード要求キュー220からの要求だけを
処理することによって、より高い優先度を読み出し要求
に与える。WrReqAlmostFull信号がアサ
ートされると、メモリ・コントローラ210は、リード
要求キュー220からの要求(又は多数の要求)の処
理、及びライト要求キュー222からの要求(又は多数
の要求)の処理の間で、ピンポンのように交互に切り替
え始める。これは、WrReqAlmostFull信
号がデアサートされるまで行われる。このように、書き
込み要求は、ライト要求キュー222が追加のメモリ書
き込み要求を受けることができるように処理される。一
実施形態では、WrReqAlmostFull信号が
アサートされるのは、5つの保留中の要求がライト要求
キュー222内にある場合である。
【0048】次に、図8を参照して、AGPインターフ
ェース214の一実施例にの構成について説明する。図
示の実施形態では、AGPインターフェース214は、
66−MHz、32ビットAGP/PCIバスに外部イ
ンターフェースを備えるように構成される。内部では、
AGPインターフェース214は、メモリ・キュー・マ
ネージャ206、メモリ・コントローラ210及びPC
I/AGPキュー・マネージャ208にインターフェー
スする。AGPインターフェース214は、PCI−プ
ロトコル・トランザクション(例えば、66MHzPC
I型トランザクション)だけでなく、AGPプロトコル
・トランザクション双方に対応するように構成すること
ができる。図8に示したように、AGPインターフェー
ス214は、AGPスレーブ一時リード・バッファ50
6に結合されたAGPインターフェース・スレーブ制御
ユニット504、AGPスレーブ一時ライト・バッファ
508、アドレス・デコード及びキュー・ユニット51
0、ならびにAGPアービタ511を有するAGPスレ
ーブ・インタフェース502を含んでいる。AGPイン
ターフェース214は、更に、マスタ・モジュール51
6及びスレーブ・モジュール518を備える、PCI−
モード・インターフェース514も含んでいる。
【0049】図示の実施形態では、AGPバス110
は、PCIプロトコル・トランザクション及びAGPプ
ロトコル・トランザクション双方の共有資源であるの
で、AGPアービタ511を備えて、双方のプロトコル
によるバスの共有使用を支援する。即ち、AGPアービ
タ511は、AGPバス110上でPCI−モード・ト
ランザクションを実行することを要求するエージェント
と、AGPプロトコル・トランザクションを要求するエ
ージェントとの間でアービトレーションを行う。PCI
−モード・インターフェース514は、AGPバス11
0上のPCIトランザクションに対して、マスタ機能及
びスレーブ機能の双方に対応するように構成されてお
り、図4〜図7に関連付けて先に論じたPCIインター
フェース216と同様に構成することができる。PCI
インターフェース216と同様、PCI−モード・イン
ターフェース514も、メモリ要求をメモリ・キュー・
マネージャ206に渡し、NML要求をPCI/AGP
キュー・マネージャ208に渡すように構成することが
できる。加えて、PCIモード・マスタ・インターフェ
ースは、PCI/AGPバスを目標とするPCI書き込
みトランザクションに代わって、PCI/AGPバス上
でサイクルを実行する。
【0050】AGPトランザクションでは、AGP要求
がAGPバス110上でアサートされると、アドレス・
デコード及びキュー・ユニット510を通じて、アドレ
ス、コマンド種別及び転送長がスレーブ・インターフェ
ース502によって受け取られる。追加の要求が外部A
GPマスタによって開始されるに連れて、各要求は、A
GPスレーブ・アドレス・デコード及びキュー・ユニッ
ト510内の以前の要求の後ろに積み上げられる。尚、
多数の要求がアドレス・デコード及びキュー・ユニット
510内に積み上げられた場合、AGP要求をその順番
に係らず、取り下げてもよい。AGP一時ライト・バッ
ファ508内にデータが受け入れられると、AGP書き
込み要求が取り下げられる。一方、リード・データがA
GP一時リード・バッファ506からAGPバス110
に供給されると、AGP読み出し要求が取り下げられ
る。一実施形態では、合計4つまでの保留中の要求を、
アドレス・デコード及びキュー510内に置くことがで
きる。しかしながら、所望であれば、異なる数の要求を
スレーブ・インターフェース502内に整列させること
も考えられる。
【0051】各アドレスをスレーブ・インターフェース
502に格納すると、AGPアドレスをデコードし、グ
ラフィックス・アドレスの変換が必要であるか否かにつ
いて判定を行う。AGPアドレスが、GART(フラフ
ィックス・アダプタ・リマップ・テーブル)機構(図示
せず)によって規定される仮想グラフィックス・アドレ
ス範囲内にある場合、AGPスレーブ・インターフェー
ス502は、メモリ・キュー・マネージャ206に、こ
の要求には、主メモリ104内のグラフィックス・アダ
プタ・リマップ・テーブル内のエントリに基づくアドレ
ス変換が必要であることを指示する。尚、グラフィック
ス・アダプタ・リマップ・テーブルのエントリは、ブリ
ッジ・ロジック・ユニット102内に位置する別個のG
ARTキャッシュ・モジュール(これも図示せず)内に
キャッシュしてもよい。
【0052】以下で更に詳しく説明するが、CPUバス
106上ではAGPスレーブ・インターフェース502
からの要求をスヌープしないが(サイクルがキャッシュ
可能でないため)、メモリ・キュー・マネージャ206
は、ライト要求キュー222内の主メモリ104に対す
る全てのAGPリード要求をスヌープさせるように構成
することができる。これによって、ライト・データが未
だライト要求キュー222内にある場合に、AGP読み
出し要求が、同じアドレスに対して以前に発行されたA
GPラ書き込み要求と一貫性を保つことが保証される。
AGP読み出し要求が、ライト要求キュー222内にあ
るアドレスにヒットした場合、メモリ・キュー・マネー
ジャ206は、読み出し要求を主メモリ104に発行す
る前に、スヌープ・ヒット状態がもはや存在しなくなる
まで、主メモリ104へのライト要求キュー222をフ
ラッシュする。
【0053】一実施形態では、AGPスレーブ一時リー
ド・バッファ506は、32x32ビットの一時リード
・バッファを含み、AGPマスタによって要求される、
主メモリ104からのリード・データを4キャッシュ・
ラインまで受け入れることができる。スレーブ・インタ
ーフェース502は、AGP要求アドレス及び転送長に
基づいて、4,8,12又は16クワドワードの倍数
(即ち、1,2,3又は4キャッシュ・ライン)でメモ
リ・キュー・マネージャ206からのリード・データを
要求する。4キャッシュ・ラインまでのリード・データ
を供給することにより、AGPスレーブ・インターフェ
ースは、メモリ・キュー・マネージャ206へのAGP
読み出し要求を、AGPバス110上のデータ読み出し
転送と重複することができる。
【0054】同様に、一実施形態では、AGPスレーブ
一時ライト・バッファ508は、AGPマスタからのラ
イト・データを4キャッシュ・ラインまで転記するため
に、32x32ビットの一時ライト・バッファを備えて
いる。4キャッシュ・ラインまでのライト・データ・バ
ッファ機能を備えることによって、AGPスレーブ・イ
ンターフェース502は、AGPマスタからのライト・
データの受け入れを、メモリ・キュー・マネージャ20
6への書き込みデータ転送と重複することができる。A
GPバス110上に有効なライト・データがある場合、
このデータ及びバイト・イネーブルがAGPスレーブ一
時ライト・バッファ508内に受け入れられる。AGP
インターフェース・スレーブ制御ユニット504は、A
GPスレーブ一時ライト・バッファ508内に格納され
ているデータ量を分析し、メモリ・キュー・マネージャ
206への転送サイズを判定する。データは、AGPア
ドレス及び転送長に基づいて、4又は8クアドワード
(1又は2キャッシュ・ライン)の倍数で、メモリ・キ
ュー・マネージャ206に転送される。
【0055】次に、図9に移り、メモリ・キュー・マネ
ージャ206の適切な構成について検討する。以前に述
べたように、CPUインターフェース204、PCIイ
ンターフェース216、及びAGPインターフェース2
14からのメモリ読み出し要求は、リード要求キュー2
20にロードされ、一方メモリ書き込み要求はライト要
求キュー222にロードされる。対応するライト・デー
タが、ライト・データ・キュー602に格納される。全
体的にキュー・メモリ制御ユニット624として示す制
御ロジックが、読み出し要求及び書き込み要求のロード
処理、ならびに所望であれば、その他の種々の機能動作
に対応する。要求キューと図示のデバイス・インターフ
ェースとの間には、種々のデータ経路615が備えられ
ており、要求の経路決定に便宜を図る。以下で更に詳し
く説明するが、キュー・メモリ・マネージャ206内に
はメモリ・キュー・アービタ626が更に備えられ、C
PUインターフェース204、PCIインターフェース
216及びAGPインターフェース214の保留となっ
ている要求の間でアービトレーションを行う。更に、ラ
イト要求キュー(WRQ)スヌープ・ロジック・ユニッ
ト610及びリード要求キュー(RRQ)スヌープ・ロ
ジック・ユニット612も、コヒーレンシを維持するた
めに備えられている。これについても、以下で詳しく論
ずることにする。
【0056】具体的な実施態様では、ライト要求キュー
222は、同時に8つのライト要求まで格納するように
構成する。各書き込み要求は、4クアドワード(即ち、
1キャッシュ・ライン)のライト・データに対応する。
ライト要求キュー222の8つの位置の各々の別個の部
分を、チップ・セレクト、バンク・セレクト、行アドレ
ス、及び列アドレスを格納するために供してもよい。こ
のようにライト要求キュー222の各要求位置を区分す
ることにより、メモリ・コントローラ210は、必要に
応じて、キューからの部分的な除外(de−queu
e)が可能となる。スヌープ処理を容易にするために、
一実施態様では、ライト要求キュー222をレジスタ・
バンクとして実現する。
【0057】図10は、ライト要求キュー222の実施
態様の一例に関連する種々の構成を、ライト要求キュー
・スヌープ・ロジック610の関連する構成と共に示し
ている。ライト要求キュー222は、ライト要求キュー
222内に含まれる種々の記憶位置を例示する、複数の
レジスタ650A〜650Dと共に示されている。先に
説明したように、一実施態様では、合計8つのこのよう
な記憶位置を備えることができるが、簡略化のために図
では4つのみが含まれている。この実施態様では、キュ
ーの先頭にある(即ち、レジスタ750A内に位置す
る)要求がメモリ・コントローラ210によって処理さ
れると、他のレジスタ内にある残りの要求は、1つ位置
を右側にずらされ、レジスタ750Aによって形成され
るキューの先頭に新たな要求が現れる。メモリ・キュー
・アービタ626は、種々のブリッジ・インターフェー
ス内にある保留中の要求間でアービトレーションを行
い、次に書き込み要求を配置するために使用可能な記憶
レジスタを判定する。図に示すように、メモリ・キュー
・アービタ626は、CPUインターフェース101か
らのCPU書き込み要求又はPCIインターフェース2
16からのPCI書き込み要求のいずれかを選択し、現
在キューの末尾を形成するライト要求キュー222のレ
ジスタ内にロードする。更に、メモリ・キュー・アービ
タ626は、AGPインターフェース214のようなそ
の他のインターフェース、及びUSBバス又はIEEE
1394バスのようなその他のバスが備えられている場
合には、これらからの要求を選択することも可能であ
る。キューの末尾からキューの先頭への要求の前進は、
キュー・メモリ制御ユニット624の機能の一部によっ
て制御される。最後に、キューの先頭からの要求の除外
は、メモリ・アービタ660によって制御される。
【0058】図10には、さらに、ライト要求キュー・
スヌープ・ロジック・ユニット610の一部の適切な実
施態様に関連する種々の構成を示す。図10に示すよう
に、複数の比較器662A〜662Dが備えられ、レジ
スタ650A〜650D内にある有効な要求各々のアド
レスを、レジスタ又はポート664に供給される新たな
読み出し要求のアドレスと比較する。ロジック・ユニッ
ト666が、ライト要求キュー位置のいずれかにヒット
があるか否かを示す信号を発生する。メモリ・キュー・
マネージャ206に関連するスヌープ動作に関する更に
別の面については、以下で更に詳しく論ずることにす
る。
【0059】先に述べたように、メモリ・コントローラ
210は、通常、ライト要求キュー222内で保留状態
にある書き込み要求よりも、リード要求キュー220内
で保留状態にある読み出し要求に高い優先度を与えて処
理する。図9及び図10を参照する。ライト要求キュー
222内の保留中の書き込み要求数がスレショルド数未
満である限り、メモリ・アービタ660は、メモリ・コ
ントローラ210にリード要求キュー220からの読み
出し要求のみを選択させる。ライト要求キュー222内
で保留状態にある書き込み要求数がスレショルド数に達
した場合、ライト要求キュー222は、書き込み要求満
杯直前信号(WrReqAlmostFull)をアサ
ートし、メモリ・コントローラ210は書き込み要求の
処理を開始すべきことを指示する。この時点から、書き
込み要求満杯直前信号がデアサートされるまで、ライト
要求キュー222及びリード要求キュー220双方から
の要求を交互に処理する。ライト・データ・キュー60
2は、各書き込み要求に関連するデータを格納する。一
実施態様では、ライト・データ・キュー602は、8キ
ャッシュ・ラインまでのライト・データ及びバイト・イ
ネーブルを格納することができる。尚、データは、特定
のバースト順(CPU101での順番等の)でライト・
データ・キュー602に格納することにより、処理能力
の最適化が可能である。
【0060】一実施態様では、リード要求キュー220
は、バス・ブリッジの種々のインターフェースからの保
留中の読み出し要求を4つまで格納するように構成され
る。しかしながら、リード要求キュー222は、メモリ
・キュー・マネージャ206が処理する全インターフェ
ース数、及び処理能力の要件に応じて、別の数の保留中
の要求を格納するように構成可能とすることも考えられ
る。尚、ライト要求キュー222と同様、リード要求キ
ュー220の要求格納位置をいくつかの部分に分割し、
1つをチップ・セレクト用に、他の1つのバンク・セレ
クト及び行アドレス用に、更に別の1つを列アドレス、
要求サイズ及び読み出しの宛先用とすることにより、メ
モリ・コントローラ210が情報を必要とする際に、特
定の要求の一部のみを選択的に抽出可能となる。宛先情
報は、メモリ・コントローラ210が、メモリ・キュー
・マネージャ206を通じてデータを返送すべきか(ス
ヌープ処理を必要とするトランザクションの場合)、又
はリード・データを直接要求元のデバイスに送るか(非
スヌープ・トランザクションの場合)について判定を行
うために用いることができる。リード要求キュー220
の物理的構造は、図10に示すライト要求キュー222
のそれと同様とすればよい。
【0061】加えて注記すべきは、キュー・メモリ・マ
ネージャ206内に1つ以上のリード保持バッファを含
ませ、CPUスヌープを実行している間に、スヌープ・
インターフェースに宛てられたメモリからのリード・デ
ータを保持することも可能であるということである。こ
れによって、スヌープ書き戻し(ライトバック)が発生
したと判定されるまで、主メモリ104からのリード・
データが滞留するのために一時的な位置を備えることが
可能となる。スヌープ書き戻しが発生したと判定された
場合、ライトバック・データを要求元のインターフェー
スに送る。また、到達したライトバック・データが送出
できるようになるまでの一時的な位置も備えることがで
きる。
【0062】一実施態様では、メモリ・キュー・アービ
タ626は、接続されている各インターフェースから単
一の要求を受け取る。尚、一実施形態では、アービトレ
ーションのために、AGPインターフェース214を2
つの別個のインターフェースとして扱い、1つをある種
のAGPモード要求のため、1つをPCIモード要求の
ためとしてもよい。各インターフェースから受け取られ
る要求には、読み出し要求、書き込み要求、又はその他
の種別の要求があり、その中には、ある種のロックされ
たトランザクションに関連するアンロック要求(unl
ock request)のような要求もある。また、
ある種の特別な要求は、当該要求の性質によっては、リ
ード要求キュー220にもライト要求キュー222にも
整列させないようにしてもよい。例えば、ロック及びア
ンロック要求は、キューに供給しないようにしてもよ
い。加えて、要求の中には、あるインターフェースから
のみ得られるものもある。更に、優先度が高いAGP読
み出し要求、及びGARTテーブルを主メモリ104か
ら読み出す要求は、他の全ての入来する要求よりも高い
優先度で、メモリ・キュー・マネージャ206及びメモ
リ・コントローラ210が扱うようにしてもよい。これ
ら優先度が高いAGP関連要求に便宜を図るために、追
加の調停及び整列機構を備えて、優先度が高い要求のア
ービトレーションを行い、メモリ・コントローラ210
による処理のために優先度の高い要求を整列させるよう
にしてもよい。これらの機構は、メモリ・キュー・マネ
ージャ206の図示の部分からは独立して実現すること
ができる。
【0063】要求は、メモリ・キュー・アービタ626
によって認識され、適切な要求キュー(即ち、リード要
求キュー220又はライト要求キュー222のいずれ
か)に空のスロットがある限り、当該キューに要求をロ
ードする。特定の要求キューのスロットが全て満杯であ
る場合、要求は保留のまま放置され、インターフェース
は、それらの現要求が承認されるまで、それ以上の要求
を発行することができない。
【0064】メモリ・キュー・アービタ626は、ラウ
ンド・ロビン優先順方式を取り入れて、全てのインター
フェースのために、メモリに対する公平なアクセスを可
能にする。ラウンド・ロビン優先順方式を実現するため
に、メモリ・キュー・アービタ626は優先順位を維持
し、多数の要求が保留中である場合には、どのデバイス
が次に処理されるのかについて判定を行う。デバイス間
で1つの要求のみが保留中である場合、その要求を直ち
に処理する。多数の要求が保留中の場合、それらの優先
順位に基づいて処理する。優先順位は、要求キューに要
求がロードされ、要求元デバイスに対する承認がアサー
トされる限り、更新される。保留中の要求がない場合、
メモリ・キュー・アービタ626は、CPUインターフ
ェース204に止まり、初期CPUリード・サイクルの
レイテンシを減少させ、優先順方式をリセットする。状
況によっては、メモリ・キュー・アービタ226は、一
時的に順序に係らずにCPUインターフェース204又
はGARTインターフェース(図示せず)を選択し、ス
ヌープ処理又はAGPに関連するアドレス変換を処理す
ることも可能である。このような順序に係らないアービ
トレーションは、セーブしてある優先順位には影響を与
えない。メモリ・キュー・アービタ626は、全体的に
ブロック615として図示する、多重化データ経路を制
御し、所与のキューにメモリ要求を与えるために接続さ
れているインターフェースはどれであるかについて制御
を行う。一旦インターフェースが選択されたなら、キュ
ー・メモリ制御ユニット624内に実装されているロジ
ックは、スヌープ処理及びキューのロード処理を制御す
る。
【0065】一実施態様では、キュー・メモリ・マネー
ジャ206に結合されている各インターフェースが一度
にキュー・メモリ・マネージャ206に提示できる要求
は1つのみであり、更にメモリ・キュー・アービタ22
6はラウンド・ロビンのような公平なアルゴリズムを実
施して要求間のアービトレーションを行うので、追加の
インターフェース、中でも、USB(ユニバーサル・シ
リアル・バス)のためのインターフェース及び/又はI
EEE1394(ファイア・ウエア)バス等は、大幅な
設計変更をすることなく、容易に組み込むことができ
る。重要なのは、主メモリ104に対する公平なアクセ
スは、PCIバス114及びAGPバス110上のデバ
イスだけでなく、このように追加されたバス上のデバイ
スにも、等時性(isochronous)であれ非同
期であれ、双方に与えられることである。
【0066】次に、リード要求キュー200及びライト
要求キュー222内で保留中の要求のスヌープ処理に関
する種々の内容について検討する。一実施態様では、各
デバイス・インターフェースからの読み出し要求は、ラ
イト要求キュー222内の保留中の書き込みアドレスを
スヌープしなければならない。このライト要求キューの
スヌープ処理によって、各インターフェースの視点から
順序を保存する。あるデバイスが同じアドレスに対して
書き込みを行い、次いで読み出しを行う場合、今書き込
んだばかりのデータを受け取る必要がある。書き込みが
ライト要求キュー222内にあり無視された場合、読み
出しは主メモリ104から古いデータを受け取る可能性
がある。
【0067】書き込み要求及び読み出し要求のスヌープ
を素早く(例えば、1クロック・サイクル未満で)完了
するためには、ライト要求キュー・スヌープ・ロジック
610及びリード要求キュー・スヌープ・ロジック61
2は、スヌープ処理の目的のために、保留中の要求に関
連するアドレスのサブセットのみを比較するように構成
すればよい。一実施態様では、スヌープ・ロジックは、
14ビットのアドレス(例えば、システム・アドレスの
ビット25:11)を比較する。スヌープ動作中のアド
レス比較のためのビット数の選択は、比較動作を行わな
ければならない速度に依存し、更に誤ったヒットの可能
性増大による処理能力低下に対して容認可能な許容度に
依存することは理解されよう。
【0068】ライト要求キュー222内の以前の要求の
スヌープ処理は、種々の方法で実現することができる。
一実施態様では、特定のインターフェースからの新たな
読み出し要求に関連して、ライト要求キューのヒットが
発生した場合、ライト要求キューのフラッシュ動作が行
われるまで、読み出し要求を承認しない。スヌープ・ヒ
ットの結果行われる書き込み要求動作以前の全ての書き
込み動作は、メモリ・コントローラ210によって処理
される。このように、同じアドレスに対する以前の書き
込み動作を読み出し動作の前に完了させることにより、
コヒーレンシを確保する。ライト要求キューのフラッシ
ュが開始した後、キュー・メモリ制御ユニット224
は、読み出し要求をリード要求キュー220にロードす
ることができ、読み出し動作に対するCPUスヌープ・
コマンド(必要であれば)をCPUインターフェース2
04に供給し、読み出しトランザクションのためにCP
Uスヌープを発行することができる。
【0069】ライト要求キュー222のスヌープ処理の
他の実施態様では、リード要求キュー220の各位置に
カウンタを関連付ける。新たな読み出し要求がメモリ・
キュー・マネージャ206によって受け取られると、ラ
イト・キュー222の各位置にあるアドレスを、新たな
読み出し要求と比較する(又は、前述のように、アドレ
ス・ビットの所定のサブセットと比較する)。ライト要
求キュー222内の特定のエントリに関してスヌープ・
ヒットが得られた場合、そのエントリの位置を示す値
を、新たな読み出し要求がロードされているリード要求
キュー220の位置に関連するカウンタに格納する。し
たがって、この値は、ライト要求キュー222内のヒッ
トの深さを示す。書き込み要求がライト要求キュー22
2から除外される毎に、読み出し要求に関連するカウン
タ値を1だけ減少させる。ライト要求キュー内のスヌー
プ・ヒットの深さを示す有効値を収容する、その他の読
み出し要求に関連するカウント値も同様に減少させる。
読み出し要求がリード要求キュー220から除外され、
キューの末尾にある要求がキューの先頭に向かってシフ
トされるに連れて、各読み出し要求に関連するカウント
値も、読み出し要求と共にシフトするが、変更はしな
い。特定の読み出し要求がキューの最上部に到達し、カ
ウントが0より大きい場合、追加の書き込み要求が処理
され、カウント値が0に達するまで、メモリ・コントロ
ーラ210はこの要求を処理しない。
【0070】リード要求キューのスヌープ処理も、書き
込み要求がインターフェースによってアサートされたと
きに、同様に行うことができる。更に具体的には、メモ
リ・コントローラが同じアドレスに対する読み出しトラ
ンザクションの前に書き込みを行うような状況を回避す
るために、書き込み要求がライト要求キュー702にロ
ードされる前に、リード要求キュー220をスヌープす
る。前述の状況は、書き込み要求満杯直前信号がアサー
トされるか、あるいはその他の読み出しのためにライト
要求キューのフラッシュが行われるときに発生する可能
性がある。このスヌープ処理は、ライト・データを未だ
集めている間に実行することも可能である。ヒットが生
じた場合、ヒット状態が消えるまで(即ち、このヒット
を発生させた読み出し要求がキューから除外されるま
で)、リード要求キュー220をフラッシュする。ある
いは、各ライト要求キュー・エントリにカウンタを関連
付け、書き込みを処理する前に処理すべき読み出し要求
の数を追跡するようにしてもよい(即ち、ライト要求キ
ュー222のスヌープ処理についての前述の説明と同様
に、リード要求キュー220内のヒットの深さを示すカ
ウント値を維持すればよい)。
【0071】リード要求キュー220のスヌープ処理を
行った後、メモリ・キュー・マネージャ206は、更に
スヌープ要求をCPUインターフェース204に送るこ
ともできる。前述のように、メモリ・キュー・アービタ
626は、一時的にその通常の優先順方式から逸脱し、
スヌープの結果が得られるようになるまで、CPUイン
ターフェースの処理を開始する。キャッシュ・ヒットが
発生した場合、メモリ・キュー・アービタ626は、ラ
イトバック・データがキャッシュ・メモリから主メモリ
104に送られるまで、CPUインターフェース204
に留まる。書き戻し(ライトバック)要求が完了した
後、メモリ・キュー・アービタ626は、要求元のイン
ターフェースに戻る。一旦スヌープが終了し、メモリ・
キュー・アービタ626が要求元のデバイス・インター
フェースに戻ったなら、メモリ・キュー・アービタ62
6は書き込み要求をライト要求キュー222にロード
し、必要に応じて、他の要求を扱い始める。尚、注意す
べき点として、書き込み要求のバイト・イネーブルをマ
スクとして用い、ライトバック・データの、入来する書
き込み要求に関連するデータとの統合も可能である。同
様に、ある種の読み出し要求については、メモリ・キュ
ー・マネージャ206は、ライト要求キュー222のス
ヌープ処理を行った後、スヌープ要求をCPUインター
フェース204に送ってもよい。ライトバック・データ
を主メモリ104に格納する前に、変更されたヒット・
ラインに対応するライトバック・データを取り込み、要
求元のインターフェースに供給することも可能である。
【0072】再び図2を参照し、CPU/AGPキュー
・マネージャ208の構成について説明する。前述のよ
うに、PCI/AGPキュー・マネージャ208は、ロ
ーカル・メモリ(即ち、主メモリ104)を目標としな
い、CPUインターフェース204、PCIインターフ
ェース216及びAGPインターフェース214間で渡
される要求を制御する役割を担っている。図11は、P
CI/AGPキュー・マネージャ208の一実施態様を
一般化したブロック図である。CPUバス制御ユニット
702が、PCIバス制御ユニット704及びAGPバ
ス制御ユニット706に結合された状態が示されてい
る。PCINLMアービタ710が、PCIバス制御ユ
ニット704の機能の一部として示されており、AGP
NLMアービタ712が、AGPバス制御ユニット7
06の機能の一部として示されている。
【0073】CPUバス制御ユニット702は、CPU
インターフェース204からの読み出し要求及び書き込
み要求を、目標とするデバイスに導出するように構成さ
れている。更に、データ承認やリトライ(再試行)信号
のような、様々な追加のアドレス及び制御信号を、目標
とするデバイスからCPUインターフェース204に、
CPUバス制御ユニット702を通じて、逆に伝達する
ことができる。一実施形態では、CPUバス制御ユニッ
ト702は、異なるデバイス間のCPUサイクルのパイ
プライン処理に対応していないが、単一のデバイスに対
するCPUのパイプライン処理には、CPUバス制御ユ
ニット702が対応可能とすることができる。ターゲッ
ト・デバイスから返送可能なリトライ信号には2種類あ
る。「リトライ」と呼ばれる第1のリトライ信号は、P
CI又はAGPマスタ・インターフェースのいずれかか
ら、CPU101からの非転記サイクル(non−po
sted cycle)上でアサートすることができ、
これは、PCIバス上又はAGPバス上のいずれかのタ
ーゲットがサイクルを再試行したことを示す。この場
合、CPUインターフェース204は、リトライ信号が
アサートされるまで、CPUバス103のスヌープを停
止する(stall)。一実施形態では、バスがサイク
ルを再試行する場合、CPUインターフェース204
が、CPU101にサイクルを再試行するように指令す
ることによって、スヌープ・フェーズから出ることがで
きるように、CPUインターフェース204は常に非転
記サイクルのスヌープを停止する。
【0074】2番目の種類のリトライは、「高速リトラ
イ」と呼ばれ、2つの異なる理由のためにアサートする
ことができる。第1の場合は、PCIバス114を伴う
特殊な場合である。FLUSHREQ_信号がアサート
された場合、これは、ISAデバイスがPCIバス11
4を介して主メモリ104に何らかの転送を行う可能性
があることの、二次ブリッジ・ロジック・ユニット11
6(例えば、図1)からの指示である。FLUSHRE
Q_信号は、保留中のCPU−PCIサイクルを全て一
掃するために用いられるだけでなく、PCIを目標とす
る入来CPUサイクル全てについて、一旦それらがその
スヌープ・フェーズに入ったなら、直ちにPCIマスタ
・インターフェース402にそれらを再試行させる信号
をアサートさせる。これによって、CPU−PCI要求
バッファが再び満配になってしまうのを防止する。PC
I NLM高速リトライ信号をPCIバス制御ユニット
704にも供給し、PCINLMアービタ710がCP
Uバス制御ユニット702に優先度を与えるようにし
て、あらゆるCPU−PCIデータを一掃することも可
能である。更に、CPUインターフェース204は、こ
のような場合に、信号をPCIインターフェース216
に返送し、高速リトライ信号がアサートされていた間に
CPUバス103上のPCIバス114を目標とした入
来サイクルが再試行されたことを示すように構成するこ
とも可能である。この信号は、入来するサイクルをPC
Iバス114上で実行することが必要となるという予測
の下で、PCIマスタ・インターフェース402にPC
Iバス114の所有権を要求させるために使用すること
も可能である。
【0075】高速リトライ信号をアサートする可能性が
ある2番目の場合は、コヒーレンシの問題を伴う。PC
I(又はAGPバス110に接続されているPCIデバ
イス)が主メモリ104からの読み出しを要求し、CP
UからPCI(又はAGP)へのデータ転送が完了した
ことを示すためにCPU101によってセットされたフ
ラグを読み取るときはいつでも、CPUからPCI(又
はAGP)に転記されるあらゆるデータを一掃し、デー
タ転送が実際に完了したことを確実とする必要がある。
この場合、PCI(又はAGP)スレーブ・インターフ
ェース410は、PCI(又はAGP)バス・マスタが
メモリからの読み出しを要求したことを検出した場合、
高速リトライ信号をアサートする。これによって、PC
I及びAGPへのこれ以上のCPUサイクルが、CPU
インターフェース204によって受け入れられるのを防
止し、再試行したCPUサイクルについては、CPUバ
ス103上で実行されているスヌープの停止がないこと
を保証することができる。これによって、CPUバス1
03上で(メモリ読み出し要求の結果として)実行され
るスヌープ・サイクルのために、スヌープの結果を戻す
際のレイテンシを最少に抑えることができる。このため
に、CPUインターフェース204が高速リトライ信号
のアサート状態を検出したときはいつでも、PCIバス
114を目標とする全てのサイクル、及びAGPバス1
10上のPCIモード転送を全て再試行する。
【0076】PCIバス制御ユニット704は、PCI
NLMアービタ710を含み、CPUインターフェー
ス204からのPCIバス114に対する書き込み要求
及び読み出し要求の間で調停を行うように構成されてい
る。尚、PCI NLMアービタ710は、IEEE1
394バス又はUSBバスのような他のバスが接続され
ている場合には、これらからの要求のアービトレーショ
ンも行うように構成可能である。一旦あるデバイスが調
停を獲得したなら、PCIバス制御ユニット704は、
アドレス、バイト・イネーブル、及びその他の制御情報
のような、種々の要求情報をPCIマスタ・インターフ
ェース制御ユニット402に渡す。PCI NLMアー
ビタ710は、ラウンド・ロビン調停方式を採用する。
加えて、一実施形態では、PCI NLMアービタ71
0は、他の要求元デバイスからは保留中の要求が全くな
い場合にはいつでも、CPUインターフェース204上
に停留するように構成すると有利である。アービトレー
ション・サイクルは、アドレス要求がアクティブである
間にPCIマスタ・インターフェースがアドレス承認を
戻したときはいつでも発生し、あるいはアービタがCP
Uインターフェース204上に停留し、CPUインター
フェース204以外のデバイスからの要求がアサートさ
れたときにも発生する。PCI NLMアービタ710
は、アービトレーションを獲得したデバイス上に停留
し、多数の連続的なクアドワードを転送できるように構
成することも可能である。更に、PCI NLMアービ
タ710は、アービタをCPUインターフェースに停留
させる、CPUからのロック・サイクル(locked
cycle)に対応するように構成することも可能で
ある。加えて、高速リトライ信号をPCIインターフェ
ース216からアサートする場合、PCI NLMアー
ビタ710はCPUインターフェース204に停留し、
全てのCPU−PCI要求を一掃する。
【0077】同様に、AGPバス制御ユニット706
も、AGPインターフェース214に対する要求を制御
するために備えられたものである。AGP NLMアー
ビタ712は、CPUインターフェース204からの書
き込み要求及び読み出し要求、ならびにPCIインター
フェース216からの書き込み要求間でアービトレーシ
ョンを行うように構成されている。尚、AGP NLM
アービタ712は、追加のバスが組み込まれている場
合、これらの要求についてもアービトレーションを行う
ように構成可能である。あるデバイスがアービトレーシ
ョンを得た場合、AGPバス制御ユニット706は、ア
ドレス、バイト・イネーブル、及びその他の制御情報を
含む要求をAGPインターフェース214に渡す。
【0078】PCI NLMアービタ710と同様、A
GP NLMアービタ712もラウンド・ロビン調停方
式を採用し、他のいずれの要求元デバイスからも保留中
の要求がない場合はいつでも、CPUインターフェース
204上に停留する。更に、AGP NLMアービタ7
12は、多数の連続的なクアドワード転送の間、特定の
要求元デバイス上に停留するように構成することがで
き、更に、CPUインターフェース上にAPG NLM
アービタを停留させる、CPUインターフェースからの
ロック・サイクルにも対応する。AGPスレーブ・イン
ターフェース502によって高速リトライ信号がアサー
トされた場合、AGP NLMアービタ712はCPU
インターフェース204に停留し、全てのCPU−AG
P(PCIモード)要求を一掃する。
【0079】図12は、AGPバス110に対するCP
U101からの書き込み要求及び読み出し要求とPCI
バス114からの書き込み要求との仲裁すなわちアービ
トレーションを行うための詳細を示している。これまで
の図面と同一の構成要素には、説明を明瞭で簡単にする
ために同一の番号を付している。図13は、アービトレ
ーション・アルゴリズムによって実行される動作の概略
を示しているフローチャートである。先に説明したよう
に、AGPNLMアービタ712は、AGPバス110
に対するCPU101の書き込み及び読み出し要求とP
CIバス114の書き込み要求との仲裁を行う。図12
及び図13の両方を参照する。CPUインターフェース
204及びPCIインターフェース216のいずれに
も、AGPバス110へのペンディング状態のアクセス
要求が存在しない場合、AGPNLMアービタ712
は、CPUインターフェース204(ステップ902、
904)に止まる。一実施形態では、AGPNLMアー
ビタ712は、アクノレッジ信号AGP_CPUACK
をアサートして、CPUインターフェース204に停留
することを表明する。したがって、AGPNLMアービ
タがCPUインターフェース204に止まっているとき
に、AGPバス110へのアクセスを要求するトランザ
クションがCPUインターフェース204に供給される
と、該要求は直ちに、CPUコントロール・ユニット7
02及びAGPバス・コントロール・ユニット706を
介してAGPインターフェース214に供給される。こ
れは、アービトレーション処理を行うことなく実行され
る。これにより、比較的低レイテンシのトランザクショ
ン(CPUからAGPへの)が実行される。
【0080】先に説明したように、AGPNLMアビー
タ712は、ラウンド・ロビンアービトレーション・ア
ルゴリズムを用いて、CPUインターフェース204及
びPCIインターフェース212からの要求の競合を解
決する。CPUインターフェース204又はPCIイン
ターフェース212のいずれかがペンディング状態の要
求を発生している場合、要求信号CPU_AGPREQ
又はPCI_AGPREQが該インターフェースによっ
てアサートされ、この信号をAGPNLMアービタ71
2が受け取る。CPUインターフェース204及びPC
Iインターフェース212の両方がペンディング状態の
要求を有していると、AGPNLMアービタ712は、
その時点のアービトレーション・サイクルでの勝者を決
定する(ステップ906)。それにより、該当する要求
がAGPインターフェース214を介して、ブリッジ・
ロジック102に内蔵されるマスタであるAGPアービ
タ(不図示)に供給される。アクノレッジ信号AGP_
CPUACK又はAGP_PCIACKがまた、勝者の
インターフェースに供給され、これにより、AGPイン
ターフェース214に要求を転送できることを表す。A
GPインターフェース214は、AGPバス110のオ
ーナーシップを有することになり、要求はAGPなす1
10上の1サイクルとしてドライブされる。
【0081】クワドワード転送要求等のバースト転送を
最適化するために、CPUインターフェース及びPCI
インターフェース212は、ラスト信号LastAdd
rReqをアサートする。この信号は、特定の信号が、
CPUバス103又はPCIバス114上の関連するバ
ースト・サイクルにおいて最後の要求であるかどうかを
示している。各インターフェースからのラスト要求信号
は、AGPNLMアービタ712に供給される。アービ
トレーションの勝者のインターフェースは、特定の要求
がバースト・トランザクションに関連する最後の要求で
はない場合には、ラスト要求信号をデアサートする。A
GPNLMアービタ712は、勝者のインターフェース
からのラスト要求信号を検出し、該信号がデアサートさ
れている限り、当該インターフェースに止まる。これに
より、他のインターフェースがAGP要求の転送を獲得
することを防止し、バースト転送しているデバイスが連
続的に転送できることになる(ステップ910、91
2)。ラスト要求信号がアービトレーションの勝者によ
ってアサートされると、これは現在のペンディングの要
求が最後のバースト転送であることを示しているので、
AGPNLMアービタ712は、他のインターフェース
のペンディング状態の要求を、次のアービトレーション
・サイクルにおいて提供することができるように制御す
る。
【0082】一実施形態においては、AGPインターフ
ェース214によりアクノレッジ信号がAGPバス11
0のアクセス権の獲得を示しており、かつCPU_AG
PREQ信号又はPCI_AGPREQ信号がアクティ
ブ状態を示しているとき、又は、AGPNLMアービタ
712がCPUインターフェース204上に停留し、か
つPCI_AGPREQ信号がアサートされているとき
に、アービトレーション・サイクルは常に実行される。
さらに、CPUインターフェース204によってアサー
トされて特定の要求の組がロックされることを表すLO
CK信号により、ロック・サイクルが生じるようにする
ことも可能である。AGPNLMアービタ712又はP
CINLMアービタ710は、このLOCK信号を受信
すると、CPUインターフェース204に止まり、この
状態は、CPUインターフェース204が、デアサート
されたLOCK信号によりCPU_AGPREQ信号を
アサートするまで、継続する。同様に、AGPNLMア
ービタ712は、CPUバスからAGPバスへの要求を
全てフラッシュするために、高速リトライ信号がAGP
スレーブ・インターフェースによってアサートされる
と、CPUインターフェース204上に停留するように
構成されている。
【0083】ブリッジ・ロジック・ユニット102とし
て種々のタイプのものを採用可能であることが明らかで
あろう。例えば、必要に応じて、システムの全ての要求
に依存するように、別のタイプの要求がバス・インター
フェースによってサポートされるようにしてもよい。さ
らにまた、バス・インターフェース、メモリ・キュー・
マネージャ、非ローカル・メモリ・マネージャ等も種々
の形態のものを採用することができる。これまでの開示
を完全に理解したなら、種々の変形や変更も当業者には
明白となろう。したがって、特許請求の範囲は、かかる
変形及び変更を全て包含するように解釈することを意図
するものである。
【図面の簡単な説明】
【図1】統合化ブリッジ・ロジック・ユニットを含むコ
ンピュータ・システムのブロック図である。
【図2】ブリッジ・ロジック・ユニットの一実施形態の
ブロック図である。
【図3】CPUインターフェースの一実施態様のブロッ
ク図である。
【図4】PCIインターフェースの適切な実施形態の構
成を示すブロック図である。
【図5】PCIインターフェース・マスタ制御ユニット
内で用いるPCIマスタ一時リード・バッファの一実施
態様のブロック図である。
【図6】PCIインターフェース・マスタ制御ユニット
内で用いるPCIマスタ一時ライト・バッファの一実施
態様のブロック図である。
【図7】PCIスレーブ一時リード・バッファの実施態
様の一例の構成を示す図である。
【図8】AGPインターフェースの一実施形態のブロッ
ク図である。
【図9】メモリ・キュー・マネージャの一実施形態のブ
ロック図である。
【図10】ライト要求キューの実施態様の一例に関連す
る種々の構成を、ライト要求キュー・スヌープ・ロジッ
ク・ユニットの関連する構成と共に示す図である。
【図11】非ローカル・メモリ(PCI/AGP)キュ
ー・マネージャの一実施形態のブロック図である。
【図12】CPU101からAGPバス101への要求
とPCIバス114からAGPバス110への要求とを
仲裁するための詳細を示すブロック図である。
【図13】アービトレーション・アルゴリズムによる動
作をフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591030868 20555 State Highway 249,Houston,Texas 77070,United States o f America (72)発明者 カルダウン・アルジェン アメリカ合衆国テキサス州77095−4322, ヒューストン,クラウン・メドウ・コート 17227 (72)発明者 マリア・エル・メロ アメリカ合衆国テキサス州77070,ヒュー ストン,ホヤ・コート 14811

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムにおいて、 CPUバスに接続されたマイクロプロセッサと、 第1のバスに接続された第1の周辺デバイスと、 第2の周辺バスに接続されたディスプレイ装置と、 CPUバス、第1のバス及び第2のバスとの間にインタ
    ーフェースを提供するバス・ブリッジであって、マイク
    ロプロセッサ及び第1の周辺デバイスによる第2のバス
    へのアクセス要求を仲裁し、かつ、第2の周辺バスへの
    ペンディング状態のアクセス要求が存在しない場合に、
    CPUバスに止まるよう構成された仲裁ロジックを含む
    バス・ブリッジとを備えていることを特徴とするコンピ
    ュータ・システム。
  2. 【請求項2】 請求項1記載のコンピュータ・システム
    において、バス・ブリッジは、CPUバスに接続された
    CPUインターフェースと、第1の周辺デバイスに接続
    された第1の周辺バスと、第2の周辺バスに接続された
    第2の周辺デバイスとを含んでいることを特徴とするコ
    ンピュータ・システム。
  3. 【請求項3】 請求項2記載のコンピュータ・システム
    において、第1の周辺バスは、周辺要素相互接続PCI
    バスであることを特徴とするコンピュータ・システム。
  4. 【請求項4】 請求項2記載のコンピュータ・システム
    において、第2の周辺バスは、アドバンスト・グラフィ
    ックス・ポート(AGP)バスであることを特徴とする
    コンピュータ・システム。
  5. 【請求項5】 請求項2記載のコンピュータ・システム
    において、第1の周辺バスがPCIバスであり、第2の
    バスがAGPバスであることを特徴とするコンピュータ
    ・システム。
  6. 【請求項6】 請求項5記載のコンピュータ・システム
    において、仲裁ロジックは、AGPバスへのペンディン
    グ状態のアクセス要求が存在しない場合に、CPUバス
    に仲裁ロジックが停留していることを表すアクノレッジ
    信号を、CPUインターフェースに提供するよう構成さ
    れていることを特徴とするコンピュータ・システム。
  7. 【請求項7】 請求項6記載のコンピュータ・システム
    において、CPUインターフェースは、マイクロプロセ
    ッサからディスプレイ装置に対するアクセス要求を受け
    取ったときに、仲裁ロジックに要求信号をアサートする
    ことを特徴とするコンピュータ・システム。
  8. 【請求項8】 請求項7記載のコンピュータ・システム
    において、仲裁ロジックは、CPUインターフェースが
    現在の仲裁サイクルの勝者である場合に、CPUインタ
    ーフェースに対してアクノレッジ信号を提供するよう構
    成されていることを特徴とするコンピュータ・システ
    ム。
  9. 【請求項9】 請求項8記載のコンピュータ・システム
    において、CPUインターフェースはさらに、特定の要
    求が、CPUバス上において開始されたバースト・サイ
    クルに関連する最後の要求に対応するかどうかを表す制
    御信号をアサートするように構成されていることを特徴
    とするコンピュータ・システム。
  10. 【請求項10】 請求項9記載のコンピュータ・システ
    ムにおいて、仲裁ロジックは、特定の要求がバースト・
    サイクルに関連する最後の要求に対応していないことを
    制御信号が表している場合に、CPUインターフェース
    に止まるよう構成されていることを特徴とするコンピュ
    ータ・システム。
  11. 【請求項11】 請求項10記載のコンピュータ・シス
    テムにおいて、仲裁ロジックは、ある要求がバースト・
    サイクルに関連する最後の要求に対応していることを制
    御信号が表すようになるまで、CPUインターフェース
    に止まるよう構成されていることを特徴とするコンピュ
    ータ・システム。
  12. 【請求項12】 請求項11記載のコンピュータ・シス
    テムにおいて、仲裁ロジックは、マイクロプロセッサ及
    び第1の周辺デバイスによる第2のバスへの競合するア
    クセス要求を、ラウンド・ロビン仲裁アルゴリズムを用
    いて仲裁するよう構成されていることを特徴とするコン
    ピュータ・システム。
  13. 【請求項13】 請求項5記載のコンピュータ・システ
    ムにおいて、第1の周辺バスのインターフェースは、第
    1の周辺デバイスからディスプレイ装置へのアクセス要
    求を受け取ったときに、仲裁ロジックに供給信号をアサ
    ートするよう構成されていることを特徴とするコンピュ
    ータ・システム。
  14. 【請求項14】 請求項13記載のコンピュータ・シス
    テムにおいて、仲裁ロジックは、第1の周辺バスのイン
    ターフェースが現在の仲裁サイクルの勝者であると判定
    したときに、第1の周辺バスのインターフェースにアク
    ノレッジ信号を供給するよう構成されていることを特徴
    とするコンピュータ・システム。
  15. 【請求項15】 請求項14記載のコンピュータ・シス
    テムにおいて、第1の周辺バスのインターフェースは、
    さらに、特定の要求が、第1の周辺バス上において開始
    されたバースト・サイクルに関連する最後の要求に対応
    するかどうかを表す制御信号をアサートするように構成
    されていることを特徴とするコンピュータ・システム。
  16. 【請求項16】 請求項15記載のコンピュータ・シス
    テムにおいて、仲裁ロジックは、特定の要求がバースト
    ・サイクルに関連する最後の要求に対応していないこと
    を、制御信号が表している場合に、第1の周辺バスのイ
    ンターフェースに止まるように構成されていることを特
    徴とするコンピュータ・システム。
  17. 【請求項17】 請求項16記載のコンピュータ・シス
    テムにおいて、仲裁ロジックは、ある要求がバースト・
    サイクルに関連する最後の要求に対応していることが、
    制御信号によって表されるまで、第1の周辺バスのイン
    ターフェースに止まるように構成されていることを特徴
    とするコンピュータ・システム。
  18. 【請求項18】 請求項1記載のコンピュータ・システ
    ムにおいて、仲裁ロジックは、マイクロプロセッサと第
    1の周辺デバイスとによる第2のバスへの競合するアク
    セス要求を、ラウンド・ロビンアルゴリズムを用いて仲
    裁するように構成されていることを特徴とするコンピュ
    ータ・システム。
  19. 【請求項19】 コンピュータ・システムにおいて、 CPUバスに接続されたマイクロプロセッサと、 PCIバスに接続された第1の周辺デバイスと、 AGPバスに接続されたディスプレイ装置と、 CPUバス、PCIバス及びAGPバスの間のインター
    フェースを提供するバス・ブリッジとを備え、 バス・ブリッジは、 CPUバスに接続され、マイクロプロセッサからのAG
    Pバスへのアクセス要求を受け取るよう構成されている
    CPUインターフェースと、 PCIバスに接続され、第1の周辺デバイスによるAG
    Pバスへのアクセス要求を受け取るよう構成されている
    PCIインターフェースと、 マクロプロセッサ及び第1の周辺デバイスによるAGP
    バスへのアクセス要求を仲裁する仲裁機構であって、A
    GPバスへのペンディング状態のアクセス要求が存在し
    ない場合に、CPUバス上に止まるよう構成されている
    仲裁機構とを含んでいることを特徴とするコンピュータ
    ・システム。
  20. 【請求項20】 請求項19記載のコンピュータ・シス
    テムにおいて、CPUインターフェースは更に、特定の
    要求がCPUバス上で開始されたバースト・サイクルに
    関連する最後の要求に対応しているかどうかを表す制御
    信号を、アサートするように構成されていることを特徴
    とするコンピュータ・システム。
  21. 【請求項21】 請求項20記載のコンピュータ・シス
    テムにおいて、仲裁機構は、特定の要求がバースト・サ
    イクルに関連する最後の要求に対応しないことを、制御
    信号が表している場合に、CPUインターフェース上に
    止まるよう構成されていることを特徴とするコンピュー
    タ・システム。
  22. 【請求項22】 請求項21記載のコンピュータ・シス
    テムにおいて、仲裁機構は、ある要求がバースト・サイ
    クルに関連する最後の要求に対応するものであること
    を、制御信号が表すまで、CPUインターフェース上に
    止まるよう構成されていることを特徴とするコンピュー
    タ・システム。
  23. 【請求項23】 請求項19記載のコンピュータ・シス
    テムにおいて、PCIインターフェースはさらに、特定
    の要求がPCIバス上で開始されたバースト・サイクル
    に関連する最後の要求に対応しているかどうかを表す制
    御信号を、アサートするように構成されていることを特
    徴とするコンピュータ・システム。
  24. 【請求項24】 請求項23記載のコンピュータ・シス
    テムにおいて、仲裁機構は、特定の要求がバースト・サ
    イクルに関連する最後の要求に対応しないことを、制御
    信号が表している場合に、PCIインターフェース上に
    止まるよう構成されていることを特徴とするコンピュー
    タ・システム。
  25. 【請求項25】 請求項24記載のコンピュータ・シス
    テムにおいて、仲裁機構は、ある要求がバースト・サイ
    クルに関連する最後の要求に対応するものであること
    を、制御信号が表すまで、CPUインターフェース上に
    止まるよう構成されていることを特徴とするコンピュー
    タ・システム。
  26. 【請求項26】 請求項19記載のコンピュータ・シス
    テムにおいて、CPUインターフェースは、1組のトラ
    ンザクションがロックされたことを表すためにLOCK
    信号をアサートするよう構成され、かつ、仲裁機構は、
    LOCK信号がアサートされたときに該LOCK信号が
    デアサートされるまで、CPUインターフェース上に止
    まるよう構成されていることを特徴とするコンピュータ
    ・システム。
  27. 【請求項27】 ディスプレイデバイスに接続された第
    1の周辺バスへのアクセスを仲裁する方法であって、コ
    ンピュータ・システムが、CPUバスを介してバス・ブ
    リッジに接続されたマイクロプロセッサと、第2の周辺
    バスを介してバス・ブリッジに接続された周辺デバイス
    とを備えている、方法において、 第1の周辺バスへのペンディング状態の要求が存在しな
    いときに、マイクロプロセッサに対して仲裁機構を停留
    するステップと、 マイクロプロセッサからの第1の周辺バスへのアクセス
    要求を受け取るステップと、 周辺デバイスからの第1の周辺バスへの競合するアクセ
    ス要求を受け取るステップと、 最初の要求と次の要求とを、ラウンド・ロビン仲裁アル
    ゴリズムを用いて仲裁するステップとからなることを特
    徴とする仲裁方法。
  28. 【請求項28】 請求項27記載の方法において、該方
    法はさらに、 特定の要求がバースト・サイクルの最後の要求に対応し
    ているかどうかを表す制御信号を発生するステップと、 特定の要求がバースト・サイクルに関連する最後の要求
    ではないことを制御信号が表している限り、第1の周辺
    バスの使用を仲裁の勝者側のデバイスに許可するステッ
    プとを含んでいることを特徴とする方法。
JP10365121A 1997-12-22 1998-12-22 グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム Withdrawn JPH11328106A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US99576497A 1997-12-22 1997-12-22
US995764 1997-12-22

Publications (1)

Publication Number Publication Date
JPH11328106A true JPH11328106A (ja) 1999-11-30

Family

ID=25542184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10365121A Withdrawn JPH11328106A (ja) 1997-12-22 1998-12-22 グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム

Country Status (2)

Country Link
EP (1) EP0924623A3 (ja)
JP (1) JPH11328106A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528560A (ja) * 2004-03-11 2007-10-11 ソニックス・インコーポレーテッド 幅とバースト変換のための種々の方法及び装置
JP2010108275A (ja) * 2008-10-30 2010-05-13 Mitsubishi Electric Corp バス制御装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2336273B (en) * 1998-01-30 2003-05-21 * Sgs-Thomson Microelectronics Limited A system for accessing resources
US6738845B1 (en) 1999-11-05 2004-05-18 Analog Devices, Inc. Bus architecture and shared bus arbitration method for a communication device
WO2001035234A1 (en) * 1999-11-05 2001-05-17 Analog Devices, Inc. Generic serial port architecture and system
WO2001046812A2 (de) * 1999-12-21 2001-06-28 Elsa Aktiengesellschaft Schaltung und verfahren zum betrieb eines agp-controllers an einem pci-steckplatz
US6490644B1 (en) 2000-03-08 2002-12-03 International Business Machines Corporation Limiting write data fracturing in PCI bus systems
US6789154B1 (en) * 2000-05-26 2004-09-07 Ati International, Srl Apparatus and method for transmitting data
GB0028353D0 (en) 2000-11-21 2001-01-03 Aspex Technology Ltd Improvements relating to digital data communications
GB0031763D0 (en) * 2000-12-29 2001-02-07 Mitel Semiconductor Ltd Arbiter for a queue management system
US9189433B2 (en) * 2012-12-18 2015-11-17 International Business Machines Corporation Tracking a relative arrival order of events being stored in multiple queues using a counter
US9389906B2 (en) 2013-12-23 2016-07-12 Intel Corporation Latency agnostic transaction buffer for request-grant protocols
US9575822B2 (en) 2014-08-01 2017-02-21 Globalfoundries Inc. Tracking a relative arrival order of events being stored in multiple queues using a counter using most significant bit values

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2100700C (en) * 1993-07-16 2000-01-11 Robert P. Bicevskis Multi-media computer architecture
US6035362A (en) * 1996-06-05 2000-03-07 Goodrum; Alan L. Storing data associated with one request while continuing to store data associated with a previous request from the same device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528560A (ja) * 2004-03-11 2007-10-11 ソニックス・インコーポレーテッド 幅とバースト変換のための種々の方法及び装置
JP2010108275A (ja) * 2008-10-30 2010-05-13 Mitsubishi Electric Corp バス制御装置

Also Published As

Publication number Publication date
EP0924623A2 (en) 1999-06-23
EP0924623A3 (en) 2000-07-05

Similar Documents

Publication Publication Date Title
US6199131B1 (en) Computer system employing optimized delayed transaction arbitration technique
US6279087B1 (en) System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations
US6212590B1 (en) Computer system having integrated bus bridge design with delayed transaction arbitration mechanism employed within laptop computer docked to expansion base
US5987555A (en) Dynamic delayed transaction discard counter in a bus bridge of a computer system
US6434672B1 (en) Methods and apparatus for improving system performance with a shared cache memory
US5463753A (en) Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US6275885B1 (en) System and method for maintaining ownership of a processor bus while sending a programmed number of snoop cycles to the processor cache
US5787486A (en) Bus protocol for locked cycle cache hit
US5353415A (en) Method and apparatus for concurrency of bus operations
US8046539B2 (en) Method and apparatus for the synchronization of distributed caches
EP0748481B1 (en) Highly pipelined bus architecture
US5875467A (en) Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US5893153A (en) Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control
US6681283B1 (en) Coherent data apparatus for an on-chip split transaction system bus
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6321307B1 (en) Computer system and method employing speculative snooping for optimizing performance
EP0743601A2 (en) A system and method for improving cache performance in a multiprocessing system
WO1994008297A9 (en) Method and apparatus for concurrency of bus operations
US6553442B1 (en) Bus master for SMP execution of global operations utilizing a single token with implied release
US5918069A (en) System for simultaneously writing back cached data via first bus and transferring cached data to second bus when read request is cached and dirty
US6272601B1 (en) Critical word forwarding in a multiprocessor system
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051021

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070105