JP3574031B2 - 不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム - Google Patents
不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム Download PDFInfo
- Publication number
- JP3574031B2 JP3574031B2 JP2000045824A JP2000045824A JP3574031B2 JP 3574031 B2 JP3574031 B2 JP 3574031B2 JP 2000045824 A JP2000045824 A JP 2000045824A JP 2000045824 A JP2000045824 A JP 2000045824A JP 3574031 B2 JP3574031 B2 JP 3574031B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- request
- processor
- computer system
- numa
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, 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)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、一般にデータ処理のための方法およびシステム、詳細にはコンピュータ・システム内でライブロックを避けるための方法およびシステムに関する。さらに詳細には、本発明は不均等メモリ・アクセス・コンピュータ・システム内で無効化トランザクションの衝突により発生するライブロックを避けるための方法およびシステムに関する。
【0002】
【従来の技術】
いくつかの個別プロセッサの処理能力を組み合わせて多重プロセッサ(MP)コンピュータ・システムを形成することで、より高いコンピュータ・システムの性能を達成できることが、コンピュータ技術分野ではよく知られている。MPコンピュータ・システムは、特定アプリケーションの性能要件に応じていくつかの異なるトポロジーを使用して設計することができる。たとえば対称的多重プロセッサ(SMP)構成は、一般に使用される単純なMPコンピュータ・システム・トポロジーの1つであり、システム・メモリなどのその資源は複数のプロセッサによって共用される。「対称的」というトポロジー名は、SMPコンピュータ・システム内のすべてのプロセッサがシステム内のすべての資源に対して対称的なアクセスを有するという事実に由来する。
【0003】
SMPトポロジーは、比較的単純なプロセッサ間通信およびデータ共用プロトコルを使用できるようにするものであるが、SMPトポロジー全体では、システムのスケールが大きくなるにつれて、特にシステム・メモリ・レベルでスケーラビリティおよび帯域幅が制限される。その結果、ある程度の複雑さが加わるという犠牲を払って、SMPトポロジーの数多くの制限を解決する代替設計として、不均等メモリ・アクセス(NUMA)と呼ばれる別のMPコンピュータ・システム・トポロジーが出現した。
【0004】
代表的なNUMAコンピュータ・システムは、いくつかの相互接続ノードを含む。各ノードは、少なくとも1つのプロセッサと1つのローカル「システム」メモリを含む。NUMAトポロジーという名前は、リモート・ノード側のシステム・メモリ内に格納されているデータよりも、ローカル・ノード側のシステム・メモリ内に格納されているデータの方が、プロセッサの待ち時間が短いという事実に由来している。NUMAコンピュータ・システムは、異なるノードのキャッシュ間でデータ・コヒーレンスが維持されるかどうかによって、非キャッシュ・コヒーレントまたはキャッシュ・コヒーレントのいずれかにさらに分類することができる。NUMAトポロジーは、NUMAコンピュータ・システム内の各ノードを小規模なSMPシステムとして実装することによって、従来のSMPトポロジーのスケーラビリティ制限を解決する。したがって、システム全体は、比較的待ち時間が少なく大規模な並列処理を使用できるという恩恵を得ながら、各ノード内の共用構成要素は、わずかなプロセッサだけで使用するように最適化することができる。
【0005】
様々な利点があるにもかかわらず、NUMAシステムの具体的な問題は、キャッシュ・コヒーレンス・プロトコルから生じる潜在的なライブロック問題である。たとえば、ホーム・ノード側のプロセッサがキャッシュ・ラインを無効にしようとすると同時に、リモート・ノード側のプロセッサもそのキャッシュ・メモリ内の同じキャッシュ・ラインを無効にしようとした場合、ライブロック状況が発生する。
【0006】
【発明が解決しようとする課題】
したがって、NUMAコンピュータ・システム内で無効化トランザクションの衝突によって発生するライブロックを避けるための方法を提供することが望ましい。
【0007】
【課題を解決するための手段】
本発明の方法およびシステムによれば、NUMAコンピュータ・システムは、1つの相互接続に結合された少なくとも2つのノードを含む。この2つのノードはそれぞれが1つのローカル・システム・メモリを含む。第2ノードのプロセッサがキャッシュ・ラインを無効化するように要求するのとほぼ同時に、そのキャッシュ・メモリ内に格納されている前記キャッシュ・ラインのリモート・コピーを無効化するように第1のノードのプロセッサが行う要求に応答して、2つの要求のうちの一方が完了可能になる。可能になる要求は、コヒーレンス時に、一般にはホーム・ノード側での再試行なしで完了する第1の要求である。その後で、2つの要求のうちの他方が完了可能になる。
【0008】
【発明の実施の形態】
I.NUMAシステム
A.システムの概要
図面、特に図1を参照すると、本発明の好ましい実施形態による、不均等メモリ・アクセス(NUMA)コンピュータ・システムの構成図が例示されている。図の実施形態は、たとえば、ワークステーション、ミッドレンジ・コンピュータ、またはメインフレーム・コンピュータとして理解することができる。図からわかるように、NUMAコンピュータ・システム10は、ノード相互接続20によって相互接続された処理ノード11、12、および13を含む。処理ノード11〜13はそれぞれ、少なくとも1つのプロセッサを含む。たとえば、処理ノード11はプロセッサ14a〜14cを含み、これらはすべて互いに同一であることが好ましい。
【0009】
プロセッサ14a〜14cはそれぞれ、レジスタ、命令フロー論理、およびプログラム命令の実行に使用される実行ユニットに加えて、それぞれがレベル2(L2)キャッシュ16a〜16cと共に、システム・メモリ17から関連するプロセッサ14a〜14cのいずれか1つへデータをステージする際に使用される、オンチップのレベル1(L1)キャッシュ15a〜15cのうちの1つを含む。つまり、L1キャッシュ15a〜15cおよびL2キャッシュ16a〜16cは、プロセッサ14a〜14cのうちの1つによって再度アクセスされることの多いデータ用の、システム・メモリ17とプロセッサ14a〜14cとの間の中間記憶装置として機能する。L2キャッシュ16a〜16cは一般に、L1キャッシュ15a〜15cよりも記憶容量がはるかに大きいが、アクセス待ち時間は長くなる。たとえば、L2キャッシュ16a〜16cの記憶容量は1〜16メガバイトであるが、L1キャッシュ15a〜15cの記憶容量は8〜32キロバイトしかないことがある。L2キャッシュ16a〜16cは図1ではプロセッサ14a〜14cの外部にあるとして図示されているが、別法として、それぞれ、別のレベルのオンチップ・キャッシュ・メモリとして、関連するプロセッサ14a〜14cの1つに組み込むこともできることを理解されたい。さらに、追加のデータ記憶域を提供するために、追加レベルのキャッシュ・メモリ(レベル3、レベル4など)が使用できることも理解されたい。本開示では、プロセッサ14a〜14cおよびその関連するキャッシュ階層、すなわちL1キャッシュおよびL2キャッシュをそれぞれ単一のスヌーパであるとみなす。
【0010】
さらにまた各処理ノード11〜13は、処理ノード11にはノード制御装置19というように、それぞれのノード制御装置をさらに含む。ノード制御装置19は、システム・メモリ17およびL2キャッシュ16a〜16cと共に、ローカル相互接続5に結合される。ノード制御装置19は、(1)ノード処理装置19が、ローカル相互接続5上での通信トランザクションをスヌープして、リモート処理ノード12への関連するローカル通信トランザクションの伝送を容易にすること、および(2)ノード処理装置19が、ノード相互接続20上での通信トランザクションをスヌープして、ローカル相互接続5などの関連するローカル相互接続上での関連する通信トランザクションのマスタとなることという、少なくとも2つの機能を実行することにより、リモート処理ノード12および13用のローカル・エージェントとしての役割を果たす。相互接続5など各ローカル相互接続上での通信は、アービタ18などのアービタによって制御される。アービタ18は、プロセッサ14a〜14cのうちの任意の1つによって生成されるバス要求信号に基づいて、ローカル相互接続5への任意のアクセスを規制し、ローカル相互接続5上でスヌープされた通信トランザクションに関するコヒーレンス応答をコンパイルする。ローカル相互接続5のコヒーレンス応答段階は、ReRunコヒーレンス応答によって保留することができる。ReRun応答を受け取ったトランザクションが、ReRunされたことになる。ReRun応答を発行した装置がトランザクションを完了する準備ができると、オリジナルのReRun済みトランザクションのタグが付いたReRunトランザクションをローカル相互接続5に発行する。ReRunトランザクションは、コヒーレンス応答段階が完了可能な時点で、元の要求者にトランザクションを再発行させる。
【0011】
NUMAコンピュータ・システム10内の各処理ノード11〜13は、入出力装置(たとえば、表示装置、キーボード、またはグラフィカル・ポインタなど)、オペレーティング・システムおよびアプリケーション・ソフトウェアを格納するための不揮発性記憶装置、ならびにネットワークまたは付属装置に接続するためのシリアル・ポートおよびパラレル・ポートなどの追加装置をさらに含むことができる。ただし、こうした装置は本発明について理解する必要がないとみなされるため、本発明の例示を不明瞭にするのを避けるために省略されている。
【0012】
B.メモリ構成
プロセッサ14a〜14cのようなNUMAコンピュータ・システム10のすべてのプロセッサは、単一の物理メモリ領域を共用しており、これは、各物理アドレスが単一のシステム・メモリ・ロケーションにのみ関連付けられていることを意味する。したがって、一般にNUMAコンピュータ・システム10内の任意のプロセッサによるアクセスが可能なシステム・メモリ全体の内容を、すべてのシステム・メモリ間で区分されているものと見なすことができる。たとえば、図1に示された例示的実施形態の場合、プロセッサ14aは、汎用メモリ領域および未使用領域の両方を含む、16ギガバイトのアドレス領域をアドレス指定する。汎用メモリ領域は、処理ノード11〜13がそれぞれ3番目ごとのセグメントに割り振られた、500メガバイトのセグメントに分割することが好ましい。未使用領域はおよそ2ギガバイトを含むことが可能であって、システム制御ならびにそれぞれが処理ノード11〜13のうちのそれぞれ1つに割り振られている周辺のメモリおよび入出力領域を含む。
【0013】
説明のため、特定のデータをそのシステム・メモリに格納する処理ノード(処理ノード11など)を、そのデータのホーム・ノードと呼ぶ。これに対して、NUMAコンピュータ・システム内の残りの処理ノード(処理ノード12および13など)を、特定のデータに関するリモート・ノードと呼ぶ。
【0014】
C.メモリのコヒーレンス
システム・メモリ17のようなローカル・システム・メモリに格納されたデータは、NUMAコンピュータ・システム10内の処理ノード11〜13のうちの任意の1つによる要求、アクセス、修正、およびキャッシュが可能であるため、NUMAコンピュータ・システム10は、同じローカル処理ノード内のキャッシュ・メモリ間および他のリモート処理ノード内のキャッシュ・メモリ間の両方でコヒーレンスを維持するために、キャッシュ・コヒーレンス・プロトコルを実装する。したがって、NUMAコンピュータ・システム10は、キャッシュ・コヒーレントNUMA(CC−NUMA)コンピュータ・システムとして分類するのが適切である。実装依存型であることが最も多いキャッシュ・コヒーレント・プロトコルは、たとえば周知の修正(Modified)、排他的(Exclusive)、共用(Shared)、および無効(Invalid)(MESI)プロトコルまたはその変形を備えることができる。以下では、L1キャッシュ15a〜15c、L2キャッシュ16a〜16c、およびアービタ18は修正済みMESIプロトコルを実装し、そのノード制御装置19は修正、共用、および無効の各状態を認識して、排他的状態が正確さのために修正状態にマージされるとみなされると想定する。すなわち、ノード制御装置19は、リモート・キャッシュによって排他的に保持されるデータが実際に修正されたかどうかにかかわらず、そのデータが修正されたと想定する。
【0015】
D.ノード制御装置
次に図2を参照すると、図1のNUMAコンピュータ・システム10内のノード制御装置19の詳細な構成図が示されている。図からわかるように、ローカル相互接続5とノード相互接続20との間に結合されたノード制御装置19は、トランザクション受信ユニット(TRU)31、トランザクション送信ユニット(TSU)32、データ受信ユニット(DRU)33、およびデータ送信ユニット(DSU)34を含む。図に示すように、アドレス・パケットはTRU31およびTSU32で処理され、データ・パケットはDRU33およびDSU34で処理されるように、ノード制御装置19を介したアドレス・パスおよびデータ・パスが2つに分岐する。
【0016】
TRU31は、ノード相互接続20のトランザクション・フロー・オフを示すためにこう名付けられているが、ノード相互接続20からのアドレス・パケットおよびコヒーレンス・パケットを受信すること、ローカル相互接続5上でトランザクションを発行すること、およびTSU32に応答を転送することに対する責任を負っている。TRU31は、ノード相互接続20からのパケットを受信し、選択されたパケットをバス・マスタ36とTSU32内のコヒーレンス応答論理37の両方に渡す、応答マルチプレクサ35を含む。応答マルチプレクサ35からのアドレス・パケットの受信に応答して、バス・マスタ36は、受信されたアドレス・パケットと同じまたは異なるローカル相互接続5上で通信トランザクションを開始することができる。
【0017】
TSU32は、その名称が示すようにノード相互接続20へトランザクションを流すためのコンジットである。TSU32は、ノード相互接続20のソースとなるまだ完了していない通信トランザクションの属性を一時的に格納する、複数エントリ保留バッファ40を含む。保留バッファ40のエントリに格納されるトランザクション属性は、少なくともトランザクションのアドレス(タグを含む)、トランザクションのタイプ、およびキャッシュがラインを保持できるリモート・ノードからの予測されるコヒーレンス応答の数を含むことが好ましい。タグとは、システム内のアクティブ・トランザクションを固有に識別し、アドレス・トランザクションおよびスピット・バス上のデータを関連付けるのに使用されるトランザクション識別子である。各保留バッファ・エントリは、保留バッファ・エントリが削除できるという応答がすべていったん受信されることを示すNull、またはすべての応答がいったん受信された保持タグに関するReRun要求をTSU32がTRU31に対して発行するように命令しなければならないことを示すReRunのいずれかに設定できる、関連する状態を有する。TSU32は、ノード相互接続20上のアドレス・パケットをソースとするのに加えて、TRU31と対話しながらメモリ要求トランザクションを処理し、ローカル相互接続5とノード相互接続20の間でデータ伝送を制御するためのコマンドをDRU33およびDSU34に発行する。さらにTSU32は、コヒーレンス応答論理37を使用してノード相互接続20用の修正済みコヒーレンス・プロトコル(すなわちMSIプロトコル)を実装し、ディレクトリ制御論理38を使用してコヒーレンス・ディレクトリ39を維持する。
【表1】
【0018】
コヒーレンス・ディレクトリ39は、ローカル処理ノードがホーム・ノードであるリモート・ノード側のキャッシュによって保持されるすべてのデータのシステム・メモリ・アドレスの表示(たとえばキャッシュ・ライン)を格納する。各キャッシュ・ラインに関するこのアドレス表示は、こうした各リモート処理ノードでのキャッシュ・ラインのコピーおよびキャッシュ・ラインのコヒーレンス状態を有する、各リモート処理ノードの識別子に関連して格納される。コヒーレンス・ディレクトリ39のエントリに関する可能なコヒーレンス状態を、表1にまとめて示す。表1に示すように、リモート処理ノードによって保持されるキャッシュ・ラインのコヒーレンス状態に関する知識は不正確である。この不正確さは、リモートに保持されたキャッシュ・ラインが、ホーム・ノードのノード制御装置に通知せずに、SからI、EからI、またはEからMへの移行を実行できるという事実による。
【0019】
E.衝突の検出
アドレス・バスのパイプライン化された性質およびReRun応答を介してコヒーレンスをリモート・バスに拡張する機能によって、トランザクションの完了の決定、およびシリアル化(または優先順化)する必要のあるトランザクションのシリアル化が複雑になる。対話が可能でシリアル化が必要なトランザクションのことを互いに「衝突する」と呼び、トランザクションのうちの1つは衝突検出規則によって再試行されなければならない。一般的に言えば、エージェント(ノード制御装置など)がReRunされていないメモリ要求を発行する場合、このエージェントはメモリ要求が完了するまで衝突検出に関する責任を負う。要求がReRunされている場合、ReRun応答を発行するエージェントは、トランザクションに関して遅延したコヒーレンス応答がシステムによって解決できることを示すReRunトランザクションに応答して、オリジナル・エージェントによってトランザクションが再発行されるまで、衝突検出に関する責任をとる。
【0020】
II.ライブロック問題
多重プロセッサ・バス上でライブロック状況が発生することが、防止しなければならない一般的な問題である。ライブロックは、バス上の2つのエージェントが同じキャッシュ・ラインにアクセスしようとするときに発生する可能性がある。一般にバスは、衝突を検出するための検出プロトコルと、衝突するトランザクションが再試行されるようなコヒーレンスを保証するための規則を有する。ただしある種のシナリオでは、2つの衝突するトランザクションが互いに再試行を続行し、先へ進めないようにすることが可能である。従来の技術では、再試行されたトランザクションが再度発行されるまでは、ランダム遅延を通じてライブロックを避けるための機構がある。遅延長さは、バス上で解決されるコヒーレンスに関する時間関数である。SMP単一バス・コンピュータ・システムでは、この遅延はおよそ20〜30サイクルになることが多い。NUMAコンピュータ・システムでは、相互接続交差およびコヒーレンスを解決するための時間によって導入される追加遅延は、SMPライブロック解決策がこうした大規模システムで有効になるのを妨げるほど長いものである。したがって、NUMAコンピュータ・システムに関するライブロック問題のより良い解決策が必要である。
【0021】
リモート・ノードのプロセッサが、修正を意図した読取り(read−with−intent−to−modify(RWITM))、DClaim、DKillなどのような要求を介して、そのローカルL1キャッシュ内に保持されているキャッシュ・ラインの非ローカル・コピーを無効化しようと試みたときに、同時にホーム・ノード(または第2リモート・ノード)のプロセッサも同じキャッシュ・ラインも無効化しようとすると、ライブロック状況が発生する。
【0022】
ここで図3および図4を参照すると、無効化トランザクションの衝突によって引き起こされるライブロック状況が示されている。図3に示すように、ホーム・ノード11側のプロセッサ14aが、RWITMなどの要求を介してリモート・ノード12で保持されているキャッシュ・ラインを無効化しようとするとき、ノード制御装置19はこのトランザクションをリモート・ノード12に転送する。これと同時に、図3に示すように、リモート・ノード12側のプロセッサ24aは、同じキャッシュ・ラインに関するDClaim要求などの要求を発行する。ノード制御装置19からのRWITM要求がリモート・ノード12に達すると、リモート・ノード12側に未処理のDClaim要求があるために、RWITM要求は再試行される。同様に、図4に示すように、リモート・ノード12からのDClaim要求がホーム・ノード11に達すると、ホーム・ノード11側に未処理のRWITM要求があるために、DClaim要求も再試行される。どちらの要求も、それぞれのプロセッサによって継続的に再試行および再発行されるため、その結果ライブロック状況が発生する。
【0023】
III.ライブロック問題の解決策
前述のライブロック状況の好ましい解決策は、無効化要求のうちの1つを「勝たせる(win)」ことである。本発明は、ホーム・ノード側のSMPバス上での衝突に「勝者(winner)」を確定する方法を使用する。リモート・ノードも含まれてよいホーム・ノードに達するための第1の要求トランザクションは、リモート・ノード側のそのキャッシュ・ライン上で確定された唯一のトランザクションとして、トランザクションを即時に確定する確率を上げるために、AutoRetry機構を使用してリモート・ノードに送信される。
【0024】
この解決策によって、他の要求がプロセッサに戻って再試行されているがまだ再発行されていない間に、競合する無効化のバス上に選択された無効化要求が発行される機会が増加する。前述のように、ホーム・ノード側でそれ自体を確定するための第1の要求(すなわちRetryがまだ受信されていない)が勝つように選択される。ホーム・ノード側のノード制御装置19によってこの無効化要求が要求されたリモート・ノードに転送されると、トランザクション内にAutoRetryビットと呼ばれる特別なビットが設定される。AutoRetryビットが設定されることは、リモート・ノード側のノード制御装置19のトランザクション受信ユニット31(TRU)に対して、宛先バスでRetryを受信した場合は送信側ノードへ戻って再試行するのではなく、宛先バス側で要求を再発行しなければならないことを示す。
【0025】
図5および図6に示されているように、ホーム・ノード11からのRWITM要求は、設定されたAutoRetryビットを使用して発行され、図6に示すように、リモート・ノード12側で継続してローカルにRetryされる。リモート・ノード12からのDClaim要求がプロセッサ24aに戻って再試行されると、ホーム・ノード11からのRWITM要求は、リモート・ノード12内のローカル・バス上で首尾良く完了する機会が増えることになる。トランザクションを再試行するためのノード制御装置のTRU時間は、プロセッサが再試行されたトランザクションを再発行するための平均時間よりも短い。したがって、ホーム・ノード11からのRWITM要求は結果的にノード12側で完了し、その後ノード11側で完了することになる。いったんRWITMが完了すると、DClaimが完了可能になる。
【0026】
次に図7を参照すると、本発明の好ましい実施形態により、無効化トランザクションの衝突によって引き起こされるライブロック状況の解決策を表すタイミング例が示されている。図からわかるように、RWITM要求(すなわち「勝者」)は、プロセッサ24aのRandom Retry Window中のある期間続く。
【0027】
以上述べてきたように、本発明は、NUMAコンピュータ・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法を提供する。
【0028】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0029】
(1)相互接続に結合された少なくとも2つのノードを含み、前記少なくとも2つのノードがそれぞれローカル・システム・メモリを含む、不均等メモリ・アクセス(NUMA)コンピュータ・システムにおいて無効化トランザクションの衝突によって生じるライブロックを避けるための方法であって、
第2ノードのプロセッサがキャッシュ・ラインを無効化するように要求するのとほぼ同時に、前記キャッシュ・ラインを無効化するように第1ノードのプロセッサが要求するのに応答して、前記2つの要求のうちの一方を完了可能にするステップを含み、ここで前記可能になる要求が、再試行の必要なくコヒーレンス点に達するための第1の要求であり、
その後で、前記2つの要求のうちの他方を完了可能にするステップを含む方法。
(2)前記要求のうちの1つが任意の無効化要求である、上記(1)に記載の方法。
(3)前記要求のうちの1つが修正を意図した読取り(read−with−intent−to−modify)要求である、上記(1)に記載の方法。
(4)前記要求のうちの1つがDClaim要求である、上記(1)に記載の方法。
(5)相互接続に結合された少なくとも2つのノードを含み、前記少なくとも2つのノードがローカル・システム・メモリを含む、無効化トランザクションの衝突によって生じるライブロックを避けることができる不均等メモリ・アクセス(NUMA)コンピュータ・システムであって、
第2ノードのプロセッサがキャッシュ・ラインを無効化するように要求するのとほぼ同時に、前記キャッシュ・ラインを無効化するように第1ノードのプロセッサが要求するのに応答して、前記2つの要求のうちの一方を完了可能にする手段を含み、前記可能になる要求が、再試行の必要なくコヒーレンス点に達するための第1の要求であり、
その後で、前記2つの要求のうちの他方を完了可能にする手段を含むNUMAコンピュータ・システム。
(6)前記要求のうちの1つが任意の無効化要求である、上記(5)に記載のNUMAコンピュータ・システム。
(7)前記要求のうちの1つが修正を意図した読取り(read−with−intent−to−modify)要求である、上記(5)に記載のNUMAコンピュータ・システム。
(8)前記要求のうちの1つがDClaim要求である、上記(5)に記載のNUMAコンピュータ・システム。
【図面の簡単な説明】
【図1】本発明の好ましい実施形態による、不均等メモリ・アクセス(NUMA)コンピュータ・システムの構成図である。
【図2】図1に示されたNUMAコンピュータ・システムにおけるノード制御装置の詳細な構成図である。
【図3】無効化トランザクションによって発生するライブロック状況を例示的に示す図である。
【図4】無効化トランザクションによって発生するライブロック状況を例示的に示す図である。
【図5】本発明の好ましい実施形態により、無効化トランザクションによって発生するライブロック状況の解決策を例示的に示す図である。
【図6】本発明の好ましい実施形態により、無効化トランザクションによって発生するライブロック状況の解決策を例示的に示す図である。
【図7】本発明の好ましい実施形態により、無効化トランザクションによって発生するライブロック状況の解決策のタイミング例を示す図である。
【符号の説明】
5 ローカル相互接続
11 ホーム処理ノード
12 リモート処理ノード
14a プロセッサ
14b プロセッサ
14c プロセッサ
15a レベル1キャッシュ
16a レベル2キャッシュ
17 メモリ
18 アービタ
19 ノード制御装置
24a プロセッサ
Claims (8)
- 不均等メモリ・アクセス(NUMA)コンピュータ・システムにおいて無効化トランザクションの衝突によって生じるライブロックを避けるための方法であって、
前記不均等メモリ・アクセス(NUMA)コンピュータシステム内の第1のノードのプロセッサからの、前記NUMAコンピュータシステム内の第2のノードにおける変更されたキャッシュラインを無効化する要求、および、ほぼ同時の前記第2のノードのプロセッサからの前記変更されたキャッシュラインを無効化するという要求に応答して、前記第1および第2のノードのそれぞれが別々のローカルバスを含み、前記第1のノードのプロセッサが前記変更されたキャッシュラインの勝者ノードであると判断された場合に、前記第1のノードのプロセッサからの要求を許可するステップと、
その後、前記第2のノードのプロセッサによる前記要求の実行を可能にするステップを含み、
前記許可するステップがさらに、前記第1のノードのプロセッサによる前記要求のために自動再試行(AutoRetry)ビットを設定するステップを含み、その結果前記第1のノードのプロセッサによる前記要求が、前記第1のノードにおいて再試行されるのではなく前記第2のノードにおいて再度発行される、
方法。 - 前記要求が任意の無効化要求である、請求項1に記載の方法。
- 前記要求のうちの1つが修正を意図した読取り(read-with-intent-to-modify)要求である、請求項1に記載の方法。
- 前記第1のノードがホーム・ノードであり、前記第2のノードがリモート・ノードである、請求項1に記載の方法。
- 無効化トランザクションの衝突によって生じるライブロックを避けることができる不均等メモリ・アクセス(NUMA)コンピュータ・システムであって、
前記不均等メモリ・アクセス(NUMA)コンピュータシステム内の第1のノードのプロセッサからの前記不均等メモリ・アクセス(NUMA)コンピュータ・システム内の第2のノードにおいて変更されたキャッシュラインを無効化する要求、および、ほぼ同時の第2のノードのプロセッサからの前記変更されたキャッシュラインを無効化するという要求があり、2つのノードのそれぞれが別々のローカルバスを含み、前記第1のノードのプロセッサが前記変更されたキャッシュラインの勝者ノードであると判断された場合に、前記第1のノードのプロセッサによる要求を許可する手段と、
その後、前記第2のノードのプロセッサによる前記要求の実行を可能にする手段と、を含み、
前記許可する手段が、さらに、前記第1のノードのプロセッサによる前記要求のための自動再試行(AutoRetry)ビットを設定する手段を含み、その結果、前記第1のノードのプロセッサによる前記要求が、前記第1のノードのおいて再試行されるのではなく、前記第2のノードのおいて再度発行される、
不均等メモリ・アクセス(NUMA)コンピュータ・システム。 - 前記要求が任意の無効化要求である、請求項5に記載のNUMAコンピュータ・システム。
- 前記要求のうちの1つが修正を意図した読取り(read-with-intent-to-modify)要求である、請求項5に記載のNUMAコンピュータ・システム。
- 前記第1のノードがホーム・ノードであり、前記第2のノードがリモート・ノードである、請求項5に記載のNUMAコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/259367 | 1999-02-26 | ||
US09/259,367 US6269428B1 (en) | 1999-02-26 | 1999-02-26 | Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000250882A JP2000250882A (ja) | 2000-09-14 |
JP3574031B2 true JP3574031B2 (ja) | 2004-10-06 |
Family
ID=22984648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000045824A Expired - Fee Related JP3574031B2 (ja) | 1999-02-26 | 2000-02-23 | 不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6269428B1 (ja) |
JP (1) | JP3574031B2 (ja) |
CN (1) | CN1116641C (ja) |
Families Citing this family (20)
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 |
US6826619B1 (en) | 2000-08-21 | 2004-11-30 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6487643B1 (en) * | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6772298B2 (en) | 2000-12-20 | 2004-08-03 | Intel Corporation | Method and apparatus for invalidating a cache line without data return in a multi-node architecture |
US6799217B2 (en) * | 2001-06-04 | 2004-09-28 | Fujitsu Limited | Shared memory multiprocessor expansion port for multi-node systems |
US7096323B1 (en) * | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
US6868485B1 (en) * | 2002-09-27 | 2005-03-15 | Advanced Micro Devices, Inc. | Computer system with integrated directory and processor cache |
JP4507563B2 (ja) * | 2003-11-10 | 2010-07-21 | 株式会社日立製作所 | マルチプロセッサシステム |
US7472229B2 (en) * | 2004-08-12 | 2008-12-30 | International Business Machines Corporation | Bus controller initiated write-through mechanism |
US7523110B2 (en) * | 2005-03-03 | 2009-04-21 | Gravic, Inc. | High availability designated winner data replication |
US7631150B2 (en) * | 2006-09-29 | 2009-12-08 | Broadcom Corporation | Memory management in a shared memory system |
US7747803B2 (en) * | 2007-11-28 | 2010-06-29 | International Business Machines Corporation | Device, system, and method of handling delayed transactions |
CN101833537A (zh) * | 2010-04-23 | 2010-09-15 | 浪潮电子信息产业股份有限公司 | 一种基于ccnuma多处理器架构下的多结点初始化同步方法 |
EP2568379B1 (en) * | 2011-10-27 | 2016-04-27 | Huawei Technologies Co., Ltd. | Method for preventing node controller deadlock and node controller |
US9292442B2 (en) * | 2013-04-11 | 2016-03-22 | Qualcomm Incorporated | Methods and apparatus for improving performance of semaphore management sequences across a coherent bus |
US10592459B2 (en) | 2014-03-07 | 2020-03-17 | Cavium, Llc | Method and system for ordering I/O access in a multi-node environment |
US9411644B2 (en) | 2014-03-07 | 2016-08-09 | Cavium, Inc. | Method and system for work scheduling in a multi-chip system |
US9372800B2 (en) * | 2014-03-07 | 2016-06-21 | Cavium, Inc. | Inter-chip interconnect protocol for a multi-chip system |
US9529532B2 (en) | 2014-03-07 | 2016-12-27 | Cavium, Inc. | Method and apparatus for memory allocation in a multi-node system |
US10503641B2 (en) * | 2016-05-31 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache coherence for processing in memory |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05127998A (ja) * | 1991-11-01 | 1993-05-25 | Fujitsu Ltd | システムバス上のキヤツシユ無効化指示の衝突回避方法及びその装置 |
US5444701A (en) * | 1992-10-29 | 1995-08-22 | International Business Machines Corporation | Method of packet routing in torus networks with two buffers per edge |
US5436903A (en) * | 1993-06-30 | 1995-07-25 | Digital Equipment Corporation | Method and apparatus for use in a network of the ethernet type, to improve fairness by controlling collision backoff times and using stopped backoff timing in the event of channel capture |
JP2786124B2 (ja) * | 1995-04-26 | 1998-08-13 | 甲府日本電気株式会社 | 共有メモリ型マルチプロセッサシステム |
US5673413A (en) * | 1995-12-15 | 1997-09-30 | International Business Machines Corporation | Method and apparatus for coherency reporting in a multiprocessing system |
US5778235A (en) * | 1996-02-26 | 1998-07-07 | Robertson; Paul Gordon | Computer system and arbitrator utilizing a bus bridge that avoids livelock |
US5809548A (en) * | 1996-08-30 | 1998-09-15 | International Business Machines Corporation | System and method for zeroing pages with cache line invalidate instructions in an LRU system having data cache with time tags |
US6078981A (en) * | 1997-12-29 | 2000-06-20 | Intel Corporation | Transaction stall technique to prevent livelock in multiple-processor systems |
US6141733A (en) * | 1998-02-17 | 2000-10-31 | International Business Machines Corporation | Cache coherency protocol with independent implementation of optimized cache operations |
US6138218A (en) * | 1998-02-17 | 2000-10-24 | International Business Machines Corporation | Forward progress on retried snoop hits by altering the coherency state of a local cache |
US6122692A (en) * | 1998-06-19 | 2000-09-19 | International Business Machines Corporation | Method and system for eliminating adjacent address collisions on a pipelined response bus |
-
1999
- 1999-02-26 US US09/259,367 patent/US6269428B1/en not_active Expired - Fee Related
- 1999-12-24 CN CN99126570A patent/CN1116641C/zh not_active Expired - Fee Related
-
2000
- 2000-02-23 JP JP2000045824A patent/JP3574031B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000250882A (ja) | 2000-09-14 |
US6269428B1 (en) | 2001-07-31 |
CN1264872A (zh) | 2000-08-30 |
CN1116641C (zh) | 2003-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3575595B2 (ja) | 不均等メモリ・アクセス・システム内で書き戻しの衝突によって生じるライブロックを避けるための方法およびシステム | |
JP3574031B2 (ja) | 不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム | |
US5887138A (en) | Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes | |
KR100465583B1 (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법 | |
US6094709A (en) | Cache coherence for lazy entry consistency in lockup-free caches | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
EP0817070B1 (en) | Multiprocessing system employing a coherency protocol including a reply count | |
US5734922A (en) | Multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
EP0817077B1 (en) | A multiprocessing system configured to perform prefetching operations and method therefor | |
KR100348947B1 (ko) | 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템 | |
JP3629511B2 (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
CA2280172C (en) | Non-uniform memory access (numa) data processing system that holds and reissues requests at a target processing node in response to a retry | |
CA2271536C (en) | Non-uniform memory access (numa) data processing system that buffers potential third node transactions to decrease communication latency | |
US5950226A (en) | Multiprocessing system employing a three-hop communication protocol | |
US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
US7409500B2 (en) | Systems and methods for employing speculative fills | |
JP2000227908A (ja) | 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム | |
US7685373B2 (en) | Selective snooping by snoop masters to locate updated data | |
US6226718B1 (en) | Method and system for avoiding livelocks due to stale exclusive/modified directory entries within a non-uniform access system | |
CA2279138C (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 | |
US7000080B2 (en) | Channel-based late race resolution mechanism for a computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20031224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040220 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040630 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070709 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |