JP2003067357A - 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法 - Google Patents

不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法

Info

Publication number
JP2003067357A
JP2003067357A JP2002170907A JP2002170907A JP2003067357A JP 2003067357 A JP2003067357 A JP 2003067357A JP 2002170907 A JP2002170907 A JP 2002170907A JP 2002170907 A JP2002170907 A JP 2002170907A JP 2003067357 A JP2003067357 A JP 2003067357A
Authority
JP
Japan
Prior art keywords
node
data
nodes
coherency
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002170907A
Other languages
English (en)
Other versions
JP3924206B2 (ja
Inventor
Ravi Kumar Arimilli
ラビクマール・アリミリ
John Steven Dodson
ジョン・スティーブン・ドッドソン
James Stephen Fields Jr
ジュニア ジェームズ・スティーブン・フィールズ
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 JP2003067357A publication Critical patent/JP2003067357A/ja
Application granted granted Critical
Publication of JP3924206B2 publication Critical patent/JP3924206B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

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)【要約】 (修正有) 【課題】 不必要なコヒーレンシー通信をなくした不均
一メモリ・アクセス(NUMA)データ処理システムを
提供する。 【解決手段】NUMAデータ処理システム10は、複数
のノード12を備え,各ノード12は、複数の処理装置
14と、ページテーブルを有する少なくとも1つのシス
テム・メモリ26とを備えている。このテーブルには、
1群の非物理アドレスを物理アドレスに変換するのに用
いる少なくとも1つのエントリを備えている。このエン
トリは、各ノード12ごとに上記1群の非物理アドレス
に属す制御情報を個別に指定し、少なくとも1つのデー
タ記憶制御フィールドを備えている。このフィールド
は、複数のノード12のうちの各ノード12に各々が関
連付けられた複数のライトスルー標識を備え、この標識
がセットされると、関連するノード12中の処理装置1
4は、変更したデータをキャッシュせず、ホーム・ノー
ド中のシステム・メモリに書き戻す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にデータ処理
に関し、特に不均一メモリ・アクセス(non-uniform me
mory access:NUMA)データ処理システムに関する。
本発明は、さらに特に、ノード特有の情報を格納したペ
ージ・テーブルを備えたNUMAデータ処理システムに
関する。
【0002】
【従来の技術】典型的なコンピュータ・システムのメモ
リ・サブシステムは、少なくとも1つの不揮発性の大容
量記憶装置(たとえば、磁気ディスクや光ディスクな
ど)と、揮発性のRAM(ランダム・アクセス・メモ
リ)とを備えている。RAMには、高速のキャッシュ・
メモリと、低速のシステム・メモリとの双方がある。オ
ペレーティング・システムとアプリケーション・ソフト
ウェアが使用するアドレス、すなわちデータと命令用に
加えメモリ・マップI/O用のアドレスを十分に用意す
るために、コンピュータ・システムのプロセッサ(群)
は、通常、RAMに物理的に存在する記憶場所の数より
もはるかに多いアドレスを備えた仮想アドレス空間を利
用している。したがって、メモリ・マップI/Oを実行
するには、あるいは、RAMにアクセスするには、コン
ピュータ・システムは、ソフトウェアとプロセッサのハ
ードウェアが使用している仮想アドレスを、特定のI/
O装置にに割り当てられた物理アドレス、あるいは、R
AM中の物理的な場所に変換する必要がある。
【0003】典型的なコンピュータ・システムでは、仮
想アドレス空間の一部を多数のメモリ・ページに区画し
ている。メモリ・ページは、各々、オペレーティング・
システムが生成する少なくとも1つの関連する、ページ
・テーブル・エントリ(PageTable Entry: PTE)と
呼ばれるアドレス記述子を備えている。仮想メモリ・ペ
ージに対応するPTEは、通常、当該(仮想)メモリ・
ページの仮想アドレスと、メインメモリ中の関連する
(物理)ページ・フレームの物理アドレスと、たとえば
当該メモリ・ページが参照あるいは変更されたか否かを
示す統計フィールドとを備えている。PTEを参照する
ことにより、プロセッサは、メモリ・ページ内の仮想ア
ドレスを実アドレスに変換することができる。PTE
は、RAM中のページ・テーブルと呼ばれるグループに
格納されている。そして、RAM中のPTEにアクセス
して各アドレス変換を実行すると、システムの性能が大
幅に低下するので、既存のコンピュータ・システムの各
プロセッサは、当該プロセッサが最も最近にアクセスし
たPTEをキャッシュして迅速なアクセスを実現するT
LB(Translation Lookaside Buffer: 変換索引バッフ
ァ)をも備えている。
【0004】PTEを用いて仮想から実へのアドレス変
換を行なうことは、大多数のコンピュータ・システムで
一般的であるけれども、アドレス変換を行なう方法と、
PTEをページ・テーブルにグループ化する仕方とは、
コンピュータ・システムごとに異なる。一般に、アドレ
ス変換方式は、階層型変換方式と直接変換方式とに分類
することができる。インテル・コーポレーションが製造
しているx86プロセッサとペンティアム(R)プロセッ
サが用いている典型的な階層型変換方式では、アドレス
変換を次のように実行する。まず、リニア(非物理)ア
ドレス(説明を簡易にするために32ビットであると仮
定する)を、10ビットのディレクトリ・フィールド、
10ビットのテーブル・フィールド、および、12ビッ
トのオフセット・フィールドに区画する。リニア・アド
レス中のディレクトリ・フィールドの値は、オフセット
として使用し、制御レジスタに格納されているルート・
アドレスに付加してページ・ディレクトリ中のエントリ
にアクセスするのに使う。アクセスしたページ・ディレ
クトリ・エントリは、ページ・テーブルの基底アドレス
を指示しているポインタを格納している。リニア・アド
レス中のテーブル・フィールドの値は、オフセット・ポ
インタを形成しており、ディレクトリ・エントリの値に
付加して、メモリ中のページ・フレームの基底アドレス
を指示しているページ・テーブル・エントリを選択する
のに使う。最後に、オフセット・フィールドの値は、ペ
ージ・フレーム内の特定の物理アドレスを指示してい
る。ページ・ディレクトリとページ・テーブルから情報
をロードするには、大きなレイテンシー(待ち時間)を
伴うメモリ・アクセスを必要とするので、上述した変換
過程と並行にリニア・アドレスの上位20ビットをも用
いて、TLB中の一致するページ・テーブル・エントリ
を探索する。TLB中に一致するものが見つかったら、
ページ・ディレクトリとページ・テーブルの代わりに、
一致するページ・テーブル・エントリを用いて、リニア
から実へのアドレス変換を実行する。
【0005】上述したような階層型アドレス変換を方式
を用いているコンピュータ・システムでは、各プロセス
は、それ自身のページ・テーブルを有している。すなわ
ち、特定のプロセスが参照するメモリ・ページに関連付
けられたすべてのPTEは、同じページ・テーブルにグ
ループ化されている。そして、読み出し専用データには
複数のプロセスが同時にアクセスしうるから、複数のプ
ロセスのページ・テーブルは、読み出し専用データの同
じページに関連付けられたPTEを並行して使うことが
できる。
【0006】階層型変換方式に対して、直接変換方式
は、仮想から実へのアドレス変換の実行に必要なPTE
を突き止めるのに、アクセスすべき複数レベルのディレ
クトリやテーブルを必要としない。その代わり、直接変
換方式では、ページ・テーブル中にある必要なPTEの
物理アドレスを決めるのに、仮想アドレスをハッシュ
(し、かつ、オペレーティング・システムが指定するビ
ットを連結)する。次いで、ページ・テーブルを探索し
て必要なPTEを突き止める。このページ・テーブル
は、通常、ユニプロセッサ・コンピュータ・システムと
マルチプロセッサ・コンピュータ・システムとの双方に
おいて、すべてのPTEを格納しているグローバル・ペ
ージ・テーブルである。無論、RAM中のページ・テー
ブルの探索が必要なのは、変換すべき仮想アドレスが特
定しているPTEがプロセッサのTLBに存在しない場
合だけである。
【0007】近年、既存のSMP(symmetric multipro
cessor: 対称型マルチプロセッサ)コンピュータ・シス
テムのスケーラビリティ(拡張容易性)その他の限界を
克服するマルチプロセッサ・コンピュータ・システムの
開発にますます重点が置かれるようになった。このよう
な弱点を扱う最新のアーキテクチャの1つにNUMA
(non-uniform memory access:不均一メモリ・アクセ
ス)アーキテクチャがある。NUMAアーキテクチャと
は、システム中の少なくとも2つのプロセッサのアクセ
ス時間が異なるシステム・メモリを備えたマルチプロセ
ッサ・アーキテクチャのことである。メモリ・アクセス
時間の不均一性の結果、そのようなデータを参照するプ
ロセスに関し、データの動的な場所がNUMAデータ処
理システムの性能を決定する要因である。それゆえ、最
小アクセス時間したがって最適な性能を実現するために
は、そのようなデータを参照しているプロセスを実行し
ているプロセッサのできるだけ「近く」にデータが存在
するのが望ましい。
【0008】少なくとも1つのプロセッサがデータの
「プロデューサー(生産者)」として機能し、少なくと
も1つの他のプロセッサがデータの「コンシューマー
(消費者)」として機能する大きなアプリケーションを
実行するには、大型のマルチプロセッサ・コンピュータ
・システム、特にNUMAシステムを用いることが多
い。プロデューサー・プロセッサは、大量のデータを処
理してメモリ・ページの集合に格納する(変更する)。
プロデューサーは、特定のデータを格納すると、その後
は通常、当該データに2度とアクセスしない。逆に、コ
ンシューマー・プロセッサは、大量のオペランド・デー
タをロードする(読み出す)けれども、通常、当該デー
タを変更(格納)することはない。この一般的なソフト
ウェア構成の観点から、本発明の認識によれば、性能を
向上させるには、プロデューサーを含むNUMAノード
に、変更したデータをメモリ階層の下位レベルに押し下
げさせればよい。なぜなら、プロデューサーは当該デー
タに2度とアクセスしないからである。同様に、本発明
の認識によれば、コンシューマーを含むNUMAノード
がデータをキャッシングしないようにするのが好都合で
ある。なぜなら、コンシューマーがデータを変更するこ
とはありえないからである。
【0009】
【発明が解決しようとする課題】本発明の目的は、不必
要なコヒーレンシー通信をなくすとともにデータ・アク
セスのレイテンシーを低減したNUMAデータ処理シス
テムを提供することである。
【0010】本発明の他の目的は、ノード特有の制御ビ
ットを有するページ・テーブルを備えたNUMAデータ
処理システムを提供することにより、上記目的を達成す
ることである。
【0011】
【課題を解決するための手段】本発明に係る不均一メモ
リ・アクセス(NUMA)データ処理システムは、ノー
ド相互接続体に接続された複数のノードを備えている。
この複数のノードは、複数の処理装置と、自身の中に存
在するテーブル(たとえばページ・テーブル)を有する
少なくとも1つのシステム・メモリとを備えている。こ
のテーブルは、1群の非物理アドレスを物理アドレスに
変換するのに用いる少なくとも1つのエントリを備えて
いる。このエントリは、複数のノードの各ノードごとに
上記1群の非物理アドレスに属す制御情報を個別に指定
している。この制御情報は、少なくとも1つのデータ記
憶制御フィールドを備えている。このデータ記憶制御フ
ィールドは、複数のノードのうちの各ノードに各々が関
連付けられた複数のライトスルー標識を備えている。ラ
イトスルー標識がセットされていると、関連するノード
中の処理装置は、変更したデータを、キャッシュするこ
となく、ホーム・ノード中のシステム・メモリに書き戻
す。上記制御情報は、さらに、複数のノードのうちの各
ノードに各々が関連付けられた複数のキャッシュ不能標
識から成るデータ記憶制御フィールドを備えることがで
きる。キャッシュ不能標識がセットされると、関連する
ノード中の処理装置は、テーブル・エントリを参照して
変換される群中の非物理アドレスに関連付けられたデー
タをキャッシュしないように命じられる。上記制御情報
は、コヒーレンシー制御情報をも備えることができる。
コヒーレンシー制御情報は、各ノードに、テーブル・エ
ントリに関連付けられたデータ用のノード間コヒーレン
シーがソフトウェア支援によって維持されるか否かを個
別に示すものである。
【0012】
【発明の実施の形態】〔システムの概観〕
【0013】次に、図面を参照する。図1は、本発明に
よるNUMAコンピュータ・システム10の典型的な実
施形態を示す図である。図示した実施形態は、たとえ
ば、ワークステーション、サーバ、またはメインフレー
ム・コンピュータとして実現しうる。
【0014】図1に示すように、NUMAコンピュータ
・システム10は、ノード相互接続体15で接続された
少なくとも2つのノード12を備えている。ノード相互
接続体15は、図示するように、スイッチとして実現す
ることができる。本発明ではそうである必要はないけれ
ども、図示した実施形態では、各ノード12は本質的に
同一である。各ノード12は、ローカル相互接続体18
で接続された少なくとも1つの処理装置14と、ローカ
ル相互接続体18とノード相互接続体15との間に接続
されたノード・コントローラ16とを備えている。各ノ
ード・コントローラ16は、他のノード12用のローカ
ル・エージェント(手元にある代行者)として機能す
る。すなわち、ノード・コントローラ16は、ローカル
相互接続体18上で受信した所定のオペレーションを他
のノード12へノード相互接続体15を介して送信する
とともに、ノード相互接続体15を介して受信した所定
のオペレーションをローカル相互接続体18上に送信す
る。
【0015】下で詳述するように、処理装置14は、C
PU20を備えている。CPU20は、命令フロー論理
回路とソフトウェア命令を実行するのに用いる実行装置
とを備えている。各処理装置14は、さらに、キャッシ
ュ階層体22を備えている。キャッシュ階層体22は、
全NUMAコンピュータ・システム10中のデータ記憶
装置から関連するCPU20にデータをステージするの
に用いる少なくとも1レベルのオンチップ・キャッシュ
(すなわちCPUチップ上に形成されたキャッシュ)を
含んでいる。さらに、処理装置14は、インタフェース
装置25と応答論理回路23とを備えている。インタフ
ェース装置25は、処理装置14とローカル相互接続体
18との間のアドレス、データ、およびコヒーレンシー
(一貫性)操作の通信を処理する。応答論理回路23
は、ローカル相互接続体18上に発行されるオペレーシ
ョンに対する組み合わせ応答を、当該オペレーションに
対する様々なスヌープ応答から判別する。最後に、処理
装置14は、各々、メモリ・コントローラ24を備えて
いる。メモリ・コントローラ24は、処理装置14群の
間に分散配置されている物理システム・メモリ26のう
ちの関連する1つに対するアクセスを制御する。本発明
の別の実施形態として、システム・メモリは、各ノード
において、ローカル相互接続体18に接続された関連す
る1つのメモリ・コントローラが制御する単一のシステ
ム・メモリとして実現してもよい。
【0016】現在の仕様では、「システム・メモリ」と
は、(エラー状態が存在しない場合)物理的データ記憶
装置中の個別の記憶場所に永続的に関連付けられた一意
のアドレスを用いてアドレッシングする物理的データ記
憶装置のことである。あるノード12が、全NUMAコ
ンピュータ・システム10中の1つのデータを一意に特
定するのに用いるアドレスに関連付けられた、そのシス
テム・メモリ26中の記憶場所に、あるデータを格納し
ている場合、当該ノード12は当該データのホーム・ノ
ードであると定義される。逆に、他のノード12群は、
当該データに関しリモート・ノードであると定義され
る。
【0017】図1に示すように、ノード12間のデータ
共用を支援するために、メモリ・コントローラ14は、
ローカル・メモリ・ディレクトリ(LMD)32と、関
連するリモート・メモリ・ディレクトリ(RMD)34
を備えたリモート・メモリ・キャッシュ(RMC)30
とを利用する。ここで使用しているように、ローカル・
メモリ・ディレクトリ(LMD)とは、関連する(すな
わちローカルの)システム・メモリに存在するデータに
関し、当該データが少なくとも1つのリモート・ノード
にキャッシュされているか否かに関する表示を格納して
いるディレクトリのことである。逆に、リモート・メモ
リ・ディレクトリ(RMD)とは、他の(すなわちリモ
ートの)ノード(群)のシステム・メモリに由来するど
のデータが、関連するリモート・メモリ・キャッシュ
(RMC)にキャッシュされているかを表示しているデ
ィレクトリのことである。
【0018】無論、NUMAコンピュータ・システム1
0は、追加の装置をさらに備えてもよい。それらは、本
発明を理解するのに必要でないので、本発明を曖昧にし
ないために図1には示されていない。たとえば、任意の
ノード12は、I/Oアダプタ、ネットワーク・アダプ
タ、オペレーティング・システムやアプリケーション・
ソフトウェアを格納する不揮発性記憶装置、および、ネ
ットワークや付属装置への接続用のシリアル・ポートと
パラレル・ポートをサポートしてもよい。
【0019】〔メモリの構成〕
【0020】NUMAコンピュータ・システム10の性
能に影響するのは、とりわけ、データ・アクセス・レイ
テンシー(待ち時間)である。ノード内のデータ要求に
対するアクセス・レイテンシーは、通常、ノード間のデ
ータ要求に対するアクセス・レイテンシーよりもずっと
小さいから、システム性能が向上するのは、一般に、処
理装置14を備えた各ノード12が大データ記憶容量を
備えてノード間データ要求を最小にした場合である。た
とえば、典型的な実施形態では、NUMAコンピュータ
・システム10は、4つのノード12を備えている。各
ノード12は、4つの処理装置14と4つのシステム・
メモリ26を備えている。各システム・メモリ26の容
量は、1ギガバイト(GB)以上である。したがって、
システム・メモリの合計記憶容量は、数ギガバイトにな
る。システム・メモリ26は、容量が大きいので、一般
に、コストを考慮して、バイト当りのコストの低いメモ
リ技術(たとえばDRAM〔動的ランダム・アクセス・
メモリ〕)で構築する必要がある。
【0021】本発明によると、システム・メモリ26の
記憶容量は、(たとえばNUMAコンピュータ・システ
ム10のオペレーティング・システムによって)少なく
とも1つのアドレス空間に区画されている。図1に示す
実施形態では、各システム・メモリ26は、システム・
メモリ・アドレス空間28を備えている。システム・メ
モリ・アドレス空間28は、NUMAコンピュータ・シ
ステム10のオペレーティング・システムが、様々なオ
ペレーティング・システム・プロセスとアプリケーショ
ン・プロセスに命令とデータの記憶用に割り当てたもの
である。さらに、各ノード12の、処理装置14を有す
る少なくとも1つのシステム・メモリ26は、少なくと
も1つの他のノード12のシステム・メモリ中に存在す
るデータに対応するデータを格納するRMC30を備え
ている。したがって、各ノード12のリモート・メモリ
・キャッシュは、1つの、可能であれば複数のシステム
・メモリ26中に組み込まれている。RMC30が複数
のシステム・メモリ26に分散している実施形態では、
キャッシュ・ライン(これらは同じノード12の少なく
とも任意のCPU20にとってアクセス可能である)
は、特定のRMCにマップされているのが望ましい。こ
のマッピングは、キャッシュ・ラインに関連付けられた
物理アドレスまたは論理アドレスをハッシュすることに
よって行なう。
【0022】リモート・メモリ・キャッシュは低コスト
のDRAMで実現しているので、RMC30のバイト当
りのコストは、SRAMで実現した場合と比べて大幅に
低い。すなわち、追加のコストをほとんどかけなくと
も、そのサイズを大幅に増大させることができる。さら
に、リモート・メモリ・キャッシュを複数のシステム・
メモリに分散させることにより、帯域幅が大幅に改善す
る。それは、アクセス制御を単一のノード・コントロー
ラではなく複数のメモリ・コントローラ24全体に分散
させているからである。
【0023】留意点を挙げると、本発明の一部の実施形
態では、オペレーティング・システムは、少なくとも1
つのノードにおいて、リモート・メモリ・キャッシュに
物理システム・メモリの一部または全部を割り当て、シ
ステム・メモリのアドレス空間に物理システム・メモリ
を全く割り当てないようにしている。このような実施形
態では、システム・メモリのアドレス空間は、たとえば
ラック・システム中のディスク・メモリ引き出しとして
実現された少なくとも1つのノードに局限されている。
一方、処理装置を有する他のノードの物理システム・メ
モリは、リモート・メモリ・キャッシュとして割り当て
られている。
【0024】上述したように、RMC30の少なくとも
一部を保持するように割り当てられたシステム・メモリ
26に関連付けられた各メモリ・コントローラ24は、
RMD34を備えており、RMC30の自分に関連付け
られた部分の内容をそれに記録する。既存のキャッシュ
・ディレクトリの場合と同様に、RMD34は、RMC
30中のデータに関係するアドレス情報だけでなく、コ
ヒーレンシー情報、置き換え情報、および、任意事項と
しての追加の状態情報(たとえば包含性)をも格納する
のが望ましい。
【0025】メモリ・コントローラ24によるRMD3
4への迅速なアクセスを支援するために、RMD34
は、図1に示すように、高速のSRAMで実現すること
ができる。この実現方法によるとアクセス・レイテンシ
ーが大幅に低減するのは、要求に応答してなされるディ
レクトリの探索が迅速になるからである。しかし、RM
C30の場合と同様に、RMD34にSRAMを使う
と、実際のシステムでは、高価になるとともに、RMD
34(したがってRMC30)のサイズが制限されてし
まう。これらの問題点を扱うのに、2つの方法をとるこ
とができる。
【0026】第1に、RMD34をSRAM(または他
の高コスト記憶技術)で実現する場合、RMD34は、
大きなセクタを実現して(すなわち、大きなデータ・ブ
ロックをタグと状態情報の組に関連付けて)、SRAM
の記憶容量の使用を最適化することができる。第2の方
法は、RMD34をRMC30と一緒にシステム・メモ
リ26に組み込むものである。この方法で、RMD34
を実現するコストを大幅に低減させることができる。あ
るいは、追加のコストなしに、RMD34とRMC30
のサイズを大幅に増大させることができる。RMD34
をシステム・メモリ26のDRAMに組み込むと、ディ
レクトリ・アクセス時間が増大する可能性があるけれど
も、メモリ・コントローラ24に最近アクセスされた
(したがってアクセスされる可能性の高い)ディレクト
リ・エントリを含む小さなディレクトリ・キャッシュを
備えることにより、余分なディレクトリ・アクセス・レ
イテンシーを低減させることができる。
【0027】NUMAコンピュータ・システム10のオ
ペレーティング・システムがRMD34および/または
RMC30に割り当てるシステム・メモリの量は、性能
を評価する上で重要である。(「Aおよび/またはB」
は「AおよびB、A、またはB」を表わす。)というの
は、大きなRMC30とRMD34を割り当てると、シ
ステム・メモリのアドレス空間28が必然的に減少する
からである。好適な実施形態では、RMC30とRMD
34に割り当てるシステム・メモリ26対システム・メ
モリのアドレス空間の割合は、実行すべきアプリケーシ
ョンの必要に応じて動的に変化しうる。たとえば、アプ
リケーションが自身が実行することになっているノード
12内のメモリしかアクセスしないことをオペレーティ
ング・システムが検出した場合には、オペレーティング
・システムは、システム・メモリのアドレス空間28と
比べてかなり小さな空間をRMC30(およびそれに関
連付けられたRMD34)に割り当てるだけでよい。逆
に、アプリケーションがリモート・メモリに対する頻繁
なアクセスを必要とするようになることをオペレーティ
ング・システムが検出した場合には、オペレーティング
・システムは、システム・メモリの大きな部分をRMC
30(およびそれに関連付けられたRMD34)に割り
当てる必要がある。
【0028】RMC30(およびRMD34)は、少な
くとも2つの交換可能な方法に従って構成することがで
きる。第1に、RMC30は、包含的(または疑似包含
的)キャッシュとして実現することができる。包含的キ
ャッシュとは、ローカル・キャッシュ階層体22中に保
持されている、他のノードに由来するデータのスーパー
セット(拡大集合)を全体として格納するキャッシュの
ことである。この実施形態では、キャッシュ・ラインを
あるノード12のRMC30中にロードするのは、要求
されたキャッシュ・ラインを他のノード12から受け取
ったときである。あるいは、RMC30は、「犠牲キャ
ッシュ」として実現することもできる。犠牲キャッシュ
とは、ローカル・キャッシュ階層体22から割り当てを
解除された共用あるいは変更コヒーレンシー状態にある
リモート・データのキャッシュ・ラインしか保持しない
キャッシュのことである。
【0029】〔メモリ・コヒーレンシー〕
【0030】システム・メモリ26に格納されているデ
ータは、一般に、NUMAコンピュータ・システム10
内の任意のCPU20によって要求され、アクセスさ
れ、変更さるから、NUMAコンピュータ・システム1
0は、互換性のあるキャッシュ・コヒーレンシー・プロ
トコルのうちの少なくとも1つを実装(implement)し
て、キャッシュ階層体22とノード12のRMC30と
の間のコヒーレンシー(すなわち、システム・メモリの
アドレス空間28の全内容の一貫した見え方)を維持し
ている。したがって、NUMAコンピュータ・システム
10は、CC−NUMAコンピュータ・システムとして
分類するのが適切である(CC=キャッシュ・コヒーレ
ンス)。キャッシュ・コヒーレンス・プロトコルは、実
装(implementation) に依存するとともに、たとえば、
周知のMESI(Modified, Exclusive, Shared, Inval
id)プロトコルまたはそれを変形したプロトコルから成
る。当業者が理解しうるように、キャッシュ階層体22
が使用するコヒーレンシー・プロトコルは、ローカル相
互接続体18とノード相互接続体15をまたいだ様々な
実装依存メッセージの送信を必要とする。これらの実装
依存メッセージには、キャッシュ階層体22にCPU2
0が実行する命令を知らせるためのもの、必要なデータ
と命令を取得するためのもの、変更したデータをシステ
ム・メモリ26にライトバックする(書き戻す)ための
もの、および、コヒーレンシーを維持するのに必要な他
の機能を実行するためのもの、などがある。
【0031】ノード間のコヒーレンシーを維持するため
に、メモリ・コントローラ24は、関連するシステム・
メモリのアドレス空間28からリモート・ノード12に
取り出したデータ(すなわちキャッシュ・ライン)のシ
ステム・メモリ・アドレス表示をLMD32に格納して
いる。小規模なディレクトリを維持するのが重要な低価
格の実装では、LMD32は、各データ・グラニュール
に、当該データ・グラニュールが少なくとも1つのリモ
ート・ノード12に「取り出されている(checked ou
t)」か否かに関して不明確な表示しか関連付けていな
い。これに対して、高価格の実装では、LMD32は、
各データ・グラニュールに関連付けて、各リモート・ノ
ード12におけるキャッシュ・ラインのコヒーレンシー
状態の表示を格納しているのが望ましい。本発明の典型
的な実施形態によるLMD32のエントリに格納される
ノード当りのコヒーレンシー状態には、表1にまとめた
ようなものがある。
【0032】
【表1】
【0033】表1に示すように、高価格の実装において
さえ、リモート処理ノードが保持しているキャッシュ・
ラインのコヒーレンシー状態は、ある程度の不明確さを
伴わないと知ることができない。不明確さの程度は、当
該コヒーレンシー・プロトコルの実装によって、リモー
ト側が保持しているキャッシュ・ラインが、ホーム・ノ
ードのLMD32に知らせることなくSからIへ、Eか
らIへ、または、EからMへ遷移できるか否かによる。
【0034】〔処理装置のアーキテクチャ〕
【0035】次に、図2を参照する。図2は、NUMA
コンピュータ・システム10の処理装置14の実施形態
のより詳細なブロック図である。図2に示す実施形態で
は、処理装置14は、単一の処理装置から成り、様々な
実行装置、レジスタ、バッファ、メモリ、および、その
他の機能装置を備えている。これらは、すべて、集積回
路構成要素によって形成されている。
【0036】図2に(そして図1にも)示すように、処
理装置20は、CPU20、キャッシュ階層体22、メ
モリ・コントローラ24、および、インタフェース装置
(IU)25を備えている。IU25は、処理装置20
をローカル相互接続体18に接続している。IU25
は、さらに、キャッシュ階層体22に接続されている。
キャッシュ階層体22は、図示した実施形態では、統合
されたレベル2(L2)キャッシュ42と別々のレベル
1(L1)データ・キャッシュ44およびL1命令キャ
ッシュ46とを備えている。L1データ・キャッシュ4
4とL1命令キャッシュ46にそれぞれ格納されている
データと命令には、アドレス・タグで特定してアクセス
する。各アドレス・タグは、システム・メモリ26中の
データまたは命令の物理アドレスの所定数の上位ビット
から成る。後述するように、CPU20がデータと命令
を参照するのに用いるのは、実効アドレスである。した
がって、CPU20がキャッシュ42、44、46中の
データと命令にアクセスできるようにするために、デー
タ・メモリ管理装置(DMMU)48と命令メモリ管理
装置(IMMU)50が、データと命令の実効アドレス
をそれぞれ仮想アドレス、次いで物理アドレスに変換す
る。この物理アドレスがキャッシュ42、44、46に
供給される。
【0037】L1命令キャッシュ46とIMMU50
は、さらに、命令順序付け装置52に接続されている。
命令順序付け装置52は、IMMU50が変換したアド
レスを用いてL1命令キャッシュ46から実行用の命令
をフェッチする。命令順序付け装置52は、分岐命令は
内部で処理し、順序(非分岐)命令は当該順序命令用の
実行資源が利用可能になるまで一時的にバッファリング
する。図示した実施形態では、プロセッサ20の順序実
行資源には、整数演算装置(IU)62、ロード・スト
ア装置(LSU)68、および、浮動小数点演算装置
(FPU)74がある。実行装置62、68、74の各
々は、通常、汎用レジスタ(GPR)66と浮動小数点
レジスタ(FPR)72に格納されているオペランドを
参照して、各プロセッサ時間内に特定の型の順序命令群
のうちの少なくとも1つの順序命令を実行する。
【0038】実行装置62、68、74のうちのあるも
のがある命令の実行を終了すると、当該実行装置は、完
了装置76に通知する。すると、完了装置76は、当該
命令の完了を指示する。必要な場合には、データのコミ
ットメントがCPU20の状態に反映される(コミット
メントはコミットとロールバックの総称である)。
【0039】〔仮想アドレス空間〕
【0040】本発明を説明するために、一実施形態につ
いて述べる。この実施形態では、NUMAデータ処理シ
ステム10の各CPU20の命令順序付け装置52とL
SU68は、命令とデータを参照するのに、32ビット
の実効アドレスを用いる。すなわち、CPU20は、4
ギガ(G)バイト(232)の実効アドレス空間を有す
る。この実効アドレス空間は、52ビットの仮想アドレ
スによって参照されるずっと大きな仮想アドレス空間の
サブセット(部分集合)である。この仮想アドレス空間
は、NUMAデータ処理システム10中の全CPU20
が共用するするが、多数(たとえば4キロ〔K〕バイ
ト)のメモリ・ページに区画されている。各メモリ・ペ
ージは、ページ・テーブル・エントリ(PTE)アドレ
ス記述子を備えている。PTEは、(仮想)メモリ・ペ
ージの基底仮想アドレスと、1つのシステム・メモリ2
6中の(物理)メモリ・ページの対応する(基底)物理
アドレスとを関連付けている。
【0041】システム・メモリ26を備えた複数のノー
ド12の各々は、自身のシステム・メモリ26中に存在
する少なくとも1つのページ・テーブルを有する。各ペ
ージ・テーブルに含まれているPTEの構成は、NUM
Aデータ処理システム10のオペレーティング・システ
ムが2つのハッシュ関数のうちの一方を用いて行なう。
本発明によれば、特定の処理ノード12中の処理装置1
4は、ローカルの(すなわち自身の)システム・メモリ
26中のページ・テーブルに存在するPTEだけにアク
セスしてそれをキャッシュし、他のノード12中のペー
ジ・テーブルにはアクセスしないのが望ましい。
【0042】〔ページ・テーブル〕
【0043】次に、図3を参照する。図3は、図1のN
UMAコンピュータ・システム10のシステム・メモリ
26中に存在するページ・テーブル19の典型的な実施
形態を示す詳細なブロック図である。ページ・テーブル
19は、可変サイズのデータ構造であり、多数のページ
・テーブル・エントリ・グループ(PTEG)80から
成る。各PTEG80は、多数のPTE82を備えてい
る。各PTE82は、ページ・テーブル19中の主PT
EG84または副PTEG86中の任意の場所に割り当
てることができる。主PTEG84にするか副PTEG
86にするかは、不揮発性記憶装置からページインする
ときに、オペレーティング・システム21がメモリ中に
関連するメモリ・ページをセットアップするのに主ハッ
シュ関数を使うか副ハッシュ関数を使うかによる。主P
TEG84と副PTEG86のアドレスは、図2のテー
ブル・ウォーク・コントローラ78によるページ・テー
ブル探索操作用のエントリ・ポイントとして機能する。
【0044】〔ページ・テーブル・エントリ(PT
E)〕
【0045】次に、図4を参照する。図4は、ページ・
テーブル19中の各PTE82の構造を示す図である。
図示するように、各PTE82は、有効ビット90、仮
想セグメントID(VSID)92、ハッシュ関数識別
子(H)94、および、短縮ページ・インデックス(Ab
breviated Page Index: API)96を備えている。有
効ビット90は、PTEエントリ82が有効であるか否
かを示す。VSID92は、仮想ページ番号の上位ビッ
トを特定している。ハッシュ関数識別子(H)94は、
PTE82を生成するのに使用したのが主ハッシュ関数
と副ハッシュ関数のうちのどちらであるかを示す。AP
I96は、仮想ページ番号の下位ビットを特定してい
る。ハッシュ関数識別子(H)94と、VSID92お
よびAPI96によって特定される仮想ページ番号と
は、ページ・テーブル19の探索中、または、DMMU
48とIMMU50が維持しているTLB(変換索引バ
ッファ)49と51の探索中に特定のPTE82を突き
止めるのに使用する。
【0046】なお図4を参照する。各PTE82は、さ
らに、物理ページ番号(PPN)98、被参照(R)ビ
ット100、被変化(C)ビット102、メモリ・アク
セス属性(WIMG)ビット104、および、ページ保
護(PP)ビット106を備えている。物理ページ番号
(PPN)98は、対応する物理メモリ・ページ・フレ
ームを特定している。被参照(R)ビット100と被変
化(C)ビット102は、これらのビットをリセットし
てからメモリ・ページがアクセスあるいは変更されたか
否かを示している。メモリ・アクセス属性(WIMG)
ビット104は、メモリ・ページに対するメモリ更新モ
ードを特定している。ページ保護(PP)ビット106
は、メモリ・ページに対するアクセス保護制約条件を定
義している。最後に、各PTE82は、本発明が導入し
たノードに特有の次に示す新たな3つのフィールドを備
えている。すなわち、ノード・ライトスルー(Node Wri
teThrough: NWT)フィールド108、ノード・ノー
・インテント・ツー・キャッシュ(Node No-Intent-to-
Cache:NNC)フィールド110、および、ノード・ロ
ーカル・リード・ウィズ・インテント・ツー・モディフ
ァイ(Node Local Read-with-Intent-to-Modify:NL
M)フィールド112である。
【0047】好適な実施形態では、NWTフィールド1
08は、NUMAコンピュータ・システム10中のノー
ド12ごとに1ビット備えている。各ビットは、当該ビ
ットに関連付けられたノード12の処理装置14が、P
TE82に関連付けられたメモリ・ページに属すあるデ
ータに対してライトスルー・モードで動作するか否かを
制御する。ただし、これを行なうのは、当該データが別
のノード12中のシステム・メモリ26のアドレス空間
28に存在する場合である。たとえば、ノード1のCP
U20がノード1に対してライトスルーと印を付けられ
た、メモリ・ページ中の場所にストアを発行したとす
る。CPU20は、PTE82中にセットされたノード
1用のビットを見つけると、自身の関連するキャッシュ
とメモリの階層体にストア・データ(変更したデータ)
をNWT標識と一緒に送る。このNWT標識は、変更し
たデータのホーム・ノードがノード1以外のノード12
である場合には、当該変更したデータを保持しないよう
にキャッシュ階層体22に命ずるものである。このNW
T標識とストア・データを受け取ると、CPU20に関
連付けられたキャッシュ階層体22は、オペレーティン
グ・システムがセットしたメモリ構成レジスタを参照し
て、ローカルのノード(すなわちCPU20が属すノー
ド)が当該ストア・データ用のホーム・ノードであるか
否かを判断する。Yesならば、キャッシュ階層体22
は、既存のアクセス制御(WIMG)ビット104(こ
れは、通常、キャッシュ階層体22が当該ストア・デー
タをキャッシュすべきことを意味している)に従って当
該ストア・データを処理する。このように、キャッシュ
階層体22は、引き続いて、介入を変更することによ
り、他の要求者にストア・データを供給することができ
る。
【0048】しかしながら、ストア・データに対するホ
ーム・ノードがローカルのノードでない場合、キャッシ
ュ階層体22は、変更したデータをホーム・ノード12
中のシステム・メモリ26に書き戻すライト・トランザ
クションをローカル相互接続体18に発行する。この場
合、当該変更したデータをホーム・ノード12に直ちに
書き戻すので、ホーム・ノード12のメモリ・コントロ
ーラ24は、別のコヒーレンシー通信を通じてリモート
のノード12から当該変更したデータを書き戻すように
要求する必要がない。この結果、コンシューマーによる
引き続く読み出し要求のアクセス・レイテンシーが改善
される。したがって、NUMAコンピュータ・システム
10のオペレーティング・システムは、通常、プロデュ
ーサーを含むノード12ごとにNWTビットをセットす
るが、コンシューマーを含むノード12用にはNWTビ
ットをセットしない。
【0049】余談になるが、留意点を挙げると、NWT
フィールド108はアクセス制御(WIMG)ビット1
04に属すライトスルー(W)ビットに取って代わるも
のではないから、上位互換性は維持されている。その代
わり、Wビットがセットされていると、NWTフィール
ド108は無視される。
【0050】NWTフィールド108と同様に、NNC
フィールド110は、NUMAコンピュータ・システム
10中のノード12ごとに1ビット備えているのが望ま
しい。NNCフィールド110中の各ビットは、自身が
関連するノード12用のリード・ウィズ・ノー・インテ
ント・ツー・キャッシュ(Read-With-No-Intent-To-Cac
he: RWNITC)フラグとして機能する。たとえば、
ノード2中のCPU20がノード2用にセットされたN
NCビットを有する、メモリ・ページ中の場所にロード
を発行したとする。すると、CPU20は、自身に関連
するキャッシュとメモリの階層体にリード要求をNNC
標識と一緒に送る。ただし、このNNC標識は、CPU
20のキャッシュ階層体に、要求したデータをキャッシ
ュしないように命ずるものである。上記リード要求がキ
ャッシュ階層体22でミスしたと仮定すると、リード要
求とNNC標識に対するキャッシュ階層体22の応答
は、既存のリード要求ではなく、自身のローカル相互接
続体28にRWNITC要求(たとえば、NNCフラグ
をセットさせるリード要求)を発行することである。容
易に理解しうるように、RWNITC要求は、ローカル
のノード・コントローラ16が別のノード12に送信し
てサービスさせるものである。
【0051】重要なのは、RWNITC要求中のNNC
フラグが、キャッシュ階層体22中のコヒーレンシー管
理論理回路と要求を受け取ったメモリ・コントローラ2
4とに、CPUのロード要求を満足させた後は、要求さ
れたデータは要求元のキャッシュ階層体22に保持され
ないということを知らせている点である。したがって、
他のキャッシュ階層体22中に存在する要求されたデー
タのコピーのコヒーレンシー状態は、RWNITC要求
に応答して更新する必要がない。そして、要求されたデ
ータのホーム・ノード12がRWNITC要求を処理し
た場合には、ホーム・ノード12のLMD32は、更新
する必要がない。さらに、処理装置14が引き続いて同
じデータに対して(たとえばリード・ウィズ・インテン
ト・ツー・モディファイ〔Read-with-Intent-to-Modif
y〕要求を発行することにより)排他的なアクセスを要
求すると、要求されたデータが存在するホーム・ノード
12のシステム・メモリ26のメモリ・コントローラ2
4は、ノード2における要求されたデータのコピーを無
効にする必要がない。したがって、ノード間のコヒーレ
ンシー用の通信量が低減するので、性能が向上する。上
述した点から認識しうるように、NUMAコンピュータ
・システム10のオペレーティング・システムは、コン
シューマーを有するノード12ごとにNNCビットをセ
ットし、プロデューサーを有するノードに対してはNN
Cビットをセットしないのが望ましい。
【0052】なお図4を参照する。各PTE82中のN
LMフィールド112は、NUMAコンピュータ・シス
テム10中の各ノード12に関連付けられた1ビットを
有するのが望ましい。各NLMビットは、関連するノー
ド12中のハードウェアが、対応するメモリ・ページ中
のアドレスに対してNUMAコンピュータ・システム1
0全体のグローバル・コヒーレンシーを維持する必要が
あるか、あるいは、単一のノード内のローカル・コヒー
レンシーを維持するだけでよいか(すなわち、ソフトウ
ェアがコヒーレンシー・ハードウェアを支援するため
に、グローバル・コヒーレンシー管理を行なうことにな
るか否か)、というグローバル/ローカルの標識として
機能する。
【0053】たとえば、ノード1中のCPU20がNL
Mフィールド112中にノード1に対して「ローカル」
と印を付けられた、メモリ・ページ中の場所にストアを
発行する場合、CPU20は、自身に関連するキャッシ
ュ階層体22にストア・データと一緒にNLMローカル
標識を送る。NLMローカル標識は、上記キャッシュ階
層体22に当該NLMローカル標識を、上記キャッシュ
階層体22が目標とするキャッシュ・ラインにアクセス
するために発行したRWITM要求に付加するように命
ずる。NLMローカル標識を含んだRWITM要求を受
け取ると、ホーム・ノード12中の適当なメモリ・コン
トローラ24が、要求されたキャッシュ・ラインの所在
を突き止めるけれども、コヒーレンシーの観点からRW
ITM要求を無視する。なぜなら、「ローカル」という
設定は、目標とするメモリ・ページのグローバル・コヒ
ーレンシーを処理するのはソフトウェアの責任である、
ということを示しているからである。したがって、上記
メモリ・コントローラ24は、LMD32を更新しな
い。しかし、ハードウェアは、要求元ノード12内のコ
ヒーレンシーの管理を続ける。
【0054】通常、アプリケーションの実行が関連する
ノード12に限定される動作シナリオでは、NLM11
2中のあるビットが「ローカル」状態にセットされる。
データとコヒーレンシーの転送に起因するNUMAコン
ピュータ・システム10のノード間通信のレイテンシー
はきわめて大きく(たとえば2000CPUサイクル以
上に)なりうるから、性能上の利点が得られるのは、上
記動作シナリオにおいてソフトウェアがコヒーレンシー
管理の支援をしうるようにした場合である。なぜなら、
ソフトウェアは、コヒーレンシーを失うことなくレイテ
ンシーの大きなグローバル・コヒーレンシー動作を除去
できる、アドレスに関する追加の情報にアクセスできる
からである。同時に1つのNLMビットだけを「ローカ
ル」状態にセットするのが望ましいけれども、本発明の
一部の実施形態では、複数のNLMビットを「ローカ
ル」状態にセットすることができる。しかし、そのよう
な実施形態では、ソフトウェアが大幅に余分に複雑にな
るので、性能上の利点が減少する。
【0055】〔アドレス変換〕
【0056】次に、図5を参照する。図5は、各CPU
20が用いるアドレス変換プロセスの高レベルの流れ図
を示す図である。アドレス変換プロセスでは、まず、C
PU20が用いる実効アドレス(EA)を仮想アドレス
に変換したのち、キャッシュ階層体22、システム・メ
モリ26、およびメモリ・マップI/O装置にアクセス
するのに用いる物理アドレスに変換する。図2に示した
ように、LSU68は、各データ・アクセス要求の32
ビットのEAをDMMU48に送信する。同様に、命令
順序付け装置52は、各命令フェッチ要求の32ビット
のEAをIMMU50に送信する。DMMU48とIM
MU50は、各々、図5に示すプロセスを用いて、この
ようなEAを変換する。当業者が認識しうるように、同
様の変換プロセスを用いて、64ビットのアドレスや1
28ビットのアドレスも変換することができる。
【0057】図示するように、変換すべき32ビットの
EA120を用いて、DMMU48(データ用)または
IMMU50(命令用)中の16個のセグメント・レジ
スタ112のうちの1つを選択する。(64ビットのE
A実装では、セグメント化機構には図示したのとは異な
るものを用い、アドレス変換の残りの部分は様々なフィ
ールドのサイズのみが異なるようにするのが望まし
い。)セグメント・レジスタ122の所定の1つに格納
されているVSIDは、EA120の16ビットのペー
ジ・インデックスおよび12ビットのバイト・オフセッ
トとともに52ビットの仮想アドレス124を形成して
いる。このVSIDをDTLB49またはITLB51
のうちの適切なものに渡す。DTLB49とITLB5
1は、一実施形態では、各々、2ウエイ・セット・アソ
シアティブのPTEキャッシュとして実現する。次い
で、EA120のビット15〜19を用いて、TLBの
特定のラインに格納されている2つのPTEを選択す
る。次いで、EA120のビット10〜14と、所定の
PTEとVSIDフィールドの各々に関連付けられたア
ドレス・タグとを比較する。次いで、APIフィールド
(EAのビット4〜9)と所定のPTEの対応するフィ
ールドとを比較する。さらに、所定のPTEの各々の有
効(V)ビットを検査する。上記比較の結果、一致が存
在すれば、一致したPTE82のPPビットが例外に反
していないか検査する。これらのビットが例外を引き起
こしていなければ、一致したPTE82に含まれる20
ビットのPPN(物理ページ番号)をL1データ・キャ
ッシュ44とL1命令キャッシュ46のうちの適切なも
のに(適当な場合には、NWT、NNC、またはNLM
と一緒に)渡して、要求されたデータまたは命令が存在
するか否かを判断する。図5に示すように、20ビット
のPPNとEA120が指定している12ビットのバイ
ト・オフセットとを連結すると、要求されたデータまた
は命令の、システム・メモリ26における32ビットの
物理アドレス126が得られる。
【0058】仮想アドレス124を物理アドレス126
に変換するのに必要なPTE82は、参照の局所性によ
って、通常、DTLB49またはITLB51の一方に
存在するけれども、アドレス変換を実行するには、テー
ブルウォーク・コントローラ78が、公知の方法を用い
てキャッシュ階層体22またはシステム・メモリ26中
で、必要なPTE82を突き止める必要がある。
【0059】上述したように、本発明は、ノード特有の
記憶とコヒーレンシー管理情報を格納したPTEを含む
ページ・テーブルを備えたNUMAデータ処理システム
を提供するものである。ノード特有の制御情報をPTE
に組み込むことにより、システム・ハードウェアが実行
するデータ記憶とコヒーレンシー管理の活動を実行中の
ソフトウェアの振る舞いと適合させるのが容易になるの
で、不必要なコヒーレンシー通信がなくなるとともにデ
ータ・アクセスのレイテンシーが低減する。
【0060】好適な実施形態について本発明を特に示し
かつ説明したけれども、当業者が理解しうるように、本
発明の本旨と範囲のうちで、形態と詳細を様々に変更し
うる。たとえば、関連するPTEを有する固定サイズの
仮想メモリ・ページについて本発明を説明したけれど
も、理解すべき点を挙げると、本発明は、関連するブロ
ック・アドレス・テーブル(BAT)エントリを備えた
可変ブロック・サイズの仮想メモリに適用することもで
きる。さらに、ページ・テーブルに組み込んだ特定のノ
ード特有の制御情報について本発明を説明したけれど
も、当業者が認識しうるように、本発明は、その範囲が
ここで説明した特定の制御情報に限定されることなく、
一般に、ページ・テーブル中のノード特有の制御情報の
全体に適用することができる。
【0061】まとめとして以下の事項を開示する。 (1)複数の処理装置および少なくとも1つのシステム
・メモリを備え、ノード相互接続体に接続された複数の
ノードと、1群の非物理アドレスを物理アドレスに変換
するのに使用する少なくとも1つのエントリを備え、前
記エントリが前記複数のノードの各ノードごとに前記1
群の非物理アドレスに属す制御情報を個別に指定してい
る、前記少なくとも1つのシステム・メモリに存在する
テーブルとを備えた不均一メモリ・アクセス(NUM
A)データ処理システム。 (2)前記テーブルがページ・テーブルから成り、前記
エントリがページ・テーブル・エントリから成る、上記
(1)に記載の不均一メモリ・アクセス(NUMA)デ
ータ処理システム。 (3)前記制御情報が少なくとも1つのデータ記憶制御
フィールドから成る、上記(1)に記載の不均一メモリ
・アクセス(NUMA)データ処理システム。 (4)前記データ記憶制御フィールドが、前記複数のノ
ードのうちの各ノードに各々が関連付けられた複数のラ
イトスルー標識から成り、前記ライトスルー標識が、関
連するノード中の少なくとも1つの処理装置に、前記複
数のノードのうちのホーム・ノードのシステム・メモリ
に変更したデータを書き込むことを命じるものである、
上記(3)に記載の不均一メモリ・アクセス(NUM
A)データ処理システム。 (5)前記データ記憶制御フィールドが、前記複数のノ
ードのうちの各ノードに各々が関連付けられた複数のキ
ャッシュ不能標識から成り、前記キャッシュ不能標識
が、関連するノード中の少なくとも1つの処理装置に、
前記群内の非物理アドレスに関連付けられたデータをキ
ャッシュしないように命じるものである、上記(1)に
記載の不均一メモリ・アクセス(NUMA)データ処理
システム。 (6)前記制御情報がコヒーレンシー制御情報から成
る、上記(1)に記載の不均一メモリ・アクセス(NU
MA)データ処理システム。 (7)前記コヒーレンシー制御情報が、前記複数のノー
ドのうちの各ノードに各々が関連付けられた複数のコヒ
ーレンシー標識から成り、前記コヒーレンシー標識が、
関連するノード中の少なくとも1つの処理装置に、前記
エントリに関連付けられたデータ用のノード間コヒーレ
ンシーはソフトウェア支援によって維持されることを示
すものである、上記(6)に記載の不均一メモリ・アク
セス(NUMA)データ処理システム。 (8)複数の処理装置および少なくとも1つのシステム
・メモリを備え、ノード相互接続体に接続された複数の
ノードを備えた不均一メモリ・アクセス(NUMA)デ
ータ処理システムを操作する方法であって、1群の非物
理アドレスを物理アドレスに変換するのに使用する少な
くとも1つのエントリを備え、前記エントリが前記複数
のノードの各ノードごとに前記1群の非物理アドレスに
属す制御情報を個別に指定している、前記少なくとも1
つのシステム・メモリに存在するテーブルを生成するス
テップと、前記エントリにアクセスして、非物理アドレ
スを物理アドレスに変換するステップとを備えた、不均
一メモリ・アクセス(NUMA)データ処理システムを
操作する方法。 (9)前記制御情報が少なくとも1つのデータ記憶制御
フィールドから成り、前記方法が、さらに、前記非物理
アドレスに関連付けられたデータの記憶を、前記データ
記憶制御フィールドに従って処理するステップを備え
た、上記(8)に記載の方法。 (10)前記データ記憶制御フィールドが、前記複数の
ノードのうちの各ノードに関連付けられた複数のライト
スルー標識から成り、前記処理するステップが、前記複
数のノードのうちの特定のノード用にセットされたライ
トスルー標識に応答して、前記特定のノード中の処理装
置が、変更したデータを、前記複数のノードのうちのホ
ーム・ノードのシステム・メモリに、前記ホーム・ノー
ドが発するコヒーレンシー通信とは無関係に書き戻すス
テップを備えている、上記(9)に記載の方法。 (11)前記データ記憶制御フィールドが、前記複数の
ノードのうちの各ノードに各々が関連付けられた複数の
キャッシュ不能標識から成り、前記処理するステップ
が、前記複数のノードのうちの特定のノード用にセット
されたキャッシュ不能標識に応答して、前記特定のノー
ド中の処理装置が、前記非物理アドレスに関連付けられ
たデータを、前記処理装置が要求されたデータをキャッ
シュしないことを示す表示とともに求める要求を発する
ステップを備えている、上記(9)に記載の方法。 (12)前記制御情報がコヒーレンシー制御情報から成
る、上記(8)に記載の方法。 (13)前記コヒーレンシー制御情報が、前記複数のノ
ードのうちの各ノードに各々が関連付けられた複数のコ
ヒーレンシー標識から成り、前記方法が、さらに、前記
複数のノードのうちの特定のノード用にセットされたコ
ヒーレンシー標識に応答して、前記特定のノード中の処
理装置が、前記非物理アドレスに関連付けられたデータ
を、ハードウェアが要求されたデータ用にグローバル・
コヒーレンシーを維持する必要のないことを示す表示と
一緒に求める要求を発するステップを備えている、上記
(12)に記載の方法。
【図面の簡単な説明】
【図1】 本発明の方法とシステムを有利に使用する際
に依拠するNUMAデータ処理システムの実施形態を示
す図である。
【図2】 図1に示すNUMAデータ処理システム中の
処理装置の実施形態を示すブロック図である。
【図3】 図1に示すNUMAデータ処理システムにお
けるページ・テーブルの実施形態を示す図である。
【図4】 図1に示すNUMAデータ処理システムにお
けるPTEの典型的な実施形態を示す図である。
【図5】 本発明により実効アドレスを仮想アドレス次
いで物理アドレスに変換するプロセスを示す高レベルの
流れ図である。
【符号の説明】
10 NUMAコンピュータ・システム 12 ノード 14 処理装置 15 ノード相互接続体 16 ノード・コントローラ 18 ローカル相互接続体 19 ページ・テーブル 20 CPU 22 キャッシュ階層体 23 応答論理回路 24 メモリ・コントローラ 25 インタフェース装置(IU) 26 システム・メモリ 28 システム・メモリ・アドレス空間 30 リモート・メモリ・キャッシュ(RMC) 32 ローカル・メモリ・ディレクトリ(LMD) 34 リモート・メモリ・ディレクトリ(RMD) 42 レベル2(L2)キャッシュ 44 レベル1(L1)データ・キャッシュ 46 L1命令キャッシュ 48 データ・メモリ管理装置(DMMU) 49 DTLB(データ変換索引緩衝機構) 50 命令メモリ管理装置(IMMU) 51 ITLB(命令変換索引緩衝機構) 52 命令順序付け装置 62 整数演算装置(IU) 66 汎用レジスタ(GPR) 68 ロード・ストア装置(LSU) 72 浮動小数点レジスタ(FPR) 74 浮動小数点演算装置(FPU) 76 完了装置 78 テーブル・ウォーク・コントローラ 80 ページ・テーブル・エントリ・グループ(PTE
G) 82 ページ・テーブル・エントリ(PTE) 84 主PTEG 86 副PTEG 90 有効ビット 92 仮想セグメントID(VSID) 94 ハッシュ関数識別子(H) 96 短縮ページ・インデックス(API) 98 物理ページ番号(PPN) 100 被参照(R)ビット 102 被変化(C)ビット 104 メモリ・アクセス属性(WIMG)ビット 106 ページ保護(PP)ビット 108 ノード・ライトスルー(NWT)フィールド 110 ノード・ノー・インテント・ツー・キャッシュ
(NNC)フィールド 112 ノード・ローカル・リード・ウィズ・インテン
ト・ツー・モディファイ(NLM)フィールド 120 実効アドレス(EA) 122 セグメント・レジスタ 124 仮想アドレス 126 物理アドレス
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/10 505 G06F 12/10 505B 13/14 320 13/14 320H 15/16 645 15/16 645 15/167 15/167 B (72)発明者 ラビクマール・アリミリ アメリカ合衆国 テキサス州 78759、オ ースチン、スパイスブラッシュ ドライブ 9221 (72)発明者 ジョン・スティーブン・ドッドソン アメリカ合衆国 テキサス州 78660、オ ースチン、ベル ロック サークル 1205 (72)発明者 ジェームズ・スティーブン・フィールズ ジュニア アメリカ合衆国 テキサス州 78717、オ ースチン、ポコノ ドライブ 16420 Fターム(参考) 5B005 JJ12 KK03 KK14 MM01 NN25 PP02 PP11 RR04 5B014 EB03 GD13 GD19 HB26 5B045 DD01 DD12 DD13 EE03 EE11

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】複数の処理装置および少なくとも1つのシ
    ステム・メモリを備え、ノード相互接続体に接続された
    複数のノードと、 1群の非物理アドレスを物理アドレスに変換するのに使
    用する少なくとも1つのエントリを備え、前記エントリ
    が前記複数のノードの各ノードごとに前記1群の非物理
    アドレスに属す制御情報を個別に指定している、前記少
    なくとも1つのシステム・メモリに存在するテーブルと
    を備えた不均一メモリ・アクセス(NUMA)データ処
    理システム。
  2. 【請求項2】前記テーブルがページ・テーブルから成
    り、 前記エントリがページ・テーブル・エントリから成る、
    請求項1に記載の不均一メモリ・アクセス(NUMA)
    データ処理システム。
  3. 【請求項3】前記制御情報が少なくとも1つのデータ記
    憶制御フィールドから成る、請求項1に記載の不均一メ
    モリ・アクセス(NUMA)データ処理システム。
  4. 【請求項4】前記データ記憶制御フィールドが、前記複
    数のノードのうちの各ノードに各々が関連付けられた複
    数のライトスルー標識から成り、 前記ライトスルー標識が、関連するノード中の少なくと
    も1つの処理装置に、前記複数のノードのうちのホーム
    ・ノードのシステム・メモリに変更したデータを書き込
    むことを命じるものである、請求項3に記載の不均一メ
    モリ・アクセス(NUMA)データ処理システム。
  5. 【請求項5】前記データ記憶制御フィールドが、前記複
    数のノードのうちの各ノードに各々が関連付けられた複
    数のキャッシュ不能標識から成り、 前記キャッシュ不能標識が、関連するノード中の少なく
    とも1つの処理装置に、前記群内の非物理アドレスに関
    連付けられたデータをキャッシュしないように命じるも
    のである、請求項1に記載の不均一メモリ・アクセス
    (NUMA)データ処理システム。
  6. 【請求項6】前記制御情報がコヒーレンシー制御情報か
    ら成る、請求項1に記載の不均一メモリ・アクセス(N
    UMA)データ処理システム。
  7. 【請求項7】前記コヒーレンシー制御情報が、前記複数
    のノードのうちの各ノードに各々が関連付けられた複数
    のコヒーレンシー標識から成り、 前記コヒーレンシー標識が、関連するノード中の少なく
    とも1つの処理装置に、前記エントリに関連付けられた
    データ用のノード間コヒーレンシーはソフトウェア支援
    によって維持されることを示すものである、請求項6に
    記載の不均一メモリ・アクセス(NUMA)データ処理
    システム。
  8. 【請求項8】複数の処理装置および少なくとも1つのシ
    ステム・メモリを備え、ノード相互接続体に接続された
    複数のノードを備えた不均一メモリ・アクセス(NUM
    A)データ処理システムを操作する方法であって、 1群の非物理アドレスを物理アドレスに変換するのに使
    用する少なくとも1つのエントリを備え、前記エントリ
    が前記複数のノードの各ノードごとに前記1群の非物理
    アドレスに属す制御情報を個別に指定している、前記少
    なくとも1つのシステム・メモリに存在するテーブルを
    生成するステップと、 前記エントリにアクセスして、非物理アドレスを物理ア
    ドレスに変換するステップとを備えた、不均一メモリ・
    アクセス(NUMA)データ処理システムを操作する方
    法。
  9. 【請求項9】前記制御情報が少なくとも1つのデータ記
    憶制御フィールドから成り、 前記方法が、さらに、 前記非物理アドレスに関連付けられたデータの記憶を、
    前記データ記憶制御フィールドに従って処理するステッ
    プを備えた、請求項8に記載の方法。
  10. 【請求項10】前記データ記憶制御フィールドが、前記
    複数のノードのうちの各ノードに関連付けられた複数の
    ライトスルー標識から成り、 前記処理するステップが、 前記複数のノードのうちの特定のノード用にセットされ
    たライトスルー標識に応答して、前記特定のノード中の
    処理装置が、変更したデータを、前記複数のノードのう
    ちのホーム・ノードのシステム・メモリに、前記ホーム
    ・ノードが発するコヒーレンシー通信とは無関係に書き
    戻すステップを備えている、請求項9に記載の方法。
  11. 【請求項11】前記データ記憶制御フィールドが、前記
    複数のノードのうちの各ノードに各々が関連付けられた
    複数のキャッシュ不能標識から成り、 前記処理するステップが、 前記複数のノードのうちの特定のノード用にセットされ
    たキャッシュ不能標識に応答して、前記特定のノード中
    の処理装置が、前記非物理アドレスに関連付けられたデ
    ータを、前記処理装置が要求されたデータをキャッシュ
    しないことを示す表示とともに求める要求を発するステ
    ップを備えている、請求項9に記載の方法。
  12. 【請求項12】前記制御情報がコヒーレンシー制御情報
    から成る、請求項8に記載の方法。
  13. 【請求項13】前記コヒーレンシー制御情報が、前記複
    数のノードのうちの各ノードに各々が関連付けられた複
    数のコヒーレンシー標識から成り、 前記方法が、さらに、 前記複数のノードのうちの特定のノード用にセットされ
    たコヒーレンシー標識に応答して、前記特定のノード中
    の処理装置が、前記非物理アドレスに関連付けられたデ
    ータを、ハードウェアが要求されたデータ用にグローバ
    ル・コヒーレンシーを維持する必要のないことを示す表
    示と一緒に求める要求を発するステップを備えている、
    請求項12に記載の方法。
JP2002170907A 2001-06-21 2002-06-12 不均一メモリ・アクセス(numa)データ処理システム Expired - Fee Related JP3924206B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/885,997 US6658538B2 (en) 2001-06-21 2001-06-21 Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control
US09/885997 2001-06-21

Publications (2)

Publication Number Publication Date
JP2003067357A true JP2003067357A (ja) 2003-03-07
JP3924206B2 JP3924206B2 (ja) 2007-06-06

Family

ID=25388154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002170907A Expired - Fee Related JP3924206B2 (ja) 2001-06-21 2002-06-12 不均一メモリ・アクセス(numa)データ処理システム

Country Status (2)

Country Link
US (1) US6658538B2 (ja)
JP (1) JP3924206B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193784A (ja) * 2006-01-17 2007-08-02 Internatl Business Mach Corp <Ibm> 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
EP2975520A1 (en) 2014-07-18 2016-01-20 Fujitsu Limited Information processing device, control method of information processing device and control program of information processing device
JP2016517992A (ja) * 2013-05-06 2016-06-20 クゥアルコム・インコーポレイテッドQualcomm Incorporated 属性フィールドのマルチコアページテーブルセット
JP2016541046A (ja) * 2013-10-21 2016-12-28 マーベル ワールド トレード リミテッド 最終レベルキャッシュシステム及び対応する方法
US11556469B2 (en) 2018-06-18 2023-01-17 FLC Technology Group, Inc. Method and apparatus for using a storage system as main memory
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8320241B2 (en) 2002-07-30 2012-11-27 Brocade Communications System, Inc. Fibre channel network employing registered state change notifications with enhanced payload
US6981120B1 (en) * 2002-11-04 2005-12-27 Savaje Technologies, Inc. Method and apparatus for virtual memory segmentation
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7017015B2 (en) * 2002-12-20 2006-03-21 Rockwell Automation Technologies, Inc. Method and system for coordinating the access of data by two computer processes
JP4252828B2 (ja) * 2003-03-19 2009-04-08 株式会社日立製作所 キャッシュ制御方法、ノード装置、プログラム
EP1611513B1 (en) * 2003-04-04 2010-12-15 Oracle America, 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
US7085897B2 (en) * 2003-05-12 2006-08-01 International Business Machines Corporation Memory management for a symmetric multiprocessor computer system
US6981072B2 (en) * 2003-06-05 2005-12-27 International Business Machines Corporation Memory management in multiprocessor system
US7546357B2 (en) * 2004-01-07 2009-06-09 Microsoft Corporation Configuring network settings using portable storage media
US7222221B1 (en) * 2004-02-06 2007-05-22 Vmware, Inc. Maintaining coherency of derived data in a computer system
US7509521B2 (en) * 2004-08-23 2009-03-24 Microsoft Corporation Memory dump generation with quick reboot
US7970980B2 (en) * 2004-12-15 2011-06-28 International Business Machines Corporation Method and apparatus for accessing memory in a computer system architecture supporting heterogeneous configurations of memory structures
US7895596B2 (en) * 2005-09-13 2011-02-22 Hewlett-Packard Development Company, L.P. Processor assignment in multi-processor systems
US8407424B2 (en) * 2005-11-07 2013-03-26 Silicon Graphics International Corp. Data coherence method and apparatus for multi-node computer system
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US7653789B2 (en) * 2006-02-01 2010-01-26 Sun Microsystems, Inc. Multiprocessor system that supports both coherent and non-coherent memory accesses
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8352709B1 (en) * 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US7770056B2 (en) * 2006-10-18 2010-08-03 Hewlett-Packard Development Company, L.P. System and method for dynamic page classification for memory dumping
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8700883B1 (en) 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8533425B1 (en) 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8700865B1 (en) 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
US7958314B2 (en) * 2007-12-18 2011-06-07 International Business Machines Corporation Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources
US8510509B2 (en) * 2007-12-18 2013-08-13 International Business Machines Corporation Data transfer to memory over an input/output (I/O) interconnect
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
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
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US20090240874A1 (en) * 2008-02-29 2009-09-24 Fong Pong Framework for user-level packet processing
JP4609521B2 (ja) 2008-04-21 2011-01-12 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US9032101B1 (en) 2008-12-10 2015-05-12 Nvidia Corporation Chipset support for binding and migrating hardware devices among heterogeneous processing units
US9015446B2 (en) * 2008-12-10 2015-04-21 Nvidia Corporation Chipset support for non-uniform memory access among heterogeneous processing units
US8719547B2 (en) 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8484420B2 (en) 2010-11-30 2013-07-09 International Business Machines Corporation Global and local counts for efficient memory page pinning in a multiprocessor system
US8966187B2 (en) 2011-12-01 2015-02-24 International Business Machines Corporation Flexible replication with skewed mapping in multi-core chips
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9229878B2 (en) 2013-06-10 2016-01-05 Red Hat Israel, Ltd. Memory page offloading in multi-node computer systems
US9465669B2 (en) 2013-08-13 2016-10-11 Vmware, Inc. NUMA scheduling using inter-vCPU memory access estimation
US9274835B2 (en) 2014-01-06 2016-03-01 International Business Machines Corporation Data shuffling in a non-uniform memory access device
US9256534B2 (en) 2014-01-06 2016-02-09 International Business Machines Corporation Data shuffling in a non-uniform memory access device
US9665489B2 (en) * 2015-02-11 2017-05-30 Qualcomm Incorporated Methods of selecting available cache in multiple cluster system
US10489303B2 (en) * 2016-03-10 2019-11-26 Arm Limited Multi-range lookup in translation lookaside buffer
EP3469480B1 (en) * 2016-04-25 2023-12-27 Netlist, Inc. Method and apparatus for uniform memory access in a storage cluster
US11340945B2 (en) * 2016-06-23 2022-05-24 Vmware, Inc. Memory congestion aware NUMA management
US10452593B1 (en) * 2018-05-03 2019-10-22 Arm Limited High-performance streaming of ordered write stashes to enable optimized data sharing between I/O masters and CPUs
JP7197545B2 (ja) * 2020-09-29 2022-12-27 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US20230080480A1 (en) * 2021-09-13 2023-03-16 International Business Machines Corporation Pipeline parallel computing using extended memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2679363B2 (ja) * 1989-06-20 1997-11-19 日本電気株式会社 マイクロプロセッサ
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
US5680576A (en) * 1995-05-05 1997-10-21 Silicon Graphics, Inc. Directory-based coherence protocol allowing efficient dropping of clean-exclusive data
US5787476A (en) * 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
US5892970A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Multiprocessing system configured to perform efficient block copy operations
US6370585B1 (en) * 1997-09-05 2002-04-09 Sun Microsystems, Inc. Multiprocessing computer system employing a cluster communication launching and addressing mechanism
US6286090B1 (en) * 1998-05-26 2001-09-04 Compaq Computer Corporation Mechanism for selectively imposing interference order between page-table fetches and corresponding data fetches

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193784A (ja) * 2006-01-17 2007-08-02 Internatl Business Mach Corp <Ibm> 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
JP2016517992A (ja) * 2013-05-06 2016-06-20 クゥアルコム・インコーポレイテッドQualcomm Incorporated 属性フィールドのマルチコアページテーブルセット
JP2016541046A (ja) * 2013-10-21 2016-12-28 マーベル ワールド トレード リミテッド 最終レベルキャッシュシステム及び対応する方法
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same
EP2975520A1 (en) 2014-07-18 2016-01-20 Fujitsu Limited Information processing device, control method of information processing device and control program of information processing device
US9697123B2 (en) 2014-07-18 2017-07-04 Fujitsu Limited Information processing device, control method of information processing device and control program of information processing device
US11556469B2 (en) 2018-06-18 2023-01-17 FLC Technology Group, Inc. Method and apparatus for using a storage system as main memory
US11880305B2 (en) 2018-06-18 2024-01-23 FLC Technology Group, Inc. Method and apparatus for using a storage system as main memory

Also Published As

Publication number Publication date
US20030009640A1 (en) 2003-01-09
US6658538B2 (en) 2003-12-02
JP3924206B2 (ja) 2007-06-06

Similar Documents

Publication Publication Date Title
JP3924206B2 (ja) 不均一メモリ・アクセス(numa)データ処理システム
US10042778B2 (en) Collapsed address translation with multiple page sizes
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US6105113A (en) System and method for maintaining translation look-aside buffer (TLB) consistency
CN107111455B (zh) 电子处理器架构以及缓存数据的方法
US7363462B2 (en) Performing virtual to global address translation in processing subsystem
US9208103B2 (en) Translation bypass in multi-stage address translation
US6647466B2 (en) Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
US8966219B2 (en) Address translation through an intermediate address space
US7765381B2 (en) Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
US9268694B2 (en) Maintenance of cache and tags in a translation lookaside buffer
US6711653B1 (en) Flexible mechanism for enforcing coherency among caching structures
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US8145870B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
TWI428754B (zh) 以主動式預取寬度執行加強式停懸狀態之系統及方法
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
US7360056B2 (en) Multi-node system in which global address generated by processing subsystem includes global to local translation information
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
CN114238167A (zh) 信息预取方法、处理器、电子设备
US10754791B2 (en) Software translation prefetch instructions
US20050091459A1 (en) Flexible mechanism for enforcing coherency among caching structures
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060718

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060914

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061220

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: 20070220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070223

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: 20110302

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140302

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees