JP2000259596A - Multiprocessor system and consistency maintaining method for data for the same - Google Patents

Multiprocessor system and consistency maintaining method for data for the same

Info

Publication number
JP2000259596A
JP2000259596A JP11061905A JP6190599A JP2000259596A JP 2000259596 A JP2000259596 A JP 2000259596A JP 11061905 A JP11061905 A JP 11061905A JP 6190599 A JP6190599 A JP 6190599A JP 2000259596 A JP2000259596 A JP 2000259596A
Authority
JP
Japan
Prior art keywords
data
control unit
message
node
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11061905A
Other languages
Japanese (ja)
Other versions
JP3769411B2 (en
Inventor
Takeo Hosomi
岳生 細見
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP06190599A priority Critical patent/JP3769411B2/en
Publication of JP2000259596A publication Critical patent/JP2000259596A/en
Application granted granted Critical
Publication of JP3769411B2 publication Critical patent/JP3769411B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To prevent the increase of message by reducing the latency of load access in a loosely coupled multiprocessor system. SOLUTION: Concerning the multiprocessor system composed of plural nodes PE0 to PEn-1 mutually connected through a mutual coupling network, plural nodes PE0 to PEn-1 are respectively provided with a main memory 30 for storing data, a cache memory 21 capable of access at higher speed than the main memory 30 for storing one part of data stored in the main memory 30 provided in any one of plural nodes PE0- to PEn-1, a processor 20 for issuing the access request of data and a consistency maintenance control part 16 for holding node information stored in the cache memory 21 concerning the state and copy of data stored in the main memory 30 and investigating the presence/absence of the effective copy concerning the data of a relevant address in the cache memory 21 when load and store access is performed from the processor 20 to the data of the prescribed address.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、疎結合型のマルチ
プロセッサシステムに関し、特にこのようなマルチプロ
セッサシステムにおける主記憶装置とキャッシュメモリ
とのデータの一貫性(コヒーレンシー)を維持するマル
チプロセッサシステムおよびマルチプロセッサシステム
におけるデータの一貫性維持方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a loosely-coupled multiprocessor system, and more particularly to a multiprocessor system for maintaining data coherency between a main memory and a cache memory in such a multiprocessor system. The present invention relates to a method for maintaining data consistency in a multiprocessor system.

【0002】[0002]

【従来の技術】従来の疎結合型マルチプロセッサシステ
ムにおけるキャッシュメモリと主メモリとのデータの一
貫性を維持するための技術が、文 献(「The Director
y-Based Cache Coherence Protocol for the DAS
H Multiprocessor」,DanielLenoski, James Laudo
n, Kourosh Gharachorloo, Anoop Gupta and Joh
n Hennessy,In Proceedings of 17th Internatio
nal Symposium onComputer Architecture,p148-15
9,1990)に開示されている。
2. Description of the Related Art A technique for maintaining data consistency between a cache memory and a main memory in a conventional loosely-coupled multiprocessor system is described in “The Director.
y-Based Cache Coherence Protocol for the DAS
H Multiprocessor ”, Daniel Lenoski, James Laudo
n, Kourosh Gharachorloo, Anoop Gupta and Joh
n Hennessy, In Proceedings of 17th Internatio
nal Symposium on Computer Architecture, p148-15
9, 1990).

【0003】なお、疎結合とは結合係数が小さい結合を
いう。これに対して結合係数が大きい結合を密結合とい
う。
[0003] Loose coupling refers to coupling having a small coupling coefficient. On the other hand, a coupling having a large coupling coefficient is called a tight coupling.

【0004】図15は、このような従来のマルチプロセ
ッサシステム1’の構成を示すブロック図である。
FIG. 15 is a block diagram showing a configuration of such a conventional multiprocessor system 1 '.

【0005】図15に示すように、このマルチプロセッ
サシステム1’は、複数のノードPE0〜PEn−1
と、各ノードを結合する相互結合網10’と、から構成
されている。
As shown in FIG. 15, this multiprocessor system 1 'includes a plurality of nodes PE0 to PEn-1.
And an interconnection network 10 'for connecting each node.

【0006】各ノード(図15では、PEiのみを示
す)は、演算やメモリアクセス等を行うプロセッサ2
0’と、データを保持する主メモリ30’と、プロセッ
サ20’がデータを一時的に保持する主メモリ30’よ
りも高速アクセスが可能なキャッシュメモリ21’と、
主メモリ30’とキャッシュメモリ21’(他のノード
のものを含む)との間のデータの一貫性を維持するため
の一貫性維持制御部55’と、を有している。
Each node (only PEi is shown in FIG. 15) is provided with a processor 2 for performing operations, memory access, and the like.
0 ', a main memory 30' for holding data, a cache memory 21 'that can be accessed faster than the main memory 30' for which the processor 20 'temporarily holds data,
A consistency maintaining control unit 55 'for maintaining data consistency between the main memory 30' and the cache memory 21 '(including those of other nodes).

【0007】図16(a)は、複数のノードの主メモリ
30’にデータのコピーが存在する状態を示す図であ
り、図16(b)は、1つのノードの主メモリ30’に
のみデータのコピーが存在する状態を示す図である。
FIG. 16A is a diagram showing a state in which a copy of data exists in the main memory 30 'of a plurality of nodes. FIG. 16B shows a state in which data is copied only in the main memory 30' of one node. FIG. 11 is a diagram showing a state in which a copy exists.

【0008】一貫性維持制御部55’は、キャッシュメ
モリ21’の内容を保持するもので、キャッシュメモリ
21’は主メモリ30’に格納されているデータの状態
およびデータのコピーをキャッシュメモリ21’に保持
しているノードの情報 (以降、保持ノード情報と呼
ぶ)を保持している。データの状態は、「C」,
「M」の2つがある。「C」は、図16(a)に示すよ
うに、複数のノードのキャッシュメモリ21’にデータ
のコピーが存在する状態を表す。このとき、キャッシュ
メモリ21’のコピーと主メモリ30’のデータの値は
同じである。「M」は、図16(b)に示すように、1
つのノードのキャッシュメモリ21’のみがデータのコ
ピーを保持している状態を表す。このとき、キャッシュ
メモリ21’のコピーの値と主メモリ30’のデータの
値は異なり、キャッシュメモリ21’のコピーの値が最
新の値である。
The coherency control unit 55 'holds the contents of the cache memory 21', and the cache memory 21 'stores the status of data stored in the main memory 30' and a copy of the data in the cache memory 21 '. Holds the node information (hereinafter referred to as holding node information). The state of the data is "C",
There are two "M". "C" indicates a state in which data copies exist in the cache memories 21 'of a plurality of nodes, as shown in FIG. At this time, the copy of the cache memory 21 'and the data value of the main memory 30' are the same. “M” is 1 as shown in FIG.
This represents a state in which only one node's cache memory 21 'holds a copy of data. At this time, the value of the copy in the cache memory 21 'is different from the value of the data in the main memory 30', and the value of the copy in the cache memory 21 'is the latest value.

【0009】図17(a)は、複数のノードのキャッシ
ュメモリ21’に一貫性が維持された有効なデータが存
在しない状態を示す図であり、図17(b)は、データ
の有効なコピーが存在し、かつ他のノードのキャッシュ
メモリ21’にも有効なデータが存在する可能性のある
状態を示す図であり、図17(c)は、データの有効な
コピーが1つのノードにだけ存在し、他のノードのキャ
ッシュメモリ21’には有効なコピーが存在せず、かつ
主メモリ30’のデータとキャッシュメモリ21’のデ
ータが異なる状態を示す図である。
FIG. 17A is a diagram showing a state in which valid data in which consistency is maintained does not exist in the cache memories 21 'of a plurality of nodes. FIG. 17B shows a valid copy of data. FIG. 17C shows a state where there is a possibility that valid data may also exist in the cache memory 21 ′ of another node. FIG. 17C shows that a valid copy of data is stored only in one node. It is a diagram showing a state in which a valid copy does not exist in the cache memory 21 'of another node, and the data of the main memory 30' and the data of the cache memory 21 'are different.

【0010】一貫性維持制御部55’は、キャッシュメ
モリ21’に格納されているデータの状態およびデータ
のタグアドレスを保持している。データの状態は
「I」,「S」,「D」の3つがある。「I」は、図1
7(a)に示すように、一貫性が維持された有効なデー
タのコピーが存在しない状態である。「S」は、図17
(b)に示すように、データの有効なコピーが存在し、
かつ他のノードのキャッシュメモリ21’にも有効なコ
ピーが存在する可能性がある状態である。「D」は、図
17(c)に示すように、複数のノードのキャッシュメ
モリ21’にデータの有効なコピーが1つのノードにだ
け存在し、他のノードのキャッシュメモリ21’には有
効なコピーが存在せず、かつ主メモリ30’のデータの
値と異なる状態である。
[0010] The coherence maintenance control unit 55 'holds the state of data stored in the cache memory 21' and the tag address of the data. There are three data states, "I", "S", and "D". "I" refers to Figure 1
As shown in FIG. 7 (a), there is no valid copy of data in which consistency is maintained. "S" is shown in FIG.
As shown in (b), a valid copy of the data exists,
In addition, there is a possibility that a valid copy may exist in the cache memory 21 'of another node. “D” indicates that, as shown in FIG. 17C, valid copies of data exist in only one node in the cache memories 21 ′ of a plurality of nodes, and valid copies exist in the cache memories 21 ′ of other nodes. There is no copy and the data value is different from the data value in the main memory 30 '.

【0011】ここで、タグアドレスはどのアドレスのデ
ータであるかを示す。
Here, the tag address indicates which address data is.

【0012】相互結合網10’は、ノード間でやり取り
されるメッセージを配信するネットワークである。
The interconnection network 10 'is a network for delivering messages exchanged between nodes.

【0013】以下、プロセッサ20’が所定のアドレス
のデータに対してロード、あるいはストアアクセスをし
たときの、このマルチプロセッサシステム1’において
主メモリ30’とキャッシュメモリ21’とのデータの
一貫性を維持するための動作について、図16を参照し
て説明する。
Hereinafter, when the processor 20 'loads or stores data at a predetermined address, the data consistency between the main memory 30' and the cache memory 21 'in the multiprocessor system 1' will be described. The operation for maintaining will be described with reference to FIG.

【0014】最初に、ノードPE1のプロセッサ20’
が、ロードアクセスを行ったときの動作について説明す
る。
First, the processor 20 'of the node PE1
The operation when load access is performed will be described.

【0015】一貫性維持制御部55’は、該当するアド
レスのデータについて有効なコピーがキャッシュメモリ
21’も存在するかどうかを調べる。キャッシュメモリ
21’に有効なコピーが存在する場合、すなわち状態が
「S」または「D」である場合は、一貫性制御部55’
は、プロセッサ50’にキャッシュメモリ21’から読
み出したデータを渡すことによってプロセッサに応答
し、処理を終了する。
The coherence controller 55 'checks whether a valid copy of the data at the corresponding address also exists in the cache memory 21'. If a valid copy exists in the cache memory 21 ', that is, if the state is "S" or "D", the consistency control unit 55'
Responds to the processor by passing the data read from the cache memory 21 'to the processor 50', and ends the process.

【0016】一方、キャッシュメモリ21’に有効なコ
ピーが存在しない場合、すなわち状態が「I」の場合
は、該当するアドレスのデータを保持しているノード、
例えば、ノードPEh宛に、当該データの読み出し要求
メッセージを相互結合網10’を介して送信する。
On the other hand, if there is no valid copy in the cache memory 21 ', that is, if the state is "I", the node holding the data at the corresponding address,
For example, the data read request message is transmitted to the node PEh via the interconnection network 10 '.

【0017】読み出し要求メッセージを受けたノードP
Ehの一貫性維持制御部55’は、該当するアドレスの
データについての最新の値がノードPEhの主メモリ3
0’に存在するかどうかを調べる。該当するアドレスの
データについての最新の値が主メモリ30’に存在する
場合、すなわち状態が「C」である場合には、ノードP
E1に相互結合網10’を介して主メモリ30’に格納
されているデータを相互結合網10’を介して送信する
と共に、保持ノード情報にノードPE1を 加える。
Node P receiving read request message
The Eh consistency maintenance control unit 55 ′ stores the latest value of the data at the corresponding address in the main memory 3 of the node PEh.
Check if it is at 0 '. If the latest value of the data at the corresponding address exists in the main memory 30 ', that is, if the state is "C", the node P
The data stored in the main memory 30 'is transmitted to E1 via the interconnection network 10' via the interconnection network 10 ', and the node PE1 is added to the holding node information.

【0018】ノードPEhからのデータを受信したノー
ドPE1の一貫性維持制御部55’は、プロセッサ2
0’に受け取ったデータを渡すと共に、キャッシュメモ
リ21’にそのデータをコピーする。さらに、キャッシ
ュメモリ21’の当該データの状態を「S」とする。
The consistency maintaining control unit 55 'of the node PE1 receiving the data from the node PEh
The received data is passed to 0 ', and the data is copied to the cache memory 21'. Further, the state of the data in the cache memory 21 ′ is “S”.

【0019】一方、読み出し要求メッセージを受けたノ
ードPEhにおいて、該当するアドレスのデータについ
ての最新の値が主メモリ30’に存在しない場合、すな
わち状態が「M」である場合には、保持ノード情報を参
照して、最新のデータを保持するノード、例えば、ノー
ドPErに読み出し要求メッセージを相互結合網10’
を介して送信する。
On the other hand, in the node PEh receiving the read request message, if the latest value of the data of the corresponding address does not exist in the main memory 30 ', that is, if the state is "M", the holding node information , A read request message is sent to the node holding the latest data, for example, the node PEr, to the interconnection network 10 ′.
To send over.

【0020】読み出し要求メッセージを受けたノードP
Erの一貫性維持制御部55’は、キャッシュメモリ2
1’に状態が「D」のデータが存在するかどうかを調べ
る。キャッシュメモリ21’に状態が「D」のデータが
存在する場合には、キャッシュメモリ21’に格納され
ているデータを相互結合網10’を介してノードPE1
に送信すると共に、キャッシュメモリ21’に格納され
ているデータを付加した書き戻し要求メッセージを相互
結合網10’を介してノードPEhに送信する。 さら
にキャッシュメモリ21’の当該データの状態を「S」
に更新する。
Node P receiving read request message
The Er consistency maintenance control unit 55 ′
It is checked whether or not there is data whose state is "D" in 1 '. When the data having the state “D” exists in the cache memory 21 ′, the data stored in the cache memory 21 ′ is transferred to the node PE1 via the interconnection network 10 ′.
And a write-back request message to which the data stored in the cache memory 21 'is added to the node PEh via the interconnection network 10'. Further, the state of the data in the cache memory 21 'is changed to "S".
Update to

【0021】書き戻し要求メッセージを受けたノードP
Ehの一貫性維持制御部55’は、主メモリ30’のデ
ータを、書き戻し要求メッセージに付加されていたデー
タに更新する。さらに、その主メモリ30’の当該デー
タの状態を「C」に更新し、保持ノード情報にノードP
E1を加える。
Node P receiving the write back request message
The Eh consistency maintenance control unit 55 'updates the data in the main memory 30' with the data added to the write-back request message. Further, the state of the data in the main memory 30 'is updated to "C", and the node P is added to the holding node information.
Add E1.

【0022】一方、読み出し要求メッセージを受けたノ
ードPErにおいて、キャッシュメモリ21’に状態が
「D」のデータが存在しない場合には、Nak(否定応
答)メッセージを相互結合網10’を介してノードPE
1に送信する。
On the other hand, in the node PEr that has received the read request message, if there is no data with the state “D” in the cache memory 21 ′, a Nak (negative acknowledgment) message is sent to the node PEr via the interconnection network 10 ′. PE
Send to 1.

【0023】Nakメッセージを受け取ったノードPE
1の一貫性維持制御部55’は、再度ノードPEhに読
み出し要求メッセージを送信する。以降、ノードPE1
にデータが送信されて、ノードPE1のプロセッサ2
0’にデータが渡されるまで、同様の処理が繰り返され
る。
Node PE receiving Nak message
The one consistency maintenance control unit 55 'transmits a read request message to the node PEh again. Hereinafter, the node PE1
Is transmitted to the processor PE2 of the node PE1.
The same process is repeated until data is passed to 0 '.

【0024】次に、ノードPE1のプロセッサ50’
が、ストアアクセスを行ったときの動作について説明す
る。
Next, the processor 50 'of the node PE1
However, the operation when a store access is performed will be described.

【0025】一貫性維持制御部55’は、該当するアド
レスのデータについてのシステム内での唯一のコピーが
キャッシュメモリ21’に存在するかどうかを調べる。
キャッシュメモリ21’に有効なコピーが存在する場
合、すなわち状態が「D」である場合は、キャッシュメ
モリ21’のデータを更新し、プロセッサ50’にアク
セス完了を通知して、処理を終了する。
The coherence controller 55 'checks whether the only copy in the system for the data at the corresponding address exists in the cache memory 21'.
If a valid copy exists in the cache memory 21 ', that is, if the state is "D", the data in the cache memory 21' is updated, the access completion is notified to the processor 50 ', and the processing is terminated.

【0026】キャッシュメモリ21’に唯一のコピーが
存在しない場合、すなわち状態が「I」または「S」の
場合は、ノードPE1の一貫性維持制御部55’は、該
当するアドレスのデータを保持しているノード、例え
ば、ノードPEh宛に、排他読み出し要求メッセージを
相互結合網10’を介して送信する。
When the only copy does not exist in the cache memory 21 ', that is, when the state is "I" or "S", the consistency maintaining control unit 55' of the node PE1 holds the data of the corresponding address. The exclusive read request message is transmitted to the current node, for example, the node PEh, via the interconnection network 10 '.

【0027】排他読み出し要求メッセージを受けたノー
ドPEhの一貫性維持制御部55’は、該当するアドレ
スのデータについての最新の値がノードPEhの主メモ
リ30’に存在するかどうかを調べる。該当するアドレ
スのデータの最新の値が主メモリ30’に存在する場
合、すなわち状態が「C」である場合には、ノードPE
1に相互結合網10’を介して主メモリ30’に格納さ
れているデータを相互結合網10’を介して送信する。
The consistency maintaining control unit 55 'of the node PEh receiving the exclusive read request message checks whether or not the latest value of the data of the corresponding address exists in the main memory 30' of the node PEh. If the latest value of the data at the corresponding address exists in the main memory 30 ', that is, if the state is "C", the node PE
1 transmits data stored in the main memory 30 'via the interconnection network 10' via the interconnection network 10 '.

【0028】ノードPE1以外のノードがキャッシュメ
モリ21’に当該データのコピーを保持している場合に
は、そのデータのコピーが存在するノードPE1以外の
ノードのすべて(ノードPEkとする)に、無効要求メ
ッセージを相互結合網10’を介して送信する。さら
に、主メモリ30’の当該データの状態を「M」に更新
し、保持ノード情報をノードPE1のみとする。なお、
ノードPE1に 送信されるデータには、無効要求メッ
セージを送信したノードPEkの数が付加される。
When a node other than the node PE1 holds a copy of the data in the cache memory 21 ', all nodes other than the node PE1 where the copy of the data exists (hereinafter referred to as node PEk) are invalidated. The request message is transmitted via the interconnection network 10 '. Further, the state of the data in the main memory 30 'is updated to "M", and the holding node information is set to only the node PE1. In addition,
The number of nodes PEk that transmitted the invalidation request message is added to the data transmitted to the node PE1.

【0029】無効要求メッセージを受けたノードPEk
の一貫性維持制御部55’は、キャッシュメモリ21’
の当該データの状態を「I」に更新し、Ack(肯定応
答)メッセージを相互結合網10’を介してノードPE
1に送信する。
Node PEk receiving invalidation request message
Of the cache memory 21 ′
Is updated to "I", and an Ack (acknowledge) message is transmitted to the node PE via the interconnection network 10 '.
Send to 1.

【0030】ノードPEhからのデータを受信したノー
ドPE1の一貫性維持制御部55’は、キャッシュメモ
リ21’にそのデータをコピーする。また、データに付
加されていたノードPEkの数の分だけのAckメッセ
ージを受信するのを待つ。ノードPEkの数の分だけの
Ackメッセージを受信すると、キャッシュメモリ2
1’の当該データをプロセッサ20’が行ったストアア
クセスのデータに更新する。さらに、キャッシュメモリ
21の当該データの状態を「D」に更新し、プロセッサ
20’にアクセス完了を通知して処理を終了する。
The consistency maintaining control unit 55 'of the node PE1 receiving the data from the node PEh copies the data to the cache memory 21'. It also waits for reception of Ack messages for the number of nodes PEk added to the data. When the Ack messages for the number of the nodes PEk are received, the cache memory 2
1 'is updated to the data of the store access performed by the processor 20'. Further, the state of the data in the cache memory 21 is updated to “D”, the access completion is notified to the processor 20 ′, and the processing is terminated.

【0031】一方、排他読み出し要求メッセージを受け
たノードPEhにおいて、該当するアドレスのデータの
最新の値が主メモリ30’に存在しない場合、すなわち
状態が「M」である場合には、保持ノード情報を参照し
て、最新のデータを保持するノード、例えば、ノードP
Erに排他読み出し要求メッセージを相互結合網10を
介して送信する。
On the other hand, in the node PEh receiving the exclusive read request message, if the latest value of the data at the corresponding address does not exist in the main memory 30 ', that is, if the state is "M", the holding node information , The node holding the latest data, for example, the node P
An exclusive read request message is transmitted to Er via the interconnection network 10.

【0032】排他読み出し要求メッセージを受けたノー
ドPErの一貫性維持制御部55’は、キャッシュメモ
リ21’に状態が「D」のデータが存在するかどうかを
調べる。キャッシュメモリ21’に状態が「D」のデー
タが存在しない場合には、相互結合網10を介してNa
kメッセージを送る。
The consistency maintenance control unit 55 'of the node PEr that has received the exclusive read request message checks whether or not the data having the state "D" exists in the cache memory 21'. If there is no data in the state “D” in the cache memory 21 ′,
Send k messages.

【0033】Nakメッセージを受け取ったノードPE
1の一貫性維持制御部55’は、再度ノードPEhに対
して、排他読み出し要求メッセージを送信する。以降、
同様の処理が繰り返される。
Node PE receiving Nak message
The one consistency maintenance control unit 55 ′ transmits an exclusive read request message to the node PEh again. Or later,
A similar process is repeated.

【0034】一方、排他読み出し要求メッセージを受け
たノードPErにおいて、キャッシュメモリ21’に状
態が「D」のデータが存在する場合には、キャッシュメ
モリ21に格納されているデータを相互結合網10’を
介してノードPE1に送信する。また、保持ノード更新
要求メッセージを相互結合網10’を介してノード P
Ehに送信すると共に、キャッシュメモリ21’の当該
データの状態を「I」に更新する。
On the other hand, in the node PEr that has received the exclusive read request message, if data having the state “D” exists in the cache memory 21 ′, the data stored in the cache memory 21 is transferred to the interconnection network 10 ′. To the node PE1. In addition, the holding node update request message is transmitted to the node
At the same time, the state of the data in the cache memory 21 ′ is updated to “I”.

【0035】保持ノード更新要求メッセージを受けたノ
ードPEhの一貫性維持制御部55’は、主メモリ3
0’のデータを、ノードPE1のみが保持しているとし
て 保持ノード情報を更新し、Ackメッセージを相互
結合網10’を介してノードPE1に送信する。
The consistency maintaining control unit 55 'of the node PEh that has received the holding node update request message
Assuming that only the node PE1 holds the data of 0 ', the holding node information is updated, and the Ack message is transmitted to the node PE1 via the interconnection network 10'.

【0036】ノードPErからのデータを受信したノー
ドPE1の一貫性維持制御部55は、キャッシュメモリ
21’にそのデータをコピーする。また、ノードPEh
からのAckメッセージを受信するのを待つ。ノードP
EhからのAckメッセージを受信すると、キャッシュ
メモリ21’の当該データをプロセッサ20’が行った
ストアアクセスのデータに更新する。さらに、キャッシ
ュメモリ21’の当該データの状態を「D」に更新し、
プロセッサ20’にアクセス完了を応答して処理を終了
する。
The consistency maintaining control unit 55 of the node PE1 receiving the data from the node PEr copies the data to the cache memory 21 '. Also, the node PEh
Wait for receiving the Ack message from. Node P
Upon receiving the Ack message from Eh, the data in the cache memory 21 'is updated to the data of the store access performed by the processor 20'. Further, the state of the data in the cache memory 21 'is updated to "D",
The process is terminated by responding to the processor 20 'with the completion of the access.

【0037】[0037]

【発明が解決しようとする課題】しかしながら、従来の
マルチプロセッサシステム1’には、プロセッサ20’
の読み出しによりアクセスしたキャッシュメモリ21’
にデータが存在しないキャッシュミスが発生した場合
に,キャッ シュメモリ21’からプロセッサ20にデ
ータが応答されるまでに長い時間がかかってしまうとい
う問題点があった。また、主メモリ30’に最新のデー
タが存在しない場合、最新のデータを保持す るノード
に要求を転送する必要が生じ、最新のデータが主メモリ
30’に存在す る場合と比較して、プロセッサ20’
が要求を出してからデータを受け取るまで の時間が長
くなってしまうという問題点があった。
However, the conventional multiprocessor system 1 'has a processor 20'.
Cache memory 21 'accessed by reading
However, when a cache miss occurs in which no data exists, it takes a long time until data is responded to the processor 20 from the cache memory 21 '. Also, when the latest data does not exist in the main memory 30 ', it is necessary to transfer the request to the node holding the latest data, and as compared with the case where the latest data exists in the main memory 30', Processor 20 '
However, there is a problem that the time from when a request is issued to when data is received becomes long.

【0038】本発明は上述したような従来の技術が有す
る問題に鑑みなされたものであって、読み出しによるキ
ャッシュミスが発生した場合のデータ一貫性維持制御に
要する時間を短縮した、データ一貫性維持制御方法を提
供するマルチプロセッサシステムおよびマルチプロセッ
サシステムにおけるデータの一貫性維持方法を提供する
ことを目的とする。
The present invention has been made in consideration of the above-described problems of the conventional technology, and has been made in consideration of the above-described problems, and has been made in consideration of the above-described problems. An object of the present invention is to provide a multiprocessor system that provides a control method and a method for maintaining data consistency in the multiprocessor system.

【0039】[0039]

【課題を解決するための手段】上記の問題点を解決する
ため、本発明によれば、相互結合網を介して互いに接続
された複数のノードから構成される マルチプロセッサ
システムであって、複数のノードはそれぞれデータが格
納される主メモリと、複数のノードのいずれかが備える
主メモリに格納されているデータの一部が記憶される、
主メモリよりも高速アクセスが可能なキャッシュメモリ
と、データのアクセス要求を発行するプロセッサと、主
メモリのデータがシステム内でどういう状態にあるのか
管理し、キャッシュメモリにあるデータのコピーの状態
を管理し、プロセッサが所定のアドレスのデータに対し
てロードおよびストアアクセスを行ったとき、メモリア
クセスに応じてノードPEi間でメッセージをやり取り
し、それらの状態を変更したりデータの転送を行う機能
を有する一貫性維持制御部と、を有し、一貫性維持制御
部は、キャッシュメモリに記憶されているデータの状態
が記憶されるタグメモリと、主メモリに記憶されている
データの状態が記憶されるディレクトリメモリと、プロ
セッサからのアクセス要求、複数のノードが備えるホー
ムアクセス制御部が発行する要求や応答を受け、キャッ
シュメモリやタグメモリに対しては一貫性維持のために
必要な処理を行い、プロセッサに対してはアクセス要求
に対する応答を行うローカルアクセス制御部と、複数の
ノードが備えるローカルアクセス制御部が発行する要求
や応答を受けて、主メモリやディレクトリメモリに対し
て一貫性維持のために必要な処理を行い、ローカルアク
セス制御部に要求や応答を発行するホームアクセス制御
部と、プロセッサが同時に発行可能なメモリアクセスの
最大数に対応するエントリを有するリクエスト管理テー
ブルと、共有しているブロックに対して書き込みを行い
キャッシュメモリに専有することになったブロックを記
憶する書き戻しブロック選択手段と、を具備することを
特徴とする。
According to the present invention, there is provided a multiprocessor system comprising a plurality of nodes connected to each other via an interconnection network. The nodes each store a main memory in which data is stored, and a part of the data stored in the main memory included in any of the plurality of nodes.
A cache memory that can be accessed faster than the main memory, a processor that issues data access requests, manages the state of data in the main memory in the system, and manages the copy state of data in the cache memory When the processor performs load and store access to data at a predetermined address, the processor exchanges messages between the nodes PEi according to the memory access, and changes the state of the messages and transfers data. A consistency maintenance control unit, wherein the consistency maintenance control unit stores a tag memory in which a state of data stored in the cache memory is stored and a state of data stored in the main memory. Directory memory, access request from processor, home access control unit provided for multiple nodes A local access control unit that receives requests and responses to be issued, performs necessary processing for maintaining consistency in cache memory and tag memory, and responds to access requests to processors, and multiple nodes Home access control unit that receives requests and responses issued by the local access control unit, performs necessary processing on the main memory and directory memory to maintain consistency, and issues requests and responses to the local access control unit. And a request management table having entries corresponding to the maximum number of memory accesses that can be issued simultaneously by the processor, and a write-back that writes to a shared block and stores the block occupied in the cache memory And a block selecting means.

【0040】また、書き戻しブロック選択手段は、ロー
カルアクセス手段が指定するアドレスを登録するアドレ
ス登録手段と、アドレス登録手段により登録されたアド
レスを複数保持するアドレス保持手段と、アドレス保持
手段に格納された複数のアドレスから一つを選択してロ
ーカルアクセス制御部に出力し、データの書き戻しを要
求する書き戻し要求手段と、ローカルアクセス制御部の
指示に従い、書き戻し要求手段が選択しているエントリ
を削除するアドレス削除手段と、を具備することを特徴
とする。
Further, the write-back block selection means is stored in the address registration means for registering the address designated by the local access means, the address holding means for holding a plurality of addresses registered by the address registration means, and the address storage means. A write-back requesting means for selecting one of the plurality of addresses and outputting the selected address to the local access control unit, and requesting a data write-back; and an entry selected by the write-back requesting means according to the instruction of the local access control unit. And an address deleting unit for deleting the address.

【0041】また、ローカルアクセス制御部は、書き戻
しブロック選択手段に記憶されたブロックをキャッシュ
メモリから読み出し、データに書き戻し要求をホームア
クセス制御部に発行し、ローカルアクセス制御部が発行
するデータの書き戻し要求を受けて主メモリにデータを
書き戻すことを特徴とする。
Further, the local access control unit reads the block stored in the write-back block selection means from the cache memory, issues a write-back request to the data to the home access control unit, and outputs the data issued by the local access control unit. Receiving a write-back request writes the data back to the main memory.

【0042】また、ローカルアクセス制御部は、プロセ
ッサへのデータの書き込み要求アクセスを受けて書き込
み要求をホームアクセス制御部に発行し、書き込み要求
を受けて、データを複数のノードが共有しているかどう
かを示すディレクトリメモリに保持されているデータの
状態からデータが共有状態にあるのかどうかを判断し、
その判断結果をローカルアクセス制御部に発行する応答
に付加してローカルアクセス制御部に応答を返し、その
応答を受けローカルアクセス制御部が複数のノードが共
有状態にあるのかどうかの情報を元に、書き戻しブロッ
ク選択手段にブロックへの登録の有無を決定することを
特徴とする。
Further, the local access control unit receives the data write request access to the processor, issues a write request to the home access control unit, receives the write request, and determines whether the data is shared by a plurality of nodes. Judge whether the data is in the shared state from the state of the data held in the directory memory indicating
The result of the determination is added to the response issued to the local access control unit, and a response is returned to the local access control unit. Upon receiving the response, the local access control unit determines whether or not the plurality of nodes are in a shared state based on the information. It is characterized in that the presence or absence of registration in the block is determined by the write-back block selecting means.

【0043】また、ホームアクセス制御部は、許容する
書き戻し回数を制限する閾値を有し、ローカルアクセス
制御部から書き込み要求を受けたときに、それらの情報
を元に実際にブロックを共有しているかどうかを判断す
ることを特徴とする。
Also, the home access control unit has a threshold value for limiting the number of write-backs allowed, and when a write request is received from the local access control unit, the home access control unit actually shares blocks based on the information. It is characterized by judging whether or not there is.

【0044】また、ホームアクセス制御部は、許容する
書き戻し回数を制限する閾値を有し、ローカルアクセス
制御部から書き込み要求を受けたときに、閾値とディレ
クトリメモリに保持されている情報を元に実際にブロッ
クが共有状態にあるかどうかを判断することを特徴とす
る。
Further, the home access control unit has a threshold value for limiting the number of write-backs allowed, and upon receiving a write request from the local access control unit, based on the threshold value and the information held in the directory memory. It is characterized in that it is determined whether or not a block is actually in a shared state.

【0045】また、ディレクトリメモリは、書き戻しを
受けた回数およびデータが共有状態にあっても実際にブ
ロックを保持するノードが一つの場合はそのノードを特
定することができる情報を有していることを特徴とす
る。
In addition, the directory memory has the number of times of rewriting and the information which can specify the node if there is only one node actually holding the block even if the data is in a shared state. It is characterized by the following.

【0046】また、相互結合網を介して互いに接続され
た複数のノードから構成される マルチプロセッサシス
テムであって、複数のノードはそれぞれ、データが格納
される主メモリと、複数のノードのいずれかが備える主
メモリに格納されているデータの一部が記憶される、主
メモリよりも高速アクセスが可能なキャッシュメモリ
と、データのアクセス要求を発行するプロセッサと、主
メモリ内のデータがシステム内でどういう状態にあるの
か判断し、キャッシュメモリにあるデータのコピーの状
態を管理し、プロセッサが所定のアドレスのデータに対
してロードおよびストアアクセスを行ったとき、メモリ
アクセスに応じて、ノードPEi間でメッセージをやり
取りし、それらの状態を変更したりデータの転送を行う
機能を有する一貫性維持制御部と、を有し、一貫性維持
制御部は、キャッシュメモリに記憶されているデータの
状態が記憶されるタグメモリと、プロセッサからのアク
セス要求、複数のノードが備えるホームアクセス制御部
が発行する要求や応答を受け、キャッシュメモリやタグ
メモリに対しては一貫性維持のために必要な処理を行
い、プロセッサに対してはアクセス要求に対する応答を
行うローカルアクセス制御部と、複数のノードが備える
ローカルアクセス制御部が発行する要求や応答を受け
て、主メモリやディレクトリメモリに対して一貫性維持
のために必要な処理を行い、ローカルアクセス制御部に
要求や応答を発行するホームアクセス制御部と、プロセ
ッサが同時に発行可能なメモリアクセスの最大数に対応
するエントリを有するリクエスト管理テーブルと、共有
しているブロックに対して書き込みを行いキャッシュメ
モリに専有することになったブロックを記憶する書き戻
しブロック選択手段と、を具備することを特徴とする。
A multiprocessor system comprising a plurality of nodes connected to each other via an interconnection network, wherein each of the plurality of nodes includes a main memory for storing data and one of the plurality of nodes A cache memory in which part of the data stored in the main memory is stored, and which can be accessed at a higher speed than the main memory, a processor that issues a data access request, and the data in the main memory are It determines what state it is in, manages the state of copying data in the cache memory, and when the processor performs load and store access to data at a predetermined address, the node PEi Consistency with the ability to exchange messages, change their state, and transfer data And a coherence control unit, wherein the tag memory in which the state of data stored in the cache memory is stored, an access request from the processor, and a home access control unit provided in a plurality of nodes. A local access control unit that receives requests and responses to be issued, performs necessary processing for maintaining consistency in cache memory and tag memory, and responds to access requests to processors, and multiple nodes Home access control unit that receives requests and responses issued by the local access control unit, performs necessary processing on the main memory and directory memory to maintain consistency, and issues requests and responses to the local access control unit. And a request management table having entries corresponding to the maximum number of memory accesses that can be issued simultaneously by the processor. When, characterized by comprising a write-back block selecting means for storing the blocks had to be dedicated to the cache memory writes to blocks that share.

【0047】また、一貫性維持制御部に含まれるローカ
ルアクセス制御部とホームアクセス制御部は、プロセッ
サが主メモリに格納された処理プログラムを実行するこ
とにより実現されることを特徴とする。
Further, the local access control unit and the home access control unit included in the consistency maintenance control unit are realized by a processor executing a processing program stored in a main memory.

【0048】また、一貫性維持制御部に含まれるローカ
ルアクセス制御部とホームアクセス制御部は、プロセッ
サとは別に設けられた専用のサブプロセッサが、主メモ
リに格納されたプログラムを実行することにより実現さ
れることを特徴とする。
The local access control unit and the home access control unit included in the coherence maintenance control unit are realized by a dedicated sub-processor provided separately from the processor executing a program stored in the main memory. It is characterized by being performed.

【0049】また、一貫性維持制御部に含まれるローカ
ルアクセス制御部とホームアクセス制御部は、それぞれ
モジュールの機能を実現するための専用のロジックに従
って構成された専用のハードウェアを装備していること
を特徴とする。
The local access control unit and the home access control unit included in the coherence maintaining control unit are each provided with dedicated hardware configured according to dedicated logic for realizing the function of the module. It is characterized by.

【0050】上記のような構成をとることにより、共有
しているノードの主メモリのブロックに対してノードの
プロセッサが書き込みを行い、ノードのキャッシュメモ
リを専有する状態になっても、ノードの書き戻しブロッ
ク選択手段およびローカルアクセス制御部が働き、専有
しているブロックをノードの主メモリに書き戻す。それ
により、ノード以外のノードのプロセッサがロードアク
セスしてキャッシュメモリにブロックがなかったとき
に、ノードの主メモリからブロックを読み出すことがで
きるので、ロードアクセスのレイテンシを 短縮でき
る。
By adopting the above-described configuration, even if the processor of the node writes data to the block of the main memory of the shared node and occupies the cache memory of the node, the writing of the node can be performed. The return block selecting means and the local access control unit operate to write back the exclusive block to the main memory of the node. Accordingly, when a processor of a node other than the node performs load access and there is no block in the cache memory, the block can be read from the main memory of the node, so that the load access latency can be reduced.

【0051】また、ディレクトリメモリに、共有してい
るか否かを示す情報を持たせ、書き込みの要求を受けた
ホームアクセス制御部が要求を出したノードに送信する
応答メッセージに、共有していたかいなかったかの情報
を持たせ、それにより書き戻しブロック選択手段が選択
する書き戻しを行うブロックの対象とするか否かを決め
ているので、共有していないブロックに関しては書き戻
しが行われない。
The directory memory has information indicating whether or not it is shared, and whether or not the response message transmitted by the home access control unit, which has received the write request, to the node which has issued the request does not have to be shared. Since the write-back block selecting means determines whether or not the block is to be the target of the write-back block selected by the write-back block selecting means, the write-back is not performed for the blocks not shared.

【0052】さらに、ディレクトリメモリに、書き戻し
を受けた回数および共有していることを示す状態であっ
ても実際にブロックを保持するノードが一つの場合はそ
のノードを特定することができる情報を持たせ、またホ
ームアクセス制御部が書き戻しを何回まで許容するかを
決める閾値を持たせ、それにより、書き込みの要求をう
けたホームアクセス制御部が当該ブロックの状態が共有
していることを示していても、書き込み要求を出したノ
ードのみが ブロックを保持している状態でかつ閾値と
書き戻しを受けた回数が一致する場合は、要求を出した
ノードに送信する応答メッセージに共有していない旨の
情報を持たせ、書き戻しブロック選択手段の対象から外
すことによる。これにより、共有していたブロックが時
間の経過とともに共有されなくなったことを検出し、無
駄な書き戻しが行われるのを防ぐので、書き戻しにより
メッセージが増加するのを防ぐことができる。
Further, in the case where the number of times of rewriting has been received and the number of nodes that actually hold the block is one even in the state indicating that the block is shared, information that can specify the node is stored in the directory memory. And a threshold value that determines how many times the home access control unit allows write-back, so that the home access control unit that has received the write request confirms that the state of the block is shared. However, if only the node that issued the write request holds the block and the threshold matches the number of times that the write-back has been performed, it is shared in the response message sent to the node that issued the request. This is done by having information indicating that there is no data, and excluding it from the target of the write-back block selecting means. As a result, it is detected that the block that has been shared is no longer shared with the passage of time, and unnecessary writing back is prevented, so that it is possible to prevent an increase in messages due to writing back.

【0053】[0053]

【発明の実施の形態】次に、本発明の実施の形態を図面
を参照して説明する。
Next, embodiments of the present invention will be described with reference to the drawings.

【0054】キャッシュメモリを備えたマルチプロセッ
サシステムにおいては、あるノードのプロセッサから主
メモリ内へのロード/ストアアクセス要求が出される
と、まずキャッシュメモリを参照し、キャッシュメモリ
に要求されたデータが存在すればすぐにそのデータをプ
ロセッサに転送する。キャッシュメモリにもしデータが
存在しなければ、要求されたデータを含む適当な大きさ
のブロックを主メモリから読み出し(ロード)、キャッ
シュメモリへ格納する。
In a multiprocessor system having a cache memory, when a load / store access request to the main memory is issued from a processor of a certain node, the cache memory is first referred to and the requested data exists in the cache memory. The data is immediately transferred to the processor. If the data does not exist in the cache memory, an appropriately sized block containing the requested data is read (loaded) from the main memory and stored in the cache memory.

【0055】一方、プロセッサの要求が書き込み(スト
ア)の場合には、キャッシュメモリにそのデータが存在
すれば、キャッシュメモリの内容だけでなく同時に主メ
モリの方も書き換えを行って、主メモリとキャッシュメ
モリ両方に常に最新のデータが格納されているようにす
るストアスルー方式(あるいは、ライトスルー、ストア
イミディエイト方式)と、とりあえずキャッシュメモリ
の内容だけ書き換え、キャッシュメモリのブロックの割
り当て換えの際に主メモリへ書き戻すストアバック(あ
るいは、ライトバック、スワップ方式)とがある。
On the other hand, when the request of the processor is a write (store), if the data exists in the cache memory, not only the contents of the cache memory but also the main memory is rewritten at the same time, and the main memory and the cache are rewritten. The store-through method (or write-through or store-immediate method), which always stores the latest data in both memories, and the temporary rewrite of only the contents of the cache memory, and the main memory when reassigning the blocks of the cache memory Store back (or write back, swap method).

【0056】後者のストアバック方式を採用した場合、
キャッシュメモリの内容だけを書き換え後で主メモリに
書き戻す方法をとっているため、主メモリの内容とキャ
ッシュメモリの内容が一致しなくなって、コヒーレンシ
ー(データの一貫性維持)が維持されなくなることがあ
る。本実施例は、主メモリとキャッシュメモリのデータ
の一貫性を維持しようとうするものである。
When the latter store-back method is adopted,
Since only the contents of the cache memory are rewritten and then written back to the main memory, the contents of the main memory do not match the contents of the cache memory, and coherency (maintaining data consistency) may not be maintained. is there. This embodiment is intended to maintain the consistency of the data in the main memory and the cache memory.

【0057】図1は、本発明の第1の実施例に係わる疎
結合型のマルチプロセッサシステム1の構成を示すブロ
ック図である。
FIG. 1 is a block diagram showing the configuration of a loosely-coupled multiprocessor system 1 according to the first embodiment of the present invention.

【0058】図1に示すように、本実施例のマルチプロ
セッサシステム1は、複数のノードPE0〜PEn−1
と、各ノードを結合し、ノード間でやり取りされるメッ
セージを配信する相互結合網10と、から構成されてい
る。なお、本実施例では、ノード数をn=1024とす
る。
As shown in FIG. 1, the multiprocessor system 1 of this embodiment has a plurality of nodes PE0 to PEn-1.
And an interconnection network 10 that connects the nodes and distributes messages exchanged between the nodes. In this embodiment, the number of nodes is set to n = 1024.

【0059】図2は、図1に示したノードPEi(i=
0〜n−1)の内部構成を示すブロック図である。
FIG. 2 shows a node PEi (i = i = n) shown in FIG.
FIG. 2 is a block diagram showing an internal configuration of 0-n-1).

【0060】図2に示すように、ノードPEi(i=0
〜n−1)は、それぞれプロセッサ20と、主メモリ3
0と、キャッシュメモリ21と、一貫性維持制御部16
と、を有する。
As shown in FIG. 2, the nodes PEi (i = 0
To n-1) are the processor 20 and the main memory 3 respectively.
0, the cache memory 21, and the coherence control unit 16
And

【0061】プロセッサ20は、メモリアクセスを行っ
たとき、そのメモリアクセスに関する情報、ここではア
クセスの種類(ロードかストアか)、アドレス、データ
等の情報を出力する。プロセッサ20は、メモリアクセ
スが対してロードアクセスであればデータを、ストアア
クセスであれば完了信号を受け取ることにより、そのメ
モリアクセスがプロセッサ20の外部で処理されたこと
を確認する。プロセッサ20は、前のメモリアクセスが
外部で処理されたことを確認する前に次のメモリアクセ
スを発行することができる。このため、各メモリアクセ
スにはidが付加され、アクセスの種類、アドレス、デ
ータ、キャッシュアルゴリズムの種類と共にidが出力
される。プロセッサ20への応答にもこのidが付加さ
れどのメモリアクセスに対する応答であるかが識別でき
る。
When a memory access is performed, the processor 20 outputs information on the memory access, in this case, information such as the type of access (load or store), address, data, and the like. The processor 20 confirms that the memory access has been processed outside the processor 20 by receiving data if the memory access is a load access and receiving a completion signal if the memory access is a store access. Processor 20 may issue the next memory access before confirming that the previous memory access was processed externally. Therefore, an id is added to each memory access, and the id is output together with the type of access, the address, the data, and the type of the cache algorithm. This id is also added to the response to the processor 20 to identify which memory access the response is to.

【0062】ちなみに、ロードとはキャッシュメモリ2
1からのデータの読み出しを、ストアとはキャッシュメ
モリ21へのデータの書き込みをいう。
Incidentally, the load means the cache memory 2
The reading of data from No. 1 and the storing are writing of data to the cache memory 21.

【0063】ここで、アクセスの種類は、1ビットで表
され、「0」がロード、「1」がストアアクセスを表す
ものとする。また、アドレスは40ビット、データは6
4ビットで構成されるものとする。プロセッサ20は、
最大4個のメモリアクセスを同時に発行することがで
き、2ビットのidで区別されるものとする。なお、以
降の説明では、アドレスの最下位ビットを第0ビット、
最上位ビットを第39ビットとする。また、主メモリ3
0は、64ビット幅×2Mエントリ=512Mバイト
(1M =1024×1024)であるとする。
Here, the type of access is represented by 1 bit, "0" represents load, and "1" represents store access. The address is 40 bits and the data is 6 bits.
It is assumed that it is composed of 4 bits. The processor 20
It is assumed that a maximum of four memory accesses can be issued simultaneously and are distinguished by a 2-bit id. In the following description, the least significant bit of the address is the 0th bit,
The most significant bit is the 39th bit. The main memory 3
0 is assumed to be 64 bits width × 2M entries = 512 Mbytes (1M = 1024 × 1024).

【0064】プロセッサ20が出力するアドレスは、そ
の上位ビットでどのノードPEiの主メモリ30に格納
されたデータであるかを表し、その下位ビットで主メモ
リ30でのオフセットを表す。ここでは、プロセッサ2
0が出力するアドレス40ビットのうち、第39ビット
から第30ビットまでの上位10ビットがどのノードP
Eiの主メモリ30のデータであるかを表し、第29ビ
ットか ら第0ビットまでの下位30ビットが各主メモ
リ30でのオフセットとなる。
The address output by the processor 20 indicates which node PEi is the data stored in the main memory 30 by its upper bits, and the offset in the main memory 30 by its lower bits. Here, processor 2
0 of the 40 bits of the output address, the upper 10 bits from the 39th bit to the 30th bit are which node P
It indicates whether the data is Ei data of the main memory 30, and the lower 30 bits from the 29th bit to the 0th bit are offsets in each main memory 30.

【0065】キャッシュメモリ21は、主メモリ30よ
りも少量ではあるが高速なメモリで構成される。これに
より、データがキャッシュメモリ21に存在した場合、
プロセッサ20のメモリアクセスに対して早く応答する
ことができ、メモリアクセスに要する時間を短縮するこ
とができる。キャッシュメモリ21は、64ビット幅×
128Kエントリ=1Mバイト(1K=1024)であ
るとする。また、キャッシュメモリ21と主メモリ30
との間のデータの転送は、ブロックと呼ばれる固定サイ
ズ(以降128バイトとする)で行われる。
The cache memory 21 is composed of a smaller but faster memory than the main memory 30. Thereby, when the data exists in the cache memory 21,
It is possible to quickly respond to the memory access of the processor 20 and shorten the time required for the memory access. The cache memory 21 has a 64-bit width ×
It is assumed that 128K entries = 1 Mbytes (1K = 1024). Also, the cache memory 21 and the main memory 30
Is transferred in a fixed size called a block (hereinafter, referred to as 128 bytes).

【0066】このマルチプロセッサシステム1では、主
メモリ30にあるデータのコピーが複数のノードPEi
のキャッシュメモリ21に存在することがある。このた
め、それらコピーや主メモリ30のデータとの間でデー
タの一貫性を維持する制御が必要となる。一貫性維持制
御部16は、このような一貫性の維持の制御を行うもの
で、キャッシュメモリ21にあるデータのコピーの状態
や主メモリのデータがシステム内でどういう状態にある
のかを管理する。一貫性維持制御部16は、メモリアク
セスに応じてノードPEi間でメッセージをやり取り
し、それらの状態を変更したりデータの転送を行う機能
を有する。一貫性維持制御部16の構成について、さら
に詳しく後述する。
In the multiprocessor system 1, a copy of data in the main memory 30 is transferred to a plurality of nodes PEi.
May exist in the cache memory 21. For this reason, control for maintaining data consistency between the copy and the data in the main memory 30 is required. The coherence maintenance control unit 16 controls such coherence maintenance, and manages a copy state of data in the cache memory 21 and a state of data in the main memory in the system. The consistency maintaining control unit 16 has a function of exchanging messages between the nodes PEi according to memory access, changing their states, and transferring data. The configuration of the consistency maintaining control unit 16 will be described later in more detail.

【0067】図1に示す相互結合網10は、メッセージ
に含まれるルーティング情報に基づきあるノードPEi
からあるノードPEiにメッセージを配送する機能を有
する。このルーティング情報として、ここでは宛先ノー
ド番号が必要十分な情報であるものとする。また、ある
ノードからあるノードへのパスは一つであり、同じパス
を通るメッセージ間で追い越しは発生しないものとす
る。ただし、送信ノードまたは受信ノードどちらか一方
でも異なる場合には、メッセージ間での到着順序は保証
されない。
The interconnection network 10 shown in FIG. 1 has a node PEi based on routing information contained in a message.
Has the function of delivering a message from a certain node PEi. Here, it is assumed that the destination node number is necessary and sufficient information as the routing information. It is assumed that there is one path from a certain node to a certain node, and no overtaking occurs between messages passing through the same path. However, if either the transmitting node or the receiving node is different, the order of arrival between messages is not guaranteed.

【0068】次に、相互結合網10を介してノードPE
i間でやり取りされるメッセー ジについて説明する。
Next, the node PE is connected via the interconnection network 10.
The message exchanged between i will be described.

【0069】図3(a)は、メモリアクセスが行われた
ノードPEiから主メモリ30にデータを保持するノー
ドPEiへ送信される要求メッセージを示す図であり、
図3(b)は、主メモリ30にデータを保持するノード
PEiから当該データのコピーをキャッシュメモリ21
に保持するノードPEiへ送信される要求メッセージを
示す図であり、図3(c)は、データのコピーをキャッ
シュッメモリ21に保持するノードPEiから主メモリ
30にデータを保持するノードPEiへ送信される報告
メッセージを示す図であり、図3(d)は、主メモリ3
0にデータを保持するノードPEiからメモリアクセス
が行われたノードPEiへ送信されるメモリアクセス完
了メッセージを示す図である。
FIG. 3A is a diagram showing a request message transmitted from the node PEi having accessed the memory to the node PEi holding the data in the main memory 30.
FIG. 3B shows that a copy of the data is transferred from the node PEi holding the data in the main memory 30 to the cache memory 21.
FIG. 3C shows a request message transmitted to the node PEi holding the data in the cache memory 21 to the node PEi holding the data in the main memory 30. FIG. 3D is a diagram showing a report message to be sent.
It is a figure which shows the memory access completion message transmitted from the node PEi holding data to 0 to the node PEi which performed memory access.

【0070】メッセージは、「BlkRdSh」,「B
lkRdEx」,「Upgrade」,「BlkW
r」,「RpBack」,「Ack」,「AckDat
a」,「IntvSh」,「IntvEx」,「In
v」,「CmpDatSh」,「CmpDatEx」,
「CmpSh」,「CmpEx」,「NCmp」の15
種類のメッセージがある。これらのメッセージは、ブロ
ック共有/排他読み出し/書き込みメッセージ群であ
る。
The messages include “BlkRdSh” and “BlkRdSh”.
lkRdEx ”,“ Upgrade ”,“ BlkW
r, RpBack, Ack, AckDat
a "," IntvSh "," IntvEx "," In
v "," CmpDatSh "," CmpDatEx ",
15 of "CmpSh", "CmpEx", "NCmp"
There are different types of messages. These messages are a group of block sharing / exclusive read / write messages.

【0071】このうち、「BlkRdSh」,「Blk
RdEx」,「Upgrade」,「BlkWr」,
「RpBack」の5種類のメッセージは、図3(a)
に示すように、メモリアクセスが行われたノードPEi
から、主メモリ30にデータを保持するノードPEiへ
送信される要求メッセージである。
Of these, "BlkRdSh" and "BlkRdSh"
RdEx "," Upgrade "," BlkWr ",
The five types of messages of “RpBack” are shown in FIG.
As shown in FIG.
Is a request message transmitted to the node PEi that holds data in the main memory 30.

【0072】BlkRdShメッセージはブロック共有
読み出し要求メッセージ、BlkRdExメッセージは
ブロック排他読み出しメッセージ、Upgradeメッ
セージはオーナーシップ獲得要求メッセージ、BlkW
rおよびRpBackメッセージはブロック書き込み要
求メッセージである。
The BlkRdSh message is a block sharing read request message, the BlkRdEx message is a block exclusive read message, the Upgrade message is an ownership acquisition request message, and the BlkW message.
The r and RpBack messages are block write request messages.

【0073】「IntvSh」,「IntvEx」,
「Inv」の3種類のメッセージは、図3(b)に示す
ように、主メモリ30にデータを保持するノードPEi
から当該データのコピーをキャッシュメモリ21に保持
するノードPEiへ送信される要求メッセージである。
これらのメッセージは、BlkRdSh,BlkRdE
x,Upgradeメッセージから派生する他のノード
PEiのキャッメモリ21に対する要求メッセージであ
る。
"IntvSh", "IntvEx",
As shown in FIG. 3B, the three types of messages of “Inv” are stored in the node PEi that holds data in the main memory 30.
Is a request message transmitted to the node PEi that holds a copy of the data in the cache memory 21 from the server.
These messages are BlkRdSh, BlkRdE
x, a request message to the cache memory 21 of another node PEi derived from the Upgrade message.

【0074】IntvShメッセージは共有読み出し要
求メッセージ、IntvExメッセージは排他読み出し
要求メッセージ、Invは無効化要求メッセージであ
る。
The IntvSh message is a shared read request message, the IntvEx message is an exclusive read request message, and the Inv is an invalidation request message.

【0075】「Ack」,「AckData」の2種類
のメッセージは、図3(c)に示すように、主メモリの
データのコピーをキャッシュメモリ21に保持するノー
ドPEiから主メモリ30にデータを保持するノードP
Eiへ送信される報告メッセージである。Ack,Ac
kDataメッセージは、IntvSh,IntvE
x,Invメッセージに対する応答メッセージである。
As shown in FIG. 3C, two types of messages “Ack” and “AckData” hold data in the main memory 30 from the node PEi that holds a copy of the data in the main memory in the cache memory 21. Node P
This is a report message sent to Ei. Ack, Ac
The kData message is IntvSh, IntvE
This is a response message to the x, Inv message.

【0076】Ackメッセージは応答、AckData
メッセージはデータ付き応答メッセージである。
The Ack message is a response, AckData
The message is a response message with data.

【0077】「CmpDatSh」,「CmpDatE
x」,「CmpSh」,「CmpEx」,「NCmp」
の5種類のメッセージは、図3(d)に示すように、主
メモリ30にデータを保持するノードPEiからメモリ
アクセスが行われたノードPEiへ送信されるメモリア
クセス完了応答メッセージである。
"CmpDatSh", "CmpDatE"
x ”,“ CmpSh ”,“ CmpEx ”,“ NCmp ”
As shown in FIG. 3D, the five types of messages are memory access completion response messages transmitted from the node PEi that holds data in the main memory 30 to the node PEi that has performed the memory access.

【0078】CmpDatShメッセージはBlkRD
Shメッセージに対する共有応答メッセージ、CmpD
atExメッセージはBlkRdExメッセージに対す
る排他応答メッセージ、NCmpメッセージはBlkR
DShメッセージおよびBlkRdExメッセージに対
する未完了応答メッセージである。
The CmpDatSh message is BlkRD
Shared response message for Sh message, CmpD
The atEx message is an exclusive response message to the BlkRdEx message, and the NCmp message is a BlkR
This is an incomplete response message to the DSh message and the BlkRdEx message.

【0079】図5(a)は、ブロックデータ付メッセー
ジの構成を示すであり、図5(b)は、基本メッセージ
の構成を示す図である。
FIG. 5 (a) shows the structure of a message with block data, and FIG. 5 (b) shows the structure of a basic message.

【0080】次に、上述した各メッセージの構成につい
て、図3(a),(b),(c),(d)および図5
(a),(b)を参照しながら説明する。
Next, the structure of each message described above will be described with reference to FIGS. 3 (a), (b), (c), (d) and FIG.
This will be described with reference to FIGS.

【0081】メッセージは、基本メッセージとブロック
データ付きメッセージに分類される。「BlkRdS
h」,「BlkRdEx」,「Upgrade」,「A
ck」,「IntvSh」,「IntvEx」,「In
v」,「CmpSh」,「CmpEx」,「NCmp」
の10種類のメッセージは基本メッセージ である。
「BlkWr」,「RpBack」,「AckDat
a」,「CmpDatSh」,「CmpDatEx」の
5種類のメッセージはブロックデータ付きのメッセージ
である。
Messages are classified into basic messages and messages with block data. "BlkRdS
h "," BlkRdEx "," Upgrade "," A
ck "," IntvSh "," IntvEx "," Inv
v "," CmpSh "," CmpEx "," NCmp "
Are the basic messages.
"BlkWr", "RpBack", "AckDat
The five types of messages “a”, “CmpDatSh”, and “CmpDatEx” are messages with block data.

【0082】基本メッセージは、図5(a)に示すよう
に、宛先ノード番号(10ビット)、メッセージの種類
を表すコード(計15個なので4ビットで表現)、要求
元ノード番号(10ビット)、mid(2ビット)、ア
ドレス(40ビット)の計66ビットで構成される。
As shown in FIG. 5A, the basic message is composed of a destination node number (10 bits), a code representing the type of the message (4 bits because there are 15 messages in total), and a request source node number (10 bits). , Mid (2 bits) and an address (40 bits), for a total of 66 bits.

【0083】ブロックデータ付きメッセージは、図5
(b)に示すように、宛先ノード番号(10ビット)、
メッセージの種類を表すコード(4ビット)、要求元ノ
ード番号(10ビット)、mid(2ビット)、アドレ
ス(40ビット)に加えて、ブロックサイズのデータ
(128バイト)の計66ビット+128バイトで構成
される。
The message with block data is shown in FIG.
As shown in (b), the destination node number (10 bits),
In addition to the code (4 bits) representing the type of the message, the requesting node number (10 bits), the mid (2 bits), and the address (40 bits), a total of 66 bits + 128 bytes of block size data (128 bytes) Be composed.

【0084】以下、図2に示した一貫性維持制御部16
について、さらに詳しく説明する。一貫性維持制御部1
6は、タグメモリ22と、リクエスト管理テーブル24
と、ローカルアクセス制御部25と、書き戻しブロック
選択手段26と、ホームアクセス制御部27と、ディレ
クトリメモリ31と、メッセージ送信部35と、メッセ
ージ受信部36と、を有する。
Hereinafter, the consistency maintaining control unit 16 shown in FIG.
Will be described in more detail. Consistency maintenance control unit 1
6 is a tag memory 22 and a request management table 24
, A local access control unit 25, a write-back block selecting unit 26, a home access control unit 27, a directory memory 31, a message transmitting unit 35, and a message receiving unit 36.

【0085】ディレクトリメモリ31は、主メモリ30
に格納されているデータについて、各ブロックごとに、
その状態を表す情報を格納している。ディレクトリメモ
リ31に格納されている各ブロックの情報は、ブロック
の状態、コピーをキャッシュメモリ21に保持している
ノードの情報(以降、保持ノード情報と呼ぶ)、保持ノ
ード情報の形式、書き戻し回数である。
The directory memory 31 stores the main memory 30
For the data stored in each block,
Information indicating the state is stored. The information of each block stored in the directory memory 31 includes a state of the block, information of a node holding a copy in the cache memory 21 (hereinafter, referred to as holding node information), a format of the holding node information, and the number of times of writing back. It is.

【0086】ブロックの状態は、「C」,「M」,「R
SP」,「REP」,「UP」 の5つのうちのいずれ
かで表され、例えば、「C」は「000」,「M」は
「001」,「RSP」は「100」,「REP」は
「101」,「UP」は 「110」というように3ビ
ットでコーディングされる。
The block states are "C", "M", "R"
SP ”,“ REP ”, or“ UP ”. For example,“ C ”is“ 000 ”and“ M ”is
“001”, “RSP” is coded with “100”, “REP” is coded with “101”, and “UP” is coded with 3 bits, such as “110”.

【0087】ブロックの状態として「C」は、0以上の
複数のノードPEiのキャッシュメモリ21にデータの
コピーが存在する状態を表す。このとき、キャッシュメ
モリ21のコピーと主メモリ30のデータの値は同じで
ある。「M」は、1つのノードPEiのキャッシュメモ
リ21のみがデータのコピーを保持している状態を表
す。このとき、キャッシュメモリ21のコピーの値と主
メモリ30のデータの値は異なり、コピーの値が最新の
値である可能性がある。「RSP」,「REP」,「U
P」は、あるメモリアクセスから派生した一貫性維持処
理の要求メッセージを受け、この要求メッセージに応答
して一貫性維持の処理をしている最中であることを示し
て いる。
“C” as a block state indicates a state in which a copy of data exists in the cache memory 21 of a plurality of nodes PEi of 0 or more. At this time, the value of the copy in the cache memory 21 and the value of the data in the main memory 30 are the same. “M” indicates a state in which only the cache memory 21 of one node PEi holds a copy of data. At this time, the value of the copy in the cache memory 21 differs from the value of the data in the main memory 30, and the value of the copy may be the latest value. "RSP", "REP", "U
"P" indicates that a consistency maintenance process request message derived from a certain memory access has been received, and the consistency maintenance process is being performed in response to the request message.

【0088】本実施例に係わる保持ノード情報は、次の
3つの形式をとる。
The holding node information according to the present embodiment takes the following three forms.

【0089】(1)ノードPEiを特定するノード番号
(10ビットで表される)を一つ保持するポインタ形
式。
(1) A pointer format for holding one node number (represented by 10 bits) specifying a node PEi.

【0090】(2)コースベクタ形式(ここでは8ビッ
ト)。
(2) Course vector format (8 bits here).

【0091】(3)キャッシュメモリ21にコピーを保
持するノード数(10ビットで表し、0から1023ま
でをカウントする)を管理するカウンタ形式。
(3) A counter format for managing the number of nodes holding copies in the cache memory 21 (represented by 10 bits and counting from 0 to 1023).

【0092】コースベクタ形式では、次のように保持ノ
ードが管理される。
In the course vector format, the holding nodes are managed as follows.

【0093】ノードPEiをいくつかのグループに分割
し、グループ数分のビットで保持者(ノード)を管理す
る。各ビットを立てるかどうかは、各ビットに対応する
グループの中に一つでもコピーを保持するノードPEi
が存在するかどうか によって決定される。ここでは、
これを8ビットで表し、第0ビットがノードPE0から
ノードPE127、第1ビットがノードPE128から
ノードPE255、.....、第7ビットがノードP
E896からノードPE1023にそれぞれ対応する。
The node PEi is divided into several groups, and the holders (nodes) are managed by the bits of the number of groups. Whether or not to set each bit depends on whether the node PEi that holds at least one copy in the group corresponding to each bit.
Is determined by whether or not exists. here,
This is represented by 8 bits, where the 0th bit is the node PE0 to the node PE127, the first bit is the node PE128 to the node PE255,. . . . . , The seventh bit is the node P
E896 corresponds to the node PE1023.

【0094】状態が「M」,「RSP」の場合ポインタ
形式で保持ノードを管理する。「REP」,「UP」の
場合はカウンタ形式で保持ノードを管理する。「C」の
場合は保持するノードの数によりポインタ形式とコース
ベクタ形式を切り替える。そのため、ディレクトリメモ
リ31には各ブロックごとにどちらの形式で現在管理し
ているかを示す2ビット(例えば、「00」ならコース
ベクタ形式、「01」ならポインタ形式、「10」なら
カウンタ形式)も保持される。
When the state is "M" or "RSP", the holding node is managed in a pointer format. In the case of “REP” or “UP”, the holding node is managed in a counter format. In the case of “C”, the pointer format and the course vector format are switched according to the number of nodes held. Therefore, the directory memory 31 also has two bits (for example, "00" for a course vector format, "01" for a pointer format, and "10" for a counter format) indicating which format is currently managed for each block. Will be retained.

【0095】書き戻し回数は、書き戻しを受けた回数を
記録するものである。ここでは1ビットからなるものと
し、「0」から「1」までの数をカウントできるものと
する。
The number of times of rewriting records the number of times of rewriting. Here, it is assumed that it is composed of one bit, and that the number from “0” to “1” can be counted.

【0096】この構成の場合、ディレクトリメモリ31
は16ビット(状態3ビット、保持ノード情報10ビッ
ト、保持形式ビット2ビット、書き戻し回数1ビット)
幅4M(主メモリサイズ/ブロックサイズ)エントリ分
のデータを保持するメモリとなる。ディレクトリメモリ
31に格納されている各エントリの初期値は、状態は
「C」、保持ノード情報は「0x000」(0xは16
進表記)、保持形式はコースベクタ形式で、書き戻し回
数は「0」となる。
In the case of this configuration, the directory memory 31
Is 16 bits (3 bits for status, 10 bits for holding node information, 2 bits for holding format, 1 bit for rewriting)
It is a memory that holds data of 4M (main memory size / block size) entries. The initial value of each entry stored in the directory memory 31 is “C” for the state and “0x000” for the holding node information (0x is 16).
Hexadecimal notation), the holding format is the course vector format, and the number of times of rewriting is “0”.

【0097】タグメモリ22は、キャッシュメモリ21
に格納されているデータについて、その状態を表す情報
をブロック単位で保持している。タグメモリ22に格納
されている各ブロックの情報は、ブロックの状態および
タグアドレスである。ブロックの状態は、図6を再び参
照すると、「I」,「S」,「E」,「D」の4つのい
ずれかによって表され、それぞれ対応するブロックがど
の状態にあるかを示している。例えば、ブロックの状態
は、「I」は「00」,「S」は「01」,「E」は
「1 0」,「D」は「11」というように2ビットで
コーディングされる。
The tag memory 22 is a cache memory 21
Holds information indicating the state of the data stored in each block. The information of each block stored in the tag memory 22 is the state of the block and the tag address. Referring to FIG. 6 again, the state of each block is represented by any one of four states “I”, “S”, “E”, and “D”, and indicates the state of the corresponding block. . For example, the state of a block is coded with two bits, such as "00" for "I", "01" for "S", "10" for "E", and "11" for "D".

【0098】ブロックの状態として「I」は、一貫性が
維持された有効なデータのコピーが存在しない状態を示
す。「S」は、データの有効なコピーが存在し、かつ他
のノードのキャッシュメモリ21にも有効なコピーが存
在する可能性がある、という状態を示す。「E」は、デ
ータの有効なコピーが存在し、かつ他のノードのキャッ
シュメモリ21には 有効なコピーが存在せず、かつ主
メモリ30のデータの値と同じ状態を示す。「D」は、
データの有効なコピーが存在し、かつ他のノードのキャ
ッシュメモリ21には有効なコピーが存在せず、かつ主
メモリ30のデータの値と異なる状態を示す。
"I" as a block state indicates a state where there is no valid copy of data in which consistency is maintained. “S” indicates a state in which a valid copy of the data exists and there is a possibility that a valid copy also exists in the cache memory 21 of another node. “E” indicates that a valid copy of the data exists, no valid copy exists in the cache memory 21 of another node, and the state is the same as the value of the data in the main memory 30. "D"
This indicates a state in which a valid copy of the data exists, no valid copy exists in the cache memory 21 of another node, and a value different from the data value of the main memory 30.

【0099】タグアドレスは、対応するブロックがどの
アドレスのデータであるかを示す。ここでは、あるアド
レスのデータがキャッシュメモリ21のどのブロックに
格納されるかが一意に決定されるダイレクトマップ方式
でキャッシュメモリ21が制御されている。この場合、
キャッシュメモリ21のサイズが1Mバイトであるの
で、アドレス40ビットのうち第39ビットから第20
ビットまでの上位20ビットがタグアドレスとなる。
The tag address indicates which address data the corresponding block has. Here, the cache memory 21 is controlled by a direct map method in which a block of the cache memory 21 at which data at a certain address is stored is uniquely determined. in this case,
Since the size of the cache memory 21 is 1 Mbyte, the 39th bit to the 20th
The upper 20 bits up to the bit become the tag address.

【0100】この構成の場合、タグメモリ22は22ビ
ット幅8K(=キャッシュメモリサイズ÷ブロックサイ
ズ)エントリ分のデータを保持するメモリとなる。タグ
メモリ22に格納されている各エントリの初期値は、状
態は「I」、タグアドレスは0x00000となる。
In the case of this configuration, the tag memory 22 is a memory that holds data for a 22-bit width 8K (= cache memory size / block size) entries. The initial value of each entry stored in the tag memory 22 is “I” for the state and 0x00000 for the tag address.

【0101】図6は、ディレクトリメモリ31とタグメ
モリ22およびこのメモリブロックの状態を示す図であ
る。
FIG. 6 is a diagram showing the state of the directory memory 31, the tag memory 22, and the memory blocks.

【0102】メッセージ送信部35およびメッセージ受
信部36は、それぞれ相互結合網10と接続されてお
り、ノードPEiから相互結合網10へのメッセージの
送信、および相互結合網10からのメッセージの受信を
行う。
The message transmitting unit 35 and the message receiving unit 36 are connected to the interconnection network 10 and transmit a message from the node PEi to the interconnection network 10 and receive a message from the interconnection network 10. .

【0103】メッセージ送信部35は、ローカルアクセ
ス制御部25およびホームアクセス制御部27の2モジ
ュールと接続されており、各モジュールが出力するメッ
セージを調停し、取り込む。
The message transmitting unit 35 is connected to the two modules of the local access control unit 25 and the home access control unit 27, arbitrates and outputs messages output by each module.

【0104】メッセージ受信部36は、ローカルアクセ
ス制御部25およびホームアクセス制御部27の2モジ
ュールと接続しており、相互結合網10から受け取った
メッセージの種類に応じて上記2モジュールにメッセー
ジを出力する。受け取ったメッセージの種類が「Blk
RdSh」,「BlkRdEx」,「Upgrad
e」,「BlkWr」,「RpBack」,「Ac
k」,「AckData」の場合、メッセージの出力先
はホームアクセス制御部27となる。「IntvS
h」,「IntvEx」,「Inv」,「CmpDat
Sh」,「CmpDatEx」,「CmpSh」,「C
mpEx」,「NCmp」の場 合、メッセージの出力
先はローカルアクセス制御部25となる。
The message receiving unit 36 is connected to two modules, the local access control unit 25 and the home access control unit 27, and outputs a message to the two modules according to the type of the message received from the interconnection network 10. . The type of the received message is "Blk
RdSh "," BlkRdEx "," Upgrad
e "," BlkWr "," RpBack "," Ac
In the case of “k” and “AckData”, the output destination of the message is the home access control unit 27. "IntvS
h "," IntvEx "," Inv "," CmpDat
Sh "," CmpDatEx "," CmpSh "," C
In the case of "mpEx" or "NCmp", the output destination of the message is the local access control unit 25.

【0105】リクエスト管理テーブル24は、プロセッ
サ20が同時に発行可能なメモリアクセスの最大数(こ
こでは4)に対応して4エントリからなるテーブルであ
る。各エントリは、エントリが有効かどうかを示す有効
ビット(1ビット)、アクセスの種類(1ビット)、ア
ドレス(40ビット)、データ(64ビット) の計1
06ビットからなる。
The request management table 24 is a table composed of four entries corresponding to the maximum number of memory accesses that can be issued simultaneously by the processor 20 (here, four). Each entry includes a valid bit (1 bit) indicating whether the entry is valid, an access type (1 bit), an address (40 bits), and data (64 bits).
It consists of 06 bits.

【0106】リクエスト管理テーブル24は次のような
機能を有する。
The request management table 24 has the following functions.

【0107】(a)ローカルアクセス制御部25の指示
に従い、ローカルアクセス制御部25が出力する上記設
定データ(106ビット)を、ローカルアクセス制御部
25が指定するエントリに書き込む機能。
(A) A function of writing the setting data (106 bits) output from the local access control unit 25 to an entry designated by the local access control unit 25 in accordance with an instruction from the local access control unit 25.

【0108】(b)ローカルアクセス制御部25が指定
するエントリの内容をローカルアクセス制御部25に出
力する機能。
(B) Function of outputting the contents of the entry specified by the local access control unit 25 to the local access control unit 25.

【0109】ローカルアクセス制御部25は、プロセッ
サ20が出力するメモリアクセス、ホームアクセス制御
部27およびメッセージ受信部36が出力するメッセー
ジを調停して選択し、データ一貫性維持のための処理を
行う機能を有する。ローカルアクセス制御部25が行う
データ一貫性維持のための処理には、タグメモリ22へ
のアクセス、キャッシュメモリ21へのアクセス、リク
エスト管理テーブル24へのアクセス、書き戻しブロッ
ク選択手段26へのアクセス、プロセッサ20への応
答、メッセージ送信部35あるいはホームアクセス制御
部27へのメッセージの出力がある。
Local access control section 25 arbitrates and selects a memory access output from processor 20, a message output from home access control section 27 and a message output from message receiving section 36, and performs processing for maintaining data consistency. Having. The processing performed by the local access control unit 25 to maintain data consistency includes access to the tag memory 22, access to the cache memory 21, access to the request management table 24, access to the write-back block selection unit 26, There is a response to the processor 20 and a message output to the message transmission unit 35 or the home access control unit 27.

【0110】図4は、書き戻しブロック制御手段26の
内部構成を示す図である。
FIG. 4 is a diagram showing the internal configuration of the write-back block control means 26.

【0111】書き戻しブロック選択手段26は、ローカ
ルアクセス制御部25が指定するアドレスを登録するア
ドレス登録手段110と、登録されたアドレスを複数保
持するアドレス保持手段111と、アドレス保持手段に
格納された複数のアドレスから一つを選択しローカルア
クセス制御部25に出力し書き戻しを要求するする書き
戻し要求手段112と、ローカルアクセス制御部25の
指示に従い、書き戻し要求手段が選択しているエントリ
を削除するアドレス削除手段113と、を有する。
The write-back block selection means 26 includes an address registration means 110 for registering an address designated by the local access control unit 25, an address holding means 111 for holding a plurality of registered addresses, and an address storage means. A write-back requesting unit 112 that selects one from a plurality of addresses and outputs it to the local access control unit 25 to request a write-back, and an entry selected by the write-back requesting unit according to the instruction of the local access control unit 25 Address deleting means 113 for deleting.

【0112】ここで、アドレス保持手段111は2エン
トリを格納したFIFO(First InFirst Out)で構成
される。保持するアドレスは第39ビットから第7ビッ
トまでの33ビットである。アドレス登録手段110
は、アドレス保持手段111の各エントリとローカルア
クセス制御部25が指定するアドレスの第39ビットか
ら第7ビットを比較し、一致するエントリがない場合ア
ドレス保持手段111に登録する。書き戻し要求手段1
12はFIFOがいっぱいのときにFIFOの先頭エン
トリのアドレスをローカルアクセス制御部25に出力
し、書き戻しを要求する。このとき、アドレスの第6ビ
ットから第0ビットを0で補完して出力する。また、ア
ドレス削除手段113がエントリ削除の指示を受ける
と、FIFOの先頭エントリを削除する。
Here, the address holding means 111 comprises a FIFO (First In First Out) storing two entries. The retained address is 33 bits from the 39th bit to the 7th bit. Address registration means 110
Compares the entries of the address holding unit 111 with the 39th to 7th bits of the address specified by the local access control unit 25, and if there is no matching entry, registers the entry in the address holding unit 111. Write-back request means 1
Numeral 12 outputs the address of the first entry of the FIFO to the local access control unit 25 when the FIFO is full, and requests a write-back. At this time, the 6th to 0th bits of the address are complemented with 0 and output. When the address deletion unit 113 receives an entry deletion instruction, it deletes the first entry of the FIFO.

【0113】ホームアクセス制御部27は、ローカルア
クセス制御部25およびメッセージ受信部36が出力す
るメッセージを受け、データ一貫性維持のための処を行
う機能を有する。ホームアクセス制御部27が行うデー
タ一貫性維持のための処理には、ディレクトリメモリ3
1へのアクセス、主メモリ30へのアクセス、ローカル
アクセス制御部25あるいはメッセージ送信部33への
メッセージ出力がある。
Home access control section 27 has a function of receiving messages output from local access control section 25 and message receiving section 36 and performing processing for maintaining data consistency. The process for maintaining data consistency performed by the home access control unit 27 includes the directory memory 3
1, an access to the main memory 30, and a message output to the local access control unit 25 or the message transmission unit 33.

【0114】また、ホームアクセス制御部27は、書き
戻し回数を制限する閾値を保持している。この閾値と、
ディレクトリメモリ31に格納されている書き戻し回数
と同じビット数(ここでは1ビット)からなる。ここ
で、この閾値はプロセッサ20から設定可能なものであ
っても構わないし、固定的に値が決まっていても構わな
い。ここでは、固定的に値「1」が書き込まれていると
する。
The home access control unit 27 holds a threshold for limiting the number of times of writing back. This threshold,
It has the same number of bits (here, 1 bit) as the number of times of writing back stored in the directory memory 31. Here, the threshold may be set by the processor 20 or may be fixed. Here, it is assumed that the value “1” is fixedly written.

【0115】図7は、本実施例のノードPEi40とそ
の構成要素である主メモリ41およびキャッシュメモリ
42の状態遷移を示す図である。
FIG. 7 is a diagram showing the state transition of the node PEi 40 of this embodiment and the main memory 41 and cache memory 42 which are the constituent elements.

【0116】図7は、本実施例のノードPEi40とそ
の構成要素である主メモリ41およびキャッシュメモリ
42の状態遷移を示す図である。
FIG. 7 is a diagram showing the state transition of the node PEi 40 of this embodiment and the main memory 41 and cache memory 42 which are the constituent elements.

【0117】図7に示すように、ノードPEi40にメ
モリアクセスがあると、メモリアクセスを受けたノード
PEi40は、主メモリ41に対し要求メッセージを発
行する。主メモリ41はさらにキャッシュメモリ42に
対し要求を発行し、キャッシュメモリ42中に所望のデ
ータが存在すれば、それを主メモリ41に報告メッセー
ジで通知する。そして、主メモリ41からノードPEi
40に完了メッセージを返す。
As shown in FIG. 7, when there is a memory access to the node PEi 40, the node PEi 40 having received the memory access issues a request message to the main memory 41. The main memory 41 further issues a request to the cache memory 42 and, if desired data exists in the cache memory 42, notifies the main memory 41 of the desired data by a report message. Then, from the main memory 41, the node PEi
A completion message is returned to 40.

【0118】以下、図8〜図13を参照して、ローカル
アクセス制御部25の動作について説明する。本実施例
は、原則的に図7に示した流れに従って動作する。
The operation of local access control unit 25 will be described below with reference to FIGS. This embodiment basically operates according to the flow shown in FIG.

【0119】図8(a)は、プロセッサ20が出力する
メモリアクセスを受けて、ローカルアクセス制御部25
が実行する処理を示すフローチャートであり、図8(b
9は、図8(a)の処理における処理タイプ、メッセー
ジの種類、ブロックの次状態等の関係を示すテーブルで
ある。ローカルアクセス制御部25は、図8(b)の関
係を示すテーブルを格納している。
FIG. 8A shows a local access control unit 25 receiving a memory access output from the processor 20.
FIG. 8 is a flowchart showing the processing executed by FIG.
9 is a table showing the relationship between the processing type, the type of message, the next state of the block, and the like in the processing of FIG. 8A. The local access control unit 25 stores a table showing the relationship shown in FIG.

【0120】このとき、ローカルアクセス制御部25
は、プロセッサ20からアクセスの種類(1ビット)、
アドレス(40ビット)、id(2ビット)、データ
(64ビット)の情報を受ける。
At this time, the local access control unit 25
Is the type of access (1 bit) from the processor 20,
Information of address (40 bits), id (2 bits), and data (64 bits) is received.

【0121】まず、ステップS111で、ローカルアク
セス制御部25は、タグメモリ22にアクセスし、該当
するブロックのデータ(状態およびタグアドレス)を読
み出す。ここでは、8K(1K=1024)あるエント
リのうち、アドレスの第19ビットから第7ビットの1
3ビットで指定されるエントリのデータを読み出す。ア
クセスの種類、状態、アドレスの第39ビットから第2
0ビットまでの上位20ビットとタグアドレス(20ビ
ット)が一致するかどうかの3つの情報から、後述する
「AA」〜「AD」の処理タイプのうちのどの処理タイ
プとなるかを決定する。この3情報からは、処理タイプ
が「AA」または「AB」の場合にそれぞれステップS
113およびS115で出力されるメッセージの種類、
およびステップS118で更新されるブロックの状態
(タグアドレスはアドレスの上位20ビットに必ず更新
される)も決定する。
First, in step S111, the local access control unit 25 accesses the tag memory 22 and reads out data (state and tag address) of the corresponding block. Here, of the 8K (1K = 1024) entries, the 1st of the 7th bit to the 19th bit of the address are set.
The data of the entry specified by 3 bits is read. Access type, status and address from bit 39 to bit 2
From the three pieces of information on whether the upper 20 bits up to 0 bits match the tag address (20 bits), it is determined which of the processing types “AA” to “AD” will be described later. From these three information, if the processing type is "AA" or "AB", the process proceeds to step S
113 and types of messages output in S115,
And the state of the block to be updated in step S118 (the tag address is always updated to the upper 20 bits of the address).

【0122】ステップS112において決定された処理
タイプが「AA」の場合、ステップS113に進む。
If the processing type determined in step S112 is "AA", the flow advances to step S113.

【0123】ステップS113では、図8(b)に示す
テーブルに従って生成するメッセージを決定する。メッ
セージの宛先ノード番号(10ビット)には、アドレス
の第39ビットから第30ビットまでの上位10ビット
が、要求元ノード番号(10ビット)には、当該ノード
PEiのノード番号(10ビット)が、それぞれ用いら
れる。midとアドレスには、プロセッサ20から得た
idとアドレスがそれぞれ用いられる。このとき、生成
したメッセージをメッセージ送信部35へ出力するか、
あるいはホームアクセス制御部27へ出力するかを次の
ようにして決定する。宛先ノード番号と当該ノードPE
iのノード番号とを比較し、その結果が不一致の場合は
メッセージをメッセージ送信部35へ出力し、一致の場
合はホームアクセス制御部27へ出力する。同時にリク
エスト管理テーブル24への登録も行う。ローカルアク
セス制御部25は、有効ビットを「1」、受けたメモリ
アクセスに付加されていたアクセスの種類、アドレスお
よびデータを設定データとしてリクエスト管理テーブル
24に出力し、受けたメモリアクセスに付加されていた
id番目が示すエントリ(0〜3)に設定する。ステッ
プS113の処理が終了すると、ステップS118に進
む。
In step S113, a message to be generated is determined according to the table shown in FIG. The destination node number (10 bits) of the message contains the upper 10 bits from the 39th bit to the 30th bit of the address, and the requesting node number (10 bits) contains the node number (10 bits) of the node PEi. , Respectively. The id and the address obtained from the processor 20 are used for the mid and the address, respectively. At this time, the generated message is output to the message transmitting unit 35,
Alternatively, whether to output to the home access control unit 27 is determined as follows. Destination node number and corresponding node PE
i is compared with the node number of i, and if the result is inconsistent, the message is output to the message transmitting unit 35; At the same time, registration in the request management table 24 is also performed. The local access control unit 25 sets the valid bit to “1”, outputs the type, address, and data of the access added to the received memory access to the request management table 24 as setting data, and adds it to the received memory access. It is set to the entry (0-3) indicated by the id-th. When the process in step S113 ends, the process proceeds to step S118.

【0124】ステップS112において決定された処理
タイプが「AB」であった場合、ステップS114に進
む。
If the processing type determined in step S112 is "AB", the flow advances to step S114.

【0125】ステップS114では、プロセッサ20か
ら得られたアドレスの第19ビットから第7ビットまで
の13ビットに0x0から0xfまで変化する4ビット
を下位に付加した17ビットで指定される合計16エン
トリ、128バイトのブロックデータをキャッシュメモ
リ21(128Kエントリ×64ビット幅)から読み出
し、そのブロックデータを付加した「BlkWr」メッ
セージを生成する(ステップS114)。この「Blk
Wr」メッセージの宛先ノード番号には、タグアドレス
の第19ビットから第10ビットまでの上位10ビット
が用いられ、要求元ノード番号には、当該ノードPEi
のノード番号が用いられる。また、アドレスは、タグア
ドレス(20ビット)を上位20ビットとし、下位20
ビットにプロセッサ20から得られたアドレスの第19
ビットから第0ビットまでの20ビットが用いられる。
また、midはどんな値でも構わない。生成したメッセ
ージをメッセージ送信部35とホームアクセス制御部2
7とのいずれに出力するかは、ステップS113の場合
と同様に、宛先ノード番号と当該ノード番号との比較結
果によって決定する。ステップS114の処理が終了す
ると、ステップS115に進む。
In step S114, a total of 16 entries designated by 17 bits obtained by adding 4 bits varying from 0x0 to 0xf to 13 bits from the 19th bit to the 7th bit of the address obtained from the processor 20, The block data of 128 bytes is read from the cache memory 21 (128K entries × 64 bits width), and a “BlkWr” message to which the block data is added is generated (step S114). This "Blk
The upper 10 bits from the 19th bit to the 10th bit of the tag address are used as the destination node number of the “Wr” message, and the corresponding node PEi is used as the request source node number.
Is used. The address is such that the tag address (20 bits) is the upper 20 bits and the lower 20 bits.
Bit 19 of the address obtained from processor 20
20 bits from the bit to the 0th bit are used.
Also, mid may be any value. The generated message is sent to the message transmitting unit 35 and the home access control unit 2
7 is determined based on the result of comparison between the destination node number and the node number, as in step S113. When the process in step S114 ends, the process proceeds to step S115.

【0126】ステップS115で実行する処理は、ステ
ップS113の処理と同じであるので、説明は省略す
る。ステップS115の処理が完了すると、ステップS
118に進 む。
The processing executed in step S115 is the same as the processing in step S113, and a description thereof will be omitted. Upon completion of the process in the step S115, the process proceeds to the step S115.
Proceed to 118.

【0127】ステップS112において決定された処理
タイプが「AC」であった場合、ステップS116に進
む。
If the processing type determined in step S112 is "AC", the flow advances to step S116.

【0128】ステップS116では、プロセッサ20か
ら得たアドレスの第19ビットから第3ビットまでの1
7ビットで指定されるエントリに対応する64ビットの
データをキャッシュメモリ21から読み出し、その読み
出したデータをプロセッサ20に応答する。このとき、
プロセッサ20から得たidも、同時にプロセッサ20
に渡し、当該idのメモリアクセスに対する応答である
ことを示す。ステップS116の処理が完了すると、ス
テップS118に進む。
In the step S116, the 1-th to the 19th to the third bits of the address obtained from the processor 20 are set.
64-bit data corresponding to the entry specified by 7 bits is read from the cache memory 21, and the read data is returned to the processor 20. At this time,
The id obtained from the processor 20 is also
To indicate that the response is to the memory access of the id. Upon completion of the process in the step S116, the process proceeds to a step S118.

【0129】ステップS112において決定された処理
タイプが「AD」であった場合、ステップS117に進
む。
If the processing type determined in step S112 is "AD", the flow advances to step S117.

【0130】ステップS117では、プロセッサ20か
ら得たアドレスの第19ビットから第3ビットまでの1
7ビットで指定されるキャッシュメモリ21のエントリ
に、プロセッサ20から得た64ビットのデータを書き
込む。また、プロセッサ20に対してidを出力し、メ
モリアクセスの完了通知を行う。これにより、当該id
のメモリアクセスに対する処理が完了した旨がプロセッ
サに通知される。ステップS117の処理が終わると、
ステップS118に進む。
In the step S117, the 1-th to the 19th to the third bits of the address obtained from the processor 20 are set.
The 64-bit data obtained from the processor 20 is written into the entry of the cache memory 21 specified by 7 bits. Further, it outputs an id to the processor 20 and notifies the completion of the memory access. Thereby, the id
Is notified to the processor that the processing for the memory access has been completed. When the processing of step S117 ends,
Proceed to step S118.

【0131】ステップS118では、タグメモリ22を
更新するための処理を行う。更新を行うエントリはステ
ップS111においてアクセスしたエントリであり、状
態は図8(b)で示されるブロックの次状態に、タグア
ドレスはプロセッサ20から得たアドレスの第39ビッ
トから第20ビットまでの上位20ビットに、更新す
る。ステップS118の処理が終了すると、当該メモリ
アクセスに関する処理は終了する。
At step S118, processing for updating the tag memory 22 is performed. The entry to be updated is the entry accessed in step S111, the state is the next state of the block shown in FIG. 8B, and the tag address is the higher order from the 39th bit to the 20th bit of the address obtained from the processor 20. Update to 20 bits. When the process in step S118 ends, the process related to the memory access ends.

【0132】図9(a)は、ホームアクセス制御部27
あるいはメッセージ受信部36が出力するメッセージの
うち、IntvSh,IntvEx,Upgradeの
3種類のメッセージを受けた場合に、ローカルアクセス
制御部25が実行する処理を示すフローチャートであ
り、図9(b)は、図9(a)の処理における処理タイ
プ、メッセージの種類、ブロックの次状態等の関係を示
すテーブルである。ローカルアクセス制御部25は、図
9(b)の関係を示すテーブルを格納している。まず、
ステップS121で、メッセージに含まれるアドレスの
値を用いてタグメモリ22に読み出しアクセスを行う。
アクセスされるタグメモリ22のエントリは、アドレス
の第19ビットから第7ビットまでの13ビットで指定
される。これにより、該当するブロックの状態およびタ
グアドレスが読み出される。メッセージの種類、状態、
およびメッセージに付加されていたアドレスの第39ビ
ットから第20ビットまでの上位20ビットと タグア
ドレスが一致するかどうかの3つの情報から、後述する
「BA」と「BB」のうちのどの処理タイプとなるかを
決定する。また、上記3情報からは、ステップS123
で出力するメッセージの種類、およびステップS125
で更新するブロックの状態(タグアドレスの値は変更さ
れない)も決定する。なお、上記3情報と処理タイプ、
メッセージの種類、ブロックの次状態の関係は、図9
(b)に示すようになる。ローカルアクセス制御部25
は、この関係を示すテーブルを格納している。
FIG. 9A shows the home access control unit 27.
Alternatively, FIG. 9B is a flowchart illustrating a process executed by the local access control unit 25 when three types of messages, IntvSh, IntvEx, and Upgrade, among messages output by the message receiving unit 36 are received. 10 is a table showing a relationship between a process type, a message type, a next state of a block, and the like in the process of FIG. The local access control unit 25 stores a table indicating the relationship shown in FIG. First,
In step S121, read access is performed to the tag memory 22 using the address value included in the message.
The entry of the tag memory 22 to be accessed is specified by 13 bits from the 19th bit to the 7th bit of the address. As a result, the state of the corresponding block and the tag address are read. Message type, status,
From the three information indicating whether the tag address matches the upper 20 bits from the 39th bit to the 20th bit of the address added to the message, which processing type of “BA” and “BB” to be described later Is determined. Also, from the above three information, step S123
Of message to be output in step S125
Also determines the state of the block to be updated (the value of the tag address is not changed). In addition, the above three information and processing type,
The relationship between the type of message and the next state of the block is shown in FIG.
The result is as shown in FIG. Local access control unit 25
Stores a table indicating this relationship.

【0133】ステップS122において決定された処理
タイプが「BA」であった場合、ステップS123に進
む。
If the processing type determined in step S122 is "BA", the flow advances to step S123.

【0134】ステップS123では、図9(b)に示す
テーブルに従って生成するメッセージを決定する。メッ
セージの生成時に、要求元ノード番号、アドレス、mi
dには受けたメッセージのものがそのまま用いられる。
また、宛先ノード番号には、受けたメッセージのアドレ
スの第39ビットから第30ビットまでの上位10ビッ
トが用いられる。生成したメッセージをメッセージ送信
部35とホームアクセス制御部27とのいずれに出力す
るかを、図8(a)のステップS113の場合と同様
に、宛先ノード番号と当該ノード番号との比較結果によ
って決定する。ステップS123の処理が終了すると、
ステップS125に進む。
In step S123, a message to be generated is determined according to the table shown in FIG. When a message is generated, the requesting node number, address, mi
For d, the one of the received message is used as it is.
The upper 10 bits from the 39th bit to the 30th bit of the address of the received message are used as the destination node number. Whether to output the generated message to the message transmission unit 35 or the home access control unit 27 is determined based on the comparison result between the destination node number and the node number, as in the case of step S113 in FIG. 8A. I do. When the process of step S123 ends,
Proceed to step S125.

【0135】ステップS122において決定された処理
タイプが「BB」であった場合、ステップS124に進
む。
If the processing type determined in step S122 is "BB", the flow advances to step S124.

【0136】ステップS124では、受けたメッセージ
のアドレスの第19ビットから第7ビットまでの13ビ
ットに0x0から0xfまで 変化する4ビットを下位
に付加した17ビットで指定される合計16エントリ、
128バイトのブロックデータを読み出す。図9(b)
のテーブルに従って生成するメッセージを決定し、読み
出したブロックデータを生成されたメッセージに付加
し、送信部35を介して送信する。メッセージの生成時
に、要求元ノード番号、アドレス、midには、受けた
メッセージのものがそのまま用いられる。宛先ノード番
号には、受けたメッセージのアドレスの第39ビットか
ら第30ビットまでの上位10ビットが用いられる。ロ
ーカルアクセス制御部25は、生成したメッセージをメ
ッセージ送信部38とホームアクセス制御部27とのい
ずれに出力するかを、ステップS113の場合と同様
に、宛先ノード番号と当該ノード番号との比較結果によ
って決定する。ステップS124の処理が終了すると、
ステップS125に進む。
In the step S124, a total of 16 entries specified by 17 bits obtained by adding 4 bits changing from 0x0 to 0xf to 13 bits from the 19th bit to the 7th bit of the address of the received message,
Read 128 bytes of block data. FIG. 9B
The message to be generated is determined in accordance with the table described above, the read block data is added to the generated message, and the message is transmitted via the transmission unit 35. When a message is generated, the requesting node number, address, and mid are the same as those of the received message. As the destination node number, the upper 10 bits from the 39th bit to the 30th bit of the address of the received message are used. The local access control unit 25 determines whether to output the generated message to the message transmission unit 38 or the home access control unit 27 based on the comparison result between the destination node number and the node number, as in the case of step S113. decide. When the process of step S124 ends,
Proceed to step S125.

【0137】ステップS125では、タグメモリ22の
更新を行う。更新するエントリはステップS121にお
いてアクセスしたエントリであり、状態は図8で示され
るブロックの次状態に、タグアドレスはステップS12
1で読み出したタグアドレスに、それぞれ更新する。ス
テップS125の処理が終了すると、受けたメッセージ
に関する処理は終了する。
In the step S125, the tag memory 22 is updated. The entry to be updated is the entry accessed in step S121, the state is the next state of the block shown in FIG.
The tag address is updated to the tag address read in step 1. When the processing in step S125 ends, the processing related to the received message ends.

【0138】図10および図11(a)は、ホームアク
セス制御部27あるいはメッセージ受信部36が出力す
るメッセージのうち、「CmpDatSh」,「Cmp
DatEx」,「CmpSh」,「CmpEx」,「N
Cmp」の5種のメッセージを受けた場合に、ローカル
アクセス制御部25が実行する処理を示すフローチャー
トであり、図11(b)は、図10および図11(a)
の処理における処理タイプ、メッセージの種類、ブロッ
クの次状態等の関係を示すテーブルである。ローカルア
クセス制御部25は、図11(b)の関係を示すテーブ
ルを格納している。
FIGS. 10 and 11 (a) show the messages "CmpDatSh" and "CmpDamp" output from the home access control unit 27 or the message receiving unit 36.
DatEx ”,“ CmpSh ”,“ CmpEx ”,“ N
FIG. 11B is a flowchart illustrating a process executed by the local access control unit 25 when five types of messages “Cmp” are received.
3 is a table showing the relationship between the processing type, the type of message, the next state of the block, and the like in the processing of FIG. The local access control unit 25 stores a table showing the relationship shown in FIG.

【0139】まず、ステップS131で、メッセージに
含まれるmidをリクエスト管理テーブル24に出力
し、mid番目のエントリの情報を読み出す。これによ
り、リクエスト管理テーブル24から、有効ビット、ア
クセスの種類、アドレ ス、データ(64ビット)の情
報を得る。ステップS131の処理が終了すると、ステ
ップS132に進む。
First, in step S131, the mid included in the message is output to the request management table 24, and the information of the mid-th entry is read. As a result, from the request management table 24, information on valid bits, access types, addresses, and data (64 bits) is obtained. When the process in step S131 ends, the process proceeds to step S132.

【0140】ステップS132では、受けたメッセージ
がデータ付きかどうか、即ち「CmpDatSh」ある
いは「CmpDatEx」であるか、データ付きでない
「CmpSh」,「CmpEx」,「NCmp」メッセ
ージであるかを判定する(ステップS132)。データ
付きのメッセージでないと判定された場合は、ステップ
S133に進む。一方、データ付きのメッセージである
と判定された場合は、ステップS135に進む。
In step S132, it is determined whether the received message has data, that is, "CmpDatSh" or "CmpDatEx", or whether the received message is a "CmpSh", "CmpEx", or "NCmp" message without data (step S132). Step S132). If it is determined that the message is not a message with data, the process proceeds to step S133. On the other hand, if it is determined that the message has data, the process proceeds to step S135.

【0141】ステップS133では、受けたメッセージ
が「NCmp」であるかどうか を判定する。「NCm
p」でない場合は、ステップS137に進む。「NCm
p」の場合、リクエスト管理テーブル24から得たア
クセスの種類、アドレス、データをプロセッサ20が出
力したものとしてステップS111に進み、図8(a)
のフローチャートに示した処理を再度行う(ステップ
S133)。
In the step S133, it is determined whether or not the received message is "NCmp". "NCm
If not "p", the flow proceeds to step S137. "NCm
In the case of "p", it is determined that the type of access, address, and data obtained from the request management table 24 have been output by the processor 20, and the process proceeds to step S111.
(Step S133).

【0142】ステップS134では、メッセージについ
ていたブロックデータ(128バイト)を、キャッシュ
メモリ21の該当するブロックに書き込む。書き込まれ
るエントリは、リクエスト管理テーブル24から得られ
るアドレスの第19ビットから第7ビットまでの13ビ
ットに0x0から0xfまで変化する4ビットを下位に
付加した17ビットのインデックス信号で指定される1
6エントリ であり、それぞれ64ビットずつ順に書き
込まれていく。ステップS134の 処理が終了する
と、ステップS135に進む。
In the step S134, the block data (128 bytes) attached to the message is written to the corresponding block in the cache memory 21. The entry to be written is designated by a 17-bit index signal in which 13 bits from the 19th bit to the 7th bit of the address obtained from the request management table 24 and 4 bits that change from 0x0 to 0xf are added to the lower order.
There are six entries, each of which is written in order of 64 bits. Upon completion of the process in the step S134, the process proceeds to a step S135.

【0143】ステップS135では、リクエスト管理テ
ーブル24から得られるアクセスの種類がロードかスト
アかを調べる。アクセスの種類がストアであった場合に
は、ステップS136に進む。一方、アクセスの種類が
ロードであった場合には、ステップS138に進む。
In step S135, it is checked whether the type of access obtained from the request management table 24 is load or store. If the access type is store, the process proceeds to step S136. On the other hand, if the access type is load, the process proceeds to step S138.

【0144】ステップS136では、リクエスト管理テ
ーブル24から得られるデータ(64ビット)を、キャ
ッシュメモリ21の該当するエントリに書き込む。書き
込まれるエントリは、リクエスト管理テーブル24から
得られるアドレスの 第19ビットから第3ビットまで
の17ビットで指定される。また、リクエスト管理テー
ブル24に有効ビットを「0」にしたデータを出力し、
その値を受けたメッセージのmidで指定するエントリ
に対して書き込む。これにより、リクエスト管理テーブ
ル24から該当するエントリを削除する。さらにタグメ
モリ22を更新するための処理も行う。更新されるエン
トリは、リクエスト管理テーブル24より得られるアド
レスの第19ビットから第7ビットまでの13ビットで
特定される。更新するデータは、ブロックの状態および
タグアドレスである。ブロックの状態に関しては、図1
1(b)のテーブルに従って、アクセスの種類 (ここ
ではストア)と受けたメッセージの種類によって決定さ
れる。タグアドレスには、リクエスト管理テーブル24
から読み出したアドレスの第39ビットから第20ビッ
トまでの上位20ビットが用いられる。さらに、プロセ
ッサ20への完了通知も行う。このとき、メッセージに
付加されていたmidがプロセッサ20へ出力され、ど
のメモリアクセスが完了したのかが通知される。ステッ
プS136の処理が終了すると、ステップS137に進
む。
In the step S136, the data (64 bits) obtained from the request management table 24 is written to the corresponding entry in the cache memory 21. The entry to be written is specified by 17 bits from the 19th bit to the 3rd bit of the address obtained from the request management table 24. Further, data in which the valid bit is set to “0” is output to the request management table 24,
Write to the entry specified by mid of the message that received the value. As a result, the corresponding entry is deleted from the request management table 24. Further, a process for updating the tag memory 22 is also performed. The entry to be updated is specified by 13 bits from the 19th bit to the 7th bit of the address obtained from the request management table 24. The data to be updated is the state of the block and the tag address. For the state of the block, see FIG.
According to the table of 1 (b), it is determined by the type of access (here, store) and the type of received message. In the tag address, the request management table 24
The upper 20 bits from the 39th bit to the 20th bit of the address read from are used. Further, a completion notification is sent to the processor 20. At this time, the mid added to the message is output to the processor 20 to notify which memory access has been completed. When the process in step S136 ends, the process proceeds to step S137.

【0145】ステップS137では、受けたメッセージ
が「CmpSh」あるいは「CmpDatSh」かどう
かを調べる。「Yes」の場合はステップS141に進
み、書き戻し処理を行う。「No」の場合は受けたメッ
セージの処理を終了する。
In the step S137, it is determined whether or not the received message is "CmpSh" or "CmpDatSh". In the case of “Yes”, the process proceeds to step S141, where a write-back process is performed. If “No”, the processing of the received message is ended.

【0146】ステップS138では、リクエスト管理テ
ーブル24から得られたアドレスの第19ビットから第
3ビットまでの17ビットで指定されるキャッシュメモ
リ21のエントリの64ビットデータを読み出す。読み
出された64ビットのデータは、midとともにプロセ
ッサ20へ渡される。また、リクエスト管理テーブル2
4の更新およびタグメモリ22の更新も行う。これらの
処理は、いずれもステップS136におけるそれぞれの
処理と同一であり、説明は省略する。ステップS138
の処理が終了すると、受けたメッセージの処理は終了す
る。
In step S138, 64-bit data of an entry in the cache memory 21 specified by 17 bits from the 19th bit to the 3rd bit of the address obtained from the request management table 24 is read. The read 64-bit data is passed to the processor 20 together with the mid. Request management table 2
4 and the tag memory 22 are also updated. All of these processes are the same as the respective processes in step S136, and a description thereof will be omitted. Step S138
Is completed, the processing of the received message ends.

【0147】ステップS141では、書き戻しブロック
選択手段26が書き戻しを要求しているかどうかを調べ
る。書き戻しが要求されている場合はステップS142
に進む。要求されていない場合はステップS146に進
む。
In step S141, it is checked whether or not the write-back block selecting means 26 requests a write-back. If a write-back has been requested, step S142
Proceed to. If not, the process proceeds to step S146.

【0148】ステップS142では、書き戻しブロック
選択手段26が出力するアドレスの第19ビットから第
7ビットまでの13ビットで指定されるタグメモリ22
のエントリのデータを読み出し、タグアドレスおよび状
態を得る。
In the step S142, the tag memory 22 specified by 13 bits from the 19th bit to the 7th bit of the address output from the write-back block selecting means 26
Is read, and the tag address and status are obtained.

【0149】ステップS143では、タグアドレス20
ビットと書き戻しブロック選択手段26が出力するアド
レスの上位20ビットが一致するかどうか、状態が
「D」かどうかから書き戻しが必要かどうかを判断す
る。両方とも「Yes」の場合は書き戻しが必要と判断
しステップS144に進み、どちらかでも「No」の場
合はス テップS145に進む。
In the step S143, the tag address 20
It is determined whether write-back is necessary based on whether the bits match the upper 20 bits of the address output from the write-back block selecting means 26 and whether the state is "D". If both are “Yes”, it is determined that rewriting is necessary, and the process proceeds to step S144. If either is “No”, the process proceeds to step S145.

【0150】ステップS144では、書き戻しブロック
選択手段26から得られたアドレスの第19ビットから
第7ビットまでの13ビットに0x0から0xfまで変
化する4ビットを下位に付加した17ビットで指定され
る合計16エントリ、128バイトのブロックデータを
キャッシュメモリ21から読み出し、そのブロックデー
タを付加した「RpBack」メッセージを生成する。
この「RpBack」メッセージの宛先ノード番号に
は、書き戻しブロック選択手段26から得られたアドレ
スの上位10ビットが用いられ、要求元ノード番号に
は、当該ノードPEiのノード番号が用いられる。ま
た、アドレスは、書き戻しブロック選択手段26から得
られたアドレスが用いられる。また、midはどんな値
でも構わない。生成したメッセージをメッセージ送信部
35あるいはホームアクセス制御部27のいずれに出力
するかを、図8(a)のステップS113の場合と同様
に、宛先ノード番号と当該ノード番号との比較結果によ
って決定する。また、タグメモリ22の更新も行う。更
新するエントリはステップS142において指定された
エントリであり、状態は「S」に、タグアドレスはステ
ップS142で読み出したタグアドレスに、それぞれ更
新する。ステップS144の処理が終了するとステップ
S145に進む。
In step S144, the address obtained from the write-back block selecting means 26 is designated by 17 bits obtained by adding 4 bits varying from 0x0 to 0xf to 13 bits from the 19th bit to the 7th bit. The block data of a total of 16 entries and 128 bytes is read from the cache memory 21, and an “RpBack” message to which the block data is added is generated.
As the destination node number of the “RpBack” message, the upper 10 bits of the address obtained from the write-back block selecting means 26 are used, and as the request source node number, the node number of the node PEi is used. As the address, the address obtained from the write-back block selecting means 26 is used. Also, mid may be any value. Whether the generated message is to be output to the message transmitting unit 35 or the home access control unit 27 is determined based on the comparison result between the destination node number and the node number, as in the case of step S113 in FIG. 8A. . Also, the tag memory 22 is updated. The entry to be updated is the entry specified in step S142, and the state is updated to “S”, and the tag address is updated to the tag address read in step S142. Upon completion of the process in the step S144, the process proceeds to a step S145.

【0151】ステップS145では、書き戻しブロック
選択手段26から受けた要求のアドレスを削除する。ス
テップS145の処理が終了するとステップS146に
進む。
In the step S145, the address of the request received from the write-back block selecting means 26 is deleted. Upon completion of the process in the step S145, the process proceeds to a step S146.

【0152】ステップS146では、受けたメッセージ
(「CmpSh」あるいは「CmpDatSh」)に付
加されていたアドレスを書き戻しブロック選択手段26
に登録する。この処理が終了すると、受けたメッセージ
の処理を終了する。
In step S146, the address added to the received message ("CmpSh" or "CmpDatSh") is written back to the block selecting means 26.
Register with. When this process ends, the process of the received message ends.

【0153】以下、図12(a),(b)および図13
を参照して、ホームアクセス制御部27の動作に つい
て説明する。
Hereinafter, FIGS. 12A and 12B and FIG.
The operation of the home access control unit 27 will be described with reference to FIG.

【0154】図12(a)は、ホームアクセス制御部2
7が実行する処理を示すフローチャー トであり、図1
2(b)と図13は、図12(a)のフローチャートの
処理で用いられる、受けたメッセージの種類、ディレク
トリメモリ読み出したブロックの状態、保持形式および
保持ノード情報から求めるアンキャッシュド情報、書き
戻し回数と閾値が一致するかどうかの4つの情報と、デ
ィレクトリメモリに格納するブロックの状態、保持ノー
ド情報に対する操作、書き戻し回数に対する操作、処理
タイプ、メッセージの種類を示すテーブルである。
FIG. 12A shows the home access control unit 2.
7 is a flowchart showing a process to be executed, and FIG.
2 (b) and FIG. 13 show uncached information, writing, received from the type of received message, state of block read from directory memory, holding format and holding node information used in the processing of the flowchart of FIG. 12 (a). 6 is a table showing four pieces of information indicating whether or not the number of reversions matches a threshold, states of blocks stored in the directory memory, operations on holding node information, operations on the number of times of rewriting, processing types, and types of messages.

【0155】図12(a)のフローチャートの処理にお
いて、ホームアクセス制御部27は、 受けたメッセー
ジの種類、ディレクトリメモリ31から読み出したブロ
ックの 状態、保持形式および保持ノード情報から求め
るアンキャッシュド(Uncached)情報、書き戻
し回数と閾値が一致するかどうかの4つの情報を元に、
ステップS152で ディレクトリメモリ31に格納す
るブロックの状態、保持ノード情報に対する操作および
保持形式、書き戻し回数に対する操作、ステップS15
3での処理タイプ、ステップS154、ステップS15
5、ステップS156で出力するメッセージの種類を決
定する。
In the processing of the flowchart in FIG. 12A, the home access control unit 27 determines the type of the received message, the state of the block read from the directory memory 31, the holding format, and the uncached (Uncached) obtained from the holding node information. ) Based on the information, the four information of whether the number of rewrites and the threshold value match,
In step S152, the state of the block stored in the directory memory 31, the operation on the holding node information and the holding format, the operation on the number of times of writing back, the operation in step S15
3, the processing type, step S154, step S15
5. Determine the type of message to be output in step S156.

【0156】ホームアクセス制御部27は、図12
(b),図13に示すテーブルを格納している。なお、
図12(b), 図13において「−−」は、いずれの
値でも構わないことを示している。
The home access control unit 27 is configured as shown in FIG.
(B), the table shown in FIG. 13 is stored. In addition,
In FIGS. 12B and 13, “−−” indicates that any value is acceptable.

【0157】図12(b),図13に示すアンキャッシ
ュド情報は、要求元ノードPEiを除く他のノードPE
iがコピーを保持しているかどうかを求めるものであ
る。アンキャッシュド情報は、保持ノード情報の形式に
よってそれぞれ求めかたが異なる。
The uncached information shown in FIGS. 12 (b) and 13 is used for the other nodes PE except the requesting node PEi.
This is to determine whether i holds a copy. How to obtain the uncached information differs depending on the format of the holding node information.

【0158】保持ノード情報がポインタ形式である場合
は、受けたメッセージの要求元ノード番号10ビットと
保持ノード情報10ビットが一致した場合に、アンキャ
ッシュド情報は「Yes」となり、一致しなかった場合
には「No」となる。
In the case where the holding node information is in the pointer format, if the requesting node number of the received message and the holding node information match, the uncached information becomes "Yes" and does not match. In this case, the result is “No”.

【0159】保持ノード情報がコースベクタ形式の場合
は、コースベクタが8ビットとも「0」の場合には、ア
ンキャッシュド情報は「Yes」となり、1ビットでも
「1」が立っている場合には「No」となる。
When the holding node information is in the course vector format, the uncached information becomes "Yes" when the course vector is "0" for all 8 bits, and when the "1" is set even for one bit. Is “No”.

【0160】保持ノード情報が、カウンタ形式の場合、
保持ノード数から1引いた値が「0」になった場合に
は、アンキャッシュド情報は「Yes」となり、「0」
にならなかった場合には「No」となる。
When the holding node information is in a counter format,
When the value obtained by subtracting 1 from the number of holding nodes becomes “0”, the uncached information becomes “Yes” and “0”
Otherwise, "No".

【0161】次に、図12(a),図13に示した保持
ノード情報に対する操作(図では、「保持ノード操作」
と記す)について説明する。保持ノード情報に対する操
作として、「set」,「add」,「count」,
「dec」,「clean」,「none」の6つの操
作がある。
Next, an operation on the holding node information shown in FIGS. 12 (a) and 13 ("holding node operation" in the figure)
Will be described. Operations on the holding node information include “set”, “add”, “count”,
There are six operations of "dec", "clean", and "none".

【0162】「set」は、受けたメッセージの要求元
ノード番号を保持ノード番号として設定するものであ
り、ポインタ形式で保持される。このとき、保持形式も
ポインタ形式を示す「01」に設定される。
"Set" sets the requesting node number of the received message as a holding node number, and is held in a pointer format. At this time, the holding format is also set to “01” indicating the pointer format.

【0163】「add」は、保持ノード番号形式とコー
スベクタ形式に対して行われる操作である。保持ノード
番号形式の場合は読み出した保持ノード番号の上位3ビ
ットをデコードして得られる8ビットを、コースベクタ
形式の場合はそのままの8ビットを、要求元ノード番号
の上位3ビットをデコードして得られる8ビットと論理
和をとって得られる値に設定するものである。「ad
d」操作を行うことにより保持形式はコースベクタ形式
となる。それに従い、保持形式もコースベクタ形式を示
す「00」に設定される。
"Add" is an operation performed on the holding node number format and the course vector format. In the case of the holding node number format, eight bits obtained by decoding the upper three bits of the read holding node number are decoded. In the case of the course vector format, the same eight bits are decoded. This is set to a value obtained by taking a logical sum with the obtained 8 bits. "Ad
By performing the operation "d", the holding format becomes the course vector format. Accordingly, the holding format is also set to “00” indicating the course vector format.

【0164】「count」は、保持ノード番号形式あ
るいはコースベクタ形式に対して行われる操作であり、
読み出した保持ノード情報から、要求元ノード番号をの
ぞいて幾つのノードPEiがコピーを保持していること
になるかを求める操作である。「count」は、ポイ
ンタ形式の場合は「1」に設定される。コースベクタ形
式の場合は、8ビット中1が立っているビットの数と1
ビットが表すノードPEiの数128とを掛けたもので
求められる。ただし、要求元ノード番号に対応するビッ
トが1の場合前記で求めた数から1を引いた値が設定さ
れる。これにより、保持形式もカウンタ形式を示す「1
0」に設定される。
"Count" is an operation performed on the holding node number format or the course vector format.
This is an operation for determining how many nodes PEi are to hold a copy from the read holding node information except for the requesting node number. “Count” is set to “1” in the case of the pointer format. In the case of the course vector format, the number of bits with 1 in 8 bits and 1
It is obtained by multiplying the number of nodes PEi represented by the bit by 128. However, if the bit corresponding to the requesting node number is 1, a value obtained by subtracting 1 from the number obtained above is set. As a result, the holding format also indicates “1” indicating the counter format.
0 "is set.

【0165】「dec」は、カウンタ形式に対して行わ
れる操作である。読み出した保持ノード数から1を引い
た値に設定するものである。
"Dec" is an operation performed on the counter format. This is set to a value obtained by subtracting 1 from the read number of holding nodes.

【0166】「clean」は、10ビットをすべて
「0」に設定するものである。この場合、保持形式はコ
ースベクタ形式を示す「00」に設定される。
"Clean" is for setting all 10 bits to "0". In this case, the holding format is set to “00” indicating the course vector format.

【0167】「none」は、読み出した値に何の操作
も加えずにそのまま設定するものである。保持形式の値
も維持される。
"None" is set without any operation on the read value. The value of the retention format is also maintained.

【0168】次に、図12(b),図13に示した書き
戻し回数について説明する。書き戻し回数に関する操作
には、値を「0」に初期化する操作と、現在の値に1を
足し た値を次の値とする操作がある。図中「0」,
「+1」がそれぞれに該当する。 またなにも記述がな
い場合は現在の値と同じ値を次の値とすることを示して
いる。
Next, the number of times of rewriting shown in FIGS. 12B and 13 will be described. Operations related to the number of times of rewriting include an operation of initializing the value to “0” and an operation of adding the current value plus 1 to the next value. "0",
“+1” corresponds to each. If there is no description, it indicates that the same value as the current value is set as the next value.

【0169】以下、図12(a)のフローチャートの処
理について説明する。
The processing of the flowchart shown in FIG. 12A will be described below.

【0170】まず、ステップS151では、ホームアク
セス制御部27は、該当するディレクトリメモリのエン
トリのデータ(状態、保持ノード情報、保持形式、書き
戻し回数)を読み出す(ステップS151)。読み出さ
れるエントリは、受けたメッセージのアドレスの第28
ビットから第7ビットまでの22ビットでインデックス
されるディレクトリメモリ31のデータである。ステッ
プS151の処理が終了するとステップS152に進
む。
First, in step S151, the home access control unit 27 reads the data (state, holding node information, holding format, number of times of rewriting) of the corresponding directory memory entry (step S151). The entry to be read is the 28th address of the received message.
This is data of the directory memory 31 indexed by 22 bits from the bit to the seventh bit. Upon completion of the process in the step S151, the process proceeds to a step S152.

【0171】ステップS152では、ステップS151
で読み出したディレクトリメモ リ31のエントリの値
を更新する。状態は、図12(b),図13に示すテー
ブルに 従って決定される。保持ノード情報は、図12
(b),図13に示した操作がステップS131で読み
出した保持ノード情報に対して行われ求められる。また
保持ノード形式もその操作によって前記のように決定す
る。書き戻し回数は、図12(b),図13に示す操作
が行われ求められる。ステップS152で更新するエン
トリは、ステップS151でアクセスしたエントリと同
一のエントリである。また、データ付きのメッセージで
あれば主メモリ30へブロックデータを書き込む処理も
行う。ブロックデータが書き込まれる主メモリ30のエ
ントリは、受けたメッセージのアドレスの第28ビット
から第7ビットまでの22ビットに0x0から0xfま
で変化する4ビットを下位に付加した26ビットで指定
される合計16エントリ(128バイト)である。ステ
ップS152の処理が終了すると、ステップS153に
進む。
In step S152, step S151
Updates the value of the entry of the directory memory 31 read in step. The state is determined according to the tables shown in FIGS. The holding node information is shown in FIG.
(B) The operation shown in FIG. 13 is performed on the holding node information read in step S131, and is obtained. The holding node format is also determined by the operation as described above. The number of times of writing back is obtained by performing the operations shown in FIGS. The entry updated in step S152 is the same entry as the entry accessed in step S151. If the message has data, the process of writing block data to the main memory 30 is also performed. The entry in the main memory 30 into which the block data is written is a total of 26 bits specified by adding the lower 4 bits varying from 0x0 to 0xf to 22 bits from the 28th bit to the 7th bit of the address of the received message. There are 16 entries (128 bytes). Upon completion of the process in the step S152, the process proceeds to a step S153.

【0172】ステップS153では、受けたメッセージ
の種類、ディレクトリメモリ31から読み出したブロッ
クの状態、保持形式及び保持ノード情報から求めるアン
キャッシュド情報、書き戻し回数と閾値の比較結果の4
つの情報から処理タイプが「CA」〜「CC」のいずれ
になるかを判定する。処理タイプが「CA」であると判
定された場合には、ステップS154に進む。ステップ
S153で処理タイプが「CB」であると判定された場
合には、ステップS155に進む。ステップS153で
処理タイプが「CC」であると判定された場合には、受
けたメッセージの処理を終了する。
In step S153, the type of the received message, the state of the block read from the directory memory 31, the uncached information obtained from the holding format and the holding node information, and the comparison result of the number of times of writing back and the threshold value are calculated.
It is determined whether the processing type is any of “CA” to “CC” from the two pieces of information. If it is determined that the processing type is “CA”, the process proceeds to step S154. If it is determined in step S153 that the processing type is “CB”, the process proceeds to step S155. If it is determined in step S153 that the processing type is “CC”, the processing of the received message is terminated.

【0173】ステップS154では、メッセージを必要
であれば複数生成し出力する。出力先は、ローカルアク
セス制御部25あるいはメッセージ送信部35のどちら
かである。どちらに出力するかは、生成したメッセージ
の宛先ノード番号と、当該ノード番号との比較結果によ
って決められる。一致した場合はローカルア クセス制
御部25となり、一致しない場合はメッセージ送信部3
5となる。出力するメッセージ(宛先ノード番号、メッ
セージの種類、アドレス、mid、要求元ノード番号)
は、次のようにして生成される。メッセージの種類は、
図12(b),図13に従って決定する。アドレス、m
id、要求元ノード番号は、それぞれ受けたメッセージ
のアドレスとmidと要求元ノード番号となる。宛先ノ
ード番号は、生成するメッセージの種類により異なる。
以下にメッセージの種類による宛先ノード番号の求め方
を示す。
In step S154, if necessary, a plurality of messages are generated and output. The output destination is either the local access control unit 25 or the message transmission unit 35. The output destination is determined based on the comparison result between the destination node number of the generated message and the node number. If they match, the local access control unit 25 is used.
It becomes 5. Message to be output (destination node number, message type, address, mid, requesting node number)
Is generated as follows. The message type is
The determination is made according to FIGS. Address, m
The id and the requesting node number are the address, the mid and the requesting node number of the received message, respectively. The destination node number differs depending on the type of message to be generated.
The following shows how to determine the destination node number according to the type of message.

【0174】「CmpDatSh」,「CmpDatE
x」,「CmpSh」,「CmpEx」,「NCmp」
の場合、受けたメッセージの要求元ノード番号が宛先ノ
ード番号となる。「IntvSh」,「IntvEx」
の場合、ステップS141でディレクトリメモリ31か
ら読み出した保持ノード情報の形式がポインタ形式であ
りその値がそのまま用いられる。以上のメッセージの場
合、生成されるメッセージは一つのみである。
“CmpDatSh”, “CmpDatE”
x ”,“ CmpSh ”,“ CmpEx ”,“ NCmp ”
In the case of, the request source node number of the received message becomes the destination node number. "IntvSh", "IntvEx"
In the case of, the format of the holding node information read from the directory memory 31 in step S141 is a pointer format, and the value is used as it is. In the case of the above messages, only one message is generated.

【0175】「Inv」の場合、宛先ノード番号のみが
異なる複数のメッセージが生成され送信される。この宛
先ノード番号は、保持ノード情報に従って生成される。
保持ノード情報はポインタ形式あるいはコースベクタ形
式である。ポインタ形式の場合は前記「IntvSh」
の場合と同様に保持ノード情報がそのまま用いられ一つ
のメッセージだけが生成される。コースベクタ形式の場
合、この形式で表されている複数のノードPEi(要求
元ノードを除く)に対して宛先の異なる同一のメッセー
ジを生成し出力することとなる。例えば、保持ノード情
報が「00110100」で、要求元ノード番号が「0
010010110」の場合、宛先ノードはPE256
〜PE383、PE512〜PE807の合計384ノ
ードとなり、これらの384個のノードに「Inv」メ
ッセージが送信される。また、例えば、保持ノード情報
が「11001011」で、要求元ノード番号が「00
10010110」の場合、宛先ノードはPE0〜PE
149,PE151〜PE255,PE384〜PE5
11、PE808〜PE1023の合計679ノードと
なり、これらの679ノードに「Inv」メッセージが
送信される。
In the case of "Inv", a plurality of messages differing only in the destination node number are generated and transmitted. This destination node number is generated according to the holding node information.
The holding node information is in a pointer format or a course vector format. In the case of the pointer format, the above-mentioned “IntvSh”
As in the case of (1), the holding node information is used as it is, and only one message is generated. In the case of the course vector format, the same message having a different destination is generated and output to a plurality of nodes PEi (excluding the requesting node) represented in this format. For example, the holding node information is “00110100” and the requesting node number is “0”.
010010110 ", the destination node is PE256
To 383, PE512 to PE807, and the “Inv” message is transmitted to these 384 nodes. Further, for example, the holding node information is “11001011” and the requesting node number is “00”.
10010110 ", the destination nodes are PE0-PE
149, PE151 to PE255, PE384 to PE5
11, a total of 679 nodes of PE 808 to PE 1023, and an “Inv” message is transmitted to these 679 nodes.

【0176】ステップS154で、メッセージの生成出
力を終えると、受けたメッセージの処理は終了する。
In step S154, when the generation and output of the message are completed, the processing of the received message is completed.

【0177】ステップS155では、主メモリ30(6
4Mエントリ×64ビット幅)から該当するブロックデ
ータ(128バイト)を読み出す。読み出されるブロッ
クデータは、受けたメッセージのアドレスの第28ビッ
トから第7ビットまで の22ビットに0x0から0x
fまで変化する4ビットを下位に付加した26ビットで
指定される合計16エントリのデータで、128バイト
で構成される。このブロックデータは、生成されるメッ
セージに付加され、出力される。出力先はローカルアク
セス制御部25あるいはメッセージ送信部35のどちら
かとなる。どちらに出力するかはステップS154と同
様に決められる。また、メッセージの生成も同様であ
る。ステップS155の処理が終了すると、受けたメッ
セージの処理は終了する。
In the step S155, the main memory 30 (6
The corresponding block data (128 bytes) is read from 4M entries × 64 bits width. The block data to be read includes 0x0 to 0x in 22 bits from the 28th bit to the 7th bit of the address of the received message.
Data of a total of 16 entries designated by 26 bits obtained by adding 4 bits changing to f to the lower order, and is composed of 128 bytes. This block data is added to the generated message and output. The output destination is either the local access control unit 25 or the message transmission unit 35. Which output is to be made is determined in the same manner as in step S154. The same applies to generation of a message. When the processing in step S155 ends, the processing of the received message ends.

【0178】以上が本発明の第1の実施例の動作の説明
である。それでは、次に、本実施例の理解を助けるた
め、本実施例の動作の具体例を図1から図3を参照しフ
ェーズ1からフェーズ5Bに分けて説明する。
The preceding is an explanation of the operation of the first embodiment of the present invention. Next, in order to facilitate understanding of the present embodiment, a specific example of the operation of the present embodiment will be described with reference to FIGS. 1 to 3 and divided into phases 1 to 5B.

【0179】ここで、フェーズ1は、ノードPE1のプ
ロセッサ20がノードPE1の主メモリ30のデータに
ロドアクセスを行ってから、それが完了するまでの動作
である。
Here, the phase 1 is an operation from the time when the processor 20 of the node PE1 performs the load access to the data of the main memory 30 of the node PE1 until the completion thereof.

【0180】フェーズ2は、フェーズ1の後、ノードP
E2のプロセッサ20がフェーズ1でノードPE1がア
クセスしたノードPE1の主メモリ30のデータと同じ
ブロックのデータにロードアクセスを行ってから、それ
が完了するまでの動作である。
In the phase 2, after the phase 1, the node P
This is an operation from the time when the processor 20 of E2 performs the load access to the data of the same block as the data of the main memory 30 of the node PE1 accessed by the node PE1 in the phase 1 until the completion thereof.

【0181】フェーズ3は、フェーズ2の後、ノードP
E2のプロセッサ20がフェーズ2でアクセスしたノー
ドPE1の主メモリ30のデータと同じブロックのデー
タにストアアクセスを行ってから、それが完了するまで
の動作である。
In phase 3, after phase 2, node P
This is an operation from the time when the processor 20 of E2 performs a store access to data in the same block as the data in the main memory 30 of the node PE1 accessed in the phase 2 until the process is completed.

【0182】フェーズ4は、フェーズ3の後、ノードP
E2において書き戻し処理が行われた結果「RpBac
k」メッセージが送信され、それが処理されるまでの動
作である。
In phase 4, after phase 3, node P
As a result of the write-back processing performed in E2, "RpBac
k "message is sent and processed until it is processed.

【0183】フェーズ5Aは、フェーズ4の後、ノード
PE1のプロセッサ20がフェーズ4で書き戻されたブ
ロックのデータにロードアクセスを行ってから、それが
完了するまでの動作である。
The phase 5A is an operation from the time when the processor 20 of the node PE1 performs the load access to the data of the block written back in the phase 4 after the phase 4 until the completion thereof.

【0184】フェーズ5Bは、フェーズ4の後、ノード
PE2のプロセッサ20がフェーズ4で書き戻されたブ
ロックのデータにストアアクセスを行ってから、それが
完了するまでの動作である。
The phase 5B is an operation from the time when the processor 20 of the node PE2 performs the store access to the data of the block written back in the phase 4 after the phase 4 until the completion of the store access.

【0185】1. フェーズ1 (1)ロードアクセスの処理 ノードPE1のプロセッサ20がアドレス「0x004
0030000」にid=「0」でロードアクセスを行
ったとする。
1. Phase 1 (1) Load Access Processing The processor 20 of the node PE1 receives the address “0x004”.
It is assumed that load access is performed to id 00300000 with id = "0".

【0186】プロセッサ20が行ったメモリアクセスを
受けたローカルアクセス制御部25は、図8(a)のフ
ローチャートに従い次のように動作する。
The local access control unit 25 having received the memory access performed by the processor 20 operates as follows according to the flowchart of FIG.

【0187】まず、ステップS111で、タグメモリ2
2の「0x0600」番地(プロセッサ20から得たア
ドレス「0x0040030000」の第19ビット〜
第7ビットの13ビット)のデータを読み出す。初期の
状態は「I」であるため、図8(b)より処理タイプは
「AA」、発行するメッセージは「BlkRdSh」、
ブロックの次状態は「I」に決定する。以上の処理を終
えると、ステップS112に進む。
First, in step S111, the tag memory 2
2 address “0x0600” (the 19th bit to the address “0x0040030000” obtained from the processor 20)
The data of the seventh bit (13 bits) is read. Since the initial state is “I”, the processing type is “AA”, the message to be issued is “BlkRdSh” from FIG.
The next state of the block is determined to be "I". Upon completion of the above processing, the process advances to step S112.

【0188】ステップS112では、処理タイプが「A
A」であることからステップS113に進む。
In step S112, if the processing type is "A
A ”, the flow proceeds to step S113.

【0189】ステップS113では、メッセージの生成
出力およびリクエスト管理テーブル24への登録を行
う。生成出力するメッセージの、宛先ノード番号は「0
x001」(アドレス「0x0040030000」の
第39ビット〜第30ビットの10ビット)、メッセー
ジの種類は「BlkRdSh」、アドレスは「0x00
40030000」、midは「0」(=id)、要求
元ノード番号は「0x001」となる。また、宛先ノー
ド番号と当該ノードPE1のノード番号が両者とも「0
x001」と一致するので、出力先は当該ノードPE1
のホームアクセス制御部27となる。また、リクエスト
管理テーブルの「0」(=id)番エントリに、有効ビ
ットは「1」、アクセスの種類はロード、アドレスは
「0x0040030000」というデータを書き込
む。以上の処理を終えると、ステップS118に進む。
In step S113, a message is generated and output and registered in the request management table 24. The destination node number of the message to be generated and output is "0
x001 ”(10 bits from the 39th bit to the 30th bit of the address“ 0x0040030000 ”), the message type is“ BlkRdSh ”, and the address is“ 0x00 ”.
4030000 ", the mid is" 0 "(= id), and the request source node number is" 0x001 ". Further, both the destination node number and the node number of the node PE1 are “0”.
x001 ”, the output destination is the node PE1.
Of the home access control unit 27. In addition, the valid bit is set to "1", the access type is loaded, and the address is set to "0x00400300000" in the "0" (= id) entry of the request management table. Upon completion of the above processing, the flow advances to step S118.

【0190】ステップS118では、タグメモリの0x
0600番地のエントリのデータを、状態は「I」に、
タグアドレスは「0x00400」(アドレス「0x0
040030000」の第39ビット〜第20ビットの
20ビット)に更新する。
In the step S118, 0x of the tag memory is
The data of the entry at address 0600, the state is "I",
The tag address is “0x00400” (address “0x0
040030000 ”(20 bits from the 39th bit to the 20th bit).

【0191】以上で、ノードPE1のローカルアクセス
制御部25は、ロードアクセスの処理を終了する。
As described above, the local access control unit 25 of the node PE1 ends the load access processing.

【0192】(2)BlkRdShメッセージの処理 上記「BlkRdSh」メッセージ(宛先ノード番号は
「0x001」、メッセージの種類は「BlkRdS
h」、アドレスは「0x0040030000」、mi
dは「0」、要求元ノード番号は「0x001」)を受
けたノードPE1のホームアクセス制御部27は図12
(a)のフローチャートに従い次のように動作する。
(2) Processing of BlkRdSh Message The above “BlkRdSh” message (the destination node number is “0x001” and the message type is “BlkRdS
h ", the address is" 0x0040030000 ", mi
(d is “0” and the requesting node number is “0x001”).
The operation is performed as follows according to the flowchart of FIG.

【0193】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030000」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。読み出した状態、保持
ノード情報、保持形式、書き戻し回数はそれぞれ初期状
態の「C」、「0x000」、「00」(コースベクタ
形式)、「0」である。受けたメッセージの種類が「B
lkRdSh」であり、読み出した状態が「C」、保持
形式がコースベクタ形式で保持ノード情報が「0x00
0」でありアンキャッシュドであることから、処理タイ
プは「CB」、ブロックの次状態は「M」、保持ノード
操作は「set」、書き戻し回数はそのまま、出力する
メッセージの種類は「CmpDatEx」に決定する
(図12(a),図13参照)。以上の処理を終える
と、ステップS152に進む。
First, in step S151, the address "0x000600" (22 bits from the 28th bit to the 7th bit of the address "0x0040030000" added to the message) in the directory memory 31 is accessed, and the data such as the state is read. . The read state, the holding node information, the holding format, and the number of times of rewriting are “C”, “0x000”, “00” (course vector format), and “0” in the initial state, respectively. The type of message received is "B
lkRdSh ”, the read state is“ C ”, the holding format is the course vector format, and the holding node information is“ 0x00 ”.
0 "and uncached, the processing type is" CB ", the next state of the block is" M ", the holding node operation is" set ", the number of write-backs is unchanged, and the type of message to be output is" CmpDatEx ". (See FIGS. 12A and 13). Upon completion of the above processing, the process advances to step S152.

【0194】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「M」、保持ノード情報は「0x
001」、保持形式は「01」(ポインタ形式)、書き
戻し回数は「0」に更新する。また、データ付きのメッ
セージではないので主メモリ30へのブロックデータの
書き込みは行わない。以上の処理を終えると、ステップ
S153に進む。
In step S152, based on these information, the data at the address “0x000600” of the directory memory 31 is stored in the state “M” and the holding node information is “0x000600”.
“001”, the holding format is updated to “01” (pointer format), and the number of times of writing back is updated to “0”. Since the message is not a message with data, writing of block data to the main memory 30 is not performed. Upon completion of the above processing, the process advances to step S153.

【0195】ステップS153では、処理タイプが「C
B」であることからステップS155に進む。
In step S153, if the processing type is “C
B ”, the flow proceeds to step S155.

【0196】ステップS155では、主メモリ30の
「0x0006000」番地〜「0x000600f」
番地までの64ビット×16エントリ=128バイトの
ブロックデータを読み出し、生成するメッセージに付加
し出力する。このメッセージは、宛先ノード番号を「0
x001」、メッセージの種類を「CmpDatE
x」、アドレスを「0x0040030000」、mi
dを「0」、要求元ノード番号を「0x001」、ブロ
ックデータを当該ステップS145で読み出したブロッ
クデータとするメッセージである。このメッセージの出
力先は、宛先ノード番号と当該ノード番号が両方と「0
x001」で一致することから、当該ノードのローカル
アクセス制御部25となる。
In step S155, the addresses “0x0006000” to “0x000600f” of the main memory 30 are set.
The block data of 64 bits × 16 entries = 128 bytes up to the address is read, added to the message to be generated, and output. This message indicates that the destination node number is "0".
x001 ”and the message type as“ CmpDatE
x ", address" 0x00400300000 ", mi
This is a message in which d is “0”, the request source node number is “0x001”, and the block data is the block data read in step S145. The output destination of this message is that the destination node number and the node number are both “0”.
x001 ", it becomes the local access control unit 25 of the node.

【0197】以上で、ノードPE1のホームアクセス制
御部27は、「BlkRdSh」メッセージの処理を終
了する。
With the above, the home access control unit 27 of the node PE1 ends the processing of the “BlkRdSh” message.

【0198】(3)CmpDatExメッセージの処理 上記「CmpDatEx」メッセージ(宛先ノード番号
は「0x001」、メッセージの種類は「CmpDat
Ex」、アドレスは「0x0040030000」、m
idは「0」、要求元ノード番号は「0x001」)を
受けたノードPE1のローカルアクセス制御部25は、
図10および図11(a)のフローチャートに従い次の
ように動作する。
(3) Processing of CmpDatEx Message The above “CmpDatEx” message (the destination node number is “0x001”, and the message type is “CmpDatEx”
Ex ”, the address is“ 0x0040030000 ”, m
(id is “0” and the requesting node number is “0x001”).
The operation is performed as follows according to the flowcharts of FIG. 10 and FIG.

【0199】まず、ステップS131で、リクエスト管
理テーブル24の「0」(=mid) 番エントリの情
報を読み出し、アクセスの種類はロード、アドレスは
「0x0 040030000」という情報を得る。以
上の処理を終えるとステップS132に進む。
First, in step S131, the information of the "0" (= mid) entry of the request management table 24 is read, and the type of access is loaded, and the information of the address "0x0 040030000" is obtained. Upon completion of the above processing, the process advances to step S132.

【0200】ステップS132では、ブロックデータ付
きのメッセージであるからステップS135に進む。
In step S132, since the message is a message with block data, the flow advances to step S135.

【0201】ステップS135では、キャッシュメモリ
21の「0x06000」番地から「0x0600f」
番地に、メッ セージに付加されていたブロックデータ
を書き込む。以上の処理を終えると、ステップS136
に進む。
In the step S135, from the address "0x06000" of the cache memory 21 to the address "0x0600f"
Write the block data added to the message at the address. When the above processing is completed, step S136
Proceed to.

【0202】ステップS136では、アクセスタイプが
ロードであることからステップS139に進む。
In step S136, since the access type is load, the flow advances to step S139.

【0203】ステップS139では、キャッシュメモリ
21から「0x06000」番地の64ビットデータを
読み出し、プロセッサ20に対してid=「0」のメモ
リアクセスに対する応答データとして渡す。これにより
メモリアクセスは完了する。また、リクエスト管理テー
ブル24の「0」番エントリに有効ビットを「0」とし
たデータを書き込み、エントリを削除する。また、タグ
メモリの「0x0600」番地の状態およびタグアドレ
スを、それぞれ「E」および「0x00400」に更新
する(図11(b)参照)。
In step S139, 64-bit data at the address "0x06000" is read from the cache memory 21 and passed to the processor 20 as response data to the memory access with id = "0". This completes the memory access. In addition, data with the valid bit set to “0” is written to the “0” entry of the request management table 24, and the entry is deleted. Also, the state of the address “0x0600” and the tag address of the tag memory are updated to “E” and “0x00400”, respectively (see FIG. 11B).

【0204】以上で、ノードPE1のローカルアクセス
制御部25は、受けた「CmpDatEx」メッセージ
の処理を終了する。
Thus, the local access control unit 25 of the node PE1 ends the processing of the received “CmpDatEx” message.

【0205】この段階で「0x0040030000」
〜「0x004003007f」番地までについて、最
新のデータはノードPE1の主メモリ30およびノード
PE1のキャッシュメモリ21に存在する状態となる。
At this stage, “0x0040030000”
Up to the address “0x004003007f”, the latest data exists in the main memory 30 of the node PE1 and the cache memory 21 of the node PE1.

【0206】2. フェーズ2 (1)ロードアクセスの処理 次いで、ノードPE2で、ロードアクセスがid=
「2」でアドレス「0x0040030000」に行わ
れたとする。
2. Phase 2 (1) Processing of Load Access Next, at the node PE2, the load access is set to id =
It is assumed that the processing is performed on the address “0x00400300000” at “2”.

【0207】プロセッサ20が行ったメモリアクセス
(アクセスの種類はロード、アドレスは「0x0040
030000」、id=「2」)を受けたローカルアク
セス制御部25は、図8(a)のフローチャートに従い
次のように動作する。
The memory access performed by the processor 20 (the access type is load and the address is “0x0040”
030000 ”, id =“ 2 ”), the local access control unit 25 operates as follows according to the flowchart of FIG.

【0208】まず、ステップS111で、タグメモリ2
2の「0x0600」番地のデータを読み出す(ステッ
プS111)。初期の状態は「I」であるため、図8
(b)より処理タイプは「AA」、発行するメッセージ
は「BlkRdSh」、ブロックの次状態は「I」に決
定する。以上の処理を終えると、ステップS112に進
む。
First, in step S111, the tag memory 2
The data at the address "0x0600" is read out (step S111). Since the initial state is “I”, FIG.
From (b), the processing type is determined as "AA", the message to be issued is determined as "BlkRdSh", and the next state of the block is determined as "I". Upon completion of the above processing, the process advances to step S112.

【0209】ステップS112では、処理タイプが「A
A」であることからステップS113に進む。
In step S112, if the processing type is "A
A ”, the flow proceeds to step S113.

【0210】ステップS113では、メッセージの生成
出力およびリクエスト管理テーブル24への登録を行
う。生成出力するメッセージの、宛先ノード番号は「0
x001」(アドレス「0x0040030000」の
第39ビット〜第30ビットの10ビット)、メッセー
ジの種類は「BlkRdSh」、アドレスは「0x00
40030000」、midは「2」、要求元ノード番
号は「0x002」となる。また、宛先ノード番号と当
該ノードPE2のノード番号が異なるので、出力先はメ
ッセージ送信部35となる。また、この時リクエスト管
理テーブルの「2」(=id)番エントリに、有効ビッ
トは「1」、アクセスの種類はロード、アドレスは「0
x0040030000」というデータを書き込む。以
上の処理を終えると、ステップS118に進む。
In step S113, a message is generated and output and registered in the request management table 24. The destination node number of the message to be generated and output is "0
x001 ”(10 bits from the 39th bit to the 30th bit of the address“ 0x0040030000 ”), the message type is“ BlkRdSh ”, and the address is“ 0x00 ”.
4030000 ", the mid is" 2 ", and the requesting node number is" 0x002 ". Since the destination node number and the node number of the node PE2 are different, the output destination is the message transmitting unit 35. At this time, the valid bit is “1”, the access type is load, and the address is “0” in the “2” (= id) entry of the request management table.
x0040030000 "is written. Upon completion of the above processing, the process advances to step S118.

【0211】ステップS118では、タグメモリの「0
x0600」番地のエントリのデータを、状態は「I」
に、タグアドレスは「0x00400」(アドレス「0
x0040030000」の第39ビット〜第20ビッ
トの20ビット)に更新する(ステップS118)。
In step S118, “0” in the tag memory
The data of the entry at the address "x0600" and the state is "I"
The tag address is “0x00400” (address “0
x0040030000 ”(20 bits from the 39th bit to the 20th bit) (step S118).

【0212】以上で、ノードPE2のローカルアクセス
制御部25は、ロードアクセスの処理を終了する。
As described above, the local access control unit 25 of the node PE2 ends the load access processing.

【0213】(2)BlkRdShメッセージの処理 上記「BlkRdSh」メッセージは、ノードPE2の
メッセージ送信部35、相互結合網10、ノードPE1
のメッセージ受信部36を介してノードPE1のホーム
アクセス制御部27に送られる。
(2) Processing of BlkRdSh Message The “BlkRdSh” message is sent to the message transmitting unit 35 of the node PE2, the interconnection network 10, and the node PE1.
Is sent to the home access control unit 27 of the node PE1 via the message receiving unit 36 of

【0214】上記「BlkRdSh」メッセージ(宛先
ノード番号は「0x001」、メッセージの種類は「B
lkRdSh」、アドレスは「0x004003000
0」、midは「2」、要求元ノード番号は「0x00
2」)を受けたホームアクセス制御部27は図12
(a)のフローチャートに従い次のように動作する。
The “BlkRdSh” message (the destination node number is “0x001” and the message type is “BlkRdSh”
lkRdSh ”and the address is“ 0x004003000 ”
0, mid is “2”, and the requesting node number is “0x00”
2 ”), the home access control unit 27
The operation is performed as follows according to the flowchart of FIG.

【0215】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030000」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。フェーズ1において、
状態、保持ノード情報、保持形式、書き戻し回数はそれ
ぞれ「M」、「0x001」、「01」、「0」に更新
されており、その値が読み出される。受けたメッセージ
の種類は「BlkRdSh」であり、読み出した 状態
は「M」、保持形式はポインタ形式で保持ノード情報は
「0x001」で ありアンキャッシュドでないことか
ら、図13に従い、処理タイプは「CA」、 ブロック
の次状態は「RSP」、保持ノード操作は「non
e」、書き戻し回数は「0」、出力するメッセージの種
類は「IntvSh」に決定する。。以上の処理を終え
ると、ステップS152に進む。
First, in step S151, the address of "0x000600" (22 bits of the 28th to 7th bits of the address "0x0040030000" added to the message) in the directory memory 31 is accessed, and data such as the state is read. . In Phase 1,
The state, the holding node information, the holding format, and the number of times of rewriting have been updated to “M”, “0x001”, “01”, and “0”, respectively, and the values are read. The type of the received message is "BlkRdSh", the read state is "M", the holding format is the pointer format, the holding node information is "0x001", and it is not uncached. CA ", the next state of the block is" RSP ", and the holding node operation is" non ".
e ", the number of write-backs is" 0 ", and the type of message to be output is determined to be" IntvSh ". . Upon completion of the above processing, the process advances to step S152.

【0216】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「RSP」、保持ノード情報は
「0x001」、保持形式は「01」、書き戻し回数は
「0」に更新する。ここでは、データ付きのメッセージ
ではないので主メモリ30へのブロックデータの書込は
行わない。以上の処理を終えると、ステップS153に
進む。
In step S152, based on these information, the data at the address “0x000600” of the directory memory 31 is stored in the state “RSP”, the holding node information is “0x001”, the holding format is “01”, Is updated to “0”. Here, since the message is not a message with data, writing of block data to the main memory 30 is not performed. Upon completion of the above processing, the process advances to step S153.

【0217】ステップS153では、処理タイプが「C
A」であることからステップS154に進む。
In step S153, if the processing type is “C
A ”, the flow proceeds to step S154.

【0218】ステップS154では、宛先ノー番号を
「0x001」、メッセージの種類を「IntvS
h」、アドレスを「0x0040030000」、mi
dを「2」、要求元ノード番号を「0x002」、とす
るメッセージを生成する。メッセージの出力先は、宛先
ノード番号と当該ノードPE1のノード番号が一致する
ことから、ローカルアクセス制御部25とな る(ステ
ップS144)。
In step S154, the destination no. Number is “0x001” and the message type is “IntvS
h ", the address is" 0x0040030000 ", mi
A message in which d is “2” and the requesting node number is “0x002” is generated. The output destination of the message is the local access control unit 25 because the destination node number matches the node number of the node PE1 (step S144).

【0219】以上で、ノードPE1のホームアクセス制
御部27は、「BlkRdSh」メッセージの処理を終
了する。
[0219] As described above, the home access control unit 27 of the node PE1 ends the processing of the "BlkRdSh" message.

【0220】(3)IntvShメッセージの処理 上記「IntvSh」メッセージ(宛先ノード番号は
「0x001」、メッセージの種類は「IntvS
h」、アドレスは「0x0040030000」、mi
dは「2」、要求元ノード番号は「0x002」)を受
けたノードPE1のローカルアクセス制御部25は、図
9(a)のフローチャートに従い次のように動作する。
(3) Processing of IntvSh message The above “IntvSh” message (the destination node number is “0x001”, and the message type is “IntvSh”
h ", the address is" 0x0040030000 ", mi
The local access control unit 25 of the node PE1 which has received d is “2” and the request source node number is “0x002”) operates as follows according to the flowchart of FIG.

【0221】まず、ステップS121で、タグメモリ2
2の「0x0600」番地のデータを読みだす。フェー
ズ1において、状態およびタグアドレスはそれぞれ
「E」および「0x00400」に更新されており、こ
の値が読み出される。受けたメッセージが「IntvS
h」であり、タグアドレスが一致し、状態が「E」であ
ることから、図9(b)に従い、処理タイプは「B
A」、出力するメッセージの種類は「Ack」、ブロッ
クの次状態は「S」に決定する。
First, in step S121, the tag memory 2
2, the data at the address "0x0600" is read out. In phase 1, the state and the tag address have been updated to "E" and "0x00400", respectively, and these values are read. The received message is "IntvS
h ", the tag addresses match, and the state is" E ", the processing type is" B "according to FIG.
"A", the type of message to be output is "Ack", and the next state of the block is "S".

【0222】ステップS122では、処理タイプが「B
A」であることからステップS123に進む。
At step S122, if the processing type is "B
A ”, the flow proceeds to step S123.

【0223】ステップS123では、「Ack」メッセ
ージを生成する。「Ack」メッセージの、宛先ノード
番号は「0x001」、メッセージの種類は「Ac
k」、アドレスは「0x0040030000」、要求
元ノード番号は「0x002」、midは「2」とな
る。宛先ノード番号と当該ノードPE1のノード番号が
「0x001」で一致することから 出力先はホームア
クセス制御部27となる。以上の処理を終えると、ステ
ップS125に進む。
At step S123, an "Ack" message is generated. The destination node number of the “Ack” message is “0x001”, and the message type is “Ac”.
k, the address is “0x0040030000”, the requesting node number is “0x002”, and the mid is “2”. Since the destination node number matches the node number of the node PE1 with “0x001”, the output destination is the home access control unit 27. Upon completion of the above processing, the process advances to step S125.

【0224】ステップS125では、タグメモリの「0
x0600」番地の状態およびタグアドレスを、それぞ
れ「S」および「0x00400」に更新する。
In the step S125, “0” of the tag memory
The status and tag address of the address “x0600” are updated to “S” and “0x00400”, respectively.

【0225】以上でノードPE1のローカルアクセス制
御部25は、「IntvSh」メッセージの処理を終了
する。
Thus, the local access control unit 25 of the node PE1 ends the processing of the “IntvSh” message.

【0226】(4)Ackメッセージの処理 上記「Ack」メッセージ(宛先ノード番号は「0x0
01」、メッセージの種類は「Ack」、アドレスは
「0x0040030000」、midは「2」、要求
元ノード番号は「0x002」)を受けたホームアクセ
ス制御部27は、図12(a)に従い次のように動作す
る。
(4) Processing of Ack message The above “Ack” message (the destination node number is “0x0
01 ", the message type is" Ack ", the address is" 0x0040030000 ", the mid is" 2 ", and the requesting node number is" 0x002 "). The home access control unit 27 receives the following in accordance with FIG. Works like that.

【0227】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030000」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。読み出した状態、保持
ノード情報、保持形式、書き戻し回数はそれぞれフェー
ズ2で「RSP」、「0x001」、「01」(ポイン
タ形式)、「0」に更新されており、その値が読み出さ
れる。受けたメッセージの種類が「Ack」であり、読
み出した状態が「RSP」であることから、図13に従
い、処理タイプは「CB」、ブロックの次状態は
「C」、書き戻し回数はそのまま、保持ノード操作は
「add」、出力するメッセージの種類は「CmpDa
tSh」に決定する。以上の処理を終えると、ステップ
S152に進む。
First, in step S151, the address "0x000600" (the 28th bit to the 7th bit 22 bits of the address "0x0040030000" added to the message) in the directory memory 31 is accessed, and the data such as the state is read. . The read state, the holding node information, the holding format, and the number of rewrites have been updated to “RSP”, “0x001”, “01” (pointer format), and “0” in Phase 2, respectively, and the values are read. Since the type of the received message is “Ack” and the read state is “RSP”, the processing type is “CB”, the next state of the block is “C”, and the number of write-backs is The holding node operation is “add”, and the type of message to be output is “CmpDa”.
tSh ”. Upon completion of the above processing, the process advances to step S152.

【0228】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「C」、保持ノード情報は「0x
001」、保持形式は「00」(コースベクタ形式)、
書き戻し回数は「0」に更新する。また、「Ack」メ
ッセージがブロックデータ付きのメッセージではないこ
とから、主メモリ30へのデータの書き込みは行わな
い。ただし、主メモリ30には最新のデータが存在して
いる。以上の処理を終えると、ステップS153に進
む。
In step S152, based on these information, the data at the address “0x000600” in the directory memory 31 is stored in the state “C” and the holding node information is “0x000600”.
001 ”, holding format is“ 00 ”(course vector format),
The rewrite count is updated to “0”. Since the “Ack” message is not a message with block data, data is not written to the main memory 30. However, the latest data exists in the main memory 30. Upon completion of the above processing, the process advances to step S153.

【0229】ステップS153では、処理タイプが「C
B」であることからステップS155に進む。
At step S153, when the processing type is “C
B ”, the flow proceeds to step S155.

【0230】ステップS155では、主メモリ30の
「0x0006000」番地〜「0x000600f」
番地までの64ビット×16エントリ=128バイトの
ブロックデータを読み出し、生成するメッセージに付加
し出力する。このメッセージは、宛先ノード番号を「0
x002」、メッセージの種類を「CmpDatS
h」、アドレスを「0x0040030000」、mi
dを「2」、要求元ノード番号を「0x002」、ブロ
ックデータを当該ステップS145で読み出したブロッ
クデータとするメッセージである。このメッセージの出
力先は、宛先ノード番号「0x002」と当該ノードP
E1のノード番号「0x001」が一致しないことか
ら、メッセージ送信部35となる。
In step S155, addresses “0x0006000” to “0x000600f” of the main memory 30 are set.
The block data of 64 bits × 16 entries = 128 bytes up to the address is read, added to the message to be generated, and output. This message indicates that the destination node number is "0".
x002 ”and the type of message is“ CmpDatS
h ", the address is" 0x0040030000 ", mi
This is a message in which d is “2”, the requesting node number is “0x002”, and the block data is the block data read in step S145. The output destination of this message is the destination node number “0x002” and the node P
Since the node number “0x001” of E1 does not match, the message transmission unit 35 is used.

【0231】以上でノードPE1のホームアクセス制御
部27は、「Ack」メッセージの処理を終了する。
Thus, the home access control unit 27 of the node PE1 ends the processing of the “Ack” message.

【0232】(5)CmpDatShメッセージの処理 上記「CmpDatSh」メッセージは、ノードPE1
のメッセージ送信部35、相互結合網10、ノードPE
2のメッセージ受信部36を介して、ノードPE2のロ
ーカルアクセス制御部25に出力される。
(5) Processing of CmpDatSh message The “CmpDatSh” message is transmitted to the node PE1
Message transmission unit 35, interconnection network 10, node PE
The message is output to the local access control unit 25 of the node PE2 via the second message receiving unit 36.

【0233】上記「CmpDatSh」メッセージ(宛
先ノード番号は「0x002」、メッセージの種類は
「CmpDatSh」、アドレスは「0x004003
0000」、midは「2」、要求元ノード番号は「0
x002」、ブロックデータは最新のデータ)を受けた
ノードPE2のローカルアクセス制御部25は、図10
のフローチャートに従い、次のように動作する。
The “CmpDatSh” message (the destination node number is “0x002”, the message type is “CmpDatSh”, and the address is “0x004003”
0000 ", mid is" 2 ", and the requesting node number is" 0 "
x002 ”and the local access control unit 25 of the node PE2 receiving the block data (the latest data)
According to the flowchart of FIG.

【0234】まず、ステップS131で、リクエスト管
理テーブル24の「2」(=mid)番エントリの情報
を読み出し、アクセスの種類はロード、アドレスは「0
x0040030000」という情報を得る。以上の処
理を終えると、ステップS132に進む。
First, in step S131, the information of the “2” (= mid) entry of the request management table 24 is read, and the access type is load and the address is “0”.
x0040030000 "is obtained. Upon completion of the above processing, the process advances to step S132.

【0235】ステップS132では、ブロックデータ付
きのメッセージであるからステップS135に進む。
In step S132, since the message is a message with block data, the flow advances to step S135.

【0236】ステップS135では、キャッシュメモリ
21の「0x06000」番地から「0x0600f」
番地に、メッ セージに付加されていたブロックデータ
を書き込む。以上の処理を終えると、ステップS136
に進む。
In the step S135, from the address “0x06000” of the cache memory 21 to the address “0x0600f”
Write the block data added to the message at the address. When the above processing is completed, step S136
Proceed to.

【0237】ステップS136では、アクセスタイプが
ロードであることからステップS139に進む。
In step S136, since the access type is load, the flow advances to step S139.

【0238】ステップS139では、キャッシュメモリ
21から「0x06000」番地の64ビットデータを
読み出し、プロセッサ20に対してid=「2」のメモ
リアクセスに対する応答データとして渡す。これにより
メモリアクセスは完了する。また、リクエスト管理テー
ブル24の「2」番エントリに有効ビットを「0」とし
たデータを書き込み、エントリを削除する。また、タグ
メモリの「0x0600」番地の状態およびタグアドレ
スを、図11(b)に従い、それぞれ「S」および「0
x00400」に更新する(ステップS139)。
In step S139, 64-bit data at the address "0x06000" is read from the cache memory 21 and passed to the processor 20 as response data to the memory access with id = "2". This completes the memory access. In addition, data with the valid bit set to “0” is written to the “2” entry of the request management table 24, and the entry is deleted. Further, the state of the address “0x0600” and the tag address of the tag memory are changed to “S” and “0”, respectively, according to FIG.
x00400 ”(step S139).

【0239】以上でノードPE2のローカルアクセス制
御部25は、受けた「CmpDatSh」メッセージの
処理を終了する。
[0239] Thus, the local access control unit 25 of the node PE2 ends the processing of the received "CmpDatSh" message.

【0240】この段階で「0x0040030000」
〜「0x004003007f」番地までについて、最
新のデータはノードPE1のキャッシュメモリ21、ノ
ードPE1の主メモリ30、ノードPE2のキャッシュ
メモリ21に存在する状態になる。
At this stage, “0x0040030000”
Up to the address “0x004003007f”, the latest data is stored in the cache memory 21 of the node PE1, the main memory 30 of the node PE1, and the cache memory 21 of the node PE2.

【0241】3. フェーズ3 (1)ストアアクセスの処理 次いで、ノードPE2で、ストアアクセスがid=
「1」でアドレス「0x0040030010」に行わ
れていたとする。
[0241] 3. Phase 3 (1) Processing of Store Access Next, at the node PE2, the store access is set to id =
It is assumed that the processing is performed at the address “0x0040030010” with “1”.

【0242】プロセッサ20が行ったメモリアクセスを
受けたノードPE2のローカルアクセス制御部25は、
図8(a)のフローチャートに従い次のように動作す
る。
The local access control unit 25 of the node PE2 that has received the memory access performed by the processor 20
The operation is performed as follows according to the flowchart of FIG.

【0243】まず、ステップS111で、タグメモリ2
2の「0x0600」番地のデータを読み出す。フェー
ズ2において状態は「S」、タグアドレスは「0x00
400」に更新されており、その値が読み出される。ア
クセスの種類はストアであり、タグアドレスは「0x0
0400」で一致、状態は「S」であるため、図8
(b)に従い処理タイプは「AA」、出力するメッセー
ジの種類は「Upgrade」、ブロックの次状態は
「S」に決定する。以上の処理を終えると、ステップS
112に進む。
First, in step S111, the tag memory 2
2, the data at the address "0x0600" is read. In phase 2, the state is “S” and the tag address is “0x00”.
400 ", and its value is read. The access type is store, and the tag address is "0x0
0400 "and the state is" S ".
According to (b), the processing type is determined to be "AA", the type of message to be output is determined to be "Upgrade", and the next state of the block is determined to be "S". When the above processing is completed, step S
Proceed to 112.

【0244】ステップS112では、処理タイプが「A
A」であることからステップS113に進む。
In step S112, when the processing type is "A
A ”, the flow proceeds to step S113.

【0245】ステップS113では、メッセージの生成
出力およびリクエスト管理テーブル24への登録を行
う。生成出力するメッセージの、宛先ノード番号は「0
x001」(アドレス「0x0040030010」の
第39ビット〜第30ビットの10ビット)、メッセー
ジの種類は「Upgrade」、アドレスは「0x00
40030010」、midは「1」、要求元ノード番
号は「0x002」となる。また、宛先ノード番号と当
該ノードPE2のノード番号が異なるので、出力先はメ
ッセージ送信部35となる。また、この時リクエスト管
理テーブルの「1」(=id)番エントリに、有効ビッ
トは「1」、アクセスの種類はストア、アドレスは「0
x0040030010」、およびストアデータを書き
込む。以上の処理を終えると、ステップS118に進
む。
In step S113, a message is generated and output and registered in the request management table 24. The destination node number of the message to be generated and output is "0
x001 "(10 bits from the 39th bit to the 30th bit of the address" 0x0040030010 "), the message type is" Upgrade ", and the address is" 0x00 ".
40030010 ", the mid is" 1 ", and the requesting node number is" 0x002 ". Since the destination node number and the node number of the node PE2 are different, the output destination is the message transmitting unit 35. At this time, the valid bit is “1”, the access type is store, and the address is “0” in the entry “1” (= id) of the request management table.
x0040030010 "and store data. Upon completion of the above processing, the process advances to step S118.

【0246】ステップS118では、タグメモリの「0
x0600」番地のエントリのデータを、状態は「S」
に、タグアドレスは「0x00400」(アドレス「0
x0040030010」の第39ビット〜第20ビッ
トの20ビット)に更新する。
At step S118, “0” in the tag memory
The data of the entry at the address “x0600” and the state is “S”
The tag address is “0x00400” (address “0
x0040030010 ”(20 bits from the 39th bit to the 20th bit).

【0247】以上で、ノードPE2のローカルアクセス
制御部25はストアアクセスの処理を終了する。
Thus, the local access control unit 25 of the node PE2 ends the store access processing.

【0248】(2)Upgradeメッセージの処理 上記「Upgrade」メッセージは、ノードPE2の
メッセージ送信部35、相互結合網10、ノードPE1
のメッセージ受信部36を介してノードPE1のホーム
アクセス制御部27に送られる。
(2) Processing of the Upgrade message The “Upgrade” message is sent to the message transmitting unit 35 of the node PE2, the interconnection network 10, and the node PE1.
Is sent to the home access control unit 27 of the node PE1 via the message receiving unit 36 of

【0249】上記「Upgrade」メッセージ(宛先
ノード番号は「0x001」、メッセージの種類は「U
pgrade」、アドレスは「0x004003001
0」、midは「1」、要求元ノード番号は「0x00
2」)を受けたノードPE1のホームアクセス制御部2
7は図12(a)のフローチャートに従い次のように動
作する。
The above "Upgrade" message (the destination node number is "0x001", and the message type is "U
pgrade "and the address is" 0x004003001
0, mid is “1”, and the requesting node number is “0x00”
2 "), the home access control unit 2 of the node PE1
7 operates as follows according to the flowchart of FIG.

【0250】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030010」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。フェーズ2において、
状態、保持ノード情報、保持形式、書き戻し回数はそれ
ぞれ 「C」、「0x001」、「00」(コースベク
タ形式)、「0」に更新されており、その値が読み出さ
れる。受けたメッセージの種類が「Upgrade」で
あり、読み出した状態が「C」であり、保持形式がコー
スベクタ形式で保持ノード情報が「0x001」でアン
キャッシュドではないことことから、図12(b)に従
い、処理タイプは「CA」、ブロックの次状態は「U
P」、保持ノード操作は「count」、書き戻し更新
回数はそのまま、出力するメッセージの種類は「In
v」に決定する。以上の処理を終えると、ステップS1
52に進む。
First, in step S151, the address of “0x000600” (the 22nd bit of the 28th to 7th bits of the address “0x0040030010” added to the message) in the directory memory 31 is accessed, and the data such as the state is read. . In Phase 2,
The state, the holding node information, the holding format, and the number of times of rewriting are updated to “C”, “0x001”, “00” (course vector format), and “0”, respectively, and the values are read. Since the type of the received message is “Upgrade”, the read state is “C”, the holding format is the course vector format, the holding node information is “0x001”, and it is not uncached, FIG. ), The processing type is “CA”, and the next state of the block is “U”.
P, the holding node operation is “count”, the number of write-back updates is unchanged, and the type of message to be output is “In”.
v ”. When the above processing is completed, step S1
Go to 52.

【0251】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「UP」、保持ノード情報は「0
x07f」、保持形式は「10」(カウンタ形式)、書
き戻し回数は「0」に更新する。また、処理しているメ
ッセージがブロックデータ付きのメッセージでないこと
から主メモリ30への書き込みは行わない。以上の処理
を終えると、ステップS153に進む。
In step S152, based on these information, the data at the address “0x000006” in the directory memory 31 is stored in the state “UP” and the holding node information is “0”.
x07f ”, the holding format is updated to“ 10 ”(counter format), and the number of write-backs is updated to“ 0 ”. Since the message being processed is not a message with block data, writing to the main memory 30 is not performed. Upon completion of the above processing, the process advances to step S153.

【0252】ステップS153では、処理タイプが「C
A」であることからステップS154に進む。
In the step S153, the processing type is “C
A ”, the flow proceeds to step S154.

【0253】ステップS154では、宛先ノード番号の
みが異なる複数の「Inv」メッセージを生成し出力す
る。この「Inv」メッセージは、メッセージの種類を
「Inv」、アドレスを「0x004003001
0」、midを「1」、要求元ノード番号を「0x00
2」とするメッセージである。また、宛先ノード番号
は、要求元ノード番号「0x002」を除いた「0x0
00」から「0x07f」となる。以上の処理で127
個のメッセージが生成される。各メッセージの出力先
は、宛先ノード番号と当該ノード番号の比較結果によっ
て決定する。宛先ノード番号が「0x001」のメッセ
ージは、当該ノードPE1のノード番号「0x001」
と一致するのでローカルアクセス制御部25に出力され
る。宛先ノード番号が「0x001」ではない他のメッ
セージは当該ノードPE1のノード番号と一致しないの
で、メッセージ送信部35に出力される。
In step S154, a plurality of “Inv” messages that differ only in the destination node number are generated and output. The “Inv” message has a message type “Inv” and an address “0x0040030001”.
0, mid is “1”, and the requesting node number is “0x00”
2 ". The destination node number is “0x0” excluding the request source node number “0x002”.
00 ”to“ 0x07f ”. With the above processing, 127
Messages are generated. The output destination of each message is determined based on the result of comparison between the destination node number and the node number. The message with the destination node number “0x001” is the node number “0x001” of the node PE1.
Is output to the local access control unit 25. Other messages whose destination node number is not “0x001” do not match the node number of the node PE1, and are output to the message transmitting unit 35.

【0254】以上で、ノードPE2のホームアクセス制
御部27は「Upgrade」メッセージの処理を終了
する。
With the above, the home access control unit 27 of the node PE2 ends the processing of the “Upgrade” message.

【0255】(3)Invメッセージの処理 これらの「Inv」メッセージはノードPE1のメッセ
ージ送信部35、相互結合網、各ノードPE0〜PE1
27(PE1,PE2除く)のメッセージ受信部36を
介して各ノードのローカルアクセス制御部25に出力さ
れる。ノードPE1への「Inv」メッセージは上述の
ように直接ローカルアクセス制御部25に出力される。
(3) Processing of Inv message These "Inv" messages are sent to the message transmitting unit 35 of the node PE1, the interconnection network, and the nodes PE0 to PE1.
The message is output to the local access control unit 25 of each node via the message receiving unit 36 (excluding PE1 and PE2). The “Inv” message to the node PE1 is output directly to the local access control unit 25 as described above.

【0256】上記「Inv」メッセージ(宛先ノード番
号は受けたノードPEiのノード番号、メッセージの種
類は「Inv」、アドレスは「0x004003001
0」、midは「1」、要求元ノード番号は「0x00
2」)を受けた各ノードPEi(i=0、1、3、・・
・、127)のローカルアクセス制御部25は、図9
(a)のフローチャートに従い次のように動作する。
The above-mentioned “Inv” message (the destination node number is the node number of the receiving node PEi, the message type is “Inv”, and the address is “0x004030001”
0, mid is “1”, and the requesting node number is “0x00”
2 "), each node PEi (i = 0, 1, 3,...)
· 127) of the local access control unit 25 shown in FIG.
The operation is performed as follows according to the flowchart of FIG.

【0257】まず、ステップS121で、「Inv」メ
ッセージを受けたローカルアクセス制御部25は、タグ
メモリ22の「0x0600」番地のデータを読み出
す。読み出したタグアドレスが「0x00400」と一
致するかどうか、また状態がなにであるかによって、図
9(b)のテーブルに従い、処理タイプ、出力するメッ
セージの種類、タグメモリ22のブロックの次状態が決
定する。以上の処理を終えると、ステップS122に進
む。
First, in step S 121, the local access control unit 25 that has received the “Inv” message reads data at the address “0x0600” in the tag memory 22. Depending on whether the read tag address matches “0x00400” and what the state is, the processing type, the type of message to be output, and the next state of the block of the tag memory 22 are determined according to the table in FIG. Is determined. Upon completion of the above processing, the process advances to step S122.

【0258】ステップS122では、「Inv」メッセ
ージを受けた場合の処理タイプが「BA」となることか
らステップS123に進む。
In step S122, since the processing type when the "Inv" message is received is "BA", the flow advances to step S123.

【0259】ステップS123では、「Ack」メッセ
ージの生成が行われる。この「Ack」メッセージは、
宛先ノード番号を「0x001」、メッセージの種類を
「Ack」、アドレスを「0x0040030001
0」、midを「1」、要求元ノード番号を「0x00
2」とする。出力先は宛先ノード番号「0x001」と
当該ノード番号の比較結果によって決定する。ノードP
E1であれば、一致するのでホームアクセス制御部27
に出力する。他のノードであれば、一致しないのでメッ
セージ送信部35に出力する。以上の処理を終えると、
ステップS125に進む。
At step S123, an "Ack" message is generated. This "Ack" message is
The destination node number is “0x001”, the message type is “Ack”, and the address is “0x0040030001”.
0, mid is “1”, and the requesting node number is “0x00”
2 ". The output destination is determined based on a comparison result between the destination node number “0x001” and the node number. Node P
If E1, they match, so the home access control unit 27
Output to If it is another node, it does not match and outputs it to the message transmitting unit 35. After completing the above processing,
Proceed to step S125.

【0260】ステップS125では、次いで、タグメモ
リの更新を行う。更新するエントリはステップ121で
読み出しを行った「0x0600」番地のエントリであ
り、状態は図8から求まるブロックの次状態「I」に更
新され、タグアドレスは先ほどタグメモリ22から読み
出した値がそのまま書き込まれる(ステップS12
5)。
At step S125, the tag memory is updated. The entry to be updated is the entry at the address “0x0600” read out in step 121, the state is updated to the next state “I” of the block obtained from FIG. 8, and the tag address is the value read from the tag memory 22 as it is. Is written (step S12
5).

【0261】以上で各ノードPEi(i=0,1,3,
…,127)のローカルアクセス制御部25は、「In
v」メッセージの処理を終了する。
As described above, each node PEi (i = 0, 1, 3, 3)
, 127), the "In"
v "message processing ends.

【0262】(4)Ackメッセージの処理 ノードPE0、ノードPE3〜ノードPE127は、そ
れぞれ前記「Ack」メッセージをノードPE1に対し
て送信する。この「Ack」メッセージは、各ノードの
メッセージ送信部35、相互結合網10、ノードPE1
のメッセージ受信部36を介してノードPE1のホーム
アクセス制御部27に出力される。
(4) Processing of Ack Message Nodes PE0, PE3 to PE127 each transmit the “Ack” message to node PE1. The “Ack” message is sent to the message transmitting unit 35 of each node, the interconnection network 10, the node PE1
Is output to the home access control unit 27 of the node PE1 via the message receiving unit 36.

【0263】一方、ノードPE1では、ローカルアクセ
ス制御部25から、「Ack」メッセージがホームアク
セス制御部27に出力される。
On the other hand, in the node PE 1, the “Ack” message is output from the local access control unit 25 to the home access control unit 27.

【0264】ノードPE1のホームアクセス制御部27
は、合計127個の同じ「Ack」メッセージ(宛先ノ
ードは「0x001」、種類は「Ack」、アドレ ス
は「0x0040030010」、midは「1」、要
求元ノード番号は「0x002」)を受け取り、図12
(a)のフローチャートに従い処理することになる。最
初の「Ack」メッセージをノードPE1のホームアク
セス制御部27が受けた場合、次のように動作する。
Home access control unit 27 of node PE1
Receives a total of 127 identical “Ack” messages (the destination node is “0x001”, the type is “Ack”, the address is “0x0040030010”, the mid is “1”, and the requesting node number is “0x002”). FIG.
Processing is performed according to the flowchart of FIG. When the home access control unit 27 of the node PE1 receives the first “Ack” message, it operates as follows.

【0265】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030010」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。読み出した状態、保持
ノード情報、保持形式、書き戻し回数はそれぞれフェー
ズ3で「UP」、「0x07f」、「10」(カウンタ
形式)、「0」に更新されており、その値が読み出され
る。受けたメッセージの種類が「Ack」であり、読み
出した状態が「UP」、また保持ノード形式がカウンタ
形式で保持ノード情報が0x07fでありアンキャッシ
ュドでないことから、図13のテーブルに従い、処理タ
イプは「CC」、ブロックの次状態は「UP」、保持ノ
ード操作は「dec」、書き戻し更新回数はそのまま、
出力するメッセージはなしに決定する。以上の処理を終
えると、ステップS152に進む。
First, in step S151, the address of “0x000600” (22 bits from the 28th bit to the 7th bit of the address “0x0040030010” added to the message) in the directory memory 31 is accessed, and data such as the state is read. . The read state, the holding node information, the holding format, and the number of rewrites have been updated to “UP”, “0x07f”, “10” (counter format), and “0” in Phase 3, respectively, and their values are read. Since the type of the received message is “Ack”, the read state is “UP”, the holding node type is the counter format, the holding node information is 0x07f, and it is not uncached, the processing type is determined according to the table in FIG. Is “CC”, the next state of the block is “UP”, the holding node operation is “dec”, the number of write-back updates is unchanged,
No message to be output. Upon completion of the above processing, the process advances to step S152.

【0266】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「UP」、保持ノード情報は「0
x07e」、保持形式は「10」、書き戻し更新回数は
「0」に更新する。また、処理しているメッセージがブ
ロックデータ付きのメッセージでないことから、主メモ
リ30への書き込みは行なわない。以上の処理を終える
と、ステップS153に進む。
In step S152, based on these information, the data at the address “0x000006” in the directory memory 31 is stored in the state “UP” and the holding node information is “0”.
x07e ", the holding format is" 10 ", and the rewrite update count is updated to" 0 ". Since the message being processed is not a message with block data, writing to the main memory 30 is not performed. Upon completion of the above processing, the process advances to step S153.

【0267】ステップS153では、処理タイプが「C
C」であることから処理を終了する。
In the step S153, the processing type is “C
C ", the process ends.

【0268】以上で、ノードPE1のホームアクセス制
御部27は「Ack」メッセージの処理を終了する。
[0268] Thus, the home access control unit 27 of the node PE1 ends the processing of the "Ack" message.

【0269】ホームアクセス制御部27は、各ノードP
Eiからの「Ack」メッセージを、前記同様に処理し
ていき、ディレクトリメモリ31の値を読み出し保持ノ
ード情報から「1」を引いた値に更新する処理が行われ
ていく。この処理は、読み出した保持ノード情報から
「1」を引いた値が「0x000」でない場合、即ちア
ンキャッシュドでない場合まで継続される。ただし、ア
ンキャッシュドになる場合、即ち最後の127個目の
「Ack」メッセージを受けたときは、次のように動作
する。
The home access control unit 27 controls each node P
The "Ack" message from Ei is processed in the same manner as described above, and the process of reading the value of the directory memory 31 and updating it to a value obtained by subtracting "1" from the holding node information is performed. This process is continued until the value obtained by subtracting “1” from the read holding node information is not “0x000”, that is, not uncached. However, when it becomes uncached, that is, when it receives the last 127 “Ack” message, it operates as follows.

【0270】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030010」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。読み出した状態、保持
ノード情報、保持形式、書き戻し回数はそれぞれ「U
P」、「0x001」、「10」(カウンタ形式)、
「0」に更新されており、その値が読み出される。受け
たメッセージの種類が「Ack」であり、読み出した状
態が「UP」、保持形式がカウンタ形式で保持ノード情
報が「0x001」でありアンキャッシュドであること
から、図13のテーブルに従い、処理タイプは「C
A」、ブロックの次状態は「M」、保持ノード操作は
「set」、書き戻し更新回数はそのまま、出力するメ
ッセージの種類は「CmpSh」に決定する。以上の処
理を終えると、ステップS152に進む。
First, in step S151, the address of “0x000600” (22 bits of the 28th to 7th bits of the address “0x0040030010” added to the message) in the directory memory 31 is accessed, and the data such as the state is read. . The read state, the holding node information, the holding format, and the number of write-backs are each "U
P "," 0x001 "," 10 "(counter format),
It has been updated to "0" and its value is read. Since the type of the received message is “Ack”, the read state is “UP”, the holding format is the counter format, the holding node information is “0x001”, and the data is uncached, the processing is performed according to the table in FIG. Type is "C
"A", the next state of the block is "M", the holding node operation is "set", the number of write-back updates is unchanged, and the type of message to be output is determined to be "CmpSh". Upon completion of the above processing, the process advances to step S152.

【0271】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「M」、保持ノード情報は「0x
002」、保持形式は「01」(ポインタ形式)、書き
戻し回数は「0」に更新する。また、処理しているメッ
セージがブロックデータ付きのメッセージでないことか
ら主メモリ30への書き込みは行なわない。以上の処理
を終えると、ステップS153に進む。
In step S152, based on these information, the data at the address “0x000600” in the directory memory 31 is stored in the state “M” and the holding node information is “0x000600”.
002 ”, the storage format is updated to“ 01 ”(pointer format), and the number of write-backs is updated to“ 0 ”. Since the message being processed is not a message with block data, writing to the main memory 30 is not performed. Upon completion of the above processing, the process advances to step S153.

【0272】ステップS153では、処理タイプが「C
A」であることからステップS144に進む。
In the step S153, the processing type is “C
A ”, the flow proceeds to step S144.

【0273】ステップS154では、「CmpSh」メ
ッセージを生成する。この「CmpSh」メッセージ
は、宛先ノード番号を「0x002」、メッセージの種
類を「CmpSh」、アドレスを「0x0040030
010」」、midを「1」、要求元ノード番号を「0
x002」とするものである(ステップS144)。こ
のメッセージの出力先は、宛先ノード番号「0x00
2」と当該ノードPE1のノード番号「0x001」が
一致しないことから、メッセージ送信部35となる。
[0273] In step S154, a "CmpSh" message is generated. The “CmpSh” message has a destination node number “0x002”, a message type “CmpSh”, and an address “0x0040030”.
010 ", mid is" 1 ", and the requesting node number is" 0 ".
x002 ”(step S144). The output destination of this message is the destination node number "0x00
Since the node number “2” does not match the node number “0x001” of the node PE1, the message transmission unit 35 is used.

【0274】以上でノードPE1のホームアクセス制御
部27は「Ack」メッセージの処理を終了する。
The home access control unit 27 of the node PE1 ends the processing of the “Ack” message.

【0275】(5)CmpShメッセージの処理 上記「CmpSh」メッセージは、ノードPE1のメッ
セージ送信部35、相互結合網10、ノードPE2のメ
ッセージ受信部36を介して、ノードPE2のローカル
アクセス制御部25に出力される。
(5) Processing of CmpSh Message The “CmpSh” message is sent to the local access control unit 25 of the node PE2 via the message transmitting unit 35 of the node PE1, the interconnection network 10, and the message receiving unit 36 of the node PE2. Is output.

【0276】上記「CmpSh」メッセージ(宛先ノー
ド番号は「0x002」、メッセージの種類は「Cmp
Sh」、アドレスは「0x0040030010」、m
idは「1」、要求元ノード番号は「0x002」)を
受けたノードPE2のローカルアクセス制御部25は、
図10のフローチャートに従い次のように動作する。ま
ず、ステップS131で、リクエスト管理テーブル24
の「1」(=mid)番エントリの情報を読み出し、ア
クセスの種類はストア、アドレスは「0x004003
0010」、およびストアデータを得る。以上の処理を
終えると、ステップS132に進む。
The “CmpSh” message (the destination node number is “0x002” and the message type is “CmpSh”
Sh ”, the address is“ 0x0040030010 ”, m
The local access control unit 25 of the node PE2 receiving the id “1” and the request source node number “0x002”)
The operation is performed as follows according to the flowchart of FIG. First, in step S131, the request management table 24
The information of the entry “1” (= mid) is read, the access type is store, and the address is “0x004003”.
0010 ", and store data. Upon completion of the above processing, the process advances to step S132.

【0277】ステップS132では、ブロックデータ付
きのメッセージではないのでステップS133に進む。
In step S132, since the message is not a message with block data, the flow advances to step S133.

【0278】ステップS133では、「Ncmp」メッ
セージでもないのでステップS137に進む。
In step S133, since the message is not the “Ncmp” message, the flow advances to step S137.

【0279】ステップS137では、キャッシュメモリ
21の「0x06002」番地のデータ64ビットを、
リクエスト管理テーブル24から得たストアデータに更
新する処理を行う。また、リクエスト管理テーブル24
の「1」(=mid)番エントリに有効ビットを「0」
としたデータを書き込み、エントリを削除する。また、
タグメモリ22の「0x0600」番地のデータを、図
11(b)のテーブルに従い、状態は「D」、タグアド
レスは「0x00400」(リクエスト管理テーブルか
ら得たアドレス0x0040030010の第39ビッ
ト〜第20ビットの20ビット)に更新する。また、プ
ロセッサへmidを出力し、id=「1」のメモリアク
セスが完了した旨を通知する。以上の処理を終えると、
ステップS138に進む。
[0279] In step S137, 64 bits of data at the address "0x06002" in the cache memory 21 are converted into
A process for updating to the store data obtained from the request management table 24 is performed. Also, the request management table 24
The effective bit to "0" in the "1" (= mid) entry of
Is written, and the entry is deleted. Also,
According to the table of FIG. 11B, the data of the address “0x0600” in the tag memory 22 is “D”, the tag address is “0x00400” (the 39th to 20th bits of the address 0x0040030010 obtained from the request management table). 20 bits). Also, it outputs mid to the processor and notifies that the memory access of id = "1" has been completed. After completing the above processing,
Proceed to step S138.

【0280】ステップS138では、受けたメッセージ
が「CmpSh」であるので(ステップS138)、ロ
ーカルアクセス制御部25は、図11(a)のフローチ
ャートのステップS161に進み、書き戻し処理を開始
する。
In step S138, since the received message is “CmpSh” (step S138), the local access control unit 25 proceeds to step S161 in the flowchart of FIG. 11A, and starts a write-back process.

【0281】ステップS141では、書き戻し選択手段
26から書き戻しが要求されているかどうかを調べる
(ステップS161)。初期状態では、書き戻し選択手
段26のアドレス保持手段111(2エントリのFIF
O)にはなにも登録されていない状態であり、書き戻し
要求手段112は要求を出していない。そのため、ステ
ップS146に進む。
In the step S141, it is checked whether or not a write-back is requested from the write-back selecting means 26 (step S161). In the initial state, the address holding means 111 (two-entry FIFO
In O), nothing is registered, and the write-back request unit 112 has not issued a request. Therefore, the process proceeds to step S146.

【0282】ステップS146では、ローカルアクセス
制御部25は、書き戻しブロック選択手段26のアドレ
ス登録手段110にアドレス「0x004003001
0」の登録を依頼する。依頼を受けたアドレス登録手段
110は、アドレス保持手段111に前記アドレスの上
位33ビットを登録する。これで、アドレス保持手段1
11には「0x000800600」が一つ登録された
状態となる。
In step S146, the local access control unit 25 sends the address “0x0040030001” to the address registration unit 110 of the write-back block selection unit.
Request registration of "0". The address registration unit 110 that has received the request registers the upper 33 bits of the address in the address holding unit 111. Thus, the address holding means 1
11 is in a state where one “0x000800600” is registered.

【0283】以上でローカルアクセス制御部25は、受
けた「CmpSh」メッセージの処理を終了する。
[0283] Thus, the local access control unit 25 ends the processing of the received "CmpSh" message.

【0284】この段階で「0x0040030000」
〜「0x004003007f」番地までについて、最
新のデータはノードPE2のキャッシュメモリ21にの
み存在する状態になる。
[0284] At this stage, "0x0040030000"
Up to the address “0x40003007f”, the latest data is in a state where it exists only in the cache memory 21 of the node PE2.

【0285】4. フェーズ4 ノードPE1のプロセッサ20がアドレス「0x004
0040000」に対してロードアクセスを行うと、フ
ェーズ1で示した動作と同様の処理が行われる。次い
で、ノードPE2のプロセッサ20がアドレス「0x0
040040000」に対してロードアクセスを行う
と、フェーズ2で示した動作と同様の処理が行われる。
次いで、ノードPE2のプロセッサ20がアドレス「0
x0040040010」に対してストアアクセスを行
うと、フェーズ3で示した動作と同様の処理が行われ
る。これにより、ノードPE2の書き戻しブロッ ク選
択手段26のアドレス保持手段111にはアドレス「0
x0008006 00」 (アドレス「0x0040
030010」の上位33ビット)と「0x00080
0800」(アドレス「0x0040040000」の
上位33ビット)の2個が登録されることになる。
[0285] 4. Phase 4 The processor 20 of the node PE1 receives the address “0x004
When load access is performed to “0040000”, the same processing as the operation shown in phase 1 is performed. Next, the processor 20 of the node PE2 sends the address “0x0”.
When the load access is performed for “0400400000”, the same processing as the operation shown in phase 2 is performed.
Next, the processor 20 of the node PE2 outputs the address “0”.
When a store access is made to “x0040040010”, the same processing as the operation shown in phase 3 is performed. Thus, the address “0” is stored in the address holding unit 111 of the write-back block selecting unit 26 of the node PE2.
x0000800 "(address" 0x0040
030010) and 0x8000
0800 ”(the upper 33 bits of the address“ 0x0040040000 ”).

【0286】上記と同様の処理がまた別のアドレス(例
えば「0x0040050000」)で行われ、ノード
PE2が行ったストアアクセスから「CmpSh」メッ
セージが発生しノードPE2のローカルアクセス制御部
25が、図9および図10のフローチャートに従い処理
したとする。この時、書き戻し選択手段26のアドレス
保持手段111には2個のアドレスが登録されており、
フルの状態にある。そのため、書き戻し要求手段112
はローカルアクセス制御部25に対してアドレス「0x
0040030000」(「0x000800600」
33ビットの下位に7ビット「0」を付加した40ビッ
ト)の書き戻しを要求している。
The same processing as described above is performed at another address (for example, “0x0040050000”), a “CmpSh” message is generated from the store access performed by the node PE2, and the local access control unit 25 of the node PE2 executes the process shown in FIG. It is assumed that the processing is performed according to the flowchart of FIG. At this time, two addresses are registered in the address holding means 111 of the write-back selection means 26,
In full condition. Therefore, the write-back request unit 112
Indicates to the local access control unit 25 the address “0x
0040030000 "(" 0x000800600 "
(40 bits in which 7 bits “0” are added to the lower part of 33 bits).

【0287】(1)CmpShメッセージの処理 ローカルアクセス制御部25は、「CmpSh」メッセ
ージを受け処理し、ステップS141に進む。
(1) Processing of CmpSh Message The local access control unit 25 receives and processes the “CmpSh” message, and proceeds to step S141.

【0288】ステップS141では、書き戻し選択手段
26の書き戻し要求手段112は書き戻しを要求してい
るためステップS142に進む。
In step S141, the write-back requesting means 112 of the write-back selecting means 26 has requested write-back, so that the flow advances to step S142.

【0289】ステップS142では、書き戻し要求手段
112が出力するアドレス「0x004003000
0」の第19ビットから第7ビットまでの13ビット
(0x0600)をインデックスとしてタグメモリ22
をアクセスし、状態およびタグアドレスを得る(ステッ
プS162)。フェーズ3で状態およびタグアドレスは
それぞれ「D」と「0x00400」に更新されており
その値が読み出される。以上の処理を終えると、ステッ
プS143に進む。
In the step S142, the address “0x004003000” output from the write-back requesting means 112 is output.
The tag memory 22 uses 13 bits (0x0600) from the 19th bit to the 7th bit of "0" as an index.
To obtain the status and the tag address (step S162). In the phase 3, the state and the tag address are updated to "D" and "0x00400", respectively, and the values are read. Upon completion of the above processing, the process advances to step S143.

【0290】ステップS143では、状態が「D」であ
り、またタグアドレスと書き戻し要求手段112が出力
するアドレス「0x0040030000」の上位20
ビットが一致することから、書き戻しが必要と判断しス
テップS144に進む。
In step S 143, the status is “D”, and the tag address and the upper 20 bits of the address “0x0040030000” output by the write-back requesting means 112.
Since the bits match, it is determined that write-back is necessary, and the flow advances to step S144.

【0291】ステップS144では、書き戻しを行うた
めに、キャッシュメモリ21から該当するブロックのデ
ータを読み出す。読み出すブロックデータは「0x06
000」番地から「0x0600f」番地までの64ビ
ット×16エントリ=128バイトである。読み出され
たブロックデータは生成する「RpBack」メッセー
ジに付加する。生成する「RpBack」メッセージ
は、宛先ノード番号を「0x001」(書き戻しブロッ
ク要求手段112が出力するアドレスの上位10ビッ
ト)、メッセージの種類を「RpBack」、アドレス
を「0x0040030000」、要求元ノード番号を
「0x002」、midは任意の値、ブロックデータは
先ほどキャッシュメモリ21から読み出したブロックデ
ータとするメッセージである。この「RpBack」メ
ッセージの出力先は、宛先ノード番号「0x001」と
当該ノードPE2のノード番号「0x002」が異なる
ことからメッセージ送信部35となる。また、タグメモ
リ22の「0x0600」番地のデータを、状態は
「S」、タグアドレスはステップS142で読み出した
タグアドレスに更新する。以上の処理を終えると、ステ
ップS145に進む。
In step S144, the data of the corresponding block is read from the cache memory 21 in order to perform write back. The block data to be read is “0x06
It is 64 bits × 16 entries = 128 bytes from the address “000” to the address “0x0600f”. The read block data is added to the generated “RpBack” message. The generated “RpBack” message has a destination node number of “0x001” (the upper 10 bits of the address output by the write-back block request unit 112).
G), the message type is “RpBack”, the address is “0x0040030000”, the requesting node number is “0x002”, the mid is an arbitrary value, and the block data is the block data read from the cache memory 21 earlier. The output destination of the “RpBack” message is the message transmitting unit 35 because the destination node number “0x001” and the node number “0x002” of the node PE2 are different. Further, the data of the address “0x0600” in the tag memory 22 is updated to the state “S” and the tag address to the tag address read in step S142. Upon completion of the above processing, the process advances to step S145.

【0292】ステップS145では、書き戻しブロック
選択手段26のアドレス削除手段113に、現在書き戻
し要求手段112が要求しているアドレスを削除するよ
う要求する。要求を受けた書き戻し要求手段112は、
アドレス保持手段111からアドレス「0x00080
0600」を削除する。これにより、アドレス保持手段
111にはアドレス「0x000800800」一つが
登録されている状態となる。以上の処理を終えると、ス
テップS146に進む。
In step S145, a request is made to the address deletion means 113 of the write-back block selection means 26 to delete the address requested by the current write-back request means 112. Upon receiving the request, the write-back request means 112
From the address holding means 111, the address “0x8000
0600 ”is deleted. As a result, one address “0x8000800” is registered in the address holding unit 111. Upon completion of the above processing, the process advances to step S146.

【0293】ステップS146では、ローカルアクセス
制御部25は、書き戻しブロック選択手段26のアドレ
ス登録手段110に、現在処理しているメッセージ「C
mpSh」のアドレス「0x0040050000」を
登録するように要求する。要求を受けた、アドレス登録
手段110は、アドレス保持手段111にアドレス「0
x0040050000」の上位33ビット「0x00
0800A00」を登録する。これにより、アドレス保
持手段111には、「0x000800800」と「0
x000800A00」が登録されている状態となる
(ステップS166)。
[0293] In step S146, the local access control unit 25 causes the address registration unit 110 of the write-back block selection unit 26 to send the message "C
It is requested to register the address “0x0040050000” of “mpSh”. Upon receiving the request, the address registration unit 110 stores the address “0” in the address holding unit 111.
x0040050000 "upper 33 bits" 0x00
0800A00 ”is registered. As a result, the address holding unit 111 stores “0x000800800” and “0
x000800A00 "is registered (step S166).

【0294】以上で、ノードPE2のローカルアクセス
制御部25は、「CmpSh」メッセージの処理を終了
する。
[0294] Thus, the local access control unit 25 of the node PE2 ends the processing of the "CmpSh" message.

【0295】(2)RpBackメッセージの処理 ノードPE2のローカルアクセス制御部25がメッセー
ジ送信部35に出力した前記「RpBack」メッセー
ジは、相互結合網10を通って、ノードPE1のメッセ
ージ受信部36に渡される。メッセージ受信部36は、
「RpBack」メッセージを受けると、それをホーム
アクセス制御部27に出力する。
(2) Processing of RpBack Message The “RpBack” message output from the local access control unit 25 of the node PE2 to the message transmitting unit 35 is passed to the message receiving unit 36 of the node PE1 through the interconnection network 10. It is. The message receiving unit 36
When receiving the “RpBack” message, it outputs it to the home access control unit 27.

【0296】上記「RpBack」メッセージ(宛先ノ
ード番号は「0x001」、メッセージの種類は「Rp
Back」、アドレスは「0x004003000
0」、要求元ノード番号は「0x002」、およびブロ
ックデータ)を受けたノードPE1のホームアクセス制
御部27は、図12のフローチャートに従い次のように
動作する。
The above “RpBack” message (the destination node number is “0x001”, and the message type is “RpBack”
Back "and the address is" 0x004003000 "
The home access control unit 27 of the node PE1 that has received “0”, the request source node number “0x002”, and the block data) operates as follows according to the flowchart of FIG.

【0297】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030000」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。フェー3において、状
態、保持ノード情報、保持形式、書き戻し回数はそれぞ
れ「M」、「0x002」、「01」(ポインタ形
式)、「0」に更新されており、その値が読み出され
る。受けたメッセージの種類は「RpBack」であ
り、読み出した状態は「M」であることから、図13の
テーブルに従い処理タイプは「CC」、ブロックの次状
態は「C」、保持ノード操作は「none」、書き戻し
回数は「+1」に決定する。以上の処理が終了すると、
ステップS152に進む。
First, in step S151, the address of “0x000600” (22 bits from the 28th bit to the 7th bit of the address “0x0040030000” added to the message) in the directory memory 31 is accessed, and the data such as the state is read. . In phase 3, the status, the holding node information, the holding format, and the number of times of rewriting are updated to “M”, “0x002”, “01” (pointer format), and “0”, respectively, and the values are read. Since the type of the received message is “RpBack” and the read state is “M”, according to the table in FIG. 13, the processing type is “CC”, the next state of the block is “C”, and the holding node operation is “C”. none ", and the number of rewrites is determined to be" +1 ". When the above process is completed,
Proceed to step S152.

【0298】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「C」、保持ノード情報は「0x
002」、保持形式 は「01」(ポインタ形式)、書
き戻し回数は「1」に更新する。ここでは、データ付き
のメッセージであるので主メモリの「0x000600
0」番地から「0x000600f」番地に、メッセー
ジに付加されていたブロックデータを書き込む。これに
より、ノードPE1の主メモリ30にも最新のデータが
存在する状態となる。以上の処理が終了すると、ステッ
プS153に進む。
In step S152, based on these information, the data at the address “0x000600” in the directory memory 31 is stored in the state “C” and the holding node information is “0x000600”.
002 ”, the holding format is“ 01 ”(pointer format), and the number of write-backs is updated to“ 1 ”. Here, since the message is a message with data, “0x000600” in the main memory is used.
The block data added to the message is written from address “0” to address “0x00000600f”. As a result, a state is established in which the latest data also exists in the main memory 30 of the node PE1. When the above processing ends, the flow advances to step S153.

【0299】ステップS153において、処理タイプが
「CC」である。
[0299] In step S153, the processing type is "CC".

【0300】以上で、ノードPE1のホームアクセス制
御部27は、「RpBack」メッセージの処理を終了
する。
[0300] Thus, the home access control unit 27 of the node PE1 ends the processing of the "RpBack" message.

【0301】この段階で「0x0040030000」
〜「0x004003007f」番地までについて、最
新のデータはノードPE2のキャッシュメモリ21に加
え、ノードPE1の主メモリ30にも存在する状態とな
る。
At this stage, “0x0040030000”
Up to the address “0x004003007f”, the latest data exists in the main memory 30 of the node PE1 in addition to the cache memory 21 of the node PE2.

【0302】以降の動作は、ノードPE1が再び「0x
0040030000」番地にロードアクセスする場合
と、しない場合に分けて説明する。まず、ロードアクセ
スを行う場合の動作を説明する。
[0302] In the subsequent operation, the node PE1 returns "0x" again.
The explanation will be made separately for the case where the load access is made to the address “0040030000” and the case where the load access is not made. First, the operation when performing load access will be described.

【0303】5. フェーズ5A (1)ロードアクセスの処理 ノードPE1のプロセッサ20がアドレス「0x004
0030000」にid=「0」でロードアクセスを行
ったとする。
[0303] 5. Phase 5A (1) Processing of Load Access The processor 20 of the node PE1 receives the address “0x004”.
It is assumed that load access is performed to id 00300000 with id = "0".

【0304】プロセッサ20が行ったメモリアクセスを
受けたローカルアクセス制御部25は、図8(a)のフ
ローチャートに従い次のように動作する。
The local access control unit 25 having received the memory access performed by the processor 20 operates as follows according to the flowchart of FIG.

【0305】まず、ステップS111で、タグメモリ2
2の「0x0600」番地(プロセッサ20から得たア
ドレス「0x0040030000」の第19ビット〜
第7ビットの13ビット)のデータを読み出す。状態お
よびタグアドレスはフェーズ3で「I」および「0x0
0400」に更新されておりその値が読み出される。こ
の値から、図8(b)のテーブルに従い処理タイプは
「AA」、発行するメッセージは「BlkRdSh」、
ブロックの次状態は「I」に決定する。以上の処理を終
えると、ステップS112に進む。
First, in step S111, the tag memory 2
2 address “0x0600” (the 19th bit to the address “0x0040030000” obtained from the processor 20)
The data of the seventh bit (13 bits) is read. The status and tag address are "I" and "0x0"
0400 ”and the value is read. From this value, the processing type is “AA”, the message to be issued is “BlkRdSh” according to the table in FIG.
The next state of the block is determined to be "I". Upon completion of the above processing, the process advances to step S112.

【0306】ステップS112では、処理タイプが「A
A」であることからステップS113に進む。
In step S112, if the processing type is "A
A ”, the flow proceeds to step S113.

【0307】ステップS113では、メッセージの生成
出力およびリクエスト管理テーブル24への登録を行
う。生成出力するメッセージの、宛先ノード番号は「0
x001」(アドレス「0x0040030000」の
第39ビット〜第30ビットの10ビット)、メッセー
ジの種類は「BlkRdSh」、アドレスは「0x00
40030000」、midは「0」(=id)、要求
元ノード番号は「0x001」となる。また、宛先ノー
ド番号と当該ノードPE1のノード番号が両者とも「0
x001」と一致するので、出力先は当該ノードPE1
のホームアクセス制御部27となる。また、リクエスト
管理テーブル24の「0」(=id)番エントリに、有
効ビットは「1」、アクセスの種類はロード、アドレス
は「0x0040030000」というデータを書き込
む。以上の処理を終えると、ステップS118に進む。
In step S113, a message is generated and output and registered in the request management table 24. The destination node number of the message to be generated and output is "0
x001 ”(10 bits from the 39th bit to the 30th bit of the address“ 0x0040030000 ”), the message type is“ BlkRdSh ”, and the address is“ 0x00 ”.
4030000 ", the mid is" 0 "(= id), and the request source node number is" 0x001 ". Further, both the destination node number and the node number of the node PE1 are “0”.
x001 ”, the output destination is the node PE1.
Of the home access control unit 27. In addition, the valid bit is set to “1”, the access type is loaded, and the address is set to “0x00400300000” in the “0” (= id) entry of the request management table 24. Upon completion of the above processing, the process advances to step S118.

【0308】ステップS118では、タグメモリの「0
x0600」番地のエントリのデータを、状態は「I」
に、タグアドレスは0x00400(アドレス0x00
40030000の第39ビット〜第20ビットの20
ビット)に更新する。
At step S118, "0" in the tag memory
The data of the entry at the address "x0600" and the state is "I"
The tag address is 0x00400 (address 0x00
Bits 40030000 from bit 39 to bit 20
Bit).

【0309】以上で、ノードPE1のローカルアクセス
制御部25は、受けたロードアクセスの処理を終了す
る。
With the above, the local access control unit 25 of the node PE1 ends the received load access processing.

【0310】(2) BlkRdShメッセージの送信 上記「BlkRdSh」メッセージ(宛先ノード番号は
「0x001」、メッセージの種類は「BlkRdS
h」、アドレスは「0x0040030000」、mi
dは「0」、要求元ノード番号は「0x001」)を受
けたノードPE1のホームアクセス制御部27は図12
(a)のフローチャートに従い次のように動作する。
(2) Transmission of BlkRdSh message The above “BlkRdSh” message (the destination node number is “0x001”, and the message type is “BlkRdS”
h ", the address is" 0x0040030000 ", mi
(d is “0” and the requesting node number is “0x001”).
The operation is performed as follows according to the flowchart of FIG.

【0311】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030000」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。読み出した状態、保持
ノード情報、保持形式、書き戻し回数はそれぞれフェー
ズ4で 「C」、「0x002」、「01」(ポインタ
形)、「1」に更新されておりその値が読み出される。
受けたメッセージの種類が「BlkRdSh」であり、
読み出した状態が「C」、保持形式がポインタ形式で保
持ノード情報が「0x002」でありアンキャッシュド
でないことから、図13のテーブルに従い、処理タイプ
は「CB」、ブロックの次状態は「C」、保持ノード操
作は「add」、書き 戻し回数は「0」、出力するメ
ッセージの種類は「CmpDatSh」に決定する。以
上の処理を終えると、ステップS152に進む。
First, in step S151, an address of “0x000600” (22 bits of the 28th to 7th bits of the address “0x00400300000” added to the message) in the directory memory 31 is accessed, and data such as a state is read. . The read state, the holding node information, the holding format, and the number of times of rewriting have been updated to “C”, “0x002”, “01” (pointer type), and “1” in phase 4, respectively, and their values are read.
The type of the received message is "BlkRdSh",
Since the read state is “C”, the holding format is the pointer format, the holding node information is “0x002”, and it is not uncached, the processing type is “CB” and the next state of the block is “C” according to the table in FIG. , The holding node operation is “add”, the number of write-backs is “0”, and the type of message to be output is “CmpDatSh”. Upon completion of the above processing, the process advances to step S152.

【0312】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「C」、保持ノード情報は「0x
001」、保持形式 は「00」(コースベクタ)、書
き戻し回数は「0」に更新する。以上の処理を終える
と、ステップS153に進む。
In step S152, based on these information, the data at the address “0x000600” of the directory memory 31 is stored in the state “C” and the holding node information is “0x000600”.
“001”, the holding format is “00” (course vector), and the number of rewrites is updated to “0”. Upon completion of the above processing, the process advances to step S153.

【0313】ステップS153では、処理タイプが「C
B」であることからステップS155に進む。
In step S153, if the processing type is “C
B ”, the flow proceeds to step S155.

【0314】ステップS155では、主メモリ30の
「0x0006000」番地〜「0x000600f」
番地までの64ビット×16エントリ=128バイトの
ブロックデータを読み出し、生成するメッセージに付加
し出力する。このメッセージは、宛先ノード番号を「0
x001」、メッセージの種類を「CmpDatS
h」、アドレスを「0x0040030000」、mi
dを「0」、要求元ノード番号を「0x001」、ブロ
ックデータを当該ステップS155で読み出したブロッ
クデータとするメッセージである(ステップS14
5)。このメッセージの出力先は、宛先ノード番号と当
該ノードPE1のノード番号が一致することから、当該
ノードのローカルアクセス制御部25となる。
In the step S155, the addresses “0x0006000” to “0x000600f” of the main memory 30 are set.
The block data of 64 bits × 16 entries = 128 bytes up to the address is read, added to the message to be generated, and output. This message indicates that the destination node number is "0".
x001 ”and the type of message is“ CmpDatS
h ", the address is" 0x0040030000 ", mi
d is “0”, the requesting node number is “0x001”, and the block data is the block data read out in step S155 (step S14).
5). The output destination of this message is the local access control unit 25 of the node, since the destination node number matches the node number of the node PE1.

【0315】以上で、ホームアクセス制御部27は、
「BlkRdSh」メッセージの処理を終了する。
As described above, the home access control unit 27
The processing of the “BlkRdSh” message ends.

【0316】(3)CmpdatShメッセージの処理 上記「CmpDatSh」メッセージ(宛先ノード番号
は「0x001」、メッセージの種類は「CmpDat
Sh」、アドレスは「0x0040030000」、m
idは「0」、要求元ノード番号は「0x001」)を
受けたノードPE1のロー カルアクセス制御部25
は、図10のフローチャートに従い次のように動作す
る。
(3) Processing of CmpdatSh Message The above “CmpDatSh” message (the destination node number is “0x001”, and the message type is “CmpDatSh”
Sh ”, the address is“ 0x0040030000 ”, m
(id is “0” and the requesting node number is “0x001”).
Operates as follows according to the flowchart of FIG.

【0317】まず、ステップS131で、リクエスト管
理テーブル24の「0」(=mid)番エントリの情報
を読み出し、アクセスの種類はロード、アドレスは「0
x0040030000」という情報を得る。以上の処
理を終えると、ステップS132に進む。
First, in step S131, the information of the entry “0” (= mid) of the request management table 24 is read, and the access type is load and the address is “0”.
x0040030000 "is obtained. Upon completion of the above processing, the process advances to step S132.

【0318】ステップS132では、ブロックデータ付
きのメッセージであるからステップS135に進む。
[0318] In step S132, since the message is a message with block data, the flow advances to step S135.

【0319】ステップS153では、キャッシュメモリ
21の「0x06000」番地から「0x0600f」
番地に、メッセージに付加されていたブロックデータを
書き込む。以上の処理を終えると、ステップS136に
進む。
In the step S153, the address “0x0600f” from the address “0x06000” of the cache memory 21 is obtained.
The block data added to the message is written at the address. Upon completion of the above processing, the process advances to step S136.

【0320】ステップS136では、アクセスタイプが
ロードであることからステップS139では、キャッシ
ュメモリ21から「0x06000」番地の64ビット
データを読み出し、プロセッサ20に対してid=
「0」のメモリアクセスに対する応答データとして渡
す。これによりメモリアクセスは完了する。また、リク
エスト管理テーブルの「0」番エントリに有効ビットを
「0」としたデータを書き込み、エントリを削除する。
また、タグメモリの「0x0600」番地の状態および
タグアドレスを、図11のテーブルに従い、それぞれ
「S」および「0x00400」に更新する。
In step S136, since the access type is load, in step S139, 64-bit data of the address "0x06000" is read from the cache memory 21 and id =
It is passed as response data to the memory access of “0”. This completes the memory access. Further, data with the valid bit set to “0” is written to the “0” -th entry of the request management table, and the entry is deleted.
In addition, the state of the address “0x0600” and the tag address of the tag memory are updated to “S” and “0x00400” according to the table of FIG.

【0321】以上でノードPE1のローカルアクセス制
御部25は、受けた「CmpDatSh」メッセージの
処理を終了する。
[0321] Thus, the local access control unit 25 of the node PE1 ends the processing of the received "CmpDatSh" message.

【0322】この段階で「0x0040030000」
〜「0x004003007f」番地までについて、最
新のデータはノードPE1のキャッシュメモリ21およ
び主メモリ30、ノードPE2のキャッシュメモリ21
に存在する状態となる。
At this stage, “0x0040030000”
Up to the address “0x004003007f”, the latest data is stored in the cache memory 21 and the main memory 30 of the node PE1, and the cache memory 21 of the node PE2.
Is present.

【0323】ブロックをノードPE2のキャッシュメモ
リ21からノードPE1の主メモリ30に書き戻すこと
により、既にデータを保持しているノードPE2以外の
ノード(ここではノードPE1)からのロードアクセス
に対して、ノードPE1の主メモリ30から直接データ
を読み出し応答することが出来ている。書き戻しを行わ
なかった場合は、ノードPE1を経由してノードPE2
に対してデータの書き戻しを要求し、書き戻しを受けた
後データを応答することになる。
By writing back the block from the cache memory 21 of the node PE2 to the main memory 30 of the node PE1, a load access from a node other than the node PE2 (here, the node PE1) already holding data can be performed. Data can be read directly from the main memory 30 of the node PE1 and a response can be made. If the write-back is not performed, the node PE2 is passed through the node PE1.
Is requested to write back the data, and the data is returned after receiving the write back.

【0324】これから明らかなように、本発明の第1の
実施例のマルチプロセッサシステムは、ロードアクセス
のレイテンシを短縮する効果がある。
As is apparent from the above, the multiprocessor system according to the first embodiment of the present invention has the effect of reducing the load access latency.

【0325】次に、ノードPE2以外の他のノードがア
ドレス「0x0040030000」を含むブロックに
対してアクセスを行わず、ノードPE2のみがアクセス
を繰り返した場合の動作を説明する。
Next, an operation in the case where a node other than the node PE2 does not access the block including the address "0x0040030000" and only the node PE2 repeatedly accesses the block will be described.

【0326】6. フェーズ5B (1)ストアアクセスの処理 ノードPE2のプロセッサ20が、再びアドレス「0x
0040030020」にid=「1」でストアアクセ
スを行った場合の動作を説明する。
[0326] 6. Phase 5B (1) Processing of Store Access The processor 20 of the node PE2 re-addresses the address “0x”.
The operation when store access is performed with id = “1” in “0040030020” will be described.

【0327】プロセッサ20が行ったメモリアクセスを
受けたローカルアクセス制御部25は、図8(a)のフ
ローチャートに従い次のように動作する。
The local access control unit 25 having received the memory access performed by the processor 20 operates as follows according to the flowchart of FIG.

【0328】まず、ステップS111で、タグメモリ2
2の「0x0600」番地のデータを読み出す。フェー
ズ4において状態は「S」、タグアドレスは「0x00
400」に更新されており、その値が読み出される。ア
クセスの種類はストアであり、タグアドレスは「0x0
0400」で一致、状態は「S」であるため、図8
(b)のテーブルに従い処理タイプは「AA」、出力す
るメッセージの種類は「Upgrade」、ブロックの
次状態は「S」に決定する。以上の処理を終えると、ス
テップS112に進む。
First, in step S111, the tag memory 2
2, the data at the address "0x0600" is read. In phase 4, the state is “S” and the tag address is “0x00”.
400 ", and its value is read. The access type is store, and the tag address is "0x0
0400 "and the state is" S ".
According to the table of (b), the processing type is determined to be "AA", the type of message to be output is determined to be "Upgrade", and the next state of the block is determined to be "S". Upon completion of the above processing, the process advances to step S112.

【0329】ステップS112では、処理タイプが「A
A」であることからステップS113に進む。
At step S112, if the processing type is "A
A ”, the flow proceeds to step S113.

【0330】ステップS113では、メッセージの生成
出力およびリクエスト管理テーブル24への登録を行
う。生成出力するメッセージの、宛先ノード番号は「0
x001」(アドレス「0x0040030020」の
第39ビット〜第30ビットの10ビット)、メッセー
ジの種類は「Upgrade」、アドレスは「0x00
40030020」、midは「1」、要求元ノード番
号は「0x002」となる。また、宛先ノード番号と当
該ノードPE2のノード番号が異なるので、出力先はメ
ッセージ送信部35となる。また、この時リクエスト管
理テーブル24の「1」(=id)番エントリに、有効
ビットは「1」、アクセスの種類はストア、アドレスは
「0x0040030020」、およびストアデータを
書き込む。以上の処理を終えると、ステップS118に
進む。
[0330] In step S113, a message is generated and output and registered in the request management table 24. The destination node number of the message to be generated and output is "0
x001 ”(10 bits from the 39th bit to the 30th bit of the address“ 0x0040030020 ”), the message type is“ Upgrade ”, and the address is“ 0x00 ”.
40030020 ", the mid is" 1 ", and the requesting node number is" 0x002 ". Since the destination node number and the node number of the node PE2 are different, the output destination is the message transmitting unit 35. At this time, the valid bit is "1", the access type is store, the address is "0x0040030020", and the store data are written in the "1" (= id) number entry of the request management table 24. Upon completion of the above processing, the process advances to step S118.

【0331】ステップS118では、タグメモリの「0
x0600」番地のエントリのデータを、状態は「S」
に、タグアドレスは「0x00400」(アドレス「0
x0040030020」の第39ビット〜第20ビッ
トの20ビット)に更新する。
At step S118, "0" in the tag memory
The data of the entry at the address “x0600” and the state is “S”
The tag address is “0x00400” (address “0
x0040030020 "(20 bits from the 39th bit to the 20th bit).

【0332】以上で、ノードPE2のローカルアクセス
制御部25はストアアクセスの処理を終了する。
With the above, the local access control unit 25 of the node PE2 ends the store access processing.

【0333】(2)Upgradeメッセージの処理 上記「Upgrade」メッセージは、ノードPE2の
メッセージ送信部35、相互結合網10、ノードPE1
のメッセージ受信部36を介してノードPE1のホーム
アクセス制御部27に送られる。
(2) Processing of Upgrade Message The above “Upgrade” message is sent to the message transmission unit 35 of the node PE2, the interconnection network 10, and the node PE1.
Is sent to the home access control unit 27 of the node PE1 via the message receiving unit 36 of

【0334】上記「Upgrade」メッセージ(宛先
ノード番号は「0x001」、メッセージの種類は「U
pgrade」、アドレスは「0x004003002
0」、midは「1」、要求元ノード番号は「0x00
2」)を受けたノードPE1のホームアクセス制御部2
7は次のように動作する。
The above "Upgrade" message (the destination node number is "0x001", and the message type is "U
pgrade "and the address is" 0x0040030002 "
0, mid is “1”, and the requesting node number is “0x00”
2 "), the home access control unit 2 of the node PE1
7 operates as follows.

【0335】まず、ステップS151で、ディレクトリ
メモリ31の「0x000600」(メッセージに付加
されていたアドレス「0x0040030020」の第
28ビット〜第7ビットの22ビット)番地をアクセス
し、状態等のデータを読み出す。フェーズ4において、
状態、保持ノード情報、保持形式、書き戻し回数はそれ
ぞれ 「C」、「0x002」、「01」(ポインタ形
式)、「1」に更新されてお り、その値が読み出され
る。受けたメッセージの種類が「Upgrade」で
あり、読み出した状態が「C」であり、保持形式はポイ
ンタ形式で保持ノード 情報が「0x002」でアンキ
ャッシュドであり、書き戻し回数と閾値「1」 が一致
することから、図12(b)のテーブルに従い処理タイ
プは「CA」、ブロックの次状態は「M」、保持ノード
操作は「none」、書き戻し更新回数はそのまま、出
力するメッセージの種類は「CmpEx」に決定する。
以上の処理を終えると、ステップS152に進む。
First, in step S151, the address “0x000600” (22 bits of the 28th to 7th bits of the address “0x0040030020” added to the message) in the directory memory 31 is accessed, and data such as the state is read. . In Phase 4,
The status, the holding node information, the holding format, and the number of times of rewriting have been updated to “C”, “0x002”, “01” (pointer format), and “1”, respectively, and the values are read. The type of message I received was "Upgrade"
Since the read state is “C”, the holding format is the pointer format, the holding node information is “0x002”, the cache is uncached, and the number of write-backs matches the threshold “1”. ), The processing type is “CA”, the next state of the block is “M”, the holding node operation is “none”, the number of write-back updates is unchanged, and the type of message to be output is determined to be “CmpEx”.
Upon completion of the above processing, the process advances to step S152.

【0336】ステップS152では、これらの情報を元
に、ディレクトリメモリ31の「0x000600」番
地のデータを、状態は「M」、保持ノード情報は「0x
002」、保持形式 は「01」(ポインタ形式)、書
き戻し回数は「1」に更新する。また、処理しているメ
ッセージがブロックデータ付きのメッセージでないこと
から主メモリ30への書き込みは行わない。以上の処理
を終えると、ステップS153に進む。
In step S152, based on these information, the data at the address “0x000600” of the directory memory 31 is stored in the state “M” and the holding node information is “0x000600”.
002 ”, the holding format is“ 01 ”(pointer format), and the number of write-backs is updated to“ 1 ”. Since the message being processed is not a message with block data, writing to the main memory 30 is not performed. Upon completion of the above processing, the process advances to step S153.

【0337】ステップS153では、処理タイプが「C
A」であることからステップS154に進む。
In the step S153, the processing type is “C
A ”, the flow proceeds to step S154.

【0338】ステップS154では、「CmpEx」メ
ッセージを生成する。この「CmpEx」メッセージ
は、宛先ノード番号を「0x002」、メッセージの種
類を「CmpEx」、アドレスを「0x0040030
020」、midを「1」、要求元ノード番号を「0x
002」とするものである(ステップS144)。この
メッセージの出力先は、宛先ノード番号「0x002」
と当該ノードPE1のノード番号「0x001」が一致
しないことから、メッセージ送信部35となる。以上
で、ノードPE1のホームアクセス制御部27は、「U
pgrade」メッセージの処理を終了する。
In step S154, a “CmpEx” message is generated. The “CmpEx” message has a destination node number of “0x002”, a message type of “CmpEx”, and an address of “0x0040030”.
020 ", mid is" 1 ", and the requesting node number is" 0x
002 ”(step S144). The output destination of this message is the destination node number “0x002”
And the node number “0x001” of the node PE1 does not match. As described above, the home access control unit 27 of the node PE1
The processing of the “pgrade” message ends.

【0339】(3)CmpExメッセージの処理 上記「CmpEx」メッセージは、ノードPE1のメッ
セージ送信部35、相互結合網10、ノードPE2のメ
ッセージ受信部36を介して、ノードPE2のローカル
アクセス制御部25に出力される。
(3) Processing of CmpEx Message The “CmpEx” message is sent to the local access control unit 25 of the node PE2 via the message transmitting unit 35 of the node PE1, the interconnection network 10, and the message receiving unit 36 of the node PE2. Is output.

【0340】上記「CmpEx」メッセージ(宛先ノー
ド番号は「0x002」、メッセージの種類は「Cmp
Ex」、アドレスは「0x0040030020」、m
idは「1」、要求元ノード番号は「0x002」)を
受けたノードPE2のローカルアクセス制御部25は、
図10のフローチャートに従い次のように動作する。ま
ず、ステップS131で、リクエスト管理テーブル24
の1(=mid)番エントリの情報を読み出し、アクセ
スの種類はストア、アドレスは「0x00400300
20」、およびストアデータを得る。以上の処理を終え
ると、ステップS132に進む。
The above “CmpEx” message (the destination node number is “0x002” and the message type is “CmpEx”
Ex ”, address is“ 0x0040030020 ”, m
The local access control unit 25 of the node PE2 receiving the id “1” and the request source node number “0x002”)
The operation is performed as follows according to the flowchart of FIG. First, in step S131, the request management table 24
The information of the entry 1 (= mid) is read, the type of access is store, and the address is “0x00400300”.
20 ", and store data. Upon completion of the above processing, the process advances to step S132.

【0341】ステップS132では、ブロックデータ付
きのメッセージではないのでステップS133に進む。
In step S132, since the message is not a message with block data, the flow advances to step S133.

【0342】ステップS133では、NCmpメッセー
ジでもないのでステップS137に進む。
In step S133, since the message is not an NCmp message, the flow advances to step S137.

【0343】ステップS137では、キャッシュメモリ
21の「0x06004」(アドレス「0x00400
30020」の第19ビットから第3ビットまでの17
ビット)番地のデータ64ビットを、リクエスト管理テ
ーブル24から得たストアデータに更新する処理を行
う。また、リクエスト管理テーブルの「1」(=mi
d)番エントリに有効ビットを「0」としたデータを書
き込み、エントリを削除する。また、タグメモリ22の
「0x0600」番地のデータを、図11(b)のテー
ブルに従い状態は「D」、タグアドレスは「0x004
00」(リクエスト管理テーブル24から得たアドレス
「0x0040030020」の第39ビット〜第20
ビットの20ビット)に更新 する。また、プロセッサ
へmidを出力し、id=「1」のメモリアクセスが完
了した旨を通知する。以上の処理を終えると、ステップ
S138に進む。
In the step S137, “0x06004” of the cache memory 21 (address “0x00400”
17 from the 19th bit to the 3rd bit of “30020”
A process is performed to update the 64-bit data of the address (bit) to the store data obtained from the request management table 24. Also, “1” (= mi) in the request management table
d) Write data with the valid bit set to "0" in the number entry and delete the entry. Further, the data at the address “0x0600” of the tag memory 22 is stored in the state “D” according to the table of FIG. 11B and the tag address is “0x004”.
00 ”(bits 39 to 20 of the address“ 0x0040030020 ”obtained from the request management table 24)
20 bits). Also, it outputs mid to the processor and notifies that the memory access of id = "1" has been completed. Upon completion of the above processing, the process advances to step S138.

【0344】ステップS138において受けたメッセー
ジは「CmpSh」でも「CmpDatSh」でもな
い。
The message received in step S138 is neither "CmpSh" nor "CmpDatSh".

【0345】以上でノードPE2のローカルアクセス制
御部25は受けた「CmpEx」メッセージの処理を終
了する。
Thus, the local access control unit 25 of the node PE2 ends the processing of the received “CmpEx” message.

【0346】この段階で「0x0040030000」
〜「0x004003007f」番地までについて、最
新のデータはノードPE2のキャッシュメモリ21にの
み存在する状態になる。
At this stage, “0x0040030000”
Up to the address “0x40003007f”, the latest data is in a state where it exists only in the cache memory 21 of the node PE2.

【0347】このように閾値を「1」に設定した場合、
同じノードPEi(ここではノードPE2)からの書き
戻しを1回受けてから次にノードPE2で書き込みが発
生するまでの間に他のノードからのアクセスがない場合
は、ノードPE1の主メモリ30にデータを書きもどす
のをやめ書き戻しブロックの対象から外している。
When the threshold value is set to “1”,
If there is no access from another node between receiving the write-back from the same node PEi (here, the node PE2) once and writing to the next node PE2, the main memory 30 of the node PE1 Data has not been rewritten and has been removed from the target block.

【0348】また、閾値の設定により、何回書き戻しを
受けたら書き戻しブロックの対象から外すかどうかを変
更することができる。
Also, by setting the threshold value, it is possible to change how many times the write-back is received and whether the write-back block is excluded from the target.

【0349】以上のように、本実施例によれば、主メモ
リ30への不要な書き戻しが発生するのを防ぐことがで
きる。
As described above, according to the present embodiment, it is possible to prevent unnecessary writing back to the main memory 30 from occurring.

【0350】本発明は、上記の第1の実施の形態で説明
したものに限定されるものではなく、種々の変形が可能
である。
The present invention is not limited to what has been described in the first embodiment, and various modifications are possible.

【0351】次に、本発明の第2の実施例について説明
する。
Next, a second embodiment of the present invention will be described.

【0352】図14は、本発明の第2の実施例に係わる
疎結合型マルチプロセッサシステム1’の構成を示すブ
ロック図である。
FIG. 14 is a block diagram showing the configuration of a loosely-coupled multiprocessor system 1 'according to the second embodiment of the present invention.

【0353】本実施例は、ディレクトリメモリ31を持
たない マルチプロセッサシステムを構成することも可
能にしたものである。この場合は、ディレクトリメモリ
31に格納されていた情報は、主メモリ30のある領域
(ディレクトリ領域)に格納すればよい。ホームアクセ
ス制御部27がディレクトリメモリ31に対して行って
いたアクセスは、主メモリ30のディレクトリ領域をア
クセスすることで実現される。
In this embodiment, a multiprocessor system having no directory memory 31 can be constructed. In this case, the information stored in the directory memory 31 may be stored in a certain area (directory area) of the main memory 30. The access performed by the home access control unit 27 to the directory memory 31 is realized by accessing the directory area of the main memory 30.

【0354】これ以外の構成は図1に示した第1の実施
例と同様であるため、図1と同じ符号を付して示す。
Since the remaining structure is the same as that of the first embodiment shown in FIG. 1, the same reference numerals as those in FIG. 1 are used.

【0355】第1、第2の実施例におけるメッセージ
は、ノードPEi間での処 理要求および応答を的確に
伝えられるものであれば、その種類および構成を様々に
変形することが可能である。また、特に同一ノード間で
の要求(アクセス要求など)については、メッセージの
形態をとらずに、ノード内に設けられた信号線を介して
所定の信号を送ることで、その要求を伝える構成として
もよい。
The types and structures of the messages in the first and second embodiments can be modified in various ways as long as the messages can correctly transmit the processing request and response between the nodes PEi. In particular, for a request (access request, etc.) between the same nodes, a predetermined signal is transmitted via a signal line provided in the node without taking the form of a message, and the request is transmitted. Is also good.

【0356】なお、上記の第1、第2の実施例におい
て、一貫性維持制御部16に含まれるロー カルアクセ
ス制御部25、ホームアクセス制御部27の各機能は、
それぞれ次 のいずれかによって実現してもよい。
In the first and second embodiments, the functions of the local access control unit 25 and home access control unit 27 included in the consistency maintenance control unit 16 are as follows.
Each may be realized by any of the following.

【0357】(a)プロセッサ20による主メモリ30
に格納された処理プログラム(あるいいは、命令キャッ
シュに記憶されたプログラム)の実行。
(A) Main memory 30 by processor 20
Execution of the processing program stored in the instruction cache (or the program stored in the instruction cache).

【0358】(b)プロセッサ20および主メモリ30
(あるいは命令キャッシュ)とは別個 に設けられた、
専用のサブプロセッサによる専用のメモリに格納された
処理プ ログラムの実行。
(B) Processor 20 and main memory 30
(Or instruction cache)
Execution of a processing program stored in a dedicated memory by a dedicated subprocessor.

【0359】(c)それぞれのモジュールの機能を実現
するためのロジックに従って構成された専用のハードウ
ェア。
(C) Dedicated hardware configured according to logic for realizing the function of each module.

【0360】上記の第1、第2の実施例で示したマルチ
プロセッサシステムは、1つの相互結合網10を介して
互いに接続された1024個のノードPE0〜PE10
23によって構成されていた。しかしながら、本実施例
においては、ノード数は任意である。また、相互結合網
が複数ある、冗長性のある構成となっていてもよい。こ
の場合は、複数の相互結合網は、システムの障害対策の
ために用いることができる。
The multiprocessor system shown in the first and second embodiments has 1024 nodes PE0 to PE10 connected to each other via one interconnection network 10.
23. However, in this embodiment, the number of nodes is arbitrary. Further, a redundant configuration having a plurality of interconnection networks may be adopted. In this case, the plurality of interconnected networks can be used for system failure countermeasures.

【0361】以上のように、本実施例によれば、装置構
成を簡略化するだけでなく、それと同時に主メモリ30
への不要な書き戻しが発生するのを防ぐことができる。
As described above, according to this embodiment, not only can the device configuration be simplified, but at the same time, the main memory 30
Unnecessary writing back to the server can be prevented.

【0362】以上本発明の実施の形態を述べたが、本発
明は上記の実施の形態に限定されることなく、数々の変
形が可能であることはいうまでもない。
Although the embodiments of the present invention have been described above, it is needless to say that the present invention is not limited to the above embodiments, and that various modifications are possible.

【0363】[0363]

【発明の効果】以上説明したように、本発明によれば、
以下のような顕著な効果を奏する。
As described above, according to the present invention,
The following remarkable effects are obtained.

【0364】(1)共有しているブロックに対してプロ
セッサが書き込みを行うと、当該ノードのキャッシュメ
モリを専有する状態になる。このようなブロックは、当
該ノードの書き戻しブロック選択手段およびローカルア
クセス制御部が働き、主メモリに書き戻される。この機
能により、他のノードのプロセッサが当該ブロックにロ
ードアクセスしたときに、専有していたノードのキャッ
シュメモリからでなく、主メモリからブロックを読み出
すことができるため、ロードアクセスのレイテンシを短
縮できる。
(1) When the processor writes data to the shared block, the cache memory of the node is occupied. Such a block is written back to the main memory by the write-back block selecting means and the local access control unit of the node. With this function, when a processor of another node performs load access to the block, the block can be read from the main memory instead of the cache memory of the occupied node, so that the load access latency can be reduced.

【0365】(2)共有しているかいないかを示す情報
をディレクトリメモリに持たせる。その情報をもとに、
書き込み要求を受けたホームアクセス制御部が要求を出
したノードに送信する応答メッセージに、共有していた
かいなかったかの情報を持たせる。その応答メッセージ
を受けたローカルアクセス制御部は、共有していたかい
なかったかにより、書き戻しブロック選択手段が選択す
る書き戻しを行うブロックの対象とするかしないかを決
める。以上の機能により、共有していないブロックに関
しては書き戻しを行わないようにできる。
(2) The directory memory has information indicating whether it is shared or not. Based on that information,
A response message transmitted by the home access control unit that has received the write request to the node that has issued the request has information indicating whether or not the request was shared. The local access control unit that has received the response message determines whether or not to be the target of the block for performing write-back selected by the write-back block selecting means, depending on whether or not the block has been shared. With the above function, it is possible to prevent the writing back from being performed on the blocks that are not shared.

【0366】(3)ディレクトリメモリに、書き戻しを
受けた回数、共有していることを示す状態であっても実
際にブロックを保持するノードが一つの場合はそのノー
ドを特定することができる情報を持たせる。また、ホー
ムアクセス制御部に書き戻しを何回まで許容するかを決
める閾値を持たせる。これらの情報をもとに、書き込み
の要求を受けたホームアクセス制御部が、当該ブロック
の状態が共有していることを示していても、要求を出し
たノードのみがブロックを保持している状態でかつ閾値
と書き戻しを受けた回数が一致する場合は、応答メッセ
ージに共有していない旨の情報を持たせ、書き戻しブロ
ック選択手段の対象から外す。以上の機能により、共有
していたブロックが時間の経過とともに共有されなくな
ったことを検出し、無駄な書き戻しが行われるのを防
ぎ、書き戻しによりメッセージが増加するのを防ぐこと
ができる。
(3) In the directory memory, if the number of times of rewriting has been received and the number of nodes actually holding the block is one even if the node indicates that the block is shared, information that can specify that node To have. Also, the home access control unit is provided with a threshold value that determines how many times the write back is allowed. Based on this information, even if the home access control unit that received the write request indicates that the state of the block is shared, only the node that issued the request holds the block. If the threshold value and the number of times of rewriting are the same, the response message is provided with information indicating that it is not shared, and is excluded from the target of the rewriting block selecting means. With the above function, it is possible to detect that the shared block is no longer shared with the passage of time, to prevent useless writing back, and to prevent an increase in messages due to writing back.

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

【図1】本発明の第1の実施例に係わる疎結合型のマル
チプロセッサシステムの構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a loosely-coupled multiprocessor system according to a first embodiment of the present invention.

【図2】図1に示したノードの内部構成を示すブロック
図である。
FIG. 2 is a block diagram showing an internal configuration of a node shown in FIG.

【図3】(a)は、メモリアクセスが行われたノードか
ら主メモリにデータを保持するノードへ送信される要求
メッセージを示す図であり、(b)は、主メモリにデー
タを保持するノードから当該データのコピーをキャッシ
ュメモリに保持するノードへ送信される要求メッセージ
を示す図であり、(c)は、データのコピーをキャッシ
ュッメモリに保持するノードから主メモリにデータを保
持するノードへ送信される報告メッセージを示す図であ
り、(d)は、主メモリにデータを保持するノードから
メモリアクセスが行われたノードへ送信されるメモリア
クセス完了メッセージを示す図である。
3A is a diagram illustrating a request message transmitted from a node that has performed a memory access to a node that holds data in a main memory, and FIG. 3B is a diagram illustrating a node that holds data in a main memory. FIG. 7C is a diagram showing a request message transmitted from a node that holds a copy of the data in the cache memory to a node that holds a copy of the data in the cache memory from the node that holds the copy of the data in the cache memory. It is a figure which shows the report message transmitted, and (d) is a figure which shows the memory access completion message transmitted to the node which performed memory access from the node which holds data in the main memory.

【図4】書き戻しブロック制御手段の内部構成を示す図
である。。
FIG. 4 is a diagram showing an internal configuration of a write-back block control unit. .

【図5】(a)は、ブロックデータ付メッセージの構成
を示すであり、(b)は、基本メッセージの構成を示す
図である。
5A is a diagram illustrating a configuration of a message with block data, and FIG. 5B is a diagram illustrating a configuration of a basic message.

【図6】ディレクトリメモリとタグメモリおよびこのメ
モリブロックの状態を示す図である。
FIG. 6 is a diagram showing a state of a directory memory, a tag memory, and the memory block.

【図7】本実施例のノードとその構成要素である主メモ
リおよびキャッシュメモリの状態遷移を示す図である。
FIG. 7 is a diagram showing a state transition of a node according to the present embodiment and its constituent elements, a main memory and a cache memory.

【図8】(a)は、プロセッサが出力するメモリアクセ
スを受けて、ローカルアクセス制御部が実行する処理を
示すフローチャートであり、(b)は、(a)の処理に
おける処理タイプ、メッセージの種類、ブロックの次状
態等の関係を示すテーブルである
FIG. 8A is a flowchart illustrating a process executed by a local access control unit in response to a memory access output by a processor, and FIG. 8B is a flowchart illustrating a process type and a message type in the process of FIG. , A table showing the relationship of the next state of the block, etc.

【図9】(a)は、ホームアクセス制御部あるいはメッ
セージ受信部が出力するメッセージのうち、IntvS
h,IntvEx,Upgradeの3種類のメッセー
ジを受けた場合に、ローカルアクセス制御部が実行する
処理を示すフローチャートであり、(b)は、(a)の
処理における処理タイプ、メッセージの種類、ブロック
の次状態等の関係を示すテーブルである。
FIG. 9A is a diagram showing IntvS out of messages output by the home access control unit or the message receiving unit;
9 is a flowchart showing processing executed by the local access control unit when three types of messages, h, IntvEx, and Upgrade, are received. (b) is a processing type, a message type, and a block type in the processing of (a). It is a table which shows the relationship of the next state etc.

【図10】ホームアクセス制御部あるいはメッセージ受
信部が出力するメッセージのうち、CmpDatSh,
CmpDatEx,CmpSh,CmpEx,NCmp
の5種類のメッセー ジを受けた場合に、ローカルアク
セス制御部が実行する処理を示すフローチャートであ
る。
FIG. 10 shows messages output by the home access control unit or the message receiving unit, CmpDatSh,
CmpDatEx, CmpSh, CmpEx, NCmp
10 is a flowchart illustrating a process executed by the local access control unit when the five types of messages are received.

【図11】(a)は、ホームアクセス制御部あるいはメ
ッセージ受信部が出力するメッセージのうち、CmpD
atSh,CmpDatEx,CmpSh,CmpE
x,NCmpの5種類のメッセー ジを受けた場合に、
ローカルアクセス制御部が実行する処理を示すフロー
チャートであり、(b)は、図10および図11(a)
の処理における処理タイプ、メッセージの種類、ブロッ
クの次状態等の関係を示すテーブルである。
FIG. 11 (a) shows a message output from the home access control unit or the message receiving unit, wherein CmpD
atSh, CmpDatEx, CmpSh, CmpE
If you receive five types of messages, x and NCmp,
Flow showing processing executed by local access control unit
FIG. 10B is a chart, and FIG. 10B and FIG.
3 is a table showing the relationship between the processing type, the type of message, the next state of the block, and the like in the processing of FIG.

【図12】(a)は、ホームアクセス制御部が実行する
処理を示すフローチャートであり、(b)は、(a)の
処理における処理タイプ、メッセージの種類、ブロック
の次状態等の関係を示すテーブルである。
12A is a flowchart illustrating a process executed by a home access control unit, and FIG. 12B illustrates a relationship between a process type, a message type, a next state of a block, and the like in the process of FIG. It is a table.

【図13】図12(a)のフローチャートの処理で用い
られる、受けたメッセージの種類、ディレクトリメモリ
読み出したブロックの状態、保持形式および保持ノード
情報から求めるアンキャッシュド情報、書き戻し回数と
閾値が一致するかどうかの4つの情報と、ディレクトリ
メモリに格納するブロックの状態、保持ノード情報に対
する操作、書き戻し回数に対する操作、処理タイプ、メ
ッセージの種類を示すテーブルである。
FIG. 13 is a flowchart showing the process of the flowchart of FIG. 12 (a). 4 is a table showing four pieces of information indicating whether or not they match, a state of a block stored in a directory memory, an operation on holding node information, an operation on the number of times of writing back, a processing type, and a message type.

【図14】本発明の第2の実施例に係わる疎結合型マル
チプロセッサシステムの構成を示すブロック図である。
FIG. 14 is a block diagram showing a configuration of a loosely coupled multiprocessor system according to a second embodiment of the present invention.

【図15】従来のマルチプロセッサシステムの構成を示
すブロック図である。
FIG. 15 is a block diagram showing a configuration of a conventional multiprocessor system.

【図16】(a)は、複数のノードの主メモリにデータ
のコピーが存在する状態を示す図であり、(b)は、1
つのノードの主メモリにのみデータのコピーが存在する
状態を示す図である。
FIG. 16A is a diagram illustrating a state in which data copies exist in main memories of a plurality of nodes, and FIG.
FIG. 14 is a diagram illustrating a state in which a copy of data exists only in the main memory of one node.

【図17】(a)は、複数のノードのキャッシュメモリ
に一貫性が維持された有効なデータが存在しない状態を
示す図であり、(b)は、データの有効なコピーが存在
し、かつ他のノードのキャッシュメモリにも有効なデー
タが存在する可能性のある状態を示す図であり、(c)
は、データの有効なコピーが1つのノードにだけ存在
し、他のノードのキャッシュメモリには有効なコピーが
存在せず、かつ主メモリのデータとキャッシュメモリの
データが異なる状態を示す図である。
FIG. 17A is a diagram illustrating a state where valid data in which consistency is maintained does not exist in cache memories of a plurality of nodes; FIG. 17B illustrates a state where a valid copy of data exists and FIG. 9C is a diagram illustrating a state in which valid data may possibly exist in the cache memory of another node; FIG.
Is a diagram showing a state in which a valid copy of data exists only in one node, no valid copy exists in the cache memory of another node, and the data of the main memory and the data of the cache memory are different. .

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

PE0〜PEn−1,PE0’〜PEn−1’ ノード 10 相互結合網 16 一貫性維持制御部 20 プロセッサ 21,42 キャッシュメモリ 22 タグメモリ 24 リクエスト管理テーブル 25 ローカルアクセス制御部 26 書き戻しブロック選択手段 27 ホームアクセス制御部 30,41 主メモリ 31 ディレクトリメモリ 35 メッセージ送信部 36 メッセージ受信部 40 ノードPEi 55 一貫性制御部 110 アドレス登録手段 111 アドレス保持手段 112 書き戻し要求手段 113 アドレス削除手段1 PE0-PEn-1, PE0'-PEn-1 'node 10 interconnection network 16 consistency maintenance control unit 20 processor 21, 42 cache memory 22 tag memory 24 request management table 25 local access control unit 26 write-back block selection means 27 Home access control unit 30, 41 Main memory 31 Directory memory 35 Message transmission unit 36 Message reception unit 40 Node PEi 55 Consistency control unit 110 Address registration unit 111 Address holding unit 112 Write-back request unit 113 Address deletion unit 1

Claims (11)

【特許請求の範囲】[Claims] 【請求項1】 相互結合網を介して互いに接続された複
数のノードから構成される マルチプロセッサシステム
であって、 前記複数のノードはそれぞれデータが格納される主メモ
リと、 前記複数のノードのいずれかが備える主メモリに格納さ
れているデータの一部が記憶される、前記主メモリより
も高速アクセスが可能なキャッシュメモリと、 データのアクセス要求を発行するプロセッサと、 前記主メモリのデータがシステム内でどういう状態にあ
るのか管理し、前記キャッシュメモリにあるデータのコ
ピーの状態を管理し、前記プロセッサが所定のアドレス
のデータに対してロードおよびストアアクセスを行った
とき、メモリアクセスに応じてノードPEi間でメッセ
ージをやり取りし、それらの状態を変更したりデータの
転送を行う機能を有する一貫性維持制御部と、を有し、
前記一貫性維持制御部は、 前記キャッシュメモリに記憶されているデータの状態が
記憶されるタグメモリと、 前記主メモリに記憶されているデータの状態が記憶され
るディレクトリメモリと、 前記プロセッサからのアクセス要求、前記複数のノード
が備えるホームアクセス制御部が発行する要求や応答を
受け、前記キャッシュメモリやタグメモリに対しては一
貫性維持のために必要な処理を行い、前記プロセッサに
対してはアクセス要求に対する応答を行うローカルアク
セス制御部と、 前記複数のノードが備える前記ローカルアクセス制御部
が発行する要求や応答を受けて、前記主メモリやディレ
クトリメモリに対して一貫性維持のために必要な処理を
行い、前記ローカルアクセス制御部に要求や応答を発行
するホームアクセス制御部と、 前記プロセッサが同時に発行可能なメモリアクセスの最
大数に対応するエントリを有するリクエスト管理テーブ
ルと、 共有しているブロックに対して書き込みを行い前記キャ
ッシュメモリに専有することになったブロックを記憶す
る書き戻しブロック選択手段と、を具備することを特徴
とするマルチプロセッサシステム。
1. A multiprocessor system comprising a plurality of nodes connected to each other via an interconnection network, wherein each of the plurality of nodes includes a main memory for storing data, and any one of the plurality of nodes. A cache memory in which a part of data stored in a main memory included in the cache memory is stored and which can be accessed at a higher speed than the main memory; a processor that issues a data access request; Within the cache memory, manages the copy state of the data in the cache memory, and when the processor performs load and store access to the data at a predetermined address, the node according to the memory access. A function to exchange messages between PEi, change their status, and transfer data Has a coherence maintenance control unit having, a,
A tag memory in which a state of data stored in the cache memory is stored; a directory memory in which a state of data stored in the main memory is stored; An access request, a request or a response issued by a home access control unit included in the plurality of nodes is received, and a process necessary for maintaining consistency is performed on the cache memory and the tag memory. A local access control unit that responds to an access request; and a request or response issued by the local access control unit included in the plurality of nodes. A home access control unit that performs processing and issues a request or response to the local access control unit; A request management table having an entry corresponding to the maximum number of memory accesses that can be issued simultaneously by the processor; and a write-back that writes to a shared block and stores the block occupied by the cache memory. A multiprocessor system comprising: a block selecting unit.
【請求項2】 請求項1に記載のマルチプロセッサシス
テムにおいて、 前記書き戻しブロック選択手段は、前記ローカルアクセ
ス手段が指定するアドレスを登録するアドレス登録手段
と、 前記アドレス登録手段により登録されたアドレスを複数
保持するアドレス保持手段と、 前記アドレス保持手段に格納された複数のアドレスから
一つを選択して前記ローカルアクセス制御部に出力し、
データの書き戻しを要求する書き戻し要求手段と、 前記ローカルアクセス制御部の指示に従い、前記書き戻
し要求手段が選択しているエントリを削除するアドレス
削除手段と、を具備することを特徴とするマルチプロセ
ッサシステム。
2. The multiprocessor system according to claim 1, wherein said write-back block selecting means registers an address specified by said local access means, and an address registered by said address registering means. Address holding means for holding a plurality of addresses, selecting one from a plurality of addresses stored in the address holding means and outputting the selected address to the local access control unit,
A multi-function device comprising: a write-back request unit for requesting data write-back; and an address deletion unit for deleting an entry selected by the write-back request unit in accordance with an instruction from the local access control unit. Processor system.
【請求項3】 請求項1に記載のマルチプロセッサシス
テムにおいて、 前記ローカルアクセス制御部は、前記書き戻しブロック
選択手段に記憶されたブロックを前記キャッシュメモリ
から読み出し、データに書き戻し要求を前記ホームアク
セス制御部に発行し、前記ローカルアクセス制御部が発
行するデータの書き戻し要求を受けて前記主メモリにデ
ータを書き戻すことを特徴とするマルチプロセッサシス
テム。
3. The multiprocessor system according to claim 1, wherein said local access control unit reads a block stored in said write-back block selecting means from said cache memory and issues a write-back request to data to said home access. A multiprocessor system which issues the data to the main memory in response to a data writeback request issued to the control unit and issued by the local access control unit.
【請求項4】 請求項3に記載のマルチプロセッサシス
テムにおいて、 前記ローカルアクセス制御部は、前記プロセッサへのデ
ータの書き込み要求アクセスを受けて書き込み要求を前
記ホームアクセス制御部に発行し、該書き込み要求を受
けて、データを複数のノードが共有しているかどうかを
示す前記ディレクトリメモリに保持されているデータの
状態からデータが共有状態にあるのかどうかを判断し、
その判断結果を前記ローカルアクセス制御部に発行する
応答に付加して該ローカルアクセス制御部に応答を返
し、その応答を受け前記ローカルアクセス制御部が前記
複数のノードが共有状態にあるのかどうかの情報を元
に、前記書き戻しブロック選択手段にブロックへの登録
の有無を決定することを特徴とするマルチプロセッサシ
ステム。
4. The multiprocessor system according to claim 3, wherein the local access control unit receives a data write request access to the processor, issues a write request to the home access control unit, and issues the write request. Receiving, from the state of the data held in the directory memory indicating whether the data is shared by a plurality of nodes, determine whether the data is in a shared state,
The determination result is added to a response issued to the local access control unit, a response is returned to the local access control unit, and the local access control unit receives the response and determines whether the plurality of nodes are in a shared state. A multi-processor system which determines whether or not there is registration in the block in the write-back block selecting means based on the following.
【請求項5】 請求項4に記載のマルチプロセッサシス
テムにおいて、 前記ホームアクセス制御部は、許容する書き戻し回数を
制限する閾値を有し、前記ローカルアクセス制御部から
書き込み要求を受けたときに、それらの情報を元に実際
にブロックを共有しているかどうかを判断することを特
徴とするマルチプロセッサシステム。
5. The multiprocessor system according to claim 4, wherein the home access control unit has a threshold value for limiting the number of times of write-back permitted, and when receiving a write request from the local access control unit, A multiprocessor system characterized by determining whether a block is actually shared based on the information.
【請求項6】 請求項5に記載のマルチプロセッサシス
テムにおいて、 前記ホームアクセス制御部は、許容する書き戻し回数を
制限する閾値を有し、前記ローカルアクセス制御部から
書き込み要求を受けたときに、前記閾値と前記ディレク
トリメモリに保持されている情報を元に実際にブロック
が共有状態にあるかどうかを判断することを特徴とする
マルチプロセッサシステム。
6. The multiprocessor system according to claim 5, wherein the home access control unit has a threshold for limiting a permitted number of times of write-back, and receives a write request from the local access control unit. A multiprocessor system, which determines whether or not a block is actually in a shared state based on the threshold value and information held in the directory memory.
【請求項7】 請求項6に記載のマルチプロセッサシス
テムにおいて、 前記ディレクトリメモリは、書き戻しを受けた回数およ
びデータが共有状態にあっても実際にブロックを保持す
るノードが一つの場合は そのノードを特定することが
できる情報を有していることを特徴とするマルチプロセ
ッサシステム。
7. The multiprocessor system according to claim 6, wherein the directory memory includes a node that actually holds a block even if the number of times of writing back and the data are in a shared state are one node. A multiprocessor system characterized by having information capable of identifying a multiprocessor.
【請求項8】 相互結合網を介して互いに接続された複
数のノードから構成される マルチプロセッサシステム
であって、前記複数のノードはそれぞれ、データが格納
される主メモリと、 前記複数のノードのいずれかが備える主メモリに格納さ
れているデータの一部が記憶される、前記主メモリより
も高速アクセスが可能な キャッシュメモリと、 データのアクセス要求を発行するプロセッサと、 前記主メモリ内のデータがシステム内でどういう状態に
あるのか判断し、前記キャッシュメモリにあるデータの
コピーの状態を管理し、前記プロセッサが所定のアドレ
スのデータに対してロードおよびストアアクセスを行っ
たとき、メモリアクセスに応じて、ノードPEi間でメ
ッセージをやり取りし、それらの状態を変更したりデー
タの転送を行う機能を有する一貫性維持制御部と、を有
し、前記一貫性維持制御部は、 前記キャッシュメモリに記憶されているデータの状態が
記憶されるタグメモリと、 前記プロセッサからのアクセス要求、前記複数のノード
が備えるホームアクセス制御部が発行する要求や応答を
受け、前記キャッシュメモリやタグメモリに対しては一
貫性維持のために必要な処理を行い、前記プロセッサに
対してはアクセス要求に対する応答を行うローカルアク
セス制御部と、 前記複数のノードが備える前記ローカルアクセス制御部
が発行する要求や応答を受けて、前記主メモリやディレ
クトリメモリに対して一貫性維持のために必要な処理を
行い、前記ローカルアクセス制御部に要求や応答を発行
するホームアクセス制御部と、 前記プロセッサが同時に発行可能なメモリアクセスの最
大数に対応するエントリを有するリクエスト管理テーブ
ルと、 共有しているブロックに対して書き込みを行い前記キャ
ッシュメモリに専有することになったブロックを記憶す
る書き戻しブロック選択手段と、を具備することを特徴
とするマルチプロセッサシステム。
8. A multiprocessor system comprising a plurality of nodes connected to each other via an interconnection network, wherein each of the plurality of nodes includes: a main memory for storing data; A cache memory in which a part of the data stored in the main memory included in any of them is stored, which can be accessed at a higher speed than the main memory; a processor that issues a data access request; and data in the main memory. In the system, manages the copy state of the data in the cache memory, and when the processor performs load and store access to data at a predetermined address, Exchange messages between the nodes PEi to change their state or transfer data. A coherence maintaining controller having a function, wherein the coherence maintaining controller includes: a tag memory in which a state of data stored in the cache memory is stored; an access request from the processor; Receiving a request or response issued by the home access control unit of the node, performs processing necessary for maintaining consistency in the cache memory or the tag memory, and sends a response to the access request to the processor. A local access control unit to perform, upon receiving a request or a response issued by the local access control unit included in the plurality of nodes, performs a process necessary for maintaining consistency in the main memory or the directory memory, A home access control unit for issuing a request or a response to the local access control unit; A request management table having an entry corresponding to the maximum number of memory accesses, and a write-back block selecting means for writing the shared block and storing the block occupied by the cache memory. A multiprocessor system.
【請求項9】 請求項1または8に記載のマルチプロセ
ッサシステムにおいて、 前記一貫性維持制御部に含まれるローカルアクセス制御
部とホームアクセス制御部は、前記プロセッサが前記主
メモリに格納された処理プログラムを実行することによ
り実現されることを特徴とするマルチプロセッサシステ
ム。
9. The multiprocessor system according to claim 1, wherein the local access control unit and the home access control unit included in the coherence maintaining control unit include a processing program in which the processor is stored in the main memory. The multiprocessor system is realized by executing the following.
【請求項10】 請求項1または8に記載のマルチプロ
セッサシステムにおいて、 前記一貫性維持制御部に含まれるローカルアクセス制御
部とホームアクセス制御部は、前記プロセッサとは別に
設けられた専用のサブプロセッサが、前記主メモリに格
納されたプログラムを実行することにより実現されるこ
とを特徴とするマルチプロセッサシステム。
10. The multiprocessor system according to claim 1, wherein the local access control unit and the home access control unit included in the consistency maintaining control unit are dedicated sub-processors provided separately from the processor. Is realized by executing a program stored in the main memory.
【請求項11】 請求項1または8に記載のマルチプロ
セッサシステムにおいて、 前記一貫性維持制御部に含まれるローカルアクセス制御
部とホームアクセス制御部は、それぞれモジュールの機
能を実現するための専用のロジックに従って構成された
専用のハードウェアを装備していることを特徴とするマ
ルチプロセッサシステム。
11. The multiprocessor system according to claim 1, wherein the local access control unit and the home access control unit included in the coherence maintaining control unit each have a dedicated logic for realizing a function of a module. A multiprocessor system comprising dedicated hardware configured according to the following.
JP06190599A 1999-03-09 1999-03-09 Multiprocessor system Expired - Fee Related JP3769411B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06190599A JP3769411B2 (en) 1999-03-09 1999-03-09 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06190599A JP3769411B2 (en) 1999-03-09 1999-03-09 Multiprocessor system

Publications (2)

Publication Number Publication Date
JP2000259596A true JP2000259596A (en) 2000-09-22
JP3769411B2 JP3769411B2 (en) 2006-04-26

Family

ID=13184650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06190599A Expired - Fee Related JP3769411B2 (en) 1999-03-09 1999-03-09 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP3769411B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181292B2 (en) 2002-02-27 2007-02-20 Nec Corporation System control method, control processing system, and control processing apparatus
US7904665B2 (en) 2006-01-26 2011-03-08 Nec Computer Techno, Ltd. Multiprocessor system and its operational method
EP2784684A1 (en) 2013-03-29 2014-10-01 Fujitsu Limited Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181292B2 (en) 2002-02-27 2007-02-20 Nec Corporation System control method, control processing system, and control processing apparatus
US7904665B2 (en) 2006-01-26 2011-03-08 Nec Computer Techno, Ltd. Multiprocessor system and its operational method
EP2784684A1 (en) 2013-03-29 2014-10-01 Fujitsu Limited Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus

Also Published As

Publication number Publication date
JP3769411B2 (en) 2006-04-26

Similar Documents

Publication Publication Date Title
US6631448B2 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
KR100465583B1 (en) Non-uniform memory access(numa) data processing system that speculatively forwards a read request to a remote processing node and communication method in the system
KR100324975B1 (en) Non-uniform memory access(numa) data processing system that buffers potential third node transactions to decrease communication latency
US5900020A (en) Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
US7032078B2 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
JP4572169B2 (en) Multiprocessor system and operation method thereof
EP0640923A1 (en) System and method to notify an empty status from peer cache units to global storage control unit in a multiprocessor data processing system
JPH10187645A (en) Multiprocess system constituted for storage in many subnodes of process node in coherence state
US7529893B2 (en) Multi-node system with split ownership and access right coherence mechanism
JPH10143482A (en) Multiprocessor system for executing efficient write operation
JPH10171710A (en) Multi-process system for executing effective block copying operation
JPH10143483A (en) Multiprocess system constituted so as to detect and efficiently provide migratory data access pattern
JPH10187470A (en) Multiprocess system provided with device for optimizing spin lock operation
JP2002304328A (en) Coherence controller for multi-processor system, module incorporating the same, and multi-module architecture multi-processor system
JPH10116253A (en) Multiprocess system executing synchronous operation
JPH10340227A (en) Multi-processor computer system using local and global address spaces and multi-access mode
JPH10134014A (en) Multiprocess system using three-hop communication protocol
JPH10214230A (en) Multiprocessor system adopting coherency protocol including response count
JPH10143476A (en) Multiprocess system for executing software for starting prefetch operation
JPH10154100A (en) Information processing system, device and its controlling method
US20050010615A1 (en) Multi-node computer system implementing memory-correctable speculative proxy transactions
US20050013294A1 (en) Multi-node computer system with active devices employing promise arrays for outstanding transactions
US20050044174A1 (en) Multi-node computer system where active devices selectively initiate certain transactions using remote-type address packets
US20050027947A1 (en) Multi-node computer system including a mechanism to encode node ID of a transaction-initiating node in invalidating proxy address packets
JP3751741B2 (en) Multiprocessor system

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060206

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120210

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120210

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130210

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130210

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees