JP3470951B2 - 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法 - Google Patents

非一様メモリ・アクセス・コンピュータ・システム及びその操作方法

Info

Publication number
JP3470951B2
JP3470951B2 JP18183999A JP18183999A JP3470951B2 JP 3470951 B2 JP3470951 B2 JP 3470951B2 JP 18183999 A JP18183999 A JP 18183999A JP 18183999 A JP18183999 A JP 18183999A JP 3470951 B2 JP3470951 B2 JP 3470951B2
Authority
JP
Japan
Prior art keywords
node
transaction
processing node
processing
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP18183999A
Other languages
English (en)
Other versions
JP2000112910A (ja
Inventor
ゲーリー・デール・カーペンター
マーク・エドワード・ディーン
デビッド・ブライアン・グラスコ
リチャード・ニコラス・アチェッタ、ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000112910A publication Critical patent/JP2000112910A/ja
Application granted granted Critical
Publication of JP3470951B2 publication Critical patent/JP3470951B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】 【発明の属する技術分野】
【0001】本発明は一般にデータ処理のための方法及
びシステムに関し、特に非一様メモリ・アクセス(No
n−Uniform Memory Access(N
UMA))データ処理システム及びNUMAデータ処理
システムにおける通信方法に関する。更に詳細には本発
明は潜在的な第三ノード・トランザクションが通信待ち
時間を縮小するためにバッファされるNUMAデータ処
理システム及び通信方法に関する。
【0002】
【従来の技術】複数の別個のプロセッサの処理能力を連
係させるようにハーネシングすることにより大きなコン
ピュータ・システム・パフォーマンスが達成されること
は、コンピュータ技術分野において周知である。マルチ
・プロセッサ(MP)コンピュータ・システムは多くの
異なった接続形態で設計することができ、各アプリケー
ションのパフォーマンス要求及びソフトウェア環境に応
じて特定のアプリケーションのためにより適合した設計
が可能である。最も普通のMPコンピュータ接続形態
は、典型的に共用システム相互接続手段に結合されるシ
ステム・メモリ及び入出力(I/O)サブシステムのよ
うな共通の資源を複数のプロセッサが共用する対称マル
チ・プロセッサ(SMP)構成である。そのようなコン
ピュータ・システムは、共用システム・メモリ中に記憶
されているデータへのSMPコンピュータ・システム中
の全てのプロセッサのアクセス待ち時間が理論上同じで
あるため、対称であると呼ばれている。
【0003】SMPコンピュータ・システムは比較的単
純なプロセッサ間通信及びデータ共用方法を可能にして
いるが、SMPコンピュータ・システムの拡張容易性
(スケーラビリティ)には限界がある。言い換えれば、
典型的なSMPコンピュータ・システムのパフォーマン
スは一般的にスケール(すなわち更なるプロセッサの追
加)によって改善することが期待され得るが、バス、メ
モリ、及び入出力(I/O)の固有の帯域幅制限のた
め、これらの共用資源の利用が最適化されるインプリメ
ンテーション依存サイズを越えてSMPをスケーリング
することによって得られる重要な利点が得られなくな
る。このように、システム・スケールの増加に伴い、S
MP接続形態それ自身はある程度帯域幅制限、特にシス
テム・メモリの帯域幅制限に影響される。SMPコンピ
ュータ・システムは、また、製造効率の観点から、良く
スケールできない。例えば、幾つかの部品は単一プロセ
ッサ及び小規模SMPコンピュータ・システムの両方で
の使用のために最適化され得るが、そのような部品はし
ばしば大規模SMPコンピュータ・システムでの使用の
ためには効率的ではない。逆に言えば、大規模SMPコ
ンピュータ・システムでの使用のために設計された部品
は、小規模システムでの使用のためにはコストの観点か
ら実用的でない。
【0004】それ故に、非一様メモリ・アクセス(NU
MA)として知られるより複雑なMPコンピュータ・シ
ステム接続形態が、SMPコンピュータ・システムの多
くの制限に対処する代替の設計として、現れた。典型的
なNUMAコンピュータ・システムは、夫々が一以上の
プロセッサ及びローカル”システム”メモリを含む多数
の相互接続ノードを含む。そのようなコンピュータ・シ
ステムは、各プロセッサがローカル・ノードのシステム
・メモリ中に記憶されているデータに関してはリモート
・ノードのシステム・メモリ中に記憶されているデータ
に関するよりも短いアクセス待ち時間を持つため、非一
様メモリ・アクセスを持つと言われている。NUMAシ
ステムは、異なるノードのキャッシュ間でデータ・コヒ
ーレンシが維持されるか否かに応じて、非コヒーレント
又はキャッシュ・コヒーレントに、更に分類することが
できる。キャッシュ・コヒーレントNUMA(CC−N
UMA)システムの複雑性は、各ノード内のキャッシュ
・メモリ及びシステム・メモリの多様なレベルの間だけ
ではなく異なるノードのキャッシュ及びシステム・メモ
リ間のデータ・コヒーレンシをも維持するためハードウ
ェアに必要とされる付加的通信に、大いに起因する。し
かしながら、NUMAコンピュータ・システムは、その
各ノードがより小さいSMPシステムとして実装され得
るから、従来のSMPコンピュータ・システムの拡張容
易性の制限に対処する。このように、各ノード中の共用
コンポーネントはわずか数台のプロセッサによる使用の
ために最適化され得るが、システム全体としては、比較
的短い待ち時間を維持しつつ、より大規模な並列性が得
られるという利益がある。
【0005】CC−NUMAコンピュータ・システムの
パフォーマンスに関する重要な問題は、ノードを結合す
る相互接続手段を通じて送信される通信トランザクショ
ンに関連付けられる待ち時間である。全てのデータ・ア
クセスが潜在的にノード相互接続でのコヒーレンシ又は
データ要求トランザクションを引き起こし得るため、リ
モート・ノードへの要求の送信及びリモート・ノードか
らの応答の送信に関する待ち時間はシステム全体のパフ
ォーマンスに非常に影響を与え得る。これから明らかな
ように、短いノード間通信待ち時間を持つCC−NUM
Aコンピュータ・システムを提供することが望まれる。
【0006】
【発明が解決しようとする課題】それゆえに、データ処
理のための改善された方法及びシステムを提供すること
が、本発明の一つの目的である。
【0007】改善されたNUMAデータ処理システム及
びNUMAデータ処理システムにおける通信方法を提供
することが、本発明の他の目的である。
【0008】潜在的な第三のノードのトランザクション
が通信待ち時間を縮小するためにバッファされる、改善
されたNUMAデータ処理システム及び通信方法を提供
することが、本発明の更なる目的である。
【0009】
【課題を解決するための手段】上述の目的は、以下に記
述されるように達成される。第一、第二、及び第三の処
理ノードが結合された相互接続手段を含む非一様メモリ
・アクセス(NUMA)コンピュータ・システムが提供
される。第一、第二、及び第三の処理ノードの各々は、
少なくとも一つのプロセッサ及びローカル・システム・
メモリを含む。NUMAコンピュータ・システムは、相
互接続手段に結合されたトランザクション・バッファを
更に含む。このトランザクション・バッファは、相互接
続手段を介して送信される通信トランザクションのう
ち、第三の処理ノード以外の処理ノードによって開始さ
れ且つ第三の処理ノード以外の処理ノードを宛先(ター
ゲット)とする通信トランザクションを記憶する。元々
は他の処理ノードを宛先とする特定の通信トランザクシ
ョンが第三の処理ノードによって処理されるべきとの決
定に応じて、トランザクション・バッファに結合された
バッファ制御論理は特定の通信トランザクションをトラ
ンザクション・バッファから取り出し、当該トランザク
ションを第三の処理ノードによって処理させる。一実施
の形態において、相互接続手段は同報通信構成を含み、
トランザクション・バッファ及びバッファ制御論理は、
第三の処理ノードの一部を構成する。
【0010】
【発明の実施の形態】[システム概観]図面、特に図1
を参照すると、本発明に係るNUMAコンピュータ・シ
ステムの実施の形態が図示されている。図示された実施
の形態は、例えば、ワークステーション、サーバ、又は
メインフレーム・コンピュータとして実現され得る。図
示のように、NUMAコンピュータ・システム8は、ノ
ード相互接続手段22によって相互に接続された多数
(N)の処理ノード10a乃至10dを含む。処理ノー
ド10a乃至10dの各々は、一つ以上M個までのプロ
セッサ(CPU)12を含む。プロセッサ12a乃至1
2dは好ましくは同一であり、例えばIBM社から入手
可能なPowerPC(商標)ラインのプロセッサを含
む。レジスタ、命令フロー論理及びプログラム命令を実
行するために利用される実行ユニットに加えて、プロセ
ッサ12a乃至12dの各々はまたオンチップの1次
(L1)キャッシュ(図示せず)を含む。この一次キャ
ッシュは、データをシステム・メモリ18から関連する
プロセッサ12へステージするために2次(L2)キャ
ッシュ14a乃至14dの夫々と共に利用される。言い
換えれば、1次キャッシュ及び2次キャッシュ14a乃
至14dは、システム・メモリ18とプロセッサ12と
の間において、関連するプロセッサ12によってアクセ
スされる可能性の高いデータを一時的にバッファする中
間記憶装置として機能する。2次キャッシュ14は、典
型的には、1次キャッシュより長いアクセス待ち時間を
必要とするが、1次キャッシュより大きい記憶容量を持
つ。例えば、オンチップ1次キャッシュが8乃至32キ
ロバイト(KB)の記憶容量を持つのに対し、2次キャ
ッシュ14a乃至14dは1乃至16メガバイト(M
B)の記憶容量を持つ。2次キャッシュ14a乃至14
dは図1ではプロセッサ12の外部に図示されている
が、関連するプロセッサ12にオンチップ・キャッシュ
・メモリの付加的なレベルとして組み込まれていてもよ
い。更に、キャッシュ・メモリの一以上の付加的なレベ
ル(3次(L3)、4次(L4)、等)が付加的なデー
タ記憶を提供するために利用され。以下の記述中で、各
プロセッサ12及びその関連するキャッシュ階層(1次
(L1)、2次(L2)、等)は、単一のスヌーパとし
て考察される。
【0011】図示のように、処理ノード10a乃至10
dは、システム・メモリ18及び2次キャッシュ14a
乃至14dと共にローカル相互接続手段16に結合され
たノード・コントローラ20を更に含む。各ノード・コ
ントローラ20は、少なくとも二つの機能を果たすこと
によりリモート処理ノード10のためのローカル・エー
ジェントとして、働く。第一の機能として、ノード・コ
ントローラ20は、関連するローカル相互接続手段16
をスヌープし、リモート処理ノード10へのローカル通
信トランザクションの伝送を容易にする。第二の機能と
して、ノード・コントローラ20は、ノード相互接続手
段22上の通信トランザクションをスヌープし、関連す
るローカル相互接続手段16上の関係のある通信トラン
ザクションを支配する。各ローカル相互接続手段16上
の通信は、アービタ24によって、制御される。以下で
更に論じられるように、アービタ24は、プロセッサ1
2によって生成されるバス要求信号に基づくローカル相
互接続手段16へのアクセスを調整し、ローカル相互接
続手段16上のスヌープされた通信トランザクションの
ためのコヒーレンシ応答をコンパイルする。
【0012】勿論、NUMAコンピュータ・システム8
は、本発明の理解のために必要でないゆえに省略されて
いる付加的装置を更に含むことができる。例えば、各ノ
ード10は、I/Oデバイス(例えば、表示デバイス、
キーボード、又はグラフィカル・ポインタ)、オペレー
ティング・システム及びアプリケーション・ソフトウェ
アを記憶するための不揮発性記憶装置、並びにネットワ
ーク又は付加されたデバイスとの接続のためのシリアル
・ポート及びパラレル・ポートをサポートし得る。
【0013】[メモリ構成]NUMAコンピュータ・シ
ステム8中の全てのプロセッサ12は単一の物理メモリ
空間を共用し、このことは各物理アドレスは一のシステ
ム・メモリ18の中の単一の位置にのみ関連することを
意味する。このように、一般にNUMAコンピュータ・
システム8中の何れのプロセッサ12によってもアクセ
スされ得るシステム・メモリの内容全体は、四つのシス
テム・メモリ18間に分割されたように見られ得る。例
えば、図1に図示されている本発明の実施の形態では、
プロセッサ12は、汎用メモリ・エリア及び予約エリア
の両方を含む16ギガバイト(GB)アドレス空間をア
ドレスする。汎用メモリ・エリアは500MBのセグメ
ントに分割されており、各処理ノード10にはその三つ
おきのセグメントが割り振られる。おおよそ2GBの予
約エリアは、システム制御エリア、周辺メモリ・エリア
及びI/Oエリアを含み、その各エリアは処理ノード1
0の夫々に割り振られる。
【0014】現在の議論の目的のため、特定のデータを
そのシステム・メモリ18中に記憶する処理ノード10
は、そのデータについてホーム・ノードと言われる。逆
に言えば、他の処理ノードは前記特定のデータに関して
はリモート・ノードと言われる。
【0015】[メモリ・コヒーレンシ]NUMAコンピ
ュータ・システム8中の何れのプロセッサ12も各シス
テム・メモリ18に記憶されたデータを要求し、アクセ
スし、そして変更することができるので、NUMAコン
ピュータ・システム8は同一処理ノード中のキャッシュ
間及び異なる処理ノード中のキャッシュ間のコヒーレン
シを維持するためキャッシュ・コヒーレンシ・プロトコ
ルを実装する。このため、NUMAコンピュータ・シス
テム8は、CC−NUMAコンピュータ・システムとし
て、適切に分類される。実装されたキャッシュ・コヒー
レンシ・プロトコルはインプリメンテーション依存であ
り、例えば周知の変更・排他的・共用・無効(MES
I)プロトコル又はその変形を含む。ここでは、1次キ
ャッシュ、2次キャッシュ14b、及びアービタ24は
従来のMESIプロトコルを実装しており、そのうちノ
ード・コントローラ20はM、S及びI状態を認識し、
そして正確さのためにE状態がM状態にマージされると
みなすものとする。すなわち、ノード・コントローラ2
0は、リモート・キャッシュによって排他的に保持され
るデータが実際に変更されたか否かに関わらず、変更さ
れたものとみなす。
【0016】[相互接続アーキテクチャ]各ローカル相
互接続手段16及びノード相互接続手段22は、任意の
同報通信又は二地点間相互接続アーキテクチャ、例えば
バス又はクロスバ・スイッチとして実装され得る。しか
しながら、好適な実施の形態では、各ローカル相互接続
手段16及びノード相互接続手段22は、IBM社によ
って開発された6xx通信プロトコルによって管理され
るハイブリッド・バス・アーキテクチャとして、実装さ
れている。
【0017】図2を参照すると、NUMAコンピュータ
・システム8中のノード相互接続手段22の好適な実施
の形態が一つの処理ノード10の視点から図示されてい
る。ノード相互接続手段22の図示されている実施の形
態は、分割されたトランザクションを許すために分離さ
れた(すなわち、多重化されない)アドレス部及びデー
タ部を含む。ノード相互接続手段22のアドレス部は、
中央アービタ27によってアクセスが制御される共用ア
ドレス・バス26として、実装されている。ノード・コ
ントローラ20は共用アドレス・バス26へのアクセス
をその夫々のアドレス・バス要求(ABR)信号25を
活動化することによって要求し、中央アービタ27によ
るアドレス・バス許可(ABG)信号29の活動化を通
じてアクセスの許可を通知される。ノード相互接続手段
22に結合された各ノード・コントローラ20は、ま
た、メモリ・コヒーレンシをサポートするために、共用
アドレス・バス26上の全ての通信トランザクションを
以下で更に議論するように、スヌープする。共用アドレ
ス・バス26のための関係のある信号名及び定義の概要
は、表1に与えられている。
【0018】
【表1】
【0019】共用アドレス・バス26の利用度は、共用
アドレス・バス26をパイプライン式バスとして実装す
ることによって、好適に高められる。これは、ある処理
ノード10が、他の各処理ノード10からコヒーレンシ
応答を受信する、前の通信トランザクションのマスタに
先立って次のトランザクション開始できることを意味す
る。
【0020】ノード相互接続手段22のデータ部も共用
バスとして実装され得るが、ノード相互接続手段22の
データ部は各処理ノード10のための(N−1)(例え
ば、4−1=3)個のデータ入力チャネル30及び一つ
のデータ出力チャネル28を備える分散スイッチとして
好適に実装される。ある処理ノード10によるデータ出
力チャネル28へのデータ出力は全ての処理ノード10
へ送信され、そして各処理ノード10はデータを他の全
ての処理ノード10からデータ入力チャネル30を通じ
て受信する。共用バスとしてよりもこの方法でノード相
互接続手段22のデータ部を実装することによって、デ
ッドロックは避けられ、そしてデータ帯域幅は有利に増
加される。ノード相互接続手段22のデータ部の好適な
実施の形態中の関係する信号名及び各チャネルの定義
は、以下の表2に要約されている。
【0021】
【表2】
【0022】表2に示されているように、データ・パケ
ットの受信者が、各データ・パケットが属する通信トラ
ンザクションを決定できるようにするため、各データ・
パケットはトランザクション・タグによって識別され
る。これにより、ノード相互接続手段22の共用アドレ
ス・バス26及びデータ部のタイミングを完全に分離す
ることができる。これは、アドレス保持期間とデータ保
持期間との間に固定したタイミング関係が存在しないこ
と、及びデータ保持期間が関連するアドレス保持期間と
は異なって指示され得ることを意味する。有限のデータ
通信資源の使用を規制するためにデータ・フロー制御論
理及び関連するフロー制御信号が利用されるべきことは
当業者であれば明らかであろう。
【0023】図2に示されているように、ノード相互接
続手段22の好適な実施の形態はまた高速度I−コマン
ド・チャネル31を含む。ノード相互接続手段22のデ
ータ部と同様に、この側波帯チャネルは、各処理ノード
10に対して一つの出力チャネル(コマンド出力チャネ
ル32)及び(N−1)個の入力チャネル(コマンド入
力チャネル34)を含む分散スイッチとして、好適に実
装される。チャネル32及び34は、ノード相互接続手
段22のアドレス部又はデータ部に付加的なロードをか
けることなく、処理ノード10間のI−コマンドの通信
を可能にする。I−コマンドの典型的な実施の形態が図
3に示されている。図示のように、I−コマンド36
は、4ビットのコマンド・タイプ・フィールド33、N
ビット(例えば、4ビット)のターゲット・ノード・フ
ィールド35、Nビットのソース・ノード・フィールド
37、トランザクション・タグ・フィールド38、及び
有効(V)フィールド39の五つのフィールドを含む。
コマンド・タイプ・フィールド33は、I−コマンド3
6のタイプを符号化したものである。タイプ・フィール
ド33に符号化され得るI−コマンドの幾つかが、以下
の表中に列記されている。
【0024】
【表3】
【0025】I−コマンドの各タイプごとに、受信者は
ターゲット・ノード・フィールド35で指定され、送信
ノードはソース・ノード・フィールド37で指定され、
そしてI−コマンドが関連するトランザクションはトラ
ンザクション・タグ・フィールド38で指定される。I
−コマンド36の有効性は、有効(V)フィールド39
によって示される。重要なことは、I−コマンド・チャ
ネル31を通じて処理ノード10によって発行されるI
−コマンドは、関連する通信トランザクションのアドレ
ス部又はデータ部といかなるタイミング関係も持ってい
ないということである。そして、I−コマンド・チャネ
ル31は小さいパケットを使用し、非ブロッキング(す
なわち、一の処理ノード10によるI−コマンド・チャ
ネル31の使用は他の処理ノードによる使用を禁止すな
わちブロックしない)であるため、I−コマンドは処理
ノード10間を高速度で送信され得る。
【0026】ノード相互接続手段22と同様に、ローカ
ル相互接続手段16は、三つの別個の要素、すなわちア
ドレス部、データ部、及びコヒーレンシ部分を含む。各
ローカル相互接続手段16のアドレス部は、上記された
ノード相互接続手段22の共用アドレス・バス26のよ
うに、好適に実装される。各ローカル相互接続手段16
のデータ部は上記表2に列挙されたものと同じデータ信
号を利用するが、分散スイッチよりも共用データ・バス
として好適に実装される(ただし分散スイッチでも構わ
ない)。上で議論されたI−コマンド・チャネルの代わ
りに、各ローカル相互接続手段16のコヒーレンシ部
は、付加された各スヌーパをローカル・アービタ24に
結合する信号線を含む。コヒーレンシ通信のために利用
されるローカル相互接続手段16中の当該信号線が以下
の表4に要約されている。
【0027】
【表4】
【0028】I−コマンド・チャネル31を通じて処理
ノード10間を送信されるコヒーレンシ応答に対し、ロ
ーカル相互接続手段16のAResp及びAStat線
を通じて送信されるコヒーレンシ応答は、関連するアド
レス・バス・トランザクションとの固定しているがプロ
グラマブルなタイミング関係を持っているのが好まし
い。例えば、ローカル・アドレス・バス上の通信トラン
ザクションに対する各スヌーパの応答を予備的に示すA
StatOut情報は、ローカル・アドレス・バス上の
要求の受信に続く第二のサイクルで必要とされるかも知
れない。アービタ24は、AStatOut情報をコン
パイルし、そして固定しているがプログラマブルな数の
サイクル(例えば、1サイクル)後にAStatIn情
報を発行する。可能なAStat情報が以下の表5に要
約されている。
【0029】
【表5】
【0030】AStatIn期間に続いて、AResp
Out情報が固定しているがプログラマブルな数のサイ
クル(例えば、2サイクル)後に必要とされるかも知れ
ない。アービタ24は各スヌーパのARespOut情
報をコンパイルし、ARespIn情報を好適には次の
サイクルで送付する。可能なAResp情報は上記表3
に列挙されたコヒーレンシ応答を好適に含む。また、可
能なAResp情報は、スヌープされた要求が長い待ち
時間を持つこと、及び要求のソースが後にトランザクシ
ョンの再発行を指示されることを示すために、(通常ノ
ード・コントローラ20によって)発行される”再実
行”を含む。このように、再試行応答と対照的に、再実
行応答は再実行を示したトランザクションの受信者(そ
して当該トランザクションの開始者ではない)に後で通
信トランザクションを再発行させる。
【0031】[ノード・コントローラ]図4を参照する
と、図1のNUMAコンピュータ・システム8の中のノ
ード・コントローラ20のより詳細なブロック図が、図
示されている。図4に示されているように、ローカル相
互接続手段16とノード相互接続手段22との間に結合
されている各ノード・コントローラ20は、トランザク
ション受信ユニット40、トランザクション送信ユニッ
ト42、データ受信ユニット(DRU)44、及びデー
タ送信ユニット(DSU)46を含む。トランザクショ
ン受信ユニット40、トランザクション送信ユニット4
2、DRU44及びDSU46は、例えばフィールド・
プログラマブル・ゲート・アレイ(FPGA)又は特定
用途集積回路(ASIC)によって、実装され得る。示
されたように、ノード・コントローラ20を通るアドレ
ス・パス及びデータ・パスは、アドレス信号がトランザ
クション受信ユニット40及びトランザクション送信ユ
ニット42によって処理され、データ信号がDSU44
及びDRU46によって処理されるように、二またに分
けられている。
【0032】ノード相互接続手段22から離れるトラン
ザクション・フローを示すためにそのように呼ばれてい
るトランザクション受信ユニット40の役割は、I−コ
マンド・チャネル31からI−コマンドを受信するこ
と、ノード相互接続手段22からトランザクション及び
応答を受け入れること、受信されたトランザクションを
ローカル相互接続手段16上に発行すること、及び応答
をトランザクション送信ユニット42へ転送することで
ある。トランザクション受信ユニット40は、トランザ
クション・バッファ52を維持する役割もある。トラン
ザクション・バッファ52は、トランザクション受信ユ
ニット40がローカル処理ノード以外の処理ノード10
をソース及びターゲットとする、共用アドレス・バス2
6上のスヌープされた通信トランザクションを記憶す
る、連想バッファである。トランザクション・バッファ
52の各エントリは通信トランザクションをトランザク
ション・タグ(すなわち、アドレス・ビット<8:15
>)と共に記憶するので、通信トランザクションは、以
下に図6を参照して説明するように、迅速にアクセスさ
れ得る。
【0033】その名が示すように、トランザクションを
ノード相互接続手段22の方へ流すための管路であるト
ランザクション送信ユニット42は、メモリ要求トラン
ザクションを処理するためトランザクション受信ユニッ
ト40と相互に作用し、ローカル相互接続手段16とノ
ード相互接続手段22のデータ部との間のデータ転送を
制御するためのコマンドをDRU44及びDSU46へ
発行する。トランザクション送信ユニット42は、また
ノード相互接続手段22のための選択された(すなわ
ち、MSI)コヒーレンシ・プロトコルを実装し、コヒ
ーレンス・ディレクトリ50を維持する。
【0034】コヒーレンス・ディレクトリ50は、ロー
カル処理ノードがホーム・ノードであるところのリモー
ト・ノード中のキャッシュへ取り出されたデータ(例え
ば、キャッシュ・ライン)のシステム・メモリ・アドレ
スの指示を記憶する。各データのアドレス指示は、当該
データのコピーを有する各処理ノードの識別子及びその
ような各処理ノードにおけるデータのコヒーレンシ状況
と共に記憶されている。コヒーレンシ・ディレクトリ5
0のエントリのための可能なコヒーレンシ状態が表6に
要約されている。
【0035】
【表6】
【0036】表6に示されているように、リモート処理
ノードによって保持されるキャッシュ・ラインのコヒー
レンシ状態の知識はあいまいである。このあいまいさ
は、リモートに保持されるキャッシュ・ラインが、Sか
らI、EからI、又はEからMへの遷移を、ホーム・ノ
ードのノード・コントローラ20に報告することなく、
なし得るという事実に負うところのものである。
【0037】[先行技術の”第三ノード”通信のシナリ
オ]図5(A)乃至(D)を参照すると、先行技術によ
るNUMAコンピュータ・システムの典型的な”第三ノ
ード”通信のシナリオが図示されている。図示のよう
に、従来のNUMAコンピュータ・システム58は、夫
々参照番号60、62、64、及び66にて示される第
一、第二、第三、及び第四のノードを含む。第二のノー
ド62が第三のノード64によって排他的に(すなわ
ち、E又はM状態で)保持されているデータのホーム・
ノードであると仮定し、第一のノード60が読取要求を
ノード相互接続手段上に同報通信することによって当該
データを要求する。図5(A)に示されているように、
要求トランザクションは第二のノード62、第三のノー
ド64、及び第四のノード66によって受信される。し
かしながら、要求されたデータが第二のノード62によ
って所有されているため、第三のノード64及び第四の
ノード66は当該データ要求を無視する。要求トランザ
クションの受領に応答して、第二のノード62は要求さ
れたデータのコピーがリモート・ノード中に保持されて
いるか否かを決定するためそのノード・ディレクトリを
チェックする。排他的にリモート・ノードによって保持
されている要求されたデータが第二のノード62のノー
ド・ディレクトリ中に記録されているため、第二のノー
ド62は第一のノード60から受信された要求トランザ
クションに対して直ちには応答できない。これは、第二
のノード62にある要求されたデータのコピーが古くな
ったかも知れない(すなわち、第三のノード64のプロ
セッサが要求されたデータを変更しているかも知れな
い)という理由による。
【0038】したがって、図5(B)に示されるよう
に、第二のノード62はノード相互接続手段を通じて、
要求されたデータのアドレスを指定する要求トランザク
ションを第三のノード64に発行する。矢印70によっ
て示されるように、要求トランザクションに応答して第
三のノード64は要求トランザクションを要求されたデ
ータを記憶している内部キャッシュへ転送する。要求さ
れたデータを排他的に保持している内部キャッシュは、
キャッシュが要求されたデータのコヒーレンシ状態をS
状態へ変更することを示す共用コヒーレンシ応答を返
す。そして図5(C)に示されるように、第三のノード
64は、自信が保持している要求されたデータのコピー
のコヒーレンシ状態が共用状態へ変更されることを知ら
せる共用応答を第二のノード62へ送信する。
【0039】最後に図5(D)を参照すると、第三のノ
ード64からの共用応答の受信に応答して、第二のノー
ド62は、矢印72によって示されるように、要求トラ
ンザクションを処理することが可能である。そして、要
求されたデータは、矢印74によって示されるように、
共用コヒーレンシ状態で第一のノード60へ供給され
る。この従来の第三ノード通信シナリオはNUMAコン
ピュータ・システムにおけるノード間のデータ・コヒー
レンシを保証するが、図5(A)及び(B)に示される
ように、同じ通信トランザクションが第三のノード64
へ二度送信されることは問題である。本発明はノード相
互接続手段を介するこの冗長な通信を有益に除去し、そ
れによって通信待ち時間を縮小し、NUMAコンピュー
タ・システムの拡張容易性を高める。
【0040】[革新的な第三ノード通信シナリオ]図6
を参照すると、本発明に係る第三のノードの通信方法の
高レベル論理フローチャートが、図示されている。図6
に示されているフローチャートは上記に議論された従来
の先行技術のシナリオと同じ初期状態を想定している。
すなわち、プロセッサ12a乃至12dの一つが、処理
ノード10cによって排他的に保持され且つび処理ノー
ド10bをホーム・ノードとして持つキャッシュ・ライ
ンに対する読取要求を発行している。
【0041】図示のように、処理はブロック80にて開
始し、次に、処理ノード10aのノード・コントローラ
20が、ノード相互接続手段22の共用アドレス・バス
26を通じて、指定のアドレスにあるデータを要求する
通信トランザクションを送信するブロック82へ進む。
好適な実施の形態では、共用アドレス・バス26が同報
通信媒体であるため、要求トランザクションは各処理ノ
ード10b、10c、及び10dによって受信される。
ブロック82に続いて、処理はブロック84及びブロッ
ク90の双方へ進む。
【0042】ブロック84乃至88は、共用アドレス・
バス26上の要求トランザクションの受信に対して処理
ノード10b(すなわち、要求されたキャッシュ・ライ
ンのホーム・ノード)によって行われる処理を示す。最
初に、ブロック84にて示されているように、処理ノー
ド10bのノード・コントローラ20はそのローカル相
互接続手段16の所有権を仲裁し、ローカル相互接続手
段16上の要求トランザクションを支配する。そして処
理はブロック86へ進み、処理ノード10bのノード・
コントローラ20が要求トランザクションに対するその
ARespOutコヒーレンシ応答のために再実行を決
める。再実行の決定は、トランザクション送信ユニット
42がコヒーレンス・ディレクトリ50への参照によっ
て、要求されたキャッシュ・ラインのコヒーレンシ状態
は要求されたデータを排他的に保持する第三の処理ノー
ドすなわち処理ノード10cを関与させること無しには
解決され得ないことを決定したことを示す。ブロック8
8に示されているように、ARespInのために再実
行を決めるローカル相互接続手段16のアービタ24に
応答して、処理ノード10bのノード・コントローラ2
0中のトランザクション送信ユニット42は、処理ノー
ド10aによって発行された元の要求トランザクション
のトランザクション・タグと共に”第三ノード実行”I
−コマンドを処理ノード10cへI−コマンド・チャネ
ル31を通じて発行する。I−コマンドがノード相互接
続手段22のアドレス部又はデータ部ではなく、側波帯
I−コマンド・チャネル31を通じて送信されるため、
ノード相互接続手段22のアドレス帯域幅は他のトラン
ザクションを通信するために使用され得る。このように
して、ノード相互接続手段22の帯域幅が制限されたブ
ロッキング部分の通信待ち時間が縮小される。ブロック
88に続いて、処理は、以下に記述されるブロック10
0へ、進む。
【0043】ブロック90は、処理ノード10aによっ
て発行された要求トランザクションの受信に応答して、
夫々要求トランザクションのソースでもターゲットでも
ない処理ノード10c及び10dで引き起こされる処理
を示す。示されているように、各処理ノード10c及び
10d中のトランザクション受信ユニット40は、要求
トランザクション及びトランザクション・タグを、それ
ぞれのトランザクション・バッファ52のエントリに記
憶する。好適な実施の形態において、スヌープされたト
ランザクションの全てが、第三のノード(すなわち、ト
ランザクションのソースでもターゲットでもない処理ノ
ード)のトランザクション・バッファ52に記憶される
わけではない。そのかわりに、トランザクション・バッ
ファ52の限られた記憶容量を大切に使うため、第三の
ノードの関与を必要とし得るトランザクションとして、
アドレス信号線<0:7>及びTDescriptor
sによって識別されるトランザクションのみがバッファ
される。勿論、限られたサイズのトランザクション・バ
ッファ52の記憶効率を改善するための他の最適化、例
えば、もしバッファされなければ、再送信のために規定
数よりも多い通信資源の使用を引き起こすトランザクシ
ョンのみを記憶することも可能である。
【0044】処理は、ブロック90から、第三のノード
である処理ノード10cが”第三ノード実行”I−コマ
ンドを受信したか否かの決定を示すブロック100へ進
む。もし受信していなければ、図6に示されている処理
は、”第三ノード実行”I−コマンドが処理ノード10
cによって受信されるまで、ブロック100を繰り返
す。勿論、処理ノード10cが要求トランザクションを
トランザクション・バッファ52に記録してから、”第
三ノード実行”I−コマンドを受信するまでの間に、処
理ノード10a乃至10dは他の通信トランザクション
を開始し、受信し、処理することができる。そして、処
理ノード10cが”第三ノード実行”I−コマンドを受
信したというブロック100での決定に応答して、処理
はブロック102へ進む。
【0045】ブロック102は、I−コマンド・チャネ
ル31を通じて受信されたトランザクション・タグと一
致するトランザクション・タグがトランザクション・バ
ッファ52の中に記憶されているか否かを、処理ノード
10cのノード・コントローラ20の中のトランザクシ
ョン受信ユニット40が決定することを示している。ト
ランザクション・バッファ52のサイズと、ステップ9
0及びステップ102の間に処理ノード10cによって
受信された通信トランザクションの数とに依存して、ト
ランザクション・タグによって指定されるトランザクシ
ョンは、もはや、サイズが限られているトランザクショ
ン・バッファ52の中に記憶されていないかも知れな
い。一致するトランザクション・タグを有するトランザ
クションがトランザクション・バッファ52の中に記憶
されている場合、処理はブロック102から以下に記述
されるブロック108へ進む。しかしながら、I−コマ
ンド・チャネル31を通じて受信されたトランザクショ
ン・タグがトランザクション・バッファ52中の何れの
トランザクション・タグとも一致しなければ、処理はブ
ロック104へ進む。ブロック104は、処理ノード1
0cが受信されたトランザクション・タグと共に”再発
行”I−コマンドを処理ノード10bへI−コマンド・
チャネル31を通じて送信することを示している。ブロ
ック106にて示されているように、”再発行”I−コ
マンドの受信に応答して、処理ノード10bは、図5
(B)に関して上述したように、ノード相互接続手段2
2の共用アドレス・バス26を通じて、通信トランザク
ションを処理ノード10cへ再送信する。このように、
関係のある通信トランザクションが処理ノード10cの
トランザクション・バッファ52に記憶されていないと
いう、統計的にありそうもない事象において、NUMA
コンピュータ・システム8は従来のNUMAコンピュー
タ・システム58のように第三ノード通信シナリオを扱
う。
【0046】処理は、ブロック102又はブロック10
6のどちらかから、処理ノード10cのノード・コント
ローラ20の中のトランザクション受信ユニット40が
要求トランザクション(トランザクション・バッファ5
2からアクセスされ、又は処理ノード10bから受信さ
れた)を支配するブロック108へ進む。要求トランザ
クションに応答して、ローカル相互接続手段16に接続
された各スヌーパはARespOut期間中にコヒーレ
ンシ応答を標示する。要求されたデータを排他的に保持
するスヌーパは、ARespOut期間中に共用を標示
し、要求されたキャッシュ・ラインのコヒーレンシ状況
のS状態への変更を開始する。その間、他のスヌーパは
ヌルを標示する。ブロック110に示されているよう
に、処理ノード10cのバス・アービタ24は、これら
のコヒーレンシ応答をコンパイルし、そしてAResp
In期間中に共用コヒーレンシ応答を発行する。共用A
RespInコヒーレンシ応答の受信に応答して、ノー
ド・コントローラ20の中のトランザクション送信ユニ
ット42は、共用応答及びトランザクション・タグを含
むI−コマンドを処理ノード10bへ、I−コマンド・
チャネル31を通じて、送信する。処理は、処理ノード
10bのノード・コントローラ20が処理ノード10b
のローカル相互接続手段16上の要求トランザクション
を再実行するブロック112へ進む。要求トランザクシ
ョン再実行のスヌープに応答して、処理ノード10bの
ノード・コントローラ20は、ARespOut期間中
に共用を標示し、処理ノード10cが要求されたデータ
を共用状態で保持することを示す。処理ノード10bの
バス・アービタ24は、その後、コヒーレンシ応答をコ
ンパイルし、そしてARespIn期間中に共用を標示
する。最後に、ブロック114にて示されているよう
に、処理ノード10bのノード・コントローラ20は共
用応答及びトランザクション・タグを含むI−コマンド
を処理ノード10aへI−コマンド・チャネル31を通
じて送信し、そして要求されたキャッシュ・ラインを処
理ノード10aへデータ出力チャネル28を通じて送
る。その後、処理はブロック116にて終了する。
【0047】前述のように、本発明は、改善されたNU
MAコンピュータ・システム及びNUMAコンピュータ
・システムでの改善された第三ノード通信方法を提供す
る。本発明によれば、第三のノードの関与を必要とする
トランザクションは、通信トランザクションのソースで
もターゲットでもない第三ノードにて、バッファされ
る。第三のノードの関与が必要とされる場合、トランザ
クションはノード相互接続手段の中の共用アドレス・バ
スを介して再送信される代わりに、バッファからアクセ
スされ得る。このようにして、ノード相互接続手段の帯
域幅が限られた部分におけるトラフィックは有利に縮小
され、それによって通信待ち時間が少なくなり、システ
ム全体のパフォーマンスがいっそう良くなる。
【0048】好適な実施の形態を参照しながら本発明を
説明してきたが、形式及び詳細の種々の変更は本発明の
精神及び範囲から逸脱することなくなされることは当業
者によって理解されるであろう。例えば、本発明はノー
ド相互接続手段がバス・ベースの構成(例えば、共用バ
ス)を有する好適な実施の形態について記述されたが、
ノード相互接続手段はクロスバ・スイッチのような二地
点間同報通信構成であってもよい。その場合、各ノード
のためのトランザクション・バッファ及び関連する制御
論理は、各ノード中に組み入れられるよりも、クロスバ
・スイッチに結合される。
【図面の簡単な説明】
【図1】本発明が有利に用いられるNUMAコンピュー
タ・システムの実施の形態を示す図。
【図2】図1に示されている実施の形態中で用いられる
相互接続アーキテクチャのより詳細なブロック図。
【図3】I−コマンドの実施の形態を示す図。
【図4】図1に示されているノード・コントローラのよ
り詳細なブロック図。
【図5】従来技術の第三ノード通信シナリオを示す図。
【図6】本発明に係る第三ノード通信方法の高レベル論
理フローチャートを示す図。
【符号の説明】
8 非一様メモリ・アクセス・コンピュータ・システ
ム 10a 第一の処理ノード 10b 第二の処理ノード 10c 第三の処理ノード 10d 第四の処理ノード 12 プロセッサ 14 二次キャッシュ 16 ローカル相互接続手段 18 ローカル・システム・メモリ 20 ノード・コントローラ 40 トランザクション受信ユニット 42 トランザクション送信ユニット 44 データ受信ユニット(DRU) 46 データ送信ユニット(DSU) 50 コヒーレンス・ディレクトリ 52 トランザクション・バッファ 24 ローカル・アービタ 22 ノード相互接続手段 25 アドレス・バス要求(ABR) 27 中央アービタ 29 アドレス・バス許可(ABG) 26 共用アドレス・バス 28 データ出力 30 データ入力 31 I−コマンド・チャネル 32 コマンド出力 34 コマンド入力 36 I−コマンド 33 コマンド・タイプ 35 ターゲット・ノード 37 ソース・ノード 38 トランザクション・タグ 39 有効 58 非一様メモリ・アクセス・コンピュータ・シス
テム 60 第一の処理ノード 62 第二の処理ノード 64 第三の処理ノード 66 第四の処理ノード
フロントページの続き (72)発明者 マーク・エドワード・ディーン アメリカ合衆国78730、テキサス州オー スティン、ランチ・クリーク・ドライブ 3610 (72)発明者 デビッド・ブライアン・グラスコ アメリカ合衆国78726、テキサス州オー スティン、エムバー・グレン・ドライブ 10337 (72)発明者 リチャード・ニコラス・アチェッタ、ジ ュニア アメリカ合衆国78660、テキサス州フル ガビル、ダンスワース・ドライブ 17907 (56)参考文献 特開 平10−143483(JP,A) 米国特許5734922(US,A) 欧州特許出願公開817071(EP,A 1) (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 12/08

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】夫々が、ローカル相互接続手段と、前記ロ
    ーカル相互接続手段に接続された、少なくとも一つのプ
    ロセッサ及びローカル・システム・メモリを含む、第
    一、第二、及び第三の処理ノードと、前記各処理ノードを接続するノード相互接続手段と、 を含む、非一様メモリ・アクセス(NUMA)・コンピ
    ュータ・システムにおいて、 各処理ノードが、ローカル相互接続手段とノード相互接
    続手段とに接続されたノード・コントローラを含み、 各ノード・コントローラが、他のノードを開始及び宛先
    とする、ノード相互接続手段上を送信される通信トラン
    ザクションを記憶するトランザクション・バッファと、
    データのコピーを有する各処理ノードの識別子及び各処
    理ノードにおけるデータのコヒーレンシ状況を記憶する
    コヒーレンス・ディレクトリとを含み、 前記第一の処理ノードが前記通信トランザクションの開
    始ノードであり、前記第二の処理ノードが宛先ノードの
    場合に、 前記第三の処理ノードのトランザクション・バッファ
    が、前記通信トランザクションを記憶し、 前記第二の処理ノードのノード・コントローラが、前記
    第二の処理ノードのコヒーレンス・ディレクトリを参照
    することによって、要求されたキャッシュ・ラインのコ
    ヒーレンシ状態が、前記第三の処理ノードによって排他
    的に保持されている状態であるので前記通信トランザク
    ションは 前記第三の処理ノードによって処理されるべき
    であるとの決定をし、前記通信トランザクションに関連
    付けられたトランザクション・タグと共に「第三ノード
    実行」コマンドを前記第三の処理ノードに送信し、 前記コマンドに応答して、前記第三の処理ノードのノー
    ド・コントローラが、前記通信トランザクションを前記
    トランザクション・バッファから取り出して処理する、 ことを特徴とする非一様メモリ・アクセス(NUMA)
    ・コンピュータ・システム。
  2. 【請求項2】前記ノード相互接続手段は同報通信相互接
    続手段を含む、請求項1に記載のNUMAコンピュータ
    ・システム。
  3. 【請求項3】前記トランザクション・バッファが、前記
    通信トランザクションにおいて要求されたキャッシュ・
    ラインのコヒーレンシ状態が、前記第三の処理ノードに
    よって排他的に保持されている状態であるので、前記第
    三の処理ノードによる処理を必要とし得る通信トランザ
    クションのみを記憶する、請求項1または2に記載のN
    UMAコンピュータ・システム。
  4. 【請求項4】前記トランザクション・バッファ中の各通
    信トランザクションが関連するトランザクション・タグ
    によってアクセスされる、請求項1〜3のいずれか1項
    に記載のNUMAコンピュータ・システム。
  5. 【請求項5】前記ノード相互接続手段が、前記第二の処
    理ノードから前記第三の処理ノードへ前記コマンドを運
    ぶ非ブロッキング相互接続手段を含む、請求項1〜4の
    いずれか1項に記載のNUMAコンピュータ・システ
    ム。
  6. 【請求項6】前記第三の処理ノードのノード・コントロ
    ーラが、前記第三の処理ノードによって処理されるべき
    通信トランザクションのトランザクション・タグが、前
    記トランザクション・バッファの中の何れのトランザク
    ション・タグとも一致しないことを決定し該決定に応
    答して再発行コマンドを前記第二の処理ノードへ送信す
    る、請求項1〜5のいずれか1項に記載のNUMAコン
    ピュータ・システム。
  7. 【請求項7】夫々が、ローカル相互接続手段と、前記ロ
    ーカル相互接続手段に接続された、少なくとも一つのプ
    ロセッサ及びローカル・システム・メモリを含む、第
    一、第二、及び第三の処理ノードと、前記各処理ノードを接続するノード相互接続手段とを含
    む、非一様メモリ・アク セス(NUMA)・コンピュー
    タ・システム を操作する方法であって、各処理ノードが、ローカル相互接続手段とノード相互接
    続手段とに接続されたノード・コントローラを含み、 各ノード・コントローラが、他のノードを開始及び宛先
    とする、ノード相互接続手段上を送信される通信トラン
    ザクションを記憶するトランザクション・バッファと、
    データのコピーを有する各処理ノードの識別子及び各処
    理ノードにおけるデータのコヒーレンシ状況を記憶する
    コヒーレンス・ディレクトリとを含み、 前記第一の処理ノードから前記第二の処理ノードを宛先
    とする通信トランザクションを前記相互接続手段上へ送
    信するステップと、前記通信トランザクションを前記第三の処理ノードで受
    信し、前記第三の処理ノードのトランザクション・バッ
    ファに記憶するステップと前記第二の処理ノードのノード・コントローラが前記
    第二の処理ノードのコヒーレンス・ディレクトリを参照
    することによって、要求されたキャッシュ・ラインのコ
    ヒーレンシ状態が、前記第三の処理ノードによって排他
    的に保持されている状態であるので前記通信トランザク
    ションは前記第三の処理ノードによって処理されるべき
    であるとの決定をし、前記通信トランザクションに関連
    付けられたトランザクション・タグと共に「第三ノード
    実行」コマンドを前記第三の処理ノードに送信するステ
    ップと、 前記コマンドに応答して前記第三のノード・コントロ
    ーラが、前記通信トランザクションを前記トランザクシ
    ョン・バッファから取り出して処理するステップと、 を含む方法。
  8. 【請求項8】前記ノード相互接続手段が同報通信相互接
    続手段を含む、請求項7に記載の方法。
  9. 【請求項9】前記通信トランザクションを前記トランザ
    クション・バッファに記憶するステップが、前記通信ト
    ランザクションにおいて要求されたキャッシュ・ライン
    のコヒーレンシ状態が、前記第三の処理ノードによって
    排他的に保持されている状態 であるので、前記第三の処
    理ノードによる処理を必要とし得る場合にのみ前記通信
    トランザクションを前記トランザクション・バッファに
    記憶するステップを含む、請求項7または8に記載の方
    法。
  10. 【請求項10】前記通信トランザクションを前記トラン
    ザクション・バッファから取り出すステップが、関連付
    けられたトランザクション・タグを利用して前記通信ト
    ランザクションを前記トランザクション・バッファから
    取り出すステップを含む、請求項7〜9のいずれか1項
    に記載の方法。
  11. 【請求項11】前記コマンドを送信するステップが、前
    コマンドを非ブロッキング相互接続手段を通じて送信
    するステップを含む、請求項10に記載の方法。
  12. 【請求項12】前記第三の処理ノードのノード・コント
    ローラが、前記第三の処理ノードによって処理されるべ
    き通信トランザクションのトランザクション・タグが
    前記トランザクション・バッファの中の何れのトランザ
    クション・タグとも一致しないことを決定するステップ
    記憶されていないと決定された場合には、 再発行コマン
    ドを前記第二の処理ノードへ送信するステップを更に含
    む、請求項7〜11のいずれか1項に記載の方法。
JP18183999A 1998-06-30 1999-06-28 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法 Expired - Fee Related JP3470951B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/106945 1998-06-30
US09/106,945 US6067611A (en) 1998-06-30 1998-06-30 Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency

Publications (2)

Publication Number Publication Date
JP2000112910A JP2000112910A (ja) 2000-04-21
JP3470951B2 true JP3470951B2 (ja) 2003-11-25

Family

ID=22314080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18183999A Expired - Fee Related JP3470951B2 (ja) 1998-06-30 1999-06-28 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法

Country Status (5)

Country Link
US (1) US6067611A (ja)
JP (1) JP3470951B2 (ja)
KR (1) KR100324975B1 (ja)
BR (1) BR9903228A (ja)
CA (1) CA2271536C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123901A (zh) * 2016-11-30 2018-06-05 新华三技术有限公司 一种报文传输方法和装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546429B1 (en) * 1998-09-21 2003-04-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6418462B1 (en) * 1999-01-07 2002-07-09 Yongyong Xu Global sideband service distributed computing method
US6192452B1 (en) * 1999-02-26 2001-02-20 International Business Machines Corporation Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system
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
US6591307B1 (en) * 1999-11-09 2003-07-08 International Business Machines Corporation Multi-node data processing system and method of queue management in which a queued operation is speculatively cancelled in response to a partial combined response
JP3764015B2 (ja) * 1999-12-13 2006-04-05 富士通株式会社 メモリアクセス方法及びマルチプロセッサシステム
KR100362607B1 (ko) * 2000-05-10 2002-11-29 정상화 I/o 버스상의 캐쉬 일관성 비단일 메모리 엑세스 모듈을 포함하는 멀티프로세서 시스템의 프로세싱 노드 장치 및 그 제어방법
US20030041215A1 (en) * 2001-08-27 2003-02-27 George Robert T. Method and apparatus for the utilization of distributed caches
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7111128B2 (en) * 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US7644237B1 (en) * 2003-06-23 2010-01-05 Mips Technologies, Inc. Method and apparatus for global ordering to insure latency independent coherence
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US7577794B2 (en) * 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US7451231B2 (en) * 2005-02-10 2008-11-11 International Business Machines Corporation Data processing system, method and interconnect fabric for synchronized communication in a data processing system
US7395381B2 (en) * 2005-03-18 2008-07-01 Intel Corporation Method and an apparatus to reduce network utilization in a multiprocessor system
JP5115075B2 (ja) * 2007-07-25 2013-01-09 富士通株式会社 転送装置、転送装置を有する情報処理装置及び制御方法
JP6578992B2 (ja) * 2016-03-02 2019-09-25 富士通株式会社 制御回路、情報処理装置、および情報処理装置の制御方法
US10713169B2 (en) 2018-01-17 2020-07-14 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10387310B2 (en) 2018-01-17 2019-08-20 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US10579527B2 (en) 2018-01-17 2020-03-03 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
US11068407B2 (en) 2018-10-26 2021-07-20 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction
US10884740B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads
US11119781B2 (en) 2018-12-11 2021-09-14 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a fronting load
US11106608B1 (en) 2020-06-22 2021-08-31 International Business Machines Corporation Synchronizing access to shared memory by extending protection for a target address of a store-conditional request
US11693776B2 (en) 2021-06-18 2023-07-04 International Business Machines Corporation Variable protection window extension for a target address of a store-conditional request

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535116A (en) * 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5673413A (en) * 1995-12-15 1997-09-30 International Business Machines Corporation Method and apparatus for coherency reporting in a multiprocessing system
US5893144A (en) * 1995-12-22 1999-04-06 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US5878268A (en) * 1996-07-01 1999-03-02 Sun Microsystems, Inc. Multiprocessing system configured to store coherency state within multiple subnodes of a processing node

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123901A (zh) * 2016-11-30 2018-06-05 新华三技术有限公司 一种报文传输方法和装置
CN108123901B (zh) * 2016-11-30 2020-12-29 新华三技术有限公司 一种报文传输方法和装置
US11057302B2 (en) 2016-11-30 2021-07-06 New H3C Technologies Co., Ltd. Sending packet

Also Published As

Publication number Publication date
JP2000112910A (ja) 2000-04-21
US6067611A (en) 2000-05-23
CA2271536C (en) 2002-07-02
CA2271536A1 (en) 1999-12-30
BR9903228A (pt) 2000-10-03
KR20000005690A (ko) 2000-01-25
KR100324975B1 (ko) 2002-02-20

Similar Documents

Publication Publication Date Title
JP3470951B2 (ja) 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法
KR100348947B1 (ko) 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US5749095A (en) Multiprocessing system configured to perform efficient write operations
KR100465583B1 (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법
JP3661761B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム
EP0818733B1 (en) A multiprocessing system configured to perform software initiated prefetch operations
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US8015366B2 (en) Accessing memory and processor caches of nodes in multi-node configurations
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
JP2000250883A (ja) 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム
JP2000250882A (ja) 不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム
US6085293A (en) Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US7089376B2 (en) Reducing snoop response time for snoopers without copies of requested data via snoop filtering
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
MXPA99006144A (en) Data processing system for non-uniform memory access data introducing potential intermediate memories third-node transactions to decrease communicate waiting time

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080912

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees