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

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

Info

Publication number
JPH1185615A
JPH1185615A JP9243127A JP24312797A JPH1185615A JP H1185615 A JPH1185615 A JP H1185615A JP 9243127 A JP9243127 A JP 9243127A JP 24312797 A JP24312797 A JP 24312797A JP H1185615 A JPH1185615 A JP H1185615A
Authority
JP
Japan
Prior art keywords
information processing
cache
access
memory space
cached
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
JP9243127A
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 JP9243127A priority Critical patent/JPH1185615A/ja
Publication of JPH1185615A publication Critical patent/JPH1185615A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】分散共有メモリを実現する際に必要となるアク
セス情報のマルチキャストの宛て先を記録するための記
憶機構の容量を削減する。 【解決手段】共有メモリ空間へのアクセスによって得ら
れたデータをキャッシングするノードA、Bは、自身の
メモリ空間に関して他のノードにキャッシングされてい
るか否かをキャッシュ単位で示すキャッシュフラグ15
2、252が保持されている。自ノード内のメモリに対
するアクセスが検出されるとキャッシュフラグを参照
し、当該アクセスアドレスが他ノードにキャッシングさ
れている場合は、コンセントレータ600に当該アクセ
スのマルチキャストを要求する。コンセントレータ60
0のICC630にはより詳細なディレクトリ情報のキ
ャッシュが保持されており、キャッシュヒットした場合
は、このディレクトリ情報で示されるノードへ当該アク
セスが通知される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は分散共有メモリとそ
の上でのキャッシュ機構を有する情報処理システム及び
情報処理装置及びその制御方法に関するものである。
【0002】
【従来の技術】分散共有メモリとその上でのキャッシュ
機構を有する情報処理システムが提案されている。一般
に、分散共有メモリを実現する場合、共有メモリの一貫
性保持のために必要な通信を必要な計算機にのみ配送す
るため、あるアクセスに関しての情報をどの計算機に送
るかを記録する必要があった。例えばディレクトリ方式
の分散共有メモリのキャッシュシステムにおいては、メ
モリのキャッシュライン毎にどの計算機にアクセス情報
をマルチキャストしなければならないかを記録してい
る。
【0003】だがどの計算機にマルチキャストするかを
示す宛て先の保持に使用するメモリの容量は、通信機構
上、計算機の数により増大してゆき、その容量を押さえ
ることが求められている。一般に、容量を押さえるため
の手法として、宛て先の情報を欠落させ、不必要な計算
機にまでマルチキャストを行うことが行われることが多
かった。しかしながら、この手法では、記憶容量を節約
できる反面、不必要な計算機にマルチキャストを行うこ
とによる性能の低下が避けられなかった。
【0004】これを補う技術として、頻繁に使用される
メモリアドレスについては詳しく宛て先を記録し、他の
メモリアドレスに関しては宛て先の情報を欠落させる
(特願平8−119268)、頻繁に使用しされるメモ
リアドレスについては宛先を記録し他のメモリアドレス
に関してはブロードキャストを行う(特願平8−310
22)、といった手法が本出願人によって提案されてい
る。
【0005】
【発明が解決しようとする課題】しかしながら、上記の
ように宛て先をグループ化するなどしても、まだ大容量
の記憶機構が必要となる局面が生じたり、宛て先情報の
欠落をブロードキャストで補うことによる性能上の問題
が生じたりして、その実現が現実的でなくなる場合があ
った。
【0006】本発明は、分散共有メモリを実現する際に
必要となるアクセス情報のマルチキャストの宛て先を記
録するための記憶機構の容量の削減と不要なマルチキャ
ストによる性能低下とのバランスを向上させ、低コスト
で高性能な情報処理システム及び情報処理装置及びその
制御方法を提供することを目的とする。
【0007】
【課題を解決するための手段】上記の目的を達成するた
めの本発明の情報処理システムは以下の構成を備える。
すなわち、複数の情報処理装置が通信可能に接続され、
相互に共有可能な共有メモリ空間を有する情報処理シス
テムであって、前記共有メモリ空間へのアクセスによっ
て得られたデータをアクセス元の情報処理装置にてキャ
ッシングするキャッシュ手段と、前記複数の情報処理装
置の各々が、自身のメモリ空間に関して、他の情報処理
装置にキャッシングされているか否かをキャッシュ単位
で示すキャッシュ情報を保持する保持手段と、前記保持
手段によって保持されているキャッシュ情報に基づいて
前記キャッシュ手段のキャッシュメンテナンスを行うメ
ンテナンス手段とを備える。
【0008】また、上記の目的を達成するための本発明
の情報処理装置は以下の構成を備える。すなわち、複数
の情報処理装置が通信可能に接続され、相互に共有可能
な共有メモリ空間を有する情報処理システムにおける情
報処理装置であって、前記共有メモリ空間へのアクセス
によって得られたデータをキャッシングするキャッシュ
手段と、自身のメモリ空間に関して、他の情報処理装置
にキャッシングされているか否かをキャッシュ単位で示
すキャッシュ情報を保持する保持手段と、前記メモリ空
間にアクセスが発生した場合、前記保持手段によって保
持されているキャッシュ情報に基づいて前記キャッシュ
手段のキャッシュメンテナンスを行うメンテナンス手段
とを備える。
【0009】また、上記の目的を達成するための本発明
の情報処理システムの制御方法は以下の工程を備える。
すなわち、複数の情報処理装置が通信可能に接続され、
相互に共有可能な共有メモリ空間を有する情報処理シス
テムの制御方法であって、前記共有メモリ空間へのアク
セスによって得られたデータをアクセス元の情報処理装
置にてキャッシングするキャッシュ工程と、前記複数の
情報処理装置の各々が、自身のメモリ空間に関して、他
の情報処理装置にキャッシングされているか否かをキャ
ッシュ単位で示すキャッシュ情報を保持する保持工程
と、前記保持工程によって保持されたキャッシュ情報に
基づいて前記キャッシュ工程のキャッシュメンテナンス
を行うメンテナンス工程とを備える。
【0010】また、上記の目的を達成する本発明の情報
処理装置の制御方法は、複数の情報処理装置が通信可能
に接続され、相互に共有可能な共有メモリ空間を有する
情報処理システムにおける情報処理装置の制御方法であ
って、前記共有メモリ空間へのアクセスによって得られ
たデータをキャッシングするキャッシュ工程と、自身の
メモリ空間に関して、他の情報処理装置にキャッシング
されているか否かをキャッシュ単位で示すキャッシュ情
報を保持する保持工程と、前記メモリ空間にアクセスが
発生した場合、前記保持工程によって保持されているキ
ャッシュ情報に基づいて前記キャッシュ工程におけるキ
ャッシュメンテナンスを行うメンテナンス工程とを備え
る。
【0011】
【発明の実施の形態】以下、図面を参照して本発明の好
適な一実施形態を詳細に説明する。
【0012】<第1の実施形態>図1は、本実施形態の
情報処理システムの採用する並列計算機システムの構成
を示す図である。計算機は複数のノード(100,20
0,300,400,500)からなり、各々のノード
はコンセントレータ600を通じて光ファイバによりネ
ットワークを構成している。コンセントレータは、ノー
ド間の通信を管理する。
【0013】各ノードは通常の計算機であり、各々1個
または複数個のCPUを持つ。各々のノードはアドレス
空間を共有している。図2は本実施形態によるメモリア
ドレス空間を説明する図である。図2に示されるよう
に、一つのCPUからみえるアドレス空間には他のノー
ドのアドレス空間が含まれる。なお、ノード間通信は、
自分のアドレス上に見えている相手のメモリに対し、直
接にデータを書き込むことで行う。
【0014】ノード(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,470,
570)は、ノードとコンセントレータ内のスターカプ
ラ620を接続する。スターカプラ620は、一端に光
を入力すると他端からその光が均等に出力される。従っ
て、一つのノードがデータ光線に光を発すると、その光
を他の全てのノードで受け取ることができる。この結
果、一つのノードがデータ回線に発した光通信を、全て
のノードで受け取ることが可能となる。
【0015】ノードは、通信する波長を選択することに
より、任意のノードと通信を行う。例えば、ノードA1
00がノードB200と通信を行う場合は以下の手順が
実行される。まず、ノードA100がアービトレーショ
ン回線160を通じて光バスアービタ610にノードB
200との通信要求を送る。そして、光バスアービタ6
10はノードB200が他のノードと通信中でないこと
を確認すると、どのノードも使用していない波長αをノ
ードA,B間(100,200間)の通信に割当てる。
アービトレーション回線(160,260)を通じてノ
ードA,B(100,200)に波長αを使用して通信
を行うように指示が出されると、ノードA,B(10
0,200)が波長αを使用してデータ回線(170,
270)を通じて通信を行う。
【0016】分散共有メモリは、このようなネットワー
クの上で光通信により実現される。例としてノードA1
00のプロセッサ110(以下、CPU110)が、ノ
ードB200のメモリ230をリードする様子を図3に
示す。なお、(A1)〜(A7)に示す動作は一連のも
のとして実施される。
【0017】図3において、 (A1)ノードA100のCPU110が、ノードBの
メモリ230に対してリードアクセスを発行する。 (A2)ノードA100の光通信装置140は、メイン
バス上のバスアクセスを監視している。メインバス上
に、そのノードAのメモリ130以外のアドレスに対し
てアクセスが発行されると、光通信装置140はそのバ
スアクセスを検出する。 (A3)光通信装置140は、アクセス要求パケットを
コンセントレータ600を通じて、ノードBの光通信装
置240に対して送る。 (A4)ノードBの光通信装置240はアクセス要求パ
ケットを受け取ると、その依頼にしたがってノードBの
メモリ230に対してのアクセスを代行する。 (A5)ノードBのメモリ230がアクセスに応答す
る。 (A6)ノードBの光通信装置240は、アクセスが終
わると、ノードaの光通信装置140に対してアクノリ
ッジを返す。 (A7)アクノリッジを受け取ったノードAの光通信装
置140は、ノードBのメモリ(230)の代わりにノ
ードAのCPU110のアクセスに応答する。
【0018】また本実施形態では、分散共有メモリ上
で、ディレクトリ方式の一貫性保持方式を採用したキャ
ッシュに類似したシステムを搭載している。ディレクト
リ方式のキャッシュの詳細については、「共有記憶型並
列システムの実際」(コロナ社刊)に示されている。
【0019】通常のディレクトリ方式のキャッシュ一貫
性保持機構では、メモリの各キャッシュアドレス毎に
(正確にはキャッシュ単位毎であるが、以下、これをキ
ャッシュアドレス毎ということにする)そのアドレスを
キャッシングしているノードを記録する。例えばノード
がA〜Hまであるとすれば、各キャッシュアドレス毎に
8bitのディレクトリを待つ。ディレクトリの各ビッ
トは、ノードA〜Hに対応する。もしノードA,B,
F,Hにそのアドレスがキャッシングされていれば、そ
のキャッシュアドレスに対応したディレクトリの値は2
進数で11000101となる。
【0020】本実施形態では上述の様なディレクトリ方
式の代わりに、各キャッシュアドレス毎に1bitのフ
ラグを持たせる。以降このフラグをキャッシングフラグ
と呼ぶ。キャッシングフラグは、そのキャッシュアドレ
スが他のノードにキャッシングされているかどうかを示
す。例えばノードAのメモリ130内のアドレス180
00000がノードA,B,Hにキャッシングされてい
れば、アドレス18000000に対応するキャッシン
グフラグはONとなる。キャッシュアドレス18000
000がどのノードにもキャッシングされていないか、
もしくはノードA自身のみにキャッシングされている場
合には、キャッシュアドレス18000000に対応す
るキャッシングフラグはOFFになる。
【0021】ノード内のCPU間でのキャッシュの一貫
性保持は、CPUに内蔵されたMESIプロトコル(Mo
dified,Exclusive,Shared,Invalidの4状態によりキャ
ッシュを管理するプロトコル)によるスヌープキャッシ
ュで管理されている(この実施形態ではMESIプロト
コルを使用するが、これは本発明を限定するものではな
い)。
【0022】さて、各ノード間のキャッシュの一貫性保
持は、外付けされたキャッシュ管理装置(150,25
0,350,450,550)により管理される。キャ
ッシュ管理装置は内部バス上でアクセスを検出すると、
そのアクセスアドレスに対応したキャッシングフラグを
参照し、もしキャッシングフラグがONになっていたら
バス上に発行されたアクセス(キャッシュメンテナンス
情報)を他のノードに伝達する。
【0023】実際のキャッシュメンテナンス情報のマル
チキャストは、コンセントレータ600内の光バスアー
ビタ610により行われる。光バスアービタ610は、
各ノードのキャッシュ管理装置からの要求によりアクセ
スを各ノードに伝達する。光バスアービタ610にはI
CC630と呼ばれるアクセスマルチキャスト情報のキ
ャッシュがある。ICC630は最近使用されたアドレ
スについて、そのアドレスへのアクセスをどのノードに
伝えるべきかを記録するキャッシュである。光バスアー
ビタ610はアクセス要求を受け取ると、ICC630
を参照してそのアクセスを伝達すべきノードが記録され
ていないかを調べる。もし記録されていたら(以下、I
CCヒットという)、光バスアービタ610はそれらの
ノードにアクセスをマルチキャストする。もし記録され
ていなければ(以下、ICCミスという)、全てのノー
ドにアクセスをブロードキャストする。
【0024】以下、キャッシュ管理装置及び光バスアー
ビタの構成について説明する。
【0025】図4はノードAにおけるキャッシュ管理装
置150の構成を示すブロック図である。ノード間のキ
ャッシュの一貫性保持をするキャッシュ管理装置150
は、バス監視装置151、キャッシングフラグ152、
キャッシュフラグ管理装置153、通信管理装置15
4、アクセスエミュレーション装置155を備える。以
下にキャッシュ管理装置150の備える各装置について
説明する。
【0026】図5は、バス監視装置151の構成を示す
ブロック図である。バス監視装置151の内部は、シー
ケンサ151aとアドレスラッチ151bからなってい
る。シーケンサ151aはノード内のバスを監視し、バ
スマスタ(例えばCPU110)によるメモリ130の
リードアクセス、invalitate,Read-with-Intent-to-Mod
ify、メモリ書込みの実行を検出する。シーケンサ15
1aは、バス上のアクセス要求信号、バスアクセスに伴
ってバスマスタから出力されるアクセス修飾信号などを
監視することで、アクセスを検出する。
【0027】バス監視装置151はアクセス要求信号が
有効であり、アクセスアドレスが自分のノードのメモリ
に対するものであったとき、もしくは他ノードのメモリ
へのキャッシュメンテナンスアクセスであったとき、ア
クセスを検出したと判断する。アクセスが自ノードのメ
モリに対するものであったとき、バス監視装置151は
アクセスを検出するとメモリ130の応答を押さえ、そ
の間にキャッシュフラグ管理装置153を通じてキャッ
シングフラグ152を調べる。もし対応するキャッシン
グフラグがONなら、バス監視装置151は光バスアー
ビタ610にアクセスの伝達要求を出す。そしてそれら
に対する応答により対象アドレスが他のノードにキャッ
シングされているかどうかを知り、キャッシュフラグ管
理装置153を通じてキャッシュフラグ152を更新す
る。その後バス監視装置151がメモリ130の応答を
許可することにより、CPU110はそのアクセスを完
了する。一方、他ノードのメモリへのキャッシュメンテ
ナンスアクセスであったときは、CPU110のアクセ
スをリトライさせておき、その間に光バスアービタ61
0にアクセスの伝達要求を出す。そして、その完了パケ
ットが届いたらCPU110のアクセスリトライを解除
し、処理を続行させる。
【0028】なお、上記メモリアクセスの中断は、バス
上にアクセス再実行信号を出力し、そのメモリアクセス
をプロセッサにリトライさせることで実現したが、他の
方法によりアクセスを中断してもよい。
【0029】図6はキャッシュフラグ152及びキャッ
シュフラグ管理装置の構成を説明するブロック図であ
る。先に述べたように本実施形態は、メモリの各キャッ
シュブロックに対して1bitのキャッシュフラグを持
つ。キャッシングフラグは、そのアドレスが他のノード
にキャッシングされているかどうかを示す。キャッシュ
フラグ152への操作は、キャッシュフラグ管理装置1
53により行われる。キャッシュフラグ管理装置153
はシーケンサ153aにより管理されている。キャッシ
ュフラグ152は、バス監視装置151が他ノードから
のリード/ライトアクセスを検出した際に、対象メモリ
ブロックが外部ノードにキャッシングされていることを
記録する場合にONにされ、バス管理装置151がメモ
リ書込み/invalidata/Read-with-Intent-to-Modifyを
検出した場合、或いは対象メモリブロックが自ノードに
のみキャッシングされている場合にはOFFにされる。
【0030】通信管理装置154はバス監視装置15
1、キャッシュフラグ管理装置153からの要求によ
り、光通信装置140とのコミュニケーションを行う。
通信管理装置154は、バス監視装置151、キャッシ
ュフラグ管理装置153からのリード/invalidata/Re
ad-with-Intent-to-Modify/メモリ書込みのマルチキャ
スト要求を受け、光通信装置140を介して光バスアー
ビタ610に、アクセスのマルチキャスト/ブロードキ
ャストパケットを送出する。また光通信装置140を通
じて受け取ったキャッシュの一貫性保持動作要求パケッ
トにより、メモリアクセスエミュレート装置155に対
してinvalidata/Read-with-Intent-to-Modify/ライト
/リード要求を出力する。
【0031】図7はメモリアクセスエミュレート装置の
構成を示すブロック図である。メモリアクセスエミュレ
ート装置155は、通信管理装置154からの要求によ
り、ダミーのメモリライトアクセス/ダミーのメモリリ
ードアクセス/invalidata/Read-with-Intent-to-Modi
fyアクセスを自ノードのバス上に発行する。これらのア
クセスにより、ノード間のキャッシュの一貫性を保持す
る。エミュレート装置155の発行するアクセスは、自
分のノードに割り当てられたアドレスではありえないた
め、ノード内のバススレーブ(例えばメモリ130)よ
り応答はありえず、ダミーのアクセスとなる。
【0032】次に、コンセントレータ600について説
明する。図8はコンセントレータ600の構成を示すブ
ロック図である。コンセントレータ600は、光バスア
ービタ610、スターカプラ620、ICC630を備
える。光バスアービタ610は先に述べたように光回線
の通信制御を行う。またノードから送られてきたマルチ
キャスト要求により、各ノードへのパケットの転送を行
う。また、ICC630はアクセスのマルチキャスト先
を保持するキャッシュメモリである。光バスアービタ6
10は、マルチキャスト対象アドレスがICC630に
ヒット(ICCヒット)した場合にはICC630に記
録されたノードに対してマルチキャストを行う。ICC
630にミス(ICCミス)した場合は全てのノードに
対してブロードキャストを行う。
【0033】ICC630を用いることにより、マルチ
キャストの必要なノードを正確に知ることができるよう
になり、不必要なブロードキャストがなくなる。このた
め、当該情報処理システムの性能を向上することができ
る。図9はICC630のデータ構成を示す図である。
本実施形態ではICC630は図9のようなフルマップ
(各ノードにつき1ビットを割り当てる)方式をとって
いる。
【0034】なお、本実施形態では、光バスアービタ6
10は一つの計算機として実現するので、これらの機構
はソフトウェアで実現されるものとする。しかしなが
ら、この構成例は本発明を制限するものではなく、ハー
ドウェアで実現することも可能であることは明らかであ
る。
【0035】以上の様な構成を備える本実施形態の動作
について以下に詳細に説明する。
【0036】図10はキャッシュ管理装置の動作を説明
するフローチャートである。まず、ステップS101に
おいて、バス監視装置151がバスアクセスを検出する
とステップS102へ進む。ステップS102では、当
該アクセスが自ノード内のメモリに対するアクセスか否
かを判定する。そして、自ノード内のメモリへのアクセ
スであった場合はステップS103へ、そうでない場合
はステップS111へそれぞれ進む。
【0037】ステップS103では、バス監視装置15
1がメモリ130の応答を抑制する。そして、キャッシ
ュフラグ管理装置153を通してキャッシュフラグ15
2を参照し、当該キャッシュアドレスが他ノードにキャ
ッシングされているか否かを判定する。他ノードへにキ
ャッシングされていなければ、そのままステップS10
8へ進み、メモリ130に対する応答抑制を解除し、当
該アクセスを完了させる。
【0038】一方、ステップS104で当該キャッシュ
アドレスが他ノードに対してキャッシングされていると
判定された場合は、他のノードに当該アクセスを通知す
るためにステップS105へ進む。ステップS105で
は、通信管理装置154に対して当該アクセスを通知す
るべく指示を出す。通信管理装置154は光通信装置1
40を通じて、コンセントレータ600にマルチキャス
ト要求を通知する。そして、コンセントレータ600よ
りマルチキャスト完了パケット(マルチキャスト完了パ
ケットには、当該キャッシュアドレスが他ノードへキャ
ッシングされている否かを示す情報が含まれる)を受信
すると、このパケットに従ってキャッシュフラグ152
を更新する。
【0039】その後、ステップS108にて、メモリ1
30に対する応答抑制を解除し、当該アクセスを完了さ
せる。また、ステップS102で自ノードのメモリでは
ないと判定された場合は、ステップS111へ進み、当
該アクセスがキャッシュメンテナンスを含むか否かを判
定する。キャッシュメンテナンス情報を含まない場合
は、図3で説明した様な手順によって、光通信装置から
アクセス要求パケットが発行されることになる。また、
キャッシュメンテナンスを含むアクセスであれば、ステ
ップS112へ進み、メモリをリトライさせる。そし
て、ステップS113において、対象メモリを有するノ
ードに対してアクセス要求パケットを送出し、その応答
を待つ。そして、応答を得たならば、ステップS114
にてメモリのリトライを解除し、本アクセスを完了す
る。なお、ステップS111〜S114に関しても、キ
ャッシュ管理装置150内のバス管理装置151、通信
管理装置154が処理している。
【0040】図11は、光バスアービタよりパケットを
受信した場合の動作を説明するフローチャートである。
光バスアービタ610よりパケットを受信すると、アク
セスエミュレーション装置155は当該パケットに従っ
てバス上にアクセス情報を出力する(ステップS15
1、S152)。この結果、バスをスヌープしているC
PU110、120やバス監視装置151が応答情報を
生成し、通信管理装置154がこの応答情報をアクセス
結果として光バスアービタ610に通知する(ステップ
S153)。
【0041】図12は、光バスアービタの動作手順を説
明するフローチャートである。図12では、キャッシュ
メンテナンスに係るマルチキャスト(ブロードキャスト
を含む)に対する応答動作が示されている。
【0042】ステップS201において、キャッシュア
ドレスを含むマルチキャスト要求パケットを受信する
と、ステップS202へ進み、当該キャッシュアドレス
でICC630を検索する。ICCミスした場合は、ス
テップS203へ進み、全ノードに対してマルチキャス
ト(ブロードキャスト)を行い、ステップS205へ進
む。一方、ステップS202においてICCヒットした
場合は、ステップS204へ進み、当該キャッシュアド
レスに対応して記録されているノードに対してマルチキ
ャストを行い、ステップS205へ進む。
【0043】ステップS205では、マルチキャスト先
の各ノードからの完了パケットを待つ。各ノードからの
完了パケットを受信したら、ステップS206へ進み、
受信した完了パケットに従ってICC630を更新す
る。そして、ステップS207において、当該マルチキ
ャスト要求もとのノードに対してマルチキャスト完了パ
ケットを送出する。
【0044】次にキャッシュ管理装置150の動作を更
に具体的に説明する。すなわち、 ・ノード内のアドレスにリード、invalidate、Read-wit
h-Intent-to-Modify(キャッシュのライトミス時に出力
されるライトを前提としたリードサイクルであり、以下
RWITMとする)などのキャッシュメンテナンス情報
が出力されたとき、及び ・ノード外のアドレスに対してinvalidate、RWITM
などのキャッシュメンテナンス情報が出力されたときに
ついて具体的な動作を説明する。
【0045】図13は、ノード内のメモリに対してリー
ド/ライト/invalidate/RWITM等のバスアクセス
が発行された場合の動作を説明する図である。 (B1)ノード内のメモリ130に対してリードアクセ
スが行われる。 (B2)バス監視装置151がそのアクセスを検知す
る。 (B3)メモリ130へのアクセスを検知したバス監視
装置151は、メモリ130の応答を抑制する。 (B4)その間にバス監視装置151はキャッシュフラ
グ管理装置153に、当該キャッシュアドレスに関する
参照要求を出す。 (B5)キャッシュフラグ管理装置153はキャッシュ
フラグ152に指定されたキャッシュアドレスが他ノー
ドにキャッシングされているか(対象アドレスに対応し
たビットがONかOFFか)調べる。 (B6)もし対応するキャッシュフラグがONならば、
キャッシュフラグ管理装置153は通信管理装置154
を通じて発行されたリードアクセスを他のノードにマル
チキャストするよう光バスアービタ610に要求を出
す。 (B7)光バスアービタ610はICC630を参照す
る。 (B8)ICCミスならば光バスアービタ610は全て
のノードに当該リードアクセスをブロードキャストす
る。 (B9)リードアクセスをブロードキャストされた各ノ
ード(200,300,400,500)は、バス上に
リードアクセスを発行する。 (B10)各ノードのCPU(210,310,41
0,510)はこれをスヌープし、そのリードアクセス
されたメモリ番地をキャッシングしているかどうかを返
答する。 (B11)各ノードのバス監視装置(251,351,
451,551)はこれを検出し、通信管理装置(25
4,354,454,554)を通じて、アクセスが完
了したこととそのノードで該当アドレスがキャッシング
しているかどうかを光バスアービタ610に伝える。 (B12)各ノードからリードアクセスが完了したこと
を通知された光バスアービタ610は、各ノードがキャ
ッシングしている/していないという情報をICC63
0にキャッシングし、ICC630を更新する。 (B13)他ノードに対象番地がキャッシングされてい
るかどうかの情報を含んだアクセス完了パケットをノー
ドA100に伝える。 (B14)通信管理装置154を通じて各ノードのキャ
ッシング状況を受け取ったキャッシュフラグ管理装置1
53は、その内容をキャッシュフラグ152に記録す
る。 (B15)記録が終了すると、バス監視装置151はメ
モリ130の応答抑制を解除し、当該リードアクセスが
完了する。
【0046】もし(B8)においてICCヒットなら
ば、光バスアービタ610は記録されたノードにアクセ
スをマルチキャストする。その後の動作は上記の物と同
様である。
【0047】上記手順によれば、最初の1回目のアクセ
スは、アクセス情報を必要のないノードに対してもブロ
ードキャストを生じさせる。しかし、必要のないノード
に対してのブロードキャストは、システムの性能を落と
すことにはなるが論理的な矛盾を生じさせるものではな
い。各ノードがブロードキャストに応答して返してくる
パケットの中に、そのノードが該当アドレスをキャッシ
ングしているかの情報が含まれているので、それに基づ
きキャッシュフラグをアップデートすることで、2回目
以降のアクセスは必要なノードにのみマルチキャストが
行われることになる。
【0048】また、ノード外のアドレスに対してリード
/ライト/invalidata等のバスアクセスが出力された時
は、光通信装置を通じて他ノードにアクセスを依頼す
る。アクセス先のノードのキャッシュ管理装置は、先に
述べたように光通信装置を通じて行われたアクセスに対
して応答する。
【0049】以上の様に、上記実施形態によれば、すべ
てのキャッシュアドレスについてそのアドレスが他の計
算機にキャッシングされているかどうかを示すキャッシ
ングフラグが記録され、他のノードにキャッシングされ
ているアドレスに対してのメモリアクセスのみが他の計
算機に伝達されることになる。このため、効率のよいマ
ルチキャスト要求が実現されることになる。
【0050】なお、以上のような構成をとるのは、計算
機外への伝達コストが比較的高いためである。計算機外
に伝達が必要なアクセスが多発した場合には、システム
全体としての性能を発揮することができない。そこで外
部へのアクセスであるかどうを的確に判定し、計算機外
への不要なアクセスを無くす或いは低減することでシス
テムの性能の向上が図られる。
【0051】<第2の実施形態>次に本発明の第2の実
施形態を、図面を参照して説明する。
【0052】第1の実施形態ではICC630の構造
を、フルマップ構造(ひとつのノードを1ビットで示す
方法)で記録するようになっていた。このような場合、
システムのノード数が多くなればICC630が必要と
するメモリ容量も増加する。、また、メモリ容量の増大
化を防止すれば、その分登録可能なキャッシングアドレ
スが減少してしまう。そこで第2の実施形態はICC6
30の構成を変更し、1つのキャッシングアドレスに関
する記憶容量の削減を図る。
【0053】図14は、第2の実施形態におけるICC
630の構造を示す図である。ICC630の各データ
レコードは、キャッシュタグ630a、ノードグループ
630b、マップ情報630cで構成される。キャッシ
ュタグ630aはキャッシングアドレスを示す。ノード
グループ630bには、ノードグループ内の先頭のノー
ドが格納される。本例では、ノードはAからZまでの順
に順序付けがなされており、ノードグループ630bに
よって先頭のノードとして指定されたノードから順に6
つのノードがノードグループとなる。例えば、ノードグ
ループ630bにノードAが指定されていれば、ノード
AからノードFがノードグループとして指定されたこと
になる。
【0054】ICC630の下位はマップ情報630c
であり、これは、当該グループ内のノードについてのフ
ルマップの情報である。例えば上位でノードSが示され
ていた場合、下位ではノードS〜Xについてのフルマッ
プの情報が示される。同様に上位でノードCが示されて
いた場合、下位ではノードC〜Hがフルマップで示され
ている。ノードAとJが同時に同じ番地をキャッシング
した場合はこのような形式では対応できないので、IC
C630の上位を特別のパターン(例えば全て1)にし
て、その番地に対するアクセスはブロードキャスト(全
てのノードに対して放送する)する。
【0055】以上の様に第2の実施形態によれば、グル
ープ内で局所的なメモリ共有が行われている場合に、こ
のような構成にすることでICC630の容量の削減を
図ることができる。
【0056】以上説明したように、上記各実施形態によ
れば、各ノードに大容量のディレクトリ(メモリ)を備
えることなく、フルマップ法式を採用したディレクトリ
方式に匹敵する高性能のキャッシュシステムを構築する
ことができる。
【0057】なお、本発明は、複数の機器(例えばホス
トコンピュータ,インタフェイス機器,リーダ,プリン
タなど)から構成されるシステムに適用しても、一つの
機器からなる装置(例えば、複写機,ファクシミリ装置
など)に適用してもよい。
【0058】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。
【0059】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0060】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0061】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0062】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0063】
【発明の効果】以上説明したように、本発明によれば、
分散共有メモリを実現する際に必要となるアクセス情報
のマルチキャストの宛て先を記録するための記憶機構の
容量の削減と不要なマルチキャストによる性能低下との
バランスを向上させ、分散共有メモリシステムにおいて
低コストで高性能なキャッシュシステムを提供できる。
【0064】
【図面の簡単な説明】
【図1】本実施形態の情報処理システムの採用する並列
計算機システムの構成を示す図である。
【図2】本実施形態によるメモリアドレス空間を説明す
る図である。
【図3】ノードA100のCPU110が、ノードB2
00のメモリ230をリードする様子を説明する図であ
る。
【図4】ノードAにおけるキャッシュ管理装置150の
構成を示すブロック図である。
【図5】バス監視装置151の構成を示すブロック図で
ある。
【図6】キャッシュフラグ152及びキャッシュフラグ
管理装置の構成を説明するブロック図である。
【図7】メモリアクセスエミュレート装置の構成を示す
ブロック図である。
【図8】コンセントレータ600の構成を示すブロック
図である。
【図9】ICC630のデータ構成を示す図である。
【図10】キャッシュ管理装置の動作を説明するフロー
チャートである。
【図11】光バスアービタよりパケットを受信した場合
の動作を説明するフローチャートである。
【図12】光バスアービタの動作手順を説明するフロー
チャートである。
【図13】ノード内のメモリに対してリード/ライト/
invalidate/RWITM等のバスアクセスが発行された
場合の動作を説明する図である。
【図14】第2の実施形態におけるICC630の構造
を示す図である。
【符号の説明】
100,200,300,400,500 ノード 110,120,210,220,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 スターカプラ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 複数の情報処理装置が通信可能に接続さ
    れ、相互に共有可能な共有メモリ空間を有する情報処理
    システムであって、 前記共有メモリ空間へのアクセスによって得られたデー
    タをアクセス元の情報処理装置にてキャッシングするキ
    ャッシュ手段と、 前記複数の情報処理装置の各々が、自身のメモリ空間に
    関して、他の情報処理装置にキャッシングされているか
    否かをキャッシュ単位で示すキャッシュ情報を保持する
    保持手段と、 前記保持手段によって保持されているキャッシュ情報に
    基づいて前記キャッシュ手段のキャッシュメンテナンス
    を行うメンテナンス手段とを備えることを特徴とする情
    報処理システム。
  2. 【請求項2】 前記メンテナンス手段は、 前記複数の情報処理装置の各々において、自身のメモリ
    空間へのアクセスが発生した場合に、当該アクセス先ア
    ドレスが他の情報処理装置にキャッシングされているか
    否かを前記キャッシュ情報を参照して判定する判定手段
    と、 前記判定手段によって前記アクセス先アドレスが他の情
    報処理装置によってキャッシングされていると判定され
    た場合、当該アクセスをマルチキャストするマルチキャ
    スト手段とを備えることを特徴とする請求項1に記載の
    情報処理システム。
  3. 【請求項3】 前記複数の情報処理装置の一つが、キャ
    ッシングアドレスとキャッシング先の情報処理装置を示
    すマルチキャスト情報を保持する第2保持手段を備える
    通信管理装置であり、 前記マルチキャスト手段による前記アクセスのマルチキ
    ャストは、前記第2保持手段に保持されたマルチキャス
    ト情報に基づいて選択された情報処理装置に対して行な
    われることを特徴とする請求項2に記載の情報処理シス
    テム。
  4. 【請求項4】 前記マルチキャスト手段は、前記判定手
    段によって前記アクセス先アドレスが他の情報処理装置
    によってキャッシングされていると判定され、前記第2
    保持手段に対応する情報が保持されていない場合、当該
    アクセスを前記複数の情報処理装置の全てにマルチキャ
    ストすることを特徴とする請求項3に記載の情報処理シ
    ステム。
  5. 【請求項5】 前記複数の情報処理装置を接続する通信
    網が、前記通信管理装置を中心としたスター結合である
    ことを特徴とする請求項3に記載の情報処理システム。
  6. 【請求項6】 前記複数の情報処理装置を接続する通信
    網が、複数の波長の光を用いて接続する光波長多重化し
    た経路により構成されることを特徴とする請求項1乃至
    5のいずれかに記載の情報処理システム。
  7. 【請求項7】 複数の情報処理装置が通信可能に接続さ
    れ、相互に共有可能な共有メモリ空間を有する情報処理
    システムにおける情報処理装置であって、 前記共有メモリ空間へのアクセスによって得られたデー
    タをキャッシングするキャッシュ手段と、 自身のメモリ空間に関して、他の情報処理装置にキャッ
    シングされているか否かをキャッシュ単位で示すキャッ
    シュ情報を保持する保持手段と、 前記メモリ空間にアクセスが発生した場合、前記保持手
    段によって保持されているキャッシュ情報に基づいて前
    記キャッシュ手段のキャッシュメンテナンスを行うメン
    テナンス手段とを備えることを特徴とする情報処理装
    置。
  8. 【請求項8】 前記メンテナンス手段は、 前記複数の情報処理装置の各々において、自身のメモリ
    空間へのアクセスが発生した場合に、当該アクセス先ア
    ドレスが他の情報処理装置にキャッシングされているか
    否かを前記キャッシュ情報を参照して判定する判定手段
    と、 前記判定手段によって前記アクセス先アドレスが他の情
    報処理装置によってキャッシングされていると判定され
    た場合、当該アクセスのマルチキャストを要求する要求
    手段とを備えることを特徴とする請求項7に記載の情報
    処理装置。
  9. 【請求項9】 複数の情報処理装置が通信可能に接続さ
    れ、相互に共有可能な共有メモリ空間を有する情報処理
    システムの制御方法であって、 前記共有メモリ空間へのアクセスによって得られたデー
    タをアクセス元の情報処理装置にてキャッシングするキ
    ャッシュ工程と、 前記複数の情報処理装置の各々が、自身のメモリ空間に
    関して、他の情報処理装置にキャッシングされているか
    否かをキャッシュ単位で示すキャッシュ情報を保持する
    保持工程と、 前記保持工程によって保持されたキャッシュ情報に基づ
    いて前記キャッシュ工程のキャッシュメンテナンスを行
    うメンテナンス工程とを備えることを特徴とする制御方
    法。
  10. 【請求項10】 前記メンテナンス工程は、 前記複数の情報処理装置の各々において、自身のメモリ
    空間へのアクセスが発生した場合に、当該アクセス先ア
    ドレスが他の情報処理装置にキャッシングされているか
    否かを前記キャッシュ情報を参照して判定する判定工程
    と、 前記判定工程によって前記アクセス先アドレスが他の情
    報処理装置によってキャッシングされていると判定され
    た場合、当該アクセスをマルチキャストするマルチキャ
    スト工程とを備えることを特徴とする請求項9に記載の
    制御方法。
  11. 【請求項11】 前記マルチキャスト工程は、前記判定
    工程によって前記アクセス先アドレスが他の情報処理装
    置によってキャッシングされていると判定された場合、
    当該アクセスを前記複数の情報処理装置の全てにマルチ
    キャストすることを特徴とする請求項9に記載の制御方
    法。
  12. 【請求項12】 前記複数の情報処理装置の一つが、キ
    ャッシングアドレスとキャッシング先の情報処理装置を
    示すマルチキャスト情報をメモリに保持する第2保持工
    程を備える通信管理装置であり、 前記マルチキャスト工程による前記アクセスのマルチキ
    ャストは、前記第2保持工程によって前記メモリ保持さ
    れたマルチキャスト情報に基づいて選択された情報処理
    装置に対して行なわれることを特徴とする請求項11に
    記載の制御方法。
  13. 【請求項13】 複数の情報処理装置が通信可能に接続
    され、相互に共有可能な共有メモリ空間を有する情報処
    理システムにおける情報処理装置の制御方法であって、 前記共有メモリ空間へのアクセスによって得られたデー
    タをキャッシングするキャッシュ工程と、 自身のメモリ空間に関して、他の情報処理装置にキャッ
    シングされているか否かをキャッシュ単位で示すキャッ
    シュ情報を保持する保持工程と、 前記メモリ空間にアクセスが発生した場合、前記保持工
    程によって保持されているキャッシュ情報に基づいて前
    記キャッシュ工程におけるキャッシュメンテナンスを行
    うメンテナンス工程とを備えることを特徴とする制御方
    法。
  14. 【請求項14】 複数の情報処理装置が通信可能に接続
    され、相互に共有可能な共有メモリ空間を有する情報処
    理システムに適用可能な情報処理装置のための制御プロ
    グラムを格納する記憶媒体であって、該制御プログラム
    がコンピュータを、 前記共有メモリ空間へのアクセスによって得られたデー
    タをキャッシングするキャッシュ手段と、 自身のメモリ空間に関して、他の情報処理装置にキャッ
    シングされているか否かをキャッシュ単位で示すキャッ
    シュ情報を保持する保持手段と、 前記メモリ空間にアクセスが発生した場合、前記保持手
    段によって保持されているキャッシュ情報に基づいて前
    記キャッシュ手段のキャッシュメンテナンスを行うメン
    テナンス手段として機能させることを特徴とする記憶媒
    体。
JP9243127A 1997-09-08 1997-09-08 情報処理システム及び情報処理装置及びその制御方法 Withdrawn JPH1185615A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9243127A JPH1185615A (ja) 1997-09-08 1997-09-08 情報処理システム及び情報処理装置及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9243127A JPH1185615A (ja) 1997-09-08 1997-09-08 情報処理システム及び情報処理装置及びその制御方法

Publications (1)

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

Family

ID=17099214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9243127A Withdrawn JPH1185615A (ja) 1997-09-08 1997-09-08 情報処理システム及び情報処理装置及びその制御方法

Country Status (1)

Country Link
JP (1) JPH1185615A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080266A (ja) * 2005-09-15 2007-03-29 Internatl Business Mach Corp <Ibm> 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法)
JP2007207223A (ja) * 2006-01-30 2007-08-16 Internatl Business Mach Corp <Ibm> 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080266A (ja) * 2005-09-15 2007-03-29 Internatl Business Mach Corp <Ibm> 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法)
JP2007207223A (ja) * 2006-01-30 2007-08-16 Internatl Business Mach Corp <Ibm> 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ

Similar Documents

Publication Publication Date Title
TWI391821B (zh) 在互連結構上發佈請求而無參照基於標籤快取狀態的低階快取之處理單元及資料處理系統與方法
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
US7234029B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
JP4966205B2 (ja) 共有メモリコンピュータシステムにおける、所有されている複数のキャッシュブロックのライトバックの早期予測
TWI431475B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
US8539164B2 (en) Cache coherency within multiprocessor computer system
US9251077B2 (en) Accelerated recovery for snooped addresses in a coherent attached processor proxy
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US9229868B2 (en) Data recovery for coherent attached processor proxy
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
US6587922B2 (en) Multiprocessor system
JP2000250884A (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
US9251076B2 (en) Epoch-based recovery for coherent attached processor proxy
KR101072174B1 (ko) 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법
JP5004571B2 (ja) 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
KR20210041485A (ko) 데이터 신호 경로 및 태그 신호 경로를 갖는 메모리 인터페이스
JP3550092B2 (ja) キャッシュ装置及び制御方法
WO2024124977A1 (zh) 缓存状态记录方法、数据访问方法及相关装置、设备
US7725660B2 (en) Directory for multi-node coherent bus
US7669013B2 (en) Directory for multi-node coherent bus
CN116414563A (zh) 内存控制装置、缓存一致性系统和缓存一致性方法
JPH1185615A (ja) 情報処理システム及び情報処理装置及びその制御方法
JPH09223115A (ja) 情報処理装置及びシステム及びその制御方法
JPH09305489A (ja) 情報処理システム及びその制御方法
JPH1185616A (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