JP3275051B2 - バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置 - Google Patents

バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置

Info

Publication number
JP3275051B2
JP3275051B2 JP53036495A JP53036495A JP3275051B2 JP 3275051 B2 JP3275051 B2 JP 3275051B2 JP 53036495 A JP53036495 A JP 53036495A JP 53036495 A JP53036495 A JP 53036495A JP 3275051 B2 JP3275051 B2 JP 3275051B2
Authority
JP
Japan
Prior art keywords
bus
request
request queue
response
data
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 - Lifetime
Application number
JP53036495A
Other languages
English (en)
Other versions
JPH10504665A (ja
Inventor
ベル,ディ・マイケル
ゴンザレス,マーク・エイ
メレディス,スーザン・エス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JPH10504665A publication Critical patent/JPH10504665A/ja
Application granted granted Critical
Publication of JP3275051B2 publication Critical patent/JP3275051B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】 発明の背景 発明の分野 本発明は、コンピュータシステムにおけるデータ転送
に関するものである。より詳しくは、本発明は、トラン
ザクション順序を維持し、遅延応答をサポートしつつ複
数のバス間で情報を転送するバスブリッジに関する。
背景情報 最近のコンピュータシステムは、一般に、システムバ
スを介して相互接続されたマイクロプロセッサ、記憶装
置、表示装置等、多数のエージェントを含む。システム
バスは、これらのエージェント間でアドレス、データ及
び制御信号を転送するよう動作する。最近の一部のコン
ピュータシステムには、種々のエージェントが1本以上
のバスに接続された多重バス方式を採用したものもあ
る。ふつうは、各エージェントは1本のバスに接続され
ている。
多重バスシステムでは、しばしば、バスブリッジを用
いてバスを接続することによって、1本のバスに接続さ
れたエージェントが他のバスに接続されたバスにアクセ
スできるようにしてある。ブリッジの機能には、通常、
2本のバス間におけるコマンドの転送が含まれる。バス
ブリッジによって転送されるコマンドはデータを伴うこ
とが多い(たとえば読出しコマンドや書込みコマン
ド)。
複数のエージェントを有するコンピュータシステムで
頻繁に持ち上がる一つの問題は、トランザクション順序
を保存することが必要なことである。トランザクション
順序に関するサポートとは、一つのエージェントがメモ
りの記憶場所Aに書き込んで、続いてメモリの記憶場所
Bに書き込むと、別のエージェントは、記憶場所Bの新
しいデータと記憶場所Aの旧(すなわち古い)データを
読み出すことができないということを意味する。多くの
ソフトウェアアルゴリズムは、情報の生産者−消費者関
係を必要とし、そのためにこの関係のサポートに依存し
て正しい機能性の確保が図られる。たとえば、多数のプ
ロセッサからなるシステムにおいて、プロセッサP1を情
報の生産者、P2を情報の消費者と仮定する。P1は、記憶
場所1に対して書込み動作W1を実行した後、記憶場所2
に対して書込み動作W2を実行する。記憶場所2には、記
憶場所1のデータが有効であるということを知らせるフ
ラグ変数が書き込まれる。プロセッサP2は、フラグが有
効になるまで記憶場所2で連続的に読出し動作R2を行
う。フラグが有効であることが検知されると、P2は記憶
場所1に対する読出し動作R1を行って、データを読み出
す。このアルゴリズムがマイクロプロセッサシステムで
首尾よく実行されるためには、プロセッサP1によってW1
及びW2が書き込まれる順序が、プロセッサP2にとってR1
及びR2が更新される順序と同じでなければならない。
多重バスシステムにおけるバスブリッジは、トランザ
クション順序の問題を解決しなければならない。上記の
例では、プロセッサP1及びP2を1本のバスに接続する一
方、記憶場所1と2を第2のバスに接続し、バスブリッ
ジでこれら2本のバス間のアクセスをサポートすること
が可能である。その場合、バスブリッジは、トランザク
ション順序が必ず保たれるようにしなければならない。
すなわち、エージェントによってW1及びW2が書き込まれ
る順序がバスブリッジによって維持されなければならな
い。
トランザクション順序を維持する一つの方法を図1に
示す。図示のバスブリッジ100は、2本のバス、すなわ
ち第1のシステムバス102と第2のシステムバス104とを
インタフェースとして接続する。システムバス102には
エージェント130が接続され、システムバス104にはエー
ジェント140が接続されている。このシステムにおいて
は、バスブリッジ100は、システムバス104上のエージェ
ントをターゲットとするシステムバス102上に出された
要求が書き込まれる第1のキューを有する。また、バス
ブリッジ100は、システムバス102上のエージェントをタ
ーゲットとするシステムバス104上に出された要求が書
き込まれる第2のキューも有する。ブリッジ100には、
一時記憶装置120が設けられる場合もある。
ブリッジ100は、バス102と104との間でコマンドを転
送する。たとえば、エージェント130がエージェント140
をターゲットとする要求を出すものと仮定する。この場
合、その要求はブリッジ100によって受け取られ、キュ
ー110に入れられる。あるいは、エージェント140がエー
ジェント130をターゲットとする要求を出す場合は、そ
の要求はキュー115に入れられる。
バス間で転送されるデータは一時記憶装置120に記憶
される。たとえば、キュー110に入れられた読出し要求
はシステムバス104上で実行される。ターゲットエージ
ェントが応答すると、読み出されたデータは一時記憶装
置120に入れられる。要求送出エージェントは、一時記
憶バッファ120でその要求を満たすデータを検索するよ
う通知される。
図示の従来技術のシステムでは、キュー110及び115
は、どちらも待ち状態の要求が入っており、それらの要
求を適切なバスへ転送する。エージェント130またはエ
ージェント140によって書込み要求が出されると、ブリ
ッジ100は、書込み要求を伴うキューがフラッシュされ
る(すなわち書込みトランザクションがターゲットバス
上で実行される)まで読出しトランザクションが反対側
のキューに全く入らないようにすることによって、トラ
ンザクション順序を強制する。たとえば、キュー115に
書込み動作が入っているならば、ブリッジ100はキュー1
15がフラッシュされるまで、何らかの読出し動作がキュ
ー110に入れられるのを阻止する。
この従来技術の方法は、トランザクション順序の問題
を効果的に解消するが、一方のキューがフラシュされて
いる間、他方のキューの使用は阻まれるので、それほど
効率的ではない。上に述べたように、一方のキューに書
込み動作が入っている間、トランザクションは他方のキ
ューには入らない。
従って、トランザクション順序の問題を効果的かつ効
率的に解消するようなシステムが得られるならば、益す
るところは小さくないであろう。本発明はこのような問
題を解消するためになされたものである。
さらに、第1のバス上のエージェントが第2のバス上
のエージェントをターゲットとする要求を出すと、その
要求を出したエージェントは第2のバス上のエージェン
トからの応答が来るまで待つことになる。この待ち期間
の間、要求を出したエージェントは、他のトランザクシ
ョンが第1のバス上に出されるのを妨げる場合がある。
しかしながら、他のトランザクションが第1のバス上に
出すことができないと、その待ち期間中他のエージェン
トは第1のバスを利用できないので、システム性能が低
くなる。従って、要求を出したエージェントが第1のバ
ス上にトランザクションが出されるのを妨げることなく
応答を待つようサポートするブリッジが得られるなら
ば、これも有益であろう。本発明は、このような問題を
解消するためになされたものである。
発明の概要 本発明は、バスブリッジにおいてトランザクション順
序を維持し、遅延応答をサポートする方法及びそのため
の装置にある。本発明のバスブリッジは、2本の別個の
バス間をインタフェース接続するための2つのインタフ
ェースからなる。バスブリッジ内には2つのキュー、す
なわち外向き要求キュー及び内向き要求キューが入って
いる。第1のバス上に発生する第2のバス上の宛先をタ
ーゲットとする要求(「外向き要求と称する)は、第1
のバスに対すインタフェースによって受け取られた後、
デコーディング回路に入力される。デコーディング回路
は、その要求を遅延することができる場合、遅延応答を
出す。この遅延応答は、第1のバス上の要求送出エージ
ェントに戻されることによって、その要求が後で処理さ
れるということを該要求送出エージェントに知らせる。
この遅延応答に応答して、該要求送出エージェントは、
第1のバスの制御権を解除し、他のエージェントが第1
のバスを使用できるようにする。
その後、デコーディング回路は外向き要求を外向き要
求キューに入れる。外向き要求」が外向き要求キューの
一番上に来ると、その要求は第2のバス上で実行され
る。バスブリッジは、外向き要求の実行に応答して第2
のバス上の宛先エージェントから応答を受け取り、この
応答が第1のバス上に要求を出したエージェントに遅延
応答として戻される。
外向き要求キュー及び内向き要求キューのどちらのエ
ントリも、ブリッジに内蔵されたデータバッファを示す
ポインタが入っている。データバッファには、要求の特
定のコマンドに応じて第1のバスと第2のバスの間で転
送しなければならないデータが書き込まれる。さらに、
第1のバス上の装置をターゲットとする要求(「内向き
要求」と称する)が、第2のバス上に出される場合もあ
る。これらの内向き要求は、内向き要求キューに入れら
れ、この内向きキューから取り出されたとき第1のバス
上で実行される。
図面の簡単な説明 以下、本発明を添付図面に示す実施形態によって説明
するが、これらの実施形態は本発明に対して限定的な意
味を有するものではなく、図中同じ参照符号は同様の構
成要素・部分を示す。
図1は、コンピュータシステムのバスブリッジ従来技
術における実装例を示すブロック図である。
図2は、本発明の一例のマルチプロセッサ・コンピュ
ータシステムを示す概略ブロック図である。
図3は、本発明の一実施形態における2つのバストラ
ンザクションのタイミングチャートである。
図4は、本発明の一実施形態のバスブリッジを示すブ
ロック図である。
図5は、本発明の一実施形態におけるキューとデータ
バッファとの間の結合例を示す図である。
図6は、本発明の一実施形態の外向きキュー内のスロ
ットの内容を示す図である。
図8a及び8bは、本発明の一実施形態においてバス上に
出された要求の処理の流れを説明するためのフローチャ
ートである。
詳細な説明 以下の本発明の詳細な説明においては、本発明の完全
な理解を図るために、多くの具体的な詳細事項を記載す
る。しかしながら、当業者ならば、本発明がこれらの具
体的な詳細事項の記載がなくとも実施可能なことは理解
できよう。その他の場合においては、本発明の特徴が不
明確になるのをさけるため、周知の方法、手順、構成要
素・部分、及び回路についての詳細な説明は省略した。
以下の詳細な説明のある部分は、アルゴリズム及びコ
ンピュータメモリ内におけるデータビットに対する操作
の記号表現によって記載する。これらのアルゴリズム的
説明及び表現は、データ処理技術の当業者がその業務の
内容を当技術分野の他の当業者に最も効果的に伝達する
ために使用する手段である。本願において、また一般的
に、アルゴリズムは所期の結果に至る一貫したステップ
のシーケンスであると考えられる。ステップは、物理量
の物理操作を必要とするステップである。必ずとは限ら
ないが、通常これらの物理量は、記憶、転送、結合、比
較、及びその他の操作を行うことができる電気信号また
は磁気信号の形を取る。場合によっては、主として共通
の使用という理由から、これらの信号をビット、値、要
素(元)、記号、文字、項、数、等々と称すると好都合
であることが実証されている。
しかしながら、これらの用語及びこれらと類似の用語
は、適切な物理量と対応しており、それらの物理量に付
される便宜上のラベルでしかないということを銘記すべ
きである。以下の説明から明らかであると別途明記しな
い限り、本発明の全体を通して、「処理する」、「計算
する」、「算術演算する」、「判断する」あるいは「表
示する」等などの用語を用いた説明は、コンピュータシ
ステムのレジスタ及びメモリ内の物理(電子的)量とし
て表されるデータを操作し、コンピュータシステムのメ
モリまたはレジスタあるいはこの種の他の情報記憶装
置、転送装置または表示装置内の物理量として同様に表
される他のデータに変換するコンピュータシステムまた
は同様の電子計算装置の動作及びプロセスを指すもので
ある。
図2は、本発明の一例のマルチプロセッサ・コンピュ
ータシステムの概略ブロック図である。このコンピュー
タシステムは、一般に、1つまたは2つ以上のプロセッ
サ202、203、204及び205間で情報を伝達するためのプロ
セッサ−メモリバスまたは他の通信手段201を具備す
る。プロセッサ−メモリバス201は、アドレスバス、デ
ータバス及び制御バスを含む。プロセッサ202乃至205
は、データ及び命令を一時オンチップ記憶するための一
般にレベル1(L1)キャッシュメモリと呼ばれる小さ
く、非常に高速の内部キャッシュメモリを具備すること
も可能である。さらに、たとえばプロセッサ205のよう
なプロセッサには、そのプロセッサで使用するデータ及
び命令を一時記憶するためのより大きく、低速のレベル
2(L2)キャッシュメモリ206を接続することもでき
る。一態様の場合、本発明はプロセッサ202乃至205とし
てIntel(登録商標)アーキテクチャのマイクロプロセ
ッサを用いる。しかしながら、本発明では、任意の種類
のマイクロプロセッサアーキテクチャ、あるいは数多く
のディジタル信号プロセッサの中の任意のものを使用す
ることができる。
プロセッサ202、203、または204はプロセッサ205と類
似した、あるいはこれと同じプロセッサのようなパラレ
ルプロセッサであってもよい。あるいは、プロセッサ20
2、203、あるいは204はディジタル信号プロセッサのよ
うなコプロセッサであってもよい。さらに、プロセッサ
202乃至205は、異なる種類のプロセッサを含んでもよ
い。
プロセッサ−メモリバス201は、メモリ及び入出力サ
ブシステムへのシステムアクセス手段になっている。プ
ロセッサ−メモリバス201には、プロセッサ202乃至205
用の情報及び命令を記憶するためのランダムアクセスメ
モリ(RAM)または他の動的記憶装置221(一般に主メモ
リと称する)へのアクセスを制御するメモリコントロー
ラ222が接続されている。磁気ディスク及びディスクド
ライブのような情報及び命令を記憶するための大容量記
憶装置225、及びブラウン管(CRT)、液晶表示装置(LC
D)等のようなコンピュータユーザに情報を表示するた
めの表示装置223をプロセッサ−メモリバス201に接続す
ることもできる。
入出力(I/O)ブリッジ224をプロセッサ−メモリバス
201及びシステムI/Oバス231に接続して、プロセッサ−
メモリバス201またはI/Oバス231上の装置が互いに他方
のバス上の装置との間でデータにアクセスし、あるいは
データを転送するための通信経路またはゲートウェイ手
段とすることも可能である。必須の要件としては、ブリ
ッジ224は、システムI/Oバス231とプロセッサ−メモリ
バス201との間のインタフェースである。
さらに、プロセッサ−メモリバス201には、ブリッジ2
40を介してI/Oバス242を接続することができる。システ
ムI/Oバス231に接続された装置232乃至236のような他の
周辺装置にもI/Oバスを接続することができる。
本発明の一実施形態においては、I/Oバス246がブリッ
ジ245を介してシステムI/Oバス231に接続されている。
システムI/Oバス231に接続された装置232乃至236のよう
な他の周辺装置にも、I/Oバスを接続することができ
る。一態様においては、I/Oバス246はシステムI/Oバス2
31(たとえばPCI)とは異なる規格(たとえばEISA)で
動作する。
I/Oバス231は、コンピュータシステム内の周辺装置間
で情報を伝達する。システムバス231に接続できる装置
としては、ブラウン管、液晶表示装置等の表示装置23
2、コンピュータシステム内の他の装置(たとえばプロ
セッサ202)に情報及びコマンド選択信号を伝達するた
めのアルファニューメリックキー及びその他のキーを含
むアルファニューメリック入力装置233、及びカーソル
の移動を制御するためのカーソル制御装置234がある。
さらに、コンピュータ画像のビジュアル表現を得るため
のプロッタやプリンタのようなハードコピー装置235
や、情報及び命令を記憶するための磁気ディスク及びデ
ィスクドライブのような大容量記憶装置236もシステム
バス231に接続することができる。
一部の実施例においては、情報を表示するための表示
装置を設ける必要がない場合もある。本発明の一部の実
施例では、さらに他のプロセッサや他の構成要素・部分
を含むこともある。さらに、本発明の一部の実装例は、
必ずしも上記構成要素・部分の全部が必要なわけではな
く、全部を含んでいることもない。たとえば、プロセッ
サ202乃至204、表示装置223、I/Oバス242または大容量
記憶装置225は、プロセッサ−メモリバスに接続しなく
ともよい。その上、システムI/Oバス231に接続されてい
るものとして図示してある周辺装置の一部はプロセッサ
−メモリバス201に接続することも可能である。
本発明においては、バストランザクションはコンピュ
ータシステムのプロセッサバス(たとえば図2のプロセ
ッサ−メモリバス201)上でパイプライン方式により実
行される。すなわち、複数のバストランザクションが、
各トランザクションが完全には終了しない状態のまま、
同時に待ち状態を取り得る。従って、要求を出したエー
ジェントがバス上にアドレスをドライブすることによっ
てバストランザクションを開始するとき、そのバストラ
ンザクションは現在待ち状態の多くのバストランザクシ
ョンの1つでしかないことがある。バストランザクショ
ンはパイプライン処理されるが、本発明におけるバスト
ランザクションは、1つずつ完全に終了する必要はな
く、本発明は、遅延応答を実行するようになっている。
従って、本発明では、要求に対する終了応答が要求の順
番通りでないことが許容される。このような順不同応答
に関するバス規格の例としては、「コンピュータシステ
ムにおけるバストランザクションを実行する方法及びそ
のための装置(Method and Apparatus for Performing
Bus Transactions in a Computer System)」という名
称の米国特許出願第07/ 号(1993年6月30日出願)
に記載されたものがある。
本発明は、本質的にバストランザクションを独立した
2つのトランザクションに分割することによって、遅延
トランザクションに対応するものである。その第1のト
ランザクションは、要求側エージェントによるデータ
(または終了信号)の要求及び応答側エージェントによ
る応答を伴う。要求は、たとえばアドレスバスを介して
のアドレス及び最初のトークンの送信である。応答は、
応答側エージェントが応答可能状態ならば、要求データ
(または終了信号)の送信である。この場合、バストラ
ンザクションは終了する。しかしながら、応答側エージ
ェントが要求(すなわちデータまたは終了信号)を供給
することが可能な状態でなければ、応答は、たとえば2
番目のトークンの送信を含む。この場合、2番目のトラ
ンザクションは、応答側エージェントによる要求側エー
ジェントへの要求データ(または終了信号)を伴う2番
目のトークンの送信よりなり、これによって要求側エー
ジェントがはじめに要求したデータを受け取ってトラン
ザクションを終了するようになっている。
応答側エージェントが、バストランザクションを終了
することが可能な状態でなければ、応答側エージェント
はその適切な応答時刻にバスを介して遅延応答を送信す
る。要求側エージェントはその遅延応答を受け取る。応
答側エージェントが遅延バストランザクションを終了で
きる状態になると、応答側エージェントは、バスの所有
権を得るためのアービトレーションを行う。そして、バ
スの所有権を得ると、応答側エージェントはバスを介し
て2番目のトークンを伴う遅延応答を送信する。要求側
エージェントは、バスを監視し、2番目の遅延応答の一
部として受け取る。本発明においては、要求側エージェ
ントは2番目のトークンをラッチする。その後、要求側
エージェントは、応答側エージェントから送られた2番
目のトークンが最初のトークンと一致するかどうか確か
める。要求側エージェントが応答側エージェントからの
2番目のトークンが最初のトークン(要求側エージェン
トが生成した)と一致しないことを検知すると、バス上
のデータ(または終了信号)は無視され、要求側エージ
ェントはバスを監視し続ける。要求側エージェントが応
答側エージェントから送られた2番目のトークンが確か
に最初のトークンと一致することを検知した場合は、バ
ス上のデータ(または終了信号)ははじめに要求側エー
ジェントによって要求されたデータであり、要求側エー
ジェントはそのデータをデータバス上にラッチする。
本発明の一実施形態においては、バスアクティビティ
は、階層的に動作、トランザクション、及びフェーズに
編成される。動作は、自然に整列された記憶場所での読
出しのようなソフトウェアにとってアトミックと思われ
るバスプロシージャである。動作を実行するには、通常
1つのトランザクションが必要であるが、要求と応答が
異なるトランザクションである遅延応答の場合のよう
に、複数のトランザクションが必要なこともある。トラ
ンザクションは、データバス上における応答起動データ
転送を通じての要求バスアービトレーションからの単一
要求に関連するバスアクティビティの集合である。本発
明においては、トランザクションでは、データバス上に
おける応答で起動されたデータ転送を通じての要求バス
アービトレーションからの単一要求に関連するバスアク
ティビティの集合である。
トランザクションは、最大6つの異なるフェーズを含
む。しかしながら、一部のフェーズは、トランザクショ
ン及び応答のタイプに基づいて任意選択である。フェー
ズは、特定の信号群を用いて特定タイプの情報を伝達す
る。それらの6つのフェーズとは下記の通りである: アービトレーションフェーズ 要求フェーズ エラーフェーズ スヌープフェーズ 応答フェーズ データ転送フェーズ 一態様においては、データ転送フェーズは任意であ
り、トランザクションがデータを転送中に使用される。
データ転送フェーズは、要求の開始時にデータが利用可
能な場合、要求で起動される(たとえば書込みトランザ
クションの場合)。データフェーズは、トランザクショ
ン応答の生成時にデータが利用可能な場合、応答で起動
される(たとえば読出しトランザクション)。トランザ
クションは、要求起動データ転送及び応答起動データ転
送の両方を含むことが可能である。
異なるトランザクションからの異なるフェーズは互い
にオーバーラップすることができ、これによってバスの
パイプライン方式化とバス性能の向上が達成される。図
3は、2つのトランザクションにおいて要求/応答フェ
ーズがオーバーラップしている例を示す。図3におい
て、各トランザクションはアービトレーションフェーズ
で開始され、このフェーズでは要求側エージェントがバ
スオーナになる。2番目のフェーズは、要求フェーズで
あり、このフェーズではバスオーナがバス上に要求及び
アドレス情報をドライブする。要求フェーズの後、新し
いトランザクションは先入れ先出し(FIFO)キュー、す
なわち同順キューに入る。要求側エージェントを含め
て、すべてのバスエージェントは、同じ同順キューを維
持し、それらのキューに新しい要求を付加する。図3に
おいて、たとえば、要求1はCLK3でドライブされ、CLK4
で認識され、CKL5で始まる同順キューに入る。トランザ
クションの3番目のフェーズは、要求フェーズから3ク
ロック後のエラーフェーズである。エラーフェーズは、
要求によってトリガーされたエラーがあれば、それを指
示する。トランザクションの4番目のフェーズは、要求
フェーズから4クロック後のスヌープフェーズである。
スヌープフェーズは、トランザクションでアクセスされ
たキャッシュラインが有効であるか、あるいはいずれか
のエージェントのキャッシュで修正されている(ダーテ
ィ)かどうかを指示する。また、スヌープフェーズは、
トランザクションが同順で終了するのか、順不同終了が
可能で、遅延される場合があるかどうかも指示する。
トランザクションは、FIFO順に同順キューを通して進
行する。まず、同順キューの一番上のトランザクション
は、応答フェーズに入る。応答フェーズは、そのトラン
ザクションが失敗したか、成功したか、応答が即時応答
か遅延応答か、そしてそのトランザクションがデータフ
ェーズを含んでいるかどうかを指示する。
トランザクションが応答起動データフェーズを含んで
いる場合は、トランザクションは応答フェーズと共にデ
ータ転送フェーズに入り、トランザクションその応答フ
ェーズ及び(省略可能な)応答起動データ転送フェーズ
の終了時に同順キューから取り除かれる。図3に示すよ
うに、トランザクション1はCLK5で開始される同順キュ
ーから取り除かれる。
上に述べたバスの分割トランザクション性のため、所
与の時点において複数のトランザクションが待ち状態に
なり得るということがわかる。すなわち、複数の要求が
出されて、それに対する応答が全く戻されていない状態
があり得る。本発明の一実施形態においては、バス上の
各エージェントは、最大8つのトランザクションを待ち
状態にすることができる。
図4は、本発明の一実施形態のバスブリッジを示すブ
ロック図である。一態様においては、図4のバスブリッ
ジ400は図2のブリッジ224または240からなる。本発明
の一実施形態においては、I/Oバス402は周知のPCI規格
に基づいて動作する。しかしながら、I/Oバス402は、周
知のEISA、ISA、あるいはVESA規格など、様々な規格の
中の任意の規格に従って動作することができるというこ
とに留意すべきである。
以下の説明においては、バスブリッジ400は及びI/Oバ
スに接続されているものとして説明を進める。しかしな
がら、当業者ならば、以下に説明する種々の例並びに実
施形態は、プロセッサバス及びI/Oバスに限らず、任意
の2本のバスを相互接続する場合についても同様に適用
可能であるということは理解できよう。
バスブリッジ400は、プロセッサバス401に接続された
プロセッサバスインタフェース410を有する。プロセッ
サバス401はたとえば図2のバス201であってもよい。プ
ロセッサバスインタフェース410は、外向き要求デコー
ダ415、I/Oバス主制御装置425、及び内向き要求キュー4
30にも接続されている。バスインタフェース410は、BRJ
またはI/Oバス402上のエージェントをターゲットとする
プロセッサバス401から要求を受け取る。
バスインタフェース410は、アービトレーション装置4
11、同順キュー414、及びコンフィギュレーションレジ
スタ412を含む。アービトレーション装置411は、プロセ
ッサバス401へのアクセス権に関するバスブリッジ400の
アービトレーションを制御する。プロセッサバス401へ
のアクセス権に関するアービトレーションは、従来の様
々な方式の中の任意のやり方で行うことができる。コン
フィギュレーションレジスタ412は、コンピュータシス
テム内のブリッジ400の動作のためのコンフィギュレー
ション値を供給する。これらの値には、たとえば書込み
ポスティングがイネーブルかディスエーブルか、遅延応
答がイネーブルかディスエーブルか等が含まれる。書込
みポスティング及び遅延応答のイネーブル/ディスエー
ブルについては、以下にさらに詳しく説明する。
同順キュー414は、プロセッサバス上で現在待ち状態
のトランザクションのリストを監視するためにブリッジ
400によって使用される。上に述べたように、プロセッ
サバス上のトランザクションは、要求フェーズの後同順
キュー414に入り、応答フェーズの後(あるいはデータ
転送フェーズがある場合は、その後)に除去される。
本発明の一実施形態においては、バスインタフェース
410は、アドレスマッピング論理回路413も有する。プロ
セッサバス401とI/Oバス402が異なる規格を使用してい
る場合は、要求に付随するアドレスを変換することが必
要な場合がある。すなわち、I/Oバス402からの要求が、
プロセッサバス401上に乗せるための正しいフォーマッ
トになっていないアドレスをターゲットにしている場合
である。アドレスマッピング論理回路413はこのような
場合の変換を行う。変換は2本のバスの規格に基づくも
のであり、通常の仕方で行われる。
要求は、それを出すエージェントによってプロセッサ
バス410上に送り出されるう。要求を出すエージェント
は、要求を生成したエージェントでも、あるいは単に要
求をプロセッサバス401に転送するだけの他のインタフ
ェースまたはブリッジであってもよい。要求がどこから
出るかに関わらず、バスインタフェース410は、要求を
受け取るとすぐ、その要求を外向き要求デコーダ415に
転送する。外向き要求デコーダ410は、以下にさらに詳
しく説明するように、要求が遅延されるかどうかを確認
する。この確認を行った後、外向き要求デコーダ415
は、要求が遅延されるかどうかを示す信号をバスインタ
フェース410に出す。要求が遅延される場合は、バスイ
ンタフェース410は要求をプロセッサバス401に出したエ
ージェントに応答を戻す。この応答は、要求が遅延され
るということを指示する。しかしながら、要求が遅延さ
れない場合は、バスインタフェース410は、要求の処理
が終了するまで、プロセッサバス401を機能停止にす
る。ここで、「機能停止」とは、これが解除されるま
で、バス上を介してトランザクションが全く伝達されな
いということを意味する。一態様においては、バスの機
能停止は、バスを機能停止にすべきであるということを
示す信号をすべてのエージェントに送信することによっ
て行われる。
本発明の一実施形態においては、プロセッサバス401
はパイプライン型バスである。従って、要求が遅延され
ないならば、必ずしもバス全体を機能停止にする必要は
ない。一態様においては、要求が遅延されないとき、ブ
リッジ400はバスの応答フェーズを機能停止にする。応
答フェーズを機能停止にすることによって、現行の要求
が待ち状態になっている間に、他のトランザクションに
ついてパイプラインバスの他のフェーズを続行すること
ができる。たとえば、他のエージェントがバス上に要求
を出すことができ、一部の結果信号(たとえばエラー信
号)を出すことができるが、この場合、ブリッジ400が
応答フェーズに対する機能停止を解除するまで応答は全
く出されない。
一態様においては、バスインタフェース410は、外向
き要求キュー420がいっぱいの場合、プロセッサバス401
を完全に機能停止にする。すなわち、外向き要求キュー
420に残っているスロットがないと、バスインタフェー
ス410はプロセッサバス401上に信号を出してパイプライ
ンを完全に機能停止にする。バスを完全に機能停止にす
ることによって外向き要求キュー420のスロットが使用
可能になるまで、どのフェーズでもそれ以上要求をプロ
セッサバス401上に出すことはできなくなる。
この態様においては、バスインタフェース410は、外
向き要求キュー420の全てのスロットがいっぱいになる
と、プロセッサバス401を機能停止にする。しかしなが
ら、一部の場合には、パイプライン型バスの性質のた
め、外向き要求キュー420の最後の使用可能スロットに
前回の要求が入れられると、それと同時に次の要求をバ
ス上に乗せることができるようになっている。従って、
その次の要求もブリッジ400をターゲットにしている場
合は、外向き要求キュー中に使用可能なスロットがない
ので、問題が生じる。この問題を解決するために、バス
インタフェース410は、外向き要求キュー420にスロット
が1つしか残っていない場合、プロセッサバス401を機
能停止にする。
もう一つの態様においては、バスインタフェース410
は、外向き要求キュー420がいっぱいの場合、プロセッ
サバス401を機能停止にするのではなく、リトライ応答
を出す。従って、ブリッジ400をターゲットとしないト
ランザクションはプロセッサバス401を介して進行する
が、ブリッジ400をターゲットとするトランザクション
はリトライしなければならない。
バスインタフェース410は、プロセッサバス401から外
向き要求デコーダ415に要求を転送するほか、I/Oバス40
2上のターゲットエージェントからプロセッサバス401上
の要求送出エージェントへ応答を戻す。さらに、プロセ
ッサバス上のエージェントをターゲットとしてI/Oバス4
02上に出された要求は、バスインタフェース410によっ
てプロセッサバス401上に乗せられる。
プロセッサバスインタフェース410は、以下にさらに
詳しく説明するように、I/Oバス402上のエージェントを
ターゲットにした要求に対する応答をI/Oバス主制御装
置425または内向き要求キュー430を介して受け取る。さ
らに、I/Oバス402上に出された要求も内向き要求キュー
430を介してバスインタフェース410へ転送される。バス
インタフェース410は、要求が遅延されたかどうかを知
らせる外向き要求待デコーダ415からの信号に基づい
て、応答がI/Oバス主制御装置425または内向き要求キュ
ー430のどちらから戻されるかを確認する。要求が遅延
されない場合は、応答はI/Oバス主制御装置425を経由し
てバスインタフェース410に戻される。そして、バスイ
ンタフェース410は、プロセッサバス401上でその応答を
実行し、応答フェーズの機能停止を解除する。しかしな
がら、要求が遅延される場合、あるいは要求がI/Oバス4
02上に出された要求の場合は、バスインタフェース410
は内向き要求キュー430を介して応答(または要求)を
受け取る。
内向き要求キュー430は、I/Oバス402からプロセッサ
バス401へ要求及び遅延応答を転送する。一態様におい
ては、トランザクションが内向き要求キュー430の一番
上にあるとき、キュー430はプロセッサバスインタフェ
ース410にそのことを知らせる信号を送る。プロセッサ
バスインタフェース410は、この信号を受け取ると、プ
ロセッサバス401へのアクセス権のためのアービトレー
ションを開始する。プロセッサバス401に対するアクセ
ス権が得られると、バスインタフェース410は、内向き
要求キュー430からトランザクションを受け取り、プロ
セッサバス401上で実行する。
一実施形態においては、プロセッサバスインタフェー
ス410は、プロセッサバス401上の高優先権エージェント
である。従って、内向き要求キュー430でトランザクシ
ョンが待ち状態になっているとき、バスインタフェース
410はプロセッサバス401に迅速にアクセスして、待ち状
態のトランザクションをそのバス上で実行することがで
きる。一態様においては、バスインタフェース410がプ
ロセッサ401に対するアクセス権を得ると、内向き要求
キュー中の待ち状態のトランザクションは全て該キュー
から取り除かれ、バス上で実行される。ここで、場合に
よってはバスインタフェース410は、プロセッサバス401
の所有権を放棄する前には、内向き要求キュー430で待
ち状態のトランザクションの全部を首尾よく取り出し
て、プロセッサバス401上で実行することができない場
合もあるということに留意すべきである。すなわち、キ
ューでコマンドを移動させる際に遅延時間が生じる場合
がある。たとえば、キューに4つのトランザクションが
入っている場合、最初の3つは首尾よくプロセッサバス
401上で実行されるかもしれない。しかしながら、4番
目のトランザクションが、十分迅速にキューの一番上ま
で移動せず、そのためにバスインタフェース410にキュ
ー中には待ち状態のトランザクションはないと誤解させ
る結果になるかもしれない。
本発明のもう一つの実施形態においては、内向き要求
キュー430で待ち状態の全てのトランザクションを実行
する代わりに、バスインタフェース410はプロセッサバ
ス401へのアクセス権を得るためのアービトレーション
を行い、プロセッサバス401上で内向き要求キュー430か
らの1つのトランザクションを実行する。そして、キュ
ーに待ち状態のトランザクションが残っていれば、バス
インタフェース410は再度プロセッサバス401へのアクセ
ス権を求めてアービトレーションを行う。
外向き要求デコーダ415は、プロセッサバス401上の要
求が遅延になるかどうかを確認する。外向き要求デコー
ダ415は、バスインタフェース410、外向き要求キュー42
0、及び内向きキュー割当て装置435に接続されている。
要求を遅延させるために、外向き要求デコーダは内向き
要求キュー430で使用可能なスロットがあるかどうか確
認する。内向き要求キュー430中のスロットが使用可能
でない場合は、バスインタフェース410に遅延応答を出
すと、以下にさらに詳しく説明するように、デッドロッ
ク状態が起こり得る。
外向き要求デコーダ415は、内向きキュー割当て装置4
35にアクセスして内向き要求キュー430中のスロットが
使用可能かどうかを確認する。内向きキュー割当て装置
435は、以下にさらに詳しく説明するように、内向き要
求キュースロットを動的に割り当てる。内向きキュー割
当て装置435が外向き要求デコーダ415に内向き要求キュ
ー430のスロットが使用可能であることを知らせると、
デコーダ415はそのスロットを予約し、割当て装置435に
そのことを知らせる。デコーダ415は、内向き要求キュ
ー430中のスロットを予約することによって、I/Oバス40
2から応答が戻ったとき、確実にその応答を入れるため
のスロットが内向き要求キュー中にあるようにする。
要求が遅延されたかどうかに関わらず、デコーダ415
はその要求を外向き要求キュー420に入れる。デコーダ4
15は、外向き要求キュー中の外向き要求が遅延された場
合、その要求にタグを付ける。ここで、外向き要求キュ
ー420に入れらた要求が遅延されなくても、次の要求は
遅延されるかもしれないということに留意すべきであ
る。すなわち、特定の要求に対する遅延応答に対して内
向き要求キュー内のスロットが使用可能ではなくても、
次の要求がデコーダ415に到達する時点までには、内向
き要求キュー430中のスロットが空いている場合があ
る。従って、デコーダ415は、後続の要求に対して遅延
応答を出すことができる。
外向き要求Kキュー420は、デコーダ415から要求を受
け取り、それらの要求をI/Oバス主制御装置425に転送す
る。本発明の一実施形態においては、内向き要求キュー
420は通常の方式で動作する先入れ先出し(FIFO)バッ
ファである。従って、外向き要求キュー420に入れられ
た要求は、先入れ先出し方式でI/Oバス主制御装置によ
ってキューから取り出される。FIFOキューを維持するこ
とによって、ブリッジ400はトランザクション順序を維
持する。すなわち、外向き要求キュー420に入れられた
要求は、後のいずれかの要求が取り出される前にキュー
420から取り出され、I/Oバス402上で実行される。
当業者ならば、遅延要求を用いることによって、読出
し要求が、内向き要求キュー430で待ち状態のそれまで
の要求が満たされる前にプロセッサバス401上に応答を
受け取ることもできるということは理解できよう。たと
えば、外向き要求キュー420中に2つの遅延読出し要求
があって、外向き要求キュー420には遅延要求が最大2
つしか入れることができないとすると、ブリッジ400に
入る次の3番目の読出し要求は遅延されない。この場
合、これらの最初の2つの読出し要求は、I/Oバス402上
で実行され、内向き要求キュー430に入れられる。その
後、3番目の要求がI/Oバス402上で実行され、その応答
は直ちにバスインタフェース410に戻され、プロセッサ
バス401上で実行される。このように、3番目の読出し
要求は、前の2つの読出し要求が満たされるより前に満
たされる。
上記の例から、やはりトランザクション順序は維持さ
れるということが明らかである。トランザクションは、
ブリッジ400が受け取った順にI/Oバス402上で実行され
る。しかしながら、上に述べたように、応答はプロセッ
サバス401では同順にはならない。
一実施形態においては、外向き要求キュー420は複数
のスロットを有する。一態様においては、外向き要求キ
ュー420はそのようなスロットを4つ有する。一例のス
ロットを図6にさらに詳細に示す。図示例の外向き要求
キュースロット423は、5つの部分からなる。すなわ
ち、タグ610、コマンド部615、アドレス部620、データ
ポインタ625、及びトーグン部628の5つの部分である。
一実施形態においては、タグ610は1ビット、コマン
ド部615は4ビット、アドレス部620は32ビット、データ
ポインタ625は2ビット、トークン部628は8ビットであ
る。しかしながら、これらの値を変えることが可能なこ
とは当業者ならば理解できよう。たとえば、4つのデー
タバッファを有するブリッジの場合、データポインタ62
5は2ビットだけでよいが、6つのデータバッファを有
するブリッジの場合は、データポインタ625は少なくと
も3ビットになる。
タグ610は、スロット423に記憶された要求が遅延され
るかどうかを指示する。タグ610は、上に述べたよう
に、スロット423に記憶された要求が遅延される場合、
デコーダ415によってセットされる。コマンド部515に
は、要求送出エージェントによってプロセッサバス401
上に出された実際のコマンドが書き込まれる。一実施形
態においては、外向き要求キュー420中のコマンドは、
プロセッサバス401に出されるものと同じである。すな
わち、バスインタフェース410によってもデコーダ415に
よっても、変換は全く行われない。
また、スロット423はアドレス部420を有する。アドレ
ス部620には、コマンド部615のターゲットであるI/Oバ
ス402上のターゲットエージェント(またはI/Oバス402
上のターゲットエージェント中の記憶場所)のアドレス
が書き込まれる。要求がプロセッサバス401からI/Oバス
402へのデータ転送を必要とする場合は、データポイン
タ625は転送されるデータが入ったデータバッファを示
すポインタになる。一実施例においては、データポイン
タ625は、この特定スロットに付随するデータバッファ
のアドレスが書き込まれる。
データバッファを外向き要求キュー420とどのように
組み合わせて使用するかについて、以下、図5を参照し
つつさらに詳しく説明する。ここで、プロセッサバス40
1に出される要求は、全くデータを伴わない場合もある
ということに留意すべきである。たとえば、はじめの要
求はI/Oバス402上のエージェントに対する特殊なコマン
ド、あるいはI/Oバス402上の多くのエージェントに一斉
送信されるコマンドのこともある。そのような場合は、
データポインタ625はデータバッファを全く指示しな
い。
図4に戻って、I/Oバス主制御装置425は、外向き要求
キュー420から1つずつ要求を受け取る。キュー420から
要求を受け取った後、I/Oバス主制御装置425は、その要
求をI/Oバスインタフェース450に転送する。I/Oバス主
制御装置425は、この要求に対してI/Oバスインタフェー
ス450から応答を受け取るまで、外向き要求キュー420か
ら後続の要求を取り出さない。
I/Oバスインタフェース450から応答を受け取ると同時
に、I/Oバス主制御装置425はバスインタフェース410に
その応答を戻す。これは、直接あるいは内向き要求キュ
ー430を介して行われる。I/Oバス主制御装置425が応答
をバスインタフェース410に直接戻すかどうかは、要求
がデコーダ415によって遅延されるかどうかによって決
まる。要求が遅延される場合は、I/Oバス主制御装置425
は応答を遅延ジェネレータに転送する。しかしながら、
要求が遅延されない場合は、I/Oバス主制御装置425は応
答を直接バスインタフェース410に戻す。ここで、要求
が遅延されない場合、上に述べたように、バスインタフ
ェース410がその遅延されない要求に応答してプロセッ
サバス401の応答フェーズを機能停止にしているので、I
/Oバス主制御装置425は、応答をバスインタフェース410
に直接戻すということに留意すべきである。応答を直接
戻すことによって、プロセッサバス401は最小限の時間
だけ機能停止される。
また、I/Oバス主制御装置425によって転送される応答
は「リトライ」応答の場合もあるということにも留意す
べきである。すなわち、I/Oバス402上のターゲットエー
ジェントは、要求を終了することができない場合、リト
ライ応答をバスインタフェース450に出し、その応答がI
/Oバス主制御装置425に戻される。このリトライ応答
は、バスインタフェース410を介してプロセッサバス425
上の要求送出エージェントに戻され、そのエージェント
に後で要求をリトライしなければならないということを
指示する。
I/Oバスインタフェース450は、I/Oバス主制御装置42
5、I/Oバスターゲット制御装置445、及びI/Oバス402に
接続されている。I/Oバスインタフェース450は、I/Oバ
ス主制御装置425及びI/Oバス402の両方から要求を受け
取る。I/Oバス主制御装置425から受け取る要求は、上に
述べたように、プロセッサバス401上に出される要求で
ある。バスインタフェース450は、そのような要求を受
け取ると同時に、その要求に伴うコマンドをI/Oバス402
上の実行する。本発明の一実施形態においては、プロセ
ッサバス401とI/Oバス402は異なるプロトコルを使用す
る。従って、プロセッサバス401上に出されるコマンド
は、I/Oバス402上で実行される前にまず変換しなければ
ならない。一態様においては、I/Oバスインタフェース4
50中のコマンドデコーダ452がこの変換を行う。この変
換は、当業者が理解し得る種々の技術的方法の中の任意
の方法で行うことができる。
また、I/Oバスインタフェース450は、アービトレーシ
ョン装置451を有する。アービトレーション装置451は、
I/Oバス402へのアクセス権を得るためのバスブリッジ40
0のアービトレーションを制御する。I/Oバス402に対す
るアクセス権を得るためのアービトレーションは従来の
様々な方式の中の任意の方式で行うことができる。
さらに、本発明の一実施形態においては、I/Oバスイ
ンタフェース450はアドレスマッピング論理路453をも有
する。プロセッサバス401及びI/Oバス402が異なる規格
を使用するシステムの場合、要求に伴うアドレスを変換
することが必要な場合がある。すなわち、プロセッサバ
ス401からの要求が、I/Oバス402上に乗せるための正し
いフォーマットでないアドレスをターゲットにする場合
がある。アドレスマッピング論理回路453がこの変換を
行う。この変換は2本のバスの規格に基づき、通常の方
式で行われる。
I/Oバス402上で変換を実行した後、I/Oバスインタフ
ェース450はターゲットエージェントからの応答を待
つ。この応答を受け取ると同時に、バスインタフェース
450はその応答をバス主制御装置425に戻す。I/Oバス主
制御装置425によるこの応答の処理については、上に説
明した。
また、I/Oバスインタフェース450は、I/Oバス402から
も要求を受け取る。これらの要求は、I/Oバス402上のエ
ージェントから出され、プロセッサバス401上のエージ
ェントをターゲットとする。一態様においては、バスイ
ンタフェース450は、I/Oバス402から受け取ったコマン
ドを変換してからプロセッサバス401へ転送する。これ
らの要求は、その後バスインタフェース450によってI/O
バスターゲット制御装置445へ転送される。これらの要
求がバスターゲット制御装置445によってどのように処
理されるかを以下にさらに詳しく説明する。
遅延応答ジェネレータ440は、I/Oバス主制御装置425
から遅延応答を受け取る。その後、遅延ジェネレータ44
0はそれらの遅延応答を内向き要求キュー430に転送す
る。図4には、遅延ジェネレータ440及びI/Oバスターゲ
ット制御装置445からの入力を受け取るマルチプレクサ4
42も示されている。マルチプレクサ442の出力は、内向
き要求キュー430に入力される。マルチプレクサ442は、
内向き要求キュー430が複数のソースから入力を供給さ
れるということを示している。当業者には明らかなよう
に、本発明においては、マルチプレクサの代わりに他の
周知の装置を使用できるということに留意すべきであ
る。
I/Oバスターゲット制御装置445は、バスインタフェー
ス450、内向き要求キュー430、及び内向きキュー割当て
装置435に接続されている。I/Oバスターゲット制御装置
445は、I/Oバス402上に出された要求をバスインタフェ
ース450から受け取る。そのような要求を受け取ると同
時に、I/Oバスターゲット制御装置445は内向きキュー割
当て装置445にアクセスして、内向き要求キュー430中の
スロットが使用可能であるかどうかを確認する。内向き
要求キュー430中のスロットが使用可能であれば、I/Oバ
スターゲット制御装置445は要求を内向き要求キュー430
に転送する。しかしながら、スロットが使用可能でなけ
れば、I/Oバスターゲット制御装置445は、要求を終了す
ることができず、リトライしなければならないというこ
とを指示する応答をバスインタフェース450を介して要
求送出エージェントに送る。
内向き要求キュー430に入れられる要求は、プロセッ
サバス401上で首尾よく終了することもあれば、しない
こともある。本発明の一実施形態においては、プロセッ
サバス401上でにおける内向き要求キュー430の実行の結
果、可能な2つの応答のうちの一方の応答が生じる。そ
の第1の応答は、プロセッサバス401上のターゲットエ
ージェントから戻される正常終了応答である。この場
合、終了信号は(他の付随データがあればそれらのデー
タと共に)I/Oバス420上に要求を出したエージェントに
戻される。もう一つの可能な応答はリトライ応答であ
る。この場合は、プロセッサバス401上のターゲットエ
ージェントは、要求に対して、要求を処理できる状態で
はないので、リトライしなければならないということを
指示する応答を出す。このリトライ応答は、I/Oバス402
上の要求送出エージェントに戻されることによって、そ
のエージェントに後でその要求を再度トライすべきであ
るということを知らせる。
内向き要求キュー430は、図示のように、複数のスロ
ット433よりなる。一実施形態においては、内向き要求
キュー430はこのようなスロットを4つ有する。図7
に、スロット433の一例を示す。スロット433は3つの部
分、すなわちコマンド部730、アドレス部735、及びデー
タポインタ740を有する。一実施例においては、コマン
ド部730、アドレス部755、及びデータポインタ740は、
図6の外向き要求キュースロット423の同様の部分と同
じビット数を有する。
図7に戻って、コマンド部730はプロセッサバス401上
で実行しなければならないコマンドが書き込まれる。I/
Oバス402上に出される要求の場合は、コマンド部730に
は要求送出エージェントによって実行されるコマンド
(バスインタフェース450によって変換された形の)が
書き込まれる。遅延されたプロセッサバス401上に出さ
れる要求の場合は、コマンド部730には、最初の遅延要
求に対して遅延応答を指示するコマンドが書き込まれ
る。
アドレス部735には、プロセッサバス401上のターゲッ
トエージェントのアドレス(またはプロセッサバス401
上のターゲットエージェント内の記憶場所)が書き込ま
れる。個々で、遅延応答の場合はアドレス部735に書き
込まれたアドレスは送出エージェントからのトークンに
置換できるということに留意すべきである。データポイ
ンタ740には、上記コマンドに付随するデータがある場
合に、そのようなデータが書き込まれるデータバッファ
を示すポインタが書き込まれる。データポインタ740の
使い方は、図6のデータポインタ625について説明した
使い方と同様である。
ここで、I/Oバス402からプロセッサバス401へのトラ
ンザクションは、データバッファに入れることができる
よりも多いデータを伴う場合があるということに留意す
べきである。そのような場合は、トランザクションはデ
ータバッファのサイズに応じて分割され、内向き要求キ
ュー内の複数のスロットに入れられる。一態様において
は、I/Oバスターゲット制御装置445は、トランザクショ
ンに必要なスロット数を決定し、またそれだけの数のス
ロットが使用可能かどうか確認しなければならない。も
う一つの態様においては、I/Oバスターゲット制御装置4
45はトランザクションを分割し、それらのトランザクシ
ョンの部分を、内向き要求キュー430にそのキューのス
ロットが使用可能になるのに応じて入れる。
図4に戻って、内向きキュー割当て装置435は、図示
のように、デコーダ415、内向き要求キュー430、及びI/
Oバスターゲット制御装置445に接続されている。内向き
キュー割当て装置435は、内向き要求キュースロット430
を遅延応答と、I/Oバス402上に出されるトランザクショ
ンとに割り当てる役割を有する。割当て装置435は、内
向き要求キュー430中のスロット数を常時カウントし、
それらのスロットを動的に割り当てる。このように、内
向きキュー割当て装置435は、内向き要求キュー430を監
視して、要求(または応答)が内向き要求キュー430か
ら取り出されたとき、その使用可能なスロットのカウン
ト値を更新する。一態様においては、内向きキュー割当
て装置435は、スロットにコマンドが与えられた場合
に、そのスロットが遅延応答または要求のどちらによっ
て使用されたか(すなわち、コマンドが要求であるか、
応答であるか)を知らされる。さらに、遅延応答のため
にデコーダ415が使用可能な要求キュースロットの数
は、システム動作時に割当て装置435によって変更する
ことができる。
割当て装置435は、まず遅延応答に対して内向き要求
キュースロットの半分を割り当てる。すなわち、デコー
ダ415が割当て装置435に対して内向き要求キュースロッ
トを要求すると、割当て装置435はデコーダ415にスロッ
トの中の2つについてアクセスを許可する(内向き要求
キュー430が4スロットからなる場合)。これによっ
て、I/Oバス402上に出されるトランザクションが途絶す
るのを防ぐことができる。割当て装置435が遅延応答に
対してデコーダ415にスロットを割り当てる場合、割当
て装置435は、本質的に、I/Oバス402上に出される何ら
かのトランザクション、またはプロセッサバス401上に
出される何らかのトランザクションがそのスロットを使
用することを禁止する。従って、遅延応答ジェネレータ
440が要求の応答を内向き要求キュー430に入れようとす
るとき、遅延応答は必ず内向き要求キュー中にスロット
を確保することができる。
同様に、I/Oバスターゲット制御装置445が内向きキュ
ー割当て装置435に対してキュースロットを要求する
と、割当て装置435はバスターゲット制御装置445にスロ
ットの半分に対してだけアクセスを許可する。バスター
ゲット制御装置445による以後のスロット要求は、バス
ターゲット制御装置445が要求を入れたスロットの1つ
が空くまで拒否される(そして対応するトランザクショ
ンがリトライされる)。
本発明の一実施形態においては、内向きキュー割当て
装置435は内向き要求キュー430のスロットを動的に割り
当てる。これによって、割当て装置435は、I/Oバス402
上に高トラフィックの要求が出された場合、I/Oバスタ
ーゲット制御装置445にスロットを追加割当てすること
ができる。すなわち、デコーダ415に2つのトランザク
ションを遅延させるのではなく、内向きキュー割当て装
置435は、デコーダ415が1つのトランザクションだけ遅
延できるようにし、I/Oバスターゲット制御装置445が内
向き要求キュー430のスロットの中の3つにアクセスで
きるようにする。これは、内向き要求キューを遅延応答
用に不必要に予約することなくシステム性能を向上させ
るということに注目すべきである。
内向き要求キュー430がいっぱいの時は、I/Oバス402
上に出されるトランザクションは全てリトライされる。
さらに、プロセッサバス401上に出される全ての要求が
遅延されることはない。内向き要求キュー430中のスロ
ットが使用可能になると、そのキューで待ち状態のトラ
ンザクションの1つをプロセッサバス410上で実行させ
ることによって、内向きキュー割当て装置435はデコー
ダ415またはI/Oバスターゲット制御装置445のどちらか
に割り当てる。本発明の一実施形態においては、割当て
装置435は新しく解放されたスロットの所有権に関する
優先権をデコーダ415に与える。従って、プロセッサバ
ス401とI/Oバス402上に同時に出されたトランザクショ
ンの場合(すなわち、デコーダ415とI/Oバスターゲット
制御装置445が同時に内向き要求キュー430のスロットを
要求する場合)、割当て装置435はデコーダ415にスロッ
トを与える。この実施形態においては、デコーダ415に
現在内向き要求キュー430のスロットを要求しているト
ランザクションががない場合、割当て装置435はI/Oバス
ターゲット制御装置445にスロットの所有権を持たせ
る。
本発明の一実施形態においては、プロセッサバス401
は500メガバイト/秒のバンド幅を持つのに対して、I/O
バス402のバンド幅は125メガバイト/秒であるというこ
とに留意すべきである。そのために、両方のバスに接続
された多くのエージェントがトランザクションを出して
いるとき、バスインタフェース410には、バスインタフ
ェース450に要求が達するよりもはるかに高速で要求が
到達する。このような状況においては、デコーダ415が
トランザクションに割当て装置435に対して内向き要求
キュースロットを要求させることがより起こり易い。し
かしながら、I/Oバス402上のエージェントによってプロ
セッサバス401上のエージェントよりも多くの要求が出
される状況が起こり得る。そのような状況においては、
I/Oバスターゲット制御装置445がトランザクションに割
当て装置435に対して内向き要求キュースロットを要求
させることがより起こり易い。
本発明の一実施形態においては、ブリッジ400はI/Oバ
ス402をターゲットにした読出し要求の場合にのみ遅延
応答を出す。ブリッジ400により受け取られた書込み要
求は、リトライされるか(使用可能な外向き要求キュー
スロットがない場合)、ポスティングされるか、あるい
はI/Oバス402上で試みられる。「ポスティングされる」
とは、コマンドが外向き要求キューに入り、要求送出エ
ージェントが要求がI/Oバス402上で試みられるという応
答を受け取ることを意味する。要求は、ポスティングさ
れない場合も、I/Oバス402上で試みられ得る。すなわ
ち、プロセッサバス401の応答フェーズは、要求が外向
き要求キュー420の一番上から取り出され、I/Oバス402
上で試みられ、応答が要求送出エージェントに戻される
まで、機能停止にされる。
本発明の一実施形態においては、書込みポスティング
はイネーブルにすることもできれば、ディスエーブルに
することもできる。書込みポスティングがイネーブルで
あると、ブリッジ400は書込み要求を外向き要求キュー4
20にポスティングする(外向き要求キュー420中のスロ
ットが使用可能と仮定した場合)。書込みポスティング
がイネーブルでない場合は、ブリッジ400は、プロセッ
サバス401の応答フェーズを機能停止にして、要求をI/O
バス402上で試みる(要求が外向き要求キュー420の一番
上にあるとき)。
一態様においては、書込みポスティングがイネーブル
かどうかは、ブリッジ400のコンフィギュレーションレ
ジスタ412に記憶された1ビットコンフィギュレーショ
ン値で示される。一態様においては、書込みポスティン
グは、該1ビットコンフィギュレーション値が“1"の時
イネーブルになり、“0"の時ディスエーブルになる。書
込みポスティングは、レジスタ412に記憶されたこのコ
ンフィギュレーション値を変えることによって、システ
ム動作時に変更することができる。
バスブリッジは、デッドロック状況の可能性への対処
がなされなければならない。デッドロック状況として
は、主に次の2つの状況が起こり得る:(1)ブリッジ
自体の内部で起こるデッドロック、及び(2)2つのブ
リッジ間で起こるデッドロック状況。この最初のデッド
ロック状況においては、外向き及び内向き要求キューが
共にいっぱいで、外向き要求キューの一番上にある要求
が遅延される場合に、潜在的なデッドロック状況が起こ
る。外向き要求キューがいっぱいのときは、プロセッサ
バス401上のどのトランザクションもそれらのトランザ
クションを記憶することができないブリッジをターゲッ
トにすることができないので、プロセッサバスは機能停
止にされる。プロセッサバス401は機能停止なので、内
向き要求キューは要求をプロセッサバス401に転送する
ことができない。さらに、外向き要求キューの一番上に
ある要求に対する遅延応答は、内向き要求キューがいっ
ぱいなので、内向き要求キューに入れることができな
い。その結果、内向き要求キューの一番上にある要求
も、外向き要求キューの一番上の要求も実行できず、シ
ステムはデッドロックになる。
上記の第2の状況においては、2つのブリッジが同じ
バスに接続されているシステムでデッドロック状況が乗
じる。たとえば、ブリッジAは、遅延読出し応答を遅延
応答に変換しなければならない。この遅延応答は、内向
き要求キューを必要とする。しかしながら、ブリッジA
の内向き要求キューはいっぱいであり、ブリッジBの一
番上にポスティングされた書込みがある一方、ブリッジ
Bの外向き要求キューもいっぱいで、一番上には、内向
き要求キュースロットを持つ遅延応答がある。ブリッジ
Bの内向き要求キューがいっぱいで一番上にあるポステ
ィングされた書込みがブリッジAに向けられている場合
は、どのキューも前進できず、システムはデッドロック
になる。
プロセッサバス401上における前方への進行を維持す
ることによって、どちらのデッドロック状況も回避でき
るということがわかる。このような前方への進行は、要
求が外向き要求キューに入れられたとき、内向き要求キ
ュー中に遅延応答スロットを予約することによって確保
することができる。この予約スロットは、上に述べたよ
うに、遅延要求に対する応答のために用いられる。
図5は、本発明の一実施形態におけるデータバッファ
の一例及びこれに対応する要求キューを示している。外
向きデータバッファ520には外向きデータ(すなわちプ
ロセッサバス401からI/Oバス401へ転送されるデータ)
が書き込まれ、内向きデータバッファ530には、内向き
データ(すなわちI/Oバス402からプロセッサバス401へ
転送されるデータ)が書き込まれる。図示例において
は、外向きデータバッファ520は外向き要求キュー420に
対応し、内向きデータバッファ530は内向き要求キュー4
30に対応する。しかしながら、当業者ならば、内向き要
求キュー430の特定のスロットは、外向きデータバッフ
ァ530の1つに対応させることもできる(たとえば、I/O
バス402上に出される読出し要求において、プロセッサ
バス401上のターゲットエージェントからデータを読み
出す場合)ということは理解できよう。同様に、外向き
要求キュー420の特定のスロットは、内向きデータバッ
ファ530の1つに対応させることもできる(たとえば、
プロセッサバス401上のエージェントからのI/Oバス402
上のエージェントをターゲットにした遅延読出し要求の
場合)。一態様においては、データバッファの数はキュ
ー420及び430のスロット数に等しい。
図5に示すデータバッファは、キュースロットと一対
一で対応する。すなわち、各キュースロットに対して1
つのデータバッファがある。当業者ならば、これらの数
が変更可能なことは理解できよう。スクリーン、データ
バッファ数は本発明の範囲内において増減可能である。
上に図6及び7を参照して説明したように、データバ
ッファにはキュー420及び430中のコマンドに対応するデ
ータが書き込まれる。データを伴うキュー420または430
のどちらかにおけるコマンド(たとえば書込みコマン
ド、あるいは読出しコマンドに対する応答)は、このデ
ータが書き込まれたデータを指示するデータポインタを
有する。一態様においては、データポインタはキュー中
の特定スロットに対応するデータバッファのアドレスで
ある。内向き要求キュー420中のスロットに対するする
正しいデータバッファを指示するデータポインタ部に入
るアドレスは、外向き要求デコーダ415によって決定さ
れる。一態様においては、各データバッファは、常にキ
ュー中の同じスロットに対応する。同様に、内向き要求
キュー430中のスロットに対する正しいデータバッファ
を指示する正しい標識は、要求が出された場所によっ
て、遅延応答ジェネレータ440またはI/Oバスターゲット
制御装置445により決定される。もう一つの態様におい
ては、正しいデータバッファは、要求がキュー420また
は430に入れられたとき次に使用可能なバッファに基づ
いて動的に割り当てられる(上記のようにデコーダ41
5、応答ジェネレータ440、またはターゲット制御装置44
5によって)。
本発明の一実施形態においては、各データバッファは
32バイトのデータを記憶することができる。一態様にお
いては、各データバッファのサイズはコンピュータシス
テムのキャッシュラインのサイズと同じである。しかし
ながら、データバッファのサイズは変更することができ
るということは当業者ならば理解できよう。さらに各デ
ータバッファのサイズは互いに異なってもよい。
他の実施形態においては、一組のデータバッファがあ
って、両方のキュー420及び430によって共用される。こ
の実施形態においては、内向き要求キュー430と外向き
要求キュー420十にバッファを適切に割り当てるために
もう一つの論理回路が必要である。
図8a及び8bは、本発明の一実施形態においてプロセッ
サバス上に出される要求に対する処理ステップの流れを
示すフローチャートである。要求送出エージェントは、
まずI/Oバス上のエージェントを目標とするコマンドを
出す(ステップ805)。バスブリッジのプロセッサバス
インタフェースはそのコマンドを受け取って、直ちに外
向き要求デコーダ転送し、外向き要求デコーダは、内向
き要求キューで遅延スロットが使用可能かどうかを直ち
に確認する(ステップ810)。遅延スロットが使用可能
でない場合は、デコーダは要求が遅延されていないこと
を知らせる信号をバスインタフェースへ送る(ステップ
815)。この信号に応答して、バスインタフェースは、
プロセッサバスの応答フェーズを機能停止させるための
信号をプロセッサバス上に出す(ステップ820)。
ステップ810に戻って、遅延スロットが使用可能であ
ることをデコーダが確認した場合は、内向きキュー割当
て装置がそのスロットをデコーダに割り当てる(ステッ
プ825)。これに応答して、デコーダは要求が遅延され
たということを示す信号をバスインタフェースに出す
(ステップ830)。
ステップ810で遅延スロットが使用可能であるか否か
に関わらず、デコーダは要求を外向き要求キューに入れ
る(ステップ835)。要求が外向き要求キューの一番上
に来ると、I/Oバス主制御装置がその要求をキューから
取り出し、I/Oバスインタフェースに転送する(ステッ
プ840)。バスインタフェースはI/Oバス上でコマンドを
実行し、ターゲットエージェントからの応答を待つ(ス
テップ845)。その後、この応答はI/Oバス主制御装置へ
戻される。
I/Oバス主制御装置は、次に、最初の要求が遅延され
たかどうかを確認する(ステップ850)。その最初の要
求が遅延されていなければ、I/Oバス主制御装置は応答
を直接プロセッサバスインタフェースに戻す(ステップ
855)。
しかしながら、最初の要求が遅延された場合は、I/O
バス主制御装置は、遅延応答ジェネレータを介して内向
き要求キューに応答を転送する(ステップ860)。内向
き要求キューがそれまで空いていた場合は、内向き要求
キューは、待ち状態のトランザクションが入っているこ
とを示す信号をプロセッサバスインタフェースへ出す
(ステップ865)。
要求が遅延されたか否かに関わらず、プロセッサバス
インタフェースは応答を受け取る(ステップ870)。こ
の応答は、内向き要求キューからの場合もあれば(遅延
応答要求の場合)、直接I/Oバス主制御装置から供給さ
れる場合もある(最初の要求の応答フェーズにおい
て)。応答を受け取ると同時、あるいは待ち状態のトラ
ンザクションが入っているということを示す内向き要求
キューからの信号を受け取ると同時に、プロセッサバス
インタフェースはプロセッサバスへのアクセス権を求め
てアービトレーションを行う。プロセッサバスインタフ
ェースは、プロセッサバスの所有権を得ると同時に、プ
ロセッサバス上の要求送出エージェントに応答を転送す
る。
本発明のもう一つの実施形態においては、遅延応答は
イネーブルでもディスエーブルでも任意に選択すること
ができる。該もう一つの実施形態においては、外向き要
求キューに入れられる読出し要求は遅延されない。プロ
セッサバスの応答フェーズは、上に述べたように、読出
し要求に対する応答が受け取られるまで機能停止にされ
る。一態様においては、遅延応答がイネーブルかどうか
は、ブリッジ400のコンフィギュレーションレジスタ412
に記憶される1ビットコンフィギュレーション値によっ
て指示される。従って、遅延応答は、この1ビットコン
フィギュレーション値をセットまたはクリアすることに
よって、システム動作時にイネーブルすることも、ディ
スエーブルにすることもできる。
以上、本発明について詳細に説明したが、本発明の態
様を列記すれば次の通りである。
1.第1のバスに接続された第1のエージェント及び第2
のバスに接続された第2のエージェントを有するコンピ
ュータシステム用のバスブリッジにおいて: (a)該第1のバスに接続された、該第1のバスからデ
ータを受け取り、該第1のバス上にデータを乗せるため
の第1のバスインタフェースと; (b)該第2のバスに接続された、該第2のバスからデ
ータを受け取り、該第2のバス上にデータを乗せるため
の第2のバスインタフェースと; (c)該第1のバスインタフェース及び該第2のバスイ
ンタフェースに接続された内向き要求キュー及び外向き
要求キューと; (d)該内向き要求キュー及び該外向き要求キューに接
続された、該外向き要求キューに要求を入れるため、及
び該内向き要求キューに基づいて遅延応答コマンドを該
第1のバスインタフェースに出すためのデコード回路
と; を具備したバスブリッジ。
2.上記内向き要求キュー及び上記外向き要求キューに接
続されたすくなくとも1つのデータバッファをさらに具
備した上記1記載のバスブリッジ。
3.外向き要求に遅延応答が与えられるかどうかを確認す
るための内向きキュー割当て装置をさらに具備した上記
1記載のバスブリッジ。
4.上記内向き要求キューが複数の内向きスロットを有
し、上記内向きキュー割当て装置が、該複数の内向きス
ロットの数、現在情報を保持する上記内向き要求キュー
中の内向きスロット数、及び現在遅延応答スロットとラ
ベルされている該内向き要求キュー中の内向きスロット
数に基づいて、外向き要求が遅延応答スロットを与えら
れるかどうかを確認する上記3記載のバスブリッジ。
5.上記第1のバスインタフェース及び上記第2のバスイ
ンタフェースに接続された、外向き要求が遅延されたか
どうかを確認し、その要求情報を該第2のバスインタフ
ェースに転送し、該要求情報に応答して生成された応答
情報を該第2のバスインタフェースから受け取るバス制
御回路をさらに具備し、該バス制御回路が、 該外向きスロットが遅延されていない場合に該応答情報
を該第1のバスインタフェースに戻し、 該外向きスロットが遅延された場合に該応答情報を内向
き要求キューへ転送する、上記1記載のバスブリッジ。
6.上記バス制御回路から応答情報を受け取り、該応答情
報を内向き要求キューに転送するための遅延応答ジェネ
レータをさらに具備した上記5記載のバスブリッジ。
7.上記第2のバスインタフェースから内向き要求を受け
取り、該要求を内向き要求キューに転送するためのバス
ターゲット回路をさらに具備した上記1記載のバスブリ
ッジ。
8.上記外向き要求キューが、上記第1のバスに接続され
たエージェントによって出された要求に対応する情報を
各々保持する複数の外向きスロットを有する上記1記載
のバスブリッジ。
9.上記内向き要求キューが、上記第1のバスまたは上記
第2のバスに接続されたエージェントによって出された
要求に対応する情報を各々保持する複数の内向きスロッ
トを有する上記1記載のバスブリッジ。
10.上記複数の内向きスロットのすくなくとも1つが遅
延応答スロットである上記9記載のバスブリッジ。
11.(a)上記第1のバスが第1のコマンドプロトコル
を有し; (b)上記第2のバスが第2のコマンドプロトコルを有
し; (c)上記第2のバスインタフェースが、該第1のコマ
ンドプロトコルと該第2のコマンドプロトコルとの間で
コマンドを変換する; 上記1記載のバスブリッジ。
12.上記複数の外向きスロットの各スロットが、タグ
部、コマンド部、アドレス部、及びデータバッファを指
示するデータポインタ部よりなる上記8記載のバスブリ
ッジ。
13.上記複数の内向きスロットの各スロットが、コマン
ド部、アドレス部、及びデータバッファを指示するデー
タポインタ部よりなる上記9記載のバスブリッジ。
14.上記デコード回路が、上記複数の内向きスロットの
内向き各スロットに情報が入っているかどうかに基づい
て、遅延応答コマンドをCPUバスインタフェースに出す
べきかどうかを決定し、該デコード回路が、内向きスロ
ットに情報が入っていない場合に遅延応答コマンドをCP
Uバスインタフェースに出す上記9記載のバスブリッ
ジ。
15.上記バス制御回路が、上記タグ部の書込み内容に基
づいて、要求が遅延されたかどうかを確認する上記12記
載のバスブリッジ。
16.第1のバスと第2のバスとの間でコマンドを転送す
る方法において: (a)該第1のバス上のソースエージェントからの第1
の外向き要求を外向き要求キューに転送するステップ
と; (b)該第1の外向き要求が遅延されるかどうかを確認
するステップと; (c)該ソースエージェントに対して遅延応答を出し、
該第1の外向き要求が遅延されるとき内向き要求キュー
のスロットを予約するステップと; (d)該外向き要求キューからの該第1の外向き要求を
該第2のバス上のターゲットエージェントに転送するス
テップと; (e)該第1の外向き要求が遅延されない場合、該ター
ゲットエージェントからの応答情報を該ソースエージェ
ントに戻し、該第1のがキューKが遅延される場合に該
ターゲットエージェントからの該応答情報を該内向き要
求キューに入れるステップと; を具備した方法。
17.上記ステップ(d)が、上記外向き要求キューから
上記第1の外向き要求を取り出し、該第1の外向き要求
を第2のバスインタフェースへ転送するステップよりな
る上記16記載の方法。
18.上記ステップ(c)が: 該内向き要求キュー中のスロット数を確認するステップ
と; 現在使用中でない該内向き要求キュー中のスロット数を
確認するステップと; 現在遅延応答スロットとラベルされている該内向き要求
キュー中のスロット数を確認するステップと; 使用されていない内向きスロットがあり、かつ遅延応答
スロットとラベルされた内向きスロットが所定数より少
ない場合に、遅延応答を出すステップと; を具備した上記16記載の方法。
19.上記ステップ(d)が、第1のコマンドプロトコル
を第2のコマンドプロトコルに変換するステップよりな
る上記16記載の方法。
20.上記外向き要求キューからの第2の外向き要求を上
記第2のバス上の第2のターゲットエージェントに転送
し、該第2の外向き要求に対する応答情報を、上記第1
の外向き要求に対する応答情報が上記内向き要求キュー
に転送される前に、上記ソースエージェントに転送する
ステップをさらに具備した上記16記載の方法。
21.上記ステップ(e)が、上記ターゲットエージェン
トが応答データを戻す場合に該応答データをデータバッ
ファに入れるステップで、上記内向き要求キューに該デ
ータバッファの記憶場所を指示する標識が入っているス
テップよりなる上記16記載の方法。
22.上記ステップ(c)が、上記内向き要求キュー中の
遅延応答スロットが使用可能かどうかを確認し、該内向
き要求キュー中の遅延応答スロットが使用可能な場合に
遅延応答を出すステップよりなる上記16記載の方法。
23.(a)第1のバス及び第2のバスに接続されたバス
ブリッジを具備し; (b)該第1のバスが、これに接続された第1のエージ
ェントと該バスブリッジとの間でデータを転送するため
のものであり; (c)該第2のバスが、これに接続された第2のエージ
ェントと該バスブリッジとの間でデータを転送するため
のものであり; (d)該バスブリッジが、 該第1のバスに接続されていて、該第1のバスからデー
タを受け取り、該第1のバスにデータを乗せる第1のバ
スインタフェースと、 該第2のバスに接続されていて、該第2のバスからデー
タを受け取り、該第2のバスにデータを乗せる第2のバ
スインタフェースと、 該第1のバスインタフェース及び該打2バスインタフェ
ースに接続された内向き要求キュー及び外向き要求キュ
ーと、 該内向き要求キュー及び該外向き要求キューに接続され
ていて、要求を該外向き要求キューに入れるため、及び
該内向き要求キューからの入力に応答して遅延応答コマ
ンドを該第1のバスインタフェースに出すためのデコー
ド回路と、 を具備したコンピュータシステム。
24.上記バスブリッジが、外向き要求キューが遅延応答
を与えられるかどうかを確認するための内向きキュー割
当て装置をさらに具備した上記23記載のコンピュータシ
ステム。
25.上記内向き要求キューが複数の内向きスロットを有
し、上記内向きキュー割当て装置が、該複数の内向きス
ロットの数、現在情報を保持する上記内向き要求キュー
中の内向きスロット数、及び現在遅延応答スロットとラ
ベルされている該内向き要求キュー中の内向きスロット
数に基づいて、外向き要求が遅延応答スロットを与えら
れるかどうかを確認する上記24記載のコンピュータシス
テム。
26.上記バスブリッジが、上記第1のバスインタフェー
ス及び上記第2のバスインタフェースに接続された、外
向き要求が遅延されたかどうかを確認し、その要求情報
を該第2のバスインタフェースに転送し、該要求情報に
応答して生成された応答情報を該第2のバスインタフェ
ースから受け取るバス制御回路をさらに具備し、該バス
制御回路が、 該外向きスロットが遅延されていない場合に該応答情報
を該第1のバスインタフェースに戻し、 該外向きスロットが遅延された場合に該応答情報を内向
き要求キューへ転送する、上記23記載のコンピュータシ
ステム。
27.上記バスブリッジが、上記第2のバスインタフェー
スから内向き要求を受け取り、該要求を内向き要求キュ
ーに転送するためのバスターゲット回路をさらに具備し
た上記23記載のコンピュータシステム。
28.上記外向き要求キューが、上記第1のバスに接続さ
れたエージェントによって出された要求に対応する情報
を各々保持する複数の外向きスロットを有する上記23記
載のコンピュータシステム。
29.上記複数の外向きスロットの各スロットが、タグ
部、コマンド部、アドレス部、及びすくなくとも1つの
データバッファを指示するデータポインタ部よりなる上
記28記載のコンピュータシステム。
30.上記内向き要求キューが、上記第1のバスまたは上
記第2のバスに接続されたエージェントによって出され
た要求に対応する情報を各々保持する複数の内向きスロ
ットを有する上記23記載のコンピュータシステム。
31.上記複数の内向きスロットの各スロットが、コマン
ド部、アドレス部、及びデータバッファを指示するすく
なくとも1つのデータポインタ部よりなる上記30記載の
コンピュータシステム。
32.上記デコード回路が、上記複数の内向きスロットの
内向き各スロットに情報が入っているかどうかに基づい
て、遅延応答コマンドをCPUバスインタフェースに出す
べきかどうかを決定し、該デコード回路が、内向きスロ
ットに情報が入っていない場合に遅延応答コマンドをCP
Uバスインタフェースに出す上記30記載のコンピュータ
システム。
33.第1のバスと第2のバスとの間でデータを転送する
ための装置において: (a)該第1のバス上のソースエージェントからの第1
の外向き要求を外向き要求キューに転送するための手段
と; (b)該第1の外向き要求が遅延されるかどうかを確認
するための手段と; (c)該ソースエージェントに対して遅延応答を出し、
該第1の外向き要求が遅延されるとき内向き要求キュー
のスロットを予約するための手段と; (d)該外向き要求キューからの該第1の外向き要求を
該第2のバス上のターゲットエージェントに転送するた
めの手段と; (e)該第1の外向き要求が遅延されない場合、該ター
ゲットエージェントからの応答情報を該ソースエージェ
ントに戻し、該第1のがキューKが遅延される場合に該
ターゲットエージェントからの該応答情報を該内向き要
求キューに入れるための手段と; を具備した装置。
34.上記転送のための手段が、上記外向き要求キューか
ら上記第1の外向き要求を取り出し、該第1の外向き要
求を第2のバスインタフェースへ転送する手段よりなる
上記33記載の装置。
35.上記遅延応答を出すための手段が: 該内向き要求キュー中のスロット数を確認するための手
段と; 現在使用中でない該内向き要求キュー中のスロット数を
確認するための手段と; 現在遅延応答スロットとラベルされている該内向き要求
キュー中のスロット数を確認するための手段と; 使用されていない内向きスロットがあり、かつ遅延応答
スロットとラベルされた内向きSLTが所定数より少ない
場合に、遅延応答を出すための手段と; よりなる上記33記載の装置。
36.該外向き要求キューからの該第1の外向き要求を該
第2のバス上のターゲットエージェントに転送する手段
が、該第1の外向き要求を第1のコマンドプロトコルか
ら第2のコマンドプロトコルに変換するための手段より
なる上記33記載の装置。
37.上記外向き要求キューからの第2の外向き要求を上
記第2のバス上の第2のターゲットエージェントに転送
し、該第2の外向き要求に対する応答情報を、上記第1
の外向き要求に対する応答情報が上記内向き要求キュー
に転送される前に、上記ソースエージェントに転送する
ための手段をさらに具備した上記33記載の装置。
38.上記ターゲットエージェントからの応答情報を上記
ソースエージェントに戻すための上記手段が、上記ター
ゲットエージェントが応答データを戻す場合に該応答デ
ータをデータバッファに入れるための手段で、上記内向
き要求キューに該データバッファの記憶場所を指示する
標識が入っている手段よりなる上記33記載の装置。
39.遅延応答を出すための上記手段が、上記内向き要求
キュー中の遅延応答スロットが使用可能かどうか確認
し、該内向き要求キュー中の遅延応答スロットが使用可
能な場合に遅延応答を出すための手段よりなる上記33記
載の装置。
当業者ならば、以上の説明に基づいて、本発明の変更
態様並びに修正態様を多数想到することができるので、
上記に記載した特定の実施形態は、例示説明を目的とす
るものであって、本発明を限定するためのものではな
い。従って、特定実施形態の詳細について言及する場
合、それは本発明にとっても不可欠であると考えられる
特徴のみを記載した特許請求の範囲を限定することを意
図したものではない。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 メレディス,スーザン・エス アメリカ合衆国 97123 オレゴン州・ ヒルズボロー・サウスイースト 21エス ティ コート・748 (56)参考文献 特開 平5−158890(JP,A) 特開 昭63−94362(JP,A) 特開 平5−314061(JP,A) 特開 平2−166548(JP,A) 特開 平4−81963(JP,A) 特開 平8−190525(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/36

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】内向き要求キューと外向き要求キューを有
    するバスブリッジを用いて、第1と第2のバス間でコマ
    ンドを転送する方法において、 (a)第1のバスに接続された要求送出エージェントか
    ら外向き要求キューに対して第1の「外向き要求」を転
    送するステップ、 (b)該第1の「外向き要求」が遅延されるべきもので
    あるか否か判断するステップと、 (c)前記第1の「外向き要求」が遅延される時内向き
    要求キューのスロットを予約し要求送出エージェントに
    遅延応答を発行するステップ、 (d)外向き要求キューから第2バスに接続されたター
    ゲットエージェントに前記第1の「外向き要求」を転送
    するステップ、 (e)前記第1の「外向き要求」が遅延されない場合に
    は前記ターゲットエージェントから要求送出エージェン
    トに応答情報を返し、遅延される場合には前記内向き要
    求キュー内にターゲットエージェントからの応答情報を
    入れるステップ を有した方法。
  2. 【請求項2】ステップ(d)が、 前記第1の「外向き要求」を外向き要求キューから出し
    て第2のバスインターフェースに転送するステップ を有する請求項1記載の方法。
  3. 【請求項3】ステップ(c)が、 該内向き要求キュー中のスロット数を確認するステップ
    と、 現在使用中でない該内向き要求キュー中のスロット数を
    確認するステップと、 現在遅延応答スロットとラベルされている該内向き要求
    キュー中のスロット数を確認するステップと、 使用されていない内向きスロットがあり、かつ遅延応答
    スロットとラベルされた内向きスロットが所定数より少
    ない場合に、遅延応答を出すステップと、 を有する請求項1記載の方法。
  4. 【請求項4】上記外向き要求キューからの第2の外向き
    要求を上記第2のバス上の第2のターゲットエージェン
    トに転送し、該第2の外向き要求に対する応答情報を、
    上記第1の外向き要求に対する応答情報が上記内向き要
    求キューに転送される前に、上記要求送出エージェント
    に転送するステップをさらに具備した請求項1記載の方
    法。
  5. 【請求項5】ステップ(e)が、上記ターゲットエージ
    ェントが応答データを戻す場合に該応答データをデータ
    バッファに入れるステップで、上記内向き要求キューに
    該データバッファの記憶場所を指示する標識が入ってい
    るステップよりなる請求項1記載の方法。
  6. 【請求項6】(a)第1のバス及び第2のバスに接続さ
    れたバスブリッジを具備し、 (b)該第1のバスが、これに接続された第1のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (c)該第2のバスが、これに接続された第2のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (d)該バスブリッジが、 該第1のバスに接続されていて、該第1のバスからデー
    タを受け取り、該第1のバスにデータを乗せる第1のバ
    スインタフェースと、 該第2のバスに接続されていて、該第2のバスからデー
    タを受け取り、該第2のバスにデータを乗せる第2のバ
    スインタフェースと、 該第1のバスインタフェース及び該第2のバスインタフ
    ェースに接続された内向き要求キュー及び外向き要求キ
    ューと、 該内向き要求キュー及び該外向き要求キューに接続され
    ていて、要求を該外向き要求キューに入れるため、及び
    該内向き要求キューからの入力に応答して遅延応答コマ
    ンドを該第1のバスインタフェースに出すためのデコー
    ド回路と、 を具備し、 上記外向き要求キューが、上記第1のバスに接続された
    エージェントによって出された要求に対応する情報を各
    々保持する複数の外向きスロットを有することを特徴と
    するコンピュータシステム。
  7. 【請求項7】(a)第1のバス及び第2のバスに接続さ
    れたバスブリッジを具備し、 (b)該第1のバスが、これに接続された第1のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (c)該第2のバスが、これに接続された第2のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (d)該バスブリッジが、 該第1のバスに接続されていて、該第1のバスからデー
    タを受け取り、該第1のバスにデータを乗せる第1のバ
    スインタフェースと、 該第2のバスに接続されていて、該第2のバスからデー
    タを受け取り、該第2のバスにデータを乗せる第2のバ
    スインタフェースと、 該第1のバスインタフェース及び該第2のバスインタフ
    ェースに接続された内向き要求キュー及び外向き要求キ
    ューと、 該内向き要求キュー及び該外向き要求キューに接続され
    ていて、要求を該外向き要求キューに入れるため、及び
    該内向き要求キューからの入力に応答して遅延応答コマ
    ンドを該第1のバスインタフェースに出すためのデコー
    ド回路と、 を具備し、 上記外向き要求キューが、上記第1のバスに接続された
    エージェントによって出された要求に対応する情報を各
    々保持する複数の外向きスロットを有し、かつ上記複数
    の外向きスロットの各スロットが、タグ部、コマンド
    部、アドレス部、及びすくなくとも1つのデータバッフ
    ァを指示するデータポインタ部よりなることを特徴とす
    るコンピュータシステム。
  8. 【請求項8】(a)第1のバス及び第2のバスに接続さ
    れたバスブリッジを具備し、 (b)該第1のバスが、これに接続された第1のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (c)該第2のバスが、これに接続された第2のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (d)該バスブリッジが、 該第1のバスに接続されていて、該第1のバスからデー
    タを受け取り、該第1のバスにデータを乗せる第1のバ
    スインタフェースと、 該第2のバスに接続されていて、該第2のバスからデー
    タを受け取り、該第2のバスにデータを乗せる第2のバ
    スインタフェースと、 該第1のバスインタフェース及び該第2のバスインタフ
    ェースに接続された内向き要求キュー及び外向き要求キ
    ューと、 該内向き要求キュー及び該外向き要求キューに接続され
    ていて、要求を該外向き要求キューに入れるため、及び
    該内向き要求キューからの入力に応答して遅延応答コマ
    ンドを該第1のバスインタフェースに出すためのデコー
    ド回路と、 を具備し、 上記内向き要求キューが、上記第1のバスまたは上記第
    2のバスに接続されたエージェントによって出された要
    求に対応する情報を各々保持する複数の内向きスロット
    を有することを特徴とするコンピュータシステム。
  9. 【請求項9】(a)第1のバス及び第2のバスに接続さ
    れたバスブリッジを具備し、 (b)該第1のバスが、これに接続された第1のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (c)該第2のバスが、これに接続された第2のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (d)該バスブリッジが、 該第1のバスに接続されていて、該第1のバスからデー
    タを受け取り、該第1のバスにデータを乗せる第1のバ
    スインタフェースと、 該第2のバスに接続されていて、該第2のバスからデー
    タを受け取り、該第2のバスにデータを乗せる第2のバ
    スインタフェースと、 該第1のバスインタフェース及び該第2のバスインタフ
    ェースに接続された内向き要求キュー及び外向き要求キ
    ューと、 該内向き要求キュー及び該外向き要求キューに接続され
    ていて、要求を該外向き要求キューに入れるため、及び
    該内向き要求キューからの入力に応答して遅延応答コマ
    ンドを該第1のバスインタフェースに出すためのデコー
    ド回路と、 を具備し、 上記内向き要求キューが、上記第1のバスまたは上記第
    2のバスに接続されたエージェントによって出された要
    求に対応する情報を各々保持する複数の内向きスロット
    を有し、かつ上記複数の内向きスロットの各スロット
    が、コマンド部、アドレス部、及びデータバッファを指
    示するすくなくとも1つのデータポインタ部よりなるこ
    とを特徴とするコンピュータシステム。
  10. 【請求項10】(a)第1のバス及び第2のバスに接続
    されたバスブリッジを具備し、 (b)該第1のバスが、これに接続された第1のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (c)該第2のバスが、これに接続された第2のエージ
    ェントと該バスブリッジとの間でデータを転送するため
    のものであり、 (d)該バスブリッジが、 該第1のバスに接続されていて、該第1のバスからデー
    タを受け取り、該第1のバスにデータを乗せる第1のバ
    スインタフェースと、 該第2のバスに接続されていて、該第2のバスからデー
    タを受け取り、該第2のバスにデータを乗せる第2のバ
    スインタフェースと、 該第1のバスインタフェース及び該第2のバスインタフ
    ェースに接続された内向き要求キュー及び外向き要求キ
    ューと、 該内向き要求キュー及び該外向き要求キューに接続され
    ていて、要求を該外向き要求キューに入れるため、及び
    該内向き要求キューからの入力に応答して遅延応答コマ
    ンドを該第1のバスインタフェースに出すためのデコー
    ド回路と、 を具備し、 上記内向き要求キューが、上記第1のバスまたは上記第
    2のバスに接続されたエージェントによって出された要
    求に対応する情報を各々保持する複数の内向きスロット
    を有するとともに、 上記第1のバスがCPUバスであり、上記デコード回路
    が、上記複数の内向きスロットの内向き各スロットに情
    報が入っているかどうかに基づいて、遅延応答を該CPU
    バスに接続されたCPUバスインタフェースに出すべきか
    どうかを決定し、該デコード回路が、内向きスロットに
    情報が入っていない場合に該遅延応答を該CPUバスイン
    タフェースに出すことを特徴とするコンピュータシステ
    ム。
JP53036495A 1994-05-20 1995-05-16 バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置 Expired - Lifetime JP3275051B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US247,026 1988-09-20
US08/247,026 1994-05-20
US08/247,026 US5535340A (en) 1994-05-20 1994-05-20 Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
PCT/US1995/006089 WO1995032474A1 (en) 1994-05-20 1995-05-16 Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge

Publications (2)

Publication Number Publication Date
JPH10504665A JPH10504665A (ja) 1998-05-06
JP3275051B2 true JP3275051B2 (ja) 2002-04-15

Family

ID=22933236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53036495A Expired - Lifetime JP3275051B2 (ja) 1994-05-20 1995-05-16 バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置

Country Status (8)

Country Link
US (1) US5535340A (ja)
EP (1) EP0760135B1 (ja)
JP (1) JP3275051B2 (ja)
AU (1) AU2589895A (ja)
CA (1) CA2186598C (ja)
DE (1) DE69519926T2 (ja)
TW (1) TW279943B (ja)
WO (1) WO1995032474A1 (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US6212589B1 (en) * 1995-01-27 2001-04-03 Intel Corporation System resource arbitration mechanism for a host bridge
US5832241A (en) * 1995-02-23 1998-11-03 Intel Corporation Data consistency across a bus transactions that impose ordering constraints
US5640520A (en) * 1995-05-01 1997-06-17 Intel Corporation Mechanism for supporting out-of-order service of bus requests with in-order only requesters devices
JPH08314854A (ja) * 1995-05-17 1996-11-29 Hitachi Ltd データ転送システムおよびこれに関連する装置
US6104876A (en) * 1995-06-07 2000-08-15 Cirrus Logic, Inc. PCI bus master retry fixup
US5778434A (en) * 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US5682512A (en) * 1995-06-30 1997-10-28 Intel Corporation Use of deferred bus access for address translation in a shared memory clustered computer system
US5761444A (en) * 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions
US5696910A (en) * 1995-09-26 1997-12-09 Intel Corporation Method and apparatus for tracking transactions in a pipelined bus
US5859988A (en) * 1995-09-29 1999-01-12 Intel Corporation Triple-port bus bridge
US6108735A (en) * 1995-09-29 2000-08-22 Intel Corporation Method and apparatus for responding to unclaimed bus transactions
US5771359A (en) * 1995-10-13 1998-06-23 Compaq Computer Corporation Bridge having a data buffer for each bus master
US5632021A (en) * 1995-10-25 1997-05-20 Cisco Systems Inc. Computer system with cascaded peripheral component interconnect (PCI) buses
US5682509A (en) * 1995-12-13 1997-10-28 Ast Research, Inc. Bus interface to a RAID architecture
US5850530A (en) * 1995-12-18 1998-12-15 International Business Machines Corporation Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data
US5764929A (en) * 1995-12-18 1998-06-09 International Business Machines Corporation Method and apparatus for improving bus bandwidth by reducing redundant access attempts
US5712986A (en) * 1995-12-19 1998-01-27 Ncr Corporation Asynchronous PCI-to-PCI Bridge
US5911052A (en) * 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US5987590A (en) * 1996-04-02 1999-11-16 Texas Instruments Incorporated PC circuits, systems and methods
US6179489B1 (en) 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
US5802055A (en) * 1996-04-22 1998-09-01 Apple Computer, Inc. Method and apparatus for dynamic buffer allocation in a bus bridge for pipelined reads
US6026460A (en) * 1996-05-10 2000-02-15 Intel Corporation Method and apparatus for sequencing system bus grants and disabling a posting buffer in a bus bridge to improve bus efficiency
US5850557A (en) * 1996-05-10 1998-12-15 Intel Corporation Method and apparatus for reducing bus bridge thrashing by temporarily masking agent requests to allow conflicting requests to be completed
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US6052513A (en) * 1996-06-05 2000-04-18 Compaq Computer Corporation Multi-threaded bus master
US6108741A (en) * 1996-06-05 2000-08-22 Maclaren; John M. Ordering transactions
US5872941A (en) * 1996-06-05 1999-02-16 Compaq Computer Corp. Providing data from a bridge to a requesting device while the bridge is receiving the data
US5987539A (en) * 1996-06-05 1999-11-16 Compaq Computer Corporation Method and apparatus for flushing a bridge device read buffer
US6055590A (en) * 1996-06-05 2000-04-25 Compaq Computer Corporation Bridge circuit comprising independent transaction buffers with control logic adapted to store overflow data in second buffer when transaction size exceeds the first buffer size
US6075929A (en) * 1996-06-05 2000-06-13 Compaq Computer Corporation Prefetching data in response to a read transaction for which the requesting device relinquishes control of the data bus while awaiting data requested in the transaction
US5903906A (en) * 1996-06-05 1999-05-11 Compaq Computer Corporation Receiving a write request that allows less than one cache line of data to be written and issuing a subsequent write request that requires at least one cache line of data to be written
US5872939A (en) * 1996-06-05 1999-02-16 Compaq Computer Corporation Bus arbitration
US6035362A (en) * 1996-06-05 2000-03-07 Goodrum; Alan L. Storing data associated with one request while continuing to store data associated with a previous request from the same device
US6055598A (en) * 1996-09-26 2000-04-25 Vlsi Technology, Inc. Arrangement and method for allowing sequence-independent command responses across a computer bus bridge
US6092141A (en) * 1996-09-26 2000-07-18 Vlsi Technology, Inc. Selective data read-ahead in bus-to-bus bridge architecture
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
KR100243271B1 (ko) * 1996-12-20 2000-02-01 윤종용 광 디스크 데이타 재생 시스템의 명령 대기 장치 및 방법
US6138192A (en) * 1996-12-31 2000-10-24 Compaq Computer Corporation Delivering a request to write or read data before delivering an earlier write request
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US5909559A (en) * 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6105119A (en) * 1997-04-04 2000-08-15 Texas Instruments Incorporated Data transfer circuitry, DSP wrapper circuitry and improved processor devices, methods and systems
US6249363B1 (en) * 1997-07-23 2001-06-19 Hitachi, Ltd. Optical communication method, optical linking device and optical communication system
US6442632B1 (en) 1997-09-05 2002-08-27 Intel Corporation System resource arbitration mechanism for a host bridge
US6128677A (en) * 1997-10-15 2000-10-03 Intel Corporation System and method for improved transfer of data between multiple processors and I/O bridges
US5987555A (en) * 1997-12-22 1999-11-16 Compaq Computer Corporation Dynamic delayed transaction discard counter in a bus bridge of a computer system
US6195722B1 (en) * 1998-01-26 2001-02-27 Intel Corporation Method and apparatus for deferring transactions on a host bus having a third party agent
US6073198A (en) * 1998-03-31 2000-06-06 Micron Electronics, Inc. System for peer-to-peer mastering over a computer bus
US6163815A (en) * 1998-05-27 2000-12-19 International Business Machines Corporation Dynamic disablement of a transaction ordering in response to an error
US6434639B1 (en) 1998-11-13 2002-08-13 Intel Corporation System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation
US6202112B1 (en) * 1998-12-03 2001-03-13 Intel Corporation Arbitration methods to avoid deadlock and livelock when performing transactions across a bridge
US6385686B1 (en) * 1999-07-13 2002-05-07 Micron Technology, Inc. Apparatus for supporting multiple delayed read transactions between computer buses
US6381667B1 (en) * 1999-07-13 2002-04-30 Micron Technology, Inc. Method for supporting multiple delayed read transactions between computer buses
US6801971B1 (en) * 1999-09-10 2004-10-05 Agere Systems Inc. Method and system for shared bus access
US6473834B1 (en) * 1999-12-22 2002-10-29 Unisys Method and apparatus for prevent stalling of cache reads during return of multiple data words
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6691200B1 (en) 2001-05-01 2004-02-10 Pericom Semiconductor Corp. Multi-port PCI-to-PCI bridge with combined address FIFOs but separate data FIFOs for concurrent transactions
US6832279B1 (en) * 2001-05-17 2004-12-14 Cisco Systems, Inc. Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node
US20020199032A1 (en) * 2001-06-12 2002-12-26 Verano Deferred response component manager
US6877060B2 (en) * 2001-08-20 2005-04-05 Intel Corporation Dynamic delayed transaction buffer configuration based on bus frequency
US6766386B2 (en) * 2001-08-28 2004-07-20 Broadcom Corporation Method and interface for improved efficiency in performing bus-to-bus read data transfers
US7080187B2 (en) * 2001-12-20 2006-07-18 Intel Corporation Bug segment decoder
US6801972B2 (en) * 2002-02-15 2004-10-05 Lsi Logic Corporation Interface shutdown mode for a data bus slave
US6725306B2 (en) * 2002-02-27 2004-04-20 Lsi Logic Corporation DEBUG mode for a data bus
US7174401B2 (en) * 2002-02-28 2007-02-06 Lsi Logic Corporation Look ahead split release for a data bus
US6877048B2 (en) * 2002-03-12 2005-04-05 International Business Machines Corporation Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US6948019B2 (en) * 2002-04-30 2005-09-20 Lsi Logic Corporation Apparatus for arbitrating non-queued split master devices on a data bus
ATE542181T1 (de) * 2004-10-28 2012-02-15 Magima Digital Information Co Ltd Arbitrierer und arbitrierungsverfahren dafür
US7693145B2 (en) * 2005-02-28 2010-04-06 Hewlett-Packard Development Company, L.P. Method and apparatus for direct reception of inbound data
US20060193318A1 (en) * 2005-02-28 2006-08-31 Sriram Narasimhan Method and apparatus for processing inbound and outbound quanta of data
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8949500B2 (en) 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US8489794B2 (en) * 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge for network processors or the like
JP5332905B2 (ja) * 2009-05-26 2013-11-06 富士通セミコンダクター株式会社 バス制御システムおよび半導体集積回路
TWI434182B (zh) * 2009-06-21 2014-04-11 Ablaze Wireless Inc 外部記憶體快進快出裝置
US10877669B1 (en) * 2011-06-30 2020-12-29 Amazon Technologies, Inc. System and method for providing a committed throughput level in a data store
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US9229896B2 (en) * 2012-12-21 2016-01-05 Apple Inc. Systems and methods for maintaining an order of read and write transactions in a computing system
US10969994B2 (en) * 2018-08-08 2021-04-06 Micron Technology, Inc. Throttle response signals from a memory system
US11074007B2 (en) 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5124981A (en) * 1990-03-09 1992-06-23 International Business Machines Corporation Access control method for dqdb network
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
US5369748A (en) * 1991-08-23 1994-11-29 Nexgen Microsystems Bus arbitration in a dual-bus architecture where one bus has relatively high latency
US5333276A (en) * 1991-12-27 1994-07-26 Intel Corporation Method and apparatus for priority selection of commands

Also Published As

Publication number Publication date
CA2186598C (en) 2002-07-30
WO1995032474A1 (en) 1995-11-30
JPH10504665A (ja) 1998-05-06
AU2589895A (en) 1995-12-18
CA2186598A1 (en) 1995-11-30
EP0760135A1 (en) 1997-03-05
DE69519926D1 (de) 2001-02-22
EP0760135B1 (en) 2001-01-17
TW279943B (ja) 1996-07-01
DE69519926T2 (de) 2001-08-02
US5535340A (en) 1996-07-09
EP0760135A4 (en) 1997-09-24

Similar Documents

Publication Publication Date Title
JP3275051B2 (ja) バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置
US6330630B1 (en) Computer system having improved data transfer across a bus bridge
US5815677A (en) Buffer reservation method for a bus bridge system
US5594882A (en) PCI split transactions utilizing dual address cycle
KR100253753B1 (ko) 지연 트랜잭션을 실행하기 위한 장치 및 방법
EP0760136B1 (en) Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US6425021B1 (en) System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
US5003465A (en) Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device
US5870567A (en) Delayed transaction protocol for computer system bus
US5764929A (en) Method and apparatus for improving bus bandwidth by reducing redundant access attempts
US7213094B2 (en) Method and apparatus for managing buffers in PCI bridges
JP2001117859A (ja) バス制御装置
US9213545B2 (en) Storing data in any of a plurality of buffers in a memory controller
US6766386B2 (en) Method and interface for improved efficiency in performing bus-to-bus read data transfers
JPH10320282A (ja) 仮想キャッシュ・コントロール方法及び装置
US7054987B1 (en) Apparatus, system, and method for avoiding data writes that stall transactions in a bus interface
JPH0997184A (ja) 効率的な割込み処理を含む情報処理システム
US5923857A (en) Method and apparatus for ordering writeback data transfers on a bus
US6430646B1 (en) Method and apparatus for interfacing a processor with a bus
JP3600536B2 (ja) 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム
US6502150B1 (en) Method and apparatus for resource sharing in a multi-processor system
US6327636B1 (en) Ordering for pipelined read transfers
US5931932A (en) Dynamic retry mechanism to prevent corrupted data based on posted transactions on the PCI bus
US6240474B1 (en) Pipelined read transfers
JPH10283302A (ja) 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090208

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090208

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100208

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100208

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110208

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120208

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120208

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130208

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140208

Year of fee payment: 12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term