JPH11312141A - バス・ブリッジ - Google Patents

バス・ブリッジ

Info

Publication number
JPH11312141A
JPH11312141A JP11041607A JP4160799A JPH11312141A JP H11312141 A JPH11312141 A JP H11312141A JP 11041607 A JP11041607 A JP 11041607A JP 4160799 A JP4160799 A JP 4160799A JP H11312141 A JPH11312141 A JP H11312141A
Authority
JP
Japan
Prior art keywords
queue
transaction
tag
jump
bit
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.)
Granted
Application number
JP11041607A
Other languages
English (en)
Other versions
JP4248661B2 (ja
Inventor
Sharma Debendra Das
ディベンドラ・ダス・シャーマ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH11312141A publication Critical patent/JPH11312141A/ja
Application granted granted Critical
Publication of JP4248661B2 publication Critical patent/JP4248661B2/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
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention

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)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】所望の順位付けを維持しながら、異なるタイプ
のトランザクションを1つのバスから他のバスへ効率的
に転送するバス・ブリッジを提供する。 【解決手段】他のタイプに飛び越され得るトランザクシ
ョンが共通待ち行列を経由することなく直接飛び越し待
ち行列に記憶される。順序づけを維持するため、ロック
およびキーという1ビット・フィールドがそれぞれの待
ち行列の各エントリに備えられる。トランザクションが
飛び越し待ち行列に記憶される時、少くとも1つのエン
トリが共通待ち行列にあって先行エントリが共通待ち行
列に記憶されていれば、対応するロック・ビットは1に
され、同時に、共通待ち行列の先頭にあるエントリのキ
ー・ビットは1に変更される。ロックセットされている
飛び越し待ち行列エントリは、キー・ビットが1である
対応する共通待ち行列エントリが取り出されるまで、取
り出されることはできない。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的には,コン
ピュータ・システムに関するもので、特に、順位づけ制
約を持つトランザクションを経路指定するメカニズムに
関するものである。
【0002】
【従来の技術】相互に連結されるコンピュータ・ネット
ワークにおいて、諸装置はトランザクションを介して通
信する。トランザクションは1つまたは複数のパケット
を含み、何らかの意味のある情報を搬送する。例えば、
マルチプロセッサ・ネットワークにおけるCPUは、
「詮索応答」トランザクションで詮索要求に応答する。
相互接続構造における1つのパケットは、一般的には、
固定数の転送またはサイクルから成る。異なるトランザ
クションは、異なる数のパケットを必要とする。
【0003】異なるタイプのトランザクションの流れ
は、順位づけ制約によって制御される。この制約は、あ
らゆるトランザクションに関する相互の順位づけ関係を
指定する。ある種のトランザクション・タイプは、前進
を保証するため他のトランザクション・タイプを飛び越
えることを必要とし、また、別のトランザクション・タ
イプは、順位を保証するため他のトランザクション・タ
イプを飛び越えることを禁じられる。典型的には、この
ような順位づけ規則は、トランザクション・タイプのあ
らゆるペアの間の順位づけ関係を指定する順位づけテー
ブルによって提供される。
【0004】トランザクション・タイプの任意のペアP
およびQに関して、順位付けテーブルは、PがQを飛び
越えなければならないか、あるいは、PがQを飛び越え
てはならないか、あるいは、PがQを飛び越えても問題
ではないかを指定する。同様に、テーブルにおける別の
エントリは、QがPを飛び越えることができるか指定す
る。"PCI Local Bus Specification, Rev.2.1, PCI Spe
cial Interest Group,Portland, OR, June 1995"のPC
Iローカル・バス仕様における順位付けテーブルにこの
ような順位づけ制約の例を見ることができる。順序づけ
規則は、伝統的には、共通待ち行列にすべての到来トラ
ンザクションを書き込むことによって実施される。飛び
越し可能なトランザクションが共通待ち行列の先頭へ移
動する時、それは独立した別の飛び越し待ち行列(また
は待ち行列体系)に書き込まれる。
【0005】図4は、2つのPCIバス、A42および
B43を接続するPCI間ブリッジ41にPCIトラン
ザクションのサブセットを実施する典型的従来技術構成
40を示している。この構成は、ポストされるメモリー
書込み(すなわちPMW)および遅延される読み取り要求
(すなわちDRR)という2つのタイプのPCIトランザ
クションを取り扱う。PMWトランザクションは、デッ
ドロックを避けるために前のDRRトランザクションを
飛び越すことを要求される。しかしながら、DRRトラ
ンザクションは、順序づけモデルに従わなければなら
ず、PMWトランザクションを飛び越えることは許され
ない。PCIバスA42からPCIバス・ブリッジ41
に到着するトランザクションは、これらの制約を維持す
ような形態で待ち行列に書き込まれる必要がある。
【0006】従って、この手法は、DRRトランザクシ
ョンだけのための飛び越え待ち行列44とPMWおよび
DRRトランザクションが書き込まれる共通待ち行列4
5という2つの待ち行列を使用する。PCIバスAから
のDRRおよびPMWトランザクションの両者は共通待
ち行列45に記憶される。DRRトランザクションが共
通待ち行列の先頭に達すると、それは、飛び越え待ち行
列44に書き込まれる。そのDRRの後にPMWがあれ
ば、そのPMWは、DRRを飛び越えて、PCIバスB
43上に送り出されることができる。PMWのすべてが
送り出された後、DRRは送出される。
【0007】
【発明が解決しようとする課題】このような構成の問題
は、この構成がPCI仕様の順序づけ必要条件に合致し
ているとはいえ、PCIバスB43の利用可能なバンド
幅を十分活用していないため処理性能を低下させる点で
ある。DRRトランザクションが共通待ち行列から飛び
越し待ち行列へ書き込まれる時PCIバスBの利用度は
十分でなくなる。FIFO構造である共通待ち行列は、
DRRトランザクションが飛び越え待ち行列に書き込ま
れつつある時後続のPMWトランザクションをPCIバ
スへ送り出すことができない。このように、従来技術の
構成は、PCIバスB上で利用できる最大限のバンド幅
を達成することができない。
【0008】この構成のもう1つの問題は、共通待ち行
列のサイズが大きい必要があるという点である。特定タ
イプの大きいトランザクションは多量の記憶空間を必要
とする。これらの大きいトランザクションは待ち行列に
入れられず、直ちにバスに送出されることが理想的であ
る。しかしながら、順序づけを維持するため、これらの
トランザクションは、他のトランザクションとともに共
通待ち行列に納められなければならない。
【0009】従って、順序づけを維持しながら、上述の
ような処理性能隘路を除去し、共通待ち行列の所要のサ
イズを減少させるメカニズムに対する必要性が当業界に
存在する。
【0010】
【課題を解決するための手段】上記課題を解決する本発
明のシステムおよび方法は、飛び越し可能トランザクシ
ョンを共通待ち行列を通過させることなく、ソースにお
いて飛び越し待ち行列(または待ち行列体系)へ書き込む
メカニズムを使用する。このメカニズムは付加的制御論
理を用いて順序づけを維持する。従って、共通待ち行列
は飛び越し待ち行列にトランザクションを供給しない。
【0011】トランザクションを書き込む時点で、制御
論理はトランザクションが飛び越し可能か否か判断し
て、飛び越し可能なトランザクションであれば、それを
直接飛び越し待ち行列に記憶する。トランザクションが
飛び越し可能でない場合、制御論理はそのトランザクシ
ョンを共通待ち行列に書き込む。このメカニズムは、異
なる待ち行列に記憶された異なるトランザクションの間
の順序づけを維持するため、待ち行列内で付加的フィー
ルドを使用する。この付加されるフィールドは、特定の
トランザクションが別のトランザクションの前に到来し
たか後に到来したかを判別する。各トランザクション
は、順序づけを維持するために使用される付加ビットと
共に記憶される。付加ビット・フィールドは、各トラン
ザクションに対して1つのフィールドであり、共通待ち
行列および飛び越し待ち行列の両方に存在する。
【0012】このようなメカニズムを備える本発明の利
点として、共通待ち行列と飛び越し待ち行列を分岐する
ことによる処理性能向上、飛び越し待ち行列への直接書
き込み、飛び越しトランザクションの1回だけの書き込
みによる資源利用度の向上、および、飛び越しトランザ
クションを記憶しないことによる共通待ち行列サイズの
減少を通しての流れ制御の減少による処理性能の向上が
あげられる。
【0013】
【発明の実施の形態】図1は、2つのPCIバス12、
13を接続するPCI間ブリッジ11上でPCIトラン
ザクションを実施する本発明の構成10を示している。
この構成は、ポストされるメモリー書込み(すなわちP
MW)および遅延される読み取り要求(すなわちDRR)
という2つのタイプのPCIトランザクションを取り扱
う。PMWトランザクションは、デッドロックを避ける
ため前のDRRトランザクションを飛び越すことを要求
される。しかしながら、DRRトランザクションは、順
序づけモデルに従わなければならず、PMWトランザク
ションを飛び越えることは許されない。PCIバス12
からPCIバス・ブリッジ11に到着するトランザクシ
ョンは、これらの制約を維持すような形態で待ち行列に
書き込まれる必要がある。
【0014】従って、この手法は、DRRトランザクシ
ョンだけのための飛び越え待ち行列14とPMWトラン
ザクションが書き込まれる共通待ち行列15という2つ
の待ち行列を使用する。制御論理(図示されていない)
が、どの待ち行列に特定のトランザクションが記憶され
ているか判断する。PMWおよびDRRという2つのト
ランザクションは例示の目的のためのものである点注意
されるべきである。本発明のメカニズムは、いかなるプ
ロトコルのいかなる数のトランザクション・タイプに関
しても適用することができる。更に、用語「待ち行列」
はFIFO(先入れ先出し)構造を意味する点にも注意す
る必要がある。
【0015】図1は、ブリッジ11に、T0、T1、T
2、T3、T4、T5およびT6という一連のトランザ
クションがこの順番で到着していることを示している。
T0、T3、T4およびT6はDRRトランザクション
で、従って、飛び越し可能であり、飛び越し待ち行列1
4に書き込まれる。T1、T2およびT5はPMWトラ
ンザクションであり、共通待ち行列15に書き込まれ
る。本メカニズムは、異なる待ち行列における異なるト
ランザクションの間の順序づけを維持するため、タグ1
6、17を使用する。順序づけは、各トランザクション
のエントリ位置によって各待ち行列の範囲内で維持され
る。例えば、共通待ち行列15において、T1は先頭に
あり、T2およびT5はその順番でT1の後にある。同
じように、飛び越し待ち行列14に関して、T3、T4
およびT6はそれぞれの順番で記憶される。このよう
に、タグ16および17は、待ち行列の間の順序を維持
し、各待ち行列の先頭にあるどちらのエントリが相対的
に以前のトランザクションであるかを標示する。
【0016】図1に示されるように、タグは共通待ち行
列15における最新のトランザクションのエントリ位置
である。かくして、T0が飛び越し待ち行列に書き込ま
れる時、共通待ち行列は空きであるので、T0には0と
いうタグをつけられる。次に、T1およびT2が共通待
ち行列15に書き込まれ、それぞれ1および2というタ
グをつけられる。T3が飛び越し待ち行列14に到来す
る時、共通待ち行列における最新のエントリは2という
タグを持つT2であるので、T3には2というタグがつ
けられる。同様に、T4が飛び越し待ち行列14に到来
する時、共通待ち行列における最新のエントリはまだな
お2というタグを持つT2であるので、T4にも2とい
うタグがつけられる。次に、T5は共通待ち行列に書き
込まれ、3というタグを付けられる。従って、T6が飛
び越し待ち行列14に到来する時、共通待ち行列におけ
る最新のエントリは3というタグを持つT5であるの
で、T6には3というタグがつけられる。
【0017】タグ番号は、ある特定のDRRトランザク
ションの送出が試みられる前に送出されなければならな
いPMWトランザクションの番号を標示する。例えば、
T0は0というタグを持っているので、T0が送出され
る前にいかなるPMWトランザクションも送出してはな
らないことを標示する。しかしながら、DRRトランザ
クションの送出が試みられる前に送出できるPMWが存
在する。T3およびT4は2つのPMWトランザクショ
ンT1およびT2が送出されるまで待機しなければなら
ず、T6は3つのPMWトランザクションの送出を待
つ。注意されるべき点であるが、いずれかのDRRトラ
ンザクションが送出される前にすべてのPMWトランザ
クションを送出することができる。なぜなら、書き込み
は読み取りを飛び越すが、読み取りは書き込みを飛び越
すことはできない。かくして、フロー制御規則は次の通
りとなる。すなわち、読み取りすなわち飛び越し待ち行
列からのエントリは、そのタグが書込みすなわち共通待
ち行列の先頭の書込みタグ値より小さい場合あるいは共
通待ち行列が空の場合に、送出される。
【0018】従って、T0は、そのタグが書込み待ち行
列15の先頭のT1トランザクションのタグ値の1より
小さいので、読み取り待ち行列14から最初に取り出さ
れる。しかしながら、読み取りは飛び越されることこと
ができるという点を強調して、T1が最初に取り出され
ると仮定することもできる。この規則は、特定のエント
リに関して読取りが最新の値を常に取り出すことを保証
する点に注意する必要がある。すなわち、もしも読み取
りが書き込みを飛び越すとすれば、読み取りは古い値を
読むことになる。次に、2というタグを持つT2が送り
出される。このようにして、書込み待ち行列は3という
タグを持つ1つのエントリT5だけを持つ。次に、T0
が読み取り待ち行列から取り出される。制御論理(図示
されていない)は、書き込み待ち行列の先頭にある3と
いうタグを持つT5のタグとT0のタグを比較する。T
0のタグがT5のタグより小さいので、T0を送り出す
ことができる。T3およびT4は、それらのタグがT5
のタグより小さいので、送り出すことができる。制御論
理は、また、送出されるべき最新の書き込みトランザク
ションのタグを読み取りトランザクションのタグと比較
し、読み取りトランザクションのタグが送出される書き
込みトランザクションのタグより小さいか否かを判断し
て、小さい場合読み取りトランザクションが送り出され
る。T6は、そのタグがT5のタグと等しいので、T5
が送出されるまで、取り出すことはできない。T5が送
出された後、制御論理はT6を解放する。読み取りトラ
ンザクションの取り出しが試みられる前に送出されなけ
ればならない書き込みトランザクションの番号をタグが
標示する点に注意する必要がある。
【0019】注意すべき点であるが、各書き込みトラン
ザクションが到着する毎に、逐次増加するタグの値が割
り当てられるように、図1のタグは増加し続ける。従っ
て、タグのサイズを制限するため、単一ビット構成を使
用する。図2は、図1の構成の単一ビット版20の待ち
行列記憶を示す。トランザクションのシーケンスは図1
と同じものである。図1のタグは、ここでは、キーおよ
びロックと呼ばれる。キー・ビット21は書込みすなわ
ち共通待ち行列15と関連し、ロック・ビット22は読
み取りすなわち飛び越し待ち行列14と関連する。この
ように、各トランザクションは、記憶される待ち行列に
応じてロックまたはキーのいずれかの関連タグ・ビット
を持つ。読み取りトランザクション上でのロックされた
ビットすなわち1というタグは、書き込みトランザクシ
ョンが取り出されるまで読み取りトランザクションが取
り出されることを防止する。
【0020】例えば、図2の(G)に示されるように、T
0はロック・ビットを持っていないので、いつでも取り
出されることができる。T1はキー・ビットを持ってい
ないので、T1に続く読み取りトランザクションはな
い。読み取りT3は書き込みT2に引き続くトランザク
ションであるので、T2はキー・ビットを持ち、T3は
ロック・ビットを持つ。従って、T2が取り出されるま
で、T3は取り出されることはできない。読み取りがロ
ックされる毎に、キーが対応する書き込みに挿入される
点に注意する必要がある。読み取りT4は、T2によっ
てロックされている読み取りT3に引き続いているの
で、ロックされていない。従って、T4はT2が取り出
されるまで、取り出されることはできない。読み取りT
6は書き込みT5に引き続くトランザクションであるの
で、T5はキー・ビットを持ち、T6はロック・ビット
を持つ。従って、T5が取り出されるまで、T6は取り
出されることはできない。
【0021】このように、流れ制御は、書込みすなわち
共通待ち行列から読み取りすなわち飛び越し待ち行列へ
切り替えが行われる度毎に、切り替えに先行するトラン
ザクションにキーがつけられ、後続のトランザクション
にロックがかけられるというものである。注意すべき点
であるが、この制御は、切り替えの時点で書き込みすな
わち共通待ち行列にエントリがあると仮定する。ない場
合には、タグ値にゼロが書き込まれる。
【0022】図2の(A)において、トランザクションT
0が読み取り待ち行列に記憶される。書き込み待ち行列
が空であり切り替えが行われなかったので、ロック・ビ
ット・タグは0である。図2の(B)において、トランザ
クションT1が書込み待ち行列15に記憶される。書き
込みから読み取りへの切り替えが行われなかったので、
キー・ビット・タグは0である。図2の(C)において、
トランザクションT2が書込み待ち行列15に記憶され
る。書き込みから読み取りへの切り替えが行われなかっ
たので、キー・ビット・タグは0である。
【0023】図2の(D)において、トランザクションT
3が読み取り待ち行列14に記憶される。書き込み待ち
行列にエントリがある間に書き込みから読み取りへの切
り替えが行われたので、T2のキー・ビットは1に変更
され、T3のロック・ビットには1というタグが付けら
る。このように、T3のロックはT2が取り出される前
にT3が取り出されることを防止する。図2の(E)にお
いて、トランザクションT4が読み取り待ち行列14に
記憶される。書き込みから読み取りへの切り替えが行わ
れなかったので、T4のロック・ビットは0というタグ
をつけられる。T3のロックはT2が取り出される前に
T4が取り出されることを防止する点に注意する必要が
ある。
【0024】図2の(F)において、トランザクションT
5が書込み待ち行列15に記憶される。書き込みから読
み取りへの切り替えが行われなかったので、T5のキー
・ビット・タグは0である。図2の(G)において、トラ
ンザクションT6が読み取り待ち行列14に記憶され
る。書込み待ち行列にエントリがある間に書き込みから
読み取りへの切り替えが行われたので、T5のキー・ビ
ットは1に変更され、T6のロック・ビットには1とい
うタグが付けらる。このように、T6のロックはT5が
取り出される前にT6が取り出されることを防止する。
【0025】図3は、図1の単一ビット版構成30の記
憶動作を示すものであるが、記憶動作と共に行われる取
り出し動作をも含んでいる。取り出し決定は、トランザ
クションの宛先における待ち行列空間のような外的因子
に従って、制御論理(図示されていない)によって行われ
る。トランザクションのシーケンスは図1および図2と
同じものである。図3はキー・レジスタ31を含む。キ
ー・レジスタ31は、書き込みトランザクションに関し
て取り出されたキーのカウントを維持する。1というキ
ーを持つ書き込みトランザクションが取り出される毎に
キー・レジスターは増分され、1というロックを持つ読
み取りトランザクションが取り出される毎にキー・レジ
スタは減分される。
【0026】図3の構成は、次のような規則に従って動
作する。但し、この規則はいかなるシステムにおいても
使用することができる。
【0027】規則1:1にセットされたキーを持つ共通
待ち行列のトランザクションが取り出される時、キーは
解放される。キー・レジスタすなわちカウントは1増分
される。
【0028】規則2:飛び越し待ち行列のトランザクシ
ョンは、ロックされてないすなわちロック=0であるか
またはキー・レジスタが0を超えていれば、取り出され
ることができる状態にあるとみなされる。
【0029】規則3:飛び越し待ち行列のトランザクシ
ョンは、規則2で定義に従って取り出される状態にある
場合にのみ、待ち行列から取り出される。
【0030】規則4:飛び越し待ち行列のトランザクシ
ョンが取り出される時、キー・レジスターはl減分され
る。
【0031】規則5:キー・レジスタは起動時に0に設
定される。
【0032】図3の(A)に示されるように、トランザク
ションT0が読み取り待ち行列に記憶される。書き込み
待ち行列が空であり切り替えが行われなかったので、ロ
ック・ビット・タグは0である。キーもロックも取り出
されなかったので、レジスタ・キーは初期設定のまま0
である。図3の(B)において、トランザクションT1が
書き込み待ち行列15に記憶される。切り替えが行われ
なかったので、キー・ビット・タグは0である。図3の
(C)において、トランザクションT2が書き込み待ち行
列15に記憶される。切り替えが行われなかったので、
キー・ビット・タグは0である。図3の(D)において、
トランザクションT1が取り出される。T1のキーは1
でないので、キー・レジスタ31は0のままとされる。
図3の(E)において、トランザクションT3が読み取り
待ち行列14に記憶される。エントリが書き込み待ち行
列にある間に書き込み待ち行列から読み取り待ち行列の
記憶への切り替えが行われたので、T2のキー・ビット
は1に変更され、T3のロック・ビットに1というタグ
がつけられる。従って、T3のロックは、T2が取り出
される前にT3が取り出されることを防止する。
【0033】図3の(F)において、トランザクションT
4が読み取り待ち行列14に記憶される。書き込み待ち
行列から読み取り待ち行列への切り替えが行われなかっ
たので、T4のロック・ビットは0である。T3のロッ
クは、T2が取り出される前にT4が取り出されること
を防止する点注意する必要がある。図3の(G)におい
て、トランザクションT2が取り出される。T2のキー
は1であったので、キー・レジスタ31は1増分され
る。図3の(H)において、トランザクションT0が取り
出される。T0はロックされていなかったので、キー・
レジスタは1のままとされる。
【0034】図3の(I)において、トランザクションT
3が取り出される。T3はロックされていたので、キー
・レジスタは1減分され、0とされる。図3の(J)にお
いて、トランザクションT5が書き込み待ち行列15に
記憶される。切り替えが行われなかったので、T5のキ
ー・ビットは0というタグがつけられる。図3の(K)に
おいて、トランザクションT5が取り出される。T5に
キーはつけられていなかったので、キー・レジスタ31
は0のままとされる。図3の(L)において、トランザク
ションT6が読み取り待ち行列14に記憶される。切り
替えが行われたが、書き込み待ち行列が空であるので、
T6のロック・ビットは0である。図3の(M)および
(N)におて、トランザクションT4およびT6がそれぞ
れ取り出される。
【0035】注意すべき点であるが、図2および図3に
示されるシーケンスは例示のためのものにすぎず、待ち
行列の記憶および取り出しは、順序づけおよび飛び越し
規則が守られる限り、多くの異なるシーケンスで発生さ
せることが可能である。
【0036】また、本発明のメカニズムは、単一の共通
の待ち行列と複数の飛び越し待ち行列という形態につい
ても動作する。その場合、飛び越し待ち行列の各々は特
定のトランザクションを保有する。どのトランザクショ
ンがどのトランザクションを飛び越すことができるかと
いうことに関する対応する規則が、制御論理に含められ
なければならない。制御論理のテーブルは、トランザク
ションTiおよびTjというあらゆるペアに関して、Ti
がTjを飛び越すことができるか、TiがTjを飛び越す
ことができないか、TiがTjを飛び越すことができるか
できないか問題でないか、などの詳細を記述する。メカ
ニズムは、飛び越し待ち行列の各々毎に共通待ち行列に
別々のキー・ビットを用意する。このように、図2およ
び図3の書き込み待ち行列は、各読み取り待ち行列に対
して1つずつ、複数のキー・ビット・エントリを持つ。
各読み取り待ち行列は単一のロック・ビットを持つ。こ
のようにして、書き込み待ち行列の単一エントリが、読
み取り待ち行列における複数の読み取りすなわち飛び越
しエントリの取り出しを制御する。
【0037】更に注意すべき点であるが、本発明のメカ
ニズムは、複数の共通待ち行列と単一の飛び越し待ち行
列という構成についても動作する。メカニズムは、共通
待ち行列の各々に対して飛び越し待ち行列に別々のロッ
ク・ビットを用意する。すなわち、図2および図3の書
き込み待ち行列の各々は単一のキー・ビット・エントリ
を持ち、一方、読み取り待ち行列は、書き込み待ち行列
の各々毎に1つ、複数のロック・ビット・エントリを持
つ。従って、飛び越されるトランザクションの各々は、
読み取り待ち行列から取り出しの前に書き込み待ち行列
のトランザクションが取り出されることを保証する。
【0038】更にまた、本発明のメカニズムは、複数の
共通待ち行列と複数の飛び越し待ち行列という構成につ
いても動作する。1つの共通待ち行列に対応する各飛び
越し待ち行列に関して1つのペアのロック・キー待ち行
列が必要とされる。本発明のメカニズムは、また、1つ
または複数の飛び越し待ち行列を持つ共通待ち行列がよ
り高いレベルの別の1つの共通待ち行列に供給されるよ
うな階層構造においても動作する。そのようなケースで
は、より低いレベルの共通の待ち行列および飛び越し待
ち行列の出力が、より高いレベルの共通待ち行列および
飛び越し待ち行列に記憶される。
【0039】以上本発明の特定の実施形態を記述した
が、上述された概念および特定の実施形態は本発明の同
じ目的を達成するため他の構造を設計および修正する基
礎として容易に活用することができることは当業者に認
められることであろう。
【0040】本発明には、例として次のような実施様態
が含まれる。
【0041】(1)第1のバスを第2のバスに接続さ
せ、複数のタイプのトランザクションを含む一連のトラ
ンザクションを第1のバスから第2のバスへ転送するバ
ス・ブリッジであって、上記複数のタイプのトランザク
ションのうちの少くとも1つの別のタイプのトランザク
ションによって飛び越され得る1つの特定タイプの少く
とも1つのトランザクションを記憶する第1の待ち行列
と、上記少くとも1つの別のタイプの少なくとも1つの
トランザクションを記憶する第2の待ち行列と、を備
え、上記少くとも1つの特定タイプのトランザクション
が上記第1のバスから上記第1の待ち行列へ直接送られ
る、バス・ブリッジ。
【0042】(2)1つのタグ・レジスタが上記第1の
待ち行列の各エントリに関連づけられている複数タグ・
レジスタの第1セットと、1つのタグ・レジスタが上記
第2の待ち行列の各エントリに関連づけられている複数
タグ・レジスタの第2セットと、を更に備える上記
(1)に記載のバス・ブリッジ。
【0043】(3)バス・ブリッジに記憶されているト
ランザクションがフロー制御に従って上記第2のバスへ
取り出される、上記(2)に記載のバス・ブリッジ。
【0044】(4)上記流れ制御が、上記複数のトラン
ザクション・タイプのうちのどのトランザクション・タ
イプが、上記複数のトランザクション・タイプのうちの
他のトランザクション・タイプを飛び越えることができ
るかを定義する規則を含む、上記(3)に記載のバス・
ブリッジ。
【0045】(5)上記第2のタグ・レジスタ・セット
の各タグ・レジスタはキー・ビットおよび非キー・ビッ
トを記憶し、第2の待ち行列に記憶される特定のトラン
ザクションに関する上記第2セットの1つの特定のタグ
・レジスタが非キー・ビットを持ち、上記特定のタグ・
レジスタに関連する特定トランザクションに後続するト
ランザクションが上記第1の待ち行列に記憶され、か
つ、上記後続トランザクションが記憶される時該特定ト
ランザクションが上記第2の待ち行列に存在する場合、
上記特定のタグ・レジスタのビットがキー・ビットに変
更される、上記(2)に記載のバス・ブリッジ。
【0046】(6)上記第2のタグ・レジスタ・セット
の各タグ・レジスタはキー・ビットおよび非キー・ビッ
トを記憶し、上記第1のタグ・レジスタ・セットの各タ
グ・レジスタはロック・ビットおよびロック解放ビット
を記憶し、第1の待ち行列に記憶される特定トランザク
ションに先行して第2の待ち行列に記憶されているトラ
ンザクションがキー・ビットを含むタグ・レジスタを持
ち、かつ、該特定トランザクションが第1の待ち行列に
記憶される時上記先行トランザクションが上記第2の待
ち行列に存在する場合、第1の待ち行列に記憶される特
定のトランザクションに関する上記第1セットの1つの
特定のタグ・レジスタがロック・ビットを持ち、そうで
ない場合、ロック解放ビットを持つ、上記(2)に記載
のバス・ブリッジ。
【0047】(7)上記第1のタグ・レジスタ・セット
の各タグ・レジスタはロック・ビットおよびロック解放
ビットを記憶し、第1の待ち行列に記憶される特定トラ
ンザクションに先行して第2の待ち行列に記憶されてい
るトランザクションがキー・ビットを含むタグ・レジス
タを持ち、かつ、該特定トランザクションが第1の待ち
行列に記憶される時上記先行トランザクションが上記第
2の待ち行列に存在する場合、第1の待ち行列に記憶さ
れる特定のトランザクションに関する上記第1セットの
1つの特定のタグ・レジスタがロック・ビットを持ち、
そうでない場合、ロック解放ビットを持つ、上記(5)
に記載のバス・ブリッジ。
【0048】(8)タグ・レジスタにロック・ビットを
有して上記第1の待ち行列に記憶されている1つ特定の
トランザクションは、タグ・レジスタにキー・ビットを
有して上記第2の待ち行列に記憶されている別のトラン
ザクションが上記第2のバスへ取り出されるまでは、上
記第2のバスへ取り出されることを禁じられる、上記
(7)に記載のバス・ブリッジ。
【0049】(9)タグ・レジスタにキー・ビットを持
って取り出されたトランザクションの数、および、タグ
・レジスタにロック・ビットを持って取り出されたトラ
ンザクションの数の両方を追跡するキー・レジスタを更
に備える、上記(8)に記載のバス・ブリッジ。
【0050】(10)上記キー・レジスタが、タグ・レ
ジスタにキー・ビットを持って取り出されるトランザク
ションの各々毎に増分され、タグ・レジスタにロック・
ビットを持って取り出されるトランザクションの各々毎
に減分される、上記(9)に記載のバス・ブリッジ。
【0051】
【発明の効果】本発明は、共通待ち行列と飛び越し待ち
行列を分岐することによって、バス・ブリッジの処理性
能向上および資源利用度の向上を実現する。
【図面の簡単な説明】
【図1】2つのPCIバスを接続するPCI間ブリッジ
上でPCIトランザクションを実施する本発明の構成を
示すブロック図である。
【図2】図1の構成の単一ビット版にトランザクション
を書き込むシーケンスを示すブロック図である。
【図3】図1の構成の単一ビット版との間でトランザク
ションを書き込みおよび取り出しするシーケンスを示す
ブロック図である。
【図4】2つのPCIバスを接続するPCI間ブリッジ
上でPCIトランザクションを実施する従来技術の構成
を示すブロック図である。
【符号の説明】
10 バス・ブリッジ 12 第1のバス 13 第2のバス 14 第1の待ち行列または飛び越し待ち行列 15 第2の待ち行列または共通待ち行列

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】第1のバスを第2のバスに接続させ、複数
    のタイプのトランザクションを含む一連のトランザクシ
    ョンを第1のバスから第2のバスへ転送するバス・ブリ
    ッジであって、 上記複数のタイプのトランザクションのうちの少くとも
    1つの別のタイプのトランザクションによって飛び越さ
    れ得る1つの特定タイプの少くとも1つのトランザクシ
    ョンを記憶する第1の待ち行列と、 上記少くとも1つの別のタイプの少なくとも1つのトラ
    ンザクションを記憶する第2の待ち行列と、 を備え、 上記少くとも1つの特定タイプのトランザクションが上
    記第1のバスから上記第1の待ち行列へ直接送られる、 バス・ブリッジ。
JP04160799A 1998-03-19 1999-02-19 バス・ブリッジ Expired - Lifetime JP4248661B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/044,660 US6076130A (en) 1998-03-19 1998-03-19 System and method for efficient communication between buses
US044660 1998-03-19

Publications (2)

Publication Number Publication Date
JPH11312141A true JPH11312141A (ja) 1999-11-09
JP4248661B2 JP4248661B2 (ja) 2009-04-02

Family

ID=21933605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04160799A Expired - Lifetime JP4248661B2 (ja) 1998-03-19 1999-02-19 バス・ブリッジ

Country Status (4)

Country Link
US (1) US6076130A (ja)
EP (1) EP0944001B1 (ja)
JP (1) JP4248661B2 (ja)
DE (1) DE69936679T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334772A (ja) * 2006-06-16 2007-12-27 Canon Inc データ転送装置及びその制御方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US6976083B1 (en) * 1999-02-19 2005-12-13 International Business Machines Corporation Apparatus for providing direct data processing access using a queued direct input-output device
US6654837B1 (en) * 1999-12-28 2003-11-25 Intel Corporation Dynamic priority external transaction system
US6615295B2 (en) * 2000-12-26 2003-09-02 Hewlett-Packard Development Company, L.P. Relaxed read completion ordering in a system using transaction order queue
US6728790B2 (en) * 2001-10-15 2004-04-27 Advanced Micro Devices, Inc. Tagging and arbitration mechanism in an input/output node of a computer system
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
US7443869B2 (en) * 2003-08-04 2008-10-28 Intel Corporation Deadlock avoidance queuing mechanism
US7447812B1 (en) * 2004-03-23 2008-11-04 Integrated Device Technology, Inc. Multi-queue FIFO memory devices that support flow-through of write and read counter updates using multi-port flag counter register files
US7165131B2 (en) * 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
US20070052704A1 (en) * 2005-09-08 2007-03-08 Arm Limited 3D graphics image formation
US9772888B2 (en) * 2013-04-10 2017-09-26 Wind River Systems, Inc. Semaphore with timeout and lock-free fast path for message passing architectures
US11281618B2 (en) * 2014-10-31 2022-03-22 Xlnx, Inc. Methods and circuits for deadlock avoidance

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5729767A (en) * 1994-10-07 1998-03-17 Dell Usa, L.P. System and method for accessing peripheral devices on a non-functional controller
US5687329A (en) * 1995-09-29 1997-11-11 International Business Machines Corporation Information handling system including a data bus management unit, an address management unit for isolating processor buses from I/O and memory
US5673399A (en) * 1995-11-02 1997-09-30 International Business Machines, Corporation System and method for enhancement of system bus to mezzanine bus transactions
US6108741A (en) * 1996-06-05 2000-08-22 Maclaren; John M. Ordering transactions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334772A (ja) * 2006-06-16 2007-12-27 Canon Inc データ転送装置及びその制御方法

Also Published As

Publication number Publication date
EP0944001A2 (en) 1999-09-22
DE69936679T2 (de) 2008-04-03
JP4248661B2 (ja) 2009-04-02
US6076130A (en) 2000-06-13
DE69936679D1 (de) 2007-09-13
EP0944001B1 (en) 2007-08-01
EP0944001A3 (en) 2000-09-20

Similar Documents

Publication Publication Date Title
US8453147B2 (en) Techniques for reducing thread overhead for systems with multiple multi-threaded processors
JP4263147B2 (ja) コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置
US8010966B2 (en) Multi-threaded processing using path locks
US8214845B2 (en) Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
JP3365705B2 (ja) 分散型データ処理システム
US7853951B2 (en) Lock sequencing to reorder and grant lock requests from multiple program threads
JP4248661B2 (ja) バス・ブリッジ
US7209990B2 (en) Maintain fairness of resource allocation in a multi-node environment
US6587926B2 (en) Incremental tag build for hierarchical memory architecture
EP1741023B1 (en) Communicating protected data within locking messages
JP2002508100A (ja) 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ
US7383336B2 (en) Distributed shared resource management
US5371893A (en) Look-ahead priority arbitration system and method
JP2004523829A (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
US20070044103A1 (en) Inter-thread communication of lock protected data
US6185650B1 (en) High performance locking facility
US20030014591A1 (en) Scarfing within a hierarchical memory architecture
EP1493081A2 (en) Data transfer mechanism
US10911038B1 (en) Configuration mesh data bus and transactional memories in a multi-processor integrated circuit
US9304706B2 (en) Efficient complex network traffic management in a non-uniform memory system
EP1631906B1 (en) Maintaining entity order with gate managers
US20160055111A1 (en) Using a credits available value in determining whether to issue a ppi allocation request to a packet engine
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート
US20130219102A1 (en) Local Event Ring In An Island-Based Network Flow Processor
US6976141B2 (en) Pipelined multi-access memory apparatus and method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080929

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090114

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

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20140123

Year of fee payment: 5

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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