JP3644587B2 - 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム - Google Patents
共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム Download PDFInfo
- Publication number
- JP3644587B2 JP3644587B2 JP2000031050A JP2000031050A JP3644587B2 JP 3644587 B2 JP3644587 B2 JP 3644587B2 JP 2000031050 A JP2000031050 A JP 2000031050A JP 2000031050 A JP2000031050 A JP 2000031050A JP 3644587 B2 JP3644587 B2 JP 3644587B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- cache
- cache line
- hierarchy
- coherence
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/51—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
- A61F13/511—Topsheet, i.e. the permeable cover or layer facing the skin
- A61F13/51104—Topsheet, i.e. the permeable cover or layer facing the skin the top sheet having a three-dimensional cross-section, e.g. corrugations, embossments, recesses or projections
- A61F13/51108—Topsheet, i.e. the permeable cover or layer facing the skin the top sheet having a three-dimensional cross-section, e.g. corrugations, embossments, recesses or projections the top sheet having corrugations or embossments having one axis relatively longer than the other axis, e.g. forming channels or grooves in a longitudinal direction
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/51—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
- A61F13/511—Topsheet, i.e. the permeable cover or layer facing the skin
- A61F13/512—Topsheet, i.e. the permeable cover or layer facing the skin characterised by its apertures, e.g. perforations
- A61F13/5123—Topsheet, i.e. the permeable cover or layer facing the skin characterised by its apertures, e.g. perforations the apertures being formed on a multilayer top sheet
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/51—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the outer layers
- A61F13/511—Topsheet, i.e. the permeable cover or layer facing the skin
- A61F13/51121—Topsheet, i.e. the permeable cover or layer facing the skin characterised by the material
- A61F2013/51147—Topsheet, i.e. the permeable cover or layer facing the skin characterised by the material being polymeric films
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61F—FILTERS IMPLANTABLE INTO BLOOD VESSELS; PROSTHESES; DEVICES PROVIDING PATENCY TO, OR PREVENTING COLLAPSING OF, TUBULAR STRUCTURES OF THE BODY, e.g. STENTS; ORTHOPAEDIC, NURSING OR CONTRACEPTIVE DEVICES; FOMENTATION; TREATMENT OR PROTECTION OF EYES OR EARS; BANDAGES, DRESSINGS OR ABSORBENT PADS; FIRST-AID KITS
- A61F13/00—Bandages or dressings; Absorbent pads
- A61F13/15—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators
- A61F13/53—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the absorbing medium
- A61F2013/530007—Absorbent pads, e.g. sanitary towels, swabs or tampons for external or internal application to the body; Supporting or fastening means therefor; Tampon applicators characterised by the absorbing medium being made from pulp
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Epidemiology (AREA)
- Mathematical Physics (AREA)
- Heart & Thoracic Surgery (AREA)
- Vascular Medicine (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は一般に、データ処理のための方法及びシステムに関して、特に、不均等メモリ・アクセス(NUMA:non-uniform memory access)・データ処理システムにおけるデータ処理に関する。より詳細には、本発明は、共用介入により要求データを供給するNUMAデータ処理システム、及びNUMAデータ処理システムにおける方法に関する。
【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のキャッシュ階層の1つを有する第1及び第2のプロセッサとを含み、これらがローカル相互接続により接続されて通信する。第2の処理ノードは、少なくともシステム・メモリと、第3のキャッシュ階層を有する第3のプロセッサとを含む。第1のキャッシュ階層及び第3のキャッシュ階層が、最近コヒーレンス状態の特定のキャッシュ・ラインの未変更コピーを同時に記憶することを許可され、そこからその特定のキャッシュ・ラインのコピーが共用介入により発信され得る。第2のキャッシュ階層による特定のキャッシュ・ラインに対する要求に応答して、第1のキャッシュ階層が共用介入により、ノード相互接続上の通信を使用すること無く、ローカル相互接続上の通信だけを使用し、特定のキャッシュ・ラインのコピーを第2のキャッシュ階層に発信する。
【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))状態を含む。これについては、前記参照した係属中の米国特許出願で詳述されている。後述のように、R状態は、共用され得る未変更キャッシュ・ラインを保持するキャッシュが、読出しタイプの要求(例えば読出しまたは変更目的読出し(RWITM:Read-with-Intent-to-Modify))に応答して、そのキャッシュ・ラインを直接別のキャッシュに発信することを可能にする。
【0014】
以下では、キャッシュ階層14及びアービタ24が、従来のR−MESIプロトコルを実行すると仮定し、ノード制御装置20がM状態、S状態及びI状態を認識し、E状態がM状態に併合され、R状態がS状態に併合されるものと見なす。すなわち、ノード制御装置20は、リモート・キャッシュにより排他的に保持されるデータが、それが実際に変更されたか否かに関わらず、変更されたものと仮定し、遠隔的に保持されたデータに対して、S状態とR状態とを区別しない。
【0015】
相互接続アーキテクチャ:
ローカル相互接続16及びノード相互接続22は、それぞれ任意のバス・ベースの同報アーキテクチャ、スイッチ・ベースの同報アーキテクチャ、またはスイッチ・ベースの非同報アーキテクチャにより実現され得る。しかしながら、好適な実施例では、少なくともノード相互接続22は、IBMにより開発された6xx通信プロトコルにより管理されるスイッチ・ベースの非同報相互接続として実現される。ローカル相互接続16及びノード相互接続22は、トランザクションの分割を可能にし、このことはすなわち、通信トランザクションを構成するアドレス及びデータ保有期間の間に、固定のタイミング関係が存在せず、またデータ・パケットが、関連付けられるアドレス・パケットと異なって順序付けられることを意味する。ローカル相互接続16及びノード相互接続22の使用はまた、好適には、通信トランザクションをパイプライン化することにより向上され、これは続く通信トランザクションが、前の通信トランザクションのマスタが各受信者からコヒーレンス応答を受信するよりも先に、発信されることを可能にする。
【0016】
実現される相互接続アーキテクチャのタイプに関係無しに、少なくとも3つのタイプの"パケット"、すなわちアドレス、データ、及びコヒーレンス応答が、ノード相互接続22を介して処理ノード8間で、及びローカル相互接続16を介してスヌーパ間で、情報を伝達するために使用される(ここではパケットは、情報の個別単位を指し示すために総称的に使用される)。次に、表1、表2を参照すると、アドレス及びデータ・パケットの関連フィールド及び定義の概要が、それぞれ示される。
【表1】
【表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はこうしたAResp採決を優先順位の降順に示す。
【表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のエントリに記憶されるトランザクション属性は、好適には、少なくともトランザクションのアドレス(タグを含む)、トランザクションのタイプ、及び期待されるコヒーレンス応答の数を含む。各保留バッファ・エントリは関連ステータスを有し、これはヌルにセットされて、保留バッファ・エントリが消去され得ることを示すか、再実行にセットされ、トランザクションがまだ保留であることを示す。ノード相互接続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】
共用介入の概要:
プロセッサ読出しタイプの要求の待ち時間を低減するために、本発明は共用介入をサポートする。すなわち、読出しタイプの要求に応答して、未変更(すなわちEまたはR)状態のデータを保持するキャッシュにより、データを発信する。NUMAコンピュータ・システム6内の複数のキャッシュが、同一の未変更キャッシュ・ラインを同時に保持し得るので、共用介入により要求キャッシュ・ラインを発信するキャッシュを調整する機構が必要とされ得る。前記係属中の米国特許出願で述べられるように、この機構はR(Recent)キャッシュ・コヒーレンス状態である。本発明によれば、特定の処理ノード8内の1つのキャッシュ階層14だけが、ある時点においてR状態の特定のキャッシュ・ラインを保持できる。しかしながら、複数の処理ノード8内のキャッシュ階層14が、R状態の同一のキャッシュ・ラインを同時に保持し得る。
【0028】
本発明は、全ての読出しトランザクションに応答して、R状態またはE状態で保持されるキャッシュ・ラインの共用介入をサポートし、RWITMトランザクションに応答して、E状態で保持されるキャッシュ・ラインの共用介入をサポートする。RWITMトランザクションに応答した、R状態で保持されるキャッシュ・ラインの共用介入は禁止される。なぜなら、コヒーレンスを維持するために、こうしたRWITMトランザクションは、全ての処理ノード8から見えるようにされなければならないからである。RWITMトランザクションにより要求されるR状態キャッシュ・ラインに対する、共用介入の禁止が存在しない場合、共用介入を介して局所的にサービスされるRWITMトランザクションを他の処理ノード8に知らせる、追加のトランザクション・オーバヘッドが要求され、この追加のトランザクション・オーバヘッドが共用介入の性能利点を著しく低減させる。
【0029】
要求元キャッシュ階層における要求キャッシュ・ラインのコヒーレンス状態:
RWITMトランザクションにより要求されるキャッシュ・ラインの受信に応答して、要求元キャッシュ階層は常に、キャッシュ・ラインを変更状態で記憶する。しかしながら、読出しトランザクションに応答して獲得されるキャッシュ・ラインのコヒーレンス状態は、要求キャッシュ・ラインの発信元に依存する。表7は、読出しミスに続き、キャッシュ・ラインを要求する読出しトランザクションを発行するキャッシュ階層14における状態遷移を示す。
【表7】
【0030】
表7に示されるように、キャッシュ階層14がARespIn共用コヒーレンス採決を受信する場合、キャッシュ階層14のキャッシュ制御装置は、同一の処理ノード8内の他のスヌーパが、R状態またはM状態の要求キャッシュ・ラインを保持せず、要求キャッシュ・ラインがローカル・システム・メモリ18により、またはノード制御装置20を介してリモート・システム・メモリ18により供給されることを知る。従って、要求元キャッシュ階層14がローカル相互接続16を介して要求キャッシュ・ラインを受信するとき、キャッシュ階層14のキャッシュ制御装置は要求キャッシュ・ラインをキャッシュし、そのコヒーレンス状態を最近(Recent)にセットする。これはすなわち、要求キャッシュ・ラインを保持する複数のローカル・キャッシュ階層14の内、要求元キャッシュ階層14が共用介入により、要求キャッシュ・ラインを発信する責任があることを意味する。
【0031】
要求元キャッシュ階層14が読出し要求に応答して、ARespIn Nullコヒーレンス採決を受信する場合、要求元キャッシュ階層14のキャッシュ制御装置は、どのローカル・キャッシュ階層14も要求キャッシュ・ラインのコピーを記憶せず、要求キャッシュ・ラインがローカル・システム・メモリ18により、またはノード制御装置20を介してリモート・システム・メモリにより発信されることを知る。要求キャッシュ・ラインが要求元キャッシュ階層14により受信されるとき、要求キャッシュ・ラインが排他状態でキャッシュされる。
【0032】
要求元キャッシュ階層14がARespIn共用介入または変更介入採決を受信する場合、要求元プロセッサ10におけるキャッシュ制御装置は、要求キャッシュ・ラインが同一の処理ノード10内の別のスヌーパにより発信されることを知り、要求キャッシュ・ラインの受信に際して、それをR状態で記憶する。
【0033】
スヌーピング・キャッシュ階層における要求キャッシュ・ラインのコヒーレンス状態:
RWITMトランザクションをスヌープするキャッシュ階層14は、常に、要求キャッシュ・ラインのそのコピーのコヒーレンス状態を、無効状態に更新する。好適な実施例に従う、読出しトランザクションの受信に応答するスヌーピング・キャッシュ階層14の状態遷移が、表8に示される。
【表8】
【0034】
表8に示されるように、キャッシュ階層14が読出し要求をスヌープし、要求キャッシュ・ラインを排他状態または最近状態で保持する場合、スヌーピング・キャッシュ階層14が共用介入ARespOut採決を提供し、アービタ24からの共用介入ARespIn採決の受信に応答して、要求キャッシュ・ラインをローカル相互接続16上に発信し、要求キャッシュ・ラインのコピーのコヒーレンス状態を、共用状態に更新する。同様に、キャッシュ階層14が、ローカル・プロセッサ10により発行された読出し要求をスヌープし、要求キャッシュ・ラインを変更状態で保持する場合、スヌーピング・キャッシュ階層14が変更介入ARespOut採決を提供し、変更介入ARespIn採決の受信に応答して、要求キャッシュ・ラインをローカル相互接続16上に発信し、要求キャッシュ・ラインのコピーのコヒーレンス状態を、共用状態に更新する。他方、スヌーピング・キャッシュ階層14が要求キャッシュ・ラインを共用状態または無効状態で保持する場合、スヌーピング・キャッシュ階層14は適切なARespOut採決(すなわち、それぞれ共用またはヌル)を提供するが、要求キャッシュ・ラインを発信しない。
【0035】
表7及び表8に示されない状態及びオペレーションでは、キャッシュ階層14のコヒーレンス状態遷移及びコヒーレンス応答は、従来のMESIプロトコルに従い実行され、最近状態は共用状態のように扱われる。
【0036】
ノード制御装置のコヒーレンス・プロトコル振舞い:
共用介入が可能にされる読出しタイプのトランザクションに応答するノード制御装置20のコヒーレンス振舞いは、要求元キャッシュ階層14の位置、及び要求キャッシュ・ラインのホーム・ノードに関連して対象となるノード制御装置20に依存する。一般に、NUMAコンピュータ・システムにおいて、4つの異なる要求状況が可能である。
1)要求キャッシュ・ラインのホーム・ノードのプロセッサによる要求は、ホーム・ノードのノード制御装置により受信される。
2)リモート・ノードのプロセッサによる要求は、要求キャッシュ・ラインのホーム・ノードのノード制御装置により受信される。
3)(キャッシュ・ラインに対して)リモート・ノードのプロセッサによる要求は、プロセッサ自身のノードのノード制御装置により受信される。
4)リモート・ノードのプロセッサによる要求は、リモート・ノードのノード制御装置により受信される。
【0037】
表9は、読出しトランザクションの受信に応答する、前記第1の状況におけるノード制御装置の振舞いを示す。表9に示されるように、読出しトランザクションがホーム・ノードのノード制御装置20によりローカル・プロセッサ10から受信され、コヒーレンス・ディレクトリ50内で、要求キャッシュ・ラインがリモート処理ノード8において変更と示されるとき、アービタ24からのARespIn再実行採決の受信に応答して、介入が可能にされ(すなわちN=1)、ノード制御装置20がARespOut再実行を採決し、読出しトランザクションを指示されたリモート処理ノード8に転送する。要求キャッシュ・ラインがリモート処理ノード8において有効(変更または排他)の場合、リモート処理ノード8は変更介入または共用介入により、要求キャッシュ・ラインの更新コピーをノード制御装置20に提供する。それ以外では(すなわち要求キャッシュ・ラインがリモート処理ノード8において無効の場合)、リモート処理ノード8はヌル応答をノード制御装置20に提供する。
【0038】
いずれの場合にも、ノード制御装置20はローカル・プロセッサ10に読出しトランザクションを再発行するように要求する。再発行された読出しトランザクションの受信に応答して、ノード制御装置20は、キャッシュ・ラインが変更介入により発信された場合、ARespOut変更介入(MI)を採決し、要求キャッシュ・ラインが共用介入により発信された場合、ARespOut共用介入(SI)を採決し、それ以外では、ヌルを採決する。ノード制御装置20が再発行された読出しトランザクションに対して、MIまたはSIのARespIn採決を受信する場合(R=1)、ノード制御装置20は要求キャッシュ・ラインをローカル相互接続16上に発信し、コヒーレンス・ディレクトリ50内の要求キャッシュ・ラインのコヒーレンス状態を、共用に更新する。或いは、アービタ24がヌルのARespIn採決を発行する場合、システム・メモリ18は要求キャッシュ・ラインを要求元プロセッサ10に発信し、ノード制御装置が要求キャッシュ・ラインのコヒーレンス状態を無効に更新する。要求キャッシュ・ラインがコヒーレンス・ディレクトリ50内で共用または無効と示され、ARespIn採決が共用またはヌルの場合にも、システム・メモリ18は同様に要求キャッシュ・ラインを発信する。しかしながら、これらの場合では、読出しトランザクションは任意のリモート処理ノード8に転送される。
【表9】
【0039】
RWITMトランザクションの受信に応答するノード制御装置20のオペレーションは、以下の違いを除き、表9に示されるものと同一である。第1に、コヒーレンス・ディレクトリ50内の要求キャッシュ・ラインのコヒーレンス状態が、全ての場合において更新されるか、無効に維持される。第2に、読出しトランザクションではなしにRWITMトランザクションが、ノード制御装置20により、コヒーレンス・ディレクトリ50内において、要求キャッシュ・ラインを変更状態で保持すると示されるリモート処理ノード8に転送される。第3に、要求キャッシュ・ラインがコヒーレンス・ディレクトリ50内において、リモート処理ノード8において共用と示される場合、ノード制御装置20はDClaimトランザクションをリモート処理ノード8に発行し、リモード処理ノード8において、要求キャッシュ・ラインのコピーを無効にする。
【0040】
表10を参照すると、ノード制御装置のオペレーションは前記第2の状況、すなわちリモート・ノードのプロセッサによる読出しトランザクションが、ノード相互接続22を介して、要求キャッシュ・ラインのホーム・ノードのノード制御装置20により受信される状況を示す。表10に示されるように、要求キャッシュ・ラインがコヒーレンス・ディレクトリ50内において、要求元処理ノード8において無効と示される場合、ノード制御装置20はARespOut期間内にヌルを採決し、SIまたはヌルのARespIn採決、及び続く要求キャッシュ・ラインに応答して、要求キャッシュ・ラインを要求元処理ノード8に提供する。ノード制御装置20はまた、コヒーレンス・ディレクトリ50内のそのキャッシュ・ラインの状態を、無効から共用に更新する。要求キャッシュ・ラインが要求元処理ノード8において共用と示される場合も、ノード制御装置20は同様に振舞うが、キャッシュ・ラインのコヒーレンス状態を更新しない。
【0041】
表10の第3行乃至第5行に示されるように、コヒーレンス・ディレクトリ50内において、要求キャッシュ・ラインがそのホーム・ノード及び要求元処理ノード8とは異なる第3のノードにおいて変更と示される場合、ノード制御装置20は追加のオペレーションを実行しなければならない。特に、ノード制御装置20はARespOut再実行を採決し、最初のローカル読出しトランザクション(R=0)が後に再発行されるように指示する。次に、ノード制御装置20は読出しトランザクションを第3のノードに転送し、要求キャッシュ・ラインが第3のノードにおいて変更されたか否かを確認する。コヒーレンス・ディレクトリ50により使用されるコヒーレンス・プロトコルの不明瞭さにより、次の3つの可能性が存在する。すなわち、1)要求キャッシュ・ラインが第3のノードにおいて変更された(第4行)、2)要求キャッシュ・ラインが第3のノードにおいて排他状態に保持される(第3行)、或いは3)要求キャッシュ・ラインが第3のノードにおいて無効である(第5行)。要求キャッシュ・ラインが第3のノードにおいて変更または排他の場合、第3のノードは介入により、要求キャッシュ・ラインをノード制御装置20に発信する。それ以外では、第3のノードが転送された読出しトランザクションに、ヌル応答により応答する。ノード制御装置20がホーム・ノードにおいて読出しトランザクションを再発行するとき(R=1)、ノード制御装置20は、第3のノードから受信される応答に応じて、ARespIn変更介入(MI)、共用介入(SI)またはヌルを採択する。ノード制御装置20は次に、MIまたはSIのARespInに応答して、要求キャッシュ・ラインを要求元処理ノード8に発信するか、ヌルのARespIn採決に応答して、ホーム・ノードのシステム・メモリ18から受信される要求キャッシュ・ラインのコピーを転送する。ノード制御装置20はまた、要求キャッシュ・ラインが第3のノードにおいて有効な場合、コヒーレンス・ディレクトリ50内の要求キャッシュ・ラインのコヒーレンス状態を、変更から共用に更新し、要求キャッシュ・ラインが第3のノードにおいて無効の場合、変更から無効に更新する。
【表10】
【0042】
ノード制御装置20において受信される読出しタイプのトランザクションが、読出しトランザクションではなく、RWITMトランザクションであった場合、ノード制御装置20のオペレーションは、以下の違いを除き、大方表10に関連して述べたオペレーションと同じである。最初の2行では、メモリ・ディレクトリ50内のコヒーレンス状態が変更に更新され、第3行乃至第5行では、コヒーレンス状態が3つの全ての場合において無効に更新される。第3行乃至第5行では、第3のノードに向けてノード相互接続22上に発行されるトランザクションが、読出しトランザクションではなく、RWITMトランザクションである。
【0043】
表11を参照すると、前記第3の状況、すなわちリモート・ノードのプロセッサによる読出しトランザクションが、ローカル相互接続16を介して、要求元プロセッサのノードのノード制御装置20により受信される状況における、ノード制御装置のオペレーションが示される。表11は、要求キャッシュ・ラインの可能なコヒーレンス状態遷移を示さない。なぜなら、ホーム・ノードのコヒーレンス・ディレクトリ50だけが、コヒーレンス状態を追跡するからである。
【0044】
表11の第1列に示されるように、ノード制御装置20は各動作状況において、再実行ARespOutを採決し、要求キャッシュ・ラインが、異なる処理ノード8に割当てられた物理メモリ空間内に存在することを示す。第6行に示されるように、読出しトランザクションが共用介入または変更介入により局所的にサービスされ得ない限り、アービタ24はARespIn再実行を採決し、ノード制御装置20が読出しトランザクションを要求キャッシュ・ラインのホーム・ノードに転送する。ホーム・ノードは次に、ホーム・ノードにおける読出しトランザクションに応答して、ノード制御装置20に最終コヒーレンス応答を提供し、コヒーレンス応答が再試行以外の場合、要求キャッシュ・ラインも一緒に提供する。読出し要求が要求元処理ノード8において再発行されるとき、ノード制御装置20は、ARespOut期間中にホーム・ノードから受信されるコヒーレンス応答を提供し、次にARespIn採決が再試行以外の場合、要求キャッシュ・ラインを提供する。また、RWITMトランザクションに対するオペレーションは、第1行乃至第5行の各々において、ホーム・ノードに転送されるトランザクションがRWITMトランザクションである以外は、表11に提供されるオペレーションと同一である。
【表11】
【0045】
最後に、表12を参照すると、第4の状況、すなわち要求元プロセッサ10及びノード制御装置20の両方が、読出しトランザクション内で指定されるキャッシュ・ラインのホーム・ノードに対して、リモート(すなわち第3の)・ノードに存在する状況における、ノード制御装置20のオペレーションが示される。表12に示されるように、ノード制御装置20は、別ノードをそのホーム・ノードとして有するキャッシュ・ラインを要求する、そのローカル相互接続16上の読出しトランザクションに応答して、ヌルのARespOutを採決する。ノード制御装置20は、読出しトランザクションにより受信されるARespIn採決をホーム・ノードに転送し、ローカルARespIn採決が変更介入または共用介入の場合、要求キャッシュ・ラインを提供する。読出しタイプのトランザクションがRWITMトランザクションであった場合、ノード制御装置20のオペレーションは、表12に示されるオペレーションと同一である。
【表12】
【0046】
前述のように、本発明はデータの共用介入をサポートすることにより、ノード相互間読出し要求の数を低減し、読出し要求の待ち時間を低減する、NUMAコンピュータ・システムを提供する。本発明によれば、各処理ノードが、同一のキャッシュ・ラインを非排他最近状態に保持するスヌーパ(例えばキャッシュ階層)を有し、スヌーパがそこからキャッシュ・ラインを共用介入により発信できる。重要な点は、処理ノードにおける共用介入によるキャッシュ・ラインの発信が、他の処理ノードへの通知、或いはノード相互接続を介して転送されるトランザクションを要求しないことである。
【0047】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0048】
(1)ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第1及び第2のキャッシュ階層のそれぞれ1つを有する第1及び第2のプロセッサとを含む、第1の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第3のキャッシュ階層を有する第3のプロセッサとを含む第2の処理ノードと
を含み、
前記第1のキャッシュ階層及び前記第3のキャッシュ階層の各々が、特定のキャッシュ・ラインの未変更コピーを最近コヒーレンス状態で同時に記憶し、そこから前記特定のキャッシュ・ラインの前記コピーが共用介入により発信され、
前記第2のキャッシュ階層による要求に応答して、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用し、前記第1のキャッシュ階層が共用介入により、前記特定のキャッシュ・ラインのコピーを前記第2のキャッシュ階層に発信する、
コンピュータ・システム。
(2)前記要求が読出し要求である、前記(1)記載のコンピュータ・システム。
(3)前記第1のキャッシュ階層が選択キャッシュ・ラインの未変更コピーを排他状態で記憶する場合に限り、変更目的読出し要求に応答して、前記第1のキャッシュ階層が共用介入により、前記選択キャッシュ・ラインのコピーを発信する、前記(1)記載のコンピュータ・システム。
(4)前記第1及び第2の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置が、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すコヒーレンス・ディレクトリを有する、前記(1)記載のコンピュータ・システム。
(5)前記コヒーレンス・ディレクトリが1つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡する、前記(4)記載のコンピュータ・システム。
(6)前記第1の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第1の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第2の処理ノードにおいて変更されていることを示す場合に限り、前記第1の処理ノードの前記ノード制御装置が、前記キャッシュ・ラインに対する要求を前記第2の処理ノードに転送する、前記(4)記載のコンピュータ・システム。
(7)コンピュータ・システムにおける通信方法であって、前記コンピュータ・システムが
ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第1及び第2のキャッシュ階層のそれぞれ1つを有する第1及び第2のプロセッサとを含む、第1の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第3のキャッシュ階層を有する第3のプロセッサとを含む第2の処理ノードと
を含むものにおいて、
前記第1のキャッシュ階層及び前記第3のキャッシュ階層内に、特定のキャッシュ・ラインの未変更コピーを最近コヒーレンス状態で同時に記憶し、そこから前記特定のキャッシュ・ラインの前記コピーが共用介入により発信されるようにする記憶ステップと、
前記第2のキャッシュ階層による要求に応答して、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用し、前記第1のキャッシュ階層が共用介入により、前記特定のキャッシュ・ラインのコピーを前記第2のキャッシュ階層に発信するステップと
を含む、方法。
(8)前記要求が読出し要求である、前記(7)記載の方法。
(9)選択キャッシュ・ラインの未変更コピーを前記第1のキャッシュ階層に記憶するステップと、
変更目的読出し要求に応答して、前記選択キャッシュ・ラインが排他状態で保持される場合に限り、共用介入により、前記第1のキャッシュ階層から前記選択キャッシュ・ラインのコピーを発信するステップと
を含む、前記(7)記載の方法。
(10)前記第1及び第2の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置がコヒーレンス・ディレクトリを有するものにおいて、前記方法が、
前記各ノード制御装置の前記コヒーレンス・ディレクトリ内に、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すステップを含む、前記(7)記載の方法。
(11)前記コヒーレンス・ディレクトリ内において、1つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡するステップを含む、前記(10)記載の方法。
(12)前記第1の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第1の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第2の処理ノードにおいて変更されていることを示す場合に限り、前記キャッシュ・ラインに対する要求を、前記第1の処理ノードの前記ノード制御装置から前記第2の処理ノードに転送するステップを含む、前記(10)記載の方法。
【図面の簡単な説明】
【図1】本発明に従うNUMAコンピュータ・システムの実施例を示す図である。
【図2】図1に示されるノード制御装置の詳細ブロック図である。
【符号の説明】
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 (10)
- ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第1及び第2のキャッシュ階層のそれぞれ1つを有する第1及び第2のプロセッサとを含む、第1の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第3のキャッシュ階層を有する第3のプロセッサとを含む第2の処理ノードと
を含み、
前記第1のキャッシュ階層及び前記第3のキャッシュ階層の各々は、特定のキャッシュ・ラインの未変更コピーを最近状態または排他状態のいずれかで記憶しうるものであり、また、前記第1のキャッシュ階層及び前記第3のキャッシュ階層は、特定のキャッシュ・ラインの未変更コピーを最近状態で同時に記憶しうるものであり、
前記第1のキャッシュ階層は、自らが特定のキャッシュ・ラインの未変更コピーを最近状態で記憶しているときに、前記第2のキャッシュ階層から前記特定のキャッシュ・ラインの未変更コピーを目的とする読出し要求がある際には、当該読出し要求が変更目的読出し要求でない場合にのみ、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用して、最近状態で記憶している前記特定のキャッシュ・ラインの未変更コピーを共用介入により前記第2のキャッシュ階層に発信するものである、
コンピュータ・システム。 - 前記第1のキャッシュ階層が前記特定のキャッシュ・ラインの未変更コピーを排他状態で記憶する場合に限り、変更目的読出し要求に応答して、前記第1のキャッシュ階層が共用介入により、前記特定のキャッシュ・ラインのコピーを発信する、請求項1記載のコンピュータ・システム。
- 前記第1及び第2の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置が、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すコヒーレンス・ディレクトリを有する、請求項1記載のコンピュータ・システム。
- 前記コヒーレンス・ディレクトリが1つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡する、請求項3記載のコンピュータ・システム。
- 前記第1の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第1の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第2の処理ノードにおいて変更されていることを示す場合に限り、前記第1の処理ノードの前記ノード制御装置が、前記キャッシュ・ラインに対する要求を前記第2の処理ノードに転送する、請求項3記載のコンピュータ・システム。
- コンピュータ・システムにおける通信方法であって、前記コンピュータ・システムが
ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第1及び第2のキャッシュ階層のそれぞれ1つを有する第1及び第2のプロセッサとを含む、第1の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第3のキャッシュ階層を有する第3のプロセッサとを含む第2の処理ノードと
を含み、
前記コンピュータ・システム内の前記第1のキャッシュ階層及び前記第3のキャッシュ 階層の各々は、特定のキャッシュ・ラインの未変更コピーを最近状態または排他状態のいずれかで記憶しうるものであり、また、前記第1のキャッシュ階層及び前記第3のキャッシュ階層は、特定のキャッシュ・ラインの未変更コピーを最近状態で同時に記憶しうるものである、ものにおいて、
前記第1のキャッシュ階層が特定のキャッシュ・ラインの未変更コピーを最近状態で記憶しているときに、前記第2のキャッシュ階層から前記特定のキャッシュ・ラインの未変更コピーを目的とする読出し要求がある際には、当該読出し要求が変更目的読出し要求でない場合にのみ、前記第1のキャッシュ階層が、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用して、最近状態で記憶している前記特定のキャッシュ・ラインの未変更コピーを共用介入により前記第2のキャッシュ階層に発信するステップ
を含む、方法。 - 前記特定のキャッシュ・ラインの未変更コピーを前記第1のキャッシュ階層に記憶するステップと、
変更目的読出し要求に応答して、前記特定のキャッシュ・ラインが排他状態で保持される場合に限り、共用介入により、前記第1のキャッシュ階層から前記特定のキャッシュ・ラインのコピーを発信するステップと
を含む、請求項6記載の方法。 - 前記第1及び第2の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置がコヒーレンス・ディレクトリを有するものにおいて、前記方法が、
前記各ノード制御装置の前記コヒーレンス・ディレクトリ内に、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すステップを含む、請求項6記載の方法。 - 前記コヒーレンス・ディレクトリ内において、1つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡するステップを含む、請求項8記載の方法。
- 前記第1の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第1の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第2の処理ノードにおいて変更されていることを示す場合に限り、前記キャッシュ・ラインに対する要求を、前記第1の処理ノードの前記ノード制御装置から前記第2の処理ノードに転送するステップを含む、請求項8記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/248503 | 1999-02-10 | ||
US09/248,503 US6115804A (en) | 1999-02-10 | 1999-02-10 | Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000242621A JP2000242621A (ja) | 2000-09-08 |
JP3644587B2 true JP3644587B2 (ja) | 2005-04-27 |
Family
ID=22939435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000031050A Expired - Fee Related JP3644587B2 (ja) | 1999-02-10 | 2000-02-08 | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム |
Country Status (6)
Country | Link |
---|---|
US (1) | US6115804A (ja) |
JP (1) | JP3644587B2 (ja) |
KR (1) | KR100318104B1 (ja) |
CN (1) | CN1116643C (ja) |
CA (1) | CA2295403A1 (ja) |
GB (1) | GB2349721B (ja) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192452B1 (en) * | 1999-02-26 | 2001-02-20 | International Business Machines Corporation | Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system |
US6591348B1 (en) * | 1999-09-09 | 2003-07-08 | International Business Machines Corporation | Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system |
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 |
US6654858B1 (en) * | 2000-08-31 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol |
US6745257B2 (en) * | 2001-01-04 | 2004-06-01 | International Business Machines Corporation | Method, system, and program for providing status in a multi-processing node system |
US6918012B2 (en) * | 2001-08-28 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Streamlined cache coherency protocol system and method for a multiple processor single chip device |
FR2832859B1 (fr) * | 2001-11-28 | 2004-01-09 | Commissariat Energie Atomique | Generateur electrochimique au lithium comprenant au moins une electrode bipolaire avec substrats conducteurs en aluminium ou alliage d'aluminium |
WO2003075162A1 (en) * | 2002-02-28 | 2003-09-12 | Silicon Graphics, Inc. | Method and system for cache coherence in dsm multiprocessor system without growth of the sharing vector |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
JP4077329B2 (ja) * | 2003-01-31 | 2008-04-16 | 株式会社東芝 | トランザクション処理システム、並行制御方法及びプログラム |
US7085898B2 (en) | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Coherency management for a “switchless” distributed shared memory computer system |
US6988173B2 (en) * | 2003-05-12 | 2006-01-17 | International Business Machines Corporation | Bus protocol for a switchless distributed shared memory computer system |
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 |
DE102004009610B4 (de) * | 2004-02-27 | 2007-08-16 | Infineon Technologies Ag | Heterogener paralleler Multithread-Prozessor (HPMT) mit geteilten Kontexten |
US20110082928A1 (en) * | 2004-10-22 | 2011-04-07 | Microsoft Corporation | Maintaining consistency within a federation infrastructure |
US8549180B2 (en) | 2004-10-22 | 2013-10-01 | Microsoft Corporation | Optimizing access to federation infrastructure-based resources |
US8095601B2 (en) | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US20080288659A1 (en) | 2006-11-09 | 2008-11-20 | Microsoft Corporation | Maintaining consistency within a federation infrastructure |
US8014321B2 (en) * | 2004-10-22 | 2011-09-06 | Microsoft Corporation | Rendezvousing resource requests with corresponding resources |
US8095600B2 (en) * | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US8392515B2 (en) * | 2004-10-22 | 2013-03-05 | Microsoft Corporation | Subfederation creation and maintenance in a federation infrastructure |
US7958262B2 (en) * | 2004-10-22 | 2011-06-07 | Microsoft Corporation | Allocating and reclaiming resources within a rendezvous federation |
US20060090003A1 (en) * | 2004-10-22 | 2006-04-27 | Microsoft Corporation | Rendezvousing resource requests with corresponding resources |
US7694167B2 (en) * | 2004-10-22 | 2010-04-06 | Microsoft Corporation | Maintaining routing consistency within a rendezvous federation |
US7730220B2 (en) * | 2004-10-22 | 2010-06-01 | Microsoft Corporation | Broadcasting communication within a rendezvous federation |
US7360032B2 (en) * | 2005-07-19 | 2008-04-15 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks |
US7395376B2 (en) * | 2005-07-19 | 2008-07-01 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks |
EP1988464B1 (en) * | 2006-02-24 | 2018-11-21 | Fujitsu Ltd. | Snoop control method and information processing device |
WO2007099583A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | システムコントローラおよびキャッシュ制御方法 |
US7698505B2 (en) * | 2006-07-14 | 2010-04-13 | International Business Machines Corporation | Method, system and computer program product for data caching in a distributed coherent cache system |
US8195890B1 (en) * | 2006-08-22 | 2012-06-05 | Sawyer Law Group, P.C. | Method for maintaining cache coherence using a distributed directory with event driven updates |
CN100489815C (zh) * | 2007-10-25 | 2009-05-20 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
US8438337B1 (en) * | 2009-09-30 | 2013-05-07 | Netlogic Microsystems, Inc. | System and method for conditionally sending a request for data to a home node |
US8566533B1 (en) | 2009-09-30 | 2013-10-22 | Netlogic Microsystems, Inc. | System, method, and computer program product for conditionally sending a request for data to a node based on a determination |
US8478877B2 (en) * | 2010-02-24 | 2013-07-02 | Oracle International Corporation | Architecture-aware allocation of network buffers |
US9152501B2 (en) | 2012-12-19 | 2015-10-06 | International Business Machines Corporation | Write performance in fault-tolerant clustered storage systems |
US20160352832A1 (en) * | 2015-06-01 | 2016-12-01 | Alibaba Group Holding Limited | Enhancing data consistency in cloud storage system by entrance data buffering |
DE102015220485A1 (de) * | 2015-10-21 | 2017-04-27 | Robert Bosch Gmbh | Verfahren zum Schreiben und Lesen eines Datensatzes |
CN105743803B (zh) * | 2016-01-21 | 2019-01-25 | 华为技术有限公司 | 一种共享缓存的数据处理装置 |
US10489323B2 (en) | 2016-12-20 | 2019-11-26 | Arm Limited | Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave |
NO343359B1 (en) | 2017-05-02 | 2019-02-11 | Numascale As | Interconnect switch in multiprocessor systems |
CN109388490B (zh) * | 2017-08-07 | 2020-11-17 | 华为技术有限公司 | 一种内存分配方法和服务器 |
US10769068B2 (en) * | 2017-11-10 | 2020-09-08 | International Business Machines Corporation | Concurrent modification of shared cache line by multiple processors |
US10579527B2 (en) | 2018-01-17 | 2020-03-03 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10387310B2 (en) | 2018-01-17 | 2019-08-20 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10713169B2 (en) | 2018-01-17 | 2020-07-14 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
Family Cites Families (11)
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 |
US5710907A (en) * | 1995-12-22 | 1998-01-20 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US5893144A (en) * | 1995-12-22 | 1999-04-06 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US5887138A (en) * | 1996-07-01 | 1999-03-23 | Sun Microsystems, Inc. | Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes |
US5860159A (en) * | 1996-07-01 | 1999-01-12 | Sun Microsystems, Inc. | Multiprocessing system including an apparatus for optimizing spin--lock operations |
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 |
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 |
US5940864A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Shared memory-access priorization method for multiprocessors using caches and snoop responses |
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 |
US5963974A (en) * | 1997-04-14 | 1999-10-05 | International Business Machines Corporation | Cache intervention from a cache line exclusively holding an unmodified value |
-
1999
- 1999-02-10 US US09/248,503 patent/US6115804A/en not_active Expired - Fee Related
- 1999-12-29 CN CN99127097A patent/CN1116643C/zh not_active Expired - Fee Related
-
2000
- 2000-01-13 CA CA002295403A patent/CA2295403A1/en not_active Abandoned
- 2000-01-18 GB GB0000996A patent/GB2349721B/en not_active Expired - Fee Related
- 2000-01-27 KR KR1020000003994A patent/KR100318104B1/ko not_active IP Right Cessation
- 2000-02-08 JP JP2000031050A patent/JP3644587B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000242621A (ja) | 2000-09-08 |
GB0000996D0 (en) | 2000-03-08 |
GB2349721A (en) | 2000-11-08 |
KR20000076539A (ko) | 2000-12-26 |
CN1116643C (zh) | 2003-07-30 |
CN1263312A (zh) | 2000-08-16 |
US6115804A (en) | 2000-09-05 |
GB2349721B (en) | 2003-07-30 |
CA2295403A1 (en) | 2000-08-10 |
KR100318104B1 (ko) | 2001-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
JP3661761B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム | |
EP1153349B1 (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
US9892043B2 (en) | Nested cache coherency protocol in a tiered multi-node computer system | |
US6631448B2 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
US7581068B2 (en) | Exclusive ownership snoop filter | |
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 | |
US6067603A (en) | Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect | |
KR100324975B1 (ko) | 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템 | |
US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
US6279085B1 (en) | Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system | |
KR20000022712A (ko) | 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템 | |
JP2000250883A (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
US6269428B1 (en) | Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system | |
US6085293A (en) | Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests | |
US7395380B2 (en) | Selective snooping by snoop masters to locate updated 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: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040623 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040922 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040928 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041224 |
|
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: 20050112 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20050112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050127 |
|
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: 20080210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |