Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3501357B2 - キャッシュ・コヒーレントな対称型マルチプロセッサ・システムで区画化されたメモリを制御する方法及び装置 - Google Patents
[go: Go Back, main page]

JP3501357B2 - キャッシュ・コヒーレントな対称型マルチプロセッサ・システムで区画化されたメモリを制御する方法及び装置 - Google Patents

キャッシュ・コヒーレントな対称型マルチプロセッサ・システムで区画化されたメモリを制御する方法及び装置

Info

Publication number
JP3501357B2
JP3501357B2 JP2000070709A JP2000070709A JP3501357B2 JP 3501357 B2 JP3501357 B2 JP 3501357B2 JP 2000070709 A JP2000070709 A JP 2000070709A JP 2000070709 A JP2000070709 A JP 2000070709A JP 3501357 B2 JP3501357 B2 JP 3501357B2
Authority
JP
Japan
Prior art keywords
memory
transaction
partition
cache
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000070709A
Other languages
English (en)
Other versions
JP2000305841A (ja
Inventor
ヒューバートス・フランク
ダグラス・ジェイ・ジョーセフ
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 JP2000305841A publication Critical patent/JP2000305841A/ja
Application granted granted Critical
Publication of JP3501357B2 publication Critical patent/JP3501357B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は共有メモリ・ベース
の対称型マルチプロセッサ・システムに関し、更に具体
的には、共有メモリ・ベースの対称型マルチプロセッサ
・システムで、独立した欠陥抑制ドメインへメモリを区
画化及び管理する装置及び方法に関する。
【0002】
【従来の技術】現代のコンピュータ・システムは、次第
に共有メモリ・ベースの対称型マルチプロセッサ・シス
テム(SMP)から構成されるようになってきている。
SMPは規則的に区画化され、プロセッサ及びメモリの
ような物理資源は区画へ割り当てられ、それぞれの区画
はそれ自身のオペレーティング・システムを実行する。
信頼性、可用性、及び保守性を理由として、或る区画へ
割り当てられたメモリは、他の区画によってアクセスさ
れないように保護される必要がある。
【0003】個々のオペレーティング・システムによっ
て提供される変換及び保護メカニズムは、他の区画へ割
り当てられたメモリへのアクセスを許すように、偶発的
又は故意に欺かれる可能性がある。概念的には、この問
題は、すべてのバス・トラフィックをインターセプト
し、このトラフィックをアクセス検査に委ねることによ
り解決することができる。アクセス検査は、特定のプロ
セッサが特定のメモリ・セグメントにアクセスすること
を許されるかどうかを決定することによってなされる。
しかし、Intel Pentium(登録商標) P
ro及びPentium IIのような現代のキャッシュ・コヒー
レントな対称型マルチプロセッサ・システムは、バス占
有の問題を軽減するため、非常に厳格なタイミング制約
を強制している。
【0004】具体的には、キャッシュ・スヌーピング
(snooping)プロトコルは、バス上に置かれたアドレス
をインターセプトする余分のサイクルを許さず、それを
検査してアクセス違反があればトランザクションをアボ
ートする。これらのすべては、他のプロセッサのスヌー
ピングがスタートする前に行われる。通常、一度アドレ
スがアドレス・バス上に現れると、次の信号ラッチがキ
ャッシュのスヌーピングを開始する。もしプロセッサが
その割り当てられたメモリの外側にあるアドレスをバス
上に置くと、この要求は発生区画の外側にあるプロセッ
サによって充足され、無効のキャッシュ状態、例えばキ
ャッシュ無効のキャッシュ間転送を生じ、回復すること
のできない不整合のメモリ状態となる。
【0005】プロセッサ・コア及びバス・アーキテクチ
ャへの変更に依存するメカニズムが存在するが、これら
は、通常、アドレス可能性に関して制約があり、またキ
ャッシュ・コヒーレントな区画間通信を目的として区画
間にキャッシュ・コヒーレントな共有メモリを確立する
ことに関して制約がある。このように問題の分野を概観
したとき、キャッシュ・コヒーレンス・ドメインを維持
しつつ欠陥抑制メモリ区画化を提供する装置及び方法が
必要とされている。
【0006】本発明によって解決される問題と類似の問
題を解決しようとしている幾つかの試みを以下に紹介す
る。
【0007】1.1999年2月23日に出願された
「共有メモリ・ベース・マルチプロセッサ・システムの
安全区画化」(Secure Partitioning of Shared Memory
BasedMultiprocessor System)と題する共有関連米国
特許出願第09/256,035号は、SMPノードに
キャッシュ・コヒーレンス・ドメインを確立する装置を
説明している。その装置は、内部システム・バスを複製
し、プロセッサ、I/Oコントローラ、及び割り込みコ
ントローラのようなシステム・コンポーネントの各々を
内部バスの1つへ接続するために構成可能クロスバ・ス
イッチを使用する。同じ内部バスへ接続されたすべての
コンポーネントは、コヒーレンス・ドメインを形成す
る。
【0008】更に、この装置は、各内部バス上のリアル
・アドレスを物理メモリへ再マップするために、変更さ
れたメモリ・コントローラを使用する。このシステム
は、システム・ソフトウェアの変更を避けるため、0ベ
ース・メモリを各区画へ提供するように設計された。そ
れは、異なった区画の或るリアル・アドレス範囲を同じ
物理メモリへ再配置することによって、区画間に非コヒ
ーレントな共有メモリ領域を確立する可能性がある。
【0009】その発明は、同じバス上のドメイン保護の
問題を特別に回避し、更にクロスバ・スイッチのピン・
カウントによって制約される。
【0010】2.1996年7月2日に発表された米国
特許第5,796,605号は、マルチプロセッサ・コ
ンピュータ・システムにおけるシステム・メモリ空間の
アドレス・マッピング法を説明している。開示されたマ
ッピング・アーキテクチャは、SMPノードを有するマ
ルチプロセッサ・コンピュータ・システムへ応用するこ
とができる。ここで、各処理ノードは複数のプロセッサ
を含むことができる。システム・メモリのアドレス空間
は異なった領域へ分割され、n個のSMPノードの各々
が、全アドレス空間の1/nを割り当てられる。グロー
バルな共有メモリ領域の1/nを各ノードへ割り当てる
ことによって、それはメモリ局部性を確立する。この局
部性は、動作状態に基づいてそれを利用するように、特
定のキャッシュ・コヒーレンス・プロトコルで使用され
る。この点に関して、この参考文献は、異なった欠陥保
護システム区画を確立する目的で区画化を取り扱ってお
らず、また単一のSMPノード上でメモリ区画化を提供
するものではなく、区画間共有メモリ領域を提供するも
のでもない。
【0011】3.1998年12月1日に発表された米
国特許第5,845,071号は、グローバル共有メモ
リを有するマルチノード・マルチプロセッサ・システム
を、ノード誤り抑制クラスタ又はECCNと呼ばれるノ
ード・グループへ区分する区画化を説明している。ノー
ドは、ECCNがノード列又はノード行に存在するよう
に区画化される。各ECCNの中には、コヒーレントな
メモリ共有が存在する。ECCNの間では、通信はメッ
セージ処理プロトコルを介して行われる。更に、各ノー
ドの中のメモリは、保護メモリ及び非保護メモリへ区画
化される。非保護メモリはメッセージ処理に使用され、
保護メモリは共有処理に使用される。誤り抑制クラスタ
内の欠陥は、そのクラスタ内のメモリ、具体的にはその
クラスタ内の保護メモリを破壊し、更に他のクラスタと
通信するためにそのクラスタによって使用される非保護
メモリを破壊する。しかし、他のクラスタは、それらの
保護メモリが影響を受けないので、実行を継続すること
ができ、残りの非保護メモリを介して通信を継続するこ
とができる。
【0012】この特許はクラスタの区画化を取り扱って
おり、単一SMPノードの区画化を取り扱っていない。
それはSMP境界に沿って保護ドメインを確立し、その
ようなものとして単一SMPの区画化を取り扱っていな
い。更に、それは、ノードの1つが動作不能になったと
きに生じるコヒーレンス状態の喪失を避けるため、通過
しているメッセージと結合される特別の非保護メモリ
を、区画間通信のために別途に備えている。
【0013】4.1974年7月30日付の米国特許第
3,827,029号は、コンピュータ・システムへハ
ードウェア・オプションとして付加されるハードウェア
・メモリ違反保護サブシステムを説明している。メモリ
保護サブシステムは、コンピュータ・システムのメモリ
・サブシステムと並行して動作し且つメモリ・サブシス
テム内のデータを変更する各々の試みをモニタするハー
ドウェアを含む。保護領域内のデータを変更する試み
は、不成功にされてよい。そのような試みに続いて、プ
ログラムの実行は中断され、プログラムの制御はコンピ
ュータ・システムのエグゼクティブ・ソフトウェアへ移
される。この特許はメモリ保護を取り扱っているが、区
画化の問題又はキャッシュ及びキャッシュ・コヒーレン
ス・トラフィックの存在に起因して生じる問題、即ち不
当なキャッシュ間ライン転送の問題を取り扱っていな
い。
【0014】5.1989年6月27日に発表された米
国特許第4,843,541号は、IBM S/370
XAメインフレーム・コンピュータを論理的に区画化す
る方法を説明しており、ハードウェア、ソフトウェア、
及びI/O装置からのサポートを必要としている。異な
ったオペレーティング・システムの絶対アドレス及び仮
想アドレスは、それらに割り当てられた区画へ再配置さ
れる。しかし、この特許は、同じバスの同じコヒーレン
ス・ドメインに複数のSMP保護メモリ・ドメインを確
立しない。
【0015】6.1987年10月9日付の米国特許第
4,814,982号は、グローバル・メモリへのアク
セス制御に使用するため、識別子を個々のプロセッサ又
は入力/出力(I/O)モジュールへ割り当てるシステ
ムを説明している。この特許の主な焦点は、他のプロセ
ッサへのバトンタッチが可能となるように、処理機能を
複製し欠陥を検出することによって、フォールト・トレ
ランスを達成することである。この特許は、プロセッサ
/タスク識別子を介してメモリ範囲を分別する変更され
たメモリ・コントローラを使用する。
【0016】しかし、この特許は、同じ共有バス上で複
数のシステム・イメージを実行することから生じるキャ
ッシュ・コヒーレンスの問題を取り扱っていない。保護
はバスへ付加された装置の中に組み込まれ、従って、そ
のようなメカニズムを装置に設けるコストによって、誤
ったアドレスはバス上に現れない。区画間通信はこの特
許によって取り扱われていない。最後に、処理要素の数
に等しい多数のセグメントが必要とされる。
【0017】
【発明が解決しようとする課題】本発明は、欠陥抑制キ
ャッシュ・コヒーレンス・ドメイン及びキャッシュ・コ
ヒーレントな区画間メモリ領域を可能としながら、キャ
ッシュ・コヒーレントな対称型共有メモリ・マルチプロ
セッサ・システムで欠陥抑制メモリ区画化を提供する装
置及び方法を導入する。全体のシステムは、区画が存在
するにも拘わらず単一のコヒーレンス・ドメインとして
実行され、一般的なメモリ・アクセスとキャッシュ・コ
ヒーレンス・トラフィックとは弁別される。
【0018】
【課題を解決するための手段】すべてのメモリ・アクセ
スは、メモリ・コントローラによっインターセプトされ
処理される。データがメモリから読み出されるか書き込
まれる前に、アドレスが検査され、もしアドレスが使用
中のプロセッサへ割り当てられたメモリ領域外であれ
ば、実行された動作はアボートされる。従って、それが
起こったとき、違反プロセッサは停止される。本発明の
装置及び方法は、特定のプロセッサがアクセスしてよい
メモリ範囲を示す区画別メモリ・アクセス・マップを使
用する。これらのアクセス・マップで重複を許すことに
よって、共有ロック及び他の区画間通信プロトコルの効
率的実行を容易にするキャッシュ・コヒーレントな区画
間共有メモリ領域が確立される。
【0019】キャッシュ・コヒーレンス・ドメインの整
合性は、バス・スヌーピング・プロトコルと並行してア
ドレス検査実行プロトコルを介して達成される。トラン
ザクションがバス上に置かれたときアドレスを検査し、
次にバス上のアドレスの有効性を他のプロセッサへ知ら
せるのではなく、本発明の装置及び方法は、バス上の要
求に干渉することなく、要求をスヌーピングする。バス
上のタイミング制約が厳しいため、これらのトランザク
ションに対して何も行うことはできない。
【0020】すべてのプロセッサが要求をスヌーピング
する間に、それと並行して、検査装置は、アクセスが有
効であるかどうかを決定する。プロセッサの1つによっ
て応答が出される時点までに、アドレス検査によってア
ドレスが有効であるかどうかが決定される。応答データ
のコピーは保存される。無効アクセスの場合、発行プロ
セッサは即時に停止され、応答プロセッサのメモリ階層
はデータのコピーで修復される。このプロトコルは、通
信バス・スヌーピング・プロトコルの厳しいタイミング
制約が破られないという利点を有する。本発明の利点
は、対称型マルチプロセッサ・システムのコア、即ち、
プロセッサ及びそれらの組み込みキャッシュが、それら
プロセッサへ調整された通信バスと同様に再使用される
ことである。なぜなら、すべての変更はメモリ・コント
ローラに含まれるからである。
【0021】1999年2月23日に出願された「共有
メモリ・ベース・マルチプロセッサ・システムの安全区
画化」(Secure Partitioning of Shared Memory Based
Multiprocessor System)と題する共有関連米国特許出
願第09/256,035号と対比して、本発明は、シ
ステム通信バスを変更することなく、また、システム通
信バスを複製することなく、SMPの全体を単一のキャ
ッシュ・コヒーレンス・ドメインとして実行する。前記
米国特許出願の開示内容の全ては、参照してここに組み
込まれる。この出願は、区画間通信のためにキャッシュ
・コヒーレントな共有メモリ領域を確立して提供するこ
とができる。しかし、それは各区画へ0ベース・メモリ
を提供せず、従ってオペレーティング・システムのソフ
トウェアが再配置可能であることを必要とする。
【0022】本発明は、09/256,035のリアル
・物理獲得装置に類似のアドレス検査メカニズムを使用
することができる。なぜなら、通信バス上のアドレス範
囲は、双方の発明で認識されなければならないからであ
る。その限りで、アドレス範囲のヒットを決定するため
に、類似のメカニズムを使用してよい。しかし、アドレ
ス範囲のヒット結果は、異なった態様で使用される。0
9/256,035は、アドレス範囲のヒットを使用し
て、メモリ・アクセスのためにリアル・アドレスを物理
アドレスへ再配置するのに対し、本発明はアドレス範囲
のヒット不在を使用して、トランザクションをアボート
し、違反プロセッサをリセットする。
【0023】
【発明の実施の形態】図1はプロセッサ101、それら
に関連づけられキャッシュ102、システム通信バス1
00、メモリ・コントローラ110、共有メモリ11
1、割り込みコントローラ103、及びシステムをI/
O装置へ接続するI/Oコントローラ104から構成さ
れるSMPの一般的アーキテクチャを示す。
【0024】基礎に存在するメモリを区画化しながらS
MPを単一のキャッシュ・コヒーレンス・ドメインで実
行することから生じる問題をより良好に理解するため、
典型的なSMPバス上で出される各種のキャッシュ及び
メモリ・トランザクション要求のタイプ、及びそれに対
して発生する応答を、以下に説明する。
【0025】ReadPartial: キャッシュされていない
メモリを読み出す。メモリは常にこの要求に応答し、ス
ヌーピングは起こらない。
【0026】WritePartial: キャッシュされていない
メモリに書き込む。スヌーピングは起こらない。データ
は書き込みのためにメモリ・コントローラ110へプッ
シュされる。
【0027】ReadLine: ラインを発行CPU101の
キャッシュ102へ読み出す。もしキャッシュ102が
他のCPU101によって所有されていれば、そのプロ
セッサはデータで応答する。他のCPU101によって
所有されていなければ、メモリが応答する。
【0028】ReadWithIntentToModify: ReadLineと同
様に、ラインを発行プロセッサ101のキャッシュ10
2へ読み出す。ラインは他のすべてのプロセッサ101
のキャッシュ102で無効にされ、キャッシュ102間
転送を生じ、メモリ111への書き戻しは起こらない。
そうでなければ、メモリ111が応答する。
【0029】WriteLine: キャッシュ・ラインをメモ
リ111へ書き戻す。スヌーピングは起こらない。キャ
ッシュ・ラインが既にプロセッサ101によって所有さ
れていれば、キャッシュ・ラインはメモリ111へ書き
戻されるだけでよい。所有は、前のReadWithIntentToMo
difyを介してのみ達成することができる。
【0030】図2は、典型的な通信バス及びメモリ・コ
ントローラ200の一般的アーキテクチャを示す。アド
レス240及びトランザクション・タイプ241によっ
て識別された要求がシステム通信バス100上に出され
ると、トランザクション・マネージャ201はシステム
通信バス上でスヌーピングし、トランザクション・ディ
スクリプタ210をペンディング・バッファ202の自
由スロットへ入れる。エントリーは、要求がプロセッサ
101(図1)の1つ又はメモリ111によって充足さ
れるまで、ペンディング・バッファの中に止まる。
【0031】トランザクション・ディスクリプタ210
は、トランザクション・タイプ212、アドレス21
1、及び現在の状態213から構成される。既にペンデ
ィング・バッファ中にエントリーを有するアドレスに要
求が出されると、再試行が発行プロセッサへ出される。
WriteLine又はWritePartialトランザクションの場合、
トランザクション・マネージャ201は、データ通信バ
ス上のデータ242をデータ待ち行列230に捕捉する
要求をDRAMコントローラ220へ出す。待ち行列を
使用することによって、幾つかの要求をバッファリング
することができ、従って、通信バスの速度、即ち要求到
着可能速度と、メモリ・アクセス・タイムとの間の不一
致を克服することができる。
【0032】通信バス100は他のトランザクションの
ために即時に解放されてよいが、トランザクション・デ
ィスクリプタ210は、書き込みデータが実際にデータ
待ち行列230からメモリへフラッシュされるまでペン
ディング・バッファへ止まっていなければならない。こ
れは、書き込み動作が未だ終了しない間に読み出しアク
セスがメモリ111からデータをフェッチするような競
合条件を避けるために必要である。この場合、前述した
ように、再試行が出される。読み出しアクセスの場合、
データ待ち行列230は、メモリ・アクセスの整合性を
管理するため度々FIFO順序でデータがデータ通信バ
スへ解放されるスロットを提供する。要求が完了する
と、DRAMコントローラ220はトランザクション・
マネージャ201へ通知し、トランザクション・マネー
ジャ201は対応するトランザクションをペンディング
・バッファから除去し、適切な応答を通信バス100上
に出す。
【0033】図3は、メモリ・コントローラによって実
行されなければならない4つの機能ブロックを必要とす
るトランザクション・フローを示す。 (i)決定ステップ313、314、315は、アドレ
スが所与の区画で無効であるかどうかを決定し、もし無
効であれば、ペンディング・バッファの状態を無効とし
てマークする。 (ii)ステップ302は違反プロセッサ101(図1)
をリセットする。 (iii)ステップ303は、データをメモリ111(図
1)へ書き込むべきでないとき、データを破棄する。 (iV)ステップ304は、メモリの整合性を修復するた
め、データを捕捉(Capture)し書き戻す。
【0034】トランザクション・マネージャ201(図
2)は通信バス上でスヌーピングし、ステップ310
で、トランザクション(プロセッサ101(図1)の1
つによって出される要求又は応答)を待機する。トラン
ザクション・タイプ識別ステップ311で、もしトラン
ザクションが要求350であると決定されれば、ステッ
プ312で、それは書き込み要求であるか、読み出し要
求であるかの決定がなされる。書き込みアクセス、即ち
WriteLine、WritePartialの場合、ステップ313で、
もしアクセスが正当であると決定されれば(例えば、ト
ランザクション状態が無効であるとマークされていなけ
れば)、フローは、メモリへのデータ書き込みが実行さ
れるデフォルトの行動ステップ301へ行く。トランザ
クション・マネージャは、アドレス検査が完了するか、
要求が実際にメモリへ約束される前にその要求をDRA
Mコントローラから撤回するメカニズムを必要とするま
で、メモリへの書き込みコマンドをDRAMコントロー
ラへ出してはならない。ステップ301から、フローは
次のトランザクションを待機するステップ310へ続
く。
【0035】ステップ313で、もしアクセスが正当で
ないことを決定されると、データ待ち行列230(図
2)からのデータはステップ303で廃棄され、違反プ
ロセッサはステップ302でリセットされる。ステップ
302から、フローは次のトランザクションを待機する
ステップ310へ続く。
【0036】ステップ312で、もし要求がメモリから
の読み出し(例えば、ReadPartialのようなキャッシュ
されない読み出し、又は他のプロセッサによって充足さ
れなかったReadLine)アクセス要求であると決定され、
且つ、ステップ314で、アドレスが無効であると決定
されると、トランザクションは終了し、違反プロセッサ
はステップ302でリセットされ、フローは次のトラン
ザクションを待機するステップ310へ続く。しかし、
出された読み出しが正当であったとすれば、フローは、
メモリから読み出す要求が充足されるデフォルトの行動
ステップ301へ行き、次に、フローは次のトランザク
ションを待機するステップ310へ続く。
【0037】トランザクション・タイプ識別ステップ3
11で、もしトランザクションがキャッシュ間転送を表
す応答351であると決定されると、ステップ316
で、これはReadWithIntentToModifyに関する応答である
かどうかが決定される。もしそうでなければ、それは前
に出されたReadLine要求でなければならず、ステップ3
14はアドレスが無効であることを決定し、トランザク
ションは終了し、違反プロセッサはステップ302でリ
セットされる。なぜなら、応答しているプロセッサは依
然としてキャッシュ・ラインの有効なコピーを有するか
らである。次に、フローは次のトランザクションを待機
するステップ310へ続く。しかし、もし要求が正当で
あったならば、フローはデフォルトの行動ステップ30
1へ行く。ステップ301で、キャッシュ・トランザク
ションは進行し、更なるアクションが取られ、その後
で、フローは次のトランザクションを待機するステップ
310へ続く。
【0038】ステップ316では、肯定のReadWithInte
ntToModify応答から、もっと複雑な場合が生じる。もし
要求が正当であったならば、標準の行動が実行される。
即ち、ステップ301では、キャッシュ間転送が正当で
あったから何も実行されず、フローは次のトランザクシ
ョンを待機するステップ310へ続く。しかし、もし応
答が不当であったならば、ステップ317は、更にモー
ドがSharedInterventionであるかModifiedIntervention
であるかを決定する。
【0039】SharedInterventionの場合、ステップ31
7から否定結果を生じ、違反プロセッサはステップ30
2でリセットされる。なぜなら、応答しているプロセッ
サはラインを共有状態で所有するからである。即ち、デ
ータの有効なコピーは依然としてメモリで利用可能であ
り、応答しているプロセッサによって、このラインへの
次のアクセスでメモリから再フェッチされてよい。
【0040】ステップ317から肯定の結果が出される
と、ModifiedInterventionは汚れたキャッシュ・ライン
と呼ばれる変更状態のキャッシュ・ラインを生じる。即
ち、キャッシュ・ラインはメモリ中の内容とは異なって
おり、ステップ304でメモリへ書き戻すことなく、要
求しているプロセッサへ転送される。適切に処理されな
いと、この場合はメモリの不整合を生じるかも知れな
い。更に具体的には、応答しているプロセッサの区画
は、要求しているプロセッサへ一度データが転送される
と、データの有効なコピーを有しない。要求の不当性に
起因して、要求しているプロセッサはリセットされ、キ
ャッシュ・ラインの内容は失われる。従って、本発明は
ReadWithIntentToModify応答のデータを捕捉し、もし対
応するトランザクションが不当としてマークされると、
データがステップ304でメモリへ書き戻される。
【0041】従って、応答しているプロセッサの区画は
依然としてデータの正当コピーをメモリ内に有し、この
アドレスへの後続アクセスは、単にキャッシュ・ライン
の再ロードを生じる。意味するところは、異なった区画
からの不当アクセスの場合、キャッシュの書き戻しが強
制されることである。キャッシュ・ラインのこの書き戻
しステップ304は、前述したメモリ非整合ホール(ho
le)を塞ぐ。
【0042】図4は、標準のメモリ・コントローラ22
0(図2)に対するメモリ・コントローラの適合化を示
す。3つの新しいモジュールが付け加えられる。即ち、
区画マネージャ400、キャプチャ・バッファ401、
及びプロセッサ・リセット信号402である。区画マネ
ージャ400は各区画のためにメモリ・アクセスを定義
するメカニズムを提供し、且つアドレス検査メカニズム
を提供する。トランザクション・マネージャ201と並
行して、区画マネージャ400は、通信バス上でアドレ
ス240、トランザクション・タイプ241、及び発行
プロセッサID403をスヌーピングする。発行プロセ
ッサID403はシステム通信バス上で利用可能であ
る。区画マネージャ400は、要求されたアドレスを保
持するメモリ範囲を求めて、発行プロセッサに関連づけ
られた区画のアドレス・マップを直ちに探索し始める。
特定の通信バス・アーキテクチャに依存して、通信バス
・アービトレーションの時点でトランザクション処理を
開始することが可能である。
【0043】その時点で、アドレスは未だ利用可能でな
いが、プロセッサIDは既に利用可能であるかも知れ
ず、適切な区画情報及びアドレス・マップを選択するた
めに使用されてよい。発行プロセッサがその区画に割り
当てられていない無効メモリ・アドレスにアクセスして
いることを、もし区画マネージャが決定すると、トラン
ザクション・マネージャはトランザクションの状態21
3でトランザクション・ディスクリプタ210を無効に
マークすることを命令される。アドレス・マップの探索
時間は、キャッシュ・トランザクションの最小可能応答
時間に制限されなければならない。すべてのプロセッサ
は、要求されたアドレスを求めてそれら自身のキャッシ
ュでルックアップを実行しなければならないから、2レ
ベル・テーブル又はハッシュ・テーブルのような更に複
雑なアドレス・マップを走査する場合でも、十分な時間
が利用可能である。そうでない場合、それはトランザク
ションが正当であることをトランザクション・マネージ
ャ201へ知らせる。
【0044】もし応答がシステム通信バス上を通過する
と、トランザクション・マネージャ201はトランザク
ションの完了をマークし、それをペンディング・バッフ
ァ202から除去する。しかし、もし区画マネージャ4
00によって無効フラグが立てられると、トランザクシ
ョン・マネージャ201は、プロセッサ・リセット信号
402を、IDがトランザクション・ディスクリプタの
中に記憶されている違反プロセッサへ即時に出す。
【0045】更に、ReadWithIntentToModifyへの応答
で、トランザクション・マネージャは、通信バス上を移
動しているデータのコピーをフェッチするようにキャプ
チャ・バッファ401を活性化し、データをメモリへ書
き戻すようにDRAMコントローラ220へ命令する。
MUX404を使用して、DRAMコントローラ220
は、書き込むのに使用されるデータが、通信バス100
ではなくキャプチャ・バッファ401から取られるよう
にする。代替的に、通信バス又はバッファのようなデー
タ・ソースの追加機能を含むように、DRAMコントロ
ーラ220のコマンド・セットを拡張することができ
る。更に、通信バス100上を通過している最後のデー
タ・ラインをフェッチするために、キャプチャ・バッフ
ァ401を常にアクティブにしてもよい。
【0046】キャプチャ・バッファ401が導入される
理由は、一般的な場合に、応答が通信バス100上を通
過しているとき、データ待ち行列がエントリーを保持す
るように解放されていることを保証されないからであ
る。通信バス上でデータが有効である機会のウィンドウ
は小さいので、キャプチャ・バッファをデータ待ち行列
から減結合するのがよい。すべての場合に、DRAMコ
ントローラ220がデータを書き戻している間にキャッ
シュ・ラインのコピーが各ReadWithIntentToModify応答
のために保存されることを保証するため、キャプチャ・
バッファは十分な数のエントリーを有しなければならな
い。代替的に、これは異常なシステム条件であるから、
メモリ・コントローラ220は、メモリの不整合を修復
するために、「捕捉及び書き戻し」の短い時間間隔の間
に、通信バス100へのアクセスをロックしてもよい。
【0047】図5は、3つのアクティブな区画を有する
8プロセッサ・システムのために区画マネージャ400
(図4)によって管理される区画情報の1つの実施形態
を示す。先ず、プロセッサ識別子からプロセッサ区画へ
のマッピングが、テーブル・ルックアップ・メカニズム
501を介して与えられる。更に、各区画のために、メ
モリ・アクセス・マップ502が存在する。最も平凡な
形式では、メモリ・アクセス・マップ502は2列のテ
ーブルであり、その行503はこの区画のメモリのため
に有効アクセス範囲、例えば始まり504、終わり50
5を限定する。有効時には、メモリ・アクセス・マップ
502はヒットがあるかを探索される。加算器、減算
器、及び比較器を各行に付加することによって、探索を
並列に実行してよい。より大きなセットのメモリ領域に
ついては、釣り合った2進デシジョン・ツリーを使用し
てよい。
【0048】更に、図5は、メモリ・アドレス・マップ
502によって定義される結果のメモリ割り当て509
を示す。そこでは、アドレスはアルファベット順になっ
ているものと仮定される。図示されるように、メモリ領
域510、511、512、は重複するように選択され
てよい。現在、区画間キャッシュ・コヒーレントなメモ
リ領域が限定され、区画はこれらの領域を介して通信す
るようになっている。キャッシュ・コヒーレントな共有
区画間メモリ領域513の確立は、ロッキング・メカニ
ズムの効率的実現を可能にし、プロセッサがキャッシュ
内でロック状況変化をポーリングすることを可能にす
る。対照的に、キャッシュ・コヒーレントでない共有区
画間メモリ領域は、アクセスしているメモリによってロ
ックが検査されることを必要とし、これは通信バスの活
動を増大する結果となる。
【0049】区画マネージャは、ブート時又は構成時に
受け取る命令に従って、メモリ・アクセス・マップ50
2を構成することができる。この構成は、多様な方法、
例えば、ブート管理プログラムのような構成エージェン
トへ接続されたI2Cバスを介してNVRAM(これは
プロセッサからアクセスできない)へ書き込むことによ
って、達成することができる。
【0050】本発明は例示的且つ好ましい実施形態に関
して図示され説明されたが、従属項の範囲によってのみ
限定される本発明の趣旨及び範囲から逸脱することな
く、形式及び詳細について前記及び他の変更がなされて
よいことは、当業者によって理解されるであろう。
【0051】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)複数のプロセッサ、共有メモリ、共有通信バス、
及びメモリ・コントローラを含むキャッシュ・コヒーレ
ントな対称型マルチプロセッサ・システムでメモリを区
画化する方法であって、前記共有メモリを独立領域へ分
割し、前記領域の各々を前記プロセッサの1つへ割り当
て、前記プロセッサを、前記共有通信バス上の単一キャ
ッシュ・コヒーレンス・ドメインで実行し、アドレス
が、使用中のプロセッサへ割り当てられたメモリ領域の
外側にあるかどうかを検出するため、すべてのメモリ・
アクセス・メッセージをインターセプト及び処理し、前
記メモリ領域の1つのアドレス違反が検出されたとき、
実行されたメモリ・アクセス動作をアボートし、前記プ
ロセッサをリセットするステップを含む、メモリを区画
化する方法。 (2)前記プロセッサの各々が、関連づけられたキャッ
シュ・メモリを有する、上記(1)に記載の方法。 (3)前記共有メモリが、前記共有通信バスを介して前
記プロセッサの各々によってアクセス可能である、上記
(2)に記載の方法。 (4)前記メモリ・アクセス・トラフィックが、前記メ
モリ・コントローラによって処理される、上記(3)に
記載の方法。 (5)前記メモリ・コントローラが、前記プロセッサの
各々がアクセスを許される前記メモリの有効アドレス範
囲を指定する区画アドレス・マップを提供する、上記
(4)に記載の方法。 (6)前記区画アドレス・マップでの重複を許すことに
よって、共有ロック及び他の区画間通信プロトコルを実
行するためのキャッシュ・コヒーレントな区画間共有メ
モリ領域をさらに確立する、上記(5)に記載の方法。 (7)前記メモリ・コントローラが、前記プロセッサの
各々によって実行される各メモリ・アクセスの有効性
を、前記メモリにアクセスする前に前記区画アドレス・
マップに照らして検査する、上記(6)に記載の方法。 (8)キャッシュ・コヒーレンス・トラフィックが、前
記共有通信バス上に追加のサイクルを導入することなく
モニタされる、上記(7)に記載の方法。 (9)各々のキャッシュ間トランザクションがモニタさ
れ、且つ前記区画アドレス・マップに照らして検査され
る、上記(8)に記載の方法。 (10)前記キャッシュ間トランザクションに関連づけ
られたデータのコピーが保存され、キャッシュの不整合
が前記キャッシュ間トランザクションから生じた場合
に、前記保存されたデータが、前記キャッシュの不整合
を訂正するために使用される、上記(9)に記載の方
法。 (11)マシンで読み取り可能なコンピュータ・プログ
ラム装置であって、複数のプロセッサ、共有メモリ、共
有通信バス、及びメモリ・コントローラを含むキャッシ
ュ・コヒーレントな対称型マルチプロセッサ・システム
でメモリを区画化する方法ステップを実行するためにマ
シンによって実行可能な命令のプログラムを実体的に実
現し、前記方法は、前記共有メモリを独立領域へ分割
し、前記領域の各々を前記プロセッサの1つへ割り当
て、前記プロセッサを、前記共有通信バス上の単一キャ
ッシュ・コヒーレンス・ドメインで実行し、アドレス
が、使用中のプロセッサへ割り当てられたメモリ領域の
外側にあるかどうかを検出するため、すべてのメモリ・
アクセス・メッセージをインターセプト及び処理し、前
記メモリ領域の1つのアドレス違反が検出されたとき、
実行されたメモリ・アクセス動作をアボートし、前記プ
ロセッサをリセットするステップを含む、コンピュータ
・プログラム装置。 (12)前記プロセッサの各々が、関連づけられたキャ
ッシュ・メモリを有する、上記(11)に記載のコンピ
ュータ・プログラム装置。 (13)前記共有メモリが、前記共有通信バスを介して
前記プロセッサの各々によってアクセス可能である、上
記(12)に記載のコンピュータ・プログラム装置。 (14)前記メモリ・アクセス・トラフィックが、前記
メモリ・コントローラによって処理される、上記(1
3)に記載のコンピュータ・プログラム装置。 (15)前記メモリ・コントローラが、前記プロセッサ
の各々がアクセスを許される前記メモリの有効アドレス
範囲を指定する区画アドレス・マップを提供する、上記
(14)に記載のコンピュータ・プログラム装置。 (16)前記区画アドレス・マップでの重複を許すこと
によって、共有ロック及び他の区画間通信プロトコルを
実行するためのキャッシュ・コヒーレントな区画間共有
メモリ領域を確立する、上記(15)に記載のコンピュ
ータ・プログラム装置。 (17)前記メモリ・コントローラが、前記プロセッサ
の各々によって実行される各メモリ・アクセスの有効性
を、前記メモリにアクセスする前に前記区画アドレス・
マップに照らして検査する、上記(16)に記載のコン
ピュータ・プログラム装置。 (18)キャッシュ・コヒーレンス・トラフィックが、
前記共有通信バス上に追加のサイクルを導入することな
くモニタされる、上記(17)に記載のコンピュータ・
プログラム装置。 (19)各々のキャッシュ間トランザクションがモニタ
され、且つ前記区画アドレス・マップに照らして検査さ
れる、上記(18)に記載のコンピュータ・プログラム
装置。 (20)前記キャッシュ間トランザクションに関連づけ
られたデータのコピーが保存され、キャッシュの不整合
が前記キャッシュ間トランザクションから生じた場合
に、前記保存されたデータが、前記キャッシュの不整合
を訂正するために使用される、上記(19)に記載のコ
ンピュータ・プログラム装置。 (21)複数のプロセッサ、共有メモリ、共有通信バ
ス、及びメモリ・コントローラを含むキャッシュ・コヒ
ーレントな対称型マルチプロセッサ・システムでメモリ
を区画化する装置であって、ここで前述プロセッサは単
一キャッシュ・コヒーレンス・ドメインで実行され、前
記共有メモリを独立領域へ分割し、前記領域の各々を前
記プロセッサの1つへ割り当てる手段と、使用中のプロ
セッサへ割り当てられたメモリ領域の外側にあるメモリ
にアクセスしようとしているトランザクションを検出
し、前記検出されたトランザクションを無効としてマー
クするため、前記トランザクションを処理する区画管理
手段と、アドレス違反が検出されたとき、実行されたメ
モリ・アクセス動作をアボートし、前記使用中のプロセ
ッサをリセットするトランザクション管理手段とを含
む、装置。 (22)前記プロセッサの各々が、関連づけられたキャ
ッシュ・メモリを有する、上記(21)に記載の装置。 (23)前記共有メモリが、前記共有通信バスを介して
前記プロセッサの各々によってアクセス可能である、上
記(22)に記載の装置。 (24)前記メモリ・アクセス・トラフィックが、前記
メモリ・コントローラによって処理される、上記(2
3)に記載の装置。 (25)前記メモリ・コントローラが、前記プロセッサ
の各々がアクセスを許される前記メモリの有効アドレス
範囲を指定する区画アドレス・マップを提供する、上記
(24)に記載の装置。 (26)前記区画アドレス・マップでの重複を許すこと
によって、共有ロック及び他の区画間通信プロトコルを
実行するためのキャッシュ・コヒーレントな区画間共有
メモリ領域を確立する、上記(25)に記載の装置。 (27)前記メモリ・コントローラが、前記プロセッサ
の各々によって実行される各メモリ・アクセスの有効性
を、前記メモリにアクセスする前に前記区画アドレス・
マップに照らして検査する、上記(26)に記載の装
置。 (28)キャッシュ・コヒーレンス・トラフィックが、
前記共有通信バス上に追加のサイクルを導入することな
くモニタされる、上記(27)に記載の装置。 (29)各々のキャッシュ間トランザクションがモニタ
され、且つ前記区画アドレス・マップに照らして検査さ
れる、上記(28)に記載の装置。 (30)前記キャッシュ間トランザクションに関連づけ
られたデータのコピーが保存され、メモリの不整合が前
記キャッシュ間トランザクションから生じた場合に、前
記保存されたデータが、前記キャッシュの不整合を訂正
するために使用される、上記(29)に記載の装置。 (31)共有メモリ、共有通信バス、データ待ち行列、
及びメモリ・コントローラを含むキャッシュ・コヒーレ
ントな対称型マルチプロセッサ・システムで区画化メモ
リを制御する装置であって、前記通信バス上を転送され
たトランザクションによるメモリ・アドレス違反を検出
し、メモリ・アドレス違反が検出された場合に、前記ト
ランザクションを無効としてマークするトランザクショ
ン・マネージャ手段と、前記トランザクションの各々の
ために前記通信バス上を転送されているデータを捕捉す
るキャプチャ・バッファ手段と、前記トランザクション
・マネージャからの信号に従って、前記メモリへ書き込
まれるデータを、前記データ待ち行列の代わりに前記キ
ャプチャ・バッファから導くマルチプレクサとを含む、
区画化メモリを制御する装置。 (32)前記メモリ・アドレス違反が検出された場合
に、前記トランザクション・マネージャ手段が前記トラ
ンザクションをアボートし、且つ前記使用中のプロセッ
サをリセットする、上記(31)に記載の装置。 (33)使用中の前記プロセッサへ割り当てられたメモ
リ領域の外側にあるメモリが前記トランザクションによ
ってアクセスされようとしたことを検出し、前記トラン
ザクションを無効としてマークするため信号を前記トラ
ンザクション・マネージャ手段へ送る区画マネージャ手
段をさらに含む、上記(32)に記載の装置。 (34)前記区画マネージャ手段が、係属中のトランザ
クションのためにトランザクション・タイプ、メモリ・
アドレス、及び前記使用中のプロセッサのCPUID信
号を前記通信バスから受け入れる、上記(33)に記載
の装置。
【図面の簡単な説明】
【図1】共有メモリ・ベースの対称型マルチプロセッサ
・システムの一般的アーキテクチャを示す図である。
【図2】対称型マルチプロセッサ・システムで使用され
るメモリ・コントローラの一般的アーキテクチャ及びコ
ンポーネントを示す図である。
【図3】キャッシュ・コヒーレントな対称型マルチプロ
セッサ・システムを区画化するときメモリ欠陥の適切な
分別を管理するトランザクションの流れ図である。
【図4】区画管理、アドレス検査、及びキャッシュ・コ
ヒーレンスの管理を組み込まれたメモリ・コントローラ
の一般的アーキテクチャ及びコンポーネントを示す図で
ある。
【図5】区画管理情報、特に区画別アドレス・アクセス
・マップの例示的レイアウトを示す図である。
【符号の説明】
100 システム通信バス 101 プロセッサ(CPU) 102 キャッシュ 103 割り込みコントローラ 104 I/Oコントローラ 110 メモリ・コントローラ 111 共有メモリ 200 通信バス及びメモリ・コントローラ 201 トランザクション・マネージャ 202 ペンディング・バッファ 210 トランザクション・ディスクリプタ 211 アドレス 212 トランザクション・タイプ 213 現在の状態213 220 メモリ(DRAM)コントローラ 230 データ待ち行列 240 アドレス 242 捕捉データ 241 トランザクション・タイプ 400 区画マネージャ 401 キャプチャ・バッファ 402 プロセッサ・リセット信号 403 発行プロセッサID 404 MUX 501 テーブル・ルックアップ・メカニズム 502 メモリ・アクセス(アドレス)・マップ 503 行 504 始まり 505 終わり 509 メモリ割り当て 510 メモリ領域 511 メモリ領域 512 メモリ領域 513 共有区画間メモリ領域
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 12/02 510 G06F 12/02 510M 12/14 310 12/14 310H (72)発明者 ダグラス・ジェイ・ジョーセフ アメリカ合衆国06811 コネティカット 州、 ダンバリィ、 ブラグトン・アヴ ェニュー 6 (56)参考文献 特開 平1−266643(JP,A) 特開 平2−50237(JP,A) 特開 平3−212749(JP,A) 特開 平8−16529(JP,A) 高橋義造編,並列処理機構,日本,丸 善株式会社,1989年 8月25日,初版, p.186−199 (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12 G06F 12/14 G06F 12/00 550 - 12/06 G06F 13/16 - 13/18 G06F 15/16 - 15/177

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ、共有メモリ、共有通
    信バス、及びメモリ・コントローラを含むキャッシュ・
    コヒーレントな対称型マルチプロセッサ・システムで区
    画化されたメモリを制御する方法であって、 前記複数のプロセッサを、前記共有通信バス上の単一キ
    ャッシュ・コヒーレンス・ドメインで実行し、 総てのプロセッサが前記共有通信バス上に置かれた要求
    トランザクションをスヌーピングするのと並行し且つプ
    ロセッサの1つによって応答が出される時点までに、前
    記トランザクションの要求するアドレスが要求元プロセ
    ッサへ割り当てられたメモリ区画内にあるか否か、即
    ち、前記トランザクションが有効であるか否かを決定
    るステップ、 前記トランザクションが無効であると決定されたときに
    は、前記共有通信バス上の応答キャッシュ・ラインのコ
    ピーを保存し、その後、該保存されたキャッシュ・ライ
    ンを、応答したプロセッサに割り当てられたメモリ区画
    に書き戻すステップ、 を含む方法。
  2. 【請求項2】 前記トランザクションの有効性を決定す
    る前に、前記応答が修正することを意図した読取に対す
    る応答であるか否かを決定するステップをさらに含む、
    請求項1記載の方法。
  3. 【請求項3】 前記トランザクションの有効性が決定さ
    れた後であって、前記応答キャッシュ・ラインのコピー
    を保存する前に、前記応答キャッシュ・ラインが変更状
    態であるか否かを決定するステップをさらに含む、請求
    項1または2記載の方法。
  4. 【請求項4】前記共有メモリが、前記共有通信バスを介
    して前記プロセッサの各々によってアクセス可能であ
    る、請求項1〜3のいずれか1項に記載の方法。
  5. 【請求項5】 前記各ステップが、前記メモリ・コント
    ローラによって処理される、請求項1〜のいずれか1
    項に記載の方法。
  6. 【請求項6】前記メモリ・コントローラが、前記プロセ
    ッサの各々がアクセスを許される前記メモリの有効アド
    レス範囲を指定する区画アドレス・マップを提供する、
    請求項1〜5のいずれか1項に記載の方法。
  7. 【請求項7】前記区画アドレス・マップでの重複を許す
    ことによって、共有ロック及び他の区画間通信プロトコ
    ルを実行するためのキャッシュ・コヒーレントな区画間
    共有メモリ領域をさらに確立する、請求項6に記載の方
    法。
  8. 【請求項8】前記メモリ・コントローラが、前記プロセ
    ッサの各々によって実行される各メモリ・アクセスの有
    効性を、前記区画アドレス・マップに照らして検査す
    る、請求項6または7に記載の方法。
  9. 【請求項9】キャッシュ・コヒーレンス・トラフィック
    が、前記共有通信バス上に追加のサイクルを導入するこ
    となくモニタされる、請求項1〜8のいずれか1項に記
    載の方法。
  10. 【請求項10】 各々のキャッシュ間トランザクショ
    ンがモニタされ、且つ前記区画アドレス・マップに照ら
    して検査される、請求項6〜のいずれか1項に記載の
    方法。
  11. 【請求項11】 前記トランザクションが無効であると
    決定されたとき、実行されたメモリ・アクセス動作をア
    ボートし、要求元プロセッサをリセットするステップを
    さらに含む、請求項1〜10のいずれか1項記載の方
    法。
  12. 【請求項12】 複数のプロセッサ、共有メモリ、共有
    通信バス、及びメモリ・コントローラを含むキャッシュ
    ・コヒーレントな対称型マルチプロセッサ・システムで
    区画化されたメモリを制御する装置であって、ここで前
    記複数のプロセッサは単一キャッシュ・コヒーレンス・
    ドメインで実行され、 前記メモリ・コントローラが、 総てのプロセッサが前記共有通信バス上に置かれた要求
    トランザクションをスヌーピングするのと並行し且つプ
    ロセッサの1つによって応答が出される時点までに、前
    記トランザクションが要求するアドレスが要求元プロセ
    ッサへ割り当てられたメモリ区画内にあるか否かを決定
    する、区画管理手段と、 メモリ・アドレス違反が検出された、即ち、前記アドレ
    スが前記メモリ区間内では無いと決定されたときに前記
    区画管理手段からの命令を受け取り、前記トランザクシ
    ョンを無効としてマークする、トランザクション・管理
    手段と、 アドレス違反が検出されたときに前記トランザクション
    ・管理手段により活性化され、前記共有通信バス上の応
    答キャッシュ・ラインのコピーを保存するキャプチャ・
    バッファ手段と、 前記キャプチャ・バッファ手段から前記コピーを受け取
    り、応答したプロセッサに割り当てられたメモリ区画に
    前記コピーを書き戻す、DRAMコントローラとを含む装
    置。
  13. 【請求項13】前記共有メモリが、前記共有通信バスを
    介して前記プロセッサの各々によってアクセス可能であ
    る、請求項12に記載の装置。
  14. 【請求項14】前記区画管理手段が、前記プロセッサの
    各々がアクセスを許される前記メモリの有効アドレス範
    囲を指定する区画アドレス・マップを提供する、請求項
    12又は13に記載の装置。
  15. 【請求項15】前記区画アドレス・マップでの重複を許
    すことによって、共有ロック及び他の区画間通信プロト
    コルを実行するためのキャッシュ・コヒーレントな区画
    間共有メモリ領域を確立する、請求項14に記載の装
    置。
  16. 【請求項16】前記区画管理手段が、前記プロセッサの
    各々によって実行される各メモリ・アクセスの有効性
    を、前記メモリにアクセスする前に前記区画アドレス・
    マップに照らして検査する、請求項14または15に記
    載の装置。
  17. 【請求項17】キャッシュ・コヒーレンス・トラフィッ
    クが、前記共有通信バス上に追加のサイクルを導入する
    ことなくモニタされる、請求項12〜16のいずれか1
    に記載の装置。
  18. 【請求項18】前記トランザクション・管理手段からの
    信号に従って、前記メモリへ書き戻されるデータを、前
    記キャプチャ・バッファから導くマルチプレクサをさら
    に含む、請求項12〜17のいずれか1項に記載の装
    置。
  19. 【請求項19】 前記メモリ・アドレス違反が検出され
    た場合に、前記トランザクション・管理手段が前記トラ
    ンザクションをアボートし、且つ前記使用中のプロセッ
    サをリセットする、請求項12〜18のいずれか1項に
    記載の装置。
  20. 【請求項20】前記区画管理手段が、係属中のトランザ
    クションのためにトランザクション・タイプ、メモリ・
    アドレス、及び前記使用中のプロセッサのCPU ID
    信号を前記通信バスから受け入れる、請求項12〜19
    のいずれか1項に記載の装置。
JP2000070709A 1999-03-29 2000-03-14 キャッシュ・コヒーレントな対称型マルチプロセッサ・システムで区画化されたメモリを制御する方法及び装置 Expired - Fee Related JP3501357B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/277934 1999-03-29
US09/277,934 US6449699B2 (en) 1999-03-29 1999-03-29 Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems

Publications (2)

Publication Number Publication Date
JP2000305841A JP2000305841A (ja) 2000-11-02
JP3501357B2 true JP3501357B2 (ja) 2004-03-02

Family

ID=23063003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000070709A Expired - Fee Related JP3501357B2 (ja) 1999-03-29 2000-03-14 キャッシュ・コヒーレントな対称型マルチプロセッサ・システムで区画化されたメモリを制御する方法及び装置

Country Status (3)

Country Link
US (1) US6449699B2 (ja)
JP (1) JP3501357B2 (ja)
CN (1) CN1143230C (ja)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996843B2 (en) * 1999-08-25 2011-08-09 Qnx Software Systems Gmbh & Co. Kg Symmetric multi-processor system
US7552440B1 (en) * 1999-09-28 2009-06-23 Rockwell Automation Technologies, Inc. Process communication multiplexer
US7529799B2 (en) * 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6751616B1 (en) * 2000-01-28 2004-06-15 Oracle International Corp. Techniques for DLM optimization with re-mapping responsibility for lock management
US6920454B1 (en) 2000-01-28 2005-07-19 Oracle International Corporation Techniques for DLM optimization with transferring lock information
US7246120B2 (en) 2000-01-28 2007-07-17 Oracle International Corporation Techniques for achieving higher availability of resources during reconfiguration of a cluster
US6594785B1 (en) * 2000-04-28 2003-07-15 Unisys Corporation System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions
US6636949B2 (en) * 2000-06-10 2003-10-21 Hewlett-Packard Development Company, L.P. System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
US6772299B2 (en) * 2001-07-16 2004-08-03 Sun Microsystems, Inc. Method and apparatus for caching with variable size locking regions
JP4043225B2 (ja) * 2001-12-10 2008-02-06 株式会社ルネサステクノロジ キャッシュ装置および方法
US7467287B1 (en) * 2001-12-31 2008-12-16 Apple Inc. Method and apparatus for vector table look-up
US6925540B2 (en) * 2002-05-02 2005-08-02 Intel Corporation Systems and methods for chassis identification
US7266658B2 (en) 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US20040107240A1 (en) * 2002-12-02 2004-06-03 Globespan Virata Incorporated Method and system for intertask messaging between multiple processors
US7096307B2 (en) * 2002-12-18 2006-08-22 Freescale Semiconductor, Inc. Shared write buffer in a peripheral interface and method of operating
US7281076B2 (en) * 2003-04-30 2007-10-09 Hewlett-Packard Development Company, L.P. Form factor converter and tester in an open architecture modular computing system
US20040230866A1 (en) * 2003-04-30 2004-11-18 Hewlett-Packard Development Company, L.P. Test system for testing components of an open architecture modular computing system
JP4100256B2 (ja) * 2003-05-29 2008-06-11 株式会社日立製作所 通信方法および情報処理装置
US7355601B2 (en) * 2003-06-30 2008-04-08 International Business Machines Corporation System and method for transfer of data between processors using a locked set, head and tail pointers
US6862027B2 (en) * 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
US7139881B2 (en) * 2003-09-25 2006-11-21 International Business Machines Corporation Semiconductor device comprising a plurality of memory structures
US20050076179A1 (en) * 2003-10-02 2005-04-07 International Business Machines Corporation Cache optimized logical partitioning a symmetric multi-processor data processing system
JP2005132525A (ja) * 2003-10-29 2005-05-26 Toyota Industries Corp 産業車輌における立席型運転席用背もたれ構造
EP1544820B1 (en) * 2003-12-11 2013-07-31 Atos Worldline S.A. Electronic data processing device
EP1542181A1 (en) * 2003-12-11 2005-06-15 Banksys S.A. Electronic data processing device
US7379952B2 (en) * 2004-01-30 2008-05-27 Oracle International Corporation Techniques for multiple window resource remastering among nodes of a cluster
DE102004009497B3 (de) * 2004-02-27 2005-06-30 Infineon Technologies Ag Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems
JP2005275629A (ja) * 2004-03-23 2005-10-06 Nec Corp マルチプロセッサシステム、及び、メモリアクセス方法
US7089341B2 (en) * 2004-03-31 2006-08-08 International Business Machines Corporation Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform
US7362705B2 (en) * 2004-05-13 2008-04-22 International Business Machines Corporation Dynamic load-based credit distribution
US7840757B2 (en) * 2004-07-29 2010-11-23 International Business Machines Corporation Method and apparatus for providing high speed memory for a processing unit
US20060047862A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization
US20060045031A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization using multiple state machines
US7774562B2 (en) * 2004-09-17 2010-08-10 Hewlett-Packard Development Company, L.P. Timeout acceleration for globally shared memory transaction tracking table
US7546401B2 (en) * 2004-09-23 2009-06-09 International Business Machines Corporation Byte to byte alignment of multi-path data
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
US7577794B2 (en) 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US20060080511A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Enhanced bus transactions for efficient support of a remote cache directory copy
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US7385925B2 (en) * 2004-11-04 2008-06-10 International Business Machines Corporation Data flow control method for simultaneous packet reception
US7260765B2 (en) * 2004-12-17 2007-08-21 International Business Machines Corporation Methods and apparatus for dynamically reconfigurable parallel data error checking
US7499452B2 (en) * 2004-12-28 2009-03-03 International Business Machines Corporation Self-healing link sequence counts within a circular buffer
US20060140122A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Link retry per virtual channel
US20060159023A1 (en) * 2005-01-14 2006-07-20 International Business Machines Corporation CRC error history mechanism
US7330925B2 (en) * 2005-02-24 2008-02-12 International Business Machines Corporation Transaction flow control mechanism for a bus bridge
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7234017B2 (en) * 2005-02-24 2007-06-19 International Business Machines Corporation Computer system architecture for a processor connected to a high speed bus transceiver
US7206886B2 (en) * 2005-02-24 2007-04-17 International Business Machines Corporation Data ordering translation between linear and interleaved domains at a bus interface
US7275124B2 (en) 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7275125B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Pipeline bit handling circuit and method for a bus bridge
US7194567B2 (en) * 2005-02-24 2007-03-20 International Business Machines Corporation Method and system for ordering requests at a bus interface
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US20060200469A1 (en) * 2005-03-02 2006-09-07 Lakshminarayanan Chidambaran Global session identifiers in a multi-node system
JP4362454B2 (ja) * 2005-04-07 2009-11-11 富士通株式会社 キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
US7421529B2 (en) * 2005-10-20 2008-09-02 Qualcomm Incorporated Method and apparatus to clear semaphore reservation for exclusive access to shared memory
US7500062B2 (en) * 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
US8719526B2 (en) * 2006-01-05 2014-05-06 Broadcom Corporation System and method for partitioning multiple logical memory regions with access control by a central control agent
US7844783B2 (en) * 2006-10-23 2010-11-30 International Business Machines Corporation Method for automatically detecting an attempted invalid access to a memory address by a software application in a mainframe computer
GB2448151B (en) * 2007-04-03 2011-05-04 Advanced Risc Mach Ltd Memory domain based security control within data processing systems
GB2448149B (en) * 2007-04-03 2011-05-18 Advanced Risc Mach Ltd Protected function calling
US7792014B2 (en) * 2007-09-28 2010-09-07 Integrated Device Technology, Inc. Method of skipping nullified packets during mass replay from replay buffer
US7725663B2 (en) * 2007-10-31 2010-05-25 Agere Systems Inc. Memory protection system and method
US8732709B2 (en) * 2008-02-05 2014-05-20 Red Hat, Inc. Transaction management in a web service messaging environment
US9035959B2 (en) 2008-03-28 2015-05-19 Intel Corporation Technique to share information among different cache coherency domains
US8122222B2 (en) 2008-04-18 2012-02-21 International Business Machines Corporation Access speculation predictor with predictions based on a scope predictor
US8131974B2 (en) 2008-04-18 2012-03-06 International Business Machines Corporation Access speculation predictor implemented via idle command processing resources
US8127106B2 (en) 2008-04-18 2012-02-28 International Business Machines Corporation Access speculation predictor with predictions based on a domain indicator of a cache line
US8122223B2 (en) 2008-04-18 2012-02-21 International Business Machines Corporation Access speculation predictor with predictions based on memory region prior requestor tag information
KR101474478B1 (ko) * 2008-05-30 2014-12-19 어드밴스드 마이크로 디바이시즈, 인코포레이티드 로컬 및 글로벌 데이터 공유
US8414471B2 (en) 2008-10-28 2013-04-09 Mobile Aspects, Inc. Endoscope storage cabinet, tracking system, and signal emitting member
US9015446B2 (en) * 2008-12-10 2015-04-21 Nvidia Corporation Chipset support for non-uniform memory access among heterogeneous processing units
US8176282B2 (en) * 2009-03-11 2012-05-08 Applied Micro Circuits Corporation Multi-domain management of a cache in a processor system
CN102486753B (zh) 2009-11-30 2015-09-16 国际商业机器公司 构建及允许访问高速缓存的方法、设备及存储系统
US8370595B2 (en) * 2009-12-21 2013-02-05 International Business Machines Corporation Aggregate data processing system having multiple overlapping synthetic computers
US8364922B2 (en) * 2009-12-21 2013-01-29 International Business Machines Corporation Aggregate symmetric multiprocessor system
US8543770B2 (en) 2010-05-26 2013-09-24 International Business Machines Corporation Assigning memory to on-chip coherence domains
US8648699B2 (en) 2010-07-19 2014-02-11 Mobile Aspects, Inc. Item tracking system and arrangement
JP5121896B2 (ja) 2010-08-11 2013-01-16 株式会社東芝 マルチコアプロセッサシステムおよびマルチコアプロセッサ
EP2461251B1 (en) * 2010-12-03 2017-06-21 Robert Bosch GmbH Memory protection unit and a method for controlling an access to a memory device
US8949551B2 (en) 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
US9116845B2 (en) 2011-02-23 2015-08-25 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US20120254526A1 (en) * 2011-03-28 2012-10-04 Advanced Micro Devices, Inc. Routing, security and storage of sensitive data in random access memory (ram)
WO2012131884A1 (ja) * 2011-03-28 2012-10-04 富士通株式会社 マルチコアプロセッサシステム
CN102147755B (zh) * 2011-04-14 2012-07-04 中国人民解放军国防科学技术大学 一种基于内存缓存技术的多核系统容错方法
US8639895B2 (en) 2011-07-14 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for memory region descriptor attribute override
US9128845B2 (en) 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
US9690737B2 (en) 2012-07-31 2017-06-27 Hewlett Packard Enterprise Development Lp Systems and methods for controlling access to a shared data structure with reader-writer locks using multiple sub-locks
GB2511794B (en) * 2013-03-13 2020-12-02 Advanced Risc Mach Ltd A Protection Unit and Method for Controlling Access by Plural Processes to a Storage Unit
US9645942B2 (en) 2013-03-15 2017-05-09 Intel Corporation Method for pinning data in large cache in multi-level memory system
US9892618B2 (en) 2013-08-09 2018-02-13 Mobile Aspects, Inc. Signal emitting member attachment system and arrangement
US9348013B2 (en) 2013-09-18 2016-05-24 Mobile Aspects, Inc. Item hanger arrangement, system, and method
US9224124B2 (en) 2013-10-29 2015-12-29 Mobile Aspects, Inc. Item storage and tracking cabinet and arrangement
US10034400B2 (en) 2013-12-04 2018-07-24 Mobile Aspects, Inc. Item storage arrangement system and method
US9383932B2 (en) * 2013-12-27 2016-07-05 Intel Corporation Data coherency model and protocol at cluster level
US9372752B2 (en) 2013-12-27 2016-06-21 Intel Corporation Assisted coherent shared memory
US9817693B2 (en) 2014-03-14 2017-11-14 International Business Machines Corporation Coherence protocol augmentation to indicate transaction status
US9436972B2 (en) * 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
KR20150136675A (ko) * 2014-05-27 2015-12-08 에스케이하이닉스 주식회사 반도체 장치 및 이를 포함하는 반도체 시스템
US10540284B2 (en) * 2014-07-29 2020-01-21 Nxp Usa, Inc. Cache-coherent multiprocessor system and a method for detecting failures in a cache-coherent multiprocessor system
US20180203807A1 (en) * 2017-01-13 2018-07-19 Arm Limited Partitioning tlb or cache allocation
US10303603B2 (en) * 2017-06-13 2019-05-28 Microsoft Technology Licensing, Llc Low power multi-core coherency
US10296741B2 (en) * 2017-07-27 2019-05-21 International Business Machines Corporation Secure memory implementation for secure execution of virtual machines
US10540286B2 (en) * 2018-04-30 2020-01-21 Hewlett Packard Enterprise Development Lp Systems and methods for dynamically modifying coherence domains
US11461263B2 (en) 2020-04-06 2022-10-04 Samsung Electronics Co., Ltd. Disaggregated memory server
US20210373951A1 (en) * 2020-05-28 2021-12-02 Samsung Electronics Co., Ltd. Systems and methods for composable coherent devices
US20210374056A1 (en) 2020-05-28 2021-12-02 Samsung Electronics Co., Ltd. Systems and methods for scalable and coherent memory devices
CN112380108B (zh) * 2020-07-10 2023-03-14 中国航空工业集团公司西安飞行自动控制研究所 一种面向分区空间隔离的全自动测试方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3827029A (en) 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
US4814982A (en) 1984-12-24 1989-03-21 General Electric Company Reconfigurable, multiprocessor system with protected, multiple, memories
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5295260A (en) * 1991-05-31 1994-03-15 Cray Research Systems, Inc. Memory range monitoring apparatus for a multiprocessor computer system
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5887138A (en) * 1996-07-01 1999-03-23 Sun Microsystems, Inc. Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes
US5796605A (en) * 1996-07-02 1998-08-18 Sun Microsystems, Inc. Extended symmetrical multiprocessor address mapping
US5845071A (en) 1996-09-27 1998-12-01 Hewlett-Packard Co. Error containment cluster of nodes
JP3849951B2 (ja) * 1997-02-27 2006-11-22 株式会社日立製作所 主記憶共有型マルチプロセッサ
US6360303B1 (en) * 1997-09-30 2002-03-19 Compaq Computer Corporation Partitioning memory shared by multiple processors of a distributed processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高橋義造編,並列処理機構,日本,丸善株式会社,1989年 8月25日,初版,p.186−199

Also Published As

Publication number Publication date
JP2000305841A (ja) 2000-11-02
US20010052054A1 (en) 2001-12-13
CN1143230C (zh) 2004-03-24
CN1268704A (zh) 2000-10-04
US6449699B2 (en) 2002-09-10

Similar Documents

Publication Publication Date Title
JP3501357B2 (ja) キャッシュ・コヒーレントな対称型マルチプロセッサ・システムで区画化されたメモリを制御する方法及び装置
JP4082612B2 (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
RU2443011C2 (ru) Фильтрация отслеживания с использованием кэша запросов отслеживания
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
JP3737834B2 (ja) 2重化キャッシュ・スヌープ機構
JP2003162447A (ja) エラー回復
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
JP2004505346A (ja) 多重プロセッサアーキテクチャのためのキャッシュコヒーレンシシステムおよび方法
JPH04227552A (ja) ストアスルーキャッシュ管理システム
US10761987B2 (en) Apparatus and method for processing an ownership upgrade request for cached data that is issued in relation to a conditional store operation
US7080213B2 (en) System and method for reducing shared memory write overhead in multiprocessor systems
US7523260B2 (en) Propagating data using mirrored lock caches
US7159079B2 (en) Multiprocessor system
US20020087765A1 (en) Method and system for completing purge requests or the like in a multi-node multiprocessor system
US20070005906A1 (en) Information processing apparatus and cache memory control method
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US6076147A (en) Non-inclusive cache system using pipelined snoop bus
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
JP3202939B2 (ja) キャッシュ・コヒーレンシを維持するための方法及び装置
JPH0619739B2 (ja) 多重プロセツサ・システムのキヤツシユを制御する方法
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
Mak et al. Shared-cache clusters in a system with a fully shared memory
US5907853A (en) Method and apparatus for maintaining duplicate cache tags with selectable width
JPH03230238A (ja) キャッシュメモリ制御方式

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031127

LAPS Cancellation because of no payment of annual fees