JP4194274B2 - クアド・ポンプ・バス・アーキテクチャおよびプロトコル - Google Patents
クアド・ポンプ・バス・アーキテクチャおよびプロトコル Download PDFInfo
- Publication number
- JP4194274B2 JP4194274B2 JP2001549206A JP2001549206A JP4194274B2 JP 4194274 B2 JP4194274 B2 JP 4194274B2 JP 2001549206 A JP2001549206 A JP 2001549206A JP 2001549206 A JP2001549206 A JP 2001549206A JP 4194274 B2 JP4194274 B2 JP 4194274B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- address
- data
- request
- strobe
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000003213 activating effect Effects 0.000 claims abstract description 5
- 240000007320 Pinus strobus Species 0.000 claims description 374
- 238000012546 transfer Methods 0.000 claims description 63
- 238000005070 sampling Methods 0.000 claims description 53
- 230000001360 synchronised effect Effects 0.000 claims description 52
- 230000004044 response Effects 0.000 claims description 38
- 230000000630 rising effect Effects 0.000 claims description 28
- 230000002457 bidirectional effect Effects 0.000 claims description 14
- 230000007704 transition Effects 0.000 claims description 12
- 230000000295 complement effect Effects 0.000 claims 8
- 230000000977 initiatory effect Effects 0.000 claims 2
- 239000003795 chemical substances by application Substances 0.000 description 161
- 238000010586 diagram Methods 0.000 description 19
- 230000035559 beat frequency Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Debugging And Monitoring (AREA)
- Telephonic Communication Services (AREA)
Description
(技術分野)
本発明は一般的にプロセッサに関し、より詳しくは、クアド・ポンプ・バス・アーキテクチャ(quad pumped bus architecture)およびプロトコルに関する。
【0002】
(背景技術)
今日のソフトウェアおよびアプリケーションの複雑さおよび需要が増しつつあるため、向上したスループットおよび帯域幅を供給するためのプロセッサに対する需要がある。入力/出力(I/O)速度または帯域幅、メモリ、サイズ等、コンピュータ能力を制約するように動作しうるリソースは、一又は二以上ありうる。通常、コンピュータの能力を制約し、または圧迫している一つのリソースは、一つ以上のプロセッサとチップセット(chipset)との間に供給されるバスである、プロセッサ・バスまたはフロント・サイド・バスのスピードおよび帯域幅である。例えば、いくつかのPentiumTMプロセッサ(Intel CorporationのPentium ProTM等)は、64ビット・データ・バスを含み、1プロセッサ・クロック・サイクルにつき、8バイトを転送することができ、および4クロック・サイクルで、32バイト・キャッシュ・ラインを転送することができる。このように、プロセッサ・クロックが、(一例として)100MHzで供給される場合、前記データ転送速度は、800Mバイト毎秒であろう。Pentium Proプロセッサ・アーキテクチャの様々な詳細は、“Pentium Pro Family Developer‘s Manual, Volume 1:Specification”1996年1月、ISBN 1−55512−259−0に見ることができる。800Mバイト毎秒のデータ転送速度は、多くのアプリケーションでは十分であるが、向上したデータ転送速度または帯域幅を供給するプロセッサ・バスに対する必要性が存在する。
【0003】
(発明の開示)
本発明の実施例によれば、マルチドロップ(multidrop)を介して、ドライビング・エージェント(driving agent)から一つ以上の受信エージェントに情報を送信するための方法が提供される。共通バス・クロックは、ドライビング・エージェントおよび受信エージェントの両方に供給される。バス・トランザクションは、前記ドライビング・エージェントから前記一つ以上の受信エージェントに発行され:1)前記ドライビング・エージェントは、前記バス・クロックの周波数の倍数である速度で、アドレス・バスへ、要求のための複数の情報エレメントを送り;および2)前記ドライビング・エージェントは、いつ前記受信エージェントが、前記アドレス・バスに送られた前記情報エレメントをサンプリングするべきかを識別するための第一のストロボ信号を起動させることを含む。前記方法は、前記ドライビング・エージェントから前記一つ以上の受信エージェントへデータを転送することも含み:1)前記ドライビング・エージェントは、前記バス・クロックの周波数の異なる倍数である速度で、データ・バスへ複数の情報エレメントを送り;および2)前記ドライビング・エージェントは、いつ、前記一つ以上の受信エージェントが、前記データ・バスへ送られた前記情報エレメントをサンプリングすべきかを識別するための第二のストロボを起動させることを含む。
【0004】
本発明の前述の内容、およびより良い理解は、添付の図面とともに読むと、例示的実施例の詳細な説明および特許請求の範囲から明らかになり、そのすべては本発明の開示の一部を形成する。前述の、および以下に書かれた、ならびに説明された開示内容は、本発明の例示的実施例を開示することに焦点が絞られている一方で、それは説明および例示の目的のみであり、それに制約されないことが、明確に理解されるべきである。本発明の精神および範囲は、付属の特許請求の範囲の条件によってのみ制約される。
【0005】
(発明を実施するための最良の形態)
I.イントロダクション
実施例では、プロセッサ・バスは、複数のバス・エージェントに接続されている。このバスは、ある種類の信号については共通クロック信号モードを用いて送信され、別の種類の信号についてはマルチ・ポンプ信号モードを用いて送信されることから、いわゆるスケーラブル(scalable)である。
【0006】
共通クロック信号モードでは、コントロール信号をはじめとする各種信号は、共通バス・クロックの周波数と実質的に同じ速度で前記バスへと送られる。このモードでは、前記バス・クロックのエッジは、前記バスへ送られる信号をサンプリングするための点を特定する。
【0007】
マルチ・ポンプ信号モードで動作させると、バス・スループットは向上する。このモードでは、複数の情報エレメントは、バス・クロックの周波数の倍数の速度で、ドライビング・エージェントによって前記バスへと送られる。前記ドライビング・エージェントはまた、マルチ・ポンプ信号モードで送られる前記情報エレメントのためのサンプリング点を特定するためのストローブ信号を一時的に起動させる。リクエストのための情報エレメントは、例えば、二つの情報エレメントが、1バス・クロック・サイクル中に送られるダブル・ポンプ信号モードを用いて送ることができる。データ・ライン転送のためのデータエレメントは、例えば、4つのデータエレメントが、1バス・クロック・サイクル中に送られる、クアド・ポンプ信号モードを用いて送ることができる。複数のストローブ信号は、前記ストローブ信号の周波数を減らすために、オフセットまたは互い違いの配列で、一時的に起動される。サンプリングの対称性は、サンプリング点を特定するためのストローブ信号の一種類のみのエッジ(例えば、立ち上がりエッジまたは立ち下がりエッジのいずれか)を用いることによって、改善することかできる。さらに、トランザクション・フェーズの間の最小待ち時間は、マルチ・ポンプ信号モードで動作するバスの最大スピードに、より近く合うように変更することかできる。
【0008】
II.アーキテクチャ
図1は、本発明の例示的実施例のコンピュータを示すブロック図である。このコンピュータは、プロセッサ110、プロセッサ112およびプロセッサ114を含む一つ以上のプロセッサを含む。各プロセッサは、内部キャッシュ(図示されていない)も含む。
【0009】
各プロセッサは、共通プロセッサ・バス117(ホスト・バスまたはフロント・サイド・バスとして知られる)に接続もされる。図2は、例示的実施例に従ったプロセッサ・バス117を示す図である。図2に記載のとおり、前記プロセッサ・バス117は、コントロール・バス202、アドレス・バス204、およびデータ・バス206を含む。実施例では、データ・バス206は、64本のデータ・ラインD[63:0]を含む多くの信号を含む。前記アドレス・バス204も、36本のアドレス・ラインA[35:0]を含む多くの信号を含む。前記プロセッサ・バス117は、バス・クロック(BCLK)を含む。前記バス・クロックは共通であり、プロセッサ・バス117のコントロール・バス202を介して、すべてのエージェントに供給される。前記コントロール・バス202も、多くの信号を含む。前記アドレス・バス204、コントロール・バス202およびデータ・バス206は、それぞれ、好ましくは、マルチドロップ双方向バスである。この実施例では、“マルチドロップ”という用語を、二つのバス・エージェントの間のみで接続されるポイント・ツウ・ポイント・バスとは対照的に、前記バスが三つ以上のバス・エージェントに接続されることを意味する。
【0010】
いくつかの他のコンポーネントを前記プロセッサ・バス117に接続するために、システム・インターフェース116(またはチップセット)も、プロセッサ・バス117に接続される。システム・インターフェース116は、メイン・メモリ・サブシステム122をプロセッサ・バス117に接続するためのメモリ・コントローラ118を含む。メイン・メモリ・サブシステム122は通常、一つ以上のメモリ・カードおよびコントロール回路を含む。システム・インターフェース116は、一つ以上のI/OブリッジまたはI/O装置を、プロセッサ・バス117に接続するための、入力/出力(I/O)コントローラ120を含む。図1に記載された、この例示的コンピュータにおいて、I/Oコントローラ120は、I/Oブリッジ124をプロセッサ・バス117に接続する。I/Oブリッジ124はシステム・インターフェース116とI/Oバス130との間を接続するためのバス・ブリッジとして動作する。一つ以上のI/OコントローラおよびI/O装置は、例えばI/Oコントローラ132やI/Oコントローラ134等、I/Oバス130に接続されうる。I/Oバス130は、ペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect)(PCI)または他の種類のI/Oバスでもよい。
【0011】
III.エージェント
バス・エージェントは、データおよびシステム情報を転送するために、プロセッサ・バス117にトランザクションを発行する。バス・エージェントは、プロセッサ・バス117に接続される任意の装置である。バス・エージェントには、いくつかの類別がありうる:
1)中央エージェント:リセット、ハードウェア・コンフィギュレーションならびに初期化、特殊なトランザクション、および集中ハードウェア・エラー検出およびハンドリングを取り扱う。プロセッサは、その一例である。
2)I/Oエージェント:I/Oポート・アドレスを用いて、I/O装置に接続される。I/O装置のために使用される他のバスへのバス・ブリッジになることができる。例えばPCIブリッジ等である。
3)メモリ・エージェント:メイン・メモリへのアクセスを供給する。例えばメモリ・コントローラ118などである。
特定のバス・エージェントは、トランザクションにおいて、複数の役割を持つ場合がある:
1)リクエスト・エージェント:トランザクションを発行するバス・エージェントである。
2)アドレス・エージェント:トランザクションによってアドレス指定されるエージェントである。ターゲット・エージェントとも呼ばれる。メモリまたはI/Oトランザクションは、特定のメモリまたはI/Oのアドレスを認識するメモリまたはI/Oエージェントに対してアドレス指定される。応答が延期されたトランザクション(deferred reply transaction)は、元のトランザクションを発行したエージェントに対してアドレス指定される。
3)スヌープ・エージェント:キャッシュ・コヒーレンシーを保持するために、バス・トランザクションを観察する(“スヌープする(snoop)”)キャッシング・バス・エージェントである。
4)応答エージェント:トランザクションに応答を与えるエージェントである(通常はアドレス・エージェントである)。実施例では、応答エージェントは、応答ストローブRS[2:0]を用いてコントロール・バスへ応答を送る。
【0012】
IV.オペレーション、トランザクション、およびフェーズ
実施例では、プロセッサ・バス117上のバスの動作は、オペレーション、トランザクション、およびフェーズへ、階層的に編成されている。
【0013】
オペレーションは、ソフトウェアにとってアトミックのように見える(分割不可又は同時に起こるように見える)バス上の手順である。たとえバス117上ではアトミックのように見えないとしても、である。オペレーションは単一のバス・トランザクションの場合もありうるが、複数のバス・トランザクション又は複数のデータ転送を伴う単一のトランザクションを含む場合もある。リード・オペレーション(read operation)、ライト・オペレーション(write operation)、ロックされたリード・モディファイ・ライト・オペレーション(locked read-modify-write operation)およびデファード・オペレーションなどはそのような例である。
【0014】
トランザクションは、単一のバスのリクエストに関連するバス・アクティビティのセットである。トランザクションはバス仲裁、およびADS#信号(アドレスが送られていることを示す)ならびにトランザクション・アドレスのアサート(assertion)で始まる。トランザクションは例えば、データを転送し、変更されたキャッシュ状態について問い合わせをし、または前記システムに情報を供給するために実行される。
【0015】
フェーズは、特定の種類の情報を通信するために、特定の信号セットを使用する。フェーズには仲裁、要求、スヌープ、応答およびデータを含むことができる。すべてのトランザクションがすべてのフェーズを含むわけではなく、また、いくつかのフェーズは重複することもある。仲裁フェーズは、誰が次のバス所有者(bus owner)になるかをバス・エージェントが決めるフェーズである(エージェントは、トランザクションを発行する前に、バスを所有しなければならない)。リクエスト・フェーズは、トランザクションがバスに発行されるフェーズである。スヌープ・フェーズは、キャッシュ・コヒーレンシーが強化されるフェーズである。応答フェーズは、アドレスまたはターゲット・エージェントが、前記バスにトランザクション応答を送るフェーズである。データ・フェーズにおいては、要求または応答またはスヌープエージェントが、トランザクション・データを送り、または受ける。プロセッサ・バス117を介して送信される4つのコントロール信号は、バス・クロックBCLK[1:0]、初期化信号INIT#およびリセット信号RESET#を含む。バス・クロックBCLK[1:0]は、差動バス・クロック(differential bus clock)であり、クロック・チップまたはクロック回路によって生成されてもよい。二つのバス・クロック信号、BCLK[1:0]は、論理的には同一であり、物理的には、タイミング・スキュー(timing skew)を減らすために、二つの個別の信号として送られる。実施例では、すべてのエージェントは、それらの共通クロック出力を送り、およびバス・クロックの立ち上がりエッジに共通クロック入力をラッチする(latch)。各プロセッサは、一つの数または複数の数で、バス・クロック周波数を乗じ、および/または除することによって、前記バス・クロックBCLK信号からその内部クロックを導く。
【0016】
実施例では、RESET#入力信号は、すべてのバス・エージェントを既知の状態にリセットし、それらの内部キャッシュを無効にする。変更された、すなわちダーティな(dirty)キャッシュ・ラインの内容は失われる。RESET#がディアサート(deasserted)された後、各プロセッサは、コンフィギュレーションの際に定義されたパワー・オン・リセット・ベクトル(power on reset vector)において実行を開始する。
【0017】
実施例では、INIT#入力信号は、内部キャッシュ又は浮動小数点レジスタに影響を与えることなくすべてのプロセッサをリセットする。各プロセッサは、コンフィギュレーションの際に定義されたパワー・オン・リセット・ベクトルにおいて実行を開始する。
【0018】
図3は、実施例に関して、二つの例示的トランザクションに関する例示的バス・トランザクション・フェーズの関係を示すタイミング図である。最上部には、バス・クロック(BCLK[1:0])のサイクル(1,2,3,4,...17)を示した。数字1を有する四角形は、トランザクション1のための様々なフェーズを示す一方で、数字2を有する四角形は、トランザクション2のためのフェーズを示す。図3からわかるとおり、トランザクションは、パイプライン方式で行われる。例えば、トランザクション1に関して、バス・クロック・サイクル1および2において仲裁が生じ、サイクル3および4において要求が生じ、サイクル6および7においてスヌープが生じ、およびサイクル13および14において応答ならびにデータ転送が生じる。このように、応答およびデータ転送は、本来のリクエスト・フェーズから、いくつものバス・クロック・サイクルののちに生じてもよいことがわかる。また、異なるトランザクションのフェーズ間で重複が存在してもよい。例えば、トランザクション2の仲裁フェーズは、トランザクション1のリクエスト(要求)フェーズとほぼ同時に生じる。
【0019】
V.信号モード
実施例は、プロセッサ・バス117はスケーラブルであって、二つの信号モードをサポートする。第一の信号モードは共通クロック信号モードであり、これは、すべての信号起動およびサンプリングまたはラッチ点が、すべてのエージェントの間に連続的に供給される共通バス・クロック(BCLK#)に関して生じる。バス・クロックは通常、マザーボードに設けられたクロック・チップまたはクロック回路によって生成され、コンピュータにおけるすべてのプロセッサまたはエージェントに共通とされる。共通バス・クロックに関する信号クロック動作(signal clocking)は、共通クロック(1X)信号モードと呼ばれる。実施例では、コントロール・バスを介して供給される多くのコントロール信号は、共通クロック(1X)信号モードを用いて送信される。
【0020】
第二の信号モードはマルチ・ポンプ信号モードであり、これは、共通クロック信号モードによってサポートされる転送速度の倍数である情報転送速度を可能にする。すなわち、実施例では、マルチ・ポンプ信号モードは、共通バス・クロック(すなわちシステム・バス・クロック)の周波数の整数倍の速度で、エージェント間のプロセッサ・バス117を介した情報転送をサポートする。マルチ・ポンプ信号モードには、例えば、共通クロック周波数の速度の2倍(2X)で情報(例えば、データ、アドレス、または他の情報)を転送するダブル・ポンプ信号モードを用意してもよいし、バス・クロック周波数の4倍(4X)での情報転送を行うクアド・ポンプ信号モードを用意することもできる。共通バス・クロックよりも高い速度又は周波数での情報の転送を容易にするために、ドライビング・エージェントは、マルチ・ポンプ情報を取り込む、すなわちラッチするための基準として、レシーバによって使用されるタイミング“ストローブ”として知られる同伴信号(companion signal)の発行または供給も行う。
【0021】
アサート(asserted)という語は、信号をアクティブ・レベル(active level)にする(すなわち、アクティブ・ロー信号に関してはゼロになる)ことを意味し、ディアサート(deasserted)という語は、信号がインアクティブ(inactive)・レベルにすることを意味する。後述のいくつかのタイミング図で使用する正方形、円形または三角形の記号は、特定の信号が送られ又はサンプリングされる時点を示すためのものである。正方形の記号は、前記クロック・サイクルで信号が送られる(アサートされる、開始される)ことを示す。円形記号は、信号が前記クロック・サイクルでサンプリングされる(観察される、ラッチされる)ことを示す。円形記号は通常、共通クロック(1X)信号モードにおいて、バス・クロック(BCLK)の立ち上がり(または立ち下がり)エッジに基づいて、サンプリング点を示すのに用いる。三角形の記号は、信号が、“ストローブ”と称される、同伴信号の立ち上がりまたは立ち下がりエッジに基づいて、サンプリングされ又は取り込まれることを示す。前記ストローブは、好ましくは、通常マルチ・ポンプ・モードで、プロセッサ・バスを介した情報(例えば、データ、アドレス、他の情報)の送信中にのみ、オンにされ、または起動されてもよい。
【0022】
A.共通クロック信号モード
共通クロック(1X)信号モードの実施例では、プロセッサ・バス117上のすべてのエージェントは、アクティブな出力を送出し、必要とする入力をサンプリングすることが要求される。一つの実施例では、すべての入力は、有効なサンプリング・インターバル中のバス・クロックの立ち上がりエッジにおいてサンプリングされるとともに、その効果もしくは結果は、次のバス・クロックの立ち上がりエッジ以降に前記バス117へ送出される。この実施例のアプローチによって、コンポーネント間通信(信号送信ならびに伝播)のための1つのフル・バス・クロック・サイクル、および受信側における少なくとも1つのフル・バス・クロック・サイクルにおいて、信号を解釈し、演算し、そして応答を出力することが可能となる。結果として、エージェントが1又は2以上のバス・クロック・サイクルでデータをプロセッサ・バスに送出した後は、他のエージェントがプロセッサ・バス117を駆動することができるようになる前に、1バス・クロック・サイクル分のポーズ(pause)(例えば、デッド・サイクル(dead cycle)またはインアクティブ・サイクル)が存在する。
【0023】
図4は、実施例における、共通クロック(1X)信号モードの例示的オペレーションを示す例示的タイミング図である。信号は、それらがプロセッサ・バス117に現れるものとして示されている。また、バス・クロック(BCLK)の4サイクル分が示されている。A#およびB#を含む、二つの追加的例示的信号も示されているが、これらはあらゆる種類の信号であってよい。例えば、A#は、第一のエージェントからの第一のコントロール信号でもよいし、B#は、第二のエージェントからの第二の信号でもよい。第一および第二のコントロール信号は、例えば、ハンドシェーク(handshake)またはバス・プロトコルの一部として供給されてもよい。
【0024】
図4に示したように、信号A#は、クロック・サイクル1の立ち上がりエッジにおいて送出され(またはアサートされ)(A#における正方形で示した)、バス・クロック・サイクル2の開始における立ち上がりエッジにおいて、受信側でラッチされる(A#に関する円で示した)。このように、クロック・サイクル1は、信号伝播のために用意されている。A#はサイクル1の開始においてアサートされるが、これは、サイクル2の開始まではバスにおいては観測されない。ポーズまたはインアクティブ・クロック・サイクルが存在する(論理遅延および受信側が信号を解釈するためのバス・クロック・サイクル2の間に)。レシーバは、バス・クロック・サイクル3の開始時点においてB#信号を送出し又はアサートし(B#に関する正方形によって示した)、これはサイクル4の開始時点において、他のエージェントによって観測され、取り込まれる(B#に円で示した)。
【0025】
実施例では、プロセッサは、64バイト・キャッシュ・ラインを含む(いくつかのPentiumプロセッサにおいて使用される32バイト・キャッシュ・ラインの代わりとし)。そのため、データが共通クロック(1X)信号モードおよび64本のデータ・バス・ラインを用いて転送される場合、64バイト(1キャッシュ・ライン)のデータが、8バス・クロック・サイクルで送られ、転送される。しかしながら、多くのアプリケーションにおいては、より速いデータ転送速度又はより大きな帯域幅が望まれるだろう。
【0026】
B.マルチ・ポンプ信号モード
多くの例においてプロセッサ・バス117の長さや電気的な制約(バスへの信号伝播の待ち時間を含む)が、プロセッサ・バスの周波数を上げることを妨げうる。そのため実施例では、プロセッサ・バスのクロック周波数を上げるよりもむしろ、マルチ・ポンプ信号プロトコルによって、バス・クロック(BCLK)の周波数の倍数で適切なバス信号グループ(例えば、アドレス・バスまたはデータ・バス)を動作させて、(共通クロック信号モードよりも)データ転送速度を上げる。
【0027】
1.クアド・ポンプ信号モードの例
クアド・ポンプ信号モードでは、適切なバス信号グループが、バス・クロック(BCLK)の4倍(4X)の周波数で動作する。すなわち、クアド・ポンプ信号モードでは、1バス・クロック・サイクル(情報の一つのエレメントを共通クロックまたは1X信号モードで送るのにかかる時間)で、情報の4つのエレメントがプロセッサ・バス117に送られる。
【0028】
図5は、一実施例の例示的クアド・ポンプ信号モードの動作を示すタイミング図である。クアド・ポンプ信号モードは、あらゆる種類の信号に使用することができるが、実施例ではデータを送信するのに使用する。2つのバス・クロック・サイクルと三番目のバス・クロック・サイクルの一部が、図5に示されている。プロセッサ・バス117へのフライト時間(flight time)(または信号伝播時間)の最悪の場合というのは、第一の情報エレメントが、受信側(受信エージェント)でラッチされる前に、ドライバ(すなわち、プロセッサ・バスへ情報を送るエージェント)において第二の情報エレメントがプロセッサ・バス117に送出される場合である。
【0029】
実施例では、ドライバ(すなわち、ドライビング・エージェント)は、立ち上がりエッジと、バス・クロック(BCLK)サイクルの25%,50%,75%の点で、新しい情報エレメントを送信する。
【0030】
受信側はまた、レシーバがいつデータをサンプリングし又は取り込むべきかを示すデータ・ストローブ信号として知られる同伴タイミング信号を送信する。ストローブ信号は、好ましくは、情報がマルチ・ポンプ信号モードを用いて送信される時にのみ送信され、または起動される(駆動される)。
【0031】
データおよびストローブ信号は、同じドライバまたはソースによって生成されるので、同じパス(path)を有する。その結果、ストローブ信号およびデータ信号は、同じパスを有し、それゆえにおよそ同じ遅延を有する。そのため、ストローブおよびデータの両方を送信するドライバまたはソースによって得られる利点は、データ信号およびストローブ信号が、バス117における各エージェントに、同相で(すなわち同期して)到着することである。そこで、データおよびタイミング・ストローブ信号の両方を送信するドライバのこの技術は、ソース同期転送(source synchronous transfer)と呼ばれる。クアド・ポンプ信号モードでは、4つのデータエレメントの各々に対して一つ、各バス・クロック・サイクルにおいて、各々が情報サンプリングまたは取り込みポイントを特定する4つのデータ・ストローブ(例えば、4つのタイミング・ストローブ・エッジ)がある。残念ながら、ストローブ信号を比較的高い周波数で生成することについては問題が生じうる。高いクロック・スピードでは、立ち上がりエッジ速度と立ち下がりエッジ速度との間の差は、顕著になる。さらに、50%のデューティー・サイクルを有するクロック信号またはストローブ信号を供給することは難しい。その結果、いくつかの高いクロック周波数において、ストローブ信号の立ち上がりエッジと立ち下がりエッジは非対称となり、またはある程度の時間的な不確定性が生じるので、サンプリング点を特定するのに使用すべきではない。むしろ、より対称的な、あるいは均一なストローブ・タイミングまたはサンプリング・インターバルを得るために、ストローブの二つのエッジのうち一つのみを使用する(すなわち、クアド・ポンプ・データをサンプリングし又は取り込むためのストローブ信号の立ち上がりエッジのみ、または立ち下がりエッジのみを使用する)方が有利である。
【0032】
ストローブのエッジの一方のみを使用する場合は、通常、バス・クロック周波数の倍数のクロック周波数を必要とする。クアド・ポンプ・データ(1バス・クロック・サイクルにつき、4のデータエレメント)では、ストローブ信号周波数は、一つのエッジのみがタイミングに使用される場合、バス・クロック周波数の4倍である。
【0033】
残念ながら、プロセッサ・クロック周波数が(例えば)100MHzである場合、これは、(この例においては)400MHzであるストローブ信号周波数を必要とする。しかしながら、バス・クロック周波数の4倍の周波数のストローブ信号は、送信されたデータもしくは情報とは異なる遅延に遭遇する場合があり、これはレシーバにおけるデータおよびストローブの整列に影響を与えうる。このような送信されたストローブ信号と送信されたデータとの間の整列不良(misalignment)は、レシーバに不良な又は不正確なデータを取り込ませることになりうる。さらに、このような高い周波数では(例えば、400MHz)、信号減衰がより顕著になる。
【0034】
そのため、実施例では、バス・クロック周波数の4倍(4X)のストローブ周波数を使用せずに、1バス・クロック・サイクル当たり、4つのストローブを供給するよう、複数のデータ・ストローブ信号を使用する。実施例では、二つのデータ・ストローブ信号(DSTBp#およびDSTBn#)を、それぞれバス・クロックの2倍の周波数で供給する。すなわち、バス・クロック周波数が100MHzである場合、二つのデータ・ストローブ信号は、それぞれ、ドライバ(すなわち、ドライビング・エージェント)によって起動され、または生成される際に200MHzの周波数を有する。別の例として、4つのデータ・ストローブ信号を使用し(それぞれ起動される時のバス・クロックと同じ周波数)、それぞれ1バス・クロック・サイクル当たり1つのストローブまたは立ち下がりエッジを供給することもできる。
【0035】
再度、図5に記載のタイミング図を参照する。ドライバは、新しい情報またはデータエレメントを、立ち上がりエッジと、バス・クロック・サイクル1の25%、50%、75%の点において送信する。この例の4つのデータエレメントを、D1、D2、D3、D4とラベル付けする。この実施例では、DSTBp#及びDSTBn#を含む二つのデータ・ストローブ信号をも使用する。実施例では、二つのデータ・ストローブ信号は、互いに位相をずらして(すなわち互い違いあるいはオフセット配列で)生成される。これによって、ストローブ信号の一つは、奇数データエレメント(D1,D3,D5,・・・)のためのサンプリング点を特定し、他のストローブ信号は偶数のデータエレメント(D2,D4,D6,・・・)を特定するのに使用される。
【0036】
図5には二つのストローブ信号だけが示されているが、ソース同期転送のデータのためのサンプリング点を識別するために、あらゆる数のストローブ信号を使用することができる。上述のように、ストローブ信号の二つのエッジのうちの一方だけをサンプリング点(またはストローブ)の特定に用いる多重ストローブ信号を用いることは、ストローブ信号の周波数が下がることになるので有利であろう。例えば、(クアド・ポンプの代わりに)6Xポンプ・プロトコルを使用する場合は三つのストローブ信号を使用することになり、その場合は、ストローブ1がデータエレメントD1およびD4のために、ストローブ2がデータエレメントD2およびD5のために、ストローブ3がデータエレメントD3およびD6のために使用されるように、3つすべてのストローブ信号を同じようにオフセットしまたは互い違いにする。
【0037】
実施例では、ストローブ信号の二つのエッジのうちの一つだけを、データ・サンプリング点を特定し又は同期させるのに使用する。この特定の実施例では、二つのデータ・ストローブ信号の立ち下がりエッジのみを、情報またはデータをサンプリングするための点を特定するのに使用する。データ・ストローブ(または、データ・ストローブ信号の立ち下がりエッジ)を、4つの情報またはデータエレメントの各々に中心を合わせる。すなわち、データ・ストローブ信号の4つの立ち下がりエッジ(またはストローブ)は、バス・クロック(BCLK)サイクルの12.5%、37.5%、62.5%および87.5%で発生する。ゆえに、二つのストローブ信号は、等しい間隔のストローブまたは立ち下がりエッジを与える。
【0038】
図5に示したように、DRDY#は、バス・クロック・サイクル1の開始において、バス117に送られる(DRDY#に関する正方形によって示されている)。DRDY#は、有効なデータがプロセッサ・バス117上にあり、かつ、これをサンプリングし又は取り込まなければならないことを示す。第一のデータエレメント(D1)は、(D#(@ドライバ)の最初の四角形で示したように)バス・クロック・サイクル1の立ち上がりエッジにおいて、ドライバによってプロセッサ・バス117へ送出される。そして、第一のデータ・ストローブ信号(DSTBp#)は、DSTBp#(@ドライバ)の最初の正方形で示したように、第一のバス・クロック・サイクルの12.5%の点においてドライバによって起動される。このように第一のデータエレメント(D1)に関するストローブ(または立ち下がりエッジ)は、第一のデータエレメントに中心を合わせられる。ストローブ信号は、一旦起動され又はオンにされると、通常データがバスへと送られるまで起動された状態が続く。
【0039】
また、第二のデータエレメントは、D#(@ドライバ)に関する第二の四角形で示したように、バス・クロック・サイクル1の25%の点においてドライバによって送出される。第二のデータ・ストローブ信号(DSTBn#)は、バス・クロック・サイクル1の37.5%の点において起動され、第二のデータエレメント(D2)に中心が合わされる立ち下がりエッジ(またはストローブ)が与えられる。
【0040】
同様に、第三および第四のデータエレメント(それぞれD3、D4)は、バス・クロック・サイクル1の50%の点および75%の点で送出される。対応するデータ・ストローブ(データ・ストローブ信号の立ち下がりエッジ)は、62.5%の点(DSTBp#ストローブ信号によって)および87.5%の点(DSTBn#ストローブ信号によって)においてドライバによって送出されあるいは供給される。データ・ストローブ信号は、バス・クロックの周波数の2倍である周波数で供給されるので、各データ・ストローブ信号は、2分の1バス・クロック・サイクルごとに、ストローブまたは立ち下がりエッジを供給する。このようにDSTBp#ストローブ信号は、バス・クロック・サイクルの12.5%および62.5%の点で立ち下がりエッジまたはストローブを供給する一方で、DSTBp#ストローブ信号は、バス・クロック・サイクルの37.5%および87.5%の点において、立ち下がりエッジまたはストローブを供給する。このように、二つのデータ・ストローブ信号(DSTBp#およびDSTBn#)は、互い違いであり、または互いに同期しないことがわかる。これによって、交互のストローブ信号は、バス・クロック・サイクルの4分の1ごとに(両方のデータ・ストローブ信号の間に)、立ち下がりエッジ(またはストローブ)を供給することができる。これは、1バス・クロック・サイクルにつき、4つのデータエレメントのためのサンプリング点または捕獲点を識別するために、1バス・クロック・サイクルあたり4つのストローブまたは立ち下がりエッジを供給する一方で、各ストローブの周波数を下げる。さらに、同じエッジ(この場合は、立ち下がりエッジ)が、各データ・ストローブ信号においてストローブとして使用されるので、タイミングおよび回路は、単純化される。
【0041】
実施例では、確実に正しい動作を行うために、ドライビング・エージェントからレシーバへの情報転送の待ち時間を、1バス・クロックから入力ラッチ・セットアップ時間(input latch setup time)を引いた時間以下とすべきである。これにより、受信側が次のフェーズのあいだバス所有者(bus owner)になる場合に、次のデータ・フェーズのためのデータ・ラインにおけるコンテンション(contention)が回避される。
【0042】
図5は、レシーバにおけるデータの取り込みも示している。ドライバによって信号(データおよびデータ・ストローブ)が送出された後、信号は、プロセッサ・バス117に沿って伝播し、ターゲットまたはレシーバに到着する。第一のデータエレメントは、D#(@レシーバ)信号によって示した通り、受信側で受信される。第一のデータエレメント(D1)は、第一のストローブ、すなわちDSTBp#(@レシーバ)の第一の立ち下がりエッジでサンプリングされ又は取り込まれる。DSTBp#(@レシーバ)に関する第一の三角形は、第一のデータエレメントをサンプリングし又は取り込むためのストローブまたは点を特定し、DSTBp#(@レシーバ)に関する第二の三角形は、レシーバにおいて第三のデータエレメントをサンプリングするための点またはストローブを特定する。同様に、第二のデータ・ストローブ信号(DSTBn#(@レシーバ))に関する二つの三角形は、レシーバが、第二のおよび第四のデータエレメント(D2,D4)をサンプリングし又は取り込むための点を特定する。
【0043】
図5に示したように、第一のデータエレメントD1は、クロック2の開始における立ち上がりエッジの後、およびクロック・サイクル2(次のクロック・サイクル)の12.5%の点の直後、受信側によってサンプリングされ又は取り込まれ(ストローブされ)てもよい。(ここで使用される通り、“取り込み(capturing)”、“サンプリング(sampling)”および“ラッチ(latching)”という用語は、略同じものを意味するように、ゆるやかに使用されている)。しかしながら、すべてのデータエレメントのデータが、バス・クロック・サイクル3の立ち上がりエッジまで、受信側にラッチされるのではない。すなわち、データエレメントD1は、バス・クロック・サイクル2の開始近くで受信され又は取り込まれるが、すべてのデータが、バス・クロック・サイクル3の開始まで、受信側によって利用可能なわけではない。受信エージェントは、好ましくは、8つのデータエレメントを記憶できるFIFO(ファースト・イン・ファースト・アウト)バッファを含む。8データエレメントFIFOは、一つのデータ転送の4つのエレメントおよび次の転送のための次の4つのエレメントを記憶できる大きさである。これによって、前の4つのデータエレメントは、FIFOからレシーバへ押し出され又はラッチされている間に、4つの新しいデータエレメントが受信され又は取り込まれる。最終的結果(net effect)は、共通クロック信号モードの帯域幅の4倍であり、これにレシーバまたは装置の内側にラッチされる第一の信号グループのための待ち時間が加わる。
【0044】
さらに、実施例では、二つのデータ・ストローブ信号(DSTBp#およびDSTBn#)の各々の、複数のコピーを運ぶために、複数のラインが使用される。実施例では、以下の表に示すように、4つのDSTBn#信号および4つのDSTBp#信号がある。
【0045】
【表1】
データ・ストロボ範囲の例示的実施例
【0046】
4つのDSTBp#信号は、4つのDSTBn#信号と同様に、論理的には等しいが、各データ・ストローブ信号は、データとデータ・ストローブ信号との間のタイミング・スキューまたは整列不良を軽減するため、リクエスト信号のサブセット(すなわち、データ・ラインのサブセット)とともに物理的に送られる。
【0047】
図8は、実施例における、エージェント間で情報を転送するための装置のブロック図である。第一のバス・エージェント802は、第二のバス・エージェント832に接続されている。第一のバス・エージェント802は、第一の双方向データ・ストローブ信号ライン820上で第一のデータ・ストローブ信号(例えば、DSTBp#)を生成し並びに受信するためのデータ・ストローブ生成装置1/レシーバ1を含んでおり、そして、第二の双方向データ・ストローブ信号ライン822上で第二のデータ・ストローブ信号(例えば、DSTBn#)を生成し並びに受信するためのデータ・ストローブ生成装置2/レシーバ2を含んでいる。バス・エージェント802は、データ・バスまたはデータ信号ライン826へデータ信号を送信し又は送出するための送信回路と、データ信号ライン826を介して受信されたデータ信号を受信するための受信回路をも含んでいる。第二のバス・エージェント832も同様に、それぞれデータ・ストローブ信号ライン820および822へ二つのデータ・ストローブ信号を生成するためのデータ・ストローブ生成装置1およびデータ・ストローブ生成装置2を含んでいる。共通バス(またはシステムバス)クロック生成装置810は、バス・エージェント802および832に、共通バス・クロックまたはシステム・バス・クロックを供給する。
【0048】
2.アドレス・バスのスピードをデータ・バスに合わせる
実施例では、キャッシュ・ラインのサイズは、64バイトに増やした(いくつかのPentiumプロセッサにおけるキャッシュ・ラインのサイズは32バイトである)。このように、クアド・ポンプ信号プロトコルおよび64データ・ラインのデータ・バス幅を用いて、キャッシュ・ライン(または64バイト)は、2バス・クロック・サイクルで送信され、または転送される:
64バイト=(2サイクル)×(4ポンプ/サイクル)(8バイト毎ポンプ)。
【0049】
しかしながら、いくつかのPentiumプロセッサでは、リクエスト(アドレスを含む)は、3バス・クロック・サイクルで転送される。いくつかのPentiumプロセッサに関するリクエスト・フェーズのための3バス・クロック・サイクルは、以下のものを含んでいた:
サイクル1−サブ・フェーズa−アドレス(アドレス・バス上に供給される)、および1種類のリクエスト(例えば、リード(read)、ライト(write))。
サイクル2−サブ・フェーズb−バイト・イネーブル(byte enables)、長さ、等を含む、リクエストに関する補助的詳細(アドレス・ラインまたはアドレス・バス上に供給される)。
サイクル3−他のエージェントにバスを送らせるために、バス上の信号が、利得を下げる(quiet down)ようにする、デッド・サイクルまたはターンアラウンド・サイクル。
【0050】
このようにして、実施例では、キャッシュ・ラインは、2バス・クロック・サイクルで、データ・バスを介して転送される。しかしながら、いくつかのPentiumプロセッサでは、アドレスおよびリクエストのタイミングは、一つのリクエストを転送するのに3バス・クロック・サイクルを必要とする。このようにいくつかのPentiumプロセッサでは、アドレス・バスのタイミングもしくは帯域幅は、上述の実施例(図5参照)で説明したように、向上したクアド・ポンプ・データ・バスのスピードとは調和しない。より不足しがちで価値のあるリソースの一つは、データ・バス幅およびデータ・バス帯域幅である。そこで、実施例ではデータ・バス帯域幅のために、アドレス・バス帯域幅ではなくプロセッサ・バスを絞り、あるいは制約することが好ましい。すなわち、アドレス・バスが、プロセッサ・バスを遅くしないように又は圧迫しないようにするために、データ・バスの帯域幅またはスピード(この例ではデータ・バス上の一つのキャッシュ・ラインの送信に関して)と少なくとも調和するように、アドレス・バス上のアドレスおよびリクエストのタイミングを調整することが望ましい。
【0051】
したがって、実施例では、アドレス・バスを介して供給されるリクエスト・フェーズのタイミングおよびスピードは、データ・バスの全体のスピードに合うように調節した。デッド・サイクルまたはターンアラウンド・サイクルは、維持することが望ましい。すなわち、例示的実施例では、アドレス・バスをダブル・ポンプして、1バス・クロック・サイクルで2つの情報エレメント(要求のサブ・フェーズaおよびサブ・フェーズb)を供給する。
【0052】
3.ダブル・ポンプ信号モードの例
実施例では、一般に、ダブル・ポンプ信号モードでは、バス・クロック(BCLK)の周波数の2倍(2X)で該当するバス信号グループを動作させる。図6は、実施例における例示的ダブル・ポンプ信号モードの動作を示すタイミング図である。どのような信号をダブル・ポンプしてもよいが、この例では、アドレス・バスがダブル・ポンプされている。
【0053】
図6を参照する。ADS#信号は、リクエスト・フェーズの開始においては低い。ダブル・ポンプ信号モードにおいて、共通クロック信号モードを用いて一つのエレメントを送るのにかかる時間で(すなわち、1バス・クロック・サイクル中)、情報の二つのエレメントがバスに送られる。フライト・タイム(すなわち、プロセッサ・バス117での信号伝播時間)によって、第二の信号グループまたは情報エレメントは、第一のエレメントがレシーバにおいてラッチされる前に、ドライバで送られてもよい。実施例では、ドライバは、バス・クロック・サイクルの立ち上がりエッジおよび50%の点において、新しい情報エレメントを送信する。
【0054】
図6に示したように、トランザクション・アドレスを供給するリクエストのサブ・フェーズa(Aa)が、バス・クロック・サイクル1の開始における立ち下がりエッジで始まるバス・クロック・サイクル1の第一半期に送信される。トランザクションに関するいくつかの補助的詳細を供給するリクエストのサブ・フェーズb(Ab)は、バス・クロック・サイクル1の50%の点において始まるバス・クロック・サイクル1の第二半期に送信される。これら二つの情報エレメントは、A#(@ドライバ)ラインのためのAaおよびAbに関する二つの四角形として図6に示してある。(Aaは、アドレス・ラインを介して供給されるリクエストのサブ・フェーズaを示し、Abは、アドレス・ラインを介して供給されるリクエストのサブ・フェーズbを示す)。こうして、二つの情報エレメント(AaおよびAb)は、1バス・クロック・サイクル中に転送され、または送信されるので、アドレス・バスはダブル・ポンプされる。
【0055】
さらに、リクエストに関する情報は二重ポンプ信号モード(1バス・クロック・サイクル当たり二つの情報エレメント)を用いて送信されるので、前記情報はソース同期転送として送信されるので好ましい。このように、ドライバは、二つの情報エレメントに加え、アドレス・ストローブ信号を送り又は起動させると、(起動された時に)1バス・クロック・サイクル当たり二つのアドレス・ストローブを供給する。アドレス・ストローブは、アドレス・バスで送信される二つの情報エレメント(AaおよびAb)をサンプリングするための点を与え又は特定する。
【0056】
実施例では、バス・クロック(BCLK)と同じ周波数のアドレス・ストローブ信号(ADSTB#)を使用する。しかしながら、1バス・クロック・サイクル中に2つのストローブを供給するために、アドレス・ストローブ信号の立ち下がりエッジおよび立ち上がりエッジの両方を、ストローブとして使用し、あるいはアドレス・バスを介して供給される二つの情報エレメントのためのサンプリング点を特定するのに使用する。図6に記載の通り、ドライバは、情報エレメント1(Aa)の中心である、バス・クロック・サイクル1の25%点で、アドレス・ストローブ信号(ADSTB#)を起動する。実施例では、第一の情報エレメント(Aaまたはリクエストのサブ・フェーズa)のためのアドレス・ストローブは、ADSTB#信号の立ち下がりエッジとして供給される(バス・クロック・サイクル1の25%点において送られる)一方で、第二の情報エレメント(Abまたはリクエストのサブ・フェーズb)のためのアドレス・ストローブは、ADSTB#信号の立ち上がりエッジとして与えられる(バス・クロック・サイクル1の75%点において送られる)。
【0057】
アドレス・ストローブがバス・クロックと同じ周波数を有しているとしても、バス・クロック信号は適切なタイミングで立ち上がりおよび立ち下がりエッジを与えるのではないので、バス・クロックを情報エレメントに関するストローブ信号として使用すべきではない。さらに、バス・クロック信号は常に起動される(ソース同期転送中のみ起動されるストローブ信号とは対照的に)。アドレス・ストローブ信号は、バス・クロックの状態またはフェーズに関係なく活性化(オンにする)及び非活動化(オフにする)できるので、このアドレス・ストローブ信号を、二つの情報エレメントに関するストローブまたはサンプリング点を与えるのに使用する。ストローブを、情報と同じソースから送られるようにすることによって、ストローブにおける遅延は情報における遅延に適合し、よって一つのワイヤ上に1以上のビットが同時に存在することができる。
【0058】
情報エレメント(AaおよびAb)およびアドレス・ストローブ信号は、プロセッサ・バス117に沿って伝播し、バス・クロック・サイクル2の開始において、レシーバに到達する。図6に記載の通り、第一の情報エレメント(Aa)は、ADSTB#(@レシーバ)信号の立ち下がりエッジで取り込まれあるいはサンプリングされ、そして第二の情報エレメントは、ADSTB#(@レシーバ)信号の立ち上がりエッジで取り込まれあるいはサンプリングされる。これをADSTB#(@レシーバ)信号上の二つの三角形で示した。このように、レシーバは、データが有効(そして取り込まれるべき)時に、ドライバからの表示に基づいて、データまたは情報を決定論的に取り込むことがわかる。
【0059】
実施例では、ドライビング・エージェントからあらゆるレシーバへのデータ転送の待ち時間は、1バス・クロック・サイクルから入力ラッチ・セットアップ時間を引いたものと等しいか又は小さくなければならない。これより、レシーバが次のフェーズの所有者になる場合、第二のあるいは次のフェーズのためのアドレス・ライン(またはアドレス・バス)および他のラインでのコンテンションが避けられる。最終的結果は、コンピュータまたはレシーバの中にラッチされている第一の信号グループのための待ち時間を加えるという結果を伴う、共通クロック信号モードの帯域幅の2倍である。
【0060】
実施例では、レシーバは、リクエスト・フェーズ中、アドレス・バスを介して送信される4つの情報エレメントを記憶するための4つのエレメントFIFOバッファを含む。これにより、1つのリクエストのサブ・フェーズaおよびサブ・フェーズbからのエレメントは、FIFOにおいて受信され、取り込まれる一方で、同時に、前のリクエストのサブ・フェーズaおよびサブ・フェーズbからのエレメントが、FIFOから読み取られ、およびレシーバにおいてラッチされるようにする。
【0061】
それゆえに、実施例では、アドレス・バスを介して転送される2つの情報エレメントのためにストローブを供給するために、バス・クロックと同じ周波数で、単一のアドレス・ストローブ信号が使用される。アドレス・ストローブに関するこれらの周波数(バス・クロック信号と同じ周波数)においては、信号の減衰は問題ではない。さらに、1バス・クロック・サイクル当たり、二つの情報エレメントだけが送信されるので、ストローブ・デューティー・サイクルにおける非対称性は問題を引き起こさない。このため、立ち下がりエッジおよび立ち上がりエッジの両方をストローブとして使用されるバス・クロックと同じ周波数での、単一のアドレス・ストローブを、アドレス・ストローブ信号に使用することができる。
【0062】
これとは別に、複数の(または二つの)アドレス・ストローブ信号を、各アドレス・ストローブ信号のエッジのうち一つのみをストローブとして使用することもできる。例えば、サイクル1の25%点において起動される(立ち下がりエッジを有する)第一のアドレス・ストローブ信号と、サイクル1の75%点において起動される(立ち下がりエッジを有する)第二のアドレス・ストローブ信号を使用することができる。これは、二つのアドレス・ストローブ信号の起動点が、オフセットされるあるいは互い違いになる。この場合、1バス・クロック・サイクル中に二つのエレメントしか送られないので、アドレス・ストローブ信号の周波数は、バス・クロック周波数、または他の周波数と同じになるように選ばれる。
【0063】
図9は、エージェント間の情報の転送のための装置の、他の実施例のブロック図である。第一のバス・エージェント802は、第二のバス・エージェント832に接続されている。第一のバス・エージェント802は、双方向アドレス・ストローブ信号ライン920へ、アドレス・ストローブ信号(例えば、ADSTB#)を生成するための、アドレス・ストローブ生成装置940を含んでいる。バス・エージェント802は、アドレス・バスまたはアドレス信号ライン926へとアドレスおよび他の信号を送信又は駆動するための送信回路と、アドレス信号ライン926からの信号を受信するための受信回路とを含む、バス・トランシーバ906も含んでいる。第二のバス・エージェント832は同様に、双方向アドレス・ストローブ信号ライン920へアドレス・ストローブ信号を生成するためのアドレス・ストローブ生成装置942を含んでいる。第二のバス・エージェント832も、アドレス信号ライン926を介して、それぞれ信号を送信し、および受信するための受信回路および送信回路を含むバス・トランシーバ936を含む。
【0064】
上述の通り、一つのキャッシュ・ラインのデータ転送は、クアド・ポンプ信号モードを用いて、2バス・クロック・サイクルで送信することができ、アドレス要求は、ダブル・ポンプ信号モードを用いて、2バス・クロック・サイクルで送信することができる。このように、アドレス・バスおよびデータ・バスの両方が、同じピーク・スループットを有し、これにより均衡の取れたプロセッサ・バスが提供される。特に指摘しない限り、たとえすべてではないとしても、他のほとんどの信号は、共通クロック(1X)信号モードを用いて送信される。
【0065】
VII.バス・プロトコルを、2クロック・サイクルの新しいビート・レートに合わせる。
上述のとおり、プロセッサ・バスは、マルチ・ポンプ信号プロトコルを使用することにより、より広いリクエスト及びでーだの帯域幅を与える。リクエスト帯域幅(アドレス・バス上)およびデータ帯域幅(データ・バス上)は広がるが、Pentiumプロセッサのいくつかにおいて使用されるのと同じ基本的な種類のバス・プロトコは維持され、データ・バス幅(64ライン)を増やす必要はなく、クロッキングまたはルーティンのための高価な構成も必要としない。
【0066】
いくつかのPentiumプロセッサにおいて、64本のデータ・ラインを用いて、1バス・クロック・サイクル当たり8バイトのデータを送信するために、共通クロック信号モードが使用され、それにより32バイトのキャッシュ・ラインが4バス・クロック・サイクルで送信される。本発明の実施例では、キャッシュ・ラインは64バイトに増やされ、クアド・ポンプ信号モード(1バス・クロック・サイクルにつき32バイトを送信する)を使用して、2バス・クロック・サイクルで64バイトのキャッシュ・ラインを送信することができる。さらに、いくつかのPentiumプロセッサにおいて、バス・クロック・サイクル1におけるサブ・フェーズa、サイクル2におけるサブ・フェーズb、およびサイクル3に関するターンアラウンド・サイクル(またはデッド・サイクル)を含む3バス・クロック・サイクルで、リクエストが転送される。本発明の実施例では、アドレスバス上でダブル・ポンプ信号モードを使用して、単一のバス・クロック・サイクルにおけるリクエストのサブ・フェーズaおよびbの両方を転送または送信する。これにより、リクエスト・フェーズの長さは、2バス・クロック・サイクルに減り、その結果キャッシュ・ライン転送の長さと(2バス・クロック・サイクルにも)調和する。リクエスト・フェーズは、2バス・クロック・サイクルの長さを有し、キャッシュ・ライン転送は2バス・クロック・サイクルを必要とするので、プロセッサ・バスのビート・レートまたはビート周波数は、一般的に、2バス・クロック・サイクルであると考えることができる。
【0067】
本発明の実施例によると、連続したフェーズの開始の間の待ち時間(遅延)が、プロセッサ・バスの2つのバス・クロック・サイクルの新しいビート周波数によりよく合うよう調整されるように、バス・プロトコルが変更される。図7は、トランザクション・フェーズ(仲裁、リクエスト、スヌープおよび応答フェーズを含む)の間の最小の待ち時間(遅延)を示す図である。仲裁(Arb)、要求(Req)、スヌープ、そして応答(Resp)の各フェーズが、二つのトランザクション(トランザクション1およびトランザクション2)について示されている。数字は、フェーズ間の待ち時間(遅延)を示している。第一の数字は、いくつかのPentiumプロセッサに実装されているように、フェーズの開始の間の、バス・クロック・サイクルの最小数を示し、第二の数字(括弧の中)は、2バス・クロック・サイクルの新しいビート周波数により近く合うように、バス・プロトコルが調整され、または合わせられた後の、フェーズ間の新しい最小待ち時間を示す。数字が一つだけ表示されている場合は、いくつかのPentiumプロセッサと本発明の実施例との間のように、フェーズ間に遅延(待ち時間)の変化がないことを示す。
【0068】
上述の通り、図7に記載されたフェーズ間の最小待ち時間は、通常2バス・クロック・サイクルである。図7を参照すると、一つのトランザクション(例えば、トランザクション1)に関する仲裁フェーズの開始と、リクエスト・フェーズの開始との間の最小待ち時間は、2バス・クロック・サイクルで変化しない。一つのトランザクションの、リクエスト・フェーズの開始からスヌープ・フェーズの開始までの最小待ち時間は、4バス・クロック・サイクルから3サイクルに減らされている。スヌープ・フェーズの開始から応答フェーズの開始まで間の最小待ち時間は、2バス・クロック・サイクルで変化しない。リクエスト・フェーズの開始と、ターゲット・エージェントがTRDY#信号をアサートすることができる時との間の最小待ち時間は、3から2バス・クロック・サイクルへと減らされている。TRDY#信号のアサートから、応答フェーズの開始までの最小待ち時間は、2バス・クロック・サイクルで変化しない。
【0069】
さらに、連続したトランザクションの同じフェーズまたは対応するフェーズの間の最小待ち時間は、2クロック・サイクルのビート周波数により近く合うように変更されている。再度図7を参照すると、連続した仲裁フェーズの間の最小待ち時間(例えば、トランザクション1の仲裁フェーズの開始と、トランザクション2の仲裁フェーズの開始との間の最小待ち時間)は、3バス・クロック・サイクルから2サイクルに減らされている。連続したリクエスト・フェーズの間の最小待ち時間は、3バス・クロック・サイクルから2へと減らされている。連続したスヌープ・フェーズの間の最小待ち時間は、3バス・クロック・サイクルから2へと減らされている。そして、連続した応答フェーズの間の最小待ち時間は、3バス・クロック・サイクルから2へと減らされている。
【0070】
各フェーズについて、フェーズ間の待ち時間における減少(待ち時間の減少が生じた)の一因となった、フェーズに関するバス・プロトコルについてのいくつかの変更・修正の簡単な説明とともに説明する。
【0071】
リクエストしているエージェントがバスを所有していない時は、トランザクションは仲裁フェーズで始まる。そこでリクエストしているエージェントがバス所有者になる。リクエストしているエージェントがバス所有者になった後、トランザクションはリクエスト・フェーズに入る。リクエスト・フェーズの第一のサブ・フェーズ(サブ・フェーズa)において、ADS#信号(有効なアドレスを示す)が、スヌープおよびメモリ・アクセスを開始するためのトランザクション・アドレスおよび十分な情報とともに送られる。リクエスト・フェーズの第二のサブ・フェーズ(サブ・フェーズb)において、バイト・イネーブル(どのデータ・バイトがデータ・ラインで供給されるかを示す)、デファードID、トランザクション長、および他のトランザクション情報を含む、要求に関する様々な補助的情報が、バス117へと送られる。第一および第二のサブ・フェーズは、1バス・クロック・サイクル中に送られる。このため、実施例では、要求情報(例えば、どれが多くアドレス・バスを介して供給されるか)を、2Xデータ転送速度を有すると言う。
【0072】
実施例では、すべてのトランザクションはスヌープ・フェーズを有する。スヌープ・フェーズからのスヌープ結果は、トランザクションのために送られたアドレスが、あらゆるバス・エージェントのキャッシュにおける有効な、または変更された(ダーティな)キャッシュ・ラインを参照するかどうかを示す。スヌープ結果はまた、トランザクションが順番に完了するか、あるいは遅延して、順番通りでなく完了するかどうかということも示す。エージェントは、スヌープ停止(snoop stall)を用いて、スヌープ・フェーズを延ばすことによって、スヌープの準備ができていない場合に、トランザクションを遅らせることができる。
【0073】
ここで、フェーズ間の待ち時間を減らすために実行した相違点を強調しながら(適用可能である場合)、各フェーズについて説明する。
【0074】
1)仲裁フェーズ:バス・エージェントがプロセッサ・バス117を所有するまでは、トランザクションが発行されることはない。トランザクションをプロセッサ117に送りたいエージェントが既にバス117を所有していない場合には、トランザクションは、このフェーズを有するだけでよい。実施例では、2つのクラスのバス・エージェント、すなわち対称エージェントおよび優先エージェント(priority agent)をサポートするバス仲裁プロトコルが設けられている。バス117のプロセッサは通常、対称エージェントとして仲裁する。優先エージェント(例えば、システム・インターフェース116)は通常、I/Oサブシステム(I/Oブリッジ124またはI/Oエージェント)およびメモリ・サブシステム(メイン・メモリ・サブシステム122に配置されたメモリ・エージェント)に代わって仲裁する。
【0075】
バスの所有権を仲裁するのに使用される例示的信号グループを以下に示す(ここでは、#記号はアクティブ・ロー信号を示す)。
【0076】
【表2】
例示的仲裁信号
【0077】
プロセッサ・バス117は、複数のエージェントに、同時にバス117に関して仲裁させる。対称エージェントは、ラウンド・ロビン循環優先スキーム(round robin rotating priority scheme)に基づいて、バス117に関して仲裁する。この仲裁スキームは、すべての対称エージェントに関するリクエスト・フェーズへの公正なアクセスを保証する。各対称エージェントは、リセット時に割り当てられた独自のエージェントID(例えば、エージェント0,1,2,3)を有し、循環的な順番(circular order)に従って仲裁が行われる。リセットの後、エージェント0は最も優先順位が高く、エージェント1、2、および3がこれに続く。対称的な各エージェントは、最も最近のバス所有者の対称的なエージェントIDを反映した共通の循環IDを保持する。すべての仲裁イベントにおいて、最高の優先順位を有する対称的なエージェントが所有者となり、そのエージェントはバスの使用を妨げるより高い優先順位の他のアクションが他にない場合に、リクエスト・フェーズに入ることができる。優先エージェントは、対称的な所有者よりも優先順位が高い。
【0078】
対称的なエージェントは、そのBREQn#信号をアサートすることによって、バスをリクエストする。BREQ[3:0]でサンプリングされた値および最後の対称的なバス所有者に基づいて、すべてのエージェントは同時に次の対称バス所有者を決定することができる。優先エージェントは、BPRI#をアサートすることによってバスをリクエストし、それは、BPRI#がインアクティブでサンプリングされるまでは、他の対称エージェントが別のロックされていないバス・トランザクションを発行しないので、一時的に仲裁スキームよりも優位となる。優先エージェントは、常に次のバス所有者である。さらなるトランザクションがバスに発行されるのを阻止するために、任意のバス・エージェントがBNR#信号をアサートすることができる(通常は、バッファ等のシステム・リソースが満たされ、他のトランザクションに対処できない時に使用される)。LOCK#信号のアサートは、バス・エージェントが、中断されてはならないバス・トランザクションのアトミック・シーケンス(atomic sequence)を実行していることを示す。
【0079】
優先エージェントは、その最後の要求を生成するのと同じサイクルで、BPRI#をディアサートして、バスの所有権を解放することができる。いくつかのPentiumプロセッサにおいては、BPRI#信号がアサートされた後、BPRI#信号は、最小の2バス・クロック・サイクルでディアサートされなければならない。これは、古い3バス・クロック・サイクル速度(いくつかのPentiumプロセッサにおける)に匹敵し、対称エージェントと優先エージェントの均衡が取れたアクセスをバスに供給した。実施例では、アサートされた後に、最小の1バス・クロック・サイクルのみで、BPRI#信号がディアサートされることを求めるように、プロトコルを変更した。この現在の実施例のように変更したことによって、2バス・クロック・サイクルのビート・レート、アサートのための1バス・クロック・サイクル、そしてディアサートのための1サイクルをサポートする。
【0080】
上述の通り、BNR#信号は、例えば、エージェントが別のトランザクションをサポートするのに十分なリソースを有しない時、さらなる要求を遅らせるために使用することができる。実施例では、リクエスト停止(request stall)プロトコルが実行され、これは3つの状態に基づいて決定される:
1)フリー:この状態では、エージェントがリクエストを発行する能力は、BNR#リクエスト停止プロトコルによっては制約されないが、エージェントのバスの所有権によって、およびリクエストの速度によって制約される。いくつかのPentiumプロセッサでは、フリー状態でのBNR#サンプリング点は、ADS#がアサートでサンプリングされた後、3クロック・サイクルで生じる。実施例では、BNR#サンプリング点は、ADS#信号がアサートされサンプリングされた後、2クロック・サイクル(3クロック・サイクルではなく)で生じるように調整された。エージェントが、フリー状態で新しいリクエスト生成を停止するつもりである時、エージェントは、ADS#からの有効なBNR#サンプリング点の前に、クロック・サイクルでBNR#をアクティブにする。次のクロック・サイクルでは、すべてのエージェントが、BNR#サンプリング点でのアクティブなBNR#を見ることによって、停止した状態へ移行する。
【0081】
2)スロットル(throttled):エージェントは、バスの所有権を有し、最大ADS#要求速度が維持されていると、この状態で一つのリクエストを発行することができる。BNR#サンプリング点は、スロットル状態の第一のクロック・サイクルにある。スロットル状態にある時、BNR#がBNR#サンプリング点において、アクティブでサンプリングされる場合、状態は停止状態(stalled state)に移行する。BNR#は、BNR#サンプリング点において、インアクティブでサンプリングされる場合、状態はフリー状態に移行する。
【0082】
3)停止(stalled):この状態においては、BNR#サンプリング点でサンプリングされたBNR#が、インアクティブになるまで、エージェントはリクエストを発行してはならない。停止状態に入り、BNR#と同じ長さの、一つおきに連続するクロック・サイクルが、そのサンプリング点においてアクティブでサンプリングされる時、BNR#サンプリング点は、バス・クロック・サイクルにおいて始まる。リクエスト停止状態は常に、リセット・イベント(INIT#またはRESET#のいずれか)の後、停止状態に初期化される。エージェントは、2クロック・サイクルごとに(有効サンプリング点の前に)BNR#をアサートすることによって、停止状態を延長することができる。BNR#が、停止状態で、アクティブとしてサンプリングされない場合、要求停止状態は、スロットル状態に移行する。
【0083】
そのため、アサートされた後に、最小の1バス・クロック・サイクルだけ(2バス・クロック・サイクルではなく)、BPRI#信号がディアサートされるようリクエストし、そしてADS#信号がアサートでサンプリングされた後、2クロック・サイクル(3クロック・サイクルではなく)で生じるように、フリー状態におけるBNR#サンプリング点を調整することは、連続した仲裁フェーズの開始の間の最小待ち時間を、3バス・クロック・サイクルから2バス・クロック・サイクルへ減らす。
【0084】
2)リクエスト・フェーズ:リクエスト・フェーズは、トランザクションが実際にバスに発行され、または送られるフェーズである。実施例に従って、リクエスト・フェーズは、持続期間が1共通バス・クロック・サイクルである。リクエスト・フェーズは、サブ・フェーズa(リクエスト・フェーズの第一の半分の間)およびサブ・フェーズb(リクエスト・フェーズの第二のサブ・フェーズの間)を含む、二つのサブ・フェーズを含む。リクエスト情報は、リクエスト・フェーズの間に送信され、トランザクション・アドレスを含む。リクエスト・フェーズは、ADS#信号、アドレス・ストローブ信号のアサートで始まる。ここにリクエスト・を送信するために使用されうる信号の例示的グループがある。
【0085】
【表3】
例示的要求信号
注記:
a.これらの信号は、要求フェーズの第一のサブ・フェーズ(サブ・フェーズa)中に表示されたピンで送られる。
b.これらの信号は、要求フェーズの第二のサブ・フェーズ(サブ・フェーズb)中に送られる。
【0086】
このように、トランザクション・アドレスは、Aa[35:3]で送信され(この場合“A”は、アドレス・ラインまたはアドレス・バス204を示し、“a”は、サブ・フェーズa中に送信される信号を示す)、トランザクションを記述する追加情報(例えば、バイト・イネーブル、属性、拡張機能)は、Ab[35:3]で送信される(“b”は、サブ・フェーズb中に、アドレス・ラインを介して、追加情報が送信されることを示す)。ADS#のアサートは、リクエスト・フェーズの開始を定義する。ADSTB[1:0]#は、好ましくは、ADS#がアサートされるバス・クロック・サイクルごとに一回トグルし、他のサイクルではしない。REQa[4:0]#およびREQb[4:0]#は、トランザクション・タイプを特定する。
【0087】
実施例では、リクエストは、プロセッサ・バスへと送られる:
1)所有権観察の後のクロック・サイクル;および
2)前のトランザクションのためのADS#アサートから、2以上のクロック後;および
3)BNR#がインアクティブであると観察される、および
4)LOCK#は、このエージェントによって起動されない場合、インアクティブであると観察される。
【0088】
いくつかのPentiumプロセッサでは、前のトランザクションのADS#のアサートの後リクエストがプロセッサ・バスに送られる前に、最小遅延として3クロック・サイクルを必要とした。本実施例では、連続したトランザクションのリクエスト・フェーズの間の最小待ち時間を、3クロック・サイクルから2クロック・サイクルへと減らすために、エージェントは、前のトランザクションのADS#信号のアサートの後、2バス・クロック・サイクルだけ後に、バスへリクエストを送ることができる。上述の通り、ADS#信号は、リクエスト・フェーズの開始を特定し、およびリクエストのサブ・フェーズaが、プロセッサ・バスへ送られており、(アドレス・バスを介して供給される)アドレスおよび(REQ#[4:0]ラインを介して供給される)要求を含むことを示す。
【0089】
3)スヌープ・フェーズ:実施例では、プロセッサ・バスは、複数のキャッシング・エージェントのためのキャッシュ・コヒーレンシーをサポートする。コヒーレンシー(データに矛盾がないこと)によって、複数レベルのキャッシュ及びメモリ、ならびに複数のキャッシング・エージェントを有するシステムまたはコンピュータについて、どのエージェントも古い(すなわち正しくない)データを読むことなく、そして動作が必要に応じて順序付けされるという共用メモリのモデルを提示することができる。一つのラインは、キャッシング・エージェントにおけるキャッシングのユニットである。実施例では、キャッシュ・ラインは64バイトであるが、他のサイズのキャッシュ・ラインを使用することもできる。
【0090】
キャッシュ・プロトコルは、状態とラインとを関連付け、状態の移行を管理する規則を定義する。各ラインは、各キャッシュに一つの状態を有する。実施例では、4つのライン状態があり、以下のものを含む:M(Modified)は、ラインがこのキャッシュにあり、メモリにおけるよりもより最近のラインの値を含み、前記ラインはすべての他のエージェントでは無効であることを示す;E(Exclusive)は、ラインがこのキャッシュにあり、メモリと同じ値であり、すべての他のエージェントにおいて無効であることを示す;S(Shared)は、ラインがこのキャッシュにあり、メモリと同じ値を含み、他のエージェントにあるかもしれないことを示す;I(Invalid)は、ラインがこのキャッシュにはなく、他のキャッシュまたはエージェントから取ってこられるべきであることを示す。
【0091】
スヌープ・フェーズは、キャッシュ・コヒーレンシーが強化されるフェーズである。以下の内容は、スヌープ・フェーズ中に使用されうるスヌープ信号の例示的リストである:
【0092】
【表4】
例示的スヌープ信号
【0093】
スヌープ・フェーズでは、すべてのキャッシング・エージェントは、自らのスヌープ結果を送り、キャッシュ・コヒーレンシーの解決(cache coherency resolution)に参加する。前記エージェントは、それ自身のものではない、ほぼすべてのメモリ・トランザクションに関する内部スヌープ結果を生成する。すべてのキャッシング・エージェント(スヌープ・エージェント)は、HIT#およびHITM#信号を用いて、このフェーズにおいてバスへと自らのスヌープ結果を送る。要求されたデータを含むキャッシュ・ラインのコピーが、このインターフェースにおける他のエージェントのキャッシュに存在することを示すために、HIT#は、スヌープ・フェーズ中にアサートされる。HITM#は、要求されたデータを含むキャッシュ・ラインの変更されたコピーが、このインターフェースにおける他のエージェントのキャッシュに存在することを示すために、スヌープ・フェーズ中にアサートされる。HIT#およびHITM#が、同時に、スヌープ・フェーズ中に一つのエージェントによってアサートされた場合には、スヌープ停止が生じたのであり、現在のスヌープ・フェーズは延長されるであろう。DEFER#は、現在のトランザクションが完了することを保証されないことを示すために、スヌープ・フェーズ中にアサートされる。
【0094】
いくつかのPentiumプロセッサでは、スヌープ結果は、ADS#信号がアサートされた後、4クロック・サイクルで、かつ、前のトランザクションのスヌープ・フェーズから、少なくとも3クロック・サイクルで送られる。しかしながら、実施例では、これらの最小待ち時間がプロセッサ・バスの新しいビート周波数により近く合うように修正した。実施例では、スヌープ結果は、ADS#がアサートされた後、3クロック・サイクルで(すなわち、リクエスト・フェーズの開始の後、3バス・クロック・サイクル)、および前のトランザクションのスヌープ・フェーズの後、少なくとも2クロック・サイクルで(すなわち、スヌープ結果が、前のトランザクションに関して、バスへと送られた後、少なくとも2クロック・サイクルで)、送られる。したがって、HIT#/HITM#/DEFER#信号(スヌープ結果)に関する最大起動速度は、3バス・クロック・サイクルごとに1回から、2バス・クロック・サイクルごとに一回へと変更された。リクエスト・フェーズが1サイクル短縮されたことにより、リクエスト・フェーズの終わり(サブ・フェーズB)からスヌープ・フェーズまでの待ち時間は同じままであることが注目される。
【0095】
4)応答フェーズ:このフェーズでは、応答エージェントは、プロセッサ・バスへトランザクション応答を送る。リクエスト・フェーズにおいて開始されたリクエストは、すべてのバス・エージェントによって維持されている順番通りの待ち行列に入る。この応答するエージェントは、順番通りの待ち行列の最上位においてトランザクションを完了させる役割をになうエージェントである。この応答するエージェントは、リクエスト・フェーズ中に、トランザクションによってアドレス指定された装置またはエージェントである。応答フェーズにおいて使用されうる信号の例示的グループを以下に示す:
【0096】
【表5】
例示的応答信号
【0097】
トランザクション応答は、RS[2:0]#信号でコード化される。考えられる応答の例は:通常データ応答(応答するエージェントは、応答とともに、読み出したデータを転送することが要求される)、リトライ応答(retry response)(DEFER#がスヌープ・フェーズ中にアサートされる時にトランザクションを再試行しなければならないことを示す)、デファード応答(応答エージェントまたは応答しているエージェントは、デファード応答トランザクションを用いて、将来トランザクションを完了させることを約束する)、ノー・データ応答(アドレス指定されたエージェントによって戻されるデータはない)等を含む。TRDY#は、ライトまたはライトバック・データ等を受け入れる準備ができていることを示すために、応答しているエージェントによってアサートされる。RSP#信号は、RS信号のためにパリティ(parity)を供給する。
【0098】
いくつかのPentiumプロセッサにおいて、応答は、前のトランザクションの応答フェーズの後、最小の3バス・クロック・サイクルの後に送られる。実施例では、連続したトランザクションの応答フェーズ間の、この最小待ち時間は、プロセッサ・バスの新しいビート周波数により近く合うよう調整した。実施例では、応答は、前のトランザクションの応答の後、最小の2バス・クロック・サイクル後に送られる。この最小待ち時間は、他の制約を受けて延長されるかもしれない。リクエスト信号に使用されるダブル・ポンプ信号モードによって、2バス・クロック・サイクルごとに一回、応答が送られる(いくつかのPentiumプロセッサにおける、3バス・クロック・サイクルごとに1回と比較される)。
【0099】
リクエストによって開始されるトランザクションは、リクエスト・エージェントが転送すべきライト・データを有しているトランザクションである。アドレス指定されたエージェントは、ライト・オペレーションを実行するつもりであるリクエスト・エージェントからデータを受信する能力を示すために、TRDY#をアサートする。いくつかのPentiumプロセッサでは、TRDY#信号は、同じトランザクションに関するADS#信号のアサートの後、最小の3バス・クロック・サイクルの後にアサートされる。通常、この待ち時間を延ばしうる他の制約がある。この待ち時間を、プロセッサ・バスの新しいビート周波数により近く合うように変更した。実施例では、アドレス指定されたエージェントは、同じトランザクションに関するADS#信号のアサートの後、最小の2バス・クロック・サイクルの後に、TRDY#信号をアサートすることができる。リクエスト・フェーズの終わりからTRDY#までの待ち時間は、変わらないままである。
【0100】
5)データ(転送)フェーズ:データ・フェーズ中、データは、プロセッサ・バス117を介して、異なるバス・エージェントの間で転送される。リクエスト・フェーズに基づいて、トランザクションは、“リクエストによって開始される”(ライト)データ転送又は“応答によって開始される”(リード)データ転送を含むか、あるいはデータ転送がない状態のいずれかである。データ・フェーズは、1つのトランザクションに関するリクエスト・フェーズと重複してもよい。
【0101】
データ・フェーズにおいて使用されうる信号の例示的リストが以下に示されている:
【表6】
例示的データ信号
【0102】
DRDY#は、有効なデータがバス117にあり、ラッチされなければならないことを示す。データ・バス所有者はバス・クロック・サイクル毎にDRDY#をアサートし、そこで有効なデータが転送される。DRDY#は、データ・フェーズにおいて待ち状態を挿入するために、ディアサートすることができる。最初のDRDY#のアサートの前、及び多重バスクロックデータ転送のための連続するDRDY#アサートの間には、DBSY#を用いてデータバスをホールド状態にすることができる。DINV[3:0]#は、データ・ソースによってデータ・ビットが反転されたことを示すために使用される。
【0103】
データ・バス206(図2)のデータ信号D[63:0]#は、バス・エージェント間に64ビットのデータ・パスを供給する。I/OリードおよびI/Oライトのトランザクションのような部分的な転送のために、バイト・イネーブル信号(BE[7:0]#)は、データ・バスのどのバイトが有効データを含むかを決定する。DP信号は、データ信号のためにパリティを供給するために使用される。
【0104】
実施例では、クアド・ポンプ(すなわち4X)ソース同期ラッチ・プロトコルを使用してデータを転送してもよく、その場合は、データ信号D[63:0]#が使用して、単一のバス・クロック・サイクルで4つの8バイト・データエレメントを送信する。バス・クロックの最初の4分の1で、最初の8バイト(バースト順で)が送信され、バス・クロックの次の4分の1において第二の8バイト・エレメントが送信され、バス・クロックの第三の4分の1において第三の8バイト・エレメントが送信され、バス・クロックの第四の4分の1において、第四の8バイト・エレメントが送信される。転送されるデータの長さが、1〜8バイトの場合には、前記データはバス・クロックの最初の4分の1で転送することができ、データ長が9〜16バイトの場合は、データは、バス・クロックの最初の二つの4分の1で転送される。
【0105】
本発明のいくかの実施例を、具体的に例示し記述してきたが、本発明の変更および変形についても、本発明の思想および意図された範囲から逸脱することなく、上述の説明及び特許請求の範囲の記載によってカバーされうることが理解されるだろう。
【図面の簡単な説明】
【図1】 図1は、本発明の例示的実施例に従った、コンピュータを示すブロック図である。
【図2】 図2は、例示的実施例に従ったプロセッサ・バスを示す図である。
【図3】 図3は、実施例に従って、二つの例示的トランザクションに関する、例示的バス・トランザクション・フェーズ関係を示すタイミング図(timing diagram)である。
【図4】 図4は、実施例に従った、共通クロック信号モードの例示的なオペレーションを説明する例示的タイミング図である。
【図5】 図5は、実施例に従った、例示的クアド・ポンプ信号モードのオペレーションを示すタイミング図である。
【図6】 図6は、実施例に従った、例示的ダブル・ポンプ信号モードのオペレーションを示すタイミング図である。
【図7】 図7は、トランザクション・フェーズの間の最小待ち時間または遅延を示す図である。
【図8】 図8は、実施例に従った、エージェント間の情報の転送のための装置のブロック図である。
【図9】 図9は、他の実施例に従った、エージェント間の情報の転送のための装置のブロック図である。
Claims (107)
- マルチドロップ・バスを介して、ドライビング・エージェントから、一つ以上の受信エージェントに情報を送信する方法であって:
共通バス・クロックを、前記ドライビング・エージェントおよび前記一つ以上の受信エージェントの両方に供給するステップと;
前記ドライビング・エージェントから前記一つ以上の受信エージェントに、バス・トランザクションを発行するステップであって:
前記ドライビング・エージェントが、リクエストのための複数の情報エレメントを、前記バス・クロック周波数の倍数である速度でアドレス・バスへと送り;
前記一つ以上の受信エージェントが前記アドレス・バス上に送られた前記情報エレメントをいつサンプリングするべきかを特定するための第一のストローブ信号を、前記ドライビング・エージェントが起動させるステップと;
前記ドライビング・エージェントから、前記一つ以上の受信バスにデータを転送するステップであって:
前記ドライビング・エージェントが、前記バス・クロック周波数の前記倍数と異なる倍数である速度で、複数の情報エレメントをデータ・バスへ送り;
前記一つ以上の受信エージェントが前記データ・バスに送られた前記情報エレメントをいつサンプリングするべきかを特定するための第二のストローブを、前記ドライビング・エージェントが起動することを含むステップと
を具備する方法。 - リクエストのための複数の情報エレメントをアドレスに送るドライビング・エージェントは、前記バス・クロック周波数の少なくとも2倍の速度で、リクエストのための少なくとも二つの情報エレメントをアドレス・バスに送るドライビング・エージェントからなる、請求項1に記載の方法。
- リクエストのための複数の情報エレメントをアドレスに送るドライビング・エージェントは、前記バス・クロック周波数の2倍の速度で、リクエストのための二つの情報エレメントをアドレス・バスに送るドライビング・エージェントからなる、請求項2に記載の方法。
- 複数の情報エレメントをデータ・バスに送るドライビング・エージェントは、前記バス・クロック周波数の少なくとも4倍の速度で、少なくとも四つの情報エレメントをデータ・バスに送るドライビング・エージェントからなる、請求項3に記載の方法。
- 複数の情報エレメントをデータ・バスに送るドライビング・エージェントは、前記バス・クロック周波数の4倍の速度で、四つの情報エレメントをデータ・バスに送るドライビング・エージェントからなる、請求項4に記載の方法。
- 第二のストローブを起動するドライビング・エージェントが、データ・バス上に送出された情報エレメントを受信エージェントがいつサンプリングするかを特定するためにフェーズ・ストローブのうちの少なくとも二つを起動するドライビング・エージェントからなるものである、請求項1に記載の方法。
- 前記受信エージェントがいつ前記データ・バスに送られた前記情報エレメントをサンプリングすべきかを特定するために、前記ストローブの一種類のエッジのみを使用するものである、請求項6に記載の方法。
- すべてのバス・エージェント、マルチドロップ双方向アドレス・バス、およびマルチドロップ双方向データ・バスに供給される共通のバス・クロックを含んでいるバスを、種類の異なる信号のための二つの信号モードで動作させる方法であって、
当該信号モードは:
前記バス・クロック周波数と実質的に同じ速度で信号を前記バスに送出する共通クロック信号モードであって、前記バス・クロックが、送出される前記情報エレメントをサンプリングするための点を特定する共通クロック信号モードと;
情報エレメントがドライビング・エージェントによって、前記アドレス・バスまたは前記データ・バスのうち少なくとも一つへ前記バス・クロック周波数の倍数である速度で送られるとともに、送られた前記情報エレメントのためのサンプリング点を特定するために、一つ以上のストローブ信号が前記ドライビング・エージェントによって起動される、マルチ・ポンプ(multi pumped)信号モードと、
を含んでいることを特徴とする方法。 - 前記一つ以上のストローブ信号の一種類のエッジのみを用いて、前記情報エレメントのためのサンプリング点を特定するものである、請求項8に記載の方法。
- 前記一つ以上のストローブ信号は、位相をずらして、または互い違いの配列となるように起動される複数のストローブ信号からなることを特徴とする、請求項8に記載の方法。
- 前記一つ以上のストローブ信号を用いて、前記各情報エレメントの実質的に中心にくるサンプリング点を特定するものである、請求項8に記載の方法。
- バスを均衡させる方法であって:
第一の最小待ち時間で実行される、バスを介したトランザクションのデータ転送部分を与えるステップと;
第二の最小待ち時間で実行される、バス・トランザクションのリクエスト部分を与えるステップと;
連続するバスの対応するフェーズの開始の間の最小待ち時間を、前記第一および第二の最小待ち時間のうちの一つ以上に、実質的に合わせるステップと;
を具備する方法。 - 前記第一および第二の待ち時間は実質的に等しい、請求項12に記載の方法。
- 複数のバス・エージェントに接続されたバスであって:
共通バス・クロック、アドレス・ストローブ信号、およびデータ・ストローブ信号を含む複数のコントロール信号を供給するための、マルチドロップ双方向コントロール・バスと;
ドライビング・エージェントが、前記バス・クロック周波数の倍数の周波数で、前記データ・バスへ情報エレメントを送出できるようにする、マルチドロップ双方向データ・バスと;
ドライビング・エージェントが、前記バス・クロック周波数の倍数の周波数で、前記アドレス・バスへ情報エレメントを送出できるようにする、マルチドロップ双方向アドレス・バスとを具備し;
前記ドライビング・エージェントは、前記データ・ストローブ信号を起動して、前記データ・バスへと送られた前記情報エレメントをサンプリングするための点を特定し;
前記ドライビング・エージェントは、前記アドレス・ストローブ信号を起動して、前記アドレス・バスへと送られた前記情報エレメントをサンプリングするための点を特定する、
ことを特徴とするバス。 - 情報を転送するための装置であって:
少なくとも一つがドライビング・エージェントとして動作する複数のエージェントと; 前記エージェントに接続されたマルチドロップ双方向バスであって、コントロール・バス、アドレス・バス、およびデータ・バスを含んでおり、前記コントロール・バスは、すべてのエージェントに共通バス・クロックを供給するための共通バス・クロック・ライン、アドレス・ストローブ信号ライン、および複数のデータ・ストローブ信号ラインを含んでいるマルチドロップ双方向バスとを具備し;
ドライビング・エージェントは、マルチ・ポンプ信号モードを用いて前記アドレス・バスに前記リクエストを送ることができ、その際に、リクエストの情報エレメントは前記バス・クロック周波数の倍数の速度で送信され、かつ、前記ドライビング・エージェントは、前記アドレス・バスへ送られた前記情報エレメントのためのサンプリング点を特定するために、前記アドレス・ストローブ信号ラインでアドレス・ストローブ信号を一時的に起動させることができ、および
ドライビング・エージェントは、マルチ・ポンプ信号モードを用いてデータを転送することができ、その際に、データ・エレメントは、前記バス・クロック周波数の倍数である速度で前記データ・バスへドライビング・エージェントによって送られ、かつ、前記ドライビング・エージェントは、前記データ・エレメントをサンプリングするサンプリング点を特定するために、複数のデータ・ストローブ信号ラインへ、互い違いの、またはオフセットの配列で前記複数のデータ・ストローブ信号を一時的に起動させることもできる、
ことを特徴とする、装置。 - データ・エレメントをサンプリングするサンプリング点を特定するのに前記データ・ストローブ信号の一つのエッジだけを用いる、請求項15に記載の装置。
- データ・エレメントのサンプリング点を特定するデータ・ストローブ信号の前記一つのエッジは、立ち上がりエッジである、請求項16に記載の装置。
- データ・エレメントのサンプリング点を特定するデータ・ストローブ信号の前記一つのエッジは、立ち下がりエッジである、請求項16に記載の装置。
- 情報を転送するための装置であって:
少なくとも一つがドライビング・エージェントとして動作する複数のエージェントと; 前記エージェントに接続されたマルチドロップ双方向バスであって、コントロール・バス、アドレス・バス、およびデータ・バスを含んでおり、前記コントロール・バスは、すべてのエージェントに共通バス・クロックを供給するための共通バス・クロック・ライン、および複数のデータ・ストローブ信号ラインを含んでいるマルチドロップ双方向バスとを具備し;
ドライビング・エージェントは、データ・エレメントがバス・クロックの少なくとも4倍の周波数の速度でデータ・バス上に送出されるマルチ・ポンプ信号モードを使って、データを転送し、かつ、前記ドライビング・エージェントは、前記データ・エレメントをサンプリングするサンプリング点を特定するために、複数のデータ・ストローブ信号ラインへ、互い違いの、またはオフセットの配列で前記複数のデータ・ストローブ信号を一時的に起動させることができる、
ことを特徴とする、装置。 - 複数のデータ・ピンと、
複数のデータ・ストローブ・ピンと、
複数のアドレス・ピンと、
アドレス・ストローブ・ピンと、
バス・クロック周波数を有するバス・クロック信号のための共通クロック・ピンと、
前記バス・クロック周波数の2倍のデータ・ストローブ周波数を有する第一のデータ・ストローブ信号及び第二のデータ・ストローブ信号をそれぞれ第一のデータ・ストローブ・ピン及び第二のデータ・ストローブ・ピン上に生成するためのデータ・ストローブ生成ロジックと、
前記バス・クロック周波数と同じアドレス・ストローブ周波数を有する第一のアドレス・ストローブを前記アドレス・ストローブ・ピン上に生成するアドレス・ストローブ生成ロジックと、
前記第一のデータ・ストローブ信号の第一のエッジに同期したデータ・エレメントを前記複数のデータ・ピン上に転送し、かつ、前記第二のデータ・ストローブ信号の第一のエッジに同期したデータ・エレメントを前記複数のデータ・ピン上に転送するための、データ転送ロジックと、
前記第一のアドレス・ストローブの第一のエッジに同期したアドレス・エレメントを前記複数のアドレス・ピン上に転送し、かつ、前記第一のアドレス・ストローブの第二のエッジに同期したアドレス・エレメントを前記複数のアドレス・ピンに転送するための、アドレス転送ロジックと、
を具備することを特徴とするバス・エージェント。 - さらに、複数のリクエスト・ピンを有し、
前記アドレス転送ロジックが、前記第一のアドレス・ストローブの第一のエッジと同期したリクエスト・エレメントを前記複数のリクエスト・ピンに転送し、かつ、前記第一のアドレス・ストローブの第二のエッジに同期したリクエスト・エレメントを前記複数のリクエスト・ピンに転送する、請求項20に記載のバス・エージェント。 - 16個の各データ・ピンに一対のストローブを供給し、かつ、前記複数のアドレス・ピン及び前記複数のリクエスト・ピンの二つのサブセットそれぞれに一つずつ二つのアドレス・ストローブを供給する、請求項21に記載のバス・エージェント。
- 第一のデータ・ストローブの第一のエッジが立ち下がりエッジであり、第二のデータ・ストローブの第一のエッジが立ち下がりエッジである、請求項21に記載のバス・エージェント。
- 第一のデータ・ストローブ信号と第二のデータ・ストローブ信号とが相補的な(complementary)ストローブ信号である、請求項20に記載のバス・エージェント。
- さらに、共通のクロック・プロトコールを用いて通信する複数のコントロール・ピンを有している、請求項23に記載のバス・エージェント。
- 前記第一のアドレス・ストローブは、二つの実質的に等しいアドレス・ストローブからなる、請求項21に記載のバス・エージェント。
- 前記二つの実質的に等しいアドレス・ストローブの第一のものは、複数のアドレス・ピン及び複数のリクエスト・ピンの第一のサブセットに同期して転送され、前記二つの実質的に等しいアドレス・ストローブの第二のものは、複数のアドレス・ピン及び複数のリクエスト・ピンの第二のサブセットに同期して転送され、前記第二のサブセットは、前記第一のサブセットに含まれるものを除いた前記複数のアドレス・ピン及び複数のリクエスト・ピンからなるものである、請求項26に記載のバス・エージェント。
- 前記第一のデータ・ストローブ・ピン及び前記第二のデータ・ストローブ・ピン上にある、前記バス・クロック周波数の2倍のデータ・ストローブ周波数を有する第三のデータ・ストローブ信号及び第四のデータ・ストローブ信号を受信するためのデータ・ストローブ受信ロジックと、
前記バス・クロック周波数と同じアドレス・ストローブ周波数を有する前記アドレス・ストローブ・ピン上の第二のアドレス・ストローブを受信するためのアドレス・ストローブ受信ロジックと、
前記複数のデータ・ピン上の前記第三のデータ・ストローブ信号の第一のエッジに同期したデータ・エレメントを受信するとともに、前記複数のデータ・ピン上の第四のデータ・ストローブ信号の第一のエッジに同期したデータ・エレメントを受信するためのデータ・受信ロジックと、
前記複数のアドレス・ピン上の前記第二のアドレス・ストローブの第一のエッジに同期したアドレス・エレメントを受信するとともに、前記複数のアドレス・ピン上の前記第二のアドレス・ストローブの第二のエッジに同期したアドレス・エレメントを受信するためのアドレス受信ロジックと、
をさらに具備することを特徴とする請求項21に記載のバス・エージェント。 - 前記バス・エージェントは、
チップ・セットと、
プロセッサと、
メモリ・コントローラと、
中央エージェントと、
I/Oエージェントと、
からなるバス・エージェントの一つ以上の組み合わせからなる、請求項28に記載のバス・エージェント。 - データ・ピンD[63:0]と、
複数のアドレス・ピンと、
リクエスト・ピンREQ[3:0]を含む複数のリクエスト・ピンと、
バス・クロック周波数を有するバス・クロック信号のための共通クロック・ピンと、
前記バス・クロック信号と同期して動作する複数の信号を転送するための複数のコントロール・ピンと、
四対のデータ・ストローブ信号を生成するためのデータ・ストローブ生成ロジックであって、前記四対のデータ・ストローブ信号の各々は、第一のデータ・ストローブ信号及び第二のデータ・ストローブ信号を有し、前記四対のデータ・ストローブ信号それぞれの前記第一のデータ・ストローブ信号及び前記第二のデータ・ストローブ信号は前記バス・クロック周波数の2倍のデータ・ストローブ周波数を有する、そのようなデータ・ストローブ生成ロジックと、
前記バス・クロック周波数と同じアドレス・ストローブ周波数を有する第一のアドレス・ストローブを生成するためのアドレス・ストローブ生成ロジックと、
前記四対のデータ・ストローブ信号それぞれのために、かつ、前記複数のデータ・ピンの異なるサブセット上に、前記複数のデータ・ピンのサブセット上の前記第一のデータ・ストローブ信号の立ち下がりエッジに同期した第一のデータ・エレメント、および前記複数のデータ・ピンのサブセット上の前記第二のデータ・ストローブ信号の立ち下がりエッジに同期した第二のデータ・エレメント、を転送するためのデータ転送ロジックと、
前記複数のアドレス・ピン上の前記第一のアドレス・ストローブの立ち下がりエッジに同期したアドレス・エレメントを転送するとともに、前記複数のアドレス・ピン上の前記第一のアドレス・ストローブの立ち上がりエッジに同期したアドレス・エレメントを転送し、前記複数のリクエスト・ピン上の前記第一のアドレス・ストローブの立ち下がりエッジに同期したリクエスト・エレメントを転送するとともに、前記複数のリクエスト・ピン上の前記第一のアドレス・ストローブの前記立ち上がりエッジに同期したリクエスト・エレメントを転送するアドレス転送ロジックと、
を具備することを特徴とするバス・エージェント。 - 前記第一のアドレス・ストローブは、実質的に同じ二つのアドレス・ストローブからなる、請求項30に記載のバス・エージェント。
- 実質的に同じ二つのアドレス・ストローブの第一のものは、複数のアドレス・ピンおよび複数のリクエスト・ピンの第一のサブセットに同期して転送されるとともに、実質的に同じ二つのアドレス・ストローブの第二のものは、複数のアドレス・ピンおよび複数のリクエスト・ピンの第二のサブセットに同期して転送され、前記第二のサブセットは、複数のアドレス・ピンおよび複数のリクエスト・ピンのうち第一のサブセットに含まれていないものからなる、請求項31に記載のバス・エージェント。
- 前記複数のコントロール・ピンは、
ADS#と、
BNR#と、
BPRI#と、
少なくとも一つのバス・リクエスト・ピンと、
DBSY#と、
DEFER#と、
DP[3:0]#と、
DRDY#と、
HIT#と、
HITM#と、
INIT#と、
TRDY#と、
からなる信号の組のためのピンを含んでいる、請求項30に記載のバス・エージェント。 - 複数のデータ・ピンと、
複数のアドレス・ピンと、
バス・クロック周波数を有するバス・クロック信号のための共通クロック・ピンと、
前記バス・クロック周波数の2倍のデータ・ストローブ周波数を有する第一のデータ・ストローブ信号及び第二のデータ・ストローブ信号を受信するためのデータ・ストローブ受信ロジックと、
前記バス・クロック周波数と同じアドレス・ストローブ周波数を有する第一のアドレス・ストローブを受信するためのアドレス・ストローブ受信ロジックと、
前記複数のデータ・ピン上の前記第一のデータ・ストローブ信号の第一のエッジに同期したデータ・エレメントを受信するとともに、前記複数のデータ・ピン上の前記第二のデータ・ストローブ信号の第一のエッジに同期したデータ・エレメントを受信するためのデータ受信ロジックと、
前記複数のアドレス・ピン上の前記第一のアドレス・ストローブの第一のエッジに同期したアドレス・エレメントを受信するとともに、同じく前記複数のアドレス・ピン上の前記第一のアドレス・ストローブの第二のエッジに同期したアドレス・エレメントを受信するアドレス受信ロジックと、
を具備することを特徴とするバス・エージェント。 - 複数のリクエスト・ピンをさらに有し、
前記アドレス受信ロジックは、前記複数のリクエスト・ピン上の第一のアドレス・ストローブの第一のエッジに同期したリクエスト・エレメント、および前記複数のリクエスト・ピン上の第一のアドレス・ストローブの第二のエッジに同期したリクエスト・エレメントを受信する、請求項34に記載のバス・エージェント。 - バス・エージェントは、16個の各データ・ピンへ一対のストローブを供給するとともに、二つのアドレス・ストローブを、前記複数のアドレス・ピン及び前記複数のリクエスト・ピンの二つのサブセットそれぞれに一つ供給する、請求項35に記載のバス・エージェント。
- 第一のデータ・ストローブの第一のエッジは立ち下がりエッジであり、第二のデータ・ストローブの第一のエッジは立ち下がりエッジである、請求項34に記載のバス・エージェント。
- 第一のデータ・ストローブ信号と第二のデータ・ストローブ信号とが相補的な(complementary)ストローブ信号である、請求項34に記載のバス・エージェント。
- 共通クロック・プロトコールを用いて通信するための複数のコントロール・ピンをさらに有する、請求項35に記載のバス・エージェント。
- 前記複数のコントロール・ピンは、
ADS#と、
BNR#と、
BPRI#と、
少なくとも一つのバス・リクエスト・ピンと、
DBSY#と、
DEFER#と、
DP[3:0]#と、
DRDY#と、
HIT#と、
HITM#と、
INIT#と、
TRDY#と、
からなる信号の組のためのコントロール・ピンの組を含むんでいる、請求項39に記載のバス・エージェント。 - 前記第一のアドレス・ストローブは、実質的に同じ二つのアドレス・ストローブからなる、請求項34に記載のバス・エージェント。
- バス・クロック周波数で動作するバス・クロックのためのバス・クロック・インターフェースと、
ソースに同期して、バス・クロック周波数の2倍の周波数でアドレス・バス情報エレメントを伝達するためのダブル・ポンプ(double pumped)・アドレス・バス・インターフェースと、
ソースに同期して、バス・クロック周波数の2倍の周波数でリクエスト情報エレメントを伝達するためのダブル・ポンプ・リクエスト・バス・インターフェースと、
ソースに同期して、バス・クロック周波数の4倍でデータ・バス情報エレメントを伝達するためのクアド・ポンプ(quad pumped)・データ・バスと、
を具備することを特徴とするバス・エージェント。 - さらに、バス・クロック周波数で動作する複数のコントロール信号のためのインターフェースを有する、請求項42に記載のバス・エージェント。
- アドレス・バスと、
リクエスト・バスと、
データ・バスと、
バス・クロック周波数で動作する一つ以上のバス・クロック信号を転送するための少なくとも一つのバス・クロック信号ラインと、
前記アドレス・バス、前記リクエスト・バス、そして前記データ・バスに接続され、前記データ・バスにクアド・ポンプ・データを与えるとともに、ダブル・ポンプ・アドレスを前記アドレス・バスに、リクエスト情報を前記リクエスト・バスにそれぞれ与えるバス・インターフェース・ロジックを有する第一のエージェントと、
前記アドレス・バス、前記リクエスト・バス、そして前記データ・バスに接続され、前記データ・バス上のクアド・ポンプ・データを受信するとともに、前記アドレス・バス上のダブル・ポンプ・アドレス、および前記リクエスト・バス上のリクエスト情報をそれぞれ受信するバス・インターフェース・ロジックを有する第一のエージェントと、
を具備することを特徴とするシステム。 - 前記第一のエージェントはプロセッサであり、前記第二のエージェントはチップ・セットである、請求項44に記載のシステム。
- 一つまたは二つ以上のバス・クロック信号に同期して複数のコントロール信号が転送されるコントロール・バスをさらに有している請求項44に記載のシステム。
- 情報がソースに同期して、前記データ・バス、前記アドレス・バス、そして前記リクエスト・バス上で転送される、請求項45に記載のシステム。
- 信号をクロック周波数でドライブする第1のインターフェースと、
クロック周波数の第1の倍数(1より大きい)の周波数でアドレス・エレメントをドライブするとともに、各アドレス・エレメントについてアドレス・ストローブの遷移をドライブするアドレス・バス・インターフェースと、
データ・エレメントをクロック周波数の第2の倍数(前記第1の倍数よりも大きい)の周波数で駆動するとともに、各データ・エレメントについてデータ・ストローブの遷移をドライブするデータ・バス・インターフェースと、
を具備するバス・エージェント。 - 前記第1のインターフェース、アドレス・バス・インターフェース、およびデータ・バス・インターフェースは、少なくとも仲裁フェーズ、要求(リクエスト)フェーズ、およびスヌープ・フェーズにおいて動作可能である、請求項48に記載のバス・エージェント。
- クロック信号の1クロック・サイクルの持続時間内で第1の数(1よりも大きい)のアドレス・エレメントをドライブするとともに、前記第1の数のアドレス・エレメントのそれぞれがドライブされる前記第1の数のアドレス・エレメントのドライブ・ウィンドウ期間に、アドレス・ストローブの遷移を生成するアドレス生成ロジックと、
クロック信号の1クロック・サイクルの第2の持続時間内で第2の数(前記第1の数よりも大きい)のデータ・エレメントをドライブするとともに、前記第2の数のデータ・エレメントのそれぞれがドライブされる前記第2の数のデータ・エレメントのドライブ・ウィンドウ期間に、データ・ストローブの遷移を生成するデータ生成ロジックと、
を具備するバス・エージェント。 - 前記アドレス生成ロジック及びデータ生成ロジックは、前記第1の数のアドレス・エレメント及び前記第2の数のデータ・エレメントのそれぞれをパイプライン方式で供給できるものである、請求項50に記載のバス・エージェント。
- データ・フェーズにおいて複数の相補的ストローブ信号対を与える工程と、
前記複数の相補的ストローブ信号対と関連して、ソース同期の方法で転送される、バス・クロック・サイクル当たり4つのデータ・エレメントを与える工程と、
複数のアドレス・ストローブを与える工程と、
前記複数のアドレス・ストローブに関連して、ソース同期の方法で転送される、バス・クロック・サイクル当たり2つのリクエスト・エレメント及び2つのアドレス・エレメントを与える工程と、
を有することを特徴とする方法。 - 前記四つのデータ・エレメントを与える工程は、
一対のデータ・ストローブ信号のうちの第一のものの第一の種類の第一のエッジに同期した第一のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号のうちの第二のものの第一の種類の第一のエッジに同期した第二のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号のうちの第一のものの第一の種類の第二のエッジに同期した第三のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号のうちの第二のものの第一の種類の第二のエッジに同期した第四のデータ・エレメントを与える工程と、
を含んでいる、請求項52に記載の方法。 - 前記第一の種類のエッジは、立ち上がりエッジである、請求項53に記載の方法。
- 前記二つのリクエスト・エレメント及び二つのアドレス・エレメントを与える工程は、
複数のアドレス・ストローブの少なくとも一つの第一のエッジに同期した第一のアドレス・エレメント及び第一のリクエスト・エレメントを与える工程と、
一対のデータ・ストローブ信号の第二のものの第一の種類の第二のエッジに同期した第二のアドレス・エレメント及び第二のリクエスト・エレメントを与える工程と、
を含むものである、請求項53に記載の方法。 - 前記第一のエッジは、アドレス・ストローブの立ち下がりエッジであり、前記第二のエッジは、アドレス・ストローブの立ち上がりエッジである、請求項55に記載の方法。
- ブロック・ネクスト・リクエスト信号ピンと、
アドレス・ストローブ信号ピンと、
先行する調停フェーズから2クロック後に調停フェーズを開始することができ、アドレス・ストローブ信号のアサートがアドレス・ストローブ信号ピン上に生じてから2バス・クロック・サイクル後にブロック・ネクスト・リクエスト信号ピン上のブロック・ネクスト・リクエスト信号を受信することができ、そして、前記ブロック・ネクスト・リクエスト信号に応答することができる調停ロジックと、
を含むことを特徴とするバス・エージェント。 - クアド・ポンプ・データ・バス・インターフェースをさらに含んでいる請求項57に記載のバス・エージェント。
- ダブル・ポンプ・アドレス・バス・インターフェースと、
ダブル・ポンプ・リクエスト・バス・インターフェースと、
をさらに含んでいる請求項58に記載のバス・エージェント。 - 前記調停ロジックは、前記ブロック・ネクスト・リクエスト信号が2クロックごとにブロック・ネクスト・リクエスト・サンプリング点にアサートされたままであれば、停止状態へ移行し、その後前記停止状態にとどまることによって、前記ブロック・ネクスト・リクエスト信号に応答し、前記停止状態はバス・エージェントがバス・リクエストを発するのを阻止する、請求項59に記載のバス・エージェント。
- 複数のデータ・ピンと、
複数のデータ・ストローブ・ピンと、
バス・クロック周波数を有するバス・クロック信号のための共通クロック・ピンと、
第一のデータ・ストローブ・ピン及び第二のデータ・ストローブ・ピン上に、前記バス・クロック周波数の2倍のデータ・ストローブ周波数を有する第一のデータ・ストローブ信号及び第二のデータ・ストローブ信号を生成するデータ・ストローブ生成ロジックと、 前記第一のデータ・ストローブ信号の第一のエッジに同期してデータ・エレメントを前記複数のデータ・ピン上に転送するとともに、前記第二のデータ・ストローブ信号の第一のエッジに同期してデータ・エレメントを同じく前記複数のデータ・ピン上に転送するデータ・転送ロジックと、
をさらに有する請求項57に記載のバス・エージェント。 - 複数のアドレス・ピンと、
前記バス・クロック周波数と同じアドレス・ストローブ周波数を有する第一のアドレス・ストローブを生成するアドレス・ストローブ生成ロジックと、
前記第一のアドレス・ストローブの第一のエッジに同期してアドレス・エレメントを前記複数のアドレス・ピンに転送するとともに、前記第一のアドレス・ストローブの第二のエッジに同期してアドレス・エレメントを同じく前記複数のアドレス・ピンに転送するアドレス転送ロジックと、
をさらに有する、請求項61に記載のバス・エージェント。 - 複数のリクエスト・ピンをさらに有し、
前記アドレス転送ロジックは、前記第一のアドレス・ストローブの第一のエッジに同期してリクエスト・エレメントを前記複数のリクエスト・ピンに転送するとともに、前記第一のアドレス・ストローブの第二のエッジに同期してリクエスト・エレメントを同じく前記複数のリクエスト・ピンに転送する、請求項62に記載のバス・エージェント。 - 複数のアドレス・ピンと、
複数のリクエスト・ピンと、
バス・クロック周波数と同じアドレス・ストローブ周波数を有する第一のアドレス・ストローブを生成するアドレス・ストローブ生成ロジックと、
前記第一のアドレス・ストローブの第一のエッジに同期して前記複数のアドレス・ピンへアドレス・エレメントを転送し、前記第一のアドレス・ストローブの第二のエッジに同期して同じく前記複数のアドレス・ピンにアドレス・エレメントを転送し、前記第一のアドレス・ストローブの第一のエッジに同期して前記複数のリクエスト・ピンにリクエスト・エレメントを転送し、そして、前記第一のアドレス・ストローブの第二のエッジに同期して同じく前記複数のリクエスト・ピンにリクエスト・エレメントを転送するアドレス転送ロジックと、
をさらに有する請求項57に記載のバス・エージェント。 - 前記第一のアドレス・ストローブは、実質的に同じ二つのアドレス・ストローブを含んでいる、請求項64に記載のバス・エージェント。
- 実質的に同じ二つのアドレス・ストローブの第一のものは、複数のアドレス・ピン及び複数のリクエスト・ピンの第一のサブセットに同期して転送され、実質的に同じ二つのアドレス・ストローブの第二のものは、複数のアドレス・ピン及び複数のリクエスト・ピンの第二のサブセットに同期して転送され、そして前記第二のサブセットは、第一のサブセットに含まれない複数のアドレス・ピン及び複数のリクエスト・ピンの残りのものから構成されている、請求項65に記載のバス・エージェント。
- 前記バス・エージェントは優先エージェント(priority agent)であり、前記優先エージェントは、優先エージェント・バス・リクエスト・ピンを含んでおり、
前記調停ロジックは、1バス・クロック・サイクルの最小ディアサート時間(minimum deassertion time)で、前記優先エージェント・バス・リクエスト・ピン上に優先エージェント・バス・リクエスト信号をアサートすることができる、請求項57に記載のバス・エージェント。 - 前記調停ロジックは、ブロック・ネクスト・リクエスト信号が受信されたときにバス・エージェントがフリー状態にあった場合にはフリー状態からスロットル状態へ移行することによって、そして、ブロック・ネクスト・リクエスト信号が2クロック遅くアサートされている場合にはスロットル状態から停止状態へ移行することによって前記ブロック・ネクスト・リクエスト信号に応答し、その後は、前記ブロック・ネクスト・リクエスト信号が2クロックごとのブロック・ネクスト・リクエスト・サンプリング点においてアサートされたままのときは前記停止状態のままでおり、前記停止状態はバス・エージェントがバス・リクエストを発するのを妨げる、請求項59に記載のバス・エージェント。
- 第一のトランザクションの第一の調停フェーズの一部として第一のリクエスト信号をアサートする工程と、
前記第一のトランザクションの完了に先立ってパイプライン方式で第二のトランザクションの第二のリクエスト・フェーズの一部として第二のリクエスト信号をアサートする工程と、
第一のトランザクションのリクエスト・フェーズの一部としてアドレス・ストローブ信号をアサートする工程と、
アドレス・ストローブ信号をアサートして2バス・クロック・サイクル後にブロック・ネクスト・リクエスト信号を受信する工程と、
前記ブロック・ネクスト・リクエスト信号に応答する工程と、
を具備することを特徴とする方法。 - 前記第一のリクエスト信号は第一のバス・エージェントによってアサートされ、前記第二のリクエスト信号は第二のバス・エージェントによってアサートされる、請求項69に記載の方法。
- 前記第一のリクエスト信号及び前記第二のリクエスト信号は、第一のバス・エージェントによってアサートされる、請求項69に記載の方法。
- データ・フェーズにおいて複数の相補的ストローブ信号対を与える工程と、
前記複数の相補的ストローブ信号対に関連して、ソース同期の方法で転送されるバス・クロック・サイクル当たり四つのデータ・エレメントを与える工程と、
をさらに含むものである、請求項69に記載の方法。 - 複数のアドレス・ストローブを与える工程と、
前記複数のアドレス・ストローブに関連して、ソース同期の方法で転送されるバス・クロック・サイクル当たり二つのリクエスト・エレメント及び二つのアドレス・エレメントを与える工程と、
をさらに含むものである、請求項72に記載の方法。 - 前記四つのデータ・エレメントを与える工程は、
一対のデータ・ストローブ信号の第一のものの第一の種類の第一のエッジに同期して第一のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号の第二のものの第一の種類の第一のエッジに同期して第二のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号の第一のものの第一の種類の第二のエッジに同期して第三のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号の第二のものの第一の種類の第二のエッジに同期して第四のデータ・エレメントを与える工程と、
を含んでいる、請求項73に記載の方法。 - 前記第一の種類のエッジは立ち下がりエッジである、請求項74に記載の方法。
- 前記二つのリクエスト・エレメント及び二つのアドレス・エレメントを与える工程は、
複数のアドレス・ストローブ信号の少なくとも一つの第一のエッジに同期して第一のアドレス・エレメント及び第一のリクエスト・エレメントを与える工程と、
複数のアドレス・ストローブ信号の少なくとも一つの第二のエッジに同期して第二のアドレス・エレメント及び第二のリクエスト・エレメントを与える工程と、
を含んでいる、請求項74に記載の方法。 - 前記第一のエッジはアドレス・ストローブの立ち下がりエッジであり、第二のエッジはアドレス・ストローブの立ち上がりエッジである、請求項76に記載の方法。
- 前記応答する工程は、
前記ブロック・ネクスト・リクエスト信号が2クロックごとのブロック・ネクスト・リクエスト・サンプリング点においてアサートされたままのときは、停止状態に移行し、その後、前記停止状態にとどまり、当該停止状態はバス・エージェントがバス・リクエストを発するのを阻止する、請求項69に記載の方法。 - 前記応答する工程は、
前記調停ロジックは、ブロック・ネクスト・リクエスト信号が受信されたときにバス・エージェントがフリー状態にあった場合にはフリー状態からスロットル状態へ移行し、ブロック・ネクスト・リクエスト信号が2クロック遅くアサートされている場合にはスロットル状態から停止状態へ移行する工程と、
前記ブロック・ネクスト・リクエスト信号が2クロックごとのブロック・ネクスト・リクエスト・サンプリング点においてアサートされたままのときは前記停止状態のままでいる工程であって、前記停止状態はバス・エージェントがバス・リクエストを発するのを妨げる工程と、
を含んでいる、請求項69に記載の方法。 - バス・エージェントと、
ブロック・ネクスト・リクエスト信号ピンと、
優先エージェント・バス・リクエスト入力ピンと、
アドレス・ストローブ信号ピンと、
先行する調停フェーズから2クロック後に調停フェーズを開始することができ、アドレス・ストローブ信号のアサートがアドレス・ストローブ信号ピン上に生じてから2バス・クロック・サイクル後にブロック・ネクスト・リクエスト信号ピン上のブロック・ネクスト・リクエスト信号を受信することができ、前記ブロック・ネクスト・リクエスト信号に応答するバス・エージェント調停ロジックと、を含み、
優先バス・エージェントは、
優先エージェント・バス・リクエスト・ピンと、
1バス・クロック・サイクルの最小ディアサート時間で、前記優先エージェント・バス・リクエスト・ピン上に優先エージェント・バス・リクエスト信号をアサートすることができる優先バス・エージェント・調停ロジックと、
を含んでいることを特徴とするシステム。 - 前記バス・エージェント及び前記優先バス・エージェントの両方は、さらに、クアド・ポンプ・ソース同期データ・バス・インターフェースを含んでいる、請求項80に記載のシステム。
- 前記バス・エージェント及び前記優先バス・エージェントの両方は、さらに、ダブル・ポンプ・ソース同期アドレス・バス・インターフェースを含んでいる、請求項81に記載のシステム。
- 前記バス・エージェント及び前記優先バス・エージェントの両方は、さらに、ダブル・ポンプ・ソース同期リクエスト・バス・インターフェースを含んでいる、請求項82に記載のシステム。
- 前記システムは、さらに、共通クロック・プロトコールに基づいて動作する複数のコントロール信号を有している、請求項83に記載のシステム。
- 複数のリクエスト信号ピンと、
アドレス・ストローブ信号ピンと、
第一のトランザクションのための第一のトランザクション・アドレス・ストローブ信号のアサートがアドレス・ストローブ信号ピンに生じてから2バス・サイクル後に、複数のリクエスト信号を前記複数のリクエスト信号ピン上に、そして第二のトランザクションのための第二のトランザクション・アドレス・ストローブ信号をアドレス・ストローブ信号ピン上にアサートすることによって、第一のトランザクションのための第一のリクエスト・フェーズの2クロック後に第二のトランザクションのための第二のリクエスト・フェーズを開始することができるリクエスト・ロジックと、
バス・クロック周波数の倍数で、ソース同期の方法で、前記複数のリクエスト信号及び複数のアドレス信号を転送する、アドレス及びリクエスト転送ロジックと、
を含んでいることを特徴とするバス・エージェント。 - 前記第一のリクエスト・フェーズ及び前記第二のリクエスト・フェーズは、ダブル・ポンプ・リクエスト・フェーズである、請求項85に記載のバス・エージェント。
- クアド・ポンプ・データ・バス・インターフェースをさらに含んでいる、請求項85に記載のバス・エージェント。
- 前記アドレス及びリクエスト転送ロジックは、ダブル・ポンプ・アドレス及びリクエスト・バス・インターフェースを含んでいる、請求項87に記載のバス・エージェント。
- 複数のデータ・ピンと、
複数のデータ・ストローブ・ピンと、
バス・クロック周波数で動作するバス・クロック信号を伝送する共通クロック・ピンと、
第一のデータ・ストローブ・ピン及び第二のデータ・ストローブ・ピンに、前記バス・クロック周波数の2倍のデータ・ストローブ周波数を有する第一のデータ・ストローブ信号及び第二のデータ・ストローブ信号を生成するデータ・ストローブ生成ロジックと、
前記第一のデータ・ストローブ信号の第一のエッジに同期して前記複数のデータ・ピンにデータ・エレメントを転送し、前記第二のデータ・ストローブ信号の第一のエッジに同期して前記複数のデータ・ピンにデータ・エレメントを転送するデータ転送ロジックと、 をさらに有する請求項85に記載のバス・エージェント。 - 複数のアドレス・ピンと、
前記バス・クロック周波数と同じアドレス・ストローブ周波数を有する第一のアドレス・ストローブを生成するアドレス・ストローブ生成ロジックと、
前記第一のアドレス・ストローブの第一のエッジに同期して前記複数のアドレス・ピンにアドレス・エレメントを転送し、前記第一のアドレス・ストローブの第二のエッジに同期して同じく前記複数のアドレス・ピンにアドレス・エレメントを転送するアドレス転送ロジックと、
をさらに有する請求項89に記載のバス・エージェント。 - さらに複数のリクエスト・ピンを有し、
前記アドレス転送ロジックは、前記第一のアドレス・ストローブの第一のエッジに同期して前記複数のリクエスト・ピンにリクエスト・エレメントを転送し、前記第一のアドレス・ストローブの第二のエッジに同期して同じく前記複数のリクエスト・ピンにリクエスト・エレメントを転送する、請求項90に記載のバス・エージェント。 - 複数のアドレス・ピンと、
複数のリクエスト・ピンと、
バス・クロック周波数と同じアドレス・ストローブ周波数を有する第一のアドレス・ストローブを生成するアドレス・ストローブ生成ロジックと、
前記第一のアドレス・ストローブの第一のエッジに同期して前記複数のアドレス・ピンにアドレス・エレメントを転送し、前記第一のアドレス・ストローブの第二のエッジに同期して前記複数のアドレス・ピンにアドレス・エレメントを転送し、前記第一のアドレス・ストローブの第一のエッジに同期して前記複数のリクエスト・ピンにリクエスト・エレメントを転送し、そして、前記第一のアドレス・ストローブの第二のエッジに同期して前記複数のリクエスト・ピンにリクエスト・エレメントを転送する、アドレス転送ロジックと、
をさらに有する、請求項85に記載のバス・エージェント。 - 前記第一のアドレス・ストローブは、実質的に等しい二つのアドレス・ストローブからなるものである、請求項92に記載のバス・エージェント。
- 実質的に等しい二つのアドレス・ストローブの第一のものは、複数のアドレス・ピン及び複数のリクエスト・ピンの第一のサブセットに同期して転送され、実質的に等しい二つのアドレス・ストローブの第二のものは、複数のアドレス・ピン及び複数のリクエスト・ピンの第二のサブセットに同期して転送され、この第二のサブセットは、第一のサブセットに含まれない複数のアドレス・ピン及び複数のリクエスト・ピンから構成されている、請求項93に記載のバス・エージェント。
- 前記クアド・ポンプ・データ・バス・インターフェースは、ソース同期クアド・ポンプ・データ・バス・インターフェースである、請求項87に記載バス・エージェント。
- 第一のトランザクションのための第一のリクエスト・フェーズを開始する工程と、
前記第一のトランザクションの完了よりも前にパイプライン方式で第二のトランザクションのための第二のリクエスト・フェーズを開始する工程とを含み、
前記第二のトランザクションのための第二のリクエスト・フェーズは、第一のアドレス・ストローブ信号のアサートの2バス・サイクル後に生じる第二のトランザクションのための第二のアドレス・ストローブ信号のアサートによって測定されて、第一のトランザクションのための第一のリクエスト・フェーズの2バス・サイクル後に開始されることを特徴とする方法。 - データ・フェーズにおいて複数の相補的ストローブ信号対を与える工程と、
前記複数の相補的ストローブ信号対との関連で、ソース同期の方法で転送される、バス・クロック・サイクル当たり四つのデータ・エレメントを与える工程と、
をさらに含む、請求項96に記載の方法。 - 複数のアドレス・ストローブを与える工程と、
前記複数のアドレス・ストローブとの関連で、ソース同期の方法で転送される、二つのリクエスト・エレメント及び二つのアドレス・エレメントを与える工程と、
をさらに含む請求項97に記載の方法。 - 前記四つのデータ・エレメントを与える工程は、
一対のデータ・ストローブ信号のうちの第一のものの第一の種類の第一のエッジに同期した第一のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号のうちの第二のものの第一の種類の第一のエッジに同期した第二のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号のうちの第一のものの第一の種類の第二のエッジに同期した第三のデータ・エレメントを与える工程と、
一対のデータ・ストローブ信号のうちの第二のものの第一の種類の第二のエッジに同期した第四のデータ・エレメントを与える工程と、
を含んでいる、請求項98の方法。 - 前記エッジの第一の種類は、立ち下がりエッジである、請求項99に記載の方法。
- 前記二つのリクエスト・エレメント及び二つのアドレス・エレメントを与える工程は、
複数のアドレス・ストローブの少なくとも一つの第一のエッジに同期した第一のアドレス・エレメント及び第一のリクエスト・エレメントを与える工程と、
複数のアドレス・ストローブ信号の少なくとも一つの第二のエッジに同期した第二のアドレス・エレメント及び第二のリクエスト・エレメントを与える工程と、
を含むものである、請求項99に記載の方法。 - 前記第一のエッジはアドレス・ストローブの立ち下がりエッジであり、第二のエッジはアドレス・ストローブの立ち上がりエッジである、請求項101に記載の方法。
- バスと、
一以上のバス・エージェントと、
複数のリクエスト信号ピンと、
アドレス・ストローブ信号ピンと、
第一のトランザクションのための第一のトランザクション・アドレス・ストローブ信号のアサートがアドレス・ストローブ信号ピンに生じてから2バス・サイクル後に、複数のリクエスト信号を前記複数のリクエスト信号ピン上に、そして第二のトランザクションのための第二のトランザクション・アドレス・ストローブ信号をアドレス・ストローブ信号ピン上にアサートすることによって、第一のリクエスト・フェーズの2クロック後に第二のリクエスト・フェーズを開始することができるリクエスト・ロジックと、
バス・クロック周波数の倍数で、ソース同期の方法で、前記複数のリクエスト信号及び複数のアドレス信号を転送する、アドレス及びリクエスト転送ロジックと、
を含んでいることを特徴とするシステム。 - 前記一以上のバス・エージェントは、さらに、クアド・ポンプ・ソース同期データ・バス・インターフェースを含んでいる、請求項103に記載のシステム。
- 前記一以上のバス・エージェントは、さらに、ダブル・ポンプ・ソース同期アドレス・バス・インターフェースを含んでいる、請求項104に記載のシステム。
- 前記一以上のバス・エージェントの前記アドレス及びリクエスト転送ロジックは、
ダブル・ポンプ・アドレス及びリクエスト・バス・インターフェースを含んでいる、 請求項105に記載のシステム。 - 前記システムは、さらに、共通クロック・プロトコールに基づいて動作する複数のコントロール信号を含んでいる、請求項106に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/474,058 US6609171B1 (en) | 1999-12-29 | 1999-12-29 | Quad pumped bus architecture and protocol |
US09/474,058 | 1999-12-29 | ||
PCT/US2000/035520 WO2001048621A1 (en) | 1999-12-29 | 2000-12-29 | Quad pumped bus architecture and protocol |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003518693A JP2003518693A (ja) | 2003-06-10 |
JP2003518693A5 JP2003518693A5 (ja) | 2006-10-12 |
JP4194274B2 true JP4194274B2 (ja) | 2008-12-10 |
Family
ID=23882019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001549206A Expired - Fee Related JP4194274B2 (ja) | 1999-12-29 | 2000-12-29 | クアド・ポンプ・バス・アーキテクチャおよびプロトコル |
Country Status (16)
Country | Link |
---|---|
US (6) | US6609171B1 (ja) |
EP (2) | EP1242898B1 (ja) |
JP (1) | JP4194274B2 (ja) |
KR (1) | KR100565101B1 (ja) |
CN (4) | CN1230762C (ja) |
AT (1) | ATE377797T1 (ja) |
AU (1) | AU2463101A (ja) |
BR (1) | BRPI0016834B1 (ja) |
DE (2) | DE10085385B3 (ja) |
GB (1) | GB2374264B (ja) |
HK (1) | HK1046964B (ja) |
RU (1) | RU2271566C2 (ja) |
SG (2) | SG123609A1 (ja) |
TW (1) | TW559704B (ja) |
WO (1) | WO2001048621A1 (ja) |
ZA (1) | ZA200203946B (ja) |
Families Citing this family (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609171B1 (en) * | 1999-12-29 | 2003-08-19 | Intel Corporation | Quad pumped bus architecture and protocol |
US6965648B1 (en) * | 2000-05-04 | 2005-11-15 | Sun Microsystems, Inc. | Source synchronous link integrity validation |
US6745268B1 (en) * | 2000-08-11 | 2004-06-01 | Micron Technology, Lnc. | Capacitive multidrop bus compensation |
US6678767B1 (en) * | 2000-10-06 | 2004-01-13 | Broadcom Corp | Bus sampling on one edge of a clock signal and driving on another edge |
US6816932B2 (en) * | 2000-10-06 | 2004-11-09 | Broadcom Corporation | Bus precharge during a phase of a clock signal to eliminate idle clock cycle |
US6901475B2 (en) * | 2000-12-07 | 2005-05-31 | Micron Technology, Inc. | Link bus for a hub based computer architecture |
US6993612B2 (en) * | 2000-12-07 | 2006-01-31 | Micron Technology, Inc. | Arbitration method for a source strobed bus |
US7676588B2 (en) * | 2001-10-05 | 2010-03-09 | International Business Machines Corporation | Programmable network protocol handler architecture |
DE50113128D1 (de) | 2001-12-03 | 2007-11-22 | Infineon Technologies Ag | Datenübertragungseinrichtung |
US7000065B2 (en) * | 2002-01-02 | 2006-02-14 | Intel Corporation | Method and apparatus for reducing power consumption in a memory bus interface by selectively disabling and enabling sense amplifiers |
US6983348B2 (en) * | 2002-01-24 | 2006-01-03 | Intel Corporation | Methods and apparatus for cache intervention |
US7085889B2 (en) * | 2002-03-22 | 2006-08-01 | Intel Corporation | Use of a context identifier in a cache memory |
JP2005527030A (ja) * | 2002-05-24 | 2005-09-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ストール機能を有する疑似マルチポートデータメモリ |
AU2003240948A1 (en) * | 2002-05-28 | 2003-12-12 | Cadence Design Systems, Inc. | Assertion-based transaction recording |
TWI282513B (en) * | 2002-06-12 | 2007-06-11 | Mediatek Inc | A pre-fetch device of instruction for an embedded system |
TW579467B (en) * | 2002-07-24 | 2004-03-11 | Via Tech Inc | Method for blocking request to bus |
US7200730B2 (en) * | 2002-09-16 | 2007-04-03 | Texas Instruments Incorporated | Method of operating a memory at high speed using a cycle ready status output signal |
US6956789B2 (en) * | 2002-09-16 | 2005-10-18 | Texas Instruments Incorporated | Cycle ready circuit for self-clocking memory device |
US7234034B2 (en) * | 2002-09-16 | 2007-06-19 | Texas Instruments Incorporated | Self-clocking memory device |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US7051229B2 (en) * | 2002-12-03 | 2006-05-23 | Alcatel Canada Inc. | Logical bus overlay for increasing the existing system bus data rate |
US7152167B2 (en) * | 2002-12-11 | 2006-12-19 | Intel Corporation | Apparatus and method for data bus power control |
US20040128416A1 (en) * | 2002-12-11 | 2004-07-01 | Tsvika Kurts | Apparatus and method for address bus power control |
US7216240B2 (en) * | 2002-12-11 | 2007-05-08 | Intel Corporation | Apparatus and method for address bus power control |
US20040117708A1 (en) * | 2002-12-16 | 2004-06-17 | Ellis David G. | Pre-announce signaling for interconnect built-in self test |
US6922769B2 (en) * | 2002-12-23 | 2005-07-26 | Intel Corporation | Apparatus and method for reduction of power consumption in OS that use flat segmentation memory model |
US20040153611A1 (en) * | 2003-02-04 | 2004-08-05 | Sujat Jamil | Methods and apparatus for detecting an address conflict |
US7054988B2 (en) * | 2003-04-17 | 2006-05-30 | Lsi Logic Corporation | Bus interface for processor |
US7478025B1 (en) * | 2003-04-18 | 2009-01-13 | Unisys Corporation | System and method to support dynamic partitioning of units to a shared resource |
US20040230188A1 (en) * | 2003-05-12 | 2004-11-18 | Iulian Cioanta | Treatment catheters with thermally insulated regions |
US7287126B2 (en) * | 2003-07-30 | 2007-10-23 | Intel Corporation | Methods and apparatus for maintaining cache coherency |
US8504992B2 (en) * | 2003-10-31 | 2013-08-06 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
US9087036B1 (en) | 2004-08-12 | 2015-07-21 | Sonics, Inc. | Methods and apparatuses for time annotated transaction level modeling |
US7665069B2 (en) * | 2003-10-31 | 2010-02-16 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
US7113000B2 (en) * | 2003-12-10 | 2006-09-26 | Hewlett-Packard Development Company, L.P. | Bus agent having multiple reference levels |
US7178048B2 (en) * | 2003-12-23 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | System and method for signal synchronization based on plural clock signals |
US7057414B2 (en) * | 2004-01-07 | 2006-06-06 | International Business Machines Corporation | Avoiding oscillation in self-synchronous bi-directional communication system |
US20050262376A1 (en) * | 2004-05-21 | 2005-11-24 | Mcbain Richard A | Method and apparatus for bussed communications |
US20060036826A1 (en) * | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | System, method and storage medium for providing a bus speed multiplier |
US7224595B2 (en) | 2004-07-30 | 2007-05-29 | International Business Machines Corporation | 276-Pin buffered memory module with enhanced fault tolerance |
US7296129B2 (en) * | 2004-07-30 | 2007-11-13 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US7539800B2 (en) * | 2004-07-30 | 2009-05-26 | International Business Machines Corporation | System, method and storage medium for providing segment level sparing |
US7389375B2 (en) * | 2004-07-30 | 2008-06-17 | International Business Machines Corporation | System, method and storage medium for a multi-mode memory buffer device |
US20060075164A1 (en) * | 2004-09-22 | 2006-04-06 | Ooi Eng H | Method and apparatus for using advanced host controller interface to transfer data |
US7331010B2 (en) | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7356737B2 (en) * | 2004-10-29 | 2008-04-08 | International Business Machines Corporation | System, method and storage medium for testing a memory module |
US7441060B2 (en) * | 2004-10-29 | 2008-10-21 | International Business Machines Corporation | System, method and storage medium for providing a service interface to a memory system |
US7277988B2 (en) * | 2004-10-29 | 2007-10-02 | International Business Machines Corporation | System, method and storage medium for providing data caching and data compression in a memory subsystem |
US7299313B2 (en) | 2004-10-29 | 2007-11-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US7305574B2 (en) | 2004-10-29 | 2007-12-04 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US7395476B2 (en) * | 2004-10-29 | 2008-07-01 | International Business Machines Corporation | System, method and storage medium for providing a high speed test interface to a memory subsystem |
US7512762B2 (en) | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
TWI256558B (en) * | 2004-11-02 | 2006-06-11 | Via Tech Inc | Method for coordinating bus data transmission specification and CPU and bridge chip used in the same |
TWI268427B (en) * | 2004-11-02 | 2006-12-11 | Via Tech Inc | Coordinating method of bus data transmission specification |
TWI304935B (en) * | 2004-11-02 | 2009-01-01 | Via Tech Inc | Method for determining data transmission specification and combination of bridge chipset and memory used in the same |
US20060161743A1 (en) * | 2005-01-18 | 2006-07-20 | Khaled Fekih-Romdhane | Intelligent memory array switching logic |
US20060171233A1 (en) * | 2005-01-18 | 2006-08-03 | Khaled Fekih-Romdhane | Near pad ordering logic |
US7340568B2 (en) * | 2005-02-11 | 2008-03-04 | International Business Machines Corporation | Reducing number of rejected snoop requests by extending time to respond to snoop request |
KR100606244B1 (ko) * | 2005-02-11 | 2006-07-28 | 삼성전자주식회사 | 데이터 스트로브 신호에 동기 되어 전송되는 데이터의 캡쳐 방법 및 이를 위한 데이터 캡쳐 회로 |
US7529955B2 (en) * | 2005-06-30 | 2009-05-05 | Intel Corporation | Dynamic bus parking |
US7543094B2 (en) | 2005-07-05 | 2009-06-02 | Via Technologies, Inc. | Target readiness protocol for contiguous write |
US7457901B2 (en) * | 2005-07-05 | 2008-11-25 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling variable width data transfers |
CN100461142C (zh) * | 2005-07-05 | 2009-02-11 | 威盛电子股份有限公司 | 微处理器、处理器总线系统、及执行稀疏写入处理的方法 |
US7441064B2 (en) * | 2005-07-11 | 2008-10-21 | Via Technologies, Inc. | Flexible width data protocol |
CN100468382C (zh) * | 2005-07-11 | 2009-03-11 | 威盛电子股份有限公司 | 四倍频地址总线的系统与方法 |
CN100527115C (zh) * | 2005-07-11 | 2009-08-12 | 威盛电子股份有限公司 | 柔性宽度数据协议 |
US7502880B2 (en) * | 2005-07-11 | 2009-03-10 | Via Technologies, Inc. | Apparatus and method for quad-pumped address bus |
US7590787B2 (en) * | 2005-07-19 | 2009-09-15 | Via Technologies, Inc. | Apparatus and method for ordering transaction beats in a data transfer |
CN100435123C (zh) * | 2005-07-19 | 2008-11-19 | 威盛电子股份有限公司 | 用于稀疏线写操作的装置和方法 |
US7444472B2 (en) * | 2005-07-19 | 2008-10-28 | Via Technologies, Inc. | Apparatus and method for writing a sparsely populated cache line to memory |
US7444448B2 (en) | 2005-08-03 | 2008-10-28 | Via Technologies, Inc. | Data bus mechanism for dynamic source synchronized sampling adjust |
US20070073977A1 (en) * | 2005-09-29 | 2007-03-29 | Safranek Robert J | Early global observation point for a uniprocessor system |
US7634609B2 (en) * | 2005-09-29 | 2009-12-15 | Via Technologies, Inc. | Data transmission coordinating method |
US7757031B2 (en) * | 2005-10-24 | 2010-07-13 | Via Technologies, Inc. | Data transmission coordinating method and system |
US7478259B2 (en) * | 2005-10-31 | 2009-01-13 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
US7685392B2 (en) * | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
US7636813B2 (en) * | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7594055B2 (en) * | 2006-05-24 | 2009-09-22 | International Business Machines Corporation | Systems and methods for providing distributed technology independent memory controllers |
US7584336B2 (en) * | 2006-06-08 | 2009-09-01 | International Business Machines Corporation | Systems and methods for providing data modification operations in memory subsystems |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US7581073B2 (en) * | 2006-08-09 | 2009-08-25 | International Business Machines Corporation | Systems and methods for providing distributed autonomous power management in a memory system |
US7587559B2 (en) | 2006-08-10 | 2009-09-08 | International Business Machines Corporation | Systems and methods for memory module power management |
US7490217B2 (en) | 2006-08-15 | 2009-02-10 | International Business Machines Corporation | Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables |
US7539842B2 (en) | 2006-08-15 | 2009-05-26 | International Business Machines Corporation | Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables |
US20080062892A1 (en) * | 2006-09-07 | 2008-03-13 | Honeywell International Inc. | High speed bus protocol with programmable scheduler |
US7870459B2 (en) * | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7477522B2 (en) * | 2006-10-23 | 2009-01-13 | International Business Machines Corporation | High density high reliability memory module with a fault tolerant address and command bus |
US8868397B2 (en) * | 2006-11-20 | 2014-10-21 | Sonics, Inc. | Transaction co-validation across abstraction layers |
KR20080047027A (ko) * | 2006-11-24 | 2008-05-28 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 그 구동 방법 |
KR100903381B1 (ko) * | 2006-11-24 | 2009-06-23 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 그의 구동 방법 |
KR100915811B1 (ko) * | 2006-12-07 | 2009-09-07 | 주식회사 하이닉스반도체 | 반도체 메모리 장치의 데이터 입출력 제어 신호 생성 회로 |
US7721140B2 (en) | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
US7606988B2 (en) | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
US7603526B2 (en) * | 2007-01-29 | 2009-10-13 | International Business Machines Corporation | Systems and methods for providing dynamic memory pre-fetch |
US20090132747A1 (en) * | 2007-11-19 | 2009-05-21 | International Business Machines Corporation | Structure for universal peripheral processor system for soc environments on an integrated circuit |
US8139697B2 (en) * | 2008-01-29 | 2012-03-20 | United Microelectronics Corp. | Sampling method and data recovery circuit using the same |
US8020167B2 (en) * | 2008-05-05 | 2011-09-13 | Dell Products L.P. | System and method for automatic throttling of resources in an information handling system chassis |
KR101642833B1 (ko) * | 2010-02-05 | 2016-07-26 | 삼성전자주식회사 | 클럭 임베디드 인터페이스 방법, 그 방법을 이용하는 송수신기 및 디스플레이 장치 |
WO2012127599A1 (ja) * | 2011-03-22 | 2012-09-27 | 富士通株式会社 | 入出力制御装置,情報処理システム,及びログ採取プログラム |
US8312176B1 (en) * | 2011-06-30 | 2012-11-13 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
US8683096B2 (en) * | 2012-06-27 | 2014-03-25 | Intel Corporation | Configuration of data strobes |
US9525621B2 (en) * | 2012-08-29 | 2016-12-20 | Marvell World Trade Ltd. | Semaphore soft and hard hybrid architecture |
US9755818B2 (en) * | 2013-10-03 | 2017-09-05 | Qualcomm Incorporated | Method to enhance MIPI D-PHY link rate with minimal PHY changes and no protocol changes |
CN105390982B (zh) * | 2015-11-24 | 2018-07-17 | 国家电网公司 | 基于仿生视觉分析的输电设备总线型评价系统 |
US11640357B2 (en) * | 2019-05-24 | 2023-05-02 | Texas Instruments Incorporated | Methods and apparatus to facilitate read-modify-write support in a victim cache |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763243A (en) * | 1984-06-21 | 1988-08-09 | Honeywell Bull Inc. | Resilient bus system |
US4858173A (en) * | 1986-01-29 | 1989-08-15 | Digital Equipment Corporation | Apparatus and method for responding to an aborted signal exchange between subsystems in a data processing system |
JPS62280948A (ja) * | 1986-05-29 | 1987-12-05 | Fanuc Ltd | バス調停方式 |
US5341487A (en) * | 1991-12-20 | 1994-08-23 | International Business Machines Corp. | Personal computer having memory system with write-through cache and pipelined snoop cycles |
US5280587A (en) * | 1992-03-31 | 1994-01-18 | Vlsi Technology, Inc. | Computer system in which a bus controller varies data transfer rate over a bus based on a value of a subset of address bits and on a stored value |
US5469547A (en) * | 1992-07-17 | 1995-11-21 | Digital Equipment Corporation | Asynchronous bus interface for generating individual handshake signal for each data transfer based on associated propagation delay within a transaction |
JP3369227B2 (ja) * | 1992-11-09 | 2003-01-20 | 株式会社東芝 | プロセッサ |
US5615343A (en) | 1993-06-30 | 1997-03-25 | Intel Corporation | Method and apparatus for performing deferred transactions |
US5568620A (en) | 1993-06-30 | 1996-10-22 | Intel Corporation | Method and apparatus for performing bus transactions in a computer system |
TW255022B (ja) | 1993-06-30 | 1995-08-21 | Intel Corp | |
US5784579A (en) * | 1994-03-01 | 1998-07-21 | Intel Corporation | Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth |
US5550988A (en) * | 1994-03-01 | 1996-08-27 | Intel Corporation | Apparatus and method for performing error correction in a multi-processor system |
US5572703A (en) * | 1994-03-01 | 1996-11-05 | Intel Corporation | Method and apparatus for snoop stretching using signals that convey snoop results |
GB2324230B (en) | 1994-03-01 | 1998-12-16 | Intel Corp | High performance symmetric arbitration protocol with support for I/O requirements |
TW400483B (en) | 1994-03-01 | 2000-08-01 | Intel Corp | High performance symmetric arbitration protocol with support for I/O requirements |
US5548733A (en) | 1994-03-01 | 1996-08-20 | Intel Corporation | Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system |
KR100360064B1 (ko) * | 1994-03-01 | 2003-03-10 | 인텔 코오퍼레이션 | 고도로파이프라인된버스구조 |
US5535340A (en) * | 1994-05-20 | 1996-07-09 | Intel Corporation | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge |
US6029217A (en) * | 1994-10-03 | 2000-02-22 | International Business Machines Corporation | Queued arbitration mechanism for data processing system |
US5596729A (en) * | 1995-03-03 | 1997-01-21 | Compaq Computer Corporation | First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus |
US5925099A (en) * | 1995-06-15 | 1999-07-20 | Intel Corporation | Method and apparatus for transporting messages between processors in a multiple processor system |
US5710906A (en) * | 1995-07-07 | 1998-01-20 | Opti Inc. | Predictive snooping of cache memory for master-initiated accesses |
KR0164395B1 (ko) * | 1995-09-11 | 1999-02-18 | 김광호 | 반도체 메모리 장치와 그 리이드 및 라이트 방법 |
US5696910A (en) * | 1995-09-26 | 1997-12-09 | Intel Corporation | Method and apparatus for tracking transactions in a pipelined bus |
US5812803A (en) * | 1995-09-29 | 1998-09-22 | Intel Corporation | Method and apparatus for controlling data transfers between a bus and a memory device using a multi-chip memory controller |
US5948094A (en) | 1995-09-29 | 1999-09-07 | Intel Corporation | Method and apparatus for executing multiple transactions within a single arbitration cycle |
US5778438A (en) * | 1995-12-06 | 1998-07-07 | Intel Corporation | Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests |
US5838995A (en) * | 1995-12-18 | 1998-11-17 | International Business Machines Corporation | System and method for high frequency operation of I/O bus |
US5802132A (en) * | 1995-12-29 | 1998-09-01 | Intel Corporation | Apparatus for generating bus clock signals with a 1/N characteristic in a 2/N mode clocking scheme |
US6374329B1 (en) * | 1996-02-20 | 2002-04-16 | Intergraph Corporation | High-availability super server |
JP3643425B2 (ja) * | 1996-02-29 | 2005-04-27 | 富士通株式会社 | データ処理方法、データ処理装置及びインターフェイスコントローラ |
AU3587097A (en) * | 1996-09-06 | 1998-03-26 | Intel Corporation | A data flow control mechanism for a bus supporting two-and three-agent transactions |
US5867728A (en) * | 1996-12-17 | 1999-02-02 | Compaq Computer Corp. | Preventing corruption in a multiple processor computer system during a peripheral device configuration cycle |
US6012118A (en) | 1996-12-30 | 2000-01-04 | Intel Corporation | Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus |
US5870567A (en) * | 1996-12-31 | 1999-02-09 | Compaq Computer Corporation | Delayed transaction protocol for computer system bus |
US6065101A (en) * | 1997-06-12 | 2000-05-16 | International Business Machines Corporation | Pipelined snooping of multiple L1 cache lines |
US6336159B1 (en) | 1997-06-25 | 2002-01-01 | Intel Corporation | Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system |
US5919254A (en) * | 1997-06-25 | 1999-07-06 | Intel Corporation | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system |
US5991855A (en) * | 1997-07-02 | 1999-11-23 | Micron Electronics, Inc. | Low latency memory read with concurrent pipe lined snoops |
US5978869A (en) | 1997-07-21 | 1999-11-02 | International Business Machines Corporation | Enhanced dual speed bus computer system |
US6108736A (en) * | 1997-09-22 | 2000-08-22 | Intel Corporation | System and method of flow control for a high speed bus |
US5964856A (en) * | 1997-09-30 | 1999-10-12 | Intel Corporation | Mechanism for data strobe pre-driving during master changeover on a parallel bus |
US6260091B1 (en) * | 1997-10-20 | 2001-07-10 | Intel Corporation | Method and apparatus for performing out-of-order bus operations in which an agent only arbitrates for use of a data bus to send data with a deferred reply |
US6092156A (en) | 1997-11-05 | 2000-07-18 | Unisys Corporation | System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations |
KR100255664B1 (ko) | 1997-12-29 | 2000-05-01 | 윤종용 | 반도체 집적회로의 클락 포워딩 회로 및 클락포워딩 방법 |
US6006291A (en) * | 1997-12-31 | 1999-12-21 | Intel Corporation | High-throughput interface between a system memory controller and a peripheral device |
US6041380A (en) * | 1998-01-21 | 2000-03-21 | Micron Electronics, Inc. | Method for increasing the number of devices capable of being operably connected to a host bus |
US6223238B1 (en) * | 1998-03-31 | 2001-04-24 | Micron Electronics, Inc. | Method of peer-to-peer mastering over a computer bus |
US6172937B1 (en) * | 1998-05-13 | 2001-01-09 | Intel Corporation | Multiple synthesizer based timing signal generation scheme |
US6108721A (en) * | 1998-06-29 | 2000-08-22 | Hewlett-Packard Company | Method and apparatus for ensuring data consistency between an i/o channel and a processor |
US6275890B1 (en) * | 1998-08-19 | 2001-08-14 | International Business Machines Corporation | Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration |
US6205506B1 (en) * | 1998-08-25 | 2001-03-20 | Stmicroelectronics, Inc. | Bus interface unit having multipurpose transaction buffer |
US6449677B1 (en) * | 1998-09-03 | 2002-09-10 | Compaq Information Technologies Group, L.P. | Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus |
US6102118A (en) | 1998-12-30 | 2000-08-15 | Moore; Curt A. | Multi-purpose adjustable centralizer system with tool |
TW514788B (en) * | 1999-04-23 | 2002-12-21 | Via Tech Inc | Method of delayed transaction in bus system and device using the method |
US6272604B1 (en) * | 1999-05-20 | 2001-08-07 | International Business Machines Corporation | Contingent response apparatus and method for maintaining cache coherency |
US6487621B1 (en) * | 1999-08-17 | 2002-11-26 | Compaq Information Technologies Group, L.P. | Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle |
US6615323B1 (en) * | 1999-09-02 | 2003-09-02 | Thomas Albert Petersen | Optimizing pipelined snoop processing |
US6591321B1 (en) * | 1999-11-09 | 2003-07-08 | International Business Machines Corporation | Multiprocessor system bus protocol with group addresses, responses, and priorities |
US6609171B1 (en) * | 1999-12-29 | 2003-08-19 | Intel Corporation | Quad pumped bus architecture and protocol |
US6681293B1 (en) * | 2000-08-25 | 2004-01-20 | Silicon Graphics, Inc. | Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries |
US6651122B2 (en) * | 2000-12-07 | 2003-11-18 | Micron Technology, Inc. | Method of detecting a source strobe event using change detection |
US6901475B2 (en) * | 2000-12-07 | 2005-05-31 | Micron Technology, Inc. | Link bus for a hub based computer architecture |
-
1999
- 1999-12-29 US US09/474,058 patent/US6609171B1/en not_active Expired - Lifetime
-
2000
- 2000-12-29 CN CNB008179840A patent/CN1230762C/zh not_active Expired - Fee Related
- 2000-12-29 CN CN200410061754.4A patent/CN1815463B/zh not_active Expired - Fee Related
- 2000-12-29 CN CNB200410061753XA patent/CN100375075C/zh not_active Expired - Fee Related
- 2000-12-29 WO PCT/US2000/035520 patent/WO2001048621A1/en active IP Right Grant
- 2000-12-29 EP EP00988421A patent/EP1242898B1/en not_active Expired - Lifetime
- 2000-12-29 GB GB0216035A patent/GB2374264B/en not_active Expired - Fee Related
- 2000-12-29 AT AT00988421T patent/ATE377797T1/de not_active IP Right Cessation
- 2000-12-29 KR KR1020027007528A patent/KR100565101B1/ko not_active IP Right Cessation
- 2000-12-29 RU RU2002120499/09A patent/RU2271566C2/ru not_active IP Right Cessation
- 2000-12-29 BR BRPI0016834-3A patent/BRPI0016834B1/pt not_active IP Right Cessation
- 2000-12-29 SG SG200404257A patent/SG123609A1/en unknown
- 2000-12-29 JP JP2001549206A patent/JP4194274B2/ja not_active Expired - Fee Related
- 2000-12-29 AU AU24631/01A patent/AU2463101A/en not_active Abandoned
- 2000-12-29 EP EP07115696A patent/EP1881414A3/en not_active Withdrawn
- 2000-12-29 DE DE10085385T patent/DE10085385B3/de not_active Expired - Fee Related
- 2000-12-29 SG SG200404258A patent/SG123610A1/en unknown
- 2000-12-29 CN CN2006100996516A patent/CN1900924B/zh not_active Expired - Fee Related
- 2000-12-29 DE DE60037036T patent/DE60037036T2/de not_active Expired - Lifetime
-
2001
- 2001-02-14 US US09/783,784 patent/US6880031B2/en not_active Expired - Lifetime
- 2001-02-14 US US09/783,852 patent/US6907487B2/en not_active Expired - Fee Related
- 2001-02-14 US US09/784,244 patent/US6804735B2/en not_active Expired - Fee Related
- 2001-04-18 TW TW089128315A patent/TW559704B/zh not_active IP Right Cessation
- 2001-08-10 US US09/925,692 patent/US6601121B2/en not_active Expired - Fee Related
- 2001-08-10 US US09/925,691 patent/US6807592B2/en not_active Expired - Fee Related
-
2002
- 2002-05-17 ZA ZA200203946A patent/ZA200203946B/en unknown
- 2002-10-28 HK HK02107799.6A patent/HK1046964B/zh not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4194274B2 (ja) | クアド・ポンプ・バス・アーキテクチャおよびプロトコル | |
US6405271B1 (en) | Data flow control mechanism for a bus supporting two-and three-agent transactions | |
EP1046111B1 (en) | Data transferring in source-synchronous and common clock protocols | |
US5870567A (en) | Delayed transaction protocol for computer system bus | |
US6993612B2 (en) | Arbitration method for a source strobed bus | |
US5533204A (en) | Split transaction protocol for the peripheral component interconnect bus | |
US5919254A (en) | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system | |
US6094700A (en) | Serial bus system for sending multiple frames of unique data | |
US6397279B1 (en) | Smart retry system that reduces wasted bus transactions associated with master retries | |
WO1994008303A1 (en) | Method and apparatus for non-snoop window reduction | |
US5949981A (en) | Deadlock avoidance in a bridge between a split transaction bus and a single envelope bus | |
US6970962B2 (en) | Transfer request pipeline throttling | |
US5933612A (en) | Deadlock avoidance in a split-bus computer system | |
JP2001216254A (ja) | バストランザクションにおける制御チップセットのアービトレーション | |
US20030084223A1 (en) | Bus to system memory delayed read processing | |
WO1998010350A1 (en) | A data flow control mechanism for a bus supporting two-and three-agent transactions | |
JPH1185674A (ja) | Pciバス間におけるトランザクション通信方法及びコンピュータ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040907 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080317 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080908 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080922 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |