JP2001216259A - マルチプロセッサシステム及びそのトランザックション制御方法 - Google Patents
マルチプロセッサシステム及びそのトランザックション制御方法Info
- Publication number
- JP2001216259A JP2001216259A JP2000032738A JP2000032738A JP2001216259A JP 2001216259 A JP2001216259 A JP 2001216259A JP 2000032738 A JP2000032738 A JP 2000032738A JP 2000032738 A JP2000032738 A JP 2000032738A JP 2001216259 A JP2001216259 A JP 2001216259A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- unit
- retry
- request
- processor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
(57)【要約】 (修正有)
【課題】順序保証を達成することで先行トランザクショ
ンの完了を待たずに後続トランザクションを連続発行す
ることを可能とし、I/Oバス転送を高速化する。 【解決手段】ポステッドライト方式の連続したトランザ
クションが複数ノード1a・・・1b間で転送される。
1aのI/OバスA11〜A12上のデバイスが要求元
である一連のトランザクションのうちの1つが要求先ノ
ードでリトライとされれば、後続するトランザクション
もリトライとされ、要求元ノードの発行部120はこれ
らトランザクションを再発行する。1aが要求先ノード
であれば、受信トランザクションを処理部230で処理
するが、処理不可能ならリトライフラグレジスタ240
の発生源I/Oバスに対応するビットにリトライフラグ
を立てて要求元にリトライを返送し、同一I/Oバスを
発生源とする後続トランザクションの受信時にもリトラ
イを返送する。
ンの完了を待たずに後続トランザクションを連続発行す
ることを可能とし、I/Oバス転送を高速化する。 【解決手段】ポステッドライト方式の連続したトランザ
クションが複数ノード1a・・・1b間で転送される。
1aのI/OバスA11〜A12上のデバイスが要求元
である一連のトランザクションのうちの1つが要求先ノ
ードでリトライとされれば、後続するトランザクション
もリトライとされ、要求元ノードの発行部120はこれ
らトランザクションを再発行する。1aが要求先ノード
であれば、受信トランザクションを処理部230で処理
するが、処理不可能ならリトライフラグレジスタ240
の発生源I/Oバスに対応するビットにリトライフラグ
を立てて要求元にリトライを返送し、同一I/Oバスを
発生源とする後続トランザクションの受信時にもリトラ
イを返送する。
Description
【0001】
【発明の属する技術分野】本発明は、I/Oバス上のデ
バイスを要求元または要求先とするトランザクションの
順序を保証したマルチプロセッサシステム、もしくはよ
り一般に、トランザクション制御システムに関する。
バイスを要求元または要求先とするトランザクションの
順序を保証したマルチプロセッサシステム、もしくはよ
り一般に、トランザクション制御システムに関する。
【0002】
【従来の技術】I/Oバスまたはプロセッサバスが発行
するライトトランザクションをシステムで処理する方法
の一種にポステッドライトがある。ポステッドライトは
ライトトランザクションをシステムが受け付けた直後に
要求元バスで完了させ、以後の処理はシステムが責任を
持って行う処理方法である。ライトトランザクションが
発行されると、当該トランザクションがシステム上で完
了する前にバスまたはプロセッサから後続トランザクシ
ョンが発行可能になり、性能が向上する。
するライトトランザクションをシステムで処理する方法
の一種にポステッドライトがある。ポステッドライトは
ライトトランザクションをシステムが受け付けた直後に
要求元バスで完了させ、以後の処理はシステムが責任を
持って行う処理方法である。ライトトランザクションが
発行されると、当該トランザクションがシステム上で完
了する前にバスまたはプロセッサから後続トランザクシ
ョンが発行可能になり、性能が向上する。
【0003】
【発明が解決しようとする課題】しかしながらPCIバ
ス仕様レビジョン2.1などの規定ではPCIバス上の
I/Oデバイスを要求元にしたライトトランザクション
は順序を保証しなければならないという制約がある。依
存関係のあるトランザクションを連続して発行した際
に、先行のトランザクションがリトライされた場合に
は、後続のトランザクションが先に完了すると順序が保
証されなくなる。ここでリトライとは要求先が一時的に
アクセスを受け付けられない状態にある場合などに、要
求元に対してしばらく後にあらためてアクセスを実行す
るように要求することである。したがって、あるPCI
バスがライトトランザクションをシステム側に発行する
と、当該ライトがリトライされずに完了が保証されるま
で当該PCIバスは後続トランザクションをシステム側
に発行しないことでこの制約を守っている。その結果、
PCIバスから依存関係のあるトランザクションが連続
して発行された場合には性能が低下してしまうという問
題点があった。
ス仕様レビジョン2.1などの規定ではPCIバス上の
I/Oデバイスを要求元にしたライトトランザクション
は順序を保証しなければならないという制約がある。依
存関係のあるトランザクションを連続して発行した際
に、先行のトランザクションがリトライされた場合に
は、後続のトランザクションが先に完了すると順序が保
証されなくなる。ここでリトライとは要求先が一時的に
アクセスを受け付けられない状態にある場合などに、要
求元に対してしばらく後にあらためてアクセスを実行す
るように要求することである。したがって、あるPCI
バスがライトトランザクションをシステム側に発行する
と、当該ライトがリトライされずに完了が保証されるま
で当該PCIバスは後続トランザクションをシステム側
に発行しないことでこの制約を守っている。その結果、
PCIバスから依存関係のあるトランザクションが連続
して発行された場合には性能が低下してしまうという問
題点があった。
【0004】同様にプロセッサを要求元とし、PCIバ
ス上のI/Oデバイスを要求先にしたライトトランザク
ションにおいても、順序を保証する必要があるため、先
行のライトトランザクションが完了するまで後続のライ
トトランザクションが連続発行できずにスループットが
低下する問題があった。
ス上のI/Oデバイスを要求先にしたライトトランザク
ションにおいても、順序を保証する必要があるため、先
行のライトトランザクションが完了するまで後続のライ
トトランザクションが連続発行できずにスループットが
低下する問題があった。
【0005】本発明は上記の従来問題点を鑑み、依存関
係のあるトランザクションの順序保証をしつつ要求元が
先行のライトトランザクションの完了を待たずに後続ト
ランザクションを連続発行することでバストランザクシ
ョンを高速化することを目的とする。
係のあるトランザクションの順序保証をしつつ要求元が
先行のライトトランザクションの完了を待たずに後続ト
ランザクションを連続発行することでバストランザクシ
ョンを高速化することを目的とする。
【0006】
【課題を解決するための手段】I/Oデバイスが接続さ
れる少なくとも1つのI/Oバスが各々結合された複数
のI/Oユニットと、プロセッサユニットが接続される
少なくとも1つのプロセッサバスが各々結合された複数
のノードコントローラユニットとがネットワークで相互
結合されたマルチプロセッサシステムにおいて、本発明
は以下の構成により前記従来の技術の課題を解決する。
れる少なくとも1つのI/Oバスが各々結合された複数
のI/Oユニットと、プロセッサユニットが接続される
少なくとも1つのプロセッサバスが各々結合された複数
のノードコントローラユニットとがネットワークで相互
結合されたマルチプロセッサシステムにおいて、本発明
は以下の構成により前記従来の技術の課題を解決する。
【0007】まずI/Oバスを発生源としてノードコン
トローラに結合されるプロセッサバスに向けられるI/
O発トランザクションの制御に関しては、トランザクシ
ョンの要求元となる各I/Oユニットに、結合されたI
/Oバスから受け付けた一連のI/O発トランザクショ
ンを、先行するI/O発トランザクションの要求先から
の確認応答の受信に関わりなく要求先のノードコントロ
ーラユニットに向けて順次発行し、かつ発行済みのI/
O発トランザクションについて要求先からリトライが要
求されたときには再発行するI/Oトランザクション発
行部を備える。一方、要求先となる各ノードコントロー
ラユニットにはI/Oトランザクション処理部を備え、
各I/Oトランザクション処理部は、I/O発トランザ
クションを受信して処理が不可能と判定すると要求元の
I/Oユニットにリトライの要求を返送し、かつリトラ
イの要求を返送したトランザクションの発生源であるI
/Oバスと同一のI/Oバスを発生源とする後続するI
/Oト発ランザクションについては処理を実施せずに自
動的に要求元のI/Oユニットにリトライの要求を返送
する。
トローラに結合されるプロセッサバスに向けられるI/
O発トランザクションの制御に関しては、トランザクシ
ョンの要求元となる各I/Oユニットに、結合されたI
/Oバスから受け付けた一連のI/O発トランザクショ
ンを、先行するI/O発トランザクションの要求先から
の確認応答の受信に関わりなく要求先のノードコントロ
ーラユニットに向けて順次発行し、かつ発行済みのI/
O発トランザクションについて要求先からリトライが要
求されたときには再発行するI/Oトランザクション発
行部を備える。一方、要求先となる各ノードコントロー
ラユニットにはI/Oトランザクション処理部を備え、
各I/Oトランザクション処理部は、I/O発トランザ
クションを受信して処理が不可能と判定すると要求元の
I/Oユニットにリトライの要求を返送し、かつリトラ
イの要求を返送したトランザクションの発生源であるI
/Oバスと同一のI/Oバスを発生源とする後続するI
/Oト発ランザクションについては処理を実施せずに自
動的に要求元のI/Oユニットにリトライの要求を返送
する。
【0008】このように、要求先ユニットにて、同一バ
スを発生源とする一連のトランザクションの1つをでリ
トライとしたら、それに後続するトランザクションもリ
トライとする構成により、後から発行したトランザクシ
ョンが要求先ユニットで先行するトランザクションより
も先に処理が受け付けられ、処理順序が逆転する事態が
防止される。つまり、一連トランザクションの順序保証
がなされ、要求元ユニットにて要求先からトランザクシ
ョン完了の確認応答の返送を待って次のトランザクショ
ンを発行するという発行方法をとる必要がなくなり、高
速のトランザクションが可能となる。
スを発生源とする一連のトランザクションの1つをでリ
トライとしたら、それに後続するトランザクションもリ
トライとする構成により、後から発行したトランザクシ
ョンが要求先ユニットで先行するトランザクションより
も先に処理が受け付けられ、処理順序が逆転する事態が
防止される。つまり、一連トランザクションの順序保証
がなされ、要求元ユニットにて要求先からトランザクシ
ョン完了の確認応答の返送を待って次のトランザクショ
ンを発行するという発行方法をとる必要がなくなり、高
速のトランザクションが可能となる。
【0009】より具体的には、要求先となるユニット、
上記の構成では各ノードコントロールユニットに、トラ
ンザクションの発生源である個々のI/Oバスに対応し
たエントリーを有するリトライフラグレジスタを設け、
その各エントリーには対応するI/Oバスを発生源とす
るトランザクションについてリトライを要求したらその
ことを示すリトライフラグを記録する。これを利用し
て、同一I/Oバスからの一連のトランザクションの一
つを一旦リトライとすれば後続のトランザクションもリ
トライとすることができる。
上記の構成では各ノードコントロールユニットに、トラ
ンザクションの発生源である個々のI/Oバスに対応し
たエントリーを有するリトライフラグレジスタを設け、
その各エントリーには対応するI/Oバスを発生源とす
るトランザクションについてリトライを要求したらその
ことを示すリトライフラグを記録する。これを利用し
て、同一I/Oバスからの一連のトランザクションの一
つを一旦リトライとすれば後続のトランザクションもリ
トライとすることができる。
【0010】要求先ユニットにてリトライを解消する、
つまり対応するリトライフラグをクリアするのは、リト
ライ要求により再発行される一連のトランザクションの
うち先頭のもの(最初にリトライとされ、再発行された
トランザクション)を受信し、要求先ユニットにて処理
可能であった時である。再発行している一連トランザク
ションのうちの後続のものが受信されても、自動的にリ
トライを繰り返すのみである。この、処理可能かの判定
を行い、可能ならばリトライを解消し、トランザクショ
ン処理に移行するのか、それともリトライを自動的に繰
り返すか、の区別のため、要求元となる各I/Oユニッ
トのトランザクション発行部は、再発行である一連のト
ランザクションの先頭にヘッダフラグを付して再発行す
る。1つのI/Oユニットに複数のI/Oバスが結合さ
れる構成では、ヘッダフラグはそのうち個々のI/Oバ
スを発生源とする一連のトランザクションの先頭をも意
味するようにしても良い。さらに、各I/Oユニットの
トランザクションキューには、始めて発行するトランザ
クションか再発行するトランザクションかを区別して記
録するためのトランザクション属性フィールドを設け
る。
つまり対応するリトライフラグをクリアするのは、リト
ライ要求により再発行される一連のトランザクションの
うち先頭のもの(最初にリトライとされ、再発行された
トランザクション)を受信し、要求先ユニットにて処理
可能であった時である。再発行している一連トランザク
ションのうちの後続のものが受信されても、自動的にリ
トライを繰り返すのみである。この、処理可能かの判定
を行い、可能ならばリトライを解消し、トランザクショ
ン処理に移行するのか、それともリトライを自動的に繰
り返すか、の区別のため、要求元となる各I/Oユニッ
トのトランザクション発行部は、再発行である一連のト
ランザクションの先頭にヘッダフラグを付して再発行す
る。1つのI/Oユニットに複数のI/Oバスが結合さ
れる構成では、ヘッダフラグはそのうち個々のI/Oバ
スを発生源とする一連のトランザクションの先頭をも意
味するようにしても良い。さらに、各I/Oユニットの
トランザクションキューには、始めて発行するトランザ
クションか再発行するトランザクションかを区別して記
録するためのトランザクション属性フィールドを設け
る。
【0011】以上にI/Oバスを発生源としてノードコ
ントローラに結合されたプロセッサバスに向けられるI
/O発トランザクションの制御に関する本発明の特徴的
構成についてのべたが、プロセッサバスを発生源として
I/Oバスに向けられるプロセッサ発トランザクション
についても全く同様の構成が取られる。即ち、要求元と
なる各ノードコントロールユニットに、プロセッサバス
から受け付けた一連のトランザクションを要求先のI/
Oユニットに向けて連続して発行し、かつ発行済みのト
ランザクションについて要求先からリトライが要求され
たときには再発行するトランザクション発行部を備え、
一方、要求先となる各I/Oユニットにはプロセッサト
ランザクション処理部を備え、各プロセッサトランザク
ション処理部は、トランザクション処理が不可能と判定
すると要求元のノードコントローラユニットにリトライ
の要求を返送し、かつリトライの要求を返送したトラン
ザクションの発生源であるプロセッサバスと同一のプロ
セッサバスを発生源とする後続するトランザクションに
ついては自動的にリトライとする。
ントローラに結合されたプロセッサバスに向けられるI
/O発トランザクションの制御に関する本発明の特徴的
構成についてのべたが、プロセッサバスを発生源として
I/Oバスに向けられるプロセッサ発トランザクション
についても全く同様の構成が取られる。即ち、要求元と
なる各ノードコントロールユニットに、プロセッサバス
から受け付けた一連のトランザクションを要求先のI/
Oユニットに向けて連続して発行し、かつ発行済みのト
ランザクションについて要求先からリトライが要求され
たときには再発行するトランザクション発行部を備え、
一方、要求先となる各I/Oユニットにはプロセッサト
ランザクション処理部を備え、各プロセッサトランザク
ション処理部は、トランザクション処理が不可能と判定
すると要求元のノードコントローラユニットにリトライ
の要求を返送し、かつリトライの要求を返送したトラン
ザクションの発生源であるプロセッサバスと同一のプロ
セッサバスを発生源とする後続するトランザクションに
ついては自動的にリトライとする。
【0012】要求先となる各I/Oユニットにリトライ
フラグレジスタを設ける点、若しくは要求元となる各ノ
ードコントローラユニットのトランザクション発行で再
発行するトランザクションの先頭のものにヘッダフラグ
を付す点などの具体的構成も、先に述べたI/Oトラン
ザクションの制御のための構成と同様である。
フラグレジスタを設ける点、若しくは要求元となる各ノ
ードコントローラユニットのトランザクション発行で再
発行するトランザクションの先頭のものにヘッダフラグ
を付す点などの具体的構成も、先に述べたI/Oトラン
ザクションの制御のための構成と同様である。
【0013】要求先からの1つのトランザクションに対
するリトライの返送に対応して、要求元では既に送信済
みの一連のトランザクション全てを連続して再発行する
ように構成する変形も可能である。この変形の場合、要
求先では、一旦1つのトランザクションにリトライを返
送した場合、後続トランザックションについてリトライ
を返送する必要はなくなる。ただし、後続トランザクシ
ョンについいては、受信しても処理を行わない。このよ
うな構成では返送の通信オーバヘッドが小さくなり、よ
り高速のトランザクション処理が可能となる。
するリトライの返送に対応して、要求元では既に送信済
みの一連のトランザクション全てを連続して再発行する
ように構成する変形も可能である。この変形の場合、要
求先では、一旦1つのトランザクションにリトライを返
送した場合、後続トランザックションについてリトライ
を返送する必要はなくなる。ただし、後続トランザクシ
ョンについいては、受信しても処理を行わない。このよ
うな構成では返送の通信オーバヘッドが小さくなり、よ
り高速のトランザクション処理が可能となる。
【0014】なお、上記ではトランザクションの管理単
位を単一のプロセッサバス単位としているが、単一のプ
ロセッサユニット単位でも良い。I/Oトランザクショ
ンに関しては、発行されるI/Oトランザクションの最
終的な要求先が各プロセッサユニットとなる。また、プ
ロセッサトランザクションに関しては、各プロセッサト
ランザクション処理部は、リトライの要求を返送したト
ランザクションの発生源であるプロセッサユニットと同
一のプロセッサユニットを発生源とする後続するトラン
ザクションについて自動的にリトライとする構成とな
る。各I/Oユニットのリトライフラグレジスタは、発
生源であるプロセッサユニット単位にリトライフラグが
設定する構成となる。
位を単一のプロセッサバス単位としているが、単一のプ
ロセッサユニット単位でも良い。I/Oトランザクショ
ンに関しては、発行されるI/Oトランザクションの最
終的な要求先が各プロセッサユニットとなる。また、プ
ロセッサトランザクションに関しては、各プロセッサト
ランザクション処理部は、リトライの要求を返送したト
ランザクションの発生源であるプロセッサユニットと同
一のプロセッサユニットを発生源とする後続するトラン
ザクションについて自動的にリトライとする構成とな
る。各I/Oユニットのリトライフラグレジスタは、発
生源であるプロセッサユニット単位にリトライフラグが
設定する構成となる。
【0015】先頭トランザクションを判別するためにト
ランザクションにヘッダを付与する代わりにヘッダフラ
グをトランザクションにエンコードする構成とすること
も可能である。その他の本発明の特徴は実施態様の説明
にて明らかにされる。
ランザクションにヘッダを付与する代わりにヘッダフラ
グをトランザクションにエンコードする構成とすること
も可能である。その他の本発明の特徴は実施態様の説明
にて明らかにされる。
【0016】
【発明の実施の形態】以下、I/Oバス上のデバイスを
要求元としたトランザクションとしてI/O発メモリラ
イトを例に、またI/Oバス上のデバイスを要求先とし
たトランザクションとしてプロセッサバス発I/Oライ
トを例として、本発明の実施例を図面を参照しつつ説明
する。以降の説明では、I/O発のトランザクションを
I/Oトランザクション、またプロセッサバス発のトラ
ンザクションをプロセッサトランザクションと記す。ま
た一連のトランザクションと記した場合には依存関係の
あるトランザクション、より詳しくは単一のバス(I/
Oバス、もしくはプロセッサバス)を発生源とする連続
する一群のトランザクションのことを意味している。
要求元としたトランザクションとしてI/O発メモリラ
イトを例に、またI/Oバス上のデバイスを要求先とし
たトランザクションとしてプロセッサバス発I/Oライ
トを例として、本発明の実施例を図面を参照しつつ説明
する。以降の説明では、I/O発のトランザクションを
I/Oトランザクション、またプロセッサバス発のトラ
ンザクションをプロセッサトランザクションと記す。ま
た一連のトランザクションと記した場合には依存関係の
あるトランザクション、より詳しくは単一のバス(I/
Oバス、もしくはプロセッサバス)を発生源とする連続
する一群のトランザクションのことを意味している。
【0017】図1は本発明の一実施例に係るマルチプロ
セッサシステムの構成を示す概略図である。図1におい
て、ノード1aに含まれるI/Oユニット11には複数
のA11〜A12が接続され、ごれらを介して複数のI
/Oデバイスが15,16が接続される。なお、図では
個々のI/Oバスにそろぞれ1つずつのI/Oデバイス
が接続されるが、各I/Oバスに複数のI/Oデバイス
を接続する構成も可能である。一方、ノードコントロー
ラユニット21には複数のプロセッサバスB11〜B1
2が接続され、これらを介して複数のプロセッサユニッ
ト25,26が接続可能である。ここでも、各プロセッ
サバスに複数のプロセッサユニットを接続する構成も可
能である。I/Oユニット11はI/Oバス上のデバイ
スから発行されたトランザクションまたはI/Oバス上
のデバイスに対して発行されたトランザクションの制御
を行う。またノードコントローラユニット21はプロセ
ッサバス上のプロセッサユニットから発行されたトラン
ザクションまたはプロセッサバス上のプロセッサユニッ
トに対して発行されたトランザクションの制御を行う。
ノード1bに示すとおり、上記と同様な構成のノードが
複数個、多重に設けられ、それらのノード間がネットワ
ークC11によって結合されてマルチプロセッサシステ
ムを構成している。なお、I/Oユニットかノードコン
トローラユニットかのいずれか一方だけを備えたノード
が、図示した双方を備えたノーと混在するマルチプロセ
ッサシステムも可能である。また、I/Oユニットだけ
のノードとノードコントローラだけのユニットでマルチ
プロセッサシステムを構成することもできる。ネットワ
ークC11は内部に図示しないバッファを持ち、各ノー
ドから発行されたトランザクションをバッファリングさ
せる。このため、各ノードからのトランザクションの連
続発行が可能である。
セッサシステムの構成を示す概略図である。図1におい
て、ノード1aに含まれるI/Oユニット11には複数
のA11〜A12が接続され、ごれらを介して複数のI
/Oデバイスが15,16が接続される。なお、図では
個々のI/Oバスにそろぞれ1つずつのI/Oデバイス
が接続されるが、各I/Oバスに複数のI/Oデバイス
を接続する構成も可能である。一方、ノードコントロー
ラユニット21には複数のプロセッサバスB11〜B1
2が接続され、これらを介して複数のプロセッサユニッ
ト25,26が接続可能である。ここでも、各プロセッ
サバスに複数のプロセッサユニットを接続する構成も可
能である。I/Oユニット11はI/Oバス上のデバイ
スから発行されたトランザクションまたはI/Oバス上
のデバイスに対して発行されたトランザクションの制御
を行う。またノードコントローラユニット21はプロセ
ッサバス上のプロセッサユニットから発行されたトラン
ザクションまたはプロセッサバス上のプロセッサユニッ
トに対して発行されたトランザクションの制御を行う。
ノード1bに示すとおり、上記と同様な構成のノードが
複数個、多重に設けられ、それらのノード間がネットワ
ークC11によって結合されてマルチプロセッサシステ
ムを構成している。なお、I/Oユニットかノードコン
トローラユニットかのいずれか一方だけを備えたノード
が、図示した双方を備えたノーと混在するマルチプロセ
ッサシステムも可能である。また、I/Oユニットだけ
のノードとノードコントローラだけのユニットでマルチ
プロセッサシステムを構成することもできる。ネットワ
ークC11は内部に図示しないバッファを持ち、各ノー
ドから発行されたトランザクションをバッファリングさ
せる。このため、各ノードからのトランザクションの連
続発行が可能である。
【0018】I/Oユニット11は複数のI/OバスA
11〜A12とのI/Oバスインタフェース100、I
/OバスA11〜A12からのトランザクションを格納
するI/Oリクエストキュー110、I/Oリクエスト
キュー110に格納されたトランザクションを先行のト
ランザクションの完了を待たずに順次発行する機能を持
つI/Oトランザクション発行部120、プロセッサト
ランザクションを処理するプロセッサトランザクション
処理部130およびプロセッサトランザクションリトラ
イフラグレジスタ140を有する。ここでプロセッサト
ランザクションリトライフラグレジスタ140はリトラ
イビットというマルチプロセッサシステム内の全てのプ
ロセッサバスに個別に対応した初期値が‘0’であるエ
ントリを持ち、何れのプロセッサバスからのトランザク
ションにリトライが要求されたかを記録する。
11〜A12とのI/Oバスインタフェース100、I
/OバスA11〜A12からのトランザクションを格納
するI/Oリクエストキュー110、I/Oリクエスト
キュー110に格納されたトランザクションを先行のト
ランザクションの完了を待たずに順次発行する機能を持
つI/Oトランザクション発行部120、プロセッサト
ランザクションを処理するプロセッサトランザクション
処理部130およびプロセッサトランザクションリトラ
イフラグレジスタ140を有する。ここでプロセッサト
ランザクションリトライフラグレジスタ140はリトラ
イビットというマルチプロセッサシステム内の全てのプ
ロセッサバスに個別に対応した初期値が‘0’であるエ
ントリを持ち、何れのプロセッサバスからのトランザク
ションにリトライが要求されたかを記録する。
【0019】ここで、I/Oトランザクション発行部1
10から発行されるトランザクションのフォーマット
は、図2に示とおり、要求元のバスID、要求先のバス
ID、要求内容等のトラんザクション自体を示すフィー
ルド30と、ヘッダフラグフィールド31から成る。ヘ
ッダフラグフィールド31は、順次発行するトランザク
ションのうち、単一のI/Oバスに接続されるデバイス
からの連続する一群のトランザクションの先頭のトラン
ザクションでは”1”、後続するトランザクションで
は”0”とする。また、後で詳述するように本実施例で
は、単一のバスからの一連のトランザクションの転送が
完了する前に要求先でリトライが発生すると、最初にリ
トライされたトランザクションだけでなく、一連のトラ
ンザクション中の後続するトランザクションにもリトラ
イとされ、それらのトランザクションは再発行すること
になる。その再発行の先頭のトランザクションに付すヘ
ッダフラグフィールドも”1”である。I/Oトランザ
クション発行部110は、このように一連のトランザク
ションの先頭か否かで区別してヘッダフラグを付加する
機能をもつ。
10から発行されるトランザクションのフォーマット
は、図2に示とおり、要求元のバスID、要求先のバス
ID、要求内容等のトラんザクション自体を示すフィー
ルド30と、ヘッダフラグフィールド31から成る。ヘ
ッダフラグフィールド31は、順次発行するトランザク
ションのうち、単一のI/Oバスに接続されるデバイス
からの連続する一群のトランザクションの先頭のトラン
ザクションでは”1”、後続するトランザクションで
は”0”とする。また、後で詳述するように本実施例で
は、単一のバスからの一連のトランザクションの転送が
完了する前に要求先でリトライが発生すると、最初にリ
トライされたトランザクションだけでなく、一連のトラ
ンザクション中の後続するトランザクションにもリトラ
イとされ、それらのトランザクションは再発行すること
になる。その再発行の先頭のトランザクションに付すヘ
ッダフラグフィールドも”1”である。I/Oトランザ
クション発行部110は、このように一連のトランザク
ションの先頭か否かで区別してヘッダフラグを付加する
機能をもつ。
【0020】ノードコントローラユニット21は複数の
プロセッサバスB11〜B12とのプロセッサバスイン
タフェース200、プロセッサバスB11〜B12から
のトランザクションを格納するプロセッサリクエストキ
ュー210、プロセッサリクエストキュー210に格納
されたトランザクションを先行のトランザクションの完
了を待たずに順次発行する機能を持つプロセッサトラン
ザクション発行部220、I/Oトランザクションを処
理するI/Oトランザクション処理部230およびI/
Oトランザクションリトライフラグレジスタ240を有
する。ここでプロセッサトランザクション発行部220
から発行されるトランザクションも図2と同様なフォー
マットを有する。すなわち、プロセッサトランザクショ
ン発行部220は単一プロセッサバスからの一連のプロ
セッサトランザクションの先頭か否かを区別するヘッダ
フラグフィールドを付加してプロセッサトランザクショ
ンを発行、または再発行する。I/Oトランザクション
リトライフラグレジスタ240はリトライビットという
マルチプロセッサシステム内の全てのI/Oバスに個別
に対応した初期値が‘0’であるエントリを持ち、何れ
のI/Oバスからのトランザクションがリトライされた
かを記録する。
プロセッサバスB11〜B12とのプロセッサバスイン
タフェース200、プロセッサバスB11〜B12から
のトランザクションを格納するプロセッサリクエストキ
ュー210、プロセッサリクエストキュー210に格納
されたトランザクションを先行のトランザクションの完
了を待たずに順次発行する機能を持つプロセッサトラン
ザクション発行部220、I/Oトランザクションを処
理するI/Oトランザクション処理部230およびI/
Oトランザクションリトライフラグレジスタ240を有
する。ここでプロセッサトランザクション発行部220
から発行されるトランザクションも図2と同様なフォー
マットを有する。すなわち、プロセッサトランザクショ
ン発行部220は単一プロセッサバスからの一連のプロ
セッサトランザクションの先頭か否かを区別するヘッダ
フラグフィールドを付加してプロセッサトランザクショ
ンを発行、または再発行する。I/Oトランザクション
リトライフラグレジスタ240はリトライビットという
マルチプロセッサシステム内の全てのI/Oバスに個別
に対応した初期値が‘0’であるエントリを持ち、何れ
のI/Oバスからのトランザクションがリトライされた
かを記録する。
【0021】以下一連のトランザクションTa〜Tdの
連続発行において、Tcでリトライが発生した場合を例
に順序を保証する方法について述べる。
連続発行において、Tcでリトライが発生した場合を例
に順序を保証する方法について述べる。
【0022】まず図3〜図7を用いてI/Oトランザク
ションの順序保証について説明する。
ションの順序保証について説明する。
【0023】図3はノード1aに対して、I/OバスA
11の上のデバイスから一連のトランザクションTa〜
Tdが発行された状態を表している。I/Oリクエスト
キュー110の各エントリはトランザクションフィール
ド110aおよびトランザクション属性フィールド11
0bで構成されており、発行されたトランザクションは
トランザクションフィールド110aに順に格納され
る。トランザクション属性フィールド110bには各ト
ランザクションが始めて要求されたトランザクションで
あること、つまり要求先のノードに一度発行したが要求
先で処理できないためリトライが要求され、再度発行し
ようとするトランザクションではないことが記述されて
いる。この例では具体的には‘0’がセットされてい
る。
11の上のデバイスから一連のトランザクションTa〜
Tdが発行された状態を表している。I/Oリクエスト
キュー110の各エントリはトランザクションフィール
ド110aおよびトランザクション属性フィールド11
0bで構成されており、発行されたトランザクションは
トランザクションフィールド110aに順に格納され
る。トランザクション属性フィールド110bには各ト
ランザクションが始めて要求されたトランザクションで
あること、つまり要求先のノードに一度発行したが要求
先で処理できないためリトライが要求され、再度発行し
ようとするトランザクションではないことが記述されて
いる。この例では具体的には‘0’がセットされてい
る。
【0024】I/Oトランザクション送信部120はネ
ットワークC11を介して要求先のノード1bに対して
トランザクションを発行する。このときI/Oトランザ
クション送信部120にて付加されるヘッダフラグフィ
ールド31の値は、先頭のトランザクションTaについ
ては”1”、後続するトランザクションについては”
0”である。なお、トランザクションTdの後方に、例
えばI/OバスA12等の別のI/Oバスからの一連の
トランザクションが入力すれば、その別のI/Oバスか
らの一連のトランザクションの先頭をI/Oトランザク
ション送信部120から発行する際に、そのヘッドフラ
グフィールドは”1”とされる。
ットワークC11を介して要求先のノード1bに対して
トランザクションを発行する。このときI/Oトランザ
クション送信部120にて付加されるヘッダフラグフィ
ールド31の値は、先頭のトランザクションTaについ
ては”1”、後続するトランザクションについては”
0”である。なお、トランザクションTdの後方に、例
えばI/OバスA12等の別のI/Oバスからの一連の
トランザクションが入力すれば、その別のI/Oバスか
らの一連のトランザクションの先頭をI/Oトランザク
ション送信部120から発行する際に、そのヘッドフラ
グフィールドは”1”とされる。
【0025】図4〜図5ではトランザクション受信時の
振る舞いについて述べる。
振る舞いについて述べる。
【0026】まず、要求先のノードのトンザクション処
理部でのアルゴリズムは次のとおりである。
理部でのアルゴリズムは次のとおりである。
【0027】リトライフラグレジスタの受信トランザ
クションに対応するビットが”0”なら、トランザクシ
ョン処理が実行可能か否かを判定し、可能ならOKのア
クノリッジ(確認応答)を要求元に返して処理を実行す
る。不可能なら要求元にリトライを要求し、リトライフ
ラグレジスタの対応ビットに”1”を記録する。
クションに対応するビットが”0”なら、トランザクシ
ョン処理が実行可能か否かを判定し、可能ならOKのア
クノリッジ(確認応答)を要求元に返して処理を実行す
る。不可能なら要求元にリトライを要求し、リトライフ
ラグレジスタの対応ビットに”1”を記録する。
【0028】リトライフラグレジスタの受信トランザ
クションに対応するビットが”1”で、受信トランザク
ションのヘッダフラグが”1”なら、トランザクション
処理が実行可能か否かを判定する。実行可能なら、OK
のアクノリッジを要求元に返してトランザクション処理
を実行し、かつリトライフラグレジスタの対応するビッ
トを”0”にクリアする。実行不可能なら、リトライ要
求を要求元に返す。
クションに対応するビットが”1”で、受信トランザク
ションのヘッダフラグが”1”なら、トランザクション
処理が実行可能か否かを判定する。実行可能なら、OK
のアクノリッジを要求元に返してトランザクション処理
を実行し、かつリトライフラグレジスタの対応するビッ
トを”0”にクリアする。実行不可能なら、リトライ要
求を要求元に返す。
【0029】リトライフラグレジスタの受信トランザ
クションに対応するビットが”1”で、かつ受信トラン
ザクションのヘッダフラグが”0”なら、トランザクシ
ョン処理を実行せず、自動的にリトライ要求を要求元に
返す。
クションに対応するビットが”1”で、かつ受信トラン
ザクションのヘッダフラグが”0”なら、トランザクシ
ョン処理を実行せず、自動的にリトライ要求を要求元に
返す。
【0030】図4にて、要求先のノード1bのI/Oト
ランザクション処理部230がトランザクションTaを
受信すると、ヘッダフラグが付与されていることからT
aが一連のトランザクションの先頭であることを知る。
さらに図4に示すようにTaを発行したI/OバスA1
1に対応するI/Oトランザクションリトライフラグレ
ジスタ240のリトライビット240aが‘0’である
ことから、Taの発生源のI/Oバスからのトランザク
ションはリトライ中でないことことを知る。その結果I
/Oトランザクション処理部230はトランザクション
処理が可能かを判定する。ここでは、実行可能なので、
Taに対してトランザクション処理を実行し、かつノー
ド1aに対してOKを返す。
ランザクション処理部230がトランザクションTaを
受信すると、ヘッダフラグが付与されていることからT
aが一連のトランザクションの先頭であることを知る。
さらに図4に示すようにTaを発行したI/OバスA1
1に対応するI/Oトランザクションリトライフラグレ
ジスタ240のリトライビット240aが‘0’である
ことから、Taの発生源のI/Oバスからのトランザク
ションはリトライ中でないことことを知る。その結果I
/Oトランザクション処理部230はトランザクション
処理が可能かを判定する。ここでは、実行可能なので、
Taに対してトランザクション処理を実行し、かつノー
ド1aに対してOKを返す。
【0031】次にI/Oトランザクション処理部230
がトランザクションTbを受信すると、ここでもI/O
トランザクションリトライフラグレジスタ240の対応
するリトライビット240aが‘0’であるのでTbに
対してヘッダフラグが付与されていない(ヘッダフラグ
フィールドの値が”0”である)ため、処理実行可能か
を判定し、実行可能なのでTbに対して通常の処理を行
い、かつノード1aに対してOKを返す。
がトランザクションTbを受信すると、ここでもI/O
トランザクションリトライフラグレジスタ240の対応
するリトライビット240aが‘0’であるのでTbに
対してヘッダフラグが付与されていない(ヘッダフラグ
フィールドの値が”0”である)ため、処理実行可能か
を判定し、実行可能なのでTbに対して通常の処理を行
い、かつノード1aに対してOKを返す。
【0032】I/Oトランザクション処理部230がT
cを受信すると、ここでもここでもI/Oトランザクシ
ョンリトライフラグレジスタ240の対応するリトライ
ビット240aが”0”なので、実行可能かの判定を行
う。しかし、ここでは何らかの理由でTcの処理が行え
ないと判定され、、I/Oトランザクション処理部23
0は要求元のノード1aに対してリトライを要求する。
このとき図5に示すようにI/Oトランザクションリト
ライフラグレジスタ240のI/OバスA11に対応す
るリトライビット240aに‘1’をセットする。つま
り、I/OバスA11を要求元とするトランザクション
にはリトライを要求したことが記録される。
cを受信すると、ここでもここでもI/Oトランザクシ
ョンリトライフラグレジスタ240の対応するリトライ
ビット240aが”0”なので、実行可能かの判定を行
う。しかし、ここでは何らかの理由でTcの処理が行え
ないと判定され、、I/Oトランザクション処理部23
0は要求元のノード1aに対してリトライを要求する。
このとき図5に示すようにI/Oトランザクションリト
ライフラグレジスタ240のI/OバスA11に対応す
るリトライビット240aに‘1’をセットする。つま
り、I/OバスA11を要求元とするトランザクション
にはリトライを要求したことが記録される。
【0033】続いてI/Oトランザクション処理部23
0がTdを受信する。I/Oトランザクションリトライ
フラグレジスタ240の対応するリトライビット240
aが‘1’であり、かつ受信したTdにヘッダフラグが
付されていないので、I/Oトランザクション処理部2
30は受信したトランザクションについてリトライを要
求する。つまりI/Oトランザクション処理部230は
トランザクションTdについては処理可能か否かに関わ
りなくリトライを要求する。
0がTdを受信する。I/Oトランザクションリトライ
フラグレジスタ240の対応するリトライビット240
aが‘1’であり、かつ受信したTdにヘッダフラグが
付されていないので、I/Oトランザクション処理部2
30は受信したトランザクションについてリトライを要
求する。つまりI/Oトランザクション処理部230は
トランザクションTdについては処理可能か否かに関わ
りなくリトライを要求する。
【0034】図6〜図7ではリトライ発生時の振る舞い
について述べる。
について述べる。
【0035】まずここで、I/Oトランザクション発行
部120トランザクション発行のアルゴリズムを述べ
る。
部120トランザクション発行のアルゴリズムを述べ
る。
【0036】基本的には、I/Oリクエストキュー1
10に貯まっているI/Oバスからのトランザクション
要求をキューの順番にI/Oトランザクションとして発
行する(確認応答を待たない順次発行)。
10に貯まっているI/Oバスからのトランザクション
要求をキューの順番にI/Oトランザクションとして発
行する(確認応答を待たない順次発行)。
【0037】要求先からOKのアクノリッジ(確認応
答)が返送されたら、それに対応するトランザクション
をキューから削除する。
答)が返送されたら、それに対応するトランザクション
をキューから削除する。
【0038】要求先からリトライの要求が返送された
ら、上記の順番発行を停止し、I/Oリクエストキュ
ー110に残っている対応するトランザクションについ
てトランザクション属性フィールド110bに’1’を
セットし、再発行する。
ら、上記の順番発行を停止し、I/Oリクエストキュ
ー110に残っている対応するトランザクションについ
てトランザクション属性フィールド110bに’1’を
セットし、再発行する。
【0039】上記発行に当たり、同一I/Oバスから
の一連のI/Oトランザクションのもしくは先頭にはヘ
ッダフラグを付す。上記の再発行の場合も先の再発行
に続く後続でなく再発行の先頭なら同様にヘッダフラグ
を付す。
の一連のI/Oトランザクションのもしくは先頭にはヘ
ッダフラグを付す。上記の再発行の場合も先の再発行
に続く後続でなく再発行の先頭なら同様にヘッダフラグ
を付す。
【0040】再発行している状態で要求先からOKの
アクノリッジ(確認応答)が返送されたら、上記の順
次発行に戻る。
アクノリッジ(確認応答)が返送されたら、上記の順
次発行に戻る。
【0041】図の例に戻り、説明を続けると、ノード1
aではTa、Tbに関してはノード1bからOKが返っ
てきたためI/Oリクエストキュー110からTaとT
bのエントリを削除する。しかしTc、Tdに関しては
ノード1bからリトライ要求を受けたため、図6に示す
ようにトランザクション属性フィールド110bにはリ
トライ要求されたトランザクションであることを示す
‘1’がセットされる。I/Oトランザクション送信部
120はリトライ要求に応じてトランザクションを再送
する。このときトランザクションTcが先頭トランザク
ションになるためヘッダフラグ31を付与して再発行す
る。
aではTa、Tbに関してはノード1bからOKが返っ
てきたためI/Oリクエストキュー110からTaとT
bのエントリを削除する。しかしTc、Tdに関しては
ノード1bからリトライ要求を受けたため、図6に示す
ようにトランザクション属性フィールド110bにはリ
トライ要求されたトランザクションであることを示す
‘1’がセットされる。I/Oトランザクション送信部
120はリトライ要求に応じてトランザクションを再送
する。このときトランザクションTcが先頭トランザク
ションになるためヘッダフラグ31を付与して再発行す
る。
【0042】ノード1bでは受信したTcにヘッダフラ
グが付与され、かつ図5に示すようにI/Oトランザク
ションリトライフラグレジスタ240の対応するリトラ
イビット240aが‘1’であるため、Tcが再発行さ
れたトランザクションの先頭であることを知る。この
時、I/Oトランザクション処理部230はトランザク
ション処理が可能かを確認し、可能なら図7に示すよう
にI/Oトランザクション処理部230はI/Oトラン
ザクションリトライフラグレジスタ240の対応するリ
トライビット240aを‘0’にクリアし、Tc処理を
実行する。リトライビットが’0’となれば、I/Oト
ランザクション処理部230の処理は最初と同じとな
り、Tdについても処理可能の判定を経て処理が実行さ
れる。
グが付与され、かつ図5に示すようにI/Oトランザク
ションリトライフラグレジスタ240の対応するリトラ
イビット240aが‘1’であるため、Tcが再発行さ
れたトランザクションの先頭であることを知る。この
時、I/Oトランザクション処理部230はトランザク
ション処理が可能かを確認し、可能なら図7に示すよう
にI/Oトランザクション処理部230はI/Oトラン
ザクションリトライフラグレジスタ240の対応するリ
トライビット240aを‘0’にクリアし、Tc処理を
実行する。リトライビットが’0’となれば、I/Oト
ランザクション処理部230の処理は最初と同じとな
り、Tdについても処理可能の判定を経て処理が実行さ
れる。
【0043】なお、再発行のトランザクションの先頭T
cを受信したとき、I/Oトランザクション処理部23
0で相変わらず処理が不可能と判定されればTcについ
て再びリトライが要求される。すると後続するTbにつ
いてもリトライフラグが’1’なのでリトライが要求さ
れる。処理可能かの判定がなされ、つまりリトライの状
態が解消されるチャンスは、再発行中の一連のトランザ
クション(Tc、Td)のうちの先頭のもの(Tc)を
受信した時のみである。
cを受信したとき、I/Oトランザクション処理部23
0で相変わらず処理が不可能と判定されればTcについ
て再びリトライが要求される。すると後続するTbにつ
いてもリトライフラグが’1’なのでリトライが要求さ
れる。処理可能かの判定がなされ、つまりリトライの状
態が解消されるチャンスは、再発行中の一連のトランザ
クション(Tc、Td)のうちの先頭のもの(Tc)を
受信した時のみである。
【0044】以上のように、1つのI/Oバス上のデバ
イスを発生源とする一連のI/Oトランザクションにつ
いては、要求先のノードにて一旦リトライ要求を返すと
後続のトランザクションもリトライ要求を返すこととな
る。したがって、処理されないI/Oトランザクション
は全て再発行されることになる。また要求元で再発行と
して残さるトランザクションの要求先での扱い(処理か
それともリトライか)は途中では変化しない。したがっ
て単一I/Oバスからの一連のI/Oトランザクション
は、要求先ノードの状態が処理可能となったタイミング
に関わらず、常に順序保証される。続いて図8〜図13
を用いてプロセッサトランザクションの順序保証につい
て説明する。プロセッサトランザクションの発行に関わ
るプロセッサトランザクション発行部220の処理アル
ゴリズムは、先に述べたI/Oトランザクションの発行
に関わるI/Oトランザクション発行部120の処理ア
ルゴリズムと同様である。また、プロセッサトランザク
ションの要求先のプロセッサトランザクション処理部1
30の処理アルゴリズムもI/Oトランザクションの処
理に関わるI/Oトランザクション処理部の処理アルゴ
リズムと同様である。
イスを発生源とする一連のI/Oトランザクションにつ
いては、要求先のノードにて一旦リトライ要求を返すと
後続のトランザクションもリトライ要求を返すこととな
る。したがって、処理されないI/Oトランザクション
は全て再発行されることになる。また要求元で再発行と
して残さるトランザクションの要求先での扱い(処理か
それともリトライか)は途中では変化しない。したがっ
て単一I/Oバスからの一連のI/Oトランザクション
は、要求先ノードの状態が処理可能となったタイミング
に関わらず、常に順序保証される。続いて図8〜図13
を用いてプロセッサトランザクションの順序保証につい
て説明する。プロセッサトランザクションの発行に関わ
るプロセッサトランザクション発行部220の処理アル
ゴリズムは、先に述べたI/Oトランザクションの発行
に関わるI/Oトランザクション発行部120の処理ア
ルゴリズムと同様である。また、プロセッサトランザク
ションの要求先のプロセッサトランザクション処理部1
30の処理アルゴリズムもI/Oトランザクションの処
理に関わるI/Oトランザクション処理部の処理アルゴ
リズムと同様である。
【0045】順にのべると、図8はノード1aに対して
あるプロセッサユニットからトランザクションTa〜T
dが発行された状態を表している。プロセッサリクエス
トキュー210の各エントリもトランザクションフィー
ルド210aおよびトランザクション属性フィールド2
10bで構成されており、発行されたトランザクション
はトランザクションフィールド210aに順に格納され
る。トランザクション属性フィールド210bには各ト
ランザクションが始めて要求されたトランザクションで
あるため‘0’がセットされている。
あるプロセッサユニットからトランザクションTa〜T
dが発行された状態を表している。プロセッサリクエス
トキュー210の各エントリもトランザクションフィー
ルド210aおよびトランザクション属性フィールド2
10bで構成されており、発行されたトランザクション
はトランザクションフィールド210aに順に格納され
る。トランザクション属性フィールド210bには各ト
ランザクションが始めて要求されたトランザクションで
あるため‘0’がセットされている。
【0046】続いてプロセッサトランザクション発行部
220はネットワークC11を介して要求先のノード1
bに対してトランザクションを発行する。ここでもI/
Oトランザクションと同様に各トランザクションに対し
て図2に示すようなヘッダフラグフィールドが付与され
る。プロセッサトランザクション発行部220はTaが
一連のトランザクションの先頭であるため、ヘッダフラ
グフィールドに‘1’をセットする。後続のトランザク
ションのヘッダフィールドには‘0’をセットする。
220はネットワークC11を介して要求先のノード1
bに対してトランザクションを発行する。ここでもI/
Oトランザクションと同様に各トランザクションに対し
て図2に示すようなヘッダフラグフィールドが付与され
る。プロセッサトランザクション発行部220はTaが
一連のトランザクションの先頭であるため、ヘッダフラ
グフィールドに‘1’をセットする。後続のトランザク
ションのヘッダフィールドには‘0’をセットする。
【0047】図9〜図10ではトランザクション受信時
の振る舞いについて述べる。
の振る舞いについて述べる。
【0048】要求先のノード1bではプロセッサトラン
ザクション処理部130において受信したトランザクシ
ョンが順次処理される。プロセッサトランザクション処
理部130がトランザクションTaを受信すると、図9
に示すようにTaを発行したプロセッサバスに対応する
プロセッサトランザクションリトライフラグレジスタ1
40の対応するリトライビット140aが‘0’である
ことからTaがはじめて発行されたトランザクションで
あることを知る。その結果プロセッサトランザクション
処理部130はTaの処理可能かを判定し、ここでは処
理可能であるのでトランザクション処理を実行し、ノー
ド1aに対してOKを返す。
ザクション処理部130において受信したトランザクシ
ョンが順次処理される。プロセッサトランザクション処
理部130がトランザクションTaを受信すると、図9
に示すようにTaを発行したプロセッサバスに対応する
プロセッサトランザクションリトライフラグレジスタ1
40の対応するリトライビット140aが‘0’である
ことからTaがはじめて発行されたトランザクションで
あることを知る。その結果プロセッサトランザクション
処理部130はTaの処理可能かを判定し、ここでは処
理可能であるのでトランザクション処理を実行し、ノー
ド1aに対してOKを返す。
【0049】次にプロセッサトランザクション処理部1
30がトランザクションTbを受信すると、ここでも対
応するリトライビット140aが‘0’であるため処理
可能かの判定を行う。処理可能なため、Tbに対して通
常の処理を行い、かつノード1aに対してOKを返す。
30がトランザクションTbを受信すると、ここでも対
応するリトライビット140aが‘0’であるため処理
可能かの判定を行う。処理可能なため、Tbに対して通
常の処理を行い、かつノード1aに対してOKを返す。
【0050】プロセッサトランザクション処理部130
がTcを受信すると、対応するリトライビット140a
が‘0’なので処理可能かの判定がおこなわれるが、こ
こでは何らかの理由でTcの処理が行えないので、プロ
セッサトランザクション処理部130は要求元のノード
1aに対してリトライを要求する。このとき図10に示
すようにプロセッサトランザクションリトライフラグレ
ジスタ140の対応するリトライビット140aに
‘1’をセットする。続いてプロセッサトランザクショ
ン処理部130がTdを受信すると、プロセッサトラン
ザクション処理部130の対応するリトライビット14
0aが‘1’で、かつTcにヘッダフラグが付されてい
ないのでプロセッサトランザクション処理部130はT
dに関してもリトライを要求する。
がTcを受信すると、対応するリトライビット140a
が‘0’なので処理可能かの判定がおこなわれるが、こ
こでは何らかの理由でTcの処理が行えないので、プロ
セッサトランザクション処理部130は要求元のノード
1aに対してリトライを要求する。このとき図10に示
すようにプロセッサトランザクションリトライフラグレ
ジスタ140の対応するリトライビット140aに
‘1’をセットする。続いてプロセッサトランザクショ
ン処理部130がTdを受信すると、プロセッサトラン
ザクション処理部130の対応するリトライビット14
0aが‘1’で、かつTcにヘッダフラグが付されてい
ないのでプロセッサトランザクション処理部130はT
dに関してもリトライを要求する。
【0051】図11〜図12ではリトライ発生時の振る
舞いについて述べる。ノード1aではTa、Tbに関し
てはノード1bからOKが返ってきたためプロセッサリ
クエストキュー210からTaとTbのエントリを削除
する。しかしTc、Tdに関してはノード1bからリト
ライ要求を受けたため、図11に示すようにトランザク
ション属性フィールド210bにはリトライ要求された
トランザクションであることを表す値である‘1’をセ
ットする。プロセッサトランザクション発行部220は
リトライ要求に応じてトランザクションを再送する。こ
のときトランザクションTcが先頭トランザクションに
なるためヘッダフラグを付与して再発行する。
舞いについて述べる。ノード1aではTa、Tbに関し
てはノード1bからOKが返ってきたためプロセッサリ
クエストキュー210からTaとTbのエントリを削除
する。しかしTc、Tdに関してはノード1bからリト
ライ要求を受けたため、図11に示すようにトランザク
ション属性フィールド210bにはリトライ要求された
トランザクションであることを表す値である‘1’をセ
ットする。プロセッサトランザクション発行部220は
リトライ要求に応じてトランザクションを再送する。こ
のときトランザクションTcが先頭トランザクションに
なるためヘッダフラグを付与して再発行する。
【0052】ノード1bでは受信したTcにヘッダフラ
グが付与され、かつ図10に示すようにプロセッサトラ
ンザクションリトライフラグレジスタ140の対応する
リトライビット140aが‘1’であるため、Tcが再
発行されたトランザクションの先頭であることを知る。
その結果トランザクション処理が可能かを判定し、ここ
では処理可能であるため、図12に示すようにプロセッ
サトランザクション処理部130はプロセッサトランザ
クションリトライフラグレジスタ140の対応するリト
ライビット140aを‘0’にクリアし、Tcの処理を
実行する。ついで、Tdを受信した際には、既に対応す
るリトライビット140aが‘0’であるので、Tdに
関しては先のTa、Tbと同じ扱いで処理がなされる。
グが付与され、かつ図10に示すようにプロセッサトラ
ンザクションリトライフラグレジスタ140の対応する
リトライビット140aが‘1’であるため、Tcが再
発行されたトランザクションの先頭であることを知る。
その結果トランザクション処理が可能かを判定し、ここ
では処理可能であるため、図12に示すようにプロセッ
サトランザクション処理部130はプロセッサトランザ
クションリトライフラグレジスタ140の対応するリト
ライビット140aを‘0’にクリアし、Tcの処理を
実行する。ついで、Tdを受信した際には、既に対応す
るリトライビット140aが‘0’であるので、Tdに
関しては先のTa、Tbと同じ扱いで処理がなされる。
【0053】以上の処理により、あるプロセッサバスか
らのトランザクションがリトライされた場合において
も、I/Oトランザクションのリトライと同様に後続の
トランザクションもリトライすることができ、トランザ
クションの順序が保証される。
らのトランザクションがリトライされた場合において
も、I/Oトランザクションのリトライと同様に後続の
トランザクションもリトライすることができ、トランザ
クションの順序が保証される。
【0054】以上にのべた実施例では、一連のトランザ
クションの1つについてリトライの要求が返送される
と、要求元は対応するトランザクションを再発行し、以
降は要求元は特殊な再発行のモードとなる。つまり、確
認応答にかかわりない順次発行の動作でなく、次のリト
ライ要求を待つて次を再発行す動作とるなる。これに代
え、一連のトランザクションの1つについてリトライの
要求が返送された場合に、同一バスを発生源とする再発
行すべきトランザクションの一連の再発行を、個々の応
答を待たずに順次行う構成とすることも可能である。こ
の変形例における要求元のトランザクション発行部のア
ルゴリズムは以下の通りである。
クションの1つについてリトライの要求が返送される
と、要求元は対応するトランザクションを再発行し、以
降は要求元は特殊な再発行のモードとなる。つまり、確
認応答にかかわりない順次発行の動作でなく、次のリト
ライ要求を待つて次を再発行す動作とるなる。これに代
え、一連のトランザクションの1つについてリトライの
要求が返送された場合に、同一バスを発生源とする再発
行すべきトランザクションの一連の再発行を、個々の応
答を待たずに順次行う構成とすることも可能である。こ
の変形例における要求元のトランザクション発行部のア
ルゴリズムは以下の通りである。
【0055】リクエストキューに貯まっているバスか
らのトランザクションを、キューの順番で発行する。
らのトランザクションを、キューの順番で発行する。
【0056】要求先からOKのアクノリッジ(確認応
答)が返送されたら、それに対応するトランザクション
をキューから削除する。(以上は上記実施例と同一) 要求先からリトライの要求が返送されたら、対応する
トランザクションだけでなく、リクエストキューに残っ
ていて既に発行ずみの、同一バスを発生源と一連のトラ
ンザクションの全てについてトランザクション属性フィ
ールドに’1’をセットする。そして、属性フィールド
が’1’の一連のトランザクションを、先頭のも(リト
ライ要求に対応するもの)のから順に連続して再発行す
る。
答)が返送されたら、それに対応するトランザクション
をキューから削除する。(以上は上記実施例と同一) 要求先からリトライの要求が返送されたら、対応する
トランザクションだけでなく、リクエストキューに残っ
ていて既に発行ずみの、同一バスを発生源と一連のトラ
ンザクションの全てについてトランザクション属性フィ
ールドに’1’をセットする。そして、属性フィールド
が’1’の一連のトランザクションを、先頭のも(リト
ライ要求に対応するもの)のから順に連続して再発行す
る。
【0057】上記発行に当たり、同一バスからの一連
のトランザクションの先頭にはヘッダフラグを付す。上
記の再発行の場合も、先の再発行に続く後続ではなく
て、再発行の先頭なら同様にヘッダフラグを付す。(こ
れについても上記実施例と同じ) 再発行している状態で要求先からOKのアクノリッジ
(確認応答)が返送されたら、対応するトランザクショ
ンをリクエストキューから削除するとともに、それに後
続する同一バスからのトランザクションのトランザクシ
ョン属性フィールドを’1’から’0’にリセットす
る。
のトランザクションの先頭にはヘッダフラグを付す。上
記の再発行の場合も、先の再発行に続く後続ではなく
て、再発行の先頭なら同様にヘッダフラグを付す。(こ
れについても上記実施例と同じ) 再発行している状態で要求先からOKのアクノリッジ
(確認応答)が返送されたら、対応するトランザクショ
ンをリクエストキューから削除するとともに、それに後
続する同一バスからのトランザクションのトランザクシ
ョン属性フィールドを’1’から’0’にリセットす
る。
【0058】上記変形例においては、リトライとされた
トランザクションの後続トランザクションは自動的に要
求元から再発行される。したがって、それら後続トラン
ザクションの個々についてリトライの要求を要求先から
要求元に返送する必要はなく、その後続トランザクショ
ンを受信してもトランザクション処理を行わなければ良
い。要求先となるトランザクション処理部の処理アルゴ
リズムは、以下の通りとなる。
トランザクションの後続トランザクションは自動的に要
求元から再発行される。したがって、それら後続トラン
ザクションの個々についてリトライの要求を要求先から
要求元に返送する必要はなく、その後続トランザクショ
ンを受信してもトランザクション処理を行わなければ良
い。要求先となるトランザクション処理部の処理アルゴ
リズムは、以下の通りとなる。
【0059】リトライフラグレジスタの受信トランザ
クションに対応するビットが”0”なら、トランザクシ
ョン処理が実行可能か否かを判定し、可能ならOKのア
クノリッジ(確認応答)を要求元に返して処理を実行す
る。不可能なら要求元にリトライを要求し、リトライフ
ラグレジスタの対応ビットに”1”を記録する。(この
点は最初の実施例と同じ) リトライフラグレジスタの受信トランザクションに対
応するビットが”1”で、受信トランザクションのヘッ
ダフラグが”1”なら、つまり再発行される一連トラン
ザクションの先頭を受信したか、もしくは一連の再発行
の後の別のバスを発生源とするトランザクションの先頭
を受信した場合には、処理が実行可能か否かを判定す
る。実行可能なら、OKのアクノリッジを要求元に返し
てトランザクション処理を実行し、かつリトライフラグ
レジスタの対応するビットを”0”にクリアする。実行
不可能なら、リトライ要求を要求元に返す。
クションに対応するビットが”0”なら、トランザクシ
ョン処理が実行可能か否かを判定し、可能ならOKのア
クノリッジ(確認応答)を要求元に返して処理を実行す
る。不可能なら要求元にリトライを要求し、リトライフ
ラグレジスタの対応ビットに”1”を記録する。(この
点は最初の実施例と同じ) リトライフラグレジスタの受信トランザクションに対
応するビットが”1”で、受信トランザクションのヘッ
ダフラグが”1”なら、つまり再発行される一連トラン
ザクションの先頭を受信したか、もしくは一連の再発行
の後の別のバスを発生源とするトランザクションの先頭
を受信した場合には、処理が実行可能か否かを判定す
る。実行可能なら、OKのアクノリッジを要求元に返し
てトランザクション処理を実行し、かつリトライフラグ
レジスタの対応するビットを”0”にクリアする。実行
不可能なら、リトライ要求を要求元に返す。
【0060】リトライフラグレジスタの受信トランザ
クションに対応するビットが”1”で、かつ受信トラン
ザクションのヘッダフラグが”0”なら、トランザクシ
ョン処理が実行可能か否かの判定を行わず、トランザク
ション処理も行わない。
クションに対応するビットが”1”で、かつ受信トラン
ザクションのヘッダフラグが”0”なら、トランザクシ
ョン処理が実行可能か否かの判定を行わず、トランザク
ション処理も行わない。
【0061】以上のような変形例では、一連の再発行が
終わっても、再発行の先頭についてのOKの確認応答も
しくはリトライの要求が返らない場合があり得る。この
時、リクエストキューにの再発行トランザクションの後
ろに、さらに同一バスからのトランザクションが貯まっ
ていれば、それらを続けて発行しても良い。また、別の
バスを発生源とする別の一連のトランザクションが貯ま
っていれば、上記要求側アルゴリズムのにより、その
先頭にヘッダフラグをつけて発行を行う。いずれの場合
も、もし後から再発行トランザクションの先頭について
再度リトライが要求されたら、そのときは上記要求側ア
ルゴリズムのにより、改めて同一バスからの発行済み
のトランザクション全てを再発行とするので、処理順序
は保証される。
終わっても、再発行の先頭についてのOKの確認応答も
しくはリトライの要求が返らない場合があり得る。この
時、リクエストキューにの再発行トランザクションの後
ろに、さらに同一バスからのトランザクションが貯まっ
ていれば、それらを続けて発行しても良い。また、別の
バスを発生源とする別の一連のトランザクションが貯ま
っていれば、上記要求側アルゴリズムのにより、その
先頭にヘッダフラグをつけて発行を行う。いずれの場合
も、もし後から再発行トランザクションの先頭について
再度リトライが要求されたら、そのときは上記要求側ア
ルゴリズムのにより、改めて同一バスからの発行済み
のトランザクション全てを再発行とするので、処理順序
は保証される。
【0062】以上のように、リトライ後の再発行を連続
発行とした変形例においても、同一バスからの一連のト
ランザクションについて処理の順序保証が可能となる。
要求側のトランザクション発行部において、リクエスト
キューのトランザクション属性フィールドを管理するた
めのハードウエア量は先の実施例より大きくなるが、要
求先からの応答のオーバーヘッドが小さく、一連の再発
行においても要求先からの応答に関わりない連続発行が
可能なので、より高速のトランザクション処理が実現で
きる。
発行とした変形例においても、同一バスからの一連のト
ランザクションについて処理の順序保証が可能となる。
要求側のトランザクション発行部において、リクエスト
キューのトランザクション属性フィールドを管理するた
めのハードウエア量は先の実施例より大きくなるが、要
求先からの応答のオーバーヘッドが小さく、一連の再発
行においても要求先からの応答に関わりない連続発行が
可能なので、より高速のトランザクション処理が実現で
きる。
【0063】また、以上の実施態様では、トランザクシ
ョンの管理単位が個々のI/Oバス単位、プロセッサバ
ス単位であった。これに代え、管理単位を個々のI/O
デバイス単位、プロセッサユニット単位とする構成も可
能である。プロセッサバス単位からプロセッサユニット
単位に代えた構成について述べると以下のようになる。
まず、図1のノードコントローラユニット21では、受
け付けるプロセッサトランザクションについて、個々の
プロセッサユニット25、26等を発生源として認識す
る。プロセッサトランザクションの要求先である各I/
Oユニットのリトライフラグレジスタ140には個別の
プロセッサユニットに対応するエントリーが設けられ
る。要求先I/Oユニットのプロセッサトランザクショ
ン処理部140で、あるプロセッサユニットを発生源と
するプロセッサトランザクションをリトライしたなら、
そのプロセッサユニットに対応するエントリーにリトラ
イフラグを記入し、これを用いて同一のプロセッサユニ
ットを発生源とする後続するプロセッサトランザクショ
ンについてもリトライする。
ョンの管理単位が個々のI/Oバス単位、プロセッサバ
ス単位であった。これに代え、管理単位を個々のI/O
デバイス単位、プロセッサユニット単位とする構成も可
能である。プロセッサバス単位からプロセッサユニット
単位に代えた構成について述べると以下のようになる。
まず、図1のノードコントローラユニット21では、受
け付けるプロセッサトランザクションについて、個々の
プロセッサユニット25、26等を発生源として認識す
る。プロセッサトランザクションの要求先である各I/
Oユニットのリトライフラグレジスタ140には個別の
プロセッサユニットに対応するエントリーが設けられ
る。要求先I/Oユニットのプロセッサトランザクショ
ン処理部140で、あるプロセッサユニットを発生源と
するプロセッサトランザクションをリトライしたなら、
そのプロセッサユニットに対応するエントリーにリトラ
イフラグを記入し、これを用いて同一のプロセッサユニ
ットを発生源とする後続するプロセッサトランザクショ
ンについてもリトライする。
【0064】なお実施形態のマルチプロセッサシステム
ではトランザクションの要求先のノードがリトライ制御
を行っているが、実施形態の変形例として、コヒーレン
ト制御されたトランザクションを全ノードがスヌープし
ている場合においては任意のノードがリトライ制御を行
うことが可能である。
ではトランザクションの要求先のノードがリトライ制御
を行っているが、実施形態の変形例として、コヒーレン
ト制御されたトランザクションを全ノードがスヌープし
ている場合においては任意のノードがリトライ制御を行
うことが可能である。
【0065】
【発明の効果】以上説明したように、本発明によれば以
下のような効果がある。
下のような効果がある。
【0066】先行のトランザクションの完了を待たずに
後続のトランザクションを連続発行することができるた
め、システム全体のスループットおよび個々のトランザ
クションが終了するまでのレイテンシを向上させること
ができる。
後続のトランザクションを連続発行することができるた
め、システム全体のスループットおよび個々のトランザ
クションが終了するまでのレイテンシを向上させること
ができる。
【図1】図1は本発明を実現するマルチプロセッサシス
テムの構成を示す概略図である。
テムの構成を示す概略図である。
【図2】トランザクションに付与されるヘッダフラグフ
ィールドを説明するための概略図である。
ィールドを説明するための概略図である。
【図3】I/Oユニット11がI/Oトランザクション
を発行する方法を説明するための模式図である。
を発行する方法を説明するための模式図である。
【図4】ノードコントローラユニット21がI/Oトラ
ンザクションを受信した際の動作を説明するための模式
図である。
ンザクションを受信した際の動作を説明するための模式
図である。
【図5】ノードコントローラユニット21がI/Oトラ
ンザクションをリトライした際の動作を説明するための
模式図である。
ンザクションをリトライした際の動作を説明するための
模式図である。
【図6】I/Oユニット11がリトライ要求されたI/
Oトランザクションを再発行する際の動作を説明するた
めの模式図である。
Oトランザクションを再発行する際の動作を説明するた
めの模式図である。
【図7】ノードコントローラユニット21が再発行され
たI/Oトランザクションを処理する際の動作を説明す
るための模式図である。
たI/Oトランザクションを処理する際の動作を説明す
るための模式図である。
【図8】ノードコントローラユニット21がプロセッサ
トランザクションを発行する方法を説明するための模式
図である。
トランザクションを発行する方法を説明するための模式
図である。
【図9】I/Oユニット11がプロセッサトランザクシ
ョンを受信した際の動作を説明するための模式図であ
る。
ョンを受信した際の動作を説明するための模式図であ
る。
【図10】I/Oユニット11がプロセッサトランザク
ションをリトライした際の動作を説明するための模式図
である。
ションをリトライした際の動作を説明するための模式図
である。
【図11】ノードコントローラユニット21がリトライ
要求されたプロセッサトランザクションを再発行する際
の動作を説明するための模式図である。
要求されたプロセッサトランザクションを再発行する際
の動作を説明するための模式図である。
【図12】I/Oユニット11が再発行されたプロセッ
サトランザクションを処理する際の動作を説明するため
の模式図である。
サトランザクションを処理する際の動作を説明するため
の模式図である。
1…ノード、1a…ノード、1b…ノード、11…I/
Oユニット、21…ノードコントローラユニット、30
…トランザクション、31…ヘッダフラグフィールド、
100…I/Oバスインタフェース、110…I/Oリ
クエストキュー、110a…トランザクションフィール
ド、110b…トランザクション属性フィールド、12
0…I/Oトランザクション発行部、130…プロセッ
サトランザクション処理部、140…プロセッサトラン
ザクションリトライフラグレジスタ、140a…リトラ
イビット、200…プロセッサバスインタフェース、2
10…プロセッサリクエストキュー、210a…トラン
ザクションフィールド、210b…トランザクション属
性フィールド、220…プロセッサトランザクション発
行部220、230…I/Oトランザクション処理部、
240…I/Oトランザクションリトライフラグレジス
タ、240a…リトライビット、A11〜A12…I/
Oバス、B11〜B12…プロセッサバス、C11…ネ
ットワーク。
Oユニット、21…ノードコントローラユニット、30
…トランザクション、31…ヘッダフラグフィールド、
100…I/Oバスインタフェース、110…I/Oリ
クエストキュー、110a…トランザクションフィール
ド、110b…トランザクション属性フィールド、12
0…I/Oトランザクション発行部、130…プロセッ
サトランザクション処理部、140…プロセッサトラン
ザクションリトライフラグレジスタ、140a…リトラ
イビット、200…プロセッサバスインタフェース、2
10…プロセッサリクエストキュー、210a…トラン
ザクションフィールド、210b…トランザクション属
性フィールド、220…プロセッサトランザクション発
行部220、230…I/Oトランザクション処理部、
240…I/Oトランザクションリトライフラグレジス
タ、240a…リトライビット、A11〜A12…I/
Oバス、B11〜B12…プロセッサバス、C11…ネ
ットワーク。
フロントページの続き (72)発明者 上原 敬太郎 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 對馬 雄次 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 濱中 直樹 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B045 BB12 BB17 BB42 5B077 AA23 AA33 AA34 FF06
Claims (14)
- 【請求項1】I/Oデバイスが接続される少なくとも1
つのI/Oバスが各々結合された複数のI/Oユニット
と、プロセッサユニットが接続される少なくとも1つの
プロセッサバスが各々結合される複数のノードコントロ
ーラユニットとがネットワークで相互結合されたマルチ
プロセッサシステムにおいて、 各I/Oユニットには、結合されたI/Oバスから受け
付けた一連のI/O発トランザクションを、先行するI
/O発トランザクションの要求先からの確認応答の受信
に関わりなく要求先のノードコントローラユニットに向
けて順次発行し、かつ発行済みのI/O発トランザクシ
ョンについて要求先からリトライが要求されたときには
再発行するI/Oトランザクション発行部を備え、 各ノードコントローラユニットには、発行されたI/O
発トランザクションの要求先が自ユニットに結合された
プロセッサバスであるときトランザクション処理を行う
I/Oトランザクション処理部を備え、 各I/Oトランザクション処理部は、I/O発トランザ
クションを受信して処理が不可能と判定すると要求元の
I/Oユニットにリトライの要求を返送し、かつリトラ
イの要求を返送したトランザクションの発生源であるI
/Oバスと同一のI/Oバスを発生源とする後続するI
/Oトランザクションについては処理を実施せずに要求
元のI/Oユニットにリトライの要求を返送することを
特徴とするマルチプロセッサシステム。 - 【請求項2】I/Oデバイスが接続される少なくとも1
つのI/Oバスが各々結合された複数のI/Oユニット
と、プロセッサユニットが接続される少なくとも1つの
プロセッサバスが各々結合される複数のノードコントロ
ーラユニットとがネットワークで相互結合されたマルチ
プロセッサシステムにおいて、 前記各ノードコントローラユニットは、結合されたプロ
セッサバスから受け付けた一連のプロセッサ発トランザ
クションを、先行するプロセッサ発トランザクションの
要求先からの確認応答の受信に関わりなく要求先のI/
Oユニットに向けて順次発行し、かつ発行済みのプロセ
ッサトランザクションについて要求先からリトライが要
求されたときには再発行するプロセッサトランザクショ
ン発行部を備え、 前記各I/Oユニットには、発行されたプロセッサ発ト
ランザクションの要求先が自ユニットに結合されたI/
Oバスであるときトランザクション処理を行うプロセッ
サトランザクション処理部を備え、 各プロセッサトランザクション処理部は、プロセッサ発
トランザクションを受信して処理が不可能と判定すると
要求元のノードコントローラユニットにリトライの要求
を返送し、かつリトライの要求を返送したトランザクシ
ョンの発生源であるプロセッサバスと同一のプロセッサ
バスを発生源とする後続するプロセッサ発トランザクシ
ョンについては処理を実施せずに要求元のプロセッサバ
スにリトライの要求を返送するマルチプロセッサシステ
ム。 - 【請求項3】I/Oデバイスが接続される少なくとも1
つのI/Oバスが各々結合された複数のI/Oユニット
と、少なくとも1つのプロセッサユニットが各々結合さ
れる複数のノードコントローラユニットとがネットワー
クで相互結合されたマルチプロセッサシステムにおい
て、 前記各ノードコントローラユニットは、結合されたプロ
セッサユニットから受け付けた一連のプロセッサ発トラ
ンザクションを、先行するプロセッサトランザクション
の要求先からの確認応答の受信に関わりなく要求先のI
/Oユニットに向けて順次発行し、かつ発行済みのプロ
セッサ発トランザクションについて要求先からリトライ
が要求されたときには再発行するプロセッサトランザク
ション発行部を備え、 前記各I/Oユニットには、発行されたプロセッサ発ト
ランザクションの要求先が自ユニットに結合されたI/
Oバスであるときトランザクション処理を行うプロセッ
サトランザクション処理部を備え、 各プロセッサトランザクション処理部は、プロセッサ発
トランザクションを受信して処理が不可能と判定すると
要求元のノードコントローラユニットにリトライの要求
を返送し、かつリトライの要求を返送したトランザクシ
ョンの発生源であるプロセッサユニットと同一のプロセ
ッサユニットを発生源とする後続するプロセッサ発トラ
ンザクションについては処理を実施せずに要求元のプロ
セッサユニットにリトライの要求を返送するマルチプロ
セッサシステム。 - 【請求項4】I/Oデバイスが接続される少なくとも1
つのI/Oバスとのインタフェースを各々が有する複数
のI/Oユニットと、プロセッサユニットが接続される
少なくとも1つのプロセッサバスとのインタフェースを
各々が有する複数のノードコントローラユニットとがネ
ットワークで相互結合されたマルチプロセッサシステム
であり、前記複数のノードコントローラユニットもしく
は前記複数のI/Oユニットの任意のものが要求元ユニ
ットとして他のユニットを要求先とするトランザクショ
ンを発行する機能を有するマルチプロセッサシステムに
おいて、要求先となったユニットが1つのトランザクシ
ョンについて要求元のユニットにリトライの要求を返送
した場合に、該要求先のユニットは前記1つのトランザ
クションの発生源と同一のバスが発生源である後続する
トランザクションについてもリトライの要求を返送し、
前記要求元ユニットはリトライが要求されたトランザク
ションを再発行することを特徴とするマルチプロセッサ
システムのトランザクション制御方法。 - 【請求項5】前記要求先ユニットは、一旦リトライの要
求を返送した後は、受信したトランザクションが再発行
されるトランザクションのうちの先頭のもの場合に限り
処理可能か否かを判定してリトライ要求か処理実行かを
再決定することを特徴とする請求項4記載のマルチプロ
セッサシステムのトランザクション制御方法。 - 【請求項6】I/Oデバイスが接続される少なくとも1
つのI/Oバスとのインタフェースを各々が有する複数
のI/Oユニットと、プロセッサユニットが接続される
少なくとも1つのプロセッサバスとのインタフェースを
各々が有する複数のノードコントローラユニットとがネ
ットワークで相互結合されたマルチプロセッサシステム
であり、前記複数のノードコントローラユニットもしく
は前記複数のI/Oユニットの任意のものが要求元ユニ
ットとして他のユニットを要求先とするトランザクショ
ンを発行する機能を有するマルチプロセッサシステムに
おいて、前記要求元ユニットは、1つのバスからの一連
のトランザックションのうちの1つのトランザクション
についてリトライの要求を受けると、該1つのトランザ
クション、及び該1つのトランザックションの発生源と
同一バスを発生源とする発行済みのトランザクションの
全てを順次再発行し、前記要求先となったユニットは、
1つのトランザクションについて処理不可能と判断して
リトライを返送すると、該1つのトランザクションの発
生源と同一バスを発生源とする後続するトランザックシ
ョンを受信しても処理を実施しないことを特徴とするマ
ルチプロセッサシステムのトランザクション制御方法。 - 【請求項7】アクセス要求元となるデバイスが接続され
る複数の第1種のバスが個別に、もしくは複数ごとに結
合される複数の第1のユニットと、 アクセス要求先となるデバイスが接続される複数の第2
種のバスが個別に、もしくは複数ごとに結合される複数
の第2のユニットと、 前記複数の第1のユニット、複数の第2のユニットを相
互結合するネットワークとを有し、 前記第1のユニットの各々には、結合された第1種のバ
スを発生源とする一連のトランザクションを、先行する
トランザクションの要求先からの確認応答の受信にかか
わりなく要求先に向けて順次発行し、かつ発行済みのト
ランザクションについて要求先である前記第2のユニッ
トからリトライが要求されたときには再発行するトラザ
クション発行手段を有し、 前記第2種のユニットの各々には、発行された前記トラ
ンザクションを要求先として受信した場合、処理が不可
能の時には要求元である前記第1のユニットにリトライ
の要求を返送し、かつリトライの要求を返送したトラン
ザクションの発生源である前記第1種のバスと同一の前
記第1種のバスを発生源とする後続するトランザクショ
ンに対しても、前記要求元である第1のユニットにリト
ライの要求を返送するトランザックション処理手段を有
するトランザクション制御システム。 - 【請求項8】前記第2のユニットの各々には、前記第1
種のバスの数に対応したエントリーを有し、各エントリ
ーには対応する前記第1種のバスを発生源とするトラン
ザクションについてリトライを要求したことを示すリト
ライフラグが記録されるレジスタを有する請求項6記載
のトランザクション制御システム。 - 【請求項9】前記レジスタの各エントリーのリトライフ
ラグは、対応する前記第1種のバスを発生源とするトラ
ンザクションのうち再発行されたものの先頭が受信さ
れ、当該第2のユニットでトランザクション処理が可能
と判定されたときクリアされることを特徴とする請求項
8記載のトランザクション制御システム。 - 【請求項10】前記トランザクション処理手段は、前記
リトライフラグが記録されている期間中に対応する前記
第1種のバスを発生源とする後続のトランザクションを
受信したら該後続のトランザションについても要求元の
前記第1種のユニットにリトライの要求を返送すること
を特徴とする請求項9記載のトランザクション制御シス
テム。 - 【請求項11】前記トランザクション発行手段は、再発
行する一連のトランザクションの先頭のトランザクショ
ンにはヘッダフラグを付加して再発行することを特徴と
する請求項7記載のトランザクション制御システム。 - 【請求項12】前記第1のユニットの各々には、結合さ
れた第1種のバスから入力するトランザクションを順番
に格納するトランザクションキューを有し、該トランザ
クションキューにはトランザクションが当該ユニットか
ら始めて発行するトランザクションか、リトライ要求に
より再発行するトランザクションかを区別する情報を格
納するトランザクション属性フィールドを有する請求項
7記載のトランザクション制御システム。 - 【請求項13】前記第1のユニットの各々には、結合さ
れた第1種のバスから入力するトランザクションを順番
に格納するトランザクションキューを有し、該トランザ
クションキューにはトランザクションが当該ユニットか
ら始めて発行するトランザクションか、リトライ要求に
より再発行するトランザクションかを区別する情報を格
納するトランザクション属性フィールドを有し、前記ト
ランザクション発行手段は、同一の第1種のバスからの
一連のトランザクションのうちの再発行するものの先頭
であるトランザクションを前記トランザクションキュー
属性フィールドの値から判別し、再発行の際にヘッダフ
ラグを付加することを特徴とする請求項7記載のトラン
ザクション制御システム。 - 【請求項14】アクセス要求元となるデバイスが接続さ
れる複数の第1種のバスが個別に、もしくは複数ごとに
結合される複数の第1のユニットと、 アクセス要求先となるデバイスが接続される複数の第2
種のバスが個別に、もしくは複数ごとに結合される複数
の第2のユニットと、 前記複数の第1のユニット、複数の第2のユニットを相
互結合するネットワークとを有し、 前記第1のユニットの各々には、結合された第1種のバ
スを発生源とする一連のトランザクションを、先行する
トランザクションの要求先からの確認応答の受信にかか
わりなく要求先に向けて順次発行し、1つのトランザク
ションについて要求先である前記第2のユニットからリ
トライが要求されたときには、前記一連のトランザクシ
ョンのうち前記1つのトランザクションから後続して既
に発行したトランザクションの全てを順次再発行するト
ラザクション発行手段を有し、 前記第2種のユニット各々には、発行されたトランザク
ションを要求先として受信したとき処理可能か否かを判
定し、処理が不可能の時には要求元である前記第1のユ
ニットにリトライの要求を返送し、かつリトライの要求
を返送したトランザクションの発生源である前記第1種
のバスと同一の前記第1種のバスを発生源とする後続す
るトランザクションを受信しても処理の実行を行わない
トランザックション処理手段を有するトランザクション
制御システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000032738A JP2001216259A (ja) | 2000-02-04 | 2000-02-04 | マルチプロセッサシステム及びそのトランザックション制御方法 |
US09/775,545 US20010013080A1 (en) | 2000-02-04 | 2001-02-05 | Multiprocessor system and transaction control method for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000032738A JP2001216259A (ja) | 2000-02-04 | 2000-02-04 | マルチプロセッサシステム及びそのトランザックション制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001216259A true JP2001216259A (ja) | 2001-08-10 |
Family
ID=18557301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000032738A Pending JP2001216259A (ja) | 2000-02-04 | 2000-02-04 | マルチプロセッサシステム及びそのトランザックション制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20010013080A1 (ja) |
JP (1) | JP2001216259A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003204367A (ja) * | 2001-12-18 | 2003-07-18 | Hewlett Packard Co <Hp> | 進行中のトランザクションを使用した情報の送信 |
US7664900B2 (en) | 2004-07-02 | 2010-02-16 | Nec Corporation | Multiprocessor system and method for processing memory access |
JP2017528827A (ja) * | 2014-09-12 | 2017-09-28 | クアルコム,インコーポレイテッド | 弱く順序付けられたドメイン内のデバイスへの強く順序付けられた書込みトランザクションのブリッジング、ならびに関連する装置、方法、およびコンピュータ可読媒体 |
JP2020537227A (ja) * | 2017-10-13 | 2020-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | アプリケーションによって制御された早期書込み確認応答をサポートするメモリ・アクセス・ブローカ・システム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7486685B2 (en) * | 2001-06-29 | 2009-02-03 | Rankin Linda J | System for sharing channels by interleaving flits |
JP2006301825A (ja) * | 2005-04-19 | 2006-11-02 | Hitachi Ltd | アドレス競合時のスタベーション防止方法およびチップセットおよびマルチプロセッサシステム |
US8325768B2 (en) | 2005-08-24 | 2012-12-04 | Intel Corporation | Interleaving data packets in a packet-based communication system |
US7890472B2 (en) * | 2007-09-18 | 2011-02-15 | Microsoft Corporation | Parallel nested transactions in transactional memory |
US9654604B2 (en) | 2012-11-22 | 2017-05-16 | Intel Corporation | Apparatus, system and method of controlling data flow over a communication network using a transfer response |
JP6273972B2 (ja) * | 2014-03-31 | 2018-02-07 | 富士通株式会社 | 情報処理装置、送受信装置、及び情報処理装置の制御方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546546A (en) * | 1994-05-20 | 1996-08-13 | Intel Corporation | Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge |
US5961621A (en) * | 1997-03-28 | 1999-10-05 | Intel Corporation | Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system |
US6269360B1 (en) * | 1998-04-24 | 2001-07-31 | International Business Machines Corporation | Optimization of ordered stores on a pipelined bus via self-initiated retry |
US6405276B1 (en) * | 1998-12-10 | 2002-06-11 | International Business Machines Corporation | Selectively flushing buffered transactions in a bus bridge |
US6449678B1 (en) * | 1999-03-24 | 2002-09-10 | International Business Machines Corporation | Method and system for multiple read/write transactions across 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 |
US6442641B1 (en) * | 1999-06-08 | 2002-08-27 | Intel Corporation | Handling multiple delayed write transactions simultaneously through a bridge |
US6385686B1 (en) * | 1999-07-13 | 2002-05-07 | Micron Technology, Inc. | Apparatus for supporting multiple delayed read transactions between computer buses |
-
2000
- 2000-02-04 JP JP2000032738A patent/JP2001216259A/ja active Pending
-
2001
- 2001-02-05 US US09/775,545 patent/US20010013080A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003204367A (ja) * | 2001-12-18 | 2003-07-18 | Hewlett Packard Co <Hp> | 進行中のトランザクションを使用した情報の送信 |
JP4536317B2 (ja) * | 2001-12-18 | 2010-09-01 | ヒューレット・パッカード・カンパニー | 進行中のトランザクションを使用した情報の送信 |
US7664900B2 (en) | 2004-07-02 | 2010-02-16 | Nec Corporation | Multiprocessor system and method for processing memory access |
JP2017528827A (ja) * | 2014-09-12 | 2017-09-28 | クアルコム,インコーポレイテッド | 弱く順序付けられたドメイン内のデバイスへの強く順序付けられた書込みトランザクションのブリッジング、ならびに関連する装置、方法、およびコンピュータ可読媒体 |
JP2020537227A (ja) * | 2017-10-13 | 2020-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | アプリケーションによって制御された早期書込み確認応答をサポートするメモリ・アクセス・ブローカ・システム |
JP7100941B2 (ja) | 2017-10-13 | 2022-07-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーションによって制御された早期書込み確認応答をサポートするメモリ・アクセス・ブローカ・システム |
Also Published As
Publication number | Publication date |
---|---|
US20010013080A1 (en) | 2001-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102494804B1 (ko) | 데이터 처리 | |
US5003463A (en) | Interface controller with first and second buffer storage area for receiving and transmitting data between I/O bus and high speed system bus | |
US5850530A (en) | Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data | |
EP0760135B1 (en) | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge | |
EP0752667B1 (en) | Method and apparatus for hybrid packet-switched and circuit-switched flow control in a computer system | |
RU2182356C2 (ru) | Способ и устройство для поддержания упорядочения транзакций и разрешения конфликтных ситуаций в мостовой схеме шин | |
US5696910A (en) | Method and apparatus for tracking transactions in a pipelined bus | |
US5764929A (en) | Method and apparatus for improving bus bandwidth by reducing redundant access attempts | |
US5261057A (en) | I/O bus to system interface | |
US20020174229A1 (en) | System and method of maintaining coherency in a distributed communication system | |
US4669056A (en) | Data processing system with a plurality of processors accessing a common bus to interleaved storage | |
US5919254A (en) | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system | |
CN108205510B (zh) | 数据处理 | |
JPH0786863B2 (ja) | マルチプロセツサシステムにおけるプロセツサアクセス制御装置 | |
JPH0642236B2 (ja) | コマンダノードからのインターロック読み取りコマンドメッセージをレスポンダノードで実行する装置 | |
US20050138230A1 (en) | Method, apparatus and program product for low latency I/O adapter queuing in a computer system | |
JP3881054B2 (ja) | トランザクション・フローを制御する制御システムおよびその方法 | |
JPH05216811A (ja) | 二バス間のトランザクションを制御する再試行方法 | |
US6256699B1 (en) | Reliable interrupt reception over buffered bus | |
US7865644B2 (en) | Method and apparatus for attaching multiple slave devices to a single bus controller interface while supporting command pipelining | |
US5204954A (en) | Remote storage management mechanism and method | |
JP2001216259A (ja) | マルチプロセッサシステム及びそのトランザックション制御方法 | |
US5991855A (en) | Low latency memory read with concurrent pipe lined snoops | |
JPH06337843A (ja) | データ転送制御方法 | |
US6209054B1 (en) | Reliable interrupt reception over buffered bus |