JPH0922381A - Device for guaranteeing data consistency between processors - Google Patents

Device for guaranteeing data consistency between processors

Info

Publication number
JPH0922381A
JPH0922381A JP7194358A JP19435895A JPH0922381A JP H0922381 A JPH0922381 A JP H0922381A JP 7194358 A JP7194358 A JP 7194358A JP 19435895 A JP19435895 A JP 19435895A JP H0922381 A JPH0922381 A JP H0922381A
Authority
JP
Japan
Prior art keywords
cluster
directory
cache
main memory
clusters
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.)
Granted
Application number
JP7194358A
Other languages
Japanese (ja)
Other versions
JP3754112B2 (en
Inventor
Hideya Akashi
英也 明石
Toshiaki Tarui
俊明 垂井
Naonobu Sukegawa
直伸 助川
Keimei Fujii
啓明 藤井
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 JP19435895A priority Critical patent/JP3754112B2/en
Publication of JPH0922381A publication Critical patent/JPH0922381A/en
Application granted granted Critical
Publication of JP3754112B2 publication Critical patent/JP3754112B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To prevent access from concentrating to a specified directory management node by holding directories for every main memory block and cache line and providing mode fields for indicating a form. SOLUTION: A main memory unit 103 is composed of plural memory blocks 106, and a main memory directory 107 is provided for every memory block 106. The mode fields 110 are provided inside the main memory directories 107. A cache memory 102 is composed of the cache lines 108 in the same size as the memory blocks 106 and a cache directory 109 is provided for every cache line 108. The mode fields are provided inside the cache directories 109. A cache control circuit 104 controls the cache memory 102 and the cache directories 109. A main memory control circuit 105 controls the read and write of the main memory unit 103 and the main memory directories 107.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、複数計算機で共有する
データの一貫性を保証するプロセッサ間データ一貫性保
証装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an inter-processor data consistency guarantee device that guarantees consistency of data shared by a plurality of computers.

【0002】[0002]

【従来の技術】複数のプロセッサを結合し並列処理を行
う並列計算機は、プロセッサ台数に応じた計算の高速化
を図ることが可能であるため、重要な技術となってい
る。並列計算機において、各プロセッサが相互に並列計
算機上の全主記憶をアクセスし、これをキャッシングす
る場合、プロセッサ間でのキャッシュの一貫性の保証が
重要な課題となる。
2. Description of the Related Art A parallel computer in which a plurality of processors are connected to perform parallel processing is an important technique because it can increase the speed of calculation according to the number of processors. In a parallel computer, when each processor mutually accesses and caches all main memory on the parallel computer, guaranteeing cache coherency between the processors is an important issue.

【0003】キャッシュの一貫性の保証とは、各プロセ
ッサが、それぞれ独立に主記憶の内容を自プロセッサの
キャッシュメモリ上に保持するときに、全プロセッサに
対して主記憶の内容が同一に見えることを保証すること
である。
Guaranteeing cache coherency means that when each processor independently holds the contents of the main memory in the cache memory of its own processor, the contents of the main memory look the same to all processors. Is to guarantee.

【0004】例えば、プロセッサAおよびプロセッサB
が主記憶上のブロックMをキャッシングしている場合、
プロセッサCがブロックMに対して書き込みを行うと、
プロセッサAおよびBのキャッシュメモリの内容は主記
憶装置上の当該ブロックMの内容と異なることとなり一
貫性が取れなくなる。この場合、キャッシュの一貫性を
保証するためには、プロセッサAおよびBの対応するキ
ャッシュラインを更新するか、無効化する必要がある。
For example, processor A and processor B
Is caching block M in main memory,
When the processor C writes to the block M,
The contents of the cache memories of the processors A and B are different from the contents of the block M on the main storage device, which makes the consistency inconsistent. In this case, the corresponding cache lines of processors A and B need to be updated or invalidated to guarantee cache coherency.

【0005】バス結合型並列計算機の場合、キャッシュ
の一貫性を保つ方法としてスヌープ方式が使用される。
スヌープ方式では、各プロセッサのキャッシュ制御装置
が、バス上に出力される全ての書き込み要求のアドレス
を監視する。そして、他プロセッサが、自プロセッサの
キャッシュに保持しているメモリブロック(主記憶上の
ブロックを単にメモリブロックと呼ぶこととする)に対
する書き込み要求をバスに出力すると、当該キャッシュ
ラインを無効化する。これにより、次回に当該メモリブ
ロックにアクセスを行うと、当該メモリブロックはすで
にキャッシュから無効化されているため、主記憶を直接
読み出すこととなり、最新のデータをアクセスすること
ができる。スヌープ方式では、他プロセッサから自プロ
セッサの保持するメモリブロックに対して書き込みを行
う際、当該キャッシュラインを無効化する代わりに、自
プロセッサのキャッシュラインを最新データに更新する
方式も提案されている。
In the case of a bus-coupled parallel computer, the snoop method is used as a method of maintaining cache coherency.
In the snoop method, the cache control device of each processor monitors the addresses of all write requests output on the bus. Then, when the other processor outputs a write request for a memory block (a block on the main memory is simply called a memory block) held in the cache of the own processor to the bus, the cache line is invalidated. As a result, when the memory block is accessed next time, the memory block has already been invalidated from the cache, so that the main memory is directly read and the latest data can be accessed. In the snoop method, when writing from another processor to a memory block held by the own processor, a method of updating the cache line of the own processor with the latest data instead of invalidating the cache line is also proposed.

【0006】バス結合型並列計算機は、プロセッサ台数
が増加すると、メモリアクセスがバスに集中するため、
十数プロセッサ程度の規模がプロセッサ数の限界とな
る。
In the bus-coupled parallel computer, memory access concentrates on the bus as the number of processors increases.
The scale of about a dozen processors is the limit of the number of processors.

【0007】さらにプロセッサ台数を増やす場合、主記
憶上のキャッシングの対象となるブロック毎にディレク
トリと呼ばれる構造体を付加することにより、各プロセ
ッサのキャッシュの一貫性を保証する方式が用いられ
る。
When the number of processors is further increased, a method of guaranteeing cache coherency of each processor is used by adding a structure called a directory for each block to be cached on the main memory.

【0008】ディレクトリは、当該メモリブロック(そ
のディレクトリに対応するメモリブロック)をキャッシ
ングした全プロセッサのプロセッサ番号を保持する領域
である。メモリブロックに対して書き込み要求が到着す
ると、ディレクトリで示された全プロセッサのキャッシ
ュラインに対して書き込みを反映するか無効化すること
によりキャッシュの一貫性を保証する。
The directory is an area for holding the processor numbers of all processors that have cached the memory block (memory block corresponding to the directory). When a write request arrives for a memory block, cache coherency is guaranteed by reflecting or invalidating the write to the cache line of all processors indicated in the directory.

【0009】従来、プロセッサ台数が比較的少ない場合
には、ディレクトリ方式として、フルマップディレクト
リが主に採用されている。図14に、フルマップディレ
クトリ方式を用いた並列計算機の構成の概要およびその
動作を示す。
Conventionally, when the number of processors is relatively small, a full map directory is mainly adopted as a directory system. FIG. 14 shows an outline of the configuration of a parallel computer using the full map directory system and its operation.

【0010】図14の並列計算機では、主記憶装置30
がネットワーク20を介して複数のプロセッサ10a〜
10dに結合されている。各プロセッサ10a〜10d
は、それぞれ、キャッシュメモリ12a〜12dを持
つ。また、主記憶装置30は、複数のメモリブロック3
1で構成され、各メモリブロック31毎にディレクトリ
32が付加されている。
In the parallel computer of FIG. 14, the main storage device 30
Is connected to the plurality of processors 10a through the network 20.
It is connected to 10d. Each processor 10a-10d
Have cache memories 12a to 12d, respectively. In addition, the main storage device 30 includes a plurality of memory blocks 3
1 and a directory 32 is added to each memory block 31.

【0011】ディレクトリ32は、プロセッサ台数分の
ビット列(各ビットは各プロセッサに対応している)か
らなる。ディレクトリ32の各ビットは、各プロセッサ
10a〜10dに付加されたキャッシュが、対応するメ
モリブロック31をキャッシングしたときに1となり、
キャッシングしていないときには0となる。図14で
は、プロセッサ10aおよび10dが、キャッシュメモ
リ12aおよび12d上にメモリブロックMをキャッシ
ングしている。したがって、メモリブロックMに対応す
るディレクトリ32においては、プロセッサ10aおよ
び10dに対応するビットが1となり、プロセッサ10
bおよび10cに対応するビットが0となっている。
The directory 32 is composed of bit strings corresponding to the number of processors (each bit corresponds to each processor). Each bit of the directory 32 becomes 1 when the cache added to each of the processors 10a to 10d caches the corresponding memory block 31,
It becomes 0 when not caching. In FIG. 14, the processors 10a and 10d cache the memory block M on the cache memories 12a and 12d. Therefore, in the directory 32 corresponding to the memory block M, the bit corresponding to the processors 10a and 10d becomes 1, and the processor 10a
The bits corresponding to b and 10c are 0.

【0012】この状態で、例えばプロセッサ10bがメ
モリブロックMに対して書き込みを行うと、その書き込
みアクセスはネットワーク20を介して主記憶装置30
に送信される。主記憶装置30は、書き込みデータをメ
モリブロックMに書き込むと共に、ディレクトリ32を
見てメモリブロックMをキャッシングしているプロセッ
サはプロセッサ10aおよびプロセッサ10dであるこ
とを知り、キャッシュ12aおよび12dに対して無効
化要求を発行する。無効化要求を受けたキャッシュ12
aおよび12dは、メモリブロックMのコピーをキャッ
シュメモリ内から抹消する。これにより、以降にプロセ
ッサ10aまたはプロセッサ10bがメモリブロックM
に読み出しアクセスを行うと、キャッシュ12aおよび
12d内にはメモリブロックMのコピーが存在せず、主
記憶装置30に対してアクセスすることとなり、最新デ
ータを読み出すことができる。
In this state, for example, when the processor 10b writes to the memory block M, the write access is performed via the network 20 to the main storage device 30.
Sent to. The main storage device 30 writes the write data to the memory block M, and when it looks at the directory 32 and finds that the processors caching the memory block M are the processor 10a and the processor 10d, it invalidates the caches 12a and 12d. Issue a request to activate. The cache 12 that received the invalidation request
a and 12d delete the copy of the memory block M from the cache memory. As a result, the processor 10a or the processor 10b will be replaced by the memory block
When a read access is performed to the main memory device 30, a copy of the memory block M does not exist in the caches 12a and 12d, and the main memory device 30 is accessed, so that the latest data can be read.

【0013】プロセッサ台数がさらに多くなると、フル
マップディレクトリではディレクトリに必要なメモリ量
の全メモリ量に対する割合が大きくなる。プロセッサ数
をPとするとメモリブロック当たりPビットのディレク
トリが必要となる。メモリブロックは、通常64バイト
から1024バイト程度の大きさであり、フルマップデ
ィレクトリで数百プロセッサ以上の並列計算機を構成す
ると、ディレクトリはメモリブロックあたり十数バイト
から百バイト程度となり実用的でない。
As the number of processors increases, the ratio of the amount of memory required for the directory to the total amount of memory in the full map directory increases. If the number of processors is P, a P-bit directory is required for each memory block. A memory block is usually about 64 bytes to 1024 bytes in size, and if a full-mapped directory constitutes a parallel computer with several hundreds of processors or more, the directory is not practical because the number of bytes per memory block is about ten to 100 bytes.

【0014】このため、数百プロセッサ以上の並列計算
機のディレクトリ方式として、例えば「Computer Archi
tecture News Vol.19, No.5, 1991,『Two Economical D
irectory Schemes for Large-Scale Cache Coherent Mu
ltiprocessors』, Yeong-Chang Maaほか」には、ツリー
ディレクトリ方式および階層型フルマップディレクトリ
方式が提案されている。
Therefore, as a directory system of a parallel computer having several hundred processors or more, for example, "Computer Archi"
tecture News Vol.19, No.5, 1991, `` Two Economical D
irectory Schemes for Large-Scale Cache Coherent Mu
Ltiprocessors ”, Yeong-Chang Maa et al.” proposed a tree directory method and a hierarchical full-map directory method.

【0015】ツリーディレクトリ方式は、メモリブロッ
クおよびキャッシュライン毎に複数のプロセッサ番号を
記憶するディレクトリを設け、これを木構造に連結する
ことにより、当該メモリブロックをキャッシングしてい
る全プロセッサを記録する方式である。例えば、メモリ
ブロックおよびキャッシュライン毎に4つのプロセッサ
番号を記憶するディレクトリを設けるとする。あるメモ
リブロックMのディレクトリには、当該メモリブロック
Mをキャッシングしている4つのプロセッサのプロセッ
サ番号が記憶されている。さらに、その4つのプロセッ
サのそれぞれにおいて、当該メモリブロックMをキャッ
シングしているキャッシュラインのディレクトリには、
やはり当該メモリブロックMをキャッシングしている4
つのプロセッサのプロセッサ番号が記憶されている。以
下同様にして、当該メモリブロックMをキャッシングし
ている全プロセッサを木構造の形式で記録することがで
きる。
In the tree directory system, a directory for storing a plurality of processor numbers is provided for each memory block and cache line, and by connecting this to a tree structure, all the processors caching the memory block are recorded. Is. For example, assume that a directory for storing four processor numbers is provided for each memory block and cache line. In the directory of a certain memory block M, the processor numbers of the four processors caching the memory block M are stored. Further, in each of the four processors, the directory of the cache line that is caching the memory block M is
After all, the memory block M is cached 4
The processor number of one processor is stored. Similarly, all the processors that are caching the memory block M can be recorded in a tree structure.

【0016】メモリブロックに対して書き込みが行われ
たときには、当該メモリブロックのディレクトリから木
構造をたどって当該メモリブロックMをキャッシングし
ている全プロセッサを知ることができる。このツリーデ
ィレクトリ方式では、全プロセッサ数をP、1ディレク
トリ当たりに記憶できるプロセッサ番号の数をNとする
と、ディレクトリ当たりNlog2Pビットの記憶領域
を使用する。
When writing is performed on a memory block, all the processors caching the memory block M can be found by tracing the tree structure from the directory of the memory block. In this tree directory method, assuming that the total number of processors is P and the number of processor numbers that can be stored in one directory is N, a storage area of N log 2 P bits is used per directory.

【0017】一方、階層型フルマップディレクトリ方式
は、メモリブロックおよびキャッシュライン毎にビット
マップを持ち、これを木構造に連結することにより、当
該メモリブロックをキャッシングしている全プロセッサ
を記録する方式である。メモリブロックおよびキャッシ
ュライン毎に設けられたビットマップの各ビットは、下
位のプロセッサ(またはディレクトリ管理専用の制御ノ
ード)に対応づけられている。最下位のビットマップ
は、対応するプロセッサグループ内の全プロセッサのキ
ャッシング状況を示す。上の階層のビットマップは、プ
ロセッサグループ単位でのキャッシング状況を示す。
On the other hand, the hierarchical full-map directory system has a bitmap for each memory block and cache line, and by connecting this to a tree structure, all the processors caching the memory block are recorded. is there. Each bit of the bitmap provided for each memory block and cache line is associated with a lower processor (or a control node dedicated to directory management). The lowest bit map indicates the caching status of all processors in the corresponding processor group. The upper layer bitmap shows the caching status in processor group units.

【0018】主記憶上のメモリブロックに対して書き込
みが行われたとき、主記憶の制御回路は、当該メモリブ
ロックのディレクトリからビットマップを読み出す。そ
して、そのビットマップ中で1が立っているビットを探
す。1が立っているということは、そのビットに対応す
るプロセッサグループ内の何れかのプロセッサで当該メ
モリブロックをキャッシングしているということであ
る。そこで、主記憶の制御回路は、読み出したビットマ
ップ中で1が立っているビットに対応するすべてのプロ
セッサグループのディレクトリ管理回路に対して無効化
の要求を出す。この無効化の要求を受けたプロセッサグ
ループのディレクトリ管理回路では、キャッシュ制御回
路により、ディレクトリからビットマップを読み出し、
そのビットマップ中で1が立っているビットを探す。1
が立っているということは、そのビットに対応するプロ
セッサで当該メモリブロックをキャッシングしていると
いうことである。そこで、キャッシュ制御回路は、読み
出したビットマップ中で1が立っているビットに対応す
るすべてのプロセッサに対して無効化要求を出す。この
ようにして、書き込みが行われたメモリブロックをキャ
ッシングしているすべてのプロセッサに対して無効化を
出すことができる。
When writing is performed to the memory block on the main memory, the control circuit of the main memory reads the bitmap from the directory of the memory block. Then, the bit in which 1 is set is searched for in the bitmap. When 1 is set, it means that the memory block is cached by any of the processors in the processor group corresponding to the bit. Therefore, the control circuit of the main memory issues an invalidation request to the directory management circuits of all the processor groups corresponding to the bits for which 1 is set in the read bitmap. In the directory management circuit of the processor group that receives this invalidation request, the cache control circuit reads the bitmap from the directory,
Look for the bit in the bitmap for which a 1 is set. 1
Means that the memory block is being cached by the processor corresponding to that bit. Therefore, the cache control circuit issues an invalidation request to all the processors corresponding to the bits for which 1 is set in the read bitmap. In this way, invalidation can be issued to all processors that are caching the written memory block.

【0019】[0019]

【発明が解決しようとする課題】上記従来技術のうち、
ツリーディレクトリ方式では、階層の高さ(深さ)が深
くなるため、無効化の処理に時間がかかる。例えば、1
024台のプロセッサからなる並列計算機で4プロセッ
サを指すことができるディレクトリを使用した場合、4
×4×4×4×4=1024であるため最大6階層とな
る。したがって、無効化のための通信に最大5ステップ
の通信が行われるため時間がかかる。
SUMMARY OF THE INVENTION Among the above prior arts,
In the tree directory system, since the height (depth) of the hierarchy becomes deep, it takes time to invalidate. For example, 1
If a directory that can point to 4 processors is used on a parallel computer consisting of 024 processors, 4
Since × 4 × 4 × 4 × 4 = 1024, the maximum number of layers is 6. Therefore, communication for invalidation involves communication in up to 5 steps, which takes time.

【0020】一方、上記従来技術のうち、階層型フルマ
ップディレクトリ方式では、最上位の主記憶の制御回路
からはプロセッサグループ単位でのキャッシング状況し
か見えないため、プロセッサグループ内のどのプロセッ
サに対して無効化要求を出せばよいかを選択することが
できない。よって、階層型フルマップディレクトリ方式
では、プロセッサグループごとにディレクトリ管理専用
の制御ノードの役割を果たすハードウェアを設けるか、
またはプロセッサグループ内の特定プロセッサが該プロ
セッサグループを代表してディレクトリの管理を行うよ
うにする必要がある。したがって、ディレクトリ管理ノ
ードに対してキャッシュ制御に伴う通信が集中するとい
う問題がある。
On the other hand, of the above-mentioned conventional techniques, in the hierarchical full-map directory system, since only the caching state in processor group units can be seen from the control circuit of the highest-level main memory, which processor in the processor group is concerned. It is not possible to select whether to issue the invalidation request. Therefore, in the hierarchical full-map directory system, is it necessary to provide each processor group with hardware that functions as a control node dedicated to directory management?
Alternatively, it is necessary for a specific processor in the processor group to manage the directory on behalf of the processor group. Therefore, there is a problem in that communication associated with cache control is concentrated on the directory management node.

【0021】本発明の目的は、多数のプロセッサからな
る並列計算機において、ツリーディレクトリ方式や階層
型フルマップディレクトリ方式と同程度の大きさのディ
レクトリしか使用せず、ツリーディレクトリ方式より階
層が低く、階層型フルマップディレクトリ方式のように
特定のディレクトリ管理ノードへのアクセスが集中しな
いディレクトリ管理方式を用いたプロセッサ間データ一
貫性保証装置を提供することにある。
An object of the present invention is to use only a directory having the same size as the tree directory system or the hierarchical full map directory system in a parallel computer consisting of a large number of processors, and the hierarchy is lower than that of the tree directory system. An object of the present invention is to provide an inter-processor data consistency assurance device using a directory management method in which access to a specific directory management node is not concentrated, such as the type full map directory method.

【0022】[0022]

【課題を解決するための手段】本発明は、並列計算機に
おいてキャッシュの一貫性を保証するために、主記憶ブ
ロックおよびキャッシュラインごとにディレクトリを保
持し、これらのディレクトリでは当該主記憶ブロックを
キャッシングしているクラスタを記録する態様として2
種類以上の態様の中から1つの態様を主記憶ブロックま
たはキャッシュライン毎に選択可能であるようにし、選
択された態様で当該主記憶ブロックをキャッシングして
いるクラスタを記録するとともに、該態様を示すモード
フィールドを備えるようにしたことを特徴とする。そし
て、主記憶制御回路およびキャッシュ制御回路で、ディ
レクトリおよびモードフィールドを制御し、ディレクト
リに記録されている複数のクラスタに対し、ネットワー
クを介してキャッシュ制御用の通信を発行するようにす
る。
The present invention maintains a directory for each main memory block and cache line in order to guarantee cache coherency in a parallel computer, and caches the main memory block in these directories. As a mode of recording the existing cluster 2
One mode is selected from the modes of more than one type for each main memory block or cache line, and the cluster that is caching the main memory block in the selected mode is recorded and the mode is shown. It is characterized by having a mode field. Then, the main memory control circuit and the cache control circuit control the directory and the mode field to issue the cache control communication to the plurality of clusters recorded in the directory via the network.

【0023】特に、主記憶ブロックのディレクトリを根
として、当該主記憶ブロックをキャッシングした全クラ
スタのキャッシュラインのディレクトリを木構造の連鎖
で結合して管理するとよい。また、各主記憶ブロックお
よびキャッシュラインのディレクトリは、複数のクラス
タへのポインタとして動作するポインタモードと、ビッ
トマップとして動作するビットマップモードを備え、ポ
インタモードでは、任意のクラスタを指し、ビットマッ
プとして動作するモードでは、クラスタグループ内の全
クラスタのキャッシングの状態を示すようにする。
Particularly, it is advisable to use the directory of the main memory block as a root to manage the cache line directories of all clusters that have cached the main memory block by linking them in a tree structure. In addition, each main memory block and cache line directory has a pointer mode that operates as a pointer to a plurality of clusters and a bitmap mode that operates as a bitmap. In the operating mode, the state of caching of all clusters in the cluster group is indicated.

【0024】主記憶ブロックへの書き込みの際に、書き
込み対象のクラスタの主記憶制御回路は、書き込み対象
の主記憶ブロックの主記憶ディレクトリにより指し示さ
れる全てのクラスタに対して無効化要求を発行し、無効
化要求を受けたクラスタのキャッシュ制御回路は、当該
主記憶ブロックに対応するキャッシュラインを無効化す
るとともに、対応するキャッシュディレクトリにより指
し示される全てのクラスタに対して無効化要求を発行し
ていくことにより、同一主記憶ブロックをキャッシング
した全てのクラスタ内の対応するキャッシュラインを無
効化するようにする。書き込みデータを送信して、同一
主記憶ブロックをキャッシングしている全てのクラスタ
内の対応するキャッシュラインを更新するようにしても
よい。
When writing to the main memory block, the main memory control circuit of the write target cluster issues an invalidation request to all the clusters pointed to by the main memory directory of the write target main memory block. In response to the invalidation request, the cache control circuit of the cluster invalidates the cache line corresponding to the main memory block and issues the invalidation request to all the clusters indicated by the corresponding cache directory. By doing so, the corresponding cache lines in all the clusters that have cached the same main memory block are invalidated. The write data may be transmitted to update the corresponding cache line in all the clusters caching the same main memory block.

【0025】主記憶ブロックへの書き込みの際に、キャ
ッシュの無効化や更新の要求を発行した場合、無効化完
了通信や更新返答通信を受けるのを待つことにより、全
クラスタに対する書き込みの完了を保証するようにして
もよい。
When a request to invalidate or update the cache is issued when writing to the main memory block, the completion of writing to all clusters is guaranteed by waiting for the invalidation completion communication and the update response communication. You may do it.

【0026】ディレクトリはブロックごとに持ってもよ
いし、別のディレクトリ用メモリ領域を用意し、当該ブ
ロックから指し示すべきクラスタがある場合にのみ該デ
ィレクトリ用メモリ領域に当該ブロックのディレクトリ
を登録するようにしてもよい。また、主記憶制御回路や
キャッシュ制御回路の機能をクラスタ内の特定のプロセ
ッサで代替するようにしてもよい。
A directory may be provided for each block, or another directory memory area is prepared, and the directory of the block is registered in the directory memory area only when there is a cluster to be pointed to from the block. May be. Further, the functions of the main memory control circuit and the cache control circuit may be replaced by a specific processor in the cluster.

【0027】[0027]

【作用】本発明によれば、各ディレクトリにクラスタを
記録する態様として2種類以上の態様の中から1つを選
択できる。したがって、階層の高さが低い方式、ディレ
クトリの大きさが大きくない方式、特定のノードへのア
クセスが集中しない方式などを組み合わせることができ
る。特に、各ディレクトリは、複数クラスタへのポイン
タとして動作するポインタモードと、クラスタグループ
内の全クラスタのビットマップとして動作するビットマ
ップモードを持つ。これにより、ツリーディレクトリで
構成する木構造の下位数階層をビットマップ1階層に置
き換えることができ、ツリーディレクトリ方式と比較し
て階層が少なくなる。また、上位階層はポインタによる
ツリー構造となり、任意のクラスタを指すことができ
る。このため、階層型フルマップディレクトリ方式のよ
うにディレクトリ管理専用回路を設けることや、特定の
クラスタにディレクトリの管理を行わせる必要がなく、
特定の回路またはクラスタに対して通信が集中すること
がない。
According to the present invention, one of two or more kinds of modes can be selected as a mode of recording a cluster in each directory. Therefore, it is possible to combine a method in which the height of the hierarchy is low, a method in which the size of the directory is not large, a method in which access to a specific node is not concentrated. In particular, each directory has a pointer mode that operates as a pointer to a plurality of clusters and a bitmap mode that operates as a bitmap of all clusters in a cluster group. As a result, the lower several layers of the tree structure configured by the tree directory can be replaced with one bitmap layer, and the number of layers is reduced as compared with the tree directory method. The upper layer has a tree structure with pointers, and can point to any cluster. For this reason, it is not necessary to provide a directory management dedicated circuit as in the hierarchical full map directory system, or to make a specific cluster manage the directory.
Communication is not concentrated on a specific circuit or cluster.

【0028】[0028]

【実施例】以下、図面を用いて本発明の実施例を説明す
る。
Embodiments of the present invention will be described below with reference to the drawings.

【0029】(実施例1)まず、本発明の第1の実施例
について説明する。図1は、第1の実施例に係る並列計
算機を示す。本実施例では、複数のクラスタ100がネ
ットワーク200により結合されている。図1におい
て、101はプロセッサであり、従来技術におけるマイ
クロプロセッサと同じ構成でよい。クラスタ100は、
1つ以上のプロセッサからなる密結合マルチプロセッサ
構成を取る。
(Embodiment 1) First, a first embodiment of the present invention will be described. FIG. 1 shows a parallel computer according to the first embodiment. In this embodiment, a plurality of clusters 100 are connected by a network 200. In FIG. 1, reference numeral 101 denotes a processor, which may have the same configuration as a microprocessor in the related art. Cluster 100 is
Take a tightly coupled multiprocessor configuration consisting of one or more processors.

【0030】各クラスタ100は、複数のプロセッサ1
01と、1つのキャッシュメモリ102、主記憶装置1
03、キャッシュ制御回路104、主記憶制御回路10
5、およびネットワークインターフェイス回路112か
らなる。また、ネットワーク200において、あるクラ
スタAから同一クラスタBに対して複数の通信を行った
場合、クラスタAにおける発行順とクラスタBにおける
到着順とは同じであるものとする。
Each cluster 100 includes a plurality of processors 1.
01, one cache memory 102, main memory 1
03, cache control circuit 104, main memory control circuit 10
5 and the network interface circuit 112. Further, in the network 200, when a plurality of communications are performed from a certain cluster A to the same cluster B, the issuing order in the cluster A and the arrival order in the cluster B are assumed to be the same.

【0031】主記憶装置103は、従来技術を用いてア
ドレス線およびデータ線を使ってアクセスする。主記憶
装置103は複数のメモリブロック106からなり、メ
モリブロック106毎に主記憶ディレクトリ107が設
けられている。主記憶ディレクトリ107内にはモード
フィールド110が設けられている。主記憶装置103
は、当該クラスタ100内のプロセッサ101からアク
セスされると共に、他のクラスタ100内のプロセッサ
101からもアクセスされる。すなわち、各クラスタ1
00内の主記憶装置103は、全クラスタにより共有さ
れる記憶領域である。
The main memory 103 is accessed by using the address line and the data line by using the conventional technique. The main storage device 103 includes a plurality of memory blocks 106, and a main storage directory 107 is provided for each memory block 106. A mode field 110 is provided in the main memory directory 107. Main storage device 103
Is accessed by the processor 101 in the cluster 100 and also by the processor 101 in another cluster 100. That is, each cluster 1
The main storage device 103 in 00 is a storage area shared by all clusters.

【0032】キャッシュメモリ102は、メモリブロッ
ク106と同じ大きさのキャッシュライン108からな
り、キャッシュライン毎にキャッシュディレクトリ10
9が設けられている。キャッシュディレクトリ109内
にはモードフィールド110が設けられている。キャッ
シュライン108に、自クラスタ100および他クラス
タ内の主記憶装置103のメモリブロック106のコピ
ーを格納することにより、キャッシングを行う。
The cache memory 102 comprises a cache line 108 having the same size as the memory block 106, and the cache directory 10 is provided for each cache line.
9 are provided. A mode field 110 is provided in the cache directory 109. Caching is performed by storing a copy of the memory block 106 of the main storage device 103 in the own cluster 100 and another cluster in the cache line 108.

【0033】キャッシュ制御回路104は、キャッシュ
メモリ102およびキャッシュディレクトリ109を制
御する回路である。
The cache control circuit 104 is a circuit for controlling the cache memory 102 and the cache directory 109.

【0034】主記憶制御回路105は、主記憶装置10
3の読み出し、書き込みおよび主記憶ディレクトリ10
7の制御を行う回路である。ネットワークインターフェ
イス回路112は、ネットワーク200を通じて他クラ
スタのネットワークインターフェイス回路と接続されて
おり、クラスタ100内から自クラスタまたは他クラス
タの主記憶装置へのメモリアクセス、他クラスタから自
クラスタ100の主記憶装置103へのメモリアクセ
ス、およびクラスタ間のディレクトリ制御通信の送受信
を行う回路である。
The main memory control circuit 105 includes a main memory device 10.
3 read, write and main storage directory 10
7 is a circuit for performing control. The network interface circuit 112 is connected to a network interface circuit of another cluster through the network 200, and performs memory access from within the cluster 100 to the main storage device of its own cluster or another cluster, and from the other cluster to the main storage device 103 of the own cluster 100. Is a circuit that performs memory access to and from and to receive and send directory control communication between clusters.

【0035】本実施例では、主記憶ディレクトリ107
およびキャッシュディレクトリ109にモードフィール
ド110を設け、ディレクトリに複数の動作モードを設
けることに特徴がある。
In this embodiment, the main storage directory 107
A mode field 110 is provided in the cache directory 109 and a plurality of operation modes are provided in the directory.

【0036】図3に、主記憶ディレクトリ107および
キャッシュディレクトリ109の構造を示す。1つのデ
ィレクトリは、モードフィールド110およびクラスタ
記憶フィールド150よりなる。本実施例では、並列計
算機のクラスタ数は1024、クラスタ当たりのプロセ
ッサ数は1としており、ディレクトリのモードフィール
ド110は2ビット、クラスタ記憶フィールド150は
64ビットの大きさとしており、全クラスタを64クラ
スタからなるクラスタグループ16個に分割している
が、本発明は、並列計算機のクラスタ数、クラスタ当た
りのプロセッサ数およびディレクトリのサイズに関らず
用いることができる。
FIG. 3 shows the structures of the main storage directory 107 and the cache directory 109. One directory consists of a mode field 110 and a cluster storage field 150. In this embodiment, the number of clusters of the parallel computer is 1024, the number of processors per cluster is 1, the size of the mode field 110 of the directory is 2 bits, and the size of the cluster storage field 150 is 64 bits, and all clusters are 64 clusters. However, the present invention can be used regardless of the number of clusters of the parallel computer, the number of processors per cluster, and the size of the directory.

【0037】ここで、クラスタ番号について説明してお
く。本実施例ではクラスタ数が1024であるので、各
クラスタには0〜1023(2進数で表すと、10ビッ
トで00…0から11…1)のクラスタ番号が付けられ
ている。この10ビットのクラスタ番号の上位4ビット
が等しいクラスタが同じクラスタグループに属するよう
にクラスタグループを形成する。例えば、10ビットの
クラスタ番号が0000******である64個のク
ラスタが1つのクラスタグループ、10ビットのクラス
タ番号が0001******である64個のクラスタ
が1つのクラスタグループ、10ビットのクラスタ番号
が0010******である64個のクラスタが1つ
のクラスタグループ、…というような具合である。*
は、0または1の任意の1ビットデータを示すものとす
る。
Here, the cluster number will be described. Since the number of clusters is 1024 in the present embodiment, each cluster is assigned a cluster number of 0 to 1023 (expressed in binary number, 00 ... 0 to 11 ... 1 in 10 bits). A cluster group is formed so that clusters having the same upper 4 bits of the 10-bit cluster number belong to the same cluster group. For example, 64 clusters having a 10-bit cluster number of 0000 ******* are one cluster group, and 64 clusters having a 10-bit cluster number of 0001 ***** are one cluster. A group is such that 64 clusters having a 10-bit cluster number of 0010 ******* are one cluster group, and so on. *
Represents any 1-bit data of 0 or 1.

【0038】図3を参照して、ディレクトリの構造につ
いて説明する。ディレクトリは、ポインタモード16
0、ビットマップモード170、および終端モード18
0を持つ。モードに応じて、クラスタ記憶フィールド1
50の用い方が異なるようになっている。
The structure of the directory will be described with reference to FIG. Directory is pointer mode 16
0, bitmap mode 170, and termination mode 18
Has 0. Cluster storage field 1 depending on mode
The usage of 50 is different.

【0039】ポインタモード160は、モードフィール
ド110aが00(2進)であるモードである。ポイン
タモード160において、クラスタ記憶フィールド15
0には、4つの10ビットのクラスタ番号161−0,
161−1,161−2,161−3および各クラスタ
番号に対応するクラスタ番号存在フラグ162−0,1
62−1,162−2,162−3が記憶される。クラ
スタ番号存在フラグ162が0の場合は、そのクラスタ
番号存在フラグに対応するクラスタ番号が無効であるこ
とを示す。クラスタ番号存在フラグが1の場合は、その
クラスタ番号存在フラグに対応するクラスタ番号が有効
であり、そのクラスタ番号で指されるクラスタに同一の
メモリブロック106がキャッシングされていることを
示す。
The pointer mode 160 is a mode in which the mode field 110a is 00 (binary). In pointer mode 160, cluster storage field 15
0 has four 10-bit cluster numbers 161-0,
161-1, 161-2, 161-3 and cluster number existence flag 162-0, 1 corresponding to each cluster number
62-1, 162-2, 162-3 are stored. When the cluster number existence flag 162 is 0, it indicates that the cluster number corresponding to the cluster number existence flag is invalid. When the cluster number existence flag is 1, it indicates that the cluster number corresponding to the cluster number existence flag is valid and the same memory block 106 is cached in the cluster pointed to by the cluster number.

【0040】ビットマップモード170は、モードフィ
ールド110bが01(2進)であるモードである。ビ
ットマップモード170において、クラスタ記憶フィー
ルド150には、64ビットのビットマップ171が記
憶される。ビットマップ171の各ビットは、当該ディ
レクトリを保持するクラスタが含まれるクラスタグルー
プ内のキャッシング状況を示しており、ビットマップ1
71のビットが1ならば、当該ビットに対応するクラス
タが同一メモリブロック106をキャッシングしている
ことを示す。
The bitmap mode 170 is a mode in which the mode field 110b is 01 (binary). In the bitmap mode 170, the cluster storage field 150 stores a 64-bit bitmap 171. Each bit of the bitmap 171 indicates the caching status in the cluster group including the cluster holding the directory, and the bitmap 1
If the bit of 71 is 1, it indicates that the cluster corresponding to the bit is caching the same memory block 106.

【0041】なお、クラスタグループ内におけるビット
マップ171の各ビットとクラスタとの対応は、クラス
タ番号の下位6ビットによってビットマップ171内の
対応ビットの位置を示すようになっている。すなわち、
ビットマップ171内の第k番目のビットは、クラスタ
番号の下位6ビットがk−1であるクラスタに対応す
る。例えば、ビットマップ171の先頭ビットはクラス
タ番号の下位6ビットが0(10進)であるクラスタに
対応し、ビットマップ171の第2番目のビットはクラ
スタ番号の下位6ビットが1(10進)であるクラスタ
に対応し、ビットマップ171の第3番目のビットはク
ラスタ番号の下位6ビットが2(10進)であるクラス
タに対応し、…、ビットマップ171の第64番目のビ
ットはクラスタ番号の下位6ビットが63(10進)で
あるクラスタに対応する。
The correspondence between each bit of the bitmap 171 in the cluster group and the cluster is such that the lower 6 bits of the cluster number indicate the position of the corresponding bit in the bitmap 171. That is,
The kth bit in the bitmap 171 corresponds to the cluster whose lower 6 bits of the cluster number is k-1. For example, the first bit of the bitmap 171 corresponds to the cluster whose lower 6 bits of the cluster number is 0 (decimal), and the second bit of the bitmap 171 has the lower 6 bits of the cluster number is 1 (decimal). , The third bit of the bitmap 171 corresponds to the cluster in which the lower 6 bits of the cluster number is 2 (decimal), ..., The 64th bit of the bitmap 171 is the cluster number. It corresponds to the cluster in which the lower 6 bits of are 63 (decimal).

【0042】終端モード180は、モードフィールド1
10cが10(2進)であるモードであり、クラスタ記
憶フィールド150は使用されない。本モードは、当該
メモリブロックまたはキャッシュラインの下に、他クラ
スタのキャッシュラインが関連付けられていないことを
示す。
The termination mode 180 is set in the mode field 1
10c is a mode in which it is 10 (binary), and the cluster storage field 150 is not used. This mode indicates that the cache line of another cluster is not associated with the memory block or cache line.

【0043】図3で示したディレクトリ構造を用いて、
メモリブロック106毎に、メモリブロック106を頂
点として、全クラスタにまたがって木構造を作成し、メ
モリブロックをキャッシングした全キャッシュラインを
管理する。
Using the directory structure shown in FIG. 3,
For each memory block 106, a tree structure is created across all clusters with the memory block 106 as the apex, and all cache lines that cache the memory blocks are managed.

【0044】図2は、主記憶ディレクトリおよびキャッ
シュディレクトリを使って構成される木構造によるキャ
ッシュラインの管理の仕方を示す図である。図2におい
て、301は主記憶ディレクトリであり、321,32
2,331,332,333,334,341,34
2,343,344,345はキャッシュディレクトリ
である。この木構造において、頂点の主記憶ディレクト
リ301を階層1と定義する。階層1の主記憶ディレク
トリ301により直接指されるキャッシュディレクトリ
321,322を階層2と定義する。階層2内のキャッ
シュディレクトリ321,322により直接指されるキ
ャッシュディレクトリ331,332,333,334
を階層3と定義する。以後同様にして、階層4,5,…
を定義する。
FIG. 2 is a diagram showing a method of managing cache lines in a tree structure formed by using a main memory directory and a cache directory. In FIG. 2, 301 is a main memory directory, and 321, 32
2,331,332,333,334,341,34
2, 343, 344 and 345 are cache directories. In this tree structure, the main memory directory 301 at the top is defined as hierarchy 1. The cache directories 321 and 322 which are directly pointed to by the main memory directory 301 of the tier 1 are defined as the tier 2. Cache directories 331, 332, 333, 334 directly pointed to by the cache directories 321 and 322 in the hierarchy 2
Is defined as Tier 3. After that, in the same way, layers 4, 5, ...
Is defined.

【0045】図2の木構造は、以下に示す規則に従って
構成する。
The tree structure of FIG. 2 is constructed according to the following rules.

【0046】(規則1)ポインタモード160でクラス
タ記憶フィールド150に記述するクラスタ数をPp、
ビットマップモード170でクラスタ記憶フィールド1
50に記述するクラスタ数をPb、全クラスタ数をPと
する。このとき、xlog2 Pp+log2Pb=lo
2Pを満たすxについて、階層x+1に位置するディ
レクトリはビットマップモードまたは終端モードであ
り、階層x+2に位置するディレクトリは終端モードで
ある。
(Rule 1) In the pointer mode 160, the number of clusters described in the cluster storage field 150 is Pp,
Cluster storage field 1 in bitmap mode 170
The number of clusters described in 50 is Pb, and the total number of clusters is P. At this time, xlog 2 Pp + log 2 Pb = lo
For x satisfying g 2 P, the directory located in the layer x + 1 is in the bitmap mode or the termination mode, and the directory located in the layer x + 2 is in the termination mode.

【0047】(規則2)ビットマップモードにより直接
指されるキャッシュラインは、終端モードのみである。
(Rule 2) The cache line directly pointed to by the bitmap mode is only the termination mode.

【0048】(規則3)図4に、クラスタ番号を2進数
で表したビット列を示す。クラスタ番号は、log2
=xlog2Pp+log2Pbを満たすx個のポインタ
フィールド350および1個のビットマップフィールド
351よりなる。階層jのディレクトリがポインタモー
ドであったとき、そのディレクトリのクラスタ番号フィ
ールドのk番目で指す部分木内の全クラスタのクラスタ
番号は、ポインタフィールド1からポインタフィールド
j−1までが当該ディレクトリが存在するクラスタのク
ラスタ番号と等しく、ポインタフィールドjがk−1と
なる。なお、j=1のときは、階層1のディレクトリが
ポインタモードであったとき、そのディレクトリのクラ
スタ番号フィールドのk番目で指す部分木内の全クラス
タのクラスタ番号は、ポインタフィールド1(クラスタ
番号の第1番目のポインタフィールド)がk−1とな
る、ということである。なお、ポインタフィールド35
0のうち、先頭のポインタフィールドから順にポインタ
フィールド1,2,…と呼ぶこととする。
(Rule 3) FIG. 4 shows a bit string in which the cluster number is represented by a binary number. The cluster number is log 2 P
= Xlog 2 Pp + log 2 Pb, and x pointer fields 350 and one bitmap field 351. When the directory of the hierarchy j is in the pointer mode, the cluster numbers of all clusters in the subtree pointed to by the k-th subtree of the cluster number field of the directory are the clusters in which the directory exists from pointer field 1 to pointer field j-1. , And the pointer field j becomes k-1. When j = 1, when the directory of the layer 1 is in the pointer mode, the cluster numbers of all the clusters in the subtree indicated by the k-th cluster number field of the directory are pointer field 1 (the cluster number This means that the first pointer field) becomes k-1. The pointer field 35
Of 0, they are called pointer fields 1, 2, ... In order from the leading pointer field.

【0049】(規則4)ビットマップモードで指される
全クラスタのクラスタ番号は、全ポインタフィールドが
当該ディレクトリの存在するクラスタ番号のポインタフ
ィールドと等しい。
(Rule 4) The cluster numbers of all the clusters pointed to in the bit map mode are equal to the pointer fields of the cluster numbers in which the relevant directory exists.

【0050】規則1〜4について詳しく説明する。規則
1は、図2の木構造の高さ(深さ)の限界を規定するも
のである。全クラスタ数をPとするとき、log2Pは
それらのクラスタに付けるクラスタ番号を表現するビッ
ト数になる。クラスタ番号を表現するlog2Pビット
のうち、log2Pbビット分はビットマップモードで
特定する範囲を表わし、xlog2Ppビット分はポイ
ンタモードで特定する範囲(1階層がlog2Ppビッ
ト分であり、それがx階層分)を表わす。
Rules 1 to 4 will be described in detail. Rule 1 defines the height (depth) limit of the tree structure in FIG. When the total number of clusters is P, log 2 P is the number of bits expressing the cluster number assigned to those clusters. Of the log 2 P bits representing the cluster number, the log 2 Pb bits represent the range specified in the bitmap mode, and the xlog 2 Pp bits represent the range specified in the pointer mode (one layer is log 2 Pp bits. Yes, that represents x layers).

【0051】具体的に本実施例では、全クラスタ数P=
1024であるからlog2P=10であり、10ビッ
トのクラスタ番号で全クラスタを表現できる。すなわ
ち、図4のクラスタ番号は10ビットで表わされる。ま
た、ビットマップモードで64クラスタを記述するか
ら、Pb=64でlog2Pb=6である。言い替える
と、クラスタ番号10ビットのうち6ビット分(ここで
は下位の6ビット)は、ビットマップモードで特定でき
る範囲(すなわち、この6ビットが、クラスタグループ
内で1つのクラスタを特定するID)になっている。ク
ラスタ番号10ビットのうちこの6ビット分を除いた4
ビット分が、ポインタモードで特定する範囲であり、上
記数式中のxlog2Ppに相当する。ポインタモード
では1つのディレクトリのクラスタ記憶フィールド15
0に4つのクラスタ番号を記述するから、Pp=4でl
og2Pp=2である。したがって、x=2である。こ
れは、図2の木構造が最大の高さとなる場合は、x=2
までの階層すなわち階層1と階層2がポインタモードに
なり、その下の階層3はビットマップモードになり、そ
の下の階層4が終端モードになることを示すものであ
る。なお、図4ではポインタフィールド350が3つ図
示してあるが、本実施例の例では、クラスタ番号全体が
10ビットであり、2ビットのポインタフィールド35
0が2つと、残りの6ビットのビットマップフィールド
351からなる。
Specifically, in this embodiment, the total number of clusters P =
Since it is 1024, log 2 P = 10, and a 10-bit cluster number can represent all clusters. That is, the cluster number in FIG. 4 is represented by 10 bits. Since 64 clusters are described in the bitmap mode, Pb = 64 and log 2 Pb = 6. In other words, 6 bits out of 10 bits of the cluster number (here, the lower 6 bits) are in a range that can be specified in the bitmap mode (that is, these 6 bits are IDs that specify one cluster in the cluster group). Has become. 4 excluding 6 bits of 10 bits of cluster number
The bit portion is the range specified in the pointer mode and corresponds to xlog 2 Pp in the above formula. Cluster storage field 15 for one directory in pointer mode
Since 4 cluster numbers are described in 0, Pp = 4 and l
og 2 Pp = 2. Therefore, x = 2. This means that if the tree structure in FIG. 2 has the maximum height, x = 2.
It is shown that the layers up to, that is, the layers 1 and 2 are in the pointer mode, the layer 3 therebelow is in the bitmap mode, and the layer 4 thereunder is in the termination mode. Although three pointer fields 350 are shown in FIG. 4, in the example of this embodiment, the entire cluster number is 10 bits and the 2-bit pointer field 35 is used.
It consists of two 0s and the remaining 6-bit bitmap field 351.

【0052】規則2は、ビットマップモードの下の階層
は終端モードのみであることを規定したものである。
Rule 2 specifies that the hierarchy below the bitmap mode is only the termination mode.

【0053】規則3は、クラスタ番号の構成を規定した
ものである。規則3の後段は、ポインタモードのディレ
クトリのクラスタ番号フィールドに設定するクラスタ番
号と木構造につながれるクラスタのクラスタ番号の関係
を表す。図2を参照して、この関係を説明する。図2に
おいて、主記憶ディレクトリ301はポインタモードに
なっており、第2番目のクラスタ番号フィールドにクラ
スタPaのクラスタ番号aが、第3番目のクラスタ番号
フィールドにクラスタPbのクラスタ番号bが、それぞ
れ記憶され、第1番目と第4番目のクラスタ番号フィー
ルドは無効になっている。これは、この主記憶ディレク
トリに対応するメモリブロックがクラスタPa,Pbに
おいてキャッシングされていることを示している。ま
た、この主記憶ディレクトリ301の4つのクラスタ番
号フィールドは、順にクラスタ番号の先頭の2ビット
(ポインタフィールド1)が00,01,10,11
(10進では0,1,2,3)であるクラスタを記憶す
るフィールドである。したがって、第2番目のクラスタ
番号フィールドによってつながれているクラスタPaの
クラスタ番号a(10ビット)は先頭2ビットが01で
あることが分かる。同様に、第3番目のクラスタ番号フ
ィールドによってつながれているクラスタPbのクラス
タ番号b(10ビット)は先頭2ビットが10であるこ
とが分かる。
Rule 3 defines the structure of cluster numbers. The latter part of Rule 3 represents the relationship between the cluster number set in the cluster number field of the pointer mode directory and the cluster number of the cluster connected to the tree structure. This relationship will be described with reference to FIG. In FIG. 2, the main memory directory 301 is in the pointer mode, and the cluster number a of the cluster Pa is stored in the second cluster number field and the cluster number b of the cluster Pb is stored in the third cluster number field. The first and fourth cluster number fields are invalid. This indicates that the memory block corresponding to this main memory directory is cached in the clusters Pa and Pb. In the four cluster number fields of the main memory directory 301, the first two bits (pointer field 1) of the cluster number are 00, 01, 10, 11 in order.
This is a field for storing clusters (0, 1, 2, 3 in decimal). Therefore, it can be seen that the first two bits of the cluster number a (10 bits) of the cluster Pa connected by the second cluster number field are 01. Similarly, it can be seen that the first 2 bits of the cluster number b (10 bits) of the cluster Pb connected by the third cluster number field are 10.

【0054】階層2に移って、321はクラスタPa内
で主記憶ディレクトリ301に対応するメモリブロック
をキャッシングしているキャッシュラインに対応するデ
ィレクトリであり、322はクラスタPb内で主記憶デ
ィレクトリ301に対応するメモリブロックをキャッシ
ングしているキャッシュラインに対応するディレクトリ
である。キャッシュディレクトリ321はポインタモー
ドになっており、第1番目のクラスタ番号フィールドに
クラスタPcのクラスタ番号cが、第3番目のクラスタ
番号フィールドにクラスタPdのクラスタ番号dが、そ
れぞれ記憶され、第2番目と第4番目のクラスタ番号フ
ィールドは無効になっている。これは、このキャッシュ
ディレクトリに対応するキャッシュラインがクラスタP
c,Pdでもキャッシングされていること(すなわち、
階層1の主記憶ディレクトリ301に対応するメモリブ
ロックがキャッシングされているということ)を示して
いる。また、このキャッシュディレクトリ321の4つ
のクラスタ番号フィールドは、順にクラスタ番号の先頭
2ビット(2進で01)の次の2ビット(ポインタフィ
ールド2)が00,01,10,11であるクラスタを
記憶するフィールドである。したがって、第1番目のク
ラスタ番号フィールドによってつながれているクラスタ
Pcのクラスタ番号c(10ビット)は先頭2ビットが
01で次の2ビットが00であることが分かる。同様
に、第3番目のクラスタ番号フィールドによってつなが
れているクラスタPdのクラスタ番号d(10ビット)
は先頭2ビットが10で次の2ビットが10であること
が分かる。
Moving to the hierarchy 2, 321 is a directory corresponding to the cache line which is caching the memory block corresponding to the main memory directory 301 in the cluster Pa, and 322 is corresponding to the main memory directory 301 in the cluster Pb. Is a directory corresponding to a cache line that is caching a memory block. The cache directory 321 is in the pointer mode, the cluster number c of the cluster Pc is stored in the first cluster number field, the cluster number d of the cluster Pd is stored in the third cluster number field, and the second cluster number field is stored. And the fourth cluster number field is disabled. This is because the cache line corresponding to this cache directory is the cluster P.
Being cached even in c and Pd (that is,
It means that the memory block corresponding to the main storage directory 301 of the tier 1 is cached). The four cluster number fields of the cache directory 321 store clusters in which the first 2 bits (01 in binary) and the next 2 bits (pointer field 2) of the cluster number are 00, 01, 10, and 11 in order. It is a field to do. Therefore, it can be seen that the first two bits of the cluster number c (10 bits) of the cluster Pc connected by the first cluster number field are 01 and the next two bits are 00. Similarly, the cluster number d (10 bits) of the cluster Pd connected by the third cluster number field
Indicates that the first 2 bits are 10 and the next 2 bits are 10.

【0055】階層2のディレクトリ322もポインタモ
ードであり、その第2,3番目のクラスタ番号フィール
ドにクラスタPf,Pgのクラスタ番号f,gが記憶さ
れている。したがって、当該メモリブロック(階層1の
主記憶ディレクトリ301に対応するメモリブロック)
がクラスタPf,Pgでキャッシングされており、クラ
スタ番号fは先頭4ビットが1001であり、クラスタ
番号gは先頭4ビットが1010であることが分かる。
The directory 322 of the layer 2 is also in the pointer mode, and the cluster numbers f and g of the clusters Pf and Pg are stored in the second and third cluster number fields thereof. Therefore, the memory block concerned (the memory block corresponding to the main memory directory 301 of the hierarchy 1)
Are cached by the clusters Pf and Pg, the first 4 bits of the cluster number f are 1001, and the first 4 bits of the cluster number g are 1010.

【0056】階層3に移って、331,332,33
3,334は、それぞれクラスタPc,Pd,Pf,P
g内で当該メモリブロックをキャッシングしているキャ
ッシュラインに対応するディレクトリである。ディレク
トリ331,332,333は終端モードであり、これ
以下の階層にはクラスタがつながれていない。ディレク
トリ334はビットマップモードであり、1が立ってい
るビットに対応するクラスタPh,Pi,Pj,Pk,
Plに当該メモリブロックがキャッシングされているこ
とが分かる。さらに、クラスタPh,Pi,Pj,P
k,PlはクラスタPgと同じクラスタグループに属
し、これらのクラスタのクラスタ番号は何れも先頭4ビ
ット(全ポインタフィールド)が1010(クラスタ番
号gの全ポインタフィールドと同じ)であることが分か
る。
Moving to layer 3, 331, 332, 33
3, 334 are clusters Pc, Pd, Pf, P, respectively.
It is a directory corresponding to the cache line that is caching the memory block in g. The directories 331, 332, 333 are in the termination mode, and clusters are not connected to the hierarchy below this. The directory 334 is in the bitmap mode, and the clusters Ph, Pi, Pj, Pk, corresponding to the bits for which 1 is set are
It can be seen that the relevant memory block is cached in Pl. Further, the clusters Ph, Pi, Pj, P
It can be seen that k and Pl belong to the same cluster group as the cluster Pg, and the cluster numbers of these clusters have the first 4 bits (all pointer fields) of 1010 (the same as all pointer fields of the cluster number g).

【0057】規則1から規則4により、任意のクラスタ
が図2のような木構造に含まれるか否かを調査するとき
には、頂点のメモリブロックのディレクトリから開始し
て全階層でディレクトリ内のいずれか一つのポインタを
たどればよいこととなる。例えば、あるクラスタ番号Y
が木構造に含まれるか調査するときには、以下の様に検
索すればよい。
According to rules 1 to 4, when investigating whether or not an arbitrary cluster is included in the tree structure as shown in FIG. 2, starting from the directory of the memory block at the top, any of the directories in the directory at all layers is checked. You just have to follow one pointer. For example, a cluster number Y
When investigating whether is included in the tree structure, you can search as follows.

【0058】(1) 調査対象の木構造の階層1のディ
レクトリを読み出す。iの初期値を1とする。
(1) The directory of the hierarchy 1 of the tree structure to be investigated is read. The initial value of i is 1.

【0059】(2)階層iのディレクトリのモードに応
じて、以下の処理をクラスタ番号Yのディレクトリを読
み出すか、終了条件を満たすまで繰り返す。
(2) Depending on the mode of the directory of hierarchy i, the following process is repeated until the directory of cluster number Y is read or the end condition is satisfied.

【0060】(2−1) 階層iのディレクトリがポイン
タモードのとき:クラスタ番号Y中のポインタフィール
ドiを取り出し、そのポインタフィールドiの値をjと
したとき、階層iのディレクトリの第j+1番目のクラ
スタ番号フィールドのクラスタ番号存在フラグが1であ
ればそのクラスタ番号フィールドからクラスタ番号を読
み出し、当該クラスタ番号のクラスタのディレクトリを
新たなディレクトリとして読み出す。これにより、階層
i+1に移動する(i+1を新たなiとする)。読み出
したクラスタ番号がクラスタ番号Yに一致したら、クラ
スタ番号Yは木構造に含まれていたこととなる。なお、
読み出すべきクラスタ番号フィールドのクラスタ番号存
在フラグが0であれば、終了する。
(2-1) When the directory of the hierarchy i is in the pointer mode: When the pointer field i in the cluster number Y is taken out and the value of the pointer field i is j, the (j + 1) th directory of the directory of the hierarchy i If the cluster number existence flag of the cluster number field is 1, the cluster number is read from the cluster number field, and the directory of the cluster of the cluster number is read as a new directory. This moves to the layer i + 1 (i + 1 is set as a new i). If the read cluster number matches the cluster number Y, it means that the cluster number Y was included in the tree structure. In addition,
If the cluster number present flag in the cluster number field to be read is 0, the process ends.

【0061】(2−2)階層iのディレクトリがビット
マップモードのとき:クラスタ番号Y中のビットマップ
フィールドからデータを取り出し、そのビットマップフ
ィールドの値をjとしたとき、階層iのディレクトリの
ビットマップの第j+1番目のビットが1なら、当該ビ
ットに対応するクラスタのディレクトリを読み出す。そ
のクラスタがクラスタ番号Yのクラスタである。ビット
が0なら終了する。
(2-2) When the directory of hierarchy i is in the bitmap mode: When the data is taken out from the bitmap field in the cluster number Y and the value of the bitmap field is j, the bits of the directory of hierarchy i If the (j + 1) th bit of the map is 1, the cluster directory corresponding to the bit is read. That cluster is the cluster with cluster number Y. If the bit is 0, the process ends.

【0062】(2−3)階層iのディレクトリが終端モ
ードのとき:処理を終了する。
(2-3) When the directory of hierarchy i is in the termination mode: The process is terminated.

【0063】これらの処理により最後に到達したディレ
クトリのクラスタ番号がYであれば、クラスタ番号Yは
木構造に含まれていたこととなる。
If the cluster number of the directory finally reached by these processes is Y, it means that the cluster number Y was included in the tree structure.

【0064】次に、上記構成の並列計算機により書き込
み無効化型キャッシュ一致制御を実現する方法を述べ
る。書き込み無効化型とは、あるメモリブロックに対す
る書き込み要求を受けたときに、その書き込みを行うと
共に該メモリブロックをキャッシングしているすべての
キャッシュメモリに対して無効化を行うことをいう。
Next, a method for realizing the write invalidation type cache coincidence control by the parallel computer having the above configuration will be described. The write invalidation type means that, when a write request for a certain memory block is received, the write is performed and invalidation is performed for all cache memories that are caching the memory block.

【0065】クラスタ100は、ネットワークインター
フェイス回路112を通してネットワーク200から主
記憶装置103に対する読み出し要求通信および書き込
み要求通信、並びに、キャッシュメモリ102に対する
無効化要求通信、追加要求通信、削除要求通信、ビット
マップ移動要求通信、およびポインタ移動要求通信を受
けることができる。また、プロセッサ101に対する読
み出し返答通信を受けることができる。
In the cluster 100, the read request communication and the write request communication from the network 200 to the main storage device 103 through the network interface circuit 112, the invalidation request communication, the addition request communication, the delete request communication, and the bitmap move to the cache memory 102 are performed. Request communication and pointer movement request communication can be received. Further, the read response communication to the processor 101 can be received.

【0066】さらにクラスタ100では、キャッシュ制
御回路104および主記憶制御回路105からネットワ
ークインターフェイス回路112を通じて他クラスタの
キャッシュメモリに対して無効化要求通信、追加要求通
信、削除要求通信、ビットマップ移動要求通信、および
ポインタ移動要求通信を送ることができ、主記憶制御回
路105からネットワークインターフェイス回路112
を通じて他クラスタに対して読み出し返答通信を送るこ
とができ、プロセッサ101からネットワーク200を
通じて他クラスタに対して読み出し要求通信および書き
込み要求通信を送ることができる。
Further, in the cluster 100, the cache control circuit 104 and the main memory control circuit 105 through the network interface circuit 112 to the cache memories of other clusters invalidation request communication, addition request communication, deletion request communication, bitmap move request communication. , And a pointer move request communication can be sent, and the main memory control circuit 105 can send the network interface circuit 112.
The read response communication can be sent to the other cluster through the, and the read request communication and the write request communication can be sent from the processor 101 to the other cluster through the network 200.

【0067】これらの要求通信の詳細について説明す
る。まず各要求通信のパケットの構成について説明す
る。図5は、各要求通信のパケットの構成である。
Details of these request communications will be described. First, the packet configuration of each request communication will be described. FIG. 5 shows a packet configuration of each request communication.

【0068】各パケットは、パケット送信先クラスタ番
号400a〜400hおよびパケット送信元クラスタ番
号401a〜401hよりなるパケットヘッダを共通に
持つ。パケット送信元クラスタ番号401a〜401h
は、当該要求通信パケットを送信した送信元のクラスタ
のクラスタ番号である。パケット送信先クラスタ番号4
00a〜400hは、当該要求通信パケットの送信先の
クラスタのクラスタ番号である。
Each packet has a common packet header composed of packet transmission destination cluster numbers 400a to 400h and packet transmission source cluster numbers 401a to 401h. Packet transmission source cluster numbers 401a to 401h
Is the cluster number of the source cluster that transmitted the request communication packet. Packet destination cluster number 4
00a to 400h are cluster numbers of the destination clusters of the request communication packet.

【0069】読み出し要求通信パケット420は、パケ
ットヘッダ、および送信先クラスタ内アドレス403a
からなる。
The read request communication packet 420 includes a packet header and a destination intra-cluster address 403a.
Consists of

【0070】書き込み要求通信パケット421は、パケ
ットヘッダ、および送信先クラスタ内アドレス403
b、書き込みデータ404からなる。
The write request communication packet 421 includes a packet header and a destination cluster address 403.
b, write data 404.

【0071】無効化要求通信パケット422は、パケッ
トヘッダ、無効化対象クラスタ番号402c、および無
効化対象クラスタ内アドレス403cからなる。
The invalidation request communication packet 422 includes a packet header, an invalidation target cluster number 402c, and an invalidation target cluster address 403c.

【0072】追加要求通信パケット423は、パケット
ヘッダ、追加対象クラスタ番号402d、追加対象クラ
スタ内アドレス403d、および追加クラスタ番号40
5からなる。
The add request communication packet 423 includes a packet header, an add target cluster number 402d, an add target cluster address 403d, and an add cluster number 40.
Consists of five.

【0073】削除要求通信パケット424は、パケット
ヘッダ、削除対象クラスタ番号402e、削除対象クラ
スタ内アドレス403e、および置き換え対象クラスタ
番号409からなる。
The deletion request communication packet 424 comprises a packet header, a deletion target cluster number 402e, a deletion target cluster address 403e, and a replacement target cluster number 409.

【0074】ビットマップ移動要求通信パケット425
は、パケットヘッダ、移動対象クラスタ番号402f、
移動対象クラスタ内アドレス403f、およびビットマ
ップ406からなる。
Bitmap move request communication packet 425
Is the packet header, the cluster number 402f to be moved,
It consists of an intra-movement target cluster address 403f and a bitmap 406.

【0075】ポインタ移動要求通信パケット426は、
パケットヘッダ、移動対象クラスタ番号402g、移動
対象クラスタ内アドレス403f、およびポインタ40
7からなる。
The pointer movement request communication packet 426 is
Packet header, migration target cluster number 402g, migration target cluster address 403f, and pointer 40
Consists of seven.

【0076】読み出し返答通信パケット427は、パケ
ットヘッダ、返答対象クラスタ番号402h、返答対象
クラスタ内アドレス403h、および返答データ408
からなる。
The read response communication packet 427 includes a packet header, a response target cluster number 402h, a response target cluster address 403h, and response data 408.
Consists of

【0077】各要求通信の動作は以下の通りである。The operation of each request communication is as follows.

【0078】(読み出し要求通信)クラスタ100に対
する読み出し要求通信は、クラスタ100内または他ク
ラスタ内のプロセッサ101がクラスタ100内の主記
憶装置103のメモリブロック106のデータを欲しい
場合であって、かつ当該読み出し要求元クラスタのキャ
ッシュメモリ102でミスした(すなわち、当該メモリ
ブロックのデータは当該読み出し要求元クラスタではキ
ャッシングされていなかった)場合に、クラスタ100
のネットワークインターフェイス回路112に対して発
行される。読み出し要求通信パケット420を受信した
ときのクラスタ100の動作は以下の通りである。
(Read Request Communication) The read request communication to the cluster 100 is performed when the processor 101 in the cluster 100 or another cluster wants the data in the memory block 106 of the main storage device 103 in the cluster 100, and If a miss occurs in the cache memory 102 of the read request source cluster (that is, the data of the memory block is not cached in the read request source cluster), the cluster 100
Is issued to the network interface circuit 112. The operation of the cluster 100 when receiving the read request communication packet 420 is as follows.

【0079】(1)ネットワークインターフェイス回路
112は、読み出し要求通信パケット420の送信先ク
ラスタ内アドレス403aを用いて主記憶制御回路10
5に対して主記憶読み出し要求を行う。
(1) The network interface circuit 112 uses the destination intra-cluster address 403a of the read request communication packet 420 to determine the main storage control circuit 10.
5, a main memory read request is issued.

【0080】(2)主記憶制御回路105は、送信先ク
ラスタ内アドレス403aを用いて、主記憶装置103
から当該アドレスに対応するメモリブロック106、主
記憶ディレクトリ107、およびモードフィールド11
0を読み出す。
(2) The main memory control circuit 105 uses the destination intra-cluster address 403a to make the main memory 103
From the memory block 106 corresponding to the address, the main memory directory 107, and the mode field 11
Read 0.

【0081】(3)主記憶制御回路105は、ネットワ
ークインターフェイス回路112に、読み出したメモリ
ブロック106の内容を返送する。具体的には、主記憶
制御回路105は、受信した読み出し要求通信パケット
420のパケット送信元クラスタ番号401aで示され
るクラスタ(自クラスタでも他クラスタでもよい)のネ
ットワークインターフェイス回路112に対してネット
ワーク200を通して(自クラスタの場合は直接)読み
出し返答通信パケット427を送る。ここで、読み出し
返答通信パケット427の、返答対象クラスタ番号40
2hは自クラスタ100(すなわち、いま説明している
処理を行っているクラスタであり、読み出し対象のメモ
リブロック106を保有するクラスタ)のクラスタ番
号、返答対象クラスタ内アドレス403hは受信した読
み出し要求通信パケット420の送信先クラスタ内アド
レス403a、返答データ408は読み出したメモリブ
ロックの内容とする。読み出し返答通信パケット427
を受けたクラスタの動作については後述する。
(3) The main memory control circuit 105 returns the read contents of the memory block 106 to the network interface circuit 112. Specifically, the main memory control circuit 105 sends the read request communication packet 420 through the network 200 to the network interface circuit 112 of the cluster indicated by the packet transmission source cluster number 401a (which may be its own cluster or another cluster). A read response communication packet 427 is sent (directly in the case of the own cluster). Here, the response target cluster number 40 of the read response communication packet 427
2h is the cluster number of its own cluster 100 (that is, the cluster that is performing the process just described and holds the memory block 106 to be read), and the reply target intra-cluster address 403h is the received read request communication packet The transmission destination cluster address 403a and the response data 408 of 420 are the contents of the read memory block. Read response communication packet 427
The operation of the received cluster will be described later.

【0082】(4)アクセスしたメモリブロック106
の主記憶ディレクトリ107の状態により、(4−1)
から(4−6)のいずれかを行う。アクセスしたメモリ
ブロック106の内容は、上記(3)のようにして読み
出し要求の発行元に返送されるが、それを受けたクラス
タ(自クラスタも含む)内では当該メモリブロック10
6の内容をキャッシングすることになる(読み出し返答
通信参照)。そこで、当該メモリブロック106を階層
1とする図2のような木構造に、新たに当該メモリブロ
ック106の内容をキャッシングしたクラスタを登録す
る必要がある。その処理を、以下の(4−1)から(4
−6)で行う。
(4) Accessed memory block 106
Depending on the state of the main storage directory 107 of (4-1)
To (4-6). The content of the accessed memory block 106 is returned to the issuer of the read request as described in (3) above, but within the cluster (including its own cluster) receiving the request, the memory block 10 concerned is returned.
The contents of 6 will be cached (see read response communication). Therefore, it is necessary to newly register a cluster in which the contents of the memory block 106 are cached in the tree structure as shown in FIG. The processing is performed from (4-1) to (4
-6).

【0083】(4−1)アクセスしたメモリブロック1
06の主記憶ディレクトリ107が終端モード180の
場合:主記憶ディレクトリ107のモードフィールド1
10をポインタモード160に変更し、上述した木構造
の構成規則に従って、読み出し要求発行元のクラスタの
クラスタ番号をクラスタ記憶フィールド150に登録す
る。このとき、クラスタ番号を登録したクラスタ番号フ
ィールドのクラスタ番号存在フラグを1とする。
(4-1) Accessed memory block 1
06 main storage directory 107 in termination mode 180: mode field 1 of main storage directory 107
10 is changed to the pointer mode 160, and the cluster number of the read request issuing cluster is registered in the cluster storage field 150 according to the above-mentioned tree structure configuration rule. At this time, the cluster number existence flag of the cluster number field in which the cluster number is registered is set to 1.

【0084】(4−2)アクセスしたメモリブロック1
06の主記憶ディレクトリ107がポインタモード16
0であり、その主記憶ディレクトリ107のクラスタ記
憶フィールド150のアクセス発行元のクラスタ番号を
登録すべきエントリ(クラスタ番号フィールド)が空き
(当該クラスタ番号フィールドのクラスタ番号存在フラ
グが0)の場合:アクセス発行元のクラスタ番号を主記
憶ディレクトリ107の当該空きエントリに登録する。
このとき、対応するクラスタ番号存在フラグを1とす
る。
(4-2) Accessed memory block 1
06 main memory directory 107 is pointer mode 16
0 and the entry (cluster number field) for registering the cluster number of the access issue source in the cluster storage field 150 of the main storage directory 107 is free (the cluster number existence flag of the cluster number field is 0): access The cluster number of the issuer is registered in the empty entry in the main memory directory 107.
At this time, the corresponding cluster number existence flag is set to 1.

【0085】(4−3)アクセスしたメモリブロック1
06の主記憶ディレクトリ107がポインタモード16
0であり、その主記憶ディレクトリ107のクラスタ記
憶フィールド150のアクセス発行元のクラスタ番号を
登録すべきエントリが空きでなく(当該クラスタ番号フ
ィールドのクラスタ番号存在フラグが1)、他のエント
リがすべて空きであり(クラスタ番号存在フラグが
0)、かつ、アクセス発行元のクラスタ番号のポインタ
フィールドと、当該メモリブロック106を保有するク
ラスタのクラスタ番号のポインタフィールドと、上記空
きでなかったエントリに記憶されているクラスタ番号の
ポインタフィールドとが全て等しい場合:主記憶ディレ
クトリ107のモードフィールド110をビットマップ
モード170に変更し、ポインタモード160でクラス
タ記憶フィールド150のエントリに登録されていたク
ラスタ番号に対応するビットおよびアクセス発行元のク
ラスタ番号に対応するビットを1とする。
(4-3) Accessed memory block 1
06 main memory directory 107 is pointer mode 16
0, the entry for which the cluster number of the access issuer in the cluster storage field 150 of the main storage directory 107 is to be registered is not empty (the cluster number existence flag of the cluster number field is 1), and all other entries are empty. (The cluster number existence flag is 0), and the pointer field of the cluster number of the access issue source, the pointer field of the cluster number of the cluster holding the memory block 106, and the entry which is not empty are stored. If the pointer fields of the existing cluster numbers are all the same: the mode field 110 of the main memory directory 107 is changed to the bitmap mode 170, and it corresponds to the cluster number registered in the entry of the cluster memory field 150 in the pointer mode 160. The bit corresponding to the Tsu door and access publisher of the cluster number to 1.

【0086】(4−4)アクセスしたメモリブロック1
06の主記憶ディレクトリ107がポインタモード16
0であり、その主記憶ディレクトリ107のクラスタ記
憶フィールド150のアクセス発行元のクラスタ番号を
登録すべきエントリが空きでない(当該クラスタ番号フ
ィールドのクラスタ番号存在フラグが1)場合であっ
て、他のエントリに空きでないものがあるか、または、
アクセス発行元のクラスタ番号のポインタフィールド
と、当該メモリブロック106を保有するクラスタのク
ラスタ番号のポインタフィールドと、上記アクセス発行
元のクラスタ番号を記憶すべきエントリに登録されてい
たクラスタ番号のポインタフィールドのうちの少なくと
も2つが等しくない場合:アクセス発行元のクラスタ番
号を記憶すべきエントリに登録されているクラスタ番号
のクラスタに対して追加要求通信を行う。具体的には、
追加要求通信パケット423を送信する。このとき、追
加要求通信パケット423の、追加対象クラスタ番号4
02dは自クラスタ100(すなわち、いま説明してい
る処理を行っているクラスタであり、読み出し対象のメ
モリブロック106を保有するクラスタ)のクラスタ番
号、追加対象クラスタ内アドレス403dは読み出し要
求通信パケット420の送信先クラスタ内アドレス40
3a、追加クラスタ番号405は読み出し要求通信パケ
ット420のパケット送信元クラスタ番号401a(木
構造に追加すべきクラスタ番号)とする。追加要求通信
パケット423を受けたクラスタの動作については後述
するが、要するに、アクセス発行元のクラスタ番号を記
憶すべきエントリに登録されているクラスタ番号につな
がる部分木構造に、新たにアクセス発行元のクラスタ番
号を追加する処理を行うものである。
(4-4) Accessed memory block 1
06 main memory directory 107 is pointer mode 16
0, the entry to register the cluster number of the access issue source in the cluster storage field 150 of the main storage directory 107 is not empty (the cluster number existence flag of the cluster number field is 1), and another entry Is not empty, or
The pointer field of the cluster number of the access issuer, the pointer field of the cluster number of the cluster holding the memory block 106, and the pointer field of the cluster number registered in the entry to store the cluster number of the access issuer If at least two of them are not equal: the addition request communication is performed to the cluster having the cluster number registered in the entry that should store the cluster number of the access issuer. In particular,
The addition request communication packet 423 is transmitted. At this time, the addition target cluster number 4 of the addition request communication packet 423
02d is the cluster number of its own cluster 100 (that is, the cluster that is performing the process just described and holds the memory block 106 to be read), and the add-in-cluster address 403d is the read request communication packet 420. Destination cluster address 40
3a and the additional cluster number 405 are the packet transmission source cluster number 401a (cluster number to be added to the tree structure) of the read request communication packet 420. The operation of the cluster that receives the addition request communication packet 423 will be described later. In short, in the subtree structure connected to the cluster number registered in the entry that should store the cluster number of the access issuer, a new tree of the access issuer is newly added. The process for adding a cluster number is performed.

【0087】(4−5)アクセスしたメモリブロック1
06の主記憶ディレクトリ107がビットマップモード
170であり、アクセス発行元のクラスタ番号のポイン
タフィールドがビットマップ内の全クラスタのクラスタ
番号のポインタフィールドと等しい(言い替えると、ア
クセス発行元のクラスタ番号のポインタフィールドと当
該メモリブロックを保有するクラスタのクラスタ番号の
ポインタフィールドとが等しい)場合:主記憶ディレク
トリ107のビットマップ内の、アクセス発行元のクラ
スタ番号に対応するビットを1とすることにより、アク
セス発行元のクラスタ番号を木構造中に組み入れる。
(4-5) Accessed memory block 1
The main storage directory 106 of 06 is the bitmap mode 170, and the pointer field of the cluster number of the access issuer is equal to the pointer field of the cluster numbers of all the clusters in the bitmap (in other words, the pointer of the cluster number of the access issuer). If the field is equal to the pointer field of the cluster number of the cluster that holds the memory block): The access issue is made by setting the bit corresponding to the access issue cluster number in the bitmap of the main memory directory 107 to 1. Incorporate the original cluster number into the tree structure.

【0088】(4−6)アクセスしたメモリブロック1
06の主記憶ディレクトリ107がビットマップモード
170の場合で、アクセス発行元のクラスタ番号のポイ
ンタフィールドがビットマップ内の全クラスタのクラス
タ番号のポインタフィールドと異なる場合:主記憶ディ
レクトリ107のビットマップ内から1が立っているビ
ットを1つ選択し、当該ビットに対応するクラスタに対
してビットマップ移動要求通信を行う。具体的には、ビ
ットマップ移動要求通信パケット425を送信する。こ
のとき、ビットマップ移動要求通信パケット425の、
移動対象クラスタ番号402fは自クラスタ100(す
なわち、いま説明している処理を行っているクラスタで
あり、読み出し対象のメモリブロック106を保有する
クラスタ)のクラスタ番号、移動対象クラスタ内アドレ
ス403fは読み出し要求通信パケット420の送信先
クラスタ内アドレス403a、ビットマップ406は対
応する主記憶ディレクトリ107のクラスタ記憶フィー
ルド150に記憶されているビットマップとする。ビッ
トマップ移動要求通信パケット425を受けたクラスタ
の動作については後述するが、要するに、ビットマップ
モードである現ディレクトリのビットマップを下位の階
層に移動する処理を行うものである。
(4-6) Accessed memory block 1
No. 06 main memory directory 107 is in the bitmap mode 170, and the pointer field of the cluster number of the access issuer is different from the cluster field pointer fields of all the clusters in the bitmap: From the bitmap of the main memory directory 107 One bit having 1 set is selected, and bitmap move request communication is performed with respect to the cluster corresponding to the bit. Specifically, the bitmap move request communication packet 425 is transmitted. At this time, in the bitmap move request communication packet 425,
The migration target cluster number 402f is the cluster number of the own cluster 100 (that is, the cluster that is performing the processing described now and holds the memory block 106 to be read), and the migration target cluster address 403f is a read request. The destination intra-cluster address 403a and the bitmap 406 of the communication packet 420 are the bitmaps stored in the cluster storage field 150 of the corresponding main storage directory 107. The operation of the cluster which receives the bitmap move request communication packet 425 will be described later, but in short, the process of moving the bitmap of the current directory in the bitmap mode to a lower hierarchy is performed.

【0089】この後、主記憶ディレクトリ107のモー
ドフィールド110をポインタモード160に変更し、
上述した木構造の構成規則に従って、アクセス発行元の
クラスタ番号およびビットマップ移動要求通信の送信先
のクラスタ番号をクラスタ記憶フィールド150に登録
し、対応するクラスタ番号存在フラグを1とする。ここ
で、アクセス発行元のクラスタ番号とビットマップ移動
要求通信の送信先のクラスタ番号とが一致する場合、
(4−4)を行う。
After that, the mode field 110 of the main memory directory 107 is changed to the pointer mode 160,
The cluster number of the access issuer and the cluster number of the destination of the bitmap move request communication are registered in the cluster storage field 150 according to the above-described tree structure configuration rule, and the corresponding cluster number existence flag is set to 1. Here, if the cluster number of the access issuer and the cluster number of the destination of the bitmap move request communication match,
Perform (4-4).

【0090】(書き込み要求通信)クラスタ100に対
する書き込み要求通信は、クラスタ100内または他ク
ラスタ内のプロセッサ101がクラスタ100内の主記
憶装置103に対してメモリ書き込みを行いたい場合、
クラスタ100のネットワークインターフェイス回路1
12に対して発行される。書き込み要求通信パケット4
21を受信したときのクラスタ100の動作は以下の通
りである。
(Write Request Communication) Write request communication to the cluster 100 is performed when the processor 101 in the cluster 100 or another cluster wants to perform memory write to the main storage device 103 in the cluster 100.
Network interface circuit 1 of cluster 100
Issued for 12. Write request communication packet 4
The operation of the cluster 100 when 21 is received is as follows.

【0091】(1)ネットワークインターフェイス回路
112は、書き込み要求通信パケット421の送信先ク
ラスタ内アドレス403bを用いて主記憶制御回路10
5に対して主記憶書き込み要求を行う。
(1) The network interface circuit 112 uses the destination intra-cluster address 403b of the write request communication packet 421 to determine the main storage control circuit 10.
5, a main memory write request is issued.

【0092】(2)主記憶制御回路105は、送信先ク
ラスタ内アドレス403bを用いて、主記憶装置103
中の当該アドレスに対応するメモリブロック106に書
き込みデータ404を書き込むとともに、当該メモリブ
ロック106に対応する主記憶ディレクトリ107、お
よびモードフィールド110を読み出す。
(2) The main memory control circuit 105 uses the destination intra-cluster address 403b and uses the main memory 103.
The write data 404 is written in the memory block 106 corresponding to the address in the memory block 106, and the main storage directory 107 and the mode field 110 corresponding to the memory block 106 are read out.

【0093】(3)アクセスしたメモリブロック106
の主記憶ディレクトリ107の状態により、(3−1)
または(3−2)のいずれかを行う。
(3) Accessed memory block 106
Depending on the state of the main storage directory 107 of (3-1)
Alternatively, either (3-2) is performed.

【0094】(3−1)アクセスしたメモリブロック1
06の主記憶ディレクトリ107がポインタモード16
0またはビットマップモード170であった場合:当該
主記憶ディレクトリ107のクラスタ記憶フィールド1
50に登録されている全てのクラスタに対して無効化要
求通信を送信する。具体的には、無効化要求通信パケッ
ト422を送信する。このとき、無効化要求通信パケッ
ト422の、無効化対象クラスタ番号402cは自クラ
スタ100(すなわち、いま説明している処理を行って
いるクラスタであり、データ書き込みを行ったメモリブ
ロック106を保有するクラスタ)のクラスタ番号、無
効化対象クラスタ内アドレス403cは書き込み要求通
信パケット421の送信先クラスタ内アドレス403b
とする。無効化要求通信パケット422を受けたクラス
タの動作については後述するが、要するに、書き込みを
行ったメモリブロック106の内容がキャッシングされ
ているのでそれを無効化する処理を行うものである。こ
の後、主記憶制御回路105は、当該主記憶ディレクト
リ107を終端モード180に変更する。
(3-1) Accessed memory block 1
06 main memory directory 107 is pointer mode 16
0 or bitmap mode 170: cluster storage field 1 of the main storage directory 107
The invalidation request communication is transmitted to all the clusters registered in 50. Specifically, the invalidation request communication packet 422 is transmitted. At this time, the invalidation target cluster number 402c of the invalidation request communication packet 422 is the own cluster 100 (that is, the cluster that is performing the process just described, and the cluster that holds the memory block 106 that has written the data). ) Is the cluster number and the invalidation target intra-cluster address 403c is the destination cluster intra-address 403b of the write request communication packet 421
And The operation of the cluster that receives the invalidation request communication packet 422 will be described later. In short, since the content of the memory block 106 to which the writing has been performed is cached, the processing is performed to invalidate it. After that, the main memory control circuit 105 changes the main memory directory 107 to the termination mode 180.

【0095】(3−2)アクセスしたメモリブロック1
06の主記憶ディレクトリ107が終端モード180で
あった場合:当該メモリブロックはどこにもキャッシン
グされていないため、キャッシュの一貫性制御は行わな
い。
(3-2) Accessed memory block 1
When the main storage directory 107 of 06 is in the termination mode 180: Since the relevant memory block is not cached anywhere, cache coherency control is not performed.

【0096】(無効化要求通信)クラスタ100に対す
る無効化要求通信は、クラスタ100内または他クラス
タ内のキャッシュ制御回路104または主記憶制御回路
105が無効化要求通信を発行した場合(書き込み要求
通信の(3−1)および本無効化要求通信の(3)参
照)、クラスタ100のネットワークインターフェイス
回路112に対して発行される。無効化要求通信パケッ
ト422を受信したときのクラスタ100の動作は以下
の通りである。
(Invalidation Request Communication) The invalidation request communication to the cluster 100 is performed when the cache control circuit 104 or the main memory control circuit 105 in the cluster 100 or another cluster issues the invalidation request communication (write request communication (3-1) and (3) of this invalidation request communication), is issued to the network interface circuit 112 of the cluster 100. The operation of the cluster 100 when receiving the invalidation request communication packet 422 is as follows.

【0097】(1)ネットワークインターフェイス回路
112は、無効化要求通信パケット422のアドレス
(無効化対象クラスタ番号402cと無効化対象クラス
タ内アドレス403c)を用いて、キャッシュ制御回路
104に対して無効化要求を行う。
(1) The network interface circuit 112 uses the address of the invalidation request communication packet 422 (the invalidation target cluster number 402c and the invalidation target cluster address 403c) to the cache control circuit 104. I do.

【0098】(2)キャッシュ制御回路104は、無効
化要求通信パケット422のアドレスを用いて、キャッ
シュメモリ102のキャッシュディレクトリを読み出
す。具体的には、無効化対象クラスタ番号402cおよ
び無効化対象クラスタ内アドレス403cで示されるメ
モリブロック106がキャッシングされているはずであ
るから、そのキャッシュライン108を探して、対応す
るキャッシュディレクトリ109を読み出す。
(2) The cache control circuit 104 reads the cache directory of the cache memory 102 using the address of the invalidation request communication packet 422. Specifically, since the memory block 106 indicated by the invalidation target cluster number 402c and the invalidation target cluster address 403c is supposed to be cached, the cache line 108 is searched for and the corresponding cache directory 109 is read. .

【0099】(3)読み出したキャッシュディレクトリ
109がポインタモード160またはビットマップモー
ド170であった場合:キャッシュ制御回路104は、
当該キャッシュディレクトリ109のクラスタ記憶フィ
ールド150に登録されている全てのクラスタに対し
て、ネットワークインターフェイス回路112を通じて
無効化要求通信パケット422を送信する。このとき、
無効化対象クラスタ番号402cは受信した無効化要求
通信パケット422の無効化対象クラスタ番号402c
と同じとし、無効化対象クラスタ内アドレス403cも
受信した無効化要求通信パケット422の無効化対象ク
ラスタ内アドレス403cと同じとする。
(3) When the read cache directory 109 is in the pointer mode 160 or the bitmap mode 170: The cache control circuit 104
The invalidation request communication packet 422 is transmitted through the network interface circuit 112 to all the clusters registered in the cluster storage field 150 of the cache directory 109. At this time,
The invalidation target cluster number 402c is the invalidation target cluster number 402c of the received invalidation request communication packet 422.
The same applies to the intra-cluster address 403c of the invalidation target communication packet 422 of the received invalidation request communication packet 422.

【0100】(4)無効化要求を受けたキャッシュライ
ン108を無効化する。
(4) Invalidate the cache line 108 that has received the invalidation request.

【0101】(追加要求通信)クラスタ100に対する
追加要求通信は、クラスタ100内または他クラスタ内
のキャッシュ制御回路104または主記憶制御回路10
5が追加要求通信を発行した場合(読み出し要求通信の
(4−4)および本追加要求通信の(2−4)参照)、
クラスタ100のネットワークインターフェイス回路1
12に対して発行される。追加要求通信パケット423
を受信したときのクラスタ100の動作は以下の通りで
ある。
(Additional Request Communication) The additional request communication to the cluster 100 is performed by the cache control circuit 104 or the main memory control circuit 10 in the cluster 100 or another cluster.
5 issues an addition request communication (see (4-4) of read request communication and (2-4) of this addition request communication),
Network interface circuit 1 of cluster 100
Issued for 12. Addition request communication packet 423
The operation of the cluster 100 when receiving the is as follows.

【0102】(1)追加要求通信パケット423のアド
レスに対応するキャッシュディレクトリ109を読み出
す。具体的には、追加要求通信パケット423の追加対
象クラスタ番号402dおよび追加対象クラスタ内アド
レス403dで示されるメモリブロック106がキャッ
シングされているはずであるから、そのキャッシュライ
ン108を探して、対応するキャッシュディレクトリ1
09を読み出す。
(1) The cache directory 109 corresponding to the address of the addition request communication packet 423 is read. Specifically, since the memory block 106 indicated by the addition target cluster number 402d and the addition target cluster address 403d of the addition request communication packet 423 should be cached, the cache line 108 is searched for and the corresponding cache is searched. Directory 1
09 is read.

【0103】(2)読み出したキャッシュディレクトリ
109の状態により、(2−1)から(2−6)のいず
れかを行う。
(2) One of (2-1) to (2-6) is performed depending on the read state of the cache directory 109.

【0104】(2−1)読み出したキャッシュディレク
トリ109が終端モード180の場合:キャッシュディ
レクトリ109のモードフィールド110をポインタモ
ード160に変更し、上述した木構造の構成規則に従っ
て、追加クラスタ番号405(木構造に追加すべきクラ
スタ番号)をクラスタ記憶フィールド150に登録す
る。このとき、クラスタ番号を登録したクラスタ番号フ
ィールドのクラスタ番号存在フラグを1とする。
(2-1) When the read cache directory 109 is in the termination mode 180: The mode field 110 of the cache directory 109 is changed to the pointer mode 160, and the additional cluster number 405 (tree The cluster number to be added to the structure) is registered in the cluster storage field 150. At this time, the cluster number existence flag of the cluster number field in which the cluster number is registered is set to 1.

【0105】(2−2)読み出したキャッシュディレク
トリ109がポインタモード160であり、そのキャッ
シュディレクトリ109のクラスタ記憶フィールド15
0の追加クラスタ番号405を登録すべきエントリが空
き(当該クラスタ番号フィールドのクラスタ番号存在フ
ラグが0)の場合:追加クラスタ番号405を当該キャ
ッシュディレクトリ109に登録する。このとき、対応
するクラスタ番号存在フラグを1とする。
(2-2) The read cache directory 109 is in the pointer mode 160, and the cluster storage field 15 of the cache directory 109 is read.
When the entry to register the additional cluster number 405 of 0 is empty (the cluster number existing flag of the cluster number field is 0): The additional cluster number 405 is registered in the cache directory 109. At this time, the corresponding cluster number existence flag is set to 1.

【0106】(2−3)読み出したキャッシュディレク
トリ109がポインタモード160であり、そのキャッ
シュディレクトリ109のクラスタ記憶フィールド15
0の追加クラスタ番号405を登録すべきエントリが空
きでなく(当該クラスタ番号フィールドのクラスタ番号
存在フラグが1)、他のエントリがすべて空きであり
(クラスタ番号存在フラグが0)、かつ、上記空きでな
かったエントリに、追加クラスタ番号405とポインタ
フィールドが全て等しいクラスタ番号が登録されている
場合:キャッシュディレクトリ109のモードフィール
ド110をビットマップモード170に変更し、ポイン
タモード160でクラスタ記憶フィールド150に登録
されていたクラスタ番号に対応するビットを1とした
後、さらに追加対象である追加クラスタ番号405に対
応するビットを1とする。
(2-3) The read cache directory 109 is in the pointer mode 160, and the cluster storage field 15 of the cache directory 109 is read.
The entry to register the additional cluster number 405 of 0 is not empty (the cluster number existing flag of the cluster number field is 1), all other entries are empty (the cluster number existing flag is 0), and the above empty If the cluster number of which the additional cluster number 405 and the pointer field are all the same is registered in the entry that is not: The mode field 110 of the cache directory 109 is changed to the bitmap mode 170, and the cluster storage field 150 is changed to the cluster storage field 150 in the pointer mode 160. After the bit corresponding to the registered cluster number is set to 1, the bit corresponding to the additional cluster number 405 to be added is set to 1.

【0107】(2−4)読み出したキャッシュディレク
トリ109がポインタモード160であり、そのキャッ
シュディレクトリ109のクラスタ記憶フィールド15
0の追加クラスタ番号405を登録すべきエントリが空
きでない(当該クラスタ番号フィールドのクラスタ番号
存在フラグが1)場合であって、他のエントリに空きで
ないものがあるか、または、そのキャッシュディレクト
リ109のクラスタ記憶フィールド150の追加クラス
タ番号405を登録すべきエントリに登録されているク
ラスタ番号のポインタフィールドと追加クラスタ番号4
05のポインタフィールドとが異なる場合:追加クラス
タ番号405を登録すべきエントリに登録されているク
ラスタ番号のクラスタに対して、受信した追加要求通信
パケット423を、転送する。
(2-4) The read cache directory 109 is in the pointer mode 160, and the cluster storage field 15 of the cache directory 109 is read.
If the entry for which the additional cluster number 405 of 0 is to be registered is not empty (the cluster number existence flag of the cluster number field is 1) and there is another entry that is not empty, or the cache directory 109 of that cache directory 109 Pointer field of cluster number registered in entry to register additional cluster number 405 of cluster storage field 150 and additional cluster number 4
If the pointer field of 05 is different: The received addition request communication packet 423 is transferred to the cluster having the cluster number registered in the entry to register the additional cluster number 405.

【0108】(2−5)読み出したキャッシュディレク
トリ109がビットマップモード170であり、追加ク
ラスタ番号405のポインタフィールドがビットマップ
内の全クラスタのクラスタ番号のポインタフィールドと
等しい場合:キャッシュディレクトリ109のビットマ
ップ内の、追加クラスタ番号405に対応する位置のビ
ットを1とすることにより、追加クラスタ番号405を
木構造中に組み入れる。
(2-5) When the read cache directory 109 is in the bitmap mode 170 and the pointer field of the additional cluster number 405 is equal to the pointer fields of the cluster numbers of all clusters in the bitmap: bits of the cache directory 109 The additional cluster number 405 is incorporated into the tree structure by setting the bit at the position corresponding to the additional cluster number 405 in the map to 1.

【0109】(2−6)読み出したキャッシュディレク
トリ109がビットマップモード170であり、追加ク
ラスタ番号405のポインタフィールドがビットマップ
内の全クラスタのクラスタ番号のポインタフィールドと
異なる場合:キャッシュディレクトリ109のビットマ
ップ内から1が立っているビットを1つ選択し、当該ビ
ットに対応するクラスタに対してビットマップ移動要求
通信を行う。具体的には、ビットマップ移動要求通信パ
ケット425を送信する。このとき、ビットマップ移動
要求通信パケット425の、移動対象クラスタ番号40
2fは受信した追加要求通信パケット423の追加対象
クラスタ番号402d、移動対象クラスタ内アドレス4
03fは追加対象クラスタ内アドレス403d、ビット
マップ406は当該キャッシュディレクトリ109のク
ラスタ記憶フィールド150のビットマップとする。
(2-6) When the read cache directory 109 is in the bitmap mode 170 and the pointer field of the additional cluster number 405 is different from the pointer fields of the cluster numbers of all clusters in the bitmap: bits of the cache directory 109 One bit in which 1 is set is selected from the map, and bitmap move request communication is performed with respect to the cluster corresponding to the bit. Specifically, the bitmap move request communication packet 425 is transmitted. At this time, the movement target cluster number 40 of the bitmap movement request communication packet 425
2f is the addition target cluster number 402d of the received addition request communication packet 423, the movement target cluster address 4
03f is the intra-cluster address 403d to be added, and the bitmap 406 is the bitmap of the cluster storage field 150 of the cache directory 109.

【0110】この後、当該キャッシュディレクトリ10
9のモードフィールド110をポインタモード160に
変更し、上述した木構造の構成規則に従って、追加クラ
スタ番号405およびビットマップ移動要求通信の送信
先のクラスタ番号を、クラスタ記憶フィールド150に
登録し、対応するクラスタ番号存在フラグを1とする。
After that, the cache directory 10
The mode field 110 of 9 is changed to the pointer mode 160, and the additional cluster number 405 and the cluster number of the destination of the bitmap move request communication are registered in the cluster storage field 150 according to the above-mentioned tree structure configuration rule, and the corresponding The cluster number existence flag is set to 1.

【0111】(削除要求通信)クラスタ100に対する
削除要求通信は、自クラスタ100内または他クラスタ
内のキャッシュ制御回路104または主記憶制御回路1
05が削除要求通信を発行した場合(後述するキャッシ
ュのリプレース時の動作の(2−1)および本削除要求
通信の(2−2)参照)、クラスタ100のネットワー
クインターフェイス回路112に対して発行される。削
除要求通信パケット424を受信したときのクラスタ1
00の動作は以下の通りである。
(Delete Request Communication) The delete request communication to the cluster 100 is performed by the cache control circuit 104 or the main memory control circuit 1 in the own cluster 100 or another cluster.
05 issues a delete request communication (see (2-1) Operation of cache replacement described later and (2-2) of this delete request communication), issued to the network interface circuit 112 of the cluster 100. It Cluster 1 when the delete request communication packet 424 is received
The operation of 00 is as follows.

【0112】(1)削除要求通信パケット424のアド
レスに対応する主記憶ディレクトリ107またはキャッ
シュディレクトリ109を読み出す。具体的には、削除
要求通信パケット424の削除対象クラスタ番号402
eおよび削除対象クラスタ内アドレス403eで示され
るメモリブロック106に対応する主記憶ディレクトリ
107、またはそのメモリブロック106がキャッシン
グされているキャッシュライン108に対応するキャッ
シュディレクトリ109を読み出す。
(1) The main storage directory 107 or cache directory 109 corresponding to the address of the delete request communication packet 424 is read. Specifically, the deletion target cluster number 402 of the deletion request communication packet 424
e and the main storage directory 107 corresponding to the memory block 106 indicated by the deletion target intra-cluster address 403e, or the cache directory 109 corresponding to the cache line 108 in which the memory block 106 is cached.

【0113】(2)読み出したディレクトリ107また
は109の状態により、(2−1)または(2−2)の
いずれかを行う。
(2) Either (2-1) or (2-2) is performed depending on the state of the read directory 107 or 109.

【0114】(2−1)読み出したディレクトリ107
または109がポインタモード160であり、当該ディ
レクトリ107,109のクラスタ記憶フィールド15
0に、受信した削除要求通信パケット424のパケット
送信元クラスタ番号401e(削除すべきクラスタ番
号)が登録してある場合:削除要求通信パケット424
の置き換えクラスタ番号409が有効なら、クラスタ記
憶フィールド150の当該クラスタ番号を置き換えクラ
スタ番号409に変更する。また、削除要求通信パケッ
ト424の置き換えクラスタ番号409が無効なら、ク
ラスタ記憶フィールド150の当該クラスタ番号のクラ
スタ番号存在フラグを0として、そのクラスタ番号を削
除する。このとき、クラスタ記憶フィールド150に登
録されているクラスタ番号の数が0となったときは、当
該ディレクトリのモードを終端モードに変更する。
(2-1) Read directory 107
Or 109 is the pointer mode 160, and the cluster storage field 15 of the directories 107 and 109
If the packet source cluster number 401e (cluster number to be deleted) of the received delete request communication packet 424 is registered in 0: delete request communication packet 424
If the replacement cluster number 409 is valid, the cluster number in the cluster storage field 150 is changed to the replacement cluster number 409. If the replacement cluster number 409 of the deletion request communication packet 424 is invalid, the cluster number existence flag of the cluster number in the cluster storage field 150 is set to 0 and the cluster number is deleted. At this time, when the number of cluster numbers registered in the cluster storage field 150 becomes 0, the mode of the directory is changed to the termination mode.

【0115】(2−2)読み出したディレクトリ107
または109がポインタモード160であり、当該ディ
レクトリ107,109のクラスタ記憶フィールド15
0に、受信した削除要求通信パケット424のパケット
送信元クラスタ番号401e(削除すべきクラスタ番
号)とは異なるクラスタのクラスタ番号が登録してある
場合:キャッシュ制御回路104は、ネットワークイン
ターフェイス回路112を通じて削除対象のクラスタ番
号(受信した削除要求通信パケット424のパケット送
信元クラスタ番号401e)を記憶すべきエントリに登
録されているクラスタに対して削除要求通信を転送す
る。
(2-2) Read directory 107
Or 109 is the pointer mode 160, and the cluster storage field 15 of the directories 107 and 109
If the cluster number of the cluster different from the packet transmission source cluster number 401e (cluster number to be deleted) of the received deletion request communication packet 424 is registered in 0: The cache control circuit 104 deletes it through the network interface circuit 112. The deletion request communication is transferred to the cluster registered in the entry in which the target cluster number (the packet transmission source cluster number 401e of the received deletion request communication packet 424) is to be stored.

【0116】(2−3)読み出したディレクトリ107
または109がビットマップモード170の場合:ビッ
トマップの削除対象のクラスタ(受信した削除要求通信
パケット424のパケット送信元クラスタ番号401e
のクラスタ)に対応する位置のビットを0とし、そのク
ラスタ番号を削除する。このとき、クラスタ記憶フィー
ルド150に保持するビットマップが全て0となれば、
当該ディレクトリのモードを終端モードに変更する。
(2-3) Read directory 107
Or 109 in the bitmap mode 170: cluster to be deleted in bitmap (packet source cluster number 401e of received delete request communication packet 424)
The cluster number is deleted by setting the bit at the position corresponding to the cluster) to 0. At this time, if all the bitmaps held in the cluster storage field 150 become 0,
Change the mode of the directory to terminal mode.

【0117】(ビットマップ移動要求通信)クラスタ1
00に対するビットマップ移動要求通信は、クラスタ1
00内または他クラスタ内の主記憶制御回路105また
はキャッシュ制御回路104がビットマップ移動要求通
信を発行した場合(読み出し要求通信の(4−6)、追
加要求通信の(2−6)、キャッシュリプレース時の動
作の(2−3)、およびポインタ移動要求通信の(3−
2)参照)、クラスタ100のネットワークインターフ
ェイス回路112に対して発行される。ビットマップ移
動要求通信パケット425を受信したときのクラスタ1
00の動作は以下の通りである。
(Bitmap move request communication) Cluster 1
Bitmap move request communication for 00 is in cluster 1
When the main memory control circuit 105 or the cache control circuit 104 in 00 or another cluster issues a bitmap move request communication (read request communication (4-6), addition request communication (2-6), cache replacement (2-3) of the operation at the time, and (3- of the pointer movement request communication)
2)), issued to the network interface circuit 112 of the cluster 100. Cluster 1 when receiving the bitmap move request communication packet 425
The operation of 00 is as follows.

【0118】(1)ネットワークインターフェイス回路
112は、ビットマップ移動要求通信パケット425の
アドレスを用いて、キャッシュ制御回路104に対して
ビットマップ移動要求を行う。
(1) The network interface circuit 112 uses the address of the bitmap move request communication packet 425 to make a bitmap move request to the cache control circuit 104.

【0119】(2)キャッシュ制御回路104は、ビッ
トマップ移動要求のアドレスを用いて、キャッシュメモ
リ102のキャッシュディレクトリ109、およびモー
ドフィールド110を読み出す。具体的には、ビットマ
ップ移動要求通信パケット425の移動対象クラスタ番
号402fおよび移動対象クラスタ内アドレス403f
で示されるメモリブロック106がキャッシングされて
いるはずであるから、そのキャッシュライン108を探
して、対応するキャッシュディレクトリ109およびモ
ードフィールド110を読み出す。
(2) The cache control circuit 104 reads the cache directory 109 and the mode field 110 of the cache memory 102 using the address of the bitmap move request. Specifically, the move target cluster number 402f and the move target cluster address 403f of the bitmap move request communication packet 425.
Since the memory block 106 indicated by must have been cached, the cache line 108 is searched for and the corresponding cache directory 109 and mode field 110 are read.

【0120】(3)読み出したキャッシュディレクトリ
109のモードフィールド110をビットマップモード
170に変更し、受信したビットマップ移動要求通信パ
ケット425のビットマップ406を、当該キャッシュ
ディレクトリ109のクラスタ記憶フィールド150に
書き込む。ただし、ビットマップの全ビットが0である
場合、モードフィールド110を終端モードとする。
(3) The mode field 110 of the read cache directory 109 is changed to the bitmap mode 170, and the bitmap 406 of the received bitmap move request communication packet 425 is written in the cluster storage field 150 of the cache directory 109. . However, when all the bits of the bitmap are 0, the mode field 110 is set to the termination mode.

【0121】なお、ビットマップ移動要求通信パケット
425は必ず上位の階層から下位の階層へと送信され、
ビットマップモードのディレクトリの下位の階層は終端
モードであることから、ビットマップ移動要求通信パケ
ット425の送信先ディレクトリは必ず終端モードであ
る。
The bitmap move request communication packet 425 is always transmitted from the upper layer to the lower layer,
Since the lower layer of the bitmap mode directory is the termination mode, the destination directory of the bitmap move request communication packet 425 is always the termination mode.

【0122】(ポインタ移動要求通信)クラスタ100
に対するポインタ移動要求通信は、クラスタ100内ま
たは他クラスタ内の主記憶制御回路105またはキャッ
シュ制御回路104がポインタ移動要求通信を発行した
とき(キャッシュのリプレース時の動作の(2−2)、
および本ポインタ移動要求通信の(3−1)参照)に、
クラスタ100のネットワークインターフェイス回路1
12に対して発行される。ポインタ移動要求通信パケッ
ト426を受信したときのクラスタ100の動作は以下
の通りである。
(Pointer move request communication) Cluster 100
The pointer move request communication to the cache is performed when the main memory control circuit 105 or the cache control circuit 104 in the cluster 100 or another cluster issues the pointer move request communication (operation (2-2) at the time of cache replacement,
And (3-1) of this pointer movement request communication),
Network interface circuit 1 of cluster 100
Issued for 12. The operation of the cluster 100 when the pointer movement request communication packet 426 is received is as follows.

【0123】(1)ネットワークインターフェイス回路
112は、ポインタ移動要求通信パケット426のアド
レスを用いて、キャッシュ制御回路104に対してポイ
ンタ移動要求を行う。
(1) The network interface circuit 112 uses the address of the pointer move request communication packet 426 to make a pointer move request to the cache control circuit 104.

【0124】(2)キャッシュ制御回路104は、ポイ
ンタ移動要求のアドレスを用いて、キャッシュメモリ1
02のキャッシュディレクトリ109、およびモードフ
ィールド110を読み出す。具体的には、ポインタ移動
要求通信パケット426の移動対象クラスタ番号402
gおよび移動対象クラスタ内アドレス403gで示され
るメモリブロック106がキャッシングされているはず
であるから、そのキャッシュライン108を探して、対
応するキャッシュディレクトリ109およびモードフィ
ールド110を読み出す。
(2) The cache control circuit 104 uses the address of the pointer move request to set the cache memory 1
02 cache directory 109 and mode field 110. Specifically, the movement target cluster number 402 of the pointer movement request communication packet 426
Since the memory block 106 indicated by g and the address 403g within the cluster to be moved is supposed to be cached, the cache line 108 is searched for, and the corresponding cache directory 109 and mode field 110 are read.

【0125】(3)キャッシュディレクトリ109のモ
ードにより、(3−1)から(3−3)のいずれかを行
う。
(3) Depending on the mode of the cache directory 109, any of (3-1) to (3-3) is performed.

【0126】(3−1)読み出したキャッシュディレク
トリ109がポインタモード160であった場合:当該
キャッシュディレクトリ109により指されるクラスタ
を一つ選択し、選択したクラスタ番号をキャッシュディ
レクトリ109から取り除き、その選択したクラスタに
対してポインタ移動要求通信を送信し、キャッシュディ
レクトリ109をポインタ407にセットして渡す。
(3-1) When the read cache directory 109 is in the pointer mode 160: select one cluster pointed to by the cache directory 109, remove the selected cluster number from the cache directory 109, and select it The pointer move request communication is transmitted to the cluster thus set, and the cache directory 109 is set in the pointer 407 and passed.

【0127】この後、自クラスタ100に対するポイン
タ移動要求通信パケット426で送られてきたポインタ
407(ディレクトリ)に、自クラスタ100からポイ
ンタ移動要求通信パケット426を送信した相手先クラ
スタの番号を追加し、自クラスタ100の当該キャッシ
ュディレクトリ109に書き込む。
Thereafter, the number of the destination cluster to which the pointer movement request communication packet 426 is transmitted from the own cluster 100 is added to the pointer 407 (directory) sent by the pointer movement request communication packet 426 for the own cluster 100, Write to the cache directory 109 of the own cluster 100.

【0128】(3−2)読み出したキャッシュディレク
トリ109がビットマップモード170であった場合:
当該キャッシュディレクトリ109により指されるクラ
スタを一つ選択し、選択したクラスタに対応するビット
を0として、選択したクラスタに対してビットマップ移
動要求通信を送信し、キャッシュディレクトリ109を
ビットマップ406にセットして渡す。
(3-2) When the read cache directory 109 is in the bitmap mode 170:
One cluster pointed to by the cache directory 109 is selected, the bit corresponding to the selected cluster is set to 0, the bitmap move request communication is transmitted to the selected cluster, and the cache directory 109 is set in the bitmap 406. And pass it on.

【0129】この後、自クラスタ100に対するポイン
タ移動要求通信パケット426で送られてきたポインタ
407(ディレクトリ)に、自クラスタ100からビッ
トマップ移動要求通信を送信した相手先クラスタの番号
を追加し、自クラスタ100の当該キャッシュディレク
トリ109に書き込む。また、モードフィールド110
は、ポインタモードに変更する。
After this, the number of the destination cluster to which the bitmap move request communication is transmitted from the own cluster 100 is added to the pointer 407 (directory) sent in the pointer move request communication packet 426 for the own cluster 100, and Write to the cache directory 109 of the cluster 100. Also, the mode field 110
Changes to pointer mode.

【0130】(3−3)読み出したキャッシュディレク
トリ109が終端モード180であった場合:受信した
ポインタ移動要求通信パケット426で送られてきたデ
ィレクトリ(ポインタ407)を、自クラスタ100の
当該キャッシュディレクトリ109に書き込み、モード
フィールド110をポインタモード160に変更する。
ただし、全てのポインタフィールド350が無効である
場合、モードフィールド110は終端モード180とす
る。
(3-3) When the read cache directory 109 is in the termination mode 180: The directory (pointer 407) sent by the received pointer move request communication packet 426 is set to the cache directory 109 of the own cluster 100. , And the mode field 110 is changed to the pointer mode 160.
However, when all the pointer fields 350 are invalid, the mode field 110 is set to the termination mode 180.

【0131】(読み出し返答通信)クラスタ100に対
する読み出し返答通信は、クラスタ100内または他ク
ラスタ内の主記憶制御回路105が読み出し返答通信を
発行した場合(読み出し要求通信の(3)参照)、クラ
スタ100のネットワークインターフェイス回路112
に対して発行される。読み出し返答通信パケット427
を受信したときのクラスタ100の動作は以下の通りで
ある。
(Read Reply Communication) The read reply communication to the cluster 100 is performed when the main memory control circuit 105 in the cluster 100 or another cluster issues a read reply communication (see (3) of read request communication). Network interface circuit 112
Issued to. Read response communication packet 427
The operation of the cluster 100 when receiving the is as follows.

【0132】(1)ネットワークインターフェイス回路
112は、返答結果をキャッシュ制御回路104に転送
する。 (2)キャッシュ制御回路104は、キャッシュメモリ
102の対応するキャッシュライン108に返答結果を
記録し、当該キャッシュディレクトリ109を終端モー
ド180として登録する。 (3)ネットワークインターフェイス回路112は、読
み出し返答通信の返答結果をクラスタ100内のバス1
11に出力してプロセッサ101に返答する。
(1) The network interface circuit 112 transfers the reply result to the cache control circuit 104. (2) The cache control circuit 104 records the response result in the corresponding cache line 108 of the cache memory 102, and registers the cache directory 109 as the termination mode 180. (3) The network interface circuit 112 sends the reply result of the read reply communication to the bus 1 in the cluster 100.
It outputs to 11 and responds to the processor 101.

【0133】(キャッシュのリプレース時の動作)クラ
スタ100内のプロセッサ101から自クラスタ100
内または他クラスタ内の主記憶装置103に対して読み
出しを行いたい場合は、まず読み出したいメモリブロッ
ク106の内容が自クラスタ100内のキャッシュメモ
リ102でキャッシングされているかどうかを調べるこ
とになるが、そこでキャッシュミスした場合は、読み出
したいメモリブロック106から実際にデータを読み出
してくることになる。このとき、当該読み出し結果を格
納すべきキャッシュライン108にすでに別のメモリブ
ロックの内容が登録されていた場合には、キャッシュラ
インのリプレースを行う必要がある。キャッシュライン
のリプレース時の動作は以下の通りである。
(Operation at cache replacement) From the processor 101 in the cluster 100 to the local cluster 100
When it is desired to read data from the main storage device 103 in the internal cluster or another cluster, it is first checked whether the content of the memory block 106 to be read is cached in the cache memory 102 in the own cluster 100. Therefore, when a cache miss occurs, data is actually read from the memory block 106 desired to be read. At this time, if the content of another memory block has already been registered in the cache line 108 for storing the read result, it is necessary to replace the cache line. The operation when replacing the cache line is as follows.

【0134】(1)キャッシュ制御回路104は、リプ
レースしたいキャッシュライン108のキャッシュディ
レクトリ109を読み出す。
(1) The cache control circuit 104 reads the cache directory 109 of the cache line 108 to be replaced.

【0135】(2−1)読み出したキャッシュディレク
トリ109が終端モード180であった場合:対応する
キャッシュライン108にキャッシングされているメモ
リブロック106を保有するクラスタに対して、自クラ
スタ番号の削除要求通信を送信する。具体的には、削除
要求通信パケット424を送信する。このとき、削除要
求通信パケット424の、削除対象クラスタ番号402
eは当該キャッシュラインにキャッシングされているメ
モリブロック106を保有するクラスタのクラスタ番
号、削除対象クラスタ内アドレス403eはそのメモリ
ブロック106のクラスタ内アドレス、置き換えクラス
タ番号409は無効とする。
(2-1) When the read cache directory 109 is in the termination mode 180: The deletion request communication of the own cluster number to the cluster holding the memory block 106 cached in the corresponding cache line 108 To send. Specifically, the delete request communication packet 424 is transmitted. At this time, the deletion target cluster number 402 of the deletion request communication packet 424
e is the cluster number of the cluster holding the memory block 106 cached in the cache line, the deletion target cluster address 403e is the cluster address of the memory block 106, and the replacement cluster number 409 is invalid.

【0136】(2−2)読み出したキャッシュディレク
トリ109がポインタモード160であった場合:当該
ディレクトリ109に登録されているクラスタ番号を一
つ選択し、そのクラスタ番号を当該ディレクトリ109
から削除し、そのクラスタ番号のクラスタに対してポイ
ンタ移動要求通信を行い、当該ディレクトリ109のク
ラスタ記憶フィールド150を転送する。すなわち、移
動対象クラスタ番号402gは当該キャッシュライン1
08にキャッシングされているメモリブロック106を
保有するクラスタのクラスタ番号、移動対象クラスタ内
アドレス403gはそのメモリブロック106のクラス
タ内アドレス、ポインタ407は移動したいクラスタ記
憶フィールド150として、ポインタ移動要求通信パケ
ット426を送信する。
(2-2) When the read cache directory 109 is the pointer mode 160: One cluster number registered in the directory 109 is selected and the cluster number is assigned to the directory 109.
Then, pointer movement request communication is performed for the cluster of that cluster number, and the cluster storage field 150 of the directory 109 is transferred. That is, the target cluster number 402g is the cache line 1
The cluster number of the cluster holding the memory block 106 cached in 08, the intra-cluster address 403g of the moving target cluster is the intra-cluster address of the memory block 106, the pointer 407 is the cluster storage field 150 to be moved, and the pointer move request communication packet 426. To send.

【0137】この後、対応するキャッシュライン108
にキャッシングされているメモリブロック106を保有
するクラスタに対して、自クラスタ番号の削除要求通信
を送信する。すなわち、削除対象クラスタ番号402e
は当該キャッシュライン108にキャッシングされてい
るメモリブロック106を保有するクラスタのクラスタ
番号、削除対象クラスタ内アドレス403eはそのメモ
リブロック106のクラスタ内アドレス、置き換えクラ
スタ番号409はポインタ移動要求通信パケット426
の送信先のクラスタのクラスタ番号として、削除要求通
信パケット424を送信し、自クラスタ番号の削除要求
を出す。
After this, the corresponding cache line 108
The delete request communication of the own cluster number is transmitted to the cluster having the memory block 106 that is cached by the. That is, the deletion target cluster number 402e
Is the cluster number of the cluster holding the memory block 106 cached in the cache line 108, the intra-cluster address 403e to be deleted is the intra-cluster address of the memory block 106, and the replacement cluster number 409 is the pointer move request communication packet 426.
A delete request communication packet 424 is transmitted as the cluster number of the destination cluster, and a request to delete the own cluster number is issued.

【0138】(2−3)読み出したキャッシュディレク
トリ109がビットマップモード170であった場合
は、当該ディレクトリ109に保持されているクラスタ
番号を一つ選択し、そのクラスタに対応するビットを0
とし、そのクラスタに対してビットマップ移動通信を行
い、クラスタ記憶フィールド150を転送する。この
後、置き換えクラスタ番号409をビットマップ移動通
信の送信先クラスタ番号とし、対応するメモリブロック
106を保有するクラスタに対して、自クラスタ番号の
削除要求通信を送信する。
(2-3) When the read cache directory 109 is in the bitmap mode 170, one cluster number held in the directory 109 is selected and the bit corresponding to the cluster is set to 0.
Then, bitmap mobile communication is performed with respect to the cluster, and the cluster storage field 150 is transferred. After that, the replacement cluster number 409 is set as the destination cluster number of the bitmap mobile communication, and the self cluster number deletion request communication is transmitted to the cluster having the corresponding memory block 106.

【0139】(3)以上のようにして、自クラスタのク
ラスタ番号を木構造から削除した後は、当該キャッシュ
ライン108に新たなメモリブロック106のデータを
キャッシングすることができる。
(3) After deleting the cluster number of its own cluster from the tree structure as described above, the data of the new memory block 106 can be cached in the cache line 108.

【0140】(動作例)以下に本実施例のキャッシュデ
ィレクトリ方式の動作例を示す。本動作例では、クラス
タ数は1024、クラスタ番号のポインタフィールド1
およびポインタフィールド2は各2ビット、ビットマッ
プフィールドは6ビットで表わされるものとする。な
お、数字の後ろに付けた(2)は、その数字が2進数で
あることを示すものとする。また、クラスタ番号がnで
あるクラスタは、単にクラスタnと呼ぶものとする。
(Operation Example) An operation example of the cache directory system of this embodiment will be shown below. In this operation example, the number of clusters is 1024, and the pointer field 1 of the cluster number
The pointer field 2 is represented by 2 bits and the bitmap field is represented by 6 bits. The number (2) added after the number indicates that the number is binary. A cluster having a cluster number of n is simply called a cluster n.

【0141】(1)図6に、クラスタ0100000011(2)の
メモリブロックMのディレクトリの初期状態を示す。初
期状態ではメモリブロックMは終端モードである。
(1) FIG. 6 shows the initial state of the directory of the memory block M of the cluster 0100000011 (2). In the initial state, the memory block M is in the termination mode.

【0142】(2)(1)の状態でクラスタ0100000001
(2)がクラスタ0100000011(2)に対してメモリブロックM
の読み出し要求通信を行うと、クラスタ0100000011(2)
はクラスタ0100000001(2)に対してメモリブロックMの内
容を読み出し返答通信で返す。このとき、クラスタ0100
000001(2)のキャッシュディレクトリは終端モードとな
り、クラスタ0100000011(2)の主記憶ディレクトリは読
み出し要求通信(4−1)に従いポインタモードとな
る。この状態を図7に示す。
(2) Cluster 0100000001 in the state of (1)
(2) is memory block M for cluster 0100000011 (2)
Read request communication of the cluster 0100000011 (2)
Reads the contents of memory block M to cluster 0100000001 (2) and returns it in response communication. At this time, cluster 0100
The cache directory of 000001 (2) is in the termination mode, and the main storage directory of the cluster 0100000011 (2) is in the pointer mode according to the read request communication (4-1). This state is shown in FIG.

【0143】(3)(2)の状態でクラスタ0100000100
(2)がクラスタ0100000011(2)に対してメモリブロックM
の読み出し要求通信を行うと、クラスタ0100000011(2)
はクラスタ0100000100(2)に対してメモリブロックMの内
容を読み出し返答通信で返す。このとき、クラスタ0100
000100(2)のキャッシュディレクトリは終端モードとな
り、クラスタ0100000011(2)の主記憶ディレクトリは読
み出し要求通信(4−3)に従いビットマップモードと
なる。この状態を図8に示す。
(3) In the state of (2), the cluster 0100000100
(2) is memory block M for cluster 0100000011 (2)
Read request communication of the cluster 0100000011 (2)
Reads the contents of memory block M to cluster 0100000100 (2) and returns it in response communication. At this time, cluster 0100
The cache directory of 000100 (2) is in the termination mode, and the main storage directory of the cluster 0100000011 (2) is in the bitmap mode according to the read request communication (4-3). This state is shown in FIG.

【0144】(4)(3)の状態で、クラスタ10010000
01(2)がクラスタ0100000011(2)に対してメモリブロック
Mの読み出し要求通信を行うと、クラスタ0100000011(2)
はクラスタ1001000001(2)に対してメモリブロックMの内
容を読み出し返答通信で返す。このとき、クラスタ1001
000001(2)のキャッシュディレクトリは終端モードとな
り、クラスタ0100000011(2)の主記憶ディレクトリは読
み出し要求通信(4−6)に従いポインタモードとな
る。クラスタ0100000011(2)はビットマップ移動通信を
行い、クラスタ0100000001(2)にビットマップを移動す
る。これに従い、クラスタ0100000001(2)はビットマッ
プモードとなる。この状態を図9に示す。
(4) In the state of (3), the cluster 10010000
01 (2) is a memory block for cluster 0100000011 (2)
When read request communication of M is performed, cluster 0100000011 (2)
Reads the contents of memory block M to cluster 1001000001 (2) and returns it in response communication. At this time, the cluster 1001
The cache directory of 000001 (2) becomes the termination mode, and the main memory directory of the cluster 0100000011 (2) becomes the pointer mode according to the read request communication (4-6). The cluster 0100000011 (2) performs bitmap mobile communication and moves the bitmap to the cluster 0100000001 (2). Accordingly, the cluster 0100000001 (2) is in the bitmap mode. This state is shown in FIG.

【0145】(5)(4)の状態で、クラスタ10110000
10(2)がクラスタ0100000011(2)に対してメモリブロック
Mの読み出し通信を行うと、クラスタ0100000011(2)はク
ラスタ1011000010(2)に対してメモリブロックMの内容を
読み出し返答通信で返す。このとき、クラスタ10110000
10(2)のキャッシュディレクトリは終端モードとなる。
クラスタ0100000011(2)は、読み出し要求通信(4−
4)に従いクラスタ1001000001(2)に対して追加要求通
信を行う。クラスタ1001000001(2)は、追加要求通信を
受けて、ポインタモードとなる。この状態を図10に示
す。
(5) In the state of (4), the cluster 10110000
10 (2) is a memory block for cluster 0100000011 (2)
When the read communication of M is performed, the cluster 0100000011 (2) returns the content of the memory block M to the cluster 1011000010 (2) by read response communication. At this time, cluster 10110000
The 10 (2) cache directory is in termination mode.
The cluster 0100000011 (2) uses the read request communication (4-
According to 4), additional request communication is performed to the cluster 1001000001 (2). The cluster 1001000001 (2) receives the add request communication and enters the pointer mode. This state is shown in FIG.

【0146】(6)(5)の状態で、クラスタ10010000
01(2)でメモリブロックMがキャッシュのリプレースによ
り無効となると、キャッシュリプレース時の動作(2−
2)に従い、クラスタ1001000001(2)は、クラスタ10110
00010(2)に対してポインタ移動要求通信を行う。また、
クラスタ0100000011(2)に対して置き換えクラスタ番号
を1011000010(2)とし、削除要求通信を行う。
(6) In the state of (5), the cluster 10010000
When the memory block M is invalidated by the cache replacement at 01 (2), the cache replacement operation (2-
According to 2), cluster 1001000001 (2) becomes cluster 10110.
[0010] Pointer movement request communication is performed with respect to (2). Also,
The replacement cluster number is set to 1011000010 (2) for the cluster 0100000011 (2), and the deletion request communication is performed.

【0147】クラスタ1011000010(2)は、ポインタ移動
要求通信を受けて、ポインタ移動要求通信(3−3)に
従い終端モードの状態を維持する。クラスタ0100000011
(2)は削除要求通信を受けて、削除要求通信(2−1)
に従い、クラスタ1011000010(2)をポインタフィールド
に登録する。この状態を図11に示す。
The cluster 1011000010 (2) receives the pointer movement request communication and maintains the state of the termination mode according to the pointer movement request communication (3-3). Cluster 0100000011
(2) receives the delete request communication, and delete request communication (2-1)
In accordance with this, the cluster 1011000010 (2) is registered in the pointer field. This state is shown in FIG.

【0148】(7)(6)の状態で、クラスタ01000000
11(2)に対してメモリブロックMの書き込み要求通信が到
着すると、クラスタ0100000011(2)はクラスタ010000000
1(2)およびクラスタ1011000010(2)に対して無効化要求
通信を送信する。クラスタ0100000001(2)は、無効化要
求通信を受けて、クラスタ0100000100(2)に対して無効
化要求通信を送信する。無効化要求通信を受けた全クラ
スタは、メモリブロックMをキャッシングしているキャ
ッシュラインを無効化する。
(7) In the state of (6), the cluster 01000000
When the write request communication of the memory block M arrives at 11 (2), the cluster 01000000 11 (2) becomes the cluster 010000000.
The invalidation request communication is transmitted to 1 (2) and the cluster 1011000010 (2). Upon receiving the invalidation request communication, the cluster 0100000001 (2) transmits the invalidation request communication to the cluster 0100000100 (2). All the clusters that have received the invalidation request communication invalidate the cache line that is caching the memory block M.

【0149】上記実施例によれば、主記憶ディレクトリ
107およびキャッシュディレクトリ109にポインタ
モード160、ビットマップモード170および終端モ
ード180を持たせ、以上に述べた通信を設けることに
より、図2に示した木構造でメモリブロックをキャッシ
ングした全クラスタを管理することができる。
According to the above embodiment, the main memory directory 107 and the cache directory 109 are provided with the pointer mode 160, the bitmap mode 170, and the termination mode 180, and the communication described above is provided, so that the configuration shown in FIG. It is possible to manage all clusters that cache memory blocks in a tree structure.

【0150】(実施例2)本発明の実施例2を説明す
る。本実施例は実施例1の変形であるため、相違点につ
いてのみ説明する。本実施例は、クラスタ100内の主
記憶制御回路105およびキャッシュ制御回路104の
動作を変更することにより、主記憶装置103への書き
込み時に、書き込む対象のメモリブロック106をキャ
ッシングしている全キャッシュライン108の無効化の
完了を保証する点が異なる。
(Second Embodiment) A second embodiment of the present invention will be described. Since the present embodiment is a modification of the first embodiment, only differences will be described. In this embodiment, by changing the operations of the main memory control circuit 105 and the cache control circuit 104 in the cluster 100, all the cache lines that cache the memory block 106 to be written at the time of writing to the main memory device 103. The difference is that the completion of the invalidation of 108 is guaranteed.

【0151】本実施例では、実施例1の書き込み要求通
信および無効化要求通信の動作を変更し、これらに対し
て書き込み返答通信および無効化返答通信を設ける。
In this embodiment, the operations of the write request communication and the invalidation request communication of the first embodiment are changed, and write reply communication and invalidation reply communication are provided for them.

【0152】(書き込み要求通信の変更点)本実施例の
書き込み要求通信は、実施例1の(1)〜(3)の処理
の後に以下を追加する。 (4)クラスタ記憶フィールド150に登録されている
全てのクラスタからの無効化返答通信を受信するのを待
つ。 (5)書き込み要求通信の発行元に対して書き込み返答
通信を送信する。
(Changes in Write Request Communication) In the write request communication of this embodiment, the following is added after the processes (1) to (3) of the first embodiment. (4) Wait for receipt of invalidation reply communication from all clusters registered in the cluster storage field 150. (5) A write response communication is transmitted to the issuer of the write request communication.

【0153】(無効化要求通信の変更点)本実施例の無
効化要求通信は、実施例1の(3)および(4)を以下
の処理に変更する。
(Changes of Invalidation Request Communication) In the invalidation request communication of this embodiment, (3) and (4) of the first embodiment are changed to the following processing.

【0154】(3)読み出したキャッシュディレクトリ
109のモードにより、(3−1)または(3−2)の
いずれかを行う。 (3−1)読み出したキャッシュディレクトリ109が
ポインタモード160またはビットマップモード170
であった場合、キャッシュ制御回路104は、クラスタ
記憶フィールド150に登録されている全てのクラスタ
に対して、ネットワークインターフェイス回路112を
通じて無効化要求通信を送信する。 (3−2)読み出したキャッシュディレクトリ109が
終端モード180であった場合、キャッシュ制御回路1
09は当該キャッシュライン108を無効化し、無効化
返答通信を無効化要求通信発行元に送信する。(4)以
下の処理は行わない。
(3) Either (3-1) or (3-2) is performed depending on the mode of the read cache directory 109. (3-1) The read cache directory 109 is the pointer mode 160 or the bitmap mode 170.
If so, the cache control circuit 104 transmits the invalidation request communication through the network interface circuit 112 to all the clusters registered in the cluster storage field 150. (3-2) When the read cache directory 109 is in the termination mode 180, the cache control circuit 1
09 invalidates the cache line 108 and sends the invalidation reply communication to the invalidation request communication issuer. (4) The following processing is not performed.

【0155】(4)クラスタ記憶フィールドに登録され
ている全てのクラスタからの無効化返答通信を受信する
のを待つ。 (5)当該キャッシュラインを無効化し、無効化返答通
信を無効化要求通信発行元に送信する。
(4) Wait for receipt of invalidation reply communication from all clusters registered in the cluster storage field. (5) The cache line is invalidated, and the invalidation reply communication is transmitted to the invalidation request communication issuer.

【0156】本実施例により、全クラスタのキャッシュ
ラインを無効化した後、書き込みを反映することができ
る。
According to this embodiment, writing can be reflected after the cache lines of all clusters are invalidated.

【0157】(実施例3)本発明の実施例3を説明す
る。本実施例は実施例1の変形であるため、相違点のみ
説明する。本実施例は、クラスタ100内の主記憶制御
回路105およびキャッシュ制御回路104の動作を変
更することにより、書き込み更新型キャッシュ一致制御
を実現する点が異なる。書き込み更新型とは、あるメモ
リブロックに対する書き込みが行われた場合に、当該メ
モリブロックをキャッシングしているすべてのキャッシ
ュラインにその書き込みデータを反映させることを言
う。
Example 3 Example 3 of the present invention will be described. Since this embodiment is a modification of the first embodiment, only different points will be described. The present embodiment is different in that the write / update cache coincidence control is realized by changing the operations of the main memory control circuit 105 and the cache control circuit 104 in the cluster 100. The write update type means that when a write is performed on a certain memory block, the write data is reflected on all the cache lines that are caching that memory block.

【0158】本実施例では、実施例1の書き込み要求通
信の動作を変更し、更新要求通信を設ける。
In this embodiment, the operation of the write request communication of the first embodiment is changed to provide the update request communication.

【0159】(書き込み要求通信の変更点)本実施例の
書き込み要求通信は、実施例1の(3−1)および(3
−2)を以下の処理に変更する。
(Changes in Write Request Communication) The write request communication of this embodiment is the same as (3-1) and (3) of the first embodiment.
-2) is changed to the following processing.

【0160】(3−1)アクセスしたメモリブロック1
06の主記憶ディレクトリ107がポインタモード16
0またはビットマップモードであった場合、クラスタ記
憶フィールド150に登録されている全てのクラスタに
対して更新要求通信を送信する。 (3−2)アクセスしたメモリブロック106の主記憶
ディレクトリ107が終端モード180であった場合、
当該メモリブロック106はどこにもキャッシングされ
ていないため、キャッシュの一貫性制御はおこなわな
い。
(3-1) Accessed memory block 1
06 main memory directory 107 is pointer mode 16
If it is 0 or the bitmap mode, the update request communication is transmitted to all the clusters registered in the cluster storage field 150. (3-2) When the main storage directory 107 of the accessed memory block 106 is in the termination mode 180,
Since the memory block 106 is not cached anywhere, cache coherency control is not performed.

【0161】(更新要求通信)クラスタ100に対する
更新要求通信は、書き込みにより更新するデータとその
アドレスとからなる更新要求通信パケットを送信するこ
とにより行われる。更新要求通信パケットを受信したと
きの処理は以下の通りである。
(Update Request Communication) Update request communication with the cluster 100 is performed by transmitting an update request communication packet consisting of data to be updated by writing and its address. The process when the update request communication packet is received is as follows.

【0162】(1)ネットワークインターフェイス回路
112は、更新要求通信パケットのアドレスを用いてキ
ャッシュ制御回路104に対してキャッシュ書き込み要
求を行う。 (2)キャッシュ制御回路104は、キャッシュ書き込
み要求のアドレスを用いて、キャッシュメモリ102
の、当該アドレスに対応するキャッシュライン102に
書き込みを行うとともに、キャッシュディレクトリ10
9およびモードフィールド110を読み出す。
(1) The network interface circuit 112 makes a cache write request to the cache control circuit 104 using the address of the update request communication packet. (2) The cache control circuit 104 uses the address of the cache write request to write to the cache memory 102.
Of the cache directory 10 while writing to the cache line 102 corresponding to the address.
9 and the mode field 110 are read.

【0163】(3−1)アクセスしたキャッシュディレ
クトリ104がポインタモード160またはビットマッ
プモード170であった場合、クラスタ記憶フィールド
150に登録されている全てのクラスタに対して更新要
求通信を送信する。 (3−2)アクセスしたキャッシュディレクトリ109
が終端モード180であった場合、メモリブロック10
6は以下の階層にはキャッシングされていないため、キ
ャッシュの一貫性制御はおこなわない。
(3-1) When the accessed cache directory 104 is in the pointer mode 160 or the bitmap mode 170, the update request communication is transmitted to all the clusters registered in the cluster storage field 150. (3-2) Accessed cache directory 109
Is the termination mode 180, the memory block 10
Since 6 is not cached in the layers below, cache coherency control is not performed.

【0164】本実施例により、本発明のディレクトリ方
式で、書き込み更新型キャッシュ一致制御を実現するこ
とができる。
According to the present embodiment, the write / update type cache coincidence control can be realized by the directory system of the present invention.

【0165】なお、本実施例においても、上記実施例2
と同様にして、書き込み要求に対して当該メモリブロッ
クをキャッシングしている全クラスタのキャッシュの更
新の完了を保証することができる。具体的には、更新要
求通信を発行したクラスタは更新返答通信を受けるまで
待ち、更新要求の相手先である全てのクラスタから更新
返答通信を受けたら、自クラスタに対して更新要求を発
行したクラスタに更新返答通信を発行するようにする。
そして、書き込み対象のクラスタでは、書き込み対象の
メモリブロックに対応する主記憶ディレクトリにより指
し示される全てのクラスタから更新返答通信を受けた
ら、書き込みを発行したクラスタに対して更新返答通信
を送信し、書き込みを発行したクラスタは、更新返答通
信を受けるまで待つことにより、全クラスタに対する書
き込みの完了を保証する。
Also in this embodiment, the above-mentioned embodiment 2 is used.
Similarly, it is possible to guarantee the completion of the update of the caches of all clusters caching the memory block in response to the write request. Specifically, the cluster that issued the update request communication waits until it receives the update response communication, and when it receives the update response communication from all of the update request destination clusters, the cluster that issued the update request to its own cluster. Issue an update reply communication to.
Then, in the write target cluster, when the update response communication is received from all the clusters indicated by the main memory directory corresponding to the write target memory block, the update response communication is transmitted to the cluster that issued the write, and the write is sent. The cluster that issued the command waits until it receives the update response communication, thereby guaranteeing the completion of writing to all clusters.

【0166】(実施例4)本発明の実施例4を説明す
る。図12は、本実施例に係る並列計算機の構成を示
す。本実施例は実施例1の変形であるため、相違点のみ
説明する。なお、図12において、図1と共通の装置・
回路には同一の番号に−1を付けて表すものとし、実施
例1の説明を流用する部分は番号に−1を付けたものに
読み替えるものとする。
(Fourth Embodiment) A fourth embodiment of the present invention will be described. FIG. 12 shows the configuration of the parallel computer according to this embodiment. Since this embodiment is a modification of the first embodiment, only different points will be described. In addition, in FIG. 12, a device common to FIG.
It is assumed that the circuits are represented by the same numbers with -1 added thereto, and the parts to which the description of the first embodiment is applied are replaced with the numbers with -1 added.

【0167】上記実施例1では、クラスタ100内のキ
ャッシュメモリ102および主記憶装置103のブロッ
ク毎にキャッシュディレクトリ109および主記憶ディ
レクトリ107、モードフィールド110を設けた。こ
れに対し、実施例4では、キャッシュディレクトリ10
9−1および主記憶ディレクトリ107−1を別に設け
ることにより、これらのメモリ量を減らす点が異なる。
In the first embodiment, the cache directory 109, the main storage directory 107, and the mode field 110 are provided for each block of the cache memory 102 and the main storage device 103 in the cluster 100. On the other hand, in the fourth embodiment, the cache directory 10
By providing the 9-1 and the main memory directory 107-1 separately, the difference is that the amount of these memories is reduced.

【0168】図12において、キャッシュディレクトリ
109−1は、キャッシュライン108−1の中で、終
端モード以外のキャッシュラインのキャッシュライン番
号、キャッシュディレクトリ109−1、およびモード
フィールド110−1を保持する。主記憶ディレクトリ
107−1は、メモリブロック106−1の中で、終端
モード以外のメモリブロックのメモリブロック番号、主
記憶ディレクトリ107−1、およびモードフィールド
110−1を保持する。
In FIG. 12, the cache directory 109-1 holds the cache line numbers of cache lines other than the termination mode in the cache line 108-1, the cache directory 109-1, and the mode field 110-1. The main memory directory 107-1 holds the memory block numbers of the memory blocks other than the termination mode in the memory block 106-1, the main memory directory 107-1, and the mode field 110-1.

【0169】本実施例では、実施例1の読み出し要求通
信、書き込み要求通信、追加要求通信、削除要求通信、
ビットマップ移動要求通信、およびポインタ移動要求通
信に以下の変更および追加を行う。
In this embodiment, the read request communication, the write request communication, the addition request communication, the deletion request communication of the first embodiment,
The following changes and additions are made to the bitmap move request communication and pointer move request communication.

【0170】(読み出し要求通信の変更点) (2)主記憶制御回路105−1は、送信先クラスタ内
アドレス403aを用いて、主記憶装置103−1から
当該アドレスに対応するメモリブロック106−1を読
み出す。さらに、当該メモリブロック106−1に対応
する主記憶ディレクトリ107−1およびモードフィー
ルド110−1があれば、それらを読み出す。
(Changes in Read Request Communication) (2) The main memory control circuit 105-1 uses the destination intra-cluster address 403a to transfer from the main memory 103-1 to the memory block 106-1 corresponding to the address. Read out. Further, if there is a main memory directory 107-1 and a mode field 110-1 corresponding to the memory block 106-1, they are read.

【0171】(4−1)アクセスしたメモリブロック1
06−1に対応する主記憶ディレクトリ107−1およ
びモードフィールド110−1がないときは、当該メモ
リブロック106−1が終端モードであるということで
ある。この場合、主記憶制御回路105−1は、主記憶
ディレクトリ107−1の空きエントリを当該メモリブ
ロック106−1に割り当てる。主記憶ディレクトリ1
07−1に空きのエントリが存在しない場合、主記憶制
御回路105−1は、主記憶ディレクトリ107−1の
中から1エントリを選択し、リプレースする。この後、
このエントリを、読み出し要求通信で読み出した主記憶
メモリブロック106−1に対応する主記憶ディレクト
リ107−1として使用する。以後の処理は、実施例1
の(4−1)と同じである。
(4-1) Accessed memory block 1
If there is no main memory directory 107-1 and mode field 110-1 corresponding to 06-1, it means that the memory block 106-1 is in the termination mode. In this case, the main memory control circuit 105-1 allocates the empty entry of the main memory directory 107-1 to the memory block 106-1. Main memory directory 1
If there is no empty entry in 07-1, the main memory control circuit 105-1 selects one entry from the main memory directory 107-1 and replaces it. After this,
This entry is used as the main storage directory 107-1 corresponding to the main storage memory block 106-1 read by the read request communication. The subsequent processing is the same as in the first embodiment.
It is the same as (4-1).

【0172】(書き込み要求通信の変更点) (3−1)実施例1の(3−1)と同じ処理を行う。た
だし、「当該主記憶ディレクトリ107を終端モード1
80に変更する」代わりに、主記憶制御回路105−1
は、書き込み要求通信を受けた主記憶のメモリブロック
106−1に対応する主記憶ディレクトリ107−1の
エントリを空きエントリに変更する。
(Changes in Write Request Communication) (3-1) The same processing as (3-1) in the first embodiment is performed. However, “the main storage directory 107 is set to the end mode 1
Change to 80 "instead of the main memory control circuit 105-1
Changes the entry of the main memory directory 107-1 corresponding to the memory block 106-1 of the main memory which has received the write request communication, to an empty entry.

【0173】(追加要求通信の変更点) (1)実施例1の(1)と同様にしてキャッシュディレ
クトリ109−1を読み出す。ただし、本実施例4で
は、キャッシュディレクトリがない場合もある。
(Changes in Addition Request Communication) (1) The cache directory 109-1 is read in the same manner as in (1) of the first embodiment. However, in the fourth embodiment, there may be no cache directory.

【0174】(2−1)キャッシュディレクトリがない
ときは、当該キャッシュライン108−1が終端モード
であるということである。この場合、キャッシュ制御回
路104−1は、キャッシュディレクトリ109−1の
空きエントリを当該キャッシュライン108−1に割り
当てる。キャッシュディレクトリ109−1に空きのエ
ントリが存在しない場合、キャッシュ制御回路104−
1は、キャッシュディレクトリ109−1の中から1エ
ントリを選択し、リプレースする。この後、このエント
リを、追加要求通信に対応する当該キャッシュライン1
08−1のキャッシュディレクトリ109−1として使
用する。以後の処理は、実施例1の(2−1)と同じで
ある。
(2-1) When there is no cache directory, it means that the cache line 108-1 is in the termination mode. In this case, the cache control circuit 104-1 allocates the empty entry of the cache directory 109-1 to the cache line 108-1. If there is no empty entry in the cache directory 109-1, the cache control circuit 104-
1 selects one entry from the cache directory 109-1 and replaces it. After this, this entry is changed to the cache line 1 corresponding to the addition request communication.
It is used as the cache directory 109-1 of 08-1. Subsequent processing is the same as (2-1) of the first embodiment.

【0175】(削除要求通信の変更点) (2−1)実施例1の(2−1)と同じ処理を行う。た
だし、クラスタ記憶フィールド150に登録されている
クラスタ番号の数が0となったときは、当該ディレクト
リのモードを終端モードに変更する代わりに、当該ディ
レクトリを空きエントリに変更する。
(Changes in Delete Request Communication) (2-1) The same processing as (2-1) in the first embodiment is performed. However, when the number of cluster numbers registered in the cluster storage field 150 becomes 0, the directory is changed to an empty entry instead of changing the mode of the directory to the termination mode.

【0176】(2−3)実施例1の(2−3)と同じ処
理を行う。ただし、クラスタ記憶フィールド150に保
持するビットマップが全て0となったときは、当該ディ
レクトリのモードを終端モードに変更する代わりに、当
該ディレクトリを空きエントリに変更する。
(2-3) The same processing as (2-3) of the first embodiment is performed. However, when all the bitmaps held in the cluster storage field 150 become 0, the directory is changed to an empty entry instead of changing the mode of the directory to the termination mode.

【0177】(ビットマップ移動要求通信の変更点) (2)実施例1の(2)と同様の処理であるが、ビット
マップ移動要求通信パケット425の移動対象クラスタ
番号402fおよび移動対象クラスタ内アドレス403
fで示されるメモリブロック106−1がキャッシング
されているキャッシュライン108−1は終端モードで
あるので、当該キャッシュライン108−1に対応する
キャッシュディレクトリ109−1はないことになる。
そこで、ビットマップ移動要求通信を受信したキャッシ
ュ制御回路104−1は、キャッシュディレクトリ10
9−1の空きエントリを当該キャッシュライン108−
1に割り当てる。キャッシュディレクトリ109−1に
空きのエントリが存在しない場合、キャッシュ制御回路
104−1は、キャッシュディレクトリ109−1の中
から1エントリを選択し、リプレースする。この後、こ
のエントリを、ビットマップ移動要求通信に対応するキ
ャッシュライン108−1のキャッシュディレクトリ1
09−1として使用する。
(Changes in Bitmap Move Request Communication) (2) Same processing as (2) in the first embodiment, except that the move target cluster number 402f and move target cluster address of the bitmap move request communication packet 425 are the same. 403
Since the cache line 108-1 in which the memory block 106-1 indicated by f is cached is in the termination mode, there is no cache directory 109-1 corresponding to the cache line 108-1.
Therefore, the cache control circuit 104-1 that has received the bitmap move request communication causes the cache directory 10
9-1 empty entry to the relevant cache line 108-
Assign to 1. If there is no empty entry in the cache directory 109-1, the cache control circuit 104-1 selects one entry from the cache directory 109-1 and replaces it. Thereafter, this entry is added to the cache directory 1 of the cache line 108-1 corresponding to the bitmap move request communication.
Used as 09-1.

【0178】(3)実施例1の(3)と同様の処理であ
るが、ビットマップの全ビットが0である場合は、終端
モードに変更する代わりに、当該キャッシュディレクト
リ109−1を空きエントリに変更する。
(3) The same processing as (3) in the first embodiment is performed, but when all the bits of the bitmap are 0, instead of changing to the termination mode, the cache directory 109-1 is set to a free entry. Change to.

【0179】(ポインタ移動要求通信の変更点) (2)実施例1の(2)と同様の処理であるが、当該キ
ャッシュライン108−1に対応するキャッシュディレ
クトリ109−1がない場合があり、それが終端モード
の場合である。終端モードの場合は(3−3)へ進む。
(Changes in Pointer Move Request Communication) (2) The same processing as (2) in the first embodiment, but there is a case where the cache directory 109-1 corresponding to the cache line 108-1 does not exist, That is the case in termination mode. If it is the termination mode, proceed to (3-3).

【0180】(3−3)ポインタ移動要求通信を受信し
たキャッシュ制御回路104−1は、キャッシュディレ
クトリ109−1の空きエントリを当該キャッシュライ
ン108−1に割り当てる。キャッシュディレクトリ1
09−1に空きのエントリが存在しない場合、キャッシ
ュ制御回路104−1は、キャッシュディレクトリ10
9−1の中から1エントリを選択し、リプレースする。
この後、このエントリを、ポインタ移動要求通信に対応
するキャッシュライン108−1のキャッシュディレク
トリ109−1として使用する。
(3-3) The cache control circuit 104-1 having received the pointer movement request communication allocates a free entry in the cache directory 109-1 to the cache line 108-1. Cache directory 1
If there is no empty entry in 09-1, the cache control circuit 104-1 determines that the cache directory 10
One entry is selected from 9-1 and replaced.
After that, this entry is used as the cache directory 109-1 of the cache line 108-1 corresponding to the pointer movement request communication.

【0181】本実施例により、キャッシュラインより少
ない数のキャッシュディレクトリおよび主記憶ブロック
より少ない数の主記憶ディレクトリを使って、実施例1
と同様のプロセッサ間データ一貫性保証装置を実現する
ことができる。
According to the present embodiment, the cache directory and the main memory directories, which are smaller in number than the cache lines and main memory blocks, are used in the first embodiment.
It is possible to realize an inter-processor data consistency assurance device similar to.

【0182】(実施例5)本発明の実施例5を説明す
る。図13は、本実施例に係る並列計算機の構成を示
す。本実施例は実施例4の変形であるため、相違点のみ
説明する。なお、図13において、図12と共通の装置
・回路は番号の−1を−2に変えて表すものとし、実施
例4の説明における番号は読み替えるものとする。
(Fifth Embodiment) A fifth embodiment of the present invention will be described. FIG. 13 shows the configuration of the parallel computer according to this embodiment. Since this embodiment is a modification of the fourth embodiment, only different points will be described. Note that, in FIG. 13, the devices and circuits common to those in FIG. 12 are represented by changing the number -1 to -2, and the numbers in the description of the fourth embodiment will be replaced.

【0183】本実施例は、クラスタ100−2内のキャ
ッシュディレクトリ109−2および主記憶ディレクト
リ107−2を、キャッシュメモリ102−2および主
記憶装置103−2上に設ける点が異なる。
The present embodiment is different in that the cache directory 109-2 and the main storage directory 107-2 in the cluster 100-2 are provided on the cache memory 102-2 and the main storage device 103-2.

【0184】本実施例により、キャッシュメモリおよび
主記憶装置の他にディレクトリ格納用のメモリを用意す
ることなく、実施例1と同様のプロセッサ間データ一貫
性保証装置を実現することができる。
According to this embodiment, the same inter-processor data consistency guarantee device as that of the first embodiment can be realized without preparing a memory for storing a directory in addition to the cache memory and the main storage device.

【0185】(実施例6)次に、本発明の第6の実施例
について説明する。本実施例は実施例1の変形であるた
め、相違点のみ説明する。本実施例は、クラスタ内のプ
ロセッサがキャッシュ一貫性制御の処理の一部を分担す
る点が異なる。すなわち本実施例は、主記憶ディレクト
リ107またはキャッシュディレクトリ109の動作モ
ードがポインタモードからビットマップモードに変わる
場合の変更処理を、クラスタ100内の特定のプロセッ
サ101で実行する点を特徴とする。ただし、本発明
は、主記憶制御回路およびキャッシュ制御回路とプロセ
ッサとの処理の分担の仕方にかかわらず用いることがで
きる。
(Embodiment 6) Next, a sixth embodiment of the present invention will be described. Since this embodiment is a modification of the first embodiment, only different points will be described. The present embodiment is different in that the processors in the cluster share part of the cache coherency control processing. That is, the present embodiment is characterized in that the changing process when the operation mode of the main memory directory 107 or the cache directory 109 is changed from the pointer mode to the bitmap mode is executed by the specific processor 101 in the cluster 100. However, the present invention can be used regardless of how the processing is shared between the main memory control circuit and the cache control circuit and the processor.

【0186】本実施例では、実施例1の読み出し要求通
信、および追加要求通信を以下の様に変更する。
In this embodiment, the read request communication and the addition request communication of the first embodiment are changed as follows.

【0187】(読み出し要求通信の変更点) (4−3)ネットワークインターフェイス回路112
は、主記憶制御回路105からプロセッサ処理の要求通
知を受け、ディレクトリ制御を行うプロセッサ101に
割り込みをかける。プロセッサ101は、アクセス対象
のメモリブロック106の主記憶ディレクトリ107を
読み出し、主記憶ディレクトリ107のモードフィール
ド110をビットマップモード170に変更し、ポイン
タモード160でクラスタ記憶フィールド150のエン
トリに登録されていたクラスタ番号に対応するビットを
1とする。
(Changes in Read Request Communication) (4-3) Network Interface Circuit 112
Receives a processor processing request notification from the main memory control circuit 105 and interrupts the processor 101 that controls the directory. The processor 101 reads the main memory directory 107 of the memory block 106 to be accessed, changes the mode field 110 of the main memory directory 107 to the bitmap mode 170, and is registered in the entry of the cluster memory field 150 in the pointer mode 160. The bit corresponding to the cluster number is set to 1.

【0188】(追加要求通信の変更点) (2−3)ネットワークインターフェイス回路112
は、キャッシュ制御回路104からプロセッサ処理の要
求通知を受け、ディレクトリ制御を行うプロセッサ10
1に割り込みをかける。プロセッサ101は、アクセス
対象のキャッシュライン108のキャッシュディレクト
リ109を読み出し、キャッシュディレクトリ109の
モードフィールド110をビットマップモード170に
変更し、ポインタモード160でクラスタ記憶フィール
ド150に登録されていた全てのクラスタ番号に対応す
るビットを1とした後、追加対象のクラスタ番号に対応
するビットを1とする。
(Changes in Addition Request Communication) (2-3) Network Interface Circuit 112
Receives the processor processing request notification from the cache control circuit 104 and performs the directory control on the processor 10.
Interrupt 1 The processor 101 reads the cache directory 109 of the cache line 108 to be accessed, changes the mode field 110 of the cache directory 109 to the bitmap mode 170, and sets all the cluster numbers registered in the cluster storage field 150 in the pointer mode 160. After setting the bit corresponding to 1 to 1, the bit corresponding to the cluster number to be added is set to 1.

【0189】本実施例により、ポインタモードからディ
レクトリモードへの移行時に必要な変更処理をプロセッ
サ101上のソフトウェアで行うことができ、キャッシ
ュ制御装置および主記憶制御装置のハードウェア量を削
減し、実施例1と同様のプロセッサ間データ一貫性保証
装置を実現することができる。
According to the present embodiment, the change processing required when shifting from the pointer mode to the directory mode can be performed by the software on the processor 101, and the hardware amounts of the cache control device and the main storage control device can be reduced and implemented. An inter-processor data consistency guarantee device similar to that of Example 1 can be realized.

【0190】[0190]

【発明の効果】本発明によれば、下位の階層の全クラス
タのキャッシング状態を管理する特別なディレクトリ管
理専用の制御回路を設けたり、特定のクラスタにディレ
クトリ管理を行わせることなく、ツリーディレクトリ方
式と比較して階層の高さが低いキャッシュディレクトリ
方式を実現できる。すなわち、多数のプロセッサからな
る並列計算機において、ツリーディレクトリ方式や階層
型フルマップディレクトリ方式と同程度の大きさのディ
レクトリしか使用せず、ツリーディレクトリ方式より階
層が低く、階層型フルマップディレクトリ方式のように
特定のディレクトリ管理ノードへのアクセスが集中しな
いディレクトリ管理方式を用いたプロセッサ間データ一
貫性保証装置が提供される。
According to the present invention, a tree directory system is provided without providing a special control circuit dedicated to directory management for managing the caching states of all clusters in the lower hierarchy, or allowing a specific cluster to perform directory management. It is possible to realize a cache directory system with a lower hierarchy compared to In other words, in a parallel computer consisting of a large number of processors, only a directory of the same size as the tree directory method or the hierarchical full map directory method is used, and the hierarchy is lower than the tree directory method. An inter-processor data consistency assurance device using a directory management method that does not concentrate access to a specific directory management node is provided.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の実施例に係る並列計算機の構成図。FIG. 1 is a configuration diagram of a parallel computer according to an embodiment of the present invention.

【図2】木構造のディレクトリによるキャッシュライン
の管理の仕方を示す図
FIG. 2 is a diagram showing a method of managing cache lines using a tree-structured directory.

【図3】本実施例におけるディレクトリの構成図。FIG. 3 is a configuration diagram of a directory in this embodiment.

【図4】本実施例におけるクラスタ番号の構成図。FIG. 4 is a configuration diagram of cluster numbers in the present embodiment.

【図5】本実施例におけるパケットの構成図。FIG. 5 is a configuration diagram of a packet in this embodiment.

【図6】本発明の実施例1の動作例(1)に係るディレ
クトリの連結を示す図。
FIG. 6 is a diagram showing directory connection according to an operation example (1) of the first embodiment of the present invention.

【図7】本発明の実施例1の動作例(2)に係るディレ
クトリの連結を示す図。
FIG. 7 is a diagram showing directory connection according to an operation example (2) of the first embodiment of the present invention.

【図8】本発明の実施例1の動作例(3)に係るディレ
クトリの連結を示す図。
FIG. 8 is a diagram showing directory connection according to an operation example (3) of the first exemplary embodiment of the present invention.

【図9】本発明の実施例1の動作例(4)に係るディレ
クトリの連結を示す図。
FIG. 9 is a diagram showing directory connection according to an operation example (4) of the first embodiment of the present invention.

【図10】本発明の実施例1の動作例(5)に係るディ
レクトリの連結を示す図。
FIG. 10 is a diagram showing directory connection according to an operation example (5) of the first exemplary embodiment of the present invention.

【図11】本発明の実施例1の動作例(6)に係るディ
レクトリの連結を示す図。
FIG. 11 is a diagram showing directory connection according to the operation example (6) of the first embodiment of the present invention.

【図12】本発明の実施例4に係る並列計算機の構成
図。
FIG. 12 is a configuration diagram of a parallel computer according to a fourth embodiment of the present invention.

【図13】本発明の実施例5に係る並列計算機の構成
図。
FIG. 13 is a configuration diagram of a parallel computer according to a fifth embodiment of the present invention.

【図14】従来のフルマップディレクトリ方式の動作を
示す図。
FIG. 14 is a diagram showing an operation of a conventional full map directory system.

【符号の説明】[Explanation of symbols]

10a〜10d…プロセッサ、12a〜12d…キャッ
シュ、20…ネットワーク、30…主記憶装置、31…
メモリブロック、32…ディレクトリ、100,100
−1〜2…クラスタ、101,101−1〜2…プロセ
ッサ、102,102−1〜2…キャッシュメモリ、1
03,103−1〜2…主記憶装置、104,104−
1〜2…キャッシュ制御回路、105,105−1〜2
…主記憶制御回路、106,106−1〜2…メモリブ
ロック、107,107−1〜2…主記憶ディレクト
リ、108,108−1〜2…キャッシュライン、10
9,109−1〜2…キャッシュディレクトリ、11
0,110−1〜2…モードフィールド、111,11
1−1〜2…バス、112,112−1〜2…ネットワ
ークインターフェイス回路、200,200−1〜2…
ネットワーク、110a〜110c…モードフィール
ド、150…クラスタ記憶フィールド、161−0〜1
61−3…クラスタ番号、162−0〜162−3…ク
ラスタ番号存在フラグ、160…ポインタモードのディ
レクトリ、170…ビットマップモードのディレクト
リ、180…終端モードのディレクトリ、171…ビッ
トマップ、301…主記憶ディレクトリ、321,32
2,331〜334,341〜345…キャッシュディ
レクトリ、350…ポインタフィールド、351…ビッ
トマップフィールド、400a〜400h…パケット送
信先クラスタ番号、401a〜401h…パケット送信
元クラスタ番号、402c〜402h…対象クラスタ番
号、403a〜403h…クラスタ内アドレス、404
…書き込みデータ、405…追加クラスタ番号、406
…ビットマップ、407…ポインタ、408…返答デー
タ、409…置き換えクラスタ番号、420…読み出し
要求通信パケット、421…書き込み要求通信パケッ
ト、422…無効化要求通信パケット、423…追加要
求通信パケット、424…削除要求通信パケット、42
5…ビットマップ移動要求通信パケット、426…ポイ
ンタ移動要求通信パケット、427…読み出し返答通信
パケット。
10a to 10d ... Processor, 12a to 12d ... Cache, 20 ... Network, 30 ... Main storage device, 31 ...
Memory block, 32 ... Directory, 100, 100
-1 to 2 ... Cluster, 101, 101-1 to 2 ... Processor, 102, 102-1 to 2 ... Cache memory, 1
03, 103-1 to 2 ... Main storage device, 104, 104-
1-2: cache control circuit 105, 105-1-2
... Main memory control circuit, 106, 106-1 and 2 ... Memory block, 107, 107-1 and 2 ... Main memory directory, 108, 108-1 and 2 ... Cache line, 10
9, 109-1 and 2 ... Cache directory, 11
0, 110-1 to 2 ... Mode field, 111, 11
1-1 and 2 ... bus, 112, 112-1 and 2 ... network interface circuit, 200 and 200-1 and 2 ...
Network, 110a to 110c ... Mode field, 150 ... Cluster storage field, 161-0 to 1
61-3 ... Cluster number, 162-0 to 162-3 ... Cluster number existence flag, 160 ... Pointer mode directory, 170 ... Bitmap mode directory, 180 ... Termination mode directory, 171 ... Bitmap, 301 ... Main Storage directory, 321, 32
2, 331 to 334, 341 to 345 ... Cache directory, 350 ... Pointer field, 351 ... Bitmap field, 400a to 400h ... Packet transmission destination cluster number, 401a to 401h ... Packet transmission source cluster number, 402c to 402h ... Target cluster No., 403a to 403h ... In-cluster address, 404
... write data, 405 ... additional cluster number, 406
... Bitmap, 407 ... Pointer, 408 ... Reply data, 409 ... Replacement cluster number, 420 ... Read request communication packet, 421 ... Write request communication packet, 422 ... Invalidation request communication packet, 423 ... Addition request communication packet, 424 ... Delete request communication packet, 42
5 ... Bitmap move request communication packet, 426 ... Pointer move request communication packet, 427 ... Read response communication packet.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤井 啓明 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Hiroaki Fujii 1-280, Higashi Koikekubo, Kokubunji, Tokyo Inside the Central Research Laboratory, Hitachi, Ltd.

Claims (11)

【特許請求の範囲】[Claims] 【請求項1】1台以上のプロセッサと主記憶装置とキャ
ッシュメモリとを備えたクラスタを複数具備するととも
に、該複数のクラスタを接続するネットワークを具備
し、各クラスタ内のプロセッサは自クラスタ内または他
クラスタ内の主記憶装置上のデータをブロック単位で自
クラスタ内のキャッシュメモリにキャッシング可能な並
列計算機のプロセッサ間データ一貫性保証装置であっ
て、 前記クラスタ内の主記憶装置は、ブロック毎に当該主記
憶ブロックをキャッシングしているクラスタを複数記録
するための主記憶ディレクトリを備え、 前記クラスタ内のキャッシュメモリは、キャッシュライ
ン毎に当該キャッシュラインでキャッシングしているの
と同一の主記憶ブロックをキャッシングしているクラス
タを複数記録するためのキャッシュディレクトリを備
え、 前記主記憶ディレクトリおよび前記キャッシュディレク
トリは、当該主記憶ブロックをキャッシングしているク
ラスタを記録する態様として2種類以上の態様の中から
1つの態様を主記憶ブロックまたはキャッシュライン毎
に選択可能であり、選択された態様で当該主記憶ブロッ
クをキャッシングしているクラスタを記録するととも
に、該態様を示すモードフィールドを備え、 前記クラスタは、自クラスタおよび他クラスタからの主
記憶装置のアクセス時に、自クラスタ内の主記憶ディレ
クトリおよび主記憶ディレクトリのモードフィールドを
制御し、主記憶ディレクトリに記録されている複数のク
ラスタに対し、前記ネットワークを介してキャッシュ制
御用の通信を発行するための主記憶制御回路を備え、 前記クラスタは、自クラスタおよび他クラスタからのキ
ャッシュ制御用の通信受信時に、自クラスタ内のキャッ
シュディレクトリおよびキャッシュディレクトリのモー
ドフィールドを制御し、キャッシュディレクトリに記録
されている複数のクラスタに対し、前記ネットワークを
介してキャッシュ制御用の通信を発行するためのキャッ
シュ制御回路を備えたことを特徴とする並列計算機のプ
ロセッサ間データ一貫性保証装置。
1. A plurality of clusters each including one or more processors, a main storage device, and a cache memory are provided, and a network connecting the plurality of clusters is provided. A data consistency assurance device between processors of a parallel computer capable of caching data in a main memory device in another cluster in a cache memory in its own cluster in block units, wherein the main memory device in the cluster is for each block. A main memory directory is provided for recording a plurality of clusters that are caching the main memory block, and the cache memory in the cluster stores the same main memory block that is cached in the cache line for each cache line. A cache for recording multiple cached clusters. The main memory directory and the cache directory, one of two or more types of modes for recording clusters caching the main memory block is provided for each main memory block or cache line. A cluster that is selectable and caches the main memory block in the selected mode is recorded, and a mode field indicating the mode is provided, and the cluster has access to the main memory device from its own cluster and other clusters. At times, a main memory directory for controlling the main memory directory in the local cluster and a mode field of the main memory directory and issuing a cache control communication via the network to a plurality of clusters recorded in the main memory directory. A memory control circuit, The raster controls the cache directory in the self-cluster and the mode field of the cache directory when receiving the cache control communication from the self-cluster and the other clusters, and sets the network to the plurality of clusters recorded in the cache directory. An inter-processor data consistency guarantee device for a parallel computer, which is provided with a cache control circuit for issuing a cache control communication via the cache.
【請求項2】前記主記憶ディレクトリは、対応する主記
憶ブロックをキャッシングしたクラスタを複数記録し、 前記主記憶ディレクトリに記録された各クラスタ内の、
当該キャッシュラインに対応するキャッシュディレクト
リは、同一主記憶ブロックをキャッシングした他のクラ
スタを複数記録し、 前記キャッシュディレクトリに記録された各クラスタ内
の、当該キャッシュラインに対応するキャッシュディレ
クトリは、同一主記憶ブロックをキャッシングした他の
クラスタを複数記録していくことにより、 主記憶ディレクトリを根ノードとしキャッシュディレク
トリを中間ノードまたは葉ノードとする木構造のディレ
クトリの連鎖を作成し、同一主記憶ブロックをキャッシ
ングした全てのクラスタを該木構造で表すことにより、
主記憶ブロックのキャッシング状態を管理する請求項1
に記載の並列計算機のプロセッサ間データ一貫性保証装
置。
2. The main memory directory records a plurality of clusters in which corresponding main memory blocks are cached, and in each cluster recorded in the main memory directory,
The cache directory corresponding to the cache line records a plurality of other clusters that cache the same main memory block, and the cache directory corresponding to the cache line in each cluster recorded in the cache directory has the same main memory. By recording multiple other clusters that cached blocks, a tree-structured directory chain with the main storage directory as the root node and the cache directory as an intermediate node or leaf node was created, and the same main storage block was cached. By representing all clusters in the tree structure,
2. The cache state of a main memory block is managed.
The data consistency guarantee device between processors of the parallel computer described in.
【請求項3】前記キャッシングしているクラスタを記録
する態様の一つとしてポインタモードを設け、 前記主記憶ディレクトリまたは前記キャッシュディレク
トリがポインタモードであるときは、該ディレクトリ
に、複数のクラスタ番号部と、各クラスタ番号部に対応
してそのクラスタ番号部の有効または無効を表わすため
のクラスタ番号存在フラグを設けるとともに、該ディレ
クトリのモードフィールドはポインタモードに設定し、
該クラスタ番号存在フラグが有効であるクラスタ番号部
により前記キャッシングしているクラスタを指し示すよ
うにする請求項1または2に記載の並列計算機のプロセ
ッサ間データ一貫性保証装置。
3. A pointer mode is provided as one of the modes for recording the cached cluster, and when the main memory directory or the cache directory is in the pointer mode, a plurality of cluster number parts are provided in the directory. , A cluster number existing flag for indicating the validity or invalidity of the cluster number portion is provided corresponding to each cluster number portion, and the mode field of the directory is set to the pointer mode,
3. The interprocessor data consistency assurance device of a parallel computer according to claim 1, wherein the cluster number part in which the cluster number existence flag is valid points to the cached cluster.
【請求項4】あらかじめ並列計算機の全クラスタを1つ
以上のクラスタからなるクラスタグループに分割し、 前記キャッシングしているクラスタを記録する態様の一
つとしてビットマップモードを設け、 前記主記憶ディレクトリまたは前記キャッシュディレク
トリがビットマップモードであるときは、該ディレクト
リに、各ビットがそれぞれ同一クラスタグループ内の各
クラスタの有効または無効を示すようなビットマップを
設け、該ビットマップ中の有効を示すビットにより前記
キャッシングしているクラスタを指し示すようにする請
求項1または2に記載の並列計算機のプロセッサ間デー
タ一貫性保証装置。
4. All the clusters of the parallel computer are divided into cluster groups consisting of one or more clusters in advance, and a bitmap mode is provided as one of the modes for recording the cached clusters, and the main memory directory or When the cache directory is in the bitmap mode, the directory is provided with a bitmap in which each bit indicates whether each cluster in the same cluster group is valid or invalid. 3. The inter-processor data consistency guarantee device for a parallel computer according to claim 1, wherein the cluster that is being cached is pointed to.
【請求項5】自クラスタまたは他クラスタ上の主記憶装
置への書き込みの際に、 書き込み対象のクラスタの主記憶制御回路は、書き込み
対象の主記憶ブロックの主記憶ディレクトリにより指し
示される全てのクラスタに対して無効化要求を発行し、 無効化要求を受けたクラスタのキャッシュ制御回路は、
当該主記憶ブロックに対応するキャッシュラインを無効
化するとともに、対応するキャッシュディレクトリによ
り指し示される全てのクラスタに対して無効化要求を発
行していくことにより、同一主記憶ブロックをキャッシ
ングした全てのクラスタ内の対応するキャッシュライン
を無効化する請求項1または請求項2に記載の並列計算
機のプロセッサ間データ一貫性保証装置。
5. When writing to a main memory device on its own cluster or another cluster, the main memory control circuits of the write target clusters are all clusters designated by the main memory directory of the main memory block of the write target. The cache control circuit of the cluster that issued the invalidation request to
All clusters that have cached the same main memory block by invalidating the cache line corresponding to the main memory block and issuing invalidation requests to all clusters pointed to by the corresponding cache directory. The data consistency guarantee device between processors of a parallel computer according to claim 1 or 2, which invalidates a corresponding cache line in the.
【請求項6】自クラスタまたは他クラスタ上の主記憶装
置への書き込みの際に、 書き込み対象のクラスタの主記憶制御回路は、書き込み
対象の主記憶ブロックの主記憶ディレクトリにより指し
示される全てのクラスタに対して当該主記憶ブロックに
書き込んだ書き込みデータを送信し、 該書き込みデータを受けたクラスタのキャッシュ制御回
路は、当該主記憶ブロックに対応するキャッシュライン
に該書き込みデータをコピーするとともに、対応するキ
ャッシュディレクトリにより指し示される全てのクラス
タに対して該書き込みデータを送信していくことによ
り、同一主記憶ブロックをキャッシングした全てのクラ
スタ内の対応するキャッシュラインを更新する請求項1
または請求項2に記載の並列計算機のプロセッサ間デー
タ一貫性保証装置。
6. A main memory control circuit of a write target cluster, when writing to a main memory device on its own cluster or another cluster, all clusters pointed to by a main memory directory of a main memory block to be written. To the main memory block, the cache control circuit of the cluster that receives the write data copies the write data to the cache line corresponding to the main memory block, and The corresponding cache line in all the clusters that have cached the same main memory block is updated by transmitting the write data to all the clusters designated by the directory.
Alternatively, the data consistency guarantee device between processors of the parallel computer according to claim 2.
【請求項7】自クラスタまたは他クラスタ上の主記憶装
置への書き込みの際に、 書き込み対象のクラスタの主記憶制御回路は、書き込み
対象の主記憶ブロックの主記憶ディレクトリにより指し
示される全てのクラスタに対して無効化要求を発行し、 無効化要求を受けたクラスタのキャッシュ制御回路は、
当該主記憶ブロックに対応するキャッシュラインを無効
化するとともに、対応するキャッシュディレクトリによ
り指し示される全てのクラスタに対して無効化要求を発
行し、該無効化要求発行の相手先である全てのクラスタ
から無効化完了通信を受けたら、自クラスタに対して無
効化要求を発行したクラスタに無効化完了通信を発行
し、 書き込み対象のクラスタの主記憶制御回路は、書き込み
対象の主記憶ブロックに対応する主記憶ディレクトリに
より指し示される全てのクラスタから無効化完了通信を
受けたら、書き込みを発行したクラスタに対して無効化
完了通信を送信し、 書き込みを発行したクラスタは、無効化完了通信を受け
るまで待つことにより、全クラスタに対する書き込みの
完了を保証することができる請求項5に記載の並列計算
機のプロセッサ間データ一貫性保証装置。
7. When writing to a main storage device on its own cluster or another cluster, the main storage control circuit of the write target cluster is configured to store all clusters pointed to by the main storage directory of the main storage block to be written. The cache control circuit of the cluster that issued the invalidation request to
The cache line corresponding to the main memory block is invalidated, the invalidation request is issued to all the clusters indicated by the corresponding cache directory, and all the clusters that are the counterparts of the invalidation request is issued. When the invalidation completion communication is received, the invalidation completion communication is issued to the cluster that issued the invalidation request to the own cluster, and the main memory control circuit of the write target cluster is the main memory block corresponding to the write target main memory block. When the invalidation completion communication is received from all the clusters indicated by the storage directory, the invalidation completion communication is sent to the cluster that issued the write, and the cluster that issued the write waits until the invalidation completion communication is received. According to claim 5, it is possible to guarantee the completion of writing to all clusters. Interprocessor data consistency assurance device of the computer.
【請求項8】自クラスタまたは他クラスタ上の主記憶装
置への書き込みの際に、 書き込み対象のクラスタの主記憶制御回路は、書き込み
対象の主記憶ブロックに対応する主記憶ディレクトリに
より指し示される全てのクラスタに対して当該主記憶ブ
ロックに書き込んだ書き込みデータを送信し、 該書き込みデータを受けたクラスタのキャッシュ制御回
路は、当該主記憶ブロックに対応するキャッシュライン
に該書き込みデータをコピーするとともに、対応するキ
ャッシュディレクトリにより指し示される全てのクラス
タに対して該書き込みデータを含む更新要求を送信し、
該更新要求の相手先である全てのクラスタから更新返答
通信を受けたら、自クラスタに対して更新要求を発行し
たクラスタに更新返答通信を発行し、 書き込み対象のクラスタの主記憶制御回路は、書き込み
対象の主記憶ブロックに対応する主記憶ディレクトリに
より指し示される全てのクラスタから更新返答通信を受
けたら、書き込みを発行したクラスタに対して更新返答
通信を送信し、 書き込みを発行したクラスタは、更新返答通信を受ける
まで待つことにより、全クラスタに対する書き込みの完
了を保証することができる請求項6記載の並列計算機の
プロセッサ間データ一貫性保証装置。
8. When writing to a main storage device on its own cluster or another cluster, the main storage control circuit of the write target cluster is all pointed to by the main storage directory corresponding to the write target main storage block. The write data written in the main memory block to the cluster, and the cache control circuit of the cluster receiving the write data copies the write data to the cache line corresponding to the main memory block and Send an update request containing the write data to all clusters pointed to by the cache directory,
When the update response communication is received from all the clusters that are the destinations of the update request, the update response communication is issued to the cluster that has issued the update request to the own cluster, and the main memory control circuit of the write target cluster writes When the update response communication is received from all the clusters pointed to by the main memory directory corresponding to the target main memory block, the update response communication is sent to the cluster that issued the write, and the cluster that issued the write sends the update response 7. The inter-processor data consistency guarantee device for a parallel computer according to claim 6, wherein the completion of writing to all clusters can be guaranteed by waiting until communication is received.
【請求項9】前記主記憶ブロックまたは前記キャッシュ
ラインに対し、ブロック毎にディレクトリを持つ代わり
に、ディレクトリ用メモリ領域を用意し、当該ブロック
から指し示すべきクラスタがある場合にのみ該ディレク
トリ用メモリ領域に当該ブロックのディレクトリを登録
する請求項1から8の何れか1つに記載の並列計算機の
プロセッサ間データ一貫性保証装置。
9. A directory memory area is prepared for each of the main memory block or the cache line instead of having a directory for each block, and the directory memory area is provided only when there is a cluster to be pointed to from the block. 9. The inter-processor data consistency guarantee device for a parallel computer according to claim 1, wherein the directory of the block is registered.
【請求項10】自クラスタまたは他クラスタからの主記
憶装置のアクセス時に、クラスタ内のいずれかのプロセ
ッサが、前記主記憶制御回路に代わって、主記憶ディレ
クトリおよび主記憶ディレクトリのモードフィールドを
制御し、主記憶ディレクトリに記録されている複数のク
ラスタに対し、前記ネットワークを介してキャッシュ制
御用の通信を発行する処理の一部乃至全部を行う請求項
1から9の何れか1つに記載の並列計算機のプロセッサ
間データ一貫性保証装置。
10. When accessing a main memory from its own cluster or another cluster, one of the processors in the cluster controls a main memory directory and a mode field of the main memory directory in place of the main memory control circuit. The parallel processing according to any one of claims 1 to 9, wherein a part or all of a process of issuing a cache control communication to the plurality of clusters recorded in the main memory directory via the network is performed. Data consistency assurance device between processors of computer.
【請求項11】自クラスタまたは他クラスタからのキャ
ッシュ制御用の通信受信時に、クラスタ内のいずれかの
プロセッサが、前記キャッシュ制御回路に代わって、キ
ャッシュディレクトリおよびキャッシュディレクトリの
モードフィールドを制御し、キャッシュディレクトリに
記録されている複数のクラスタに対し、前記ネットワー
クを介してキャッシュ制御用の通信を発行する処理の一
部乃至全部を行う請求項1から10の何れか1つに記載
の並列計算機のプロセッサ間データ一貫性保証装置。
11. When a cache control communication is received from a self cluster or another cluster, one of the processors in the cluster controls a cache directory and a mode field of the cache directory on behalf of the cache control circuit, and cache The processor of the parallel computer according to any one of claims 1 to 10, which performs a part or all of a process of issuing a cache control communication via the network to a plurality of clusters recorded in a directory. Inter-data consistency assurance device.
JP19435895A 1995-07-06 1995-07-06 Inter-processor data consistency guarantee device Expired - Fee Related JP3754112B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19435895A JP3754112B2 (en) 1995-07-06 1995-07-06 Inter-processor data consistency guarantee device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19435895A JP3754112B2 (en) 1995-07-06 1995-07-06 Inter-processor data consistency guarantee device

Publications (2)

Publication Number Publication Date
JPH0922381A true JPH0922381A (en) 1997-01-21
JP3754112B2 JP3754112B2 (en) 2006-03-08

Family

ID=16323256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19435895A Expired - Fee Related JP3754112B2 (en) 1995-07-06 1995-07-06 Inter-processor data consistency guarantee device

Country Status (1)

Country Link
JP (1) JP3754112B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088770A (en) * 1997-02-27 2000-07-11 Hitachi, Ltd. Shared memory multiprocessor performing cache coherency
CN101933784A (en) * 2009-06-30 2011-01-05 杨刚 Water filter type handheld dust collector
WO2012008008A1 (en) * 2010-07-12 2012-01-19 富士通株式会社 Information processing system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088770A (en) * 1997-02-27 2000-07-11 Hitachi, Ltd. Shared memory multiprocessor performing cache coherency
US6546471B1 (en) 1997-02-27 2003-04-08 Hitachi, Ltd. Shared memory multiprocessor performing cache coherency
CN101933784A (en) * 2009-06-30 2011-01-05 杨刚 Water filter type handheld dust collector
WO2012008008A1 (en) * 2010-07-12 2012-01-19 富士通株式会社 Information processing system
JP5435132B2 (en) * 2010-07-12 2014-03-05 富士通株式会社 Information processing system

Also Published As

Publication number Publication date
JP3754112B2 (en) 2006-03-08

Similar Documents

Publication Publication Date Title
US10073778B1 (en) Caching in multicore and multiprocessor architectures
US11175832B2 (en) Thread groups for pluggable database connection consolidation in NUMA environment
US7577816B2 (en) Remote translation mechanism for a multinode system
US6014690A (en) Employing multiple channels for deadlock avoidance in a cache coherency protocol
US6633967B1 (en) Coherent translation look-aside buffer
US20090240880A1 (en) High availability and low capacity thin provisioning
US5900015A (en) System and method for maintaining cache coherency using path directories
JPH11232173A (en) Data processing system provided with remote cache incorporated in local memory and cc-numa (cache consistent type non-uniform memory access) architecture
JPH10187645A (en) Multiprocess system constituted for storage in many subnodes of process node in coherence state
JP2001297035A (en) Information processor
JPH06318168A (en) Hierarchical data storage management device, method and its network
JPH10143482A (en) Multiprocessor system for executing efficient write operation
US6625694B2 (en) System and method for allocating a directory entry for use in multiprocessor-node data processing systems
JPH08235061A (en) Multiprocessor data-processing system
JP2000250884A (en) Method and system for providing eviction protocol in unequal memory access computer system
CN1549973A (en) Method and apparatus for the utilization of distributed caches
US7346744B1 (en) Methods and apparatus for maintaining remote cluster state information
US6298419B1 (en) Protocol for software distributed shared memory with memory scaling
US11321233B2 (en) Multi-chip system and cache processing method
JPH0922381A (en) Device for guaranteeing data consistency between processors
EP0173893B1 (en) Computing system and method providing working set prefetch for level two caches
JP3489157B2 (en) Distributed shared memory system and computer
US6496907B1 (en) System and method for updating from a read-only to a read-write entry and concurrently invalidating stale cache copies from head-to-tail and tail-to-head directions
CN110297783B (en) Distributed cache structure based on real-time dynamic migration mechanism
US6321304B1 (en) System and method for deleting read-only head entries in multi-processor computer systems supporting cache coherence with mixed protocols

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees