JP3579198B2 - データ処理システム及びデータ処理方法 - Google Patents
データ処理システム及びデータ処理方法 Download PDFInfo
- Publication number
- JP3579198B2 JP3579198B2 JP26316096A JP26316096A JP3579198B2 JP 3579198 B2 JP3579198 B2 JP 3579198B2 JP 26316096 A JP26316096 A JP 26316096A JP 26316096 A JP26316096 A JP 26316096A JP 3579198 B2 JP3579198 B2 JP 3579198B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data transfer
- transaction
- memory
- transactions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Description
【発明の属する技術分野】
本発明は、データ処理システムに関し、より詳細には、ホストと周辺装置との間のインバウンドおよびアウトバウンドの読み出しおよび転記された書き込みを効率的に扱うための機構を含むデータ処理システムに関する。
【0002】
【従来の技術】
周辺部品インタコネクト(PCI)バス仕様のようなデータ処理システムに使用するための多くの標準バス・アーキテクチャは、同じバス・プロトコルを有する少なくとも二つのバスを接続するバス間ブリッジを横切るトランザクションのための順序づけ規則を含む。そのようなトランザクションの例は、ホスト・プロセッサからアウトバンドに周辺装置に至る読み出し要求、周辺装置からインバウンドにホスト・プロセッサに至るデータを含む読み出し返答(読み出し要求に対する)または書き込みコマンドがバス間ブリッジ中のバッファに転記されて、ホストが他の処理を進めることを許可する転記された書き込みである。本明細書中、「転記された書き込み」とは、開始側のバスにおいて書き込みが完了し、その書き込みが、行き先バスにおける将来の完了に備えてホスト・ブリッジ中に転記されているものをいう。現在のバス間アーキテクチャは、バス間ブリッジを横切る読み出しトランザクションを完了する前に、アウトバウンド(ホスト・プロセッサから離れる)およびインバウンド(ホスト・プロセッサに向かう)の両方向の書き込みバッファをフラッシュ消去することを要するか、特定のバス間順序づけ規則、例えば相互参照した特許出願AA9−95−012に前記し、PCIバス・アーキテクチャのPCIローカル・バス仕様バージョン2.1に述べられたものを定義するかのいずれかである。バッファをフラッシュ消去する必要性は、プロセッサの読み出しアクセスを待機させ、ブリッジ・バッファ中に転記された書き込みがあるならば、そのようなアクセスが再試行されることにより、使用中のサーバの場合に性能の問題を生じさせるおそれがある。本明細書中、「再試行」とは、マスタによってアクセスされている標的装置がそのアクセスを認識するが、その装置が使用中であり、トランザクションを停止するということを合図することに関していう。そして、マスタは後で再びアクセスを試みる。
【0003】
一つのPCIバスを別のPCIバスに接続するバス間ブリッジを、本明細書中、「PCI−PCIブリッジ」と呼ぶ。PCI−PCIブリッジを横切るトランザクションのための順序づけ規則が、PCIローカルバス仕様改訂2.1に包含されている。ホスト・プロセッサ、システム・バスまたは他のシステム相互接続をPCIバスに接続するブリッジを、本明細書中、「PCIホスト・ブリッジ(PHB)」または単に「ホスト・ブリッジ」と呼ぶ。
【0004】
ホスト・ブリッジには、PCI−PCIブリッジに要求されるものの他に独自の要件があるが、また、ホスト・ブリッジの場合、ホスト・ブリッジ・インタフェースの一次(システム)側の大部分のトランザクションのソースがI/O装置よりもホスト・プロセッサによって開始されるため、PCI−PCIブリッジと同じ制約のすべてがあるわけではない。
【0005】
いくつかの従来技術のブリッジ・アーキテクチャが、性能を改善し、処理能力の遅延を解消することを試みている。
【0006】
従来技術として、ネットワークを相互接続するマルチポート・ブリッジをもち、データを、読み出しか書き込みかを問わず、ブリッジ内での一様な扱いによって転送することを保証する緩衝部品を含む高性能ブリッジのアーキテクチャがある。
【0007】
この技術は一般にブリッジの性能における改善に関するが、システムの性能を下げる読み出しトランザクションを完了する前にバッファをフラッシュ消去しなければならない問題に取り組んではいない。
【0008】
また、他の従来技術においては、多数の独立バッファ、メモリ・インタフェースおよび中央制御ユニットが接続されている共通のバスにより、メモリ・インタフェースがソース・ユーザからメッセージを受け、そのメッセージを選択されたバッファに記憶し、それらのバッファを連鎖する。制御装置が、それがメモリ・インタフェースから受けるコマンドに応答して、インバウンド・メッセージ・キューおよびアウトバウンド・メッセージ・キューを生成する。
【0009】
この技術は、高性能バス・ブリッジ・アーキテクチャに対して類似点をいくつか有するが、転記された書き込みのトランザクションに続く読み出しトランザクションを完了する前にバッファをフラッシュ消去する必要性の問題に対する解決方法を扱ってもいないし示唆してもいない。
【0010】
また、他の従来技術には、プロセッサから周辺装置に情報を読み出し、ネットワーク環境においてブリッジングを行うための多数のインバウンドおよびアウトバウンドのバッファがある。
【0011】
この技術は、バッファ・メモリを含むバス間ブリッジを有しているが、書き込みトランザクションと読み出しトランザクションとの間でバッファをフラッシュ消去する必要性を解消するバス間ブリッジにおける性能を改善するための機構を有していない。
【0012】
上述の従来技術のいずれも、書き込み動作に続く読み出し動作のためにバッファをフラッシュ消去する必要性を解消する性能の改善を教示してもいないし示唆してもいない。
【0013】
さらに、従来技術は、混在する多数のインバウンドおよびアウトバウンドのトランザクションを処理する問題を適切に扱っていない。加えて、従来技術は、異なるプロトコルを有するバスどうし、例えばシステム・バスとI/Oバスとをインタフェースさせて、システム干渉性定義域要件、I/Oバス要件、デッドロック回避および性能の観点を考慮しながら、トランザクション順序づけ要件を合わせなければならないホスト・ブリッジ独自の要件に対処していない。
【0014】
特に、システム・バスは通常、特定のトランザクションを、データを要求/提供している装置に対してタグ付けする能力を有するため、システム・バスをI/Oバスと相互接続する場合、特定の問題が生じる。しかし、I/Oバス(特にPCIバス)は、装置に対してトランザクションをタグ付けする能力を有さず、アドレスに基づいてデータにアクセスするだけであり、これがデータ・コヒーレンシーに関して問題を引き起こしかねない。すなわち、最初の装置が特定のアドレスからデータを要求すると、ブリッジがこの最初の装置に対して再試行を実施し、それに対し、後でデータを取りに戻ってくるように伝えることができる。そして、ブリッジは、特定のアドレスからデータを取得し、そのデータをブリッジ中のバッファなどに記憶して、第一の装置がそのデータを再び要求してくるのを待つ。第一の装置がデータを再び要求してくる前に、第二の装置が他のデータをこの特定のアドレスに書き込み、それを読み出そうとするかもしれない。第一の装置によって要求されるデータは今やブリッジ中のバッファの中にあり、通常のバス間ブリッジは、特定の装置に関してデータをタグ付けする能力を有さず、ただ、特定のアドレスからデータが要求されたことを知るだけであるため、そのデータは第二の装置に提供される。したがって、異なる装置によって同じアドレスからデータが要求されるとき、第一の装置のためのデータが第二の装置に提供されることになるため、問題が起きるということが理解されよう。このように、第二の装置が第一の装置からデータを「奪った」ことになり、それが誤った結果を招くおそれがある。装置が、別の装置に向けられた違うデータを取得してしまうことを防ぎ、かつ、トランザクションの順序外処理を可能にするブリッジが必要であることが理解されよう。
【0015】
記憶トランザクションがブリッジの出力バッファ中で保留状態にある同じときに特定のI/O周辺装置がシステム・メモリに対して直接メモリ・アクセス(DMA)を試みるとき、もう一つの問題が生じる。これは、記憶がDMA動作の完了を待ち、DMAトランザクションが記憶の終了を待つところのデッドロック状態を引き起こす。より具体的には、多くのタイプのI/Oバスおよびそれらの対応する周辺装置は「再試行」能力をもたない。したがって、ある周辺装置がバスにアクセスするとき、その装置は、そのトランザクションが完了するまでバスの制御を維持する。例えば、周辺装置は、システム・バスに接続されたシステム・メモリからデータを要求するかもしれない。この場合、読み出し要求がブリッジのトランザクション待ち行列中に配される。続いて、メモリからの要求されたデータを含む読み出し返答動作がブリッジに提供される。しかし、その間に、システム・バスに接続されたプロセッサが記憶動作を実施して、先にDAMデータをシステム・メモリから要求していた周辺装置にデータを配置してしまうかもしれない。この記憶動作がブリッジ待ち行列中のDMAデータ返答トランザクションよりも先に起こるならば、デッドロック状態が起こる。すなわち、周辺装置が、DMAデータを受けるまで、他の動作を進めることができず、記憶トランザクションがブリッジ待ち行列中のDMAデータ返答トランザクションよりも先に起こるため、要求を出した周辺装置に向けられる記憶トランザクションは完了することができない。したがって、このデッドロック状態を解消し、データ処理システム中で改善されたデータ転送動作を可能にするブリッジが必要であることが理解されよう。
【0016】
【発明が解決しようとする課題】
したがって、本発明の目的は、システムの高い性能水準を維持しながらも、読み出し要求、読み出し返答、I/O書き込みおよび転記されたメモリ書き込みを効率的な方法で制御し、適切なホスト・ブリッジ・トランザクション順序づけを提供し、デッドロックを回避するための制御機構を有して、ホスト・ブリッジ中で多数の混在するトランザクションをインバウンドおよびアウトバウンドの両方向に効率的に扱うことにある。
【0017】
【課題を解決するための手段】
したがって、データ処理システムは、ホスト・プロセッサと、多数の周辺装置と、一つ以上のホスト・プロセッサ、周辺装置および相互接続された周辺装置をもつ他のホスト・プロセッサをネットワークにおけるように接続することができる一つ以上のブリッジとを含む。ホスト・ブリッジが、一次バス(例えばシステム・バス)と二次バス(例えばPCIバスのようなI/Oバス)とを接続する。ここで、理解しやすいよう、一次バスを、アウトバウンド・トランザクションのソースおよびインバウンド・トランザクションの行き先とみなし、二次バスを、アウトバンド・トランザクションの行き先およびインバウンド・トランザクションのソースとみなす。具現態様に依存して、一次バス上の種々のトランザクションが二次バス上の他のトランザクションと同時に起こることもあるし起こらないこともある。各ホスト・ブリッジは、アウトバウンド・データ経路と、インバウンド・データ経路と、制御機構とを含む。アウトバウンド・データ経路は、トランザクションを一次バスからの受け取り順(または他の順序)に記憶するための待ち行列バッファであって、待ち行列バッファ中の要求が、読み出し要求と書き込み要求との間で混在していてもよいところの待ち行列バッファを含み、また、読み出し返答データおよびアドレス情報を記憶するための多数の他のバッファを含む。
【0018】
インバウンド経路はアウトバウンド経路と鏡像的に対照するものであり、読み出し要求および書き込み要求がトランザクション・バッファに記憶され、読み出し返答が多数の他のバッファに記憶される。ホスト・ブリッジ中のインバウンド経路およびアウトバウンド経路はいずれも、両方向への活動を考慮し、バイパス・トランザクションを許可または禁止する状態機械によって制御される。本明細書中、「バイパス」とは、あるトランザクションがその後続のトランザクションよりも先に待ち行列に加わったとしても、先行のトランザクションの前に後続のトランザクションを処理することが許可されることをいう。
【0019】
本発明の特徴は、インバウンドおよびアウトバウンドのトランザクション要求を、所定の状態機械の制御の下で、特定のタイプのトランザクションおよび定義された順序づけ規則に基づき、順次または非順次のいずれにも扱うことができることにある。
【0020】
本発明のもう一つの特徴は、バッファをフラッシュ消去することなく読み出しトランザクションが書き込みトランザクションの後に続くことを許可する機構により、ホスト・ブリッジ中のインバウンドおよびアウトバウンドのトランザクションを効率的に扱うことができることにある。
【0021】
本発明のもう一つの特徴は、種々のトランザクションがホスト・ブリッジを横切るとき、それらのトランザクションに関して適切なデータ整合性が維持されることにある。
【0022】
他のトランザクション、例えば読み出し要求は、開始側のバス上で完了する前に行き先バス上で完了して(データが取り出されて)いなければならない。例えば、ホスト・プロセッサは、I/Oバス上の周辺装置からデータを要求するかもしれない。そのデータは、トランザクションが完了したとみなされる前に、行き先バス上の周辺装置から取り出され、ホスト・ブリッジを介して開始側のバス上のホスト・プロセッサに提供されなければならない。本発明を特徴を用いると、転記された書き込みをフラッシュ消去することなく、トランザクション、例えば読み出しアクセスの処理を進めることができる。
【0023】
本明細書中、「転記された読み出し」とは、標的装置がアクセスを認識し、それが使用中であり、再試行制御信号によってアクセスを終了することを合図するものをいう。マスタ(要求側の装置)は後で再びアクセスを試みる。そして、本発明のホスト・ブリッジが後続の処理に備えて読み出し要求を転記して、マスタが後で再びアクセスを試みるとき、読み出されたデータを利用可能にできるようにする。ホスト・ブリッジが要求されたデータを取得する前にマスタが再び試行するならば、ブリッジは再び再試行を合図するが、アクセス要求の第二のコピーを緩衝記憶しない。ホスト・ブリッジの場合、プロセッサからの読み出し要求がタグ付けされてもよく、プロセッサが再試行されることを要しない。
【0024】
本発明のもう一つの特徴は、一般に、性能の改善および具現化しやすさのため、ロード動作(ホスト・プロセッサに対する読み出し動作)経路および記憶(ホスト・プロセッサに対する書き込み動作)が、周辺装置とシステム・メモリとの間の直接メモリ・アクセス(DMA)経路から独立していることにある。ロードおよび記憶動作は、ロードがホスト・プロセッサへのデータのロードを生じさせ、記憶がホスト・プロセッサから周辺装置へのデータの記憶を生じさせるというトランザクションの流れを考慮していることに注目すべきである。
【0025】
本発明のさらに別の特徴は、ホスト・ブリッジの周辺メモリ空間または周辺I/O空間(I/O出力バッファ)のいずれかへのロード要求が、同じホスト・ブリッジの周辺メモリ空間(メモリ出力バッファ)または周辺I/O空間のいずれかへの先行のロードの前には、両方のロードが同じアドレスに向かう場合、絶対にI/Oバスに通されてはならないということにある。アドレスが異なるとき、これは性能の改善を可能にする(通過を許す)が、一方または両方のプロセッサがその同じアドレスに書き込むとき、一方のプロセッサがもう一方のプロセッサのデータを奪う(すなわち無効データを得る)問題を回避する。
【0026】
本発明のもう一つの特徴は、デッドロックを回避するため、DMA読み出し返答データが、ホスト・ブリッジ中に緩衝記憶された先行のロードおよび記憶トランザクションをバイパスすることを許可されることにある。これは、バス間ブリッジの場合とは異なる要件であり、性能を改善するためにホスト・ブリッジとPCIバスとの間の適切な相互作用のために求められる。
【0027】
本発明のさらに別の特徴は、ホスト・ブリッジの周辺メモリ空間または周辺I/O空間のいずれかへのロードまたは記憶が、同じホスト・ブリッジの周辺メモリ空間または周辺I/O空間のいずれかへの先行の記憶の前には、絶対にI/Oバスに通されてはならないということにある。すなわち、一つのホスト・ブリッジによって生成された、I/Oバスに対する多数の記憶は、順序どおり維持されなければならず、ロードが記憶をバイパスしてはならない。
【0028】
これらの技術は、同様に書き込みおよび読み出しトランザクションを転記するホスト・ブリッジ、一般にはバス間ブリッジに応用することができる。
【0029】
前記の説明は、以下に記す本発明の詳細な説明をよりよく理解することができるよう、本発明の特徴および技術的利点を概説したものである。以下、本発明の請求の範囲の主題を構成する本発明のさらなる特徴および利点を記載する。
【0030】
【発明の実施の形態】
まず、図1を参照しながら、本発明を具現化するデータ処理システムを説明する。
【0031】
システム10は、第一のバス14、例えばマルチプロセッサシステムによって使用することができるシステム・バス(例えばIBM社から販売されている6XXバス)に接続された少なくとも一つのホスト・プロセッサ12を含む。また、図1に点線で示す他のプロセッサ12がバス14に接続されていてもよい。
【0032】
同様に、システム・バス14には、第一のバス14と第二のバス16とを接続するホスト・ブリッジ20aが接続されている。また、システム・メモリ15がシステム・バス14に接続されている。他の装置30、40が同様にバス16に接続されていてもよい。非限定的な一例として、装置40は、PCIバス(例えばバス16)を別のI/Oバス17、例えばIBM社から市販されているMicrochannelバス(MicrochannelはIBM社の商標である)に接続するための別のブリッジ・チップであってもよい。また、Microchannel(MC)周辺装置19が図示のとおりMCバス17に接続されている。したがって、MCデバイスは、PCI−MCブリッジ40およびホスト・ブリッジ20aを介してホスト・システム上の部品、例えばメモリ15、プロセッサ12などと通信することができる。本明細書にはMCを例として使用するが、本発明の範囲は、他のタイプのブリッジ・チップ40および周辺装置19をI/Oバス、例えばISA、ESA、VMEなどとともに使用することをも考慮していることを記すべきである。さらには、別のブリッジ20がバス16および第三のバス18に接続されている。同様に、バス18には、多数のステーションまたは周辺装置22a、22b、22cおよび22dが接続されていてもよい。好ましい実施態様においては、ブリッジ20は、同一のプロトコルを有するバスどうし、すなわち、いずれもPCIバスであるバス16と18とを接続するバス間ブリッジである。ブリッジ20および20a以外、図1に関して上記に参照した各要素はすべて当該技術において周知であり、本明細書でさらに詳細に説明する必要はない。
【0033】
本発明の範囲を決して限定することなく、一例として、バス16および18はそれぞれ工業規格となったPCIバスであってもよい。
【0034】
次に、図2を参照しながら、ホスト・ブリッジ20aをさらに詳細に説明する。本発明の好ましい実施態様の説明に使用する際、「アウトバウンド」とは、プロセッサ12から離れるトランザクションに関していい、「インバウンド」とは、プロセッサ12に向かうトランザクションに関していう。
【0035】
ブリッジ20aは、二つのデータ経路、すなわちアウトバウンド経路202およびインバウンド経路204を有している。すべてのトランザクションは、インバウンドおよびアウトバウンドとも、状態機械206によって制御される。
【0036】
アウトバウンド・トランザクションがトランザクション・ルータ208によって受け取られると、トランザクション・フォーマットが審査されて、トランザクションが、読み出し要求(データの要求)、読み出し返答(データを提供する読み出し要求に対する応答)または書き込み要求(データを特定の装置に配置する要求)のいずれであるかが判定される。
【0037】
読み出し要求は、アドレスおよび制御情報のフォーマットを有している。読み出し返答は、アドレスと、制御情報と、すでに要求され、今や要求元に送られようとしているデータとを含むフォーマットを有している。
【0038】
書き込みトランザクション、例えば転記されたメモリ書き込み(PMW)またはI/O書き込み(I/O WR)は、アドレスと、制御情報と、選択されたアドレスに書き込まれるデータとを含む。
【0039】
例えば、現在トランザクション・ルータ208中で活動中であるトランザクションが読み出し要求であると仮定すると、そのトランザクションは、多数の直列バッファ210、212、214の一つに転送される。直列バッファ・エントリ210、212、214は、ブリッジ20a中に保留中であると予想されるトランザクションのスタックを扱うのに十分な長さであれば、いかなる適当な数のバッファ・エントリであってもよい。また、トランザクションが書き込みトランザクション、例えばI/O書き込みまたは転記されたメモリ書き込みであるならば、そのトランザクションは、直列バッファ210、212、214の一つに転送される。
【0040】
トランザクション・ルータ208中に保留中であるトランザクションが読み出し返答(RRP)であるならば、その読み出し返答トランザクションは、並列バッファ・エントリ216、218の一つに伝送される。
【0041】
いかなるときにも、トランザクション選択回路220によって選択され、二次バスに通されるトランザクションは、状態機械206によって制御される。これが、例えば、直列バッファ210、212もしくは214中に記憶されたトランザクションまたは並列バッファ216、218中に記憶された読み出し返答トランザクションに対する順序外アクセスを可能にする。
【0042】
インバウンド経路204は、各要素が逆の順序に接続されていることを除き、アウトバウンド経路202と同じ要素を含む。すなわち、トランザクション・ルータ222が二次バス16に接続されている(図1を参照)。アウトバウンド・トランザクション・ルータ208を参照しながら上記に説明したように、インバウンド・トランザクション・ルータ222は、状態機械206によって制御される。各トランザクションは、読み出し要求(RRQ)および書き込みトランザクション(I/O書き込みおよびPMW)の場合には、直列インバウンド・バッファ224、226および228の一つに経路指定される。読み出し返答トランザクションは、並列バッファ232、234に伝送される。インバウンド選択回路230が、状態機械206の制御の下で、直列バッファ224、226もしくは228または並列バッファ232もしくは234のいずれかからのトランザクションの伝送を制御する。
【0043】
状態機械206は、図3および4に示す状態機械論理表によって定義されるプロトコルの下で動作して、アウトバウンドまたはインバウンドのいずれかまたは両方に流れる多数のトランザクションを制御する。
【0044】
次に、図3および4を参照しながら、状態機械206を制御する論理表を説明する。図3の論理表の頂部にかけては、アウトバウンド・トランザクションを表す、便宜上「第一のトランザクション」と呼ぶトランザクションが並んでいる。図3の論理表の左側に沿っては、便宜上「第二のトランザクション」と呼ぶアウトバウンド・トランザクションが並んでいる。同様に、図4の論理表の頂部にかけては、インバウンド・トランザクションを表す、便宜上「第一のトランザクション」と呼ぶトランザクションが並んでいる。図4の論理表の左側に沿っては、便宜上「第二のトランザクション」と呼ぶインバウンド・トランザクションが並んでいる。
【0045】
図3および4の表の項目に関して、「0」項目は、後続の(第二の)トランザクションをして先行の(第一の)トランザクションをバイパスさせてはならないことを意味する。「1」項目は、後続のトランザクションをブリッジに入らせて、必要ならば、トランザクションを進行させるため、先行のトランザクションをバイパスさせなければならず、さもなければ、デッドロックが起こりうることを意味する。「0/1」項目は、後続のトランザクションをして先行のトランザクションをバイパスさせてもよいが、そうする必要もないことを意味する(順序づけ要件はない。つまり、どちらでもよく、性能および具現化コストの考慮に基づき、具現態様特定的であることができる)。すなわち、特定の状況または具現態様に依存して、「0/1」は、ある場合にはバイパスを許可してもよく、他の場合にはバイパスを許可してはならない。
【0046】
デッドロックを回避するため、DMA読み出し返答データには、ホスト・ブリッジ中に緩衝記憶された先行のロードおよび記憶トランザクションをバイパスすることを許可しなければならない。これは、バス間(例えばPCI−PCI)ブリッジの場合とは異なる要件であり、ホスト・ブリッジとPCIバスとの間の適切な相互作用のために必要である。これはまた、性能を改善することができる。
【0047】
例えば、読み出し要求(RRQ)であるアウトバウンドの第一のトランザクションおよび読み出し返答(RRP)であるアウトバウンドの第二のトランザクションがあるならば、図3の論理表の縦列と横列との交差点が1を示す。1は、論理表のどの位置にあろうと、後続のトランザクションをして先行のトランザクションをバイパスさせなければならないことを示す。したがって、DMAデータをもつ読み出し返答(RRP)をして読み出し要求をバイパスさせなければならない。また、RRPをして書き込み動作、例えばPMWまたはI/O書き込みをもバイパスさせなければならないことが見てとれる。DMAデータ(RRP)動作をしてプロセッサのロードおよび記憶動作をバイパスさせることにより、デッドロック状態を引き起こすおそれのある前述の問題が解消される。例として、MC装置19がDMA要求によってシステム・メモリ15からデータを要求していると仮定する。すると、RRQトランザクションが直列バッファ224、226、228の一つに配置される(これがインバウンド動作であるため)。この場合、RRQはバッファ228中にあると仮定される。DMAデータがシステム・メモリ15から戻される前に、プロセッサ12がMC装置19に対して書き込み動作を開始する。したがって、例えば、I/O書き込みトランザクションが直列バッファ210、212、214の一つに配置される(これがアウトバウンド・トランザクションであるため)。この場合、I/O書き込みがバッファ214中に配置されると仮定する。続いて、システム・メモリ15が、MC装置19からのRRQ(要求されたDMAデータを含む)に応答して、RRPを並列バッファ216または218の一方、例えばバッファ216に配置する。先に記したように、ある種のI/O装置、例えばMC装置19のプロトコルは、各トランザクションが完了するまで、バス17の制御を維持することをそれらに要求する。したがって、MC装置19が並列バッファ216中のDMAデータに仕えているためにバッファ214中のI/O書き込み動作が完了できず、潜在的なデッドロック状態が存在する。本発明は、バッファ216中のRRPトランザクション(DMAデータを含む)をしてバッファ214中のI/O書き込みトランザクションをバイパスさせて、MC装置19によるDMA要求を完了させることにより、このデッドロック状態の発生を防ぐ。当然、本発明は、他のデッドロック状態、例えばPMWまたはRRQトランザクションが直列バッファ214中にあり、バッファ216中のRRPと競合する状態の発生をも防止する。
【0048】
0は、図3および4の論理表のどの位置にあろうと、バイパス・トランザクションの禁止を示す。したがって、第一のトランザクションとしてのアウトバウンド書き込み動作であって、第二のトランザクションとしてのアウトバウンド読み出し要求が後続するものが、その第二のトランザクションによってバイパスされてはならない。本明細書に使用する「バイパス」とは、第一の要求の完了の前に第二の要求を行き先バス上で完了させることをいう。しかし、第一のトランザクションが例えばアウトバウンド書き込みトランザクションであるならば、アウトバウンド読み出し返答トランザクションのバイパスを許可しなければならない。
【0049】
図3および4の論理表の、バイパス・トランザクションの禁止を示す0が存在するすべての位置が書き込みトランザクションに関与することに注目すべきである。例えば、第二のトランザクションとしてのアウトバウンド読み出し要求は、第一のトランザクションとしてのアウトバウンド書き込みをバイパスすることはできない。図4から、インバウンド・トランザクションに関しても同じ原則が当てはまることが見てとれる。したがって、図4に示すように、インバウンド読み出し要求(RRQ)、読み出し返答(RRP)または書き込みトランザクション(PMW)が、第一のトランザクションとしての先行のインバウンド書き込み(PMW)をバイパスしてはならない。状態機械206の動作を制御する図3および4の論理表が、トランザクション・ルータ208および222ならびにトランザクション選択回路220および230それぞれにおけるトランザクションのゲート動作を制御する。当業者であれば、いかにして図3および4の表に表す論理を制御論理回路中に具現化し、状態機械206内に含めることができるかを理解するであろう。
【0050】
PCIホスト・ブリッジ(PHB)が、I/OバスとしてのPCIバスを、独自の特徴を有するマイクロプロセッサ、例えばIBM社から市販されているPowerPC604マイクロプロセッサ(PowerPC およびPowerPC604はIBM社の商標である)を使用するコンピュータ・システム中のシステム・バスと接続する好ましい実施態様の場合には、取り組まなければならない問題点がいくつかある。一般に、性能を改善し、具現化を容易にするため、プロセッサ12に対するロード(RRQ)および記憶(PMW、I/O WR)経路は、周辺装置に対するDMA経路(例えばRRP)から独立しているべきである。また、図3および4の表における「0/1」項目に関して、これらのトランザクションは、バイパスを行ってもよいが、バイパスを行う必要もない。バイパスを行うか行わないかは、公平さの規則、性能の考慮または具現しやすさに基づいて決めることができる(以下の段落に記載する場合は除く)。
【0051】
PCIホスト・ブリッジの場合、ホスト・ブリッジの周辺メモリ空間または周辺I/O空間のいずれかに対するロード(例えばRRQトランザクション)は、同じホスト・ブリッジの周辺メモリ空間または周辺I/O空間のいずれかに対する先行のロードの前には、それらのロード両方が完全に同じアドレスに行く場合、絶対にI/Oバスに通してはならない。図3から、第一のトランザクションとしてのRRQ(ロード)動作と、第二のトランザクションとしてのRRQ(ロード)動作との交差点には「0/1」が存在することが見てとれる。この場合、すなわち標的のアドレスが同じではない場合、バイパスが許可される。しかし、状態機械206に含まれるコンパレータが、両アドレスが同じであると判定するならば、第二のRRQトランザクションが第一のRRQトランザクションをバイパスすることはできない。したがって、「0/1」(この場合)は、さらなる要因に依存して、例えばアドレス比較の結果に依存して、第二のトランザクションによる第一のトランザクションのバイパスが起こりうることを示す。これが、両アドレスが異なる場合には、性能の改善(追い越しを許可すること)を可能にするが、一方または両方の装置が同じアドレスでデータにアクセスしている場合には、一方の装置がもう一方の装置のデータを奪う(無効データを得る)問題を回避する。これらのトランザクションが異なるアドレスを有するならば、これらはバイパスすることができる。これが、両アドレスが異なる場合には、性能の改善を可能にするが、一方または両方の装置が同じアドレスに書き込む場合には、両方の装置が異なるアドレスでデータにアクセスしており、競合が存在しないため、一方の装置がもう一方の装置の読み出しデータを奪う(無効データを得る)問題を回避する。
【0052】
また、当業者であれば、いかにして状態機械206がコンパレータを含んで、要求側の装置(例えばプロセッサ12)によって標的にされるアドレスが同一であるかどうかを判定することができるかを理解するであろう。他に考慮すべきことには、PHBの周辺メモリ空間または周辺I/O空間は、その同じPHBの周辺メモリ空間または周辺I/O空間のいずれかに対する先行の記憶の前には、絶対にI/Oバスに通してはならない場合がある。すなわち、一つのPHBによって生成されるI/Oバスに対する多数の記憶は順序どおりに維持されなければならず、ロードが記憶を追い越してはならない。例えば、図3から、第二のトランザクションとしてのロード(RRQ)と記憶(PMWまたはI/O WR)との交差点には「0」が存在するため、第二のトランザクションが記憶を追い越すことができないことが見てとれる。さらに、図3の第一トランザクションと第二のトランザクションとの交差点の「0」から見てとれるように、第二のトランザクションとしての記憶(例えばPMW)が第一のトランザクションとしての別の記憶(PMWまたはI/O WR)を追い越すことはできない。
【0053】
すべての後続のインバウンド・トランザクションをして先行のインバウンドの転記されたメモリ書き込み(PMW)をバイパスさせてはならないことに注意すること。図4は、すべての第二のトランザクション(I/O WRは当てはまらないため、これは除く)と、第一のトランザクションとしてのPMWとの交差点に「0」を示す。また、図4の第一のトランザクションと第二のトランザクションとの交差点の「1」によって示されるように、第二のトランザクションとしての後続のインバウンド転記されたメモリ書き込みをして第一のトランザクションとしての先行の読み出し要求(RRQ)および読み出し返答(RRP)をバイパスさせなければならない。
【0054】
また、アウトバウンド・トランザクション対インバウンド・トランザクションおよびインバウンド・トランザクション対アウトバウンド・トランザクションを取り扱う表がないことに注目すること。これらの場合、トランザクションは反対方向に移動し、異なるアドレス空間に向かっているため、これらのトランザクションは独立しており、互いに対して順序づけ要件をもたない。アウトバウンド・トランザクション対インバウンド・トランザクションまたはインバウンド・トランザクション対アウトバウンド・トランザクションが順序づけを要する場合には、それは、本発明の範囲を超えたソフトウェア・プロトコルによって扱われる。
【0055】
図4のいくつかの表項目が「na」であることが注目されよう。これらのケースでは、PowerPCマイクロプロセッサを用いるシステムの場合を取り扱う本発明の好ましい実施態様ではインバウンドI/O WRトランザクションが定義されていないため、「当てはまらない」のである。
【0056】
上記に挙げた考察事項および本明細書に引用例として含めるIBM社の特許出願第08/473,603号に挙げられた考察事項の他では、マイクロプロセッサ、例えばPowerPCマイクロプロセッサを用いるシステムにおけるPCIホスト・ブリッジに関するトランザクション順序づけ要件は、PCI−PCIブリッジの場合と同じである(PCIローカル・バス仕様バージョン2.1を参照)。
【0057】
読み出しアクセスを試み、再試行されるマスタは、アクセスが完了するまで再び定期的にアクセスを試行しなければならない。
【0058】
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)少なくとも一つのプロセッサをメモリと接続するシステム・バスと、
前記システム・バスとは異なるプロトコルを有するI/Oバスと、
前記I/Oバスに接続された、前記メモリおよび前記少なくとも一つのプロセッサとでデータを共用する少なくとも一つの周辺装置と、
前記I/Oバスを前記システム・バスに相互接続し、前記少なくとも一つの周辺装置と前記メモリとの間の第一のデータ転送を、前記少なくとも一つのプロセッサと前記少なくとも一つの周辺装置との間の第二のデータ転送が完了する前に完了させることにより、トランザクションの順序を制御してデッドロック状態を防ぐブリッジと、
を含むことを特徴とするデータ処理システム。
(2)前記第一のデータ転送が完了するまで、前記少なくとも一つの周辺装置が処理活動を一時停止する上記(1)記載のシステム。
(3)前記ブリッジが、
前記少なくとも一つの周辺装置から前記メモリへの、前記第一のデータ転送に相当する要求を記憶する第一のバッファと、
前記少なくとも一つのプロセッサから前記少なくとも一つの周辺装置への、前記第二のデータ転送に相当する要求を記憶する第二のバッファと、
前記第二のバッファに対して並列である、前記第一のデータ転送に相当するデータを含む前記メモリからの返答を記憶する第三のバッファと、
前記メモリからの前記返答をして前記少なくとも一つのプロセッサからの前記要求をバイパスさせて、前記少なくとも一つの周辺装置が処理活動を継続することができるようにする手段とを含む上記(2)記載のシステム。
(4)前記第一のデータ転送が、前記少なくとも一つの周辺装置による前記メモリの直接メモリ・アクセスである上記(3)記載のシステム。
(5)前記第二のデータ転送が、前記少なくとも一つのプロセッサによるロードまたは記憶動作である上記(4)記載のシステム。
(6)前記ブリッジが、トランザクションを前記I/Oバスから前記システム・バスに伝送する第一のデータ経路を含む上記(1)記載のシステム。
(7)前記第一のデータ経路および前記第二のデータ経路が、
前記ブリッジへの入力に接続された、前記第一のデータ経路中でバッファへのトランザクションをゲートする第一のトランザクション・ルータ回路と、
前記第一のトランザクション・ルータ回路に接続された、読み出し返答トランザクションを記憶する少なくとも一つの並列バッファと、
前記第一のトランザクション・ルータ回路に接続された、読み出し要求トランザクションおよび書き込みトランザクションを記憶する少なくとも一つの直列バッファと、
前記並列バッファおよび直列バッファの出力に接続された、状態機械の制御の下で前記第一のデータ経路から出力される一つ以上のトランザクションを選択する第一のトランザクション選択回路とを含む上記(6)記載のシステム。
(8)前記ブリッジが、トランザクションを前記システム・バスから前記I/Oバスに伝送する第二のデータ経路をさらに含む上記(7)記載のシステム。
(9)前記第二のデータ経路が、
前記ブリッジへの入力に接続された、前記第一のデータ経路中でバッファへのトランザクションをゲートする第二のトランザクション・ルータ回路と、
前記第二のトランザクション・ルータ回路に接続された、読み出し返答トランザクションを記憶する少なくとも一つの並列バッファと、
前記第二のトランザクション・ルータ回路に接続された、読み出し要求トランザクションおよび書き込みトランザクションを記憶する少なくとも一つの直列バッファと、
前記並列バッファおよび直列バッファの出力に接続された、前記状態機械の制御の下で前記第二のデータ経路から出力される一つ以上のトランザクションを選択する第二のトランザクション選択回路とを含む上記(8)記載のシステム。
(10)前記状態機械が、所定の論理構造にしたがって、前記第一および第二のデータ経路中のトランザクションのゲート動作を制御する上記(9)記載のシステム。
(11)少なくとも一つのプロセッサをメモリと接続するシステム・バスと、
前記システム・バスとは異なるプロトコルを有するI/Oバスと、
前記I/Oバスに接続された、それぞれが前記メモリおよび前記少なくとも一つのプロセッサとの間でデータを転送することができる複数の周辺装置と、
前記I/Oバスを前記システム・バスに相互接続し、前記I/Oバス上の前記複数の周辺装置と、前記システム・バス上の前記少なくとも一つのプロセッサおよびメモリとの間の複数のデータ転送トランザクションを処理するブリッジとを含み、
第一のデータ転送トランザクションが、後続のデータ転送トランザクションとは異なるアドレスでデータにアクセスするとき、前記複数のデータ転送トランザクションが非順序的に処理されることを特徴とするデータ処理システム。
(12)前記ブリッジが、前記複数のデータ転送トランザクションのうち、どの特定のデータ転送トランザクションを非順序的に処理するかを決定する状態機械を含む上記(11)記載のシステム。
(13)前記状態機械が、前記第一のデータ転送トランザクションによってアクセスされるデータを含む第一のアドレスが、前記後続のデータ転送トランザクションによってアクセスされるデータを含む第二のアドレスと一致するかどうかを判定するコンパレータを含む上記(12)記載のシステム。
(14)前記状態機械が、前記第一のアドレスと前記第二のアドレスとが一致したとき、前記後続のトランザクションが前記第一のデータ転送トランザクションをバイパスすることを防ぐため、前記後続のデータ転送トランザクションをゲートする手段をさらに含む上記(13)記載のシステム。
(15)少なくとも一つのプロセッサとメモリとをシステム・バスによって接続するステップと、
前記システム・バスとは異なるプロトコルを有するI/Oバスを設けるステップと、
前記メモリおよび前記少なくとも一つのプロセッサとでデータを共用する複数の周辺装置を前記I/Oバスによって接続するステップと、
前記I/Oバスを前記システム・バスに相互接続し、前記複数の周辺装置の一つと前記メモリとの間の第一のデータ転送を、前記少なくとも一つのプロセッサと前記複数の周辺装置の前記一つとの間の第二のデータ転送が完了する前に完了させることにより、トランザクションの順序を制御してデッドロック状態を防ぐステップと、
を含むことを特徴とするデータ処理システムにおけるデータ処理方法。
(16)前記複数の周辺装置の前記一つを、前記第一のデータ転送が完了するまでデータ処理活動が一時停止される状態に維持するステップをさらに含む上記(15)記載の方法。
(17)前記相互接続ステップが、
前記複数の周辺装置の前記一つから前記メモリへの、前記第一のデータ転送に相当する要求を第一のバッファに記憶するステップと、
前記少なくとも一つのプロセッサから前記複数の周辺装置の前記一つへの、前記第二のデータ転送に相当する要求を第二のバッファに記憶するステップと、
前記第一のデータ転送に相当するデータを含む前記メモリからの返答を、前記第二のバッファに対して並列である第三のバッファに記憶するステップと、
前記メモリからの前記返答をして前記少なくとも一つのプロセッサからの前記要求をバイパスさせて、前記複数の周辺装置の前記一つが処理活動を再開することができるようにするステップとを含む上記(16)記載の方法。
(18)前記第一のデータ転送が、前記複数の周辺装置の前記一つによる前記メモリの直接メモリ・アクセスであり、前記第二のデータ転送が、前記少なくとも一つのプロセッサによるロードまたは記憶動作である上記(17)記載の方法。
【図面の簡単な説明】
【図1】本発明を具現化するデータ処理システムのブロック図である。
【図2】図1のシステムによる本発明の特徴を表すホスト・ブリッジ(例えばPCIホスト・ブリッジ)のブロック図である。
【図3】図2のホスト・ブリッジにおけるトランザクションの制御を、アウトバウンド経路のトランザクションに関して示す論理表である。
【図4】図2のホスト・ブリッジにおけるトランザクションの制御を、インバウンド経路のトランザクションに関して示す論理表である。
【符号の説明】
10 データ処理システム
12 プロセッサ
14 第一のバス
15 システム・メモリ
16 第二のバス
17 I/Oバス
18 第三のバス
19 周辺装置
20 ブリッジ
20A ホスト・ブリッジ
22a、22b、22c、22d 周辺装置
30 装置
40 PCI−MCブリッジ
Claims (14)
- 少なくとも一つのプロセッサをメモリと接続するシステム・バスと、
前記システム・バスとは異なるプロトコルを有するI/Oバスと、
前記I/Oバスに接続された、前記メモリおよび前記少なくとも一つのプロセッサとでデータを共用する少なくとも一つの周辺装置と、
前記I/Oバスを前記システム・バスに相互接続し、アウトバウンド経路およびインバウンド経路を有し、前記少なくとも一つの周辺装置と前記メモリとの間の第一のデータ転送を、前記少なくとも一つのプロセッサと前記少なくとも一つの周辺装置との間の第二のデータ転送が完了する前に完了させることにより、トランザクションの順序を制御してデッドロック状態を防ぐブリッジとを含み、
前記第一のデータ転送が完了するまで、前記少なくとも一つの周辺装置が処理活動を一時停止し、
前記ブリッジが、
前記少なくとも一つの周辺装置から前記メモリへの、前記第一のデータ転送に相当する要求を記憶する第一のバッファと、
前記少なくとも一つのプロセッサから前記少なくとも一つの周辺装置への、前記第二のデータ転送に相当する要求を記憶する第二のバッファと、
前記第二のバッファに対して並列である、前記第一のデータ転送に相当するデータを含む前記メモリからの返答を記憶する第三のバッファと、
前記メモリからの前記返答に対して前記少なくとも一つのプロセッサからの前記要求をバイパスさせ、前記少なくとも一つの周辺装置が処理活動を継続することができるようにする手段とを含むデータ処理システム。 - 前記第一のデータ転送が、前記少なくとも一つの周辺装置による前記メモリの直接メモリ・アクセスである請求項1記載のシステム。
- 前記第二のデータ転送が、前記少なくとも一つのプロセッサによるロードまたは記憶動作である請求項2記載のシステム。
- 前記ブリッジが、トランザクションを前記I/Oバスから前記システム・バスに伝送するアウトバウンド経路を含む請求項1記載のシステム。
- 前記アウトバウンド経路および前記インバウンド経路が、
前記ブリッジへの入力に接続された、前記アウトバウンド経路中でバッファへのトランザクションをゲートする第一のトランザクション・ルータ回路と、
前記第一のトランザクション・ルータ回路に接続された、読み出し返答トランザクションを記憶する少なくとも一つの並列バッファと、
前記第一のトランザクション・ルータ回路に接続された、読み出し要求トランザクションおよび書き込みトランザクションを記憶する少なくとも一つの直列バッファと、
前記並列バッファおよび直列バッファの出力に接続された、状態機械の制御の下で前記アウトバウンド経路から出力される一つ以上のトランザクションを選択する第一のトランザクション選択回路とを含む請求項4記載のシステム。 - 前記ブリッジが、トランザクションを前記システム・バスから前記I/Oバスに伝送するインバウンド経路をさらに含む請求項5記載のシステム。
- 前記インバウンド経路が、
前記ブリッジへの入力に接続された、前記アウトバウンド経路中でバッファへのトランザクションをゲートする第二のトランザクション・ルータ回路と、
前記第二のトランザクション・ルータ回路に接続された、読み出し返答トランザクションを記憶する少なくとも一つの並列バッファと、
前記第二のトランザクション・ルータ回路に接続された、読み出し要求トランザクションおよび書き込みトランザクションを記憶する少なくとも一つの直列バッファと、
前記並列バッファおよび直列バッファの出力に接続された、前記状態機械の制御の下で前記インバウンド経路から出力される一つ以上のトランザクションを選択する第二のトランザクション選択回路とを含む請求項6記載のシステム。 - 前記状態機械が、所定の論理構造にしたがって、前記アウトバウンド経路およびインバウンド経路中のトランザクションのゲート動作を制御する請求項7記載のシステム。
- 少なくとも一つのプロセッサをメモリと接続するシステム・バスと、
前記システム・バスとは異なるプロトコルを有するI/Oバスと、
前記I/Oバスに接続された、それぞれが前記メモリおよび前記少なくとも一つのプロセッサとの間でデータを転送することができる複数の周辺装置と、
前記I/Oバスを前記システム・バスに相互接続し、アウトバウンド経路およびインバウンド経路を有し、前記I/Oバス上の前記複数の周辺装置と、前記システム・バス上の前記少なくとも一つのプロセッサおよびメモリとの間の複数のデータ転送トランザクションを処理するブリッジとを含み、
前記ブリッジは、
前記複数の周辺装置のうちの一つの周辺装置と前記メモリとの間の第一のデータ転送を、前記少なくとも一つのプロセッサと前記複数の周辺装置のうちの一つの周辺装置との間の第二のデータ転送が完了する前に完了させることにより、トランザクションの順序を制御してデッドロック状態を防ぎ、少なくとも一つの周辺装置から前記メモリへの、前記第一のデータ転送に相当する要求を記憶する第一のバッファと、前記少なくとも一つのプロセッサから前記少なくとも一つの周辺装置への、前記第二のデータ転送に相当する要求を記憶する第二のバッファと、前記第二のバッファに対して並列である、前記第一のデータ転送に相当するデータを含む前記メモリからの返答を記憶する第三のバッファと、前記メモリからの返答に対して前記少なくとも一つのプロセッサからの要求をバイパスさせ、少なくとも一つの周辺装置が処理活動を継続することができるようにすることを特徴とするデータ処理システム。 - 前記ブリッジが、前記複数のデータ転送トランザクションのうち、どの特定のデータ転送トランザクションを非順序的に処理するかを決定する状態機械を含む請求項9記載のシステム。
- 前記状態機械が、前記第一のデータ転送トランザクションによってアクセスされるデータを含む第一のアドレスが、前記後続のデータ転送トランザクションによってアクセスされるデータを含む第二のアドレスと一致するかどうかを判定するコンパレータを含む請求項10記載のシステム。
- 前記状態機械が、前記第一のアドレスと前記第二のアドレスとが一致したとき、前記後続のトランザクションが前記第一のデータ転送トランザクションをバイパスすることを防ぐため、前記後続のデータ転送トランザクションをゲートする手段をさらに含む請求項11記載のシステム。
- 少なくとも一つのプロセッサとメモリとをシステム・バスによって接続するステップと、
前記システム・バスとは異なるプロトコルを有するI/Oバスを設けるステップと、
前記メモリおよび前記少なくとも一つのプロセッサとでデータを共用する複数の周辺装置を前記I/Oバスによって接続するステップと、
前記I/Oバスを前記システム・バスにアウトバウンド経路およびインバウンド経路を有するブリッジにより相互接続し、前記複数の周辺装置の一つと前記メモリとの間の第一のデータ転送を、前記少なくとも一つのプロセッサと前記複数の周辺装置の前記一つとの間の第二のデータ転送が完了する前に完了させることにより、トランザクションの順序を制御してデッドロック状態を防ぐステップと、
前記複数の周辺装置の前記一つを、前記第一のデータ転送が完了するまでデータ処理活動が一時停止される状態に維持するステップと含み、
前記ブリッジによる相互接続ステップが、
前記複数の周辺装置の前記一つから前記メモリへの、前記第一のデータ転送に相当する要求を第一のバッファに記憶するステップと、
前記少なくとも一つのプロセッサから前記複数の周辺装置の前記一つへの、前記第二のデータ転送に相当する要求を第二のバッファに記憶するステップと、
前記第一のデータ転送に相当するデータを含む前記メモリからの返答を、前記第二のバッファに対して並列である第三のバッファに記憶するステップと、
前記メモリからの前記返答をして前記少なくとも一つのプロセッサからの前記要求をバイパスさせて、前記複数の周辺装置の前記一つが処理活動を再開することができるようにするステップとを含む
データ処理システムにおけるデータ処理方法。 - 前記第一のデータ転送が、前記複数の周辺装置の前記一つによる前記メモリの直接メモリ・アクセスであり、前記第二のデータ転送が、前記少なくとも一つのプロセッサによるロードまたは記憶動作である請求項13記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/552034 | 1995-11-02 | ||
US08/552,034 US5673399A (en) | 1995-11-02 | 1995-11-02 | System and method for enhancement of system bus to mezzanine bus transactions |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09146878A JPH09146878A (ja) | 1997-06-06 |
JP3579198B2 true JP3579198B2 (ja) | 2004-10-20 |
Family
ID=24203684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26316096A Expired - Fee Related JP3579198B2 (ja) | 1995-11-02 | 1996-10-03 | データ処理システム及びデータ処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5673399A (ja) |
JP (1) | JP3579198B2 (ja) |
KR (1) | KR100207887B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006004196A1 (ja) * | 2004-07-02 | 2006-01-12 | Nec Corporation | マルチプロセッサシステムおよびメモリアクセス処理方法 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330629B1 (en) * | 1993-02-11 | 2001-12-11 | Hitachi, Ltd. | Information processing system |
US5664152A (en) * | 1995-06-06 | 1997-09-02 | Hewlett-Packard Company | Multiple segmenting of main memory to streamline data paths in a computing system |
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 |
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 |
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 |
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 |
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 |
US5987539A (en) * | 1996-06-05 | 1999-11-16 | Compaq Computer Corporation | Method and apparatus for flushing a bridge device read buffer |
US6108741A (en) * | 1996-06-05 | 2000-08-22 | Maclaren; John M. | Ordering transactions |
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 |
US6052513A (en) * | 1996-06-05 | 2000-04-18 | Compaq Computer Corporation | Multi-threaded bus master |
US5764925A (en) * | 1996-06-27 | 1998-06-09 | Compaq Computer Corporation | Multiple long bus architecture having a non-terminal termination arrangement |
US6343086B1 (en) * | 1996-09-09 | 2002-01-29 | Natural Microsystems Corporation | Global packet-switched computer network telephony server |
US6092141A (en) * | 1996-09-26 | 2000-07-18 | Vlsi Technology, Inc. | Selective data read-ahead in bus-to-bus bridge architecture |
US5832245A (en) * | 1996-10-21 | 1998-11-03 | Advanced Micro Devices, Inc. | Method for isochronous flow control across an inter-chip bus |
US5774683A (en) * | 1996-10-21 | 1998-06-30 | Advanced Micro Devices, Inc. | Interconnect bus configured to implement multiple transfer protocols |
US6119190A (en) | 1996-11-06 | 2000-09-12 | Intel Corporation | Method to reduce system bus load due to USB bandwidth reclamation |
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 |
US5832246A (en) * | 1996-12-03 | 1998-11-03 | Toshiba America Information Systems, Inc. | Virtualization of the ISA bus on PCI with the existence of a PCI to ISA bridge |
US5898888A (en) * | 1996-12-13 | 1999-04-27 | International Business Machines Corporation | Method and system for translating peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a computer system |
US5761461A (en) * | 1996-12-13 | 1998-06-02 | International Business Machines Corporation | Method and system for preventing peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data processing system |
US5761462A (en) * | 1996-12-13 | 1998-06-02 | International Business Machines Corporation | Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data-processing system |
US5802324A (en) * | 1996-12-23 | 1998-09-01 | Compaq Computer Corporation | Computer system with PCI repeater between primary bus and second bus |
US5838932A (en) * | 1996-12-23 | 1998-11-17 | Compaq Computer Corporation | Transparent PCI to PCI bridge with dynamic memory and I/O map programming |
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 |
US5915104A (en) * | 1997-01-09 | 1999-06-22 | Silicon Graphics, Inc. | High bandwidth PCI to packet switched router bridge having minimized memory latency |
US5875308A (en) * | 1997-06-18 | 1999-02-23 | International Business Machines Corporation | Peripheral component interconnect (PCI) architecture having hot-plugging capability for a data-processing system |
US6286072B1 (en) * | 1997-08-19 | 2001-09-04 | International Business Machines Corporation | System and method for synchronizing data communication between asynchronous buses |
US6014721A (en) * | 1998-01-07 | 2000-01-11 | International Business Machines Corporation | Method and system for transferring data between buses having differing ordering policies |
US6065085A (en) * | 1998-01-27 | 2000-05-16 | Lsi Logic Corporation | Bus bridge architecture for a data processing system capable of sharing processing load among a plurality of devices |
US6076130A (en) * | 1998-03-19 | 2000-06-13 | Hewlett-Packard Company | System and method for efficient communication between buses |
US6178308B1 (en) * | 1998-10-16 | 2001-01-23 | Xerox Corporation | Paper based intermedium for providing interactive educational services |
US6219737B1 (en) | 1998-12-10 | 2001-04-17 | International Business Machines Corporation | Read request performance of a multiple set buffer pool bus bridge |
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 |
US6714994B1 (en) * | 1998-12-23 | 2004-03-30 | Advanced Micro Devices, Inc. | Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa |
US6286074B1 (en) | 1999-03-24 | 2001-09-04 | International Business Machines Corporation | Method and system for reading prefetched data across a bridge system |
US6449678B1 (en) | 1999-03-24 | 2002-09-10 | International Business Machines Corporation | Method and system for multiple read/write transactions across a bridge system |
US6502157B1 (en) | 1999-03-24 | 2002-12-31 | International Business Machines Corporation | Method and system for perfetching data in a bridge system |
US6425023B1 (en) | 1999-03-24 | 2002-07-23 | International Business Machines Corporation | Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests |
US6301632B1 (en) * | 1999-03-26 | 2001-10-09 | Vlsi Technology, Inc. | Direct memory access system and method to bridge PCI bus protocols and hitachi SH4 protocols |
EP1091302B1 (en) * | 1999-10-08 | 2006-05-03 | Hewlett-Packard Company, A Delaware Corporation | Device for processing SONET or SDH frames on a PCI bus |
DE69917639T2 (de) | 1999-10-08 | 2005-05-19 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Anordnung zur verarbeitung von sonet- oder SDH-DS0-Rahmen zur Kanalzurordnung |
US6785759B1 (en) | 2000-05-10 | 2004-08-31 | International Business Machines Corporation | System and method for sharing I/O address translation caching across multiple host bridges |
US7644014B2 (en) * | 2001-10-17 | 2010-01-05 | Sun Microsystems, Inc. | Document exchange framework for automated extensible markup language data in an e-procurement system and method |
JP4785637B2 (ja) * | 2006-06-16 | 2011-10-05 | キヤノン株式会社 | データ転送装置及びその制御方法 |
US20080282072A1 (en) * | 2007-05-08 | 2008-11-13 | Leonard Todd E | Executing Software Within Real-Time Hardware Constraints Using Functionally Programmable Branch Table |
JP2012027577A (ja) * | 2010-07-21 | 2012-02-09 | Kyocera Mita Corp | バス間接続装置,画像処理装置 |
US20130191572A1 (en) * | 2012-01-23 | 2013-07-25 | Qualcomm Incorporated | Transaction ordering to avoid bus deadlocks |
JP7081484B2 (ja) | 2016-06-28 | 2022-06-07 | 日本電気株式会社 | パケット処理装置、及び、パケット処理方法 |
KR102496994B1 (ko) * | 2021-03-23 | 2023-02-09 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379386A (en) * | 1991-09-05 | 1995-01-03 | International Business Machines Corp. | Micro channel interface controller |
US5542055A (en) * | 1993-05-28 | 1996-07-30 | International Business Machines Corp. | System for counting the number of peripheral buses in each hierarch connected to primary bus for creating map of peripheral buses to locate peripheral devices |
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 |
US5546546A (en) * | 1994-05-20 | 1996-08-13 | Intel Corporation | Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge |
-
1995
- 1995-11-02 US US08/552,034 patent/US5673399A/en not_active Expired - Fee Related
-
1996
- 1996-09-25 KR KR1019960042509A patent/KR100207887B1/ko not_active IP Right Cessation
- 1996-10-03 JP JP26316096A patent/JP3579198B2/ja not_active Expired - Fee Related
Cited By (2)
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 |
Also Published As
Publication number | Publication date |
---|---|
KR100207887B1 (ko) | 1999-07-15 |
JPH09146878A (ja) | 1997-06-06 |
US5673399A (en) | 1997-09-30 |
KR970029014A (ko) | 1997-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3579198B2 (ja) | データ処理システム及びデータ処理方法 | |
US5694556A (en) | Data processing system including buffering mechanism for inbound and outbound reads and posted writes | |
KR100271203B1 (ko) | 데이타처리시스템및버스상호접속방법 | |
US6070209A (en) | Delivering transactions between data buses in a computer system | |
US5613071A (en) | Method and apparatus for providing remote memory access in a distributed memory multiprocessor system | |
EP0760135B1 (en) | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge | |
US5761462A (en) | Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data-processing system | |
US6014709A (en) | Message flow protocol for avoiding deadlocks | |
US5850530A (en) | Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data | |
US6351784B1 (en) | System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction | |
US5764929A (en) | Method and apparatus for improving bus bandwidth by reducing redundant access attempts | |
US6170030B1 (en) | Method and apparatus for restreaming data that has been queued in a bus bridging device | |
JPS62500549A (ja) | マルチプロセッサ・システムにおけるマルチプロセッサの動作を順序付ける方法および装置 | |
JP2001117859A (ja) | バス制御装置 | |
US7007126B2 (en) | Accessing a primary bus messaging unit from a secondary bus through a PCI bridge | |
US6687240B1 (en) | Transaction routing system | |
JP3600536B2 (ja) | 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム | |
US6480917B1 (en) | Device arbitration including peer-to-peer access arbitration | |
US6480923B1 (en) | Information routing for transfer buffers | |
US5906659A (en) | Computer system buffers for providing concurrency between CPU accesses, local bus accesses, and memory accesses | |
US6502150B1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
JP2813182B2 (ja) | マルチプロセッサコンピュータ複合装置 | |
US6418503B1 (en) | Buffer re-ordering system | |
JPH0351943A (ja) | 高速バスと低速バスのバスライン共用化方式 | |
JPH11203253A (ja) | 共有資源排他アクセス制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040507 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040714 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040715 |
|
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: 20070723 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080723 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |