JP3661761B2 - 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム - Google Patents
共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム Download PDFInfo
- Publication number
- JP3661761B2 JP3661761B2 JP35233199A JP35233199A JP3661761B2 JP 3661761 B2 JP3661761 B2 JP 3661761B2 JP 35233199 A JP35233199 A JP 35233199A JP 35233199 A JP35233199 A JP 35233199A JP 3661761 B2 JP3661761 B2 JP 3661761B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- cache
- cache line
- request
- hierarchy
- 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
Description
【発明の属する技術分野】
本発明は一般に、データ処理のための方法及びシステムに関し、特に、不均等メモリ・アクセス(NUMA:non-uniform memory access)データ処理システムにおけるデータ処理に関する。より詳細には、本発明は、共用介入により要求データを供給するMUMAデータ処理システム、及びMUMAデータ処理システムにおける方法に関する。
【0002】
【従来の技術】
コンピュータ技術では、複数の個々のプロセッサの処理能力をタンデムに結合することにより、偉大なコンピュータ・システム性能が達成され得ることが知られている。マルチプロセッサ(MP)・コンピュータ・システムは、多数の異なるトポロジにより設計され、各アプリケーションの性能要求及びソフトウェア環境に応じて、様々なトポロジが特定のアプリケーションにとってより好適となる。最も一般的なMPコンピュータ・トポロジの1つは、対称マルチプロセッサ(SMP)構成であり、そこでは複数のプロセッサが、システム・メモリや入出力(I/O)サブシステムなどの共通の資源を共用する。これらの共通資源は一般に、共用システム相互接続に結合される。こうしたコンピュータ・システムは対称型と呼ばれる。なぜなら、SMPコンピュータ・システム内の全てのプロセッサが、理想的には、共用システム・メモリ内に記憶されるデータに対して同一のアクセス待ち時間を有するからである。
【0003】
SMPコンピュータ・システムは、比較的単純なプロセッサ間通信及びデータ共用方式の使用を可能にするが、SMPコンピュータ・システムは限られたスケーラビリティを有する。換言すると、典型的なSMPコンピュータ・システムの性能は、一般に、スケール(すなわちより多くのプロセッサの追加)に伴い改善されると期待されるが、共用資源の利用が最適化されるインプリメンテーション依存のサイズを超えて、SMPをスケーリングしても、固有バス、メモリ、及び入出力(I/O)の帯域幅制限が大きな利点の獲得を阻害する。従って、システムのスケールが増大するとき、SMPトポロジ自身がある程度の帯域幅制限を受け、これは特にシステム・メモリにおいて顕著である。SMPコンピュータ・システムはまた、製造効率の観点からも十分にスケーリングできない。例えば、一部のコンポーネントは、単一プロセッサ及び小規模SMPコンピュータ・システムの両方において使用されるように最適化されるが、こうしたコンポーネントは大規模SMPで使用するには、しばしば非効率的である。逆に、大規模SMP用に設計されたコンポーネントは、小規模システムにおいて使用するには、コストの観点から非現実的である。
【0004】
結果的に、不均等メモリ・アクセス(NUMA)として知られるMPコンピュータ・システム・トポロジが、特定の追加の複雑化を犠牲にして、SMPコンピュータ・システムの多くの制限を解決する代替設計として登場した。典型的なNUMAコンピュータ・システムは多数の相互接続ノードを含み、各ノードは1つ以上のプロセッサ及びローカル・"システム"・メモリを含む。こうしたコンピュータ・システムは、不均等メモリ・アクセスを有すると言われる。なぜなら、各プロセッサが、そのローカル・ノードのシステム・メモリに記憶されるデータに対する方が、リモート・ノードのシステム・メモリに記憶されるデータに対するよりも、低いアクセス待ち時間を有するからである。MUMAシステムは更に、データ・コヒーレンスが異なるノード内のキャッシュ間で維持されるか否かに従い、ノンコヒーレントまたはキャッシュ・コヒーレントとして分類される。キャッシュ・コヒーレントNUMA(CC−MUMA)システムの複雑性は、その大部分が、各ノード内の様々なレベルのキャッシュ・メモリとシステム・メモリ間のデータ・コヒーレンスだけでなく、異なるノード内のキャッシュ・メモリとシステム・メモリ間のデータ・コヒーレンスを維持するために、ハードウェアに要求される追加の通信に帰属する。しかしながら、NUMAコンピュータ・システムでは、NUMAコンピュータ・システム内の各ノードが、小規模SMPシステムとして実現され得るので、従来のSMPコンピュータ・システムのスケーラビリティ制限を解決する。従って、各ノード内の共用コンポーネントが、幾つかのプロセッサだけによる使用のために最適化され、システム全体は比較的低い待ち時間を維持しながら、大規模並列性の可用性による恩恵を受ける。
【0005】
【発明が解決しようとする課題】
CC−NUMAコンピュータ・システムに関わる基本性能問題は、ノードを結合する相互接続を介して伝送される通信トランザクションに関連する待ち時間である。特に、最も一般的なタイプのトランザクションである読出しトランザクションは、リモート・システム・メモリ内に存在するデータをターゲットとするとき、ローカル・システム・メモリ内に存在するデータをターゲットとする読取りトランザクションに比較して、2倍の待ち時間を有し得る。ローカル相互接続上の読取りトランザクションに対し、ノード相互接続を介して伝送される読取りトランザクションに関連付けられる比較的高い待ち時間により、ノード相互接続を介して伝送される読取りトランザクションの数を低減すること、及びこうしたリモート読出しトランザクションの待ち時間を低減することが好ましい。
【0006】
【課題を解決するための手段】
本発明によれば、不均等メモリ・アクセス(NUMA)・コンピュータ・システムにおける読出し要求の数及び待ち時間が、共用介入をサポートすることにより低減される。NUMAコンピュータ・システムは、一緒に結合される第1及び第2の処理ノードを含む。第1の処理ノードはシステム・メモリと、各々がそれぞれの関連キャッシュ階層を有する第1及び第2のプロセッサとを含む。第2の処理ノードは、少なくとも第3のプロセッサとシステム・メモリとを含む。第1のプロセッサのキャッシュ階層が、あるキャッシュ・ラインの未変更コピーを保持し、第3のプロセッサからそのキャッシュ・ラインに対する要求を受信すると、第1のプロセッサのキャッシュ階層が要求キャッシュ・ラインを第3のプロセッサに発信し、そのキャッシュ・ラインのコピーを最近コヒーレンス状態に保持し、そこから第1のプロセッサのキャッシュ階層は続く要求に応答して、キャッシュ・ラインを発信することができる。
【0007】
本発明の目的、特徴及び利点は、添付の図面に関連して述べられる本発明の実施例の詳細な説明から明らかとなろう。
【0008】
【発明の実施の形態】
システム概要:
図1を参照すると、本発明に従うNUMAコンピュータ・システムの実施例が示される。図示の実施例は、例えばワークステーション、サーバ、またはメインフレーム・コンピュータとして実現される。図示のように、NUMAコンピュータ・システム6は複数(N≧2)の処理ノード8a乃至8nを含み、それらがノード相互接続22により相互接続される。処理ノード8a乃至8nは各々、M(M≧0)個のプロセッサ10、ローカル相互接続16、及びメモリ制御装置17を介してアクセスされるシステム・メモリ18を含む。プロセッサ10a乃至10mは好適には同一であり(但し必ずしも同一である必要はない)、IBMから提供されるPowerPCプロセッサ・ライン内のプロセッサを含み得る。レジスタに加え、命令フロー論理及び実行ユニットがプログラム命令を実行するために使用され、これらは一般にプロセッサ・コア12として示される。プロセッッサ10a乃至10mの各々は、データをシステム・メモリ18から関連プロセッサ・コア12にステージするために使用されるオンチップ・キャッシュ階層を含む。各キャッシュ階層14は少なくとも1レベルのキャッシュを含み、例えばレベル1(L1)キャッシュ及びレベル2(L2)キャッシュを含み、それぞれが8キロバイト乃至32キロバイト(KB)及び1メガバイト乃至16メガバイト(MB)の記憶容量を有する。従来通り、こうしたキャッシュはキャッシュ制御装置により管理され、キャッシュ制御装置はとりわけ、選択キャッシュ・ライン置換法及びコヒーレンス・プロトコルを実現する。本開示では、各プロセッサ10及びその関連キャッシュ階層14は、単一スヌーパと見なされる。
【0009】
処理ノード8a乃至8nの各々は、ローカル相互接続16とノード相互接続22間に結合されるそれぞれのノード制御装置20を含む。各ノード制御装置20は、少なくとも2つの機能を実行することにより、リモート処理ノード8のためのローカル・エージェントとして作用する。第1に、各ノード制御装置20は関連ローカル相互接続16をスヌープし、リモート処理ノード8へのローカル通信トランザクション(例えば読出し要求)の伝送を容易にする。第2に、各ノード制御装置20はノード相互接続22上の通信トランザクションをスヌープし、関連ローカル相互接続16上の関連通信トランザクションを支配する。各ローカル相互接続16上の通信は、アービタ24により制御される。アービタ24は、後述のように、プロセッサ10により生成されるバス要求信号にもとづき、ローカル相互接続16へのアクセスを調整し、ローカル相互接続16上でスヌープされた通信トランザクションのために、コヒーレンス応答をコンパイルする。
【0010】
ローカル相互接続16は、メザニン・バス・ブリッジ26を介してメザニン・バス30に結合される。メザニン・バス30は、例えば周辺コンポーネント相互接続(PCI)ローカル・バスとして実現され得る。メザニン・バス・ブリッジ26は、プロセッサ10がI/O装置32及び記憶装置34の中の装置を直接アクセスする低待ち時間経路と、I/O装置32及び記憶装置34がシステム・メモリ18をアクセスする高帯域幅経路の両方を提供する。ここでI/O装置32及び記憶装置34は、バス・メモリまたはI/Oアドレス空間にマップされる。I/O装置32は例えば、表示装置、キーボード、グラフィカル・ポインタ、及び外部ネットワークまたは接続装置への接続のためのシリアル及びパラレル・ポートを含む。他方、記憶装置34は光ディスクまたは磁気ディスクを含み得、これらはオペレーティング・システム及びアプリケーション・ソフトウェアのための不揮発性記憶装置を提供する。
【0011】
メモリ構成:
MUMAコンピュータ・システム6内の全てのプロセッサ10が、1つの物理メモリ空間を共用し、このことは各物理アドレスが、システム・メモリ18の1つ内の単一の位置にだけ関連付けられることを意味する。従って、システム・メモリの全体の内容が、一般にNUMAコンピュータ・システム6内の任意のプロセッサ10によりアクセスされ、システム・メモリ18間で区分化されると見なされる。例えば、4つの処理ノード8を有する本発明の実施例では、NUMAコンピュータ・システムが、汎用メモリ領域及び予約領域の両方を含む、16ギガバイト(GB)の物理アドレス空間を有し得る。汎用メモリ領域は500MBセグメントに分割され、4つの各々の処理ノード8が4セグメント毎に割当てられる。予約領域は約2GBを含み得、システム制御、周辺メモリ及びI/O領域を含み、これらの各々がそれぞれの1つの処理ノード8に割当てられる。
【0012】
説明の都合上、処理ノード8はそのシステム・メモリ18内に特定のデータを記憶し、そのデータに対するホーム・ノードと呼ばれる。逆に、他の処理ノード8a乃至8nはその特定のデータに関して、リモート・ノードと呼ばれる。
【0013】
メモリ・コヒーレンス:
各システム・メモリ18内に記憶されるデータは、NUMAコンピュータ・システム6内の任意のプロセッサ10により要求され、アクセスされ、変更され得るので、NUMAコンピュータ・システム6はキャッシュ・コヒーレンス・プロトコルを実行し、同一の処理ノード内のキャッシュ間、及び異なる処理ノード内のキャッシュ間の両方において、コヒーレンスを維持する。従って、NUMAコンピュータ・システム6は、CC(キャッシュ・コヒーレント)−NUMAコンピュータ・システムとして適切に分類される。実行される特定のキャッシュ・コヒーレンス・プロトコルは、インプリメンテーション依存であるが、本発明の好適な実施例では、公知の変更(Modified)、排他(Exclusive)、共用(Shared)、無効(Invalid)(すなわちMESI)プロトコルの変形として、5番目のR(最近(Recent))状態を含む。これについては、前記参照した係属中の米国特許出願で詳述されている。以下では、キャッシュ階層14及びアービタ24が、従来のR−MESIプロトコルを実行すると仮定し、ノード制御装置20がM状態、S状態及びI状態を認識し、E状態がM状態に併合され、R状態がS状態に併合されるものと見なす。すなわち、ノード制御装置20は、リモート・キャッシュにより排他的に保持されるデータが、それが実際に変更されたか否かに関わらず、変更されたものと仮定し、遠隔的に保持されたデータに対してS状態とR状態とを区別しない。
【0014】
相互接続アーキテクチャ:
ローカル相互接続16及びノード相互接続22は、それぞれ任意のバス・ベースの同報アーキテクチャ、スイッチ・ベースの同報アーキテクチャ、またはスイッチ・ベースの非同報アーキテクチャにより実現され得る。しかしながら、好適な実施例では、少なくともノード相互接続22は、IBMにより開発された6xx通信プロトコルにより管理されるスイッチ・ベースの非同報相互接続として実現される。ローカル相互接続16及びノード相互接続22は、トランザクションの分割を可能にし、このことはすなわち、通信トランザクションを構成するアドレス及びデータ保有期間の間に、固定のタイミング関係が存在せず、またデータ・パケットが、関連付けられるアドレス・パケットと異なって順序付けられることを意味する。ローカル相互接続16及びノード相互接続22の使用はまた、好適には、通信トランザクションをパイプライン化することにより向上され、これは続く通信トランザクションが、前の通信トランザクションのマスタが各受信者からコヒーレンス応答を受信するよりも先に、発信されることを可能にする。
【0015】
実現される相互接続アーキテクチャのタイプに関係無しに、少なくとも3つのタイプの"パケット"、すなわちアドレス、データ、及びコヒーレンス応答が、ノード相互接続22を介して処理ノード8間で、及びローカル相互接続16を介してスヌーパ間で、情報を伝達するために使用される(ここではパケットは、情報の個別単位を指し示すために総称的に使用される)。次に、表1、表2を参照すると、アドレス及びデータ・パケットの関連フィールド及び定義の概要が、それぞれ示される。
【表1】
【0016】
【表2】
【0017】
表1及び表2に示されるように、受信ノードまたはスヌーパが、各パケットが属する通信トランザクションを判断することを可能にするために、通信トランザクション内の各パケットが、トランザクション・タグにより識別される。当業者であれば分かるように、追加のフロー制御論理及び関連フロー制御信号が、有限な通信資源の利用を調整するために使用され得る。
【0018】
各処理ノード8内において、ステータス及びコヒーレンス応答が、各スヌーパとローカル・アービタ24間で通信される。ステータス及びコヒーレンス通信のために使用される、ローカル相互接続16内の信号線が、表3に要約して示される。
【表3】
【0019】
ローカル相互接続16のAResp及びAStat信号線を介して伝送されるステータス及びコヒーレンス応答は、好適には、関連するアドレス・パケットと固定の、しかしながらプログラマブルなタイミング関係を有する。例えば、AStatOut採決は、各スヌーパがローカル相互接続16上を伝送されるアドレス・パケットを成功裡に受信したか否かの予備指示を提供し、アドレス・パケットの受信に続く第2サイクルにおいて要求され得る。アービタ24はAStatOut採決をコンパイルし、固定のしかしながらプログラマブルなサイクル数(例えば1サイクル)の後に、AStatIn採決を発行する。可能なAStat採決が、表4に要約されて示される。
【表4】
【0020】
AStatIn期間に続き、固定のしかしながらプログラマブルなサイクル数(例えば2サイクル)の後に、ARespOut採決が要求され得る。アービタ24はまた、好適には次のサイクルの間に、各スヌーパのARespOut採決をコンパイルし、ARespIn採決を転送する。可能なAResp採決は、好適には、表5に示されるコヒーレンス応答を含む。
【表5】
【0021】
AResp採決の再実行は、通常ノード制御装置20により発行され、これはスヌープされた要求が長い待ち時間を有し(例えば要求がリモート処理ノード8において、プロセッサ10またはシステム・メモリ18によりサービスされる)、要求元が後にトランザクションを再発行するように命令されることを示す。従って、AResp採決の再試行と比較して、再実行は、(トランザクションの発信者ではなく、)再実行を採決したトランザクションの受信者に対して、後に通信トランザクションの再発行を指示する責任を負わせる。
【0022】
ノード制御装置:
図2を参照すると、図1のNUMAコンピュータ・システム6内のノード制御装置20のより詳細なブロック図が示される。図2に示されるように、各ノード制御装置20はローカル相互接続16とノード相互接続22との間に結合され、トランザクション受信ユニット(TRU)40、トランザクション送信ユニット(TSU)42、データ受信ユニット(DRU)44、及びデータ送信ユニット(DSU)46を含む。TRU40、TSU42、DRU44及びDSU46は、例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)またはアプリケーション特定集積回路(ASIC)により実現される。図示のように、ノード制御装置20を通じるアドレス及びデータ経路は二股に分岐され、アドレス(及びコヒーレンス)・パケットがTRU40及びTSU42により処理され、データ・パケットがDSU44及びDRU46により処理される。
【0023】
TRU40は、ノード相互接続22からのトランザクション・フローを示すように指定され、ノード相互接続22からアドレス及びコヒーレンス・パケットを受諾し、トランザクションをローカル相互接続16上に発行し、応答をTSU42に転送する責任がある。TRU40は応答マルチプレクサ52を含み、これはノード相互接続22からパケットを受信し、選択されたパケットをバス・マスタ54及びTSU42内のコヒーレンス応答論理56の両方に受け渡す。応答マルチプレクサ52からのアドレス・パケットの受信に応答して、バス・マスタ54は、そのローカル相互接続16上で通信トランザクションを開始する。この通信トランザクションは、受信アドレス・パケットにより示される通信トランザクションと同一のまたは異なるタイプである。
【0024】
TSU42は、その用語により示されるように、ノード相互接続22上に転送されるトランザクションのコンジット(conduit)であり、ノード相互接続22上に発信された、まだ完了されていない通信トランザクションの属性を一時的に記憶する複数エントリ保留バッファ60を含む。保留バッファ60のエントリに記憶されるトランザクション属性は、好適には、少なくともトランザクションのアドレス(タグを含む)、トランザクションのタイプ、及び期待されるコヒーレンス応答の数を含む。各保留バッファ・エントリは関連ステータスを有し、これはNullにセットされて、保留バッファ・エントリが消去され得ることを示すか、再実行にセットされ、トランザクションがまだ保留であることを示す。ノード相互接続22上へのアドレス・パケットの発信に加え、TSU42はTRU40と対話して、メモリ要求トランザクションを処理し、またコマンドをDRU44及びDSU46に発行し、ローカル相互接続16とノード相互接続22間のデータの転送を制御する。TSU42はまた、コヒーレンス応答論理56により、ノード相互接続22のために選択された(例えばMSI)コヒーレンス・プロトコルを実行し、ディレクトリ制御論理58により、コヒーレンス・ディレクトリ50を保守する。
【0025】
コヒーレンス・ディレクトリ50は、ホーム・ノードであるローカル処理ノードにとって、リモート・ノード内のキャッシュにチェックアウトされたデータ(例えばキャッシュ・ライン)のシステム・メモリ・アドレスの指示を記憶する。各キャッシュ・ラインのアドレス指示は、そのキャッシュ・ラインのコピーを有する各リモート処理ノードの識別子、及び各こうしたリモート処理ノードにおけるそのキャッシュ・ラインのコヒーレンス・ステータスに関連して記憶される。コヒーレンス・ディレクトリ50内のエントリの可能なコヒーレンス状態が、表6に示される。
【表6】
【0026】
表6に示されるように、リモート処理ノードにより保持されるキャッシュ・ラインのコヒーレンス状態の知識は不明瞭である。この不明瞭さは、遠隔的に保持されるキャッシュ・ラインが、ホーム・ノードのノード制御装置20に通知することなく、R、SまたはEからIに、或いはEからMに遷移するし得る事実による。
【0027】
読出し要求の処理:
プロセッサ読出し要求の待ち時間を低減するために、本発明は共用介入をサポートする。すなわち、読出し要求に応答してNUMAコンピュータ・システム6内で、未変更(すなわちEまたはM)状態のデータを保持するキャッシュによりデータを発信する。NUMAコンピュータ・システム6内の複数のキャッシュが、同一の未変更キャッシュ・ラインを同時に保持し得るので、共用介入によりキャッシュ・ラインを発信するキャッシュを調整する機構が必要とされ得る。前記係属中の米国特許出願で述べられるように、この機構はR(最近)キャッシュ・コヒーレンス状態である。本発明によれば、特定の処理ノード8内の1つのキャッシュ階層14だけが、ある時点においてR状態の特定のキャッシュ・ラインを保持できる。しかしながら、複数の処理ノード8内のキャッシュ階層14が、R状態の同一のキャッシュ・ラインを同時に保持し得る。
【0028】
表7は、読出しミスに続き、ローカル相互接続16において読出し要求を発行するキャッシュ階層14における状態遷移を示す。
【表7】
【0029】
表7に示されるように、キャッシュ階層14がARespIn共用コヒーレンス採決を受信する場合、キャッシュ階層14のキャッシュ制御装置は、同一の処理ノード8内の他のスヌーパが、R状態またはM状態の要求キャッシュ・ラインを保持せず、要求キャッシュ・ラインがローカル・システム・メモリ18により、またはノード制御装置20を介してリモート・システム・メモリ18により供給されることを知る。従って、要求元キャッシュ階層14がローカル相互接続16を介して要求キャッシュ・ラインを受信するとき、キャッシュ階層14のキャッシュ制御装置は要求キャッシュ・ラインをキャッシュし、そのコヒーレンス状態を最近(Recent)にセットする。これはすなわち、要求キャッシュ・ラインを保持する複数のローカル・キャッシュ階層14の内、要求元キャッシュ階層14が共用介入により、要求キャッシュ・ラインを発信する責任があることを意味する。
【0030】
要求元キャッシュ階層14が読出し要求に応答して、ARespIn Nullコヒーレンス採決を受信する場合、要求元キャッシュ階層14のキャッシュ制御装置は、どのローカル・キャッシュ階層14も要求キャッシュ・ラインのコピーを記憶せず、要求キャッシュ・ラインがローカル・システム・メモリ18により、またはノード制御装置20を介してリモート・システム・メモリにより発信されることを知る。要求キャッシュ・ラインが要求元キャッシュ階層14により受信されるとき、要求キャッシュ・ラインが排他状態でキャッシュされる。
【0031】
要求元キャッシュ階層14がARespIn共用介入または変更介入採決を受信する場合、要求元プロセッサ10におけるキャッシュ制御装置は、要求キャッシュ・ラインが同一の処理ノード10内の別のスヌーパにより発信されることを知り、要求キャッシュ・ラインの受信に際して、それをR状態で記憶する。
【0032】
読出し要求の受信に応答したスヌーパのキャッシュ階層内の状態遷移が、表8に示される。重要な点は、読出し要求がキャッシュ・ラインのコヒーレンス状態に及ぼす影響が、読出し要求がローカル・プロセッサ10から受信されたか、またはローカル・ノード制御装置20を介してリモート処理ノード8内のプロセッサ10から受信されたかに依存することである。読出し要求の発信元に関する情報は、スヌーピング・プロセッサ10に多様に伝達され得る。例えば、ノード制御装置20が"リモート要求"信号を各プロセッサ10のキャッシュ階層14に供給し、この信号がノード制御装置20がいつリモート処理ノード8からの読出し要求をローカル相互接続16上に発信したかを示す。こうした"リモート要求"信号は、ノード制御装置20によりローカル相互接続16上の読出し要求トランザクション内の定義フィールド(例えばトランザクション・タイプ)内に挿入されるか、ノード制御装置20を各プロセッサ20に接続する別の信号線を介して伝送され得る。
【表8】
【0033】
表8に示されるように、キャッシュ階層14が、ローカル・プロセッサ10により発行された読出し要求をスヌープし(すなわち、"リモート要求"信号がアサートされない)、要求キャッシュ・ラインを排他状態または最近状態で保持する場合、スヌーピング・キャッシュ階層14が共用介入ARespOut採決を提供し、アービタ24からの共用介入ARespIn採決の受信に応答して、要求キャッシュ・ラインをローカル相互接続16上に発信し、要求キャッシュ・ラインのコピーのコヒーレンス状態を共用状態に更新する。同様に、キャッシュ階層14がローカル・プロセッサ10により発行された読出し要求をスヌープし、要求キャッシュ・ラインを変更状態で保持する場合、スヌーピング・キャッシュ階層14が変更介入ARespOut採決を提供し、変更介入ARespIn採決の受信に応答して、要求キャッシュ・ラインをローカル相互接続16上に発信し、要求キャッシュ・ラインのコピーのコヒーレンス状態を共用状態に更新する。他方、スヌーピング・キャッシュ階層14が、ローカルまたはリモート・プロセッサ10により要求されたキャッシュ・ラインを、共用または無効状態で保持する場合、スヌーピング・キャッシュ階層14は適切なARespOut採決(すなわち、それぞれ共用またはNull)を提供するがデータを発信しない。
【0034】
表8に示される残りの3つのケースは、キャッシュ・ラインのホーム・ノードまたはリモート・ノードにおいて、キャッシュ階層14をスヌープするとき、リモート処理ノード8からローカル・ノード制御装置20を介して、そのキャッシュ・ラインの読出し要求を受信する。上述のように、こうした読出し要求は"リモート要求"信号により識別される。こうした読出し要求の受信に応答して、要求キャッシュ・ラインが排他的または最近状態に保持される場合、スヌーピング・キャッシュ階層14は適切なARespOut採決、すなわち共用介入を提供し、要求キャッシュ・ラインが変更状態に保持される場合、変更介入を提供する。次に、ARespIn共用介入信号(ARespOut共用介入採決が提供された場合)、またはARespIn変更介入(ARespOut変更介入採決が提供された場合)の受信に応答して、スヌーピング・キャッシュ階層14が要求キャッシュ・ラインをローカル相互接続16上に発信する。更に、スヌーピング・キャッシュ階層14における要求キャッシュ・ラインのコヒーレンス状態が、排他または変更状態の場合、最近状態に更新され、既に最近状態にセットされている場合、未変更に維持される。スヌーピング・キャッシュ階層14により、ローカル相互接続16上に発信されたキャッシュ・ラインは、ローカル・ノード制御装置20により受信され、後者はキャッシュ・ラインをノード相互接続22を介して、要求元処理ノード8のノード制御装置に送信する。
【0035】
表7及び表8に示されない状態及びオペレーションでは、コヒーレンス状態遷移及びコヒーレンス応答は、MESIプロトコルに従い実行され、最近状態は共用状態のように扱われる。
【0036】
図3及び図4を参照すると、NUMAコンピュータ・システム6内の典型的な処理過程が示される。そこでは、リモート処理ノード8から受信される読出し要求内で要求されるキャッシュ・ラインが、共用介入により宛先処理ノード8において発信される。明瞭化のため、NUMAコンピュータ・システム6の単純化された実施例が示され、そこでは2つの処理ノード8a及び8bの各々が、2つのプロセッサ10a及び10bをそれぞれ含む。
【0037】
図3に示されるように、処理ノード8bのプロセッサ10bが最初に、そのキャッシュ階層14から、処理ノード8aをホーム・ノードとして有するキャッシュ・ラインを要求する。キャッシュ階層14内での要求ミスに応答して、プロセッサ10bはそのキャッシュ・ラインに対する読出し要求を、そのローカル相互接続16上に発信する。プロセッサ10aは要求をスヌープし、Null ARespOut採決により応答し、プロセッサ10aのキャッシュ階層14が要求キャッシュ・ラインのコピーを記憶しないことを示し、ノード制御装置20がARespOut再実行を採決する。アービタ(図示せず)がARespOut採決をコンパイルし、ARespIn再実行を採決するのに応答して、ノード制御装置20はノード相互接続22を介して読出し要求をホーム・ノードに、すなわち処理ノード8aに転送する。
【0038】
転送された読出し要求の受信に応答して、処理ノード8aのノード制御装置20は、"リモート要求"信号と一緒に、読出し要求を処理ノード8aのローカル相互接続16上に転送する。プロセッサ10bのキャッシュ階層14は、最近状態の要求キャッシュ・ラインのコピーを記憶するので、プロセッサ10bはARespOut共用介入採決を提供する。プロセッサ10bは続いて、図4に示されるように、アービタからのARespIn共用介入採決の受信に応答して、共用介入により、要求キャッシュ・ラインをローカル相互接続16上に発信する。しかしながら、プロセッサ10bはノード制御装置20により、読出し要求が処理ノード8bから転送された"リモート要求"であることを通知されたので、プロセッサ10bのキャッシュ階層14は要求キャッシュ・ラインを最近状態に保持する。
【0039】
要求キャッシュ・ラインを含むデータ・トランザクションは、処理ノード8aのノード制御装置20により受信され、ノード相互接続22を介して処理ノード8bのノード制御装置20に転送される。処理ノード8aのコヒーレンス・ディレクトリ50は、キャッシュ・ラインのコヒーレンス状態を不明瞭な共用状態に更新することにより、そのキャッシュ・ラインが処理ノード8bに非排他的に"チェックアウト"されたことを記録する。要求キャッシュ・ラインは次に、処理ノード8bのノード制御装置20によりプロセッサ10bに供給され、後者が要求キャッシュ・ラインを最近状態で記憶する。このようにして、各処理ノード8a及び8bのプロセッサ10bは引き続き、キャッシュ・ラインのローカル要求及びリモート要求をサービスする。
【0040】
上述のように、本発明はデータの共用介入をサポートすることにより、ノード相互間読出し要求の数を低減し、読出し要求の待ち時間を低減する、NUMAコンピュータ・システムを提供する。本発明によれば、各処理ノードが、同一のキャッシュ・ラインを非排他最近状態に保持するスヌーパ(例えばキャッシュ階層)を有し、スヌーパがそこからキャッシュ・ラインを発信できる。リモート・プロセッサの読出し要求に応答して、スヌーパが最近状態、排他状態または変更状態に保持されたキャッシュ・ラインのコヒーレンス状態を共用状態に更新するのを阻止するために、各スヌーパはリモート要求信号によりこうした要求を通知される。
【0041】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0042】
(1)システム・メモリと、それぞれが関連キャッシュ階層を有する第1及び第2のプロセッサとを含む、第1の処理ノードと、
前記第1の処理ノードに結合され、少なくとも第3のプロセッサとシステム・メモリとを含む第2の処理ノードと
を含み、
前記第1のプロセッサの前記キャッシュ階層が、あるキャッシュ・ラインの未変更コピーを保持し、前記第3のプロセッサから前記キャッシュ・ラインに対する要求を受信すると、前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを前記第3のプロセッサに発信し、前記キャッシュ・ラインの前記コピーを最近コヒーレンス状態に保持し、そこから前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを発信できる、
コンピュータ・システム。
(2)前記第1のプロセッサの前記キャッシュ階層があるキャッシュ・ラインの変更コピーを保持し、前記第3のプロセッサから前記キャッシュ・ラインに対する要求を受信すると、前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを前記第3のプロセッサに発信し、前記キャッシュ・ラインの前記コピーを前記最近コヒーレンス状態に保持する、前記(1)記載のコンピュータ・システム。
(3)前記第1及び第2の処理ノードがノード相互接続により結合され、
前記第1の処理ノードが、前記ノード相互接続と前記第1のプロセッサ間に配置されるノード制御装置を含み、前記ノード制御装置が前記要求を、該要求が別の前記処理ノードからのものであることの指示と一緒に、前記第1のプロセッサに転送する、
前記(1)記載のコンピュータ・システム。
(4)前記要求の受信以前に、前記第1のプロセッサの前記キャッシュ階層が、前記キャッシュ・ラインの前記未変更コピーを、排他状態または最近状態のいずれかのコヒーレンス状態に関連付ける、前記(1)記載のコンピュータ・システム。
(5)前記第2の処理ノードが前記第3のプロセッサに関連付けられるキャッシュ階層を含み、前記キャッシュ階層が、前記第1のプロセッサの前記キャッシュ階層により発信される前記キャッシュ・ラインの受信に応答して、前記キャッシュ・ラインのコピーを前記最近状態で記憶し、前記第1のプロセッサの前記キャッシュ階層、及び前記第3のプロセッサの前記キャッシュ階層の両方が、同時に前記キャッシュ・ラインのコピーを前記最近状態に保持する、前記(1)記載のコンピュータ・システム。
(6)前記要求が読出し要求である、前記(1)記載のコンピュータ・システム。
(7)システム・メモリと、それぞれが関連キャッシュ階層を有する第1及び第2のプロセッサとを含む第1の処理ノードと、前記第1の処理ノードに結合され、少なくとも第3のプロセッサとシステム・メモリとを含む第2の処理ノードとを含むコンピュータ・システムにおける通信方法であって、
前記第1のプロセッサの前記キャッシュ階層において、前記第3のプロセッサから、前記第1のプロセッサの前記キャッシュ階層がコピーを保持するキャッシュ・ラインに対する要求を受信するステップと、
前記要求キャッシュ・ラインの未変更コピーが前記第1のプロセッサの前記キャッシュ階層内に保持される場合、前記キャッシュ・ラインを前記第1のプロセッサの前記キャッシュ階層から前記第3のプロセッサに発信し、前記第1のプロセッサの前記キャッシュ階層内の前記キャッシュ・ラインの前記コピーを、最近コヒーレンス状態に保持するステップであって、そこから前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを発信できる、方法。
(8)前記要求キャッシュ・ラインの変更コピーが前記第1のプロセッサの前記キャッシュ階層内に保持される場合、前記キャッシュ・ラインを前記第1のプロセッサの前記キャッシュ階層から前記第3のプロセッサに発信し、前記第1のプロセッサの前記キャッシュ階層内の前記キャッシュ・ラインの前記コピーを、最近コヒーレンス状態に保持するステップであって、そこから前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを発信できる、前記(7)記載の方法。
(9)前記第1及び第2の処理ノードがノード相互接続により結合され、
前記第1の処理ノードが、前記ノード相互接続と前記第1のプロセッサ間に配置されるノード制御装置を含み、前記方法が、
前記ノード制御装置において前記要求を受信し、前記要求を前記ノード制御装置から、該要求が別の前記処理ノードからのものであることの指示と一緒に、前記第1のプロセッサに転送するステップを含む、前記(7)記載の方法。
(10)前記要求の受信以前に、前記キャッシュ・ラインの前記未変更コピーを、前記第1のプロセッサの前記キャッシュ階層内で、排他状態または最近状態のいずれかのコヒーレンス状態に関連付けるステップを含む、前記(7)記載の方法。
(11)前記第2の処理ノードが前記第3のプロセッサに関連付けられるキャッシュ階層を含み、前記方法が、
前記第1のプロセッサの前記キャッシュ階層により発信される前記キャッシュ・ラインの受信に応答して、前記第3のプロセッサの前記キャッシュ階層内において、前記キャッシュ・ラインのコピーを前記最近状態で記憶するステップを含み、前記第1のプロセッサの前記キャッシュ階層、及び前記第3のプロセッサの前記キャッシュ階層の両方が、同時に前記キャッシュ・ラインのコピーを前記最近状態に保持する、前記(7)記載の方法。
(12)前記要求が読出し要求の受信を含む、前記(7)記載の方法。
【図面の簡単な説明】
【図1】本発明に従うNUMAコンピュータ・システムの実施例を示す図である。
【図2】図1に示されるノード制御装置の詳細ブロック図である。
【図3】リモート処理ノードから受信される読出し要求内で要求されるキャッシュ・ラインが、共用介入により宛先処理ノードにおいて発信される、NUMAコンピュータ・システム内の典型的な処理過程を示す図である。
【図4】リモート処理ノードから受信される読出し要求内で要求されるキャッシュ・ラインが、共用介入により宛先処理ノードにおいて発信される、NUMAコンピュータ・システム内の典型的な処理過程を示す図である。
【符号の説明】
6 NUMAコンピュータ・システム
8 リモート処理ノード
10 プロセッサ
12 プロセッサ・コア
14 関連キャッシュ階層
16 ローカル相互接続
17 メモリ制御装置
18 システム・メモリ
20 ノード制御装置
22 ノード相互接続
24 アービタ
26 メザニン・バス・ブリッジ
30 メザニン・バス
32 I/O装置
34 記憶装置
40 トランザクション受信ユニット(TRU)
42 トランザクション送信ユニット(TSU)
44 データ受信ユニット(DRU)
46 データ送信ユニット(DSU)
50 コヒーレンス・ディレクトリ
52 応答マルチプレクサ
54 バス・マスタ
56 コヒーレンス応答論理
58 ディレクトリ制御論理
60 複数エントリ保留バッファ
Claims (8)
- システム・メモリと、それぞれが関連キャッシュ階層を有する第1及び第2のプロセッサとを含む、第1の処理ノードと、
前記第1の処理ノードに結合され、関連キャッシュ階層を有する少なくとも第3のプロセッサとシステム・メモリとを含む第2の処理ノードと
を含み、
前記第1のプロセッサの前記キャッシュ階層が、あるキャッシュ・ラインの未変更コピーを保持し、前記第3のプロセッサから前記キャッシュ・ラインに対する要求を受信する前に、前記第1のプロセッサの前記キャッシュ階層内で前記キャッシュ・ラインの前記未変更コピーを排他状態または最近コヒーレンス状態のいずれかのコヒーレンス状態に関連付け、前記第1のプロセッサの前記キャッシュ階層が前記第3のプロセッサから前記キャッシュ・ラインに対する要求を受信すると、前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを前記第3のプロセッサに発信し、前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを発信できるように前記キャッシュ・ラインの前記コピーを最近コヒーレンス状態に保持し、前記第3のプロセッサの前記キャッシュ階層が、前記第1のプロセッサの前記キャッシュ階層により発信される前記キャッシュ・ラインの受信に応答して、前記キャッシュ・ラインのコピーを前記最近コヒーレンス状態で前記キャッシュ・ラインを記憶し、前記第1のプロセッサの前記キャッシュ階層と前記第3のプロセッサの前記キャッシュ階層との両方が、同時に前記キャッシュ・ラインのコピーを前記最近コヒーレンス状態に保持する、
コンピュータ・システム。 - 前記第1のプロセッサの前記キャッシュ階層があるキャッシュ・ラインの変更コピーを保持し、前記第3のプロセッサから前記キャッシュ・ラインに対する要求を受信すると、前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを前記第3のプロセッサに発信し、前記キャッシュ・ラインの前記コピーを前記最近コヒーレンス状態に保持する、請求項1記載のコンピュータ・システム。
- 前記第1及び第2の処理ノードがノード相互接続により結合され、
前記第1の処理ノードが、前記ノード相互接続と前記第1のプロセッサ間に配置されるノード制御装置を含み、前記ノード制御装置が前記要求を、該要求が別の前記処理ノードからのものであることの指示と一緒に、前記第1のプロセッサに転送する、
請求項1記載のコンピュータ・システム。 - 前記要求が読出し要求である、請求項1記載のコンピュータ・システム。
- システム・メモリと、それぞれが関連キャッシュ階層を有する第1及び第2のプロセッサとを含む第1の処理ノードと、前記第1の処理ノードに結合され、関連キャッシュ階層を有する少なくとも第3のプロセッサとシステム・メモリとを含む第2の処理ノードとを含むコンピュータ・システムにおける通信方法であって、
前記第1のプロセッサの前記キャッシュ階層において、前記第3のプロセッサから、前記第1のプロセッサの前記キャッシュ階層がコピーを保持するキャッシュ・ラインに対する要求を受信するステップと、
前記要求キャッシュ・ラインの未変更コピーが前記第1のプロセッサの前記キャッシュ階層内に保持される場合、前記キャッシュ・ラインを前記第1のプロセッサの前記キャッシュ階層から前記第3のプロセッサに発信し、前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを発信できるように前記第1のプロセッサの前記キャッシュ階層内の前記キャッシュ・ラインの前記コピーを、最近コヒーレンス状態に保持するステップと、
前記第1のプロセッサの前記キャッシュ階層により発信される前記キャッシュ・ラインの受信に応答して、前記第3のプロセッサの前記キャッシュ階層内において、前記キャッシュ・ラインのコピーを前記最近コヒーレンス状態で前記キャッシュ・ラインを記憶するステップとを含み、
前記第3のプロセッサから、前記第1のプロセッサの前記キャッシュ階層がコピーを保持するキャッシュ・ラインに対する要求を受信するステップが、前記第3のプロセッサから前記キャッシュ・ラインに対する要求を受信するとき、前記キャッシュ・ラインの前記未変更コピーを、前記第1のプロセッサの前記キャッシュ階層内で、排他状態または最近コヒーレンス状態のいずれかのコヒーレンス状態に関連付けるステップを含み、
前記第1のプロセッサの前記キャッシュ階層と前記第3のプロセッサの前記キャッシュ階層との両方が、同時に前記キャッシュ・ラインのコピーを前記最近コヒーレンス状態に保持する、方法。 - 前記要求キャッシュ・ラインの変更コピーが前記第1のプロセッサの前記キャッシュ階層内に保持される場合、前記キャッシュ・ラインを前記第1のプロセッサの前記キャッシュ階層から前記第3のプロセッサに発信し、前記第1のプロセッサの前記キャッシュ階層内の前記キャッシュ・ラインの前記コピーを、前記第1のプロセッサの前記キャッシュ階層が前記キャッシュ・ラインを発信できるように最近コヒーレンス状態に保持するステップを含む、請求項5記載の方法。
- 前記第1及び第2の処理ノードがノード相互接続により結合され、
前記第1の処理ノードが、前記ノード相互接続と前記第1のプロセッサ間に配置されるノード制御装置を含み、前記方法が、
前記ノード制御装置において前記要求を受信し、前記要求を前記ノード制御装置から、該要求が別の前記処理ノードからのものであることの指示と一緒に、前記第1のプロセッサに転送するステップを含む、請求項5記載の方法。 - 前記要求が読出し要求の受信を含む、請求項5記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/213997 | 1998-12-17 | ||
| US09/213,997 US6108764A (en) | 1998-12-17 | 1998-12-17 | Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000227908A JP2000227908A (ja) | 2000-08-15 |
| JP3661761B2 true JP3661761B2 (ja) | 2005-06-22 |
Family
ID=22797377
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP35233199A Expired - Fee Related JP3661761B2 (ja) | 1998-12-17 | 1999-12-10 | 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US6108764A (ja) |
| JP (1) | JP3661761B2 (ja) |
| KR (1) | KR100308323B1 (ja) |
| CN (1) | CN1244055C (ja) |
| CA (1) | CA2291401C (ja) |
| TW (1) | TW533353B (ja) |
Families Citing this family (56)
| 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 |
| US6266743B1 (en) * | 1999-02-26 | 2001-07-24 | International Business Machines Corporation | Method and system for providing an eviction protocol within a non-uniform memory access system |
| US6421775B1 (en) * | 1999-06-17 | 2002-07-16 | International Business Machines Corporation | Interconnected processing nodes configurable as at least one non-uniform memory access (NUMA) data processing 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 |
| US6591341B1 (en) * | 2000-03-31 | 2003-07-08 | Intel Corporation | Multilevel cache system and method having a merged tag array to store tags for multiple data arrays |
| US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
| US20020087765A1 (en) * | 2000-12-29 | 2002-07-04 | Akhilesh Kumar | Method and system for completing purge requests or the like in a multi-node multiprocessor system |
| KR100413686B1 (ko) * | 2001-07-14 | 2003-12-31 | 삼성전자주식회사 | 모니터의 절전 장치 및 그 제어 방법 |
| US7620954B2 (en) * | 2001-08-08 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors |
| US7302505B2 (en) * | 2001-12-24 | 2007-11-27 | Broadcom Corporation | Receiver multi-protocol interface and applications thereof |
| US6922783B2 (en) * | 2002-01-16 | 2005-07-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for conserving power on a multiprocessor integrated circuit |
| US7003631B2 (en) * | 2002-05-15 | 2006-02-21 | Broadcom Corporation | System having address-based intranode coherency and data-based internode coherency |
| US6993631B2 (en) * | 2002-05-15 | 2006-01-31 | Broadcom Corporation | L2 cache maintaining local ownership of remote coherency blocks |
| US7155572B2 (en) * | 2003-01-27 | 2006-12-26 | Advanced Micro Devices, Inc. | Method and apparatus for injecting write data into a cache |
| US8578130B2 (en) * | 2003-03-10 | 2013-11-05 | International Business Machines Corporation | Partitioning of node into more than one partition |
| US7334089B2 (en) * | 2003-05-20 | 2008-02-19 | Newisys, Inc. | Methods and apparatus for providing cache state information |
| US7216205B2 (en) | 2004-01-12 | 2007-05-08 | Hewlett-Packard Development Company, L.P. | Cache line ownership transfer in multi-processor computer systems |
| US7788452B2 (en) * | 2004-01-20 | 2010-08-31 | International Business Machines Corporation | Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches |
| US7457922B2 (en) * | 2004-11-20 | 2008-11-25 | International Business Machines Corporation | Cache line placement prediction for multiprocessor non-uniform cache architecture systems |
| US8010682B2 (en) * | 2004-12-28 | 2011-08-30 | International Business Machines Corporation | Early coherency indication for return data in shared memory architecture |
| US7461209B2 (en) | 2005-12-06 | 2008-12-02 | International Business Machines Corporation | Transient cache storage with discard function for disposable data |
| WO2007096978A1 (ja) | 2006-02-24 | 2007-08-30 | Fujitsu Limited | スヌープ制御方法および情報処理装置 |
| JP4409619B2 (ja) | 2006-02-24 | 2010-02-03 | 富士通株式会社 | 情報処理装置、制御装置および制御方法 |
| JP4373485B2 (ja) | 2006-02-28 | 2009-11-25 | 富士通株式会社 | 情報処理装置及び該制御方法 |
| US8606997B2 (en) * | 2008-12-23 | 2013-12-10 | Oracle America, Inc. | Cache hierarchy with bounds on levels accessed |
| US8806122B2 (en) | 2011-05-23 | 2014-08-12 | International Business Machines Corporation | Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device |
| US8799578B2 (en) * | 2011-05-23 | 2014-08-05 | International Business Machines Corporation | Managing unmodified tracks maintained in both a first cache and a second cache |
| US8793436B2 (en) | 2011-05-23 | 2014-07-29 | International Business Machines Corporation | Cache management of tracks in a first cache and a second cache for a storage |
| CN102388373B (zh) * | 2011-09-30 | 2013-03-20 | 华为技术有限公司 | 访问高速缓冲存储器的方法及非真实缓存代理 |
| US9684455B2 (en) | 2013-03-04 | 2017-06-20 | Seagate Technology Llc | Method and apparatus for sequential stream I/O processing |
| US9552297B2 (en) | 2013-03-04 | 2017-01-24 | Dot Hill Systems Corporation | Method and apparatus for efficient cache read ahead |
| US8930619B2 (en) * | 2012-05-29 | 2015-01-06 | Dot Hill Systems Corporation | Method and apparatus for efficiently destaging sequential I/O streams |
| US9053038B2 (en) | 2013-03-05 | 2015-06-09 | Dot Hill Systems Corporation | Method and apparatus for efficient read cache operation |
| US9152563B2 (en) | 2013-03-04 | 2015-10-06 | Dot Hill Systems Corporation | Method and apparatus for processing slow infrequent streams |
| US9158687B2 (en) | 2013-03-04 | 2015-10-13 | Dot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
| US9329890B2 (en) | 2013-09-26 | 2016-05-03 | Globalfoundries Inc. | Managing high-coherence-miss cache lines in multi-processor computing environments |
| US9298626B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Managing high-conflict cache lines in transactional memory computing environments |
| US9298623B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Identifying high-conflict cache lines in transactional memory computing environments |
| US9086974B2 (en) * | 2013-09-26 | 2015-07-21 | International Business Machines Corporation | Centralized management of high-contention cache lines in multi-processor computing environments |
| US9292444B2 (en) | 2013-09-26 | 2016-03-22 | International Business Machines Corporation | Multi-granular cache management in multi-processor computing environments |
| US9561469B2 (en) * | 2014-03-24 | 2017-02-07 | Johnson Matthey Public Limited Company | Catalyst for treating exhaust gas |
| US10643700B2 (en) * | 2015-10-29 | 2020-05-05 | Micron Technology, Inc. | Apparatuses and methods for adjusting write parameters based on a write count |
| US10754777B2 (en) | 2015-11-04 | 2020-08-25 | Samsung Electronics Co., Ltd. | Systems and methods for implementing coherent memory in a multiprocessor system |
| US10642780B2 (en) | 2016-03-07 | 2020-05-05 | Mellanox Technologies, Ltd. | Atomic access to object pool over RDMA transport network |
| US10552367B2 (en) | 2017-07-26 | 2020-02-04 | Mellanox Technologies, Ltd. | Network data transactions using posted and non-posted operations |
| US10372638B2 (en) | 2017-10-20 | 2019-08-06 | Hewlett Packard Enterprise Development Lp | Interconnect agent |
| US10387310B2 (en) | 2018-01-17 | 2019-08-20 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
| US10713169B2 (en) | 2018-01-17 | 2020-07-14 | 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 |
| US10613996B2 (en) * | 2018-05-03 | 2020-04-07 | Arm Limited | Separating completion and data responses for higher read throughput and lower link utilization in a data processing network |
| 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 |
| CN114297098A (zh) * | 2021-12-31 | 2022-04-08 | 上海阵量智能科技有限公司 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US5943684A (en) * | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system |
| US5940864A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Shared memory-access priorization method for multiprocessors using caches and snoop responses |
| US5963974A (en) * | 1997-04-14 | 1999-10-05 | International Business Machines Corporation | Cache intervention from a cache line exclusively holding an unmodified value |
| US5943685A (en) * | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Method of shared intervention via a single data provider among shared caches for SMP bus |
| US5940856A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Cache intervention from only one of many cache lines sharing an unmodified value |
-
1998
- 1998-12-17 US US09/213,997 patent/US6108764A/en not_active Expired - Fee Related
-
1999
- 1999-12-02 CA CA002291401A patent/CA2291401C/en not_active Expired - Fee Related
- 1999-12-09 CN CNB991247663A patent/CN1244055C/zh not_active Expired - Fee Related
- 1999-12-10 JP JP35233199A patent/JP3661761B2/ja not_active Expired - Fee Related
- 1999-12-14 TW TW088121887A patent/TW533353B/zh not_active IP Right Cessation
- 1999-12-16 KR KR1019990058293A patent/KR100308323B1/ko not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| KR100308323B1 (ko) | 2001-11-14 |
| CN1244055C (zh) | 2006-03-01 |
| TW533353B (en) | 2003-05-21 |
| CN1264080A (zh) | 2000-08-23 |
| CA2291401A1 (en) | 2000-06-17 |
| KR20000052493A (ko) | 2000-08-25 |
| US6108764A (en) | 2000-08-22 |
| JP2000227908A (ja) | 2000-08-15 |
| CA2291401C (en) | 2005-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3661761B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム | |
| JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
| EP1153349B1 (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
| 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 | |
| US6631448B2 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
| US6067603A (en) | Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect | |
| US7581068B2 (en) | Exclusive ownership snoop filter | |
| KR100324975B1 (ko) | 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템 | |
| KR100348947B1 (ko) | 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템 | |
| JP3629511B2 (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
| US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
| JPH10187645A (ja) | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム | |
| US6085293A (en) | Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests | |
| US7568073B2 (en) | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection | |
| US7395380B2 (en) | Selective snooping by snoop masters to locate updated data | |
| US6636948B2 (en) | Method and system for a processor to gain assured ownership of an up-to-date copy of data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20031222 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040106 |
|
| RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20040121 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040121 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040402 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040629 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040924 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040929 |
|
| 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: 20050308 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20050308 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050315 |
|
| 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 |