JP2000227909A - 混成不均等メモリ・ア―キテクチャ/単純キャッシュ専用メモリ・ア―キテクチャ・システム及び方法 - Google Patents

混成不均等メモリ・ア―キテクチャ/単純キャッシュ専用メモリ・ア―キテクチャ・システム及び方法

Info

Publication number
JP2000227909A
JP2000227909A JP2000002194A JP2000002194A JP2000227909A JP 2000227909 A JP2000227909 A JP 2000227909A JP 2000002194 A JP2000002194 A JP 2000002194A JP 2000002194 A JP2000002194 A JP 2000002194A JP 2000227909 A JP2000227909 A JP 2000227909A
Authority
JP
Japan
Prior art keywords
numa
node
real address
coma
cache
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.)
Pending
Application number
JP2000002194A
Other languages
English (en)
Inventor
A Liberty Dean
ディーン・エイ・リバティー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000227909A publication Critical patent/JP2000227909A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/272Cache only memory architecture [COMA]

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)

Abstract

(57)【要約】 【課題】 システム・メモリ・アーキテクチャの、特に
第1のタイプのメモリ及び第2のタイプのメモリを使用
する混成アーキテクチャの改善を提供すること。 【解決手段】 互いに結合される複数のノードを有する
コンピュータ・システムに関連して有用な、混成不均等
メモリ・アーキテクチャ/単純キャッシュ専用メモリ・
アーキテクチャ(NUMA/S−COMA)・メモリ・
システム及び方法が開示される。複数のノードが、デー
タ・ラインを記憶するように構成されるNUMAメモリ
を含む。NUMAメモリは、ノード間のデータ転送を調
整するNUMAコヒーレンス・サブシステムを含む。少
なくとも1つのS−COMAキャッシュが、コンピュー
タ・システムの少なくとも1つのノード上に提供され
る。少なくとも1つのS−COMAキャッシュは、NU
MAコヒーレンス・サブシステムを使用し、コンピュー
タ・システムの複数のノードの別のノードとの間で、デ
ータ通信を送受信するように構成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散共用メモリ・
システム及びキャッシュの分野に関する。より詳細に
は、本発明は第1のタイプのメモリ(単純COMA)
が、別のタイプのメモリ(NUMA)と一体に頂部に形
成される混成(ハイブリッド、hybrid)アーキテクチャ
に関する。
【0002】
【従来の技術】次の用語が本文献内で使用される。 大域(グローバル)メモリ:異なるノード上のプロセッ
サによりアドレス指定可能なメモリ・オブジェクトを指
し示す。UNIXシステムV式に生成及び付加され、大
域メモリ・オブジェクトをアドレス指定したい各プロセ
スの有効アドレス空間内に付加される。 DSM:分散共用メモリ。たとえ物理メモリがシステム
内のノード間で分散されても、共用メモリの機能を提供
するアーキテクチャのクラス。 S−COMA:単純キャッシュ専用メモリ・アーキテク
チャ。各ノードがそのローカル・メモリの一部を、大域
メモリ用のキャッシュとして使用されるように確保する
DSM機構。このキャッシュは、S−COMAソフトウ
ェア及びハードウェアの組み合わせにより管理される。
プロセスはプロセス特定の仮想アドレスを通じてデータ
を参照し、ノード・メモリ・ハードウェアはローカル実
アドレスを通じてデータを参照し、S−COMAハード
ウェアは大域アドレスをノード間で受け渡す。S−CO
MAサブシステムは、ローカル実アドレスと大域アドレ
ス間の変換を処理する。 NUMA:不均等メモリ・アクセス。システム内のn個
のノードの各々が、システムの実メモリ(及び実アドレ
ス空間)の1/nを保持するDSM機構。プロセスは仮
想アドレスを通じてデータを参照し、ノード・メモリ・
ハードウェアは実アドレスを通じてデータを参照する。
NUMA構造基盤(infrastructure)は実アドレスをノ
ード間で受け渡す。 UMA:均等メモリ・アクセス。任意のプロセッサが等
しい(均等な)時間で任意のメモリ位置を参照可能な共
用メモリ構成。 境界機能(BF):ノードの境界において、アクション
のセットを実行するレイヤまたは論理機能。本発明で
は、境界機能は、DSMサブシステムを通じてノードに
入出力するアドレスのアドレス変換を実行する。 クライアント:データを参照(キャッシュ)する、デー
タのホームではないノード。 ホーム:データの所有者、またはデータ・コヒーレンス
を管理するディレクトリの所有者であるノード。 待ち時間(Latency):メモリからのデータのフェッチ
など、特定のアクションまたはオペレーションに関連す
る遅延。 スヌーピング論理:ラインまたはバスを監視(スヌー
プ)し、特定のアドレス、タグまたは他の主要情報を探
す論理。 ネットワーク論理:ネットワークまたは通信ファブリッ
クとインタフェースする論理。 実アドレス空間:アドレス変換により生成される実アド
レスの範囲。物理メモリのアドレス。 ローカル実アドレス:ローカル・ノードに当てはまる実
アドレス。 大域(グローバル)実アドレス:全てのノードに当ては
まる実アドレス。 物理アドレス:実アドレス。物理メモリのアドレス。 入力アドレス:コンポーネントへの入力として提供され
るアドレス。 関連アドレス:アドレス対を含むデータ構造では、対の
第2のアドレス。第1のアドレスは入力アドレス。
【0003】本発明の背景:共用(shared)メモリ・マ
ルチプロセッサ・システムは、複数のプロセッサの各々
が読出し及び書込み(ロード及びストア)オペレーショ
ンを通じてシステム内の任意の記憶位置(メモリ)を参
照することを可能にする。共用メモリの基礎となる構造
は、それが性能に関わらない限り、プロセッサまたはプ
ログラムから隠される。
【0004】単一のメモリ位置が複数のプロセッサによ
り更新され得る。その結果は単一の更新シーケンスとな
り、全てのプロセッサがそのメモリ位置の更新を同一順
序で見ることになる。この特性は"コヒーレンス"として
知られる。コヒーレンス・システムでは、どのプロセッ
サも別のプロセッサと異なる順序の更新を見ることがで
きない。
【0005】キャッシュ・コヒーレントな共用メモリ・
マルチプロセッサ・システムは、メモリ・アクセスの性
能を改善する(すなわち待ち時間を低減する)ために、
キャッシュをメモリ構造に提供する。キャッシュはコヒ
ーレントに保たれるので、所与のメモリ位置に対して単
一シーケンスの更新の特性が維持され、システム内の全
てのプロセッサにより見られることになる。
【0006】本特許で述べるシステム・アーキテクチャ
は、キャッシュ・コヒーレントな共用メモリ・マルチプ
ロセッサ・システムである。これらのシステムの3つの
特定の変形、すなわちUMA、NUMA及びS−COM
Aが以下で述べられる。
【0007】"UMA"は均等メモリ・アクセス(Unifor
m Memory Access)を意味し、コンピュータ・システム
内の複数のプロセッサが実アドレス空間を共用し、任意
のプロセッサから任意のメモリ位置へのメモリ待ち時間
が、同一または均等であるシステム・アーキテクチャを
指し示す。すなわち、所与のプロセッサが任意のメモリ
位置を均等な時間で参照できる。最も最新の対称マルチ
プロセッサ(SMP)は、UMAシステムである。図1
は、典型的なUMAシステム10の構成を示す。多数の
プロセッサ12が共通のシステム・バス14に接続さ
れ、メモリ16についても同様である。任意のプロセッ
サ12から、メモリ16内の任意の位置への経路は同一
なので(すなわちシステム・バスを横断する)、任意の
プロセッサから任意のメモリ位置への待ち時間は同一で
ある。
【0008】図1はまた、キャッシュ18を示す。キャ
ッシュ18を管理し、全てのプロセッサが単一のメモリ
位置の同一の更新シーケンスを見るように、メモリ位置
の更新を順序付けるための、キャッシュ・コヒーレンス
・プロトコルが必要となる。図示のようなUMAシステ
ムでは、これはしばしば、各キャッシュ制御装置がシス
テム・バス上で"スヌープ"することにより、達成され
る。このためにバス上の全てのトランザクションを観察
し、バス上のオペレーションがスヌーパのキャッシュ内
に保持されているメモリ位置を参照するとき、アクショ
ンを実行する(すなわちコヒーレンス・プロトコルに参
加する)。
【0009】この種の構成の利点は、プロセスがデータ
配置に敏感でない、すなわちデータがそれを保持するた
めに使用されるメモリ位置に関係無しに、特定の時間量
でアクセスされ得る点で、並列プログラミングが単純化
されることである。
【0010】この種の構成の欠点は、UMAシステムが
十分にスケーリングできないことである。システムが大
規模に設計されるほど(すなわちプロセッサの数及びメ
モリが増加するほど)、メモリ・アクセス時間の均等性
を維持することが困難となり、高価となる。更に、スヌ
ープのためにキャッシュ制御装置を必要とする機構は、
データ・アドレスとして共通システム・バスなどの共通
の通信媒体を必要とする。しかしながら、システム・バ
スは直列資源であり、より多くのプロセッサ及びメモリ
・オペレーションがその上に配置されるほど、過負荷状
態となる。システム・バスが飽和すると、より多くのま
たはより高速のプロセッサを追加しても、システム性能
は改善されない。
【0011】更に別のシステム変形に、不均等メモリ・
アクセス(Non-Uniform Memory Access)を意味する"N
UMA"があり、これはコンピュータ・システム内の複
数のプロセッサが実アドレス空間を共用し、メモリ待ち
時間が、アクセスされるメモリ位置に応じて変化するシ
ステム・アーキテクチャを指し示す。すなわち、一部の
メモリ位置が一部のプロセッサにとって、他のプロセッ
サにとってよりも"近くに位置する"。UMAシステムと
異なり、全てのメモリ位置が所与のプロセッサから等し
い時間でアクセス可能な訳ではない。すなわち、一部の
メモリ位置は他のメモリ位置よりも、アクセスに長い時
間を要する。従って、メモリ・アクセス時間は不均等で
ある。
【0012】図2に示されるように、NUMAシステム
は分散共用メモリを実現する。すなわち、総システム・
メモリは、ノード22内のメモリM1、M2、M3の合計
である。システム20内の全てのノード22により共用
される単一の実アドレス空間が存在し、図2では、各ノ
ードがシステム・メモリの3分の1を含む。各ノード2
2は、UMAシステム10を含む。多数のノードがネッ
トワーク・インタフェース(NI)26を介して、共通
通信ファブリックまたはネットワーク24に接続され
る。
【0013】あるノード内のプロセッサは、ロードまた
はストア命令を介して別のノード内のメモリ位置をアク
セスし得る。NUMAメモリ制御装置(NMC)28の
機能は、ローカル・ノードのシステム・バス上のメモリ
要求を捕獲し、それをターゲット・メモリ位置を含むノ
ード(すなわちホーム・ノード)に転送することであ
る。あるプロセッサからリモート・メモリ位置への経路
は、同一のプロセッサからローカル・メモリ位置への経
路よりも遠いので、メモリ・アクセス時間は不均等であ
る。
【0014】UMAシステムと同様、キャッシュが同一
のプロトコルにより、コヒーレントに保たれる。全ての
ノード上の全てのプロセッサは、単一のメモリ位置の更
新を直列化されて見ることになる。しかしながら、UM
Aシステムと異なり、NUMAシステムは一般に、全て
のキャッシュ制御装置がメモリ・オペレーションをスヌ
ープできるようにそれらを全てのノードに同報しない。
代わりに、ホーム・ノードNMCがコヒーレンス要求を
それに関心のあるリモート・ノードに転送する責任があ
る。一般的なNUMAインプリメンテーションでは、各
NMCがそのノード内の全てのメモリに対するディレク
トリを保持する。このディレクトリはローカル・メモリ
の各キャッシュ・ラインを追跡し、キャッシュ・ライン
の状態、及び他のどのノードがそのキャッシュ・ライン
をキャッシュしているかの認識を保持する。例えばノー
ド1内のNMC28は、M1内の全てのメモリを追跡す
る。ノード1内でメモリ・オペレーションが発生する
と、ノード1内のNMC28はそのディレクトリを調査
し、ターゲット・ラインをキャッシュして有する全ての
ノードに要求を転送し得る。NUMAシステムにおける
リモート・メモリ・アクセスのデータ・フローの例が、
米国特許第5710907号"Hybrid NUMA COMA Cachin
g System and Methods for Selecting Between the Cac
hing Modes"で詳述されている。
【0015】こうしたアーキテクチャの利点は、UMA
システムの制限を超えて、スケーリング可能なシステム
の構築が容易なことである。この主な理由は、全てのキ
ャッシュ制御装置が単一の共通通信ファブリックをスヌ
ープする必要がないことによる。代わりに、キャッシュ
制御装置はローカル・ファブリックだけをスヌープし、
ローカル・ファブリックはメモリ・オペレーションがそ
のノードに影響するときだけ、それらのオペレーション
を見る。
【0016】NUMAシステムの欠点は、性能に敏感な
プログラムが、データがメモリ内のどこに配置されるか
に応じて異なって実行されることである。これは特に、
データをプログラムの多くの実行スレッド間で共用し得
る並列プログラムにおいて重大である。
【0017】分散メモリのメモリ待ち時間の増加を悪化
させる第2の問題は、NUMAシステムの制限されたキ
ャッシュ・サイズである。一部のNUMAシステムは、
それらが構築される基礎となるSMPよりも大きなキャ
ッシング能力を提供しない。この場合、メモリ待ち時間
の増加が、ハードウェア・キャッシュの利点を減じる。
或いは、例えばNMC内に別のレベルのハードウェア・
キャッシングが提供され得る。しかしながら、これは専
用のハードウェアとなる傾向があり、従って、リモート
・メモリへの非常にたくさんのアクセスが存在するとき
に限り、コスト的に実用的となることを意味する。
【0018】更に別のシステム変形として、単純キャッ
シュ専用メモリ・アーキテクチャ(すなわちキャッシュ
専用メモリ・アーキテクチャ(COMA)の変形)を意
味する"S−COMA"は、コンピュータ・システム内の
複数のプロセッサが、コンプレックス内の任意のメモリ
を透過的にアクセスし、メモリ待ち時間がアクセスされ
るメモリ位置に応じて変化する、分散共用メモリ・アー
キテクチャを指し示す。しかしながら、NUMAシステ
ムと異なり、ノードは独立な実アドレス空間を保持す
る。各ノードのローカル実メモリの一部は、キャッシュ
として使用され、システム・ソフトウェアにより、ペー
ジ・サイズのチャンク(chunk)に割当てられる。S−
COMAオペレーションの詳細は、前記米国特許第57
10907号で述べられている。
【0019】こうしたアーキテクチャの1つの利点は、
UMAまたはNUMAよりも好適にスケーリング可能な
システムの構築が容易な点である。この主な理由は、各
ノードがそのローカル実メモリ空間だけを管理し、シス
テム複雑度及びノード相互間干渉を低減するからであ
る。またNUMA同様、全てのキャッシュ制御装置が単
一の共通通信ファブリックをスヌープする必要がない。
代わりに、キャッシュ制御装置はローカル・ファブリッ
クだけをスヌープし、ローカル・ファブリックは、メモ
リ・オペレーションがそのノードに影響するときだけ、
それらのオペレーションを見る。
【0020】更に、S−COMAは非常に大きな主メモ
リ・キャッシュを提供することにより、多くのプログラ
ムにおいて、NUMAよりも好適な平均待ち時間を提供
する。大変大きなキャッシュが提供されるので、キャッ
シュ・ミスの回数、従ってリモート・メモリ・アクセス
が多大に低減され、プログラム性能が改善される。更
に、S−COMAはメモリ管理データ構造の競合を低減
することにより、NUMAよりも優れたスケーラビリテ
ィ及びノード分離特性を提供する。S−COMAはま
た、変換機能によりアドレスをフィルタリングすること
により、リモート・ノードからの直接メモリ・アクセス
を制限する。
【0021】図3を参照すると、S−COMAアーキテ
クチャによれば、大域メモリ・オブジェクトが生成され
て、大域アドレス(GA)を割当てられ、単一ノードが
任意の特定のデータ・ページのホーム・ノード30とし
て指定される。大域オブジェクトは、それに仮想アドレ
ス(VA)を割当てることにより、対象となる各プロセ
スのアドレス空間に付加される。このVAはページ・テ
ーブル(PE)を用いることにより、続いてローカル実
アドレス(RA)に変換される。
【0022】各ノード30、32はS−COMAキャッ
シュ34、すなわちS−COMAサブシステムにより保
持される主メモリ36内のキャッシュを保持する。大域
データ領域が参照されるとき、S−COMAキャッシュ
内のスロットが割当てられ、データをホーム・ノード3
0のS−COMAキャッシュ34内に配置することによ
り、データがホーム・ノード内に存在するメモリに用意
される。ホーム30上のS−COMA装置は、ホームS
−COMAキャッシュ・ライン34アドレス(RA)
を、ターゲット・ラインの大域アドレス(GA)に関連
付ける準備をする。クライアント・ノード32上のS−
COMA装置は、クライアントS−COMAキャッシュ
・ライン34アドレス(RA')を、ターゲット・ライ
ンの大域アドレスに関連付ける準備をする。
【0023】クライアント32が、ローカルL2キャッ
シュ内に存在しない大域データを参照しようとすると、
クライアントのS−COMAキャッシュ34がチェック
される。データがそこで使用可能な場合、データがロー
カル・メモリ(RA')からフェッチされ、要求が終了
される。データがクライアントのS−COMAキャッシ
ュ34内に存在しないか、そこで有効状態でない場合、
クライアントのS−COMAディレクトリ38がホーム
S−COMAディレクトリ38と通信し、データの有効
コピーを検索する。
【0024】ノード相互間通信の各ノードにおいて、S
−COMA機構は境界機能を実行する。すなわち、S−
COMAキャッシュ・スロットの関連ローカル実アドレ
ス(RA)、(RA')を、大域アドレス(GA)に変
換する。ここで各ノード30、32は、ターゲット・ラ
インのS−COMAキャッシュ・スロットとして、異な
る実アドレスを使用可能であるが、特定の大域ラインを
識別するために、全てが同一の大域アドレスを使用す
る。このようにノード間で独立性が保たれる。
【0025】S−COMAキャッシング・システムで
は、コヒーレンスはキャッシュ・ライン・ベースで実行
されるが、キャッシュ・スロットがページ増分で割当て
られる欠点を有する。プロセスが、S−COMAキャッ
シュ内で割当てられた各ページ内メモリの大きな割合を
使用する場合、S−COMAは遥かに大きなキャッシン
グ容量を提供することにより、NUMAに勝る利点を提
供できる。しかしながら、割当てられた各ページの比較
的少量が使用される場合、S−COMAは、非効率的に
使用される大きなキャッシュ・スロットを割当てること
により、メモリを浪費する。
【0026】更に別の変形として、マルチプロセッサ・
コンピュータ・システムのための混成キャッシング・ア
ーキテクチャが、キャッシュ・コヒーレントなプロトコ
ルと共に、前記米国特許第5710907号で述べられ
ている。この混成システムの1実施例では、各サブシス
テムが少なくとも1つのプロセッサと、ページ指向CO
MAキャッシュと、ライン指向混成NUMA/COMA
キャッシュとを含む。各サブシステムは、データをCO
MAモードまたはNUMAモードで独立に記憶できる。
COMAモードでキャッシュするとき、サブシステムは
メモリ空間のページを割当て、データをそのCOMAキ
ャッシュ内の割当てられたページ内に記憶する。インプ
リメンテーションに応じてCOMAモードでキャッシュ
する間、サブシステムが高速アクセスのために、同一の
データをその混成キャッシュ内に記憶し得る。逆に、N
UMAモードでキャッシュするとき、サブシステムはデ
ータ、通常はデータのラインをその混成キャッシュに記
憶する。
【0027】前述の混成システムの1つの欠点は、シス
テムが、NUMAコヒーレンス装置と独立で同等のS−
COMAコヒーレンス装置に頼ることである。ここで述
べられる混成概念を実現するために、2つの論理的に完
全な装置が使用される。更に、ホーム及びクライアント
・ノードの両方が、データのためにS−COMAキャッ
シュを保持し、大域アドレスと実アドレス間を変換しな
ければならない。
【0028】
【発明が解決しようとする課題】前述のシステム変形の
存在にも関わらず、システム・メモリ・アーキテクチャ
の、特に第1のタイプのメモリ及び第2のタイプのメモ
リを使用する混成アーキテクチャのさらなる改善が待望
される。
【0029】
【課題を解決するための手段】要するに、1態様では、
本発明は、互いに結合される複数のノードを有するコン
ピュータ・システムに関連して有用な、混成不均等メモ
リ・アーキテクチャ/単純キャッシュ専用メモリ・アー
キテクチャ(NUMA/S−COMA)・メモリ・シス
テムを含む。そこではデータが混成NUMA/S−CO
MAメモリ・システムに複数のページとして記憶され、
各ページが少なくとも1データ・ラインを含む。混成N
UMA/S−COMAメモリ・システムは、少なくとも
1データ・ラインを記憶するように構成される複数のN
UMAメモリを含む。複数のNUMAメモリの各NUM
Aメモリは、コンピュータ・システムの複数のノードの
異なるノードに存在する。複数のNUMAメモリは、N
UMAメモリ間のデータの転送を調整するNUMAコヒ
ーレンス・サブシステムを含む。混成NUMA/S−C
OMAメモリ・システムは更に、複数のページの少なく
とも1ページを記憶するように構成される、NUMAメ
モリ内の少なくとも1つのS−COMAキャッシュを含
む。各S−COMAキャッシュは、コンピュータ・シス
テムの複数のノードの異なるノードに存在する。少なく
とも1つのS−COMAキャッシュは、NUMAコヒー
レンス・サブシステムを使用し、コンピュータ・システ
ムの複数のノードの別のノードからデータを受信し、或
いはデータを送信する。
【0030】別の態様では、本発明は、互いに結合され
る複数のノードを有するコンピュータ・システムのクラ
イアント・ノードとホーム・ノード間で、データを通信
するための方法を含む。そこでは、コンピュータ・シス
テムがデータを記憶するように構成される複数のNUM
Aメモリを有する、混成不均等メモリ・アーキテクチャ
/単純キャッシュ専用メモリ・アーキテクチャ(NUM
A/S−COMA)・メモリ・システムを使用する。各
NUMAメモリはコンピュータ・システムの異なるノー
ドに存在し、少なくとも1つのS−COMAキャッシュ
はデータを記憶するように構成され、各S−COMAキ
ャッシュはコンピュータ・システムの異なるノードに存
在し、クライアント・ノードは、少なくとも1つのS−
COMAキャッシュのS−COMAキャッシュを含む。
通信方法は、コンピュータ・システムの複数のノードの
クライアント・ノードにおいて、メモリの実アドレスを
有するデータ要求を生成するステップと、実アドレスが
クライアント・ノードのローカル実アドレスを含むか否
かを判断するステップと、実アドレスがローカル実アド
レスを含むとき、ローカル実アドレスをホーム・ノード
実アドレスに変換する境界機能変換が要求されるか否か
を判断するステップと、境界機能変換が要求されると
き、ローカル実アドレスをホーム・ノード実アドレスに
変換するステップとを含み、ホーム・ノード実アドレス
が、クライアント・ノードがそのホーム・ノード実アド
レスのデータへのアクセスを要求するとき使用するネッ
トワーク・アドレスを含む。
【0031】更に別の態様では、本発明は、混成不均等
メモリ・アーキテクチャ/単純キャッシュ専用メモリ・
アーキテクチャ(NUMA/S−COMA)・メモリ・
システムを構成する方法を含む。この方法は、互いに結
合される複数のノードを有するコンピュータ・システム
を提供するステップと、コンピュータ・システムを、N
UMAコヒーレンス・サブシステムを含む不均等メモリ
・アクセス(NUMA)・アーキテクチャにより構成す
るステップと、コンピュータ・システムの複数ノードの
少なくとも1つのノードにおいて、単純キャッシュ専用
メモリ・アーキテクチャ(S−COMA)・キャッシュ
を構成するステップとを含む。S−COMAキャッシュ
を構成するステップは、データ参照捕獲、データ移動、
及びコヒーレンス管理のためにS−COMAコヒーレン
ス・サブシステムを使用することなく、NUMAコヒー
レンス・サブシステムを用い、S−COMAキャッシュ
を構成するステップを含む。
【0032】更に別の態様では、本発明は、互いに結合
される複数のノードを有するコンピュータ・システムの
クライアント・ノードとホーム・ノード間で、データを
通信するためのコンピュータ読取り可能プログラム・コ
ード手段を有する、少なくとも1つのコンピュータ読取
り可能媒体を含む製造物を含む。そこではコンピュータ
・システムが、データを記憶するように構成される複数
のNUMAメモリを有する、混成不均等メモリ・アーキ
テクチャ/単純キャッシュ専用メモリ・アーキテクチャ
(NUMA/S−COMA)・メモリ・システムを使用
する。各NUMAメモリはコンピュータ・システムの異
なるノードに存在し、少なくとも1つのS−COMAキ
ャッシュはデータを記憶するように構成され、各S−C
OMAキャッシュはコンピュータ・システムの異なるノ
ードに存在し、クライアント・ノードは、少なくとも1
つのS−COMAキャッシュのS−COMAキャッシュ
を含む。製造物内のコンピュータ読取り可能プログラム
・コード手段は、複数のノードのクライアント・ノード
において、メモリの実アドレスを有するデータ要求を生
成する手段と、実アドレスがクライアント・ノードのロ
ーカル実アドレスを含むか否かを判断する手段と、実ア
ドレスがローカル実アドレスを含むとき、ローカル実ア
ドレスをホーム・ノード実アドレスに変換する境界機能
変換が要求されるか否かを判断する手段と、境界機能変
換が要求されるとき、ローカル実アドレスをホーム・ノ
ード実アドレスに変換する手段とを含み、ホーム・ノー
ド実アドレスが、クライアント・ノードがそのホーム・
ノード実アドレスのデータへのアクセスを要求するとき
使用するネットワーク・アドレスを含む。
【0033】ここで開示されるように、混成NUMA/
S−COMAシステムには様々な利点が存在する。提供
されるような真に併合されたシステムにより、別々のS
−COMAコヒーレンス及び通信装置、及び別々のNU
MAコヒーレンス及び通信装置の必要性が回避される。
ここで開示されるように、S−COMA機能の統合にも
関わらずNUMAディレクタがデータを移動し、ノード
相互間コヒーレンスを維持するために使用される。ここ
で提供されるような結合システムにより、S−COMA
の大きく柔軟な主メモリ・キャッシュが使用可能にな
り、(純粋なNUMAインプリメンテーションを上回
る)余分なキャッシング容量が、専用のキャッシュ・メ
モリを要求することなく、各ノードに対して提供され
る。本発明に従い実現される混成システムは、最適化さ
れたNUMA機構にてこ入れし、ホーム・ノード上の大
域アドレスと実アドレス間の変換を回避し、S−COM
Aインプリメンテーションのために、超高性能を達成す
るはずである。
【0034】
【発明の実施の形態】本発明は、不均等メモリ・アクセ
ス(NUMA)構造基盤上において、単純キャッシュ専
用メモリ・アーキテクチャ(S−COMA)・システム
を構成する方法を提供するものであり、NUMAコヒー
レンス装置をデータ参照捕獲、データ移動、及びコヒー
レンス管理のために使用する。S−COMA構成に従
い、各ノード上の主メモリの一部が、大域メモリのため
のデータ・キャッシュとして使用される。これらのS−
COMAキャッシュの各々は、それらを使用するローカ
ル・ノードにより管理される。
【0035】本発明により、ホーム・ノードからデータ
をキャッシュする各ノードは、通常のNUMA階層内で
データをキャッシュでき、任意的に、互いに独立に、ま
たホーム・ノードによるそれらのキャッシング判断に関
する特殊な知識無しに、S−COMAキャッシュ内にデ
ータをキャッシュできる。
【0036】これはNUMAホーム・ローカル実アドレ
スを、S−COMAキャッシュのための大域アドレスと
して使用し、クライアント・ノード上でコヒーレンス・
プロトコルの実行のために、ホーム・ローカル実アドレ
スをクライアント・ローカル実アドレスに変換すること
により達成される。同様に、クライアントからホームに
移動するコヒーレンス・メッセージに対してクライアン
ト・ローカル実アドレスが、ノード間を接続するネット
ワークへ伝送される前に、ホーム・ローカル実アドレス
の形式で大域アドレスに変換される。
【0037】標準的なS−COMAインプリメンテーシ
ョンでは、全てのノード、従ってデータのホーム・ノー
ドでさえも、参照される大域データのためにS−COM
Aキャッシュを保持する。ホーム・ノードがクライアン
ト・ノードによる使用のために、データをそのローカル
・メモリに取り出すとき、ホーム・ノードはデータをそ
れ自身のS−COMAキャッシュ内に保持しなければな
らない。これはコヒーレンス管理の実行のために、S−
COMA装置がそのデータの参照に対する制御を獲得す
るために必要である。
【0038】本発明によれば、S−COMAキャッシュ
だけが、どこか別の場所にホームを持つキャッシュ・ラ
インを保持するために使用される。ホーム・ノードのS
−COMAキャッシュ内に、ラインをキャッシュする必
要はない。なぜなら、全てのコヒーレンス管理はホーム
NUMA装置により実行されるからである。すなわち、
通常の(すなわちS−COMAでない)メモリがローカ
ル・ラインを保持し、NUMAディレクトリが、このノ
ードをホームとするラインの使用を追跡する。コヒーレ
ンス・アクションが必要な場合、標準的なNUMA機構
がコヒーレンス・メッセージを他のノードに送信するた
めに使用され、ラインのホーム実アドレスが送信され
る。
【0039】ホーム実アドレスは、S−COMAシステ
ムにおける大域アドレスと同様に使用される。S−CO
MAクライアント・ノードは、ノードに及びノードから
渡されるアドレスに"境界機能"変換を実行する。これは
標準的なS−COMAインプリメンテーションで発生す
る変換と類似であり、大域アドレスとローカル実アドレ
ス間を変換する。しかしながら、混成インプリメンテー
ションでは、クライアントが直接、ホーム・ノードによ
り使用されるホーム実アドレスと、クライアントのロー
カル実メモリ内のS−COMAキャッシュを表すクライ
アント実アドレスとの間を変換する。
【0040】図4は、ここで提案される混成NUMA/
S−COMA環境における様々なタイプのアドレス間の
関係を示す、本発明の1実施例である。この環境はホー
ム・ノード40及びクライアント・ノード42を含み、
それらの各々は、それぞれ実アドレス(RAH)及び
(RAL)を含む。図3と同様、クライアント・ノード
42は、ホーム・ノード40とは独立のローカル実アド
レス空間46内にS−COMAキャッシュ44を保持す
る。しかしながら、図3の実施例と異なり、ホーム・ノ
ード40とクライアント・ノード42間の通信は、規範
的な大域アドレスを伴わず、ホーム・ノード40により
使用される実アドレス(RAH)または(RAHOME)を
伴う。クライアント・ノード42は、NUMAディレク
タ内の受信された実アドレスを、境界機能49により、
対応するローカル実アドレス(RA)または(RA
LOCAL)に変換し、これがクライアントのS−COMA
キャッシュ44を指し示す。
【0041】本発明の1態様は、システム全体に渡って
使用されるNUMAアドレスから、ホームと通信する各
ノード上のS−COMAキャッシュにだけ適用されるロ
ーカル・アドレスに変換するものである。
【0042】NUMAなどの大域メモリ・システムは、
システム内の複数のノード間で分散されるアドレス空間
を使用する。アドレス自身は、アドレスされるデータの
補助メモリ(backing memory)を提供するノードを指定
する。例えば、非常に単純なシステムでは、アドレスの
高位バイトがノード番号を指定し、アドレスの残りがノ
ード内のメモリ位置を指定する。
【0043】あるノードが別のノードからの入力として
ホーム・アドレスを受信すると、このノードは後の処理
のために、アドレスを特定の"関連アドレス"に、すなわ
ちホーム・アドレスに直接対応するローカル・アドレス
に変換する。この利点は、S−COMA同様、ローカル
・ノードが残りのシステムに関係なく、それ自身のアド
レスを管理できることである。これは特に、各ノードが
独立のオペレーティング・システムを実行する複数オペ
レーティング・システム環境において重要である。用
語"各ノード"は、"ノードのサブセット"によっても置換
され得る。単純化のため、以下では用語"各ノード"を使
用し、単一のオペレーティング・システムの制御下で動
作する1ノードまたはノードの集合を意味するものとす
る。
【0044】アドレス変換機構は、ここでは境界機能
(boundary function)と呼ばれる。各クライアント・
ノード上において、境界機能は、ノードにより送受信さ
れるとき、変換を要求するメモリ・アドレスを追跡する
ためのディレクトリを保持する。このディレクトリは、
(ローカル・メモリ参照のための)スヌーピング論理に
より、及び(リモート・ノードからの参照のための)ネ
ットワーク論理により、アクセス可能である。各ディレ
クトリ・エントリは、対象となるラインのローカル実ア
ドレス、及び対応するホーム・ノード・アドレスを含
む。エントリ内のフラグが変換が要求されることを示す
場合、入力アドレスがディレクトリ・エントリからの"
関連アドレス"により置換される。
【0045】S−COMA構成に従い、主メモリの一部
が大域メモリのためのデータ・キャッシュとして使用さ
れる。これらのS−COMAキャッシュの各々は、それ
らを使用するローカル・ノードにより管理される。
【0046】NUMA機構はデータ参照捕獲、データ移
動、及びコヒーレンス機構を提供するために使用され
る。これはデータ参照捕獲、データ移動、またはコヒー
レンスのための、別々のS−COMA機構の必要性を回
避する。本発明のこれらの態様は、更に次のように箇条
書に記される。
【0047】1.開始ポイントは、図2に示されるよう
なNUMAシステムである。NUMAシステムでは、シ
ステムの実アドレス空間がノード間で分散され、共用さ
れる(すなわち、任意のノードが任意のメモリ位置を参
照できる)。NUMAシステムは、各メモリ位置のコヒ
ーレンスを維持するための装置を含み、特定のメモリ位
置をキャッシュするクライアントのリストを保持し、コ
ヒーレンス要求をホームまたはクライアント・メモリ位
置にルート指定する。 2.コヒーレンス・ディレクトリ:各NUMAメモリ制
御装置(NMC)は、このノードをホームとするメモリ
の各ラインに対して、1エントリを有するテーブルを保
持する。各エントリには、そのラインがキャッシュされ
ているクライアント・ノードのリストが存在する。この
テーブルは、実メモリ・アドレスにより指標付けされ
る。 3.システム・ソフトウェアが、各ノード上の主メモリ
の一部を、S−COMAキャッシュとして割当てる。 4.境界機能変換テーブル:各NMCは、S−COMA
キャッシュとして使用されているメモリの各ページに対
して、1エントリを有するテーブルを保持する。各エン
トリは、キャッシュ・データのホーム・ノード実アドレ
ス(RAHOME)を含む。このテーブルは、ローカル実メ
モリ・アドレス(RALOCAL)により指標付けされる。
エントリはまた、ホーム実メモリ・アドレスを入力とし
て使用し、ローカル実メモリ・アドレスを導出すること
により見い出されるが、これは余り効率的でないルック
アップすなわち探索であり得る。 5.NUMAメモリ・サブシステムは、ローカルS−C
OMAキャッシュの範囲内の全てのアドレスを、どこか
別の場所をホームとするアドレスとして取り扱う。すな
わち、ローカルNMCは、ローカルS−COMAキャッ
シュの範囲内のアドレスに対してはコヒーレンス・アク
ションを開始しない。代わりに、ローカルNMCは境界
機能変換を実行し、メモリ要求を、境界機能変換テーブ
ル内において、ターゲットのローカル実アドレスに対応
するホーム・ノード実アドレス(RAHOME)のホームに
転送する。 6.各NMCは、ノードから出ていく(すなわちアウト
バウンド)、またはノードに向かう(すなわちインバウ
ンド)オペレーションに対してだけ、境界機能(BF)
変換テーブル・ルックアップを実行し、次に自身がホー
ムでないアドレスに対してだけ同様に変換を実行する。
これは境界機能として知られる。 7.アウトバウンド・データ内のデータ・アドレスは、
テーブルからの"関連値"データ・アドレスにより置換さ
れる。
【0048】クライアント・ノードがそのローカル実ア
ドレスを介してそのS−COMAキャッシュ内のデータ
を参照し、ローカル・コヒーレンス・ディレクトリ内の
状態が無効を示す場合、ローカル参照は通常のNUMA
機構により機能を停止され、境界機能がローカル実アド
レスをホーム・ノード実アドレスに変換し、データに対
する要求が通常のNUMA機構によりホーム・ノードに
送信される。ネットワーク・アドレスは実際のNUMA
アドレスであるので、NUMAサブシステムは、ライン
に対する要求をルート指定できる。
【0049】ホーム・ノードは境界機能を実行せず、要
求を受信し、それに対して標準のNUMA論理により作
用する。要求データは応答メッセージにより、クライア
ント・ノードに返送される。
【0050】クライアント・ノードは要求データに対す
る応答を受信し、ネットワーク・アドレス(すなわちホ
ーム・ノード実アドレス)に対して、境界機能ルックア
ップを実行する。境界機能変換テーブル内でRAHOME
見い出すと、境界機能がそのアドレスをテーブルからの
対応するローカル実アドレスにより置換する。メモリ制
御装置はコヒーレンス・ディレクトリ内でラインを有効
とマークし、データ応答をクライアント・ノードの要求
元プロセッサに転送する。これで要求が完了する。
【0051】クライアントがそのローカル実アドレスを
介して、そのS−COMAキャッシュ内のデータを参照
し、状態が有効の場合、ラインはそのS−COMAキャ
ッシュ内に存在し、追加のアクションは要求されない。
境界機能変換が要求されず、単にデータが通常のNUM
A機構により、ローカル・メモリからローカル・メモリ
待ち時間により返却される。
【0052】ホーム・ノードがコヒーレンス要求をクラ
イアント・ノードに送出するとき、ホーム・ノードは
(純粋なS−COMAシステム内の大域アドレスの代わ
りに、)自身のNUMAアドレスを使用する。各クライ
アント・ノードは要求を受信し、境界機能が入来アドレ
ス(ホーム・ノード実アドレス)を、境界機能変換テー
ブル内で見いだされるローカル・アドレスに変換する。
要求が次にローカル・アドレス(RALOCAL)を用い
て、局所的に処理される。
【0053】図5乃至図9は、本発明に従う混成NUM
A/S−COMAシステム内で実現される論理フローの
1実施例を示す。以下の説明では、図4のシステムが想
定され、そこでは要求元プロセッサがクライアント・ノ
ードを構成し、メモリ管理ユニット(MMU)が、前述
のNUMAメモリ制御装置(NMC)を含み得る。更
に、物理アドレス(PA)が前述の実アドレス(RA)
に等価である。
【0054】図5を参照すると、論理フローは、クライ
アント・ノードまたは要求元プロセッサが、データ・ラ
インの仮想アドレス(VA)をそのローカル・メモリ管
理ユニット(MMU)に提供することにより開始する
(110)。ローカルMMUはVAを物理アドレス(P
A)に変換し、論理は所望のデータ・ラインの有効コピ
ーが、要求元プロセッサのハードウェア・キャッシュの
1つ内に存在するか否かを判断する(120)。ここで
使用されるように、"レベル2キャッシュ"は、以下で参
照されるS−COMAキャッシュではなく、正規のまた
は標準的なキャッシュを指し示す。データがローカル標
準キャッシュ内に存在する場合、L2キャッシュはデー
タ・ラインを要求元プロセッサに提供し(130)、デ
ータ検索プロセスが完了する(140)。
【0055】物理データがリクエスタのハードウェア・
キャッシュの1つ内に存在しない場合、L2キャッシュ
は物理アドレス(PA)を、要求元サブシステムのNU
MAメモリ制御装置(NMC)に提供し(150)、N
MCにおいて、物理アドレスが要求元プロセッサに対す
るローカル物理アドレスであるか否かが問い合わされる
(160)。肯定の場合、後述のように、図8の混成メ
モリ・アウトバウンド処理が実行される(170)。本
質的に、図8の論理は、物理アドレスが要求元プロセッ
サにおけるローカルS−COMAキャッシュの一部であ
るか否かを判断する。物理アドレスがローカル物理アド
レスを含まない場合、データ・ラインはリモート物理ア
ドレスに存在し、論理は純粋なNUMA処理の例に帰着
し、要求元NMCがデータ要求を、メッセージ要求内の
データ・アドレスを有するホーム・サブシステムに転送
する(180)。
【0056】論理は要求ノード処理190から、図6の
ホーム・ノード処理200に遷移し、ホーム・サブシス
テムが要求メッセージを受信し、読出し要求に対する応
答、すなわちデータ・ラインの新たなステータスを反映
するように、そのコヒーレンス・ディレクトリを更新す
る(210)。データ・ラインの新たなステータスは、
データ・ラインの状態すなわち有効または無効の他に、
データ・ラインの有効コピーを有する処理ノードを表
し、これは対象となるデータ・ラインをキャッシング中
のクライアント・ノードを追跡する従来のNUMA処理
である。ホーム・サブシステムは次に、自身がデータの
有効コピーをホーム・メモリ内に有するか否かを判断す
る(220)。否定の場合、従来のNUMA処理がホー
ム・サブシステムにより実行され、データ・ラインのキ
ャッシュ済みコピーをキャッシング・クライアント・サ
ブシステムから呼び戻す(230)。一旦ホーム・サブ
システムがデータ・ラインの有効コピーをメモリ内に有
すると、データが要求元サブシステムに提供され(24
0)、論理は追加の処理のために、図7に示されるよう
に要求元サブシステムに遷移する(250)。
【0057】ホーム・サブシステムからの返却データの
受信に際して、要求元サブシステムにおいて処理が開始
し(300)、クライアント・ノードにおいて受信され
た物理アドレスが、ローカル物理アドレスか否かを判断
する(310)。否定の場合、図9の混成メモリ・イン
バウンド処理が本発明に従い実行される。
【0058】図9に示されるように、インバウンド処理
が開始すると(500)、要求データが要求元サブシス
テムにおいて、ホーム・サブシステム510から受信さ
れる。要求元NMCが次に、前述のように受信データ・
アドレスを"ネットワーク・アドレス"として使用するこ
とにより、応答メッセージ内のデータ・アドレスに対し
て、境界機能ディレクトリ・ルックアップを実行する
(520)。ネットワーク・アドレス(NA)が境界機
能変換テーブル内で見いだされる場合(530)、デー
タ・アドレスがネットワーク・アドレスから、境界機能
変換テーブル内の対応するローカル実アドレス(RA
LOCAL)に変換され、これが要求元サブシステムにより
使用される(540)。ネットワーク・アドレスが変換
テーブル内で見い出されない場合、或いは、その変換が
境界機能に従い実行された場合、処理は図7の論理フロ
ーに戻る(550)。
【0059】図7の要求元サブシステム処理に続き、物
理アドレスがローカル物理アドレスの場合、または図9
の混成メモリ・インバウンド処理の後、要求元NMCは
データ応答を要求元プロセッサに転送し(330)、任
意的に、データ・ラインが続く使用のために、L2キャ
ッシュ(すなわち正規のハードウェア・キャッシュ)内
に記憶される(340)。これで本発明のこの実施例に
従う処理が完了する(350)。
【0060】図5に戻り、問い合わせ160の結果、物
理アドレスがローカル・アドレスの場合、図8の混成メ
モリ・アウトバウンド処理が実行される。この処理は要
求元サブシステムにおいて開始され(400)、要求元
NMCがコヒーレンス・ディレクトリをアクセスし、デ
ータ・ラインがリクエスタのローカル・メモリ内に有効
状態で存在するか否かを判断する(410)。肯定の場
合、ローカル・メモリがそれがS−COMAキャッシュ
か否かに関わらず、そのデータ・ラインを要求元プロセ
ッサに提供し(430)、検索処理が完了する(44
0)。
【0061】データの有効コピーがローカル・メモリ内
に存在しない場合、論理は、要求アドレスがS−COM
Aキャッシュ範囲内に存在するか否かを判断することに
より、境界機能が要求されるか否かを判断する(45
0)。要求されない場合、これはS−COMA状況では
なく、データはシステムの別のノードにチェックアウト
されている。選択されたアドレスがS−COMAキャッ
シュの一部の場合、アドレスはサブシステムにより理解
されるホーム・アドレスに変換されなければならない。
従って、要求元の境界機能が境界機能変換テーブルをア
クセスし、要求内のローカル実メモリ・アドレスをネッ
トワーク・アドレスに変換し(460)、これが前述の
ようにホーム・サブシステムに転送され得る(47
0)。これで図8の混成メモリ・アウトバウンド処理が
完了する(480)。
【0062】要するに、当業者であれば前述の説明か
ら、ここで開始された混成NUMA/S−COMAシス
テムには多数の利点があることが理解できよう。再度、
提供されたシステムは、真に併合されたシステムを含
み、そこではNUMAコヒーレンス及び通信装置の使用
により、別々のS−COMAコヒーレンス及び通信装置
の必要性が排除される。ここで開示されたように、S−
COMA機能の統合にも関わらずデータを移動し、ノー
ド相互間コヒーレンスを維持するために、NUMAディ
レクタが使用される。提案された結合システムにより、
S−COMAの大きく柔軟な主メモリ・キャッシュが使
用可能となり、これが各ノードに対して専用のキャッシ
ュ・メモリを要求することなく、純粋なNUMAインプ
リメンテーションを上回る余分なキャッシング容量を提
供する。有利な点として、ホーム・ノード上での大域ア
ドレスと実アドレス間の変換が提案されるインプリメン
テーションにより回避される。
【0063】本発明は例えば、コンピュータ読取り可能
媒体を有する製造物(例えば1つ以上のコンピュータ・
プログラム製品)内に含まれ得る。この媒体は例えば、
本発明の機能を提供及び容易にするコンピュータ読取り
可能プログラム・コード手段を埋め込む。製造物はコン
ピュータ・システムの一部として含まれるか、別々に販
売され得る。
【0064】更に、本発明の機能を実行するために、マ
シンにより実行可能な少なくとも1つの命令プログラム
を実現する、前記マシンにより読取り可能な少なくとも
1つのプログラム記憶装置が提供され得る。
【0065】ここで示されたフロー図は、一例として提
供されただけであり、本発明の趣旨から逸れることな
く、ここで述べられたこれらのフロー図またはステップ
(またはオペレーション)に対する変形が存在し得る。
例えば、特定のケースでは、ステップが異なる順序で実
行されたり、ステップが追加、消去または変更され得
る。これらの全ての変化は、本発明の一部を構成するも
のと見なされる。
【0066】まとめとして、本発明の構成として以下の
事項を開示する。
【0067】(1)互いに結合される複数のノードを有
するコンピュータ・システムに関連して有用な、混成不
均等メモリ・アーキテクチャ/単純キャッシュ専用メモ
リ・アーキテクチャ(NUMA/S−COMA)・メモ
リ・システムであって、データが前記混成NUMA/S
−COMAメモリ・システムに複数のページとして記憶
され、各前記ページが少なくとも1データ・ラインを含
むものにおいて、前記少なくとも1データ・ラインを記
憶するように構成される複数のNUMAメモリであっ
て、各前記NUMAメモリが、前記コンピュータ・シス
テムの前記複数のノードの異なるノードに存在し、前記
複数のNUMAメモリが、前記NUMAメモリ間のデー
タの転送を調整するNUMAコヒーレンス・サブシステ
ムを含む、複数のNUMAメモリと、前記複数のページ
の少なくとも1ページを記憶するように構成される、少
なくとも1つのS−COMAキャッシュであって、前記
少なくとも1つのS−COMAキャッシュの各々が、前
記コンピュータ・システムの前記複数のノードの異なる
ノードに存在し、前記少なくとも1つのS−COMAキ
ャッシュが、前記NUMAコヒーレンス・サブシステム
を使用し、前記コンピュータ・システムの前記複数のノ
ードの別のノードとの間でデータ通信を送受信する、少
なくとも1つのS−COMAキャッシュとを含む、混成
NUMA/S−COMAメモリ・システム。 (2)前記少なくとも1つのS−COMAキャッシュが
複数のS−COMAキャッシュを含み、前記NUMAコ
ヒーレンス・サブシステムが、前記コンピュータ・シス
テムの前記複数のノードのホーム・ノードから、前記S
−COMAキャッシュの1つにデータをキャッシュす
る、前記複数のノードのクライアント・ノード上におい
てNUMAコヒーレンス・プロトコルを含み、前記NU
MAコヒーレンス・プロトコルが、前記クライアント・
ノードと前記ホーム・ノード間でS−COMAコヒーレ
ンス・メッセージを送信するために使用される、前記
(1)記載の混成NUMA/S−COMAメモリ・シス
テム。 (3)前記クライアント・ノードにおいて前記コヒーレ
ンス・プロトコルを有する前記NUMAコヒーレンス・
サブシステムが、メッセージを前記クライアント・ノー
ドの前記S−COMAキャッシュと前記ホーム・ノード
間で送信するとき、ホーム・ノード実アドレスとクライ
アント・ノード実アドレス間を変換するための境界機能
変換テーブルを前記クライアント・ノードに含み、前記
ホーム・ノード実アドレスが、データを前記ホーム・ノ
ードと前記クライアント・ノードの前記S−COMAキ
ャッシュ間で転送するときに、前記NUMA通信サブシ
ステムにより使用されるネットワーク・アドレスを含
む、前記(2)記載の混成NUMA/S−COMAメモ
リ・システム。 (4)前記複数のノードを接続する通信ネットワークを
含み、前記NUMAコヒーレンス・サブシステムが、前
記境界機能変換テーブルを使用し、クライアント・ノー
ド実アドレスをホーム・ノード実アドレスに変換する手
段を含み、前記ホーム・ノード実アドレスが、メッセー
ジを前記クライアント・ノードから前記ホーム・ノード
に通信するときに、前記複数のノードを相互接続する前
記通信ネットワーク上に伝送されるネットワーク・アド
レスを含む、前記(3)記載の混成NUMA/S−CO
MAメモリ・システム。 (5)前記複数のノードを接続する通信ネットワークを
含み、前記NUMAコヒーレンス・サブシステムが、前
記クライアント・ノードにおけるネットワーク・アドレ
スの受信に際して、前記境界機能変換テーブルをチェッ
クし、前記ネットワーク・アドレスが、ホーム・ノード
から前記クライアント・ノードの前記S−COMAキャ
ッシュへのメッセージに関連付けられるとき、前記境界
機能変換テーブルを使用し、前記ネットワーク・アドレ
スをクライアント・ノード実アドレスに変換する手段を
含み、前記ネットワーク・アドレスがホーム・ノード実
アドレスを含む、前記(3)記載の混成NUMA/S−
COMAメモリ・システム。 (6)前記少なくとも1つのS−COMAキャッシュ
が、前記複数のノードの少なくとも1つのクライアント
・ノードにおいて実現されるS−COMAキャッシュを
含み、前記コンピュータ・システム内のどこか別の場所
をホームとする少なくとも1キャッシュ・ページを保持
する、前記(1)記載の混成NUMA/S−COMAメ
モリ・システム。 (7)前記NUMAコヒーレンス・サブシステムが標準
的NUMAコヒーレンス機構を含み、前記標準的NUM
Aコヒーレンス機構が、S−COMAコヒーレンス・メ
ッセージを前記複数のノードの他のノードに送信するた
めに、前記少なくとも1つのS−COMAキャッシュに
より使用される、前記(6)記載の混成NUMA/S−
COMAメモリ・システム。 (8)前記クライアント・ノードが、ホーム・ノードに
記憶決定を通知することなしに、前記クライアント・ノ
ードの前記S−COMAキャッシュ内にデータを記憶す
る手段を含む、前記(6)記載の混成NUMA/S−C
OMAメモリ・システム。 (9)前記クライアント・ノード及び前記ホーム・ノー
ドが独立のオペレーティング・システムを有する、前記
(8)記載の混成NUMA/S−COMAメモリ・シス
テム。 (10)前記コンピュータ・システムの前記複数のノー
ドが複数のクライアント・ノードを含み、各前記クライ
アント・ノードがS−COMAキャッシュを有し、前記
S−COMAキャッシュを管理する手段を含み、前記管
理手段が前記S−COMAキャッシュのコヒーレンス管
理のために、前記NUMAコヒーレンス・システムを使
用する、前記(6)記載の混成NUMA/S−COMA
メモリ・システム。 (11)互いに結合される複数のノードを有するコンピ
ュータ・システムのクライアント・ノードとホーム・ノ
ード間で、データを通信するための方法であって、前記
コンピュータ・システムが、データを記憶するように構
成される複数のNUMAメモリを有する、混成不均等メ
モリ・アーキテクチャ/単純キャッシュ専用メモリ・ア
ーキテクチャ(NUMA/S−COMA)メモリ・シス
テムを使用し、各前記NUMAメモリが前記コンピュー
タ・システムの異なるノードに存在し、少なくとも1つ
のS−COMAキャッシュがデータを記憶するように構
成され、各前記S−COMAキャッシュが前記コンピュ
ータ・システムの異なるノードに存在し、前記クライア
ント・ノードが、前記少なくとも1つのS−COMAキ
ャッシュのS−COMAキャッシュを含むものにおい
て、 i)前記コンピュータ・システムの前記複数のノードの
前記クライアント・ノードにおいて、メモリの実アドレ
スを有するデータ要求を生成するステップと、 ii)前記実アドレスが前記クライアント・ノードのロ
ーカル実アドレスを含むか否かを判断するステップと、 iii)前記実アドレスが前記ローカル実アドレスを含
むとき、前記ローカル実アドレスをホーム・ノード実ア
ドレスに変換する境界機能変換が要求されるか否かを判
断するステップと、 iv)前記境界機能変換が要求されるとき、前記ローカ
ル実アドレスを前記ホーム・ノード実アドレスに変換す
るステップであって、前記ホーム・ノード実アドレス
が、前記クライアント・ノードが該ホーム・ノード実ア
ドレスのデータへのアクセスを要求するとき使用するネ
ットワーク・アドレスを含む、変換ステップとを含む、
方法。 (12)前記ローカル実アドレスがS−COMAキャッ
シュ・アドレスを含み、前記方法が、前記複数のNUM
AメモリのNUMAコヒーレンス・サブシステムを使用
し、要求メッセージを前記クライアント・ノードから前
記ホーム・ノードに転送するステップを含み、前記要求
メッセージが、要求データの前記ホーム・ノード実アド
レスを含む前記ネットワーク・アドレスを含む、前記
(11)記載の方法。 (13)前記クライアント・ノードにおいて、前記ホー
ム・ノードから実アドレスを含む応答メッセージを受信
するステップと、前記応答メッセージの前記実アドレス
が、前記クライアント・ノードのローカル実アドレスを
含むか否かを判断するステップとを含む、前記(12)
記載の方法。 (14)前記実アドレスが前記クライアント・ノードの
ローカル実アドレス以外の場合、前記クライアント・ノ
ードにおいて、前記応答メッセージ内の前記実アドレス
に対し、境界機能ディレクトリ・ルックアップを実行す
るステップと、前記実アドレスが前記境界機能ディレク
トリ・ルックアップ内で見いだされる場合、前記クライ
アント・ノードの前記境界機能変換テーブルを使用し、
前記実アドレスを前記ネットワーク・アドレスから対応
するローカル実アドレスに変換するステップとを含む、
前記(13)記載の方法。 (15)前記クライアント・ノードがNUMAメモリ制
御装置を含み、前記方法が、前記クライアント・ノード
の前記NUMAメモリ制御装置に、前記ホーム・ノード
実アドレスを含む前記ネットワーク・アドレスを使用
し、前記データ要求を前記クライアント・ノードから前
記ホーム・ノードに転送するように要求するステップを
含む、前記(11)記載の方法。 (16)前記決定ステップiii)において、前記実ア
ドレスがローカル実アドレス以外を含む場合、前記クラ
イアント・ノードのNUMAメモリ制御装置に、前記実
アドレスをホーム・ノード実アドレスとして使用するこ
とにより、前記データ要求を前記ホーム・ノードに転送
するように要求するステップを含む、前記(11)記載
の方法。 (17)混成不均等メモリ・アーキテクチャ/単純キャ
ッシュ専用メモリ・アーキテクチャ(NUMA/S−C
OMA)・メモリ・システムを構成する方法であって、
互いに結合される複数のノードを有するコンピュータ・
システムを提供するステップと、前記コンピュータ・シ
ステムを、NUMAコヒーレンス・サブシステムを含む
不均等メモリ・アクセス(NUMA)アーキテクチャに
より構成するステップと、前記コンピュータ・システム
の前記複数ノードの少なくとも1つのノードにおいて、
単純キャッシュ専用メモリ・アーキテクチャ(S−CO
MA)・キャッシュを構成するステップとを含み、前記
S−COMAキャッシュを構成するステップが、データ
参照捕獲、データ移動、及びコヒーレンス管理のために
S−COMAコヒーレンス・サブシステムを使用するこ
となく、前記NUMAコヒーレンス・サブシステムを用
い、前記S−COMAキャッシュを構成するステップを
含む、方法。 (18)互いに結合される複数のノードを有するコンピ
ュータ・システムのクライアント・ノードとホーム・ノ
ード間で、データを通信するためのコンピュータ読取り
可能プログラム・コード手段を有する、少なくとも1つ
のコンピュータ読取り可能媒体を含む製造物であって、
前記コンピュータ・システムが、データを記憶するよう
に構成される複数のNUMAメモリを有する、混成不均
等メモリ・アーキテクチャ/単純キャッシュ専用メモリ
・アーキテクチャ(NUMA/S−COMA)・メモリ
・システムを使用し、各前記NUMAメモリが前記コン
ピュータ・システムの異なるノードに存在し、少なくと
も1つのS−COMAキャッシュがデータを記憶するよ
うに構成され、各前記S−COMAキャッシュが前記コ
ンピュータ・システムの異なるノードに存在し、前記ク
ライアント・ノードが、前記少なくとも1つのS−CO
MAキャッシュのS−COMAキャッシュを含むものに
おいて、前記コンピュータ読取り可能プログラム・コー
ド手段が、 i)前記複数のノードのクライアント・ノードにおい
て、メモリの実アドレスを有するデータ要求を生成する
手段と、 ii)前記実アドレスが前記クライアント・ノードのロ
ーカル実アドレスを含むか否かを判断する手段と、 iii)前記実アドレスが前記ローカル実アドレスを含
むとき、前記ローカル実アドレスをホーム・ノード実ア
ドレスに変換する境界機能変換が要求されるか否かを判
断する手段と、 iv)前記境界機能変換が要求されるとき、前記ローカ
ル実アドレスを前記ホーム・ノード実アドレスに変換す
る手段とを含み、前記ホーム・ノード実アドレスが、前
記クライアント・ノードが該ホーム・ノード実アドレス
のデータへのアクセスを要求するとき使用するネットワ
ーク・アドレスを含む、製造物。 (19)前記ローカル実アドレスがS−COMAキャッ
シュ・アドレスを含み、前記コンピュータ読取り可能プ
ログラム・コード手段が、前記複数のNUMAメモリの
NUMAコヒーレンス・サブシステムを使用し、要求メ
ッセージを前記クライアント・ノードから前記ホーム・
ノードに転送する手段を含み、前記要求メッセージが、
要求データの前記ホーム・ノード実アドレスを含む前記
ネットワーク・アドレスを含む、前記(18)記載の製
造物。 (20)前記コンピュータ読取り可能プログラム・コー
ド手段が、前記クライアント・ノードにおいて、前記ホ
ーム・ノードから実アドレスを含む応答メッセージを受
信する手段と、前記応答メッセージの前記実アドレス
が、前記クライアント・ノードのローカル実アドレスを
含むか否かを判断する手段とを含む、前記(19)記載
の製造物。 (21)前記コンピュータ読取り可能プログラム・コー
ド手段が、前記実アドレスが前記クライアント・ノード
のローカル実アドレス以外の場合、前記クライアント・
ノードにおいて、前記応答メッセージ内の前記実アドレ
スに対し、境界機能ディレクトリ・ルックアップを実行
する手段と、前記実アドレスが前記境界機能ディレクト
リ・ルックアップ内で見いだされる場合、前記クライア
ント・ノードの前記境界機能変換テーブルを使用し、前
記実アドレスを前記ネットワーク・アドレスから対応す
るローカル実アドレスに変換する手段とを含む、前記
(20)記載の製造物。
【図面の簡単な説明】
【図1】典型的な均等メモリ・アクセス(UMA)アー
キテクチャの1実施例を示す図である。
【図2】不均等メモリ・アクセス(NUMA)アーキテ
クチャの1実施例を示す図である。
【図3】一般的な単純キャッシュ専用メモリ・アーキテ
クチャ(S−COMA)を示す図である。
【図4】本発明に従い実現されるNUMA/S−COM
Aシステムの高レベル図である。
【図5】本発明に従う混成NUMA/S−COMAシス
テム内のクライアント・ノードにおいて実現される、メ
モリ要求論理の1実施例のフロー図である。
【図6】本発明に従う混成NUMA/S−COMAシス
テム内のホーム・ノードにおいて実現される、メモリ要
求論理のフロー図である。
【図7】本発明に従う混成NUMA/S−COMAシス
テム内の要求ノードにおける、インバウンド・メモリ要
求処理論理の1実施例のフロー図である。
【図8】本発明に従う混成NUMA/S−COMAシス
テム内のホーム・ノードにおける、混成メモリ・アウト
バウンド処理論理の1実施例のフロー図である。
【図9】本発明に従う混成NUMA/S−COMAシス
テム内の要求ノードにおける、混成メモリ・インバウン
ド処理論理の1実施例のフロー図である。
【符号の説明】
10 UMAシステム 12 プロセッサ 14 システム・バス 16 メモリ 18 キャッシュ 20 システム 22 ノード 24 共通通信ファブリックまたはネットワーク 26 ネットワーク・インタフェース(NI) 28 NUMAメモリ制御装置 30、40 ホーム・ノード 32 ノード 34 S−COMAキャッシュ 36 主メモリ 38 S−COMAディレクトリ 42 クライアント・ノード 44 S−COMAキャッシュ 46 ローカル実アドレス空間 49 境界機能

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】互いに結合される複数のノードを有するコ
    ンピュータ・システムに関連して有用な、混成不均等メ
    モリ・アーキテクチャ/単純キャッシュ専用メモリ・ア
    ーキテクチャ(NUMA/S−COMA)・メモリ・シ
    ステムであって、データが前記混成NUMA/S−CO
    MAメモリ・システムに複数のページとして記憶され、
    各前記ページが少なくとも1データ・ラインを含むもの
    において、 前記少なくとも1データ・ラインを記憶するように構成
    される複数のNUMAメモリであって、各前記NUMA
    メモリが、前記コンピュータ・システムの前記複数のノ
    ードの異なるノードに存在し、前記複数のNUMAメモ
    リが、前記NUMAメモリ間のデータの転送を調整する
    NUMAコヒーレンス・サブシステムを含む、複数のN
    UMAメモリと、 前記複数のページの少なくとも1ページを記憶するよう
    に構成される、少なくとも1つのS−COMAキャッシ
    ュであって、前記少なくとも1つのS−COMAキャッ
    シュの各々が、前記コンピュータ・システムの前記複数
    のノードの異なるノードに存在し、前記少なくとも1つ
    のS−COMAキャッシュが、前記NUMAコヒーレン
    ス・サブシステムを使用し、前記コンピュータ・システ
    ムの前記複数のノードの別のノードとの間でデータ通信
    を送受信する、少なくとも1つのS−COMAキャッシ
    ュとを含む、混成NUMA/S−COMAメモリ・シス
    テム。
  2. 【請求項2】前記少なくとも1つのS−COMAキャッ
    シュが複数のS−COMAキャッシュを含み、前記NU
    MAコヒーレンス・サブシステムが、前記コンピュータ
    ・システムの前記複数のノードのホーム・ノードから、
    前記S−COMAキャッシュの1つにデータをキャッシ
    ュする、前記複数のノードのクライアント・ノード上に
    おいてNUMAコヒーレンス・プロトコルを含み、前記
    NUMAコヒーレンス・プロトコルが、前記クライアン
    ト・ノードと前記ホーム・ノード間でS−COMAコヒ
    ーレンス・メッセージを送信するために使用される、請
    求項1記載の混成NUMA/S−COMAメモリ・シス
    テム。
  3. 【請求項3】前記クライアント・ノードにおいて前記コ
    ヒーレンス・プロトコルを有する前記NUMAコヒーレ
    ンス・サブシステムが、メッセージを前記クライアント
    ・ノードの前記S−COMAキャッシュと前記ホーム・
    ノード間で送信するとき、ホーム・ノード実アドレスと
    クライアント・ノード実アドレス間を変換するための境
    界機能変換テーブルを前記クライアント・ノードに含
    み、前記ホーム・ノード実アドレスが、データを前記ホ
    ーム・ノードと前記クライアント・ノードの前記S−C
    OMAキャッシュ間で転送するときに、前記NUMA通
    信サブシステムにより使用されるネットワーク・アドレ
    スを含む、請求項2記載の混成NUMA/S−COMA
    メモリ・システム。
  4. 【請求項4】前記複数のノードを接続する通信ネットワ
    ークを含み、前記NUMAコヒーレンス・サブシステム
    が、前記境界機能変換テーブルを使用し、クライアント
    ・ノード実アドレスをホーム・ノード実アドレスに変換
    する手段を含み、前記ホーム・ノード実アドレスが、メ
    ッセージを前記クライアント・ノードから前記ホーム・
    ノードに通信するときに、前記複数のノードを相互接続
    する前記通信ネットワーク上に伝送されるネットワーク
    ・アドレスを含む、請求項3記載の混成NUMA/S−
    COMAメモリ・システム。
  5. 【請求項5】前記複数のノードを接続する通信ネットワ
    ークを含み、前記NUMAコヒーレンス・サブシステム
    が、前記クライアント・ノードにおけるネットワーク・
    アドレスの受信に際して、前記境界機能変換テーブルを
    チェックし、前記ネットワーク・アドレスが、ホーム・
    ノードから前記クライアント・ノードの前記S−COM
    Aキャッシュへのメッセージに関連付けられるとき、前
    記境界機能変換テーブルを使用し、前記ネットワーク・
    アドレスをクライアント・ノード実アドレスに変換する
    手段を含み、前記ネットワーク・アドレスがホーム・ノ
    ード実アドレスを含む、請求項3記載の混成NUMA/
    S−COMAメモリ・システム。
  6. 【請求項6】前記少なくとも1つのS−COMAキャッ
    シュが、前記複数のノードの少なくとも1つのクライア
    ント・ノードにおいて実現されるS−COMAキャッシ
    ュを含み、前記コンピュータ・システム内のどこか別の
    場所をホームとする少なくとも1キャッシュ・ページを
    保持する、請求項1記載の混成NUMA/S−COMA
    メモリ・システム。
  7. 【請求項7】前記NUMAコヒーレンス・サブシステム
    が標準的NUMAコヒーレンス機構を含み、前記標準的
    NUMAコヒーレンス機構が、S−COMAコヒーレン
    ス・メッセージを前記複数のノードの他のノードに送信
    するために、前記少なくとも1つのS−COMAキャッ
    シュにより使用される、請求項6記載の混成NUMA/
    S−COMAメモリ・システム。
  8. 【請求項8】前記クライアント・ノードが、ホーム・ノ
    ードに記憶決定を通知することなしに、前記クライアン
    ト・ノードの前記S−COMAキャッシュ内にデータを
    記憶する手段を含む、請求項6記載の混成NUMA/S
    −COMAメモリ・システム。
  9. 【請求項9】前記クライアント・ノード及び前記ホーム
    ・ノードが独立のオペレーティング・システムを有す
    る、請求項8記載の混成NUMA/S−COMAメモリ
    ・システム。
  10. 【請求項10】前記コンピュータ・システムの前記複数
    のノードが複数のクライアント・ノードを含み、各前記
    クライアント・ノードがS−COMAキャッシュを有
    し、前記S−COMAキャッシュを管理する手段を含
    み、前記管理手段が前記S−COMAキャッシュのコヒ
    ーレンス管理のために、前記NUMAコヒーレンス・シ
    ステムを使用する、請求項6記載の混成NUMA/S−
    COMAメモリ・システム。
  11. 【請求項11】互いに結合される複数のノードを有する
    コンピュータ・システムのクライアント・ノードとホー
    ム・ノード間で、データを通信するための方法であっ
    て、前記コンピュータ・システムが、データを記憶する
    ように構成される複数のNUMAメモリを有する、混成
    不均等メモリ・アーキテクチャ/単純キャッシュ専用メ
    モリ・アーキテクチャ(NUMA/S−COMA)メモ
    リ・システムを使用し、各前記NUMAメモリが前記コ
    ンピュータ・システムの異なるノードに存在し、少なく
    とも1つのS−COMAキャッシュがデータを記憶する
    ように構成され、各前記S−COMAキャッシュが前記
    コンピュータ・システムの異なるノードに存在し、前記
    クライアント・ノードが、前記少なくとも1つのS−C
    OMAキャッシュのS−COMAキャッシュを含むもの
    において、 i)前記コンピュータ・システムの前記複数のノードの
    前記クライアント・ノードにおいて、メモリの実アドレ
    スを有するデータ要求を生成するステップと、 ii)前記実アドレスが前記クライアント・ノードのロ
    ーカル実アドレスを含むか否かを判断するステップと、 iii)前記実アドレスが前記ローカル実アドレスを含
    むとき、前記ローカル実アドレスをホーム・ノード実ア
    ドレスに変換する境界機能変換が要求されるか否かを判
    断するステップと、 iv)前記境界機能変換が要求されるとき、前記ローカ
    ル実アドレスを前記ホーム・ノード実アドレスに変換す
    るステップであって、前記ホーム・ノード実アドレス
    が、前記クライアント・ノードが該ホーム・ノード実ア
    ドレスのデータへのアクセスを要求するとき使用するネ
    ットワーク・アドレスを含む、変換ステップとを含む、
    方法。
  12. 【請求項12】前記ローカル実アドレスがS−COMA
    キャッシュ・アドレスを含み、前記方法が、前記複数の
    NUMAメモリのNUMAコヒーレンス・サブシステム
    を使用し、要求メッセージを前記クライアント・ノード
    から前記ホーム・ノードに転送するステップを含み、前
    記要求メッセージが、要求データの前記ホーム・ノード
    実アドレスを含む前記ネットワーク・アドレスを含む、
    請求項11記載の方法。
  13. 【請求項13】前記クライアント・ノードにおいて、前
    記ホーム・ノードから実アドレスを含む応答メッセージ
    を受信するステップと、 前記応答メッセージの前記実アドレスが、前記クライア
    ント・ノードのローカル実アドレスを含むか否かを判断
    するステップとを含む、請求項12記載の方法。
  14. 【請求項14】前記実アドレスが前記クライアント・ノ
    ードのローカル実アドレス以外の場合、前記クライアン
    ト・ノードにおいて、前記応答メッセージ内の前記実ア
    ドレスに対し、境界機能ディレクトリ・ルックアップを
    実行するステップと、 前記実アドレスが前記境界機能ディレクトリ・ルックア
    ップ内で見いだされる場合、前記クライアント・ノード
    の前記境界機能変換テーブルを使用し、前記実アドレス
    を前記ネットワーク・アドレスから対応するローカル実
    アドレスに変換するステップとを含む、請求項13記載
    の方法。
  15. 【請求項15】前記クライアント・ノードがNUMAメ
    モリ制御装置を含み、前記方法が、前記クライアント・
    ノードの前記NUMAメモリ制御装置に、前記ホーム・
    ノード実アドレスを含む前記ネットワーク・アドレスを
    使用し、前記データ要求を前記クライアント・ノードか
    ら前記ホーム・ノードに転送するように要求するステッ
    プを含む、請求項11記載の方法。
  16. 【請求項16】前記決定ステップiii)において、前
    記実アドレスがローカル実アドレス以外を含む場合、前
    記クライアント・ノードのNUMAメモリ制御装置に、
    前記実アドレスをホーム・ノード実アドレスとして使用
    することにより、前記データ要求を前記ホーム・ノード
    に転送するように要求するステップを含む、請求項11
    記載の方法。
  17. 【請求項17】混成不均等メモリ・アーキテクチャ/単
    純キャッシュ専用メモリ・アーキテクチャ(NUMA/
    S−COMA)・メモリ・システムを構成する方法であ
    って、 互いに結合される複数のノードを有するコンピュータ・
    システムを提供するステップと、 前記コンピュータ・システムを、NUMAコヒーレンス
    ・サブシステムを含む不均等メモリ・アクセス(NUM
    A)アーキテクチャにより構成するステップと、 前記コンピュータ・システムの前記複数ノードの少なく
    とも1つのノードにおいて、単純キャッシュ専用メモリ
    ・アーキテクチャ(S−COMA)・キャッシュを構成
    するステップとを含み、前記S−COMAキャッシュを
    構成するステップが、データ参照捕獲、データ移動、及
    びコヒーレンス管理のためにS−COMAコヒーレンス
    ・サブシステムを使用することなく、前記NUMAコヒ
    ーレンス・サブシステムを用い、前記S−COMAキャ
    ッシュを構成するステップを含む、方法。
  18. 【請求項18】互いに結合される複数のノードを有する
    コンピュータ・システムのクライアント・ノードとホー
    ム・ノード間で、データを通信するためのコンピュータ
    読取り可能プログラム・コード手段を有する、少なくと
    も1つのコンピュータ読取り可能媒体を含む製造物であ
    って、前記コンピュータ・システムが、データを記憶す
    るように構成される複数のNUMAメモリを有する、混
    成不均等メモリ・アーキテクチャ/単純キャッシュ専用
    メモリ・アーキテクチャ(NUMA/S−COMA)・
    メモリ・システムを使用し、各前記NUMAメモリが前
    記コンピュータ・システムの異なるノードに存在し、少
    なくとも1つのS−COMAキャッシュがデータを記憶
    するように構成され、各前記S−COMAキャッシュが
    前記コンピュータ・システムの異なるノードに存在し、
    前記クライアント・ノードが、前記少なくとも1つのS
    −COMAキャッシュのS−COMAキャッシュを含む
    ものにおいて、前記コンピュータ読取り可能プログラム
    ・コード手段が、 i)前記複数のノードのクライアント・ノードにおい
    て、メモリの実アドレスを有するデータ要求を生成する
    手段と、 ii)前記実アドレスが前記クライアント・ノードのロ
    ーカル実アドレスを含むか否かを判断する手段と、 iii)前記実アドレスが前記ローカル実アドレスを含
    むとき、前記ローカル実アドレスをホーム・ノード実ア
    ドレスに変換する境界機能変換が要求されるか否かを判
    断する手段と、 iv)前記境界機能変換が要求されるとき、前記ローカ
    ル実アドレスを前記ホーム・ノード実アドレスに変換す
    る手段とを含み、前記ホーム・ノード実アドレスが、前
    記クライアント・ノードが該ホーム・ノード実アドレス
    のデータへのアクセスを要求するとき使用するネットワ
    ーク・アドレスを含む、製造物。
  19. 【請求項19】前記ローカル実アドレスがS−COMA
    キャッシュ・アドレスを含み、前記コンピュータ読取り
    可能プログラム・コード手段が、前記複数のNUMAメ
    モリのNUMAコヒーレンス・サブシステムを使用し、
    要求メッセージを前記クライアント・ノードから前記ホ
    ーム・ノードに転送する手段を含み、前記要求メッセー
    ジが、要求データの前記ホーム・ノード実アドレスを含
    む前記ネットワーク・アドレスを含む、請求項18記載
    の製造物。
  20. 【請求項20】前記コンピュータ読取り可能プログラム
    ・コード手段が、 前記クライアント・ノードにおいて、前記ホーム・ノー
    ドから実アドレスを含む応答メッセージを受信する手段
    と、 前記応答メッセージの前記実アドレスが、前記クライア
    ント・ノードのローカル実アドレスを含むか否かを判断
    する手段とを含む、請求項19記載の製造物。
  21. 【請求項21】前記コンピュータ読取り可能プログラム
    ・コード手段が、 前記実アドレスが前記クライアント・ノードのローカル
    実アドレス以外の場合、前記クライアント・ノードにお
    いて、前記応答メッセージ内の前記実アドレスに対し、
    境界機能ディレクトリ・ルックアップを実行する手段
    と、 前記実アドレスが前記境界機能ディレクトリ・ルックア
    ップ内で見いだされる場合、前記クライアント・ノード
    の前記境界機能変換テーブルを使用し、前記実アドレス
    を前記ネットワーク・アドレスから対応するローカル実
    アドレスに変換する手段とを含む、請求項20記載の製
    造物。
JP2000002194A 1999-01-27 2000-01-11 混成不均等メモリ・ア―キテクチャ/単純キャッシュ専用メモリ・ア―キテクチャ・システム及び方法 Pending JP2000227909A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/238,203 US6275900B1 (en) 1999-01-27 1999-01-27 Hybrid NUMA/S-COMA system and method
US09/238203 1999-01-27

Publications (1)

Publication Number Publication Date
JP2000227909A true JP2000227909A (ja) 2000-08-15

Family

ID=22896910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000002194A Pending JP2000227909A (ja) 1999-01-27 2000-01-11 混成不均等メモリ・ア―キテクチャ/単純キャッシュ専用メモリ・ア―キテクチャ・システム及び方法

Country Status (5)

Country Link
US (1) US6275900B1 (ja)
JP (1) JP2000227909A (ja)
KR (1) KR100335863B1 (ja)
CN (1) CN1133933C (ja)
TW (1) TW449701B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115428409A (zh) * 2020-04-24 2022-12-02 株式会社东阳特克尼卡 抓包装置以及方法

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60040846D1 (de) * 1999-02-26 2009-01-02 Henry Haugland Massenerzeugung individualer virtueller servern, vertueller webseiten sowie virtueller webobjekten
US6961749B1 (en) 1999-08-25 2005-11-01 Network Appliance, Inc. Scalable file server with highly available pairs
US6360302B1 (en) * 1999-11-05 2002-03-19 International Business Machines Corporation Method and system for dynamically changing page types in unified scalable shared-memory architectures
US6615375B1 (en) * 2000-02-03 2003-09-02 International Business Machines Corporation Method and apparatus for tolerating unrecoverable errors in a multi-processor data processing system
AU2001245520A1 (en) 2000-03-08 2001-09-17 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
US7080234B2 (en) * 2000-03-08 2006-07-18 Sun Microsystems, Inc. VLIW computer processing architecture having the problem counter stored in a register file register
US7330904B1 (en) * 2000-06-07 2008-02-12 Network Appliance, Inc. Communication of control information and data in client/server systems
US6662276B2 (en) * 2000-12-29 2003-12-09 Intel Corporation Storing directory information for non uniform memory architecture systems using processor cache
CA2377649C (en) * 2002-03-20 2009-02-03 Ibm Canada Limited-Ibm Canada Limitee Dynamic cluster database architecture
US7360056B2 (en) * 2003-04-04 2008-04-15 Sun Microsystems, Inc. Multi-node system in which global address generated by processing subsystem includes global to local translation information
US7765381B2 (en) * 2003-04-04 2010-07-27 Oracle America, Inc. Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
US7363462B2 (en) * 2003-04-04 2008-04-22 Sun Microsystems, Inc. Performing virtual to global address translation in processing subsystem
US7089372B2 (en) * 2003-12-01 2006-08-08 International Business Machines Corporation Local region table for storage of information regarding memory access by other nodes
US7380039B2 (en) 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
JP4362454B2 (ja) * 2005-04-07 2009-11-11 富士通株式会社 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20110004732A1 (en) * 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US7873879B2 (en) * 2008-02-01 2011-01-18 International Business Machines Corporation Mechanism to perform debugging of global shared memory (GSM) operations
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8516185B2 (en) 2009-07-16 2013-08-20 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
US9128632B2 (en) 2009-07-16 2015-09-08 Netlist, Inc. Memory module with distributed data buffers and method of operation
TWI425362B (zh) * 2010-12-07 2014-02-01 Alpha Imaging Technology Corp 對應不同記憶體之記憶體介面晶片及建立記憶體傳輸通道之方法
US8966187B2 (en) 2011-12-01 2015-02-24 International Business Machines Corporation Flexible replication with skewed mapping in multi-core chips
CN110428855B (zh) 2013-07-27 2023-09-22 奈特力斯股份有限公司 具有本地分别同步的内存模块
CN104050115B (zh) * 2014-06-30 2017-02-08 曙光信息产业(北京)有限公司 一种存储控制器及其使用方法
US10255183B2 (en) 2015-07-23 2019-04-09 Arteris, Inc. Victim buffer for cache coherent systems
US12026095B2 (en) 2014-12-30 2024-07-02 Arteris, Inc. Cache coherent system implementing victim buffers
US9542316B1 (en) * 2015-07-23 2017-01-10 Arteris, Inc. System and method for adaptation of coherence models between agents
US11768769B2 (en) 2016-04-25 2023-09-26 Netlist, Inc. Uniform memory access in a system having a plurality of nodes
WO2017189620A1 (en) * 2016-04-25 2017-11-02 Netlist, Inc. Method and apparatus for uniform memory access in a storage cluster
US11714755B2 (en) 2020-07-31 2023-08-01 Hewlett Packard Enterprise Development Lp System and method for scalable hardware-coherent memory nodes
US11573898B2 (en) 2020-08-17 2023-02-07 Hewlett Packard Enterprise Development Lp System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing
CN115934366A (zh) * 2023-03-15 2023-04-07 浪潮电子信息产业股份有限公司 服务器存储扩展方法、装置、设备、介质及整机柜系统
US12457164B2 (en) * 2023-09-08 2025-10-28 VMware LLC NUMA-aware output interface selection

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754394A (en) 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US5117350A (en) 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US5237673A (en) 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems
JP2809962B2 (ja) 1993-03-02 1998-10-15 株式会社東芝 資源管理方式
US5535116A (en) 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures
WO1995012165A1 (en) 1993-10-22 1995-05-04 Gestalt Technologies, Incorporated Distributed management in a partitioned memory system
US5682512A (en) 1995-06-30 1997-10-28 Intel Corporation Use of deferred bus access for address translation in a shared memory clustered computer 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
US5710907A (en) * 1995-12-22 1998-01-20 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
US5937431A (en) * 1996-07-12 1999-08-10 Samsung Electronics Co., Ltd. Multi- node, multi-level cache- only memory architecture with relaxed inclusion
US5893922A (en) * 1997-03-06 1999-04-13 International Business Machines Corporation Home node migration for distributed shared memory systems
US6085295A (en) * 1997-10-20 2000-07-04 International Business Machines Corporation Method of maintaining data coherency in a computer system having a plurality of interconnected nodes
US6012127A (en) * 1997-12-12 2000-01-04 Intel Corporation Multiprocessor computing apparatus with optional coherency directory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115428409A (zh) * 2020-04-24 2022-12-02 株式会社东阳特克尼卡 抓包装置以及方法
CN115428409B (zh) * 2020-04-24 2023-04-11 株式会社东阳特克尼卡 抓包装置以及方法

Also Published As

Publication number Publication date
CN1133933C (zh) 2004-01-07
TW449701B (en) 2001-08-11
US6275900B1 (en) 2001-08-14
KR20000076462A (ko) 2000-12-26
CN1263311A (zh) 2000-08-16
KR100335863B1 (ko) 2002-05-10

Similar Documents

Publication Publication Date Title
JP2000227909A (ja) 混成不均等メモリ・ア―キテクチャ/単純キャッシュ専用メモリ・ア―キテクチャ・システム及び方法
US6085295A (en) Method of maintaining data coherency in a computer system having a plurality of interconnected nodes
US5802578A (en) Multinode computer system with cache for combined tags
US7363462B2 (en) Performing virtual to global address translation in processing subsystem
US5394555A (en) Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
EP1316019B1 (en) Managing replacement of data in a cache on a node based on caches of other nodes
US20010013089A1 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US20030018739A1 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
US20050005074A1 (en) Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
AU2001289180A1 (en) Managing replacement of data in a cache on a node based on caches of other nodes
CN119669109B (zh) 众核缓存一致性系统、方法、电子设备、存储介质及产品
EP0817065B1 (en) Methods and apparatus for a coherence transformer for connecting computer system coherence domains
EP1611513B1 (en) Multi-node system in which global address generated by processing subsystem includes global to local translation information
CN111406251A (zh) 数据预取方法及装置
US7386680B2 (en) Apparatus and method of controlling data sharing on a shared memory computer system
TWI386810B (zh) 多處理器系統以目錄為主之資料傳輸協定
JP7277075B2 (ja) スヌープリクエストに対する応答の転送
CN110049104A (zh) 基于分层片上互连网络的混合缓存方法、系统及存储介质
WO2003042838A2 (en) Victim invalidation
US10579526B2 (en) Responding to snoop requests
KR101419379B1 (ko) 분산 메모리를 가지는 다중 프로세서 시스템을 위한 네트워크 부하 감소 방법 및 노드의 구조
WO2026077572A1 (en) Computer system and method for cache coherence
Goodman et al. Hierarchical extensions to SCI
Al-Rousan et al. Implementation of cache coherence protocol for COMA multiprocessor systems based on the scalable coherent interface
Kaxiras Technical Report i 1235 July 1994