JPH1185616A - 情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体 - Google Patents

情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体

Info

Publication number
JPH1185616A
JPH1185616A JP9246755A JP24675597A JPH1185616A JP H1185616 A JPH1185616 A JP H1185616A JP 9246755 A JP9246755 A JP 9246755A JP 24675597 A JP24675597 A JP 24675597A JP H1185616 A JPH1185616 A JP H1185616A
Authority
JP
Japan
Prior art keywords
cache
request
information processing
node
address
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.)
Withdrawn
Application number
JP9246755A
Other languages
English (en)
Inventor
Tomohiko Shimoyama
朋彦 下山
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP9246755A priority Critical patent/JPH1185616A/ja
Publication of JPH1185616A publication Critical patent/JPH1185616A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】キャッシュ機構を有する分散共有メモリにおい
て、キャッシュメンテナンス情報のキューイングを可能
とする。 【解決手段】複数の情報処理装置がコンセントレータ6
00を介して通信可能に接続され、相互に共有可能な共
有メモリ空間を有する。メモリ130内の共有メモリ空
間へのアクセスによって得られたデータはアクセス元の
情報処理装置においてキャッシングされる。キャッシュ
データの一貫性を保証するためのキャッシュメンテナン
ス要求はパケットキュー611にキューイングされ、パ
ケット処理機構612によって順次処理される。ここ
で、実行すべきキャッシュメンテナンス要求がinvalida
te要求であった場合、パケット処理機構612は当該ア
ドレスに対する無効化通知を行うとともに、この無効化
処理を行っている間、当該アドレスに対する他のinvali
date要求をパケットキュー611から削除する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は複数の情報処理装置
が接続された情報処理システムに関し、特に複数のプロ
セッサによって共有される分散共有メモリを有する情報
処理システム及び情報処理装置及びその制御方法に関す
る。
【0002】
【従来の技術】より密な通信をねらい、ネットワークで
結合した計算機上で共有メモリを持つ、分散共有メモリ
システムが提案されている。これらのシステムに関し
て、さらに性能の向上をねらい、分散共有メモリ上でキ
ャッシュを持つシステムも提案されている。この種のシ
ステムでは、キャッシュの一貫性保持のためにネットワ
ーク上の他のノード(計算機)に対し、一貫性保持情報
を送る必要がある。特に、キャッシュの一貫性保持の実
現のために、通信機構上でキャッシュの無効化情報をマ
ルチキャストすることが必要である。
【0003】
【発明が解決しようとする課題】従来、分散共有メモリ
上でキャッシュの一貫性保持情報を送る場合、それらの
情報はネットワーク上でキューイングすることはできな
かった。これは同一のアドレスのコピーが複数のノード
に存在し(つまり複数のノードでキャッシングされ)、
それらが同時に書き換えられた場合に矛盾が生じるため
である。
【0004】例えば、一貫性保持情報がキューイングさ
れていない場合には、同一アドレスが同時に書き換えら
れたとき、片方のノードからのキャッシュの無効化要求
により片方のコピーが破棄される。破棄された方のノー
ドでは、コピーが破棄されたので無効化要求を出すこと
はない。
【0005】しかし一貫性保持情報がネットワークでキ
ューイングされた場合、両方のノードが互いに無効化要
求を出し合い、両者が同時にキューの中に入ることが起
こり得る。キューイングされたそれらの無効化要求は、
互いのキャッシュ内容を無効化する。そのため本来なら
片方のキャッシュ内容は無効化されてはならないにもか
かわらず、両方のキャッシュ内容が失われてしまうこと
になる。
【0006】しかしながら、一貫性保持情報をキューイ
ングすると、複数の要求元からのの保持情報を効率的に
処理できるというメリットが生ずる。つまり、キューイ
ングしていなければノードAからの要求の処理が終わっ
てからでなければノードBからの要求を受け付けられな
い。これに対して、キューイングされていれば、ノード
Bからの要求はキューイングによって受けつけておき、
ノードAの処理が終わり次第実行することができる。特
に、ノードAとノードBが分散している場合、ノードA
の処理が終わったことをノードBに伝え、ノードBから
要求が到着するまでに時間がかかるような場合には、こ
のことは性能に大きく影響する。
【0007】本発明は上記の問題に鑑みてなされたもの
であり、キャッシュ機構を有する分散共有メモリにおい
て、キャッシュメンテナンス情報のキューイングを可能
とする情報処理システム及び情報処理装置及びその制御
方法及び記憶媒体を提供することを目的とする。
【0008】
【課題を解決するための手段】上記の目的を達成するた
めの本発明の情報処理システムは以下の構成を備える。
すなわち、複数の情報処理装置が通信可能に接続され、
相互に共有可能な共有メモリ空間を有する情報処理シス
テムであって、前記共有メモリ空間へのアクセスによっ
て得られたデータをアクセス元の情報処理装置にてキャ
ッシングするキャッシュ手段と、前記キャッシュ手段に
よるキャッシュデータの一貫性を保証するためのキャッ
シュメンテナンス要求を待ち行列に保持する保持手段
と、前記保持手段に保持されたキャッシュメンテナンス
要求を順次実行する実行手段と、前記実行手段によって
実行すべきキャッシュメンテナンス要求がキャッシュの
無効化要求である場合、当該アドレスに対する他の無効
化要求を前記待ち行列から削除する削除手段とを備え
る。
【0009】また、上記の目的を達成するための本発明
の情報処理装置は以下の構成を備える。すなわち、通信
可能に接続された複数の情報処理装置が共有する共有メ
モリ空間のキャッシングを制御する情報処理装置であっ
て、前記共有メモリ空間のキャッシュデータの一貫性を
保証するためのキャッシュメンテナンス要求を待ち行列
に保持する保持手段と、前記保持手段に保持されたキャ
ッシュメンテナンス要求を順次実行する実行手段と、前
記実行手段によって実行すべきキャッシュメンテナンス
要求がキャッシュの無効化要求である場合、当該アドレ
スに対する他の無効化要求を前記待ち行列から削除する
削除手段とを備える。
【0010】また、上記の目的を達成するための情報処
理システムの制御方法は、複数の情報処理装置が通信可
能に接続され、相互に共有可能な共有メモリ空間を有す
る情報処理システムの制御方法であって、前記共有メモ
リ空間へのアクセスによって得られたデータをアクセス
元の情報処理装置にてキャッシングするキャッシュ工程
と、前記キャッシュ工程によるキャッシュデータの一貫
性を保証するためのキャッシュメンテナンス要求を待ち
行列に保持する保持工程と、前記保持工程において前記
待ち行列に保持されたキャッシュメンテナンス要求を順
次実行する実行工程と、前記実行工程によって実行すべ
きキャッシュメンテナンス要求がキャッシュの無効化要
求である場合、当該アドレスに対する他の無効化要求を
前記待ち行列から削除する削除工程とを備える。
【0011】更に、上記の目的を達成する本発明の情報
処理装置の制御方法は、通信可能に接続された複数の情
報処理装置が共有する共有メモリ空間のキャッシングを
制御するための制御方法であって、前記共有メモリ空間
のキャッシュデータの一貫性を保証するためのキャッシ
ュメンテナンス要求を待ち行列に保持する保持工程と、
前記保持工程において前記待ち行列に保持されたキャッ
シュメンテナンス要求を順次実行する実行工程と、前記
実行工程によって実行すべきキャッシュメンテナンス要
求がキャッシュの無効化要求である場合、当該アドレス
に対する他の無効化要求を前記待ち行列から削除する削
除工程とを備える。
【0012】上記の目的を達成するための記憶媒体は以
下の構成を備える。すなわち、通信可能に接続された複
数の情報処理装置が共有する共有メモリ空間のキャッシ
ングを制御する制御プログラムを格納する記憶媒体であ
って、該制御プログラムはコンピュータを、前記共有メ
モリ空間のキャッシュデータの一貫性を保証するための
キャッシュメンテナンス要求を待ち行列に保持する保持
手段と、前記保持手段に保持されたキャッシュメンテナ
ンス要求を順次実行する実行手段と、前記実行手段によ
って実行すべきキャッシュメンテナンス要求がキャッシ
ュの無効化要求である場合、当該アドレスに対する他の
無効化要求を前記待ち行列から削除する削除手段として
機能させるものである。
【0013】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を詳細に説明する。
【0014】<第1の実施形態>図1は、第1の実施形
態による並列計算機のシステム構成を示す図である。計
算機は複数のノード(100,200,300,40
0,500)からなり、各々のノードはコンセントレー
タ600を通じて光ファイバによって接続され、ネット
ワークを構成している。ここで、コンセントレータ60
0は、ノード間の通信を管理する。また、各ノードは通
常の計算機であり、各々1個または複数個のプロセッサ
(CPU)を持つ。各々のノードはアドレス空間を共有
しており、一つのCPUからみえるアドレス空間は、図
2のようになっている。図2はあるプロセッサから見た
アドレス空間を説明する図である。ノード間通信は、自
分のアドレス上に見えている相手のメモリに対し、直接
書込むことにより行われる。
【0015】ノード(100,200,300,40
0,500)は光通信装置(140,240,340,
440,540)を通じ、アービトレーション回線(1
60,260,360,460,560)、データ回線
(170,270,370,470,570)の2本の
光ファイバを介してコンセントレータ600に接続する
ことによりネットワークを構成している。アービトレー
ション回線(160,260,360,460,56
0)は、ノード(100,200,300,400,5
00)とコンセントレータ600内の光バスアービタ6
10とを接続する。アービトレーション回線により、各
ノードは光バスアービタ610と相互に通信することが
できる。データ回線(170,270,370,47
0,570)は、各ノードとコンセントレータ600内
のスターカプラ620を接続する。スターカプラ620
は、一端に光を入力すると他端からその光が均等に出力
される。このため、一つのノードがデータ回線に光を発
すると、その光を他の全てのノードで受け取ることがで
きる。そこで一つのノードがデータ回線に発した光通信
を、全てのノードで受け取ることが可能となる。
【0016】ノードは、通信用いる光の波長を選択する
ことにより、任意のノードと通信を行う。例えば、ノー
ドA100がノードB200と通信を行う場合は、ま
ず、ノードA100がアービトレーション回線160を
通じて光バスアービタ610にノードB200との通信
要求を送る。光バスアービタ610は、ノードB200
が他のノードと通信中でないことを確認し、どのノード
も使用していない波長αをノードA100、ノードB2
00間の通信に割当てる。そして、アービトレーション
回線(160,260)を通じてノードA100,B2
00に波長αを使用して通信を行うように指示を出す。
ノードA100,B200は、指定された波長αを使用
して、データ回線(170,270)を通じて通信を行
う。
【0017】分散共有メモリは、以上のようなネットワ
ークの上で光通信装置により実現される。分散共有メモ
リ機構の動作例としてノードA100のCPU110
が、ノードB200のメモリ230をリードする様子
を、図3を使って説明する。図3は分散共有メモリ機構
におけるリードアクセス時の動作を説明する図である。
以下の(A1)〜(A7)に示す動作は一連のものとし
て実施される。
【0018】●分散共有メモリのリードアクセス動作 (A1)ノードA100のプロセッサCPUが、ノード
Bのメモリ230に対してリードアクセスを発行する。 (A2)ノードA100の光通信装置140は、メイン
バス上のバスアクセスを監視している。メインバス上
に、ノードAのメモリ130以外のアドレスに対するア
クセスが発行されると光通信装置140はそのバスアク
セスを検出する。 (A3)他ノードのアドレスへのメモリアクセスを検出
した光通信装置140は、アクセス要求パケットをコン
セントレータ600を通じて、ノードBの光通信装置2
40に対して送る。 (A4)ノードBの光通信装置240はアクセス要求パ
ケットを受け取ると、その依頼にしたがってノードBの
メモリ230に対してのアクセスを代行する。 (A5)ノードBのメモリ230がアクセスに応答す
る。 (A6)ノードBの光通信装置240は、アクセスが終
わると、ノードAの光通信装置140に対してアクノリ
ッジを返す。 (A7)アクノリッジを受け取ったノードAの光通信装
置140は、ノードBのメモリ230の代わりにCPU
110のリードアクセスに応答する。
【0019】また本実施形態では、分散共有メモリ上
で、ディレクトリ方式の一貫性保持方式を採用したキャ
ッシュシステムを搭載している。ディレクトリ方式のキ
ャッシュシステムの詳細は、「共有記憶型並列システム
の実際」(コロナ社刊)に示されている。また、本実施
形態で採用したディレクトリ方式のキャッシュについて
は、特開平8−83216号で提案されているICC(I
nter-node Cache-infomation Cache)を採用したもの
を使用する。これは各ノードにディレクトリを分散して
持ち、ディレクトリ方式の一貫性保持動作を行う際に必
要なキャッシュメンテナンス情報のマルチキャストを、
ネットワーク中央のコンセントレータで行うというもの
である。
【0020】ノード内のCPU間でのキャッシュの一貫
性保持は、CPUに内蔵されたMESIプロトコル(Mo
dified,Exclusive,Shared,Invalidの4状態によりキャ
ッシュを管理するプロトコル)によるスヌープキャッシ
ュで管理されている、なお、本実施形態ではMESIプ
ロトコルを使用するが、これは本発明を限定するもので
はない。
【0021】図4はノードのより詳細な構成を示すブロ
ック図である。ノード間のキャッシュの一貫性保持は、
外付けされたキャッシュ管理装置150により管理され
る。ディレクトリ方式のキャッシュを実現するキャッシ
ュ管理装置150は、バス監視装置151、ディレクト
リ152、ディレクトリ管理装置153、通信管理装置
154、アクセスエミュレーション装置155から成り
立っている。なお、キャッシュ管理装置150内の各装
置の動作は以下の説明から明らかとなろう。
【0022】一方、キャッシュメンテナンス情報のマル
チキャストは、コンセントレータ600内の光バスアー
ビタ610により行われる。図5は本実施形態のコンセ
ントレータの構成を示すブロック図である。コンセント
レータ600は、光バスアービタ610、スターカプラ
620、ICC(Inter-node Cache-infomation Cach
e)630により構成される。ICC630はキャッシ
ュのディレクトリ情報をキャッシュする。光バスアービ
タ610がキャッシュメンテナンス情報のマルチキャス
トを行う場合には、各ノードに格納されたディレクトリ
情報が必要となる。しかしながら、ICC630に必要
なディレクトリ情報をキャッシュしておくことにより、
これを参照してマルチキャストを実行でき、効率よくキ
ャッシュメンテナンス情報のマルチキャストを行えるよ
うになる。このように、各ノードから送られてきたキャ
ッシュ管理情報は、光バスアービタ610とICC63
0により必要なノードに転送される。
【0023】本実施形態では、光バスアービタ610を
1台の計算機とし、その機能をソフトウェアで実現する
ものとするが、これは本発明を限定するものでなはく、
ハードウェアにより実現してもよいことは明らかであ
る。図6は光バスアービタ610の内部構成を示すブロ
ック図である。同図に示されるように、光バスアービタ
610は、各ノードからのパケットを保持するパケット
キュー611、パケットを処理するパケット処理機構6
12からなる。
【0024】次にキャッシュ管理装置内の個々の装置に
ついて、それぞれ説明する。
【0025】図7はバス監視装置151の構成を示すブ
ロック図である。バス監視装置151の内部は、シーケ
ンサ(ステートマシン151a)とアドレスラッチ15
1bからなっている。ステートマシン151aはノード
内のバスを監視し、バスマスタ(例えばプロセッサ11
0)によるメモリのリードアクセス、invalidate,Read
-with-Intent-to-Modify、メモリ書込み(以下、ライト
アクセス)の実行を検出する。なお、ステートマシン1
51aは、バス上のアクセス要求信号、バスアクセスに
伴ってバスマスタから出力されるアクセス修飾信号など
を監視することでアクセス及びその種別を検出する。
【0026】バス監視装置151は、アクセス要求信号
が有効であり、アクセスアドレスが自分のノードのメモ
リに対するものであり、アクセス修飾信号がリードであ
ることを示している時、リードアクセスを検出したと判
断する。リードアクセスを検出すると、メモリ130の
応答を押さえて、その間に通信管理装置154を通じ光
通信装置140にリードアクセスを行うように依頼を出
したノード(要求元ノード)を問い合わせる。そして、
ディレクトリ管理装置153に、ディレクトリ152の
リードアクセス対象アドレスに対応する欄に、当該要求
元ノードへキャッシュされた旨を登録させる。
【0027】またバス監視装置151は、アクセス要求
信号が有効であり、アクセス修飾信号がライトアクセス
/invalidate/Read-with-Intent-to-Modifyであること
を示している場合、ライトアクセス/invalidate/Read
-with-Intent-to-Modifyを検出したと判断する。自ノー
ドに対するライトアクセス/invalidate/Read-with-In
tent-to-Modifyを検出すると、バス監視装置151は、
まずメモリ130へのライトアクセス/invalidate/Re
ad-with-Intent-to-Modifyを中断する。そして、ディレ
クトリ管理装置153を通じてディレクトリ152の当
該アクセス先アドレスに対応する欄を参照して、そのア
ドレスに対応したメモリブロックをキャッシングしてい
るノードがあるかどうかを調べる。キャッシングしてい
るノードがあったら、通信管理装置154に対してライ
トアクセス/invalidateをマルチキャストするよう要求
を出す。そして、通信管理装置154がマルチキャスト
の終了を通知してきたら、中断していたライトアクセス
/invalidate/Read-with-Intent-to-Modifyを再開し、
ディレクトリ管理装置153を通じディレクトリ152
のメモリ書込み先アドレスに対応する欄をクリアする。
なお、ライト/invalidate/Read-with-Intent-to-Modi
fyの中断は、本実施形態ではバス上にアクセス再実行信
号を出力し、そのライトアクセスをプロセッサにリトラ
イさせることで実現するものとするが、他の方法によリ
トライ命令を中断してもよい。
【0028】次にディレクトリ152、ディレクトリ管
理装置153の構成を説明する。図8は、ディレクトリ
152、ディレクトリ管理装置153の構成を示すブロ
ック図である。ディレクトリ152は、メモリブロック
をキャッシングしているノードを記録している。すなわ
ち、対象メモリに対してライトアクセス/invalidate/
Read-with-Intent-to-Modifyが行われた時に、どのノー
ドに(キャッシュの一貫性保持のために)ライトアクセ
ス/invalidate/Read-with-Intent-to-Modifyを通知し
なければならないかがディレクトリ152に記録されて
いる。
【0029】ディレクトリ152ヘの操作は、ディレク
トリ管理装置153により行われる。ディレクトリ管理
装置153は、シーケンサ(ステートマシン153a)
により管理されており、ディレクトリ152に対する操
作は、バス監視装置151がリードアクセスを検出しリ
ードアクセスを実行したノードを記録する場合、バス監
視装置151がライトアクセス/invalidate/Read-wit
h-Intent-to-Modifyを検出し対象メモリブロックをキャ
ッシングしているノードを参照する場合、バス監視装置
151の要求により記録を破棄する場合に行われる。
【0030】ディレクトリ152は、nビット幅(nは
ノードの数)のメモリである。ディレクトリ管理装置1
52は、バス監視装置151から記録要求を受けると、
指定されたアクセスアドレスに対応するnビットのうち
の、要求があったノードに対応するビットをONにす
る。また、バス監視装置151から記録破棄要求を受け
ると、指定されたアドレスに対応するnビットの全ビッ
トをOFFにする。
【0031】通信管理装置154はバス監視装置151
からの要求により、光通信装置140とのコミュニケー
ションを行う。通信管理装置154は、バス監視装置1
51からのinvalidate/Read-with-Intent-to-Modify/
ライトアクセスのマルチキャスト要求を受け、光通信装
置140を介して光バスアービタ610に、検出された
ライトアクセスのマルチキャスト依頼パケットを送出す
る。また光通信装置140を通じて受け取ったキャッシ
ュの一貫性保持動作要求パケットにより、メモリアクセ
スエミュレート装置155に対してinvalidate/Read-w
ith-Intent-to-Modify/ライト/リード要求を出力す
る。
【0032】次に、メモリアクセスエミュレート装置1
55について説明する。図9はメモリアクセスエミュレ
ート装置155の構成を示すブロック図である。メモリ
アクセスエミュレート装置155は、通信管理装置15
4からの要求により、ダミーのメモリライトアクセス/
ダミーのメモリリードアクセス/invalidate/Read-wit
h-Intent-to-Modifyアクセスを自ノードのバス上に発行
する。これらのアクセスにより、ノード間のキャッシュ
の一貫性を保持する。エミュレート装置155の発行す
るアクセスは、自分のノードに割り当てられたアドレス
ではありえないため、ノード内のバススレーブ(例えば
メモリ130)より応答はありえず、ダミーのアクセス
となる。
【0033】次に、以上のような構成を備えたキャッシ
ュ管理装置150の動作について説明する。図10はキ
ャッシュ管理装置150の動作を説明するフローチャー
トである。
【0034】まずステップS101において、バス監視
装置151が自ノバスアクセスを検出すると、ステップ
S102へ進む。当該アクセスが自ノードのメモリへの
アクセスか否かを判定し、自ノードのメモリへのアクセ
スであった場合は、ステップS103へ進み、メモリ1
30の応答を抑制する。
【0035】次に、ステップS105において、ディレ
クトリ152を参照して当該アクセス先アドレスのキャ
ッシング状況を獲得する。そして、当該アドレスがアク
セス要求元ノード以外のノードにキャッシングされてい
なければ、ステップS106からステップS109へ進
み、ディレクトリ152を更新する。すなわち、当該ア
クセス先に対応するnビットの内の当該アクセスの要求
元のノードに対応するビットをONにする。なお、以上
のディレクトリ152に対する参照、更新処理がディレ
クトリ管理装置153を介して行なわれることは上述の
通りである。
【0036】一方、ステップS106において、アクセ
ス要求元ノード以外の、他のノードにキャッシングされ
ていると判断された場合は、ステップS107へ進む。
ステップS107では、光通信部140を介して、光バ
スアービタ610にディレクトリの内容とともにマルチ
キャスト要求を送出する。このマルチキャスト要求は、
当該アクセス先のアドレスをキャッシングしている全て
のノードに対して、当該アドレスのキャッシング状態を
更新するべく送出されるものである。そして、ステップ
S108では、当該マルチキャストの完了を待ち、マル
チキャストが完了したらステップS109でディレクト
リ152を更新する。この場合のディレクトリ152
は、光バスアービタからの完了報告に含まれる、各ノー
ドの当該アドレスのキャッシング状態により更新され
る。
【0037】ステップS110では、メモリ130に対
する応答抑制を解除し、メモリ130の当該アドレスに
対するアクセスを実行する。
【0038】また、ステップS102において、自ノー
ドのメモリに対するアクセスではないと判断された場合
は、ステップS111へ進む。ステップS111で当該
バスアクセスがキャッシュメンテナンス情報ではないと
判断されると、何の処理も実行されず、そのまま、ステ
ップS101へ戻る。なお、上述のように、バス監視装
置151は他ノードのメモリに対するアクセスはキャッ
シュメンテナンス情報(invalidate)しか検出しないの
で、ステップS111の判定は、バス監視装置151が
バスアクセスを検出する時点で行なわれているものとし
てもよい(ライト、リードの場合は、光通信装置により
他ノードでアクセスが行なわれ、そのアクセスがノード
内のキャッシュ管理システムにとらえられて処理が進
む。そのため、invalidateのみを検出する)。
【0039】さて、他ノードのメモリに対するキャッシ
ュメンテナンス情報が検出されると、処理はステップS
112へ進む。ステップS112では、バス監視装置1
51がそのアクセスをリトライさせる。そして、ステッ
プS113において、バス監視装置151は通信管理装
置154を介して、光バスアービタ610に、対象アド
レスのキャッシュ内容の無効化を指示するためのマルチ
キャスト要求を出す。そして、光バスアービタ610に
よるマルチキャストが終わると、ステップS114に
て、バス監視装置151によるアクセスリトライを解除
し、当該アクセスを完了させる。
【0040】図11は、キャッシュ管理装置のパケット
受信時の処理を説明するフローチャートである。パケッ
トを受信すると、ステップS201からステップS20
2へ進み、当該パケットの種類を判定する。そして、当
該パケットが回線接続完了パケット或いはマルチキャス
ト完了パケットであった場合は、ステップS203へ進
み、パケットに従ってアクセス情報を出力する。これ
は、自ノードのCPUが発したバスアクセスを、他ノー
ドにマルチキャストして、その結果(他ノードのキャッ
シングの状態)が光バスアービタから送られてきた(図
12のステップS312において送られてきた)場合で
ある。このとき自ノードのCPUはマルチキャストした
バスアクセスを出し続けており、アクセスの度にキャッ
シュ管理装置がそれをリトライさせている状態である
(図10のパケット送信部のS108において、マルチ
キャスト完了を待っている状況に対応する)。キャッシ
ュ管理装置は完了パケットを受け取ったのでリトライを
解除し、代わりにバスアクセスが行なわれたときに他ノ
ードのCPUに代わって応答する(SHD信号をON、
OFFする)。
【0041】また、当該パケットがキャッシュメンテナ
ンスパケットであった場合は、ステップS204へ進
み、パケットに従ってバスにアクセス情報を出力する。
そして、ステップS205で、そのアクセス結果を光バ
スアービタに送出する。これは他ノードで発せられたバ
スアクセスが、光バスアービタにより(図12のS30
6において)マルチキャストされ到着した場合である。
キャッシュ管理装置は光バスアービタからの要求にした
がって要求のあったバスアクセスを内部バス上に発行
し、その結果を(SHD信号の状態を)光バスアービタ
にマルチキャスト完了報告として返す(図12のS30
9で受け取る)。
【0042】また、当該パケットがディレクトリ要求パ
ケットであった場合は、ステップS206へ進み、ディ
レクトリをアクセスし、得られたディレクトリの内容を
光バスアービタ610に送出する。これは光バスアービ
タ内でディレクトリ情報が必要となり、そのディレクト
リ情報を(図12のS304において)ノードに要求し
たときである。必要なディレクトリ情報を読み出してバ
スアービタに応答する。
【0043】次に、図5、図6で説明した光バスアービ
タ610の動作を説明する。図12は光バスアービタの
動作を示すフローチャートである。
【0044】ステップS301において、パケット処理
機構612がパケットキュー611にキューイングされ
ているパケットの一つを取り出す。ステップS302で
はICC630をチェックし、取り出したパケットが対
象とするアドレスについてのディレクトリ情報がキャッ
シングされているか否かを判断する。ディレクトリ情報
がICC630にキャッシングされていなければ、ステ
ップS304へ進む。ステップS304では、対象アド
レスのメモリを有するノードに対してディレクトリ要求
パケットを送出し、当該対象アドレスのディレクトリ情
報を獲得する(ステップS305)。なお、ステップS
303で当該対象アドレスに関するディレクトリ情報が
ICC630にあればそのままステップS306へ進
む。
【0045】ステップS306では、当該対象アドレス
に関するディレクトリ情報に基づいて、当該対象アドレ
スをキャッシングしているノードを判別し、これらのノ
ードに対してパケットキュー611から取り出されたパ
ケットによって指示されたアクセスをマルチキャスト
し、当該マルチキャストが完了するのを待つ(ステップ
S309)する。
【0046】ここで、このマルチキャストの種類が、in
validate要求パケットもしくはWRITMによる回線接
続要求パケットであった場合は、当該対象アドレスに対
するinvalidate要求パケットをキャンセルする(ステッ
プS307、S308)。ここで、invalidate要求パケ
ットのキャンセルとは、パケットキュー611にキュー
イングされている当該対象アドレスに対するinvalidate
要求パケットを削除することである。この結果、その時
点で既にキューイングされている当該対象アドレスに対
するinvalidate要求がキャンセルされる。
【0047】マルチキャストが完了すると、ステップS
310へ進み、必要に応じてICC310を更新する。
例えば、マルチキャストがinvalidate要求であった場合
は、当該アドレスに対応するディレクトリ情報をクリア
する。
【0048】更に、ステップS311において、パケッ
トの種類が回線接続要求パケットであれば、ステップS
312へ進み、回線接続を行う。また、そうでなけれ
ば、ステップS313へ進み、マルチキャスト完了パケ
ットを要求元のノードに送出する。
【0049】次に、キャッシュの一貫性保持機構の動作
をより具体的に説明する。以下では、 (1)ノード内のメモリに対してリードアクセスが発行
されたとき (2)ノード内のアドレスにinvalidate,Read-with-In
tent-to-Modify(キャッシュのライトミス時に出力され
るライトを前提としたリードサイクル)などのキャッシ
ュメンテナンス情報が出力されたとき (3)ノード外のアドレスに対してinvalidate,Read-w
ith-Intent-to-Modifyなどのキャッシュメンテナンス情
報が出力されたとき の各ケースについて動作を説明する。
【0050】図13はノード内のメモリに対してリード
アクセスが発行された場合の動作を説明する図である。
まず、ノード内のメモリ130に対してリードアクセス
が行われる(B1)。するとバス監視装置151がその
アクセスを検知し(B2)、メモリ130の応答を抑制
する(B3)(S101〜S103)。その間にバス監
視装置151は、ディレクトリ管理装置153に対して
リードを行ったノードを(そのノードのCPUが実効ア
ドレスのメモリブロックをキャッシングしているものと
して)記録するように、リードの実効アドレスと共に要
求を出す(B4)。ディレクトリ管理装置153は、バ
ス監視装置の要求に基づき、ディレクトリ152の実効
アドレスに対応する欄に光通信装置から送られてきたノ
ードIDを記録する(B5,B6)(S109)。記録
が終了すると、バス監視装置151はメモリ130の応
答抑制を解除し(B7)、リードアクセスが完了する
(B8)(S110)。
【0051】図14はノード内のアドレスに対してinva
lidateもしくはRead-with-Intent-to-Modifyが発行され
た場合の動作を説明する図である。ノード内のメモリ1
30に対してinvalidate/Read-with-Intent-to-Modify
アクセスが行われ(C1)、バス監視装置151がその
アクセスを検知すると(C2)、バス監視装置151は
メモリ130の応答を抑制する(C3)(S101〜S
103)。そしてディレクトリ管理装置153を通じ、
アクセスの実効アドレスに対応するエントリを参照する
(C4)(S104,S105)。バス監視装置151
は参照したノードのIDの記録を参照し、対象アドレス
をキャッシングしているノードがあるかどうか調べる。
もし対象メモリブロックをキャッシングしているノード
がなかったら、必要に応じてディレクトリ152を更新
し、メモリ130の応答抑制を解除してinvalidate/Re
ad-with-Intent-to-Modifyを完了させる(S106、S
109、S110)。
【0052】もしキャッシングしているノードがあった
ら、通信管理装置154に対象アドレス、invalidate/
Read-with-Intent-to-Modifyを発行したノードID(デ
ィレクトリ情報)と共にマルチキャスト要求を出す(C
5)(S107)。要求を受け取った通信管理装置15
4は、光バスアービタ610に対するマルチキャスト要
求パケットを作成し送る(C6)。なお、ここで作成さ
れるマルチキャスト要求パケットは、invalidate要求パ
ケットである。
【0053】要求パケットを受け取った光バスアービタ
610は、パケットをパケットキュー611に格納する
(C7)。パケット処理機構612はパケットキュー6
11からパケットを取り出し処理を開始する(C8)
(S301)。パケット処理機構612はICC630
からパケットに含まれる実効アドレスに対応したディレ
クトリ情報を捜し実効アドレスをキャッシングしている
ノードを調べる(C9)(S302)。ここで、ICC
630に当該実効アドレスに対応したディレクトリ情報
が格納されているものとすると、光バスアービタ610
は、ICC630の情報にしたがって要求されたアクセ
スを記録された各ノードにマルチキャストする(C1
0)(S303,S306)。
【0054】ここで、マルチキャスト要求パケットがin
validate要求パケットであるので、光バスアービタ61
0はアクセスの完了を示すパケットが届くまでの間、ア
クセスの対象アドレスに対するinvalidate要求をキャン
セルする(S307〜S309)。すなわち、パケット
処理機構612はマルチキャストに対する応答パケット
が帰ってくるまでの間、パケットキュー611を走査
し、マルチキャストしたアドレスに対するinvalidate要
求を削除する。これは各ノード毎に行う。ノードB,C
にマルチキャストを行いノードBからアクセス完了パケ
ットを受け取ったら、その後はノードCからの無効化要
求のみをキャンセルする(C11)。
【0055】各ノードからの応答パケットが返ってくる
と、光バスアービタ610はパケットからマルチキャス
トの必要なノードを判断しICC630を更新する(C
12)(S310)。光バスアービタ610によるマル
チキャストが終わると、バス監視装置151はディレク
トリ152の当該アクセスアドレスに対応するディレク
トリ情報を更新するとともに、メモリ130の応答抑制
を解除し、invalidateもしくはRead-with-Intent-to-Mo
difyが完了する(C13)(S109、S110)。
【0056】次に、ノード外のアドレスに対してinvali
date,Read-with-Intent-to-Modifyなどのキャッシュメ
ンテナンス情報が出力された場合の動作を説明する。ノ
ード内のアドレスに対してメンテナンスアクセスした場
合には、バス監視装置151画素のアクセスを検知しそ
のアクセスをリトライさせる(S112)。バス監視装
置151は通信管理装置154に対象アドレスと共にマ
ルチキャスト要求を出す(S113)。この場合のマル
チキャスト要求は、invalidate要求となる。マルチキャ
スト要求を受け取った通信管理装置154は、マルチキ
ャスト要求パケット(invalidate要求パケット)を作成
して光バスアービタ610に送る。
【0057】上述のように、invalidate要求をマルチキ
ャストした光バスアービタ610は、当該マルチキャス
トに対する応答パケットが帰ってくるまでの間、マルチ
キャストしたアドレスに対するinvalidate要求を削除す
る。
【0058】光バスアービタ610によるマルチキャス
トが終わると、バス監視装置151がアクセスリトライ
を解除し、アクセスが完了する(S114)。
【0059】次に本ディレクトリ方式のキャッシュシス
テムにおいて、ノードAとノードBが以下のようなメモ
リアクセスを行った場合の動作の流れを説明する。すな
わち、(1)ノードAのCPU110がノードAのメモ
リ130のXXXX番地をリードする、(2)ノードB
のCPU210がノードAのメモリ130のXXXX番
地をリードする、(3)ノードAのCPU110とノー
ドBのCPU210がノードAのメモリ130のXXX
X番地に同時にライトする、という順序でアクセスが行
なわれた場合を説明する。これにより、(1),(2)
で2つのノードのCPUに同一番地がキャッシングされ
たときの状態が説明され、(3)で他のノードにキャッ
シングされている番地に対してライトを行ったときの動
作が説明される。
【0060】図15はノードAのCPU110がノード
Aのメモリ130にリードを行った場合の処理の流れを
説明する図である。図15を用いて、ノードAのCPU
110がノードAのメモリ130のXXXX番地にリー
ドを行った時、ディレクトリ方式のキャッシュシステム
がどのような動作をするかを説明する。
【0061】(D1)ノードAのCPU110が、リー
ドを行ないキャッシュミスしてリードのメモリアクセス
を開始する、(D2)バス監視装置151が、リードア
クセスを検出し、メモリ応答を抑制する、(D3)バス
監視装置151が、ディレクトリ管理装置153に記録
要求を出す、(D4)ディレクトリ管理装置153が、
ディレクトリ152にノードAを登録する、(D5)メ
モリ130の応答抑制が解除されリードが行われる、
(D6)ノードAのCPU110がXXXX番地をexcl
usiveでキャッシングする。
【0062】以上の動作により、ノードA100のCP
UがXXXX番地をキャッシングしたことがディレクト
リ152に記録される。
【0063】図16は、ノードB200のCPUがノー
ドAのメモリ130にリードを行った場合の動作の流れ
を説明する図である。ノードB200のCPU210が
ノードAのメモリ130のXXXX番地にリードを行っ
た場合、本ディレクトリ方式のキャッシュシステムがど
のような動作をするか、図16を使って説明する。
【0064】(E1)ノードBのCPU210が、リー
ドを行いキャッシュミスしてリードのメモリアクセスを
開始する、(E2)光通信装置240が、アクセスを検
出する、(E3)光通信装置240が、光バスアービタ
610にXXXX番地リードのための回線接続要求パケ
ットを出す、(E4)光バスアービタ610に届いたパ
ケットは、パケットキュー611に格納される、(E
5)パケット処理機構612はパケットキュー611か
ら回線接続要求パケットを取り出し、回線接続要求に対
する処理を開始する、(E6)パケット処理機構612
はICC630を調べ、XXXX番地に対応するエント
リ(ディレクトリ情報)を探索する(ここではみつから
なかったことにする)、(E7)光バスアービタはノー
ドA100にXXXX番地に対応するエントリ(ディレ
クトリ情報)を送信するように要求する、(E8)光通
信装置140を通じて要求を受け取った通信管理装置1
54は、ディレクトリ管理装置153を通じてディレク
トリ152を参照し、XXXX番地に対応するエントリ
(ディレクトリ情報)を得る、(E9)通信管理装置1
54は光バスアービタ610にエントリ(ディレクトリ
情報)を返答する、(E10)光バスアービタ610は
送られてきたディレクトリデータをICCにキャッシュ
する、(E11)光バスアービタ610は返答内容から
ノードA100がXXXX番地の内容をキャッシングし
ていることを知り、他ノードに対してリードをマルチキ
ャストする必要がないと判断する、(E12)光バスア
ービタ610はノードA100とノードB200のデー
タ回線を接続し、ノードBの光通信装置240が、ノー
ドAに対してXXXX番地のリード要求パケットを送る (E13)リード要求パケットを受信したノードAの光
通信装置140は、当該リードアクセスの代行を開始す
る、(E14)バス監視装置151がリードアクセスを
検出し、メモリ応答を抑制する、(E15)バス監視装
置151がディレクトリ管理装置153に記録要求を出
す、(E16)光通信装置140が、リードがリードB
からの要求であったことを、ディレクトリ管理装置15
3に伝える、(E17)ディレクトリ管理装置153
が、ディレクトリ152の、バス監視装置151が指定
したアドレス(XXXX番地)に対応する欄に、光通信
装置140から送られたノードを記録する、(E18)
バス監視装置151がメモリ応答抑制を解除し、メモリ
システム130が、リードアクセスに応答する、(E1
9)CPU110がリードアクセスをスヌープし、XX
XX番地のキャッシュの状態をsheredに変える、(E2
0)ノードAの光通信装置140が、返答パケットを送
信する、(E21)ノードBの光通信装置240が、リ
ードアクセスに対して、応答を代行する、(E22)ノ
ードBのCPU210は、XXXX番地をsheredでキャ
ッシングする。
【0065】以上のような動作により、ノードAのCP
U110、ノードBのCPU210がXXXX番地をキ
ャッシングしていることがディレクトリに記録される。
【0066】図17は、ノードAとノードBの各CPU
がノードAのメモリの同じアドレスに対して実質的に同
時にライトアクセスを行った場合の動作を説明する図で
ある。以下、ノードA100のCPU110とノードB
200のCPU210が同時に、ノードAのメモリ13
0のXXXX番地にライトを行った場合に、本ディレク
トリ方式のキャッシュシステムがどのような動作をする
かを、図17を使って説明する。
【0067】(F1)ノードAのCPU110が、XX
XX番地をライトし、キャッシュヒットしてinvalidate
トランザクションをバス上に出力する、(F2)ノード
Aのバス監視装置151がinvalidateを検出し、CPU
110のinvalidate要求を中断する(リトライさせ
る)、(F3)バス監視装置151はディレクトリ管理
装置153にXXXX番地に対応するエントリの参照要
求を出す、(F4)ディレクトリ管理装置153はディ
レクトリ152を参照し、バス監視装置151に対応す
るエントリを返答する、(F5)バス監視装置151は
通信管理装置154にinvalidateのマルチキャスト要求
を出す、(F6)通信管理装置154は光通信装置14
0を介して、XXXX番地のinvalidateのマルチキャス
トを要求するパケットを光バスアービタ610に送出す
る、(F7)(F1)と同時にノードBのCPU210
が、XXXX番地をライトし、キャッシュヒットしてin
validateトランザクションをバス上に出力する、(F
8)ノードBのバス監視装置251がinvalidateを検出
し、CPU210のinvalidate要求を中断する(リトラ
イさせる)、(F9)バス監視装置251は通信管理装
置254にinvalidateのマルチキャスト要求を出す、
(F10)通信管理装置254は光通信装置240を通
じて、光バスアービタ610にXXXX番地のinvalida
teのマルチキャストを要求するパケットを送出する、
(F11)(F6)と(F10)でノードA100、ノ
ードB200から発行されたinvalidateのマルチキャス
ト要求が、光バスアービタ610のパケットキュー61
1に入る(キューイングされる)ことになる(ここでは
ノードA100の要求が先に入ったことにする)、(F
12)パケット処理機構612がパケットキュー611
からノードA100からのinvalidateマルチキャスト要
求パケットを取り出し処理を始める、(F13)パケッ
ト処理機構612はICC630を参照し、XXXX番
地はノードA100、B200にキャッシングされてい
ることを知り、ノードB200にinvalidate要求パケッ
トを送る、(F14)ノードB200の通信管理装置2
54はinvalidate要求を受け取り、アクセスエミュレー
ション装置255を通じてinvalidateトランザクション
をバス上に出力する (F15)ノードBのCPU210はinvalidateトラン
ザクションをスヌープし、XXXX番地のキャッシュを
invalidateする、(F16)ノードBの通信管理装置2
54は光通信装置240を通じて、光バスアービタ61
0にinvalidate完了パケットを送信する、(F17)パ
ケット処理機構611はノードB200からinvalidate
完了パケットが届くまでの間((F12)から(F1
6)までの間)、パケットキュー612を走査しノード
A100がinvalidateしたアドレスに対して出されてい
るinvalidate要求をキャンセルする (F18)パケット処理機構611は、ICC620を
更新する、(F19)光バスアービタ610は、ノード
A100にinvalidate完了パケットを送る、(F20)
ノードAのバス監視装置151は、ディレクトリ152
を更新し、その後CPU110のinvalidateバストラン
ザクションの中断を解除しトランザクションを完了させ
る、(F21)ノードAのCPU110はXXXX番地
をmodifiedでキャッシングする。
【0068】なお、メモりBのメモリらいと処理は次の
ようになる。ノードAのinvalidateが完了した時点で、
ノードAのCPU110はXXXX番地をdutyでキャッ
シングし、ノードBのCPU210はXXXX番地をキ
ャッシングしていない等状態である。そこで、ノードB
のCPU210は、XXXX番地のライトを行なうとす
るとキャッシュミスとなり、Read-with-Intent-to-Modi
fyの動作に入る。
【0069】以上のような動作により、ノードAからの
invalidate要求を優先し、ノードBからのinvalidate要
求をキャンセルする。これによりキャッシュの一貫性保
持情報をキューイングしているにもかかわらず、ノード
A,Bの両方のキャッシュ内容をinvalidateすることな
く、ノードBのキャッシュ内容のみをinvalidateするこ
とができる。
【0070】<第2の実施形態>次に本発明の第2の実
施形態を説明する。第2の実施形態では、ネットワーク
の中央にコンセントレータを持たないシステムを例示す
る。
【0071】図18は第2の実施形態による並列計算機
のシステム構成を示す図である。本実施形態では、図1
8の様にリング型のネットワークを使用する。各ノード
は数珠繋ぎに光ケーブル701,702,703,70
4,705,…により接続される。
【0072】各ノードは次の手順によりパケットを処理
する。ノードB200を例に挙げると、ノードB200
は隣のノードA100から送られてきたパケットのヘッ
ダを参照し、自分宛(ノードB200宛)のパケットだ
ったらそのパケットを自分の内部で処理する。そうでな
ければ隣のノードC300にそのパケットを転送する。
この動作は光通信装置240により行われる。第1の実
施形態では外部ノードへのメモリアクセス時に、各ノー
ドはコンセントレータ600ヘ回線の接続要求を送るこ
とで通信相手を特定していた。第2の実施形態ではその
かわりに、要求パケットのヘッダに相手のノードを書き
込むことにより相手を指定して通信を行う。
【0073】本実施形態のノード間のキャッシュの一貫
性保持動作は、第1の実施形態と基本構造は同じであ
る。ただしキャッシュの一貫性保持は、キャッシュ管理
装置150のみにより行う。第1の実施形態では、キャ
ッシュメンテナンス情報のマルチキャストは、コンセン
トレータ600内の光バスアービタ610により行って
いた。しかし第2の実施形態では、アクセス対象ノード
のキャッシュ管理装置150によりマルチキャストを行
う。
【0074】図19は第2の実施形態によるノードの構
成を示すブロック図である。第1の実施形態との相違点
は、通信管理装置154内にパケットキュー154a
と、キューイングされたパケットを処理するステートマ
シン154bが備わっている点である。従って、通信管
理装置154のステートマシン154bは、キャッシュ
メンテナンス情報のマルチキャストの処理を行う機能を
有する。なお、キャッシュ管理装置150の動作は、第
1の実施形態(図10、図11)とおおむね同様であ
る。また、通信管理装置154におけるステートマシン
154bは、第1の実施形態の光バスアービタ610と
同様の機能を有し、その動作は図12とほぼ同様であ
る。
【0075】つぎに第2の実施形態の動作を説明する。
なお、ノード内のメモリに対してリードアクセスが発行
された時の動作は、第1の実施形態と同様である。
【0076】図20は、第2の実施形態において、ノー
ド内のメモリアドレスに対してキャッシュメンテナンス
を含む処理が発生した場合の動作を説明する図である。
以下、ノード内のアドレスに対してinvalidateもしくは
Read-with-Intent-to-Modifyが発行された時の動作を、
図20を使って説明する。
【0077】ノード内のメモリ130に対してinvalida
te/Read-with-Intent-to-Modifyアクセスが行われると
(G1)、バス監視装置151がそのアクセスを検知す
る(G2)。バス監視装置151はメモリ130の応答
を抑制する(G3)。続いてバス監視装置151はinva
lidate通知要求を、通信管理装置154内のパケットキ
ュー154aに入れる(G4)。通信管理装置154内
のステートマシン154bはパケットキュー154aか
らinvalidate通知要求を取り出し、処理を開始する(G
5)。そしてディレクトリ管理装置153を通じ、アク
セスの実効アドレスに対応するエントリを参照し、対象
アドレスをキャッシングしているノードがあるかどうか
調べる(G6)。もし対象メモリブロックをキャッシン
グしているノードがなかったら、メモリ130の応答抑
制を解除しinvalidate/Read-with-Intent-to-Modifyを
完了させる。もしキャッシングしているノードがあった
ら、それらのノードの対してマルチキャスト要求パケッ
ト(invalidate要求パケット)を出す(G7)。
【0078】パケットを受け取った光通信装置240
は、パケットのヘッダから自分宛のパケットであること
を認識し、invalidate/Read-with-Intent-to-Modify要
求に従いアクセスエミュレーション装置255を通じて
バス上にinvalidate/Read-with-Intent-to-Modifyを出
力する(G8)。CPU210は出力されたinvalidate
/Read-with-Intent-to-Modifyをスヌープして該当キャ
ッシュをinvalidateする(G9)。通信管理装置254
は光通信装置240を介してinvalidate完了パケットを
返す(G10)。
【0079】invalidate完了パケットを受け取った通信
管理装置154は、完了パケットの内容にしたがってデ
ィレクトリ152を更新する(G11)。通信管理装置
154はパケットキュー154aを走査し、マルチキャ
ストしたアドレスに対するinvalidate要求を削除する
(G12)。アクセスのマルチキャストが終わると、バ
ス監視装置151はメモリ130の応答抑制を解除し、
アクセスが完了する(G3)。
【0080】なお、上記動作手順において、通信管理装
置154内のステートマシン154bは、invalidate要
求パケットを送出してから当該マルチキャストの完了ま
での間、パケットキュー154aに登録された当該アド
レスへのinvalidate要求を削除する。
【0081】図21は、ノード外のアドレスに対してキ
ャッシュメンテナンス情報が出力された場合の第2の実
施形態における動作を説明する図である。以下、ノード
外のアドレスに対してinvalidate,Read-with-Intent-t
o-Modifyなどのキャッシュメンテナンス情報が出力され
たときの動作を図21を用いて説明する。
【0082】CPU210からノード外のアドレスに対
してメンテナンスアクセスが行われると(H1)、バス
監視装置251がそのアクセスを検知し、そのアクセス
をリトライさせる(H2)。バス監視装置251は通信
管理装置254を通じ、当該アクセスアドレスに対応す
るメモリを持っているノードA100に対してマルチキ
ャスト要求パケット(invalidate要求パケット)を作成
し、これを送出する(H3)。
【0083】invalidate要求パケットを受け取ったノー
ドA100の通信管理装置154は、このパケットをパ
ケットキュー154aに入れる(H4)。処理の順番が
回ってくると、このパケットの処理が開始される(H
5)。通信管理装置154はディレクトリ152を参照
し、他のノードに該当アドレスがキャッシングされてい
るかを調べる。もしキャッシングしているノードがあれ
ば、それらのノードにアクセスをマルチキャストする
(H6)。その後、アクセスエミュレーション装置15
5を通じてメモリ130へのアクセスが行われる(H
7)。CPU110はこのアクセスをスヌープし、自身
のキャッシュを無効化(invalidate)する(H8)。通
信管理装置154はマルチキャストに対する応答パケッ
トが帰ってくるまでの間、パケットキュー154aにキ
ューイングされている、マルチキャストしたアドレスに
対するinvalidate要求を削除する(H9)。マルチキャ
ストに対する応答パケットを受信すると、ディレクトリ
152を更新し(H10)、invalidate完了パケットを
送る(H11)。
【0084】ノードB200にinvalidate完了パケット
が到着すると、バス監視装置251はアクセスのリトラ
イを解除し、アクセスが完了する。
【0085】以上の機構により、コンセントレータのな
いリング型のネットワーク上でも、本発明を実施するこ
とができる。同様に、Ethernetのようなバス型のネット
ワークなど、ネットワークの形状によらず実施できるこ
とは明らかである。
【0086】以上の説明から明らかなように、上記各実
施形態によれば、分散共有メモリ上のキャッシュの一貫
性保持機構において、キューイングされたあるアドレス
の無効化要求の一つが受理された時点で、当該アドレス
に対する他の無効化要求がキャンセルされ、一つの無効
化要求が実行されてメモリ内容の一貫性が保持される。
このため、キャッシュの一貫性保持機構に、一貫性保持
要求をキューイングする機構を採用した場合に、同一番
地を複数のノードがキャッシングし、それらが同時に書
き換えられるような事態が生じても、一つの書き換えが
優先される形で処理され、矛盾なく解決される。
【0087】なお、本発明は、複数の機器(例えばホス
トコンピュータ,インタフェイス機器,リーダ,プリン
タなど)から構成されるシステムに適用しても、一つの
機器からなる装置(例えば、複写機,ファクシミリ装置
など)に適用してもよい。
【0088】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。
【0089】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0090】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0091】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0092】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0093】
【発明の効果】以上説明したように、本発明によれば、
キャッシュ機構を有する分散共有メモリにおいて、キャ
ッシュメンテナンス情報のキューイングが可能となる。
【0094】
【図面の簡単な説明】
【図1】第1の実施形態による並列計算機のシステム構
成を示す図である。
【図2】あるプロセッサから見たアドレス空間を説明す
る図である。
【図3】分散共有メモリ機構におけるリードアクセス時
の動作を説明する図である。
【図4】ノードのより詳細な構成を示すブロック図であ
る。
【図5】本実施形態のコンセントレータの構成を示すブ
ロック図である。
【図6】光バスアービタ610の内部構成を示すブロッ
ク図である。
【図7】バス監視装置151の構成を示すブロック図で
ある。
【図8】ディレクトリ152、ディレクトリ管理装置1
53の構成を示すブロック図である。
【図9】メモリアクセスエミュレート装置155の構成
を示すのブロック図である。
【図10】キャッシュ管理装置150の動作を説明する
フローチャートである。
【図11】キャッシュ管理装置のパケット受信時の処理
を説明するフローチャートである。
【図12】光バスアービタの動作を示すフローチャート
である。
【図13】ノード内のメモリに対してリードアクセスが
発行された場合の動作を説明する図である。
【図14】ノード内のアドレスに対してinvalidateもし
くはRead-with-Intent-to-Modifyが発行された場合の動
作を説明する図である。
【図15】ノードAのCPU110がノードAのメモリ
130にリードを行った場合の処理の流れを説明する図
である。
【図16】ノードB200のCPUがノードAのメモリ
130にリードを行った場合の動作の流れを説明する図
である。
【図17】ノードAとノードBの各CPUがノードAの
メモリの同じアドレスに対して実質的に同時にライトア
クセスを行った場合の動作を説明する図である。
【図18】第2の実施形態による並列計算機のシステム
構成を示す図である。
【図19】第2の実施形態によるノードの構成を示すブ
ロック図である。
【図20】第2の実施形態において、ノード内のメモリ
アドレスに対してキャッシュメンテナンスを含む処理が
発生した場合の動作を説明する図である。
【図21】ノード外のアドレスに対してキャッシュメン
テナンス情報が出力された場合の第2の実施形態におけ
る動作を説明する図である。

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 複数の情報処理装置が通信可能に接続さ
    れ、相互に共有可能な共有メモリ空間を有する情報処理
    システムであって、 前記共有メモリ空間へのアクセスによって得られたデー
    タをアクセス元の情報処理装置にてキャッシングするキ
    ャッシュ手段と、 前記キャッシュ手段によるキャッシュデータの一貫性を
    保証するためのキャッシュメンテナンス要求を待ち行列
    に保持する保持手段と、 前記保持手段に保持されたキャッシュメンテナンス要求
    を順次実行する実行手段と、 前記実行手段によって実行すべきキャッシュメンテナン
    ス要求がキャッシュの無効化要求である場合、当該アド
    レスに対する他の無効化要求を前記待ち行列から削除す
    る削除手段とを備えることを特徴とする情報処理システ
    ム。
  2. 【請求項2】 前記削除手段は、前記実行手段によって
    実行すべきキャッシュメンテナンス要求がキャッシュの
    無効化要求である場合、当該アドレスに対する他の無効
    化要求を前記待ち行列から削除するとともに、前記実行
    手段が当該キャッシュの無効化を完了するまでの間、当
    該アドレスに対する他の無効化要求の前記待ち行列への
    登録を禁止することを特徴とする請求項1に記載の情報
    処理システム。
  3. 【請求項3】 前記キャッシュ手段によってキャッシュ
    されたアドレスとそのキャッシュ先を示すディレクトリ
    情報を登録する登録手段を更に備え、 前記実行手段は、前記保持手段に保持されたキャッシュ
    メンテナンス要求を前記ディレクトリ情報を参照して実
    行することを特徴とする請求項1に記載の情報処理シス
    テム。
  4. 【請求項4】 前記複数の情報処理装置は通信管理を行
    う所定の情報処理装置を介して、スター結合された通信
    網により接続されることを特徴とする請求項1に記載の
    情報処理システム。
  5. 【請求項5】 前記所定の情報処理装置が、前記保持手
    段と、前記実行手段と、前記削除手段として機能するこ
    とを特徴とする請求項4に記載の情報処理システム。
  6. 【請求項6】 前記通信網を、複数の波長の光を用いて
    接続する光波長多重化した経路により構成したことを特
    徴とする請求項4または5に記載の情報処理システム。
  7. 【請求項7】 前記複数の情報処理装置がリング型の通
    信網で接続され、概複数の情報処理装置の各々は、自身
    のメモリアドレスに関するキャッシュメンテナンス情報
    に対して前記保持手段、前記実行手段、前記削除手段と
    して機能することを特徴とする請求項1に記載の情報処
    理システム。
  8. 【請求項8】 通信可能に接続された複数の情報処理装
    置が共有する共有メモリ空間のキャッシングを制御する
    情報処理装置であって、 前記共有メモリ空間のキャッシュデータの一貫性を保証
    するためのキャッシュメンテナンス要求を待ち行列に保
    持する保持手段と、 前記保持手段に保持されたキャッシュメンテナンス要求
    を順次実行する実行手段と、 前記実行手段によって実行すべきキャッシュメンテナン
    ス要求がキャッシュの無効化要求である場合、当該アド
    レスに対する他の無効化要求を前記待ち行列から削除す
    る削除手段とを備えることを特徴とする情報処理装置。
  9. 【請求項9】 前記削除手段は、前記実行手段によって
    実行すべきキャッシュメンテナンス要求がキャッシュの
    無効化要求である場合、当該アドレスに対する他の無効
    化要求を前記待ち行列から削除するとともに、前記実行
    手段が当該キャッシュの無効化を完了するまでの間、当
    該アドレスに対する他の無効化要求の前記待ち行列への
    登録を禁止することを特徴とする請求項8に記載の情報
    処理装置。
  10. 【請求項10】 前記キャッシュ手段によってキャッシ
    ュされたアドレスとそのキャッシュ先を示すディレクト
    リ情報を登録する登録手段を更に備え、 前記実行手段は、前記保持手段に保持されたキャッシュ
    メンテナンス要求を前記ディレクトリ情報を参照して実
    行することを特徴とする請求項8に記載の情報処理装
    置。
  11. 【請求項11】 複数の情報処理装置が通信可能に接続
    され、相互に共有可能な共有メモリ空間を有する情報処
    理システムの制御方法であって、 前記共有メモリ空間へのアクセスによって得られたデー
    タをアクセス元の情報処理装置にてキャッシングするキ
    ャッシュ工程と、 前記キャッシュ工程によるキャッシュデータの一貫性を
    保証するためのキャッシュメンテナンス要求を待ち行列
    に保持する保持工程と、 前記保持工程において前記待ち行列に保持されたキャッ
    シュメンテナンス要求を順次実行する実行工程と、 前記実行工程によって実行すべきキャッシュメンテナン
    ス要求がキャッシュの無効化要求である場合、当該アド
    レスに対する他の無効化要求を前記待ち行列から削除す
    る削除工程とを備えることを特徴とする制御方法。
  12. 【請求項12】 通信可能に接続された複数の情報処理
    装置が共有する共有メモリ空間のキャッシングを制御す
    るための制御方法であって、 前記共有メモリ空間のキャッシュデータの一貫性を保証
    するためのキャッシュメンテナンス要求を待ち行列に保
    持する保持工程と、 前記保持工程において前記待ち行列に保持されたキャッ
    シュメンテナンス要求を順次実行する実行工程と、 前記実行工程によって実行すべきキャッシュメンテナン
    ス要求がキャッシュの無効化要求である場合、当該アド
    レスに対する他の無効化要求を前記待ち行列から削除す
    る削除工程とを備えることを特徴とする制御方法。
  13. 【請求項13】 通信可能に接続された複数の情報処理
    装置が共有する共有メモリ空間のキャッシングを制御す
    る制御プログラムを格納する記憶媒体であって、該制御
    プログラムはコンピュータを、 前記共有メモリ空間のキャッシュデータの一貫性を保証
    するためのキャッシュメンテナンス要求を待ち行列に保
    持する保持手段と、 前記保持手段に保持されたキャッシュメンテナンス要求
    を順次実行する実行手段と、 前記実行手段によって実行すべきキャッシュメンテナン
    ス要求がキャッシュの無効化要求である場合、当該アド
    レスに対する他の無効化要求を前記待ち行列から削除す
    る削除手段として機能させることを特徴とする記憶媒
    体。
JP9246755A 1997-09-11 1997-09-11 情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体 Withdrawn JPH1185616A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9246755A JPH1185616A (ja) 1997-09-11 1997-09-11 情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9246755A JPH1185616A (ja) 1997-09-11 1997-09-11 情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体

Publications (1)

Publication Number Publication Date
JPH1185616A true JPH1185616A (ja) 1999-03-30

Family

ID=17153183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9246755A Withdrawn JPH1185616A (ja) 1997-09-11 1997-09-11 情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体

Country Status (1)

Country Link
JP (1) JPH1185616A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123198A (ja) * 2006-11-10 2008-05-29 Toshiba Corp キャッシュ一貫性保証機能を有するストレージクラスタシステム
JP2012500432A (ja) * 2008-08-18 2012-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ストリーム処理コンピュータ・アーキテクチャを実装する方法及びシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123198A (ja) * 2006-11-10 2008-05-29 Toshiba Corp キャッシュ一貫性保証機能を有するストレージクラスタシステム
JP2012500432A (ja) * 2008-08-18 2012-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ストリーム処理コンピュータ・アーキテクチャを実装する方法及びシステム

Similar Documents

Publication Publication Date Title
US5604882A (en) System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US7904665B2 (en) Multiprocessor system and its operational method
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US7234029B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US8171095B2 (en) Speculative distributed conflict resolution for a cache coherency protocol
EP0817074B1 (en) Multiprocessing system employing a three-hop communication protocol
US7434006B2 (en) Non-speculative distributed conflict resolution for a cache coherency protocol
EP0817071B9 (en) A multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5802582A (en) Explicit coherence using split-phase controls
JP3748774B2 (ja) キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送
KR20050085848A (ko) 멀티프로세서 시스템 내에서의 캐시 일관성에서 사용하기위한 전송 상태
US7376793B2 (en) Cache coherence protocol with speculative writestream
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US6202132B1 (en) Flexible cache-coherency mechanism
KR20010101193A (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템
TWI386810B (zh) 多處理器系統以目錄為主之資料傳輸協定
CN108153683A (zh) 用于在存储器中的地址范围之间传输数据的装置和方法
US6587922B2 (en) Multiprocessor system
JP2746530B2 (ja) 共有メモリマルチプロセッサ
US7017012B2 (en) Distributed storage cache coherency system and method
JP3550092B2 (ja) キャッシュ装置及び制御方法
JP3202939B2 (ja) キャッシュ・コヒーレンシを維持するための方法及び装置
US7725660B2 (en) Directory for multi-node coherent bus
JPH1185616A (ja) 情報処理システム及び情報処理装置及びそれらの制御方法及び記憶媒体
JP4689783B2 (ja) 分散共有メモリ型並列計算機

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20041207