JPH09305489A - 情報処理システム及びその制御方法 - Google Patents

情報処理システム及びその制御方法

Info

Publication number
JPH09305489A
JPH09305489A JP8119268A JP11926896A JPH09305489A JP H09305489 A JPH09305489 A JP H09305489A JP 8119268 A JP8119268 A JP 8119268A JP 11926896 A JP11926896 A JP 11926896A JP H09305489 A JPH09305489 A JP H09305489A
Authority
JP
Japan
Prior art keywords
memory
node
information
cache
multicast
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
JP8119268A
Other languages
English (en)
Inventor
Tomohiko Shimoyama
朋彦 下山
Kazumasa Hamaguchi
一正 濱口
Toshiyuki Fukui
俊之 福井
Shuichi Nakamura
秀一 中村
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 JP8119268A priority Critical patent/JPH09305489A/ja
Publication of JPH09305489A publication Critical patent/JPH09305489A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】分散共有メモリを実現するシステムにおいて、
キャッシュデータの一貫性を保持するためのマルチキャ
ストを、少ない記憶容量で効率の良く行う。 【解決手段】ディレクトリ152は各メモリブロックに
関するキャッシュの状態を、複数のノードを含むグルー
プを単位として記憶する。invalidateが発生すると、キ
ャッシュデータの一貫性保持のための情報をマルチキャ
ストすべく、コンセントレータ600に通知される。当
該メモリブロックのキャッシュの状態は、ディレクトリ
152より獲得されて、ノード単位の情報に展開され、
ICC630に記憶される。コンセントレータ600
は、ICC630に記憶されたキャッシング情報に基づ
いて、キャッシュのデータ一貫性保持のための情報を必
要なノードへマルチキャストする。そして、このマルチ
キャストの結果に基づいて、ICC630に記憶された
キャッシング情報がノード単位で更新される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は分散共有メモリを実
現するために、通信機構上でマルチキャストを行う情報
処理システム及びその制御方法に関するものである。
【0002】
【従来の技術】従来、分散共有メモリを実現する場合、
共有メモリの一貫性保持のために必要な通信を必要な計
算機にのみ配送するために、あるアクセスに関しての情
報をどの計算機に送るかを記録しておく必要があった。
特に、ディレクトリ方式の分散共有メモリのキャッシュ
システムでは、メモリのキャッシュライン毎にどの計算
機のアクセス情報をマルチキャストしなければならない
かを記録している。
【0003】
【発明が解決しようとする課題】しかしながら、どの計
算機にマルチキャストするかを示す宛て先の保持に使用
するメモリの容量は、通信機構上の計算機の数により増
大してゆき、その容量を押さえることが求められてい
る。従来、容量を押さえるために宛て先の情報を欠落さ
せ、不必要な計算機にまでマルチキャストを行うことが
行われることが多かった。そのため記憶容量を節約でき
る反面、性能の低下が避けられなかった。
【0004】以上のように、従来の技術においては、高
性能な分散共有メモリシステムを効率良く作成するため
には、大容量の記憶機構を用意することが必要となり、
それが実現上、コスト上、現実的でない場合があった。
【0005】本発明は上記の問題に鑑みてなされたもの
であり、分散共有メモリを実現する際に必要になるアク
セス情報のマルチキャストの宛て先を記録する記憶機構
の容量を押さえつつ、効率の良いマルチキャストを達成
することを可能とする情報処理システム及びその制御方
法を提供することを目的とする。
【0006】また、本発明の目的は、分散共有メモリを
実現するシステムにおいて、キャッシュデータの一貫性
を保持するためのマルチキャストを、該マルチキャスト
の宛て先を記録する記憶機構の容量を押さえつつ、効率
良く実行することを可能とする情報処理システム及びそ
の制御方法を提供することにある。
【0007】
【課題を解決するための手段】上記の目的を達成するた
めの本発明の情報処理システムは、複数のノードによっ
て共有分散メモリを実現する情報処理システムであっ
て、当該情報処理システムにおけるマルチキャストの宛
て先を、各マルチキャストのエントリ毎に、1つ又は複
数のノードを含むグループを単位として記憶する第1記
憶手段と、マルチキャストを実行すべきエントリについ
て、前記第1記憶手段よりキャッシュの状態を獲得して
ノード単位の情報に展開し、これをマルチキャスト情報
として記憶する第2記憶手段と、前記第2記憶手段に記
憶されたマルチキャスト情報に基づいて、当該エントリ
についてマルチキャストを実行する実行手段と、前記実
行手段によるマルチキャストの結果に基づいて前記第2
記憶手段に記憶されたマルチキャスト情報をノード毎に
更新する第1更新手段とを備える。
【0008】また、上記の目的を達成する本発明の情報
処理システムは、複数のノードによって共有分散メモリ
を実現し、各ノード内のプロセッサがキャッシュメモリ
を備えた情報処理システムであって、各メモリブロック
に関するキャッシュの状態を、1つ又は複数のノードを
含むグループを単位として記憶する第1記憶手段と、キ
ャッシュデータの一貫性保持のための情報をマルチキャ
ストすべきメモリブロックについて、前記第1記憶手段
よりキャッシュの状態を獲得してノード単位の情報に展
開し、これをキャッシング情報として記憶する第2記憶
手段と、前記第2記憶手段に記憶されたキャッシング情
報に基づいて、メモリブロックに関するキャッシュのデ
ータ一貫性保持のための情報のマルチキャストを実行す
る実行手段と、前記実行手段によるマルチキャストの結
果に基づいて前記第2記憶手段に記憶されたキャッシン
グ情報をノード毎に更新する第1更新手段とを備える。
【0009】また、好ましくは、前記更新手段は、前記
実行手段によるマルチキャストの結果、当該メモリブロ
ックをキャッシュしていないノードを検出し、この検出
結果に基づいて前記第2記憶手段のキャッシング情報を
更新する。マルチキャストの結果に基づいて当該メモリ
ブロックをキャッシュしていないノードを検出して、第
2記憶手段のキャッシング情報をノード毎に更新するの
で、正確なキャッシング情報が第2記憶手段に記憶され
るようになる。
【0010】また、好ましくは、前記第1記憶手段は、
前記複数のノードの夫々に設けられている。
【0011】また、好ましくは、自ノード内のメモリに
対するアクセスの発生を検出する検出手段と、前記検出
手段によってアクセスの発生が検出された場合、該アク
セスのアクセス元を獲得して前記第1記憶手段に記憶さ
れたキャッシュの状態を更新する第2更新手段とを更に
備える。
【0012】また、好ましくは、当該情報処理システム
におけるキャッシュデータの一貫性保持機構はディレク
トリ方式によって実現され、前記第1記憶手段は、該デ
ィレクトリ方式におけるディレクトリ情報を複数のノー
ドで構成されるグループを単位として記憶し、前記第2
記憶手段は、前記実行手段におけるキャッシュメモリを
構成する。
【0013】
【発明の実施の形態】以下に添付の図面を参照して、本
発明の好適な実施形態を説明する。
【0014】[第1の実施形態]図1は、第1の実施形
態における並列計算機システムの構成を示す図である。
同図に示されるように、本実施形態の計算機は複数のノ
ード100,200,300,400,500からな
り、各々のノードはコンセントレータ600を通じて光
ファイバによりネットワークを構成している。コンセン
トレータ600は、ノード間の通信を管理する。各ノー
ドは通常の計算機であり、各々1個または複数個のCP
Uを持つ。また、各々のノードはアドレス空間を共有し
ている。図2は本実施形態における計算機システムのメ
モリマップを示す図である。一つのCPUからみえるア
ドレス空間は、図2に示されるようになっている。そし
て、ノード間通信は、自分のアドレス上に見えている相
手のメモリに対してデータを直接書込むことにより行わ
れる。
【0015】各ノード100,200,300,40
0,500が光通信装置140,240,340,44
0,540を通じ、アービトレーション回線160,2
60,360,460,560、データ回線170,2
70,370,470,570の2本の光ファイバを介
してコンセントレータ600に接続されることによりネ
ットワークが構成される。アービトレーション回線16
0,260,360,460,560は、夫々ノード1
00,200,300,400,500とコンセントレ
ータ600内の光バスアービタ610を接続する。アー
ビトレーション回線により、各ノードは光バスアービタ
610と相互に通信することができる。
【0016】データ回線170,270,370,47
0,570は、ノードとコンセントレータ内のスターカ
プラ620を接続する。スターカプラ620は、一端に
光を入力すると他端からその光が均等に出力される。従
って、一つのノードがデータ回線に光信号を発すると、
その光信号を他の全てのノードで受け取ることができ
る。このため、一つのノードがデータ回線に発した光通
信を、全てのノードで受けとることが可能である。
【0017】ノードは、通信する波長を選択することに
より、任意のノードと通信を行う。例えば、ノードA1
00がノードB200と通信を行う場合は、ノードA1
00がアービトレーション回線160を通じて光バスア
ービタ610にノードB200と通信を行うための通信
要求を送る。光バスアービタ610は、ノードB200
が他のノードと通信中でないことを確認し、どのノード
も使用していない波長αをアービトレーション回線16
0,260を通じて、ノードA100、ノードB200
間の通信に割り当てる。ノードA100,ノードB20
0は波長αを使用してデータ回線170,270を通じ
て通信を行う。
【0018】分散共有メモリは、上述のようなネットワ
ークの上における光通信装置によって実現される。例と
して、ノードA100のCPU110が、ノードB20
0のメモリ230の内容をリードする(読み出す)様子
を、図3を使って説明する。図3は、分散共有メモリに
よるメモリリードの手順を説明するための図である。な
お、図3に示される(A1)〜(A7)の動作は、一連
のものとして実施される。
【0019】(A1)ノードA100のCPU110
が、ノードB200のメモリ230に対してリードアク
セスを発行する、(A2)ノードA100の光通信装置
140は、メインバス上のバスアクセスを監視してい
る。メインバス上に、そのノードA100のメモリ13
0以外のアドレスに対してアクセスが発行されると、光
通信装置140はそのバスアクセスを検出する、(A
3)光通信装置140は、アクセス要求パケットをコン
セントレータ600を通じて、ノードB200の光通信
装置240に対して送る、(A4)ノードB200の光
通信装置240はアクセス要求パケットを受けとると、
その依頼にしたがってノードBのメモリ230に対して
のアクセスを代行する、(A5)ノードB200のメモ
リ230がアクセスに応答する、(A6)ノードBの光
通信装置240は、アクセスが終わると、ノードA10
0の光通信装置140に対してアクノリッジ(メモリ2
30よりの読出しデータを含む)を返す、(A7)アク
ノリッジを受けとったノードA100の光通信装置14
0は、ノードB200のメモリ230の代わりにノード
A100のCPU110のアクセスに応答する。
【0020】また、本実施形態では分散共有メモリ上
で、ディレクトリ方式の一貫性保持方式を採用したキャ
ッシュシステムを搭載している。ディレクトリ方式のキ
ャッシュの詳細は、「共有記憶型並列システムの実際」
(コロナ社刊)に示されている。本実施形態で採用した
ディレクトリ方式のキャッシュについては、特許情メ研
番号k940087で提案されているICC(Inte
r−node Cache−information
Cache)を採用したものを使用する。これは各ノー
ドにディレクトリを分散して持ち、ディレクトリ方式の
一貫性保持動作を行う際に必要なキャッシュメンテナン
ス情報のマルチキャストは、ネットワーク中央のコンセ
ントレータで行うというものである。
【0021】即ち、各ノードにおいて、自ノード内のキ
ャッシュ単位であるメモリブロックを、ディレクトリを
使用して管理する。そして、各ディレクトリにはそのメ
モリブロックに対するキャッシュメンテナンス情報をマ
ルチキャストするためのマルチキャスト先を示す情報が
格納される。コンセントレータは、このディレクトリ情
報を参照してマルチキャストを実行する。
【0022】また、ノード内のCPU間でのキャッシュ
の一貫性保持は、各CPUに内蔵されたMESIプロト
コル(Modified,Exclusive,Sha
red,Invalidの4状態によりキャッシュを管
理するプロトコル)によるスヌープキャッシュで管理さ
れているものとする。なお、本実施形態ではMESIプ
ロトコルを使用するが、これは本発明を限定するもので
はない。
【0023】ノード間のキャッシュの一貫性保持は、外
付けされたキャッシュ管理装置150、250、35
0、450、550により管理される。また、キャッシ
ュメンテナンス情報のマルチキャストは、コンセントレ
ータ600内の光バスアービタ610により行われる。
光バスアービタ610にはICCと呼ばれるディレクト
リ情報のキャッシュがある(図6により後述する)。光
バスアービタ610がキャッシュメンテナンス情報のマ
ルチキャストを行う場合には、各ノードに格納されたデ
ィレクトリ情報が必要となるが、ICC630に必要な
ディレクトリ情報があった場合には、このICC630
のディレクトリ情報を参照することにより、効率よく情
報のマルチキャストを行なえるようになっている。
【0024】特に、本実施形態では、コンセントレータ
600内のディレクトリ情報のキャッシュを24ビット
幅のRAMで構成するフルマップ方式をとっている。従
って、本実施形態のシステムにおいては最大ノード数が
24となるが、この数はキャッシュを構成するRAMの
ビット幅を変更することで容易に変更可能であることは
明らかである。また、RAMの各ビットはそれぞれのノ
ードを示し、該当キャッシュブロックをキャッシングし
ているノードに対応するビットが1となる。
【0025】以上のような構成に対して、各ノード内の
ディレクトリには、グループごとのディレクトリ情報の
みを記録する。本実施形態では、4ノードを1つのグル
ープとして、各ディレクトリのマルチキャスト先をグル
ープ単位で記憶する。このような構成をとることによ
り、よく使用するディレクトリ情報はコンセントレータ
600内のキャッシュメモリに詳細に記憶されることに
なりマルチキャストの効率低下が防止される。また、稀
にしか使用しないディレクトリ情報は各ノード内でグル
ープを単位として記憶されることにより、その情報量を
落とすことが出来る。この結果、システム性能の向上
(マルチキャストの効率的な実行)とディレクトリ情報
のための記憶容量の縮小の両立を実現する。
【0026】図4は、本実施形態における計算機システ
ムのノードの構成を示すブロック図である。ディレクト
リ方式のキャッシュを実現するキャッシュ管理装置15
0は、バス監視装置151、ディレクトリ152、ディ
レクトリ管理装置153、通信管理装置154、アクセ
スエミュレーション装置155から構成されている。
【0027】図5は第1の実施形態のおける各ノード内
のディレクトリのデータ構造を表す図である。同図に示
されるように、ディレクトリ152はノードを4個ずつ
の6グループに分割し、ディレクトリ152の各ビット
によりそれぞれのグループにおけるキャッシング状態を
示す。ディレクトリ152は「6ビット×キャッシュブ
ロック数」(6:グループ数)のRAMにより構成され
る。ここでは、ノードA,B,C,Dを第1グループ、
ノードE,F,G,Hを第2グループとし、以下同様
に、ノードU,V,W,Xで構成される第6グループま
での6個のグループでキャッシング状態を管理する。各
グループ内のノードのうち一つでも該当キャッシュブロ
ックをキャッシングしていれば、そのグループに対応す
るビットが1となる。該当キャッシュブロックに対する
キャッシュメンテナンス情報の伝達が必要な場合は、ビ
ットが1になっているグループに対してキャッシュ情報
をマルチキャストする。このようにグループ化すること
で、フルマップ方式と比較してディレクトリの容量を縮
小している。
【0028】図6はコンセントレータ600の構成を表
すブロック図である。コンセントレータ600は、光バ
スアービタ610、スターカプラ620、ICC(In
ter−node Cache−informatio
n Cache)630により構成される。ノードから
送られてきたキャッシュ管理情報は、光バスアービタ6
10とICC630により必要なノードに転送(マルチ
キャスト)される。ICC630はフルマップ方式をと
っており、24ビット幅のRAM(24:ノード数)に
より構成される。図7は、本実施形態におけるICCの
データ構造を説明する図である。ICC630では、各
ディレクトリ情報がマルチキャストの必要なノードを正
確に記録するので、不必要なマルチキャストがなくな
り、システムの性能向上をすることができる。
【0029】次にキャッシュ管理装置150の動作を説
明する。ここでは、 ・ノード内のメモリに対してリードアクセスが発行され
たとき、 ・ノード内のアドレスにinvalidate,Rea
d−with−Intent−to−Modify(キ
ャッシュのライトミス時に出力されるライトを前提とし
たリードサイクル)などのキャッシュメンテナンス情報
が出力されたとき、 ・ノード外のアドレスに対してinvalidate,
Read−with−Intent−to−Modif
yなどのキャッシュメンテナンス情報が出力されたと
き、に分けて説明する。
【0030】図8は、ノード内のアドレスに対してリー
ドアクセスが発行された場合の動作を説明する図であ
る。図9は、ノード内のアドレスに対してキャッシュメ
ンテナンスが発生した場合の動作を説明する図である。
また、図10は、ノードにおけるキャッシュ管理動作の
手順を示すフローチャートである。
【0031】先ず、ノード内のメモリに対してリードア
クセスが発行された時の動作を、図8及び図10を用い
て説明する。ノード内のメモリ130に対してリードア
クセスが行われる(B1)と、バス監視装置151がそ
のアクセスを検知する(B2)(ステップS11)。当
該アクセスが自ノードのメモリへのアクセスである場合
は、メモリ130の応答を抑制する(B3)(ステップ
S12、S13)。
【0032】続いて、ディレクトリ152を参照し(ス
テップS14)、当該アクセス先のメモリ内容が他のノ
ードにキャッシングされているかどうかを判断する(ス
テップS15)。
【0033】他のノードにキャッシングされていない場
合、バス監視装置151は、リードを行ったノードの属
するグループのIDを、そのグループのCPUが実効ア
ドレスのメモリブロックをキャッシングしているものと
して記録するように、リードの実効アドレスと共にディ
レクトリ管理装置153に対して要求を出す(B4)。
ディレクトリ管理装置153はバス監視装置151の要
求に基づき、ディレクトリ152の当該実効アドレスに
対応する欄の光通信装置から送られてきたノードグルー
プID(B5)に対応するビットに「1」を記録する
(B6)(ステップS18)。記録が終了すると、バス
監視装置151はメモリ130の応答抑制を解除し(B
7)、当該リードアクセスが完了する(B8)(ステッ
プS19)。
【0034】一方、アクセス先のメモリ内容が既に他の
ノードにキャッシングされている場合には、キャッシュ
管理装置150はディレクトリ情報の内容と共にマルチ
キャスト要求を送出する(ステップS16)。なお、こ
のマルチキャスト要求におけるディレクトリ情報には、
ディレクトリ152に既に記録されているキャッシング
情報と、今回のリードアクセスの発生元のノードを含む
グループがキャッシング先として含まれている。
【0035】ここで、ディレクトリ情報を含むマルチキ
ャスト要求パケットを受信したコンセントレータ600
は、ICC630を検索してマルチキャストさきを得
る。もし、ICCでミスした場合、受信したパケットの
ディレクトリ情報を使用する。その後、コンセントレー
タ600は、ディレクトリ情報に従ってマルチキャスト
を実行する。そして、このマルチキャストの実行結果に
基づいてICC630を更新し、情報欠落の無い詳細な
ディレクトリ情報とする。そして、コンセントレータ6
00より当該要求に対する完了パケットが発行される。
なお、このコンセントレータ600の動作については後
述する。
【0036】バス監視装置151は、この完了パケット
を受信すると、ディレクトリ152を更新する(ステッ
プS18)。そして、バス監視装置151はメモリ13
0の応答抑制を解除し、当該リードアクセスが完了する
(ステップS19)。
【0037】次に、ノード内のアドレスに対してinv
alidateもしくはRead−with−Inte
n−to−Modifyが発行された時の動作を、図9
を使って説明する。ノード内のメモリ130に対してi
nvalidate/Read−with−Inten
t−to−Modifyアクセスが行われると(C
1)、バス監視装置151がそのアクセスを検知する
(C2)。バス監視装置151はメモリ130の応答を
抑制する(C3)(ステップS11〜S13)。そして
ディレクトリ管理装置153を通じ、アクセスの実効ア
ドレスに対応するエントリを参照する(C4)(ステッ
プS14)。バス監視装置151は、参照したノードグ
ループIDの記録を調べ、対象アドレスをキャッシング
しているノードグループがあるかどうか調べる。もし対
象メモリブロックをキャッシングしているノードグルー
プがなかったら、当該アクセスに基づいてディレクトリ
152を更新するとともに(C10)、メモリ130の
応答抑制を解除し(C11)、invalidate/
Read−with−Intent−to−Modif
yを完了させる(ステップS15、S18、S19)。
【0038】もしキャッシングしているノードグループ
があったら、通信管理装置154に対象アドレス、in
validate/Read−with−Inten−
to−Modifyを発行したノードグループIDと共
にマルチキャスト要求を出す(C5)。要求を受けとっ
た通信管理装置154は、光バスアービタ610に対す
るマルチキャスト要求パケットを作成し、これを送信す
る(C6)(ステップS15、S16)。
【0039】この要求パケットを受けとった光バスアー
ビタ610は、ICC630からパケットに含まれる実
効アドレスに対応したディレクトリ情報を捜し、ICC
にディレクトリ情報がなければ要求パケットに含まれる
情報量の欠けたディレクトリ情報をフルマップ情報に変
換してICC630に登録する(C7)。光アービタ6
10は、ICC630の情報にしたがって要求されたア
クセスを記録されたグループの各ノードにマルチキャス
トする(C8)。各ノードからの応答パケットが返って
くると、光アービタ610はパケットからマルチキャス
トの必要なノードを判断し、ICC630を更新する
(C9)。マルチキャストが完了すると完了パケットが
コンセントレータ600よりノードへ転送される。
【0040】光バスアービタ610によるマルチキャス
トが終わると、バス監視装置151は、当該アクセスに
基づいてディレクトリ152を更新するとともに(C1
0)、メモリ130の応答抑制を解除し(C11)、i
nvalidate/Read−with−Inten
t−to−Modifyを完了させる(ステップS1
7、S18、S19)。
【0041】次に、ノード外のアドレスに対してinv
alidate,Read−with−Intend−
to−Modifyなどのキャッシュメンテナンス情報
が出力された時の動作を説明する。ノード外のアドレス
に対してキャッシュメンテナンス情報によるアクセスが
発生した場合には、バス監視装置151がそのアクセス
を検知し、そのアクセスをリトライさせる(ステップS
11、S12、S20、S21)。バス監視装置151
は、通信管理装置154に対象アドレスと共にマルチキ
ャスト要求を出す。要求を受けとった通信管理装置15
4は、光アービタ610に対するマルチキャスト要求パ
ケットを作成して送る(ステップS22)。光バスアー
ビタ610によるマルチキャストが終わると、バス監視
装置151アクセスリトライを解除し、本アクセスが完
了する(ステップS23、S24)。
【0042】図11はキャッシュ管理装置がパケットを
受信した場合の動作を説明するフローチャートである。
ステップS31において、パケットの受信を待ち、パケ
ットが受信されるとステップS32へすすむ。ステップ
S32では、パケットの種類を判定し、「回線接続完了
パケット」の場合はステップS33へ、「キャッシュメ
ンテナンスパケット」の場合はステップS34へ、「デ
ィレクトリ要求パケット」の場合はステップS36へそ
れぞれ進む。
【0043】ステップS33では、パケットの情報に従
って、アクセス情報をバスに出力する。ステップS34
では、パケットの情報に従ってアクセス情報をバスに出
力し、ステップS35において、そのアクセス結果を光
バスアービタ610に送信する。即ち、キャッシュメン
テナンスパケットが対象とするディレクトリを、当該ノ
ードのCPUがキャッシュしているか否かを判定し、そ
の結果を光バスアービタに送出する。また、ステップS
36では、ディレクトリ152をアクセスし、当該パケ
ットで示されたディレクトリのディレクトリ情報を獲得
し、これを光バスアービタに送出する。
【0044】次にネットワーク中央の光バスアービタの
動作を ・ディレクトリ情報を含んだマルチキャスト要求パケッ
トを受け取ったとき、 ・ディレクトリ情報を含まないマルチキャスト要求パケ
ットやアクセスパケットを受け取ったとき、に分けて説
明する。図15は、光バスアービタの動作を説明するフ
ローチャートである。
【0045】図12は、ディレクトリ情報を含んだマル
チキャスト要求パケットを受け取ったときの光バスアー
ビタ610の動作を説明する図である。ディレクトリ情
報を含んだマルチキャスト要求パケットを受け取ると
(D1)、光バスアービタ610はパケットに含まれる
対象アドレスに対応したディレクトリがICC630に
キャッシングされていないか調べる(D2)(ステップ
S41、S42、S52)。もし、当該ディレクトリが
キャッシングされていなければ、そのディレクトリ情報
をフルマップ方式に変換し、ICC630にキャッシン
グする(D3)(ステップS53、S54)。その後、
光バスアービタ610はディレクトリ情報で示されたノ
ードに対して、パケットで示されたアクセスのマルチキ
ャストを行う(D4)(ステップS48)。マルチキャ
ストを終えると、光バスアービタ610はマルチキャス
トしたアクセスの結果をICC630に反映させる(D
5)(ステップS49)。マルチキャストが完了する
と、要求元のノードに対してマルチキャスト完了パケッ
トを送出する(D6)(ステップS55)。
【0046】一方、ステップS53において、当該ディ
レクトリがキャッシングされていれば、そのままステッ
プS48へ進む。即ち、ICCにヒットした場合は、I
CCの内容が優先される。
【0047】次に、ディレクトリの情報を含まないマル
チキャスト要求パケットやアクセスパケットを受け取っ
たときの動作を説明する。図13は、ディレクトリ情報
を含まないマルチキャスト要求パケットを受け取ったと
きの光バスアービタ610の動作を説明する図である。
【0048】ディレクトリ情報を含まないアクセスパケ
ットやマルチキャスト要求パケットを受け取ると(E
1)、光バスアービタ610はパケットに含まれる対象
アドレスに対応したディレクトリがICC630にキャ
ッシングされていないか調べる(E2)(ステップS4
1、S42、S43)。もしICC630に該当するデ
ィレクトリ情報がキャッシングされていなければ、光バ
スアービタ610はそのディレクトリ情報を持っている
ノード(パケットで示されるアクセスアドレスに対応し
たノード)に対してディレクトリ要求パケットを送出す
る(E3)(ステップS45)。
【0049】ディレクトリ要求パケットを受け取ったノ
ードの通信管理装置254は、ディレクトリ管理装置2
51を通じてパケットに含まれるアクセスアドレスから
該当ディレクトリを参照し(E4)、光バスアービタ6
10に対してディレクトリ情報を送出する(E5)。
【0050】光バスアービタ610はパケットに含まれ
るディレクトリ情報をフルマップの形式に変換してIC
C630にキャッシングする(E6)(ステップS4
6、S47)。その後、光バスアービタ610はICC
630のディレクトリ情報で示されたノードに対して、
パケットで示されたアクセスのマルチキャストを行う
(E7)(ステップS48)。マルチキャストを終える
と、光バスアービタ610は、マルチキャストしたアク
セスの結果をICCに反映させる(E8)(ステップS
49)。マルチキャストが完了すると、要求元のノード
に対してマルチキャスト完了パケットを送出する(E
9)(ステップS50、S55)。
【0051】なお、受信したパケットが回線接続要求で
あった場合は、回線の接続を行った後に、マルチキャス
ト完了パケットを送出する(ステップS50、S51、
S55)。
【0052】先に述べたように、ICC630はフルマ
ップ方式であり、各ノードのディレクトリはいくつかの
ノードをグループ化して情報量を落としている。そのた
め、ICCミス(キャッシュミス)が起こり、ICC6
30に各ノードのディレクトリからディレクトリ情報を
読み込む際には、図14のような変換を行う。図14は
ノードのディレクトリとICCとの間のデータ変換方法
を示す図である。各ノードのディレクトリからICCに
情報を読み込む際には、ディレクトリにマルチキャスト
が必要だと記録されたノードグループについて、そのグ
ループに属するノードに対応するICCのビットを全て
ONにする変換を行う。
【0053】このような変換はキャッシュメンテナンス
情報を必要のないノードに対してキャストすると言う、
不要なキャストを含むマルチキャストを生じさせる。だ
が、必要のないノードに対してのマルチキャストは、性
能を落とすが論理的な矛盾を生じないため、このような
変換が可能である。最初の1回は不必要なノードにまで
マルチキャストが行われるが、各ノードがマルチキャス
トに応答して返してくるパケットの中に、そのノードが
該当アドレスをキャッシングしているかの情報が含まれ
ているので、それに基づいてICC630を更新するこ
とで、2回目以降のマルチキャストは必要なノードにの
みに行われることになる。
【0054】次にキャッシュ管理装置内の個々の装置に
ついて説明する。
【0055】図16はバス監視装置151の構成を示す
ブロック図である。バス監視装置151の内部は、シー
ケンサ151aとアドレスラッチ151bからなってい
る。シーケンサ151aはノード内のバスを監視し、バ
スマスタ(例えば、CPU110)によるメモリのリー
ドアクセス、invalidate、Read−wit
h−Intent−to−Modify、メモリ書込み
の実行を検出する。シーケンサ151aは、バス上のア
クセス要求信号、バスアクセスに伴ってバスマスタから
出力されるアクセス修飾信号などを監視することで、ア
クセスを検出する。
【0056】即ち、バス監視装置151は、アクセス要
求信号が有効であり、アクセスアドレスが自分のノード
のメモリに対するものであり、アクセス修飾信号がリー
ドであることを示している場合、リードアクセスを検出
したと判断する。そして、リードアクセスを検出する
と、メモリ130の応答を抑制し、その間に通信管理装
置154を通じて光通信装置140にリードアクセスを
行うように依頼を出したノードを問い合わせ、ディレク
トリ管理装置153を通じてディレクトリ152のリー
ドアクセスの対象アドレスに対応する欄に登録する。
【0057】また、バス監視装置151は、アクセス要
求信号が有効であり、アクセス修飾信号がそのアクセス
がライト/invalidate/Read−with
−Inten−to−Modify等のキャッシュメン
テナンスアクセスであることを示している場合、ライト
/invalidate/Read−with−Int
en−to−Modifyを検出したと判断する。
【0058】自ノードに対するライト/invalid
ate/Read−with−Intent−to−M
odifyを検出すると、バス監視装置151は、メモ
リ書込み/invalidate/Read−with
−Intent−to−Modifyを中断する。そし
て、ディレクトリ管理装置153を通じてディレクトリ
152の書込み先アドレスに対応する欄を参照して、そ
のアドレスに対応したメモリブロックをキャッシングし
ているノードがあるかどうかを調べる。キャッシングし
ているノードがあれば、通信管理装置154に対して書
込み/invalidateをマルチキャストするよう
要求を出す。その後、通信管理装置154がマルチキャ
ストの終了を通知してきたら、中断していたメモリ書込
み/invalidate/Read−with−In
ten−to−Modifyを再開し、ディレクトリ管
理装置153を通じてディレクトリ152のメモリ書込
み先アドレスに対応する欄をクリアする。
【0059】なお、ライト/invalidate/R
ead−with−Intent−to−Modify
の中断は、バス上にアクセス再実行信号を出力し、その
ライトアクセスをプロセッサにリトライさせることで実
現したが、他の方法によりライト命令を中断してもよ
い。
【0060】次に、図17は、ディレクトリ152、デ
ィレクトリ管理装置153の構成を示すブロック図であ
る。ディレクトリ152は、各メモリブロックをキャッ
シングしているノードをグループ単位で記録する。即
ち、各対象メモリブロック(ディレクトリ)に対して、
ライト/invalidate/Read−with−
Intent−to−Modifyが行われた場合に、
どのノードに、キャッシュの一貫性保持のためにライト
/invalidate/Read−with−Int
ent−to−Modifyを通知しなければならない
かを記録している。
【0061】ディレクトリ152への操作は、ディレク
トリ管理装置153により行われる。ディレクトリ管理
装置153は、シーケンサ153aにより管理されてい
る。ディレクトリ152に対する操作は、バス監視装置
151がリードアクセスを検出してリードアクセスを実
行したノードを記録する場合、バス監視装置151がメ
モリ書込み/invalidate/Read−wit
h−Intent−to−Modifyを検出して対象
メモリブロックをキャッシングしているノードを参照す
る場合、或はバス監視装置151の要求により記録を破
棄する場合に行われる。
【0062】ディレクトリ152は、6ビット幅(6は
本例におけるノードグループの数)のメモリである。デ
ィレクトリの詳しい構造については先に説明した。ディ
レクトリ管理装置152は、バス監視装置151から記
録要求を受けると、要求があったノードが所属するグル
ープに対応するビットをONにする。またバス監視装置
151から記録破棄要求を受けると、全てのビットをO
FFにする。
【0063】通信管理装置154はバス監視装置151
からの要求により、光通信装置140とのコミュニケー
ションを行う。通信管理装置154は、バス監視装置1
51からのinvalidate/Read−with
−Inten−to−Modify/メモリ書込みのマ
ルチキャスト要求を受け、光通信装置140を介して光
アービタ610に、検出されたライトアクセスのマルチ
キャスト依頼パケットを送出する。また光通信装置14
0を通じて受けとったキャッシュの一貫性保持動作要求
パケットにより、メモリアクセスエミュレーション装置
155に対してinvalidate/Read−wi
th−Inten−to−Modify/ライト/リー
ド要求を出力する。
【0064】図18は、メモリアクセスエミュレーショ
ン装置155の構成を示すブロック図である。メモリア
クセスエミュレーション装置155は、通信管理装置1
54からの要求により、ダミーのメモリライトアクセス
/ダミーのメモリリードアクセス/invalidat
e/Read−with−Intent−to−Mod
ifyアクセスを自ノードのバス上に発行する。これら
のアクセスにより、ノード間のキャッシュの一貫性が保
持される。エミュレート装置155の発行するアクセス
は、自分のノードに割り当てられたアドレスではないた
め、ノード内のバススレーブ(例えばメモリ130)よ
り応答は発生せず、ダミーのアクセスとなる。
【0065】また、コンセントレータ600内の光バス
アービタ610にも、キャッシュの一貫性保持のための
機構が存在する。本実施形態では、光バスアービタ61
0は一つの計算機として実現したため、これらの機構は
ソフトウェアで実現している。しかしながら、これは本
発明を制限するものではなく、ハードウェアで実現する
ことも可能である。
【0066】次に本ディレクトリ方式のキャッシュシス
テムの詳細な動作例を示す。本例では、以下のような動
作が行われた場合を説明する。
【0067】(1)ノードA100(以下、単にノード
Aとする)のCPU110がノードAのメモリ130の
XXXX番地をリードする、(2)ノードE500(以
下、単にノードEとする)のCPU510がノードAの
メモリ130のXXXX番地をリードする、(3)ノー
ドAのCPU110がノードAのメモリ130のXXX
X番地にデータをライトする。
【0068】以上の(1)、(2)により2つのノード
のCPUに同一番地がキャッシングされたときの状態
を、(3)により他のノードにキャッシングされている
番地に対してライトを行ったときの動作を説明する。
【0069】先ず、ノードAのCPU110がノードA
のメモリ130のXXXX番地にリードを行った場合、
ディレクトリ方式のキャッシュシステムがどのような動
作をするか、図19を使って説明する。図19は、ノー
ドAが自ノード内のメモリをリードアクセスした場合の
動作を説明する図である。
【0070】(F1)ノードAのCPU110が、リー
ドを行いキャッシュミスしてリードのメモリアクセスを
開始する、(F2)バス監視装置151が、リードアク
セスを検出し、メモリ応答を抑制する、(F3)バス監
視装置151が、ディレクトリ管理装置153に記録要
求を出す、(F4)ディレクトリ管理装置153が、デ
ィレクトリ152のXXXX番地を含むメモリブロック
のディレクトリ情報にノードAの属するグループを登録
する、(F5)メモリ130の応答抑制が解除されリー
ドが行われる、(F6)ノードAのCPU110がXX
XX番地をexclusiveでキャッシングする。
【0071】以上の動作により、ノードAのCPU11
0がXXXX番地をキャッシングしたことがディレクト
リ152に記録される。即ち、XXXX番地を含むディ
レクトリのノードAを含むグループ(本例では、ノード
A,B,C,D)のビットが1にセットされる。
【0072】次にノードEのCPU510がノードAの
メモリ130のXXXX番地にリードを行った場合、デ
ィレクトリ方式のキャッシュシステムがどのような動作
をするかを説明する。図20は、ノードEがノードAの
メモリに対してリードアクセスを行った場合の動作を説
明する図である。
【0073】(G1)ノードEのCPU510が、リー
ドを行うと、キャッシュミスして当該リードのメモリア
クセスを開始する、(G2)光通信装置540が、外部
ノードへのリードアクセスを検出する、(G3)光通信
装置540が、光バスアービタ610にXXXX番地を
リードするための回線接続要求パケットを出す。
【0074】(G4)光バスアービタはICC630を
調べ、XXXX番地に対応するエントリを探索する(こ
こではみつからなかったことにする)、(G5)光バス
アービタはノードAにXXXX番地に対応するディレク
トリ情報を送信するように要求する、(G6)光通信装
置140を通じて要求を受けとった通信管理装置154
は、ディレクトリ管理装置153を通じてディレクトリ
152を参照し、XXXX番地に対応するディレクトリ
情報を得る、(G7)通信管理装置154は光バスアー
ビタ610にディレクトリ情報を返答する、(G8)光
バスアービタ610は送られてきた、情報量の削減され
たディレクトリ情報から、ICC630のフルマップデ
ータに変換してICC630にキャッシュする、(G
9)光バスアービタ610が、返答内容からノードAを
含むグループがXXXX番地の内容をキャッシングして
いることを知り、グループのメンバであるノードA,
B,C,Dに対してリードをマルチキャストする、この
時、例えばノードAでは、CPU110がリードアクセ
スをスヌープし、XXXX番地のキャッシュの状態をs
heredに変える、(G10)光バスアービタ610
は、各ノードから送られてきたマルチキャスト完了パケ
ットに基づいてノードA,ノードEが対象アドレスをキ
ャッシングしていることをICC630に記録する。こ
の時点でICCに欠落のない完全な情報が記録されるこ
とになる。
【0075】(G11)光バスアービタ610はノード
AとノードEのデータ回線を接続し、ノードEの光通信
装置540が、XXXX番地のリード要求パケットを送
信する、(G12)ノードAの光通信装置140が、当
該リードアクセスの代行を開始する、(G13)バス監
視装置151がリードアクセスを検出し、メモリ応答を
抑制する、(G14)バス監視装置151がディレクト
リ管理装置153に記録要求を出す、(G15)光通信
装置140が、当該リードアクセスがノードEを含むグ
ループからの要求であったことをディレクトリ管理装置
153に伝える、(G16)ディレクトリ管理装置15
3が、ディレクトリ152を更新する。即ち、バス監視
装置151が指定したアドレス(XXXX番地)に対応
する欄(ディレクトリ)のノードEを含むグループのビ
ットに「1」を記録する、(G17)バス監視装置15
1がメモリ応答抑制を解除し、メモリシステム130
が、当該リードアクセスに応答する、(G18)ノード
Aの光通信装置140が、リードアクセスに対して、応
答を代行する、(G19)ノードEの光通信装置540
が、リードアクセスに対して、応答を代行する、(G2
0)ノードEのCPU510は、XXXX番地をsha
redでキャッシングする。
【0076】以上のような動作により、ノードAのCP
U110、ノードEのCPU510がXXXX番地をキ
ャッシングしたことをディレクトリ152に記録する。
続いて、ノードAのCPU110がノードAのメモリ1
30のXXXX番地にライトを行った場合、ディレクト
リ方式のキャッシュシステムがどのような動作をするか
図21を使って説明する。図21はノードAがshar
edの状態でキャッシュしているデータに対してライト
アクセスを行った場合の動作を説明する図ある。
【0077】(H1)ノードAのCPU110が、XX
XX番地をライトし、キャッシュヒットしてinval
idateトランザクションをバス上に出力する、(H
2)ノードAのバス監視装置151がinvalida
teを検出し、CPU110のinvalidate要
求を中断する(リトライさせる)、(H3)バス監視装
置151はディレクトリ管理装置153にXXXX番地
に対応するエントリの参照要求を出す、(H4)ディレ
クトリ管理装置153はディレクトリ152を参照し、
バス監視装置151に対応するエントリを返答する、
(H5)バス監視装置151は通信管理装置154にi
nvalidateのマルチキャスト要求を出す、(H
6)通信管理装置154は光通信装置140を通じて、
光バスアービタ610にXXXX番地のinvalid
ateのマルチキャストを要求するパケットを出す。
【0078】(H7)光バスアービタ610はICC6
30を参照し、XXXX番地はノードA、Eにキャッシ
ングされていることを知り、ノードEにinvalid
ate要求パケットを送る(ICCの情報は欠落がない
ためノードグループ全体にマルチキャストする必要はな
い)。
【0079】(H8)ノードEの通信管理装置554
は、invalidate要求を受けとり、アクセスエ
ミュレーション装置555に対してアクセス要求を出
す、(H9)アクセスエミュレーション装置555はi
nvalidateトランザクションをバス上に出力す
る、(H10)ノードEのCPU510はinvali
dateトランザクションをスヌープし、XXXX番地
のキャッシュをinvalidateする、(H11)
ノードEの通信管理装置554は光通信装置540を通
じて、光バスアービタ610にinvalidate完
了パケットを送信する。
【0080】(H12)光バスアービタ610は、IC
C630を更新する、(H13)光バスアービタ610
は、ノードAにinvalidate完了パケットを送
る。
【0081】(H14)ノードのバス監視装置151
は、ディレクトリを更新し、その後CPU110のin
validateバストランザクションの中断を解除し
トランザクションを完了させる、(H15)ノードAの
CPU110はXXXX番地をmodifiedでキャ
ッシングする。
【0082】以上のような動作により、ノードEのCP
U510にキャッシングされたXXXX番地のデータブ
ロックをinvalidateし、ノードAのCPU1
10がXXXX番地をキャッシングしたことを、ディレ
クトリ152に記録する。
【0083】以上説明したように、第1の実施形態によ
れば、共有メモリ上でディレクトリ方式の一貫性保持方
式を採用したキャッシュシステムを搭載した計算機シス
テムにおいて、そのディレクトリに要するメモリ容量を
低減すると共に、一貫性保持のためのマルチキャストを
無駄無く、効率的に行うことが可能となる。
【0084】[第2の実施形態]次に本発明の第2の実
施形態を、図面を参照して説明する。第1の実施形態で
は、ディレクトリの構造を、ノードをいくつかのグルー
プに分けて記録するようになっていた。だがこれではデ
ィレクトリ情報がICCになかった場合、グループ内の
メンバ(ノード)全てにマルチキャストを行わなければ
ならなくなり、非効率な面がある。そこで第2の実施形
態では、各ノードのディレクトリの構成を変更する。即
ち、グループの割り当てを動的に変え、そのグループ内
のノードに関してはフルマップ方式と同じパフォーマン
スを提供するようにする。
【0085】図22は第2の実施形態におけるノード側
のディレクトリの構造を示す図である。同図に示される
ように、ディレクトリの上位でグループの最初のノード
が示される。また、ディレクトリの下位は、それらのグ
ループ内の各ノードについてのフルマップのディレクト
リ情報が記録される。例えば上位でノードSが示されて
いた場合、下位ではノードS〜Xについてのフルマップ
の情報が示されることになる。同様に上位でノードCが
示されていた場合、下位ではノードC〜Hがフルマップ
で示される。
【0086】なお、ノードAとJが同時に同じ番地をキ
ャッシングした場合はこのような形式では対応できない
ので、ディレクトリの上位を特別のパターン(例えば全
て1)にして「全ノード」を示すようにし、その番地に
対するアクセスではブロードキャスト(全てのノードに
対して放送を行うこと)を実行する。
【0087】第2の実施形態によれば、このようなディ
レクトリ構成にすることで、グループ内の局所的なメモ
リ共有を効率的に実現することが出来る。
【0088】なお、上記実施形態では、複数のノードを
有する計算機システムにおけるキャッシュシステムを例
に挙げて説明したが、1台の計算機内に複数のプロセッ
サが存在し、夫々がキャッシュシステムを有するような
構成に適用することも可能である。この場合、上述のキ
ャッシュ管理装置を各プロセッサ毎に所有することにな
る。
【0089】なお、本発明は、複数の機器(例えばホス
トコンピュータ,インタフェイス機器,リーダ,プリン
タなど)から構成されるシステムに適用しても、一つの
機器からなる装置(例えば、複数のプロセッサを有する
マルチプロセッサ装置)に適用してもよい。
【0090】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。
【0091】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0092】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0093】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0094】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0095】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図23のメモリマップ例に示す各モジュール
を記憶媒体に格納することになる。すなわち、少なくと
も「獲得処理モジュール」「記憶処理モジュール」「実
行処理モジュール」および「更新処理モジュール」の各
モジュールのプログラムコードを記憶媒体に格納すれば
よい。
【0096】ここで、獲得処理モジュールは、キャッシ
ュデータの一貫性保持のための情報をマルチキャストす
べきメモリブロックについて、そのキャッシュの状態
を、複数のノードを含むグループを単位として記憶した
第1のメモリより獲得する獲得処理を実現するプログラ
ムモジュールである。また、記憶処理モジュールは、前
記第1のメモリより獲得したキャッシュの状態をノード
単位の情報に展開し、キャッシング情報として第2のメ
モリに記憶する記憶処理を実現するプログラムモジュー
ルである。また、実行処理モジュールは、前記第2のメ
モリに記憶されたキャッシング情報に基づいて、メモリ
ブロックに関するキャッシュのデータ一貫性保持のため
の情報のマルチキャストの実行処理を実現するプログラ
ムモジュールである。また、更新処理モジュールは、前
記実行処理によるマルチキャストの結果に基づいて前記
第2のメモリに記憶されたキャッシング情報をノード毎
に更新する更新処理を実現するプログラムモジュールで
ある。
【0097】
【発明の効果】以上説明したように、本発明によれば、
分散共有メモリを実現する際に必要になるアクセス情報
のマルチキャストの宛て先を記録する記憶機構の容量を
押さえつつ、効率の良いマルチキャストを達成すること
が可能となる。
【0098】また、本発明によれば、分散共有メモリを
実現するシステムにおいて、キャッシュデータの一貫性
を保持するためのマルチキャストを、該マルチキャスト
の宛て先を記録する記憶機構の容量を押さえつつ、効率
良く実行することが可能となる。
【0099】
【図面の簡単な説明】
【図1】第1の実施形態における並列計算機システムの
構成を示す図である。
【図2】本実施形態における計算機システムのメモリマ
ップを示す図である。
【図3】分散共有メモリによるメモリリードの手順を説
明するための図である。
【図4】本実施形態における計算機システムのノードの
構成を示すブロック図である。
【図5】第1の実施形態のおける各ノード内のディレク
トリのデータ構造を表す図である。
【図6】コンセントレータ600の構成を表すブロック
図である。
【図7】本実施形態におけるICCのデータ構造を説明
する図である。
【図8】ノード内のアドレスに対してリードアクセスが
発行された場合の動作を説明する図である。
【図9】ノード内のアドレスに対してキャッシュメンテ
ナンスが発生した場合の動作を説明する図である。
【図10】ノードにおけるキャッシュ管理動作の手順を
示すフローチャートである。
【図11】キャッシュ管理装置がパケットを受信した場
合の動作を説明するフローチャートである。
【図12】ディレクトリ情報を含んだマルチキャスト要
求パケットを受け取ったときの光バスアービタ610の
動作を説明する図である。
【図13】ディレクトリ情報を含まないマルチキャスト
要求パケットを受け取ったときの光バスアービタ610
の動作を説明する図である。
【図14】ノードのディレクトリとICCとの間のデー
タ変換方法を示す図である。
【図15】光バスアービタの動作を説明するフローチャ
ートである。
【図16】バス監視装置151の構成を示すブロック図
である。
【図17】ディレクトリ152、ディレクトリ管理装置
153の構成を示すブロック図である。
【図18】メモリアクセスエミュレーション装置155
の構成を示すブロック図である。
【図19】ノードAが自ノード内のメモリをリードアク
セスした場合の動作を説明する図である。
【図20】ノードEがノードAのメモリに対してリード
アクセスを行った場合の動作を説明する図である。
【図21】ノードAがsharedの状態でキャッシュ
しているデータに対してライトアクセスを行った場合の
動作を説明する図ある。
【図22】第2の実施形態におけるノード側のディレク
トリの構造を示す図である。
【図23】本発明に係るプログラムの特徴を示す図であ
る。
【符号の説明】
100,200,300,400,500 ノード 110,120,210,230,310,320,4
10,420,510,520 CPU 130,230,330,430,530 メモリ 140,240,340,440,540 光通信装置 150,250,350,450,550 キャッシュ
管理装置 160,260,360,460,560 アービトレ
ーション回線 170,270,370,470,570 データ回線 600 コンセントレータ 610 光バスアービタ 620 スターカプラ 630 ICC 151,251,351,451,551 バス監視装
置 152,252,352,452,552 ディレクト
リ 153,253,353,453,553 ディレクト
リ管理装置 154,254,354,454,554 通信管理装
置 155,255,355,455,555 アクセスエ
ミュレーション装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 秀一 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 複数のノードによって共有分散メモリを
    実現する情報処理システムであって、 当該情報処理システムにおけるマルチキャストの宛て先
    を、各マルチキャストのエントリ毎に、1つ又は複数の
    ノードを含むグループを単位として記憶する第1記憶手
    段と、 マルチキャストを実行すべきエントリについて、前記第
    1記憶手段よりキャッシュの状態を獲得してノード単位
    の情報に展開し、これをマルチキャスト情報として記憶
    する第2記憶手段と、 前記第2記憶手段に記憶されたマルチキャスト情報に基
    づいて、当該エントリについてマルチキャストを実行す
    る実行手段と、 前記実行手段によるマルチキャストの結果に基づいて前
    記第2記憶手段に記憶されたマルチキャスト情報をノー
    ド毎に更新する第1更新手段とを備えることを特徴とす
    る情報処理システム。
  2. 【請求項2】 複数のノードによって共有分散メモリを
    実現し、各ノード内のプロセッサがキャッシュメモリを
    備えた情報処理システムであって、 各メモリブロックに関するキャッシュの状態を、1つ又
    は複数のノードを含むグループを単位として記憶する第
    1記憶手段と、 キャッシュデータの一貫性保持のための情報をマルチキ
    ャストすべきメモリブロックについて、前記第1記憶手
    段よりキャッシュの状態を獲得してノード単位の情報に
    展開し、これをキャッシング情報として記憶する第2記
    憶手段と、 前記第2記憶手段に記憶されたキャッシング情報に基づ
    いて、メモリブロックに関するキャッシュのデータ一貫
    性保持のための情報のマルチキャストを実行する実行手
    段と、 前記実行手段によるマルチキャストの結果に基づいて前
    記第2記憶手段に記憶されたキャッシング情報をノード
    毎に更新する第1更新手段とを備えることを特徴とする
    情報処理システム。
  3. 【請求項3】 前記更新手段は、前記実行手段によるマ
    ルチキャストの結果、当該メモリブロックをキャッシュ
    していないノードを検出し、この検出結果に基づいて前
    記第2記憶手段のキャッシング情報をノード毎に更新す
    ることを特徴とする請求項2に記載の情報処理システ
    ム。
  4. 【請求項4】 前記第1記憶手段は、前記複数のノード
    の夫々に設けられていることを特徴とする請求項2に記
    載の情報処理システム。
  5. 【請求項5】 自ノード内のメモリに対するアクセスの
    発生を検出する検出手段と、 前記検出手段によってアクセスの発生が検出された場
    合、該アクセスのアクセス元を獲得して前記第1記憶手
    段に記憶されたキャッシュの状態を更新する第2更新手
    段とを更に備えることを特徴とする請求項4に記載の情
    報処理システム。
  6. 【請求項6】 当該情報処理システムにおけるキャッシ
    ュデータの一貫性保持機構はディレクトリ方式によって
    実現され、 前記第1記憶手段は、該ディレクトリ方式におけるディ
    レクトリ情報を複数のノードで構成されるグループを単
    位として記憶し、 前記第2記憶手段は、前記実行手段におけるキャッシュ
    メモリを構成することを特徴とする請求項2に記載の情
    報処理システム。
  7. 【請求項7】 当該情報処理システムは通信管理機構を
    有し、前記複数のノードは該通信管理機構を中心とする
    スター結合によって接続され、 少なくとも前記実行手段及び前記第1更新手段が該通信
    管理機構によって構成されることを特徴とする請求項2
    に記載の情報処理システム。
  8. 【請求項8】 複数のノードによって共有分散メモリを
    実現し、各ノード内のプロセッサがキャッシュメモリを
    備えた情報処理システムにおける制御方法であって、 各メモリブロックに関するキャッシュの状態を、1つ又
    は複数のノードを含むグループを単位として第1のメモ
    リに記憶する第1記憶工程と、 キャッシュデータの一貫性保持のための情報をマルチキ
    ャストすべきメモリブロックについて、前記第1のメモ
    リよりキャッシュの状態を獲得してノード単位の情報に
    展開し、これをキャッシング情報として第2のメモリに
    記憶する第2記憶工程と、 前記第2のメモリに記憶されたキャッシング情報に基づ
    いて、メモリブロックに関するキャッシュのデータ一貫
    性保持のための情報のマルチキャストを実行する実行工
    程と、 前記実行工程によるマルチキャストの結果に基づいて前
    記第2のメモリに記憶されたキャッシング情報をノード
    毎に更新する第1更新工程とを備えることを特徴とする
    制御方法。
  9. 【請求項9】 前記更新工程は、前記実行工程によるマ
    ルチキャストの結果、当該メモリブロックをキャッシュ
    していないノードを検出し、この検出結果に基づいて前
    記第2のメモリのキャッシング情報をノード毎に更新す
    ることを特徴とする請求項8に記載の制御方法。
  10. 【請求項10】 前記第1記憶工程は、前記複数のノー
    ドの夫々に設けられた第1のメモリに対して、該複数の
    ノードの夫々において実行されることを特徴とする請求
    項8に記載の制御方法。
  11. 【請求項11】 自ノード内のメモリに対するアクセス
    の発生を検出する検出工程と、 前記検出工程によってアクセスの発生が検出された場
    合、該アクセスのアクセス元を獲得して前記第1のメモ
    リに記憶されたキャッシュの状態を更新する第2更新工
    程とを更に備えることを特徴とする請求項10に記載の
    制御方法。
  12. 【請求項12】 当該情報処理システムにおけるキャッ
    シュデータの一貫性保持機構はディレクトリ方式によっ
    て実現され、 前記第1記憶工程は、該ディレクトリ方式におけるディ
    レクトリ情報を複数のノードで構成されるグループを単
    位として前記第1のメモリに記憶し、 前記第2記憶工程に用いられる前記第2のメモリは、前
    記実行工程におけるキャッシュメモリを構成することを
    特徴とする請求項8に記載の制御方法。
  13. 【請求項13】 当該情報処理システムは通信管理機構
    を有し、前記複数のノードは該通信管理機構を中心とす
    るスター結合によって接続され、 少なくとも前記実行工程及び前記第1更新工程は該通信
    管理機構によって実現されることを特徴とする請求項8
    に記載の制御方法。
  14. 【請求項14】 複数のノードによって共有分散メモリ
    を実現し、各ノード内のプロセッサがキャッシュメモリ
    を備えた情報処理システムにおける制御方法のプログラ
    ムコードが格納されたコンピュータ可読メモリであっ
    て、 キャッシュデータの一貫性保持のための情報をマルチキ
    ャストすべきメモリブロックについて、そのキャッシュ
    の状態を、複数のノードを含むグループを単位として記
    憶した第1のメモリより獲得する獲得工程のコードと、 前記第1のメモリより獲得したキャッシュの状態をノー
    ド単位の情報に展開し、キャッシング情報として第2の
    メモリに記憶する記憶工程のコードと、 前記第2のメモリに記憶されたキャッシング情報に基づ
    いて、メモリブロックに関するキャッシュのデータ一貫
    性保持のための情報のマルチキャストを実行する実行工
    程のコードと、 前記実行工程によるマルチキャストの結果に基づいて前
    記第2のメモリに記憶されたキャッシング情報をノード
    毎に更新する更新工程のコードとを備えることを特徴と
    するコンピュータ可読メモリ。
JP8119268A 1996-05-14 1996-05-14 情報処理システム及びその制御方法 Withdrawn JPH09305489A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8119268A JPH09305489A (ja) 1996-05-14 1996-05-14 情報処理システム及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8119268A JPH09305489A (ja) 1996-05-14 1996-05-14 情報処理システム及びその制御方法

Publications (1)

Publication Number Publication Date
JPH09305489A true JPH09305489A (ja) 1997-11-28

Family

ID=14757155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8119268A Withdrawn JPH09305489A (ja) 1996-05-14 1996-05-14 情報処理システム及びその制御方法

Country Status (1)

Country Link
JP (1) JPH09305489A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179528A (ja) * 2005-12-28 2007-07-12 Internatl Business Mach Corp <Ibm> 方法、コンピュータ・プログラム製品、コンピュータ・プログラム、情報ハンドリング・システム(デフォルト・データ転送コヒーレント・キャッシング・エージェントのシステムおよび方法)
JP2007183915A (ja) * 2005-12-30 2007-07-19 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2009170986A (ja) * 2008-01-11 2009-07-30 Hitachi Communication Technologies Ltd Ont及びネットワークシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179528A (ja) * 2005-12-28 2007-07-12 Internatl Business Mach Corp <Ibm> 方法、コンピュータ・プログラム製品、コンピュータ・プログラム、情報ハンドリング・システム(デフォルト・データ転送コヒーレント・キャッシング・エージェントのシステムおよび方法)
JP2007183915A (ja) * 2005-12-30 2007-07-19 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムのためのディレクトリ・ベースのデータ転送プロトコル(データ一貫性を維持する方法およびシステム)
JP2009170986A (ja) * 2008-01-11 2009-07-30 Hitachi Communication Technologies Ltd Ont及びネットワークシステム

Similar Documents

Publication Publication Date Title
US6651145B1 (en) Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
KR100308323B1 (ko) 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
EP0817070B1 (en) Multiprocessing system employing a coherency protocol including a reply count
KR100465583B1 (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법
US5734922A (en) Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
US5958019A (en) Multiprocessing system configured to perform synchronization operations
TWI431475B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
EP0817074B1 (en) Multiprocessing system employing a three-hop communication protocol
US5983326A (en) Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US5822763A (en) Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US5881303A (en) Multiprocessing system configured to perform prefetch coherency activity with separate reissue queue for each processing subnode
US8504779B2 (en) Memory coherence directory supporting remotely sourced requests of nodal scope
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
US20020078305A1 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
US6587922B2 (en) Multiprocessor system
US7779210B2 (en) Avoiding snoop response dependency
JPH07152647A (ja) 共有メモリマルチプロセッサ
US7725660B2 (en) Directory for multi-node coherent bus
JPH09305489A (ja) 情報処理システム及びその制御方法
US6757793B1 (en) Reducing probe traffic in multiprocessor systems using a victim record table
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置

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