JPH10301893A - コンピュータシステムにおけるデータバス間の送達トランザクション - Google Patents

コンピュータシステムにおけるデータバス間の送達トランザクション

Info

Publication number
JPH10301893A
JPH10301893A JP9370468A JP37046897A JPH10301893A JP H10301893 A JPH10301893 A JP H10301893A JP 9370468 A JP9370468 A JP 9370468A JP 37046897 A JP37046897 A JP 37046897A JP H10301893 A JPH10301893 A JP H10301893A
Authority
JP
Japan
Prior art keywords
transaction
pci
devices
computer system
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9370468A
Other languages
English (en)
Inventor
Brian S Hausauer
ブライアン・エス・ハウザー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH10301893A publication Critical patent/JPH10301893A/ja
Pending 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
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

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

Abstract

(57)【要約】 (修正有) 【課題】2つのデバイス間のトランザクションが同じ2
つのデバイス間の他のトランザクションに関してのみ厳
格に順序付けされるようにするためにトランザクション
順序規則を緩和する。 【解決手段】ブリッジデバイス50を介して処理し得る
各対のデバイス60,62に対して、この対のデバイス
間のトランザクションを完了するのを助ける専用記憶領
域64,66を含んでいるコンピュータシステムにおけ
る2つのデータバス上のデバイス間のデータトランザク
ションの送達のためのブリッジデバイス。ブリッジデバ
イスは、また、ある専用記憶領域におけるトランザクシ
ョンが、別の専用記憶領域における前に発行されたトラ
ンザクションの完了に拘わりなく完了出来るようにする
コントローラを含む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
におけるデータバス間の送達トランザクションに関する
ものである。
【0002】
【従来の技術】コンピュータシステムはコンピュータシ
ステムの諸成分どうしが通信出来るようにする1つ又は
それ以上のデータバスを含んでいることが多い。例え
ば、1つの共通型のデータバスは、コンピュータシステ
ムのCPU/主メモりと周辺成分間で特別な通信プロト
コルを行う周辺成分インターフェース(PCI)バスで
あり、該PCIには小コンピュータシステムインターフ
ェース(SCSI)デバイスやネットワークインターフ
ェースカード(NICs)が含まれる。システムメモり
及びこの周辺成分(例えば、PCIデバイス)が別々の
バス上に常駐している時は、これら2つのバス間のデー
タトランザクションの流れを管理するのにブリッジが必
要となる。通常、システムメモリとPCIデバイスは各
々、PCI−PCIブリッジによって結合されているP
CIバス上に、少なくとも間接的に常駐している。PC
Iバスアーキテクチャは、参照として含まれている、オ
レゴン州ポートランド在のPCIスペシャルインタリス
トグループによる1995年6月発行のPCI局所的バ
ス仕様(改定版2.1)(”PCI仕様2.1)によって
定義されている。PCI−PCIブリッジアーキテクチ
ャは、これも参照として含まれている、PCIスペシャ
ルインタリストグループによる1994年4月発行のP
CIーPCIブリッジアーキテクチャ仕様(改定版1.
0(”PCIブリッジ仕様1.0)によって定義されて
いる。
【0003】PCI仕様2.1及びPCIブリッジ仕様
1.0規格の下では、PCIブリッジは2つの型のトラ
ンザクションを支持している。即ち、目標バス(tar
getbus)上で完了する前に開始バス(initi
ating bus)上で完了するポストされたトラン
ザクション(全てのメモり書込みサイクルを含む)、及
び開始バス上で完了する前に目標バス上で完了する遅延
トランザクション(メモリ読出し要求及びI/O及び構
成読出し/書込み要求を含む)である。PCI仕様2.
1によると、PCIーPCIブリッジは諸トランザクシ
ョンが目標バス上で実行される順番を決定する時にポス
トされた書込みトランザクションを強く優先しなければ
ならない。PCI仕様2.1は、ロック・アップ状態
(lock−up)を防ぐために、コンピュータシステ
ムはポストされた書込みサイクルに前に初期化された遅
延要求サイクルを迂回させなければならないし、かつ遅
延要求サイクルが前に初期化されたポストされた書込み
サイクルを迂回しないように防がなければならないよう
に要求している。この要求は、ポストされた書込みトラ
ンザクションと遅延された要求トランザクションが2つ
の異なった対のデバイスの間で生じても保持される。
【0004】図1について説明する。通常のコンピュー
タシステムは、ホストバス14に接続されている中央処
理装置(CPU)10及び主メモリデバイス12(メモ
リ制御装置を含む)を含んでいる。ホストバス14はホ
ストーPCIブリッジデバイス18を通してPCIバス
16と通信している。PCIバス16はPCI−PCI
ブリッジ20を通して別のPCIバス19と交互に通信
している。PCIバス16は”一次”PCIバスとして
知られており、PCIバス19は”二次”PCIバスと
して知られているが、これはPCIバス16がPCIバ
ス19よりもホストバス14に階層的に近接しているか
らである。
【0005】ビデオカード22、NIC24、及びPC
Iオプションカード26を含む幾つかの周辺デバイスは
二次PCIバス19に接続されている。各デバイスは二
次PCIバス19上の“スロット”に差し込まれてつな
がる。PCIオプションカード26は、PCI−PCI
ブリッジデバイス28及びそれ自身のPCIバス30を
含んでおり、このPCIバス30によって付加的なPC
Iデバイスが二次PCIバス19上のシングルスロット
(single slot)に差し込まれてつながる。
1つ又はそれ以上のPCIデバイス、例えばSCSIデ
バイス32がPCIオプションカード26上に常駐し得
る。PCIオプションカード26は、2つ以上のPCI
デバイスがその局所的PCIバス30に接続されている
時、“多条(multi−threaded)”デバイ
ス(即ち、多数の遅延されたトランザクションを同時に
維持することが出来るデバイス)として作動する。
【0006】CPUによって開始されたトランザクショ
ン及び二次PCIバス19上のデバイスを目標とするこ
とは“ダウンストリーム”トランザクションとして知ら
れており、二次バス19上のデバイスによって開始され
たトランザクション及び主メモリ12を目標とすること
は”“アップストリーム”トランザクションとして知ら
れている。二次バス19上のデバイスによって開始され
るトランザクション及び二次バス19上の別のデバイス
を目標とすることは”対等”トランザクションとして知
られている。対等トランザクションは本明細書では扱わ
ない。
【0007】
【発明が解決しようとする課題】PCI仕様2.1によ
ると、一次又は二次PCIバス上で開始された且つPC
I−PCIブリッジデバイス20においてポストされた
如何なる書込みトランザクションも、次に発行されたト
ランザクションのどれかが目標バス上で完了され得る前
に目標バス上で完了されなければならない。加うるに、
遅延された読出しトランザクションがバス上で開始され
る前に開始バス上で完了する任意のトランザクション
も、その遅延された読出しトランザクションが目標バス
上で完了される前に目標バス上で完了されなければなら
ない。同様に、遅延された読出しトランザクションが開
始バス上で完了した後で開始バス上で完了される任意の
トランザクションも、目標バス上の遅延された読出しト
ランザクションの後に完了されなければならない。それ
故、SCSIデバイス22によってPCI−PCIブリ
ッジ20においてポストされたメモリ書込みトランザク
ションは、NIC24からの後に発行される遅延された
読出し要求が完了される前に一次PCIバス16上で完
了されなければならないし、ポストされたメモリ書込み
トランザクションは、NIC24からの任意の前に発行
された遅延された読出しトランザクションに関連した事
前取出しデータを無効にしなければならない(即ち、メ
モリ書込みトランザクションがポストされた時、事前取
出しデータはPCI−PCIブリッジ20から流れなけ
ればならない)。
【0008】
【課題を解決するための手段】第一の特徴によると、本
発明は、第一データバス上の第一デバイス、第二データ
バス上の第二及び第三デバイス、第一及び第二データバ
ス間に介在されたブリッジデバイスであって第一デバイ
スと第三デバイスとの間のトランザクションの前或いは
後にトランザクションがブリッジデバイスにエンターし
たかに拘わらず第一デバイスと第二デバイスとの間のト
ランザクションを完了するように構成されているブリッ
ジデバイスを有するコンピュータシステムを特徴として
いる。
【0009】本発明の実施態様は以下の特徴の1つ又は
それ以上を含んでいる。ブリッジデバイスは、第一デバ
イスと第二デバイスとの間のトランザクションの発生順
順序を保存し得る。ブリッジデバイスは、遅延されたト
ランザクションが第一及び第二デバイスとの間の別のト
ランザクション(例えば、CPUからのダウンストリー
ム読出しトランザクション)の完了を防いでいる時に第
一及び第二デバイス間の遅延されたトランザクションの
完了を加速するように試み得る。コンピュータシステム
は、第二データバス上のどのデバイスが第一デバイスに
よって開始されたトランザクションの目標であるかを決
定することを助けるゴーストベースアドレスレジスタ
(ghost base address regist
er )を含み得る。
【0010】コンピュータシステムはまた、第二或いは
第三デバイスのどちらかへの第二データバスの制御を許
可する許可信号を含み得る。そして、ブリッジデバイス
は第二或いは第三デバイスが第二データバス上のトラン
ザクションを開始したかを決定するのにこの許可信号を
使用するように構成されている。これらのデータバスの
一方または両方はPCIバスであり得る。
【0011】別の特徴によると、本発明は、データバス
を取り扱うブリッジデバイスを通る第一データバス上の
デバイスと第二データバス上の2つの他のデバイスの各
々間の2つのトランザクションの送達を制御するのに用
いられる方法を特徴とする。これらのトランザクション
は先ず、ブリッジデバイスに記憶され、次に、これらの
トランザクションの一方が、これらのトランザクション
がブリッジデバイスに記憶された発生順順序に拘わらず
送達される。次に他方のトランザクションが送達され得
る。
【0012】本発明の実施態様は以下の特徴の1つ又は
それ以上を含み得る。第一データバス上のデバイスと他
方のデバイスの1つとの間で送達されるトランザクショ
ンの発生順順序は保存され得る。第一データバス上のデ
バイスと他方のデバイスの1つとの間の遅延されたトラ
ンザクションの送達は、遅延されたトランザクションが
別のトランザクション(即ち、CPUからのダウンスト
リーム読出しトランザクション)がこれらのデバイス間
で送達されないように防いでいる時に加速され得る。こ
れらのバスの一方又は両方はPCIバスであり得る。
【0013】別の特徴によると、本発明は、一次PCI
バス上のCPU、第二PCIバス上の2つのPCIデバ
イス、及び一次及び二次バス間に介在するPCI−PC
Iブリッジデバイスを有するコンピュータシステムを特
徴とする。このブリッジデバイスは、一方がCPUとP
CIデバイスの各々間で送達される2つのトランザクシ
ョンを記憶する記憶領域、並びにこれらのトランザクシ
ョンが記憶領域に記憶された発生順順序に拘わらずこれ
らのトランザクションの1つを送達用に選択する仲介回
路を含んでいる。
【0014】本発明の実施態様は以下の特徴の1つ又は
それ以上を含み得る。仲介回路は1つのトランザクショ
ンを選択した後に他方のトランザクションを選択するよ
うに構成され得る。記憶領域は、その一方がCPUとP
CIデバイスの1つとの間に生じるトランザクションを
記憶し、他方がCPUと他方のPCIデバイスとの間に
生じるトランザクションを記憶する2つの待ち行列を含
み得る。記憶領域は、CPUからPCIデバイスの第一
の1つに流れるデータを記憶する1つのバッファ並びに
第一PCIデバイスからCPUに流れるデータを記憶す
る別のバッファを有する第一組のバッファを含み得る。
記憶領域はまた、CPUからPCIデバイスの第二の1
つに流れるデータを記憶する1つのバッファ並びに第二
PCIデバイスからCPUに流れるデータを記憶する別
のバッファを有する第二組のバッファを含み得る。
【0015】別の特徴によると、本発明は、コンピュー
タシステムにおける2つのデータバス上のデバイス間で
データトランザクションを送達するためのブリッジデバ
イスを特徴とする。
【0016】ブリッジデバイスを介して処理し得る各々
の対のデバイスに関して、ブリッジデバイスは、この対
のデバイス間のトランザクションを完了することを助け
る専用の記憶領域を含んでいる。ブリッジデバイスは
又、1つの専用記憶領域が前に発行されたトランザクシ
ョンの別の専用記憶領域における完了に拘わらず完了せ
しめる制御装置を含んでいる。
【0017】本発明の実施態様は以下の特徴の1つ又は
それ以上を含み得る。各専用記憶領域は、ブリッジデバ
イスを介した特定の方向に流れるデータに割り当てられ
た部分を含み得る。そして、各専用記憶領域は又、ブリ
ッジデバイスを介した反対方向に流れるデータに割り当
てられた部分を含み得る。この専用記憶領域はブリッジ
を交差し得る各種のトランザクションに対する専用バッ
ファを含み得る。これらのトランザクション種類は、ポ
ストされた書込み、遅延された要求、及び遅延された完
了を含み得る。
【0018】本発明の実施態様の利点には以下のものが
含まれる。2つのデバイス間のトランザクションが同じ
2つのデバイス間の他のトランザクションに関してのみ
厳格に順序付けされるようにするためにトランザクショ
ン順序規則を緩和し得る。例えば、遅延されたトランザ
クションアーキテクチャにおいて、CPUと第一PCI
デバイスとの間の遅延された読出しトランザクションを
CPUと別のPCIデバイスとの間の前に発行されたポ
ストされた書込みトランザクションの前に完了され得
る。加うるに、CPUと第一PCIデバイスとの間の前
に発行された遅延された読出しトランザクションに関連
した事前取出しデータは、CPUと他方のPCIデバイ
スがポストされた時には無効にする必要がない。それ
故、PCIブリッジに依存するコンピュータシステムは
より効率的に作動し得る。何となれば、遅延されたトラ
ンザクション中に送達されるデータは頻繁に破棄されな
いからである。
【0019】
【実施例】図2について説明する。コンピュータシステ
ム50は、緩和されたトランザクション順序付け規則に
従う一次及び二次PCIバス52及び54にそれぞれ接
続しているPCI−PCIブリッジデバイス50(PP
B又は“ブリッジ”)を含む。特に、ブリッジ50は、
CPU58とPCIデバイス60(“デバイスA”)と
の間のトランザクションが、これらのトランザクション
とCPU58とPCIデバイス62(“デバイスB”)
との間で生じるトランザクションとの間の発生順関係に
拘わらず、これら2つのデバイス間の他方のトランザク
ションに関してのみ順序付けされるように作動する。
【0020】ブリッジ50は、2つの同等の組のバッフ
ァ64及び66、即ち、ブリッジ50を介して処理し得
る各PCIデバイス“対”に対して“待ち行列ブロッ
ク”を維持することによって緩和されたトランザクショ
ン順序付けを達成する。例えば、待ち行列ブロック64
は一時的にCPU58とデバイスA60との間に生じる
トランザクションを記憶し、待ち行列ブロック66はC
PU58とデバイスB62間に生じるトランザクション
を一時的に記憶する。ブリッジ50は二次PCIバス5
4上の各々の他のPCIデバイスに対する付加的な待ち
行列ブロックを含む。ブリッジデバイス50は、CPU
58及びメモリ59を一次PCIバス52上の唯1つの
デバイスとして処理する。待ち行列ブロック64及び6
6におけるバッファは、二次PCIスロットに永久的に
割り当てられる必要がないが、その代わり、動的に、例
えば、システム開始に割り当てられ得る。
【0021】各待ち行列ブロック64及び66は、一次
PCIバス52と二次PCIバス54上のデバイス60
及び62間に流れるトランザクションを管理する。待ち
行列ブロック64及び66は同様であり、待ち行列ブロ
ック64のみを以下に説明する。待ち行列ブロック66
(及びブリッジデバイス52に存在し得る他の何らかの
待ち行列ブロック)も同様に機能する。各待ち行列ブロ
ックは、John Marclaren とAlan
Goodrumtとにより、1996年6月5日に出願
されれ、本願発明の参照とされる、米国特許第08/6
55、254号に開示され記載されている待ち行列に類
似している。
【0022】各待ち行列ブロック64は、(二次PCI
バス54上の対応するPCIデバイス60からCPU5
8に)アップストリームに流れる情報を記憶する3つの
アップストリーム待ち行列(upstream queue)70、7
2、及び74、並びに、(CPU58から対応するPC
Iデバイス60に)ダウンストリームに流れる情報を記
憶する3つのダウンストリーム待ち行列(downstream qu
eue )76、78、及び80を含んでいる。待ち行列ブ
ロック64は又、以下に述べるように、アップストリー
ム又はダウンストリーム待ち行列のどちらからか出る情
報の流れを支配する2つのサイクルアービタ82及び8
4並びに2つの待ち行列ブロックーPCI(QPIF)
インターフェース86及び89を含んでいる。
【0023】第一ダウンストリーム待ち行列、即ちポス
トされたメモリ書込み待ち行列76は、二次バス54上
の各サイクルを実施するのに必要な全ての情報と共に一
次バス52上のCPU58によって発行されるポストさ
れたメモリ書込みサイクルを記憶する。PMWQ76
は、各々が8本までのキャッシュライン(256バイ
ト)のデータを含む1つのポストされたメモリ書込みト
ランザクションを保持する4つのトランザクションバッ
ファを有する。ダウンストリームPMWQ70は二次バ
ス54上のPCIデバイス60によって発行されたポス
トされたメモリ書込みサイクルを記憶し、ダウンストリ
ームPMWQ76と同様に機能する。これらのPMWQ
70及び76は、1996年6月に出願された米国特許
出願第08/655、254号により詳細に記載されて
いる。
【0024】第二ダウンストリーム待ち行列、即ち、遅
延された要求待ち行列(DRQ)78は、二次バス54
上の各トランザクションを実施するのに必要な全ての情
報と共に、一次バス52上のCPU58によって発行さ
れた遅延された要求トランザクション〔即ち、メモリ読
出し(MR)、メモリ読出しライン(MRL)、及びメ
モリ読出し多重(MRM)要求等の遅延された読出し要
求(DRR)、並びに入力/出力(I/O)読出し/書
込み及び構成(config)読出し/書込み〕を記憶
する。DRQ78は、それぞれが遅延された書込みに対
するデータの1つの二重ワード、即ち“dword”を
保持することが出来る3つのトランザクションバッファ
を有している。同様にして、アップストリームDRQ7
2は、二次バス64上のPCIデバイス60によって発
行された遅延された要求トランザクションを記憶し、ダ
ウンストリームと同様に機能する。DRQ72及び78
は、1996年6月5日に出願された米国特許出願第0
8/655、254号により詳細に記載されている。
【0025】第三ダウンストリーム待ち行列、即ち、遅
延された完了待ち行列(DCQ)80は、PCIデバイ
ス60によって発生された遅延された要求トランザクシ
ョンに応答してCPU58によって与えられた遅延され
た完了情報を記憶する。遅延された読出し要求に対して
は、対応する完了情報は、開始デバイスによって要求さ
れた読出しデータ及び読出し状態〔 即ち、パリティエ
ラー或いは目標アボート(target abort)のどちらかが
生じたかの指示 〕を含んでいる。遅延された書込みト
ランザクションに対して帰還した遅延された完了情報
は、遅延された書込みに対してデータが何も帰還されな
いこと以外、遅延された読出し要求に対して帰還したそ
れと同じである。
【0026】DCQ80は、それぞれが唯一つの遅延さ
れた要求に対して8本までのキャッシュラインの完了ラ
インを保持することが出来る8個の完了バッファを有す
る。完了情報に加えて、各完了バッファは又、その情報
を発生した遅延された要求の複写を記憶する。この遅延
された要求の複写は、発行PCIデバイスによる後続の
要求が記憶された要求の再試行となる時を決定するのに
用いられる。後続の要求が記憶された要求に一致し、完
了バッファが要求されたデータを含む場合、DCQ80
は完了データを要求デバイスに与える。
【0027】同様にして、アップストリームDCQ74
は、CPU58からの遅延された要求に応答してPCI
デバイス60によって与えられる遅延された完了情報を
記憶する。I/O及びconfig読出し/書込みがダ
ウンストリームバス上にのみ生じるため、アップストリ
ームDCQ74のみが、これらのトランザクションの1
つに対応する遅延された完了情報を含み得る。
【0028】DCQ74又は80の一方が、そのバッフ
ァの1つが要求デバイスに対して意図されているが、現
在のトランザクションにおいて要求されるデータとは異
なるデータを含むことを決定する場合、バッファがフラ
ッシュされて要求マスタが古いデータ(stale dat
a)を受けないように防ぐことが出来る。バッファは、
それが事前取出しデータ(即ち、要求デバイスがデータ
の幾つかを取り出した後にバッファに残されたデータ、
或いはデバイスによって特別に要求されなかったデー
タ)を含んでいる時にはフラッシュ(flush)され
るが、それが完了データ(即ち、それを取り出すために
未だ帰還してないデバイスによって特別に要求されたデ
ータ)を含んでいる時にはフラッシュされない。バッフ
ァが完了データを含み且つ要求デバイスがバッファを
“ヒット(hit)”しないことの要求を発行している
場合、DCQ144はこのデバイスを“多条”デバイス
(即ち、一度に2つ以上のトランザクションを維持する
ことが出来るデバイス)として標識を与え、この新しい
要求に別の完了バッファを割り当てる。
【0029】DCQ74及び80における各バッファは
データが通過すると幾つかの状態を通して進行する。バ
ッファは、それがデータを何も含んでいない時は“空”
状態にあり、それが開始デバイスによって特別に要求さ
れたデータを含んでいる時は“完了”状態にあり、且
つ、それが(例えば、開始デバイスがバッファから全て
の要求されたデータを取り出し且つその“フレーム”信
号を主張し続けて、それがデータをもっと希望している
ことを指示した後)ブリッジデバイス52によって特別
に要求されなかったが事前取出しされたデータを含んで
いる時は“事前取出し”状態にある。このDCQ74及
び80は、1996年6月5日に出願された米国特許出
願第08/655、254号により詳細に記載されてい
る。
【0030】待ち行列ブロック64における各マスタサ
イクルアービタ(MCA)82及び84は、ダウンスト
リーム待ち行列或いはアップストリーム待ち行列のどち
らかにおけるポストされたメモリ書込み、遅延された要
求、及び遅延された完了トランザクション間の順序付け
制約を維持する。緩和された順序付け制約は、厳格な順
序付けが同じ対のデバイスを伴うトランザクション間の
みで維持される(即ち、CPU58とPCIデバイス6
0間のトランザクションがこれら2つのデバイス間の他
方のトランザクションについてのみ順序付けされる)こ
とを除いて、PCIブリッジアーキテクチャ仕様の2.
1版に記載されているものと同様である。これらの順序
付け制約は、バスサイクルが強い書込み順序付けを維持
すること及びデッドロックが生じないことを要求する。
それ故、各MCA82又は84は、対応するPMWQ7
0又は76におけるポストされたメモリ書込みトランザ
クション並びに対応するDRQ72又は78における遅
延された要求トランザクションが対応するPCIバス5
2又は54上の実行される順序を決定する。各MCA8
2又は84は又、対応するDCQ74又は80に記憶さ
れた遅延された完了情報の使用可能度を制御する。これ
らの規則との追従を確実にするために、ダウンストリー
ムMCA84は各ポストされたメモリ書込みサイクルに
前に発行された遅延された要求サイクルを迂回する機会
を与え、一方、ダウンストリーム及びアップストリーム
MCA84及び82は両方ともそれぞれ、遅延された要
求及び遅延された完了サイクルに前に発行されたポスト
されたメモリ書込みサイクルを迂回させない。
【0031】図3についても説明する。各MCA82又
は84は、2つのトランザクション待ち行列、即ち、ト
ランザクション実行待ち行列(TRQ)(即ち、トラン
ザクション実施待ち行列)200及びトランザクション
命令待ち行列(TOQ)202を用いて、対応するPM
WQ、DRQ、及びDCQにおいて待ち行列されるサイ
クルを管理する。MCA制御ブロック204はPMW
Q、DRQ、及びDCQからトランザクションを受け、
実行命令を出力する。これらのトランザクションは、そ
れぞれ、TRQ制御ブロック206及びTOQ制御ブロ
ック208によってTRQ200及びと202に出入り
する。
【0032】TRQ200は、MCAがトランザクショ
ン実施命令を決定する時の待ち行列である。TRQ20
0におけるトランザクションは、トランザクション順序
付け規則を犯すことなく任意の順序でも実施され得る
が、一旦、ポストされたメモリ書込みサイクルがTRQ
200に置かれると、ポストされたメモリ書込みが取り
除かれるまで、他のサイクルは何もTRQ200に置か
れ得ない。TRQ200におけるトランザクションは循
環順序で試行され、全体的に、それらが受けられる順序
で完了される。しかしながら、TRQ200におけるト
ランザクションがPCIバス上で再試される場合、MC
A82又は84はPCIバス上で試行されるTRQ20
0における次のトランザクションを選択し得る。遅延さ
れた完了トランザクションは、これらがマスタサイクル
でなくスレーブサイクルであるためにTRQ200に決
して置かれることがない。更に、遅延された完了情報
が、PMWQにおいてポストされたメモリ書込みサイク
ルが保留中である場合にそれがDCQにエンタするとす
ぐに要求デバイスに対して得られるようになるため、遅
延された完了トランザクションは、ポストされたメモリ
書込みサイクルがTRQ200において保留中の時にの
みTOQ202に置かれる。
【0033】TRQ200は一度に4つまでのトランザ
クションを保持する循環待ち行列である。MCAは常に
少なくとも1つのポストされたメモリ書込みトランザク
ションを実行させて所要順序付け制約を保存することが
出来なければならないため、TRQ200は一度に3つ
以上の遅延された要求トランザクションを保持すること
が決して出来ない。更に、TRQは一度に1つだけのポ
ストされた書込みトランザクションを保持出来ないが、
これは、ポストされた書込みは、他のポストされた書込
みを含む何らかの後に開始されたトランザクションにパ
スされることがないからである。
【0034】TOQ202は、ポストされたメモリ書込
みトランザクションがTRQ200に置かれた後にブリ
ッジによって受けられたトランザクションの履歴的順序
を保持する先入れ先だし(FIFO)待ち行列である。
全てのトランザクションが実行するには前に発行された
ポストされたメモリ書込みを待機しなければならないた
め、ポストされたメモリ書込み、遅延された要求、及び
遅延された完了トランザクションを含む全てのトランザ
クションは、ポストされたメモリ書込みがTRQ200
において待ち行列される時にTOQ202に置かれる。
TOQ202におけるトランザクションは、ポストされ
たメモリ書込みトランザクションがTRQ200から取
り除かれるまでTOQ202に保持されなければならな
い。TOQ202は3個までのポストされたメモリ書込
みトランザクション(4個目はTRQ200に記憶され
る)、3個の遅延された要求トランザクション、及び遅
延された完了トランザクションを保持し得る。TRQ2
00、TOQ202、並びに制御ブロック204、20
6、及び208を含むMCA82及び84は、1996
年6月5日出願の米国特許出願第08/655、254
号により詳細に記載されている。
【0035】アップストリーム待ち行列−PCIインタ
ーフェース(QPIF)86は、アップストリーム待ち
行列70、72、及び74から一次PCIバス52に且
つ一次PCIバス52からダウンストリームDCQ80
に流れるトランザクションを管理する。QPIF86
は、“マスタ”モードに入って、一次バス52上のPM
WQ70及びDRQ72からポストされたメモリ書込み
及び遅延された要求トランザクションを実行する。QP
IF86は“スレーブ”モードに入り、アップストリー
ムDCQ74からのデータをCPU58に与え、一次P
CIバス52からのトランザクションをダウンストリー
ムDCQ80に送る。
【0036】QPIF86がバス52からポストされた
書込みトランザクションを受けると、一群のトランザク
ション計数器88の対応する1つがダウンストリームP
MWQ76が一杯でないことを指示している場合、この
トランザクションをダウンストリームPMWQ76に送
る。QPIF86が遅延された要求を受けると、それは
先ず、この要求をDCQ74に送り、このトランザクシ
ョンが既にアップストリームDCQ74に置かれている
か否かを、そうである場合、対応する遅延された完了情
報がPCIデバイス60によって帰還されているか否か
を決定する。遅延された完了情報がアップストリームD
CQ74にある場合、情報はCPU58に与えられ、こ
のトランザクションが終了する。この要求が既に待ち行
列されているが、遅延された完了情報が帰還されていな
い場合、CPU58は再試され、このトランザクション
は一次PCIバス52上で終了する。このトランザクシ
ョンが未だ待ち行列されていなく、トランザクション計
数器88の対応する1つがダウンストリームDRQ78
が一杯でないことを指示する限り、アップストリームD
CQ74はトランザクションに対する完了バッファを保
存し、QPIF86はこのトランザクションをダウンス
トリームDRQ78に送る。ダウンストリームQPIF
89はアップストリームQPIF86と同様に機能す
る。QPIF86及び89は1996ね6月5日に出願
された米国特許出願第08/655、254号により詳
細に記載されている。
【0037】トランザクション計数器88は、アップス
トリーム及びダウンストリーム待ち行列にそれぞれ待ち
行列されているトランザクションの数の計数を維持す
る。ポストされたメモリ書込み(PMW)計数器は、対
応するポストされたメモリ書込み待ち行列に保持された
PMWトランザクションの数を指示する。このPMW計
数器は、PMWトランザクションが対応するPMWQに
送られる度に増分する。この計数器は、PMWサイクル
が対応PCIバス上で完了される度に減分する。同様
に、遅延された要求(DR)計数器は対応する遅延され
た要求待ち行列に保持されたDRトランザクションの数
を計数する。遅延された完了(DC)計数器は対応する
マスタサイクルアービタにおいて待ち行列されている遅
延された完了の数を計数する。これらのトランザクショ
ン計数器は、1996年6月5日に出願された米国特許
出願第08/655、254号により詳細に記載されて
いる。
【0038】ブリッジデバイス52は、アップストリー
ムPCIインターフェースデバイス90及びダウンスト
リームPCIインターフェースデバイス92を含んでい
る。アップストリームPCIインターフェース90は、
ブリッジデバイス50を一次バス52上のデバイス(即
ち、CPU58及び主メモリ59)と通信せしめ、ダウ
ンストリームPCIインターフェース92は、ブリッジ
デバイス50を二次バス54上のデバイス(即ち、デバ
イスA60及びデバイスB60)と通信せしめる。
【0039】CPUが一次バスの制御を行い且つトラン
ザクションを開始する時に、アップストリームPCIイ
ンターフェース90はPCIスレーブデバイスとなる。
インターフェース90はPCI命令、アドレス、及びデ
ータをデータ及びアドレスラッチ94及び95にラッチ
する。そしてインターフェース90はダウンストリーム
PCIデバイス60及び62のどちらかがトランザクシ
ョンの目標となるかを決定する。このようにするため
に、インターフェースはCPU58によって与えられた
メモリアドレスをブリッジデバイス50におけるゴース
トベースアドレスレジスタ(ゴーストBAR)96にお
けるアドレスと比較する〔ゴーストBAR96は、開始
におけるPOSTによって形成されるベースアドレスレ
ジスタ(BAR)を詮索することによって形成される。
各対のBARはPCIスロットをメモリのブロックにマ
ッピングし、ゴーストBARはこれらのマッピングの複
写を含んでいる〕。
【0040】PCIインターフェース90は、CPU5
8は全てのダウンストリームトランザクションのマスタ
であることを仮定する。
【0041】図4Aについても説明する。アップストリ
ームサイクルアービタ100は、“レベルI”ラウンド
ロビン・スキーム105を用いて、アップストリームト
ランザクションが一次バス52上で実行されるべき待ち
行列ブロック64又は66を選択する。アービタ(ar
biter)100は先ず、デバイスA60(状態10
2)に対応する待ち行列ブロック64を選択する。アー
ビタ100は次に、デバイスB62に対応する待ち行列
66を選択し、他の任意のPCIデバイスが二次バス5
4に接続されている場合、アービタ100は、これらの
デバイスに対応する待ち行列を漸次に選択する。待ち行
列ブロック64及び66の一方が実行すべきトランザク
ションを含んでいない場合、アービタ100はそのラウ
ンドロビン・スキーム105において対応する状態をス
キップする。選択された待ち行列ブロックからのトラン
ザクションが再試される場合、アービタ100は、ラウ
ンドロビン・スキーム105において次の状態に移行す
る。
【0042】図4Bについて説明する。PCI仕様2.
1は一次及び二次バスが両方ともトランザクションを同
時に開始すると、アービタ100はダウンストリームト
ランザクションに優先順位を与えなければならないこと
を規定する“ブリッジインターフェース優先”規則を含
んでいる。しかし、書込みポストを可能にする幾つかの
ブリッジにおいては、この要求は、ダウンストリームデ
バイスがCPUがダウンストリームデバイスに読出し要
求を発行するのと同時に書込みをポストする場合にデッ
ドロックに至り得る。この状態において、ブリッジ50
は、同じデバイスに対する任意の遅延された要求を完了
する前にポストされた書込みを完了し且つダウンストリ
ームマスタによって同時に発行された任意のトランザク
ションを完了する前にダウンストリーム読出しを完了す
ることの両方を指示される。
【0043】デッドロックが生じるのを防ぐために、幾
つかの実施態様におけるアップストリームサイクルアー
ビタは、この条件が生じた場合、“レベルII”調停スキ
ーム108に切り替わる必要があり得る。レベルIIス
キーム108において、アービタ100は、このトラン
ザクションをより迅速に完了しようとして、同時に発行
されたポストされた書込みトランザクションの優先順位
を上げる(状態110)。アップストリームインターフ
ェース90が、一次バス52上のポストされた書込みト
ランザクションを実行することを試行した後、アービタ
100は図4Aの“レベルI”調停スキーム105に帰
還して次に実行するトランザクションを選択する。ポス
トされた書込みトランザクションが一次バス52上で首
尾良く実行しなかった場合、アービタ100は、レベル
Iスキーム105からのトランザクションを選択した
後、レベルII調停スキーム108に帰還する(即ち、
ポストされた書込みトランザクションが首尾良く完了す
るまで、アービタ100はレベルIIスキーム108に
継続する)。
【0044】図2について再び説明する。ダウンストリ
ームPCIインターフェース92は、幾つかの例外はあ
るが、アップストリームPCIインターフェース90と
同様に作動する。第一に、アップストリームサイクルア
ービタ100と異なり、ダウンストリームサイクルアー
ビタ116は2レベル調停スキームを用いる必要は絶対
にない。これは、ダウンストリームPCIインターフェ
ース92が、”ブリッジインターフェース優先”規則に
従わないからである。第二に、ダウンストリームインタ
ーフェース92は常に、CPU58は目標デバイスであ
り且つPCIデバイス60又は62のどちらがマスタで
あるかを決定するのにゴーストBAR96に依存する必
要がないと仮定している。その代わり、ダウンストリー
ムインターフェース92はPCIアービタ114におけ
るREQ及びGNTラインを監視して、二次PCIバス
54上のデバイス60及び62のどちらがマスタである
かを、即ち、待ち行列ブロック64又は66のどちらが
トランザクションを受けるかを決定する。
【0045】他の実施態様は、特許請求の範囲内にあ
る。例えば、図5を参照すると、PCI−PCIブリッ
ジデバイスは、対当たり2組の単一方向待ち行列の代わ
りに、各々のPCIデバイス対に対して1組の双方向ト
ランザクション待ち行列120a、120bを含み得
る。本発明は又、非PCIアーキテクチャ及びPCI仕
様2.1a或いはPCIブリッジ仕様1.0に従わない
PCIアーキテクチャの形で実施され得る。
【図面の簡単な説明】
【図1】図1は、コンピュータシステムのブロック図で
ある。
【図2】図2は、緩和されたトランザクション順序規則
を実施するブリッジによってデータバスが接続されるコ
ンピュータシステムのブロック図である。
【図3】図3は、トランザクションの適切な順序付けを
確実にするマスタサイクルアービタのブロック図であ
る。
【図4】図4は、図4A及び図4Bを含み、図4A及び
図4Bは調停スキームの状態遷移図である。
【図5】図5は、代替ブリッジアーキテクチャのブロッ
ク図である。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591030868 20555 State Highway 249,Houston,Texas 77070,United States o f America

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムにおいて、第一デ
    ータバス上の第一デバイス、第二データバス上の第二及
    び第三デバイス、及び上記第一及び第二データバス間に
    介在しているブリッジデバイスであって、上記第一及び
    第三デバイス間のトランザクションの前或いは後で上記
    第一デバイスと上記第二デバイス間のトランザクション
    が上記ブリッジデバイスにエンタしたか否かに拘わらず
    上記トランザクションを完了するように構成されている
    ブリッジデバイスを含むことを特徴とするコンピュータ
    システム。
  2. 【請求項2】 上記ブリッジデバイスが上記第一及び上
    記第二デバイス間のトランザクションの発生順順序を保
    存することを特徴とする請求項1のコンピュータシステ
    ム。
  3. 【請求項3】 上記ブリッジデバイスが上記第一デバイ
    スと上記第二デバイス間の遅延されたトランザクション
    を、それが上記第一及び第二デバイス間の別のトランザ
    クションの完了を妨げている時に、完了を加速すること
    を試みることを特徴とする請求項1のコンピュータシス
    テム。
  4. 【請求項4】 上記の別のトランザクションがCPUか
    らのダウンストリーム読出しトランザクションを含むこ
    とを特徴とする請求項3のコンピュータシステム。
  5. 【請求項5】 上記第二データバス上のデバイスのどれ
    が上記第一デバイスによって開始されたトランザクショ
    ンの目標となるかを決定することを助けるゴーストベー
    スアドレスレジスタを更に含むことを特徴とする請求項
    1のコンピュータシステム。
  6. 【請求項6】 上記第二又は第三デバイスのどちらかへ
    の上記第二データバスの制御を許可する許可信号を更に
    含むことを特徴とする請求項1のコンピュータシステ
    ム。
  7. 【請求項7】 上記ブリッジデバイスが、上記第二又は
    第三デバイスが上記第二データバス上のトランザクショ
    ンを開始したか否かを上記許可信号を用いて決定するよ
    うに構成されていることを特徴とする請求項6のコンピ
    ュータシステム。
  8. 【請求項8】 上記データバスの1つがPCIバスを含
    むことを特徴とする請求項1のコンピュータシステム。
  9. 【請求項9】 上記データバスの各々がPCIバスを含
    むことを特徴とする請求項1のコンピュータシステム。
  10. 【請求項10】 第一データバス上のデバイスと第二デ
    ータバス上の他の2つのデバイスの各々との間での上記
    データバスを扱うブリッジデバイスを介しての2つのト
    ランザクションの送達を制御するのに用いられる方法に
    おいて、上記ブリッジデバイスに上記トランザクション
    を記憶する段階、及び上記トランザクションが上記ブリ
    ッジデバイスに記憶された発生順順序に拘わらず上記ト
    ランザクションの一方を送達する段階を含むことを特徴
    とする方法。
  11. 【請求項11】 その後、他方のトランザクションを送
    達する段階を更に含むことを特徴とする請求項10の方
    法。
  12. 【請求項12】 上記第一データバス上のデバイスと上
    記他方のデバイスの一方との間で送達されるトランザク
    ションの発生順順序を保存する段階を更に含むことを特
    徴とする請求項10の方法。
  13. 【請求項13】 上記第一データバス上のデバイスと上
    記他方デバイスの一方との間の遅延されたトランザクシ
    ョンの送達を、該遅延されたトランクザンクションが別
    のトランザクションを上記デバイス間で送達されないよ
    うに妨げている時に、加速することを試みる段階を更に
    含むことを特徴とする請求項10の方法。
  14. 【請求項14】 上記他方のトランザクションがCPU
    からのダウンストリーム読出しトランザクションを含む
    ことを特徴とする請求項13の方法。
  15. 【請求項15】 上記バスの一つがPCIバスを含むこ
    とを特徴とする請求項10の方法。
  16. 【請求項16】 上記バスの各々がPCIバスを含むこ
    とを特徴とする請求項10の方法。
  17. 【請求項17】 コンピュータシステムにおいて、一次
    PCIバス上のCPUと、二次PCIバス上の2つのP
    CIデバイスと、上記一次及び二次バス間に介在してい
    るPCI−PCIブリッジデバイスと、一方が上記CP
    Uと上記PCIデバイスの各々との間で送達される2つ
    のトランザクションを記憶する記憶領域と、上記トラン
    ザクションが上記記憶領域に記憶された発生順順序に拘
    わらず上記トランザクションの一方を送達のために選択
    する調停回路と、を含むPCI−PCIブリッジデバイ
    スを含むことを特徴とするコンピュータシステム。
  18. 【請求項18】 上記調停回路が、上記一方のトランザ
    クションを選択した後に他方のトランザクションを選択
    するように構成されていることを特徴とする請求項17
    のコンピュータシステム。
  19. 【請求項19】 上記記憶領域が、一方が上記CPUと
    上記PCIデバイスの1つとの間で生じたトランザクシ
    ョンを記憶し、他方が上記CPUと他方のPCIデバイ
    ス間で生じたトランザクションを記憶する2つの待ち行
    列ブロックを含むことを特徴とする請求項17のコンピ
    ュータシステム。
  20. 【請求項20】 上記記憶領域が、上記CPUから上記
    PCIデバイスの第一のものに流れるデータを記憶する
    1つのバッファ並びに上記第一PCIデバイスから上記
    CPUに流れるデータを記憶する別のバッファを有する
    第一組のバッファ、及び上記CPUから上記PCIデバ
    イスの第二のものに流れるデータを記憶する1つのバッ
    ファ並びに上記第二PCIデバイスから上記CPUに流
    れるデータを記憶する別のバッファを有する第二組のバ
    ッファを含むことを特徴とする請求項17のコンピュー
    タシステム。
  21. 【請求項21】 コンピュータシステムにおける2つの
    データバス上のデバイス間でデータトランザクションを
    送達するためのブリッジデバイスにおいて、上記ブリッ
    ジデバイスを介して処理し得る各対のデバイスに対し
    て、上記対のデバイス間のトランザクションを完了する
    のを助ける専用記憶領域、及び1つの専用記憶領域にお
    けるトランザクションを別の専用記憶領域における前に
    発行されたトランザクションの完了に拘わらず完了せし
    める制御装置を含むことを特徴とするブリッジデバイ
    ス。
  22. 【請求項22】 各々の専用記憶領域が上記ブリッジデ
    バイスを介して特定の方向に流れるデータに割り当てら
    れた部分を含むことを特徴とする請求項21のブリッジ
    デバイス。
  23. 【請求項23】 各々の専用記憶領域が上記ブリッジデ
    バイスを介して上記と反対の方向に流れるデータに割り
    当てられた別の部分を含むことを特徴とする請求項22
    のブリッジデバイス。
  24. 【請求項24】 上記専用記憶領域が上記ブリッジを交
    差し得る各々の種類のトランザクションのための専用バ
    ッファを含むことを特徴とする請求項21のブリッジデ
    バイス。
  25. 【請求項25】 上記トランザクションのタイプが、ポ
    ストされた書込み、遅延された要求、及び遅延された完
    了を含むことを特徴とする請求項24のブリッジデバイ
    ス。
JP9370468A 1996-12-31 1997-12-26 コンピュータシステムにおけるデータバス間の送達トランザクション Pending JPH10301893A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US777575 1996-12-31
US08/777,575 US6138192A (en) 1996-12-31 1996-12-31 Delivering a request to write or read data before delivering an earlier write request

Publications (1)

Publication Number Publication Date
JPH10301893A true JPH10301893A (ja) 1998-11-13

Family

ID=25110625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9370468A Pending JPH10301893A (ja) 1996-12-31 1997-12-26 コンピュータシステムにおけるデータバス間の送達トランザクション

Country Status (4)

Country Link
US (2) US6138192A (ja)
EP (1) EP0851361B1 (ja)
JP (1) JPH10301893A (ja)
DE (1) DE69725687T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006004196A1 (ja) * 2004-07-02 2006-01-12 Nec Corporation マルチプロセッサシステムおよびメモリアクセス処理方法
US8386670B2 (en) 2007-01-15 2013-02-26 Ricoh Company, Ltd. System controlling device and image processing system
JP2014017006A (ja) * 2009-05-29 2014-01-30 Intel Corp PCIExpressでのIDベースストリームを可能にする方法及び装置

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6243781B1 (en) * 1998-12-03 2001-06-05 Intel Corporation Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe
US6324612B1 (en) * 1998-12-10 2001-11-27 International Business Machines Corporation Associating buffers in a bus bridge with corresponding peripheral devices to facilitate transaction merging
US6405276B1 (en) * 1998-12-10 2002-06-11 International Business Machines Corporation Selectively flushing buffered transactions in a bus bridge
US6209054B1 (en) * 1998-12-15 2001-03-27 Cisco Technology, Inc. Reliable interrupt reception over buffered bus
US6301627B1 (en) * 1998-12-18 2001-10-09 International Business Machines Corporation Method/system for identifying delayed predetermined information transfer request as bypassable by subsequently-generated information transfer request using bypass enable bit in bridge translation control entry
US6240458B1 (en) * 1998-12-22 2001-05-29 Unisys Corporation System and method for programmably controlling data transfer request rates between data sources and destinations in a data processing system
US6351784B1 (en) * 1998-12-28 2002-02-26 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US6347349B1 (en) * 1998-12-28 2002-02-12 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US6330630B1 (en) * 1999-03-12 2001-12-11 Intel Corporation Computer system having improved data transfer across a bus bridge
US6286074B1 (en) * 1999-03-24 2001-09-04 International Business Machines Corporation Method and system for reading prefetched data across a bridge system
US6363452B1 (en) * 1999-03-29 2002-03-26 Sun Microsystems, Inc. Method and apparatus for adding and removing components without powering down computer system
US6460108B1 (en) 1999-03-31 2002-10-01 Intel Corporation Low cost data streaming mechanism
US6230228B1 (en) * 1999-04-01 2001-05-08 Intel Corporation Efficient bridge architecture for handling multiple write transactions simultaneously
TW523672B (en) * 1999-04-23 2003-03-11 Via Tech Inc Bus system delayed transaction method and device applying the method
US6567871B2 (en) * 1999-07-26 2003-05-20 Intel Corporation Method and apparatus for repeating (extending) transactions on a bus without clock delay
US6742074B2 (en) * 1999-08-31 2004-05-25 Micron Technology, Inc. Bus to system memory delayed read processing
US6557048B1 (en) * 1999-11-01 2003-04-29 Advanced Micro Devices, Inc. Computer system implementing a system and method for ordering input/output (IO) memory operations within a coherent portion thereof
US6529990B1 (en) * 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6779061B1 (en) * 2000-05-09 2004-08-17 Cypress Semiconductor Corp. Method and apparatus implementing a FIFO with discrete blocks
US6654818B1 (en) * 2000-06-22 2003-11-25 International Business Machines Corporation DMA access authorization for 64-bit I/O adapters on PCI bus
US6636947B1 (en) * 2000-08-24 2003-10-21 International Business Machines Corporation Coherency for DMA read cached data
US6721813B2 (en) * 2001-01-30 2004-04-13 Advanced Micro Devices, Inc. Computer system implementing a system and method for tracking the progress of posted write transactions
TW514791B (en) * 2001-05-28 2002-12-21 Via Tech Inc Structure, method and related control chip for accessing device of computer system with system management bus
US20030131175A1 (en) * 2001-12-24 2003-07-10 Heynemann Tom A. Method and apparatus for ensuring multi-threaded transaction ordering in a strongly ordered computer interconnect
US6754737B2 (en) * 2001-12-24 2004-06-22 Hewlett-Packard Development Company, L.P. Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect
US7111105B2 (en) * 2001-12-31 2006-09-19 Hewlett-Packard Development Company, L.P. System to optimally order cycles originating from a single physical link
US6970978B1 (en) * 2002-04-03 2005-11-29 Advanced Micro Devices, Inc. System and method for providing a pre-fetch memory controller
US7286548B1 (en) * 2002-08-14 2007-10-23 Redback Networks Inc. Method and apparatus for multicast multiple prefetch
US7043593B1 (en) * 2003-04-29 2006-05-09 Advanced Micro Devices, Inc. Apparatus and method for sending in order data and out of order data on a data bus
US7062590B2 (en) * 2003-08-29 2006-06-13 Lsi Logic Corporation Methods and structure for PCI bus broadcast using device ID messaging
US7644197B1 (en) * 2003-10-15 2010-01-05 Sun Microsystems, Inc. Queue management by multiple processors
US7549004B1 (en) * 2004-08-20 2009-06-16 Altera Corporation Split filtering in multilayer systems
US7412555B2 (en) * 2005-09-29 2008-08-12 P.A. Semi, Inc. Ordering rule and fairness implementation
US8566496B2 (en) * 2010-12-03 2013-10-22 Lsi Corporation Data prefetch in SAS expanders
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
US10362109B2 (en) 2016-03-30 2019-07-23 Task Performance Group, Inc. Cloud operating system and method

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5569830A (en) * 1978-11-20 1980-05-26 Toshiba Corp Intelligent terminal
EP0334627A3 (en) * 1988-03-23 1991-06-12 Du Pont Pixel Systems Limited Multiprocessor architecture
US6038584A (en) * 1989-11-17 2000-03-14 Texas Instruments Incorporated Synchronized MIMD multi-processing system and method of operation
JPH03188546A (ja) * 1989-12-18 1991-08-16 Fujitsu Ltd バスインターフェイス制御方式
US5438509A (en) * 1991-02-07 1995-08-01 Heffron; Donald J. Transaction processing in a distributed data processing system
US5454093A (en) * 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
GB9116044D0 (en) * 1991-07-24 1991-09-11 Nat Res Dev Probes
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
CA2080210C (en) * 1992-01-02 1998-10-27 Nader Amini Bidirectional data storage facility for bus interface unit
JPH0789340B2 (ja) * 1992-01-02 1995-09-27 インターナショナル・ビジネス・マシーンズ・コーポレイション バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置
US5491811A (en) * 1992-04-20 1996-02-13 International Business Machines Corporation Cache system using mask bits to recorder the sequences for transfers of data through cache to system memory
US5579530A (en) * 1992-06-11 1996-11-26 Intel Corporation Method and apparatus for dynamically allocating access time to a resource shared between a peripheral bus and a host bus by dynamically controlling the size of burst data transfers on the peripheral bus
JP2531903B2 (ja) * 1992-06-22 1996-09-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュ―タ・システムおよびシステム拡張装置
US5463753A (en) * 1992-10-02 1995-10-31 Compaq Computer Corp. Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US5535395A (en) * 1992-10-02 1996-07-09 Compaq Computer Corporation Prioritization of microprocessors in multiprocessor computer systems
US5519839A (en) * 1992-10-02 1996-05-21 Compaq Computer Corp. Double buffering operations between the memory bus and the expansion bus of a computer system
US5381528A (en) * 1992-10-15 1995-01-10 Maxtor Corporation Demand allocation of read/write buffer partitions favoring sequential read cache
US5448702A (en) * 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5396602A (en) * 1993-05-28 1995-03-07 International Business Machines Corp. Arbitration logic for multiple bus computer system
US5623633A (en) * 1993-07-27 1997-04-22 Dell Usa, L.P. Cache-based computer system employing a snoop control circuit with write-back suppression
US5613075A (en) * 1993-11-12 1997-03-18 Intel Corporation Method and apparatus for providing deterministic read access to main memory in a computer system
US5455915A (en) * 1993-12-16 1995-10-03 Intel Corporation Computer system with bridge circuitry having input/output multiplexers and third direct unidirectional path for data transfer between buses operating at different rates
US5434996A (en) * 1993-12-28 1995-07-18 Intel Corporation Synchronous/asynchronous clock net with autosense
US5559800A (en) * 1994-01-19 1996-09-24 Research In Motion Limited Remote control of gateway functions in a wireless data communication network
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
US5535341A (en) * 1994-02-24 1996-07-09 Intel Corporation Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
SG47015A1 (en) * 1994-02-24 1998-03-20 Intel Corp Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer
TW400483B (en) * 1994-03-01 2000-08-01 Intel Corp High performance symmetric arbitration protocol with support for I/O requirements
US5586297A (en) * 1994-03-24 1996-12-17 Hewlett-Packard Company Partial cache line write transactions in a computing system with a write back cache
US5528766A (en) * 1994-03-24 1996-06-18 Hewlett-Packard Company Multiple arbitration scheme
US5623700A (en) * 1994-04-06 1997-04-22 Dell, Usa L.P. Interface circuit having zero latency buffer memory and cache memory information transfer
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
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5687347A (en) * 1994-09-19 1997-11-11 Matsushita Electric Industrial Co., Ltd. Data providing device, file server device, and data transfer control method
US5548730A (en) * 1994-09-20 1996-08-20 Intel Corporation Intelligent bus bridge for input/output subsystems in a computer system
US5524235A (en) * 1994-10-14 1996-06-04 Compaq Computer Corporation System for arbitrating access to memory with dynamic priority assignment
US5553265A (en) * 1994-10-21 1996-09-03 International Business Machines Corporation Methods and system for merging data during cache checking and write-back cycles for memory reads and writes
US5555383A (en) * 1994-11-07 1996-09-10 International Business Machines Corporation Peripheral component interconnect bus system having latency and shadow timers
US5664124A (en) * 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
US5625779A (en) * 1994-12-30 1997-04-29 Intel Corporation Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge
US5594882A (en) * 1995-01-04 1997-01-14 Intel Corporation PCI split transactions utilizing dual address cycle
US5568619A (en) * 1995-01-05 1996-10-22 International Business Machines Corporation Method and apparatus for configuring a bus-to-bus bridge
US5630094A (en) * 1995-01-20 1997-05-13 Intel Corporation Integrated bus bridge and memory controller that enables data streaming to a shared memory of a computer system using snoop ahead transactions
US5778196A (en) * 1995-02-24 1998-07-07 Acar Laboratories, Incorporated Method and device for identifying a bus memory region
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
US5664150A (en) * 1995-03-21 1997-09-02 International Business Machines Corporation Computer system with a device for selectively blocking writebacks of data from a writeback cache to memory
US5619661A (en) * 1995-06-05 1997-04-08 Vlsi Technology, Inc. Dynamic arbitration system and method
US5634138A (en) * 1995-06-07 1997-05-27 Emulex Corporation Burst broadcasting on a peripheral component interconnect bus
US5694556A (en) * 1995-06-07 1997-12-02 International Business Machines Corporation Data processing system including buffering mechanism for inbound and outbound reads and posted writes
US5710906A (en) * 1995-07-07 1998-01-20 Opti Inc. Predictive snooping of cache memory for master-initiated accesses
US5649175A (en) * 1995-08-10 1997-07-15 Cirrus Logic, Inc. Method and apparatus for acquiring bus transaction address and command information with no more than zero-hold-time and with fast device acknowledgement
US5632021A (en) * 1995-10-25 1997-05-20 Cisco Systems Inc. Computer system with cascaded peripheral component interconnect (PCI) buses
US5673399A (en) * 1995-11-02 1997-09-30 International Business Machines, Corporation System and method for enhancement of system bus to mezzanine bus transactions
US5724529A (en) * 1995-11-22 1998-03-03 Cirrus Logic, Inc. Computer system with multiple PC card controllers and a method of controlling I/O transfers in the system
US5717876A (en) * 1996-02-26 1998-02-10 International Business Machines Corporation Method for avoiding livelock on bus bridge receiving multiple requests
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
US6108741A (en) * 1996-06-05 2000-08-22 Maclaren; John M. Ordering transactions
US5781748A (en) * 1996-07-19 1998-07-14 Compaq Computer Corporation Computer system utilizing two ISA busses coupled to a mezzanine bus
US5894563A (en) * 1996-11-20 1999-04-13 Apple Computer, Inc. Method and apparatus for providing a PCI bridge between multiple PCI environments

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006004196A1 (ja) * 2004-07-02 2006-01-12 Nec Corporation マルチプロセッサシステムおよびメモリアクセス処理方法
US7664900B2 (en) 2004-07-02 2010-02-16 Nec Corporation Multiprocessor system and method for processing memory access
US8386670B2 (en) 2007-01-15 2013-02-26 Ricoh Company, Ltd. System controlling device and image processing system
US8606977B2 (en) 2007-01-15 2013-12-10 Ricoh Company, Ltd. System controlling device and image processing system
JP2014017006A (ja) * 2009-05-29 2014-01-30 Intel Corp PCIExpressでのIDベースストリームを可能にする方法及び装置

Also Published As

Publication number Publication date
US6070209A (en) 2000-05-30
DE69725687D1 (de) 2003-11-27
EP0851361A1 (en) 1998-07-01
DE69725687T2 (de) 2004-05-13
US6138192A (en) 2000-10-24
EP0851361B1 (en) 2003-10-22

Similar Documents

Publication Publication Date Title
JPH10301893A (ja) コンピュータシステムにおけるデータバス間の送達トランザクション
US6199131B1 (en) Computer system employing optimized delayed transaction arbitration technique
US6279087B1 (en) System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations
US5987555A (en) Dynamic delayed transaction discard counter in a bus bridge of a computer system
KR100207887B1 (ko) 데이타 프로세싱 시스템 및 방법
US5996036A (en) Bus transaction reordering in a computer system having unordered slaves
US6212590B1 (en) Computer system having integrated bus bridge design with delayed transaction arbitration mechanism employed within laptop computer docked to expansion base
US5870567A (en) Delayed transaction protocol for computer system bus
US5535340A (en) Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US5835741A (en) Bus-to-bus bridge in computer system, with fast burst memory range
US6134619A (en) Method and apparatus for transporting messages between processors in a multiple processor system
US5850530A (en) Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data
US6098134A (en) Lock protocol for PCI bus using an additional "superlock" signal on the system bus
JP3391315B2 (ja) バス制御装置
US6012118A (en) Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus
JPH05216811A (ja) 二バス間のトランザクションを制御する再試行方法
US5930485A (en) Deadlock avoidance in a computer system having unordered slaves
JP3641003B2 (ja) 調停機構付きバス・システム
US5933612A (en) Deadlock avoidance in a split-bus computer system
USRE44688E1 (en) Bus transaction reordering in a computer system having unordered slaves
US7054987B1 (en) Apparatus, system, and method for avoiding data writes that stall transactions in a bus interface
KR100419679B1 (ko) 트랜잭션 요청 라우팅 방법
US5991855A (en) Low latency memory read with concurrent pipe lined snoops
US6425023B1 (en) Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests
US5768545A (en) Collect all transfers buffering mechanism utilizing passive release for a multiple bus environment

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070510

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070809

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080409

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081107