JP2010250863A - 複数ノード間での通信方法、相互接続ポートおよび相互接続システム - Google Patents

複数ノード間での通信方法、相互接続ポートおよび相互接続システム Download PDF

Info

Publication number
JP2010250863A
JP2010250863A JP2010180051A JP2010180051A JP2010250863A JP 2010250863 A JP2010250863 A JP 2010250863A JP 2010180051 A JP2010180051 A JP 2010180051A JP 2010180051 A JP2010180051 A JP 2010180051A JP 2010250863 A JP2010250863 A JP 2010250863A
Authority
JP
Japan
Prior art keywords
data
node
request
processor
nodes
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.)
Granted
Application number
JP2010180051A
Other languages
English (en)
Other versions
JP5461339B2 (ja
Inventor
James C Wilson
シー.ウィルソン ジェームズ
Wolf-Dietrich Weber
ウェバー ウルフ−デートリッヒ
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2010250863A publication Critical patent/JP2010250863A/ja
Application granted granted Critical
Publication of JP5461339B2 publication Critical patent/JP5461339B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Abstract

【課題】複数のノード間での通信方法を開示する。
【解決手段】各ノードは、複数のプロセッサおよび相互接続チップセットを含み、第1のノード内のプロセッサからデータ要求を発行し、拡張ポート(またはスケーラビリティポート)を通してこのデータ要求を他のノードに渡す。また、データ要求に応答してメモリのアクセスを開始し、各ノード内の各プロセッサのプロセッサキャッシュをスヌープする。従って、該要求を発行するプロセッサを持つノード内の(あるいは別のノードの)プロセッサキャッシュまたはメモリ内のデータの格納場所を識別する。さらに、ルータシステムにて2つの直接結合されたノード間でデータを要求する方法と、相互接続システム内の3またはそれ以上のノード間でのデータ要求方法と、相互接続システム内のクロスケースの解消方法と、ノードを直接またはプロトコルエンジンを通して結合するための相互接続システムも開示する。
【選択図】図1

Description

本発明は、共有メモリノード用ポート、より特定的には、2以上のノードを相互に接続するためのスケーラブルポートに関する。
従来のスケーラブルマルチプロセッサは、相互接続システムを用いて相互に接続されたマルチノードで構成されている。各ノードは、プロセッサ、ダイナミックランダムアクセスメモリ(DRAM)および入出力(I/O)デバイスからなる。プロセッサ、DRAMおよびI/Oデバイスは、バスと結合している。単一チップセットもまた、バスと結合し、全ての構成要素間の相互動作を制御する。
単一チップセットはまた、従来の相互接続ポートとも結合する。従来の相互接続ポートは、相互接続システム内で各ノードを相互に物理的に接続することを可能にする外部インタフェースである。各マルチノードを相互に接続することによって、共有メモリシステムを構築することが可能となり得る。共有メモリシステムの一例としては、キャッシュコヒーレント(Cashe Coherent)、不均一メモリアクセス(Non−Uniform Memory Access)(CC−NUMA)アーキテクチャがある。
相互接続システムにおいて、1つのノードをもう1つのノードに接続するためには、相互接続ポートが必要である。2つのノードしか存在しない場合、相互接続ポートは、これら2つのノードのみの間の通信用として最適化される。2ノードシステム内の専用相互接続ポートが、3以上のノードをもつシステムよりも一般的であり広く使用されている。しかしながら、相互接続ポートはかかる2ノードシステムの専用ともなっていることから、該相互接続ポートは2ノードを超えてスケール(scale)することはできない。
2以上のノードを相互接続するためには、相互接続ポートと付加的な各ノードとの間に、付加的なハードウエアを追加することが必要である。この付加的なハードウエアは、ポートをスケールするのに使用される。付加的ハードウエアはまた、システムの全体的コストをも増大させる。さらに付加的ハードウエアは、付加的なシステムスペースを必要とし、スペースが限定された環境およびアプリケーションのためにはさほど好適なものではない。付加的ハードウエアはまた、信号遅延点の数を増加させ、このことが今度は、全体的システム性能の減少をひき起こす。付加的なハードウエアとそれから生ずる問題とが、このような従来の相互接続ポートが、2つしかノードをもたないシステムにとって望ましくないものにしてしまうもう1つの理由となる。
要約すると、従来の相互接続システムに伴ういくつかの問題点は、相互接続システムからノードを除去しまたはこれに追加する場合に、最高3つの異なるタイプの相互接続ポートが必要となる可能性がある、ということにある。ノードが1つしかない場合、いかなる相互接続ポートも必要とされない。2つのノードが存在する場合には、スケール不可の相互接続ポートが必要とされる。3以上のノードが存在する場合、スケーラブル相互接続ポートが必要とされる。しかしながらこのスケーラブル相互接続ポートは2ノードシステムには効率の悪いものである。
従って、(1)スケーラブルで、(2)2ノードシステムのときと同様に、3以上のノードをもつシステムにおいても高い性能を示し、(3)付加的なノードがシステムに追加されたときでもシステムコストを増大させない、といった相互接続ポートが要請される。
本発明の相互接続システムは、相互に結合され通信し合うノードを含む。該相互接続システムは、1つのノード,2つのノードまたはそれ以上のノードを含むことができる。1つのノードを有する相互接続システムにおいてはそのノードしか存在しないことから、相互接続は全く無い。2ノードシステムでは、両方のノードを互いに直接接続して相互接続システムを形成することができる。3以上のノードをもつシステムでは、各ノードは互いに直接接続しない。むしろ、各ノードはプロトコルエンジンを含み、そのプロトコルエンジンは全て結合して相互接続システムを形成する。一般に、各ノードはノード制御部、メモリシステム、入出力(「I/O」)システム、および中央処理ユニットといったような1またはそれ以上の処理ユニットを含む。各処理ユニットは、データを格納可能な連係するプロセッサキャッシュを含む。
2ノードおよび2ノード以上のケースの両方において、ノードは相互接続ポートを通して結合する。この相互接続ポートは、スケーラビリティまたは拡張ポートと呼ぶことができる。相互接続ポートは、物理層、信号プロトコル層、コマンドプロトコル層およびコヒーレンスプロトコル層を含む。物理層は信号を送信または受信する。信号プロトコル層は物理層を使用し、受信信号または送信信号のいずれかとの関係を規定する。コマンドプロトコル層は、信号プロトコル層に結合し、受信信号に応答したデータ要求または、送信信号を準備することに応答した回答を生成する。コヒーレンスプロトコル層はコマンドプロトコル層を使用し、データ要求または回答のいずれかに応答して、データのリーガル(legal)トランザクションセットを提供する。
物理層、信号プロトコル層およびコマンドプロトコル層は対称層である。コヒーレンスプロトコル層は、非対称層である。相互接続ポートのこの有利な設計により、2ノードおよび3ノード以上の相互接続システムの両方に対する該ポートの汎用の応用が可能となる。対称的な設計およびポートの構造によって、相互接続システム内の各ノードは主従いずれにもなることができる。例えば、2ノード相互接続システムにおいては、ポートは2つのノードを直接接続することを可能にする。これにより、相互接続システムの動作効率が向上して両方のノードは主従いずれともなり得、従ってソース要求および/またはプロセス要求のいずれともなり得る。さらに、ポートが対称という性質をもつことから、付加的なシステム構成要素や資源を必要とすることなく、相互接続システム内で3以上のノードを接続することができる。
本発明はまた、パイプラインによるおよびそれによらないメモリアクセスをも含む。それは、より特定的には、デュアルおよびマルチノードシステムのためのリーガルトランザクションを可能にするローカルおよび遠隔コヒーレンスプロトコルを含む。パイプライン環境においては、本発明は、待ち時間が短縮されることから、データアクセスのためのシステム全体の速度を高める。例えば、本発明によれば、データに対するローカルメモリアクセスが生じている場合でさえ、思索的スヌープ(speculative snoop)および思索的メモリアクセスを生じさせることができる。さらに、ディレクトリが、データが遠隔に常駐すると決定した場合、このデータのアクセスを開始するためのフォローアップを待つ必要がない。こうして、システム全体の効率は向上し、待ち時間は減少する。
本発明はまた、クロスケース(crossing case)も取り扱っている。クロスケースでは、一方の側(またはノード)は、特定のアドレスについて、他方の側(またはノード)に要求を送り、その要求に対する回答を受信する前に、該他方の側からこのアドレスへの要求を受信する。本発明の場合のように、クロスケースを取り扱うことの利点は、引き続くプロセッサ要求を破棄(または消去)することなしに、かかるケースを解消できるということにある。むしろ、後続のデータ要求は、それに先行する要求の後に有利に処理される。その上、一部の例では、後続の要求は、例えば特定の要求をリトライできない場合などに、先行の要求より前に有利に処理される。
明細書に記載される特徴および利点は、全てを包括するものではなく、特に、当業者には図面、明細書および特許請求の範囲に鑑み、数多くの付加的な特徴および利点が明らかになることだろう。その上、本明細書で使用された用語は主として読み易さおよび教示を目的として選択されたものであり、本発明の主題を限定または制限するために選択されたものでない、ということを理解すべきである。
本発明によるスケーラブルノードの一実施形態のブロック図である。 本発明による第1および第2のノードを有する小型システム構成の一実施形態のブロック図である(その1)。 本発明による例えば5つのノードを含む大型システム構成の一実施形態のブロック図である(その2)。 本発明によるスケーラビリティポートのプロトコル階層化の一実施形態の図である。 本発明によるスケーラビリティポートを有するスケーラブルノードを使用した、パイプラインによらないローカルおよび遠隔メモリアクセスの一実施形態についてのプロセスタイミング図(その1)である。 本発明によるスケーラビリティポートを有するスケーラブルノードを使用した、パイプラインによらないローカルおよび遠隔メモリアクセスの一実施形態についてのプロセスタイミング図(その2)である。 本発明によるスケーラビリティポートを有するスケーラブルノードを使用した、パイプラインによるローカルおよび遠隔メモリアクセスの一実施形態についてのプロセスタイミング図(その1)である。 本発明によるスケーラビリティポートを有するスケーラブルノードを使用した、パイプラインによるローカルおよび遠隔メモリアクセスの一実施形態についてのプロセスタイミング図(その2)である。 本発明によるスケーラビリティポートを有するスケーラブルノードを使用した、パイプラインによるローカルおよび遠隔メモリアクセスの一実施形態についてのプロセスタイミング図(その3)である。 本発明によるスケーラビリティポートを用いた融通性あるクロスケース解消の一実施形態についてのプロセス図(その1)である。 クロスケースにおいてデータ要求を処理するためのグローバル順序を決定するためのプロセスの一実施形態を示す図(その2)である。
図は、例示のみを目的として本発明の好ましい実施形態を表している。当業者であれば、以下の説明から、本明細書に例示されている構造および方法の変形実施形態を、請求対象の発明の原理から逸脱することなく利用することができる、ということを容易に認識することだろう。
〔スケーラブルノード〕
本発明は、相互接続システム(例えば、ルーティングシステム)内で2以上のノードを接続することを可能にするスケーラブル相互接続ポートを含む。スケーラブル相互接続ポートは、有利には、2つのノードまたは3以上のノードと効率よく使用され得るよう、対称になっている。こうして有益なことに、相互接続システム内での付加的ハードウエアの量は減少する。
相互接続システムは、各スケーラブルノード間で、命令、データおよびその他の信号を受け渡しすることができるよう、2以上のスケーラブルノードを通信可能に結合する。各スケーラブルノードは、相互接続システム内にて、命令、データまたはその他の信号を処理する例えば中央処理ユニットといった処理ユニットを含む。
図1は、本発明によるスケーラブルノード105の一実施形態のブロック図である。スケーラブルノード105は、ノード制御部110,メモリシステム115,入出力(「I/O」)システム120および1またはそれ以上の処理ユニット、例えば中央処理ユニット125a〜125n(一般に125)を含む。メモリシステム115は、例えばダイナミックランダムアクセスメモリシステム、スタティックランダムアクセスメモリシステムなどといった従来のメモリシステムである。I/Oシステム120は、例えば、記憶デバイス、入力デバイス、周辺デバイスなどといった従来のI/Oシステムである。中央処理ユニット125は、例えば、インテルまたはインテル互換Pentium(登録商標)TMクラスまたはそれ以上のプロセッサ、Sun SPARCTMクラスまたはそれ以上のプロセッサまたはIBM/Motorola Power PCTMクラスまたはそれ以上のプロセッサといったような従来の処理ユニットである。
ノード制御部110は、第1の信号ラインセット135aを通してメモリシステム115と通信可能に結合し、第2の信号ラインセット135bを通してI/Oシステム120と通信可能に結合する。さらに、ノード制御機構110は、第3の信号ラインセット130を通して中央処理ユニット125a〜125nの各々と通信可能に結合する。第1の信号ラインセット135a,第2の信号ラインセット135bおよび第3の信号ラインセット130は、例えばデータバス、1またはそれ以上のデータワイヤなどのあらゆる信号通信媒体であり得る。
ノード制御部110はまた、他のスケーラブル(scalable)ノードの他のノード制御部により形成されたスケーラビリティポートの他の部分とスケーラブル(またはスケーラビリティ)ポート(またはスケーラブル 相互接続ポート)を形成する。特定的には、ノード制御部110は、ノード信号ライン140を通して1またはそれ以上のその他のノードと通信可能に結合させる。ノード信号ライン140は、別のノードのノード制御部と直接結合することもできるし、また 相互接続システムと直接接合することもできる。以下でさらに記述するように、スケーラビリティポート150は、2つのスケーラブルノードを背面突合わせで結合できるようにし、また相互接続システム内で3つ以上のスケーラブルノードを合わせて結合することをも可能にする。スケーラビリティポートを拡張ポートとみなすこともできるということに留意されたい。
一般に、相互接続システムは、1つのノード、2つのノードまたはそれ以上のノードを含むことができる。ノード1つを伴う相互接続システムは、相互接続システム内に1つのノードしか存在しないことから、相互接続を必要としない。2ノードシステムにおいては、両方のノードは互いに直接接続されて相互接続システムを形成し得る。2ノード以上のシステムにおいては、各ノードは直接互いに接続しない。むしろ各ノードは、プロトコルエンジン例えば340を含んで、全てのプロトコルエンジンが、一緒に結合して相互接続システムを形成する。
図2は、本発明による2ノード相互接続システムの一実施形態のブロック図である。該2ノード相互接続システム構成は、第1のスケーラブルノード210aおよび第2のスケーラブルノード210bを含む。各スケーラブルノード210a,210bは、図1において上述されたスケーラブルノード105と機能的に等価である。第1のスケーラブルノード210aおよび第2のスケーラブルノード210bは、付加的なシステム構成要素を必要とすることなく、1またはそれ以上のノード信号ライン140を通して背面突合わせで通信可能に結合できる。より特定的には、2ノード相互接続システム構成内の各ノードは対称である。すなわち、各ノードは、主(例えば要求を発生する)としておよび従(例えば要求を処理する)として、機能し得る。
相互接続システムの動作中、第1のスケーラブルノード210aおよび第2のスケーラブルノード210bは、ノード信号ライン140を通して相互間で直接、命令およびデータ信号を伝送できる。ここでもまた、スケーラブルノードは対称であることから、小型のシステム構成でいかなる付加的構成要素も必要としない。各スケーラブルノード210a,210bと連係した例えばスケーラビリティポート150といったスケーラビリティポートは、スケーラブルノード210a,210b間に対称性が存在することを保証する。このことは、スケーラブルノードを背面突合わせ構成で結合し動作させるのに、プロトコルエンジンといったようないかなる付加的なハードウエア、ソフトウエアまたはファームウェアも必要としないことから、システム全体のコストを低減させる。
図3は、本発明によるマルチノード(3つ以上のノード)相互接続システム構成の一実施形態のブロック図である。マルチノード相互接続システム構成は、3またはそれ以上のスケーラブルノード310a〜310n(総称して310),ノード制御ライン320a〜320n(総称して320),プロトコルエンジン340a〜340n(総称して340),および相互接続システム330を含む。各スケーラブルノード310a〜310nは、図1で上述したスケーラブルノード105と機能的に等価である。各スケーラブルノード310a〜310nは、そのそれぞれのノード制御ライン320a〜320nを通して相互接続システム330と結合する。プロトコルエンジン340a〜340nは、ノード310a〜310n間の通信を可能にする。
各スケーラブルノード310は、ノード間の通信を達成させる、例えばスケーラビリティポート150といったようなスケーラビリティポートを含む。スケーラビリティポート150をスケーラブルノード310内に含むことの利点は、それにより、例えば210といった2つのスケーラブルノードの背面突合わせを可能とし、かつ相互接続システム330を通して3またはそれ以上のスケーラブルノード310を一緒に結合することを可能にする、という点にある。スケーラブルノード例えば105,210,310は、それが使用する通信結合の構成の如何にかかわらず、付加的な構成要素を必要としない。従って、スケーラブルノードが背面突合わせするかまたは相互接続システム330を通して結合するかにかかわらず、本発明のスケーラブルノードは、効率の良いかつ融通性ある通信プロトコルに対応できる。
図4は、本発明によるスケーラビリティポート150のプロトコル階層化の一実施形態を例示している。好ましい実施形態においては、スケーラビリティポート150は、積層構造に類似した構成の通信プロトコルを含んでなる。特定的には、スケーラビリティポート150は、物理層155,信号プロトコル層160,コマンド/データプロトコル層165およびコヒーレンスプロトコル層170を含む。物理層155は、信号プロトコル層160と通信可能に結合する。信号プロトコル層160は、コマンド/データプロトコル層165と通信可能に結合する。コマンド/データプロトコル層165は、コヒーレンスプロトコル層170と結合する。物理層155,信号プロトコル層160およびコマンド/データプロトコル層165は対称層である。かくしてこれらの層へおよびそこから移行する信号および応答は対称である。例えば、各要求は対応する回答を有し、逆も同様である。第4の層、コヒーレンスプロトコル層170は対称でなく、従って、相互接続システム内で生じ得るデッドロックを消滅させることができる。
物理層155は、集積回路チップまたはチップセット上に存在する、入出力接続あるいは「ピン」を規定する。信号プロトコル層160は、システム内の信号が何をするのか、およびそのタイミング、を規定する。信号プロトコル層160はまた、相互接続システム内でいつ有効なトランザクションが発生するかをも決める。コマンド/データプロトコル層165は、要求および応答タイプのモードで機能する。特に、コマンド/データプロトコル層165は、一方または他方に対する要求されるかまたは要求に応えて提供されるデータおよびコマンド(命令を含む)を発行または受け取るように機能する。
コヒーレンスプロトコル層170は、異なるノード上のプロセッサ間でグローバルコヒーレンスプロトコルを維持するためのリーガル(legal)トランザクションを規定する。すなわち、コヒーレンスプロトコル層170は、スケーラビリティポート150が関与するある与えられたトランザクションに対するルール(rule)を規定する。このルールは、スケーラブルノードが直接もう1つのスケーラブルノード(リーガルトランザクション要素172)と結合する場合およびスケーラブルノードが相互接続システム(プロトコルエンジン要素174)と結合する場合の、許可(permitted)トランザクションを規定する。
〔パイプラインによるおよびそれによらないメモリアクセス〕
図5および6は、本発明によるスケーラビリティポート150を有するスケーラブルノード105を用いた、パイプラインによらない遠隔およびローカルメモリアクセスを用いた実施形態のためのプロセスタイミング図である。特にこれらの図は、ローカルメモリアクセスおよび遠隔メモリアクセスを処理するときに起こるさまざまな動作の従属性およびタイミングを例示する。これらのタイミングおよび従属性は、スケーラブルノード105のスケーラビリティポート150が、パイプライン化コマンドセットではなくむしろ単純な要求/回答コマンドセットを使用する場合について示されている。
記述はメモリに対する要求に関するものであるが、当業者であれば、本明細書に記述された原理および概念を、例えば入出力要求、コマンド要求、資源要求などといったような、その他のプロセッサ要求にも応用できるということを理解することだろう。各プロセッサ要求は、例えばデータまたは入出力資源についての要求であり得るコンテンツを含んでいる。簡単のために、プロセッサ要求は、以下一般にデータ要求と称する。
さらに、当業者であれば、データ要求には、データが置かれているメモリシステムアドレスを提供することも含むことを理解することだろう。「ローカル」動作が関係する記述には、プロセッサがデータ要求を発行したノードにおける動作が含まれる。その他のノードにおける動作には、「遠隔」動作が関係する。例えば、プロセッサ125のローカルアクセス要求には、そのプロセッサ125が中に置かれているスケーラブルノード105内のメモリシステム115にアクセスすることが関係している。このスケーラブルノード105をこの場合、ローカルノードと呼ぶことができる。遠隔メモリアクセス要求には、別のスケーラブルノードのメモリシステムにアクセスすることが関係する。このスケーラブルノードはこの場合、遠隔ノードと呼ぶことができる。
図5は、データが遠隔ノードの中にあるような遠隔メモリアクセスを例示する。この場合、プロセッサ125は、データの場所を特定するため遠隔メモリに対してメモリアクセスを発行する(410)。このときノード制御部110は、データ要求を発行したプロセッサ125のローカルバス上のコヒーレンスを決定する(415)。コヒーレンスは、各プロセッサがそのキャッシュ内にデータ(またはライン)の修正済みコピーを有しているか否かを見るため、ローカルバス上で各プロセッサをチェックする。有する場合、データはそのプロセッサにより供給されることになる。一実施形態においては、ローカルバス上のコヒーレンスの決定(415)は、シリアル化されたプロセスである。スケーラビリティポート、例えば150は、あらゆるコヒーレンスプロトコルをサポートすることができる。当業者であれば、利用可能であるさまざまなコヒーレンスプロトコルを認識することであろう。
次にプロセスは、データのスケーラビリティポート要求を発行する(420)。この要求は、現在置かれている場所からデータを得る要求である。特定的には、この要求は、遠隔コヒーレンスの決定(425)および遠隔ノードでの遠隔メモリシステムのアクセス(430)を含む。一実施形態においては、決定(425)およびアクセス(430)は、概念上分離しているが、シリアルに機能する。
遠隔コヒーレンスの決定(425)は、2ノードシステムの場合とマルチノードシステムの場合では異なることがある。2ノードシステムにおいては、遠隔コヒーレンスを決定すること(425)には、遠隔バスのスヌープ(すなわちデータの問合せ)が関係する。マルチノードシステムにおいては、遠隔コヒーレンスを決定すること(425)には、ディレクトリ探索オペレーションを実施することが関係する。ディレクトリ探索オペレーションは、その他のノードにおいてメモリシステム内に記憶されたデータに関する情報を提供する。好ましい実施形態においては、ディレクトリは、プロトコルエンジン340およびノード105のその他の要素とは分離したメモリまたはレジスタ内にあるテーブルである。一変形実施形態においては、ディレクトリは、プロトコルエンジン340内のメモリまたはレジスタ内にある。遠隔メモリにアクセスすること(430)には、遠隔メモリにアクセスすることおよび、遠隔ノードにおいてそのデータについて遠隔プロセッサキャッシュをスヌープ(snoop)することが含まれる。
遠隔コヒーレンスまたはメモリアクセスオペレーションを通してデータがひとたび発見されたならば、データプロセスはスケーラビリティポート回答メッセージを準備し発行する(435)。このメッセージは、プロセッサ125によって要求されたデータを含む。データはこのとき、プロセッサ125に送信される(440)。
図6は、データがローカルノードに置かれている場合のローカルメモリアクセスを例示している。この場合、プロセッサ125は、ローカルメモリシステム内でデータの場所を特定するためメモリアクセス(460)を発行する(450)。このデータは直接、そのデータを要求するプロセッサ125に送信することができる(480)。同時に、該プロセスは、データのメモリアクセスを発行したプロセッサ125のローカルバス上のコヒーレンスを決定する(455)。次に該プロセスは、コヒーレンスチェックのスケーラビリティポート要求を発行する(465)。この要求は、現在置かれている場所からデータを得る要求である。特定的には、この要求は、遠隔コヒーレンスの決定(470)を含む。上述のように、遠隔コヒーレンスの決定(470)には、そのデータがもう1つのノード内に置かれているか否かを決定するため、2ノードシステム内ではバススヌープまたマルチノードシステム内ではディレクトリ探索することが含まれている。データはローカルであるものの、遠隔プロセッサがその遠隔ノードにおいてデータをキャッシュしたか否かを決定するためには、ディレクトリ探索が必要である。
データが遠隔ノードにおいてキャッシュされた場合、データはその遠隔キャッシュから検索される。特定的には、データが遠隔ノードに置かれている場合、プロセスは、要求中のプロセッサへのデータを含むスケーラビリティポート回答を発行する(475)準備をする。このとき、データはプロセッサ125に送信される(480)。ここでもまた、ローカルバスコヒーレンスの決定(455)および遠隔コヒーレンスの決定(470)は共にシリアル化されたプロセスであるという点に留意されたい。データが正しく検索され得るようにするためには、ローカルノードは、遠隔キャッシュの場合のデータを返送する前に、スケーラビリティポートからの回答を待たなくてはならない。ローカルコヒーレンスは、遠隔コヒーレンスとシリアル化されているので、応答は遅いものとなり、かくして性能劣化を生じさせる。パイプライン化プロセスは、これを回避し、向上されたデータスループット性能を提供する。
図7,8および9は、本発明によるスケーラビリティポートを使用した、パイプラインによるローカルおよび遠隔メモリアクセスの一実施形態についてのプロセスタイミング図である。図7は、遠隔メモリへの、パイプラインによるメモリアクセスについてのプロセスタイミング図である。プロセスは、プロセッサが遠隔メモリにメモリアクセスを発行した(510)ときに開始する。次に、プロセスは、データのスケーラビリティポート要求を発行する(512)よう準備する。プロセスは次に、外に出てデータを得る。具体的には、プロセスは、遠隔メモリにアクセスし(516),ローカルバスでのコヒーレンスを決定し(518),遠隔コヒーレンスを決定する(514)。
遠隔メモリへのアクセス(516)は、データの場所を特定するため遠隔ノードのメモリシステムにアクセスすることを含む。ローカルバスコヒーレンスの決定(518)は、メモリアクセスを発行中のプロセッサ125が置かれているローカルバス上のデータのメモリスヌープを含む。このプロセスは、データがローカルノードにおいてプロセッサ内にキャッシュされているか否かを決定する。
マルチノードシステムにおいては、遠隔コヒーレンスの決定(514)には、そのデータが遠隔ノードに置かれているか否かを決定するためのローカルノードにおけるディレクトリ探索が含まれる。2ノードシステムでは、遠隔コヒーレンスの決定(514)は、遠隔ノードにおける思索的(speculative)スヌープオペレーションまたは思索的メモリアクセスオペレーションのいずれかを含んでいる。2ノードシステムにおいては、遠隔ノードにおける遠隔プロセッサの遠隔キャッシュのスヌープを含む思索的スヌープオペレーションがある。このオペレーションは、ローカルノードもまたデータについて問合されている一方で遠隔ノードがデータについて問合されることから、思索的と呼ばれる。これをスヌーピングと呼ぶこともできる。
コヒーレンス決定(518)が完了したときに、プロセスは、スケーラビリティポートフォローアップメッセージを発行する(520)。このメッセージは、データがローカルキャッシュ内に置かれているか否かについての情報を、プロセスに対して提供する。データがひとたびローカルにまたは遠隔に特定されたときに、プロセスは、場所が特定されたデータを含み得るスケーラビリティポート回答メッセージを発行する(522)準備をする。次に、データは、それを要求したプロセッサ125に送信される(524)。
図8は、ローカルメモリに対する、パイプラインによるメモリアクセスのプロセスタイミング図である。このプロセスは、プロセッサ125がメモリアクセスをローカルメモリシステム115に対して発行した(530)ときに開始する。プロセスは直ちに、思索的な形でローカルメモリシステム115にアクセスする(536)。次に、プロセスは、スケーラビリティポート要求を発行する(535)準備をする。プロセスは、ローカルバス上のコヒーレンスの決定(538)ならびに遠隔ノードにおけるコヒーレンスの決定(534)について続行する。ローカルバスコヒーレンスの決定(538)には、データがローカルプロセッサキャッシュのいずれかの中に常駐するか否かを見るために、これらのキャッシュのいずれかでのスヌープが含まれる。
遠隔コヒーレンスの決定(534)は、2つのやり方のうちの一方で機能する。マルチノードシステムについては、その決定には、データが遠隔ノードに置かれているか否かを決定するためのディレクトリ探索を含んでいる。これは、思索的(speculative)ディレクトリ探索と呼ぶことができる。2ノードシステムにおいては、遠隔ノードの思索的スヌープオペレーションか思索的メモリアクセスオペレーションかのいずれかが存在する。思索的スヌープオペレーションは、遠隔ノードにおける遠隔プロセッサの遠隔キャッシュのスヌープを含む。思索的メモリアクセスオペレーションは、ローカルメモリシステムにアクセスする。
次に、プロセスは、スケーラビリティポートフォローアップ(follow−up)メッセージを発行する(540)。このメッセージはプロセスに、データがローカルキャッシュ内に置かれたか否かについての情報を提供する。フォローアップメッセージは、思索的スヌープを取消すことができる。ひとたびデータがローカルにまたは遠隔に特定されたならば、プロセスは、その場所の特定されたデータを含むスケーラビリティポート回答メッセージを発行する(542)準備をする。データは次に、そのデータを要求したプロセッサ125に送信される(544)。
図9は、ローカルメモリに対する、パイプラインによるメモリアクセスのプロセスタイミング図である。この場合、データは究極的に遠隔ノード内にあることが分かっており、データは「ダーティー」(dirty)とみなされる。ダーティーデータというのは、そのデータが遠隔ノードにおいて変更されてしまった可能性があることを意味する。プロセスは、プロセッサ125がローカルメモリシステム115に対してメモリアクセスを発行した(550)ときに開始する。プロセスは、ローカルメモリシステム115に直ちにアクセスする(556)。次にプロセスは、スケーラビリティポート要求を発行する(552)準備をする。プロセスは、ローカルバス上のコヒーレンスの決定(558)ならびに遠隔ノードでのコヒーレンスの決定(554)について続行する。ローカルバスコヒーレンスの決定(558)には、データがローカルプロセッサキャッシュのいずれかに常駐しているか否かを見るために、これらのキャッシュ内でのスヌープを含んでいる。
遠隔コヒーレンスの決定(554)は、マルチノードシステムまたは2ノードシステムのいずれが存在するか、に基づいている。マルチノードシステムでは、ディレクトリ探索により、そのデータが遠隔ノードに置かれているか否かを決定する。より特定的には、ディレクトリ探索により、キャッシュディレクトリデータを検出し、次には究極的にそのデータを獲得する。2ノードシステムでは、遠隔ノードの思索的スヌープオペレーションまたは思索的メモリアクセスオペレーションのいずれかが存在する。思索的スヌープオペレーションは、遠隔ノードにおける遠隔プロセッサの遠隔キャッシュのスヌープを含む。思索的メモリアクセスオペレーションにより、遠隔ノードにおいて遠隔ノードシステムをアクセスする。
次に、プロセスは、フォローアップメッセージを発行し(560),ペンディングヒント(pending hint)メッセージを受信する。ペンディングヒントは、ローカル側遠隔ディレクトリのためのものである。ペンディングヒントメッセージは、ローカルメモリシステムへのアクセスを取消すかまたは停止する(564)。データは遠隔ノード内、例えば該遠隔ノード内のプロセッサのキャッシュ内にあることが分かっていることから、プロセスは、ローカルメモリシステム115へのアクセスを停止する(564)。ひとたびデータが遠隔ノードから検索されると、プロセスは、場所が特定されたデータを含むスケーラビリティポート回答メッセージを発行する(566)。次に、そのデータを要求したプロセッサ125に該データが送信される(568)。
本発明の利点は、本発明が、デュアルおよびマルチノードシステムのためのリーガル(legal)トランザクションを可能にする、ローカルおよび遠隔コヒーレンスプロトコルを含むという点にある。さらに、パイプライン環境においては、本発明は有益なことに、待ち時間が短縮されることから、データアクセスの全体としての性能が向上する。特に、データに対するローカルメモリアクセスが発生している場合でさえ、思索的スヌープおよび思索的メモリアクセスは発生する。さらに、データが遠隔に常駐していることをプロセスが直接決定したときは、該プロセスは、このデータのアクセスを開始するためのフォローアップを待つ必要がない。こうしてさらに、システム全体の効率が向上し、待ち時間が減少する。
〔クロスケース〕
一部のトランザクションにおいては、2以上のスケーラブルノードが、同時にかまたは比較的それに近い状態で同じデータを要求することがある。これらの場合は、クロス(cross)ケースと呼ばれる。クロスケースでは、一方の側が特定のアドレスについての要求を他方の側に送り、その要求に対する回答を受け取る前に他方の側からこのアドレスについての要求を受け取る。このクロスケースを解消するためには、各スケーラブルノードはこのクロスケースを検出しなければならず、次に各スケーラビリティポート側が同じ順序で要求を処理すべくデータの各要求(またはトランザクション)を処理する順序を決定する助けとなる一組の規則に、該各スケーラブルノードは従わなくてはならない。
図10は、本発明によるスケーラビリティポートを使用した融通性あるクロスケース解消の一実施形態についてのプロセス図である。該プロセスが開始すると(610)、別のノードからデータの要求を受信する(615)。プロセスは、このデータ要求と未解決データ要求のリストとを一致(match)させる(620)。一実施形態においては、その未解決データ要求リストは、特定のスケーラブルノードとそのデータに対するコミットポイント(commit point)とによって要求されているアドレスリストを含む。コミットポイントは、スケーラブルノードによるデータ要求がリスト内に格納された時間のことである。
各スケーラビリティポート側は、要求のクロスに起因して異なる順序でリストされた各要求を有することがある、該スケーラビリティポート独自のコミットリストを保持している。システムは、スケーラビリティポートの両側が処理要求に関して同じ順序を用いるようにして、要求のクロスを解消するように、機能する。一実施形態においては、未解決データ要求リストはテーブルフォーマット内にあり、メモリシステム115または別のメモリ内に格納される。
現状のデータ要求と未解決データ要求リスト内のいずれかのデータとの間に一致(620)が全くない場合、プロセスはサービス要求(630)へ進む。一実施形態においては、プロセスは、図5〜図9において述べたパイプラインによらないまたはパイプラインによるプロセスのいずれかを用いて、その要求を処理する(630)。現状のデータ要求と未解決データ要求リスト内のデータとの間に一致が存在する場合(620),プロセスは、そのデータ要求を処理するためのグローバルな順序を決定する(625)。グローバルな順序プロセスは、データ要求の処理順序に対する再順序づけを生じさせることができる。要求を再順序づけする1つの方法は、第1の要求がリトライされる場合に、それが第2の要求の後にくるような形で該第1の要求をリトライする、というものである。
図11は、データ要求を処理するためのグローバルな順序を決定する(625)ためのプロセスの一実施形態を例示している。グローバル順序プロセスが開始した(635)ときに、それは、そのデータ要求がリトライされ得ない要求であるか否かを決定する(640)。データ要求がリトライできないものである場合、グローバル順序プロセスは、クロスケース解消プロセスを現時点でのデータ要求の処理(630)とする。データ要求がリトライ可能である場合、グローバルプロセス順序は、その要求が優先コマンドであるか否かを決定する(645)。一実施形態においては、キャッシュコヒーレンスプロトコルは、スケーラビリティポートの一方の側のみが一度にリトライ不能要求を発行することができるようにする。
データ要求が優先的なものである場合、グローバル順序プロセスは、クロスケース解消プロセスが、現時点でのデータ要求を処理する(630)ことを可能にする。データ要求が優先的なものでない場合、グローバル順序プロセスは、クロスケース解消プロセスがそのデータ要求を処理(630)できるようにする前に、処理中のデータの回答があるか否かを決定する(650)。より特定的には、要求タイプによってまたは、誰が優先権をもつかについて各々の側が同意することによって、一方のノードが他方のノードに対する優先権を有する。優先順位の高いものは待ちが全く無く処理され、一方低いものはもう1つの回答が送信されるのを待つ。プロセスは、以上で図5〜9に記述されているパイプラインによらないまたはパイプラインによるプロセスのいずれかを用いて、要求を処理する(630)ことができる。
本発明のようにクロスケースを処理することの利点は、後続するプロセッサ要求を破棄(または消去)することなく、かかるケースを解消できるという点にある。むしろ、後続するデータ要求は有益にも、それに先行する要求の後に処理される。その上、一部のケースでは、後続する要求は、有利にも、例えば特定の要求がリトライされ得ない場合には、先行する要求の前に処理される。
本発明の特定の実施形態および適用が例示および記述されてきたが、本発明が本明細書中で開示された明確な構成およびコンポーネントに制限されず、当業者にとっては明白であるさまざまな修正、変更およびバリエーションを、特許請求の範囲で規定されている本発明の精神および範囲から逸脱することなく、本明細書に開示された本発明の方法および装置の配置、動作および詳細に関して加えることが可能である。
本発明による好適な実施形態は、以下のとおりである。
(付記1) 複数のプロセッサ、メモリシステムおよび相互接続チップセットを各々が含む複数のノードを結合するように構成された相互接続ポートにおいて、
電気信号を受信または送信するように構成された物理層と、
前記物理層に結合され、受信したまたは送信した前記電気信号のいずれかとの関係を規定するように構成された信号プロトコル層と、
前記信号プロトコル層に結合され、前記の受信電気信号に応答したデータ要求または前記の送信電気信号の準備に応答した回答のいずれかを生成するように構成されたコマンドプロトコル層と、
前記コマンドプロトコル層に結合され、前記データ要求または前記回答のいずれかに応答してデータに対するリーガルトランザクションセットを提供するように構成されたコヒーレンスプロトコル層と、を含んでなり、
ここに、前記物理層、前記信号プロトコル層および前記コマンドプロトコル層は対称であり、前記コヒーレンスプロトコル層は非対称であることを特徴とする相互接続ポート。
(付記2) その関係は、前記の受信電気信号または送信電気信号のいずれかに対するタイミング要求条件である付記1に記載の相互接続ポート。
(付記3) 前記回答は、前記データ要求に応答して識別されたデータを含む付記1に記載の相互接続ポート。
(付記4) 前記リーガルトランザクションは、複数の処理システムのうちの少なくとも1つの処理システムによって許容可能なトランザクションを含む付記1に記載の相互接続ポート。
(付記5) 複数のプロセッサおよび相互接続チップセットを各々が有する複数のノード間で通信するための方法において、
前記複数のノードのうちの第1のノード内における前記複数のプロセッサのうちの1つのプロセッサから、プロセッサ要求を発行する段階と、
前記複数のノードのうちの他のノードの各々に対して前記プロセッサ要求を渡す段階と、
前記プロセッサ要求に応答してメモリのアクセスを開始する段階であって、ノード内の該メモリが該プロセッサ要求を発行するプロセッサを有している段階と、
前記要求を発行する前記プロセッサを有する前記ノード内の前記メモリかまたは複数の前記プロセッサの中の1つのプロセッサのプロセッサキャッシュのいずれかで、前記プロセッサ要求のコンテンツの位置を識別する段階と、
を含んでなる方法。
(付記6) 前記のデータの位置を識別する段階はさらに、前記コンテンツが複数の前記プロセッサ内のプロセッサの前記プロセッサキャッシュ内にあることに応答して、スヌープフォローアップを発行する段階を含む付記5に記載の通信方法。
(付記7) スヌープフォローアップとは関係なく前記要求を発行する前記プロセッサを有する前記ノード内の前記メモリから、前記コンテンツを得る段階をさらに含む付記6に記載の通信方法。
(付記8) スヌープフォローアップの受信に応答して、前記コンテンツの要求を取消す段階をさらに含む付記6に記載の通信方法。
(付記9) 複数のプロセッサを各々が有する複数のノードを備える相互接続システムにおけるデータ要求方法において、
ローカルノードから前記データ要求を発行する段階と、
前記ローカルノード内のローカルメモリに対するアクセスを開始する段階と、
前記の要求されたデータが前記ローカルノード内のプロセッサのプロセッサキャッシュ内にあるか否かを決定すべく該ローカルノードの各プロセッサのプロセッサキャッシュをスヌープすると共に、該要求されたデータが該ローカルノード内のプロセッサのプロセッサキャッシュ内にあることに応答して該プロセッサキャッシュから前記データのコピーを得る段階と、
遠隔ノード内の各プロセッサのプロセッサキャッシュをスヌープすると共に、前記の要求されたデータが前記遠隔ノード内のプロセッサの前記プロセッサキャッシュ内にあることに応答して、該遠隔ノードのプロセッサキャッシュから、そのデータのコピーを得る段階と、
前記ローカルノードまたは遠隔ノードの前記プロセッサキャッシュ内にデータがないことに応答して、前記ローカルメモリからそのデータを検索する段階と、
を含むことを特徴とするデータ要求方法。
(付記10) 前記のデータを検索する段階はさらに、そのデータが排他的データであることに応答して、そのデータのコピーを得る段階を含む付記9に記載のデータ要求方法。
(付記11) 複数のプロセッサを各々が有する少なくとも3つのノードを備える相互接続システムにおけるデータ要求方法において、
ローカルノードからデータの要求を発行する段階と、
前記データ要求に応答して、そのデータのアドレスが遠隔ノード内にあるか否かを決定すべくプロトコルエンジン内のディレクトリに対して探索を行うと共に、そのデータのアドレスが該ディレクトリ内にあることに応答して該遠隔ノードからそのデータを検索する段階と、
そのデータのアドレスが前記ディレクトリ内にないことに応答して前記ローカルノード内の各プロセッサのプロセッサキャッシュをスヌープすると共に、そのプロセッサキャッシュ内にそのデータがあることに応答して該ローカルノード内のプロセッサのプロセッサキャッシュからそのデータを検索する段階と、
を含むことを特徴とするデータ要求方法。
(付記12) 前記データが前記遠隔ノード内にあることを決定したことに応答して、該遠隔ノードの遠隔メモリからそのデータを検索する段階をさらに含む付記11に記載のデータ要求方法。
(付記13) 前記データ要求に応答して前記ローカルノード内のメモリに対する思索的メモリアクセスを開始する段階をさらに含む付記11に記載のデータ要求方法。
(付記14) 前記データが置かれた前記複数のノードのうち遠隔ノードからペンディングヒントを受信したことに応答して、前記思索的メモリアクセスを停止する段階をさらに含む付記13に記載のデータ要求方法。
(付記15) 前記複数のノードの遠隔ノードからペンディングヒントを受信しないことに応答して、前記ローカルノード内でそのデータの場所を特定する段階をさらに含む付記14に記載のデータ要求方法。
(付記16) 第1のノードおよび第2のノードを含む相互接続システムにおけるクロスケースを解消する方法において、
前記第2のノードから前記第1のノードへの第2のノード要求とほぼ同時の、該第1のノードから該第2のノードへの第1のノード要求を検出する段階と、
前記第1のノード要求または前記第2のノード要求のうちの一方を正しい要求として選択する段階であって、他方のノード要求は非選択ノード要求とする段階と、
前記非選択ノード要求を処理する前に前記の正しい要求を処理する段階と、
を含むことを特徴とするクロスケース解消方法。
(付記17) 前記の選択する段階はさらに、前記第1のノード要求または前記第2のノード要求がリトライ不能なコマンドであるか否かを決定する段階を含む付記16に記載のクロスケース解消方法。
(付記18) 前記の決定する段階はさらに、
前記第1のノード要求がリトライ不能なコマンドであることに応答して、前記第2のノード要求に先立ち前記第1のノード要求を処理する段階と、
前記第2のノード要求がリトライ不能なコマンドであることに応答して、前記第1のノード要求に先立ち前記第2のノード要求を処理する段階と、
を含む付記17に記載のクロスケース解消方法。
(付記19) 前記の決定する段階はさらに、
前記第1のノード要求が、リトライ不能なコマンドではなくかつ優先コマンドであることに応答して、前記第2のノード要求に先立ち前記第1のノード要求を処理する段階と、
前記第2のノード要求が、リトライ不能なコマンドでなくかつ優先コマンドであることに応答して、前記第1のノード要求に先立ち前記第2のノード要求を処理する段階と、
を含む付記17に記載のクロスケース解消方法。
(付記20) 前記の検出する段階はさらに、前記第1のノードと前記第2のノードにおいてコミットポイントを識別する段階を含む付記16に記載のクロスケース解消方法。
105 スケーラブルノード
110 ノード制御部
115 メモリシステム
120 入出力(I/O)システム
125 中央処理ユニット
130 第3の信号ラインセット
135a 第1の信号ラインセット
135b 第2の信号ラインセット
140 ノード信号ライン
150 スケーラビリティポート(スケーラブル相互接続ポート)
155 物理層
160 信号プロトコル層
165 コマンド/データプロトコル層
170 コヒーレンスプロトコル層
210a 第1のスケーラブルノード
210b 第2のスケーラブルノード
310 スケーラブルノード
320 ノード制御ライン
330 相互接続システム
340 プロトコルエンジン

Claims (4)

  1. 複数のプロセッサを各々が有する複数のノードを備える相互接続システムにおけるデータ要求方法において、
    ローカルノードから前記データ要求を発行する段階と、
    前記ローカルノード内のローカルメモリに対するアクセスを開始する段階と、
    前記の要求されたデータが前記ローカルノード内のプロセッサのプロセッサキャッシュ内にあるか否かを決定すべく該ローカルノードの各プロセッサのプロセッサキャッシュをスヌープすると共に、該要求されたデータが該ローカルノード内のプロセッサのプロセッサキャッシュ内にあることに応答して該プロセッサキャッシュから前記データのコピーを得る段階と、
    遠隔ノード内の各プロセッサのプロセッサキャッシュをスヌープすると共に、前記の要求されたデータが前記遠隔ノード内のプロセッサの前記プロセッサキャッシュ内にあることに応答して、該遠隔ノードのプロセッサキャッシュから、そのデータのコピーを得る段階と、
    前記ローカルノードまたは遠隔ノードの前記プロセッサキャッシュ内にデータがないことに応答して、前記ローカルメモリからそのデータを検索する段階と、
    を含むことを特徴とするデータ要求方法。
  2. 複数のプロセッサを各々が有する少なくとも3つのノードを備える相互接続システムにおけるデータ要求方法において、
    ローカルノードからデータの要求を発行する段階と、
    前記データ要求に応答して、そのデータのアドレスが遠隔ノード内にあるか否かを決定すべくプロトコルエンジン内のディレクトリに対して探索を行うと共に、そのデータのアドレスが該ディレクトリ内にあることに応答して該遠隔ノードからそのデータを検索する段階と、
    そのデータのアドレスが前記ディレクトリ内にないことに応答して前記ローカルノード内の各プロセッサのプロセッサキャッシュをスヌープすると共に、そのプロセッサキャッシュ内にそのデータがあることに応答して該ローカルノード内のプロセッサのプロセッサキャッシュからそのデータを検索する段階と、
    を含むことを特徴とするデータ要求方法。
  3. 前記データが前記遠隔ノード内にあることを決定したことに応答して、該遠隔ノードの遠隔メモリからそのデータを検索する段階をさらに含む請求項2に記載のデータ要求方法。
  4. 前記データ要求に応答して前記ローカルノード内のメモリに対する思索的メモリアクセスを開始する段階をさらに含む請求項2に記載のデータ要求方法。
JP2010180051A 2001-06-04 2010-08-11 複数ノード間での通信方法、相互接続ポートおよび相互接続システム Expired - Fee Related JP5461339B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/874,189 US6799217B2 (en) 2001-06-04 2001-06-04 Shared memory multiprocessor expansion port for multi-node systems
US09/874189 2001-06-04

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007141155A Division JP4593594B2 (ja) 2001-06-04 2007-05-28 複数ノード間での通信方法、相互接続ポートおよび相互接続システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012198864A Division JP5392387B2 (ja) 2001-06-04 2012-09-10 複数ノード間での通信方法、相互接続ポートおよび相互接続システム

Publications (2)

Publication Number Publication Date
JP2010250863A true JP2010250863A (ja) 2010-11-04
JP5461339B2 JP5461339B2 (ja) 2014-04-02

Family

ID=25363184

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2002163097A Pending JP2003108538A (ja) 2001-06-04 2002-06-04 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
JP2007141155A Expired - Fee Related JP4593594B2 (ja) 2001-06-04 2007-05-28 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
JP2010180051A Expired - Fee Related JP5461339B2 (ja) 2001-06-04 2010-08-11 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
JP2012198864A Expired - Fee Related JP5392387B2 (ja) 2001-06-04 2012-09-10 複数ノード間での通信方法、相互接続ポートおよび相互接続システム

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2002163097A Pending JP2003108538A (ja) 2001-06-04 2002-06-04 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
JP2007141155A Expired - Fee Related JP4593594B2 (ja) 2001-06-04 2007-05-28 複数ノード間での通信方法、相互接続ポートおよび相互接続システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012198864A Expired - Fee Related JP5392387B2 (ja) 2001-06-04 2012-09-10 複数ノード間での通信方法、相互接続ポートおよび相互接続システム

Country Status (2)

Country Link
US (4) US6799217B2 (ja)
JP (4) JP2003108538A (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051150B2 (en) * 2002-07-29 2006-05-23 Freescale Semiconductor, Inc. Scalable on chip network
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
EP1426866A1 (en) * 2002-12-06 2004-06-09 Sun Microsystems, Inc. A method to reduce memory latencies by performing two levels of speculation
US8667227B2 (en) * 2009-12-22 2014-03-04 Empire Technology Development, Llc Domain based cache coherence protocol
US20130173322A1 (en) * 2011-12-30 2013-07-04 Schneider Electric USA, Inc. Energy Management with Correspondence Based Data Auditing Signoff
US10089043B2 (en) 2013-03-15 2018-10-02 Micron Technology, Inc. Apparatus and methods for a distributed memory system including memory nodes
CN103902500B (zh) * 2014-03-21 2018-05-08 浪潮电子信息产业股份有限公司 一种非cache一致性协议加解锁报文处理方法
JP5936152B2 (ja) 2014-05-17 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリアクセストレース方法
GB2545897B (en) * 2015-12-21 2018-02-07 Advanced Risc Mach Ltd Asymmetric coherency protocol
US10157134B2 (en) * 2016-04-11 2018-12-18 International Business Machines Corporation Decreasing the data handoff interval for a reserved cache line based on an early indication of a systemwide coherence response
US10521112B2 (en) 2017-03-17 2019-12-31 International Business Machines Corporation Layered clustered scale-out storage system
US11080225B2 (en) * 2019-03-18 2021-08-03 Cisco Technology, Inc. Peer direct mechanism for direct memory access across host devices
US11698879B2 (en) * 2019-12-06 2023-07-11 Intel Corporation Flexible on-die fabric interface

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02205963A (ja) * 1989-01-27 1990-08-15 Digital Equip Corp <Dec> 読取中断処理
JPH06110844A (ja) * 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
JP2786124B2 (ja) * 1995-04-26 1998-08-13 甲府日本電気株式会社 共有メモリ型マルチプロセッサシステム
USRE38428E1 (en) 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
US5925099A (en) 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US5887146A (en) 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5802560A (en) * 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
JPH10154100A (ja) * 1996-11-25 1998-06-09 Canon Inc 情報処理システム及び装置及びその制御方法
US5881253A (en) 1996-12-31 1999-03-09 Compaq Computer Corporation Computer system using posted memory write buffers in a bridge to implement system management mode
US6065101A (en) * 1997-06-12 2000-05-16 International Business Machines Corporation Pipelined snooping of multiple L1 cache lines
US6757798B2 (en) 1997-06-30 2004-06-29 Intel Corporation Method and apparatus for arbitrating deferred read requests
US6389479B1 (en) * 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US6393023B1 (en) 1998-05-08 2002-05-21 Fujitsu Limited System and method for acknowledging receipt of messages within a packet based communication network
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
WO2000038070A1 (en) * 1998-12-21 2000-06-29 Advanced Micro Devices, Inc. Conservation of system memory bandwidth and cache coherency maintenance using memory cancel messages
US6269428B1 (en) * 1999-02-26 2001-07-31 International Business Machines Corporation Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
JP2000330965A (ja) * 1999-03-17 2000-11-30 Hitachi Ltd マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
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
US6457100B1 (en) * 1999-09-15 2002-09-24 International Business Machines Corporation Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls
JP4689783B2 (ja) * 1999-09-28 2011-05-25 富士通株式会社 分散共有メモリ型並列計算機
US6957290B1 (en) * 2000-10-06 2005-10-18 Broadcom Corporation Fast arbitration scheme for a bus
US6842830B2 (en) * 2001-03-31 2005-01-11 Intel Corporation Mechanism for handling explicit writeback in a cache coherent multi-node architecture
US6711652B2 (en) * 2001-06-21 2004-03-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that provides precise notification of remote deallocation of modified data
US6859866B2 (en) * 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ

Also Published As

Publication number Publication date
JP2003108538A (ja) 2003-04-11
US7406582B2 (en) 2008-07-29
US20050044259A1 (en) 2005-02-24
JP4593594B2 (ja) 2010-12-08
JP5461339B2 (ja) 2014-04-02
US7418556B2 (en) 2008-08-26
US20050021910A1 (en) 2005-01-27
US20020184330A1 (en) 2002-12-05
JP2007272922A (ja) 2007-10-18
US6799217B2 (en) 2004-09-28
US20090024688A1 (en) 2009-01-22
JP2013012235A (ja) 2013-01-17
US8015366B2 (en) 2011-09-06
JP5392387B2 (ja) 2014-01-22

Similar Documents

Publication Publication Date Title
JP5461339B2 (ja) 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US7093079B2 (en) Snoop filter bypass
KR100360064B1 (ko) 고도로파이프라인된버스구조
KR100465583B1 (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법
US6029204A (en) Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries
JP3832833B2 (ja) 情報処理方法および装置
KR100286962B1 (ko) 캐쉬 제어기
JP3470951B2 (ja) 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法
US7395379B2 (en) Methods and apparatus for responding to a request cluster
JP2000227908A (ja) 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム
TW200901027A (en) Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine
CN1932791A (zh) 用于数据处理的方法和设备
CN1932792A (zh) 用于数据处理的方法和设备
US6950913B2 (en) Methods and apparatus for multiple cluster locking
JP2018109965A (ja) データ処理
US7107409B2 (en) Methods and apparatus for speculative probing at a request cluster
US7107408B2 (en) Methods and apparatus for speculative probing with early completion and early request
US7103725B2 (en) Methods and apparatus for speculative probing with early completion and delayed request
US20060253662A1 (en) Retry cancellation mechanism to enhance system performance
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US7337279B2 (en) Methods and apparatus for sending targeted probes
KR20050094332A (ko) 멀티프로세서 시스템에서 프로세서 집적 소자를 구성하기위한 방법 및 시스템
US20010037426A1 (en) Interrupt handling via a proxy processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120910

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130108

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130115

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees