JPH0784877A - マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法 - Google Patents

マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法

Info

Publication number
JPH0784877A
JPH0784877A JP6151873A JP15187394A JPH0784877A JP H0784877 A JPH0784877 A JP H0784877A JP 6151873 A JP6151873 A JP 6151873A JP 15187394 A JP15187394 A JP 15187394A JP H0784877 A JPH0784877 A JP H0784877A
Authority
JP
Japan
Prior art keywords
instance
cache
coherency
directory
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6151873A
Other languages
English (en)
Inventor
Russell D Hoover
ラッセル・ディーン・フーバー
John C Willis
ジョン・クリストファー・ウイリス
Donald F Baldus
ドナルド・フランシス・バルダス
Frederick J Ziegler
フレデリック・ジェイコブ・ジーグラー
Lishing Liu
リシング・リュー
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 JPH0784877A publication Critical patent/JPH0784877A/ja
Pending 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/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/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/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories

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)

Abstract

(57)【要約】 (修正有) 【目的】 マルチプロセッサの相互接続システムにおけ
るコヒーレンシィを維持しかつそのための通信を最少限
とする装置及び方法を提供する。 【構成】 レコードが少なくとも1つのグローバル記憶
制御装置16に記憶される。ノード間のデータ及び同期
通信のために処理装置18とグローバル記憶制御装置と
の間に相互接続システム12が設けられる。グローバル
記憶制御装置は、レコードの各インスタンスで現在処理
装置上にあるものを追跡するコヒーレンシィ・コントロ
ーラを有する。各処理装置は、ローカル・キャッシュの
空き間隔を解放するキャッシュ管理プロセスを実行す
る。空き間隔を識別すると、その間隔に存在していたイ
ンスタンスに対応するレコードを所有するグローバル記
憶制御装置へ空通知を送り、その間隔は、その処理装置
のキャッシュ・ディレクトリ28内に無効としてマーク
され、その標識がグローバル記憶制御装置についてのコ
ヒーレンシィ・ディレクトリから削除される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサのた
めのローカル・キャッシュ記憶装置と、複数のプロセッ
サにより共有される記憶の集まりの中から引出される記
憶の間隔(interval)を追跡するためにグローバル・メ
モリベースのディレクトリを用いるグローバル記憶制御
装置とを有するマルチプロセッサ・データ処理システム
に関する。
【0002】
【従来の技術】マルチプロセッサは、問題の解決のため
にコンピュータを対等に相互接続することにより設けら
れる。特に注目されるのは、データの交換及び処理動作
の同期を通して個々の処理装置を連結する、マルチプル
命令ストリーム及びマルチプルデータ・ストリーム(mu
ltiple-instruction stream, multipl-data stream:M
IMD)アーキテクチャである。MIMDアーキテクチ
ャを適用した方が有利とされる問題としては、動作の相
互関係が容易に優先順位を予測できないような場合が挙
げられる。MIMDアーキテクチャを有するコンピュー
タにおいては、各処理装置が自身のデータについて自身
のプログラムを実行することができる。それに対して、
単一命令ストリーム及びマルチプル・データ・ストリー
ム(SIMD)システムの場合は、各プロセッサが同じ
命令セットを実行するが、それは各プロセッサ固有のデ
ータ・ストリームについてではない。
【0003】あるコンピュータに対してMIMDアーキ
テクチャを設計する場合、開発者は2つのタイプの概念
による特徴を引出す。第1のタイプは、全てのメモリ及
び入出力機能が各プロセッサに対して遠隔にありかつ各
プロセッサ間で共有されており、第2のタイプは、全て
のメモリ及び入出力機能が各プロセッサに対してローカ
ルでありかつ専用となっている。2つのタイプのアーキ
テクチャに共通するのは、同期機能が実現されかつ各処
理装置がデータを交換する相互接続システムであるとい
う点である。相互接続システムとしては、バス又はネッ
トワーク・アーキテクチャのタイプがある。いくつかの
形式の相互接続システムでは、典型的にはバスである
が、各プロセッサ、記憶装置及び入出力装置がデータ・
トラフィックを認知できる。ところが、いくつかのネッ
トワーク・アーキテクチャでは、各プロセッサ、記憶装
置及び入出力装置がデータ・トラフィックを認知するこ
とができない。
【0004】マルチプロセッサにおけるメモリの処理は
重要な設計事項である。極端な設計例としては、完全な
共有メモリを用いるタイプあるいは完全な専用メモリを
用いるタイプがある。共有メモリの方式では、全てのプ
ロセッサが遠隔のグローバル・メモリ装置へのアクセス
を行う。専用メモリの方式では、全てのメモリが各プロ
セッサに対してローカルであって単一のプロセッサによ
ってのみ直接的に用いられる。双方の方式とも一長一短
があるため、これらの方式を併用したアーキテクチャが
用いられてきた。このような併用型のアーキテクチャの
1つは、各プロセッサ又はプロセッサのグループのため
のローカル専用キャッシュと、共有遠隔メモリとを用い
るものである。このシステムでは、ローカル・キャッシ
ュとグローバル・メモリとが、そのコンピュータのメモ
リ階層の中の異なるレベルを占有している。全てのロー
カル・キャッシュ装置は、階層の中で同じレベルにあ
る。共有遠隔メモリはグローバル・メモリと呼ばれ、単
一プロセッサのコンピュータにおけるシステム・メモリ
と類似のものである。
【0005】キャッシュがグローバル・メモリの上に位
置するようなメモリ階層が存在することは、1つの共有
データがいくつかの場所に存在する値により表現される
ことを意味する。このことは、特定の論理アドレスが、
グローバル・メモリと複数のキャッシュ装置の物理的場
所に関連づけられる場合に発生する。キャッシュとシス
テム・メモリの双方が存在すること自体が、データ・コ
ヒーレンシィ(データの一貫性)の問題を生じる。1つ
の変数が、所与の時点において場所に依存する複数の値
をもつ可能性がある場合にデータ・コヒーレンシィが損
なわれる。レコードの複写をネットワーク上の様々な場
所に対して作る可能性のある同レベルのキャッシュ装置
が存在するためにコヒーレンシィは非常に複雑になる。
データのコヒーレンシィ消失には、様々な原因があり、
例えば、プロセス移行(migration)、入出力の稼働、
及びプロセッサによる潜在的又は顕在的な記憶動作が挙
げられる。
【0006】各処理装置の効果的な同期を保証するため
には、同レベルのキャッシュ装置間及びキャッシュとグ
ローバル・メモリ間のデータのコヒーレンシィを維持す
ることが必要である。言い換えるならば、論理アドレス
に関係づけられた様々な場所に記憶された各値が、一致
しているかあるいは一時的にアクセス不能であるような
何らかのマークを付けることである。このコヒーレンシ
ィの問題は、コヒーレンス・プロトコルを用いることに
より対処されてきた。コヒーレンス・プロトコルは、ロ
ーカル処理装置がそのローカル・キャッシュ内のデータ
・ブロックに有効及び無効等のマークを付ける条件を定
義することにより、様々なマルチプロセッサに対して変
数の値が無効であるという信号を送り、メモリ階層を通
して更新された変数の値を伝搬させる。
【0007】これまでに多くのコヒーレンス・プロトコ
ルが提示されている。これらのプロトコルのいくつか
は、相互接続システムを介するコヒーレンシィ通信のた
めの要求を最少限とすることに努力しており、実施する
ためにはシステム・バスベースのアーキテクチャを必要
としていた。このようなシステムの例として、米国特許
第5025365号がある。この特許では、プロセッサ
がデータ更新及びデータ無効化メッセージのための相互
接続システム通信を監視するスヌーピング(snooping:
探査)・コヒーレンシィ・プロトコルが開示されてい
る。しかしながら、マルチプロセッサのプロセッサ数が
増加するにつれて、システム・バスへのアクセスはより
いっそう困難になる。従って、バス・スヌーピングが用
いられているバスベースのシステムにおけるコヒーレン
シィを維持するために必要な通信負荷を低減するにも拘
らず、プロセッサの数が増していくとやはりある点にお
いてマルチプロセッサの性能低下が起きてしまう。よっ
て、効果的に利用できかつシステム・バスにより相互接
続できるプロセッサの全数が、所望するレベルよりも少
ない数に抑えられてしまう場合もある。
【0008】実際に広大な又は地理的に分散しているマ
ルチプロセッサについては、相互接続システムとして非
バスベースのネットワークが用いられる。米国特許第5
151989号では、このような相互接続システムに適
用できるコヒーレンシィ・プロトコルが開示されてお
り、コヒーレンシィ関連の通信を低減するためにディレ
クトリ・キャッシュ技術が用いられている。この特許で
は、データ処理システム(「クライアント」)が別のデ
ータ処理システム(「サーバ」)に対してそのサーバ上
に固定的に常駐するレコードに関する一単位のディレク
トリ情報を問合せたとき、それに続いてサーバ・システ
ムのディレクトリ構造が変更されるとサーバはイネーブ
ルとなって自動的に追加のディレクトリ情報のユニット
をクライアントへ返送する。サーバはそのレコードのコ
ヒーレンシィを維持する。サーバが、レコードについて
のコヒーレンシィを維持できないと判断した場合、その
ことをその各クライアントに知らせ、クライアントにそ
の影響のあったレコードの複写のキャッシュを除かせ
る。ところが、そのクライアントはもはやそのレコード
をキャッシュしていない場合もある。このコヒーレンシ
ィ・プロトコルのマネージャがクライアント上のレコー
ドの状態を認知していないことから、このような通信が
発生し続ける。
【0009】
【発明が解決しようとする課題】本発明の目的は、マル
チプロセッサの相互接続システムにおけるコヒーレンシ
ィ通信を最少限とするためのシステム及び方法を提供す
ることである。さらに本発明の目的は、処理装置がグロ
ーバル記憶制御装置と二地点間通信を行う場合における
マルチプロセッサのコヒーレンシィのためのシステム及
び方法を提供することである。
【0010】
【課題を解決するための手段】本発明のその他の目的、
特徴及び利点を以下の記述により明らかにする。マルチ
プロセッサは、ローカル専用キャッシュ及び少なくとも
1つのグローバル記憶制御装置を含む複数の処理装置を
有する。相互接続システムは、処理装置とグローバル記
憶制御装置との間でデータ及び同期通信を搬送する。グ
ローバル記憶制御装置は、グローバル記憶制御装置の所
有するレコードであって現在処理装置へ複写される各イ
ンスタンス(実現値)を追跡するためのコヒーレンシィ
・コントローラを含む。各処理装置は、その処理装置に
ついてのローカル・キャッシュの空き間隔(interval)
を解放させるキャッシュ管理プロセスを実行する。処理
装置が除かれるべきインスタンスを識別すると、たとえ
ローカル・キャッシュにより保有されるそのデータ表現
がグローバル記憶制御装置に与えられる必要がない場合
であっても、処理装置は、インスタンスに対応するレコ
ードを所有するグローバル記憶制御装置へ通知する。こ
の空(削除)通知(empty notification)は、そのレコ
ードの実際の空き間隔を識別するが、データ表現は含ま
ない。この空き間隔は、その処理装置についてのキャッ
シュ・ディレクトリに無効としてマークされ、そしてこ
のインスタンスに対するエントリはグローバル記憶制御
装置についてのディレクトリから削除される。
【0011】
【実施例】図1は、相互通信システム12により通信す
る複数のノードから構成される分散型プロセッサ環境1
0を示している。図示されている2つのタイプのノード
は、プロセッサ・ノード14とグローバル記憶制御装置
ノード16である。相互通信システム12としては、単
一コンピュータにおいて用いる高速通信路、ローカル・
エリア・ネットワーク又はワイド・エリア・ネットワー
クが可能である。ワイド・エリア・ネットワークは、各
ノード又はシステムもしくはシステムの混合体同士のネ
ットワークへの交換テレプロセッシング接続から構成さ
れる。高速通信路の例としては、スケーラブル・コヒー
レンス・インターフェース(ScalableCoherence Interf
ace)(IEEE標準1596)及びマルチバスII相互
接続のメッセージベース構成が挙げられる。プロセッサ
・ノード14及びグローバル記憶制御装置ノード16は
別々に表現されているが、所与のノードが符号で示され
る一方又は双方の機能を有していてもよい。しかしなが
ら一般的にグローバル記憶制御装置16は、プロセッサ
14のいずれかにより記憶装置に保持される共有メモリ
を通してアクセス可能なレコードを所有している。相互
接続システム12は、通常、プロセッサ14とグローバ
ル記憶制御装置16との間の通信セッションにおけるプ
ロセッサのスヌーピングを許さないアーキテクチャとな
っている。グローバル記憶制御装置16は、グローバル
記憶制御装置に関連するメモリに固定的に常駐するレコ
ードのデータ・コヒーレンシィを維持することを担う。
【0012】ゲートウェイ15は、相互接続システム1
2を、スヌーピング・バス17をベースとして複数のプ
ロセッサ14Bを有するマルチプル・プロセッサ・シス
テム11へと接続する。キャッシュ13はプロセッサ1
4B同士の間で共有されるが、相互接続システム12に
直接接続されたプロセッサ14へはアクセスできない。
マルチプル・プロセッサ・システム11は、相互接続シ
ステム12から見ると別のプロセッサ・ノードに見え
る。
【0013】図2は、プロセッサ14及びグローバル記
憶制御装置16の機能構成を示す図である。図1におけ
る1つのプロセッサ14は、実質的に独立したコンピュ
ータである。ここでは本発明に関係する態様のみを示し
ている。プロセッサ14は処理装置18を含む。処理装
置18は、命令の実行、割込み動作、タイミング機能、
初期プログラム・ロード、及び他のマシン関連機能のた
めのシーケンス機構及び処理機構を備えている。処理装
置18に包含される他の機能としては、ローカル・メモ
リ及びユーザが利用する入出力装置がある。
【0014】キャッシュ・コントローラ20は、コマン
ド・バス22及びアドレス・バス24により処理装置1
8へ接続される。キャッシュ・コントローラ20は、連
想メモリ26とキャッシュ・ディレクトリ28とを含む
キャッシュ・データ・アレイ装置の一部である。処理装
置18は、データ・バス30及びアドレス・バス24に
より連想メモリ26へ接続される。処理装置18は、ア
ドレス・バス24によりキャッシュ・ディレクトリ28
へ接続される。アドレス・バス24、コマンド・バス2
2及びデータ・バス30は全て、相互接続システム12
へも接続されている。
【0015】データ・バス30は、連想メモリ26から
処理装置18へのデータ転送及び相互接続システム12
から連想メモリ26へのデータ転送のために用いられ
る。キャッシュ・コントローラ20は、コマンド・バス
22を介した処理装置18からのコマンドを解釈する。
これらのコマンドは、処理装置18により要求されたデ
ータが連想メモリ26内に存在するか否か、そしてその
データが有効か無効か及び共有か排他的かを判断するた
めにキャッシュ・ディレクトリ28に保持されたタグ・
アレイに問合せをする。データは、処理装置18により
周期的に実行されるキャッシュ管理プロトコルに従って
連想メモリ26内に保持される。このようなプロトコル
は汎用的であり、一般的に、使用された最も新しいデー
タをキャッシュ内に保持しかつ最も古い使用データに置
換えることにより新しく要求されたデータに対してキャ
ッシュ内の空間を与えることを基本としている。この周
期の空き間隔を選択する機構はここでは重要ではない。
むしろ、連想メモリ26内の空き間隔が、削除のために
周期的に識別されることが重要である。各プロセッサ1
4は固有の識別子を有しており、この識別子は、そのプ
ロセッサがマルチプロセッサ10へ接続される時点又は
マルチプロセッサ10の初期プログラム・ロードの際に
与えられる。必須ではないが、仮想メモリ管理システム
が設けられることが好ましい。
【0016】グローバル記憶制御装置16は、データ・
バス34により相互接続システム12へ接続されるグロ
ーバル記憶装置又は共有メモリ装置32から構成され
る。ディレクトリ・コントローラ36は、コマンド・バ
ス38により相互接続システム12へ接続される。グロ
ーバル記憶制御ディレクトリ40は、アドレス・バス4
2により相互接続システム12、ディレクトリ・コント
ローラ36及びグローバル記憶装置32へ接続される。
ディレクトリ・コントローラ36及びグローバル記憶制
御ディレクトリ40は、レコードの管理のために設けら
れているが、それらのレコードに関連して記録されるイ
ンスタンスは1又は複数の遠隔プロセッサ12の間に分
散されている。ディレクトリ・コントローラ36及びキ
ャッシュ・コントローラ20により用いられるデータ構
造には、コヒーレンス・プロトコルの目的との類似性が
ある。
【0017】図3は、キャッシュ・ディレクトリ28に
保持されるタグ・アレイ44を示している。タグ・ディ
レクトリ44は複数のエントリのための空間を有し、各
エントリはグローバル記憶32内の空き間隔又はブロッ
クに関連付けられる。仮想メモリが設けられているシス
テムにおいては、複数のエントリが特定の実際の空き間
隔に関連付けられる場合がある。各エントリは、タグ・
フィールド46、無効フィールド50及び共有/排他フ
ィールド52を有する。ダーティ/クリーン・フィール
ド48は、レコードがローカル・プロセッサにより変更
されたにも拘らずまだ共有グローバル・メモリには再記
憶されていないか否かを識別するために用いられる。複
写がクリーンであれば、レコードのキャッシュ・インス
タンスと共有グローバル・メモリ内のレコードは一致し
ている。フィールド48は、レコードがローカル・プロ
セッサに対して排他的な場合にのみ意味がある。空通知
は、排他的かつクリーンであるローカル・キャッシュか
ら、又は共有であるローカル・キャッシュからレコード
を除く際に送信される。付加的なフィールドとして、例
えば、仮想記憶システムを用いる場合に仮想アドレス・
ハッシュ・フィールドをレコードのために設けてもよ
い。
【0018】複写されたレコードのインスタンスは、タ
グ・アレイ44内の有効とマークされたエントリに対す
るキャッシュ内に存在することができる。空通知がキャ
ッシュからグローバル記憶制御装置へ渡されるとき、キ
ャッシュ・コントローラはそのレコードに対するエント
リをキャッシュ・ディレクトリから削除するために選択
をする。もしそのコヒーレンシィがグローバル記憶制御
装置により維持されているならば、空き間隔は有効であ
る。そうでない場合はその空き間隔は無効である。もし
エントリが共有とマークされていれば、ローカル・プロ
セッサはそのインスタンスによりそのレコードに書込み
する権利をもたない。もしエントリが排他的かつ有効と
マークされていれば、プロセッサはそのレコードの複写
をもつ唯一のプロセッサであってそのローカル・プロセ
ッサはインスタンス及びレコード内の値を変更すること
ができる。さらにディレクトリは、実アドレスと仮想ア
ドレスとの間の変換テーブルを備えていてもよい。
【0019】図4は、グローバル記憶制御ディレクトリ
40のデータ構造を示している。データ構造54は、タ
グ・フィールド56、仮想アドレス・フィールド58、
有効/無効フィールド60、共有/排他フィールド6
2、複数の過渡フィールド64及び占有ベクタ66を有
する。データ構造54内のエントリは、1又は複数のロ
ーカル専用キャッシュに存在するインスタンスに対応す
る。従って、タグ・フィールド56及び仮想アドレス・
フィールド58は、有効エントリについては、タグ・ア
レイ44内の対応するエントリの内容と同一となる。有
効/無効フィールド60によって、タグ・アレイ44の
有効/無効フィールド50内のエントリとはなんらかの
違いがあることを解釈する。もしこのフィールドが有効
であれば、マルチプロセッサのいずれかにあるキャッシ
ュがそのレコードの複写されたインスタンスを有する。
もしこのフィールドが無効であれば、いずれのキャッシ
ュもそのレコードのインスタンスを保持していない。共
有/排他フィールド62は、複数のキャッシュがインス
タンスを有するか否かを示す。排他の場合は、まさに1
つのインスタンスが1つのローカル・キャッシュに複写
されたことを示す。共有の場合は、複数のインスタンス
が複写されたことを示す。フィールド62は、フィール
ド60が有効の場合にのみ意味をもつ。過渡フィールド
64は応答を待っている顕著なメッセージを示すために
用いられる。このフィールドは、レコードへの排他的権
利の要求のような適切な動作の流れに不可欠であるが、
その内容は本発明の理解において特に重要ではない。
【0020】占有ベクタ・フィールド66は一連のビッ
トからなり、その各々がキャッシュ又はキャッシュの組
を表す。1にセットされたビットは、エントリが関連付
けられた特定のキャッシュを識別する。別の例として、
1又は複数のプロセッサ/キャッシュ装置の固有の識別
子を占有エントリのシーケンスに記憶してもよい。通
常、ローカル・キャッシュ装置よりもエントリが少ない
ので、そのような設計では、全てのエントリ場所が占有
されかつエントリを共有するための要求が受信された場
合にグローバル・ディレクトリからの削除が開始され
る。占有ビットがスヌーピング・バス上のキャッシュの
組を表す場合、1つのキャッシュによる空通知の伝送は
先ずそのバス上で発生する。スヌーピング・バス上の他
のキャッシュは、それらが複写をもっているか否かを示
す。それらが複写をもっていない場合にのみ、空通知が
グローバル記憶制御装置に送られる。
【0021】図5は、プロセッサ14がグローバル記憶
制御装置16に対して空通知を発生する時点を決定する
プロセスを示す流れ図である。空通知はプロセッサによ
り解放されるレコード・インスタンスを識別するもので
ある。このプロセスは、ステップ68においてキャッシ
ュ管理プロトコルの実行を示すことにより開始される。
ステップ70において、空き間隔がキャッシュ26から
除かれるべく識別されたか否かが判断される。もし識別
されたならば、ステップ72において連想メモリに記憶
されたレコードのインスタンスが無効としてマークさ
れ、実際の空き間隔を識別するグローバル記憶制御装置
へ伝送するメッセージを作成する。このメッセージは次
のようなフォーマットを有する。 「グローバル記憶制御装置ID、プロセッサ識別タグ」 特別なフォーマットは重要ではないが、内容の意味が重
要である。いくつかのシステムでは、さらにフィールド
を追加することもある。
【0022】次に、ステップ74において、空き間隔/
レコードがクリーン又は共有であるか否かが判断され
る。もしレコードがクリーンでも共有でもない場合は、
それが排他的でありかつ変更されていることを意味す
る。ステップ76からは分岐がなく、グローバル共有メ
モリへ記憶するメッセージを用意する。レコードがクリ
ーン又は共有であったならば、ステップ80へ分岐し、
ローカル・キャッシュ内の空き間隔を解放する。次にス
テップ82において、適切なグローバル記憶制御装置へ
の接続が使用可能であるか否かが判断される。使用可能
であれば、ステップ84において、その無効にされたイ
ンスタンスに関連するレコードが固定的に記憶されてい
るコヒーレンシィ・コントローラ又はグローバル記憶制
御装置への空通知メッセージを送信する。接続できない
ためにバッファされていた先行する空通知メッセージが
あればそれもまた伝送される。ステップ82において相
互接続システム12を介して接続できないと判断された
場合は、ステップ86において、後に伝送するために待
ち行列内にその空通知メッセージをバッファする。
【0023】ステップ70において、除かれるべき空き
間隔が識別されないことが示されると、ステップ88に
おいて相互接続システムを介してグローバル記憶制御装
置へ接続可能であるか否かが判断される。接続可能であ
れば、ステップ84において、グローバル記憶制御装置
を宛先とする1又は全ての空通知メッセージを待ち行列
から伝送する。ステップ88、84、86及び78の
後、このプロセスは終了する。
【0024】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0025】(1)複数の処理装置と、前記処理装置の
それぞれに備えられたローカル専用キャッシュと、前記
複数の処理装置によりアクセスされる複数のレコードを
記憶するための共有メモリ空間を備える少なくとも1つ
のグローバル記憶制御装置と、前記処理装置と前記グロ
ーバル記憶制御装置との間のデータ通信及び同期通信を
行うための相互接続システムと、前記グローバル記憶制
御装置により所有されるレコードの各インスタンスであ
って、処理装置用の前記ローカル専用キャッシュ中に現
在存在する該インスタンスを追跡するための該グローバ
ル記憶制御装置内のコヒーレンシィ制御装置と、空通知
を処理装置から、処理装置の前記ローカル専用キャッシ
ュから除かれるインスタンスを識別するグローバル記憶
制御装置へ伝送する手段とを有するマルチプロセッサ。 (2)前記伝送手段が、間隔を前記空通知の中に含める
ために除かれるインスタンスのため前記間隔の識別に応
答する上記(1)に記載のマルチプロセッサ。 (3)前記空通知が、前記伝送手段を有する処理装置の
識別を含む上記(2)に記載のマルチプロセッサ。 (4)ローカル専用キャッシュから除かれるインスタン
スの識別に応答して、前記処理装置に対するキャッシュ
・ディレクトリ内の空き間隔を無効としてマークする手
段と、前記グローバル記憶制御装置に対するコヒーレン
シィ・ディレクトリから前記インスタンスの標識を削除
する手段とを有する上記(3)に記載のマルチプロセッ
サ。 (5)インスタンスの標識が残っていない場合、前記コ
ヒーレンシィ・ディレクトリ内のレコードのエントリの
無効を削除する手段を有する上記(4)に記載のマルチ
プロセッサ。 (6)前記伝送手段が使用できないとき、空通知をバッ
ファするための手段を有する上記(1)に記載のマルチ
プロセッサ。 (7)前記インスタンスが独立又は共有である上記
(1)に記載のマルチプロセッサ。 (8)前記バッファ手段が前記相互接続システム内に存
在する上記(6)に記載のマルチプロセッサ。 (9)前記バッファ手段が前記グローバル記憶制御装置
内に存在する上記(6)に記載のマルチプロッサ。 (10)前記コヒーレンシィ制御装置が、1又は1組の
ローカル専用キャッシュを表す1つの空ビット又は複数
の占有ビットを含む上記(7)に記載のマルチプロセッ
サ。 (11)複数の専用キャッシュと少なくとも1つの共有
メモリを備えるマルチプロセッサにおけるデータ・コヒ
ーレンシィを維持する方法であって、前記共有メモリに
常駐するレコードのインスタンスを前記専用キャッシュ
内に記憶するステップと、前記専用キャッシュのそれぞ
れに記憶された各インスタンスについて有効又は無効を
示しかつインスタンスが独立であるか否かをマークする
エントリをもつタグを含む該専用キャッシュのためのキ
ャッシュ・ディレクトリを作成するステップと、各専用
キャッシュのために該専用キャッシュ内のインスタンス
を除くキャッシュ管理プロセスを実行するステップと、
専用キャッシュに存在するレコードの各インスタンスに
対する標識をもつコヒーレンシィ・ディレクトリを作成
するステップと、有効な空き間隔を無効化するために選
択したときに、該空き間隔を前記キャッシュ・ディレク
トリに無効としてマークし、前記専用キャッシュから前
記共有メモリへ該空き間隔の空通知を伝送するステップ
と、前記コヒーレンシィ・ディレクトリから前記インス
タンスの標識を削除するステップとを有するマルチプロ
セッサにおけるデータ・コヒーレンシィ維持方法。 (12)レコードのインスタンスを共有メモリから1又
は複数の専用キャッシュへ複写するステップと、専用キ
ャッシュへ複写されたレコードの各インスタンスに対し
て、前記共有メモリについてのコヒーレンシィ・ディレ
クトリ内に、そのインスタンスが存在する該専用キャッ
シュを示しかつそのレコードが配置された該共有メモリ
内の実アドレスに対するタグにより識別するエントリを
作成するステップと、専用キャッシュへ複写されたレコ
ードの各インスタンスに対して、キャッシュ・ディレク
トリ内に、該レコードの実アドレスに対するタグにより
該インスタンスを識別しかつ該インスタンスの有効又は
無効を示すエントリを作成するステップと、専用キャッ
シュ内で独立又は共有のインスタンスの無効化がローカ
ルに発生すると、該インスタンスの表現であるデータを
伴わない前記タグを識別するメッセージを相互接続シス
テムを介して伝送するステップとを有するマルチプロセ
ッサにおけるデータ・コヒーレンシィ維持方法。 (13)前記キャッシュ・ディレクトリ及び前記コヒー
レンシィ・ディレクトリ内の各エントリによって、イン
スタンスが存在する前記専用キャッシュに関係する処理
装置が前記レコードに対する該インスタンスにより書込
む権利を有するか否かを示すステップを有する上記(1
2)に記載のマルチプロセッサにおけるデータ・コヒー
レンシィ維持方法。 (14)相互接続システムを介する接続スロットが使用
可能になるまで前記メッセージをバッファするステップ
を有する上記(12)に記載のマルチプロセッサにおけ
るデータ・コヒーレンシィ維持方法。 (15)共有メモリと、複数の専用キャッシュと、前記
共有メモリ上に記憶されたレコードのインスタンスを前
記複数の専用キャッシュへ複写する手段と、各専用キャ
ッシュに関連付けられた手段であって専用キャッシュへ
のレコードの各インスタンスの複写に応答して、前記共
有メモリに対するコヒーレンシィ・ディレクトリ内に、
該インスタンスが存在する該専用キャッシュを示しかつ
該レコードが配置された該共有メモリ内の場所をタグに
より識別するエントリを作成する手段と、専用キャッシ
ュへのレコードの各インスタンスの複写に応答して、キ
ャッシュ・ディレクトリ内に、該レコードについての該
インスタンスをタグにより識別しかつ該インスタンスの
有効又は無効を示すエントリを作成する手段と、専用キ
ャッシュ内のインスタンスの無効化に対応して、前記タ
グを識別するが前記共有メモリへのメッセージには該イ
ンスタンスからのデータを含めない手段と、タグに関連
付けられた前記インスタンスのいずれのデータをも含ま
ない該タグの識別に応答して、前記コヒーレンシィ・デ
ィレクトリから該インスタンスの標識を削除する手段と
を有するマルチプロセッサ。 (16)前記キャッシュ・ディレクトリ及び前記コヒー
レンシィ・ディレクトリ内の各エントリが、インスタン
スの存在する専用キャッシュに関連付けられたプロセッ
サが前記レコードの該インスタンスにより書込む権利を
有するか否かを示す上記(15)に記載のマルチプロセ
ッサ。 (17)相互接続システムを備えることを識別する手段
と、前記相互接続システムへのメッセージをバッファす
る手段とを有する上記(15)に記載のマルチプロセッ
サ。 (18)複数のプロセッサと、前記複数のプロセッサに
より共有される記憶集合と、少なくとも1つの前記プロ
セッサによりアクセス可能な専用記憶と、前記共有記憶
集合から間隔をおいて前記専用記憶に引出されるデータ
表現を生成する手段と、各データ表現についてのコヒー
レンシィ又はコヒーレンシィ消失の可能性の標識を含
む、前記専用記憶内の前記データ表現の状態標識を与え
る専用ディレクトリと、前記記憶集合から間隔をおいて
引出される各データ表現の状態標識を与えるグローバル
・ディレクトリと、前記データ表現のコヒーレンシィを
維持するために前記グローバル・ディレクトリ内の状態
標識を利用する手段と、前記専用記憶からデータ表現を
削除する手段と、データ表現の削除に応答して、該デー
タ表現のコヒーレンシィを判断し、かつもしコヒーレン
シィが維持されていれば前記グローバル・ディレクトリ
に対して削除の空通知を与える手段とを有するマルチプ
ロセッサ。
【0026】
【発明の効果】本発明では、キャッシュがキャッシュ・
エントリを無効化するために選別するときには必ずキャ
ッシュからメモリベース・ディレクトリへのメッセージ
送信を開始し、その送られるメッセージを搬送する接続
が一旦使用可能となれば、そのキャッシュ・バッファの
更新された内容をさらにグローバル・メモリへ送る必要
がない。これによって、グローバル記憶制御装置にキャ
ッシュ状態で維持される保存イメージを極力少なくする
ことができる。その結果、グローバル記憶ディレクトリ
は、レコードを排他的に利用するためのアクセス要求を
延期させることが少なくなる。従って、システム性能が
向上する。さらに、キャッシュ、相互接続システム又は
グローバル記憶制御装置は、相互接続バンド幅に対する
他の必要性がなくなる時点までメモリベース・ディレク
トリへ送信すべき空通知メッセージをバッファすること
ができる。以上のように、メモリベース・ディレクトリ
へ送られる空通知は、マルチプロセッサにおけるさらに
有用な効果をもたらす他の利用性を損うことなく相互接
続バンド幅を活用するものである。
【図面の簡単な説明】
【図1】マルチプロセッサの概略ブロック図である。
【図2】図1のマルチプロセッサにおいて用いるプロセ
ッサ装置及びグローバル記憶制御装置のブロック図であ
る。
【図3】プロセッサ装置内で用いるキャッシュ・ディレ
クトリのためのデータ構造のブロック図である。
【図4】グローバル記憶制御装置により用いられるディ
レクトリのためのデータ構造のブロック図である。
【図5】マルチプロセッサ処理装置の一部を形成するプ
ロセッサ上において本発明を実施するプロセスの論理流
れ図である。
【符号の説明】 10 マルチプロセッサ 12 相互接続システム 13 キャッシュ 14 プロセッサ 15 ゲートウェイ 16 グローバル記憶制御装置 18 処理装置 20 キャッシュ・コントローラ 26 連想メモリ 28 キャッシュ・ディレクトリ 32 グローバル記憶装置 36 ディレクトリ・コントローラ 40 グローバル記憶制御ディレクトリ 44 タグ・アレイ 54 グローバル記憶制御ディレクトリのデータ構造
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・クリストファー・ウイリス アメリカ合衆国55906 ミネソタ州、ロチ ェスター、アパートメント・スリーフォー エイト、サーティーファースト・ストリー ト・ノースイースト 402 (72)発明者 ドナルド・フランシス・バルダス アメリカ合衆国55956 ミネソタ州、マゼ ッパ、ルート・ワン、ボックス・ツーオー シックス(番地なし) (72)発明者 フレデリック・ジェイコブ・ジーグラー アメリカ合衆国55901 ミネソタ州、ロチ ェスター、アパートメント・ファイブスリ ーワンワン、エイティーン・ワン/ツー・ アベニュー・ノースウエスト 2438 (72)発明者 リシング・リュー アメリカ合衆国10570 ニューヨーク州、 プレザントヴィル、ディアフィールド・レ ーン・ノース 196

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】複数の処理装置と、 前記処理装置のそれぞれに備えられたローカル専用キャ
    ッシュと、 前記複数の処理装置によりアクセスされる複数のレコー
    ドを記憶するための共有メモリ空間を備える少なくとも
    1つのグローバル記憶制御装置と、 前記処理装置と前記グローバル記憶制御装置との間のデ
    ータ通信及び同期通信を行うための相互接続システム
    と、 前記グローバル記憶制御装置により所有されるレコード
    の各インスタンスであって、処理装置用の前記ローカル
    専用キャッシュ中に現在存在する該インスタンスを追跡
    するための該グローバル記憶制御装置内のコヒーレンシ
    ィ制御装置と、 空通知を処理装置から、処理装置の前記ローカル専用キ
    ャッシュから除かれるインスタンスを識別するグローバ
    ル記憶制御装置へ伝送する手段とを有するマルチプロセ
    ッサ。
  2. 【請求項2】前記伝送手段が、間隔を前記空通知の中に
    含めるために除かれるインスタンスのため、前記間隔の
    識別に応答する請求項1に記載のマルチプロセッサ。
  3. 【請求項3】前記空通知が、前記伝送手段を有する処理
    装置の識別を含む請求項2に記載のマルチプロセッサ。
  4. 【請求項4】ローカル専用キャッシュから除かれるイン
    スタンスの識別に応答して、前記処理装置に対するキャ
    ッシュ・ディレクトリ内の空き間隔を無効としてマーク
    する手段と、 前記グローバル記憶制御装置に対するコヒーレンシィ・
    ディレクトリから前記インスタンスの標識を削除する手
    段とを有する請求項3に記載のマルチプロセッサ。
  5. 【請求項5】インスタンスの標識が残っていない場合、
    前記コヒーレンシィ・ディレクトリ内のレコードのエン
    トリの無効を削除する手段を有する請求項4に記載のマ
    ルチプロセッサ。
  6. 【請求項6】前記伝送手段が使用できないとき、空通知
    をバッファするための手段を有する請求項1に記載のマ
    ルチプロセッサ。
  7. 【請求項7】前記インスタンスが独立又は共有である請
    求項1に記載のマルチプロセッサ。
  8. 【請求項8】前記バッファ手段が前記相互接続システム
    内に存在する請求項6に記載のマルチプロセッサ。
  9. 【請求項9】前記バッファ手段が前記グローバル記憶制
    御装置内に存在する請求項6に記載のマルチプロッサ。
  10. 【請求項10】前記コヒーレンシィ制御装置が、1又は
    1組のローカル専用キャッシュを表す1つの空ビット又
    は複数の占有ビットを含む請求項7に記載のマルチプロ
    セッサ。
  11. 【請求項11】複数の専用キャッシュと少なくとも1つ
    の共有メモリを備えるマルチプロセッサにおけるデータ
    ・コヒーレンシィを維持する方法であって、 前記共有メモリに常駐するレコードのインスタンスを前
    記専用キャッシュ内に記憶するステップと、 前記専用キャッシュのそれぞれに記憶された各インスタ
    ンスについて有効又は無効を示しかつインスタンスが独
    立であるか否かをマークするエントリをもつタグを含む
    該専用キャッシュのためのキャッシュ・ディレクトリを
    作成するステップと、 各専用キャッシュのために該専用キャッシュ内のインス
    タンスを除くキャッシュ管理プロセスを実行するステッ
    プと、 専用キャッシュに存在するレコードの各インスタンスに
    対する標識をもつコヒーレンシィ・ディレクトリを作成
    するステップと、 有効な空き間隔を無効化するために選択したときに、該
    空き間隔を前記キャッシュ・ディレクトリに無効として
    マークし、前記専用キャッシュから前記共有メモリへ該
    空き間隔の空通知を伝送するステップと、 前記コヒーレンシィ・ディレクトリから前記インスタン
    スの標識を削除するステップとを有するマルチプロセッ
    サにおけるデータ・コヒーレンシィ維持方法。
  12. 【請求項12】レコードのインスタンスを共有メモリか
    ら1又は複数の専用キャッシュへ複写するステップと、 専用キャッシュへ複写されたレコードの各インスタンス
    に対して、前記共有メモリについてのコヒーレンシィ・
    ディレクトリ内に、そのインスタンスが存在する該専用
    キャッシュを示しかつそのレコードが配置された該共有
    メモリ内の実アドレスに対するタグにより識別するエン
    トリを作成するステップと、 専用キャッシュへ複写されたレコードの各インスタンス
    に対して、キャッシュ・ディレクトリ内に、該レコード
    の実アドレスに対するタグにより該インスタンスを識別
    しかつ該インスタンスの有効又は無効を示すエントリを
    作成するステップと、 専用キャッシュ内で独立又は共有のインスタンスの無効
    化がローカルに発生すると、該インスタンスの表現であ
    るデータを伴わない前記タグを識別するメッセージを相
    互接続システムを介して伝送するステップとを有するマ
    ルチプロセッサにおけるデータ・コヒーレンシィ維持方
    法。
  13. 【請求項13】前記キャッシュ・ディレクトリ及び前記
    コヒーレンシィ・ディレクトリ内の各エントリによっ
    て、インスタンスが存在する前記専用キャッシュに関係
    する処理装置が前記レコードに対する該インスタンスに
    より書込む権利を有するか否かを示すステップを有する
    請求項12に記載のマルチプロセッサにおけるデータ・
    コヒーレンシィ維持方法。
  14. 【請求項14】相互接続システムを介する接続スロット
    が使用可能になるまで前記メッセージをバッファするス
    テップを有する請求項12に記載のマルチプロセッサに
    おけるデータ・コヒーレンシィ維持方法。
  15. 【請求項15】共有メモリと、 複数の専用キャッシュと、 前記共有メモリ上に記憶されたレコードのインスタンス
    を前記複数の専用キャッシュへ複写する手段と、 各専用キャッシュに関連付けられた手段であって専用キ
    ャッシュへのレコードの各インスタンスの複写に応答し
    て、前記共有メモリに対するコヒーレンシィ・ディレク
    トリ内に、該インスタンスが存在する該専用キャッシュ
    を示しかつ該レコードが配置された該共有メモリ内の場
    所をタグにより識別するエントリを作成する手段と、 専用キャッシュへのレコードの各インスタンスの複写に
    応答して、キャッシュ・ディレクトリ内に、該レコード
    についての該インスタンスをタグにより識別しかつ該イ
    ンスタンスの有効又は無効を示すエントリを作成する手
    段と、 専用キャッシュ内のインスタンスの無効化に対応して、
    前記タグを識別するが前記共有メモリへのメッセージに
    は該インスタンスからのデータを含めない手段と、 タグに関連付けられた前記インスタンスのいずれのデー
    タをも含まない該タグの識別に応答して、前記コヒーレ
    ンシィ・ディレクトリから該インスタンスの標識を削除
    する手段とを有するマルチプロセッサ。
  16. 【請求項16】前記キャッシュ・ディレクトリ及び前記
    コヒーレンシィ・ディレクトリ内の各エントリが、イン
    スタンスの存在する専用キャッシュに関連付けられたプ
    ロセッサが前記レコードの該インスタンスにより書込む
    権利を有するか否かを示す請求項15に記載のマルチプ
    ロセッサ。
  17. 【請求項17】相互接続システムを備えることを識別す
    る手段と、 前記相互接続システムへのメッセージをバッファする手
    段とを有する請求項15に記載のマルチプロセッサ。
  18. 【請求項18】複数のプロセッサと、 前記複数のプロセッサにより共有される記憶集合と、 少なくとも1つの前記プロセッサによりアクセス可能な
    専用記憶と、 前記共有記憶集合から間隔をおいて前記専用記憶に引出
    されるデータ表現を生成する手段と、 各データ表現についてのコヒーレンシィ又はコヒーレン
    シィ消失の可能性の標識を含む、前記専用記憶内の前記
    データ表現の状態標識を与える専用ディレクトリと、 前記記憶集合から間隔をおいて引出される各データ表現
    の状態標識を与えるグローバル・ディレクトリと、 前記データ表現のコヒーレンシィを維持するために前記
    グローバル・ディレクトリ内の状態標識を利用する手段
    と、 前記専用記憶からデータ表現を削除する手段と、 データ表現の削除に応答して、該データ表現のコヒーレ
    ンシィを判断し、かつもしコヒーレンシィが維持されて
    いれば前記グローバル・ディレクトリに対して削除の空
    通知を与える手段とを有するマルチプロセッサ。
JP6151873A 1993-08-27 1994-07-04 マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法 Pending JPH0784877A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/113,554 US5604882A (en) 1993-08-27 1993-08-27 System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US113554 1999-05-19

Publications (1)

Publication Number Publication Date
JPH0784877A true JPH0784877A (ja) 1995-03-31

Family

ID=22350109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6151873A Pending JPH0784877A (ja) 1993-08-27 1994-07-04 マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法

Country Status (3)

Country Link
US (1) US5604882A (ja)
EP (1) EP0640923A1 (ja)
JP (1) JPH0784877A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123497A (ja) * 2006-11-13 2008-05-29 Internatl Business Mach Corp <Ibm> メモリ・キャッシュ内のデータを無効化する方法、コンピュータ可読媒体及びイメージ処理システム

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0735481B1 (en) * 1995-03-31 2003-05-14 Sun Microsystems, Inc. System level mechanism for invalidating data stored in the external cache of a processor in a computer system
US5860153A (en) * 1995-11-22 1999-01-12 Sun Microsystems, Inc. Memory efficient directory coherency maintenance
US5822763A (en) * 1996-04-19 1998-10-13 Ibm Corporation Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US5974509A (en) * 1996-05-01 1999-10-26 Sun Microsystems, Inc. Method for purging unused data from a cache memory
US5704866A (en) * 1996-07-26 1998-01-06 New Venture Gear, Inc. Transmission for four-wheel drive vehicles
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US8312529B2 (en) * 1996-11-29 2012-11-13 Ellis Frampton E Global network computers
US6167428A (en) 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US7634529B2 (en) 1996-11-29 2009-12-15 Ellis Iii Frampton E Personal and server computers having microchips with multiple processing units and internal firewalls
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
US7805756B2 (en) 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US7506020B2 (en) * 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US6725250B1 (en) * 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
US20050180095A1 (en) * 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US7926097B2 (en) 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US6026472A (en) * 1997-06-24 2000-02-15 Intel Corporation Method and apparatus for determining memory page access information in a non-uniform memory access computer system
US6192398B1 (en) 1997-10-17 2001-02-20 International Business Machines Corporation Remote/shared browser cache
US6012127A (en) * 1997-12-12 2000-01-04 Intel Corporation Multiprocessor computing apparatus with optional coherency directory
US5893163A (en) * 1997-12-17 1999-04-06 International Business Machines Corporation Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US5860101A (en) * 1997-12-17 1999-01-12 International Business Machines Corporation Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
JP3858492B2 (ja) * 1998-12-28 2006-12-13 株式会社日立製作所 マルチプロセッサシステム
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
US6529968B1 (en) * 1999-12-21 2003-03-04 Intel Corporation DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces
US6591341B1 (en) * 2000-03-31 2003-07-08 Intel Corporation Multilevel cache system and method having a merged tag array to store tags for multiple data arrays
US6725341B1 (en) * 2000-06-28 2004-04-20 Intel Corporation Cache line pre-load and pre-own based on cache coherence speculation
US20020016878A1 (en) * 2000-07-26 2002-02-07 Flores Jose L. Technique for guaranteeing the availability of per thread storage in a distributed computing environment
US6892298B2 (en) 2000-07-26 2005-05-10 Times N Systems, Inc. Load/store micropacket handling system
US6675277B2 (en) 2000-07-26 2004-01-06 Tns Holdings, Inc. Method and apparatus for demand usable adapter memory access management
US6715059B2 (en) 2000-07-26 2004-03-30 Tas Holdings, Inc. Methods and systems for a shared memory unit with extendable functions
US20020013822A1 (en) * 2000-07-26 2002-01-31 West Karlon K. Shared as needed programming model
US6782440B2 (en) 2000-07-26 2004-08-24 T.N.S. Holdings, Inc. Resource locking and thread synchronization in a multiprocessor environment
US6665777B2 (en) 2000-07-26 2003-12-16 Tns Holdings, Inc. Method, apparatus, network, and kit for multiple block sequential memory management
US6973544B2 (en) * 2002-01-09 2005-12-06 International Business Machines Corporation Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US6826656B2 (en) * 2002-01-28 2004-11-30 International Business Machines Corporation Reducing power in a snooping cache based multiprocessor environment
US6826653B2 (en) 2002-02-06 2004-11-30 Hewlett-Packard Development Company, L.P. Block data mover adapted to contain faults in a partitioned multiprocessor system
US7209932B2 (en) * 2002-03-25 2007-04-24 International Business Machines Corporation Method, system, and program for allocating tasks to a plurality of processors
US7010576B2 (en) * 2002-05-30 2006-03-07 International Business Machines Corporation Efficient method of globalization and synchronization of distributed resources in distributed peer data processing environments
US7313667B1 (en) * 2002-08-05 2007-12-25 Cisco Technology, Inc. Methods and apparatus for mapping fields of entries into new values and combining these mapped values into mapped entries for use in lookup operations such as for packet processing
US8256147B2 (en) 2004-11-22 2012-09-04 Frampton E. Eliis Devices with internal flexibility sipes, including siped chambers for footwear
US8145870B2 (en) * 2004-12-07 2012-03-27 International Business Machines Corporation System, method and computer program product for application-level cache-mapping awareness and reallocation
US7721047B2 (en) 2004-12-07 2010-05-18 International Business Machines Corporation System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US20060262804A1 (en) * 2005-05-18 2006-11-23 Kim Moon J Method of providing multiprotocol cache service among global storage farms
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
JP5329884B2 (ja) * 2008-09-18 2013-10-30 株式会社東芝 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222757A (ja) * 1988-07-12 1990-01-25 Hitachi Ltd マルチプロセッサのメモリシステム
JPH02224161A (ja) * 1988-10-28 1990-09-06 Apollo Computer Inc 高速データ処理装置
JPH03253963A (ja) * 1990-02-20 1991-11-13 Internatl Business Mach Corp <Ibm> マルチプロセツサ・システム
JPH04191946A (ja) * 1990-11-27 1992-07-10 Agency Of Ind Science & Technol スヌープキャッシュメモリ制御方式

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197580A (en) * 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4500954A (en) * 1981-10-15 1985-02-19 International Business Machines Corporation Cache bypass system with post-block transfer directory examinations for updating cache and/or maintaining bypass
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
US4974156A (en) * 1988-05-05 1990-11-27 International Business Machines Multi-level peripheral data storage hierarchy with independent access to all levels of the hierarchy
US4992930A (en) * 1988-05-09 1991-02-12 Bull Hn Information Systems Inc. Synchronous cache memory system incorporating tie-breaker apparatus for maintaining cache coherency using a duplicate directory
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5317716A (en) * 1988-08-16 1994-05-31 International Business Machines Corporation Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
JPH0680499B2 (ja) * 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
US5226143A (en) * 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222757A (ja) * 1988-07-12 1990-01-25 Hitachi Ltd マルチプロセッサのメモリシステム
JPH02224161A (ja) * 1988-10-28 1990-09-06 Apollo Computer Inc 高速データ処理装置
JPH03253963A (ja) * 1990-02-20 1991-11-13 Internatl Business Mach Corp <Ibm> マルチプロセツサ・システム
JPH04191946A (ja) * 1990-11-27 1992-07-10 Agency Of Ind Science & Technol スヌープキャッシュメモリ制御方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123497A (ja) * 2006-11-13 2008-05-29 Internatl Business Mach Corp <Ibm> メモリ・キャッシュ内のデータを無効化する方法、コンピュータ可読媒体及びイメージ処理システム

Also Published As

Publication number Publication date
EP0640923A1 (en) 1995-03-01
US5604882A (en) 1997-02-18

Similar Documents

Publication Publication Date Title
JPH0784877A (ja) マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法
JP3199718B2 (ja) キャッシュ整合性維持方法
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US6115804A (en) Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention
US5900020A (en) Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
JP4123621B2 (ja) 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
JP2809961B2 (ja) マルチプロセッサ
KR100465583B1 (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법
US6279084B1 (en) Shadow commands to optimize sequencing of requests in a switch-based multi-processor system
US6122714A (en) Order supporting mechanisms for use in a switch-based multi-processor system
US6085276A (en) Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US5822763A (en) Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US6154816A (en) Low occupancy protocol for managing concurrent transactions with dependencies
US6108752A (en) Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency
US7340565B2 (en) Source request arbitration
US6249520B1 (en) High-performance non-blocking switch with multiple channel ordering constraints
US7130969B2 (en) Hierarchical directories for cache coherency in a multiprocessor system
EP0603801A2 (en) Generalized shared memory in a cluster architecture for a computer system
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
JP2000227908A (ja) 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム
JPH10143483A (ja) ミグラトリ・データ・アクセス・パターンを検出し、効果的に提供するように構成されたマルチプロセスシステム
JPH10133943A (ja) リンクリスト形成方法
JP2002163149A (ja) マルチプロセッサシステムのキャッシュコヒーレンスプロトコル
JPH04227552A (ja) ストアスルーキャッシュ管理システム
JPH10214230A (ja) 応答カウントを含むコヒーレンシー・プロトコルを採用したマルチプロセッサ・システム