JPH10187631A - 拡張された対称マルチプロセッサ・アーキテクチャ - Google Patents

拡張された対称マルチプロセッサ・アーキテクチャ

Info

Publication number
JPH10187631A
JPH10187631A JP9211430A JP21143097A JPH10187631A JP H10187631 A JPH10187631 A JP H10187631A JP 9211430 A JP9211430 A JP 9211430A JP 21143097 A JP21143097 A JP 21143097A JP H10187631 A JPH10187631 A JP H10187631A
Authority
JP
Japan
Prior art keywords
bus
transaction
node
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
JP9211430A
Other languages
English (en)
Inventor
Erik E Hagersten
エリック・イー・ハガーステン
Mark D Hill
マーク・ディ・ヒル
Ashok Singhal
アショク・シンガル
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
Priority claimed from US08/675,361 external-priority patent/US5796605A/en
Priority claimed from US08/675,363 external-priority patent/US5754877A/en
Priority claimed from US08/675,362 external-priority patent/US5805839A/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10187631A publication Critical patent/JPH10187631A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

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

Abstract

(57)【要約】 【課題】 単一バス・アーキテクチャの物理/電気制限
を解消し、同時にバス帯域幅使用度を最大にする拡張マ
ルチプロセッサ(XMP)コンピュータ・システム用の
アーキテクチャおよびメモリ・マッピング技法を提供す
る。 【解決手段】 複数のバス階層構造の下位のバスにバス
装置が接続され、それらの装置間で通信が行われると
き、ある装置がトランザクションを下位バスに発行した
ときに、同じ下位バスに接続されたバス装置にはそのト
ランザクションを直接送って待ち行列に待機させ、その
他のバス装置には上位バスを通してそのトランザクショ
ンを送る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サ・コンピュータ・システムに関し、詳細には、マルチ
プロセッサ・コンピュータ・システム内の複数のプロセ
ッサの体系的接続に関する。
【0002】
【従来の技術】多重処理コンピュータ・システムは、コ
ンピューティング・タスクを実行するために使用できる
2つ以上のプロセッサを含む。1つのプロセッサ上で特
定のコンピューティング・タスクを実行し、その間に他
のプロセッサがそれとは無関係のコンピューティング・
タスクを実行することができる。別法として、特定のコ
ンピューティング・タスクの構成要素を複数のプロセッ
サ間で分散し、コンピューティング・タスク全体を実行
するのに必要な時間を短縮することができる。一般的に
言えば、プロセッサとは、1つまたは複数のオペランド
に対する演算を実行して結果を得るように構成された装
置である。
【0003】市販の多重処理コンピュータ・システムで
広く使用されているアーキテクチャは対称型マルチプロ
セッサ(SMP)アーキテクチャである。通常、SMP
コンピュータ・システムは、キャッシュ階層を通じて共
用バスに接続された複数のプロセッサを備える。バスに
は、システム内のプロセッサ間で共用されるメモリも接
続される。メモリ内の特定のメモリ位置へのアクセス
は、他の特定のメモリ位置へのアクセスと同様な時間で
行われる。メモリ内の各位置に一様にアクセスできるの
で、この構造は一様メモリ・アーキテクチャ(UMA)
と呼ばれることが多い。
【0004】プロセッサは、内部キャッシュと、通常、
SMPコンピュータ・システム内のプロセッサと共用バ
スとの間のキャッシュ階層に含まれる1つまたは複数の
キャッシュと共に構成されることが多い。特定のメイン
・メモリに存在するデータの複数のコピーをこれらのキ
ャッシュに記憶することができる。共用バス・コンピュ
ータ・システムは、特定のアドレスが所与の時間に1つ
のデータ値のみを記憶する共用メモリ・モデルを維持す
るために、キャッシュ・コヒーレンシを使用する。一般
的に言えば、演算は、特定のメモリ・アドレスに記憶さ
れているデータに対するその演算の効果がキャッシュ階
層内のデータの各コピーに反映される場合にはコヒーレ
ントである。たとえば、特定のメモリ・アドレスに記憶
されているデータが更新されると、前のデータのコピー
を記憶しているキャッシュにこの更新を供給することが
できる。別法として、特定のメモリ・アドレスへのその
後のアクセスによって、更新済みのコピーがメイン・メ
モリへ転送されるように、キャッシュ内の前のデータの
コピーを無効化することができる。共用バス・システム
では通常、スヌープ・バス・プロトコルが使用される。
共用バス上で実行される各コヒーレント・トランザクシ
ョンは、キャッシュ内のデータと突き合わせて調べられ
る(あるいは「スヌープされる」)。影響を受けるデー
タのコピーが見つかった場合、コヒーレント・トランザ
クションに応答して、そのデータを含むキャッシュ・ラ
インの状態を更新することができる。
【0005】残念なことに、共用バス・アーキテクチャ
は、多重処理コンピュータ・システムの有用性を制限す
るいくつかの欠点を有する。バスはピーク帯域幅(たと
えば、バスを介して転送できるバイト数/秒)を有す
る。バスに追加プロセッサを接続すると、データおよび
命令をプロセッサに供給するのに必要な帯域幅がピーク
・バス帯域幅を超える恐れがある。いくつかのプロセッ
サが使用可能なバス帯域幅を待つことを強制されるの
で、プロセッサの帯域幅要件が使用可能なバス帯域幅を
超えるとコンピュータ・システムの性能は影響を受け
る。
【0006】また、共用バスにプロセッサを追加する
と、バス上の容量負荷が増大し、場合によってはバスの
物理的な長さが増加する。容量負荷が増大しバス長が長
くなると、信号がバスを介して伝搬する際の遅延が長く
なる。伝搬遅延が長くなるために、トランザクションの
実行時間が長くなる可能性がある。したがって、プロセ
ッサを追加するとバスのピーク帯域幅が減少する恐れが
ある。
【0007】これらの問題は、プロセッサの動作周波数
および性能が引き続き向上していることによってさらに
深刻になる。周波数が高くなりプロセッサ・マイクロア
ーキテクチャがより高度になることによって性能が向上
すると、プロセッサの数が同じである場合でも、帯域幅
要件は前のプロセッサ世代よりも高くなる。したがっ
て、以前、多重処理コンピュータ・システムに十分な帯
域幅を与えていたバスが、より高性能のプロセッサを使
用する同様なコンピュータ・システムには不十分なもの
となる恐れがある。
【0008】共用バス・システムにプロセッサおよび装
置を追加する際に発生する問題に対処するための一般的
な方法は、バス階層を有することである。階層共用バス
・システムでは、いくつかの低レベル・バス間でプロセ
ッサおよびその他のバス装置が分割される。これらの低
レベル・バスは、1つまたは複数の高レベル・バスによ
って接続される。トランザクションは、低レベル・バス
上で発信され、高レベル・バスへ送信され、次いでリピ
ータによってすべての低レベル・バスへ送り返される。
したがって、すべてのバス装置が同時にトランザクショ
ンを見て、かつトランザクションは順序付けられたまま
である。論理的には、階層共用バスはすべての装置から
1つの大型共用バスとみなされる。また、階層構造は単
一の大型共用バスの電気的制約の影響を受けない。
【0009】しかし、上記の階層共用バス構造に関する
1つの問題は、トランザクションが常に、発信側低レベ
ル・バス上で2度ブロードキャストされることである。
この非効率のために、低レベル・バス上の使用可能な帯
域幅が著しく制限される恐れがある。可能な解決策は、
バス階層の上位へ上昇する方向のトランザクションと、
バス階層の上位から下降する方向のトランザクションに
関して別々の一方向バスを有することである。しかし、
この解決策では2倍の量のバス信号およびバス装置パッ
ケージ上の2倍の量のピンが必要である。この解決策で
は深刻な物理的問題が課されることは自明である。
【0010】従来型の階層バス構造を使用するSMPコ
ンピュータ・システムの例を図1に示す。2レベル・バ
ス構造を示す。バス装置8AないしBは低レベルL1.
1バス4Aに接続され、バス装置8CないしDは低レベ
ルL1.2バス4Bに接続される。バス装置は、プロセ
ッサ/メモリ装置や入出力ブリッジ装置など現代のコン
ピュータ・システムで使用されているローカル・バス型
装置でよい。別々のL1バス4AないしBはそれぞれ、
リピータ6AないしBによって上位L2バス2に結合さ
れる。各リピータ、L1バス、バス装置は、リピータ・
ノード5を形成する。たとえば、リピータ6A、L1バ
ス4A、バス装置8A−Bはリピータ・ノード5Aを構
成する。
【0011】バス・トランザクション(メモリ読取りな
ど)がバス装置によって開始されると、そのトランザク
ションは発信側L1バス(4Aまたは4B)からL2バ
ス2へ送信される。トランザクションは次いで、それぞ
れのリピータ6AないしBによって再び両方のL1バス
4AないしBへ同時にブロードキャストされる。このよ
うに、トランザクションは、すべてのバス装置8から同
時に見られる。さらに、図1の階層構造では、バス・ト
ランザクションがすべてのバス装置8から同じ順序に見
える。したがって、論理的には、階層バス構造はバス装
置8AないしDからは単一の共用バスとみなされる。
【0012】図1のコンピュータ・システムの動作を、
図2に示したタイミング12に示す。タイミング12の
各列は、特定のバス・サイクルに対応する。時間的に左
から右へ増加する11個のバス・サイクルが11個の列
で表されている。L2バス2、L1.1バス4A、L
1.2バス4Bの状態はそれぞれ、行14ないし16に
よって各バス・サイクルごとに示されている。
【0013】バス・サイクル1中に、発信パケット(ア
ドレスおよびコマンド)が、各リピータ・ノード5内の
L1バス4上の1つのバス装置8によってドライブされ
る。タイミング12で、このような発信パケットは、L
1.1バス4A上のP1(o)およびL1.2バス4B
上のP2(o)として示されている。2つの異なるバス
・トランザクションが同じサイクル中に発行されたの
で、それらのバス・トランザクションがL2バス2上に
現れる順序は、選択された調停方式に依存する。タイミ
ング12に示した実施形態では、L1.1バス4A上に
発行されたトランザクションはまず、バス・サイクル2
のL2バス上のP1で表したようにL2バス2へ送信さ
れる。トランザクションP2(o)は、それぞれのリピ
ータ6Bで待機する。また、バス・サイクル2中に、そ
れぞれ、L1.1バス4AおよびL1.2バス4B上の
発信バス・トランザクションP3(o)およびP4
(o)で表された2つの新しいトランザクションが下位
バス4上で発行される。
【0014】バス・サイクル3に、行15および16上
のP1(i)で表されたトランザクションP1が、両方
のリピータ・ノード5のL1バス4上の着信トランザク
ションとしてブロードキャストされる。また、バス・サ
イクル3中に、タイミング12上の行14に示したよう
に、バス・サイクル1からの第2の発信トランザクショ
ンP2(o)がL2バス2上でブロードキャストされ
る。
【0015】バス・サイクル4中に、行15および16
上のP2(i)で表したように、トランザクションP2
がL1バス4上で着信トランザクションとしてブロード
キャストされる。また、バス・サイクル4中に、タイミ
ング12上の行14に示したように、発信トランザクシ
ョンP3(o)がL2バス2上でブロードキャストされ
る。同様に、バス・サイクル5および6中にバス・トラ
ンザクションP3およびP4がL1バスへブロードキャ
ストされる。着信トランザクションのリピータ・ブロー
ドキャストによってL1バス帯域幅が消費されるので、
新しい発信トランザクションはバス・サイクル7まで発
行できない。その結果、バス・サイクル6および7中の
行14上のギャップで示したように、L2バス2の全帯
域幅が使用されなくなる。
【0016】多数のプロセッサを必要とするシステムで
は、上記の階層バス構造は多数の階層レベルを必要とす
る可能性がある。各トランザクションを階層の頂部へブ
ロードキャストし下降させることに関連する遅延と、バ
ス調停に関連する遅延は、大規模な階層構造のスループ
ットを著しく制限する恐れがある。
【0017】多重処理コンピュータ・システム用の他の
構造は分散共用メモリ・アーキテクチャである。分散共
用メモリ・アーキテクチャは、プロセッサおよびメモリ
が存在する複数のノードを含む。この複数のノードは、
それらの間に結合されたネットワークを介して通信す
る。全体的に考えれば、複数のノード内に含まれるメモ
リはコンピュータ・システム用の共用メモリを形成す
る。通常、ディレクトリを使用して、特定のアドレスに
対応するデータのキャッシュ・コピーをどのノードが有
するかが識別される。コヒーレンシ活動は、ディレクト
リの検査を介して生成することができる。
【0018】しかし、分散共用メモリ・アーキテクチャ
も欠点を有する。ディレクトリ参照、アドレス変換、コ
ヒーレンシ維持はすべて、ノード間のトランザクション
に待ち行列時間を付加する。また、分散共用メモリ・ア
ーキテクチャ・システムは通常、共用バス・アーキテク
チャよりも複雑なハードウェアを必要とする。
【0019】
【発明が解決しようとする課題】上記の議論から、マル
チプロセッサ・システム内で多数の装置を接続するため
のより効率的なアーキテクチャが望ましいことは明らか
である。本発明はこの要件に対処するものである。
【0020】
【課題を解決するための手段】上記で概略的に述べた問
題は主として、本発明によるコンピュータ・システムに
よって解決される。概して、本発明は、上位バスによっ
て相互接続された複数のリピータ・ノードを含むマルチ
プロセッサ・コンピュータ・システムを企図するもので
ある。各リピータ・ノードは、複数のバス装置と、下位
バスと、アドレス・リピータとを含む。バス装置は、下
位バス上で相互接続される。リピータは上位バスを下位
バスに結合する。バス装置はプロセッサ/メモリ装置で
よく、各バス装置は着信待ち行列を含む。プロセッサ/
メモリ・バス装置は、SPARCプロセッサなどの高性
能プロセッサと、DRAMメモリと、高速第2レベル・
キャッシュ・メモリとを含む。各バス装置上に配置され
た物理DRAMメモリは集合的に、マルチプロセッサ・
コンピュータ・システム用のシステム・メモリを構成す
る。また、バス装置は入出力バス装置でもよい。入出力
装置は着信待ち行列も含む。さらに、入出力バス装置
は、PCIバスなどの周辺入出力バスをサポートする入
出力バス・ブリッジを含むことができる。この周辺入出
力バスによって、グラフィックス・コントローラ、シリ
アル・ポートおよびパラレル・ポート、ディスク・ドラ
イブなどの入出力装置と通信することができる。
【0021】バス装置は、バス・トランザクションを送
受信することによって互いに通信する。1つのバス装置
によって開始されたバス・トランザクションは、開始側
バス装置が取り付けられた下位バス上の発信トランザク
ションとしてブロードキャストされる。同じ下位バスに
取り付けられた他の各バス装置は、この発信トランザク
ションをそれぞれの着信待ち行列に記憶する。また、こ
の下位バスに取り付けられたリピータも、発信トランザ
クションを上位バスへブロードキャストする。他の各リ
ピータ・ノード内のリピータは、この発信トランザクシ
ョンを受信し、それぞれの下位バス上の着信トランザク
ションとして反復する。発信側リピータ・ノード内のリ
ピータが、発信バス・トランザクションを下位バス上の
着信バス・トランザクションとして反復することはな
い。その代わり、他のリピータが発信トランザクション
をそれぞれの下位バス上の着信トランザクションとして
ドライブする際、発信側リピータ・ノード内のリピータ
は、発信側リピータ・ノード内の各バス装置に、着信待
ち行列の先頭に記憶されているパケットを現着信トラン
ザクションとみなすように通知する制御信号をアサート
する。非発信側リピータ・ノード内のリピータは、それ
ぞれの下位バス上のバス装置が着信待ち行列をバイパス
して下位バス上でブロードキャストされた着信トランザ
クションを受信すべきであることを示す制御信号をそれ
らのバス装置にアサートする。発信側リピータ・ノード
内の着信バス装置待ち行列に発信トランザクションを記
憶すると、非発信側リピータ・ノード内の下位バス上で
第1のトランザクションがブロードキャストされている
間、発信側リピータ・ノード内の下位バスが解放され他
の発信トランザクションがブロードキャストされる。し
たがって、下位バス帯域幅の使用度が最大になる。
【0022】一般的に言えば、所与の下位バス上のあら
ゆるバス装置は、その下位バス上に現れたすべての発信
トランザクションを着信待ち行列内に記憶する。発信ト
ランザクションは、リピータによって、それらのトラン
ザクションが下位バスに現れるのと同じ順序で上位バス
へブロードキャストされる。各リピータ・ノードごとの
リピータは、上位バス上に現れたトランザクションが他
のリピータ・ノードからの着信トランザクションである
ときにのみ、そのトランザクションを下位バス上の着信
パケットとしてドライブする。このように、コンピュー
タ・システム内のすべてのバス装置は、特定の各トラン
ザクションを同じ時間に同じ順序で見る。また、各バス
・トランザクションは各バス上に1度しか現れない。し
たがって、本発明の階層バス構造は、すべてのバス装置
およびマルチプロセッサ・コンピュータ・システムか
ら、論理的に共用される単一の大型バスとみなされる。
【0023】本発明の他の実施態様は、拡張マイクロプ
ロセッサ・コンピュータ・アーキテクチャを企図するも
のである。一方向ポイントツーポイント・リンク接続を
用いていくつかのマルチプロセッサ・ノードが相互接続
される。各マルチプロセッサ・リンク・ノードは、この
ようなポイントツーポイント・リンク接続とのインタフ
ェースをとる最上位インタフェース装置を含む。各ノー
ドは、最上位インタフェースを1つまたは複数のリピー
タに結合する上位バスも含む。各リピータは、上記の実
施態様に関して説明したのと同様に別々の下位バスにも
結合される。各下位バスに1つまたは複数の装置が取り
付けられる。
【0024】所与のマルチプロセッサ・ノード内の各リ
ピータは、内部待ち行列とバイパス経路とを含む。各リ
ピータはまた、最上位インタフェースから制御信号を受
信する。この制御信号を使用して、トランザクションを
上位バスから下位バスへ送信するためにバイパス経路と
待ち行列のどちらかが選択される。所与のリピータ・ノ
ード内で発信されたトランザクションは待ち行列に記憶
され、それに対して他のマルチプロセッサ・ノードから
着信したトランザクションは、バイパス経路を介して下
位バスへ送信される。マルチプロセッサ・ノードの最上
位インタフェース間のポイントツーポイント・リンキン
グ構造によって、各マルチプロセッサ・ノード間で同時
にトランザクションを伝達することができる。したがっ
て、このような最上位通信には調停遅延が伴わない。厳
密な定義済みトランザクション順序に従うことによって
この最上位インタフェース上でトランザクションの順序
付けが維持される。任意の順序を選択することができる
が、一貫して特定の定義済み順序を使用しなければなら
ない。たとえば、そのような1つの順序付けは、ノード
A、ノードB、ノードCの3つのノードを備えるシステ
ムにおいて、ノードAから発信されたトランザクション
が、ノードBから発信されたトランザクションよりも優
先され、ノードBから発信されたトランザクションが、
ノードCから発信されたトランザクションよりも優先さ
れるものでよい。この定義済み順序は、最上位ポイント
ツーポイント・リンク構造上で伝達されるトランザクシ
ョンが各マルチプロセッサ・ノード内のリピータへ送信
される順序を示す。非発信側リピータ・ノードの上位バ
ス上でブロードキャストされたトランザクションはさら
に、バイパス経路によってそのようなノード内の下位バ
スへ送信される。しかし、同じトランザクションが、発
信側リピータ・ノード内の上位バスへブロードキャスト
されることはない。その代わり、そのトランザクション
をリピータ待ち行列から下位バスへブロードキャストす
ることを示す制御信号がリピータに対してアサートされ
る。これによって、発信側ノード内の上位バスが新しい
トランザクションをブロードキャストすることは不要に
なる。
【0025】上記で拡張マルチプロセッサ・コンピュー
タ・システムに関して説明した動作から、マルチプロセ
ッサ・ノード間でブロードキャストされたバス・トラン
ザクションが、各マルチプロセッサ・ノードの各上位バ
スおよび下位バス上に1度しか現れないことが分かる。
これによって、最大バス帯域幅を使用することができ
る。さらに、最上位ポイントツーポイント接続に関する
厳密な定義済み順序付けによって、常に順序付きトラン
ザクション・ブロードキャストが行われ、システム内の
各バス装置は、各トランザクションを同じ時間に同じ順
序で見る。
【0026】各バス装置は、メモリを含むことができ
る。各バス装置上に配置されたメモリは集合的に、拡張
マルチプロセッサ・コンピュータ・システム用のシステ
ム・メモリを形成する。メモリは、各マルチプロセッサ
・ノードが総アドレス空間の一部を割り当てられるよう
に、いくつかの異なる領域に分割される。各アドレス空
間部分のサイズは、拡張マルチプロセッサ・コンピュー
タ・システムを構成するマルチプロセッサ・ノードの数
に反比例する。たとえば、3つのノードがある場合、各
ノードにはアドレス空間の3分の1が割り当てられる。
【0027】各ノード間のメモリ・コヒーレンシを維持
するために、システム・メモリ内の各キャッシュ・ライ
ンにそのノードのコヒーレンシ状態タグが付加される。
このようなコヒーレンシ状態タグをMTAGと呼ぶ。特
定のノード内のバス装置がトランザクションを開始する
と、そのノード内のMTAGが調べられ、そのノードが
そのトランザクション・アドレスに関する有効なアクセ
ス権を有するかどうかが判定される。検索されたMTA
Gが妥当なアクセス権を示している場合、完了されるト
ランザクションは有効である。そうでない場合、そのト
ランザクションは他のノードにグローバルに再発行しな
ければならない。
【0028】本発明の拡張マルチプロセッサ・コンピュ
ータ・システムの他の実施形態では、システム・メモリ
・アドレス空間のそれぞれ異なる領域を、3つのモード
のうちの1つで動作するように割り当てることができ
る。この3つのモードとは、複写モード、移行モード、
通常モードである。通常モードで動作するメモリ領域の
場合、グローバル・トランザクションを送信せずに、す
べてのメモリ・トランザクションが発信側マルチプロセ
ッサ・ノード内で試みられる。トランザクションがグロ
ーバルに送信されるのは、MTAGが不適切なアクセス
権を示し、あるいはアドレスが、他のマルチプロセッサ
・ノードにマップされているメモリ領域に対応するもの
である場合だけである。
【0029】複写モードでは、各マルチプロセッサ・ノ
ードに配置されたメモリに複写メモリ領域がマップさ
れ、それによってメモリ領域の複製コピーが各ノードに
記憶される。したがって、複写モード・トランザクショ
ンは常に、発信側マルチプロセッサ・ノード内でローカ
ルに試みられる。複写モードでトランザクションがグロ
ーバルに送信されるのは、MTAGが不適切なアクセス
権を示している場合だけです。移行モードでは、トラン
ザクションは常に最初にグローバルに送信される。した
がって、MTAGコヒーレンシ状態を維持する必要はな
い。
【0030】本発明の他の目的および利点は、下記の詳
細な説明を読み、添付の図面を参照したときに明らかに
なろう。
【0031】
【発明の実施の形態】本発明では様々な修正形態および
代替形態が可能であるが、その特定の実施形態を一例と
して図面に示し、本明細書で詳しく説明する。図面およ
びその詳細な説明が、本発明を、開示した特定の形態に
制限するものではなく、逆に、本発明が、添付の特許請
求の範囲によって定義された本発明の趣旨および範囲内
のすべての修正形態、等価形態、代替形態をカバーする
ものであることを理解されたい。
【0032】次に図3を参照すると、多重処理コンピュ
ータ・システム20の一実施形態のブロック図が示され
ている。コンピュータ・システム20は、上位バス(L
2)バス22によって相互接続された複数のリピータ・
ノード30Aないし30Bを含む。本明細書で特定の参
照符号とその後に続く文字を用いて参照される要素は集
合的に、その参照符号のみによって参照される。たとえ
ば、リピータ・ノード30Aないし30Bは集合的に、
装置ノード30と呼ばれる。図3には2つのリピータ・
ノード30しか示されていないが、任意の数のリピータ
・ノード30を相互接続することができ、L2バス22
の物理/電気制約によってのみ制限される。図の実施形
態では、各リピータ・ノード30は、複数のバス装置3
8と、下位装置バス32と、リピータ34とを含む。た
とえば、リピータ・ノード30Aは複数のバス装置38
AないしBを含むように構成される。バス装置38Aな
いしBは下位バス(L1バス)32A上で相互接続され
る。L1バス32Aはリピータ34Aを通じてL2バス
22とのインタフェースをとる。
【0033】バス装置38Aは、プロセッサ/メモリ装
置であり、プロセッサ/メモリ要素48Aだけでなく、
着信待ち行列40Aとマルチプレクサ42Aも含む。プ
ロセッサ/メモリ要素は、高性能プロセッサと、DRA
Mメモリと、高速キャッシュ・メモリとを含むことがで
きる。各バス装置38上に配置された物理DRAMメモ
リは集合的に、図3のコンピュータ・システム20用の
システム・メモリを構成する。
【0034】バス装置38Bは入出力(I/O)バス装
置である。入出力バス装置38Bは、プロセッサ/メモ
リ装置38Aと同様に、入出力要素50だけでなく、着
信待ち行列40Bとマルチプレクサ42Bも含む。入出
力要素50は、周辺構成要素相互接続(PCI)バスな
どの周辺バスとのバス・ブリッジを含むことができる。
PCIバスを使用して、グラフィックス・インタフェー
スや、シリアル・ポートおよびパラレル・ポートや、デ
ィスク・ドライブや、モデムや、プリンタなどの周辺装
置とのインタフェースをとることができる。
【0035】図3の実施形態では各リピータ・ノード3
0に2つのバス装置38しか示されていないが、バス装
置38の数は、所望の構成に応じてこれより多くても、
あるいは少なくてもよい。プロセッサ/メモリ装置と入
出力装置の混合物が存在することもできる。リピータ・
ノード30内で許容されるバス装置の最大数は、各L1
バス32の物理/電気制約によって制限される。さら
に、2つの階層バス・レベルしか図示していないが、必
要に応じてより大きな数の階層バス・レベルを使用する
ように、本明細書で説明する実施形態を拡張することが
できる。
【0036】一般的に言えば、バス装置38は、バス・
トランザクションを送受信することによって互いに通信
する。バス・トランザクションは、メモリ動作と入出力
動作のどちらかを実行することができる。一般に、メモ
リ動作とは、データを送信元から宛先へ転送させる動作
である。送信元または宛先、あるいはその両方は、開始
側内の記憶位置でも、あるいはシステム・メモリ内の記
憶位置でもよい。送信元または宛先がシステム・メモリ
内の記憶位置であるとき、送信元または宛先は、メモリ
動作と共に搬送されるアドレスを介して指定される。メ
モリ動作は読取り動作でも、あるいは書込み動作でもよ
い。読取り動作では、データが開始側の外部の送信元か
ら開始側内の宛先へ転送される。逆に、書込み動作で
は、データが開始側内の送信元から開始側の外部の宛先
へ転送される。図3に示したコンピュータ・システム2
0では、メモリ動作は、L1バス32およびL2バス2
2上の1つまたは複数のトランザクションを含むことが
できる。バス・トランザクションは、アドレスと、コマ
ンドと、送信元IDとを備えるビット・コード化パケッ
トとしてブロードキャストされる。アドレス指定モード
やマスク情報など他の情報を各パケット内にコード化す
ることもできる。
【0037】一般的に言えば、入出力動作は、宛先が入
出力バス装置であることを除いてメモリ動作に類似して
いる。入出力装置は、シリアル・ポートやフロッピー・
ディスク・ドライブなどの周辺装置と通信するために使
用される。たとえば、入出力読取り動作では、データを
入出力要素50からプロセッサ/メモリ・バス装置38
D内のプロセッサへ転送することができる。同様に、入
出力書込み動作では、データをバス装置38D内のプロ
セッサからバス装置38B内の入出力要素50へ転送す
ることができる。図3に示したコンピュータ・システム
20で、入出力動作は、L1バス32およびL2バス2
2上の1つまたは複数のトランザクションを含むことが
できる。
【0038】図3のコンピュータ・システム20のアー
キテクチャは、通常のバス・トランザクションのフロー
を追跡することによってより良く理解することができ
る。たとえば、バス装置38Aのプロセッサ/メモリ要
素48によって開始されたバス・トランザクションは、
発信相互接続経路44A上に発行される。このトランザ
クションは、L1.1バス32A上の発信パケットP1
(o)とみなされる。開始側バス装置(この例では38
A)を含め、L1.1バス32Aに接続された各バス装
置は、着信待ち行列40に発信パケットP1(o)を記
憶する。また、リピータ34Aは、パケットP1(o)
をL2バス22上にブロードキャストし、パケットP1
(o)はこのバス上にパケットP1として現れる。各非
発信側リピータ・ノード30内のリピータは、パケット
P1を受信し、それぞれのL1バス32上で着信パケッ
トP1(i)としてドライブする。図3に示した実施形
態には2つのリピータ・ノード30しか示されていない
ので、上記の例では、リピータ34BはパケットP1を
L2バス22上で受信し、L1.2バス32B上の着信
パケットP1(i)としてドライブする。パケットP1
が発信パケットP1(o)として送り出した装置ノード
30Aのリピータ34Aは、パケットP1を着信パケッ
トとしてL1.1バス32Aに戻さないことに留意され
たい。その代わり、リピータ34Bなど他のリピータが
それぞれのL1バス上にパケットP1をドライブすると
きに、リピータ34Aでは着信信号36Aをアサートす
る。着信信号36Aは、発信側ノード内の各バス装置
に、着信側待ち行列40に記憶されているパケットを現
着信パケットとみなすよう通知する。非発信側ノード3
0B内のリピータ34Bは、着信信号36Bをアサート
しない。したがって、装置38Cおよび38Dは、着信
待ち行列40をバイパスし、L1.2バス32Bから着
信パケットP1(i)を受信する。マルチプレクサ42
は、着信信号に応答して、各装置がL1バス32上のパ
ケットと着信待ち行列40の先頭にあるパケットのどち
らかを現トランザクション・パケットと判断する。
【0039】上記の例では、発信側ノード30A内のす
べてのバス装置38AないしBの着信待ち行列40Aな
いしBに発信パケットP1(o)を記憶すると、第1の
パケットが、他の非発信側リピータ・ノード(30B)
のL1バス32上でブロードキャストされ発信側ノード
32A内の着信待ち行列40AないしBから与えられる
間、L1.1バス32Aが解放され他の発信パケットが
ブロードキャストされる。したがって、所与のバス上に
同じバス・トランザクションが複数回にわたって現れる
ことはなく、そのため、バス帯域幅の使用度が最大にな
る。
【0040】一般的に言えば、所与のL1バス32上の
あらゆる装置は、そのバス上に現れたすべての発信トラ
ンザクション・パケットを装置の着信待ち行列40に記
憶する。そのリピータ・ノードのリピータ34は、発信
トランザクション・パケットが発信側L1バス32上に
現れるのと同じ順序ですべての発信トランザクション・
パケットをL2バス22へブロードキャストする。各リ
ピータ・ノード30ごとのリピータは、L2パケットが
そのリピータ・ノードから発信されたものではない場合
にのみ、L2パケットを着信パケットとしてリピータの
L1バス32上にドライブする。L2パケットが特定の
リピータ・ノード(発信側ノード)から発信されたもの
である場合、そのノードは、他のリピータがそのパケッ
トを着信パケットとしてドライブするバス・サイクル中
にそのパケットを再ドライブするのではなく着信信号3
6をアサートする。したがって、コンピュータ・システ
ム内のすべてのバス装置38が同じときにこのトランザ
クションを見る。発信側ノード内の装置38は、その着
信待ち行列40からのパケットを見て、非発信側ノード
内の装置38は、それぞれのバイパス経路46を介して
装置のL1バス32上のパケットを見る。発信側ノード
内のバス装置38がそれぞれの着信待ち行列40を使用
してパケットを見るので、発信側ノード内のL1バス3
2は自由に他の発信パケットをブロードキャストするこ
とができる。このように、L2バス22の全帯域幅を使
用することができる。
【0041】すべての発信トランザクション・パケット
が、発行されたときと同じ順序でブロードキャストされ
(装置間の調停を行えるようにする)、同じバス・サイ
クル中にすべての装置に現れるので、L1バス32、リ
ピータ34、L2バス22の階層バス構造は、バス装置
38への論理的に共用される単一の大型バスに見える。
しかし、図3の階層構造では、物理的に共用される単一
のバス上で共用されるよりも多くの多数のバス装置38
をサポートすることができる。一実施形態では、各プロ
セッサ/メモリ・バス装置上に物理的に配置されたメモ
リは集合的に、システム・メモリを形成する単一の論理
メモリに見える。システム・メモリは一般に、すべての
バス装置38からアクセスすることができる。
【0042】同時バス要求を処理するために各バス装置
38およびリピータ34内に調停ロジックが含まれる。
一実施形態では、それぞれの各ノード30上のリピータ
34およびバス装置38が、そのノード内のそれらのL
1バス34に関する調停を行う。また、各リピータ34
は、L2バス22へのアクセスに関する調停も行う。未
処理のL1トランザクション・パケットを各バス装置3
8内の発信待ち行列内で待機させることができる。同様
に、未処理のL2パケットおよび未処理の着信L1パケ
ットを各リピータ34内で待機させることができる。ラ
ウンドロビン方式や各バス・レベルごとの優先順位ベー
スの方式など、様々な調停方式を使用することができ
る。
【0043】次に、依然として図3を参照しながら図4
を参照すると分かるように、図3のコンピュータ・シス
テム20の動作を図4に示したタイミング60によって
例示することができる。タイミング60の各列は、特定
のバス・サイクルに対応する。時間的に左から右へ増加
する11個のバス・サイクルが11個の列で表されてい
る。それぞれ行61ないし65による各バス・サイクル
ごとに、L2バス22、L1.1バス32A、L1.2
バス32B、着信信号36A、着信信号36Bの状態を
示す。
【0044】バス・サイクル1中に、各ノード30内の
L1バス32上のバス装置38によって発信パケットが
ドライブされる。タイミング60で、このような発信パ
ケットは行62ではP1(o)として示され(L1.1
バス)、行63ではP2(o)として示されている(L
1.2バス)。同じサイクル中に2つの異なるバス・ト
ランザクションが発行されたので、それらのトランザク
ションがL2バス22上に現れる順序は調停方式に依存
する。タイミング60に示した実施形態では、L1.1
バス32A上に発行されたトランザクションはまず、バ
ス・サイクル2内の行61(L2バス)上のP1で表し
たように、L2バス22へ送信される。トランザクショ
ンP2(o)はそれぞれのリピータ内で待機する。ま
た、バス・サイクル2中に、それぞれ、行62(L1.
1バス)および行63(L1.2バス)上の発信バス・
トランザクションP3(o)およびP4(o)で表し
た、2つの新しいトランザクションが下位バス32上で
発行される。すべての発信トランザクション・パケット
が、トランザクションが発信されたリピータ・ノード上
のすべてのバス装置38の着信待ち行列40内で待機す
ることに留意されたい。たとえば、発信トランザクショ
ンP3(o)は、L1.1バス32A上で発信され、し
たがって発信側ノード30A内のそれぞれ、バス装置3
8Aおよび38Bの着信待ち行列40Aおよび40Bに
記憶される。発信トランザクションP3(o)は、バス
装置38Aとバス装置38Bのどちらかから発信された
可能性がある。
【0045】バス・サイクル3中に、行63(L1.2
バス)上のP1(i)で表したように、トランザクショ
ンP1がノード30BのL1バス32B上で着信トラン
ザクションとしてブロードキャストされる。しかし、ト
ランザクションP1はノード30AのL1バス上ではブ
ロードキャストされない。というのは、これが、トラン
ザクションP1を発信したノードであるからである。そ
の代わり、タイミング60の行64上に示したように、
ノード30A内の着信信号36Aがアサートされる。着
信信号36Aがアサートされると、リピータ・ノード3
0A上の各バス装置38AないしBはトランザクション
P1をそれぞれの着信待ち行列40からの着信パケット
P1(i)とみなす。したがって、発信側ノード30A
内のL1バス32Aは、タイミング60でバス・サイク
ル3中の行62上のP5(o)で表したように、同じサ
イクル中に他の発信トランザクションを自由に送信する
ことができる。また、バス・サイクル3中に、タイミン
グ60上の行61に示したように、バス・サイクル1か
らの第2の発信トランザクションP2(o)がL2バス
22上でブロードキャストされる。
【0046】バス・サイクル4中に、行62上のP2
(i)で表したように、トランザクションP2がノード
30AのL1バス32A上で着信トランザクションとし
てブロードキャストされる。しかし、トランザクション
P2はノード30BのL1バス上ではブロードキャスト
されない。というのは、これが、トランザクションP2
を発信したノードであるからである。その代わり、タイ
ミング60のバス・サイクル4の行65上に示したよう
に、ノード30B内の着信信号36Bがアサートされ
る。着信信号36Bがアサートされると、ノード30B
上の各バス装置38CないしDはトランザクションP2
をそれぞれの着信待ち行列40からの着信パケットP2
(i)とみなす。したがって、発信側ノード30B内の
L1バス32Bは、タイミング60でバス・サイクル4
中の行63上のP6(o)で表したように、同じバス・
サイクル中に他の発信トランザクションを自由に送信す
ることができる。また、バス・サイクル4中に、タイミ
ング60上の行61に示したように、発信トランザクシ
ョンP3(o)がL2バス22上でトランザクションP
3としてブロードキャストされる。
【0047】前述の動作は、バス装置から発信されたあ
らゆるバス・トランザクションに適用することができ
る。タイミング60から、所与のトランザクションが、
発信パケットと着信パケットのどちらかとして(両方と
して現れることはない)任意のL1バス32上に1度し
か現れないことは明らかである。したがって、すべての
トランザクション・パケットは、図3のコンピュータ・
システム20内の各バス上に1度しか現れない。タイミ
ング60から、この実施形態ではL2バス22の全帯域
幅を使用できることも明らかである。タイミング60
は、コンピュータ・システム20内の各バス装置38
が、コンピュータ・システム20内の他のあらゆるバス
装置38と同じバス・サイクル中に同じ順序で特定の各
トランザクションを見ることも示す。
【0048】次に図5を参照すると、プロセッサ/メモ
リ・バス装置70の詳細な図が示されている。バス装置
70は、図3のプロセッサ/メモリ・バス装置38A、
C、Dのうちの1つに対応することができる。バス装置
70はプロセッサ80、たとえば高性能プロセッサを含
む。一実施形態では、プロセッサ80は、SPARCプ
ロセッサ・アーキテクチャのバージョン9に適合するS
PARCプロセッサである。しかし、プロセッサ80に
よって任意のプロセッサ・アーキテクチャを使用できる
ことに留意されたい。
【0049】通常、プロセッサ80は、内部命令キャッ
シュと内部データ・キャッシュとを含む。したがって、
外部キャッシュ76はL2キャッシュと呼ばれる(レベ
ル2では、内部キャッシュがレベル1キャッシュであ
る)。プロセッサ80が内部キャッシュを含むようには
構成されない場合、外部キャッシュ76がレベル1キャ
ッシュである。「レベル」表記がプロセッサ80内の処
理コアへの特定のキャッシュの近接度を識別するために
使用されることに留意されたい。レベル1は、処理コア
に最も近く、レベル2は2番目に近く、以下同様であ
る。外部キャッシュ76は、それ自体に結合されたプロ
セッサ80から頻繁にアクセスされるメモリ・アドレス
に高速にアクセスすることができる。外部キャッシュ7
6を様々な特定のキャッシュ構造のうちの任意の構造と
して構成できることに留意されたい。たとえば、外部キ
ャッシュ76にはセットアソシエーティブ構成を使用す
ることも、あるいは直接マップ構成を使用することもで
きる。
【0050】メモリ82は、プロセッサ80およびコン
ピュータ・システム内のその他のバス装置によって使用
されるデータおよび命令コードを記憶するように構成さ
れる。メモリ82は、ダイナミック・ランダム・アクセ
ス・メモリ(DRAM)を備えることが好ましい。ただ
し、任意のタイプのメモリを使用することができる。図
5を参照し図3に戻ると分かるように、メモリ82は、
他のバス装置38およびその他のノード30内の同様な
メモリと共に、共用メモリ・システムを形成する。シス
テム・メモリを装置およびノード間で物理的に分散する
ことができるが、物理的メモリは、論理的には、全体と
して単一の共用メモリに見える。したがって、特定のバ
ス装置38内のプロセッサ80がシステム・メモリにア
クセスすると、そのアクセスは、メモリ・アドレスに応
じて、他のバス装置またはそのプロセッサ自体のバス装
置上のメモリ82から満たすことができる。しかし、図
3の動作に関して上記で説明したように、同じバス・サ
イクル中に各バス装置にすべてのメモリ・トランザクシ
ョンが現れる。したがって、メモリ・アドレス・トラン
ザクション時間は、開始側やメモリ82の物理的位置に
は依存しない。
【0051】プロセッサ80は、メモリ・アクセスを実
行する際に、場合によってはデータをキャッシュするこ
とができる。したがって、コンピュータ・システム20
内のすべてのバス装置38間でコヒーレンシを維持しな
ければならない。図3のアーキテクチャでは、すべての
トランザクションが確実に、システム20内のすべての
バス装置を介してほぼ同じ時間に同じ順序で見られるの
で、MESIなど通常のSMPコヒーレンシ・プロトコ
ルを使用してコヒーレンシを維持することができる。
【0052】再び図3を参照すると分かるように、階層
L1/L2バス構造は、コンピュータ・システム20内
のすべてのバス装置間の通信に利用できる。一実施形態
では、L1バス32およびL2バス22はそれぞれ、ア
ドレス・バスおよび関係する制御信号と、データ・バス
および関係する制御信号とを含む。アドレス・バスとデ
ータ・バスは別々のものなので、分割トランザクション
・バス・プロトコルを使用することができる。一般的に
言えば、分割トランザクション・バス・プロトコルと
は、アドレス・バス上で行われるトランザクションがデ
ータ・バス上で行われる並行トランザクションと異なる
ものでよいプロトコルである。アドレスおよびデータを
必要とするトランザクションは、アドレスおよび関係す
る制御情報がアドレス・バス上で搬送されるアドレス・
フェーズと、データ・バス上でデータが搬送されるデー
タ・フェーズとを含む。他のトランザクションに関する
追加アドレス・フェーズまたはデータ・フェーズ、ある
いはその両方を、特定のアドレス・フェーズに対応する
データ・フェーズの前に開始することができる。アドレ
ス・フェーズと対応するデータ・フェーズはいくつかの
方法で相関付けることができる。たとえば、アドレス・
トランザクションが行われるのと同じ順序でデータ・ト
ランザクションを行うことができる。別法として、ある
トランザクションのアドレス・フェーズおよびデータ・
フェーズを固有のタグまたは送信元IDを介して識別す
ることができる。話を簡潔にするために、本明細書で説
明するバス・トランザクションを通常、アドレス・トラ
ンザクションと呼ぶ。したがって、図3のL1バス32
およびL2バス22はアドレス・バスのみを表す。デー
タ・バスも、すべてのバス装置38と相互接続される。
データ・バスは、通常のバス構造またはデータ・スイッ
チ、あるいはバス構造とデータ・スイッチの組合せを備
えることができる。
【0053】図5の実施形態では、バス装置70は、L
1バス32が配置されたバックプレーンに挿入できるプ
リント回路ボード上に構成することができる。このよう
に、ノード30内に含まれるプロセッサまたは入出力イ
ンタフェース、あるいはその両方の数は、バス装置を挿
入または削除することによって変更することができる。
たとえば、図3のコンピュータ・システムは最初、少数
のバス装置38と共に構成することができる。コンピュ
ータ・システムのユーザが必要とするコンピューティン
グ能力が増大するにつれて必要に応じて、追加バス装置
38を追加することができる。
【0054】L1バス32にアドレス・コントローラ7
2が結合され、データ・バスにデータ・コントローラ8
4が結合される。アドレス・コントローラ72は、キャ
ッシュ76とL1バス32との間のインタフェースをと
る。図の実施形態では、アドレス・コントローラ72
は、出力待ち行列74と入力待ち行列40とを含む。出
力待ち行列72は、アドレス・コントローラ72がL1
バス32へのアクセスを許可されるまで、出力待ち行列
72に接続されたプロセッサ80からのトランザクショ
ンをバッファする。アドレス・コントローラ72は、そ
れらのトランザクションが出力待ち行列74に入れられ
た順に、出力待ち行列74に記憶されているトランザク
ションを実行する(すなわち、出力待ち行列74はFI
FO待ち行列である)。アドレス・コントローラ72に
よって実行されるトランザクションと、キャッシュ76
およびプロセッサ80内部のキャッシュによってスヌー
プされるL1バス32から受信されたトランザクション
は、入力待ち行列40内に置かれる。
【0055】出力待ち行列74と同様に、入力待ち行列
40はFIFO待ち行列である。前述のように、すべて
のアドレス・トランザクションは発信側ノードの各バス
装置の待ち行列40(場合によっては、アドレス・トラ
ンザクションを開始したバス装置の入力待ち行列40
内)に記憶される。非発信側ノードの場合、入力待ち行
列40はバイパス経路46によってバイパスされる。ア
ドレス・コントローラ72は、適当なバス・サイクル中
にバイパス経路46または入力待ち行列40を選択する
ためにアドレス・コントローラ自体がマルチプレクサ4
2を制御できるようにする着信信号36を受信する。追
加バッファリングが必要である場合、マルチプレクサ4
2の出力に第2の入力待ち行列(図示せず)を配置する
ことができる。したがって、L1バス32上にアドレス
・トランザクションが発生した順にスヌープを行うため
に、アドレス・トランザクションはすべてのバス装置に
並行して与えられる。
【0056】データ・コントローラ84は、データ・バ
ス、メモリ82、キャッシュ76との間でデータをルー
ティングする。データ・コントローラ84は、アドレス
・コントローラ72と同様に入力待ち行列と出力待ち行
列とを含むことができる。一実施形態では、データ・コ
ントローラ84は複数の物理装置をバイト・スライス・
バス構成として使用する。
【0057】図5に示したプロセッサ80はメモリ管理
装置(MMU)78を含む。MMU78は、プロセッサ
80上で実行された命令コードによって生成されたデー
タ・アドレスと、命令アドレスに対して仮想アドレス・
物理アドレス変換を実行する。命令の実行に応じて生成
されるアドレスは仮想アドレスである。言い換えれば、
仮想アドレスは、CPUによって作成されるアドレスで
ある。仮想アドレスは、(MMU78で具体化された)
アドレス変換機構を通過し、そこから対応する物理アド
レスが作成される。物理アドレスはシステム・メモリ内
の記憶位置を識別する。
【0058】アドレス変換機構は多くの場合、アクセス
制御機能またはアクセス保護機能に結合される。たとえ
ば、アドレス変換機構を使用して、ある種のメモリ・ア
ドレスへの特定のコンピューティング・タスクのアクセ
スを許可または拒否することができる。このように、あ
るコンピューティング・タスク内のデータおよび命令
は、他のコンピューティング・タスクのデータおよび命
令から分離される。また、コンピューティング・タスク
のデータおよび命令の部分は、ハード・ディスク・ドラ
イブに「ページアウト」することができる。一部をペー
ジアウトすると、変換は無効化される。コンピューティ
ング・タスクによるその部分へのアクセス時に、変換が
失敗するためにトラップが行われる。トラップによっ
て、オペレーティング・システムはハード・ディスク・
ドライブから対応する情報を検索することができる。こ
のように、バス装置実施形態70に関して図示したメモ
リ82など、バス装置間で物理的に分散される実際のシ
ステム・メモリよりも多くの仮想メモリを使用すること
ができる。仮想メモリに関する他の多数の用途が良く知
られている。
【0059】次に図6を参照すると、入出力バス装置9
0の一実施形態が示されている。入出力バス装置90は
図3のバス装置38Bに対応する。入出力バス装置90
は、L1バス32とmezzanineバス96とのイ
ンタフェースをとる入出力ブリッジ・コントローラ92
を備える。同様に、入出力データ・コントローラ94
は、システム・データ・バスとmezzanineバス
96とのインタフェースをとる。mezzanineバ
ス96には、2つの周辺構成要素相互接続(PCI)バ
ス・コントローラ98AないしBとビデオ・フレーム・
バッファ100が結合される。PCIコントローラ98
はmezzanineバス96とPCIバス102Aな
いしBとのインタフェースをそれぞれとる。PCIカー
ド104AないしBおよび104CないしDなど複数の
PCI装置をそれぞれ、PCIバス102Aおよび10
2Bに結合することができる。PCIカード104Aな
いしDは、マルチメディア・インタフェース、シリアル
・ポート・インタフェース、ビデオ・インタフェースな
ど任意のタイプの周辺装置をサポートすることができ
る。
【0060】入出力ブリッジ・コントローラ92は、図
5のアドレス・コントローラ72と同様なアドレス・コ
ントローラ93を含む。したがって、入出力装置90内
のアドレス・コントローラ93は、着信信号36を受信
し、入力待ち行列40とバイパス経路46とを含む。し
たがって、入出力装置90は発信側装置と受信側装置の
どちらかとしてバス・トランザクションに参加すること
ができる。入出力装置90は、図4のタイミング60に
従って図3の階層L1/L2バス構造上で動作する。た
とえば、PCIカード104AはPCIバス102A上
でトランザクションを開始することができる。トランザ
クションは、PCIコントローラ98Aによってmez
zanineバス96へ送信され、次いで入出力ブリッ
ジ・コントローラ92によってL1バス32へ送信され
る。話を明確にするためにこの例ではバス調停を無視す
る。トランザクションは、L1バス32上へ送信される
と、入出力ブリッジ・コントローラ92に配置されたア
ドレス・コントローラ93内の着信待ち行列40にも記
憶される。同様に、入出力バス装置90上の装置は、他
のバス装置38によって開始されたトランザクションの
宛先であってよい。その場合、入出力コントローラ92
は、トランザクションが入出力バス装置90と同じノー
ド上で発信されたかどうかに応じて、入力待ち行列40
とバイパス経路46のどちらかから着信トランザクショ
ンを受け取る。トランザクションの宛先は、1つのPC
Iカード104A〜Dでも、あるいはフレーム・バッフ
ァ100でもよい。したがって、入出力バス装置90
は、プロセッサ/メモリ・バス装置に関して上記で説明
したのと同様にバス・トランザクションに参加する。
【0061】次に図7を参照すると、本発明の他の実施
形態が示されている。図7は、拡張対称型プロセッサ・
システム(XMP)130を示す。3つのSMPノード
120AないしCが示されている。各SMPノード12
0はXMPインタフェース128を備える。各SMPノ
ード120内には2つのアドレス・リピータ34もあ
る。XMPインタフェース128およびリピータ34は
上位バス38に結合される。各リピータ34は別々の下
位バス30にも結合される。バス装置38は下位バス3
0に結合される。バス装置38は、図5のバス装置70
と同様にプロセッサ/メモリ・バス装置を備えること
も、あるいは図6のバス装置90と同様に入出力バス装
置を備えることもできる。他の実施形態は、他の様々な
バス装置構成を含むことができる。現代のコンピュータ
・システムで使用されている任意のローカル・バス型装
置を本発明内で使用することが企図される。
【0062】図7の各SMPノード120は、図3に示
したSMPシステムと同様に構成することができる。し
かし、図7のSMPノード120はまた、上位バス38
に結合されたXMPインタフェース128を含むように
構成される。各SMPノード120のXMPインタフェ
ース128は、ポイント・ツー・ポイント接続によって
他の各SMPノード120のXMPインタフェース12
8にも接続される。たとえば、SMPノード120Aの
XMPインタフェース128Aは、ポイント・ツー・ポ
イント・リンク142によってSMPノード120Bの
XMPインタフェース128Bにポイント・ツー・ポイ
ント接続される。SMPノード120Aの最上位インタ
フェース128Aも、ポイント・ツー・ポイント・リン
ク140によって独立にSMPノード120CのXMP
インタフェース128Cにポイント・ツー・ポイント接
続される。このように、各SMPノード120は、他の
あらゆるSMPノード120との別々のポイント・ツー
・ポイント接続を有する。各ポイント・ツー・ポイント
接続は、2つの一方向リンクを備える。このポイント・
ツー・ポイント接続ネットワークによって、いくつかの
SMPノードをリンクし、拡張SMP(XMP)コンピ
ュータ・システム130を形成することができる。SM
Pノード120間のポイント・ツー・ポイント接続リン
キング・ネットワークによって、より深い階層およびそ
の他のアーキテクチャに関連する多数の物理的制約およ
び待ち時間問題の影響を受けずに図3の階層バス構造を
拡張することができる。
【0063】次に図8を参照すると、SMPノード12
0のより詳細な図が示されている。SMPノード120
は、図7のSMPノード120AないしCのうちの1つ
に対応することができる。SMPノード120の構造お
よび動作は、下記で詳しく説明する修正形態を除いて、
上記で図3のSMPシステムに関して説明した構造およ
び動作と非常に類似している。SMPノード120は、
SMPノード120のL2バス22とXMPシステム1
30内の他のSMPノードとの間のインタフェースをと
るXMPインタフェース128を含む。図3の場合と同
様に、L2バス22には2つのリピータ・ノード34が
接続される。各リピータ・ノードは、リピータ34と、
L1バス32と、2つのバス装置38とを含む。図8で
は2つのリピータ・ノードしか示されていないが、これ
よりも多くあるいは少ないリピータ・ノードが企図され
ることを理解されたい。さらに、各リピータ・ノードご
とに2つのバス装置38しか示されていないが、各リピ
ータ・ノードごとにこれよりも多くのリピータ・ノード
をサポートしても、あるいはこれよりも少ないリピータ
・ノードをサポートしてもよいことを理解されたい。ま
た、本発明の他の実施形態では、共用バスの代わりに、
L2バス22は各リピータ34を別々にXMPインタフ
ェース128に結合するポイントツーポイント接続を備
えることができる。
【0064】各リピータ34は、内部待ち行列122と
バイパス経路124とを含む。各リピータ34はまた、
XMPインタフェース128から制御信号126を受け
る。制御信号126は、リピータ34でバイパス経路1
24を選択するか、それとも待ち行列経路122を選択
するかを制御するために使用される。このバイパス/待
ち行列構造は、図3のバス装置38に示したバイパス/
待ち行列構造に類似している。XMPシステム130内
の他のSMPノードへトランザクションをブロードキャ
ストしなければならないとき、そのトランザクションは
発信側SMPノード120内の各リピータ34の待ち行
列122に記憶される。純粋にローカルな(他のノード
へブロードキャストされない)トランザクションを待機
させることもできる。他のSMPノードから着信したト
ランザクションは、XMPインタフェース128によっ
てL2バス22上へブロードキャストされる。他のSM
Pノードからのトランザクションの場合、XMPインタ
フェース128は、各リピータ34でバイパス経路12
4が選択されるような制御信号126をアサートする。
したがって、外部SMPノードで発信されたすべてのト
ランザクションは、バイパス経路124およびリピータ
34を通じて送信され、SMPノード120で発信され
たすべてのトランザクションはSMPノード120のリ
ピータ待ち行列122に記憶される。
【0065】図7および図8を同時に参照すると分かる
ように、ポイントツーポイント接続140、142、1
44を備えるポイントツーポイント・リンキング構造は
トランザクション同期構造である。したがって、各SM
Pノード120は、他の各SMPノード120とほぼ同
じ時間にトランザクションを送受信する。SMPノード
120間のリンキング構造が一方向ポイントツーポイン
ト接続を備えるので、SMPノード120間でのトラン
ザクションの送信に調停遅延は伴わない。この最上位リ
ンキング構造上で厳密なトランザクション順序に従うこ
とによってトランザクション順序付けが維持される。S
MPノード120間のいくつかのポイントツーポイント
・リンク上で同時に送信されるトランザクションは、S
MPノード120Aから発信されたトランザクション
が、SMPノード120Bから発信されたトランザクシ
ョンよりも前に行われるものとして定義され、SMPノ
ード120Bから発信されたトランザクションが、SM
Pノード120Cから発信されたトランザクションより
も前に行われるものとして定義されるような規約によっ
て順序付けされる。たとえば、1トランザクション・サ
イクル中に、SMPノード120AはSMPノード12
0Bおよび120Cへトランザクションをブロードキャ
ストすることができる。同じサイクル中に、SMPノー
ド120BはSMPノード120Aおよび120Cへ異
なるトランザクションをブロードキャストすることがで
き、SMPノード120CはSMPノード120Aおよ
び120Bへさらに別のトランザクションをブロードキ
ャストすることができる。したがって、同じサイクル中
に、それぞれ、各SMPノード120A、120B、1
20Cから発信される、3つの別々のバス・トランザク
ションを、すべてのSMPノードへブロードキャストす
ることができる。定義された順序付けによって、SMP
ノード120Aから発信されたトランザクションは、S
MPノード120Bおよび120Cから発信されたトラ
ンザクションよりも前に各SMPノード120内のリピ
ータへブロードキャストされる。次に、ノード120B
から発信されたトランザクションが各SMPノード12
0のL2バス22上へブロードキャストされ、最後に、
SMPノード120Cから発信されたトランザクション
が各SMPノード120のL2バス22上へブロードキ
ャストされる。他のSMPノードから発信されたトラン
ザクションが特定のSMPノードのXMPインタフェー
スによってその特定のSMPノードのL2バス22へブ
ロードキャストされると、XMPインタフェース128
は、そのSMPノード内のすべてのリピータ34でバイ
パス経路124が選択されるような制御信号126をア
サートする。しかし、トランザクションが発信されたS
MPノードでは、XMPインタフェース128は、リピ
ータ34が待ち行列122を選択してトランザクション
をL1バス32にドライブするような制御信号126を
アサートする。したがって、発信側L2ノード内のL2
バス22は新しいバス・トランザクションを自由にブロ
ードキャストすることができる。
【0066】上記で図7および図8のXMPアーキテク
チャに関して説明した動作から、SMPノード120間
でブロードキャストされるバス・トランザクションは各
SMPノード120のL2バス22上に1度しか現れな
いことが分かる。このため、最大バス帯域幅を利用する
ことができる。さらに、最上位ポイントツーポイント・
リンク接続に関して定義された厳密な順序付けによっ
て、常に調停遅延なしで順序付きトランザクション・ブ
ロードキャストが行われる。前述のポイントツーポイン
ト・リンキング構造は、従来型の階層バス構造よりずっ
と優れたスケーリング特性および距離特性を与える。S
MPノード120Aから発信されたトランザクションが
ノード120Bからの同時トランザクションよりも優先
され、SMPノード120Bから発信されたトランザク
ションが、SMPノード120Cから同時に発信された
トランザクションよりも優先される定義済み最上位トラ
ンザクション順序が制限されないことを理解されたい。
言い換えれば、任意の定義済み順序を選択できるが、す
べてのトランザクションがすべてのSMPノード120
上で同じ順序で見られるようにするには、特定の定義済
み順序を有する必要がある。
【0067】各バス装置38および各SMPノード12
0は、上記で図3のSMPシステムに関して説明したよ
うにメモリを含むことができる。各バス装置38および
各SMPノード120に配置されたメモリは、集合的に
XMPシステムのシステム・メモリを形成する。しか
し、システム・メモリのアドレス空間は、各SMPノー
ド120が総アドレス空間の一部を得るようにいくつか
の異なる領域に分割される。各アドレス空間部分のサイ
ズは、XMPシステム内のSMPノード120の数に依
存する。したがって、図7および図8のXMPシステム
130では、各SMPノード120AないしCに総シス
テム・メモリ・アドレス空間の3分の1が割り当てられ
る。特定のSMPノード120内のバス装置38が、そ
の特定のSMPノード120に割り当てられたアドレス
空間領域内のメモリ領域にアクセスした場合、トランザ
クションは、それを他のSMPノード120へブロード
キャストすることなしにそのSMPノード内のメモリか
ら処理される。したがって、SMPノード120間のポ
イントツーポイント・リンク構造は、特定のSMPノー
ド120内では処理できないトランザクションに限られ
る。
【0068】XMPシステム内の各SMPノード120
間でメモリ・コヒーレンシを維持するために、システム
・メモリ内の各キャッシュ・ラインにそのSMPノード
のコヒーレンシ状態タグが付加される。このようなコヒ
ーレンシ状態タグを図8では集合的にMTAG150と
呼ぶ。MTAG150は、メモリを含む各バス装置38
上のメモリに記憶することができる。他の実施形態で
は、MTAGをSRAMに記憶することができる。特定
のSMPノード120内のバス装置38がトランザクシ
ョンを開始すると、そのトランザクションはまず、その
特定のSMPノードでのみ試みられる。開始側バス装置
は、検索されたMTAGコヒーレンシ状態を調べ、その
SMPノードがトランザクション・アドレスに関する有
効なアクセス権を有するかどうかを判定する。検索され
たコヒーレンシ状態が妥当なアクセス権を示している場
合、完了されるトランザクションは有効である。しか
し、コヒーレンシ状態が不適切なアクセス権を示してい
る場合、そのトランザクションはバス装置によってグロ
ーバル・トランザクションとして再発行しなければなら
ない。トランザクションがバス装置によってグローバル
・トランザクションとして発行されると、そのトランザ
クションは、発信側SMPノード120内のXMPイン
タフェース128により、ポイントツーポイントSMP
ノード接続によって他の各SMPノード120へブロー
ドキャストされる。トランザクションがグローバル・ト
ランザクションであるべきかどうかは、トランザクショ
ン・パケットのビット・コード化部分から判定すること
ができる。
【0069】一般的に言えば、特定の記憶位置(たとえ
ば、メモリまたはキャッシュ内)でコヒーレンシ単位
(たとえば、キャッシュライン)に関して維持されるコ
ヒーレンシ状態は、そのSMPノード120でのコヒー
レンシ単位へのアクセス権を示す。アクセス権は、その
コヒーレンシ単位の有効性と、そのSMPノード120
内のそのコヒーレンシ単位のコピーに関して与えられた
読取り/書込み許可を示す。一実施形態では、XMPコ
ンピュータ・システム130によって使用されるコヒー
レンシ状態は修正、所有、共用、無効である。修正状態
は、SMPノード120が、対応するコヒーレンシ単位
を更新したことを示す。したがって、他のSMPノード
120はコヒーレンシ単位のコピーを有さない。また、
修正コヒーレンシ単位は、SMPノードによって破棄さ
れると、そのコヒーレンシ単位が属するアドレス空間領
域が割り当てられたSMPノード120に記憶され直
す。所有状態は、そのSMPノード120がそのコヒー
レンシ単位に責任を負うが、他のSMPノードが共用コ
ピーを有することができることを示す。この場合も、コ
ヒーレンシ単位は、SMPノード120によって破棄さ
れると、そのコヒーレンシ単位が属するアドレス空間領
域が割り当てられたSMPノード120に記憶され直
す。共用状態は、そのSMPノード120が、そのコヒ
ーレンシ単位を読み取ることはできるが、所有状態を得
ないかぎり更新することはできないことを示す。他のS
MPノード120もこのコヒーレンシ単位のコピーを有
することができる。最後に、無効状態は、そのSMPノ
ード120がそのコヒーレンシ単位のコピーを有さない
ことを示す。一実施形態では、修正状態は書込み許可を
示し、無効状態を除く任意の状態は、対応するコヒーレ
ンシ単位に対する読取り許可を示す。他の受容可能なコ
ヒーレンシ構造も利用できることにも留意されたい。
【0070】前述の動作から、SMPノード120間の
最上位ポイントツーポイント相互接続バスが、純粋なブ
ロードキャスト・バスであり、コヒーレンシ・スヌーピ
ング機能やコヒーレンシ・フィルタリング機能を実行し
ないことが分かる。すべてのメモリ・コヒーレンシ・ス
ヌーピングは、システム・メモリ内に記憶されているM
TAGを使用することによって個別のSMPノード12
0内で実行される。最上位ポイントツーポイント相互接
続システム上でグローバルに送信されたあらゆるトラン
ザクションは、各SMPノード120内のすべての下位
バス22、38上に1度しか現れない。スヌーピングお
よびフィルタリングは、グローバル・アテンションを必
要とするトランザクションのみが最上位ポイントツーポ
イント相互接続構造を介して送信されるように、各SM
Pノード120の最下位レベルで行われる。
【0071】図7および図8のXMPシステム130の
他の実施形態では、図9に示したように、システム・メ
モリ・アドレス空間の各領域を3つのモードのうちの1
つで動作するように割り当てることができる。3つのメ
モリ・モードとは、複写モード、移行モード、通常モー
ドである。各SMPノード120上に配置された物理メ
モリは、図9に示したように3つのモードのうちの各モ
ードで動作するアドレス領域にマップされる。通常モー
ドで動作するシステム・メモリ領域では、グローバル・
トランザクションを送信せずに、すべてのメモリ・トラ
ンザクションがまず発信側SMPノード120で試みら
れる。トランザクションがグローバルに送信されるの
は、MTAGが、メモリ・アドレスがその発行側SMP
ノードでは有効ではないことを示す場合だけである。そ
の場合、トランザクションは、前述のようにグローバル
に再発行される。トランザクション・アドレスが、外部
SMPノード120にマップされているメモリ領域に対
応するものである場合、トランザクションが最初にグロ
ーバルに発行されることに留意されたい。トランザクシ
ョンが発信側ノードでローカルに試みられるのは、メモ
リ・アドレスが、そのSMPノードにマップされている
メモリ領域に対応するものである場合だけである。した
がって、通常動作モードでは、トランザクションが通
常、グローバルに送信される2つの例がある。そのよう
な1つの例は、トランザクション・アドレスが、他のS
MPノードにマップされているメモリ領域に対応するも
のであるときであり、他の例は、メモリ・アドレスが、
発信側ノードにマップされているにもかかわらず不適切
なコヒーレンシ状態を有することを、MTAGが示して
いるときである。コヒーレンシ状態が不適切なものにな
るのはたとえば、メモリ・キャッシュ・ラインが他のS
MPノード上のバス装置のキャッシュに読み込まれ修正
された場合である。その場合、他のSMPノードによっ
てトランザクションをスヌープしなければならない。
【0072】複写モードでは、複写メモリ領域が、各S
MPノード120に配置されたメモリにマップされる。
したがって、各SMPノードにメモリ領域のローカル・
コピーが記憶される。したがって、複写モードでは、ト
ランザクションは常に発信側SMPノードでローカルに
試みられる。複写アドレス領域のコピーが各SMPノー
ド120に配置されるので、トランザクションが最初か
らグローバルに開始されることはない。グローバル・ト
ランザクションは、MTAGが不適切なキャッシュ・コ
ヒーレンシ状態を返した場合に再発行トランザクション
として行われるに過ぎない。不適切なキャッシュ・コヒ
ーレンシ状態が発生するのは、対応するキャッシュ・ラ
イン・アドレスが他のSMPノードの複写メモリ領域内
で修正された場合である。複写モードは、メモリ領域の
主読取り共用からなるアプリケーションに使用できるの
で有利である。そのようなアプリケーションには、デー
タベースが複写メモリ領域に記憶されており、通常、読
取りトランザクションしか実行されない、大規模なデー
タベースへのアクセスを含めることができる。
【0073】メモリ領域が移行モードである場合、トラ
ンザクションは常にグローバルに送信される。したがっ
て、メモリ内でMTAGキャッシュ・コヒーレンシ状態
を維持する必要はない。移行モードは、データ構造がし
ばしば様々なSMPノード120を介してアクセスされ
るローカル性の不十分なアプリケーションで使用できる
ので有利である。そのような移行データ構造アプリケー
ションでは、通常モードを使用した場合、MTAGミス
の可能性が高くなる。したがって、常にトランザクショ
ンをグローバルに開始することによって、移行モードに
おいて、通常モードで必要とされる再発行トランザクシ
ョンを回避することができる。
【0074】一実施形態では、所与のメモリ・アドレス
が複写モードの領域に関するものであるか、それとも移
行モードの領域に関するものであるか、それとも通常モ
ードの領域に関するものであるかを、トランザクション
・パケット内のビット・コード化メッセージで示すこと
ができる。一実施形態では、このビット・コード化メッ
セージは、MMUによって生成される物理アドレスの最
上位ビットでよい。オペレーティング・システムは、シ
ステム・メモリの様々な領域にモードを割り当てる責任
を負うことができる。オペレーティング・システムは、
いわゆるフリーリスト上に空き物理メモリ・ページを記
録することができる。オペレーティング・システムは、
複写モードでのメモリの割り振りを簡略化するために、
どのノードでも使用されていないページに関する専用フ
リーリストを維持することができる。このようなページ
を複写モードで使用し、それによって各SMPノードに
複写メモリ領域のコピーを記憶することができる。
【0075】代替実施形態では、各バス装置のアドレス
・コントローラ内でアドレス・モードをプログラムする
ことができる。そのような実施形態では、トランザクシ
ョンがグローバル・トランザクションであるべきかどう
かを示すビット・コード化信号を各トランザクションの
アドレス・パケットに含めることができる。
【0076】前述のように、グローバル・トランザクシ
ョンとして定義されたメモリ・トランザクションは、他
の各SMPノードとのポイントツーポイント接続上で発
信側SMPノード120のXMPインタフェース128
からブロードキャストされ、発信側SMPノード120
内のアドレス・リピータ34のリピータ待ち行列128
に置かれる。しかし、ある種のトランザクションは他の
各SMPノードにグローバルにブロードキャストする必
要がない。たとえば、入出力トランザクションは、ポイ
ントツーポイント接続上で、アドレスされた入出力バス
装置が存在するノードのみへブロードキャストすること
ができる。また、書き直しトランザクションは、書き直
すべきメモリ領域が存在するノードのみへグローバルに
ブロードキャストすることができる。たとえば、図7の
SMPノード120B上のバス装置38が、SMPノー
ド120Aに割り当てられたメモリ領域に対応するメモ
リ・キャッシュ・ラインを読み取り、次いでそのキャッ
シュ・ラインを修正した場合、そのキャッシュ・ライン
をSMPノード120Aに書き直しておかないかぎり、
他のSMPノードからそのキャッシュ・ラインにアクセ
スすることはできない。そのような場合、書き直しトラ
ンザクションは、ポイントツーポイント接続142を介
して行うだけでよい。したがって、書き直しトランザク
ションおよび入出力トランザクションでは、必要なポイ
ントツーポイント接続しか使用されず、他のポイントツ
ーポイント接続が解放され、同じサイクル中に他の入出
力トランザクションまたは書き直しトランザクションを
実行することができる。このため、ポイントツーポイン
ト接続の全帯域幅を使用することができる。本発明の他
の実行では、他のタイプのトランザクションも、すべて
のSMPノード120へグローバルにブロードキャスト
するのではなく個別のポイントツーポイント相互接続を
介してブロードキャストするだけでよいことに留意され
たい。
【0077】次に図10を参照すると、前述のXMPコ
ンピュータ・システム130の動作を示すタイミング1
60が示されている。タイミング160に示したトラン
ザクションはすべてグローバル・トランザクションであ
る。したがって、タイミング160は、移行モードに割
り当てられたアドレス領域へのメモリ・トランザクショ
ンを示すことができる。
【0078】タイミング160の各列は、特定のバス・
サイクルに対応する。時間的に左から右へ増加する10
個のバス・サイクルが10個の列で表されている。図7
および図8も参照すると、最上位リンク接続140、1
42、144の状態は、行161によって一群として表
されている。ノード120AのL2バスの状態は行16
2に表されている。同様に、ノード120BないしC上
のL2バスの状態はそれぞれ、行163および164上
に表されている。行165ないし167は、各ノード1
20ごとのバイパス/待ち行列制御信号の状態を示す。
【0079】バス・サイクル1中には、各ノード120
のL2バス22上に発信パケットが存在する。タイミン
グ160で、これらの発信パケットは、行162(L
2.1バス)上のP1(o)、行163(L2.2バ
ス)上のP2(o)、行164(L2.3バス)上のP
3(o)として示されている。ノード120間の最上位
接続は一方向リンクを含むので、サイクル2の行161
上に示したように、同じサイクル中に、各ノード120
間ですべての3つの発信パケットを伝達することができ
る。またサイクル2中には、それぞれ、行162、16
3、164のP4(o)、P5(o)、P6(o)で表
したように、各ノード120のL2バス22上に新しい
トランザクションが存在する。L2バス22上のすべて
の発信トランザクション・パケットが、トランザクショ
ンが発信されたSMPノード120上の各リピータ34
内のリピータ待ち行列122で待機することに留意され
たい。たとえば、発信トランザクションP4(o)は、
SMPノード120から発信され、したがってノード1
20内の各リピータ34のリピータ待ち行列122に記
憶される。
【0080】バス・サイクル3中に、サイクル2で最上
位接続を介して伝達された1つのトランザクションが、
SMPノード120へブロードキャストされる。定義済
みの順序付けによって、どのトランザクションを最初に
ブロードキャストするかが決定される。単一の定義済み
順序付け方式を一貫して使用して、バス・トランザクシ
ョンが各ノードに同じ順序で現れるようにしなければな
らない。タイミング160で示した実施形態の場合、順
序付け方式は、ノード120からのトランザクションが
ノード120Bからのトランザクションよりも優先さ
れ、ノード120Bからのトランザクションがノード1
20Cからのトランザクションよりも優先される方式で
ある。したがって、サイクル3では、行163および1
64上のP1(i)で表したように、トランザクション
P1がノード120Bおよび120CのL2バス22上
の着信トランザクションとしてブロードキャストされ
る。トランザクションP2およびP3はXMPインタフ
ェース128内で待機する。しかし、トランザクション
P1はノード120AのL2バス22上ではブロードキ
ャストされない。というのは、ノード120Aは、トラ
ンザクションP1が発信されたノードであるからであ
る。その代わり、サイクル3中の行165上に示したよ
うに、ノード120A内の制御信号126がアサートさ
れる。制御信号126がアサートされると、各リピータ
・ノード34は次のサイクルで、トランザクションP1
をそれぞれのリピータ待ち行列122から着信パケット
P1(i)としてブロードキャストする。行166およ
び167上に示したように、ノード120Bおよび12
0C内の制御信号126はサイクル3中アサートされな
いままであり、これによって、これらのノード内のリピ
ータ34は、リピータ待ち行列122ではなくリピータ
・バイパス経路124を選択し、次のサイクルでP1
(i)トランザクションをL1バス32へブロードキャ
ストするよう指示される。したがって、P1(i)は、
同じサイクル中にすべてのノード120内のすべてのバ
ス装置38から見られる。また、タイミング160のバ
ス・サイクル3中の行162上のP7(o)で表したよ
うに、発信側ノード120A内のL2バス22はバス・
サイクル3中に、他の発信トランザクションを自由に送
信することができる。また、バス・サイクル3中には、
タイミング160上の行161に示したように、バス・
サイクル2から得た発信トランザクションP4(o)、
P5(o)、P6(o)が最上位ポイントツーポイント
接続上で同時にブロードキャストされる。
【0081】バス・サイクル4中に、行162および1
64上のP2(i)で示したように、定義済みの順序に
従って、トランザクションP2がノード120Aおよび
120CのL2バス22上の着信トランザクションとし
てブロードキャストされる。トランザクションP3ない
しP6はXMPインタフェース128内で待機する。し
かし、トランザクションP2はノード120BのL2バ
ス22上ではブロードキャストされない。というのは、
ノード120Bは、トランザクションP2が発信された
ノードであるからである。その代わり、サイクル3中の
行166上に示したように、ノード120B内の制御信
号126がアサートされる。制御信号126がアサート
されると、各リピータ・ノード34は次のサイクルで、
トランザクションP2をそれぞれのリピータ待ち行列1
22から着信パケットP2(i)としてブロードキャス
トする。行165および167上に示したように、ノー
ド120Aおよび120C内の制御信号126はサイク
ル4中アサートされず、これによって、これらのノード
内のリピータ34は、リピータ待ち行列122ではなく
リピータ・バイパス経路124を選択し、次のサイクル
でP2(i)トランザクションをL1バス32へブロー
ドキャストするよう指示される。したがって、P2
(i)は、同じサイクル中にすべてのノード120内の
すべてのバス装置38から見られる。また、タイミング
160のバス・サイクル4中の行163上のP8(o)
で表したように、発信側ノード120B内のL2バス2
2はバス・サイクル4中に、他の発信トランザクション
を自由に送信することができる。また、バス・サイクル
4中には、タイミング160上の行161に示したよう
に、バス・サイクル3から得た発信トランザクションP
7(o)が最上位ポイントツーポイント接続上でブロー
ドキャストされる。
【0082】前述の動作は、バス装置から発信されるあ
らゆるバス・トランザクションに適用することができ
る。タイミング160には、各ノード120内のL1バ
ス32上のトランザクションは示されていないことに留
意されたい。図4にタイミング60で示した動作は、各
ノード120内のL2/L1バス動作に適用することが
できる。タイミング160から、所与のトランザクショ
ン・パケットが、L2バス20またはL1バス32上に
発信パケットと着信パケットのどちらかとして(この両
方として現れることはない)1度しか現れないことは明
らかである。したがって、図7のコンピュータ・システ
ム130内の各バス上にはすべてのトランザクション・
パケットが1度しか現れない。タイミング160から、
この実施形態ではL2バス22の全帯域幅を使用するこ
とができることも明らかである。タイミング160は、
XMPコンピュータ・システム130内の各バス装置
が、XMPコンピュータ・システム130内の他のあら
ゆるバス装置と同じバス・サイクル中に同じ順序で特定
の各トランザクションを見ることも示している。
【0083】当業者には、上記の開示を完全に理解した
後、多数の変形形態および修正形態が明らかになろう。
特許請求の範囲は、すべてのそのような変形形態および
修正形態を包含するものと解釈されるものである。
【図面の簡単な説明】
【図1】階層バス構造を使用する対称型マルチプロセッ
サ・コンピュータ・システムのブロック図である。
【図2】図1のコンピュータ・システムの動作を示すタ
イミングである。
【図3】本発明の一実施形態による階層バス構造を使用
する対称型マルチプロセッサ・コンピュータ・システム
のブロック図である。
【図4】図3のコンピュータ・システムの動作を示すタ
イミングである。
【図5】本発明の一実施形態に関するプロセッサ/メモ
リ・バス装置のブロック図である。
【図6】本発明の一実施形態による入出力ブリッジ・バ
ス装置のブロック図である。
【図7】本発明の一実施形態による拡張対称型マルチプ
ロセッサ・コンピュータ・システムのブロック図であ
る。
【図8】図7の拡張対称型マルチプロセッサ・コンピュ
ータ・システムのSMPノードのブロック図である。
【図9】本発明の一実施形態で使用されるいくつかの異
なるアドレス指定モードの図である。
【図10】図7の拡張対称型マルチプロセッサ・コンピ
ュータ・システムの動作を示すタイミングである。
【符号の説明】
20 コンピュータ・システム 22 上位バス 30 装置ノード 32 下位装置バス 34 リピータ 36 着信信号 38 バス装置 40 着信待ち行列 42 マルチプレクサ 44 発信相互接続経路 46 バイパス経路 48 プロセッサ/メモリ要素 50 入出力要素
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年12月19日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図9】
【図7】
【図10】
【図8】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 マーク・ディ・ヒル アメリカ合衆国・53705・ウィスコンシン 州・マディソン・チャンバーレイン アヴ ェニュ・2124 (72)発明者 アショク・シンガル アメリカ合衆国・94062・カリフォルニア 州・レッドウッド シティ・レイクミード ウェイ・711

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサ・コンピュータ・シス
    テム内のノードであって、 前記ノードで発信されたものではない着信トランザクシ
    ョンを受信し、前記ノードで発信された発信トランザク
    ションを送信するリピータと、 バスと、 前記バスによって前記リピータに結合され、第1の着信
    待ち行列と第1のプロセッサ要素とを含む第1のバス装
    置とを備え、 前記第1のプロセッサ要素が、前記リピータから前記着
    信トランザクションを受信し、かつ前記第1の着信待ち
    行列から前記発信トランザクションを受信することを特
    徴とするノード。
  2. 【請求項2】 前記リピータが、前記第1のプロセッサ
    要素がいつ前記第1の着信待ち行列からトランザクショ
    ンを受信するかを制御する着信制御信号を生成すること
    を特徴とする請求項1に記載のノード。
  3. 【請求項3】 前記第1のプロセッサ要素が、マルチプ
    ロセッサ・コンピュータ・システム内の他の装置によっ
    て前記各発信トランザクションが受信されるのとほぼ同
    じ時間に前記第1の着信待ち行列から前記各発信トラン
    ザクションを受信することを特徴とする請求項1に記載
    のノード。
  4. 【請求項4】 前記第1のプロセッサ要素が、マルチプ
    ロセッサ・コンピュータ・システム内の他の装置によっ
    て前記各発信トランザクションが受信されるのと同じ順
    序で前記第1の着信待ち行列から前記各発信トランザク
    ションを受信することを特徴とする請求項1に記載のノ
    ード。
  5. 【請求項5】 前記第1のプロセッサ要素がSPARC
    プロセッサを備えることを特徴とする請求項1に記載の
    ノード。
  6. 【請求項6】 前記第1のプロセッサ要素がさらに、前
    記SPARCプロセッサに結合されたレベル2キャッシ
    ュ・メモリを備えることを特徴とする請求項5に記載の
    ノード。
  7. 【請求項7】 前記第1のプロセッサ要素が、 プロセッサと、 前記プロセッサに結合され前記バスに結合されたレベル
    2キャッシュ・メモリと、 前記プロセッサに結合され、かつ前記レベル2キャッシ
    ュ・メモリに結合され、前記着信トランザクションに関
    連するデータを記憶するメモリ装置とを備えることを特
    徴とする請求項1に記載のノード。
  8. 【請求項8】 さらに、前記バスによって前記リピータ
    に結合され、第2の着信待ち行列を含む第2のバス装置
    を備えることを特徴とする請求項1に記載のノード。
  9. 【請求項9】 前記第2のバス装置がさらに、第2のプ
    ロセッサ要素を含み、前記第2のプロセッサ要素が、前
    記リピータから前記着信トランザクションを受信し、前
    記第2の着信待ち行列から前記発信トランザクションを
    受信することを特徴とする請求項8に記載のノード。
  10. 【請求項10】 前記第2のバス装置がさらに、入出力
    (I/O)要素を含み、前記入出力要素が、前記リピー
    タから前記着信トランザクションを受信し、前記第2の
    着信待ち行列から前記発信トランザクションを受信する
    ことを特徴とする請求項8に記載のノード。
  11. 【請求項11】 前記入出力要素が、 入出力バス・ブリッジと、 前記入出力バス・ブリッジによって前記バスに結合さ
    れ、複数の入出力装置をサポートするように構成された
    入出力バスとを備えることを特徴とする請求項10に記
    載のノード。
  12. 【請求項12】 前記入出力バスが、周辺構成要素相互
    接続(PCI)バスを備えることを特徴とする請求項1
    1に記載のノード。
  13. 【請求項13】 マルチプロセッサ・コンピュータ・シ
    ステムであって、 トランザクションを送信するように構成された上位バス
    と、 前記上位バスに結合され、前記トランザクションを前記
    上位バスへ発信するように構成され、さらに前記上位バ
    ス上の前記トランザクションを受信するように構成され
    た第1のリピータ・ノードと、 前記上位バスに結合され、前記トランザクションを前記
    上位バスへ発信するように構成され、さらに前記上位バ
    ス上の前記トランザクションを受信するように構成され
    た第2のリピータ・ノードとを備え、 前記第1のリピータ・ノードが、 第1の下位バスと、 前記第1の下位バスに結合され、かつ前記上位バスに結
    合され、前記第2のリピータ・ノードから前記トランザ
    クションが発信されたときに前記トランザクションを前
    記上位バスから前記第1の下位バスへブロードキャスト
    し、前記第1のリピータ・ノードから前記トランザクシ
    ョンが発信されたときには前記トランザクションを前記
    上位バスから前記下位バスへブロードキャストしない、
    第1のリピータと、 前記第1の下位バスに結合され、前記第1の下位バスに
    結合された第1の着信待ち行列と、前記第1の着信待ち
    行列に結合されかつ前記第1の下位バスに結合された第
    1の装置要素とを備える第1のバス装置とを備えること
    を特徴とするマルチプロセッサ・コンピュータ・システ
    ム。
  14. 【請求項14】 前記第1のリピータが、着信制御信号
    を生成し、前記第1の装置要素が、前記着信制御信号を
    受信し、前記着信制御信号の状態に応じて、前記トラン
    ザクションを前記第1の下位バスから受信するか、それ
    とも前記第1の着信待ち行列から受信するかを選択する
    ことを特徴とする請求項13に記載のマルチプロセッサ
    ・コンピュータ・システム。
  15. 【請求項15】 前記第1のリピータ・ノードから発信
    された前記トランザクションが前記第1の着信待ち行列
    に記憶されることを特徴とする請求項14に記載のマル
    チプロセッサ・コンピュータ・システム。
  16. 【請求項16】 前記第2のリピータ・ノードが、 第2の下位バスと、 前記第2の下位バスに結合され、かつ前記上位バスに結
    合された第2のリピータと、 前記第2の下位バスに結合された第2のバス装置とを備
    えることを特徴とする請求項13に記載のマルチプロセ
    ッサ・コンピュータ・システム。
  17. 【請求項17】 前記第1のリピータ・ノードから発信
    された前記トランザクションが、前記第2のリピータ・
    ノードによって受信され、前記第2の下位バス上でブロ
    ードキャストされ、前記第1の装置要素が、前記第2の
    バス装置が第1のリピータ・ノードから発信された前記
    各トランザクションを受信するのとほぼ同じ時間に、第
    1のリピータ・ノードから発信された前記各トランザク
    ションを受信するように、前記第1のリピータが前記第
    1の着信制御信号をアサートすることを特徴とする請求
    項16に記載のマルチプロセッサ・コンピュータ・シス
    テム。
  18. 【請求項18】 前記第1のバス装置が、前記第1の装
    置要素が第1のリピータ・ノードから発信された前記ト
    ランザクションを受信するのとほぼ同じ時間に前記第1
    の下位バス上で新しいトランザクションを開始すること
    を特徴とする請求項17に記載のマルチプロセッサ・コ
    ンピュータ・システム。
  19. 【請求項19】 前記第2のリピータ・ノードが、 第2の下位バスと、 前記第2の下位バスに結合され、かつ前記上位バスに結
    合された第2のリピータと、 前記第2の下位バスに結合された第2のバス装置とを備
    え、 前記トランザクションのうちの特定のトランザクション
    が、前記第1の下位バス、前記第2の下位バス、前記上
    位バスのそれぞれ上に1度しか現れないことを特徴とす
    る請求項13に記載のマルチプロセッサ・コンピュータ
    ・システム。
  20. 【請求項20】 マルチプロセッサ・コンピュータ・シ
    ステムであって、 複数のリピータ・ノードと、 それぞれ、下位レベル・バスを備える、 前記複数のリピータ・ノードの個別のリピータ・ノード
    を電気的に相互接続する上位バスと、 前記下位バスと前記上位バスとの間でトランザクション
    を伝達するために前記下位バスを前記上位バスに結合
    し、着信制御信号を生成するリピータと、 前記下位バスに結合され、それぞれ、前記着信制御信号
    を受信し、それぞれ、 前記下位バスに結合され、前記下位バスからのトランザ
    クションを選択的に受信する着信待ち行列と、 前記下位バスに結合され、他のバス装置と通信するため
    にトランザクションを開始し受信する装置要素と、 前記装置要素を選択的に前記下位バスに結合するバイパ
    ス経路とを備え、 前記装置要素が、前記着信信号の状態に応じて前記着信
    待ち行列と前記バイパス経路のどちらかから着信トラン
    ザクションを受信する、少なくとも1つのバス装置とを
    備え、 トランザクションが、前記発信側リピータ・ノード内の
    前記少なくとも1つのバス装置のうちの開始側バス装置
    によって前記複数のリピータ・ノードのうちの発信側リ
    ピータ・ノードで発信され、前記トランザクションが、
    前記開始側バス装置によって、発信側リピータ・ノード
    に配置された下位バス上の発信トランザクションとして
    ブロードキャストされ、 前記発信トランザクションが、発信側リピータ・ノード
    に配置された前記少なくとも1つのバス装置の各バス装
    置の着信待ち行列に着信トランザクションとして記憶さ
    れ、前記発信トランザクションが、前記発信側リピータ
    ・ノードに配置されたリピータによって前記上位バスへ
    バス・トランザクションとしてブロードキャストされ、 前記バス・トランザクションが、前記複数のリピータ・
    ノードのうちの各非発信側リピータ・ノード内のリピー
    タによって受信され、各非発信側リピータ・ノードに配
    置された下位バス上の着信トランザクションとしてブロ
    ードキャストされ、 各非発信側リピータ・ノード内の前記リピータが、各非
    発信側リピータ・ノードに配置された各装置要素が前記
    着信トランザクションを前記バイパス経路から受信する
    ように前記着信制御信号をドライブし、 前記発信側リピータ・ノード内の前記リピータが、前記
    発信側リピータ・ノードに配置された各装置要素が前記
    着信トランザクションを前記着信待ち行列から受信する
    ように前記着信制御信号をドライブすることを特徴とす
    るマルチプロセッサ・コンピュータ・システム。
  21. 【請求項21】 メモリを有する複数の処理ノードを有
    するマルチプロセッサ・コンピュータ・システムのシス
    テム・メモリ・アドレス空間のメモリ・マッピング方法
    であって、 領域の数が前記マルチプロセッサ・コンピュータ・シス
    テム内の処理ノードの数に等しく、その各領域に囲まれ
    るシステム・メモリ・アドレス空間の量が前記処理ノー
    ドの数に反比例するように、システム・メモリ・アドレ
    ス空間を複数の領域に分割し、 前記領域のうちの割り当てられた領域に対応するローカ
    ル・アドレス空間を有する前記各処理ノードに、前記領
    域のうちのそれぞれの異なる領域を割り当て、 前記マルチプロセッサ・コンピュータ・システム内の他
    の処理ノードへ前記ローカル・アドレス空間トランザク
    ションをブロードキャストせずに、前記領域のうちの対
    応する領域が割り当てられたノード内でローカル・アド
    レス空間トランザクションを試み、 前記ローカル・アドレス空間トランザクションに関する
    メモリ・アクセス権を検査し、 前記検査によってアクセス権が不適切であると判定され
    た場合に前記マルチプロセッサ・コンピュータ・システ
    ム内の前記すべての処理ノードへ前記ローカル・アドレ
    ス空間トランザクションを再発行することを含むことを
    特徴とする方法。
  22. 【請求項22】 さらに、 各処理ノードに関する前記ローカル・アドレス空間の一
    部分を、そのノードに配置された物理メモリにマップす
    ることと、 各処理ノードごとの前記ローカル・アドレス空間の前記
    一部分に関するメモリ・コヒーレンシ状態情報を維持す
    ることとを含むことを特徴とする請求項21に記載のメ
    モリ・マッピング方法。
  23. 【請求項23】 前記検査が、前記メモリ・コヒーレン
    シ状態情報を検索することを含むことを特徴とする請求
    項22に記載のメモリ・マッピング方法。
  24. 【請求項24】 前記維持が、 前記物理メモリをコヒーレンシ単位に分割することと、 各コヒーレンシ単位ごとに前記コヒーレンシ状態情報を
    維持することとを含むことを特徴とする請求項22に記
    載のメモリ・マッピング方法。
  25. 【請求項25】 前記検査がさらに、キャッシュ・コヒ
    ーレンシ・プロトコルに従って、前記アクセス権が不適
    切なものであるかどうかを判定することを含むことを特
    徴とする請求項23に記載のメモリ・マッピング方法。
  26. 【請求項26】 メモリを有する複数の処理ノードを有
    するマルチプロセッサ・コンピュータ・システムのシス
    テム・メモリ・アドレス空間のメモリ・マッピング方法
    であって、 システム・メモリ・アドレス空間を複数の動作領域に分
    割することと、 特定の動作モード、すなわち通常モードと移行モードと
    複写モードのいずれかを各動作領域に割り当て、 さらに、マッピング領域の数が、前記マルチプロセッサ
    ・コンピュータ・システム内の処理ノードの数に等し
    く、前記各マッピング領域に囲まれるシステム・メモリ
    ・アドレス空間の量が、前記処理ノードの数に反比例す
    る、システム・メモリ・アドレス空間を複数のマッピン
    グ領域に分割し、 前記マッピング領域のうちの割り当てられた領域に対応
    するローカル・アドレス空間を有する前記各処理ノード
    に、前記マッピング領域のうちのそれぞれの異なるマッ
    ピング領域を割り当て、 前記マッピング領域のうちの対応する領域が割り当てら
    れたノード内でローカル・アドレス空間トランザクショ
    ンを試みることを含み、 前記ローカル・アドレス空間トランザクションが通常モ
    ードまたは複写モードに割り当てられた動作領域に対応
    するものである場合、前記ローカル・アドレス空間トラ
    ンザクションを前記マルチプロセッサ・コンピュータ・
    システム内の他の処理ノードへブロードキャストせずに
    前記ローカル・アドレス空間トランザクションが試みら
    れ、 前記ローカル・アドレス空間トランザクションが移行モ
    ードに割り当てられた動作領域に対応するものである場
    合、前記ローカル・アドレス空間トランザクションが前
    記マルチプロセッサ・コンピュータ・システム内のすべ
    ての処理ノードへブロードキャストされることを特徴と
    する方法。
  27. 【請求項27】 さらに、 前記ローカル・アドレス空間トランザクションが通常モ
    ードまたは複写モードに割り当てられた動作領域に対応
    するものである場合に前記ローカル・アドレス空間トラ
    ンザクションに関するメモリ・アクセス権を検査するこ
    とと、 前記検査によってアクセス権が不適切であると判定され
    た場合に前記マルチプロセッサ・コンピュータ・システ
    ム内の前記すべての処理ノードへ前記ローカル・アドレ
    ス空間トランザクションを再発行することとを含むこと
    を特徴とする請求項26に記載のメモリ・マッピング方
    法。
  28. 【請求項28】 さらに、複写モードに割り当てられた
    動作領域を各処理ノードに割り当てることを含み、複写
    モードに割り当てられた前記動作領域が、各処理ノード
    内で複製されることを特徴とする請求項26に記載のメ
    モリ・マッピング方法。
  29. 【請求項29】 さらに、前記複写モードに割り当てら
    れた動作領域に割り当てることのできる前記マッピング
    領域の部分を示すフリーリストを維持することを含むこ
    とを特徴とする請求項26に記載のメモリ・マッピング
    方法。
JP9211430A 1996-07-02 1997-07-02 拡張された対称マルチプロセッサ・アーキテクチャ Pending JPH10187631A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US08/675,361 US5796605A (en) 1996-07-02 1996-07-02 Extended symmetrical multiprocessor address mapping
US08/675,363 US5754877A (en) 1996-07-02 1996-07-02 Extended symmetrical multiprocessor architecture
US08/675,362 US5805839A (en) 1996-07-02 1996-07-02 Efficient technique for implementing broadcasts on a system of hierarchical buses
US08/675361 1996-07-02
US08/675362 1996-07-02
US08/675363 1996-07-02

Publications (1)

Publication Number Publication Date
JPH10187631A true JPH10187631A (ja) 1998-07-21

Family

ID=27418298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9211430A Pending JPH10187631A (ja) 1996-07-02 1997-07-02 拡張された対称マルチプロセッサ・アーキテクチャ

Country Status (3)

Country Link
EP (2) EP1408416A2 (ja)
JP (1) JPH10187631A (ja)
DE (1) DE69728086D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002541586A (ja) * 1999-04-09 2002-12-03 クリアスピード・テクノロジー・リミテッド 並列データ処理装置
KR101472644B1 (ko) * 2009-12-29 2014-12-15 지티이 코포레이션 멀티프로세서 완전 상호접속 방법 및 시스템

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
DE19904084B4 (de) * 1999-02-02 2008-12-11 Force Computers Gmbh Computer
US20020124083A1 (en) 2000-09-06 2002-09-05 Sun Microsystems, Inc. Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment
US6910158B2 (en) 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
US6944787B2 (en) 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
US7099935B2 (en) 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US6813726B2 (en) 2001-10-01 2004-11-02 International Business Machines Corporation Restarting a coupling facility command using a token from another coupling facility command
US6954817B2 (en) 2001-10-01 2005-10-11 International Business Machines Corporation Providing at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilities
US6859866B2 (en) 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
JP4101666B2 (ja) * 2002-01-22 2008-06-18 松下電器産業株式会社 情報記録媒体、記録装置、再生装置、記録方法、再生方法
US10628313B2 (en) 2017-05-26 2020-04-21 International Business Machines Corporation Dual clusters of fully connected integrated circuit multiprocessors with shared high-level cache

Family Cites Families (2)

* 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
JPH07122864B2 (ja) * 1991-07-22 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム、データ処理システムに使用するインターフエース回路及びデータ・プロセツサ間の通信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002541586A (ja) * 1999-04-09 2002-12-03 クリアスピード・テクノロジー・リミテッド 並列データ処理装置
JP2011023036A (ja) * 1999-04-09 2011-02-03 Rambus Inc 並列データ処理装置
JP2011023037A (ja) * 1999-04-09 2011-02-03 Rambus Inc 並列データ処理装置
KR101472644B1 (ko) * 2009-12-29 2014-12-15 지티이 코포레이션 멀티프로세서 완전 상호접속 방법 및 시스템

Also Published As

Publication number Publication date
EP0817095A3 (en) 1998-08-26
EP0817095B1 (en) 2004-03-17
DE69728086D1 (de) 2004-04-22
EP0817095A2 (en) 1998-01-07
EP1408416A2 (en) 2004-04-14

Similar Documents

Publication Publication Date Title
US5805839A (en) Efficient technique for implementing broadcasts on a system of hierarchical buses
US5754877A (en) Extended symmetrical multiprocessor architecture
US5796605A (en) Extended symmetrical multiprocessor address mapping
EP0817076B1 (en) A multiprocessing computer system employing local and global address spaces and multiple access modes
US5749095A (en) Multiprocessing system configured to perform efficient write operations
US5983326A (en) Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
US5734922A (en) Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5878268A (en) Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US5897657A (en) Multiprocessing system employing a coherency protocol including a reply count
US5950226A (en) Multiprocessing system employing a three-hop communication protocol
JP2512651B2 (ja) メモリ共有マルチプロセッサ
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
JPH10171710A (ja) 効果的なブロック・コピー動作を実行するマルチプロセス・システム
JP2005018772A (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
JPH10240707A (ja) 主記憶共有型マルチプロセッサ
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
EP0489556B1 (en) Consistency protocols for shared memory multiprocessors
JPH10187631A (ja) 拡張された対称マルチプロセッサ・アーキテクチャ
JP5265827B2 (ja) ハイブリッドコヒーレンスプロトコル
JPH10301850A (ja) データ処理システム内のキャッシュ・コヒーレンシを維持するためにセクタ化キャッシュ・メモリに疑似精密包含方式を設ける方法及びシステム
JPH10187646A (ja) スプリット smp コンピュータ・システム