JP3410535B2 - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JP3410535B2
JP3410535B2 JP01990594A JP1990594A JP3410535B2 JP 3410535 B2 JP3410535 B2 JP 3410535B2 JP 01990594 A JP01990594 A JP 01990594A JP 1990594 A JP1990594 A JP 1990594A JP 3410535 B2 JP3410535 B2 JP 3410535B2
Authority
JP
Japan
Prior art keywords
processor
line
directory
page
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01990594A
Other languages
English (en)
Other versions
JPH07210526A (ja
Inventor
直伸 助川
俊明 垂井
啓明 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP01990594A priority Critical patent/JP3410535B2/ja
Publication of JPH07210526A publication Critical patent/JPH07210526A/ja
Application granted granted Critical
Publication of JP3410535B2 publication Critical patent/JP3410535B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のキャッシュメモ
リおよび共有メモリを有し、該共有メモリにディレクト
リを備える並列計算機に関する。
【0002】
【従来の技術】計算機性能の向上のため、多数台のプロ
セッサを並列動作させる並列計算機が有望視されてい
る。並列計算機ではプロセッサ間の通信手段が必要とな
る。通信手段としては、ネットワークを介してメッセー
ジを交換するメッセージパッシング方式と、各プロセッ
サよりアクセスできる共有メモリ領域を用意する共有メ
モリ方式とがある。メッセージパッシング方式における
メッセージの交換は、一般にオペレーティングシステム
を起動することで実現する。オペレーティングシステム
の起動は、特に短いメッセージの通信において、非常に
重いオーバヘッドとなる。これに対し、共有メモリを用
いる方法では、オペレーティングシステムを起動するこ
となく通信が実現する。このため、共有メモリ方式は、
通信におけるプロセッサの負担を軽減できる。
【0003】大規模並列計算機の共有メモリ方式とし
て、共有メモリを分割・分散させて用意する、分散型共
有メモリ方式が有効である。共有メモリを分散させるこ
とで、複数のプロセッサによる共有メモリの同時アクセ
スが可能になり、高度な並列性を持つ処理が実現する。
分散共有メモリ方式としては、 (A)プロセッサを持つ構成要素と、一部の共有メモリ
を持つ構成要素とを、ネットワークで結合する、均質な
分散型共有メモリシステム (B)プロセッサと一部の共有メモリとを持つ構成要素
を、ネットワークで結合する、不均質な分散型共有メモ
リシステム とが知られている。均質(アクセス時間にバラツキのな
い)な分散型共有メモリシステムとしては、特開平5−
128071などが、不均質(アクセス時間にバラツキ
のある)な分散型共有メモリシステムとしては、特開平
5−89056などがある。これらの方式では、プロセ
ッサが共有メモリをアクセスする場合、均質な分散型共
有メモリ方式では毎回、不均質な分散型共有メモリシス
テムでも高い確率で、ネットワークを介してデータ転送
することになる。近年のプロセッサの処理速度の向上
は、ネットワーク速度の向上と比べ著しい。このため、
ネットワークを介するアクセスでは、遅延時間が大きな
問題になる。
【0004】各プロセッサの共有メモリアクセスの高速
化手段として、キャッシュメモリを各プロセッサに用意
する方式が有効である。キャッシュメモリは、共有メモ
リの一部の内容を登録する、高速なバッファである。キ
ャッシュメモリを用意した共有メモリ型並列計算機で
は、同一データを複数のプロセッサがそれぞれのキャッ
シュメモリに登録するケースが発生する。この場合、各
プロセッサのキャッシュメモリ内容の一致を保証する手
段が必要となる。バスで結合された並列計算機では、ス
ヌーピング手法を利用することで、キャッシュメモリの
内容の一致を保証する。しかし、ネットワークを用いた
分散型共有メモリシステムでは、スヌーピング手法は利
用が困難である。スヌーピング手法が必要とする、一致
管理の情報を全てのプロセッサに通達する通信のオーバ
ヘッドが、ネットワークでは非常に大きくなるためであ
る。分散型共有メモリシステムでキャッシュメモリの一
致を保証する手段として、特開平4−328653で
は、アドレス/コマンド用にバスを、データ用にネット
ワークを設ける方式を開示する。この方法では、アドレ
ス/コマンド送信は並列処理が不可能であり、高並列な
処理は実現困難である。
【0005】並列性を高めた一致管理として、「The
Stanford Dash Multiproce
ssor,IEEE Computer,March
1992 pp.63〜78」では、ディレクトリ方式
が開示される。ディレクトリ方式では、共有メモリから
キャッシュメモリに登録する単位であるラインごとに、
そのラインをキャッシュメモリに登録しているプロセッ
サを記憶するディレクトリを用意する。また、分散され
た共有メモリごとに、ディレクトリを制御するディレク
トリ制御回路とを用意する。あるラインを1つまたはそ
れ以上のプロセッサがキャッシュメモリに登録した場
合、ディレクトリ制御回路は、そのラインに用意される
ディレクトリに、そのプロセッサ全てをディレクトリに
登録する。また、あるプロセッサがあるラインの内容を
更新する場合には、ディレクトリ制御回路が更新するラ
インのディレクトリを調べ、そのラインをキャッシュメ
モリに登録しているプロセッサ(更新する主体のプロセ
ッサ以外)を特定する。さらディレクトリ制御回路は、
特定されたプロセッサのキャッシュメモリに対しては、
ネットワークを通じ、 (A)そのキャッシュメモリより、更新するラインの情
報を、(必要な場合には共有メモリに書き戻した後に)
抹消する (B)そのキャッシュメモリの情報も更新する のどちらかの処理を命令する。以上の管理を行なうこと
により、全てのキャッシュメモリにおいて、同一ライン
については同一の情報が登録されることになる。
【0006】ディレクトリ方式には、フルマップ方式と
リミテッドポインタ方式がある。フルマップ方式は、1
ビットと1プロセッサとが対応するビットマップで、デ
ィレクトリを構成する方式である。リミテッドポインタ
方式は、プロセッサIDがいくつか記憶できる有限長ポ
インタ配列で、ディレクトリを構成する方式である。リ
ミテッドポインタ方式は、同じラインを同時にキャッシ
ュメモリに登録しているプロセッサ数は一般に少ない、
という特性を利用する。フルマップ方式で発生するディ
レクトリの冗長性(ディレクトリのほとんどのビットが
0となる)が、リミテッドポインタ方式では削減され
る。これにより、ディレクトリ容量を小さくすることが
可能である。リミテッドポインタ方式では、あるライン
のディレクトリが溢れる場合には、リプレース処理など
の対策が必要になる。リプレース処理とは、ディレクト
リに既に記憶されているプロセッサの1つが、そのライ
ンをキャッシュから共有メモリに書き戻した後に、その
プロセッサをディレクトリより抹消し、新たなプロセッ
サを登録する処理である。「The Stanford
Dash Multiprocessor,IEEE
Computer,March 1992 pp.6
3〜78」ではフルマップ方式が用いられており、特開
平5−128071ではリミテッドポインタ方式が用い
られている。
【0007】
【発明が解決しようとする課題】上記のディレクトリ方
式を用いて、分散型共有メモリを持つ大規模並列計算機
を構成すると、極めて大きなディレクトリ容量が必要と
なる。例として、4096台のプロセッサがネットワー
クで結合されている並列計算機で、フルマップ方式のデ
ィレクトリを用意する場合を説明する。ページおよびラ
インの大きさは、1ページ64ライン、1ライン512
ビット(1ページ4Kバイト)とする。フルマップ方式
では、各ラインに4096ビット=512バイトのディ
レクトリが必要になり、共有メモリ1ページごとに必要
なディレクトリ容量は、512バイト×64ライン=3
2Kバイトとなる。つまり、共有メモリ容量の8倍の容
量を持つディレクトリが必要となり、実用性に欠ける。
同じ並列計算機で、リミテッドポインタ方式を用意する
場合を説明する。一つのラインのディレクトリに16プ
ロセッサまで登録可能とすると、各記憶場合には、共有
メモリの1ページごとに必要なディレクトリ容量は、
(12+1)/8バイト×16ポインタ×64ライン=
1664バイトとなる(4096台の場合のラインディ
レクトリの1ポインタには、各プロセッサ番号を表すた
めには12ビット必要である。また、各ポインタには、
そのポインタが使用されているかどうかを示すVali
dビットが1ビット必要である)。リミテッドポインタ
ディレクトリ方式では、ディレクトリの容量は共有メモ
リ容量の約2/5となりフルマップ方式より大幅に軽減
されるものの、まだ相当大きい。以上に示した通り、フ
ルマップ方式は、大規模の並列計算機では実用性に欠け
る容量のディレクトリを必要とする。リミテッド方式で
も、ディレクトリの容量は無視できない大きさになる。
本発明の目的は、ディレクトリ容量の小さい、ディレク
トリ方式の分散型共有メモリを持つ大規模並列計算機を
実現することにある。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数のプロセッサと該各プロセッサがア
クセスできる複数の分散型の共有メモリを備え、前記各
プロセッサは共有メモリのデータをライン単位で登録す
るキャッシュメモリを備える並列計算機において、前記
共有メモリは、該共有メモリの各ページごとに用意さ
れ、該ページの一部または全てのラインをキャッシュメ
モリに登録したプロセッサを記憶するページディレクト
リと、共有メモリの各ラインごとに用意され、該ライン
をキャッシュメモリに登録したプロセッサのページディ
レクトリ上での位置をビットマップ形式で記憶するライ
ンディレクトリとを備えるようにしている。また、前記
ラインディレクトリは、共有メモリの各ラインごとに用
意され、該ラインをキャッシュメモリに登録したプロセ
ッサのページディレクトリ上での位置をポインタ形式で
記憶するようにしている。また、前記複数の共有メモリ
と前記複数のプロセッサとをネットワークで接続するよ
うにしている。また、前記共有メモリと前記プロセッサ
とによりノードを構成し、複数の前記ノードをネットワ
ークで接続するようにしている。また、前記ページディ
レクトリ毎に、該ページディレクトリに記憶されている
プロセッサのうち、記憶された時間が最も早いプロセッ
サを指示するページディレクトリポインタを備えるよう
にしている。また、前記ページディレクトリに記憶され
ている各プロセッサ対応に、該ページディレクトリから
のプロセッサの記憶抹消の可否を表すロックビットを備
えるようにしている。
【0009】
【作用】本発明によれば、共有メモリにページディレク
トリとラインディレクトリを備えたことにより、ライン
ディレクトリに必要となる容量を大幅に低減することが
でき、これにより、ディレクトリ全体に必要な容量の大
幅な低減を達成することができる。
【0010】
【実施例】図1〜図6に本発明の1実施例を示す。ま
た、図9に、本実施例によるページディレクトリ70、
ラインディレクトリ90の内容の1例を示す。最初に、
図7〜図9により、本実施例の概要を説明する。8台の
プロセッサI〜VIIIが、それぞれ共有メモリから6
ラインだけ登録できるキャッシュメモリ20−0〜7を
持つ場合の、キャッシュメモリの内容の例を図7に示
す。各プロセッサのキャッシュメモリ20が図7に示す
登録状況である時、本実施例に示す方式で、各ラインが
登録されているプロセッサを記憶した場合の、ページデ
ィレクトリ70およびラインディレクトリ90を図9に
示す。ただし、ライン0〜7の8本で共有メモリ1ペー
ジとし、そのページのページディレクトリ70、ライン
0〜7に対応するラインディレクトリ90−0〜7の内
容のみ示す。
【0011】ライン0〜7を記憶しているプロセッサ
は、プロセッサI、II、III、VIであるため、ペ
ージディレクトリ70のポインタ94にはプロセッサ
I、II、III、VIの4つのプロセッサIDを記憶
する。さらに、各ラインに、ラインディレクトリ90−
0〜7を用意する。ラインディレクトリ90−0〜7
は、そのラインをキャッシュメモリ20−0〜7に登録
しているプロセッサが、ページディレクトリ70に記憶
されているプロセッサのうち、どのプロセッサであるか
をビットマップ形式で記憶する。本例では、ページディ
レクトリ70に記憶されるプロセッサ4つに対応した4
ビットのビットマップで、ラインディレクトリ90−0
〜7を構成している。例えば、ライン0に用意されたラ
インディレクトリ90−0が全て1であれば、ページデ
ィレクトリに記憶されているすべてのプロセッサI、I
I、III、VIがライン0をキャッシュに登録してい
ることを意味する。なお、ラインディレクトリ90−0
〜7は、ポインタ形式、すなわちポインタ列で構成する
ことも可能である。この場合、各ポインタは、ページデ
ィレクトリ70中のプロセッサ登録位置を示すことにな
る。例えば、図9の場合ページディレクトリには4つの
プロセッサIDが登録されているが、その登録位置にそ
れぞれポインタ00、01、10、11を与え、ライン
ディレクトリにはこのポインタを格納するようにする。
ページディレクトリ70のポインタ94のそれぞれに
は、そのポインタの使用/未使用を示すフラグを用意し
ても、用意しなくてもよい。用意しない場合には、ペー
ジディレクトリが記憶するプロセッサは常に定数個とな
る。この場合、ページディレクトリ70には記憶されて
いるが、対応するラインディレクトリ90−0〜7のビ
ットが全て0のプロセッサが有り得る。
【0012】リミテッドポインタ方式のディレクトリ
で、図7に示す登録状況を記憶した場合の、ライン0〜
7に用意されたディレクトリ92−0〜7の内容を図8
に示す。各ラインに用意されたディレクトリ92−0〜
7のポインタ94は、そのラインをキャッシュメモリ2
0−0〜7に登録しているプロセッサのIDをそのまま
記憶する。例えば、ライン0は、プロセッサI、II、
III、VIの4つのキャッシュメモリ20−0〜7に
登録されているため、ディレクトリ92−0には、プロ
セッサI、II、III、VIの4つのプロセッサID
が記憶されている。なお、各ポインタ94は、使用/未
使用を表すValidフラグ96が必要である。
【0013】一般に、あるラインをキャッシュメモリに
登録するプロセッサは、近接するラインもキャッシュメ
モリに登録する確率が高い。これは、ループ構造をもつ
プログラムでは、連続した領域を処理することが多いこ
とによる(一般的には、連続する領域を処理するよう
に、プログラムを最適化する)。例えば、図7のプロセ
ッサVのキャッシュメモリ20−4のように、連続する
ラインがキャッシュメモリに登録される確率は高い。上
記の特性がある場合、リミテッドポインタ方式では、近
接するディレクトリに同じプロセッサのIDが繰り返し
登録されることになる。この場合、ディレクトリのもつ
情報に冗長性が発生する。例えば、図8の8本のディレ
クトリ92−0〜7には、のべ22個のプロセッサID
が記憶されているが、記憶されているのはプロセッサ
I、II、III、VIの4つだけである。本実施例の
方式では、この冗長性を利用して、ディレクトリの容量
を削減する。図8、9の例で、それぞれに必要なディレ
クトリの容量を計算する。プロセッサは全8個であるか
ら、ポインタ94は3ビット必要である。リミテッドポ
インタ方式では、Validビット96も含めて、全部
で(3+1)ビット×4ポインタ×8ライン=128ビ
ットのディレクトリ容量が必要になる。これに対し、本
実施例の方式では、ページディレクトリ70に3ビット
×4ポインタ=12ビット、ラインディレクトリ90−
0〜8に4ビット×8ライン=32ビット、合計44ビ
ットで済み、リミテッドポインタ方式に比べ、約1/3
の容量で済む。更に、4096台のプロセッサがネット
ワークで結合されている並列計算機で、本実施方式で必
要とされるディレクトリ容量を計算する。前記のフルマ
ップ方式およびリミテッドポインタ方式でディレクトリ
の容量を計算した際と同様に、ページおよびラインの大
きさは、1ページ64ライン、1ライン512ビット
(1ページ4Kバイト)とする。各ページのページディ
レクトリに登録できるプロセッサ数を16とした場合、
12/8バイト×16ポインタ+16/8バイト×64
ライン=152バイトとなる。また、各ページのページ
ディレクトリに登録できるプロセッサ数を64とした場
合にも、12/8バイト×64ポインタ+64/8バイ
ト×64ライン=608バイトで済む。これは、同条件
におけるフルマップ方式の32Kバイト、リミテッドポ
インタ方式の1664バイトに比べると、ディレクトリ
容量が低減されている。
【0014】本実施例においては、ページディレクトリ
が全て使用されていて、かつさらに新たなプロセッサを
ページディレクトリに記憶する必要が生じた場合の処理
が問題となる。この処理の概要を、図1を用いて説明す
る。本実施例では、ページディレクトリ70が全て使用
されていて、かつさらに新たなプロセッサをページディ
レクトリ70に記憶する必要が生じた場合には、ページ
ディレクトリ70に記憶されているプロセッサのうち、
最も記憶された時間が早いプロセッサを指すページディ
レクトリポインタ80により指されるプロセッサに対し
て、メッセージ解釈/実行部50がリプレース処理を要
求する。例えば,ページディレクトリ70に既に記憶さ
れているプロセッサ15について、プロセッサ215へ
のリプレース処理を行なう場合、メッセージ解釈/実行
部50は、プロセッサ15に、ページディレクトリ70
の所属する共有メモリ45のページから、キャッシュメ
モリ20に登録されているラインを全て共有メモリ45
に書き戻すよう要求し、プロセッサ15をラインディレ
クトリ90およびページディレクトリ70より消去する
ことで、ディレクトリを空けた後に、新しいプロセッサ
215をページディレクトリ70に記憶する。ページデ
ィレクトリポインタ80は、リプレース処理ごとにイン
クリメント(またはディクリメント)することで、最も
記憶された時間が早いプロセッサを常に指すことができ
る。さらに、ページディレクトリ70に記憶されている
プロセッサそれぞれについて、記憶抹消の可否を表すロ
ックビット75を持たせることで、記憶抹消を避けたい
プロセッサのリプレースを禁止することができる。この
場合、リプレース処理の必要が生じた場合には、ページ
ディレクトリポインタ80がロックビット75によりリ
プレースが禁止されていないプロセッサを指すまで、ペ
ージディレクトリポインタ80をインクリメント(また
はディクリメント)する。ページディレクトリポインタ
80およびロックビット75により、リプレース処理の
頻発を避け、リプレース処理の時間コストを低減でき
る。
【0015】図1〜図6を用いて、本実施例の詳細を説
明する。図1はシステムユニット0、200、1000
を持つ、分散型共有メモリ方式の並列計算機である。各
システムユニットは、プロセッサノード10、210、
1010、メモリノード40、240、1040より構
成される。本実施例は、全てのプロセッサユノード1
0、210、1010と、メモリユノード40、24
0、1040との間を、ネットワーク1500で接続し
た、均質な分散型共有メモリである。同一システムユニ
ット0内のプロセッサノード10とメモリノード40、
システムユニット200内のプロセッサノード210と
メモリノード240、システムユニット1000内のプ
ロセッサノード1010とメモリノード1040間の接
続には、ネットワーク1500を利用せずに、別に用意
した結合方法を利用する、不均質な分散型共有メモリに
おいても、本実施例は、適応できる。また、本実施例で
は、常に、ページディレクトリ70が全て使用されてい
る状態で動作させる。この場合、ページディレクトリ7
0へ新たにプロセッサ15、215、1015を記憶さ
せる場合、必ずリプレース処理が必要になる。
【0016】システムユニット0についてのみ、プロセ
ッサノード10およびメモリノード40の構成を述べ
る。他のシステムユニット200、1000もシステム
ユニット0と同じ構成である。プロセッサノード10
は、プロセッサ15、キャッシュメモリ20、プロセッ
サネットワーク接続回路25、メッセージ組立回路3
0、メッセージ分解回路35より構成される。プロセッ
サネットワーク接続回路25は、プロセッサ15の共有
メモリ45、245、1045に対する要求が、どのメ
モリノード40、240、1040に対する要求である
かを判別するための分散メモリマップ27を持ち、また
プロセッサ0とメッセージ組立回路30、メッセージ分
解回路35とを接続する機能とを持つ。メッセージ組立
回路30は、プロセッサネットワーク接続回路25から
のネットワーク1500に対するメモリノード番号、ア
ドレス、データおよびコマンドに対し、メッセージパケ
ットを生成して、ネットワーク1500に送る機能を持
つ。メッセージ分解回路35は、ネットワークからのメ
ッセージパケットを、アドレス、データおよびコマンド
に分解して、プロセッサネットワーク接続回路25に送
る機能をもつ。
【0017】メモリノード40は、共有メモリ45、ぺ
ージディレクトリ70、ロックビット75、ページディ
レクトリポインタ80、ラインディレクトリ90、ペー
ジディレクトリ制御回路65、ラインディレクトリ制御
回路85、メッセージ組立回路55、メッセージ分解回
路60より構成される。メッセージ解釈/実行部50
は、プロセッサ15、215、1015の要求に対し、
ページディレクトリ70、ロックビット75、ページデ
ィレクトリポインタ80にアドレス線173を介してペ
ージ番号を送るほか、ページディレクトリ制御回路6
5、ラインディレクトリ制御回路85にアドレス情報、
データ、制御信号を送り、ページディレクトリ70、ラ
インディレクトリ90の書き込み、または読み出しを行
う。また、共有メモリ45の書き込み、読み出しを行
う。本実施例では、メッセージ解釈/実行部50を、内
部にプロセッサ、メモリ、およびI/Oを持つ制御シス
テムとするが、回路で構成することも可能である。ペー
ジディレクトリ制御回路65は、メッセージ解釈/実行
部50からの制御信号により、ページディレクトリ7
0、ロックビット75、ページディレクトリポインタ8
0を操作する回路である。ラインディレクトリ制御回路
85は、メッセージ解釈/実行部50からの制御信号に
より、ラインディレクトリ90を操作する回路である。
【0018】図2にページディレクトリ制御回路65の
構成を示す。ここでは、ページディレクトリ70に各ペ
ージごとに登録できるプロセッサ数を、mとしている。
プロセッサ番号レジスタ101には、メッセージ解釈/
実行部50よりデータ線157で送られてきたプロセッ
サ番号が入る。プロセッサ番号レジスタ110〜114
には、データ線170より送られてきた、ページディレ
クトリ70に記憶されているプロセッサ番号が入る。プ
ロセッサ番号レジスタ110〜114の数はmである。
比較器105〜109は、プロセッサ番号レジスタ10
1とプロセッサ番号レジスタ110〜114のプロセッ
サ番号を比較し、一致判定結果を、ビット演算器12
0、およびデータ線160を介してラインディレクトリ
制御回路85のビット演算器180に送る回路である。
比較結果が全て不一致の場合には、データ線145によ
り、メッセージ解釈/実行部50へ不一致が出力され
る。マルチプレクサ117は、プロセッサ番号レジスタ
110〜114に記憶されているプロセッサ番号のう
ち、セレクタ118からの信号により決定される1つ
を、メッセージ解釈/実行部50に出力する回路であ
る。デマルチプレクサ119は、メッセージ解釈/実行
部50からの制御信号150に応じて、プロセッサ番号
レジスタ101に記憶されているプロセッサ番号を、プ
ロセッサ番号レジスタ110〜114のうちポインタ情
報レジスタ122により示される1つのレジスタへ出力
する回路である。ロック情報レジスタ121には、デー
タ線171より送られてきた、ロックビット75の1ペ
ージ分のロック情報が入る。ビット演算器120は、ロ
ック情報レジスタ121の内容を、メッセージ解釈/実
行部50からの制御信号151に応じてセット、制御信
号152に応じてリセットする回路である。ロック情報
レジスタ121のどのビットをセット/リセットするか
は、比較器105〜109からの一致信号により決定さ
れる。また、ビット演算器120は、メッセージ解釈/
実行部50からの制御信号153に応じて、ロック情報
レジスタ121のビットが0か1かをテストし、結果を
データ線146を介してメッセージ解釈/実行部50へ
送る機能を持つ。テストするビットは、ポインタ情報レ
ジスタ122からのデータにより決定される。ポインタ
情報レジスタ122には、データ線172から送られて
きた、ディレクトリページポインタ80の1ページ分の
情報が入る。ポインタレジスタの内容は、データ線16
1を介して、ラインディレクトリ制御回路85のビット
演算器180にも出力される。インクリメント回路12
3は、ポインタ情報レジスタ122の内容を、メッセー
ジ解釈/実行部50からの制御信号156に応じて、イ
ンクリメントする回路である。プライオリティエンコー
ダは、ラインディレクトリ制御回路85からデータ線1
65で送られてきたライン情報レジスタ179の内容を
エンコードする回路である。エンコードした結果が複数
になる場合には、一定の方法もしくはランダムな方法に
より、一つを選んでセレクタ118に出力する。メッセ
ージ解釈/実行部50からの制御線155により、エン
コードした複数の結果を順にセレクタ118に出力する
機能も持つ。セレクタ118は、メッセージ解釈/実行
部50からの制御信号154に応じて、マルチプレクサ
117に出力する信号を、ポインタ情報レジスタ122
の内容か、プライオリティエンコーダ124の内容かに
切り換える回路である。
【0019】図3に、ラインディレクトリ制御回路90
の構成を示す。ライン番号発生器175は、メッセージ
解釈/実行部50からの制御線188に応じて、全ての
ライン番号を順々に発生させる回路である。発生させた
ライン番号は、セレクタ176に出力される。ライン番
号発生器175は、ビット演算器180にテスト要求も
出力する。セレクタ176は、メッセージ解釈/実行部
50からの制御線187に応じて、ライン番号発生器1
75の出力するライン番号、もしくはアドレス線185
より得られるメッセージ解釈/実行部50からのライン
番号のどちらかを出力する回路である。ミキサ178
は、メッセージ解釈/実行部50よりアドレス線186
で送られてきた、ページ番号と、セレクタ176からの
ライン番号とを合成して、ラインディレクトリ90のア
ドレス線160に結果を出力する回路である。ライン情
報レジスタ179には、データ線197から送られてき
た、ラインディレクトリ90の1ライン分の情報が入
る。ライン情報レジスタ179の内容は、データ線16
5より、ページディレクトリ制御回路65のプライオリ
ティエンコーダ155に出力される。ビット演算器18
0は、ライン情報レジスタ180の内容を、メッセージ
解釈/実行部50からの制御信号189に応じてセッ
ト、制御信号190に応じてリセットする回路である。
ライン情報レジスタ179のどのビットをセット/リセ
ットするかは、ページディレクトリ制御回路65の比較
器105〜109からの一致信号160により決定され
る。また、ビット演算器180は、ライン番号発生器1
75からの制御信号に応じて、ライン情報レジスタ17
9のビットが0か1かをテストし、結果をライン番号ラ
ッチ177に出力する機能を持つ。テストするビット
は、ページディレクトリ制御回路65のポインタ情報レ
ジスタ161からのデータにより決定される。ライン番
号ラッチ177は、ビット演算器180のテスト結果が
真の場合に、セレクタ176の出力するライン番号をメ
ッセージ解釈/実行部50に出力する回路である。
【0020】以下に、本発明方式による、プロセッサ1
5によるロード、ストア、フラッシュ実行時のメモリ制
御機構の動作を説明する。プロセッサ15は、ストアイ
ン型のキャッシュメモリ20を持つとする。この中で、
ページディレクトリ制御回路65、ラインディレクトリ
制御回路85の動作が必要とされるページディレクトリ
チェック2000、ページディレクトリ記憶2100、
プロセッサ検索2200、全プロセッサ検索2300、
ラインディレクトリ記憶2400、ラインディレクトリ
抹消2500、ロックビットセット、ロックビットリセ
ットの詳細は、後に説明する。
【0021】[1]プロセッサ15が共有メモリ45の
データをロードする場合 キャッシュメモリ20に目的のデータを含むラインが登
録されている場合には、プロセッサ15よりプロセッサ
ネットワーク接続回路25へはロード要求は出力され
ず、動作は全て終了となる。キャッシュメモリ20に目
的のデータを含むラインが登録されていない場合に、プ
ロセッサ15よりプロセッサネットワーク接続回路25
にロード要求が出力され、以下の動作を行う。プロセッ
サネットワーク接続回路25において、分散メモリマッ
プ27をチエックし、ロード要求は共有メモリ45への
ロード要求と判断される。プロセッサネットワーク接続
回路25は、メッセージ組立回路30、ネットワーク1
500、メッセージ分解回路60を介して、メッセージ
解釈/実行部50にロードコマンドを送付する。
【0022】ロードコマンドに対するメッセージ解釈/
実行部50の動作を図4に示し、以下に説明する。ロー
ドコマンドを受けたメッセージ解釈/実行部50はペー
ジディレクトリチェック2000を行い、プロセッサ1
5がページディレクトリ70に記憶されているかを調べ
る。記憶されていなければ、ページディレクトリ記憶2
100を行い、プロセッサ15をページディレクトリ7
0に記憶させる。次に他のプロセッサ215、1015
が、そのラインをキャッシュメモリ220、1020に
登録していないかどうかプロセッサ検索2200を行
う。その結果、例えばプロセッサ215のキャッシュメ
モリ220に登録されていれば、メッセージ解釈/実行
部50は、メッセージ組立回路55、ネットワーク15
00、メッセージ分解回路235、プロセッサネットワ
ーク接続回路225を介して、プロセッサ215にライ
ンをプロセッサ15へ転送するように依頼する。依頼さ
れたプロセッサ215は、キャッシュメモリ220より
ラインを読みだし、プロセッサネットワーク接続回路2
25、メッセージ組立回路230、ネットワーク150
0、メッセージ分解回路35、プロセッサネットワーク
接続回路25を介して、プロセッサ15へとラインを転
送する。ラインのキャッシュメモリ220、1020へ
の登録がない場合には、メッセージ解釈/実行部50は
共有メモリ45よりラインを読みだし、そのラインをメ
ッセージ組立回路55、ネットワーク1500、メッセ
ージ分解回路35、プロセッサネットワーク接続回路2
5を介して、プロセッサ15に送る。最後に、メッセー
ジ解釈/実行部50は、ラインディレクトリ記憶240
0を実行し、プロセッサ15をラインディレクトリ90
に記憶させる。以上で、プロセッサ15が共有メモリ4
5のデータをロードする場合の動作の説明を終了する。
【0023】[2]プロセッサ15が共有メモリ45の
データにストアする場合 キャッシュメモリ20にストアするデータを含むライン
が登録されていない場合、最初に上記データのロードと
同じ動作が行われる。目的のデータを含むラインがキャ
ッシュメモリ20に登録された状態で、以下の動作が行
われる。プロセッサ15は、ストアを実行する場合に、
他プロセッサ215、1015のキャッシュメモリ22
0、1020に登録しているそのラインを無効化する要
求を、プロセッサネットワーク接続回路25に出力す
る。プロセッサネットワーク接続回路25は、分散メモ
リマップ27をチェックすることで、ストアするデータ
が、元は共有メモリ45のデータであることを判断し、
メッセージ組立回路30、ネットワーク1500、メッ
セージ分解回路60を介し、インバリデートコマンドを
送る。インバリデートコマンドに対するメッセージ解釈
/実行部50の動作を、図5に示し、以下に説明する。
インバリデートコマンドを受けたメッセージ解釈/実行
部50は、そのラインをキャッシュメモリ220、10
20に登録している全プロセッサ番号を抽出するする全
プロセッサ検索2300を行う。その結果、例えばプロ
セッサ15、プロセッサ215、プロセッサ1015の
キャッシュメモリ20、キャッシュメモリ220、キャ
ッシュメモリ1020に登録されていた場合、メッセー
ジ解釈/実行部50は、インバリデート要求元であるプ
ロセッサ15を除くプロセッサ215、プロセッサ10
15に、メッセージ組立回路55、ネットワーク150
0、メッセージ分解回路235およびメッセージ分解回
路1035、プロセッサネットワーク接続回路225お
よびプロセッサネットワーク接続回路1025を介し
て、そのラインの無効化を要求する。プロセッサ215
およびプロセッサ1015は、そのラインをキャッシュ
メモリ220およびキャッシュメモリ1020から無効
化した後に、プロセッサネットワーク接続回路225お
よびプロセッサネットワーク接続回路1025、メッセ
ージ組立回路230およびメッセージ組立回路103
0、ネットワーク1500、メッセージ分解回路60を
介し、メッセージ解釈/実行部50に無効化終了を通達
する。メッセージ解釈/実行部50は、無効化終了を受
ける度に、無効化したプロセッサ215、またはプロセ
ッサ1015の記憶を、そのラインのラインディレクト
リ90より抹消するラインディレクトリ抹消2500を
行う。インバリデートコマンドを要求したプロセッサ1
5以外のプロセッサ215とプロセッサ1015の無効
化終了受理およびラインディレクトリ抹消2500を終
了した後に、メッセージ解釈/実行部50は、メッセー
ジ組立回路55、ネットワーク1500、メッセージ分
解回路35、プロセッサネットワーク接続回路25を介
して、プロセッサ15にインバデーションコマンド終了
を通達する。以上で、プロセッサ15が共有メモリ45
のデータにストアする場合の動作の説明を終了する。
【0024】[3]プロセッサ15が共有メモリ45に
ラインをフラッシュする場合 プロセッサ15は、フラッシュ要求をプロセッサネット
ワーク接続回路25に、フラッシュするラインとともに
出力する。プロセッサネットワーク接続回路25は、分
散メモリマップ27をチェックすることで、フラッシュ
するラインが、元は共有メモリ45のラインであること
を判断し、メッセージ組立回路30、ネットワーク15
00、メッセージ分解回路60を介し、ラインとともに
フラッシュコマンドを送る。フラッシュコマンドに対す
るメッセージ解釈/実行部50の動作を、図6に示し、
以下に説明する。フラッシュコマンドを受けたメッセー
ジ解釈/実行部50は、そのラインを共有メモリ45に
書き戻す。さらに、そのラインのラインディレクトリ9
0よりプロセッサ15の記憶を抹消するラインディレク
トリ抹消2500を行う。最後に、メッセージ解釈/実
行部50は、メッセージ組立回路55、ネットワーク1
500、メッセージ分解回路35、プロセッサネットワ
ーク接続回路25を介し、プロセッサ15にフラッシュ
コマンド終了を通達する。以上で、プロセッサ15が共
有メモリ45のラインをフラッシュする場合の動作の説
明を終了する。
【0025】以下に、ページディレクトリ制御回路6
5、ラインディレクトリ制御回路85の動作が必要とさ
れるページディレクトリチェック2000、ページディ
レクトリ記憶2100、プロセッサ検索2200、全プ
ロセッサ検索2300、ラインディレクトリ記憶240
0、ラインディレクトリ消去2500、ロックビットセ
ット、ロックビットリセットの詳細な動作を説明する。
【0026】<1>ページディレクトリチェック200
0 ページディレクトリチェック2000は、プロセッサ1
5、215、1015がページディレクトリ70に記憶
されているかを調べる動作である。例として、プロセッ
サ15について調べるとする。メッセージ解釈/実行部
50は、データ線157より、ページディレクトリ制御
回路65内のプロセッサ番号レジスタ101に、プロセ
ッサ15のID番号を記憶させる。また、メッセージ解
釈/実行部50は、アドレス線173により、ページデ
ィレクトリ70に調査するページ番号を通達する。調査
するページのページディレクトリ情報は、データ線17
0を通り、プロセッサ番号レジスタ110〜114に記
憶される。プロセッサ番号レジスタ101の内容と、プ
ロセッサ番号レジスタ110〜114の内容とが、比較
器105〜109において比較され、結果がすべて不一
致であった場合には、データ線145より不一致がメッ
セージ解釈/実行部50に通達される。以上により、プ
ロセッサ15がページディレクトリ70に記憶されてい
るか調べる動作が終了する。
【0027】<2>ページディレクトリ記憶2100 ページディレクトリ記憶2100は、ページディレクト
リ70より前述のリプレース処理を行うことで、プロセ
ッサ15、215、1015を新たに登録する動作であ
る。例として、プロセッサ215をページディレクトリ
70より抹消し、新たにプロセッサ15を登録させる動
作について説明する。メッセージ解釈/実行部50は、
アドレス線173により、ページディレクトリ70、ロ
ックビット75、ページディレクトリポインタ80に調
査するページ番号を通達する。調査するページの、ペー
ジディレクトリ情報はデータ線170を通りプロセッサ
番号レジスタ110〜114に、ロック情報はデータ線
171を通りロック情報レジスタ121に、ポインタ情
報はデータ線172を通りポインタ情報レジスタ122
に記憶される。メッセージ解釈/実行部50は、制御線
153よりビット演算器120に、ロック情報レジスタ
121のポインタ情報レジスタ122が指すビットの、
テストを要求する。ビット演算器120は、データ線1
46を通して、結果をメッセージ解釈/実行部50に送
る。メッセージ解釈/実行部は、もしテスト結果がロッ
ク状態とわかれば制御線156により、インクリメント
回路123にインクリメント要求を出す。インクリメン
ト回路123は、インクリメント要求があった場合には
ポインタ情報レジスタ122の内容を、インクリメント
する。メッセージ解釈/実行部50は、インクリメント
した場合には、再び制御線153よりビット演算器12
0に、ロック情報レジスタ121のポインタ情報レジス
タ122が指すビットの、テストを要求する。以上の動
作を、テスト結果がアンロック状態となるまで繰り返
す。m回繰り返しても、アンロック状態がない場合に
は、メッセージ解釈/実行部50は異常終了となる。
【0028】アンロック状態がプロセッサ215につい
て見つかると、メッセージ解釈/実行部50は、制御線
154により、セレクタ118の出力をポインタ情報レ
ジスタ122側のデータとする。セレクタ118の出力
により、マルチプレクサ117は、プロセッサ番号レジ
スタ110〜114のうち、ポインタ情報レジスタ12
2の指すものの内容、つまりリプレース処理で抹消する
べきプロセッサ215のID番号を出力する。この出力
は、データ線140よりメッセージ解釈/実行部50に
送られる。これによって、メッセージ解釈/実行部50
は、リプレース処理で抹消すべきプロセッサのID番号
を入手する。
【0029】次に、メッセージ解釈/実行部50は、制
御線187を使い、ラインディレクトリ制御回路85の
セレクタ176を、ライン番号発生器175側に切り替
える。また、メッセージ解釈/実行部50は、アドレス
線186より、ページ番号をミキサ178に送る。さら
に、メッセージ解釈/実行部50は、制御線188によ
り、ライン番号発生器175を起動する。
【0030】ライン番号発生器175よりでたライン番
号は、セレクタ176を通り、ミキサ178でページ番
号とミクスされ、アドレス線195よりラインディレク
トリ90に出力される。ラインディレクトリ90の情報
は、ライン情報レジスタ179に入る。ライン番号発生
器175は、ビット演算器180にテスト要求信号を入
力する。ここで、ビット演算器180には、データ線1
61を通り、ページディレクトリ制御回路65のポイン
タ情報レジスタ122の内容、つまり、リプレースする
プロセッサ215のページディレクトリ70における位
置が入力されている。これにより、ビット演算器は、リ
プレースすべきプロセッサ215が、ライン番号発生器
175が出力するラインのラインディレクトリ90に記
憶されているかどうかを調べることになる。調べた結
果、記憶されていた場合には、ライン番号ラッチ177
に、出力要求信号を送る。出力要求信号を受けたライン
番号ラッチ177は、セレクタ176の出力を、データ
線181より、メッセージ解釈/実行部50に出力す
る。ライン番号発生器175は、ライン番号が一巡する
まで、新たなライン番号を発生させ、ビット演算器18
0にテスト要求信号を出力する。これにより、メッセー
ジ解釈/実行部50は、リプレース処理で抹消すべきプ
ロセッサ215がキャッシュメモリ220に登録してい
た、そのページのラインの番号全てを入手する。
【0031】リプレース処理で抹消すべきプロセッサ2
15のID番号、およびャッシュメモリ220に登録し
ていたそのページのラインの番号全てを入手した後、メ
ッセージ解釈/実行部50は、メッセージ組立回路5
5、ネットワーク1500、メッセージ分解回路23
5、プロセッサネットワーク接続回路225を介し、プ
ロセッサ215にそのラインのフラッシュを要求する。
プロセッサ215より、プロセッサネットワーク接続回
路225、メッセージ組立回路230、ネットワーク1
500、メッセージ分解回路60を介し、メッセージ解
釈/実行部50までフラッシュデータが送出されてきた
ら、メッセージ解釈/実行部50はそのデータを共有メ
モリ45に書き戻す。
【0032】その後、データ線157を使い、リプレー
スすべきプロセッサ215のID番号を、ページディレ
クトリ制御回路65のプロセッサ番号レジスタ101に
入力する。プロセッサ番号レジスタ110〜114には
そのページのページディレクトリ70の情報が入ってい
るので、比較器105〜109により比較されること
で、データ線160には、リプレースすべきプロセッサ
215の、ページディレクトリ70における位置が出力
される。ラインディレクトリ制御回路85のビット演算
器180には、データ線160により、リプレースすべ
きプロセッサ215の、ページディレクトリ70におけ
る位置が入力される。この状態で、アドレス線185の
信号が、セレクタ176より出力されるように、メッセ
ージ解釈/実行部50より制御信号187を出す。
【0033】更に、メッセージ解釈/実行部50は、フ
ラッシュされたライン番号を、アドレス線185、セレ
クタ176を通し、ミキサ178に送る。アドレス線1
86にはそのページ番号が入力されているので、ライン
ディレクトリ90には、アドレス線195よりフラッシ
ュの終了したライン番号が入力される。ラインディレク
トリ90からは、そのラインの情報が、データ線197
を通り、ラインディレクトリレジスタ179に入力され
る。ここで、メッセージ解釈/実行部50から制御線1
90で、リセット要求を出力する。ビット演算器180
には、データ線160より、リプレースすべきプロセッ
サ215の、ページディレクトリ70における位置が入
力されているので、プロセッサ215の記憶がラインデ
ィレクトリレジスタ179より抹消される。抹消された
データをラインディレクトリ90に、データ線197を
通し、書き戻す。メッセージ解釈/実行部50は、フラ
ッシュされたすべてのラインについて、上記の抹消処理
を繰り返す。
【0034】ラインディレクトリ90からのプロセッサ
215の抹消処理の終了後、メッセージ解釈/実行部5
0は、新たにページディレクトリ70に記憶したいプロ
セッサ15のID番号を、データ線157を通して、ペ
ージディレクトリ制御回路のプロセッサ番号レジスタ1
01に入れる。ここで、ポインタ情報レジスタ122
は、プロセッサ215の記憶されているプロセッサ番号
レジスタ110〜114を指している。この状態で、メ
ッセージ解釈/実行部が、制御信号150により、デマ
ルチプレクサ119に出力要求信号を出す。デマルチプ
レクサは、プロセッサ番号レジスタ101に記憶されて
いるプロセッサ15のID番号を、プロセッサ215が
記憶されていたプロセッサ番号レジスタ110〜114
に出力する。プロセッサ番号レジスタ110〜114
を、データ線170を通して、ページディレクトリ70
に書き戻す。以上により、新たにプロセッサ15を、ペ
ージディレクトリ70に記憶する動作が終了する。
【0035】<3> プロセッサ検索2200、全プロ
セッサ検索2300 プロセッサ検索2200は、プロセッサ15、215、
1015のうち、あるラインをキャッシュメモリ20、
220、1020に登録しているものを、1つだけ調べ
る動作であり、全プロセッサ検索2300は全て調べる
動作である。メッセージ解釈/実行部50は、アドレス
線173により、ページディレクトリ70に調査するペ
ージ番号を通達する。調査するページのページディレク
トリ情報は、データ線170を通り、プロセッサ番号レ
ジスタ110〜114に記憶される。次に、メッセージ
解釈/実行部50は、制御線187を使い、ラインディ
レクトリ制御回路85のセレクタ176を、アドレス線
185側に切り替える。また、メッセージ解釈/実行部
50は、アドレス線186より、ページ番号をミキサ1
78に送る。また、メッセージ解釈/実行部50は、調
査したいライン番号を、アドレス線185、セレクタ1
76を通し、ミキサ178に送る。ミキサ178でペー
ジ番号とライン番号がミクスされ、アドレス線195を
通りラインディレクトリ90に出力される。
【0036】ラインディレクトリ90の情報は、ライン
情報レジスタ179に入る。ページディレクトリ制御回
路65のプライオリティエンコーダ124には、ライン
情報レジスタ179の情報が入力される。プライオリテ
ィエンコーダ124は、ライン情報に記憶されているペ
ージディレクトリ上のプロセッサ15、215、101
5の位置情報のうち、1つをセレクタ118に出力す
る。メッセージ解釈/実行部50は、制御線155を使
い、セレクタ118をプライオリティエンコーダ124
側に切り換える。これにより、プロセッサ番号レジスタ
110〜114に記憶されているプロセッサID番号の
うち、プライオリティエンコーダ124の選択した位置
のプロセッサ番号が、マルチプレクサ117によりメッ
セージ解釈/実行部50に送られる。全てのプロセッサ
番号が必要な全プロセッサ検索2300の場合には、プ
ライオリティエンコーダ124への制御信号155に、
メッセージ解釈/実行部50よりプライオリティ変更要
求を出す。プライオリィティを一巡変更すれば、メッセ
ージ解釈/実行部50は全プロセッサを入手できる。以
上により、あるラインをキャッシュメモリ20、22
0、1020に登録しているものを、1つまたは全て調
べる動作が終了する。
【0037】<4>ラインディレクトリ記憶2400、
ラインディレクトリ抹消2500 ラインディレクトリ記憶2400とは、あるラインのラ
インディレクトリ90より、プロセッサ15、215、
1015のいずれかを記憶する動作であり、ラインディ
レクトリ抹消2500とは記憶を抹消する動作である。
メッセージ解釈/実行部50は、データ線157より、
ページディレクトリ制御回路65内のプロセッサ番号レ
ジスタ101に、プロセッサ15のID番号を記憶させ
る。また、メッセージ解釈/実行部50は、アドレス線
173により、ページディレクトリ70に調査するペー
ジ番号を通達する。調査するページのページディレクト
リ情報は、データ線170を通り、プロセッサ番号レジ
スタ110〜114に記憶される。プロセッサ番号レジ
スタ101の内容と、プロセッサ番号レジスタ110〜
114の内容とが、比較器105〜109において比較
され、結果がすべて不一致であった場合には、データ線
145より不一致がメッセージ解釈/実行部50に通達
され、異常終了となる。一致があった場合には、データ
線160より、記憶/抹消すべきプロセッサ15、21
5、1015の記憶/抹消位置が、ラインディレクトリ
制御回路85のビット演算器180に入力される。次
に、メッセージ解釈/実行部50は、制御線187を使
い、ラインディレクトリ制御回路85のセレクタ176
を、アドレス線185側に切り替える。また、メッセー
ジ解釈/実行部50は、アドレス線186より、ページ
番号をミキサ178に送る。また、メッセージ解釈/実
行部50は、記憶/抹消したいライン番号を、アドレス
線185、セレクタ176を通し、ミキサ178に送
る。ミキサ178でページ番号とライン番号がミクスさ
れ、アドレス線195を通りラインディレクトリ90に
出力される。ラインディレクトリ90の情報は、ライン
情報レジスタ179に入る。この状態で、メッセージ解
釈/実行部50よりビット演算器180まで、制御信号
189により記憶要求を出すことで記憶が、制御信号1
90により抹消要求を出すことで抹消が実行される。最
後に、ライン情報レジスタ179より、ラインディレク
トリ90に情報を書き戻す。以上により、あるラインの
ラインディレクトリ90より、プロセッサ15、21
5、1015のいずれかを記憶/抹消する動作が終了す
る。
【0038】<5>ロックビットセット、ロックビット
リセット ロックビットセットとは、あるページのロックビット7
5を特定のプロセッサ15、215、1015について
ロック状態にする動作であり、ロックビットリセットと
はアンロック状態にする動作である。メッセージ解釈/
実行部50は、データ線157より、ページディレクト
リ制御回路65内のプロセッサ番号レジスタ101に、
プロセッサ15のID番号を記憶させる。また、メッセ
ージ解釈/実行部50は、アドレス線173により、ペ
ージディレクトリ70、ロックビット75にページ番号
を通達する。ページディレクトリ情報はデータ線170
を通りプロセッサ番号レジスタ110〜114に、ロッ
ク情報はデータ線171を通りロック情報レジスタ12
1に記憶される。プロセッサ番号レジスタ101の内容
と、プロセッサ番号レジスタ110〜114の内容と
が、比較器105〜109において比較され、結果がす
べて不一致であった場合には、データ線145より不一
致がメッセージ解釈/実行部50に通達され、異常終了
となる。一致があった場合には、記憶/抹消すべきプロ
セッサ15、215、1015の記憶/抹消位置が、比
較器105〜109より、ページディレクトリ制御回路
65のビット演算器120に入力される。この状態で、
メッセージ解釈/実行部50よりビット演算器120ま
で、制御信号151によりロック要求を出すことでロッ
クが、制御信号152により抹消要求を出すことで抹消
が実行される。最後に、ロック情報レジスタ121よ
り、ロックビット75に情報を書き戻す。以上により、
あるページのロックビット75を特定のプロセッサ1
5、215、1015についてロック/アンロック状態
にする動作が終了する。
【0039】以上により、本発明方式による、プロセッ
サ15、215、1015によるロード、ストア、フラ
ッシュ実行時のメモリ制御機構の動作の説明を終了す
る。以上述べた回路、制御方法により、ページディレク
トリ70、ロックビット75、ページディレクトリポイ
ンタ80、ラインディレクトリ90を持つ、共有メモリ
型並列計算機が実現する。
【0040】
【発明の効果】本発明によれば、共有メモリに設けられ
た、キャッシュメモリの一致制御を行うディレクトリの
容量を、従来に比べ大幅に低減することができる。
【図面の簡単な説明】
【図1】実施例の共有メモリ機構を持った並列計算機の
構成を示す図である。
【図2】実施例の共有メモリ機構におけるページディレ
クトリ制御回路を示す図である。
【図3】実施例の共有メモリ機構におけるラインディレ
クトリ制御回路を示す図である。
【図4】実施例の共有メモリ機構におけるメッセージ解
釈/実行部のロードコマンドに対する処理のフローチャ
ートを示す図である。
【図5】実施例の共有メモリ機構におけるメッセージ解
釈/実行部のインバリデートコマンドに対する処理のフ
ローチャートを示す図である。
【図6】実施例の共有メモリ機構におけるメッセージ解
釈/実行部のフラッシュコマンドに対する処理のフロー
チャートを示す図である。
【図7】並列計算機のキャッシュメモリにおけるライン
の記憶状態を示す図である。
【図8】リミテッドポインタ方式のディレクトリを示す
図である。
【図9】実施例の共有メモリ機構を持った並列計算機の
ディレクトリを示す図である。
【符号の説明】
0、200、1000 システムユニット 10、210、1010 プロセッサノード 15、215、1015 プロセッサ 20、220、1020 キャッシュメモリ 25、225、1025 プロセッサネットワーク接続
回路 27 分散メモリマップ 30、55、230、1030 メッセージ組立回路 35、60、235、1035 メッセージ分解回路 40、240、1040 メモリノード 45、245、1045 共有メモリ 50 メッセージ解釈/実行部 65 ページディレクトリ制御回路 70 ページディレクトリ 75 ロックビット 80 ページディレクトリポインタ 85 ラインディレクトリ制御回路 90 ラインディレクトリ 92 フルマップディレクトリ 94 リミテッドポインタディレクトリ 96 ディレクトリバリッドビット 101 プロセッサ番号レジスタ 105〜109 比較器 110〜114 プロセッサ番号レジスタ 117 マルチプレクサ 118 セレクタ 119 デマルチプレクサ 120 ビット演算器 121 ロック情報レジスタ 122 ポインタ情報レジスタ 123 インクリメント回路 124 プライオリティ・エンコーダ 175 ライン番号発生器 176 セレクタ 177 ライン番号ラッチ 178 ミキサ 179 ライン情報レジスタ 180 ビット演算器 1500 ネットワーク
フロントページの続き (56)参考文献 特開 昭58−9272(JP,A) 特開 平6−243035(JP,A) 特開 平4−302044(JP,A) 特開 平3−235143(JP,A) 寺澤卓也、天野英晴、工藤知宏,計算 機の記憶システム−4 マルチプロセッ サの記憶システム(1),情報処理,日 本,社団法人情報処理学会,1993年 1 月15日,第34巻,第1号,p.96−105 森眞一郎、他7名,分散共有メモリ型 マルチプロセッサ「阿修羅」の概要,情 報処理学会研究報告,日本,社団法人情 報処理学会,1992年 6月12日,第92 巻,第48号,(92−ARC−94),p. 41−48 寺澤卓也、天野英晴、工藤知宏,計算 機の記憶システム−4 マルチプロセッ サの記憶システム(2),情報処理,日 本,社団法人情報処理学会,1993年 2 月15日,第34巻,第2号,p.233−243 近藤仁志,マルチCPUシステムの活 用研究 マルチCPUシステム入門−複 数CPUで一つの処理を行うために−, インターフェース,日本,CQ出版株式 会社,1993年 2月 1日,第19巻,第 2号,p.84−115 坂井修一,海外の並列処理研究動向 MITにおける並列処理研究の現状,情 報処理,日本,社団法人情報処理学会, 1992年 6月15日,第33巻,第6号, p.698−704 Daniel Lenoski et al,共有メモリ型超並列マシンDa sh,プロトタイプが完成(下),日経 エレクトロニクス,日本,日経BP社, 1992年 8月31日,第562号,p.171− 188 漆原茂,DASH:スケーラブル共有 メモリ型マルチプロセッサ,情報処理, 日本,社団法人情報処理学会,1992年 2月15日,第33巻,第2号,p.143− 152 David J.Lilja,Cac he Coherence in La rge−Scale Shared−M emor Multiprocesso rs:Issues and Comp arisons,ACM Comput ing Surveys,ACM,1993 年 9月,Vol.25,No.3,pa ges:303−338 David J.Lilja et al,Improving Memor y Utilization in C ache Coherence Dir ectories,IEEE Tran sactions on Parall el and Distributed Sysytems,IEEE,1993年 10月,Vol.4,No.10,page s:1130−1146 Milo Tomasevic et al,A SURVEY OF HA RDWARE SOLUTIONS F OR MAINTENANCE OF CACHE COHERENCE IN SHARED MEMORY MUL TIPROCESSORS,Proce edings of the Twnt y−Sixth Hawaii Int ernationa Conferen ce on System Scien ces,米国,IEEE,1993年 1月 8日,pages:863−872 Yeong−Chang Maa e t al,A Hierarchica l Directory Scheme for Large−Scale C ache−Coherent Mult iprocessors,Procee dings of the Paral lel Sixth Internat ional Processing S ymposium,IEEE,1992年, pages:43−46 David Chaiken et al,Directry−Based Cache Coherence in Large−Scale Multi processors,Compute r,IEEE,1990年 6月,page s:49−58 Brian W.O’Krafka et al,An Empirical Evaluation of Two Memory−Efficient Directory Methods, Proceedings of the 17th Annual Intern ational Symposium on Computer Archit ecture,IEEE,1990年,pa ges:138−147 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 12/08 - 12/12

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサと該各プロセッサがア
    クセスできる複数の分散型の共有メモリを備え、前記各
    プロセッサは共有メモリのデータをライン単位で登録す
    るキャッシュメモリを備える並列計算機において、 前記共有メモリは、該共有メモリの各ページ毎に用意さ
    れ、該ページの一部または全てのラインをキャッシュメ
    モリに登録したプロセッサのプロセッサIDをポインタ
    として記憶するページディレクトリと、共有メモリの各
    ライン毎に用意され、該ラインをキャッシュメモリに登
    録したプロセッサのプロセッサIDのページディレクト
    リ上での位置をビットマップ形式で記憶するラインディ
    レクトリとを備えることを特徴とする並列計算機。
  2. 【請求項2】 複数のプロセッサと該各プロセッサがア
    クセスできる複数の分散型の共有メモリを備え、前記各
    プロセッサは共有メモリのデータをライン単位で登録す
    るキャッシュメモリを備える並列計算機において、 前記共有メモリは、該共有メモリの各ページ毎に用意さ
    れ、該ページの一部または全てのラインをキャッシュメ
    モリに登録したプロセッサのプロセッサIDをポインタ
    として記憶するページディレクトリと、共有メモリの各
    ライン毎に用意され、該ラインをキャッシュメモリに登
    録したプロセッサのプロセッサIDのページディレクト
    リ上での位置をポインタ形式で記憶するラインディレク
    トリとを備えることを特徴とする並列計算機。
  3. 【請求項3】 請求項1または請求項2記載の並列計算
    機において、 前記複数の共有メモリと前記複数のプロセッサとをネッ
    トワークで接続したことを特徴とする並列計算機。
  4. 【請求項4】 請求項1または請求項2記載の並列計算
    機において、 前記共有メモリと前記プロセッサとによりノードを構成
    し、複数の前記ノードをネットワークで接続したことを
    特徴とする並列計算機。
  5. 【請求項5】 請求項1または請求項2記載の並列計算
    機において、 前記ページディレクトリ毎に、該ページディレクトリに
    記憶されているプロセッサのうち、記憶された時間が最
    も早いプロセッサを指示するページディレクトリポイン
    タを備えることを特徴とする並列計算機。
  6. 【請求項6】 請求項1または請求項2記載の並列計算
    機において、 前記ページディレクトリに記憶されている各プロセッサ
    対応に、該ページディレクトリからのプロセッサの記憶
    抹消の可否を表すロックビットを備えることを特徴とす
    る並列計算機。
JP01990594A 1994-01-20 1994-01-20 並列計算機 Expired - Fee Related JP3410535B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01990594A JP3410535B2 (ja) 1994-01-20 1994-01-20 並列計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01990594A JP3410535B2 (ja) 1994-01-20 1994-01-20 並列計算機

Publications (2)

Publication Number Publication Date
JPH07210526A JPH07210526A (ja) 1995-08-11
JP3410535B2 true JP3410535B2 (ja) 2003-05-26

Family

ID=12012234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01990594A Expired - Fee Related JP3410535B2 (ja) 1994-01-20 1994-01-20 並列計算機

Country Status (1)

Country Link
JP (1) JP3410535B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809536A (en) * 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
KR100700510B1 (ko) * 2000-01-04 2007-03-28 엘지전자 주식회사 공유 메모리 다중 프로세서 시스템 및 이를 위한 디렉토리압축방법
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
JP2005250830A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プロセッサおよび主記憶共有マルチプロセッサ
JP5435132B2 (ja) * 2010-07-12 2014-03-05 富士通株式会社 情報処理システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS589272A (ja) * 1981-07-08 1983-01-19 Hitachi Ltd アドレス変換索引バツフアの無効化処理方式
JPH03235143A (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
JP3226557B2 (ja) * 1991-03-29 2001-11-05 株式会社東芝 マルチプロセッサシステム
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

Non-Patent Citations (13)

* Cited by examiner, † Cited by third party
Title
Brian W.O’Krafka et al,An Empirical Evaluation of Two Memory−Efficient Directory Methods,Proceedings of the 17th Annual International Symposium on Computer Architecture,IEEE,1990年,pages:138−147
Daniel Lenoski et al,共有メモリ型超並列マシンDash,プロトタイプが完成(下),日経エレクトロニクス,日本,日経BP社,1992年 8月31日,第562号,p.171−188
David Chaiken et al,Directry−Based Cache Coherence in Large−Scale Multiprocessors,Computer,IEEE,1990年 6月,pages:49−58
David J.Lilja et al,Improving Memory Utilization in Cache Coherence Directories,IEEE Transactions on Parallel and Distributed Sysytems,IEEE,1993年10月,Vol.4,No.10,pages:1130−1146
David J.Lilja,Cache Coherence in Large−Scale Shared−Memor Multiprocessors:Issues and Comparisons,ACM Computing Surveys,ACM,1993年 9月,Vol.25,No.3,pages:303−338
Milo Tomasevic et al,A SURVEY OF HARDWARE SOLUTIONS FOR MAINTENANCE OF CACHE COHERENCE IN SHARED MEMORY MULTIPROCESSORS,Proceedings of the Twnty−Sixth Hawaii Internationa Conference on System Sciences,米国,IEEE,1993年 1月 8日,pages:863−872
Yeong−Chang Maa et al,A Hierarchical Directory Scheme for Large−Scale Cache−Coherent Multiprocessors,Proceedings of the Parallel Sixth International Processing Symposium,IEEE,1992年,pages:43−46
坂井修一,海外の並列処理研究動向 MITにおける並列処理研究の現状,情報処理,日本,社団法人情報処理学会,1992年 6月15日,第33巻,第6号,p.698−704
寺澤卓也、天野英晴、工藤知宏,計算機の記憶システム−4 マルチプロセッサの記憶システム(1),情報処理,日本,社団法人情報処理学会,1993年 1月15日,第34巻,第1号,p.96−105
寺澤卓也、天野英晴、工藤知宏,計算機の記憶システム−4 マルチプロセッサの記憶システム(2),情報処理,日本,社団法人情報処理学会,1993年 2月15日,第34巻,第2号,p.233−243
森眞一郎、他7名,分散共有メモリ型マルチプロセッサ「阿修羅」の概要,情報処理学会研究報告,日本,社団法人情報処理学会,1992年 6月12日,第92巻,第48号,(92−ARC−94),p.41−48
漆原茂,DASH:スケーラブル共有メモリ型マルチプロセッサ,情報処理,日本,社団法人情報処理学会,1992年 2月15日,第33巻,第2号,p.143−152
近藤仁志,マルチCPUシステムの活用研究 マルチCPUシステム入門−複数CPUで一つの処理を行うために−,インターフェース,日本,CQ出版株式会社,1993年 2月 1日,第19巻,第2号,p.84−115

Also Published As

Publication number Publication date
JPH07210526A (ja) 1995-08-11

Similar Documents

Publication Publication Date Title
JP2819982B2 (ja) 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US6510496B1 (en) Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5606686A (en) Access control method for a shared main memory in a multiprocessor based upon a directory held at a storage location of data in the memory after reading data to a processor
US6289419B1 (en) Consistency control device merging updated memory blocks
US7120651B2 (en) Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US6154816A (en) Low occupancy protocol for managing concurrent transactions with dependencies
EP0009938B1 (en) Computing systems having high-speed cache memories
JP2809961B2 (ja) マルチプロセッサ
US5900020A (en) Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
US6108752A (en) Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency
US6094686A (en) Multi-processor system for transferring data without incurring deadlock using hierarchical virtual channels
CN1156771C (zh) 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统
JPH10240707A (ja) 主記憶共有型マルチプロセッサ
JPH11282820A (ja) スイッチをベースとするマルチプロセッサシステムに使用するための順序サポート機構
JPH0576060B2 (ja)
US6587922B2 (en) Multiprocessor system
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
US6363458B1 (en) Adaptive granularity method for integration of fine and coarse communication in the distributed shared memory system
JP3410535B2 (ja) 並列計算機
US5010475A (en) Consistency ensuring system for the contents of a cache memory
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US6944721B2 (en) Asynchronous non-blocking snoop invalidation
JPH0816474A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040318

A072 Dismissal of procedure

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20040706

LAPS Cancellation because of no payment of annual fees