JPH11316707A - 適応推測読み出し動作を実行可能なバス・ブリッジを含むコンピュータ・システム - Google Patents
適応推測読み出し動作を実行可能なバス・ブリッジを含むコンピュータ・システムInfo
- Publication number
- JPH11316707A JPH11316707A JP10365433A JP36543398A JPH11316707A JP H11316707 A JPH11316707 A JP H11316707A JP 10365433 A JP10365433 A JP 10365433A JP 36543398 A JP36543398 A JP 36543398A JP H11316707 A JPH11316707 A JP H11316707A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- read
- request
- data
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003044 adaptive effect Effects 0.000 title description 11
- 239000000872 buffer Substances 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims description 20
- 230000002093 peripheral effect Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 14
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 description 39
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 13
- 230000003111 delayed effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 6
- 230000008685 targeting Effects 0.000 description 6
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101150116940 AGPS gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【課題】適応推測読み出しにより、メモリ・ヒット率及
び効率を向上させる。 【解決手段】CPUバス103とPCIバスとを接続す
るブリッジ・ロジック・ユニットは、CPUバス・イン
ターフェース制御ユニット302を備えたCPUインタ
ーフェースを204を備えている。制御ユニット302
がCPUから最初の読み出し要求を受け取ると、フェッ
チ制御ユニット802の制御の下に、主メモリから一つ
のデータ・ラインをフェッチし、連続するデータ・ライ
ンに対する読み出し要求を受け取ると、要求されたデー
タ・ラインだけでなく、連続するデータ・ラインも推測
してフェッチする。CPUが不連続データ・ラインに対
するメモリ読み出しを要求すると、そのデータ・ライン
のみをフェッチする。推測フェッチにより、メモリ読み
出し効率が向上する。
び効率を向上させる。 【解決手段】CPUバス103とPCIバスとを接続す
るブリッジ・ロジック・ユニットは、CPUバス・イン
ターフェース制御ユニット302を備えたCPUインタ
ーフェースを204を備えている。制御ユニット302
がCPUから最初の読み出し要求を受け取ると、フェッ
チ制御ユニット802の制御の下に、主メモリから一つ
のデータ・ラインをフェッチし、連続するデータ・ライ
ンに対する読み出し要求を受け取ると、要求されたデー
タ・ラインだけでなく、連続するデータ・ラインも推測
してフェッチする。CPUが不連続データ・ラインに対
するメモリ読み出しを要求すると、そのデータ・ライン
のみをフェッチする。推測フェッチにより、メモリ読み
出し効率が向上する。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムに関し、更に特定すれば、高性能コンピュータ・
システムにおいて使用するための統合型バス・ブリッジ
設計に関するものである。また、本発明は、コンピュー
タ・システムにおいて採用されるプリフェッチ機構にも
関するものである。
ステムに関し、更に特定すれば、高性能コンピュータ・
システムにおいて使用するための統合型バス・ブリッジ
設計に関するものである。また、本発明は、コンピュー
タ・システムにおいて採用されるプリフェッチ機構にも
関するものである。
【0002】
【従来の技術】コンピュータ・アーキテクチャは、一般
的に、1系統以上のバスによって相互接続された複数の
デバイスを含む。例えば、従来のコンピュータ・システ
ムは、通常、ブリッジ・ロジックを通じて外部の主メモ
リに結合されたCPUを含む。このため、ブリッジ・ロ
ジックには主メモリ・コントローラが組み込まれてお
り、主メモリにアクセスするために種々の制御信号を発
生する。周辺要素相互接続(PCI)バスのような広帯
域ローカル拡張バスに対するインターフェースが、ブリ
ッジ・ロジックの一部として含まれる場合もある。ロー
カル拡張バスに結合可能なデバイスの例には、ネットワ
ーク・インターフェース・カード、ビデオ・アクセレレ
ータ、オーディオ・カード、SCSIアダプタ、電話カ
ード等が含まれる。旧式の拡張バスでさえも、追加のバ
ス・インターフェースによって対応可能となり、以前の
バージョンの拡張バス・アダプタとの互換性を得ること
ができる。かかる拡張バスの例には、ATバスとも呼ば
れている業界標準アーキテクチャ(ISA)バス、拡張
業界標準アーキテクチャ(EISA)バス、及びマイク
ロチャネル・アーキテクチャ(MCA)バスが含まれ
る。この二次拡張バスには、ファックス/モデム・カー
ド、サウンド・カード等を含む種々のデバイスを結合す
ることができる。
的に、1系統以上のバスによって相互接続された複数の
デバイスを含む。例えば、従来のコンピュータ・システ
ムは、通常、ブリッジ・ロジックを通じて外部の主メモ
リに結合されたCPUを含む。このため、ブリッジ・ロ
ジックには主メモリ・コントローラが組み込まれてお
り、主メモリにアクセスするために種々の制御信号を発
生する。周辺要素相互接続(PCI)バスのような広帯
域ローカル拡張バスに対するインターフェースが、ブリ
ッジ・ロジックの一部として含まれる場合もある。ロー
カル拡張バスに結合可能なデバイスの例には、ネットワ
ーク・インターフェース・カード、ビデオ・アクセレレ
ータ、オーディオ・カード、SCSIアダプタ、電話カ
ード等が含まれる。旧式の拡張バスでさえも、追加のバ
ス・インターフェースによって対応可能となり、以前の
バージョンの拡張バス・アダプタとの互換性を得ること
ができる。かかる拡張バスの例には、ATバスとも呼ば
れている業界標準アーキテクチャ(ISA)バス、拡張
業界標準アーキテクチャ(EISA)バス、及びマイク
ロチャネル・アーキテクチャ(MCA)バスが含まれ
る。この二次拡張バスには、ファックス/モデム・カー
ド、サウンド・カード等を含む種々のデバイスを結合す
ることができる。
【0003】ブリッジ・ロジックは、CPUバス、PC
Iバスのような周辺バス、及びメモリ・バスに、単にリ
ンク即ちインターフェースすることができるだけではな
い。グラフィックスを大量に用いる用途では、グラフィ
ックスに関連する転送のために最適化した別個の周辺バ
スも、ブリッジ・ロジックによる対応が可能となる。こ
のようなバスの例として、AGP(Advanced
Graphics Port:アドバンスド・グラフィ
ックス・ポート)バスが普及している。AGPは、一般
的に、三次元グラフィック表示の用途に最適化された、
高性能な構成要素レベルの相互接続機構と考えられてお
り、PCIに対する1組の性能拡張即ち性能向上を基本
としている。AGPは、三次元レンダリング(rend
ering)に対するメモリ容量の要求増大を一要因と
して開発されたものである。AGPは、グラフィックス
・アクセレレータとシステム・メモリとの間のデータ転
送に、1桁高い帯域の改善をもたらした。これによっ
て、三次元レンダリング・データ構造のいくつかを効果
的に主メモリにシフトできるようになり、グラフィック
ス・アクセレレータ又はフレーム・バッファに専用の大
容量のメモリを組み込むコストが軽減されることになっ
た。
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と周辺バスとの間、及びブリッジ・
ロジックを通じて相互接続されている周辺デバイス間に
おけるデータ転送に関しても、その処理能力は比較的低
いものであった。
al baseline)としてPCI仕様を用い、そ
の上3つの重要な処理能力の拡張即ち向上をこの仕様に
与えている。これらの拡張には、高度にパイプライン化
した(deeply pipelined )読み出し
(リード)及び書き込み(ライト)動作、AGPバス上
のアドレス及びデータのデマルチプレクス処理、ならび
にデータ転送高速化のためのタイミング仕様が含まれ
る。元来、コンピュータ・システムは、業務用アプリケ
ーション、とりわけワード・プロセッシング及びスプレ
ッドシートを含むアプリケーションのために開発された
ものであるので、このようなシステム内のブリッジ・ロ
ジックは一般的に、CPUの主メモリへのアクセスに関
して比較的高い性能をCPUに与えるように最適化され
てきた。しかしながら、ブリッジ・ロジックは、一般的
に、周辺バス上に位置する他のデバイスによる主メモリ
へのアクセスに関しては、発揮する処理能力は比較的低
く、同様に、CPUと周辺バスとの間、及びブリッジ・
ロジックを通じて相互接続されている周辺デバイス間に
おけるデータ転送に関しても、その処理能力は比較的低
いものであった。
【0005】しかしながら、最近になって、コンピュー
タ・システムは、ビデオ及びオーディオ、電話(tel
ephony)、ならびに音声認識のようなマルチメデ
ィアの用途を含む、種々のリアル・タイム・アプリケー
ションを処理するために増々利用されるようになってき
ている。これらのシステムでは、CPUが主メモリに対
して適切なアクセスを有することだけでなく、AGPバ
スやPCIバスのような種々の周辺バス上に位置するデ
バイスが主メモリに対して公平なアクセスを有すること
も必要である。更に、CPU、AGPバス及びPCIバ
ス間のトランザクションが効率的に処理されることが、
多くの場合重要となる。したがって、最新のコンピュー
タ・システムのためのバス・ブリッジ・ロジックは、主
メモリ及びブリッジ・ロジックを通じて結合されている
その他のシステム構成要素に対してアクセスしようとす
るデバイスの様々な要求間で、効率的に優先順位を決定
し、アービトレーション(仲裁)する機構を含まなけれ
ばならない。
タ・システムは、ビデオ及びオーディオ、電話(tel
ephony)、ならびに音声認識のようなマルチメデ
ィアの用途を含む、種々のリアル・タイム・アプリケー
ションを処理するために増々利用されるようになってき
ている。これらのシステムでは、CPUが主メモリに対
して適切なアクセスを有することだけでなく、AGPバ
スやPCIバスのような種々の周辺バス上に位置するデ
バイスが主メモリに対して公平なアクセスを有すること
も必要である。更に、CPU、AGPバス及びPCIバ
ス間のトランザクションが効率的に処理されることが、
多くの場合重要となる。したがって、最新のコンピュー
タ・システムのためのバス・ブリッジ・ロジックは、主
メモリ及びブリッジ・ロジックを通じて結合されている
その他のシステム構成要素に対してアクセスしようとす
るデバイスの様々な要求間で、効率的に優先順位を決定
し、アービトレーション(仲裁)する機構を含まなけれ
ばならない。
【0006】
【発明が解決しようとする課題】コンピュータ・システ
ムのバス・ブリッジ・ロジックは、CPU又は周辺デバ
イスが現時点での要求(現要求)に対して連続するデー
タを要求するであろうとの予測の下に、推測的にデータ
をフェッチするように構成することも可能である。例え
ば、システムの中には、CPUが特定のアドレスに位置
するデータを要求すると、バス・ブリッジ設計内に組み
込まれている推測リード・ロジックが、要求されたデー
タを含むデータ・ラインをフェッチし、加えて、連続す
るデータ・ラインを要求する。次に、プロセッサが更に
連続するデータ・ラインを要求した場合、推測リード・
ロジックは、次のデータ・ラインをプリフェッチし続け
る。プロセッサが連続するデータを読み続ける限り、推
測リード・ロジックによって要求されるリードの数は、
2−1−1−1というパターンに従うことになる。この
ように、データのフェッチは、実際に必要なデータより
も1ライン先に発生する。このようにすることによっ
て、要求が連続的に行われる限り、メモリ・アクセスに
伴うレイテンシが減少するために、処理能力を向上させ
ることができる。しかしながら、CPUは常に連続する
ラインからデータを要求する訳ではないので、推測リー
ド・ロジックは、連続アクセス・パターンでない場合に
は、2−2−2−2の読み出しパターンを形成する場合
もある。このようなアクセスが行われると、各々の場合
における2回目の読み出し(即ち、推測リード・デー
タ)は破棄され、メモリ容量を浪費する結果となる。こ
のため、システムの全体的な性能が低下する虞れがあ
る。
ムのバス・ブリッジ・ロジックは、CPU又は周辺デバ
イスが現時点での要求(現要求)に対して連続するデー
タを要求するであろうとの予測の下に、推測的にデータ
をフェッチするように構成することも可能である。例え
ば、システムの中には、CPUが特定のアドレスに位置
するデータを要求すると、バス・ブリッジ設計内に組み
込まれている推測リード・ロジックが、要求されたデー
タを含むデータ・ラインをフェッチし、加えて、連続す
るデータ・ラインを要求する。次に、プロセッサが更に
連続するデータ・ラインを要求した場合、推測リード・
ロジックは、次のデータ・ラインをプリフェッチし続け
る。プロセッサが連続するデータを読み続ける限り、推
測リード・ロジックによって要求されるリードの数は、
2−1−1−1というパターンに従うことになる。この
ように、データのフェッチは、実際に必要なデータより
も1ライン先に発生する。このようにすることによっ
て、要求が連続的に行われる限り、メモリ・アクセスに
伴うレイテンシが減少するために、処理能力を向上させ
ることができる。しかしながら、CPUは常に連続する
ラインからデータを要求する訳ではないので、推測リー
ド・ロジックは、連続アクセス・パターンでない場合に
は、2−2−2−2の読み出しパターンを形成する場合
もある。このようなアクセスが行われると、各々の場合
における2回目の読み出し(即ち、推測リード・デー
タ)は破棄され、メモリ容量を浪費する結果となる。こ
のため、システムの全体的な性能が低下する虞れがあ
る。
【0007】
【課題を解決するための手段】上記した従来例の問題点
は、本発明による推測リード・ロジックを有するバス・
ブリッジ装置を含むコンピュータ・システムによって、
ほぼ解決される。本発明の一実施形態のコンピュータ・
システムは、ブリッジ・ロジック・ユニットを通じて主
メモリに結合されたマイクロプロセッサを含む。ブリッ
ジ・ロジック・ユニットは、マイクロプロセッサからメ
モリ読み出し要求を受け取り、この要求を主メモリに供
給する。ブリッジ・ロジック・ユニットは、メモリ・フ
ェッチ制御ユニットを含み、マイクロプロセッサからの
最初の読み出し要求に応答して、主メモリから単一のデ
ータ・ラインをフェッチするように構成されている。連
続するデータ・ラインに対する読み出し要求をマイクロ
プロセッサから受け取った場合、メモリ・フェッチ制御
ユニットは、要求されたデータ・ラインだけでなく、次
の連続するデータ・ラインもフェッチする。このよう
に、単一のデータ・ラインをフェッチする最初の読み出
し要求に続いて、マイクロプロセッサが連続するライン
からのデータに対する要求を発行した場合、そのライン
をフェッチし、更に連続するラインも推測的にプリフェ
ッチする。マイクロプロセッサが更に連続するラインに
対する要求を続ける場合、メモリ・フェッチ・ユニット
は、次の連続するラインに対するその推測的な要求の発
生を続ける。マイクロプロセッサが不連続なデータ・ラ
インに対するメモリ読み出し要求を発行した場合、メモ
リ・フェッチ制御ユニットは、そのデータ・ラインのみ
をフェッチする。
は、本発明による推測リード・ロジックを有するバス・
ブリッジ装置を含むコンピュータ・システムによって、
ほぼ解決される。本発明の一実施形態のコンピュータ・
システムは、ブリッジ・ロジック・ユニットを通じて主
メモリに結合されたマイクロプロセッサを含む。ブリッ
ジ・ロジック・ユニットは、マイクロプロセッサからメ
モリ読み出し要求を受け取り、この要求を主メモリに供
給する。ブリッジ・ロジック・ユニットは、メモリ・フ
ェッチ制御ユニットを含み、マイクロプロセッサからの
最初の読み出し要求に応答して、主メモリから単一のデ
ータ・ラインをフェッチするように構成されている。連
続するデータ・ラインに対する読み出し要求をマイクロ
プロセッサから受け取った場合、メモリ・フェッチ制御
ユニットは、要求されたデータ・ラインだけでなく、次
の連続するデータ・ラインもフェッチする。このよう
に、単一のデータ・ラインをフェッチする最初の読み出
し要求に続いて、マイクロプロセッサが連続するライン
からのデータに対する要求を発行した場合、そのライン
をフェッチし、更に連続するラインも推測的にプリフェ
ッチする。マイクロプロセッサが更に連続するラインに
対する要求を続ける場合、メモリ・フェッチ・ユニット
は、次の連続するラインに対するその推測的な要求の発
生を続ける。マイクロプロセッサが不連続なデータ・ラ
インに対するメモリ読み出し要求を発行した場合、メモ
リ・フェッチ制御ユニットは、そのデータ・ラインのみ
をフェッチする。
【0008】このように、メモリ・フェッチ制御ユニッ
トは、適応推測読み出しアルゴリズムを実施し、連続し
て要求を受け取った場合にのみ、推測読み出しデータを
プリフェッチする。連続アクセス・パターンではない
間、読み出し要求の数は、1−1−1−1のパターンに
従う。したがって、不正確なデータ推測フェッチングを
防止することができる。一方、連続要求が繰り返し行わ
れる場合、1−2−1−1−1という読み出し要求パタ
ーンが得られる。この場合、連続アクセスが終了するま
で、最初の連続アクセスの検出時に推測データが連続的
にフェッチされる。これによって、ヒット率及びビット
効率の向上を達成することができ、メモリ容量を保存す
ることが可能となる。本発明のその他の目的及び利点
は、以下の詳細な説明を読み、添付図面を参照すること
により明白となろう。
トは、適応推測読み出しアルゴリズムを実施し、連続し
て要求を受け取った場合にのみ、推測読み出しデータを
プリフェッチする。連続アクセス・パターンではない
間、読み出し要求の数は、1−1−1−1のパターンに
従う。したがって、不正確なデータ推測フェッチングを
防止することができる。一方、連続要求が繰り返し行わ
れる場合、1−2−1−1−1という読み出し要求パタ
ーンが得られる。この場合、連続アクセスが終了するま
で、最初の連続アクセスの検出時に推測データが連続的
にフェッチされる。これによって、ヒット率及びビット
効率の向上を達成することができ、メモリ容量を保存す
ることが可能となる。本発明のその他の目的及び利点
は、以下の詳細な説明を読み、添付図面を参照すること
により明白となろう。
【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に対する
インターフェースにも対処するようにしてもよい。
ブロック図である。コンピュータ・システム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、ならびに種々
のシリアル及びパラレル・ポートのための動作的支援を
与えることも可能である。
ェースを備えることに加えて、必要に応じて、二次ブリ
ッジ・ロジック・ユニット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
は、モデムのような種々の形式の周辺デバイスを表すも
のである。
アム・プロ(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」)等が含まれる。
ディスプレイ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の構成要素は、単
一のモノリシック集積回路チップ上に構築することがで
きる。
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サイクル、コンフィギ
ュレーション・サイクル、特殊サイクル、及び主メモリ
・アドレス範囲外のアドレス範囲に対するメモリ・サイ
クルを含んでいる。
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】図2のブリッジ・ロジック・ユニット10
2は、CPU101の読み出し要求に伴うリード・デー
タのプリフェッチ処理を最適化する、適応推測読み出し
アルゴリズムを実現するように構成されている。一実施
形態では、CPUインターフェース204は、プリフェ
ッチ機構を、CPU101による最初の読み出し要求に
応答して、メモリ104から単一のデータ・ラインをフ
ェッチする。CPU101が連続するデータ・ラインに
対するメモリ読み出しを要求した場合、メモリ・フェッ
チ・ユニットは、その要求された連続するデータ・ライ
ン、及び要求されたラインの先のライン双方を要求す
る。この2番目の推測的にフェッチしたデータ・ライン
は、最終的に追加の後続ライン群がCPU101によっ
て要求されるであろうという予測の下に要求したもので
ある。CPU101が実際に再度続いて読み出し要求を
行い、推測的にプリフェッチしたラインがヒットした場
合、プリフェッチ機構は、更に追加の後続ラインを推測
的にフェッチする。一方、CPU101が不連続なライ
ンを要求した場合、フェッチ・ユニットは要求されたラ
インだけを要求し、推測フェッチを要求しない。
2は、CPU101の読み出し要求に伴うリード・デー
タのプリフェッチ処理を最適化する、適応推測読み出し
アルゴリズムを実現するように構成されている。一実施
形態では、CPUインターフェース204は、プリフェ
ッチ機構を、CPU101による最初の読み出し要求に
応答して、メモリ104から単一のデータ・ラインをフ
ェッチする。CPU101が連続するデータ・ラインに
対するメモリ読み出しを要求した場合、メモリ・フェッ
チ・ユニットは、その要求された連続するデータ・ライ
ン、及び要求されたラインの先のライン双方を要求す
る。この2番目の推測的にフェッチしたデータ・ライン
は、最終的に追加の後続ライン群がCPU101によっ
て要求されるであろうという予測の下に要求したもので
ある。CPU101が実際に再度続いて読み出し要求を
行い、推測的にプリフェッチしたラインがヒットした場
合、プリフェッチ機構は、更に追加の後続ラインを推測
的にフェッチする。一方、CPU101が不連続なライ
ンを要求した場合、フェッチ・ユニットは要求されたラ
インだけを要求し、推測フェッチを要求しない。
【0017】ブリッジ・ロジック・ユニット102が実
現する適応推測リード・アルゴリズムは、メモリからの
データの推測的なプリフェッチ処理に関して、ヒット率
を高めるという結果が得られる利点がある。これは、一
旦推測アクセスが行われると、続いて推測アクセスが複
数回行われるからである。不連続なアクセス・パターン
が支配的な状況では、必要とされるデータのみを通常フ
ェッチし、不要なデータの推測プリフェッチによるメモ
リの浪費を回避する。一方、CPU101が概略的に連
続するアクセス・パターンを実行している状況では、メ
モリ・レイテンシを減少させることにより、処理能力の
向上を達成することができる。ブリッジ・ロジック・ユ
ニット102が採用する適応推測リード・アルゴリズム
に関する更なる詳細は、以下で図12及び図13に関連
付けて説明することにする。
現する適応推測リード・アルゴリズムは、メモリからの
データの推測的なプリフェッチ処理に関して、ヒット率
を高めるという結果が得られる利点がある。これは、一
旦推測アクセスが行われると、続いて推測アクセスが複
数回行われるからである。不連続なアクセス・パターン
が支配的な状況では、必要とされるデータのみを通常フ
ェッチし、不要なデータの推測プリフェッチによるメモ
リの浪費を回避する。一方、CPU101が概略的に連
続するアクセス・パターンを実行している状況では、メ
モリ・レイテンシを減少させることにより、処理能力の
向上を達成することができる。ブリッジ・ロジック・ユ
ニット102が採用する適応推測リード・アルゴリズム
に関する更なる詳細は、以下で図12及び図13に関連
付けて説明することにする。
【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に結合されている。
実現に関する更に詳しい内容について論ずる。図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バス・サイクルを同時にアクティブ状態にす
ることができる。
ト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上で完了したときに行われる。
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の
他のモジュールに通信するための簡単な機構を提供す
る。
ト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ビットのデータを抽出す
る。
モリ要求がメモリ・キュー・マネージャ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
だけ増分する。
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−メモリ一
時バッファ308は、常に主メモリ104から最大のキ
ャッシュ・ラインのデータを要求することができる。一
方、CPU−NLM一時バッファ310は、一度に1ク
アドワードのデータのみを要求する。リード・バック・
バッファ306を通って、主メモリ104からのデータ
読み出しのためのフィードバック経路が備えられてい
る。更に、バイパス経路307を備えることにより、デ
ータがリード・バック・バッファ306を迂回し、直接
CPUバス103上に通信させることも可能である。更
に、PCI/AGPキュー・マネージャ208からのリ
ード・データは、経路312上に提供される。
【0025】CPUインターフェース204は、ある種
の書き込みサイクルを常に転記(post)するよう
に、更にその他のサイクルは決して転記しないように構
成することができる。同様に、ある形式の読み出しサイ
クルでは、その結果としてスヌープが停止し、他の読み
出しサイクルでは停止しないということも可能である。
例えば、一実施形態では、I/Oサイクルについては決
して転記せず、主メモリ104及び非ローカル・メモリ
へのメモリ・サイクルを常に転記させるようにすること
ができる。I/O読み出し及び非ローカル・メモリ読み
出しでは、データが準備できるまで、スヌープを停止さ
せるようにするとよい。何故なら、ある状況の下では、
サイクルを再試行する必要がある場合もあるからであ
る。これについては以下で論じる。一方、主メモリへの
読み出し要求では、スヌープ・ストールが発生しないよ
うにし、むしろ要求されたデータがリード・バック・バ
ッファ306において入手可能となるまで、CPUバス
・インターフェース制御ユニット302が単にDRDY
信号のアサートを取り下げるようにしてもよい。尚、C
PU−メモリ一時バッファ308及びCPU−NLM一
時バッファ310は、適切なキュー・マネージャが要求
に応ずることができるようになるまで、CPU101か
らのアドレス及びデータを蓄積しておくことを可能とす
るためにライト・ポスティング・バッファ(write
posting buffer)として機能し、更に
多数の読み出しサイクルを未処理のままにしておくこと
ができるようにリード要求バッファとして機能するもの
である。
の書き込みサイクルを常に転記(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
に供給することを可能にする。
ンターフェース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上での適正なサイクルの実行に対処す
る。
適切な一実施形態の構成を示している。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との間のデー
タの転送を制御することも可能である。
から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によって受け取られるために、クワドワ
ードに整合される。
制御ユニット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によってリード・データも同様に選択してもよ
い。これについては、以下で更に詳しく論ずることにす
る。
制御ユニット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を含んでいる。
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に、この要求にはアドレス変換が必要である
ことを示す。
アサートされ、PCIトランザクションの開始が示され
ると、このトランザクションのアドレスがPCIスレー
ブ・アドレス・バッファ414内に格納される。PCI
インターフェース・スレーブ制御ユニット412は、更
に、実行中のサイクルの種別を示す、PCIバス114
からのコマンド情報を受信する。PCIインターフェー
ス・スレーブ制御ユニット412は、コマンド及びアド
レス情報をデコードし、トランザクションがバス・ブリ
ッジ・ユニット102を目標とするのか否かについて判
定を行うように構成されており、更に、DEVSEL_
信号をアサートし、適切なときに、サイクルを要求す
る。各アドレスがPCIスレーブ・アドレス・バッファ
414内に格納されるので、PCIアドレスをデコード
して、何時グラフィックス・アドレスの変換が必要なの
かについて判定する。PCIアドレスが、GART(グ
ラフィックス・アダプタ・リマップ・テーブル)機構
(図示せず)によって規定される仮想グラフィックス・
アドレス範囲の境界内にある場合、PCIスレーブ・イ
ンターフェース(410)は、メモリ・キュー・マネー
ジャ206に、この要求にはアドレス変換が必要である
ことを示す。
【0033】PCIトランザクションが主メモリ104
を目標とする場合、スレーブ・インターフェース410
は、読み出しトランザクションのためのデータを供給す
るか、書き込みトランザクションのためのデータを受け
入れ始めるか、又はPCIバス・トランザクションを再
試行するかのいずれかである。PCIメモリ読み出しト
ランザクションでは、PCIスレーブ・インターフェー
スは、PCI「遅延読み出し」トランザクションを実行
する。PCI遅延読み出しトランザクションの間、スレ
ーブ・インターフェース410は、要求をメモリ・キュ
ー・マネージャ206に供給することによってリード・
データを要求し、メモリ・キュー・マネージャ206か
らデータが返送されてくるまで、PCI読み出しトラン
ザクションを再試行する(例えば、PCI STOP信
号により)。PCIメモリ書き込みトランザクションで
は、一旦PCIトランザクションが肯定的に(posi
tively)デコードされたなら、データはPCIス
レーブ一時ライト・バッファ418内に受け入れられ
る。キャッシュ・ライン全体がPCIスレーブ一時ライ
ト・バッファ418内に受け入れられ終えたか、あるい
はPCIバス・トランザクションが終了したときに、続
いて、有効なPCIライト・データを含む対応する要求
が、メモリ・キュー・マネージャ206に供給される。
加えて、PCIインターフェース・スレーブ制御ユニッ
ト412は、主メモリ104内の新たなキャッシュ・ラ
インに対する各PCIマスタ・アクセス毎に、メモリ・
キュー・マネージャ206に対するスヌープ要求を提供
することができる。このスヌープ要求はアサートされ、
キャッシュのコヒーレンシが維持される。
を目標とする場合、スレーブ・インターフェース410
は、読み出しトランザクションのためのデータを供給す
るか、書き込みトランザクションのためのデータを受け
入れ始めるか、又はPCIバス・トランザクションを再
試行するかのいずれかである。PCIメモリ読み出しト
ランザクションでは、PCIスレーブ・インターフェー
スは、PCI「遅延読み出し」トランザクションを実行
する。PCI遅延読み出しトランザクションの間、スレ
ーブ・インターフェース410は、要求をメモリ・キュ
ー・マネージャ206に供給することによってリード・
データを要求し、メモリ・キュー・マネージャ206か
らデータが返送されてくるまで、PCI読み出しトラン
ザクションを再試行する(例えば、PCI STOP信
号により)。PCIメモリ書き込みトランザクションで
は、一旦PCIトランザクションが肯定的に(posi
tively)デコードされたなら、データは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から要求され
る。
ファ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に受け渡してもよい。
ード・バッファ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読み出しサ
イクルの間に供給される。
求が主メモリ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 c
acheline read)を最適化することができ
るという利点がある。
ニット412は、読み出しサイクルが保留の遅延読み出
しサイクルと一致し、スヌープ・サイクルのスヌープ・
フェーズが終了している場合、PCIマスタを再試行し
ないように構成することも可能である。このようにする
代わりに、この状態の間、PCIスレーブは、要求され
たデータが得られるまで、TRDY_をニゲートする。
また、マスタは、推測読み出し要求のスヌープ・サイク
ルのスヌープ・フェーズが終了した場合、いくつかのキ
ャッシュ・ラインに及ぶバースト読み出し転送の間、待
機状態に保持することも可能である。これは、アービト
レーション・レイテンシを最小に抑え、継続的なキャッ
シュ・ライン読み出し(back to back c
acheline read)を最適化することができ
るという利点がある。
【0038】加えて、PCIインターフェース・スレー
ブ制御ユニット412は、同時に多数の遅延読み出しト
ランザクションに対応しないようにすることも可能であ
る。このような実施形態では、遅延読み出しトランザク
ションが保留の間に、二次PCIマスタの主メモリから
読み出そうとするあらゆる試みは、第1のPCIマスタ
がその読み出しトランザクションを再び開始し、少なく
とも1回のデータ転送を完了するまで、繰り返される。
第1のPCIマスタがその読み出しトランザクションを
再び開始し、PCIスレーブ一時リード・バッファ41
6内にデータを残した場合、PCIインターフェース・
スレーブ制御ユニット412が残りのデータに推測的と
いうマークを付ける。PCIインターフェース・スレー
ブ制御ユニット412は、メモリ・キュー・マネージャ
206に対する各キャッシュ・ライン読み出し要求と同
時に、スヌープ要求をアサートし、キャッシュのコヒー
レンシを維持する。一旦要求したリード・データがメモ
リ・キュー・マネージャ206から戻された場合、以前
に再試行した(遅延)読み出しトランザクションに対応
する要求を受け入れ、リード・データを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上で
のデータ転送と重複することができ、データ転送能力向
上を達成するという利点がある。
ーブ制御ユニット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内に位置するデータに無効とマークするこ
とができる。
時リード・バッファ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内に受け入れられる。
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
に供給する。
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への連続バースト書き込
みのポスティングに対応することも可能である。
イト・バッファ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からのライ
トバック・データを無視することができる。
肯定的にデコードするとき、及びバースト・トランザク
ションの間に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_がアサートされた場合も、ポスティングをディスエ
ーブルするようにしてもよい。
ブ制御ユニット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からデータを検索し、それを要求元
のインターフェースに転送するために出力する。
ローラ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内にある場合である。
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も含んでいる。
ェース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バス上
でサイクルを実行する。
は、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内に整列させること
も考えられる。
が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キャッシュ・モジュール(これも図示せず)内に
キャッシュしてもよい。
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をフ
ラッシュする。
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上のデータ読み出し
転送と重複することができる。
ド・バッファ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に転送される。
一時ライト・バッファ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も、コヒーレンシを維持するた
めに備えられている。これについても、以下で詳しく論
ずることにする。
ージャ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をレジスタ・
バンクとして実現する。
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によって制御される。
態様の一例に関連する種々の構成を、ライト要求キュー
・スヌープ・ロジック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に関連するスヌープ動作に関する更に
別の面については、以下で更に詳しく論ずることにす
る。
スヌープ・ロジック・ユニット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に格納することにより、処理能力
の最適化が可能である。
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
のそれと同様とすればよい。
は、バス・ブリッジの種々のインターフェースからの保
留中の読み出し要求を4つまで格納するように構成され
る。しかしながら、リード要求キュー222は、メモリ
・キュー・マネージャ206が処理する全インターフェ
ース数、及び処理能力の要件に応じて、別の数の保留中
の要求を格納するように構成可能とすることも考えられ
る。尚、ライト要求キュー222と同様、リード要求キ
ュー220の要求格納位置をいくつかの部分に分割し、
1つをチップ・セレクト用に、他の1つのバンク・セレ
クト及び行アドレス用に、更に別の1つを列アドレス、
要求サイズ及び読み出しの宛先用とすることにより、メ
モリ・コントローラ210が情報を必要とする際に、特
定の要求の一部のみを選択的に抽出可能となる。宛先情
報は、メモリ・コントローラ210が、メモリ・キュー
・マネージャ206を通じてデータを返送すべきか(ス
ヌープ処理を必要とするトランザクションの場合)、又
はリード・データを直接要求元のデバイスに送るか(非
スヌープ・トランザクションの場合)について判定を行
うために用いることができる。リード要求キュー220
の物理的構造は、図10に示すライト要求キュー222
のそれと同様とすればよい。
【0061】加えて注記すべきは、キュー・メモリ・マ
ネージャ206内に1つ以上のリード保持バッファを含
ませ、CPUスヌープを実行している間に、スヌープ・
インターフェースに宛てられたメモリからのリード・デ
ータを保持することも可能であるということである。こ
れによって、スヌープ書き戻し(ライトバック)が発生
したと判定されるまで、主メモリ104からのリード・
データが滞留するのために一時的な位置を備えることが
可能となる。スヌープ書き戻しが発生したと判定された
場合、ライトバック・データを要求元のインターフェー
スに送る。また、到達したライトバック・データが送出
できるようになるまでの一時的な位置も備えることがで
きる。
ネージャ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の図示の部分からは独立して実現すること
ができる。
タ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のいずれ
か)に空のスロットがある限り、当該キューに要求をロ
ードする。特定の要求キューのスロットが全て満杯であ
る場合、要求は保留のまま放置され、インターフェース
は、それらの現要求が承認されるまで、それ以上の要求
を発行することができない。
によって認識され、適切な要求キュー(即ち、リード要
求キュー220又はライト要求キュー222のいずれ
か)に空のスロットがある限り、当該キューに要求をロ
ードする。特定の要求キューのスロットが全て満杯であ
る場合、要求は保留のまま放置され、インターフェース
は、それらの現要求が承認されるまで、それ以上の要求
を発行することができない。
【0064】メモリ・キュー・アービタ626は、ラウ
ンド・ロビン優先順方式を取り入れて、全てのインター
フェースのために、メモリに対する公平なアクセスを可
能にする。ラウンド・ロビン優先順方式を実現するため
に、メモリ・キュー・アービタ626は優先順位を維持
し、多数の要求が保留中である場合には、どのデバイス
が次に処理されるのかについて判定を行う。デバイス間
で1つの要求のみが保留中である場合、その要求を直ち
に処理する。多数の要求が保留中の場合、それらの優先
順位に基づいて処理する。優先順位は、要求キューに要
求がロードされ、要求元デバイスに対する承認がアサー
トされる限り、更新される。保留中の要求がない場合、
メモリ・キュー・アービタ626は、CPUインターフ
ェース204に止まり、初期CPUリード・サイクルの
レイテンシを減少させ、優先順方式をリセットする。状
況によっては、メモリ・キュー・アービタ226は、一
時的に順序に係らずにCPUインターフェース204又
はGARTインターフェース(図示せず)を選択し、ス
ヌープ処理又はAGPに関連するアドレス変換を処理す
ることも可能である。このような順序に係らないアービ
トレーションは、セーブしてある優先順位には影響を与
えない。メモリ・キュー・アービタ626は、全体的に
ブロック615として図示する、多重化データ経路を制
御し、所与のキューにメモリ要求を与えるために接続さ
れているインターフェースはどれであるかについて制御
を行う。一旦インターフェースが選択されたなら、キュ
ー・メモリ制御ユニット624内に実装されているロジ
ックは、スヌープ処理及びキューのロード処理を制御す
る。
ンド・ロビン優先順方式を取り入れて、全てのインター
フェースのために、メモリに対する公平なアクセスを可
能にする。ラウンド・ロビン優先順方式を実現するため
に、メモリ・キュー・アービタ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)であれ非同
期であれ、双方に与えられることである。
ジャ206に結合されている各インターフェースが一度
にキュー・メモリ・マネージャ206に提示できる要求
は1つのみであり、更にメモリ・キュー・アービタ22
6はラウンド・ロビンのような公平なアルゴリズムを実
施して要求間のアービトレーションを行うので、追加の
インターフェース、中でも、USB(ユニバーサル・シ
リアル・バス)のためのインターフェース及び/又はI
EEE1394(ファイア・ウエア)バス等は、大幅な
設計変更をすることなく、容易に組み込むことができ
る。重要なのは、主メモリ104に対する公平なアクセ
スは、PCIバス114及びAGPバス110上のデバ
イスだけでなく、このように追加されたバス上のデバイ
スにも、等時性(isochronous)であれ非同
期であれ、双方に与えられることである。
【0066】次に、リード要求キュー200及びライト
要求キュー222内で保留中の要求のスヌープ処理に関
する種々の内容について検討する。一実施態様では、各
デバイス・インターフェースからの読み出し要求は、ラ
イト要求キュー222内の保留中の書き込みアドレスを
スヌープしなければならない。このライト要求キューの
スヌープ処理によって、各インターフェースの視点から
順序を保存する。あるデバイスが同じアドレスに対して
書き込みを行い、次いで読み出しを行う場合、今書き込
んだばかりのデータを受け取る必要がある。書き込みが
ライト要求キュー222内にあり無視された場合、読み
出しは主メモリ104から古いデータを受け取る可能性
がある。
要求キュー222内で保留中の要求のスヌープ処理に関
する種々の内容について検討する。一実施態様では、各
デバイス・インターフェースからの読み出し要求は、ラ
イト要求キュー222内の保留中の書き込みアドレスを
スヌープしなければならない。このライト要求キューの
スヌープ処理によって、各インターフェースの視点から
順序を保存する。あるデバイスが同じアドレスに対して
書き込みを行い、次いで読み出しを行う場合、今書き込
んだばかりのデータを受け取る必要がある。書き込みが
ライト要求キュー222内にあり無視された場合、読み
出しは主メモリ104から古いデータを受け取る可能性
がある。
【0067】書き込み要求及び読み出し要求のスヌープ
を素早く(例えば、1クロック・サイクル未満で)完了
するためには、ライト要求キュー・スヌープ・ロジック
610及びリード要求キュー・スヌープ・ロジック61
2は、スヌープ処理の目的のために、保留中の要求に関
連するアドレスのサブセットのみを比較するように構成
すればよい。一実施態様では、スヌープ・ロジックは、
14ビットのアドレス(例えば、システム・アドレスの
ビット25:11)を比較する。スヌープ動作中のアド
レス比較のためのビット数の選択は、比較動作を行わな
ければならない速度に依存し、更に誤ったヒットの可能
性増大による処理能力低下に対して容認可能な許容度に
依存することは理解されよう。
を素早く(例えば、1クロック・サイクル未満で)完了
するためには、ライト要求キュー・スヌープ・ロジック
610及びリード要求キュー・スヌープ・ロジック61
2は、スヌープ処理の目的のために、保留中の要求に関
連するアドレスのサブセットのみを比較するように構成
すればよい。一実施態様では、スヌープ・ロジックは、
14ビットのアドレス(例えば、システム・アドレスの
ビット25:11)を比較する。スヌープ動作中のアド
レス比較のためのビット数の選択は、比較動作を行わな
ければならない速度に依存し、更に誤ったヒットの可能
性増大による処理能力低下に対して容認可能な許容度に
依存することは理解されよう。
【0068】ライト要求キュー222内の以前の要求の
スヌープ処理は、種々の方法で実現することができる。
一実施態様では、特定のインターフェースからの新たな
読み出し要求に関連して、ライト要求キューのヒットが
発生した場合、ライト要求キューのフラッシュ動作が行
われるまで、読み出し要求を承認しない。スヌープ・ヒ
ットの結果行われる書き込み要求動作以前の全ての書き
込み動作は、メモリ・コントローラ210によって処理
される。このように、同じアドレスに対する以前の書き
込み動作を読み出し動作の前に完了させることにより、
コヒーレンシを確保する。ライト要求キューのフラッシ
ュが開始した後、キュー・メモリ制御ユニット224
は、読み出し要求をリード要求キュー220にロードす
ることができ、読み出し動作に対するCPUスヌープ・
コマンド(必要であれば)をCPUインターフェース2
04に供給し、読み出しトランザクションのためにCP
Uスヌープを発行することができる。
スヌープ処理は、種々の方法で実現することができる。
一実施態様では、特定のインターフェースからの新たな
読み出し要求に関連して、ライト要求キューのヒットが
発生した場合、ライト要求キューのフラッシュ動作が行
われるまで、読み出し要求を承認しない。スヌープ・ヒ
ットの結果行われる書き込み要求動作以前の全ての書き
込み動作は、メモリ・コントローラ210によって処理
される。このように、同じアドレスに対する以前の書き
込み動作を読み出し動作の前に完了させることにより、
コヒーレンシを確保する。ライト要求キューのフラッシ
ュが開始した後、キュー・メモリ制御ユニット224
は、読み出し要求をリード要求キュー220にロードす
ることができ、読み出し動作に対するCPUスヌープ・
コマンド(必要であれば)をCPUインターフェース2
04に供給し、読み出しトランザクションのためにCP
Uスヌープを発行することができる。
【0069】ライト要求キュー222のスヌープ処理の
他の実施態様では、リード要求キュー220の各位置に
カウンタを関連付ける。新たな読み出し要求がメモリ・
キュー・マネージャ206によって受け取られると、ラ
イト・キュー222の各位置にあるアドレスを、新たな
読み出し要求と比較する(又は、前述のように、アドレ
ス・ビットの所定のサブセットと比較する)。ライト要
求キュー222内の特定のエントリに関してスヌープ・
ヒットが得られた場合、そのエントリの位置を示す値
を、新たな読み出し要求がロードされているリード要求
キュー220の位置に関連するカウンタに格納する。し
たがって、この値は、ライト要求キュー222内のヒッ
トの深さを示す。書き込み要求がライト要求キュー22
2から除外される毎に、読み出し要求に関連するカウン
タ値を1だけ減少させる。ライト要求キュー内のスヌー
プ・ヒットの深さを示す有効値を収容する、その他の読
み出し要求に関連するカウント値も同様に減少させる。
読み出し要求がリード要求キュー220から除外され、
キューの末尾にある要求がキューの先頭に向かってシフ
トされるに連れて、各読み出し要求に関連するカウント
値も、読み出し要求と共にシフトするが、変更はしな
い。特定の読み出し要求がキューの最上部に到達し、カ
ウントが0より大きい場合、追加の書き込み要求が処理
され、カウント値が0に達するまで、メモリ・コントロ
ーラ210はこの要求を処理しない。
他の実施態様では、リード要求キュー220の各位置に
カウンタを関連付ける。新たな読み出し要求がメモリ・
キュー・マネージャ206によって受け取られると、ラ
イト・キュー222の各位置にあるアドレスを、新たな
読み出し要求と比較する(又は、前述のように、アドレ
ス・ビットの所定のサブセットと比較する)。ライト要
求キュー222内の特定のエントリに関してスヌープ・
ヒットが得られた場合、そのエントリの位置を示す値
を、新たな読み出し要求がロードされているリード要求
キュー220の位置に関連するカウンタに格納する。し
たがって、この値は、ライト要求キュー222内のヒッ
トの深さを示す。書き込み要求がライト要求キュー22
2から除外される毎に、読み出し要求に関連するカウン
タ値を1だけ減少させる。ライト要求キュー内のスヌー
プ・ヒットの深さを示す有効値を収容する、その他の読
み出し要求に関連するカウント値も同様に減少させる。
読み出し要求がリード要求キュー220から除外され、
キューの末尾にある要求がキューの先頭に向かってシフ
トされるに連れて、各読み出し要求に関連するカウント
値も、読み出し要求と共にシフトするが、変更はしな
い。特定の読み出し要求がキューの最上部に到達し、カ
ウントが0より大きい場合、追加の書き込み要求が処理
され、カウント値が0に達するまで、メモリ・コントロ
ーラ210はこの要求を処理しない。
【0070】リード要求キューのスヌープ処理も、書き
込み要求がインターフェースによってアサートされたと
きに、同様に行うことができる。更に具体的には、メモ
リ・コントローラが同じアドレスに対する読み出しトラ
ンザクションの前に書き込みを行うような状況を回避す
るために、書き込み要求がライト要求キュー702にロ
ードされる前に、リード要求キュー220をスヌープす
る。前述の状況は、書き込み要求満杯直前信号がアサー
トされるか、あるいはその他の読み出しのためにライト
要求キューのフラッシュが行われるときに発生する可能
性がある。このスヌープ処理は、ライト・データを未だ
集めている間に実行することも可能である。ヒットが生
じた場合、ヒット状態が消えるまで(即ち、このヒット
を発生させた読み出し要求がキューから除外されるま
で)、リード要求キュー220をフラッシュする。ある
いは、各ライト要求キュー・エントリにカウンタを関連
付け、書き込みを処理する前に処理すべき読み出し要求
の数を追跡するようにしてもよい(即ち、ライト要求キ
ュー222のスヌープ処理についての前述の説明と同様
に、リード要求キュー220内のヒットの深さを示すカ
ウント値を維持すればよい)。
込み要求がインターフェースによってアサートされたと
きに、同様に行うことができる。更に具体的には、メモ
リ・コントローラが同じアドレスに対する読み出しトラ
ンザクションの前に書き込みを行うような状況を回避す
るために、書き込み要求がライト要求キュー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に格納する前に、変更されたヒット・
ラインに対応するライトバック・データを取り込み、要
求元のインターフェースに供給することも可能である。
行った後、メモリ・キュー・マネージャ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の機能の一部として示されている。
・マネージャ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は常に非転
記サイクルのスヌープを停止する。
インターフェース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の所有権を要求させるために使用すること
も可能である。
イ」と呼ばれ、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モード転送を全て再試行する。
ある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要求を一掃する。
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に渡す。
も、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モード)要求を一掃する。
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は、CPUインターフェース204
の一実施形態の構成を更に詳細に示すブロック図であ
る。即ち、図12は、CPUインターフェース204が
実現する適応推測読み出しアルゴリズムを実現するため
のフェッチ機構の構成を示す。簡略化及び明確化のため
に、図3に対応する回路部分には、同じ番号を付けてい
る。図12に示すように、一実施形態では、CPUバス
・インターフェース制御ユニット302は、推測読み出
し要求の発生を制御するように構成されたフェッチ制御
ユニット802を含む。CPUバス・インターフェース
制御ユニット302及びリード・バック・バッファ30
6に結合された推測アドレス・レジスタ804も示され
ている。
の一実施形態の構成を更に詳細に示すブロック図であ
る。即ち、図12は、CPUインターフェース204が
実現する適応推測読み出しアルゴリズムを実現するため
のフェッチ機構の構成を示す。簡略化及び明確化のため
に、図3に対応する回路部分には、同じ番号を付けてい
る。図12に示すように、一実施形態では、CPUバス
・インターフェース制御ユニット302は、推測読み出
し要求の発生を制御するように構成されたフェッチ制御
ユニット802を含む。CPUバス・インターフェース
制御ユニット302及びリード・バック・バッファ30
6に結合された推測アドレス・レジスタ804も示され
ている。
【0080】図13は、CPUインターフェース204
に関連する機能を示すフロー図であり、フェッチ制御ユ
ニット802が制御する、主メモリ104からのデータ
の推測フェッチに関連する動作を含んでいる。図12及
び図13を併せて参照する。整列キュー304がCPU
101からのメモリ読み出し要求(ステップ902)を
受け取った場合、ステップ906又は908(要求に対
応する有効なデータがリードバック・バッファ306に
既にない場合)のいずれかの間に、この要求に伴うデー
タ・ラインを読み出す要求をCPUメモリ一時バッファ
308に供給する。フェッチ制御ユニット802は、こ
の要求されたデータ・ラインが、CPUメモリ一時バッ
ファ308に供給された以前のメモリ読み出し要求の内
最後のものと連続するか否かについて判定を行う(ステ
ップ904)。この要求が直前のライン要求のラインと
連続しない場合、フェッチ制御ユニット802はこれ以
上の動作を行わない(即ち、現要求を含むデータ・ライ
ンに対する要求は、CPUメモリ一時バッファ308に
供給される)(ステップ906)。一方、この要求が、
CPUメモリ一時バッファ308に供給された以前の読
み出し要求の内最後のものに関して連続する場合、フェ
ッチ制御ユニット802は、推測要求を発生し、現要求
に続く次のデータ・ラインをフェッチする(ステップ9
10)。元の要求及び推測要求は、CPUメモリ一時バ
ッファ308に供給される。フェッチ制御ユニット80
2は、CPU101が連続するデータ・ラインに対して
追加の要求を開始した場合、更に推測要求を発行し続け
る(ステップ912,914)。CPU101が不連続
なラインに対応するデータを要求した場合、フェッチ制
御ユニット802は推測要求を発生しない。代わりに、
不連続な要求に対応するデータ・ラインをフェッチする
要求を、整列キュー304を介して、CPUメモリ一時
バッファ308に供給する(ステップ916)。
に関連する機能を示すフロー図であり、フェッチ制御ユ
ニット802が制御する、主メモリ104からのデータ
の推測フェッチに関連する動作を含んでいる。図12及
び図13を併せて参照する。整列キュー304がCPU
101からのメモリ読み出し要求(ステップ902)を
受け取った場合、ステップ906又は908(要求に対
応する有効なデータがリードバック・バッファ306に
既にない場合)のいずれかの間に、この要求に伴うデー
タ・ラインを読み出す要求をCPUメモリ一時バッファ
308に供給する。フェッチ制御ユニット802は、こ
の要求されたデータ・ラインが、CPUメモリ一時バッ
ファ308に供給された以前のメモリ読み出し要求の内
最後のものと連続するか否かについて判定を行う(ステ
ップ904)。この要求が直前のライン要求のラインと
連続しない場合、フェッチ制御ユニット802はこれ以
上の動作を行わない(即ち、現要求を含むデータ・ライ
ンに対する要求は、CPUメモリ一時バッファ308に
供給される)(ステップ906)。一方、この要求が、
CPUメモリ一時バッファ308に供給された以前の読
み出し要求の内最後のものに関して連続する場合、フェ
ッチ制御ユニット802は、推測要求を発生し、現要求
に続く次のデータ・ラインをフェッチする(ステップ9
10)。元の要求及び推測要求は、CPUメモリ一時バ
ッファ308に供給される。フェッチ制御ユニット80
2は、CPU101が連続するデータ・ラインに対して
追加の要求を開始した場合、更に推測要求を発行し続け
る(ステップ912,914)。CPU101が不連続
なラインに対応するデータを要求した場合、フェッチ制
御ユニット802は推測要求を発生しない。代わりに、
不連続な要求に対応するデータ・ラインをフェッチする
要求を、整列キュー304を介して、CPUメモリ一時
バッファ308に供給する(ステップ916)。
【0081】一実施形態では、推測フェッチは、2Kペ
ージの境界を越えては実行されない。これは、内部カウ
ンタ機構のサイズを制限することによって、タイミング
の制約を満たすためである。同様に、、主メモリに対す
る2つのキャッシュライン要求についても、2Kページ
の境界を越える場合は許可しないこととするとよい。加
えて、一実施態様では、連続する読み出しは、推測読み
出しを呼び出すためには、キャッシュライン全体に対す
る要求としなければならない。クアドワードの要求で
は、それらのアドレスが連続であっても、結果としてミ
ス(即ち、不連続と見なされる)が発生する。
ージの境界を越えては実行されない。これは、内部カウ
ンタ機構のサイズを制限することによって、タイミング
の制約を満たすためである。同様に、、主メモリに対す
る2つのキャッシュライン要求についても、2Kページ
の境界を越える場合は許可しないこととするとよい。加
えて、一実施態様では、連続する読み出しは、推測読み
出しを呼び出すためには、キャッシュライン全体に対す
る要求としなければならない。クアドワードの要求で
は、それらのアドレスが連続であっても、結果としてミ
ス(即ち、不連続と見なされる)が発生する。
【0082】推測アドレス・レジスタ804は、リード
・バック・バッファ306内に、推測データに対応する
アドレスを格納する。リード・バック・バッファ306
内の推測データのアドレスを維持し、書き込みサイクル
が検出された場合にスヌープ処理を可能とする。主メモ
リ104に対する書き込みが、推測アドレス・レジスタ
804内に格納されているアドレスと一致した場合、C
PUバス・インターフェース制御ユニット302は、リ
ード・バック・バッファ306内の対応する推測データ
を無効化する。これによって、CPU101によるキャ
ッシュ・ラインの置換速度を向上させ、あるいは書き込
みサイクルが他のバスから開始された場合に、CPU1
01が古いデータを受け取るのを防止する。
・バック・バッファ306内に、推測データに対応する
アドレスを格納する。リード・バック・バッファ306
内の推測データのアドレスを維持し、書き込みサイクル
が検出された場合にスヌープ処理を可能とする。主メモ
リ104に対する書き込みが、推測アドレス・レジスタ
804内に格納されているアドレスと一致した場合、C
PUバス・インターフェース制御ユニット302は、リ
ード・バック・バッファ306内の対応する推測データ
を無効化する。これによって、CPU101によるキャ
ッシュ・ラインの置換速度を向上させ、あるいは書き込
みサイクルが他のバスから開始された場合に、CPU1
01が古いデータを受け取るのを防止する。
【0083】CPUインターフェース・ユニット204
によって実現される適応推測読み出しアルゴリズムは、
推測メモリ・フェッチ動作に伴うヒット率を高めること
ができるという利点がある。更に具体的には、直前のフ
ェッチが隣接するメモリ・ラインに対して行われたこと
を判定することによって、連続アクセスの履歴が検出さ
れなければ、推測フェッチを実行しない。即ち、推測リ
ード・データがプリフェッチされるのは、連続するライ
ンの要求を受け取ったことに応答する場合のみである。
不連続なアクセス・パターンの間、読み出し要求の回数
は、1−1−1−1のパターンに従う。したがって、精
度の低い推測データ・フェッチ処理を防止することがで
きる。一方、連続する要求が繰り返し行われる場合、1
−2−1−1−1という読み出し要求パターンが得ら
れ、この場合、推測データは、最初の連続アクセスの検
出時から、連続アクセスが終了するまで連続的にフェッ
チされる。これによって、ヒット率及び効率の向上を達
成することができ、メモリ容量及び電力の保存が可能と
なる。
によって実現される適応推測読み出しアルゴリズムは、
推測メモリ・フェッチ動作に伴うヒット率を高めること
ができるという利点がある。更に具体的には、直前のフ
ェッチが隣接するメモリ・ラインに対して行われたこと
を判定することによって、連続アクセスの履歴が検出さ
れなければ、推測フェッチを実行しない。即ち、推測リ
ード・データがプリフェッチされるのは、連続するライ
ンの要求を受け取ったことに応答する場合のみである。
不連続なアクセス・パターンの間、読み出し要求の回数
は、1−1−1−1のパターンに従う。したがって、精
度の低い推測データ・フェッチ処理を防止することがで
きる。一方、連続する要求が繰り返し行われる場合、1
−2−1−1−1という読み出し要求パターンが得ら
れ、この場合、推測データは、最初の連続アクセスの検
出時から、連続アクセスが終了するまで連続的にフェッ
チされる。これによって、ヒット率及び効率の向上を達
成することができ、メモリ容量及び電力の保存が可能と
なる。
【0084】尚、ブリッジ・ロジック・ユニット102
の様々な構成には、他の具体的な実施態様も可能であ
る。例えば、システム全体の要件によっては、バス・イ
ンターフェースは、所望であれば、更に他の種類の要求
にも対応することも可能である。更に、メモリ・キュー
・マネージャや非ローカル・メモリ・マネージャだけで
なく、種々のバス・インターフェースにも、別の具体的
な実施態様が可能である。さらに、他の実施形態では、
前述の適応推測読み出しの機能はは、他のデバイスの読
み出し要求に応答して実行するようにしてもよい。例え
ば、メモリ制御装置を、PCIバス上に位置する周辺デ
バイスのメモリ読み出し要求に応答して、前述のような
適応推測読み出しを実施するように構成することも可能
である。一旦これまでの開示を完全に理解したなら、種
々の変形や変更も当業者には明白となろう。したがっ
て、特許請求の範囲は、かかる変形及び変更を全て包含
するように解釈することを意図するものである。
の様々な構成には、他の具体的な実施態様も可能であ
る。例えば、システム全体の要件によっては、バス・イ
ンターフェースは、所望であれば、更に他の種類の要求
にも対応することも可能である。更に、メモリ・キュー
・マネージャや非ローカル・メモリ・マネージャだけで
なく、種々のバス・インターフェースにも、別の具体的
な実施態様が可能である。さらに、他の実施形態では、
前述の適応推測読み出しの機能はは、他のデバイスの読
み出し要求に応答して実行するようにしてもよい。例え
ば、メモリ制御装置を、PCIバス上に位置する周辺デ
バイスのメモリ読み出し要求に応答して、前述のような
適応推測読み出しを実施するように構成することも可能
である。一旦これまでの開示を完全に理解したなら、種
々の変形や変更も当業者には明白となろう。したがっ
て、特許請求の範囲は、かかる変形及び変更を全て包含
するように解釈することを意図するものである。
【図1】統合化ブリッジ・ロジック・ユニットを含むコ
ンピュータ・システムのブロック図である。
ンピュータ・システムのブロック図である。
【図2】ブリッジ・ロジック・ユニットの一実施形態の
ブロック図である。
ブロック図である。
【図3】CPUインターフェースの一実施態様のブロッ
ク図である。
ク図である。
【図4】PCIインターフェースの適切な実施形態の構
成を示すブロック図である。
成を示すブロック図である。
【図5】PCIインターフェース・マスタ制御ユニット
内で用いるPCIマスタ一時リード・バッファの一実施
態様のブロック図である。
内で用いるPCIマスタ一時リード・バッファの一実施
態様のブロック図である。
【図6】PCIインターフェース・マスタ制御ユニット
内で用いるPCIマスタ一時ライト・バッファの一実施
態様のブロック図である。
内で用いるPCIマスタ一時ライト・バッファの一実施
態様のブロック図である。
【図7】PCIスレーブ一時リード・バッファの実施態
様の一例の構成を示す図である。
様の一例の構成を示す図である。
【図8】AGPインターフェースの一実施形態のブロッ
ク図である。
ク図である。
【図9】メモリ・キュー・マネージャの一実施形態のブ
ロック図である。
ロック図である。
【図10】ライト要求キューの実施態様の一例に関連す
る種々の構成を、ライト要求キュー・スヌープ・ロジッ
ク・ユニットの関連する構成と共に示す図である。
る種々の構成を、ライト要求キュー・スヌープ・ロジッ
ク・ユニットの関連する構成と共に示す図である。
【図11】非ローカル・メモリ(PCI/AGP)キュ
ー・マネージャの一実施形態のブロック図である。
ー・マネージャの一実施形態のブロック図である。
【図12】適応推測読み出し動作を実施するためのフェ
ッチ機構を含むCPUインターフェースの一実施形態の
更なる詳細を示すブロック図である。
ッチ機構を含むCPUインターフェースの一実施形態の
更なる詳細を示すブロック図である。
【図13】適応推測読み出しアルゴリズムの一実施形態
のステップを示すフローチャートである。
のステップを示すフローチャートである。
フロントページの続き (71)出願人 591030868 20555 State Highway 249,Houston,Texas 77070,United States o f America (72)発明者 ジョーゼフ・イー・フォスター アメリカ合衆国テキサス州77379,スプリ ング,ランドリー・ブールバード 9115 (72)発明者 マリア・エル・メロ アメリカ合衆国テキサス州77070,ヒュー ストン,ホヤ・コート 14811
Claims (22)
- 【請求項1】 コンピュータ・システムにおいて、 マイクロプロセッサと、 前記マイクロプロセッサに結合されたキーボードと、 メモリと、 前記マイクロプロセッサからメモリ要求を受け取って、
前記メモリに対するアクセスを制御するようにメモリ制
御装置であって、最初のリード要求に応答して前記メモ
リから単一のデータ・ラインをフェッチし、連続するラ
インに対する後続のリード要求の検出に応答して、前記
メモリから連続する1対のデータ・ラインをフェッチす
るよう制御するメモリ制御装置とを備えていることを特
徴とするコンピュータ・システム。 - 【請求項2】 請求項1記載のコンピュータ・システム
において、前記メモリ制御装置が、前記マイクロプロセ
ッサに結合されたCPUインターフェースを含み、該C
PUインターフェースが、前記プロセッサから前記メモ
リ要求を受け取るように構成されていることを特徴とす
るコンピュータ・システム。 - 【請求項3】 請求項2記載のコンピュータ・システム
において、該システムは更に、前記CPUインターフェ
ースに結合されたメモリ・キュー・マネージャを備え、
該メモリ・キュー・マネージャが、前記メモリに対する
リード要求を格納するように構成されたリード要求キュ
ーを含むことを特徴とするコンピュータ・システム。 - 【請求項4】 請求項3記載のコンピュータ・システム
において、該システムは更に、前記リード要求キューと
前記メモリとに結合されたメモリ・コントローラを備
え、該メモリ・コントローラが、前記リード要求キュー
から前記メモリ・リード要求を除外して、前記メモリに
アクセスするように構成されていることを特徴とするコ
ンピュータ・システム。 - 【請求項5】 請求項4記載のコンピュータ・システム
において、前記CPUインターフェースが、前記メモリ
・コントローラに結合されたリード・バック・バッファ
を含み、該リード・バック・バッファが、前記メモリか
ら返された最初のリード要求に対応するデータを格納す
るように構成されていることを特徴とするコンピュータ
・システム。 - 【請求項6】 請求項5記載のコンピュータ・システム
において、前記CPUインターフェースが更に、前記リ
ード・バック・バッファに結合されたCPUバス・イン
ターフェース制御ユニットを含み、前記CPUバス・イ
ンターフェース制御ユニットが、前記最初のリード要求
に続く、連続するラインに対する後続のリード要求を検
出したときに、前記メモリから連続する1対のデータ・
ラインをフェッチする要求を発生するように構成されて
いることを特徴とするコンピュータ・システム。 - 【請求項7】 請求項6記載のコンピュータ・システム
において、前記リード・バック・バッファが更に、前記
メモリから前記連続する1対のデータ・ラインを格納す
るように構成されていることを特徴とするコンピュータ
・システム。 - 【請求項8】 請求項7記載のコンピュータ・システム
において、該システムは更に、前記CPUバス・インタ
ーフェース制御ユニットに結合された推測アドレス・レ
ジスタを備え、該推測アドレス・レジスタが、前記リー
ド・バック・バッファ内に格納されている推測データ・
ラインに関連するアドレスを格納するように構成されて
いることを特徴とするコンピュータ・システム。 - 【請求項9】 請求項8記載のコンピュータ・システム
において、前記CPUバス・インターフェース制御ユニ
ットが、前記推測アドレス・レジスタ内に格納されてい
るアドレスに対する書き込みの検出に応答して、前記リ
ード・バック・バッファ内の前記推測データ・ラインを
無効化するように構成されていることを特徴とするコン
ピュータ・システム。 - 【請求項10】 請求項9記載のコンピュータ・システ
ムにおいて、前記書き込みが、前記メモリ制御装置に結
合されたデバイスによって開始されることを特徴とする
コンピュータ・システム。 - 【請求項11】 コンピュータ・システムにおいて、 CPUバスに結合されたマイクロプロセッサと、 周辺バスに結合された少なくとも1つの周辺デバイスで
あって、ディスク・ドライブ装置を含む周辺デバイス
と、 プロセッサ・バスに結合されたメモリと、 前記マイクロプロセッサ及び前記周辺デバイスからメモ
リ要求を受け取り、前記メモリに対するアクセスを制御
するように構成されたブリッジ・ロジック・ユニットと
を含み、 前記ブリッジ・ロジック・ユニットは、前記マイクロプ
ロセッサからの要求を受け取り、前記マイクロプロセッ
サからの最初のリード要求に応答して前記メモリから単
一のデータ・ラインをフェッチし、更に、前記マイクロ
プロセッサによる連続するラインに対する後続のリード
要求の検出に応答して、前記メモリから連続する1対の
データ・ラインをフェッチするように構成されたメモリ
・フェッチ制御ユニットを有するCPUインターフェー
スを含んでいることを特徴とするコンピュータ・システ
ム。 - 【請求項12】 請求項11記載のコンピュータ・シス
テムにおいて、該システムは更に、前記CPUインター
フェースに結合されたメモリ・キュー・マネージャを備
え、該メモリ・キュー・マネージャが、前記メモリに対
するリード要求を格納するように構成されたリード要求
キューを含むことを特徴とするコンピュータ・システ
ム。 - 【請求項13】 請求項12記載のコンピュータ・シス
テムにおいて、該システムは更に、前記リード要求キュ
ーと前記メモリとに結合されたメモリ・コントローラを
備え、該メモリ・コントローラが、前記リード要求キュ
ーから前記メモリ・リード要求を除外して、前記メモリ
にアクセスするように構成されていることを特徴とする
コンピュータ・システム。 - 【請求項14】 請求項13記載のコンピュータ・シス
テムにおいて、前記CPUインターフェースが、前記メ
モリから読み取られたリード・データを受け取って格納
するリード・バック・バッファを含むことを特徴とする
コンピュータ・システム。 - 【請求項15】 請求項14記載のコンピュータ・シス
テムにおいて、前記リード・バック・バッファが更に、
前記メモリからの前記連続する1対のデータ・ラインを
格納するように構成されていることを特徴とするコンピ
ュータ・システム。 - 【請求項16】 請求項15記載のコンピュータ・シス
テムにおいて、前記メモリ・フェッチ制御ユニットが、
不連続な読み取り要求に応答して、前記メモリから追加
の単一データ・ラインをフェッチするように構成されて
いることを特徴とするコンピュータ・システム。 - 【請求項17】 請求項16記載のコンピュータ・シス
テムにおいて、前記CPUインターフェースが更に、前
記リード・バック・バッファ内に格納されている推測デ
ータ・ラインのアドレスを格納するように構成されてい
ることを特徴とするコンピュータ・システム。 - 【請求項18】 コンピュータ・システムの主メモリか
らデータを推測的にプリフェッチする方法において、 メモリ読み出し要求がデバイスにより開始されるステッ
プと、 メモリ制御装置が前記メモリ読み出し要求を受け取った
ときに、前記主メモリから単一のデータ・ラインをフェ
ッチするステップと、 前記デバイスが、連続するラインに対する後続の読み出
し要求を開始するステップと、 前記メモリ制御装置が、前記連続するラインに対する前
記後続の読み出し要求を検出したときに、前記主メモリ
から連続する1対のデータ・ラインをフェッチするステ
ップとからなることを特徴とする方法。 - 【請求項19】 請求項18記載のコンピュータ・シス
テムの主メモリからデータを推測的にプリフェッチする
方法において、該方法は更に、前記主メモリから読み出
した前記単一のデータ・ラインをリード・バック・バッ
ファに格納するステップを含むことを特徴とする方法。 - 【請求項20】 請求項18記載のコンピュータ・シス
テムの主メモリからデータを推測的にプリフェッチする
方法において、該方法は更に、前記メモリ制御装置が、
不連続なメモリ読み出し要求を受け取ったときに、前記
メモリから、他の単一のデータ・ラインをフェッチする
ステップを含むことを特徴とする方法。 - 【請求項21】 請求項19記載のコンピュータ・シス
テムの主メモリからデータを推測的にプリフェッチする
方法において、該方法は更に、前記連続する1対のデー
タ・ラインを前記リードバック・バッファに格納するス
テップを含むことを特徴とする方法。 - 【請求項22】 コンピュータ・システムにおいて、 メモリと、 前記メモリからデータを読み出すメモリ要求を開始する
ように構成されたデバイスと、 前記デバイスからの前記メモリ要求を受け取り、前記メ
モリに対するアクセスを制御するメモリ制御装置であっ
て、最初の読み出し要求に応答して前記メモリから単一
のデータ・ラインをフェッチし、連続するラインに対す
る後続の読み出し要求の検出に応答して、前記メモリか
ら1対の連続するデータ・ラインをフェッチするメモリ
制御装置と、 前記メモリ制御装置に結合されているディスプレイとか
らなることを特徴とするコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US996310 | 1992-12-23 | ||
US99631097A | 1997-12-22 | 1997-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11316707A true JPH11316707A (ja) | 1999-11-16 |
Family
ID=25542760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10365433A Pending JPH11316707A (ja) | 1997-12-22 | 1998-12-22 | 適応推測読み出し動作を実行可能なバス・ブリッジを含むコンピュータ・システム |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0924620A3 (ja) |
JP (1) | JPH11316707A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795876B1 (en) | 2001-03-27 | 2004-09-21 | Intel Corporation | Adaptive read pre-fetch |
US20250110877A1 (en) * | 2023-09-29 | 2025-04-03 | Advanced Micro Devices, Inc. | Remote acceleration for data dependent address calculation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5586294A (en) * | 1993-03-26 | 1996-12-17 | Digital Equipment Corporation | Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer |
US5630094A (en) * | 1995-01-20 | 1997-05-13 | Intel Corporation | Integrated bus bridge and memory controller that enables data streaming to a shared memory of a computer system using snoop ahead transactions |
-
1998
- 1998-12-18 EP EP98310413A patent/EP0924620A3/en not_active Withdrawn
- 1998-12-22 JP JP10365433A patent/JPH11316707A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0924620A3 (en) | 2000-06-28 |
EP0924620A2 (en) | 1999-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6279087B1 (en) | System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations | |
US6199131B1 (en) | Computer system employing optimized delayed transaction arbitration technique | |
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 | |
US6434639B1 (en) | System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation | |
US5572703A (en) | Method and apparatus for snoop stretching using signals that convey snoop results | |
US8046539B2 (en) | Method and apparatus for the synchronization of distributed caches | |
US5715428A (en) | Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
US5875467A (en) | Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US5787486A (en) | Bus protocol for locked cycle cache hit | |
US6321307B1 (en) | Computer system and method employing speculative snooping for optimizing performance | |
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 | |
US8037253B2 (en) | Method and apparatus for global ordering to insure latency independent coherence | |
EP1311956B1 (en) | Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system | |
US7228389B2 (en) | System and method for maintaining cache coherency in a shared memory system | |
JP2004529435A (ja) | キャッシュ中のラインを投機的に無効にする方法とシステム | |
WO1994008297A1 (en) | Method and apparatus for concurrency of bus operations | |
US8195880B2 (en) | Information handling system with immediate scheduling of load operations in a dual-bank cache with dual dispatch into write/read data flow | |
JPH11328106A (ja) | グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム | |
US20020019913A1 (en) | Coherency protocol | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 | |
US6934806B2 (en) | Method and system for improving input/output performance by proactively flushing and locking an entire page out of caches of a multiprocessor system |