JPH1097513A - マルチプロセッサ・コンピュータ・システム中のノード、及びマルチプロセッサ・コンピュータ・システム - Google Patents

マルチプロセッサ・コンピュータ・システム中のノード、及びマルチプロセッサ・コンピュータ・システム

Info

Publication number
JPH1097513A
JPH1097513A JP9190730A JP19073097A JPH1097513A JP H1097513 A JPH1097513 A JP H1097513A JP 9190730 A JP9190730 A JP 9190730A JP 19073097 A JP19073097 A JP 19073097A JP H1097513 A JPH1097513 A JP H1097513A
Authority
JP
Japan
Prior art keywords
bus
node
transaction
repeater
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9190730A
Other languages
English (en)
Inventor
Erik E Hagersten
エリック・イー・ハガーステン
Mark D Hill
マーク・ディ・ヒル
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1097513A publication Critical patent/JPH1097513A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 マルチプロセッサ・コンピュータ・システム
中の極めて多数のデバイスを接続するためのより効率の
良いアーキテクチャが望まれている。 【解決手段】 XMPコンピュータ・システム(13
0)はSMPノード(120A−120C)を備え、各
ノードは、単方向ポイントツウポイント・リンク(14
0,142,144)によって互いに接続され、XMP
インターフェイス(128)、このXMPインターフェ
イスへ高レベルのバス(22)によって接続されたリピ
ータ(34)、及び各リピータへ低レベルのバス(3
2)によって接続されたバス・デバイス(38)を含
む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、マルチプロセッ
サ・コンピュータ・システムの分野、特にマルチプロセ
ッサ・コンピュータ・システム内の多数のプロセッサの
アーキテクチャ接続に関するものである。
【0002】
【従来の技術】マルチプロセッサ・コンピュータ・シス
テムは、計算タスクを行うのに用いられる2個以上のプ
ロセッサを備えている。特定の計算タスクが1個のプロ
セッサで行われ得る、他のプロセッサはそれとは関連の
ない計算タスクを行う。特定の計算タスクの諸部分は多
数のプロセッサに分散させられて、全体として計算タス
クを行うのに要する時間を短くすることができる。一般
的に云えば、プロセッサは、1つ以上のオペランドで或
る結果を得る演算を行うように構成されたデバイスであ
る。演算は、プロセッサによって実行される命令に応答
して行われる。
【0003】商業的マルチプロセッサ・コンピュータ・
システムにおいて評判の良いアーキテクチャは、対称的
マルチプロセッサ(SMP)アーキテクチャである。代
表的な例のSMPコンピュータ・システムは、キャッシ
ュ階層を介して共有バスに接続された多数のプロセッサ
を備えている。共有バスには、コンピュータ・システム
中の複数のプロセッサが共有するメモリも接続されてい
る。メモリ内の特定の記憶場所へのアクセスは、他の特
定記憶場所へのアクセスと同じ時間の長さで起こる。メ
モリ中の各記憶場所が一様にアクセスされるので、この
構成は一様メモリ・アーキテクチャ(UMA)と称され
る。
【0004】プロセッサは内部キャッシュを有するよう
に構成されることが多く、そして1個以上のキャッシュ
が典型的にはSMPコンピュータ・システム中の複数の
プロセッサと共有バス間のキャッシュ階層に含まれる。
特定の主メモリ・アドレスにあるデータの多数のコピー
はキャッシュにストアされる。特定のアドレスが任意所
定の時間に1つのデータ値を正確にストアする共有メモ
リ・モデルを維持するために、共有バス・コンピュータ
・システムはキャッシュ・コヒーレンシィを用いてい
る。一般的に云えば、特定のメモリ・アドレスにストア
されたデータに関する演算結果がキャッシュ階層内のデ
ータの各コピーに反映されるなら、演算はコヒーレント
である。例えば、特定のメモリ・アドレスにストアされ
たデータが更新される時に、この更新は先行データのコ
ピーをストアしているキャッシュに与えられる。或は、
前のデータのコピーをキャッシュ中で無効とし、特定の
メモリ・アドレスへの後続のアクセスのときは、更新さ
れたコピーを主メモリから転送させるようにする。共有
バス・システムに、スヌープ・バス・プロトコルが典型
的には用いられる。共有バスで行われた各コヒーレント
・トランザクションはキャッシュ中のデータに対して調
べられる(“スヌープ”される)。もし用いたデータの
コピーが見い出されるなら、データを含むキャッシュ・
ラインの状態はコヒーレント・トランザクションに応答
して更新され得る。
【0005】残念ながら、共有バス・アーキテクチャに
は、マルチプロセッサ・コンピュータ・システムの有用
性を制限する幾つかの欠点がある。バスは帯域幅(バス
を横断して転送されるバイトの数/秒)を最大にでき
る。別なプロセッサがバスに取り付けられると、プロセ
ッサにデータ及び命令を供給するのに要する帯域幅はバ
スの最大帯域幅を超える。幾つかのプロセッサはバス帯
域幅が利用可能となるまで待たされるので、プロセッサ
の帯域幅要件が利用可能なバス帯域幅を超える時にコン
パ・システムの性能は影響を受ける。
【0006】更に、共有バスにより多くのプロセッサを
付加すると、バスへの容量性負荷が増え、バスの物理的
長さを増大させることにさえなる。容量性負荷が増え且
つバスの長さが増えると、バスを通る信号の伝播遅れが
増える。伝播遅れが増加すると、トランザクションの実
行に長くかかる。従って、バスの最大帯域幅はプロセッ
サが付加されるにつれて減少する。
【0007】これら問題は、動作周波数及びプロセッサ
性能の絶え間のない増大で更に大きくなる。より高い周
波数及びもっと進歩したプロセッサのマイクロアーキテ
クチャによって可能とされた性能の増大は、同数のプロ
セッサに対してさえ、先代のプロセッサよりも大きい帯
域幅を要求することになる。従って、マルチプロセッサ
・コンピュータ・システムに対して不十分な帯域幅を有
するバスは、高性能プロセッサを用いる同様なコンピュ
ータ・システムには不十分である。
【0008】もっと多くのプロセッサ及びデバイスが共
有バス・システムに付加される時に負う諸問題を扱うた
めの共通の方法は、バスの階層を持つことである。階層
共有バス・システムでは、プロセッサ及び他のバス・デ
バイスは幾つかの低レベルのバス間に分割される。これ
ら低レベル・バスは1つ以上の高レベル・バスによって
接続される。トランザクションは、低レベル・バスで発
され、高レベル・バスへ送られ、そしてリピータによっ
て全ての低レベル・バスへドライブ・バックされる。従
って、全てのバス・デバイスはトランザクションを同時
に見、且つトランザクションは順序化されたままであ
る。階層共有バスは、論理的には、全てのデバイスに1
つの大きな共有バスとして現れる。更に、階層構造は、
単一の大きな共有バスの電気的制約を克服する。
【0009】しかしながら、上述した階層共有バス構造
での1つの問題は、低レベル・バスでトランザクション
が常に2回ブロードキャストされることである。この効
率の悪さは低レベル・バスでの利用可能な帯域幅を厳し
く制限する。可能な解決策は、高レベルのバス階層への
ウェイ・アップ(way up)でのトランザクション及び高
レベルのバス階層からのウェイ・ダウン(way down)で
のトランザクションのために別々の単方向バスを持つこ
とである。しかし、この解決策には、2倍のバス信号量
及びバス・デバイス・パケージでの2倍のピン量が必要
である。
【0010】伝統的な階層バス構造を用いるSMPコン
ピュータ・システム10の一例が図1に示されている。
ここには2レベルのバス構造が示されており、バス・デ
バイス8A−8Bは低レベルのL1.1バス4Aに、そ
してバス・デバイス8C−8Dは低レベルのL1.2バ
ス4Bに接続されている。バス・デバイスは、プロセッ
サ/メモリ・デバイス又はI/Oブリッジ・デバイスの
ように最近のコンピュータ・システム中で見られるロー
カル・バス型のデバイスならどんなものでも良い。各L
1バス4A,4Bはリピータ6A,6Bによって高レベ
ルのL2バス2に結合されている。各リピータ、L1バ
ス及びバス・デバイスはリピータ・ノード5を構成す
る。例えばリピータ6A,L1バス4A及びバス・デバ
イス8A,8Bがリピータ・ノード5Aを構成する。
【0011】バス・トランザクション(メモリからの読
出しのような)がバス・デバイスによって開始される時
に、トランザクションは元のL1バス(4A又は4B)
からL2バス2へ送られる。トランザクションは、それ
ぞれのリピータ6A,6Bによって両方のL1バス4
A,4Bに同時に送り戻される。このやり方では、全て
のバス・デバイス8はトランザクションを同時に見るこ
とができる。更に、図1の階層構造は、バス・トランザ
クションが同一順序で全てのバス・デバイス8に現れる
のを確保する。従って、階層バス構造は、バス・デバイ
ス8A−8Dに論理的に単一の共有バスとして見える。
【0012】図1のコンピュータ・システムの動作は、
図2に示したようなタイミング図で表わせる。タイミン
グ図12の各列は特定のバス・サイクルに対応する。左
から右へ時間が増す11のバス・サイクルが11の列で
表わされる。L2バス2,L1.1バス4A及びL1.
2バス4Bの状態はそれぞれの行14−16に応じて各
バス・サイクルの間示される。
【0013】バス・サイクル1の間、送り出されるパケ
ット(アドレス及びコマンド)は、各リピータ・ノード
5中のL1バス4に結合された1個のバス・デバイス8
によってドライブされる。タイミング図12中では、送
り出されたパケットはL1.1バス4AでのP1(o)
及びL1.2バス4BでのP2(o)として示される。
同一サイクル中に2つの異なるバス・トランザクション
が発されたので、これらがL2バス2に現れる順序は、
選ばれた調停方法次第である。タイミング図12に示さ
れた例では、L1.1バス4Aにて発されたトランザク
ションが、バス・サイクル2中のL2バス2にP1で表
わされたように、まずL2バス2に送られる。トランザ
クションP2(o)はそのリピータ6B中で行列待ちさ
せられている。又、バス・サイクル2中、L1.1バス
4AでのトランザクションP3(o)及びL1.2バス
4BでのトランザクションP4(o)で表わされたよう
に、2つの新しいトランザクションが低レベルのバスに
て発せられる。
【0014】バス・サイクル3中、行15及び16にP
1(i)で示したように、トランザクションP1は両方
のリピータ・ノード5のL1バス4に到着トランザクシ
ョンとしてブロードキャストされる。又、バス・サイク
ル3中、バス・サイクル1からの第2の送出トランザク
ションP2(o)は、タイミング図12の行14に示し
たように、L2バス2にブロードキャストする。
【0015】バス・サイクル4中、トランザクションP
2は、行15及び16にP2(i)で表わされたよう
に、L1バス4に到着トランザクションとしてブロード
キャストされる。又、バス・サイクル4中、送出トラン
ザクションP3(o)はタイミング図12の行14に示
されたようにトランザクションP3としてL2バス2に
ブロードキャストする。同様に、バス・トランザクショ
ンP3及びP4はバス・サイクル5及び6中L1バスに
ブロードキャストされる。L1バスの帯域幅のせいで到
着トランザクションがリピータへのブロードキャストで
消費されるので、新しく送出トランザクションはバス・
サイクル7まで発されない。その結果、L2バス2の全
帯域幅は、バス・サイクル6及び7中の行14における
ギャップで示したように利用されない。
【0016】極めて多数のプロセッサを要するシステム
では、上述した階層バス構造が多くのレベルの階層を必
要とするかもしれない。階層の頂上に各トランザクショ
ンをブロードキャストし且つバック・ダウンすることに
関連した遅れ、及びバスの調停に関連した遅れは、大き
な階層構造のスループットをきびしく制限し得る。
【0017】マルチプロセッサ・コンピュータ・システ
ム用の他の構造は分散型共有メモリ・アーキテクチャで
ある。この分散型共有メモリ・アーキテクチャは、内部
にプロセッサやメモリがある多数のノードを含む。多数
のノードはそれらの間に結合されたネットワークを通じ
て通信する。全体として考える時には、多数のノード内
に含まれたメモリはコンピュータ・システムの共有メモ
リを形成する。代表的な例では、ディレクトリを使用し
て、特定のアドレスに対応するデータのコピーをどのノ
ードがキャッシュしたかを識別する。コヒーレンシィ活
動はディレクトリの調査で生じられ得る。
【0018】
【発明が解決しようとする課題】しかしながら、分散型
共有メモリ・アーキテクチャにも欠点がある。ディレク
トリ・ルックアップ、アドレス変換及びコヒーレンシィ
の維持は全て、ノード間のトランザクションに待ち時間
を加える。又、分散型共有メモリ・アーキテクチャ・シ
ステムには、通常、共有バス・アーキテクチャよりもっ
と複雑なハードウェアが必要である。
【0019】以上の説明から明らかなように、マルチプ
ロセッサシステム中の極めて多数のデバイスを接続する
ためのもっと効率の良いアーキテクチャが望まれる。こ
の発明はこの目的に答えるものである。
【0020】
【課題を解決するための手段】上述した諸問題の大部分
は、この発明に係るコンピュータ・システムによって解
決される。一般的に云うと、この発明は、高レベルのバ
スによって相互接続された多数のリピータ・ノードを含
むマルチプロセッサ・コンピュータ・システムを形成す
る。各リピータ・ノードは、多数のバス・デバイス、低
レベルのバス及びアドレス・リピータを含む。バス・デ
バイスは低レベルのバスで相互接続される。リピータは
高レベルのバスを低レベルのバスへ結合する。バス・デ
バイスはプロセッサ/メモリ・バス・デバイスで良く、
各バス・デバイスは到着待ち行列を含む。プロセッサ/
メモリ・バス・デバイスは、SPARCプロセッサのよ
うな高性能のプロセッサ、DRAMメモリ、及び高速で
第2レベルのキャッシュメモリを含む。各バス・デバイ
スに置かれた物理的DRAMメモリは、ひとまとめにな
ってマルチプロセッサ・コンピュータ・システムのシス
テム・メモリを構成する。又、バス・デバイスは入力/
出力バス・デバイスでも良い。このI/Oバス・デバイ
スも到着待ち行列を含む。更に、I/Oバス・デバイス
は、PCIバスのような周辺I/Oバスをサポートする
I/Oバス・ブリッジを含み得る。この周辺I/Oバス
は、グラフィク・コントローラ、直並列ポート及びディ
スク・ドライブとも通信する。
【0021】バス・デバイスは、バス・トランザクショ
ンを送受信することによって互いに通信し合う。1つの
バス・デバイスによって開始されたバス・トランザクシ
ョンは、始動バス・デバイスが取り付けられている低レ
ベルのバスに送出トランザクションとしてブロードキャ
ストされる。同じ低レベルのバスに取り付けられた他の
各バス・デバイスは、この送出トランザクションをそれ
ぞれの到着待ち行列にストアする。又、この低レベルの
バスに取り付けられたリピータは送出トランザクション
を高レベルのバスにブロードキャストする。他の複数の
リピータ・ノードの各々中のリピータは、この送出トラ
ンザクションを受け、且つこれを到着トランザクション
としてそれぞれの低レベル・バスに送る。起動リピータ
・ノード中のリピータは、送り出されたバス・トランザ
クションを到着バス・トランザクションとしてその低レ
ベル・バスへ中継しない。その代わり、他のリピータが
送出トランザクションを到着トランザクションとしてそ
れぞれの低レベル・バスにドライブする時に、起動リピ
ータ・ノード中のリピータは制御信号をアセートする。
この制御信号は、始動リピータ・ノード中の各バス・デ
バイスに警告を発し、到着待ち行列よりも先にストアさ
れたパケットを現在の到着トランザクションとして処理
させる。非起動リピータ・ノード中のリピータは、それ
ぞれの低レベル・バスに結合されたバス・デバイスへの
制御信号をアサートすることにより、これらのバス・デ
バイスがその到着待ち行列をバイパスして低レベル・バ
スにブロードキャストされた到着トランザクションを受
けるべきであることを指示する。起動リピータ・ノード
中のバス・デバイスの到着待ち行列に送出トランザクシ
ョンをストアすると、始動リピータ・ノード中の低レベ
ル・バスを解放して他の送出トランザクションをブロー
ドキャストさせるが、最初のトランザクションは非起動
リピータ・ノード中の低レベル・バスにブロードキャス
トされている。従って、低レベル・バスの帯域幅を最大
限利用できる。
【0022】一般的に云えば、或る低レベル・バスに結
合された全てのバス・デバイスは、その低レベル・バス
に現れる全ての送出トランザクションを到着待ち行列に
ストアする。送出トランザクションは、これが低レベル
・バスに現れる同一順序でリピータによって高レベル・
バスへブロードキャストされる。各リピータ・ノードの
リピータは、高レベル・バスに現れるトランザクション
が他のリピータ・ノードからの到着トランザクションで
ある時だけ、前記トランザクションを低レベル・バスに
到着パケットとしてドライブする。このようにして、コ
ンピュータ・システム中の全てのバス・デバイスは特定
の各トランザクションを同時に且つ同一順序で見る。
又、各バス・トランザクションは各バスに1回だけ現れ
る。従って、この発明の階層バス構造は、全てのバス・
デバイス及びマルチプロセッサ・コンピュータ・システ
ムに対して単一の大きな論理的に共有されたバスとして
現れる。
【0023】この発明の他の実施態様は、拡張マルチプ
ロセッサ・コンピュータ・アーキテクチャを目論む。幾
つかのマルチプロセッサ・ノードは複数の単方向ポイン
トツウポイント・リンク接続で相互接続される。各マル
チプロセッサ・リンク・ノードは、これらポイントツウ
ポイント・リンク接続とインターフェイスするためのト
ップレベルのインターフェイス・デバイスを含む。各ノ
ードは又、トップレベルのインターフェイスを1個以上
のリピータへ結合する高レベルのバスを含む。各リピー
タは、上述した実施形態について述べたのど同様な仕方
で個別の低レベル・バスにも結合される。1個以上のバ
ス・デバイスは各低レベル・バスに取り付けられる。
【0024】所定のマルチプロセッサ・ノード中の各リ
ピータは内部待ち行列及びバイパス・パスを含む。各リ
ピータはトップレベルのインターフェイスから制御信号
も受信する。制御信号が使用されるのは、高レベル・バ
スから低レベル・バスへトランザクションを送信するの
にバイパス・パスが待ち行列を選択するためである。所
定のリピータ・ノード内で出るトランザクションは、待
ち行列中にストアされるが、他のマルチプロセッサ・ノ
ードから到着するトランザクションはバイパス・パスを
通して低レベル・バスへ送信される。マルチプロセッサ
・ノードの複数のトップレベル・インターフェイス間の
ポイントツウポイント・リンク構造は、各マルチプロセ
ッサ・ノード間で複数のトランザクションを同時に伝送
させる。従って、調停遅れはこれらトップレベル伝送に
は無関係である。トランザクションの順序化は、厳格に
定められたトランザクション順序によってこのトップレ
ベル・インターフェイスに維持される。どんな順序を選
んでも良いが、或る特別に定められた順序を終始一貫し
て使用しなければならない。例えば、そのような順序化
の一例は、3つのノード即ちノードA、ノードB及びノ
ードCを備えたシステムにおいて、ノードAから出るト
ランザクションがノードBから出るトランザクションよ
りも優先度が高く、そしてノードBから出るトランザク
ションがノードCから出るトランザクションよりも優先
度が高いというものである。この定められた順序は、チ
ップレベルのポイントツウポイント・リンク構造で伝送
されたトランザクションが各マルチプロセッサ・ノード
中のリピータへ送信される順序を指示する。複数の非起
動リピータ・ノードの高レベル・バスでブロードキャス
トされたトランザクションは、これらノード中でバイパ
ス・パスによって低レベル・バスへ更に送信される。し
かしながら、同一トランザクションは起動リピータ・ノ
ード中の高レベル・バスにはブロードキャストされな
い。その代わり制御信号がアサートされ、トランザクシ
ョンがリピータ待ち行列から低レベル・バスへブロード
キャストされるべきことをリピータに指示する。これは
始動ノード中の高レベル・バスを新しいトランザクショ
ンのブロードキャスト化に対して自由にさせる。
【0025】拡張マルチプロセッサ・コンピュータ・シ
ステムについての上述した動作から理解できるように、
複数のマルチプロセッサ・ノード間でブロードキャスト
されたバス・トランザクションは、各マルチプロセッサ
・ノードの各高レベル・バス及び低レベル・バスだけに
現れる。これによりバスの最大帯域幅を利用できる。更
に、複数のトップレベルのポイントツウポイント接続の
ための厳しく定められた順序化は、順序化されたトラン
ザクションが常に生じ且つシステム中の各バス・デバイ
スが各トランザクションを同時に同一順序で見ることを
確実にする。
【0026】各バス・デバイスはメモリを含み得る。各
バス・デバイスに置かれたメモリは、ひとまとめになっ
て、拡張マルチプロセッサ、コンピュータ・システムの
システム・メモリを形成する。メモリは、各マルチプロ
セッサ・ノードが総アドレス空間の一部を割当てられる
ように異なる領域に分けられる。各アドレス空間部分の
サイズは、拡張マルチプロセッサ・コンピュータ・シス
テムを構成するマルチプロセッサ・ノードの数に逆比例
する。例えば、もし3つのノードがあれば、各ノードに
は、アドレス空間の1/3が割当てられる。
【0027】各ノード間にメモリのコヒーレンシィを維
持するために、システム・メモリ中の各キャッシュ・ラ
インは、そのモードのためのコヒーレンシィ状態が付け
られる。コヒーレンシィ状態タグはMTAGと呼ばれ
る。特定ノード中のバス・デバイスがトランザクション
を開始する時に、そのノードでのMTAGは、そのトラ
ンザクション・アドレスに対してそのノードが有効なア
クセスを有するかどうかを決定するために調べられる。
もし検索されたMTAGが適切なアクセス権を示せば、
完了されたトランザクションは有効である。さもなけれ
ば、トランザクションは他のノードに対してグローバル
に再発されなければならない。
【0028】この発明の拡張マルチプロセッサ・コンピ
ュータ・システムの他の実施態様では、システム・メモ
リのアドレス空間の異なる領域が3つのモードのうちの
1つで作動するように割当てられ得る。3つのモードと
は、複製モード、移行モード及び正常モードのことであ
る。正常モードで作動している記憶領域のために、全て
のメモリ・トランザクションはグローバルなトランザク
ションを送ることなく起動マルチプロセッサ・ノード中
で試行される。
【0029】複製モードでは、複製記憶領域は、記憶領
域の複製コピーが各ノードにストアされるように、各プ
ロセッサ・ノード中に置かれたメモリにマップされる。
従って、複製モードのトランザクションは始動マルチプ
ロセッサ・ノード中で常に局部的に試行される。もしM
TAGが不適当なアクセス権を示すなら、トランザクシ
ョンは、複製モードでグローバルに送られるにすぎな
い。移行モードでは、トランザクションは第1回目に常
にグローバルで送られる。従って、MTAコヒーレンシ
ィ状態を維持する必要がない。
【0030】この発明の他の目的や利点は、以下の詳し
い説明を読み且つ添付図面を参照する時に、明らかにな
るだろう。この発明は種々の変形例及び代用形態に実施
可能であるが、その特定の実施形態を図面に例示して詳
細に説明する。しかしながら、図面及びその詳細な説明
はこの発明をここに開示した特定の形態に制限するので
はなく、かえって、特許請求の範囲に定義されたように
この発明の精神及び範囲内に入る全ての変形例、等化物
及び代用形態をカバーするものとする。
【0031】
【発明の実施の形態】図3はマルチプロセッサ・コンピ
ュータ・システム20の一実施形態を示すブロック図で
ある。このコンピュータ・システム20は、高レベルの
バス(L2バス)22で相互接続された多数のリピータ
・ノード30A−30Bを含む。ここで使用される要素
には、数字と英文字から成る符号を付けたが、集合的に
説明する場合には、数字だけを付ける。例えば、リピー
タ・ノード30A−30Bは集合的にはデバイス・ノー
ド30と称される。図3にはわずか2個のリピータ・ノ
ード30しか示さないが、任意の数のリピータ・ノード
30を接続することができる。しかし、L2バス22の
物理的/電気的束縛によって制限される。図示の実施形
態では、各リピータ・ノード30が複数のバス・デバイ
ス38,低レベルのバス32及びリピータ34を含み、
例えばリピータ・ノード30Aがバス・デバイス38A
及び38Bを有するように構成される。これらバス・デ
バイス38Aと38Bは低レベルのバス(L1バス)3
2Aで相互接続されている。L1バス32Aはリピータ
34Aを介してL2バス22とインターフェイスする。
【0032】バス・デバイス38Aはプロセッサ/メモ
リ・デバイスであって、プロセッサ/メモリ素子48A
の他に到着待ち行列40Aとマルチプレクサ42Aを含
む。プロセッサ/メモリ素子は、高性能のプロセッサ、
DRAMメモリ及び高速のキャッシュ・メモリを含み得
る。各バス・デバイス38に置かれた物理DRAMメモ
リは、図3のコンピュータ・システム20にシステム・
メモリをまとめて含めてある。
【0033】バス・デバイス38Bは入力/出力(I/
O)バス・デバイスである。プロセッサ/メモリ・デバ
イス38Aと同様に、I/Oバス・デバイス38Bは、
I/O素子50の他に到着待ち行列40B及びマルチプ
レクサ42Bを含む。I/O素子50は、周辺部品イン
ターコネクト(PCI)バスのような周辺バスへのバス
・ブリッジを含み得る。PCIバスを使用してグラフィ
ク・インターフェイス,直並列ポート,デスク・ドライ
ブ,モデム・プリンタ等のような周辺機器へインターフ
ェイスすることができる。
【0034】図3の実施形態は各リピータ・ノード30
中にわずか2個のバス・デバイス38しか示さないが、
バス・デバイス38の数は所望の構成次第でもっと多く
ても或は少なくても良い。又、プロセッサ/メモリ・デ
バイスとI/Oデバイスの混合仕方はどのようにしても
良い。リピータ・ノード30中で許容できるバス・デバ
イス38の最大数は、各L1バス32の物理的/電気的
束縛によって制限される。その上、わずか2つの階層バ
ス・レベルしか図示していないが、ここに説明した実施
形態は、所望ならばより多くの階層バス・レベルを用い
るように拡張できる。
【0035】一般的に云うと、バス・デバイス38は、
バス・トランザクションを送受信することにより互いに
通信する。バス・トランザクションは、メモリ動作又は
I/O動作を行える。一般に、メモリ動作はデータをソ
ースから宛先へ転送させる動作である。ソースと宛先の
少なくとも一方は、イニシエイタ内の記憶場所でも良い
し或はシステム・メモリ内の記憶場所でも良い。ソース
または宛先がシステム・メモリ内の記憶場所である時
に、ソース又は宛先はメモリ動作で伝えられたアドレス
によって特定される。メモリ動作とはリード動作又はラ
イト動作である。リード動作は、イニシエイタの外部の
ソースからイニシエイタの内部の宛先へデータを転送さ
せる。逆に、ライト動作は、イニシエイタの内部のソー
スからイニシエイタの外部の宛先へデータを転送させ
る。図3に示したコンピュータ・システム20では、メ
モリ動作はL1バス32及びL2バス22上の1つ以上
のトランザクションを含み得る。バス・トランザクショ
ンは、アドレス,コマンド及びソースidを含むビット
・エンコード化されたパケットしてブロードキャストさ
れる。他の情報も、モード又はマスク情報のアドレッシ
ングのように各パケット中でエンコード化されることが
できる。
【0036】一般的に云うと、I/O動作は、宛先がI
/Oバス・デバイスであることを除けば、メモリ動作と
同様である。I/Oデバイスは、直列ポート又はフロッ
ピイ・デスク・ドライブのような周辺機器と通信するの
に使用される。例えば、I/Oリード動作はI/O素子
50からバス・デバイス38D中のプロセッサへデータ
を転送させることができる。同様に、I/Oライト動作
は、バス・デバイス38Dのプロセッサからバス・デバ
イス38中のI/O素子50へデータを転送させること
ができる。図3に示したコンピュータ・システム20で
は、I/O動作はL1バス32及びL2バス22の1つ
以上のトランザクションを含み得る。
【0037】図3のコンピュータ・システム20のアー
キテクチャは、代表的なバス・トランザクションの流れ
を追跡することによりもっと良く理解できる。例えば、
バス・デバイス38A中のプロセッサ/メモリ素子48
によって開始されたバス・トランザクションはインター
コネクト・パス44Aに出される。トランザクション
は、L1.1バス32Aに送り出されたパケットP1
(o)として見られる。L1.1バス32Aに接続され
た、開始バス・デバイス(この例では38A)を含む各
バス・デバイスは、到着待ち行列40中に送り出された
パケットP1(o)をストアする。又、リピータ34A
はパケットP1(o)をL2バス22にブロードキャス
トする。これはパケットP1として現わされている。パ
ケットを出さない非始動の各リピータ・ノード中のリピ
ータは、パケットP1を受けてこれをそれぞれのL1バ
ス32に到着パケットP(i)としてドライブする。図
3に示した実施形態にはわずか2個のリピータ・ノード
30しか示さないので、リピータ34BはL2バス22
にパケットP1を受けてこれを上述した例ではL1.2
バス32Bに到着パケットP1(i)としてドライブす
る。送り出されたパケットP1(o)であるパケットP
1を出したリピータ・ノード30Aのリピータ34A
は、そのパケットP1を到着パケットとしてL1.1バ
ス32Aへドライブ・バックしない。その代わり、リピ
ータ34Bのような他のリピータがパケットP1をそれ
ぞれのL1バスにドライブする時に、リピータ34Aは
到着信号36Aをアサートする。この到着信号36Aは
始動ノード中にある各バス・デバイスに警告してその到
着待ち行列40中にストアされたパケットを現在の到着
パケットとして処理させる。非始動リピータ・ノード3
0B中のリピータ34Bはその到着信号36Bをアサー
トしない。従って、バス・デバイス38C及び38Dは
それぞれの到着待ち行列40をバイパスし、且つL1.
2バス32Bからの到着パケットP1(i)を受ける。
マルチプレクサ42は到着信号に応答し且つ各デバイス
にL1バス32のパケットか、到着待ち行列40の最初
のパケットを現在のパケットとして調べさせる。
【0038】上例では、始動リピータ・ノード30A中
の全てのバス・デバイス38A−38Bの到着待ち行列
40A−40Bに送り出されたパケットP1(o)をス
トアすることは、他の送り出されたパケットをブロード
キャストさせるためにL1.1バス32Aをフリーアッ
プする。一方、第1のパケットは他の非始動リピータ・
ノード(30B)のL1バス32にブロードキャスト中
であり且つリピータ・ノード30A中の到着待ち行列4
0A−40Bに存在する。従って、同一のバス・トラン
ザクションはどの所定バスにも1回よりも多く決して現
れず、したがって、バスの帯域幅を最大まで利用させ
る。
【0039】一般的に云えば、所定のL1バス32に結
合された全てのデバイスは、このバスに現れる全ての送
出トランザクション・パケットをその到着待ち行列40
中にストアさせる。リピータ・ノード30中のリピータ
34は、全ての送出トランザクション・パケットを、こ
れらが始動L1バス32に現れたのと同じ順序でL2バ
ス22にブロードキャストする。各リピータ・ノード3
0中のリピータは、L2へパケットをそのリピータ・ノ
ードから出さなかった時だけ、L2のパケットをL1バ
ス32に到着パケットとしてドライブする。もし、L2
のパケットが特定のリピータ・ノード(起動ノード)か
ら出たなら、そのリピータ・ノードは、他のリピータが
そのパケットを到着パケットとしてドライブしているバ
ス・サイクルの間に、そのパケットを再度ドライブする
代わりに到着信号36をアサートする。従って、コンピ
ュータ・システム20中の全てのバス・デバイス38は
トランザクションを同時に見る。起動リピータ・ノード
内のバス・デバイス38はその到着待ち行列40からパ
ケットを見る。そして非起動リピータ・ノード中のバス
・デバイス38はそれぞれのバイパス・パス46を介し
てL1バス32のパケットを見る。起動リピータ・ノー
ド中のバス・デバイス38がそれぞれの到着待ち行列4
0を使用してパケットを見るので、起動リピータ・ノー
ド中のL1バス32は他の送り出されたパケットを自由
にブロードキャストできる。このようにしてL2バス2
2の全帯域幅を利用できる。
【0040】全ての送出トランザクション・パケット
は、出されたのと同じ順序(デバイス間の調停をさせ
る)でブロードキャストされ、且つ同一バス・サイクル
中に全てのデバイスに現れるので、L1バス32、リピ
ータ34及びL2バス22から成る階層バス構造はバス
・デバイス38に対して単一の大きくて論理的に共有し
たバスとして現れる。しかしながら、単一の物理的に共
有したバスに許容できるよりももっと多くのバス・デバ
イス38を図3の階層構造でサポートできる。一実施形
態では、各プロセッサ/メモリ・バス・デバイスに物理
的に置かれたメモリは、システム・メモリを形成する単
一の論理的メモリとして一まとめに現れる。システム・
メモリは一般的には全てのバス・デバイス38でアクセ
スできる。
【0041】バス・リクエストを同時に扱うために、バ
ス・デバイス38及びリピータ34の各々中に調停論理
部が含まれる。実施形態では、各リピータ・ノード30
中のリピータ34及びバス・デバイス38はそのノード
中のL1バス34を調停する。更に、各リピータ34は
L2バス22へのアクセスを調停する。L1トランザク
ション・パケットを未定のままにすると、各バス・デバ
イス38中の送り出される待ち行列が列をつくるかもし
れない。同様に、未定のL2パケット及び未定の到着L
1パケットは各リピータ34中で列をつくるかもしれな
い。各バス・レベルのためのラウンド・ロビン又は優先
度のような種々の調停方法を用いても良い。
【0042】図3をまた参照しながら図4を見れば、図
3のコンピュータ・システム20の動作は、図4に示さ
れたようなタイミング60によって例示される。このタ
イミング60の各列は特定のバス・サイクルに対応す
る。左から右へ時間が増す11のバス・サイクルが11
の列で表わされる。L2バス22、L1.1バス32
A、L1.2バス32B、到着信号36A、及び到着信
号36Bの状態は、それぞれ行61−65に応じて各バ
ス・サイクルの間に示されている。
【0043】バス・サイクル1中、送り出されたパケッ
トはバス・デバイス38によって各リピータ・ノード3
0中のL1バス32にドライブされる。タイミング60
中には、送り出されたパケットが行62(L1.1バ
ス)にP1(o)として且つ行63(L1.2バス)に
P2(o)として示される。同一サイクル中に2つの異
なるバス・トランザクションが出されたので、これらが
L2バス22に現れる順序は、調整方法に依存する。タ
イミング60に示された実施形態のため、バス・サイク
ル2中の行61(L2バス)のP1で表わされたよう
に、L1.1バス32Aで発されたトランザクションは
まずL2バス22へ送られる。トランザクションP2
(o)はそれぞれのリピータ中で列を作る。又、バス・
サイクル2中、2つの新しいトランザクションは、行6
2(L1.1バス)で送出トランザクションP3(o)
及び行63(L1.2バス)で送出トランザクションP
4(o)で表わされたように、低レベルのバス32に出
される。トランザクションが出されたリピータ・ノード
中の全てのバス・デバイス38に対し全ての送出トラン
ザクション・パケットが到着待ち行列40中で列をなす
ことに注目するのが重要である。例えば、送出トランザ
クションP3(o)は、L1.1バス32Aに出され、
従って起動リピータ・ノード30A中のバス・デバイス
38A,38Bのそれぞれ到着待ち行列40A,40B
にストアされる。送出トランザクションP3(o)はど
ちらのバス・デバイス38A又は38Bから出ても良
い。
【0044】バス・サイクル3中、トランザクションP
1は、行63(L1.2バス)でのP1(i)で表わさ
れたように、リピータ・ノード30BのL1バス32B
に到着トランザクションとしてブロードキャストされ
る。しかし、トランザクションP1はリピータ・ノード
30AのL1バスにはブロードキャストされない。その
理由は、リピータ・ノード30がトランザクションP1
を出したリピータ・ノードだからである。その代わり、
リピータ・ノード30Aでの到着信号36Aが、タイミ
ング60の行64に示されたように、アサートされる。
到着信号36Aのアサートは、リピータ・ノード30A
の各バス・デバイス38A,38Bに、それぞれの到着
待ち行列60からの到着パケットP1(i)としてトラ
ンザクションP1を見させる。従って、起動リピータ・
ノード30A中のL1バス32Aは、バス・サイクル3
中タイミング図60の行62にP5(o)で表わされた
ように、他の送出トランザクションの伝送に対して自由
である。又、バス・サイクル3中、バス・サイクル1か
らの第2の送出トランザクションP2(o)は、タイミ
ング60の行61に示されたようにL2バス22にブロ
ードキャストする。
【0045】バス・サイクル4中、トランザクションP
2は、行62にP2(i)で表わされたように、リピー
タ・ノード30AのL1バス32Aに到着トランザクシ
ョンとしてブロードキャストされる。しかしながら、ト
ランザクションP2は、これを出したリピータ・ノード
30BのL1バスにはブロードキャストされない。その
代わり、リピータ・ノード30Bでの到着信号36Bは
バス・サイクル4の間タイミング60の行65に示され
たようにアサートされる。到着信号36Bは、アサート
されるとリピータ・ノード30Bの各バス・デバイス3
8C−38Dに、それぞれの到着待ち行列40からの到
着パケットP2(i)としてトランザクションP2を見
させる。従って、起動リピータ・ノード30B中のL1
バス32Bは、バス・サイクル4中タイミング図60の
行63でのP6(o)で表わされたように、同一バス・
サイクルの間他の送出トランザクションを自由に伝送す
る。又、バス・サイクル4中、送出トランザクションP
3(o)は、タイミング60の行61に示されたように
トランザクションP3としてL2バス22にブロードキ
ャストする。
【0046】上述した動作は、バス・デバイスから出さ
れた全てのバス・トランザクションに適用できる。タイ
ミング60から明らかなように、一定のトランザクショ
ン・パケットはどのL1バス32にも1回だけ、送り出
されたパケット又は到着パケットとして現れるが、両方
が現れることはない。従って、全てのトランザクション
・パケットは図3のコンピュータ・システム20中の各
バスに正確に1回現れる。この実施形態がL2バス22
の全帯域幅を利用させることもタイミング60から明ら
かである。タイミング60は、又、コンピュータ・シス
テム20の各バス・デバイス38が同一バス・サイクル
中同一順序で特定の各トランザクションを見ることを例
示する。それは、特定の各トランザクションがコンピュ
ータ・システム中の一つ置きのバス・デバイス38に現
れるからである。
【0047】図5は、プロセッサ/メモリ・バス・デバ
イス70の詳細を示す。バス・デバイス70は図3のプ
ロセッサ/メモリ・バス・デバイス38A,38C,3
8Dの1つに対応する。バス・デバイス70は、高性能
のプロセッサであり得るプロセッサ80を含む。一実施
形態では、プロセッサ80は、SPARCプロセッサ・
アーキテクチャのバージョン9にしうたがうSPARC
プロセッサである。しかしながら、プロセッサ80には
どんなプロセッサ・アーキテクチャを用いても良いこと
に注目されたい。
【0048】代表的な例では、プロセッサ80は内部命
令及びデータ・キャッシュを含む。従って、外部キャッ
シュ76はL2キャッシュ(レベル2用、一方内部キャ
ッシュはレベル1キャッシュである。)と表わした。も
しプロセッサ80に内部キャッシュが無ければ、外部キ
ャッシュ76はレベル1キャッシュである。“レベル”
と云う術語は、プロセッサ80内の処理コアに対して特
定のキャッシュが近いことを識別するために使用される
ことに注目されたい。レベル1が処理コアに一番近く、
レベル2が次に近く、以下同様である。外部キャッシュ
76は、これに結合されたプロセッサ80からアクセス
されたメモリ・アドレスに速い応答を与える。外部キャ
ッシュ76は様々な特定キャッシュ構造のどれで構成し
ても良いことに注目されたい。例えば、セットアンシァ
ティブ又はダイレクトマップ構成でもよい。
【0049】メモリ82は、コンピュータ・システム中
のプロセッサ80及び他のバス・デバイスで使用するた
めのデータ及び命令コードをストアするように構成され
ている。どんなタイプのメモリを使っても良いが、メモ
リ82にはダイナミック・ランダム・アクセス・メモリ
(DRAM)が好ましい。図5及び図3を参照すれば、
他のバス・デバイス38中及び他のリピータ・ノード3
0中の同様なメモリと一緒にメモリ82は共有メモリ装
置を形成する。システム・メモリはデバイス及びリピー
タ・ノード間に物理的に分散され得るが、物理的メモリ
は論理的には一緒になって単一の共有メモリとして現れ
る。従って、特定のバス・デバイス38内のプロセッサ
80がシステム・メモリにアクセスする時に、メモリ・
アドレスによって他のバス・デバイス又はそれ自体のバ
ス・デバイスのメモリ82からアクセスすることができ
る。しかしながら、図3の動作について上述したよう
に、同一バス・サイクル中全てのメモリ・トランザクシ
ョンは各バス・デバイスに現れる。従って、メモリ・ア
クセスのトランザクション時間はイニシエイタ又はメモ
リ82の物理的場所に依存しない。
【0050】プロセッサ80は、メモリにアクセスする
時に、データを積極的にキャッシュすることができる。
従って、コンピュータ・システム20中の全てのバス・
デバイス38間にコヒーレンシィを維持しなければなら
ない。通常のSMPコヒーレンシィ・プロトコルは、コ
ヒーレンシィを維持するためにMESTのように使用さ
れることができる。それは、図3のアーキテクチャによ
り全てのトランザクションはコンピュータ・システム2
0中の全てのバス・デバイスに亘り大体同一時間に且つ
同一順序で見られるようにするからである。
【0051】図3に戻れば、階層L1/L2バス構造
は、コンピュータ・システム20中の全てのバス・デバ
イス間の通信を考慮する。一実施形態では、L1バス3
2及びL2バス22の各々は、アドレス・バスとそれに
関連する制御信号及びデータ・バスとそれに関連する制
御信号を含む。このようにアドレス・バスとデータ・バ
スが分離しているので、分割トランザクション・バス・
プロトコルを用いることができる。分割トランザクショ
ン・バス・プロトコルとは、アドレス・バスに生じるト
ランザクションとデータ・バスに同時に生じるトランザ
クションとが違っていて良いプロトコルである。アドレ
ス及びデータを伴うトランザクションは、アドレス及び
関連制御情報がアドレス・バスに伝えられるアドレス・
フェーズとデータがデータ・バスに伝えられるデータ・
フェーズとを含む。他のトランザクション用の別なアド
レス・フェーズ及び/又はデータ・フェーズは、特定の
アドレス・フェーズに対応するデータ・フェーズの前に
開始することができる。アドレス・フェーズとデータ・
フェーズは多数の仕方で相関されて良い。例えば、デー
タ・トランザクションは、アドレス・トランザクション
が起きるのと同じ順序で起きるかもしれない。或は、ト
ランザクションのアドレス・フェーズとデータ・フェー
ズは独特のタグ又はソースidによって識別することが
できる。簡潔のためここに述べたバス・トランザクショ
ンを通常、アドレス・トランザクションと云う。これに
対応して、図3のL1バス32及びL2バス22はアド
レス・バスだけを表わす。データ・バスも全てのバス・
デバイス38に相互接続する。データ・バスは、普通の
バス構造、データ・スイッチ、又はこれらの組合わせで
良い。
【0052】図5の実施形態のバス・デバイス70は、
バックプレーン(この上にL1バス32が置かれる)に
挿入され得る印刷回路板として構成することができる。
この態様では、リピータ・ノード30内に含まれたプロ
セツサ及び/又はI/Oインターフェイスの数は、バス
・デバイスを挿入したり取り出したりすることで変えれ
る。例えば、図3のコンピュータ・システムは最初、少
数のバス・デバイス38で構成できる。コンピュータ・
システムのユーザによって必要とされた計算能力が増え
るにつれ、別なバス・デバイス38を随時付加すること
ができる。
【0053】アドレス・コントローラ72はL1バス3
2に結合され、データ・コントローラ84はデータ・バ
スに結合される。アドレス・コントローラ72はキャッ
シュ76とL1バス32の間にインターフェイスを形成
する。図示の例では、アドレス・コントローラ72は、
アウト待ち行列74及びイン待ち行列40を含む。アド
レス・コントローラ72がL1バス32へのアクセスを
許されるまで、アウト待ち行列72はこれに接続された
プロセツサ80からのトランザクションを緩衝する。ア
ドレス・コントローラ72は、トランザクションがアウ
ト待ち行列74に置かれた順序でこれらトランザクショ
ンをアウト待ち行列にストアする(即ちアウト待ち行列
74はFIFO待ち行列である)。アドレス・コントロ
ーラ72によってなされたトランザクション及びL1バ
ス32から受け、キャッシュ76とプロセッサ80の内
部キャッシュでスヌープされるトランザクションは、イ
ン待ち行列40中に置かれる。
【0054】アウト待ち行列74と同様に、イン待ち行
列40もFIFO待ち行列である。全てのアドレス・ト
ランザクションは、上述したように、始動ノードの各バ
ス・デバイスのイン待ち行列にストアされる(アドレス
・トランザクションを開始するバス・デバイスのイン待
ち行列内でさえ)。非始動ノードに対してイン待ち行列
40はバイパス・パス46でバイパスされる。アドレス
・コントローラ72は、適切なバス・サイクル中バイパ
ス・パス46又はイン待ち行列40を選ぶために、マル
チプレクサ42を制御させる到着信号36を受ける。も
し別な緩衝が必要なら、第2のイン待ち行列(図示しな
い)をマルチプレクサ42の出力側に置けば良い。複数
のアドレス・トランザクションは、従ってこれらがL1
バス32に生じる順序でスヌープするために全てのバス
・デバイスに提示される。
【0055】データ・コントローラ84は、データ・バ
ス・メモリ82及びキャッシュ76への、又はこれらか
らのデータを運ぶ。データ・コントローラ84はアドレ
ス・コントローラ72と同様にイン待ち行列及びアウト
待ち行列を含み得る。一例では、データ・コントローラ
84は、バイトに切り分けられたバス構造中に多数の物
理的ユニットを用いる。
【0056】図5に示されたようなプロセツサ80はメ
モリ管理ユニット(MMU)78を含む。このMMU7
8は、プロセツサで実行された命令コードによって生じ
たデータ・アドレス及び命令アドレスで仮想アドレス対
物理アドレス変換を行う。命令の実行に応答して生じた
アドレスは仮想アドレスである。換言すれば、仮想アド
レスはCPUによって生じたアドレスである。仮想アド
レスはアドレス変換機構(MMU78中に含まれる)に
通され、ここから対応する物理アドレスが生じる。物理
アドレスはシステム・メモリ内の記憶場所を識別する。
【0057】アドレス変換機構は、アクセス制御又は保
護機能部に最もひんぱんに結合される。例えば、アドレ
ス変換機構は、或る種のメモリ・アドレスに対する特定
の計算タスクのアクセスを肯定ないし否定するのに使用
できる。このようにして、1つの計算タスク内のデータ
及び命令は他の計算タスクのデータ及び命令から隔離さ
れる。更に、計算タスクのデータ及び命令の部分はハー
ド・デイスク・ドライブに“ページアウトされ”る。或
る部分がページアウトされる時に、変換は無効にされ
る。計算タスクによるその部分へのアクセス時に、間違
った変換のせいでトラップが起きる。このトラップによ
って、動作中のシステムがハード・ディスク・ドライブ
から対応する情報を検索する。このやり方で、バス・デ
バイス70のために図示したメモリ82のようにバス・
デバイス間に物理的に分散される実際のシステム・メモ
リよりも多くの仮想メモリが入手できる。仮想メモリの
ための多くの他の使用法も周知である。
【0058】図6はI/Oバス・デバイス90の一例を
示し、このI/Oバス・デバイス90は図3のバス・デ
バイス38Bに相当し得る。I/Oバス・デバイス90
は、L1バス32をメザニーン(mezzanine )・バス9
6へインターフェイスするI/Oブリッジ・コントロー
ラ92を備えている。同様に、I/Oデータ・コントロ
ーラ94は、システム・データ・バスをメザニーン・バ
ス96へインターフェイスする。メザニーン・バス96
には、2個の周辺機器インターコネクト(PCI)バス
・コントローラ98A−98B及びビデオ・フレーム・
バッファ100が結合されている。PCIバス・コント
ローラ98はメザニーン・バス96をそれぞれのPCI
バス102A−102Bにインターフェイスする。複数
のPCIデバイス例えばPCIカード104A−104
B,104C−104DはそれぞれPCIバス102
A,102Bに結合することができる。PCIカード1
04A−104Dはマルチメディア・インターフェイ
ス,直列ポート・インターフェイス・ビデオ・インター
フェイス等のようなどんなタイプの周辺機器もサポート
し得る。
【0059】I/Oブリッジ・コントローラ92は、図
5のアドレス・コントローラ72と同様なアドレス・コ
ントローラ93を含む。従って、I/Oバス・デバイス
90中のアドレス・コントローラ93は、到着信号36
を受信し且つイン待ち行列40B及びバイパス・パス4
6を含む。従って、I/Oバス・デバイス90は起動デ
バイス又は受信デバイスとしてバス・トランザクション
に関係し得る。I/Oバス・デバイス90は、図4のタ
イミング図に応じて図3の階層L1/L2バス構造で作
動する。例えば、PCIカード104AはPCIバス1
02Aにトランザクションを開始する。トランザクショ
ンは、PCIバス・コントローラ98Aによってまずメ
ザニーン・バス96へ、次いでI/Oブリッジ・コント
ローラ92によってL1バス32へ送られる。簡潔にす
るためこの例ではバスの調停が無視される。トランザク
ションは、L1バス32へ送られるので、I/Oブリッ
ジ・コントローラ92中に置かれたアドレス・コントロ
ーラ93中の到着待ち行列40にもストアされる。同様
に、I/Oバス・デバイス90でのデバイスは、他のバ
ス・デバイス38によって開始されたトランザクション
に対する宛先であり得る。その場合には、トランザクシ
ョンがI/Oバス・デバイス90と同一のノードから出
たかどうかにより、I/Oブリッジ・コントローラ92
はイン待ち行列40からか、バイパス・パス46からの
到着トランザクションを受ける。トランザクションの宛
先は、PCIカード104A−104Dの1つ又はフレ
ーム・バッファ100で良い。従って、I/Oバス・デ
バイス90は、プロセツサ/メモリ・バス・デバイスに
ついて上述したのと同じ仕方でバス・トランザクション
に関係し得る。
【0060】図7はこの発明の他の実施形態である拡張
対称プロセッサ・コンピュータ・システム(XMP)1
30を示す。3個のSMPノード120A−120Cが
示されている。各SMPノード120はXMPインター
フェイス128を有する。各SMPノード120内には
2個のアドレス・リピータ34もある。XMPインター
フェイス128及びリピータ34は高レベルのバスL2
に結合する。各リピータ34は低レベルのバス32にも
結合されている。バス・デバイス38は低レベルのバス
32に結合されている。バス・デバイス38は、図5の
バス・デバイス70と同様なプロセツサ/メモリ・バス
・デバイスでも良いし、或は図6のバス・デバイス90
と同様なI/Oバス・デバイスでも良い。他の実施形態
は他の種々のバス・デバイス構成を含み得る。最近のコ
ンピュータ・システム中で見られるどんなローカル・バ
ス・タイプのデバイスもこの発明内で使用することを目
論まれる。
【0061】図7中の各SMPノード120は、図3に
示したSMPシステムと同様に構成されて良い。しかし
ながら、図7のSMPノード120は、高レベルのバス
22に結合されたXMPインターフェイス128で構成
されている。各SMPノード120のXMPインターフ
ェイス128は、ポイントツウポイント接続により互い
のSMPノード120のXMPインターフェイス128
とも接続されている。例えば、SMPノード120Aの
XMPインターフェイス128Aはポイントツウポイン
ト・リンク142によりSMPノード120BのXMP
インターフェイス128Bにポイントツウポイント接続
されている。SMPノード120A中のトップレベルの
インターフェイス128Aはポイントツウポイント・リ
ンク140によりSMPノード120C中のXMPイン
ターフェイス128Cに個別にポイントツウポイント接
続されている。このやり方では、各SMPノード120
は1つ置きのSMPノードへの個別のポイントツウポイ
ント接続を有する。各ポイントツウポイント接続は2つ
の単方向リンクである。ポイントツウポイント接続のこ
のネットワークは、幾つかのSMPノードを一緒に結合
させ、拡張SMP(XMP)コンピュータ・システム1
30を形成する。SMPノード120間のポイントツウ
ポイント接続の結合ネットワークは、より深い階層及び
他のアーキテクチャに関連した多くの物理的抑制及び潜
在問題に取り組むことなく、図3の階層バス構造を拡張
させる。
【0062】図8はSMPノード120のもっと詳しい
ブロック図である。SMPノード120は図7のSMP
ノード120A−120Cの1つに相当する。SMP1
20の構造及び動作は、後で説明するように、変更部分
を除けば、図3のSMPコンピュータ・システムについ
て上述した構造及び動作に非常に似ている。SMPノー
ド120は、そのL2バス22とXMPコンピュータ・
システム130中の他のSMPノードとの間のインター
フェイスとなるXMPインターフェイス128を含む。
図3におけるように、2つのリピータ・ノード34はL
2バス22に接続されている。各リピータ・ノードはリ
ピータ34,L1バス32及び2個のバス・デバイス3
8を含んでいる。図8には2個のリピータ・ノードだけ
を示すが、リピータ・ノードの数は2個より多くても、
逆に少なくても良い。更に、各リピータ・ノード毎に2
個のバス・デバイス38しか示さないが、同様に2個よ
り多くても少なくても良い。又、この発明の他の実施形
態では、共有バスの代わりに、L2バス22は各リピー
タ34をXMPインターフェイス128へ個別に結合す
るポイントツウポイント接続であり得る。
【0063】各リピータ34は内部待ち行列122及び
バイパス・パス124を含む。各リピータ34はXMP
インターフェイス128から制御信号も受ける。制御信
号126は、リピータ34中でバイパス・パス124と
待ち行列122のどちらが選ばれるかを制御するために
使用される。このバイパス/待ち行列構造は、図3のバ
ス・デバイス38で示されたバイパス/待ち行列構造と
同様である。トランザクションがXMPコンピュータ・
システム130中の他のSMPノードにブロードキャス
トされなければならない時に、そのトランザクションは
起動SMPノード120中の各リピータ34の待ち行列
122にストアされる。又、完全に局部的なトランザク
ション(他のノードへブロードキャストされない)は待
たされる。他のSMPノードから到着するトランザクシ
ョンはXMPインターフェイス128によってL2バス
22にブロードキャストされる。他のSMPノードから
のトランザクションのため、XMPインターフェイス1
28は、バイパス・パス124が各リピータ34中で選
ばれるように制御信号をアサートする。従って、外のS
MPノードから出る全てのトランザクションはバイパス
・パス124及びリピータ34を通して送られ、そして
SMPノード120中で出る全てのトランザクションは
SMPノード120のリピータ待ち行列122にストア
される。
【0064】図7と図8を同時に参照すれば、ポイント
ツウポイント接続140,142及び144を有するポ
イントツウポイント・リンク構造はトランザクション同
期構造である。従って、各SMPノード120は互いの
SMPノード120とほぼ同時にトランザクションを送
受信し得る。SMPノード120間の結合構造が単方向
ポイントツウポイント接続を備えるので調停遅れはSM
Pノード120間でトランザクションを送ることに関連
付けられない。このトップレベルの結合構造に関する厳
しいトランザクション順序を追従することにより、トラ
ンザクションの順序化は維持される。SMPノード12
0間の幾つかのポイントツウポイント・リンクに同時に
送られたトランザクションは、SMPノード120Aか
ら出るトランザクションがSMPノード120Bから出
るトランザクションの前に起こるとして定義され且つS
MPノード120Bから出るトランザクションがSMP
ノード120Cから出るトランザクションの前に起こる
として定義されるように、慣例により順序化される。例
えば、1トランザクション・サイクル中、SMPノード
120AはトランザクションをSMPノード120B及
び120Cへブロードキャストし得る。同一サイクル
中、SMPノード120Bは異なるトランザクションを
SMPノード120A及び120Cにブロードキャスト
でき、そしてSMPノード120Cは更に他のトランザ
クションをSMPノード120A及び120Bにブロー
ドキャストできる。従って、3つの異なるバス・トラン
ザクションは、それぞれ各SMPノード120A,12
0B,120Cから1つのトランザクションが出る全て
のSMPノードへ同一サイクル中ブロードキャストし得
る。定義された順序化は、SMPノード120B及び1
20Cから出るトランザクションよりも前に、各SMP
ノード120中のリピータへブロードキャストされるこ
とを命令する。次にノード120Bから出るトランザク
ションが各SMPノード120のL2バス22にブロー
ドキャストされ、最後にSMPノード120Cから出る
トランザクションが各SMPノード120のL2バス2
2にブロードキャストされる。他のSMPノードから出
るトランザクションが特定のSMPノードのXMPイン
ターフェイスによってそのL2バス22にブロードキャ
ストされる時に、XMPインターフェイス128は、そ
のSMPノード中の全てのリピータ34にてバイパス・
パス124が選ばれるように制御信号126をアサート
する。しかしながら、トランザクションが発生られたS
MPノード中では、リピータ34が待ち行列122を選
んでトランザクションをL1バス32へドライブするよ
うにXMPインターフェイス128は制御信号126を
アサートする。従って、起動L2ノード中のL2バス2
2は新しいバス・トランザクションをブロードキャスト
するために自由のままである。
【0065】図7および図8のXMPアーキテクチャに
ついての上述した動作から理解できるように、SMPノ
ード120間でブロードキャストされたトランザクショ
ンは各SMPノード120のL2バス22に1回だけ現
れる。これはバスの帯域幅を最大まで利用させる。更
に、トップレベルのポイントツウポイント・リンク接続
のために定義された厳しい順序化は、どんな調停遅れも
無しに順序化されたトランザクションが常にブロードキ
ャストされることを確実にする。上述したポイントツウ
ポイント・リンク構造は、伝統的な階層バス構造よりも
実に良いスケーリング及び距離特性を提供する。SMP
ノード120Aから出るトランザクションがノード12
0Bから同時に出るトランザクションに先行し且つSM
Pノード120Bから出るトランザクションがSMPノ
ード120Cから同時に出るトランザクションよりも優
先権を有する定義されたトップレベルのトランザクショ
ン順序化は、制限しないことを理解されたい。換言すれ
ば、定義されたどんな順序を選んでも良いが、全てのS
MPノード120について全てのトランザクションが同
一順序で見られるのを確実にするために特定の定義され
た順序を持つことが必要である。
【0066】各バス・デバイス38及び各SMPノード
120は、図3のSMPコンピュータ・システムについ
て上述したようなメモリを含み得る。各バス・デバイス
38及び各SMPノード120中に置かれたメモリは、
ひとまとめにしてXMPコンピュータ・システムのシス
テム・メモリを形成する。しかしながら、システム・メ
モリのアドレス空間は、各SMPノード120が総アド
レス空間の一部を得るように異なる領域に分割される。
各アドレス空間部分のサイズはXMPコンピュータ・シ
ステム中のSMPノード120の数に依存する。図7及
び図8のXMPコンピュータ・システム130に関する
限り、各SMPノード120A−120Cには総システ
ム・メモリ・アドレス空間の1/3が割当てられる。も
し特定のSMPノード120中のバス・デバイス38が
その特定SMPノード120に割当てられたアドレス空
間領域内の或るメモリ領域にアクセスするならば、トラ
ンザクションを他のSMPノード120へブロードキャ
ストすることなく、SMPノード内のメモリから満足さ
れる。従って、SMPノード120間のポイントツウポ
イント・リンク構造のトランザクション・トラフィク
は、特定のSMPノード120内で満足され得ないトラ
ンザクションだけに制限される。
【0067】XMPコンピュータ・システム中での各S
MPノード120間のメモリ・コヒーレンシィを維持す
るために、システム・メモリの各キャッシュ・ラインは
SMPノード用のコヒーレンシィ状態がタグ化される。
これらコヒーレンシィ状態タグはひとまとめにして図8
ではMTAG150と称される。複数のMTAG150
は、メモリを含む各バス・デバイス38のメモリにスト
アすることができる。他の例では、MTAGをSRAM
にストアできる。特定のSMPノード120中のバス・
デバイス38がトランザクションを開始する時に、トラ
ンザクションはその特定SMPノードでだけ試行され
る。開始中のバス・デバイスは、検索されたMTAGコ
ヒーレンシィ状態を調べて、SMPノードがトランザク
ション・アドレスのための有効なアクセス権を有するか
どうかを決定する。もし検索されたコヒーレンシィ状態
が適正なアクセス権を示すなら、完了されたトランザク
ションは有効である。しかしながら、もしコヒーレンシ
ィ状態が不適当なアクセス権を示すなら、トランザクシ
ョンはグローバル・トランザクションとしてバス・デバ
イスによって再発されなければならない。トランザクシ
ョンがグローバル・トランザクションとしてバス・デバ
イスから出されると、トランザクションは起動SMPノ
ード120中のXMPインターフェイス128によって
ポイントツウポイントSMPノード接続で互いのSMP
ノード120へブロードキャストされるであろう。トラ
ンザクションがグローバル・トランザクションとして意
図されるかどうかは、トランザクション・パケットのビ
ット・エンコード化部分から決定される。
【0068】一般的に云えば、特定の記憶場所(例えば
メモリ又はキャッシュ)にあるコヒーレンシィ・ユニッ
ト(例えばキャッシュライン)のために維持されたコヒ
ーレンシィ状態は、そのSMPノード120でのコヒー
レンシィ・ユニットへのアクセス権を示す。このアクセ
ス権は、コヒーレンシィ・ユニットの有効さ及びそのS
MPノード120内のコヒーレンシィ・ユニットのコピ
ーに許されたリード/ライト許可を示す。一例では、X
MPコンピュータ・システム130によって用いられた
コヒーレンシィ状態は変更され、所有され、共有され、
そして無効にされる。変更された状態は、SMPノード
120が対応するコヒーレンシィ・ユニットを更新した
ことを示す。従って、他のSMPノード120はコヒー
レンシィ・ユニットのコピーを持たない。更に、変更さ
れたコヒーレンシィ・ユニットがSMPノードによって
無視される時に、コヒーレンシィ・ユニットは、コヒー
レンシィ・ユニットが属するアドレス空間領域に割当て
られるSMPノード120へストア・バックされる。所
有された状態は、SMPノード120がコヒーレンシィ
・ユニットに責任を負うことを示すが、他のSMPノー
ドがコピーを共有したかもしれない。再び、コヒーレン
シィ・ユニットからSMPノード120によって無視さ
れる時に、コヒーレンシィ・ユニットは、このコヒーレ
ンシィ・ユニットが属するアドレス空間領域を割当てら
れるSMPノード120へストア・バックされる。共有
された状態は、SMPノード120がコヒーレンシィ・
ユニットをリードできるが、所有された状態を得ること
なくコヒーレンシィ・ユニットを更新できないことを示
す。更に、他のSMPノード120は同様にコヒーレン
シィ・ユニットのコピーを持てる。最後に、無効にされ
た状態は、SMPノード120がコヒーレンシィ・ユニ
ットのコピーを持たないことを示す。一例では、変更さ
れた状態はライト許可及びどんな状態も示すが、無効は
対応するコヒーレンシィ・ユニットへのリード許可を示
す。他のどんな許容し得るコヒーレンシィ技術を用いて
も良い。
【0069】上述した動作から理解できるように、SM
Pノード120間のトップレベルのポイントツウポイン
ト相互接続バスは、純粋のブロードキャスト・バスであ
り且つコヒーレンシィ・スヌープ又はろ波機能を行わな
い。全てのメモリ・コヒーレンシィ・スヌープは、シス
テム・メモリ内にストアされた複数のMTAGを利用す
ることによって個々のSMPノード120内で行われ
る。トップレベルのポイントツウポイント相互接続シス
テムにグローバルに送られた全てのトランザクション
は、各SMPノード120中の全ての低レベルのバスで
正確に1回起きるだろう。スヌープ及びろ波は、グロー
バルな注意を要するトランザクションだけがトップ・ポ
イントツウポイント相互接続構造を横切って送られるよ
うに、各SMPノード120中で最低のレベルにて行わ
れる。
【0070】図7及び図8のXMPコンピュータ・シス
テム130の他の実施形態では、システム・メモリのア
ドレス空間の領域を図9に示されたように3つのモード
のうちの1つで作動するように割当てらることができ
る。各SMPノード120に置かれた物理的メモリは、
図9に示されたように3つのモードの各々にて作動する
アドレス領域にマップされ得る。3つのメモリ・モード
は複製(seplicate)モード,移行(migr
ate)モード及び正常モードである。各SMPノード
120に置かれた物理的メモリは、図9に示されたよう
に3つのモードの各々中で作動するアドレス領域にマッ
プされ得る。正常モードで作動中のシステム・メモリ領
域に対し、全てのメモリ・トランザクションは、グロー
バルなトランザクションを送ることなくまず起動SMP
ノード120中で試行される。その起動SMPノード1
20中でのメモリ・アドレスが有効でないことをもしM
TAGが示すなら、トランザクションはグローバルに送
られるにすぎない。その場合、トランザクションは上述
したようにグローバルに再発される。もしトランザクシ
ョンのアドレスが外部のSMPノード120にマップさ
れたメモリ領域に対応するなら、トランザクションが1
回目にグローバルに発されることに注目されたい。もし
メモリ・アドレスがそのSMPノードにマップされた記
憶領域に相当するなら、トランザクションは起動ノード
中で局部的に試行されるにすぎない。従って、正常な動
作モードでは、トランザクションが通常、グローバルに
送られる時に、2つの例がある。そのような一例は、ト
ランザクション・アドレスが他のSMPノードにマップ
された記憶領域に相当する時であり、そして他の例は、
始動ノードにマップされたがメモリ・アドレスが不適当
なコヒーレンシィ状態を有することをMTAGが示す時
である。例えば、もしそのメモリ・キャッシュ・ライン
が他のSMPノードのバス・デバイスのキャッシュにリ
ードされて変更されたならば、コヒーレンシィ状態は不
適当であるかもしれない。その場合、トランザクション
は他のSMPノードによって、スヌープされなければな
らない。
【0071】複製モードでは、複製記憶領域が各SMP
ノード120中に置かれたメモリにマップされる。従っ
て、記憶領域の局部コピーは各SMPノード120にス
トアされる。従って、複製モードでは、トランザクショ
ンが始動SMPノード中で局部的に常に試行される。複
製アドレス領域のコピーが各SMPノード120中に置
かれれるので、トランザクションは第1回目はグローバ
ルには決して開始されない。もしMTAGが不適当なキ
ャッシュ・コヒーレンシィ状態に戻るなら、グローバル
なトランザクションは再発トランザクションとしてのみ
起きる。もし対応するキャッシュ・ラインのアドレスが
他のSMPノードの複製記憶領域中で変更されたなら、
不適当なキャッシュ・コヒーレンシィ状態が起こり得
る。複製モードは、記憶領域の大部分を共有するリード
から成る用途のために好都合に利用されて良い。そのよ
うな用途は、データ・ベースが複製記憶領域にストアさ
れ且つ通常、リード・トランザクションだけが行われる
大きなデータ・ベースへのアクセスを含み得る。
【0072】もし記憶領域が移行モードにあれば、トラ
ンザクションは常にグローバルに送られる。従って、M
TAGキャッシュ・コヒーレンシィ状態をメモリ中に維
持する必要はない。移行モードは、データ構造が種々の
SMPノード120間でしばしばアクセスされる局部性
の貧弱な用途において好都合に利用され得る。そのよう
な移行データ構造用途では、MTAGミスの可能性は、
もし正常モードが使用されたならば高い。従って、トラ
ンザクションを常にグローバルに開始することにより、
正常モードで必要とされた再発トランザクションは移行
モードでは避けれる。
【0073】一例では、一定のメモリ・アドレスが複製
モード、移行モード又は正常モードの領域のためかどう
かは、トランザクション・パケット中のビット・エンコ
ード化メッセージによって示され得る。一例では、この
ビット・エンコード化メッセージはMMUによって生じ
られた物理アドレスの最上位桁ビットで良い。動作中の
システムは、システム・メモリの種々の領域にモードを
割当てる責任を持ち、又いわゆるフリーリストでの自由
な物理メモリ・ページを追跡し続けることができる。複
製モードでのメモリの割当てを簡単化するため、動作中
のシステムは、全てのノード中で使用されないページに
対して専用のフリーリストを維持し得る。ページは複製
モードで使用されるべく利用可能であり、従って複製記
憶領域のコピーが各SMPノードにストアされ得るよう
になる。
【0074】他の例では、アドレス・モードは各バス・
デバイスのアドレス・コントローラ中でプログラマブル
であり得る。そのような例では、トランザクションがグ
ローバルであることを意図されるかどうかを示す各トラ
ンザクションのアドレス・パケット中にビット・エンコ
ード化信号が含まれ得る。
【0075】上述したように、グローバル・トランザク
ションとして定義されるメモリ・トランザクションは、
ポイントツウポイント接続で起動SMPノード120の
XMPインターフェイス128から他のSMPノードの
各々へブロードキャストされて、起動SMPノード12
0中のアドレス・リピータ34のリピータ待ち行列12
8中に置かれる。しかしながら或る種のトランザクショ
ンは、他のSMPノードの各々へグローバルにブロード
キャストされる必要がない。例えば、I/Oトランザク
ションは、アドレス付けられたI/Oバス・デバイスが
あるノードだけにポイントツウポイント接続でブロード
キャストされて良い。又、ライト・バック・トランザク
ションは、ライト・バックされるべき記憶領域があるノ
ードだけにグローバルにブロードキャストされて良い。
もし図7のSMPノード120Bにおけるバス・デバイ
ス38がSMPノード120Aに割当てられた記憶領域
に対応するメモリ・キャッシュ・ラインをリードしてそ
のキャッシュ・ラインを変更したなら、そのキャッシュ
・ラインが他のSMPノードによってアクセスされ得る
前に、キャッシュ・ラインをSMPノード120Aにラ
イト・バックすることが必要かもしれない。そのような
場合には、ライト・バック・トランザクションは、ポイ
ントツウポイント接続142上でのみ起きる必要があ
る。従って、ライト・バック及びI/Oトランザクショ
ンのため必要なポイントツウポイント接続だけが利用さ
れ、同一サイクル中他のI/O又はライト・バック・ト
ランザクションを行うのに他のポイントツウポイント接
続をフリーアップする。これはポイントツウポイント相
互接続の全帯域幅を利用可能にさせる。この発明の他の
実施形態では、他のタイプのトランザクションが又、全
てのSMPノード120へグローバルにブロードキャス
トする代わりに、個々のポイントツウポイント相互接続
を通してブロードキャストされる必要があることに注目
されたい。
【0076】図10は、上述したXMPコンピュータ・
システム130の動作を例示するタイミング図160で
ある。このタイミング160に示されたトランザクショ
ンは全てグローバルなトランザクションである。従っ
て、タイミング図160は移行モードに割当てられたア
ドレス領域へのメモリ・トランザクションを例示してい
る。
【0077】タイミング図の各列は特定のバス・サイク
ルに相当する。左から右へ時間が増えるバス・サイクル
は10の列で表わされる。図7及び図8も参照すれば、
トップレベルのリンク140,142,144の状態は
行161によるグループとして表わされる。ノード12
0AのL2バスの状態は行162で表わされる。同様
に、ノード120B,120Cでのバスの状態はそれぞ
れ行163,164で表わされる。行165−167は
各ノード120のバイパス/待ち行列制御信号の状態を
示す。
【0078】バス・サイクル1中、送り出されたパケッ
トは各ノード120のL2バス22にある。タイミング
図160では、送り出されたパケットは行162(L
2,1バス)にP1(o)として、行163(L2,2
バス)にP2(o)として且つ行164(L2,3バ
ス)にP3(o)として示されている。ノード120間
のトップレベル接続が単方向リンクであるので、3つの
送り出されたパケットは全てバス・サイクル2のための
行161に示されたように同一サイクル中各ノード12
0間で伝送される。又、バス・サイクル2中、新しいト
ランザクションは行162,163,164にそれぞれ
P4(o),P5(o),P6(o)で表わされたよう
に各ノード120のL2バス22にある。L2バス22
の全ての送出トランザクション・パケットは、トランザ
クションが開始したSMPノード中の各リピータ34内
のリピータ待ち行列122にて待たされることに注目す
るのが重要である。例えば、送出トランザクションはS
MPノード120から発し、従ってノード120中の各
リピータ34のリピータ待ち行列122にストアされ
る。
【0079】バス・サイクル3中、バス・サイクル2中
にトップレベルの接続で伝送されたトランザクションの
1つは、SMPノード120へブロードキャストされ
る。定められた順序によりどのトランザクションが最初
にブロードキャストされるかが決定される。単一の定め
られた順序化方法はバス・トランザクションが各ノード
に同一順序で現れることを確実にするために終始一貫し
て使用されなければならない。タイミング図160で例
示された例では、順序化方法は、ノード120Aからの
トランザクションがノード120Bからのトランザクシ
ョンに先行し、このノード120Bからのトランザクシ
ョンがノード120Cからのトランザクションに先行す
ることである。従って、バス・サイクル3中、トランザ
クションP1は行163,164にP1(i)で表わさ
れたようにノード120B,120CのL2バス22に
到着トランザクションとしてブロードキャストされる。
トランザクションP2及びP3はXMPインターフェイ
ス128中で待たされる。しかしながら、ノード120
AがトランザクションP1を出したノードなので、トラ
ンザクションP1はノード120AのL2バス22には
ブロードキャストされない。その代わり、バス・サイク
ル3中行165に示したように、制御信号126はノー
ド120A中でアサートされる。このように制御信号1
26がアサートされると、各リピータ34は、トランザ
クションP1をそれぞれのリピータ待ち行列122から
次のバス・サイクル中に到着パケットP1(i)として
ブロードキャストさせる。ノード120B及び120C
中の制御信号126は行166及び167に示されたよ
うにバス・サイクル3中アサートされないままであり、
これはこれらノード中のリピータ34に対してリピータ
待ち行列122の代わりにリピータ・バイパス・パス1
24を選択させ、もってP1(i)トランザクションを
次のバス・サイクル中にL1バス32にブロードキャス
トすることを指示する。従って、P1(i)は同一バス
・サイクル中全てのノード120中で全てのバス・デバ
イス38によって見られる。又、始動ノード120A中
のL2バス22は、バス・サイクル3中タイミング図1
60の行162にP7(o)で表わされたように、バス
・サイクル3中他の送出トランザクションの伝送に対し
てフリーのままである。又、バス・サイクル3中、バス
・サイクル2からのトランザクションP4(o),P5
(o),P6(o)は、タイミング図160に行161
で示されたようにトップレベルのポイントツウポイント
接続に同時にブロードキャストする。
【0080】バス・サイクル4中、定められた順序によ
り、トランザクションP2は、行162及び164にP
2(i)で表わされたように、ノード120A及び12
0CのL2バス22に到着トランザクションとしてブロ
ードキャストされる。トランザクションP3−P6はX
MPインターフェイス128中で並ばされる。しかしな
がら、ノード120BがトランザクションP2を発した
ノードであるので、トランザクションP2はノード12
0BのL2バス22にはブロードキャストされない。そ
の代わり、ノード120Bの制御信号126は、バス・
サイクル4中行166に示されたように、アサートされ
る。このように制御信号126がアサートされると、各
リピータ34はトランザクションP2を次のバス・サイ
クル中それぞれのリピータ待ち行列122から到着パケ
ットP2(i)としてブロードキャストする。ノード1
20A及び120C中の制御信号126は行165及び
167に示されたようにバス・サイクル4中アサートさ
れない。これは、これらノード中のリピータ34へ、リ
ピータ待ち行列122に代えてリピータ・バイパス・パ
ス124を選択してP2(i)トランザクションを次の
バス・サイクル中L1バス32にブロードキャストする
ことを指示する。従って、P2(i)は同一バス・サイ
クル中全てのノード120中で全てのバス・デバイス3
8によって見られる。又、始動ノード120B中のL2
バス22は、バス・サイクル4中タイミング図160中
の行163におけるP8(o)で表わされたように、バ
ス・サイクル4中他の送出トランザクションの伝送に対
してフリーのままである。又、バス・サイクル4中、バ
ス・サイクル3からの送出トランザクションP7(o)
は、タイミング図160の行161に示したようにトッ
プレベルのポイントツウポイント接続にブロードキャス
トする。
【0081】上述した動作は、バス・デバイスによって
発された全てのバス・トランザクションに適用できる。
各ノード120中のL1バス32でのトランザクション
がタイミング図160には示されていないことに注意さ
れたい。図4のタイミング図60によって例示された動
作は、各ノード120内のL2/L1バス動作に適用で
きる。タイミング図160から明らかなように、或るト
ランザクション・パケットは、L2バス22又はL1バ
ス32に1回、しかも1回だけ、送り出されたパケット
又は到着パケットとして現れる(両方は現れない)。従
って、全てのトランザクション・パケットは、図7のX
MPコンピュータ・システム130中の各バスに正確に
1回現れる。タイミング図160から又明らかなよう
に、この実施形態はL2バス22の全帯域幅を利用させ
る。又、タイミング図160は、同一バス・サイクル中
及び特定の各トランザクションがXMPコンピュータ・
システム130中の1つ置きのバス・デバイス38に現
れるのと同じ順序でXMPコンピュータ・システム13
0中の各バス・デバイス38が上記トランザクションを
見ることを例示する。
【0082】上記開示を十分に理解すれば、沢山の変形
例は当業者に明らかとなろう。特許請求の範囲はそのよ
うな変形例を全て包含すると解釈されたい。
【図面の簡単な説明】
【図1】 階層バス構造を用いる対称的マルチプロセッ
サ・コンピュータ・システムのブロック図である。
【図2】 図1のコンピュータ・システムの動作を例示
するタイミング図である。
【図3】 この発明の一実施形態に係る、階層バス構造
を用いる対称的マルチプロセッサ・コンピュータ・シス
テムのブロック図である。
【図4】 図3のコンピュータ・システムの動作を例示
するタイミング図である。
【図5】 この発明の一実施形態用のプロセツサ/メモ
リ・バス・デバイスのブロック図である。
【図6】 この発明の一実施形態に係るI/Oブリッジ
・バス・デバイスのブロック図である。
【図7】 この発明の他の実施形態に係る拡張対称的マ
ルチプロセッサ・コンピュータ・システムのブロック図
である。
【図8】 図7の拡張対称的マルチプロセッサ・コンピ
ュータ・システムのSMPノードを詳しく示すブロック
図である。
【図9】 この発明に用いられた異なるアドレッシング
・モードを示す図である。
【図10】 図7の拡張対称的マルチプロセッサ・コン
ピュータ・システムの動作を例示するタイミング図であ
る。
【符号の説明】
130…XMPコンピュータ・システム、120,12
0A−120C…SMPノード、128,128A−1
28C…XMPインターフェイス、22…高レベルのバ
ス、34,34A,34B…リピータ、122A,12
2B…到着待ち行列、124A,124B…バイパス・
パス、32A,32B…低レベルのバス、38A,38
C,38D…プロセツサ/メモリ・バス・デバイス、3
8B…I/Oバス・デバイス、140,142,144
…ポイントツウポイント接続である。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年10月14日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図5】
【図9】
【図4】
【図6】
【図7】
【図8】
【図10】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 マーク・ディ・ヒル アメリカ合衆国・94024・カリフォルニア 州・ロス アルトス・コヴィントン ロー ド・272

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサ・コンピュータ・シス
    テム中のノードであって、 そのノードからは出たのではない到着トランザクション
    を受け、かつそのノードを発信元とする送出トランザク
    ションを送信するトップレベルのインターフェイスと、 高レベルのバスと、 この高レベルのバスによって前記トップレベルのインタ
    ーフェイスに結合され、到着待ち行列及びバイパス・パ
    スを含む第1のリピータと、 を備え、 この第1のリピータは、前記トップレベルのインターフ
    ェイスから前記到着トランザクションを受け且つ前記バ
    イパス・パスを通して低レベルのバスへ前記到着トラン
    ザクションを送り、又前記高レベルのバスでの前記送出
    トランザクションを受信し且つ前記到着待ち行列を通し
    て低レベルのバスへその送出トランザクションを送信す
    る、 マルチプロセッサ・コンピュータ・システム中のノー
    ド。
  2. 【請求項2】 前記低レベルのバスに結合され、前記第
    1のリピータによって前記低レベルのバスに送信された
    トランザクションを受け、又前記送出トランザクション
    を開始させるように構成されたプロセッサ・デバイスを
    更に備えた請求項1記載のノード。
  3. 【請求項3】 前記高レベルのバスによって前記トップ
    レベルのインターフェイスに結合されると共に第2の低
    レベルのバスに結合され、第2の到着待ち行列及び第2
    のバイパス・パスを含む第2のリピータを更に備えた請
    求項1記載のノード。
  4. 【請求項4】 第1のマルチプロセッサ・ノードと、 この第1のマルチプロセッサ・ノードへ2つの単方向ト
    ランザクション・リンクによって結合された第2のマル
    チプロセッサ・ノードと、 を備え、 前記2つの単方向トランザクション・リンクは、前記第
    1のマルチプロセッサ・ノードから前記第2のマルチプ
    ロセッサ・ノードへトランザクションを送ると同時に、
    前記第2のマルチプロセッサ・ノードから前記第1のマ
    ルチプロセッサ・ノードへトランザクションを送るよう
    に構成されており、 前記第1のマルチプロセッサ・ノードは、 前記2つの単方向トランザクション・リンクに結合され
    た第1のトップレベルのインターフェイスと、 第1の高レベルのバスと、 この第1の高レベルのバスによって前記第1のトップレ
    ベルのインターフェイスへ結合され、トランザクション
    が前記第2のマルチプロセッサ・ノードから発した時に
    前記第1のリピータ中のバイパス・パスを通して前記第
    1の高レベルのバスから第1の低レベルのバスへ前記ト
    ランザクションをブロードキャストし、又トランザクシ
    ョンが前記第1のマルチプロセッサ・ノード中で発した
    時に到着待ち行列を通して、前記第1の低レベルのバス
    へ前記トランザクションをブロードキャストする第1の
    リピータと、を含むことを特徴とすマルチプロセッサ・
    コンピュータ・システム。
JP9190730A 1996-07-02 1997-07-02 マルチプロセッサ・コンピュータ・システム中のノード、及びマルチプロセッサ・コンピュータ・システム Pending JPH1097513A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/675363 1996-07-02
US08/675,363 US5754877A (en) 1996-07-02 1996-07-02 Extended symmetrical multiprocessor architecture

Publications (1)

Publication Number Publication Date
JPH1097513A true JPH1097513A (ja) 1998-04-14

Family

ID=24710146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9190730A Pending JPH1097513A (ja) 1996-07-02 1997-07-02 マルチプロセッサ・コンピュータ・システム中のノード、及びマルチプロセッサ・コンピュータ・システム

Country Status (4)

Country Link
US (1) US5754877A (ja)
EP (1) EP0817092B1 (ja)
JP (1) JPH1097513A (ja)
DE (1) DE69724355T2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295281B1 (en) * 1997-05-16 2001-09-25 3Com Corporation Symmetric flow control for ethernet full duplex buffered repeater
US6178529B1 (en) 1997-11-03 2001-01-23 Microsoft Corporation Method and system for resource monitoring of disparate resources in a server cluster
JPH11184806A (ja) * 1997-12-18 1999-07-09 Fujitsu Ltd バス制御装置
US6163855A (en) * 1998-04-17 2000-12-19 Microsoft Corporation Method and system for replicated and consistent modifications in a server cluster
US6360331B2 (en) 1998-04-17 2002-03-19 Microsoft Corporation Method and system for transparently failing over application configuration information in a server cluster
US6243825B1 (en) 1998-04-17 2001-06-05 Microsoft Corporation Method and system for transparently failing over a computer name in a server cluster
US6449734B1 (en) 1998-04-17 2002-09-10 Microsoft Corporation Method and system for discarding locally committed transactions to ensure consistency in a server cluster
JP4099561B2 (ja) * 1998-05-14 2008-06-11 ソニー株式会社 マルチプロセッサおよびそのバス調停方法
US6338122B1 (en) * 1998-12-15 2002-01-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
US6272602B1 (en) 1999-03-08 2001-08-07 Sun Microsystems, Inc. Multiprocessing system employing pending tags to maintain cache coherence
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6725307B1 (en) * 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6967950B2 (en) * 2000-08-11 2005-11-22 Texas Instruments Incorporated Pull transfers and transfer receipt confirmation in a datapipe routing bridge
US6826619B1 (en) 2000-08-21 2004-11-30 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6772298B2 (en) 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US6791412B2 (en) * 2000-12-28 2004-09-14 Intel Corporation Differential amplifier output stage
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US20020087766A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and apparatus to implement a locked-bus transaction
US20020087775A1 (en) * 2000-12-29 2002-07-04 Looi Lily P. Apparatus and method for interrupt delivery
US6721918B2 (en) 2000-12-29 2004-04-13 Intel Corporation Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect
US6877055B2 (en) 2001-03-19 2005-04-05 Sun Microsystems, Inc. Method and apparatus for efficiently broadcasting transactions between a first address repeater and a second address repeater
US6826643B2 (en) 2001-03-19 2004-11-30 Sun Microsystems, Inc. Method of synchronizing arbiters within a hierarchical computer system
US6735654B2 (en) 2001-03-19 2004-05-11 Sun Microsystems, Inc. Method and apparatus for efficiently broadcasting transactions between an address repeater and a client
US6889343B2 (en) 2001-03-19 2005-05-03 Sun Microsystems, Inc. Method and apparatus for verifying consistency between a first address repeater and a second address repeater
US6971098B2 (en) 2001-06-27 2005-11-29 Intel Corporation Method and apparatus for managing transaction requests in a multi-node architecture
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US6996785B1 (en) 2003-04-25 2006-02-07 Universal Network Machines, Inc . On-chip packet-based interconnections using repeaters/routers
US20070226456A1 (en) * 2006-03-21 2007-09-27 Mark Shaw System and method for employing multiple processors in a computer system
US20070286837A1 (en) * 2006-05-17 2007-12-13 Torgerson Peter M Hair care composition comprising an aminosilicone and a high viscosity silicone copolymer emulsion

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4240143A (en) * 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
GB2156554B (en) * 1984-03-10 1987-07-29 Rediffusion Simulation Ltd Processing system with shared data
EP0228559A1 (de) * 1985-12-17 1987-07-15 BBC Brown Boveri AG Fehlertolerante Mehrrechneranordnung
JPH07122864B2 (ja) * 1991-07-22 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム、データ処理システムに使用するインターフエース回路及びデータ・プロセツサ間の通信方法
US5442758A (en) * 1993-07-19 1995-08-15 Sequent Computer Systems, Inc. Apparatus and method for achieving reduced overhead mutual exclusion and maintaining coherency in a multiprocessor system utilizing execution history and thread monitoring
FR2708766B1 (fr) * 1993-08-03 1995-09-08 Bull Sa Procédé d'analyse d'interblocages dans un système d'exploitation.
US5533103A (en) * 1994-04-28 1996-07-02 Electronic Information Systems, Inc. Calling system and method
US5579512A (en) * 1994-12-30 1996-11-26 Compaq Computer Corporation Systempro emulation in a symmetric multiprocessing computer system
US5655103A (en) * 1995-02-13 1997-08-05 International Business Machines Corporation System and method for handling stale data in a multiprocessor system

Also Published As

Publication number Publication date
EP0817092B1 (en) 2003-08-27
DE69724355D1 (de) 2003-10-02
DE69724355T2 (de) 2004-06-24
EP0817092A3 (en) 1998-08-26
US5754877A (en) 1998-05-19
EP0817092A2 (en) 1998-01-07

Similar Documents

Publication Publication Date Title
JPH1097513A (ja) マルチプロセッサ・コンピュータ・システム中のノード、及びマルチプロセッサ・コンピュータ・システム
US5805839A (en) Efficient technique for implementing broadcasts on a system of hierarchical buses
US5796605A (en) Extended symmetrical multiprocessor address mapping
EP0817076B1 (en) A multiprocessing computer system employing local and global address spaces and multiple access modes
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
RU2220444C2 (ru) Компьютерная система и способ передачи данных в компьютерной системе
US5897657A (en) Multiprocessing system employing a coherency protocol including a reply count
US5950226A (en) Multiprocessing system employing a three-hop communication protocol
US5878268A (en) Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US5958019A (en) Multiprocessing system configured to perform synchronization operations
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
US5983326A (en) Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US6760786B2 (en) Multiprocessing system configured to perform efficient block copy operations
US5734922A (en) Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
EP0818733B1 (en) A multiprocessing system configured to perform software initiated prefetch operations
US5923847A (en) Split-SMP computer system configured to operate in a protected mode having repeater which inhibits transaction to local address partiton
US20020087614A1 (en) Programmable tuning for flow control and support for CPU hot plug
US20020004886A1 (en) Multiprocessing computer system employing a cluster protection mechanism
JP2005018772A (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
JP2000227908A (ja) 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
EP0817095B1 (en) Extended symmetrical multiprocessor architecture
JP3531368B2 (ja) コンピュータシステム及びバス間制御回路
JPH10187646A (ja) スプリット smp コンピュータ・システム
US20020133657A1 (en) Method and apparatus for efficiently broadcasting transactions between a first address repeater and a second address repeater