JPH09237259A - Method for controlling maintenance of data consistency in multi processor system - Google Patents

Method for controlling maintenance of data consistency in multi processor system

Info

Publication number
JPH09237259A
JPH09237259A JP8043924A JP4392496A JPH09237259A JP H09237259 A JPH09237259 A JP H09237259A JP 8043924 A JP8043924 A JP 8043924A JP 4392496 A JP4392496 A JP 4392496A JP H09237259 A JPH09237259 A JP H09237259A
Authority
JP
Japan
Prior art keywords
message
cache
memory
block
data
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.)
Pending
Application number
JP8043924A
Other languages
Japanese (ja)
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 JP8043924A priority Critical patent/JPH09237259A/en
Publication of JPH09237259A publication Critical patent/JPH09237259A/en
Priority to JP2000009808A priority patent/JP3678620B2/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To shorten time required for the control of the maintenance of data consistency when a cache error owing to reading occurs. SOLUTION: When a processor PRi writes data into a block in a shared state on a cache CMi, the update is reflected not only the cache CMi but also on a memory MMi and the latest block is caused to exist in the memory MMi. When the other processor PRi generates the cache error, the latest block can be taken out from the memory MMi and it is not required to give rewrite request to the cache CMi which solely holds the latest block from the memory MMi.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、各プロセッサがキ
ャッシュを備えたマルチプロセッサシステムにおける、
データ一貫性維持制御方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system in which each processor has a cache,
The present invention relates to a data consistency maintenance control method.

【0002】[0002]

【従来の技術】マルチプロセッサシステムでは、システ
ムに複数存在するキャッシュ上に、同一のアドレスのデ
ータが存在し得る。そのため、同一アドレスのデータを
保持するキャッシュ間でデータの一貫性を維持するため
の制御、データの一貫性維持制御が必要である。
2. Description of the Related Art In a multiprocessor system, data having the same address can exist in a plurality of caches existing in the system. Therefore, it is necessary to perform control for maintaining data consistency and control for maintaining data consistency between caches that hold data at the same address.

【0003】このデータ一貫性維持制御は、各プロセッ
サがあるブロックに対して書き込みを行ったときにはそ
れを排他的に行うことができ、読み出し時には最新の値
が得られる、ということを保証するための制御である。
従って、まず、書き込みの対象となっているブロックが
どのキャッシュに存在しているかを特定することができ
なければならない。そして、読み出し時のミスの際に、
どこに最新のブロックが存在するかを特定できなければ
ならない。ここで、ブロックとはデータ管理の最小単位
であり、大きさは例えば64バイトになる。
This data consistency maintenance control is for guaranteeing that each processor can exclusively write data in a certain block and obtain the latest value at the time of reading. Control.
Therefore, first of all, it must be possible to specify in which cache the block to be written exists. And in the case of a mistake during reading,
It must be possible to identify where the latest block is. Here, a block is the minimum unit of data management, and its size is, for example, 64 bytes.

【0004】例えば、文献(「A New Solut
ion to CoherencyProblems
in Multicache Systems」LUC
IEN M.CENSIER and PAUL FE
AUTRIER,IEEETransactions
on Computers,p1112−1118,D
ecember 1978)に開示されている方法は、
次の3つの特徴を持つ。まず第1の特徴は、キャッシュ
においてブロック単位にそのブロックが共有されている
かどうかの情報を保持することにある。また第2の特徴
は、メモリにおいてブロック単位にそのブロックを保持
しているキャッシュを特定する情報、およびメモリに最
新のブロックが存在するかどうかの情報、を保持するこ
とにある。また第3の特徴は、プロセッサが共有してい
るブロックに対して書き込みを行ったときに、他キャッ
シュのブロックを無効化して共有状態を解消し、当該キ
ャッシュにのみ最新のブロックが存在する状態とするこ
とにある。
For example, in the literature (“A New Solut
ion to Coherency Problems
in MultiSystems "LUC
IEN M. CENSIER and PAUL FE
AUTRIER, IEEE Transactions
on Computers, p1112-1118, D
The method disclosed in e.
It has the following three features. The first feature is that the cache holds information on whether the block is shared in block units. A second feature is that the memory holds information for identifying the cache holding the block in units of blocks, and information indicating whether the latest block exists in the memory. A third feature is that when writing to a block shared by processors, the blocks of other caches are invalidated to eliminate the shared state, and the latest block exists only in the cache. To do.

【0005】以降、この方法の動作を説明する。The operation of this method will be described below.

【0006】図1を参照すると、従来および本発明に係
わるマルチプロセッサシステムは、命令を実行しメモリ
アクセスを行うプロセッサPRi、各プロセッサPRi
に接続されプロセッサPRiがアクセスしたデータを一
時的に保持するキャッシュCMi、データを保持するメ
モリMMi、キャッシュCMiおよびメモリMMiを接
続する相互結合網12からなる。図1に示したシステム
では、相互結合網12は8つのポートを有しており、ポ
ート0にはキャッシュCM1が、ポート1にはキャッシ
ュCM2が、ポート2にはキャッシュCM3が、ポート
3にはキャッシュCM4が、ポート4にはメモリMM1
が、ポート5にはメモリMM2が、ポート6にはメモリ
MM3が、ポート7にはメモリMM4が、それぞれ接続
されている。
Referring to FIG. 1, a multiprocessor system according to the related art and the present invention includes a processor PRi for executing an instruction and a memory access, and each processor PRi.
A cache CMi that is connected to the processor PRi and temporarily holds data accessed by the processor PRi, a memory MMi that holds data, a cache CMi, and an interconnection network 12 that connects the memory MMi. In the system shown in FIG. 1, the interconnection network 12 has eight ports. Port 0 has a cache CM1, port 1 has a cache CM2, port 2 has a cache CM3, and port 3 has a cache CM3. The cache CM4 has a memory MM1 at port 4.
However, the memory MM2 is connected to the port 5, the memory MM3 is connected to the port 6, and the memory MM4 is connected to the port 7.

【0007】以降、プロセッサPR1がメモリMM2の
データをアクセスした場合を例にとり、そのアクセスに
よって行われるデータ一貫性維持のための一連の動作を
説明する。
A series of operations for maintaining data consistency performed by the access will be described below by taking the case where the processor PR1 accesses the data in the memory MM2 as an example.

【0008】プロセッサPR1があるブロックのデータ
に対してアクセスを行ったが、そのブロックがキャッシ
ュCM1に存在しなかった場合(以降この場合をキャッ
シュミスと記す)の動作を説明する。この場合、まずキ
ャッシュCM1からメモリMM2に読み出し要求メッセ
ージが発行される。読み出し要求を受けたメモリMM2
は、最新のブロックが当該メモリに存在するかどうかを
検査し、存在すれば当該ブロックを、キャッシュCM1
に送信する。存在しなければ、最新のブロックを保持す
るキャッシュが唯一存在するので、そのキャッシュ、例
えばキャッシュCM3に書き戻し要求メッセージを発行
する。書き戻し要求を受けたキャッシュCM3は、メモ
リMM2に対して当該ブロックの書き戻しを行う。メモ
リMM2は、キャッシュCM3から書き戻されたブロッ
クをキャッシュCM1に送信する。ブロックを受けたキ
ャッシュCM1は、再度、プロセッサPR1が行ったメ
モリアクセスを評価し、データ一貫性維持のために必要
な処理を行う。
The operation when the processor PR1 accesses the data of a certain block but the block does not exist in the cache CM1 (hereinafter, this case is referred to as a cache miss) will be described. In this case, first, a read request message is issued from the cache CM1 to the memory MM2. Memory MM2 that received the read request
Checks whether the latest block exists in the memory, and if there is, updates the block in the cache CM1.
Send to If it does not exist, there is the only cache holding the latest block, so the write-back request message is issued to that cache, for example, the cache CM3. The cache CM3 that has received the write-back request writes back the block to the memory MM2. The memory MM2 transmits the block written back from the cache CM3 to the cache CM1. The cache CM1 that received the block again evaluates the memory access performed by the processor PR1 and performs the necessary processing for maintaining the data consistency.

【0009】上記の処理の結果、以前ブロックを保持し
ていたキャッシュに加えて、新たにキャッシュCM1も
最新のブロックを保持することになる。また、メモリM
M2にも最新のブロックが存在する状態となる。
As a result of the above processing, the cache CM1 newly holds the latest block in addition to the cache which previously held the block. Also, the memory M
The latest block also exists in M2.

【0010】次に、プロセッサPR1があるブロックの
データに対して読み出しを行い、そのブロックがキャッ
シュCM1に存在した場合(以降この場合をリードヒッ
トと記す)の動作を説明する。この場合、キャッシュC
M1はそのブロックのデータをプロセッサPR1に渡す
ことで、処理は完了する。
Next, the operation when the processor PR1 reads data from a certain block and the block is present in the cache CM1 (hereinafter, this case is referred to as a read hit) will be described. In this case, cache C
The processing is completed by M1 passing the data of the block to the processor PR1.

【0011】次に、プロセッサPR1があるブロックの
データに対して書き込みを行い、そのブロックがキャッ
シュCM1に存在しかつ共有状態にない場合(以降この
場合をライトヒットと記す)の動作を説明する。この場
合、キャッシュCM1にプロセッサPR1が行った書き
込みをキャッシュCM1が保持するブロックに反映し、
書き込みが完了したことをプロセッサPR1に通知する
ことで、処理は完了する。
Next, the operation when the processor PR1 writes data in a certain block and the block exists in the cache CM1 and is not in the shared state (hereinafter, this case is referred to as a write hit) will be described. In this case, the writing performed by the processor PR1 in the cache CM1 is reflected in the block held by the cache CM1,
The process is completed by notifying the processor PR1 that the writing has been completed.

【0012】次に、プロセッサPR1があるブロックの
データに対して書き込みを行い、そのブロックがキャッ
シュCM1に存在しかつ共有状態にある場合(以降この
場合をライトシェアードと記す)の動作を説明する。こ
の場合、キャッシュCM1にプロセッサPR1が行った
書き込みを反映し、またメモリMM2に対して書き込み
要求メッセージが発行される。書き込み要求を受けたメ
モリMM2は、例えばキャッシュCM1以外にキャッシ
ュCM3およびキャッシュCM4がブロックを保持して
いたとすると、キャッシュCM3およびキャッシュCM
4に対して無効化要求メッセージを発行する。無効化要
求を受けたキャッシュCM3およびキャッシュCM4は
それぞれ当該ブロックを無効化し無効化完了メッセージ
をメモリMM2に対して送信する。メモリMM2は、キ
ャッシュCM3およびキャッシュCM4の両方から無効
化完了メッセージを受け取ると、完了応答メッセージを
キャッシュCM1に対して送信する。キャッシュCM1
は、完了応答メッセージを受け取ると、プロセッサPR
1に対して書き込みが完了したことを通知し、処理を完
了する。上記の処理の結果、書き込みを行ったキャッシ
ュにのみが最新のブロックを保持しており、メモリには
最新のブロックが存在していない状態となる。
Next, the operation when the processor PR1 writes data in a certain block and the block exists in the cache CM1 and is in a shared state (hereinafter, this case is referred to as write shared) will be described. In this case, the write performed by the processor PR1 is reflected in the cache CM1, and a write request message is issued to the memory MM2. The memory MM2 that has received the write request, for example, if cache CM3 and cache CM4 other than the cache CM1 hold blocks, the cache CM3 and cache CM
Issue an invalidation request message to No. 4. The cache CM3 and the cache CM4 which have received the invalidation request invalidate the block and transmit an invalidation completion message to the memory MM2. Upon receiving the invalidation completion message from both the cache CM3 and the cache CM4, the memory MM2 transmits a completion response message to the cache CM1. Cache CM1
When receiving the completion response message, the processor PR
1 is notified that the writing is completed, and the processing is completed. As a result of the above processing, only the cache that has written holds the latest block, and the latest block does not exist in the memory.

【0013】上記の処理の結果、キャッシュCM1にの
み最新のブロックが存在することになり、他のキャッシ
ュCMiおよびメモリMM2には最新のブロックが存在
しない状態となる。
As a result of the above processing, the latest block exists only in the cache CM1, and the latest block does not exist in the other caches CMi and memory MM2.

【0014】以上の、データ一貫性維持のための動作の
説明では、例えばメモリMM2が、キャッシュCM1か
らの読み出し要求を受けキャッシュCM3に対して書き
戻し要求を発行し、ブロックが書き戻されるのを待って
いる状態で、キャッシュCM2から読み出し要求があっ
た場合の動作などが省略されている。
In the above description of the operation for maintaining the data consistency, for example, the memory MM2 receives a read request from the cache CM1 and issues a write-back request to the cache CM3 to write back the block. In the waiting state, the operation when a read request is issued from the cache CM 2 is omitted.

【0015】[0015]

【発明が解決しようとする課題】第1の問題点は、プロ
セッサの読み出しによりキャッシュミスが発生した場合
に、キャッシュからプロセッサにデータが応答されるま
でにかかる時間が長いということである。
The first problem is that when a cache miss occurs due to the reading of the processor, it takes a long time until the data is returned from the cache to the processor.

【0016】例えば、キャッシュCM1とキャッシュC
M3にメモリMM2のブロックが存在し共有されている
状態で、プロセッサPR1が書き込みを行い、次いでプ
ロセッサPR4が読み出しを行った場合の動作を考え
る。プロセッサPR1が書き込みを行うことで、キャッ
シュCM1にのみ最新のブロックが存在する状態とな
り、メモリMM2にも最新のデータは存在しなくなる。
次いでプロセッサPR4が読み出しを行うと、キャッシ
ュCM4にブロックが存在しないのでキャッシュミスと
なる。これにより、メモリMM2に対して読み出し要求
メッセージが送信されるが、メモリMM2にも最新のデ
ータは存在しないので、最新のデータを保持するキャッ
シュCM1に対して書き戻しを要求することとなる。メ
モリMM2はキャッシュCM1からのブロックの書き戻
しを受け、その後ブロックをキャッシュCM4に送信す
る。ブロックを受けたキャッシュCM4は、再度、プロ
セッサPR4が行った読み出しを評価し、ブロックが存
在するのでプロセッサPR4にデータを渡し、処理を完
了する。
For example, the cache CM1 and the cache C
Consider the operation when the processor PR1 performs writing and then the processor PR4 performs reading while the block of the memory MM2 exists in M3 and is shared. When the processor PR1 performs the writing, the latest block exists only in the cache CM1 and the latest data does not exist in the memory MM2 either.
Next, when the processor PR4 performs a read operation, a cache miss occurs because there is no block in the cache CM4. As a result, the read request message is transmitted to the memory MM2, but since the latest data does not exist in the memory MM2, the write-back is requested to the cache CM1 holding the latest data. The memory MM2 receives the block write-back from the cache CM1, and then transmits the block to the cache CM4. The cache CM4 receiving the block again evaluates the read performed by the processor PR4, and since the block exists, the data is passed to the processor PR4 and the processing is completed.

【0017】このように、上記問題の理由は、プロセッ
サが書き込みを行った後に、メモリに最新のブロックが
存在しなくなることにある。
Thus, the reason for the above problem is that the latest block no longer exists in memory after the processor has written.

【0018】第2の問題点は、データ一貫性維持制御の
ためにキャッシュおよびメモリ間でやり取りされるメッ
セージが多いということである。
The second problem is that many messages are exchanged between the cache and the memory for the data consistency maintenance control.

【0019】その理由は、プロセッサが書き込みを行っ
た後に、メモリに最新のブロックが存在しなくなること
にある。即ち、あるプロセッサが書き込みを行った後、
別のキャッシュにおいてキャッシュミスが発生した場合
に、メモリへの読み出し要求メッセージおよびキャッシ
ュへのブロック転送の他に、最新のデータを保持するキ
ャッシュに対する書き戻し要求メッセージおよびそのキ
ャッシュからのブロックの書き戻しが必要となるためで
ある。
The reason is that the latest block no longer exists in memory after the processor has written. That is, after a processor writes,
When a cache miss occurs in another cache, in addition to the read request message to the memory and the block transfer to the cache, the write-back request message to the cache holding the latest data and the write-back of the block from the cache are performed. This is necessary.

【0020】本発明の目的は、読み出しによるキャッシ
ュミスが発生した場合のデータ一貫性維持制御に要する
時間を短縮した、データ一貫性維持制御方法を提供する
ことにある。
An object of the present invention is to provide a data coherency maintenance control method which shortens the time required for the data coherency maintenance control when a cache miss due to a read occurs.

【0021】本発明の他の目的は、データ一貫性維持制
御によって生成されるメッセージの数の増加を防ぐデー
タ一貫性一方制御方法を提供することにある。
Another object of the present invention is to provide a data consistency control method that prevents an increase in the number of messages generated by the data consistency maintenance control.

【0022】[0022]

【課題を解決するための手段】本発明の第1のデータ一
貫性維持制御方法は、プロセッサが共有しているブロッ
クに対して書き込みを行ったときに、当該キャッシュお
よびメモリのブロックに対して書き込みを反映し、他キ
ャッシュのブロックに関しては無効化を行い、書き込み
が行われたキャッシュのブロックの状態を共有状態のま
まとする、データ一貫性維持制御をキャッシュおよびメ
モリにおいて行う手段(図2の23と図3の44)を有
する。
According to a first data consistency maintenance control method of the present invention, when data is written to a block shared by processors, the data is written to the block of the cache and the memory. Means for performing data coherency maintenance control in the cache and the memory (23 in FIG. 2) in which the block of the other cache is invalidated and the state of the block of the cache in which the writing is performed remains in the shared state. And 44) in FIG.

【0023】本発明の第2のデータ一貫性維持制御方法
は、プロセッサが共有しているブロックに対して書き込
みを行ったときに、当該キャッシュおよびメモリにのみ
最新のブロックが存在する状態であり他のキャッシュが
最新のブロックを保持していなければ、当該キャッシュ
およびメモリのブロックに対して書き込みを反映する
が、書き込みが行われたキャッシュのブロックの状態を
共有状態から非共有状態に遷移させる、データ一貫性維
持制御をキャッシュおよびメモリにおいて行う手段(図
2の23と図3の44)を有する。
According to the second data consistency maintenance control method of the present invention, when a block shared by the processors is written, the latest block exists only in the cache and the memory. If the cache of the cache does not hold the latest block, the writing is reflected to the cache and the block of the memory, but the state of the block of the written cache is changed from the shared state to the non-shared state. It has means (23 in FIG. 2 and 44 in FIG. 3) for performing coherency maintenance control in cache and memory.

【0024】本発明の第3のデータ一貫性維持制御方法
は、メモリにおいてブロック単位にカウンタを設け、ブ
ロックが新たにキャッシュに取り込まれたときはカウン
タの値を0に初期化し、プロセッサが共有しているブロ
ックに対して書き込みを行ったときはそのブロックのカ
ウンタの値をインクリメントし、またプロセッサが共有
しているブロックに対して書き込みを行ったときに、当
該キャッシュおよびメモリにのみ最新のブロックが存在
する状態であり他のキャッシュが最新のブロックを保持
しておらずまたカウンタの値がある値になっていれば、
当該キャッシュおよびメモリのブロックに対して書き込
みを反映するが、書き込みが行われたキャッシュのブロ
ックの状態を共有状態から非共有状態に遷移させる、デ
ータ一貫性維持制御をキャッシュおよびメモリにおいて
行う手段(図2の23と図3の44)を有する。
According to the third data consistency maintenance control method of the present invention, a counter is provided for each block in the memory, the value of the counter is initialized to 0 when the block is newly fetched in the cache, and shared by the processors. When writing to a block, the counter value of that block is incremented, and when writing to a block shared by the processors, the latest block is only written to the cache and memory. If it exists, other cache does not hold the latest block, and the value of the counter is a certain value,
A means for performing data coherency maintenance control in the cache and the memory, which reflects the writing to the block of the cache and the memory, but changes the state of the block of the written cache from the shared state to the non-shared state (Fig. 2 of 23 and 44 of FIG. 3).

【0025】本発明の第1のデータ一貫性維持制御方法
におけるデータ一貫性維持制御手段は、プロセッサが共
有しているブロックに対して書き込みを行ったときに、
書き込みが行われたキャッシュおよびメモリに、最新の
ブロックが存在する状態とする。
The data consistency maintenance control means in the first data consistency maintenance control method of the present invention, when writing to a block shared by the processors,
It is assumed that the latest block exists in the written cache and memory.

【0026】本発明の第2のデータ一貫性維持制御方法
におけるデータ一貫性維持制御手段は、プロセッサが実
際に複数のキャッシュで共有されているブロックに対し
て連続して書き込みを行い、またその間他キャッシュが
アクセスを行わなかった場合に、最初の2回の書き込み
はメモリにも反映するが、2回目の書き込み後からブロ
ックの共有状態は解消され、3回目の書き込み以降は当
該キャッシュに対してのみ行われる。
The data coherency maintenance control means in the second data coherency maintenance control method of the present invention allows the processor to continuously write to a block actually shared by a plurality of caches, and during other periods. If the cache does not access, the first two writes are reflected in the memory as well, but the shared state of the block is canceled after the second write, and only the cache concerned after the third write. Done.

【0027】本発明の第3のデータ一貫性維持制御方法
におけるデータ一貫性維持制御手段は、プロセッサが実
際に複数のキャッシュで共有されているブロックに対し
て連続して書き込みを行い、またその間他のキャッシュ
がアクセスを行わなかった場合に、一定回数の書き込み
はメモリにも反映するが、それ以降の書き込みは当該キ
ャッシュに対してのみ行われる。
The data coherency maintenance control means in the third data coherency maintenance control method of the present invention allows the processor to continuously write to a block which is actually shared by a plurality of caches, and during other periods. When the cache is not accessed, the writing of a certain number of times is reflected in the memory, but the subsequent writing is performed only to the cache.

【0028】[0028]

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

【0029】再び、図1を参照すると、本発明に関わる
マルチプロセッサシステムは、命令を実行しメモリアク
セスを行うプロセッサPRi、各プロセッサPRiに接
続されプロセッサPRiがアクセスしたデータを一時的
に保持するキャッシュCMi、データを保持するメモリ
MMi、キャッシュCMiおよびメモリMMiを接続す
る相互結合網12からなる。図1に示したシステムで
は、相互結合網12は8つのポートを有しており、ポー
ト0にはキャッシュCM1が、ポート1にはキャッシュ
CM2が、ポート2にはキャッシュCM3が、ポート3
にはキャッシュCM4が、ポート4にはメモリMM1
が、ポート5にはメモリMM2が、ポート6にはメモリ
MM3が、ポート7にはメモリMM4が、それぞれ接続
されている。
Referring again to FIG. 1, the multiprocessor system according to the present invention includes a processor PRi that executes instructions and performs memory access, and a cache that is connected to each processor PRi and temporarily holds data accessed by the processor PRi. CMi, a memory MMi that holds data, a cache CMi, and an interconnection network 12 that connects the memories MMi. In the system shown in FIG. 1, the interconnection network 12 has eight ports. Port 0 has a cache CM1, port 1 has a cache CM2, port 2 has a cache CM3, and port 3 has a cache CM2.
Has a cache CM4 and port 4 has a memory MM1
However, the memory MM2 is connected to the port 5, the memory MM3 is connected to the port 6, and the memory MM4 is connected to the port 7.

【0030】ここで、各キャッシュCMiおよびメモリ
MMiには相互結合網12に接続されたポート番号に対
応して3ビットの装置番号が付けられており、キャッシ
ュCM1は‘000’、キャッシュCM2は‘00
1’、キャッシュCM3は‘010’、キャッシュCM
4は‘011’、メモリMM1は‘100’、メモリM
M2は‘101’、メモリMM3は‘110’、メモリ
MM4は‘111’となっている。また、各メモリMM
iは、アドレスの上位2ビットが自装置番号の下位2ビ
ットと一致する領域を管理している。例えばメモリMM
2はアドレスの上位2ビットが‘01’の領域を管理し
ている。
Here, each cache CMi and memory MMi is provided with a 3-bit device number corresponding to the port number connected to the interconnection network 12. The cache CM1 is' 000 'and the cache CM2 is'. 00
1 ', cache CM3 is'010', cache CM
4 is '011', memory MM1 is '100', memory M
M2 is "101", memory MM3 is "110", and memory MM4 is "111". In addition, each memory MM
i manages an area in which the upper 2 bits of the address match the lower 2 bits of its own device number. Memory MM
2 manages an area in which the upper 2 bits of the address are "01".

【0031】次に、図2を参照すると、本発明に関わる
キャッシュCMiは、タグステート等のブロックに関す
る情報を保持するタグメモリ22と、データをブロック
単位で保持するキャッシュメモリ25と、プロセッサP
Riからのメモリアクセスを保持、管理するメモリアク
セス管理部21と、相互結合網12によって配送された
メッセージを受信する第1メッセージ受信部26と、相
互結合網12へのメッセージの送信を行う第1メッセー
ジ送信部27と、キャッシュメモリ25のアクセスを行
う第1データ制御部24と、メモリアクセス管理部21
で保持しているメモリアクセスおよび第1メッセージ受
信部26で保持しているメッセージに関してデータ一貫
性維持制御のための処理を行うために、タグメモリ22
に格納されている情報の読み出しおよび書き込みを行う
機能と、制御機能として、第1データ制御部24に対し
てキャッシュメモリ25のアクセスを指示する機能と、
第1メッセージ送信部27にメッセージの送信を指示す
る機能とを有する第1一貫性維持制御部23とから構成
される。
Next, referring to FIG. 2, a cache CMi according to the present invention includes a tag memory 22 that holds information about blocks such as tag states, a cache memory 25 that holds data in block units, and a processor P.
A memory access management unit 21 that holds and manages memory access from Ri, a first message receiving unit 26 that receives a message delivered by the interconnection network 12, and a first message transmission unit that transmits a message to the interconnection network 12. The message transmission unit 27, the first data control unit 24 for accessing the cache memory 25, and the memory access management unit 21.
In order to perform the processing for data consistency maintenance control on the memory access held by the first message receiving unit 26 and the message held by the first message receiving unit 26,
A function of reading and writing the information stored in, and a control function of instructing the first data control unit 24 to access the cache memory 25,
The first consistency maintaining controller 23 has a function of instructing the first message transmitter 27 to send a message.

【0032】次に、図3を参照すると、本発明に関わる
メモリMMiは、ディレクトリステートおよびディレク
トリマップ等のブロックに関する情報を保持するディレ
クトリメモリ43と、データを保持するメインメモリ4
6と、相互結合網12によって配送されたメッセージを
受信する第2メッセージ受信部41と、相互結合網12
へのメッセージの送信を行う第2メッセージ送信部42
と、メインメモリ46のアクセスを行う第1データ制御
部24と、第2メッセージ受信部41で保持しているメ
ッセージに関してデータ一貫性維持制御のための処理を
行うために、ディレクトリメモリ43に格納されている
情報の読み出しおよび書き込みを行う機能と、制御機能
として、第2データ制御部45に対してメインメモリ4
6のアクセスを指示する機能と、第2メッセージ送信部
42にメッセージの送信を指示する機能とを有する第2
一貫性維持制御部44とから構成される。
Next, referring to FIG. 3, a memory MMi according to the present invention includes a directory memory 43 for holding information about blocks such as a directory state and a directory map, and a main memory 4 for holding data.
6, a second message receiving unit 41 for receiving the message delivered by the interconnection network 12, and the interconnection network 12
Second message sending unit 42 for sending a message to
Stored in the directory memory 43 in order to perform processing for maintaining data consistency with respect to the first data control unit 24 that accesses the main memory 46 and the message held in the second message receiving unit 41. The function of reading and writing the stored information, and the control function of the main memory 4 with respect to the second data control unit 45.
6 having a function of instructing access of No. 6 and a function of instructing the second message transmitting unit 42 to transmit a message.
It is composed of a consistency maintenance control unit 44.

【0033】次に、第1の実施の形態におけるデータ一
貫性維持制御方法では、タグメモリ22に保持されるタ
グステートは、キャッシュメモリ25に格納されている
ブロックの状態を表すもので、I,S,E,Dの4つの
状態からなり、それぞれ次のような意味を持つ。I状態
は、最新のブロックが当該キャッシュメモリ25に存在
しないことを表す。S状態は、最新のブロックが当該キ
ャッシュメモリ25に存在し、また他のキャッシュメモ
リ25にも存在する可能性、即ちブロックが共有されて
いる可能性を示唆する。E状態は、最新のブロックが当
該キャッシュメモリ25に存在し、メインメモリ46に
も最新のブロックが存在するが、他のキャッシュメモリ
25には存在しないことを表す。D状態は、最新のブロ
ックが当該キャッシュメモリ25に存在し、他のキャッ
シュメモリ25にもメインメモリ46にも最新のブロッ
クは存在しないことを表す。また、キャッシュメモリ2
5においてタグステートの初期値はIとなり、キャッシ
ュメモリ25に最新のブロックが存在しない状態とな
る。
Next, in the data consistency maintenance control method according to the first embodiment, the tag state held in the tag memory 22 represents the state of the block stored in the cache memory 25. It consists of four states, S, E, and D, and has the following meanings. The I state indicates that the latest block does not exist in the cache memory 25. The S state suggests that the latest block exists in the cache memory 25 and may exist in another cache memory 25, that is, the block may be shared. The E state indicates that the latest block exists in the cache memory 25 and the latest block also exists in the main memory 46, but does not exist in the other cache memories 25. The D state indicates that the latest block exists in the cache memory 25, and neither the other cache memory 25 nor the main memory 46 has the latest block. Also, the cache memory 2
In 5, the initial value of the tag state is I, and the cache memory 25 does not have the latest block.

【0034】また、第1の実施の形態におけるデータ一
貫性維持制御方法では、ディレクトリメモリ43に保持
されるディレクトリマップは、メインメモリ46の該当
するブロックを保持しているキャッシュCMiを表すも
ので、例えば文献(「A New Solution
to Coherency Problems inM
ulticache Systems」LUCIEN
M.CENSIERand PAUL FEAUTRI
ER,IEEE Transactions on C
omputers,p1112−1118,Decem
ber 1978)に開示されている、フルマップ方式
で構成される。フルマップ方式は、各キャッシュCMi
に対応するビットを設け、そのビットによりキャッシュ
CMiがブロックを保持しているか保持していないかを
示すものであり、図1のシステムでは、ディレクトリマ
ップは4ビットで構成される。図4にディレクトリマッ
プの値と、どのキャッシュCMiがブロックを保持して
いるかの関係を示す。図4において、○は保持している
ことを示し、×は保持していないことを示す。図より明
らかなように、ディレクトリマップの第0ビットが1の
場合キャッシュCM1がブロックを保持していることを
示し、第1ビットが1の場合キャッシュCM2が、第2
ビットが1の場合キャッシュCM3が、第3ビットが1
の場合キャッシュCM4がそれぞれブロックを保持して
いることを示す。また、ディレクトリメモリ43におい
て、ディレクトリマップの初期値は‘0000’とな
り、どのキャッシュCMiもブロックを保持していない
状態となる。
Further, in the data consistency maintenance control method according to the first embodiment, the directory map held in the directory memory 43 represents the cache CMi holding the corresponding block in the main memory 46. For example, the document (“A New Solution
to Coherency Problems in M
ulticache Systems "LUCIEN
M. CENSIER and PAUL FEAUTRI
ER, IEEE Transactions on C
omputers, p1112-1118, Decem
1978). The full map method is used for each cache CMi
Is provided to indicate whether the cache CMi holds or does not hold a block, and in the system of FIG. 1, the directory map is composed of 4 bits. FIG. 4 shows the relationship between the value of the directory map and which cache CMi holds the block. In FIG. 4, ∘ indicates holding, and x indicates not holding. As is apparent from the figure, when the 0th bit of the directory map is 1, it indicates that the cache CM1 holds the block, and when the 1st bit is 1, the cache CM2 indicates the second
If the bit is 1, the cache CM3 and the third bit are 1
Indicates that the cache CM 4 holds each block. Further, in the directory memory 43, the initial value of the directory map is “0000”, and no cache CMi holds the block.

【0035】また、第1の実施の形態におけるデータ一
貫性維持制御方法では、ディレクトリメモリ43に格納
されるディレクトリステートは、メインメモリ46に格
納されている該当するブロックの状態を表すもので、
C,M,RMP,WSPの4つの状態からなり、それぞ
れ次のような意味を持つ。C状態は、メインメモリ46
に最新のブロックが存在し、ディレクトリマップで示さ
れるキャッシュCMiがデータを保持している可能性を
示唆する。この状態の時、ディレクトリマップは図4に
示した16種全ての値を取り得る。M状態は、メインメ
モリ46に最新のブロックが存在しない可能性を示唆
し、ディレクトリマップで示されるただ1つのキャッシ
ュCMiが最新のブロックを保持している可能性を示唆
する。この状態の時、ディレクトリマップは‘000
1’,‘0010’,‘0100’,‘1000’の4
種の値しか取り得ない。RMP状態は、M状態の時に後
述するRMメッセージを受け取り、ディレクトリマップ
で示されたただ1つのキャッシュCMiにFRメッセー
ジを発行して、そのキャッシュCMiからのFDまたは
ACKメッセージが到着するのを待っていることを表
す。この状態の時、ディレクトリマップは‘000
1’,‘0010’,‘0100’,‘1000’の4
種の値しか取り得ない。WSP状態は、C状態の時に後
述するWSメッセージを受け取り、WSメッセージを発
行したキャッシュCMiを除く、ディレクトリマップで
示されたデータを保持している可能性のあるキャッシュ
CMi全てに対してIVメッセージを発行して、それら
キャッシュCMi全てからのACKメッセージが到着す
るのを待っていることを表す。この状態の時、ディレク
トリマップは‘0011’または‘0010’または
‘0001’の3種類の値のみを取り得る。また、この
値は保持するキャッシュCMiを表すものではなく、
‘0011’は3個のACKの到着を待っていることを
表し、‘0010’は2個のACKの到着を待っている
ことを表し、‘0001’は1個のACKの到着を待っ
ていることを表す。また、ディレクトリメモリ43にお
いてディレクトリステートの初期値はCとなり、メイン
メモリ46に最新のブロックが存在する状態となる。
Further, in the data consistency maintenance control method according to the first embodiment, the directory state stored in the directory memory 43 represents the state of the corresponding block stored in the main memory 46.
It consists of four states of C, M, RMP, and WSP, and has the following meanings. C state is the main memory 46
Indicates that the latest block exists in the cache and the cache CMi indicated by the directory map may hold data. In this state, the directory map can take all 16 types of values shown in FIG. The M state indicates that the latest block may not exist in the main memory 46, and that only one cache CMi indicated by the directory map may hold the latest block. In this state, the directory map is' 000
4'1 ',' 0010 ',' 0100 ',' 1000 '
Only the seed value can be taken. The RMP state receives the RM message described later when in the M state, issues the FR message to only one cache CMi indicated in the directory map, and waits for the FD or ACK message from that cache CMi to arrive. Indicates that you are In this state, the directory map is' 000
4'1 ',' 0010 ',' 0100 ',' 1000 '
Only the seed value can be taken. In the WSP state, an IV message is received for all cache CMi that may receive the data indicated by the directory map, except for the cache CMi that issued the WS message and received the WS message described later in the C state. Issued to represent waiting for the arrival of ACK messages from all of those caches CMi. In this state, the directory map can take only three kinds of values of "0011" or "0010" or "0001". Further, this value does not represent the cache CMi to be held,
'0011' represents waiting for the arrival of 3 ACKs, '0010' represents waiting for the arrival of 2 ACKs, and '0001' represents the arrival of 1 ACK. It means that. The initial value of the directory state in the directory memory 43 is C, and the latest block exists in the main memory 46.

【0036】また、第1の実施の形態におけるデータ一
貫性維持制御方法では、キャッシュCMiとメモリMM
iの間でやり取りされるメッセージには、RM,WS,
WB,FR,IV,FD,ACK,SDR,EDR,C
R,NCRの11種類のメッセージが存在し、それぞれ
次のような意味を持つ。
Further, according to the data consistency maintenance control method in the first embodiment, the cache CMi and the memory MM are
Messages exchanged between i include RM, WS,
WB, FR, IV, FD, ACK, SDR, EDR, C
There are 11 types of messages, R and NCR, which have the following meanings.

【0037】RMメッセージは、キャッシュミスが発生
した場合に、キャッシュCMiからメモリMMiに対し
て発行される読み出し要求メッセージである。WSメッ
セージは、ライトシェアードが発生した場合に、キャッ
シュCMiからメモリMMiに対して発行される書き込
み要求メッセージである。このWSメッセージには、プ
ロセッサが行った書き込みのデータが付加される。WB
メッセージは、置き換え対象となったブロックを書き戻
す場合に発せられる書き戻しメッセージである。このW
Bメッセージには、置き換え対象となったブロックが付
加される。FRメッセージは、RMメッセージを受信し
たメモリMMiが、最新のブロックを保持するキャッシ
ュCMiに対して発行する、書き戻し要求メッセージで
ある。IVメッセージは、WSメッセージを受信したメ
モリMMiが、ブロックを保持するキャッシュCMiに
対して発行する、無効化要求メッセージである。FDメ
ッセージは、FRメッセージを受信したキャッシュCM
iが、メモリMMiに対して発行する、書き戻しメッセ
ージである。このFDメッセージには、キャッシュCM
iが保持していた最新のブロックが付加される。ACK
メッセージは、FRまたはIVメッセージを受信したキ
ャッシュCMiが、メモリMMiに対して発行する応答
メッセージである。SDRおよびEDRメッセージは、
メモリMMiが、RMメッセージを発行したキャッシュ
CMiに対して、RMメッセージのためのデータ一貫性
維持制御のための処理がメモリMMiで完了したことを
通知する応答メッセージである。このSDRおよびED
Rメッセージには、最新のブロックが付加される。CR
メッセージは、メモリMMiが、WSメッセージを発行
したキャッシュCMiに対して、WSメッセージのため
の処理がメモリMMiで完了したことを通知する応答メ
ッセージである。NCRメッセージは、メモリMMiに
おいて、RMまたはWSメッセージを処理できなかった
場合に、RMまたはWSメッセージを発行したキャッシ
ュCMiに対してその旨を通知するメッセージである。
The RM message is a read request message issued from the cache CMi to the memory MMi when a cache miss occurs. The WS message is a write request message issued from the cache CMi to the memory MMi when write sharing occurs. The data written by the processor is added to this WS message. WB
The message is a write-back message that is issued when the block to be replaced is written back. This W
The block to be replaced is added to the B message. The FR message is a write-back request message issued by the memory MMi receiving the RM message to the cache CMi holding the latest block. The IV message is an invalidation request message issued by the memory MMi receiving the WS message to the cache CMi holding the block. The FD message is the cache CM that received the FR message.
i is a write-back message issued to the memory MMi. This FD message contains a cache CM
The latest block held by i is added. ACK
The message is a response message issued to the memory MMi by the cache CMi that has received the FR or IV message. SDR and EDR messages are
The memory MMi is a response message that notifies the cache CMi that issued the RM message that the processing for the data consistency maintenance control for the RM message has been completed in the memory MMi. This SDR and ED
The latest block is added to the R message. CR
The message is a response message in which the memory MMi notifies the cache CMi that issued the WS message that the processing for the WS message has been completed in the memory MMi. The NCR message is a message notifying the cache CMi that issued the RM or WS message when the RM or WS message cannot be processed in the memory MMi.

【0038】また、メッセージはヘッダ部とデータ部と
で構成され、RM,FR,IV,ACK,CR,NCR
の6種類のメッセージはヘッダ部のみで構成される。ま
た、WSメッセージは、ヘッダ部と、プロセッサが行っ
た書き込みのデータからなるデータ部とで構成される。
また、WB,FD,SDR,EDRの4種類のメッセー
ジは、ヘッダ部とブロック単位のデータからなるデータ
部とで構成される。
The message is composed of a header part and a data part, and includes RM, FR, IV, ACK, CR and NCR.
The six types of messages are composed only of the header part. The WS message is composed of a header part and a data part composed of data written by the processor.
The four types of messages, WB, FD, SDR, and EDR, are composed of a header part and a data part composed of data in block units.

【0039】図5を参照しながら、メッセージヘッダ部
の構成を説明する。
The structure of the message header section will be described with reference to FIG.

【0040】メッセージヘッダは、宛先装置番号、メッ
セージ識別子、アドレス、要求元装置番号の5つのフィ
ールドから構成される。宛先装置番号フィールドは、相
互結合網12のどのポートに接続されたキャッシュCM
iまたはメモリMMiに配送するメッセージであるかを
示すもので、例えば‘101’の場合、ポート5に接続
されたメモリMM2宛にメッセージが配送される。メッ
セージ識別子フィールドは、当該メッセージが11種類
のメッセージの内どのメッセージであるかを示すもので
ある。11種類のメッセージを識別する。アドレスフィ
ールドは、各メッセージがどのアドレスに対するメッセ
ージであるかを示すものである。要求元装置番号フィー
ルドは、各メッセージがどのプロセッサPRiで行われ
たメモリアクセスに起源するものかを、そのプロセッサ
PRiに接続されているキャッシュCMiの装置番号で
示すものである。例えば、プロセッサPR1で行われた
メモリアクセスを起源とするメッセージであれば、その
メッセージの要求元装置番号は‘000’となる。
The message header is composed of five fields: destination device number, message identifier, address, and request source device number. The destination device number field is a cache CM connected to which port of the interconnection network 12.
i or a message to be delivered to the memory MMi. For example, in the case of "101", the message is delivered to the memory MM2 connected to the port 5. The message identifier field indicates which of the 11 types of messages the message is. Identify 11 types of messages. The address field indicates to which address each message is addressed. The request source device number field indicates by which processor PRi each message originated in the memory access performed by the device number of the cache CMi connected to the processor PRi. For example, if the message originates from the memory access made by the processor PR1, the request source device number of the message is '000'.

【0041】次に、第1の実施の形態におけるデータ一
貫性維持制御方法で、プロセッサPR1がメモリMM2
のデータをアクセスした場合を例にとり、そのアクセス
によって行われるデータ一貫性維持制御のための一連の
動作を図を参照しながら説明する。
Next, in the data consistency maintenance control method according to the first embodiment, the processor PR1 causes the memory MM2 to operate.
Taking the case of accessing the data of 1. as an example, a series of operations for data consistency maintenance control performed by the access will be described with reference to the drawings.

【0042】まず、プロセッサPR1がメモリアクセス
を発行すると、メモリアクセス管理部21はそのメモリ
アクセスを内部に取り込む。取り込まれるのは、読み出
しアクセスか書き込みアクセスかを識別するメモリアク
セスコマンド、アクセス対象を示すアドレス、書き込み
アクセスの場合はデータ、である。コマンドおよびアド
レスは第1一貫性維持制御部23に供給され、データは
第1データ制御部24に供給されている。
First, when the processor PR1 issues a memory access, the memory access management unit 21 fetches the memory access inside. What is fetched is a memory access command for identifying read access or write access, an address indicating an access target, and data in the case of write access. The command and address are supplied to the first consistency maintenance control unit 23, and the data is supplied to the first data control unit 24.

【0043】第1一貫性維持制御部23は、メモリアク
セス管理部21にメモリアクセスが取り込まれたのを検
知し、メモリアクセス管理部21に格納されているメモ
リアドレスから、対応するブロックのタグステートをタ
グメモリ22から読み出し、その値によりどのような処
理をするかを判断する。
The first consistency maintenance control unit 23 detects that the memory access management unit 21 has fetched the memory access, and based on the memory address stored in the memory access management unit 21, the tag state of the corresponding block. Is read from the tag memory 22 and what value is to be processed is determined based on the value.

【0044】まず、タグステートが‘I’であった場
合、即ちキャッシュミスの場合の動作を説明する。
First, the operation when the tag state is "I", that is, when there is a cache miss will be described.

【0045】この場合に、キャッシュメモリ25にメモ
リアクセスのあったアドレスのブロックを取り込むため
の空きスペースが無かった場合、既にキャッシュメモリ
25に存在する他のブロックと置き換える必要が生じ
る。置き換えの必要がなかった場合は、第1一貫性維持
制御部23はアドレスから特定されるメモリMMi(こ
こではメモリMM2である)に対してRMメッセージを
送信する処理から開始する。
In this case, if there is no free space in the cache memory 25 for fetching the block of the memory accessed address, it is necessary to replace it with another block already existing in the cache memory 25. If the replacement is not necessary, the first consistency maintenance control unit 23 starts from the process of transmitting the RM message to the memory MMi (here, the memory MM2) specified by the address.

【0046】置き換えが必要であり、置き換えの対象と
なったブロックのタグステートが‘D’であった場合、
このブロックがシステムで唯一最新のブロックであるの
で、そのブロックを管理するメモリMMiに対して書き
戻しの処理をまず行う必要がある。図6および図7にこ
の場合のシーケンスフローを示す。図は、置き換え対象
となったブロックがメモリMM3で管理されているブロ
ックの場合を示している。
If replacement is necessary and the tag state of the block to be replaced is'D ',
Since this block is the only newest block in the system, it is necessary to first perform the write-back process on the memory MMi that manages the block. 6 and 7 show the sequence flow in this case. The figure shows a case where the block to be replaced is a block managed by the memory MM3.

【0047】第1一貫性維持制御部23は、まずWBメ
ッセージのヘッダ部を生成し第1メッセージ送信部27
に供給する。この時生成されるメッセージヘッダの宛先
装置番号はメモリMM3を表す‘110’となり、メッ
セージ識別子はWBを表す識別子に、アドレスは置き換
えの対象となったブロックのアドレスに、要求元装置番
号は当該キャッシュCM1の装置番号を表す‘000’
になる。また、第1一貫性維持制御部23は、第1デー
タ制御部24に対してキャッシュメモリ25から置き換
えの対象となったブロックを読み出すように指示し、読
み出されたブロックは第1メッセージ送信部27にWB
メッセージのデータ部として供給される。第1メッセー
ジ送信部27は、第1一貫性維持制御部23から供給さ
れるヘッダ部と第1データ制御部24から供給されるデ
ータ部をあわせて、相互結合網12にメッセージを送出
する。また、第1一貫性維持制御部23は、タグメモリ
22の書き込みを行い、置き換えの対象となったブロッ
クのタグステートを‘I’に更新する。
The first consistency maintenance control section 23 first generates the header section of the WB message, and then the first message transmission section 27.
To supply. The destination device number of the message header generated at this time is '110' indicating the memory MM3, the message identifier is the identifier indicating WB, the address is the address of the block to be replaced, and the request source device number is the cache concerned. '000' that represents the device number of CM1
become. Further, the first coherence maintenance control unit 23 instructs the first data control unit 24 to read the block that is the replacement target from the cache memory 25, and the read block is the first message transmission unit. 27 to WB
Supplied as the data part of the message. The first message sending unit 27 sends the message to the mutual connection network 12 together with the header part supplied from the first consistency maintenance control unit 23 and the data part supplied from the first data control unit 24. Further, the first consistency maintenance control unit 23 writes the tag memory 22 and updates the tag state of the block which is the replacement target to “I”.

【0048】送出されたWBメッセージは、相互結合網
12によって配送され、メモリMM3の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給され、デー
タ部が第2データ制御部45に供給されている。
The transmitted WB message is delivered by the mutual connection network 12 and taken into the second message receiving unit 41 of the memory MM3. The header part of the fetched message is supplied to the second consistency maintenance control part 44, and the data part is supplied to the second data control part 45.

【0049】メモリMM3の第2一貫性維持制御部44
は、第2メッセージ受信部41にWBメッセージが取り
込まれたのを検出し、第2メッセージ受信部41に格納
されたヘッダ部のアドレスから、対応するブロックのデ
ィレクトリステートおよびディレクトリマップをディレ
クトリメモリ43から読み出し、その値によりどのよう
な処理をするかを判断する。この時、ディレクトリステ
ートが取り得る値は、方法上‘M’または‘RMP’に
限定される。
The second consistency maintenance control unit 44 of the memory MM3
Detects that the WB message has been taken into the second message receiving unit 41, and from the address of the header portion stored in the second message receiving unit 41, the directory state and the directory map of the corresponding block from the directory memory 43. It is read, and what kind of processing is performed is determined according to the value. At this time, the possible values of the directory state are limited to'M 'or'RMP' in the method.

【0050】ディレクトリステートがMであった場合、
図6に示すシーケンスとなる。第2一貫性維持制御部4
4はディレクトリメモリ43の書き込みを行い、ディレ
クトリステートをCに、ディレクトリマップをどのキャ
ッシュCMiもブロックを保持していないことを表す
‘0000’に更新する。また、第2一貫性維持制御部
44は、第2データ制御部45にWBメッセージに付加
されていたブロックをメインメモリ46の対応するブロ
ックへ書き込ませる。
If the directory state is M,
The sequence is shown in FIG. Second consistency maintenance control unit 4
4 writes in the directory memory 43, and updates the directory state to C and the directory map to '0000' indicating that no cache CMi holds the block. Further, the second consistency maintenance control unit 44 causes the second data control unit 45 to write the block added to the WB message to the corresponding block of the main memory 46.

【0051】ディレクトリステートがRMPであった場
合、図7に示すシーケンスとなる。第2一貫性維持制御
部44は、第2データ制御部45にWBメッセージに付
加されていたブロックをメインメモリ46の対応するブ
ロックへ書き込ませるのみとし、ディレクトリメモリ4
3の更新は行わない。
When the directory state is RMP, the sequence is as shown in FIG. The second consistency maintenance control unit 44 only causes the second data control unit 45 to write the block added to the WB message to the corresponding block of the main memory 46, and the directory memory 4
3 is not updated.

【0052】以上が、置き換えが必要であり、置き換え
の対象となったブロックのタグステートが‘D’であっ
た場合のシーケンスである。
The above is the sequence in the case where replacement is necessary and the tag state of the block to be replaced is'D '.

【0053】次に、置き換えが必要であり、置き換えの
対象となったブロックのタグステートが‘D’以外であ
った場合、第1一貫性維持制御部23はタグメモリ22
の書き込みを行い、書き換えの対象となったブロックの
タグステートを‘I’に更新する。
Next, when the replacement is necessary and the tag state of the block that is the replacement target is other than'D ', the first consistency maintenance control unit 23 causes the tag memory 22 to operate.
Is written, and the tag state of the block that has been rewritten is updated to'I '.

【0054】第1一貫性維持制御部23において、上記
置き換えのための処理が完了すると、第1一貫性維持制
御部23はRMメッセージのヘッダ部を生成し第1メッ
セージ送信部27に供給する。この時生成されるメッセ
ージヘッダの宛先装置番号はメモリMM2を表す‘10
1’となり、メッセージ長はRMメッセージの長さに、
メッセージ識別子はRMを表す識別子に、アドレスはメ
モリアクセス管理部21に格納されているアドレスに、
要求元装置番号は当該キャッシュCM1の装置番号を表
す‘000’になる。第1メッセージ送信部27は、第
1一貫性維持制御部23から供給されるヘッダ部をメッ
セージとして相互結合網12に送出する(図8,図9,
図10,図11,図12に共通のシーケンス)。
When the replacement processing is completed in the first consistency maintenance control unit 23, the first consistency maintenance control unit 23 generates the header part of the RM message and supplies it to the first message transmission unit 27. The destination device number of the message header generated at this time is "10" indicating the memory MM2.
1 ', the message length is the length of the RM message,
The message identifier is an identifier representing RM, the address is an address stored in the memory access management unit 21,
The request source device number is "000" indicating the device number of the cache CM1. The first message transmission unit 27 sends the header portion supplied from the first consistency maintenance control unit 23 as a message to the mutual connection network 12 (FIG. 8, FIG. 9, FIG.
Sequence common to FIGS. 10, 11, and 12).

【0055】送出されたRMメッセージは、相互結合網
12によって配送され、メモリMM2の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給されてい
る。
The RM message sent out is delivered by the mutual connection network 12 and taken into the second message receiving unit 41 of the memory MM2. The header part of the fetched message is supplied to the second consistency maintenance control unit 44.

【0056】メモリMM2の第2一貫性維持制御部44
は、第2メッセージ受信部41にRMメッセージが取り
込まれたのを検出し、第2メッセージ受信部41に格納
されたヘッダ部のアドレスから、対応するブロックのデ
ィレクトリステートおよびディレクトリマップをディレ
クトリメモリ43から読み出し、その値によりどのよう
な処理をするかを判断する。
The second consistency maintenance control unit 44 of the memory MM2
Detects that the RM message has been taken in by the second message receiving unit 41, and from the address of the header portion stored in the second message receiving unit 41, the directory state and the directory map of the corresponding block are read from the directory memory 43. It is read, and what kind of processing is performed is determined according to the value.

【0057】ディレクトリステートがCで、かつディレ
クトリマップの値がRMメッセージを発行したキャッシ
ュCMi(メッセージに付加されていた要求元装置番号
から特定され、この場合はキャッシュCMiとなる)以
外にブロックを保持するキャッシュCMiが存在しない
ことを表す場合(ここでは、ディレクトリマップが‘0
000’または‘0001’の場合である)図8に示す
シーケンスとなる。
The directory state is C, and the value of the directory map is held in a block other than the cache CMi that issued the RM message (identified from the request source device number added to the message, and in this case, the cache CMi). Cache CMi that does not exist (here, the directory map is' 0
The sequence shown in FIG. 8 is obtained (in the case of 000 'or' 0001 ').

【0058】第2一貫性維持制御部44は、まずEDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いうメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はEDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、メインメモリ46
から第2メッセージ受信部41に格納されているメッセ
ージヘッダ部のアドレスで特定されるブロックの読み出
しを指示する。第2データ制御部45は読み出したブロ
ックをEDRメッセージのデータ部として第2メッセー
ジ送信部42に供給する。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
と第2データ制御部45から供給されるデータ部をあわ
せて、相互結合網12にメッセージを送出する。また、
第2一貫性維持制御部44は、ディレクトリメモリ43
の書き込みを行い、ディレクトリステートをMに、また
ディレクトリマップを‘0001’に遷移させる。この
ディレクトリマップの値は、RMメッセージを発行した
キャッシュCM1に対応するビットを‘1’とし、他の
ビットを‘0’とする操作を行った結果得られる値であ
る。
The second consistency maintenance control unit 44 first determines the EDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is EDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
To the second data control unit 45, the main memory 46
To read the block specified by the address of the message header section stored in the second message receiving section 41. The second data control unit 45 supplies the read block to the second message transmission unit 42 as the data portion of the EDR message. Second message sending unit 42
Sends the message to the mutual connection network 12 by combining the header part supplied from the second consistency maintenance control part 44 and the data part supplied from the second data control part 45. Also,
The second consistency maintenance control unit 44 uses the directory memory 43.
Is written, and the directory state is changed to M and the directory map is changed to '0001'. The value of this directory map is a value obtained as a result of performing the operation of setting the bit corresponding to the cache CM1 that issued the RM message to "1" and setting the other bits to "0".

【0059】送出されたEDRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第2一貫性維持制御部44に供給され、
データ部は第1データ制御部24に供給されている。
The sent EDR message is delivered by the mutual connection network 12 and taken into the first message receiving unit 26 of the cache CM1. The header part of the captured message is supplied to the second consistency maintenance control unit 44,
The data section is supplied to the first data control section 24.

【0060】キャッシュCM1の第1一貫性維持制御部
23は、第1メッセージ受信部26にEDRメッセージ
が取り込まれたのを検出し、第1データ制御部24に対
してキャッシュメモリ25へのEDRメッセージに付加
されていたブロックデータの取り込みを指示する。ま
た、第1一貫性維持制御部23は、タグメモリ22の書
き込みを行い、対応するブロックのタグステートを
‘E’に更新する。
The first coherency maintenance control unit 23 of the cache CM 1 detects that the EDR message is fetched by the first message receiving unit 26, and the first data control unit 24 sends the EDR message to the cache memory 25. It is instructed to take in the block data added to. In addition, the first consistency maintenance control unit 23 writes the tag memory 22 and updates the tag state of the corresponding block to “E”.

【0061】第1一貫性維持制御部23はその後、再度
メモリアクセス管理部21に格納されているメモリアク
セスを評価し、データ一貫性維持のために必要な処理を
行う。
After that, the first consistency maintenance control unit 23 again evaluates the memory access stored in the memory access management unit 21 and performs the necessary processing for maintaining the data consistency.

【0062】次に、RMメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートがCで、かつディレクトリマップの値がRM
メッセージを発行したキャッシュCMi(ここではキャ
ッシュCM1である)以外にブロックを保持するキャッ
シュCMiが存在することを表す場合(ここでは、キャ
ッシュCM1がRMメッセージを発行しているので、デ
ィレクトリマップが‘0000’または‘0001’以
外の場合である)、図9に示すシーケンスとなる。
Next, the second consistency maintenance control unit 44 of the memory MM2 that has received the RM message reads the directory state and the directory map of the corresponding block of the directory memory 43, and as a result, the directory state is C and the directory is Map value is RM
When it indicates that there is a cache CMi that holds a block other than the cache CMi that issued the message (here, the cache CM1) (here, since the cache CM1 issues the RM message, the directory map is' 0000. The sequence shown in FIG. 9 is obtained in the case other than'or '0001).

【0063】第2一貫性維持制御部44は、まずSDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はSDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、メインメモリ46
から第2メッセージ受信部41に格納されているメッセ
ージヘッダ部のアドレスで特定されるブロックの読み出
しを指示する。第2データ制御部45は読み出したブロ
ックをSDRメッセージのデータ部として第2メッセー
ジ送信部42に供給する。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
と第2データ制御部45から供給されるデータ部をあわ
せて、相互結合網12にメッセージを送出する。また、
第2一貫性維持制御部44は、ディレクトリメモリ43
の書き込みを行い、ディレクトリステートをCに、ディ
レクトリマップの値を‘1101’に遷移させる。この
ディレクトリマップの値は、RMメッセージを受け取る
直前のディレクトリマップの値に対して、第2メッセー
ジ受信部41に格納されている要求元装置番号から特定
されるキャッシュCM1に対応するビットを‘1’にす
る操作を行った結果得られる値である。
The second consistency maintenance control unit 44 first determines the SDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is SDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
To the second data control unit 45, the main memory 46
To read the block specified by the address of the message header section stored in the second message receiving section 41. The second data control unit 45 supplies the read block to the second message transmission unit 42 as the data portion of the SDR message. Second message sending unit 42
Sends the message to the mutual connection network 12 by combining the header part supplied from the second consistency maintenance control part 44 and the data part supplied from the second data control part 45. Also,
The second consistency maintenance control unit 44 uses the directory memory 43.
Is written, and the directory state is changed to C and the value of the directory map is changed to “1101”. The value of this directory map is "1" for the bit corresponding to the cache CM1 specified by the request source device number stored in the second message receiving unit 41, with respect to the value of the directory map immediately before receiving the RM message. This is the value obtained as a result of performing the operation.

【0064】送出されたSDRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第2一貫性維持制御部44に供給され、
データ部は第1データ制御部24に供給されている。
The sent SDR message is delivered by the mutual connection network 12 and taken into the first message receiving unit 26 of the cache CM1. The header part of the captured message is supplied to the second consistency maintenance control unit 44,
The data section is supplied to the first data control section 24.

【0065】キャッシュCM1の第1一貫性維持制御部
23は、第1メッセージ受信部26にSDRメッセージ
が取り込まれたのを検出し、第1データ制御部24に対
してキャッシュメモリ25へのSDRメッセージに付加
されていたブロックデータの取り込みを指示する。ま
た、第1一貫性維持制御部23は、タグメモリ22の書
き込みを行い、対応するブロックのタグステートを
‘S’に更新する。
The first coherency maintenance control unit 23 of the cache CM 1 detects that the SDR message has been taken in by the first message receiving unit 26, and the first data control unit 24 sends the SDR message to the cache memory 25. It is instructed to take in the block data added to. Further, the first consistency maintenance control unit 23 writes the tag memory 22 and updates the tag state of the corresponding block to'S '.

【0066】第1一貫性維持制御部23はその後、再度
メモリアクセス管理部21に格納されているメモリアク
セスを評価し、データ一貫性維持のために必要な処理を
行う。
The first consistency maintenance control unit 23 then evaluates the memory access stored in the memory access management unit 21 again, and performs the necessary processing for maintaining the data consistency.

【0067】次に、RMメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートがMであった場合、図10または図11に示
すシーケンスとなる。この場合、ディレクトリマップに
より、最新のブロックを保持するキャッシュCMiが唯
一定まる。図10および図11に示した例では、ディレ
クトリマップの値は‘0100’であるので、キャッシ
ュCM3が唯一最新のデータを保持していることが確認
できる。
Next, when the second consistency maintenance control unit 44 of the memory MM2 receiving the RM message reads the directory state and the directory map of the corresponding block of the directory memory 43, and the directory state is M, , Or the sequence shown in FIG. In this case, the directory map uniquely determines the cache CMi holding the latest block. In the example shown in FIG. 10 and FIG. 11, the value of the directory map is “0100”, so it can be confirmed that the cache CM3 holds only the latest data.

【0068】第2一貫性維持制御部44は、まずFRメ
ッセージのヘッダ部を生成し第2メッセージ送信部42
に供給する。この時生成されるメッセージヘッダの宛先
装置番号は、最新のブロックを保持するキャッシュCM
3を表す‘010’となり、メッセージ識別子はFRを
表す識別子に、アドレスおよび要求元装置番号は第2メ
ッセージ受信部41に格納されているメッセージヘッダ
部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして、相互結合網12に送出する。また、第2
一貫性維持制御部44は、ディレクトリメモリ43の書
き込みを行い、ディレクトリステートをRMPに更新す
るが、ディレクトリマップはそのままとする。
The second consistency maintenance control unit 44 first generates the header portion of the FR message and then the second message transmission unit 42.
To supply. The destination device number of the message header generated at this time is the cache CM holding the latest block.
3 becomes '010', the message identifier is an identifier representing FR, the address and the request source device number are the address of the message header part stored in the second message receiving unit 41 and the request source device number (here, "00").
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message. Also, the second
The consistency maintenance control unit 44 writes the directory memory 43 and updates the directory state to RMP, but leaves the directory map as it is.

【0069】送出されたFRメッセージは相互結合網1
2によって配送され、キャッシュCM3の第1メッセー
ジ受信部26に取り込まれる。取り込まれたメッセージ
のヘッダ部は第2一貫性維持制御部44に供給されてい
る。
The FR message transmitted is the mutual connection network 1
2 and is received by the first message receiving unit 26 of the cache CM 3. The header part of the fetched message is supplied to the second consistency maintenance control unit 44.

【0070】キャッシュCM3の第1一貫性維持制御部
23は、第1メッセージ受信部26にFRメッセージが
取り込まれたのを検出し、第1メッセージ受信部26に
格納されているヘッダ部のアドレスから、対応するブロ
ックのタグステートをタグメモリ22から読み出し、そ
の値によりどのような処理をするかを判断する。この
時、タグステートが取り得る値は、‘I’または‘E’
または‘D’であり、‘S’であることはあり得ない。
The first consistency maintenance control unit 23 of the cache CM 3 detects that the FR message has been fetched into the first message receiving unit 26, and from the address of the header portion stored in the first message receiving unit 26. , The tag state of the corresponding block is read from the tag memory 22, and what value to perform is determined based on the value. At this time, the value that the tag state can take is'I 'or'E'.
Or it can be'D 'and'S'.

【0071】タグステートが‘E’または‘D’で最新
のブロックが存在した場合、図10に示すシーケンスと
なる。
When the tag state is "E" or "D" and the latest block exists, the sequence is as shown in FIG.

【0072】第1一貫性維持制御部23は、まずFDメ
ッセージのヘッダ部を生成し第1メッセージ送信部27
に供給する。この時生成されるメッセージヘッダの宛先
装置番号は第1メッセージ受信部26に格納されている
ヘッダ部のアドレスから特定されるメモリMMiを表す
装置番号となり(ここではアドレスからメモリMM2が
特定され宛先装置番号は‘101’となる)、メッセー
ジ識別子はFDを表す識別子に、アドレスおよび要求元
装置番号は第2メッセージ受信部41に格納されている
メッセージヘッダ部のアドレスおよび要求元装置番号
(ここでは‘000’である)になる。また、第1一貫
性維持制御部23は、第1データ制御部24に対してキ
ャッシュメモリ25から第1メッセージ受信部26に格
納されているアドレスから特定されるブロックを読み出
すように指示し、読み出されたブロックは第1メッセー
ジ送信部27にFDメッセージのデータ部として供給さ
れる。第1メッセージ送信部27は、第1一貫性維持制
御部23から供給されるヘッダ部と第1データ制御部2
4から供給されるデータ部をあわせて、相互結合網12
にメッセージを送出する。また、第1一貫性維持制御部
23は、タグメモリ22の書き込みを行い、対応するブ
ロックのタグステートを‘S’に更新する。
The first consistency maintenance control section 23 first generates the header section of the FD message, and then the first message transmission section 27.
To supply. The destination device number of the message header generated at this time is the device number representing the memory MMi specified from the address of the header part stored in the first message receiving unit 26 (here, the memory MM2 is specified from the address and the destination device number is specified). The number is "101"), the message identifier is an identifier representing the FD, the address and the request source device number are the address of the message header part and the request source device number stored in the second message receiving unit 41 (here, " 000 '). In addition, the first consistency maintenance control unit 23 instructs the first data control unit 24 to read the block specified from the address stored in the first message receiving unit 26 from the cache memory 25, and reads the block. The issued block is supplied to the first message transmitting unit 27 as the data portion of the FD message. The first message transmission unit 27 includes a header unit supplied from the first consistency maintenance control unit 23 and the first data control unit 2
The data part supplied from 4 together, the mutual connection network 12
Send a message to. Further, the first consistency maintenance control unit 23 writes the tag memory 22 and updates the tag state of the corresponding block to'S '.

【0073】送出されたFDメッセージは相互結合網1
2によって配送され、メモリMM2の第2メッセージ受
信部41に取り込まれる。取り込まれたメッセージのヘ
ッダ部は第2一貫性維持制御部44に供給され、データ
部は第2データ制御部45に供給される。
The transmitted FD message is the mutual connection network 1
2 and is received by the second message receiving unit 41 of the memory MM2. The header part of the fetched message is supplied to the second consistency maintenance control part 44, and the data part is supplied to the second data control part 45.

【0074】メモリMM2の第2一貫性維持制御部44
は、第2メッセージ受信部41にFDメッセージが取り
込まれたのを検出し、第2メッセージ受信部41に格納
されたヘッダ部のアドレスから、対応するブロックのデ
ィレクトリステートおよびディレクトリマップをディレ
クトリメモリ43から読み出す。この時、ディレクトリ
ステートが取り得る値は、方法上‘RMP’に限定され
る。
The second consistency maintenance control unit 44 of the memory MM2
Detects that the FD message has been taken into the second message receiving unit 41, and from the address of the header portion stored in the second message receiving unit 41, the directory state and the directory map of the corresponding block from the directory memory 43. read out. At this time, the value that the directory state can take is limited to'RMP 'in the method.

【0075】第2一貫性維持制御部44は、まずSDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はSDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、FDメッセージに
付加されていたブロックをメインメモリ46の対応する
ブロックへ書き込ませる。第2データ制御部45はメイ
ンメモリ46への書き込みを行うと同時に、FDメッセ
ージに付加されていたブロックをSDRメッセージのデ
ータ部として第2メッセージ送信部42にも供給する。
第2メッセージ送信部42は、第2一貫性維持制御部4
4から供給されるヘッダ部と第2データ制御部45から
供給されるデータ部をあわせて、相互結合網12にメッ
セージを送出する。また、第2一貫性維持制御部44
は、ディレクトリメモリ43の書き込みを行い、ディレ
クトリステートをCに、ディレクトリマップの値を‘1
101’に遷移させる。このディレクトリマップの値
は、FDメッセージを受け取る直前のディレクトリマッ
プの値に対して、第2メッセージ受信部41に格納され
ている要求元装置番号から特定されるキャッシュCM1
に対応するビットを‘1’にする操作を行った結果得ら
れる値である。
The second consistency maintenance control unit 44 first determines the SDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is SDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
Causes the second data control unit 45 to write the block added to the FD message to the corresponding block of the main memory 46. The second data control unit 45 performs writing to the main memory 46, and at the same time, supplies the block added to the FD message to the second message transmission unit 42 as the data portion of the SDR message.
The second message transmission unit 42 uses the second consistency maintenance control unit 4
A message is sent to the mutual connection network 12 by combining the header part supplied from No. 4 and the data part supplied from the second data control unit 45. In addition, the second consistency maintenance control unit 44
Writes to the directory memory 43, sets the directory state to C, and sets the value of the directory map to '1.
Transition to 101 '. The value of this directory map is the cache CM1 specified from the request source device number stored in the second message receiving unit 41 with respect to the value of the directory map immediately before receiving the FD message.
It is a value obtained as a result of performing the operation of setting the bit corresponding to to "1".

【0076】送出されたSDRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第1一貫性維持制御部23に供給され、
データ部は第1データ制御部24に供給される。
The sent SDR message is delivered by the mutual connection network 12 and taken into the first message receiving unit 26 of the cache CM1. The header part of the captured message is supplied to the first consistency maintenance control unit 23,
The data section is supplied to the first data control section 24.

【0077】キャッシュCM1の第1一貫性維持制御部
23が、第1メッセージ受信部26にSDRメッセージ
が取り込まれたのを検出した場合の動作は、図9に示す
シーケンスでキャッシュCM1がSDRメッセージを受
け取った場合と同一である。
When the first consistency maintenance control unit 23 of the cache CM1 detects that the SDR message has been fetched by the first message receiving unit 26, the cache CM1 sends the SDR message in the sequence shown in FIG. It is the same as when you received it.

【0078】次に、FRメッセージを受け取ったキャッ
シュCM3の第1一貫性維持制御部23が、タグメモリ
22の対応するブロックのタグステートを読み出した結
果、タグステートが‘I’であった場合、図11に示す
シーケンスとなる。
Next, when the first coherency maintenance control unit 23 of the cache CM3 that has received the FR message reads the tag state of the corresponding block of the tag memory 22 and the tag state is'I ', The sequence is shown in FIG.

【0079】第1一貫性維持制御部23は、まずACK
メッセージのヘッダ部を生成し第1メッセージ送信部2
7に供給する。この時生成されるメッセージヘッダの宛
先装置番号は第1メッセージ受信部26に格納されてい
るヘッダ部のアドレスから特定されるメモリMMiを表
す装置番号となり(ここではアドレスからメモリMM2
が特定される宛先装置番号は‘101’となる)、メッ
セージ識別子はACKを表す識別子に、アドレスおよび
要求元装置番号は第2メッセージ受信部41に格納され
ているメッセージヘッダ部のアドレスおよび要求元装置
番号(ここでは‘000’である)になる。第1メッセ
ージ送信部27は、第1一貫性維持制御部23から供給
されるヘッダ部をメッセージとして相互結合網12に送
出する。
The first consistency maintenance control unit 23 first sends an ACK.
Generates a header part of the message and sends the first message sending part 2
7 The destination device number of the message header generated at this time is the device number representing the memory MMi specified from the address of the header part stored in the first message receiving unit 26 (here, from the address to the memory MM2.
Is 101), the message identifier is an identifier indicating ACK, and the address and request source device number are the address and request source of the message header part stored in the second message receiving unit 41. It becomes the device number (here, it is '000'). The first message transmission unit 27 sends the header portion supplied from the first consistency maintenance control unit 23 to the mutual connection network 12 as a message.

【0080】送出されたACKメッセージは相互結合網
12によって配送され、メモリMM2の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給される。
The sent ACK message is delivered by the mutual connection network 12 and taken into the second message receiving unit 41 of the memory MM2. The header part of the fetched message is supplied to the second consistency maintenance control unit 44.

【0081】メモリMM2の第2一貫性維持制御部44
は、第2メッセージ受信部41にACKメッセージが取
り込まれたのを検出し、第2メッセージ受信部41に格
納されたヘッダ部のアドレスから、対応するブロックの
ディレクトリステートおよびディレクトリマップをディ
レクトリメモリ43から読み出す。この時、ディレクト
リステートが取り得る値は、方法上‘WSP’と‘RM
P’に限定されるが、ここでは図11に示すシーケンス
でディレクトリステートが‘RMP’の場合を記す。
The second consistency maintenance control unit 44 of the memory MM2
Detects that the ACK message has been fetched by the second message receiving unit 41, and from the address of the header portion stored in the second message receiving unit 41, the directory state and the directory map of the corresponding block are read from the directory memory 43. read out. At this time, the possible values of the directory state are'WSP 'and'RM
Although limited to P ', here, the case where the directory state is'RMP' is described in the sequence shown in FIG.

【0082】第2一貫性維持制御部44は、まずEDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はEDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、メインメモリ46
から第2メッセージ受信部41に格納されているメッセ
ージヘッダ部のアドレスで特定されるブロックの読み出
しを指示する。第2データ制御部45は読み出したブロ
ックをEDRメッセージのデータ部として第2メッセー
ジ送信部42に供給する。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
と第2データ制御部45から供給されるデータ部をあわ
せて、相互結合網12にメッセージを送出する。また、
第2一貫性維持制御部44は、ディレクトリメモリ43
の書き込みを行い、ディレクトリステートをMに、また
ディレクトリマップを‘0001’に遷移させる。この
ディレクトリマップの値は、第2メッセージ受信部41
に格納されているメッセージヘッダ部の要求元装置番号
で特定されるキャッシュCMi(ここではキャッシュC
M1である)に対応するビットを‘1’とし、他のビッ
トを‘0’とする操作を行った結果得られる値である。
The second coherence maintenance control section 44 first determines the EDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is EDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
To the second data control unit 45, the main memory 46
To read the block specified by the address of the message header section stored in the second message receiving section 41. The second data control unit 45 supplies the read block to the second message transmission unit 42 as the data portion of the EDR message. Second message sending unit 42
Sends the message to the mutual connection network 12 by combining the header part supplied from the second consistency maintenance control part 44 and the data part supplied from the second data control part 45. Also,
The second consistency maintenance control unit 44 uses the directory memory 43.
Is written, and the directory state is changed to M and the directory map is changed to '0001'. The value of this directory map is the second message receiving unit 41.
Cache CMi specified by the request source device number of the message header section stored in
It is a value obtained as a result of performing the operation of setting the bit corresponding to M1) to "1" and setting the other bits to "0".

【0083】送出されたEDRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第2一貫性維持制御部44に供給され、
データ部は第1データ制御部24に供給されている。
The sent EDR message is delivered by the mutual connection network 12 and taken into the first message receiving unit 26 of the cache CM1. The header part of the captured message is supplied to the second consistency maintenance control unit 44,
The data section is supplied to the first data control section 24.

【0084】キャッシュCM1の第1一貫性維持制御部
23が、第1メッセージ受信部26にEDRメッセージ
が取り込まれたのを検出した場合の動作は、図8に示す
シーケンスでキャッシュCM1がEDRメッセージを受
け取った場合と同一である。
The operation when the first consistency maintenance control unit 23 of the cache CM1 detects that the EDR message is captured by the first message receiving unit 26 is the same as the cache CM1 in the sequence shown in FIG. It is the same as when you received it.

【0085】次に、RMメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートが‘RMP’または‘WSP’であった場
合、図12に示すシーケンスとなる。
Next, the second consistency maintenance control unit 44 of the memory MM2 having received the RM message reads the directory state and the directory map of the corresponding block of the directory memory 43, and as a result, the directory state is'RMP 'or' If it is WSP ′, the sequence is as shown in FIG.

【0086】第2一貫性維持制御部44は、まずNCR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はNCR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に供給されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして相互結合網12に送出する。
The second consistency maintenance control unit 44 first determines the NCR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is NCR.
Is the second identifier in the address and the request source device number.
The address of the message header portion supplied to the message receiving unit 41 and the request source device number (here, “00”).
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message.

【0087】送出されたNCRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第1一貫性維持制御部23に供給され
る。
The sent NCR message is delivered by the mutual connection network 12 and taken into the first message receiving unit 26 of the cache CM 1. The header part of the fetched message is supplied to the first consistency maintenance control unit 23.

【0088】キャッシュCM1の第1一貫性維持制御部
23は、第1メッセージ受信部26にNCRメッセージ
が取り込まれたのを検出し、再度メモリアクセス管理部
21に格納されているメモリアクセスを評価し、データ
一貫性維持のために必要な処理を行う。
The first consistency maintenance control unit 23 of the cache CM1 detects that the NCR message has been fetched by the first message receiving unit 26 and evaluates the memory access stored in the memory access management unit 21 again. , Perform necessary processing to maintain data consistency.

【0089】以上が、キャッシュミスの場合のデータ一
貫性維持のための動作である。
The above is the operation for maintaining the data consistency in the case of a cache miss.

【0090】次に、メモリアクセス管理部21にメモリ
アクセスが取り込まれたのを検知し、メモリアクセス管
理部21に格納されているアクセスから、対応するブロ
ックのタグステートをタグメモリ22から読み出した結
果、メモリアクセス管理部21に取り込まれたメモリア
クセスが読み出しで、タグステートが‘S’または
‘E’または‘D’であった場合(リードヒットの場
合)の動作を説明する。
Next, it is detected that the memory access is taken into the memory access management unit 21, and the tag state of the corresponding block is read from the tag memory 22 from the access stored in the memory access management unit 21. The operation when the memory access fetched by the memory access management unit 21 is read and the tag state is “S”, “E”, or “D” (in the case of read hit) will be described.

【0091】第1一貫性維持制御部23は、第1データ
制御部24に対してキャッシュメモリ25からメモリア
クセス管理部21に格納されているアドレスで特定され
るデータを読み出せる。読み出されたデータはメモリア
クセス管理部21に供給され、取り込まれる。メモリア
クセス管理部21に取り込まれたデータはプロセッサP
R1に供給される。また、第1一貫性維持制御部23は
プロセッサPR1に対してメモリアクセスの完了応答を
行い、プロセッサPR1にメモリアクセス管理部21が
供給するデータの取り込みを行わせ、読み出しアクセス
を完了させる。
The first consistency maintenance control unit 23 can read the data specified by the address stored in the memory access management unit 21 from the cache memory 25 to the first data control unit 24. The read data is supplied to and fetched by the memory access management unit 21. The data fetched by the memory access management unit 21 is the processor P.
It is supplied to R1. Further, the first consistency maintenance control unit 23 sends a memory access completion response to the processor PR1, causes the processor PR1 to fetch the data supplied by the memory access management unit 21, and completes the read access.

【0092】次に、メモリアクセス管理部21にメモリ
アクセスが取り込まれたのを検知し、メモリアクセス管
理部21に格納されているアドレスから、対応するブロ
ックのタグステートをタグメモリ22から読み出した結
果、メモリアクセス管理部21に取り込まれたメモリア
クセスが書き込みで、タグステートが‘E’または
‘D’であった場合の動作を説明する(ライトヒットの
場合)。
Next, it is detected that the memory access is taken into the memory access management unit 21, and the tag state of the corresponding block is read from the tag memory 22 from the address stored in the memory access management unit 21. The operation when the memory access fetched by the memory access management unit 21 is writing and the tag state is “E” or “D” will be described (in the case of a write hit).

【0093】第1一貫性維持制御部23は、第1データ
制御部23に、キャッシュメモリ25のメモリアクセス
管理部21が出力するアドレスから特定されるデータ
を、メモリアクセス管理部21が供給するデータに書き
換えさせる。また、第1一貫性維持制御部23は、タグ
メモリ22の書き込みを行い、タグステートを‘D’に
更新する。また、第1一貫性維持制御部23はプロセッ
サPR1に対してメモリアクセスの完了応答を行い、書
き込みアクセスを完了させる。
The first coherence maintenance control unit 23 supplies the first data control unit 23 with the data specified by the address output from the memory access management unit 21 of the cache memory 25 by the memory access management unit 21. To rewrite. Further, the first consistency maintenance control unit 23 writes the tag memory 22 and updates the tag state to'D '. Further, the first consistency maintenance control unit 23 sends a memory access completion response to the processor PR1 to complete the write access.

【0094】次に、メモリアクセス管理部21にメモリ
アクセスが取り込まれたのを検知し、メモリアクセス管
理部21に格納されているアドレスから、対応するブロ
ックのタグステートをタグメモリ22から読み出した結
果、メモリアドレス管理部21に取り込まれたメモリア
クセスが書き込みで、タグステートが‘S’であった場
合の動作を説明する(ライトシェアードの場合)。
Next, it is detected that the memory access is taken into the memory access management unit 21, and the tag state of the corresponding block is read from the tag memory 22 from the address stored in the memory access management unit 21. The operation when the memory access fetched by the memory address management unit 21 is writing and the tag state is'S 'will be described (in the case of write shared).

【0095】第1一貫性維持制御部23は、まずWSメ
ッセージのヘッダ部を生成し第1メッセージ送信部27
に供給する。この時生成されるメッセージヘッダの宛先
装置番号はメモリMM2を表す‘101’となり、メッ
セージ識別子はWSを表す識別子に、アドレスはメモリ
アクセス管理部21に格納されているアドレスに、要求
元装置番号は当該キャッシュCM1の装置番号を表す
‘000’になる。また、第1一貫性維持制御部23
は、第1データ制御部24に、キャッシュメモリ25の
メモリアクセス管理部21が出力するアドレスから特定
されるデータを、メモリアクセス管理部21が供給する
データに書き換えさせる。この時、第1データ制御部2
4はメモリアクセス管理部21が供給するデータをキャ
ッシュメモリ25に書き込むと同時に、第1メッセージ
送信部27にも供給する。第1メッセージ送信部27
は、第1一貫性維持制御部23から供給されるヘッダ部
と第1データ制御部24から供給されるデータ部を合わ
せて、相互結合網12にメッセージを送出する。
The first consistency maintenance control section 23 first generates the header section of the WS message, and then the first message transmission section 27.
To supply. The destination device number of the message header generated at this time is "101" indicating the memory MM2, the message identifier is the identifier indicating WS, the address is the address stored in the memory access management unit 21, and the request source device number is It becomes "000" which represents the device number of the cache CM1. In addition, the first consistency maintenance control unit 23
Causes the first data control unit 24 to rewrite the data specified by the address output by the memory access management unit 21 of the cache memory 25 with the data supplied by the memory access management unit 21. At this time, the first data control unit 2
4 writes the data supplied by the memory access management unit 21 into the cache memory 25 and, at the same time, supplies it to the first message transmission unit 27. First message sending unit 27
Sends the message to the mutual connection network 12 by combining the header section supplied from the first consistency maintenance control section 23 and the data section supplied from the first data control section 24.

【0096】送出されたWSメッセージは相互結合網1
2によって配送され、メモリMM2の第2メッセージ受
信部41に取り込まれる。取り込まれたメッセージのヘ
ッダ部は第2一貫性維持制御部44に供給され、データ
部は第2データ制御部45に供給される。
The transmitted WS message is the mutual connection network 1
2 and is received by the second message receiving unit 41 of the memory MM2. The header part of the fetched message is supplied to the second consistency maintenance control part 44, and the data part is supplied to the second data control part 45.

【0097】メモリMM2の第2一貫性維持制御部44
は、第2メッセージ受信部41にWSメッセージが取り
込まれたのを検出し、第2メッセージ受信部41に格納
されたヘッダ部のアドレスから、対応するブロックのデ
ィレクトリステートおよびディレクトリマップをディレ
クトリメモリ43から読み出す。この時、ディレクトリ
ステートが取り得る値は、方法上‘C’または‘WS
P’に限定される。また、ディレクトリステートがCの
場合は、WSメッセージを発行したキャッシュCM1に
対応するディレクトリマップのビットは必ず‘1’であ
る。
The second consistency maintenance control unit 44 of the memory MM2
Detects that the WS message has been taken in by the second message receiving unit 41, and from the address of the header portion stored in the second message receiving unit 41, the directory state and the directory map of the corresponding block are read from the directory memory 43. read out. At this time, the value that the directory state can take is'C 'or'WS due to the method.
Limited to P '. When the directory state is C, the bit of the directory map corresponding to the cache CM1 that issued the WS message is always "1".

【0098】ディレクトリステートが‘C’で、かつデ
ィレクトリマップの値がWSメッセージを発行したキャ
ッシュCMi以外にブロックを保持するキャッシュCM
iが存在しないことを表す場合(ここでは、キャッシュ
CM1がWSメッセージを発行しているので、ディレク
トリマップが‘0001’の場合である)図13に示す
シーケンスとなる。
A cache CM which holds a block other than the cache CMi whose directory state is'C 'and the value of the directory map issued the WS message.
When i indicates that i does not exist (here, since the cache CM1 issues the WS message, the directory map is "0001"), the sequence is as shown in FIG.

【0099】第2一貫性維持制御部44は、まずCRメ
ッセージのヘッダ部を生成し第2メッセージ送信部42
に供給する。この時生成されるメッセージヘッダの宛先
装置番号は、第2メッセージ受信部41に格納されてい
るメッセージヘッダ部の要求元装置番号となり(この場
合は‘000’である)、メッセージ識別子はCRを表
す識別子に、アドレスおよび要求元装置番号は第2メッ
セージ受信部41に格納されているメッセージヘッダ部
のアドレスおよび要求元装置番号(ここでは‘000’
である)となる。第2メッセージ送信部42は、第2一
貫性維持制御部44から供給されるヘッダ部をメッセー
ジとして相互結合網12に送出する。また、第2一貫性
維持制御部44は、第2データ制御部45に、メインメ
モリ46の第2メッセージ受信部41が出力するアドレ
スから特定されるデータを、第2メッセージ受信部41
が供給するデータに書き換えさせる。
The second consistency maintenance control unit 44 first generates the header portion of the CR message, and then the second message transmission unit 42.
To supply. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier represents CR. In the identifier, the address and the request source device number are the address and the request source device number of the message header part stored in the second message receiving unit 41 (here, “000”).
It becomes). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message. Further, the second consistency maintenance control unit 44 causes the second data control unit 45 to send the data specified by the address output from the second message reception unit 41 of the main memory 46 to the second message reception unit 41.
Rewrite the data supplied by.

【0100】送出されたCRメッセージは相互結合網1
2によって配送され、キャッシュCM1の第1メッセー
ジ受信部26に取り込まれる。取り込まれたメッセージ
のヘッダ部は第1一貫性維持制御部23に供給される。
The CR message sent is the mutual connection network 1
2 and is received by the first message receiving unit 26 of the cache CM 1. The header part of the fetched message is supplied to the first consistency maintenance control unit 23.

【0101】キャッシュCM1の第1一貫性維持制御部
23は、第1メッセージ受信部26にCRメッセージが
取り込まれたのを検出し、プロセッサPR1に対してメ
モリアクセスの完了応答を行い、書き込みアクセスを完
了させる。
The first coherency maintenance controller 23 of the cache CM1 detects that the CR message has been fetched by the first message receiver 26, sends a memory access completion response to the processor PR1, and executes write access. Let it complete.

【0102】次に、WSメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートがCであり、かつディレクトリマップの値が
WSメッセージを発行したキャッシュCMi以外にブロ
ックを保持するキャッシュのCMiが存在することを表
す場合(ここでは、キャッシュCM1がWSメッセージ
を発行しているので、ディレクトリマップの値が‘00
01’以外の場合である)図14に示すシーケンスとな
る。以降では、また図14に示した例では、WSメッセ
ージを受け取ったときのディレクトリマップの値が例え
ば‘1101’であった場合を説明する。
Next, the second consistency maintenance control unit 44 of the memory MM2 receiving the WS message reads the directory state and directory map of the corresponding block of the directory memory 43, and as a result, the directory state is C, and When the value of the directory map indicates that there is a cache CMi that holds the block other than the cache CMi that issued the WS message (here, since the cache CM1 issues the WS message, the value of the directory map is 00
The sequence shown in FIG. 14 is the case other than 01 '. In the following, in the example shown in FIG. 14, the case where the value of the directory map when the WS message is received is, for example, “1101” will be described.

【0103】第2一貫性維持制御部44はまず、キャッ
シュCM1が最新のブロックを保持しておりかつWSメ
ッセージを発行したキャッシュCMiではないかどうか
を検査する。この時、キャッシュCM1は、第2メッセ
ージ受信部41に格納された要求元装置番号よりWSメ
ッセージを発行したキャッシュCMiであるのでこの場
合は何も行わない。
The second coherency maintenance control unit 44 first checks whether or not the cache CM1 holds the latest block and is not the cache CMi which issued the WS message. At this time, since the cache CM1 is the cache CMi that has issued the WS message from the request source device number stored in the second message receiving unit 41, nothing is done in this case.

【0104】次に、第2一貫性維持制御部44は、キャ
ッシュCM2が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、ディレクトリマップの値‘11
01’より、キャッシュCM2は最新のデータを保持し
ていないのでこの場合も何も行わない。
Next, the second consistency maintenance control unit 44 determines that the cache CM2 holds the latest block and WS
It is checked whether it is not the cache CMi that issued the message. At this time, the value of the directory map is '11
From 01 ', since the cache CM2 does not hold the latest data, nothing is done also in this case.

【0105】次に、第2一貫性維持制御部44は、キャ
ッシュCM3が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、キャッシュCM3は最新のブロ
ックを保持しておりまたWSメッセージを発行したキャ
ッシュCMiではないので、次のような処理をする。第
2一貫性維持制御部44は、IVメッセージのヘッダ部
を生成し第2メッセージ送信部42に供給する。この時
生成されるメッセージヘッダの宛先装置番号は、キャッ
シュCM3を表す‘010’となり、メッセージ識別子
はIVを表す識別子に、アドレスおよび要求元装置番号
は第2メッセージ受信部41に格納されているメッセー
ジヘッダ部のアドレスおよび要求元装置番号(ここでは
‘000’である)となる。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
をメッセージとして、相互結合網12に送出する。
Next, the second consistency maintenance control unit 44 determines that the cache CM3 holds the latest block and WS
It is checked whether it is not the cache CMi that issued the message. At this time, since the cache CM3 holds the latest block and is not the cache CMi that issued the WS message, the following processing is performed. The second consistency maintenance control unit 44 generates the header part of the IV message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is “010” indicating the cache CM3, the message identifier is the identifier indicating IV, and the address and the request source device number are the messages stored in the second message receiving unit 41. The address of the header and the request source device number (here, “000”) are used. Second message sending unit 42
Sends the header part supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message.

【0106】次に、第2一貫性維持制御部44は、キャ
ッシュCM4が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、キャッシュCM4は最新のブロ
ックを保持しておりまたWSメッセージを発行したキャ
ッシュCMiではないので、前記したキャッシュCM3
の場合と同じくIVメッセージのヘッダ部を生成する。
ただし、宛先装置番号はキャッシュCM4を表す‘01
1’となる。
Next, the second coherency maintenance control unit 44 determines that the cache CM 4 holds the latest block and WS.
It is checked whether it is not the cache CMi that issued the message. At this time, since the cache CM 4 holds the latest block and is not the cache CMi that issued the WS message, the cache CM 3 described above is used.
The header part of the IV message is generated as in the case of
However, the destination device number is "01" which represents the cache CM4.
1 '.

【0107】最後に、第2一貫性維持制御部44は、第
2データ制御部45に、メインメモリ46の第2メッセ
ージ受信部41が出力するアドレスから特定されるデー
タを、第2メッセージ受信部41が供給するデータに書
き換えさせる。また、第2一貫性維持制御部44は、デ
ィレクトリメモリ43の書き込みを行い、ディレクトリ
ステートを‘WSP’に、またディレクトリマップを
‘0010’に遷移させる。このディレクトリマップの
値は、送信したIVメッセージの数を表すものである。
Finally, the second consistency maintenance control unit 44 causes the second data control unit 45 to send the data specified by the address output from the second message reception unit 41 of the main memory 46 to the second message reception unit. The data supplied by 41 is rewritten. Further, the second consistency maintenance control unit 44 writes the directory memory 43, and changes the directory state to “WSP” and the directory map to “0010”. The value of this directory map represents the number of transmitted IV messages.

【0108】送出された2つのIVメッセージは相互結
合網12によって配送され、それぞれキャッシュCM3
およびキャッシュCM4の第1メッセージ受信部26に
取り込まれる。取り込まれたメッセージのヘッダ部は第
2一貫性維持制御部44に供給され、データ部は第1デ
ータ制御部24に供給されている。
The two IV messages sent out are delivered by the mutual interconnection network 12 and cache CM3 respectively.
And the first message receiving unit 26 of the cache CM4. The header part of the fetched message is supplied to the second consistency maintenance control part 44, and the data part is supplied to the first data control part 24.

【0109】キャッシュCM3の第1一貫性維持制御部
23は、第1メッセージ受信部26にIVメッセージが
取り込まれたのを検出し、第1メッセージ受信部26に
格納されているヘッダ部のアドレスから、対応するブロ
ックのタグステートをタグメモリ22から読み出し、そ
の値によりどのような処理をするかを判断する。この
時、タグステートが取り得る値は、‘I’または‘S’
に限定される。
The first consistency maintenance control unit 23 of the cache CM 3 detects that the IV message has been taken in by the first message receiving unit 26, and from the address of the header unit stored in the first message receiving unit 26. , The tag state of the corresponding block is read from the tag memory 22, and what value to perform is determined based on the value. At this time, the possible values of the tag state are'I 'or'S'.
Is limited to

【0110】タグステートが‘I’であった場合、第1
一貫性維持制御部23は、まずACKメッセージのヘッ
ダ部を生成し第1メッセージ送信部27に供給する。こ
の時生成されるメッセージヘッダの宛先装置番号は第1
メッセージ受信部26に格納されているヘッダ部のアド
レスから特定されるメモリMMiを表す装置番号となり
(ここではアドレスからメモリMM2が特定され宛先装
置番号は‘101’となる)、メッセージ識別子はAC
Kを表す識別子に、アドレスおよび要求元装置番号は第
2メッセージ受信部41に格納されているメッセージヘ
ッダ部のアドレスおよび要求元装置番号(ここでは‘0
00’である)になる。第1メッセージ送信部27は、
第1一貫性維持制御部23から供給されるヘッダ部をメ
ッセージとして相互結合網12に送出する。
If the tag state is'I ', the first
The consistency maintenance control unit 23 first generates the header part of the ACK message and supplies it to the first message transmission unit 27. The destination device number of the message header generated at this time is the first
The device number represents the memory MMi specified from the address of the header part stored in the message receiving unit 26 (here, the memory MM2 is specified from the address and the destination device number is '101'), and the message identifier is AC.
In the identifier indicating K, the address and the request source device number are the address and the request source device number (here, “0” in the message header part stored in the second message receiving unit 41).
00 '). The first message sending unit 27
The header portion supplied from the first consistency maintenance control unit 23 is sent to the mutual connection network 12 as a message.

【0111】また、タグステートが‘S’であった場
合、第1一貫性維持制御部23は、まずACKメッセー
ジのヘッダ部を生成し第1メッセージ送信部27に供給
する。この時生成されるメッセージヘッダの宛先装置番
号は第1メッセージ受信部26に格納されているヘッダ
部のアドレスから特定されるメモリMMiを表す装置番
号となり(ここではアドレスからメモリMM2が特定さ
れ宛先装置番号は‘101’となる)、メッセージ識別
子はACKを表す識別子に、アドレスおよび要求元装置
番号は第2メッセージ受信部41に格納されているメッ
セージヘッダ部のアドレスおよび要求元装置番号(ここ
では‘000’である)になる。第1メッセージ送信部
27は、第1一貫性維持制御部23から供給されるヘッ
ダ部をメッセージとして相互結合網12に送出する。ま
た、第1一貫性維持制御部23は、タグメモリ22の書
き込みを行い、対応するブロックのタグステートを
‘I’に更新する。
When the tag state is'S ', the first consistency maintenance control section 23 first generates the header section of the ACK message and supplies it to the first message transmission section 27. The destination device number of the message header generated at this time is the device number representing the memory MMi specified from the address of the header part stored in the first message receiving unit 26 (here, the memory MM2 is specified from the address and the destination device number is specified). The number is' 101 '), the message identifier is an identifier indicating ACK, the address and the request source device number are the address of the message header part stored in the second message receiving unit 41 and the request source device number (here,' 000 '). The first message transmission unit 27 sends the header portion supplied from the first consistency maintenance control unit 23 to the mutual connection network 12 as a message. Further, the first consistency maintenance control unit 23 writes the tag memory 22 and updates the tag state of the corresponding block to “I”.

【0112】送出されたACKメッセージは相互結合網
12によって配送され、メモリMM2の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給される。
The sent ACK message is delivered by the mutual connection network 12 and taken into the second message receiving unit 41 of the memory MM2. The header part of the fetched message is supplied to the second consistency maintenance control unit 44.

【0113】メモリMM2の第2一貫性維持制御部44
は、第2メッセージ受信部41にACKメッセージが取
り込まれたのを検出し、第2メッセージ受信部41に格
納されたヘッダ部のアドレスから、対応するブロックの
ディレクトリステートおよびディレクトリマップをディ
レクトリメモリ43から読み出す。この時、ディレクト
リステートが取り得る値は、方法上‘WSP’と‘RM
P’に限定されるが、ここでは図14に示すシーケンス
でディレクトリステートが‘WSP’の場合を記す。ま
た、この時、ディレクトリマップの値が‘0001’で
あるかそうでないかにより異なる処理をする。
The second consistency maintenance control unit 44 of the memory MM2
Detects that the ACK message has been fetched by the second message receiving unit 41, and from the address of the header portion stored in the second message receiving unit 41, the directory state and the directory map of the corresponding block are read from the directory memory 43. read out. At this time, the possible values of the directory state are'WSP 'and'RM
Although limited to P ', here, the case where the directory state is'WSP' is described in the sequence shown in FIG. At this time, different processing is performed depending on whether the value of the directory map is '0001' or not.

【0114】ディレクトリステートが‘WSP’で、デ
ィレクトリマップが‘0001’でない場合(ここでは
‘0010’とする。この場合は図14に示すシーケン
スでキャッシュCM3が発行したACKメッセージを受
け取った場合である)、第2一貫性維持制御部44は、
ディレクトリメモリ43の書き込みを行い、ディレクト
リステートはそのまま‘WSP’とするが、ディレクト
リマップは、全ディレクトリマップの値をデクリメント
した値(ここでは‘0001’である)に更新する。
When the directory state is "WSP" and the directory map is not "0001" (here, "0010". In this case, the ACK message issued by the cache CM3 is received in the sequence shown in FIG. ), The second consistency maintenance control unit 44
The directory memory 43 is written and the directory state is set to'WSP 'as it is, but the directory map is updated to a value obtained by decrementing the values of all directory maps (here, it is'0001').

【0115】次にディレクトリステートが‘WSP’
で、ディレクトリマップの値が‘0001’であった場
合(図14に示すシーケンスでキャッシュCM4が発行
したACKメッセージを受け取った場合である)、第2
一貫性維持制御部44はまず、CRメッセージのヘッダ
部を生成し第2メッセージ送信部42に供給する。この
時生成されるメッセージヘッダの宛先装置番号は、第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部の要求元装置番号となり(この場合は‘000’で
ある)、メッセージ識別子はCRを表す識別子に、アド
レスおよび要求元装置番号は第2メッセージ受信部41
に格納されているメッセージヘッダ部のアドレスおよび
要求元装置番号(ここでは‘000’である)となる。
第2メッセージ送信部42は、第2一貫性維持制御部4
4から供給されるヘッダ部をメッセージとして相互結合
網12に送出する。また、第2一貫性維持制御部44
は、ディレクトリメモリ43の書き込みを行い、ディレ
クトリステートをMに、またディレクトリマップを‘0
001’に遷移させる。このディレクトリマップの値
は、第2メッセージ受信部41に格納されたヘッダ部の
要求元装置番号から特定されるキャッシュCMi(ここ
ではキャッシュCM1である)に対応するビットを
‘1’とし、他のビットを‘0’とする操作を行った結
果得られる値である。
Next, the directory state is'WSP '.
In the case where the value of the directory map is '0001' (when the ACK message issued by the cache CM 4 is received in the sequence shown in FIG. 14), the second
The consistency maintenance control unit 44 first generates the header part of the CR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the second
It is the request source device number of the message header part stored in the message receiving unit 41 (in this case, '000'), the message identifier is an identifier representing CR, and the address and the request source device number are the second message receiving unit. 41
The address of the message header and the request source device number (here, “000”) stored in
The second message transmission unit 42 uses the second consistency maintenance control unit 4
The header portion supplied from No. 4 is sent to the interconnection network 12 as a message. In addition, the second consistency maintenance control unit 44
Writes to the directory memory 43 and sets the directory state to M and the directory map to '0.
Transition to 001 '. In the value of this directory map, the bit corresponding to the cache CMi (here, the cache CM1) specified by the request source device number of the header part stored in the second message receiving unit 41 is set to "1", and other values are set. It is a value obtained as a result of the operation of setting the bit to “0”.

【0116】送出されたCRメッセージは相互結合網1
2によって配送され、キャッシュCM1の第1メッセー
ジ受信部26に取り込まれる。取り込まれたメッセージ
のヘッダ部は第2一貫性維持制御部44に供給され、デ
ータ部は第1データ制御部24に供給されている。
The CR message sent is the mutual connection network 1
2 and is received by the first message receiving unit 26 of the cache CM 1. The header part of the fetched message is supplied to the second consistency maintenance control part 44, and the data part is supplied to the first data control part 24.

【0117】キャッシュCM1の第1一貫性維持制御部
23が、第1メッセージ受信部26にCRメッセージが
取り込まれたのを検出した場合の動作は、図13に示す
シーケンスでキャッシュCM1がCRメッセージを受け
取った場合と同一である。
The operation when the first consistency maintenance control unit 23 of the cache CM1 detects that the CR message is fetched by the first message receiving unit 26 is the same as the operation shown in FIG. It is the same as when you received it.

【0118】次に、WSメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートが‘WSP’であった場合、図15に示すシ
ーケンスとなる。この時、同ブロックにおいて既に他の
キャッシュCMiからのWSメッセージを受付け処理し
ている最中であり、そのWSメッセージを処理したとき
に、メモリMM2はキャッシュCM1に対してIVメッ
セージを送信している。これにより、キャッシュCM1
においてタグメモリ22に格納されている当該ブロック
のタグステートは‘S’から‘I’に更新されている。
Next, the second consistency maintenance control unit 44 of the memory MM2 receiving the WS message reads the directory state and directory map of the corresponding block of the directory memory 43, and as a result, the directory state is'WSP '. If so, the sequence is as shown in FIG. At this time, the same block is already accepting a WS message from another cache CMi, and when the WS message is processed, the memory MM2 transmits an IV message to the cache CM1. . As a result, the cache CM1
In, the tag state of the block stored in the tag memory 22 is updated from'S 'to'I'.

【0119】第2一貫性維持制御部44は、まずNCR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はNCR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして相互結合網12に送出する。
The second consistency maintenance control unit 44 first determines the NCR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is NCR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message.

【0120】送出されたNCRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第1一貫性維持制御部23に供給され
る。
The sent NCR message is delivered by the mutual connection network 12 and taken in by the first message receiving unit 26 of the cache CM1. The header part of the fetched message is supplied to the first consistency maintenance control unit 23.

【0121】キャッシュCM1の第1一貫性維持制御部
23が、第1メッセージ受信部26にNCRメッセージ
が取り込まれたのを検出した場合の動作は、図12に示
すシーケンスでキャッシュCM1がNCRメッセージを
受け取った場合と同一である。
The operation when the first consistency maintenance control unit 23 of the cache CM1 detects that the NCR message is fetched by the first message receiving unit 26 is the same as the cache CM1 in the sequence shown in FIG. It is the same as when you received it.

【0122】次に、本発明の第1の実施の形態の効果に
ついて説明する。
Next, the effect of the first embodiment of the present invention will be described.

【0123】例えば、キャッシュCM1とキャッシュC
M3にメモリMM2のブロックが存在し共有されている
状態で、プロセッサPR1が書き込みを行い、次いでプ
ロセッサPR4が読み出しを行った場合の動作を考え
る。プロセッサPR1が行った書き込みは、キャッシュ
CM1およびメモリMM2に反映されるので、キャッシ
ュCM1およびメモリMM2に最新のデータが存在する
状態となる。
For example, the cache CM1 and the cache C
Consider the operation when the processor PR1 performs writing and then the processor PR4 performs reading while the block of the memory MM2 exists in M3 and is shared. The writing performed by the processor PR1 is reflected in the cache CM1 and the memory MM2, so that the latest data exists in the cache CM1 and the memory MM2.

【0124】そのため、次いでプロセッサPR4が読み
出しを行った場合、メモリMM2に対して読み出し要求
メッセージが送信されるが、メモリMM2に最新のデー
タが存在するため、メモリMM2はすぐさまキャッシュ
CM1に対して最新のブロックを付加したメッセージを
送信することができる。このため、メモリMM2におい
て最新のブロックを唯一保持するキャッシュCMiに対
して書き戻しを要求してその応答を受け取る処理がなく
なり、プロセッサPR4の読み出しに対してデータを応
答するまでの時間を短縮することができる。また、書き
戻しを要求する必要がなくなることから、データ一貫性
維持のためにキャッシュおよびメモリ間でやり取りされ
るメッセージ数を少なくすることができる。
Therefore, when the processor PR4 next performs a read operation, a read request message is sent to the memory MM2. However, since the latest data exists in the memory MM2, the memory MM2 immediately updates the cache CM1. You can send a message with the block of. Therefore, in the memory MM2, there is no processing for requesting write-back to the cache CMi that only holds the latest block and receiving the response, and shortening the time until the processor PR4 responds to the read data. You can Further, since it is not necessary to request write back, the number of messages exchanged between the cache and the memory for maintaining the data consistency can be reduced.

【0125】次に第2の実施の形態におけるデータ一貫
性維持制御方法では、第1の実施の形態におけるデータ
一貫性維持制御方法と同様に、タグメモリ22に格納さ
れるタグステートはI,S,E,Dの4状態からなる。
また、ディレクトリメモリ43に格納されるディレクト
リマップも4ビットからなるフルマップ方式で構成され
る。またディレクトリステートもC,M,RMP,WS
Pの4状態からなる。
Next, in the data consistency maintenance control method according to the second embodiment, the tag states stored in the tag memory 22 are I and S, as in the data consistency maintenance control method according to the first embodiment. , E, and D.
Further, the directory map stored in the directory memory 43 is also configured by the full map method of 4 bits. Also the directory state is C, M, RMP, WS
It consists of 4 states of P.

【0126】第2の実施の形態におけるデータ一貫性維
持制御方法で、キャッシュCMiとメモリMMiの間で
やり取りされるメッセージには、第1の実施の形態にお
けるデータ一貫性維持制御方法での、RM,WS,W
B,FR,IV,FD,ACK,SDR,EDR,C
R,NCRの11種類のメッセージに、新たにECRメ
ッセージが加えられ、12種類のメッセージが存在す
る。ECRメッセージは、CRメッセージ同様、メモリ
MMiがWSメッセージを発行したキャッシュCMiに
対して、WSメッセージのための処理がメモリMMiで
完了したことを通知する応答メッセージである。
In the data consistency maintenance control method according to the second embodiment, the message exchanged between the cache CMi and the memory MMi contains the RM of the data consistency maintenance control method according to the first embodiment. , WS, W
B, FR, IV, FD, ACK, SDR, EDR, C
ECR messages are newly added to 11 types of R and NCR messages, and 12 types of messages exist. Like the CR message, the ECR message is a response message that notifies the cache CMi that the memory MMi has issued the WS message that the processing for the WS message has been completed in the memory MMi.

【0127】次に、第2の実施の形態におけるデータ一
貫性維持制御方法で、プロセッサPR1がメモリMM2
のデータをアクセスした場合を例にとり、そのアクセス
によって行われるデータ一貫性維持のための一連の動作
を、第1の実施の形態におけるデータ一貫性維持制御方
法と異なる点のみを示す。
Next, in the data consistency maintaining control method according to the second embodiment, the processor PR1 causes the memory MM2 to operate.
Taking the case of accessing the data described above as an example, a series of operations for maintaining the data consistency performed by the access will be shown only in the points different from the data consistency maintenance control method in the first embodiment.

【0128】第2の実施の形態におけるデータ一貫性維
持制御方法で、第1の実施の形態におけるデータ一貫性
維持制御方法と動作を異にするのは、WSメッセージを
受け取ったメモリMM2の第2一貫性維持制御部44
が、ディレクトリメモリ43の対応するブロックのディ
レクトリステートおよびディレクトリマップを読み出し
た結果、ディレクトリステートがCであり、かつディレ
クトリマップの値がWSメッセージを発行したキャッシ
ュCMi以外にブロックを保持するキャッシュCMiが
存在しないことを表す場合(ここでは、キャッシュCM
1がWSメッセージを発行しているので、ディレクトリ
マップの値が‘0001’の場合である)である。即
ち、第1の実施の形態におけるデータ一貫性維持制御方
法では、図13に示すシーケンスとなる場合である。
The operation of the data consistency maintenance control method according to the second embodiment is different from that of the data consistency maintenance control method according to the first embodiment in that the second operation of the memory MM2 receiving the WS message is different. Consistency maintenance control unit 44
As a result of reading the directory state and the directory map of the corresponding block in the directory memory 43, the directory state is C, and the cache CMi that holds the block exists in addition to the cache CMi that issued the WS message. In case of not performing (here, cache CM
1 is issuing the WS message, the value of the directory map is '0001'.). That is, in the data consistency maintenance control method according to the first embodiment, the sequence shown in FIG. 13 is obtained.

【0129】この場合、第2の実施の形態におけるデー
タ一貫性維持制御方法では図16に示すシーケンスをと
る。
In this case, the data consistency maintenance control method according to the second embodiment takes the sequence shown in FIG.

【0130】第2一貫性維持制御部44は、まずECR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はECR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして相互結合網12に送出する。また、第2一
貫性維持制御部44は、第2データ制御部45に、メイ
ンメモリ46の第2メッセージ受信部41が出力するア
ドレスから特定されるデータを、第2メッセージ受信部
41が供給するデータに書き換えさせる。また、第2一
貫性維持制御部44は、ディレクトリメモリ43の書き
込みを行い、ディレクトリステートをMに、またディレ
クトリマップを‘0001’に遷移させる。このディレ
クトリマップの値は、RMメッセージを発行したキャッ
シュCM1に対応するビットを‘1’とし、他のビット
を‘0’とする操作を行った結果得られる値である。
The second coherence maintenance control unit 44 first determines the ECR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is ECR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message. Further, the second consistency maintenance control unit 44 supplies the second data control unit 45 with the data specified by the address output by the second message reception unit 41 of the main memory 46. Rewrite with data. Further, the second consistency maintenance control unit 44 writes in the directory memory 43 and changes the directory state to M and the directory map to '0001'. The value of this directory map is a value obtained as a result of performing the operation of setting the bit corresponding to the cache CM1 that issued the RM message to "1" and setting the other bits to "0".

【0131】送出されたECRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第2一貫性維持制御部44に供給され、
データ部は第1データ制御部24に供給されている。
The sent ECR message is delivered by the mutual connection network 12 and taken into the first message receiving unit 26 of the cache CM1. The header part of the captured message is supplied to the second consistency maintenance control unit 44,
The data section is supplied to the first data control section 24.

【0132】キャッシュCM1の第1一貫性維持制御部
23は、タグメモリ22の書き込みを行い、対応するブ
ロックのタグステートを‘S’から‘E’に更新する。
また、第1一貫性維持制御部23は、プロセッサPR1
に対してメモリアクセスの完了応答を行い、書き込みア
クセスを完了させる。
The first consistency maintenance control unit 23 of the cache CM1 writes the tag memory 22 and updates the tag state of the corresponding block from'S 'to'E'.
In addition, the first consistency maintenance control unit 23 uses the processor PR1.
To the memory access completion response to complete the write access.

【0133】次に、本発明の第2の実施の形態の効果に
ついて説明する。
Next, the effect of the second embodiment of the present invention will be described.

【0134】例えば、キャッシュCM1のブロックの状
態が共有状態でありキャッシュCM1とメモリMM2に
のみ最新のブロックが存在する状態で、プロセッサPR
1が連続して書き込みを行い、その間他のプロセッサP
Riがアクセスを行わなかった場合を考える。この場
合、第1の実施の形態におけるデータ一貫性維持制御方
法では、書き込みの度に書き込み要求メッセージがキャ
ッシュCM1からメモリMM2に発行され、この場合の
データ一貫性維持制御のためのメッセージ数が増加する
という問題がある。
For example, when the block state of the cache CM1 is the shared state and the latest block exists only in the cache CM1 and the memory MM2, the processor PR is
1 continuously writes, while another processor P
Consider the case where Ri did not access. In this case, in the data consistency maintenance control method according to the first embodiment, a write request message is issued from the cache CM1 to the memory MM2 each time writing is performed, and the number of messages for data consistency maintenance control in this case increases. There is a problem of doing.

【0135】第2の実施の形態におけるデータ一貫性維
持制御方法では、上記のような場合に、最初の2回の書
き込みに関してはキャッシュCM1からメモリMM2に
対して書き込み要求メッセージが発行されるが、続く3
回目からの書き込みに関してはデータ一貫性維持制御の
ためのメッセージは発行されず、この場合のメッセージ
の増加を防ぐことができる。
In the data consistency maintenance control method according to the second embodiment, in the above case, the write request message is issued from the cache CM1 to the memory MM2 for the first two write operations. Continued 3
No message for data consistency maintenance control is issued for the writing from the second time, and the increase of messages in this case can be prevented.

【0136】次に第3の実施の形態におけるデータ一貫
性維持制御方法では、第2の実施の形態におけるデータ
一貫性維持制御方法と同様に、タグメモリ22に格納さ
れるタグステートはI,S,E,Dの4状態からなる。
また、ディレクトリメモリ43に格納されるディレクト
リマップも4ビットからなるフルマップ方式で構成され
る。またディレクトリステートもC,M,RMP,WS
Pの4状態からなる。
Next, in the data consistency maintenance control method of the third embodiment, the tag states stored in the tag memory 22 are I and S, as in the data consistency maintenance control method of the second embodiment. , E, and D.
Further, the directory map stored in the directory memory 43 is also configured by the full map method of 4 bits. Also the directory state is C, M, RMP, WS
It consists of 4 states of P.

【0137】第3の実施の形態におけるデータ一貫性維
持制御方法では、ディレクトリステートおよびディレク
トリマップに加えて、更新頻度値がブロックに関する情
報としてディレクトリメモリ43に保持される。更新頻
度値は、ある1つのキャッシュCMiとメモリMMiが
最新のブロックを保持している状態で、メモリMMi
が、他のキャッシュCMiからのRMメッセージを受け
取るまでに、何回最新のブロックを保持するキャッシュ
CMiからWSメッセージを受け取ったかをカウントし
た値である。
In the data consistency maintenance control method according to the third embodiment, the update frequency value is held in the directory memory 43 as information about a block in addition to the directory state and the directory map. The update frequency value is the value of the memory MMi when one cache CMi and the memory MMi hold the latest block.
Is a value that counts how many times the WS message is received from the cache CMi that holds the latest block before receiving the RM message from the other cache CMi.

【0138】また、第3の実施の形態におけるデータ一
貫性維持制御方法では、新たにパラメータとして更新頻
度上限値が定義される。
In the data consistency maintenance control method of the third embodiment, the update frequency upper limit value is newly defined as a parameter.

【0139】また、第3の実施の形態におけるデータ一
貫性維持制御方法で、キャッシュCMiとメモリMMi
の間でやり取りされるメッセージには、第2の実施の形
態におけるデータ一貫性維持制御方法でのメッセージ同
様、RM,WS,WB,FR,IV,FD,ACK,S
DR,EDR,CR,NCR,ECRの12種類のメッ
セージが存在する。
Further, in the data consistency maintenance control method according to the third embodiment, the cache CMi and the memory MMi are used.
The messages exchanged between RM, WS, WB, FR, IV, FD, ACK, S are the same as the messages in the data consistency maintenance control method in the second embodiment.
There are 12 types of messages: DR, EDR, CR, NCR, ECR.

【0140】次に、第3の実施の形態におけるデータ一
貫性維持制御方法で、プロセッサPR1がメモリMM2
のデータをアクセスした場合を例にとり、そのアクセス
によって行われるデータ一貫性維持のための一連の動作
を説明する。
Next, in the data consistency maintaining control method according to the third embodiment, the processor PR1 causes the memory MM2 to operate.
A series of operations for maintaining the data consistency performed by the access will be described by taking the case of accessing the data of FIG.

【0141】第3の実施の形態におけるデータ一貫性維
持制御方法でのキャッシュCMiの動作は、第2の実施
の形態におけるデータ一貫性維持制御方法でのキャッシ
ュCMiの動作と同一であるので、ここではその説明を
省略する。以降第3の実施の形態におけるデータ一貫性
維持制御方法でのメモリMMiの動作を、RM,WS,
WB,FD,ACKの5種類のメッセージを受け取った
場合の順に説明する。
The operation of the cache CMi in the data coherency maintenance control method of the third embodiment is the same as the operation of the cache CMi in the data coherency maintenance control method of the second embodiment. Then, the explanation is omitted. Hereinafter, the operation of the memory MMi in the data consistency maintenance control method according to the third embodiment will be described with reference to RM, WS,
The description will be made in order when five types of messages of WB, FD, and ACK are received.

【0142】メモリMM2の第2一貫性維持制御部44
は、第2メッセージ受信部41にRMメッセージが取り
込まれたのを検出すると、第2メッセージ受信部41に
格納されたヘッダ部のアドレスから、対応するブロック
のディレクトリステートおよびディレクトリマップおよ
び更新頻度値をディレクトリメモリ43から読み出し、
その値によりどのような処理をするかを判断する。
The second consistency maintenance control unit 44 of the memory MM2
When detecting that the RM message is captured in the second message receiving unit 41, the directory state and directory map of the corresponding block and the update frequency value are calculated from the address of the header portion stored in the second message receiving unit 41. Read from the directory memory 43,
Depending on the value, what kind of processing should be performed is determined.

【0143】ディレクトリステートがCで、かつディレ
クトリマップの値がRMメッセージを発行したキャッシ
ュCMi(メッセージに付加されていた要求元装置番号
から特定され、この場合はキャッシュCM1となる)以
外にブロックを保持するキャッシュCMiが存在しない
ことを表す場合(ここでは、ディレクトリマップが‘0
000’または‘0001’の場合である)、更新頻度
値の値に関わらず、図17に示すシーケンスで、メモリ
MM2がキャッシュCM1からのRMメッセージを受け
取った場合の処理をする。
The directory state is C, and the value of the directory map is held in a block other than the cache CMi that issued the RM message (identified from the request source device number added to the message, and in this case, the cache CM1). Cache CMi that does not exist (here, the directory map is' 0
000 'or' 0001 '), regardless of the value of the update frequency value, the process shown in FIG. 17 is performed when the memory MM2 receives the RM message from the cache CM1.

【0144】第2一貫性維持制御部44は、まずEDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はEDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、メインメモリ46
から第2メッセージ受信部41に格納されているメッセ
ージヘッダ部のアドレスで特定されるブロックの読み出
しを指示する。第2データ制御部45は読み出したブロ
ックをEDRメッセージのデータ部として第2メッセー
ジ送信部42に供給する。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
と第2データ制御部45から供給されるデータ部をあわ
せて、相互結合網12にメッセージを送出する。また、
第2一貫性維持制御部44は、ディレクトリメモリ43
の書き込みを行い、ディレクトリステートをMに、また
ディレクトリマップを‘0001’に、更新頻度値を
‘0’に更新する。このディレクトリマップの値は、R
Mメッセージを発行したキャッシュCM1に対応するビ
ットを‘1’とし、他のビットを‘0’とする操作を行
った結果得られる値である。
The second coherence maintenance control section 44 first determines the EDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is EDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
To the second data control unit 45, the main memory 46
To read the block specified by the address of the message header section stored in the second message receiving section 41. The second data control unit 45 supplies the read block to the second message transmission unit 42 as the data portion of the EDR message. Second message sending unit 42
Sends the message to the mutual connection network 12 by combining the header part supplied from the second consistency maintenance control part 44 and the data part supplied from the second data control part 45. Also,
The second consistency maintenance control unit 44 uses the directory memory 43.
Is written, the directory state is updated to M, the directory map is updated to “0001”, and the update frequency value is updated to “0”. The value of this directory map is R
It is a value obtained as a result of the operation of setting the bit corresponding to the cache CM1 that issued the M message to "1" and setting the other bits to "0".

【0145】ディレクトリステートがCで、かつディレ
クトリマップの値がRMメッセージを発行したキャッシ
ュCMi(ここではキャッシュCM1である)以外にブ
ロックを保持するキャッシュCMiが存在することを表
す場合(ここでは、キャッシュCM1がRMメッセージ
を発行しているので、ディレクトリマップが‘000
0’または‘0001’以外の場合である)、更新頻度
値の値に関わらず、図18に示すシーケンスで、メモリ
MM2がキャッシュCM1からのRMメッセージを受け
取った場合の処理をする。
When the directory state is C and the value of the directory map indicates that there is a cache CMi that holds a block other than the cache CMi that issued the RM message (here, cache CM1) (here, cache Since CM1 issues the RM message, the directory map is' 000.
If it is other than 0'or '0001'), regardless of the value of the update frequency value, the process shown in FIG. 18 is performed when the memory MM2 receives the RM message from the cache CM1.

【0146】第2一貫性維持制御部44は、まずSDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はSDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、メインメモリ46
から第2メッセージ受信部41に格納されているメッセ
ージヘッダ部のアドレスで特定されるブロックの読み出
しを指示する。第2データ制御部45は読み出したブロ
ックをSDRメッセージのデータ部として第2メッセー
ジ送信部42に供給する。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
と第2データ制御部45から供給されるデータ部をあわ
せて、相互結合網12にメッセージを送出する。また、
第2一貫性維持制御部44は、ディレクトリメモリ43
の書き込みを行い、ディレクトリステートをCに、ディ
レクトリマップの値を‘1101’に、更新頻度値を
‘0’に更新する。このディレクトリマップの値は、R
Mメッセージを受け取る直前のディレクトリマップの値
に対して、第2メッセージ受信部41に格納されている
要求元装置番号から特定されるキャッシュCM1に対応
するビットを‘1’にする操作を行った結果得られる値
である。
The second consistency maintenance control unit 44 first determines the SDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is SDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
To the second data control unit 45, the main memory 46
To read the block specified by the address of the message header section stored in the second message receiving section 41. The second data control unit 45 supplies the read block to the second message transmission unit 42 as the data portion of the SDR message. Second message sending unit 42
Sends the message to the mutual connection network 12 by combining the header part supplied from the second consistency maintenance control part 44 and the data part supplied from the second data control part 45. Also,
The second consistency maintenance control unit 44 uses the directory memory 43.
Is written to update the directory state to C, the value of the directory map to '1101', and the update frequency value to '0'. The value of this directory map is R
The result of performing the operation of setting the bit corresponding to the cache CM1 specified by the request source device number stored in the second message receiving unit 41 to "1" with respect to the value of the directory map immediately before receiving the M message This is the value obtained.

【0147】ディレクトリステートがMであった場合、
更新頻度値の値に関わらず、図19および図20に示す
シーケンスで、メモリMM2がキャッシュCM1からの
RMメッセージを受け取った場合の処理をする。この場
合、ディレクトリマップより、最新のブロックを保持す
るキャッシュCMiが唯一定まる。図19および図20
に示した例では、ディレクトリマップの値は‘010
0’であるので、キャッシュCM3が唯一最新のデータ
を保持していることが確認できる。
If the directory state is M,
Regardless of the value of the update frequency value, the processing when the memory MM2 receives the RM message from the cache CM1 is performed in the sequence shown in FIGS. 19 and 20. In this case, the cache CMi holding the latest block is uniquely determined from the directory map. 19 and 20.
In the example shown in, the value of the directory map is' 010.
Since it is 0 ′, it can be confirmed that the cache CM 3 holds only the latest data.

【0148】第2一貫性維持制御部44は、まずFRメ
ッセージのヘッダ部を生成し第2メッセージ送信部42
に供給する。この時生成されるメッセージヘッダの宛先
装置番号は、最新のブロックを保持するキャッシュCM
3を表す‘010’となり、メッセージ識別子はFRを
表す識別子に、アドレスおよび要求元装置番号は第2メ
ッセージ受信部41に格納されているメッセージヘッダ
部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして、相互結合網12に送出する。また、第2
一貫性維持制御部44は、ディレクトリメモリ43の書
き込みを行い、ディレクトリステートをRMPに、更新
頻度値を‘0’に更新するが、ディレクトリマップはそ
のままとする。
The second consistency maintenance control unit 44 first generates the header portion of the FR message and then the second message transmission unit 42.
To supply. The destination device number of the message header generated at this time is the cache CM holding the latest block.
3 becomes '010', the message identifier is an identifier representing FR, the address and the request source device number are the address of the message header part stored in the second message receiving unit 41 and the request source device number (here, "00").
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message. Also, the second
The consistency maintenance control unit 44 writes the directory memory 43 and updates the directory state to RMP and the update frequency value to “0”, but leaves the directory map as it is.

【0149】ディレクトリステートが‘RMP’または
‘WSP’であった場合、ディレクトリマップおよび更
新頻度値の値に関わらず、図21に示すシーケンスで、
メモリMM2がキャッシュCM1からのRMメッセージ
を受け取った場合の処理をする。
When the directory state is'RMP 'or'WSP', the sequence shown in FIG.
The process when the memory MM2 receives the RM message from the cache CM1 is performed.

【0150】第2一貫性維持制御部44は、まずNCR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はNCR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして相互結合網12に送出する。
The second consistency maintenance control unit 44 first determines the NCR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is NCR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message.

【0151】次に、メモリMM2の第2一貫性維持制御
部44が、第2メッセージ受信部41にWSメッセージ
が取り込まれたのを検出した場合、第2メッセージ受信
部41に格納されたヘッダ部のアドレスから、対応する
ブロックのディレクトリステートおよびディレクトリマ
ップおよび更新頻度値をディレクトリメモリ43から読
み出し、その値によりどのような処理をするかを判断す
る。
Next, when the second consistency maintenance control unit 44 of the memory MM2 detects that the WS message is taken in by the second message receiving unit 41, the header unit stored in the second message receiving unit 41. From the address of, the directory state and directory map of the corresponding block and the update frequency value are read from the directory memory 43, and what kind of processing is to be performed is determined by the value.

【0152】ディレクトリステートが‘C’で、かつデ
ィレクトリマップの値がWSメッセージを発行したキャ
ッシュCMi以外にブロックを保持するキャッシュCM
iが存在しないことを表し(ここでは、キャッシュCM
1がWSメッセージを発行しているので、ディレクトリ
マップが‘0001’の場合である)、更新頻度値が更
新頻度上限値と一致しなかった場合、図22に示すシー
ケンスで、メモリMM2がキャッシュCM1からのWS
メッセージを受け取った場合の処理をする。
A cache CM holding a block other than the cache CMi in which the directory state is'C 'and the value of the directory map is the WS message.
i does not exist (here, cache CM
1 issues the WS message, the directory map is '0001'.) If the update frequency value does not match the update frequency upper limit value, the memory MM2 causes the cache CM1 to operate in the sequence shown in FIG. From WS
Process when a message is received.

【0153】第2一貫性維持制御部44は、まずCRメ
ッセージのヘッダ部を生成し第2メッセージ送信部42
に供給する。この時生成されるメッセージヘッダの宛先
装置番号は、第2メッセージ受信部41に格納されてい
るメッセージヘッダ部の要求元装置番号となり(この場
合は‘000’である)。メッセージ識別子はCRを表
す識別子に、アドレスおよび要求元装置番号は第2メッ
セージ受信部41に格納されているメッセージヘッダ部
のアドレスおよび要求元装置番号(ここでは‘000’
である)となる。第2メッセージ送信部42は、第2一
貫性維持制御部44から供給されるヘッダ部をメッセー
ジとして相互結合網12に送出する。また、第2一貫性
維持制御部44は、第2データ制御部45に、メインメ
モリ46の第2メッセージ受信部41が出力するアドレ
スから特定されるデータを、第2メッセージ受信部41
が供給するデータに書き換えさせる。また、第2一貫性
維持制御部44は、ディレクトリメモリ43の書き込み
を行い、ディレクトリステートおよびディレクトリマッ
プはそのままとし、更新頻度値は1足した値に更新す
る。図22に示すシーケンスでは、更新頻度値は‘0’
から‘1’に更新されている。
The second consistency maintenance control unit 44 first generates the header portion of the CR message, and then the second message transmission unit 42.
To supply. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'). The message identifier is an identifier representing CR, the address and the request source device number are the address and the request source device number of the message header part stored in the second message receiving unit 41 (here, “000”).
It becomes). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message. Further, the second consistency maintenance control unit 44 causes the second data control unit 45 to send the data specified by the address output from the second message reception unit 41 of the main memory 46 to the second message reception unit 41.
Rewrite the data supplied by. Further, the second consistency maintenance control unit 44 writes to the directory memory 43, leaves the directory state and the directory map as they are, and updates the update frequency value to a value obtained by adding one. In the sequence shown in FIG. 22, the update frequency value is “0”.
Has been updated from '1'.

【0154】ディレクトリステートが‘C’で、かつデ
ィレクトリマップの値がWSメッセージを発行したキャ
ッシュCMi以外にブロックを保持するキャッシュCM
iが存在しないことを表し(ここでは、キャッシュCM
1がWSメッセージを発行しているので、ディレクトリ
マップが‘0001’の場合である)、更新頻度値が更
新頻度上限値と一致した場合、図23に示すシーケンス
で、メモリMM2がキャッシュCM1からのWSメッセ
ージを受け取った場合の処理をする。図23に示したシ
ーケンスは、更新頻度上限値を‘2’に設定した場合で
ある。
A cache CM holding a block other than the cache CMi in which the directory state is'C 'and the value of the directory map is the WS message.
i does not exist (here, cache CM
1 has issued the WS message, so the directory map is '0001'.) When the update frequency value matches the update frequency upper limit value, the memory MM2 reads from the cache CM1 in the sequence shown in FIG. Performs processing when a WS message is received. The sequence shown in FIG. 23 is a case where the update frequency upper limit value is set to '2'.

【0155】第2一貫性維持制御部44は、まずECR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はECR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして相互結合網12に送出する。また、第2一
貫性維持制御部44は、第2データ制御部45に、メイ
ンメモリ46の第2メッセージ受信部41が出力するア
ドレスから特定されるデータを、第2メッセージ受信部
41が供給するデータに書き換えさせる。また、第2一
貫性維持制御部44は、ディレクトリメモリ43の書き
込みを行い、ディレクトリステートをMに、またディレ
クトリマップを‘0001’に、更新頻度値を‘0’に
更新する。このディレクトリマップの値は、RMメッセ
ージを発行したキャッシュCM1に対応するビットを
‘1’とし、他のビットを‘0’とする操作を行った結
果得られる値である。
The second consistency maintenance control unit 44 first determines the ECR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is ECR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message. Further, the second consistency maintenance control unit 44 supplies the second data control unit 45 with the data specified by the address output by the second message reception unit 41 of the main memory 46. Rewrite with data. Further, the second consistency maintenance control unit 44 writes in the directory memory 43, updates the directory state to M, the directory map to '0001', and the update frequency value to '0'. The value of this directory map is a value obtained as a result of performing the operation of setting the bit corresponding to the cache CM1 that issued the RM message to "1" and setting the other bits to "0".

【0156】ディレクトリステートがCであり、かつデ
ィレクトリマップの値がWSメッセージを発行したキャ
ッシュCMi以外にブロックを保持するキャッシュCM
iが存在することを表す場合(ここでは、キャッシュC
M1がWSメッセージを発行しているので、ディレクト
リマップの値が‘0001’以外の場合である)、更新
頻度値に関わらず、図24に示すシーケンスで、メモリ
MM2がキャッシュCM1からのWSメッセージを受け
取った場合の処理をする。以降では、また図24に示し
た例では、WSメッセージを受け取ったときのディレク
トリマップの値が例えば‘1101’であった場合を説
明する。
A cache CM whose directory state is C and whose directory map value is a block other than the cache CMi which issued the WS message.
If i is present (here, cache C
Since M1 issues the WS message, the value of the directory map is other than '0001'.) Regardless of the update frequency value, the memory MM2 sends the WS message from the cache CM1 in the sequence shown in FIG. Process when received. In the following, in the example shown in FIG. 24, a case where the value of the directory map when the WS message is received is, for example, “1101” will be described.

【0157】第2一貫性維持制御部44はまず、キャッ
シュCM1が最新のブロックを保持しておりかつWSメ
ッセージを発行したキャッシュCMiではないかどうか
を検査する。この時、キャッシュCM1は、第2メッセ
ージ受信部41に格納された要求元装置番号よりWSメ
ッセージを発行したキャッシュCMiであるのでこの場
合は何も行わない。
The second coherency maintenance control unit 44 first checks whether or not the cache CM1 holds the latest block and is not the cache CMi which issued the WS message. At this time, since the cache CM1 is the cache CMi that has issued the WS message from the request source device number stored in the second message receiving unit 41, nothing is done in this case.

【0158】次に、第2一貫性維持制御部44は、キャ
ッシュCM2が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、ディレクトリマップの値‘11
01’より、キャッシュCM2は最新のデータを保持し
ていないのでこの場合も何も行わない。
Next, the second coherency maintenance control unit 44 determines that the cache CM2 holds the latest block and WS
It is checked whether it is not the cache CMi that issued the message. At this time, the value of the directory map is '11
From 01 ', since the cache CM2 does not hold the latest data, nothing is done also in this case.

【0159】次に、第2一貫性維持制御部44は、キャ
ッシュCM3が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、キャッシュCM3は最新のブロ
ックを保持しておりまたWSメッセージを発行したキャ
ッシュCMiではないので、次のような処理をする。第
2一貫性維持制御部44は、IVメッセージのヘッダ部
を生成し第2メッセージ送信部42に供給する。この時
生成されるメッセージヘッダの宛先装置番号は、キャッ
シュCM3を表す‘010’となり、メッセージ識別子
はIVを表す識別子に、アドレスおよび要求元装置番号
は第2メッセージ受信部41に格納されているメッセー
ジヘッダ部のアドレスおよび要求元装置番号(ここでは
‘000’である)となる。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
をメッセージとして、相互結合網12に送出する。
Next, the second consistency maintenance control unit 44 determines that the cache CM3 holds the latest block and WS
It is checked whether it is not the cache CMi that issued the message. At this time, since the cache CM3 holds the latest block and is not the cache CMi that issued the WS message, the following processing is performed. The second consistency maintenance control unit 44 generates the header part of the IV message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is “010” indicating the cache CM3, the message identifier is the identifier indicating IV, and the address and the request source device number are the messages stored in the second message receiving unit 41. The address of the header and the request source device number (here, “000”) are used. Second message sending unit 42
Sends the header part supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message.

【0160】次に、第2一貫性維持制御部44は、キャ
ッシュCM4が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、キャッシュCM4は最新のブロ
ックを保持しておりまたWSメッセージを発行したキャ
ッシュCMiではないので、前記したキャッシュCM3
の場合と同じくIVメッセージのヘッダ部を生成する。
ただし、宛先装置番号はキャッシュCM4を表す‘01
1’となる。
Next, the second consistency maintenance control unit 44 determines that the cache CM 4 holds the latest block and WS
It is checked whether it is not the cache CMi that issued the message. At this time, since the cache CM 4 holds the latest block and is not the cache CMi that issued the WS message, the cache CM 3 described above is used.
The header part of the IV message is generated as in the case of
However, the destination device number is "01" which represents the cache CM4.
1 '.

【0161】最後に、第2一貫性維持制御部44は、第
2データ制御部45に、メインメモリ46の第2メッセ
ージ受信部41が出力するアドレスから特定されるデー
タを、第2メッセージ受信部41が供給するデータに書
き換えさせる。また、第2一貫性維持制御部44は、デ
ィレクトリメモリ43の書き込みを行い、ディレクトリ
ステートを‘WSP’に、またディレクトリマップを
‘0010’に、更新頻度値を‘0’に更新する。この
ディレクトリマップの値は、送信したIVメッセージの
数を表すものである。
Finally, the second consistency maintenance control unit 44 causes the second data control unit 45 to send the data specified by the address output from the second message reception unit 41 of the main memory 46 to the second message reception unit. The data supplied by 41 is rewritten. In addition, the second consistency maintenance control unit 44 writes the directory memory 43, updates the directory state to “WSP”, the directory map to “0010”, and the update frequency value to “0”. The value of this directory map represents the number of transmitted IV messages.

【0162】ディレクトリステートが‘WSP’であっ
た場合、ディレクトリマップおよび更新頻度値に関わら
ず、図25に示すシーケンスで、メモリMM2がキャッ
シュCM1からのWSメッセージを受け取った場合の処
理をする。
When the directory state is'WSP ', the processing when the memory MM2 receives the WS message from the cache CM1 is performed in the sequence shown in FIG. 25 regardless of the directory map and the update frequency value.

【0163】第2一貫性維持制御部44は、まずNCR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はNCR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。第2メッセージ送信部42は、第
2一貫性維持制御部44から供給されるヘッダ部をメッ
セージとして相互結合網12に送出する。
The second consistency maintenance control unit 44 first determines the NCR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is NCR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). The second message transmission unit 42 sends the header portion supplied from the second consistency maintenance control unit 44 to the mutual connection network 12 as a message.

【0164】次に、メモリMM2の第2一貫性維持制御
部44が、第2メッセージ受信部41にWBメッセージ
が取り込まれたのを検出した場合、第2メッセージ受信
部41に格納されたヘッダ部のアドレスから、対応する
ブロックのディレクトリステートおよびディレクトリマ
ップおよび更新頻度値をディレクトリメモリ43から読
み出し、その値によりどのような処理をするかを判断す
る。この時、ディレクトリステートが取り得る値は、方
法上‘M’または‘RMP’に限定される。
Next, when the second consistency maintenance control unit 44 of the memory MM2 detects that the WB message has been taken in by the second message receiving unit 41, the header unit stored in the second message receiving unit 41. From the address of, the directory state and directory map of the corresponding block and the update frequency value are read from the directory memory 43, and what kind of processing is to be performed is determined by the value. At this time, the possible values of the directory state are limited to'M 'or'RMP' in the method.

【0165】ディレクトリステートが‘M’の場合、更
新頻度値の値に関わらず、図26に示すシーケンスで、
メモリMM3がキャッシュCM1からのWBメッセージ
を受け取った場合の処理をする。第2一貫性維持制御部
44はディレクトリメモリ43の書き込みを行い、ディ
レクトリステートをCに、ディレクトリマップをどのキ
ャッシュCMiもブロックを保持していないことを表す
‘0000’に、更新頻度値を‘0’に更新する。ま
た、第2一貫性維持制御部44は、第2データ制御部4
5にWBメッセージに付加されていたブロックをメイン
メモリ46の対応するブロックへ書き込ませる。
When the directory state is'M ', the sequence shown in FIG.
The process when the memory MM3 receives the WB message from the cache CM1 is performed. The second consistency maintenance control unit 44 writes the directory memory 43, sets the directory state to C, the directory map to "0000" indicating that no cache CMi holds a block, and the update frequency value to "0". Update to '. In addition, the second consistency maintenance control unit 44 uses the second data control unit 4
5 causes the block added to the WB message to be written into the corresponding block of the main memory 46.

【0166】ディレクトリステートがRMPであった場
合、ディレクトリマップおよび更新頻度値の値に関わら
ず、図27に示すシーケンスで、メモリMM3がキャッ
シュCM1からのWBメッセージを受け取った場合の処
理をする。第2一貫性維持制御部44は、第2データ制
御部45にWBメッセージに付加されていたブロックを
メインメモリ46の対応するブロックへ書き込ませるの
みとし、ディレクトリメモリ43の更新は行わない。
When the directory state is RMP, the process when the memory MM3 receives the WB message from the cache CM1 is performed in the sequence shown in FIG. 27 regardless of the values of the directory map and the update frequency value. The second consistency maintenance control unit 44 only causes the second data control unit 45 to write the block added to the WB message to the corresponding block of the main memory 46, and does not update the directory memory 43.

【0167】次に、メモリMM2の第2一貫性維持制御
部44が、第2メッセージ受信部41にFDメッセージ
が取り込まれたのを検出した場合、第2メッセージ受信
部41に格納されたヘッダ部のアドレスから、対応する
ブロックのディレクトリステートおよびディレクトリマ
ップおよび更新頻度値をディレクトリメモリ43から読
み出し、更新頻度値に関わらず、図19に示すシーケン
スで、メモリMM2がキャッシュCM3からのFDメッ
セージを受け取った場合の処理をする。この時、ディレ
クトリステートが取り得る値は、方法上‘RMP’に限
定される。
Next, when the second consistency maintenance control unit 44 of the memory MM2 detects that the FD message is taken in by the second message receiving unit 41, the header unit stored in the second message receiving unit 41. , The directory state and directory map of the corresponding block and the update frequency value are read from the directory memory 43, and the memory MM2 receives the FD message from the cache CM3 in the sequence shown in FIG. 19 regardless of the update frequency value. Do the case. At this time, the value that the directory state can take is limited to'RMP 'in the method.

【0168】第2一貫性維持制御部44は、まずSDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はSDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、FDメッセージに
付加されていたブロックをメインメモリ46の対応する
ブロックへ書き込ませる。第2データ制御部45はメイ
ンメモリ46への書き込みを行うと同時に、FDメッセ
ージに付加されていたブロックをSDRメッセージのデ
ータ部として第2メッセージ送信部42にも供給する。
第2メッセージ送信部42は、第2一貫性維持制御部4
4から供給されるヘッダ部と第2データ制御部45から
供給されるデータ部をあわせて、相互結合網12にメッ
セージを送出する。また、第2一貫性維持制御部44
は、ディレクトリメモリ43の書き込みを行い、ディレ
クトリステートをCに、ディレクトリマップの値を‘1
101’に、更新頻度値を‘0’に更新する。このディ
レクトリマップの値は、FDメッセージを受け取る直前
のディレクトリマップの値に対して、第2メッセージ受
信部41に格納されている要求元装置番号から特定され
るキャッシュCM1に対応するビットを‘1’にする操
作を行った結果得られる値である。
The second consistency maintenance control unit 44 first determines the SDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is SDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
Causes the second data control unit 45 to write the block added to the FD message to the corresponding block of the main memory 46. The second data control unit 45 performs writing to the main memory 46, and at the same time, supplies the block added to the FD message to the second message transmission unit 42 as the data portion of the SDR message.
The second message transmission unit 42 uses the second consistency maintenance control unit 4
A message is sent to the mutual connection network 12 by combining the header part supplied from No. 4 and the data part supplied from the second data control unit 45. In addition, the second consistency maintenance control unit 44
Writes to the directory memory 43, sets the directory state to C, and sets the value of the directory map to '1.
The update frequency value is updated to 101 'to' 0 '. With respect to the value of this directory map, with respect to the value of the directory map immediately before receiving the FD message, the bit corresponding to the cache CM1 specified by the request source device number stored in the second message receiving unit 41 is set to "1". This is the value obtained as a result of performing the operation.

【0169】次に、メモリMM2の第2一貫性維持制御
部44が、第2メッセージ受信部41にACKメッセー
ジが取り込まれたのを検出した場合、第2メッセージ受
信部41に格納されたヘッダ部のアドレスから、対応す
るブロックのディレクトリステートおよびディレクトリ
マップおよび更新頻度値をディレクトリメモリ43から
読み出し、その値によりどのような処理をするかを判断
する。この時、ディレクトリステートが取り得る値は、
方法上‘WSP’または‘RMP’に限定される。
Next, when the second consistency maintenance control unit 44 of the memory MM2 detects that the ACK message is taken in by the second message receiving unit 41, the header unit stored in the second message receiving unit 41. From the address of, the directory state and directory map of the corresponding block and the update frequency value are read from the directory memory 43, and what kind of processing is to be performed is determined by the value. At this time, the value that the directory state can take is
Methodologically limited to'WSP 'or'RMP'.

【0170】ディレクトリステートが‘RMP’の場
合、更新頻度値に関わらず、図20に示すシーケンス
で、メモリMM2がキャッシュCM3からのACKメッ
セージを受け取った場合の処理をする。
When the directory state is'RMP ', the process when the memory MM2 receives the ACK message from the cache CM3 is performed in the sequence shown in FIG. 20 regardless of the update frequency value.

【0171】第2一貫性維持制御部44は、まずEDR
メッセージのヘッダ部を生成し第2メッセージ送信部4
2に供給する。この時生成されるメッセージヘッダの宛
先装置番号は、第2メッセージ受信部41に格納されて
いるメッセージヘッダ部の要求元装置番号となり(この
場合は‘000’である)、メッセージ識別子はEDR
を表す識別子に、アドレスおよび要求元装置番号は第2
メッセージ受信部41に格納されているメッセージヘッ
ダ部のアドレスおよび要求元装置番号(ここでは‘00
0’である)となる。また、第2一貫性維持制御部44
は、第2データ制御部45に対して、メインメモリ46
から第2メッセージ受信部41に格納されているメッセ
ージヘッダ部のアドレスで特定されるブロックの読み出
しを指示する。第2データ制御部45は読み出したブロ
ックをEDRメッセージのデータ部として第2メッセー
ジ送信部42に供給する。第2メッセージ送信部42
は、第2一貫性維持制御部44から供給されるヘッダ部
と第2データ制御部45から供給されるデータ部をあわ
せて、相互結合網12にメッセージを送出する。また、
第2一貫性維持制御部44は、ディレクトリメモリ43
の書き込みを行い、ディレクトリステートをMに、また
ディレクトリマップを‘0001’に、更新頻度値を
‘0’に更新する。このディレクトリマップの値は、第
2メッセージ受信部41に格納されているメッセージヘ
ッダ部の要求元装置番号で特定されるキャッシュCMi
(ここではキャッシュCM1である)に対応するビット
を‘1’とし、他のビットを‘0’とする操作を行った
結果得られる値である。
The second consistency maintenance control unit 44 first determines the EDR.
Generates a header part of the message and sends the second message sending part 4
Feed to 2. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier is EDR.
Is the second identifier in the address and the request source device number.
The address of the message header section stored in the message receiving section 41 and the request source device number (here, “00”).
It is 0 '). In addition, the second consistency maintenance control unit 44
To the second data control unit 45, the main memory 46
To read the block specified by the address of the message header section stored in the second message receiving section 41. The second data control unit 45 supplies the read block to the second message transmission unit 42 as the data portion of the EDR message. Second message sending unit 42
Sends the message to the mutual connection network 12 by combining the header part supplied from the second consistency maintenance control part 44 and the data part supplied from the second data control part 45. Also,
The second consistency maintenance control unit 44 uses the directory memory 43.
Is written, the directory state is updated to M, the directory map is updated to “0001”, and the update frequency value is updated to “0”. The value of this directory map is the cache CMi specified by the request source device number of the message header section stored in the second message receiving section 41.
It is a value obtained as a result of the operation of setting the bit corresponding to (here, the cache CM1) to "1" and setting the other bits to "0".

【0172】ディレクトリステートが‘WSP’で、デ
ィレクトリマップが‘0001’でない場合、更新頻度
値の値に関わらず、図24に示すシーケンスでメモリM
M2がキャッシュCM3が発行したACKメッセージを
受け取った場合の処理をする。
When the directory state is "WSP" and the directory map is not "0001", the memory M is processed in the sequence shown in FIG. 24 regardless of the value of the update frequency value.
M2 performs processing when it receives the ACK message issued by the cache CM3.

【0173】第2一貫性維持制御部44は、ディレクト
リメモリ43の書き込みを行い、ディレクトリステート
はそのままの‘WSP’とするが、ディレクトリマップ
は前ディレクトリマップの値をデクリメントした値(こ
こでは‘0001’である)に、更新頻度値は‘0’に
更新する。
The second consistency maintenance control unit 44 writes the directory memory 43 and sets the directory state to "WSP" as it is, but the directory map decrements the value of the previous directory map (here, "0001"). ') And the update frequency value is updated to' 0 '.

【0174】次にディレクトリステートが‘WSP’
で、ディレクトリマップの値が‘0001’であった場
合、更新頻度値の値に関わらず、図24に示すシーケン
スでメモリMM2がキャッシュCM4が発行したACK
メッセージを受け取った場合の処理をする。
Next, the directory state is'WSP '.
Then, when the value of the directory map is '0001', the ACK issued by the cache CM4 by the memory MM2 in the sequence shown in FIG. 24 regardless of the value of the update frequency value.
Process when a message is received.

【0175】第2一貫性維持制御部44はまず、CRメ
ッセージのヘッダ部を生成し第2メッセージ送信部42
に供給する。この時生成されるメッセージヘッダの宛先
装置番号は、第2メッセージ受信部41に格納されてい
るメッセージヘッダ部の要求元装置番号となり(この場
合は‘000’である)、メッセージ識別子はCRを表
す識別子に、アドレスおよび要求元装置番号は第2メッ
セージ受信部41に格納されているメッセージヘッダ部
のアドレスおよび要求元装置番号(ここでは‘000’
である)となる。第2メッセージ送信部42、第2一貫
性維持制御部44から供給されるヘッダ部をメッセージ
として相互結合網12に送出する。また、第2一貫性維
持制御部44は、ディレクトリメモリ43の書き込みを
行い、ディレクトリステートをMに、またディレクトリ
マップを‘0001’に、更新頻度値は‘0’に更新す
る。このディレクトリマップの値は、第2メッセージ受
信部1に格納されたヘッダ部の要求元装置番号から特定
されるキャッシュCMi(ここではキャッシュCM1で
ある)に対応するビットを‘1’とし、他のビットを
‘0’とする操作を行った結果得られる値である。
The second consistency maintenance control unit 44 first generates the header portion of the CR message and then the second message transmission unit 42.
To supply. The destination device number of the message header generated at this time becomes the request source device number of the message header part stored in the second message receiving unit 41 (in this case, '000'), and the message identifier represents CR. In the identifier, the address and the request source device number are the address and the request source device number of the message header part stored in the second message receiving unit 41 (here, “000”).
It becomes). The header portion supplied from the second message transmission unit 42 and the second consistency maintenance control unit 44 is sent to the mutual connection network 12 as a message. Further, the second consistency maintenance control unit 44 writes in the directory memory 43 and updates the directory state to M, the directory map to '0001', and the update frequency value to '0'. In the value of this directory map, the bit corresponding to the cache CMi (here, the cache CM1) specified by the request source device number of the header part stored in the second message receiving unit 1 is set to "1", and the other It is a value obtained as a result of the operation of setting the bit to “0”.

【0176】次に、本発明の第3の実施の形態の効果に
ついて説明する。
Next, the effect of the third embodiment of the present invention will be described.

【0177】例えば、キャッシュCM1のブロックの状
態が共有状態でありキャッシュCM1とメモリMM2に
のみ最新のブロックが存在する状態で、プロセッサPR
1が連続して書き込みを行い、その間他のプロセッサP
Riがアクセスを行わなかった場合を考える。この場
合、第1の実施の形態におけるデータ一貫性維持制御方
法では、書き込みの度に書き込み要求メッセージがキャ
ッシュCM1からメモリMM2に発行される。そのた
め、この場合のデータ一貫性維持制御のためのメッセー
ジ数が増加するという問題がある。また、第2の実施の
形態におけるデータ一貫性維持制御方式では、最初の2
回の書き込みはメモリにも反映されるが、3回目以降の
書き込みはメモリに反映されない。そのため実質上2回
目の書き込み以降はメモリMM2に最新のブロックが存
在しない状態となる。そのため、その後に他のプロセッ
サPRiがアクセスを行った場合に、メモリMM2に最
新のブロックが存在しないので、この場合、キャッシュ
ミスが発生してからプロセッサにデータが応答されるま
でにかかる時間が長くなる。
For example, when the block state of the cache CM1 is the shared state and the latest block exists only in the cache CM1 and the memory MM2, the processor PR is
1 continuously writes, while another processor P
Consider the case where Ri did not access. In this case, in the data consistency maintenance control method according to the first embodiment, a write request message is issued from the cache CM1 to the memory MM2 each time writing is performed. Therefore, there is a problem that the number of messages for data consistency maintenance control in this case increases. In the data consistency maintenance control method according to the second embodiment, the first two
Writing of the third time is reflected in the memory, but writing of the third time and thereafter is not reflected in the memory. Therefore, substantially the latest block does not exist in the memory MM2 after the second writing. Therefore, when another processor PRi makes an access thereafter, the latest block does not exist in the memory MM2. In this case, therefore, it takes a long time from the occurrence of the cache miss until the data is returned to the processor. Become.

【0178】第3の実施の形態におけるデータ一貫性維
持制御方法では、パラメータである更新頻度上限値をN
に設定した場合、最初のN+1回の書き込みはメモリM
M2にも反映される。そのためN+1回の書き込みが行
われるまで、最新のブロックがメモリMM2に存在する
状態となる。そのため、その間に他のプロセッサPRi
がアクセスを行った場合、最新のブロックがメモリMM
2に存在するので、キャッシュミスが発生してからプロ
セッサにデータが応答されるまでにかかる時間を短縮で
きる。また、その間アクセスがなかった場合、N+2回
目からは書き込みはメモリMM2に反映されない。その
ため、この場合のメッセージの増加を防ぐことができ
る。
In the data consistency maintenance control method according to the third embodiment, the update frequency upper limit value which is a parameter is set to N.
If set to, memory N is written in the first N + 1 times.
It is also reflected in M2. Therefore, the latest block remains in the memory MM2 until writing is performed N + 1 times. Therefore, in the meantime, another processor PRi
Is accessed, the latest block is the memory MM
2 exists, it is possible to reduce the time required from the occurrence of a cache miss to the response of data to the processor. If there is no access during that time, the writing is not reflected in the memory MM2 from the N + 2th time. Therefore, it is possible to prevent an increase in messages in this case.

【0179】[0179]

【発明の効果】第1の効果は、プロセッサの読み出しに
よりキャッシュミスが発生した場合に、キャッシュから
プロセッサにデータが応答されるまでにかかる時間を短
縮できることにある。
The first effect is that, when a cache miss occurs due to the reading of the processor, the time taken until the data is responded from the cache to the processor can be shortened.

【0180】その理由は、プロセッサが共有しているブ
ロックに対して書き込みを行ったときに、メモリにも書
き込みを反映し最新のブロックが存在する状態としてい
るためである。
The reason is that, when writing is performed to the block shared by the processors, the writing is reflected in the memory so that the latest block exists.

【0181】第2の効果は、プロセッサの読み出しによ
りキャッシュミスが発生した場合に生成されるデータ一
貫性維持制御のためのメッセージを削減できることにあ
る。
The second effect is that it is possible to reduce the message for data coherency maintenance control generated when a cache miss occurs due to the reading of the processor.

【0182】その理由は、プロセッサが共有しているブ
ロックに対して書き込みを行ったときに、メモリにも書
き込みを反映し最新のブロックが存在する状態としてい
るためである。
The reason is that, when writing is performed to the block shared by the processors, the writing is reflected in the memory so that the latest block exists.

【0183】第3の効果は、プロセッサの書き込みによ
り発生するメッセージの数の増加を抑えることができる
ことにある。
The third effect is that it is possible to suppress an increase in the number of messages generated by writing by the processor.

【0184】その理由は、プロセッサが実際に複数のキ
ャッシュで共有されているブロックに対して連続して書
き込みを行い、またその間他のキャッシュがアクセスを
行わなかった場合に、書き込みをメモリに反映するのを
途中で打ち切るためである。
The reason is that when the processor continuously writes to a block which is actually shared by a plurality of caches and another cache does not access during that time, the write is reflected in the memory. The reason is that it will be terminated midway.

【0185】第4の効果は、第1および第2の効果を強
くするか、第3の効果を強くするかを調整できることに
ある。
The fourth effect is that it is possible to adjust whether to strengthen the first and second effects or the third effect.

【0186】その理由は、プロセッサが実際に複数のキ
ャッシュで共有されているブロックに対して連続して書
き込みを行い、またその間他キャッシュがアクセスを行
わなかった場合に、書き込みをメモリに反映するのを何
回で打ち切るかパラメータで設定できるためである。
The reason is that if the processor continuously writes to a block which is actually shared by a plurality of caches and another cache does not access during that time, the write is reflected in the memory. This is because it is possible to set the number of times to terminate with a parameter.

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

【図1】従来および本発明に関わるマルチプロセッサシ
ステムの構成説明図である。
FIG. 1 is an explanatory diagram of a configuration of a multiprocessor system according to the related art and the present invention.

【図2】本発明に関わるキャッシュの構成説明図であ
る。
FIG. 2 is an explanatory diagram of a cache configuration according to the present invention.

【図3】本発明に関わるメモリの構成説明図である。FIG. 3 is an explanatory diagram of a memory configuration according to the present invention.

【図4】ディレクトリマップの値と保持しているキャッ
シュの関係を表す図。
FIG. 4 is a diagram showing a relationship between a value of a directory map and a cache held therein.

【図5】第1の実施の形態におけるデータ一貫性維持制
御方法のメッセージヘッダの構成を説明する図。
FIG. 5 is a diagram illustrating a configuration of a message header of a data consistency maintenance control method according to the first embodiment.

【図6】第1の実施の形態におけるデータ一貫性維持制
御方法でキャッシュミスの場合に置き換えの対象となっ
たブロックをメモリに書き戻す場合のシーケンスフロー
である。
FIG. 6 is a sequence flow for writing back a block to be replaced in a memory in the case of a cache miss in the data consistency maintenance control method according to the first embodiment.

【図7】第1の実施の形態におけるデータ一貫性維持制
御方法でキャッシュミスの場合に置き換えの対象となっ
たブロックをメモリに書き戻す場合のシーケンスフロー
である。
FIG. 7 is a sequence flow for writing back a block to be replaced in a memory in the case of a cache miss in the data consistency maintenance control method according to the first embodiment.

【図8】第1の実施の形態におけるキャッシュミスの場
合にキャッシュとメモリの間でやり取りされるメッセー
ジのシーケンスフローである。
FIG. 8 is a sequence flow of a message exchanged between a cache and a memory in the case of a cache miss in the first embodiment.

【図9】第1の実施の形態におけるキャッシュミスの場
合にキャッシュとメモリの間でやり取りされるメッセー
ジのシーケンスフローである。
FIG. 9 is a sequence flow of messages exchanged between a cache and a memory in the case of a cache miss in the first embodiment.

【図10】第1の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 10 is a sequence flow of messages exchanged between a cache and a memory in the case of a cache miss in the first embodiment.

【図11】第1の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 11 is a sequence flow of messages exchanged between a cache and a memory in the case of a cache miss in the first embodiment.

【図12】第1の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 12 is a sequence flow of messages exchanged between a cache and a memory in the case of a cache miss in the first embodiment.

【図13】第1の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。
FIG. 13 is a sequence flow of messages exchanged between the cache and the memory in the case of the write shared according to the first embodiment.

【図14】第1の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。
FIG. 14 is a sequence flow of messages exchanged between the cache and the memory in the case of the write shared according to the first embodiment.

【図15】第1の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。
FIG. 15 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing according to the first embodiment.

【図16】第2の実施の形態におけるデータ一貫性維持
制御方法の動作を説明する図。
FIG. 16 is a diagram for explaining the operation of the data consistency maintenance control method according to the second embodiment.

【図17】第3の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 17 is a sequence flow of messages exchanged between a cache and a memory in the case of a cache miss in the third embodiment.

【図18】第3の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 18 is a sequence flow of messages exchanged between a cache and a memory in the case of a cache miss in the third embodiment.

【図19】第3の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 19 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the third embodiment.

【図20】第3の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 20 is a sequence flow of a message exchanged between the cache and the memory in the case of a cache miss in the third embodiment.

【図21】第3の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。
FIG. 21 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the third embodiment.

【図22】第3の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。
FIG. 22 is a sequence flow of a message exchanged between the cache and the memory in the case of the write shared according to the third embodiment.

【図23】第3の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。
FIG. 23 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing according to the third embodiment.

【図24】第3の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。
FIG. 24 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing according to the third embodiment.

【図25】第3の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。
FIG. 25 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing according to the third embodiment.

【図26】第3の実施の形態におけるデータ一貫性維持
方法でキャッシュミスの場合に置き換えの対象となった
ブロックをメモリに書き戻す場合のシーケンスフローで
ある。
FIG. 26 is a sequence flow for writing back the block to be replaced in the memory in the case of a cache miss in the data consistency maintaining method according to the third embodiment.

【図27】第3の実施の形態におけるデータ一貫性維持
方法でキャッシュミスの場合に置き換えの対象となった
ブロックをメモリに書き戻す場合のシーケンスフローで
ある。
FIG. 27 is a sequence flow for writing back a block to be replaced in the memory in the case of a cache miss in the data consistency maintaining method according to the third embodiment.

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

PRi プロセッサ CMi キャッシュ MMi メモリ 12 相互結合網 21 メモリアクセス管理部 22 タグメモリ 23 第1一貫性維持制御部 24 第1データ制御部 25 キャッシュメモリ 26 第1メッセージ受信部 27 第1メッセージ送信部 41 第2メッセージ受信部 42 第2メッセージ送信部 43 ディレクトリメモリ 44 第2一貫性維持制御部 45 第2データ制御部 46 メインメモリ PRi processor CMi cache MMi memory 12 mutual connection network 21 memory access management unit 22 tag memory 23 first consistency maintenance control unit 24 first data control unit 25 cache memory 26 first message receiving unit 27 first message transmitting unit 41 second Message receiving unit 42 Second message transmitting unit 43 Directory memory 44 Second consistency maintenance control unit 45 Second data control unit 46 Main memory

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】複数のプロセッサがキャッシュを備えたマ
ルチプロセッサシステムにおけるデータ一貫性維持制御
方法において、 複数のプロセッサが共有しているブロックに対して1つ
のプロセッサが書き込みを行う際に、当該書き込みを行
ったプロセッサのキャッシュおよびメモリのブロックに
対して書き込みを反映し、最新のブロックが前記キャッ
シュおよびメモリに存在するようにし、他のプロセッサ
のキャッシュのブロックに関しては無効化を行い、最新
のブロックが存在しないようにし、書き込みが行われた
キャッシュのブロックの状態を共有状態のままとするこ
とを特徴とするデータ一貫性維持制御方法。
1. A data consistency maintenance control method in a multiprocessor system in which a plurality of processors have a cache, wherein when one processor writes to a block shared by the plurality of processors, the write is performed. The writing is reflected in the cache and memory blocks of the processor that has performed so that the latest block exists in the cache and memory, and the cache blocks of other processors are invalidated, and the latest block exists. Data coherency maintenance control method characterized in that the state of the block of the cache in which the writing is performed is kept in the shared state.
【請求項2】複数のプロセッサがキャッシュを備えたマ
ルチプロセッサシステムにおけるデータ一貫性維持制御
方法において、 複数のプロセッサが共有しているブロックに対して1つ
のプロセッサが書き込みを行ったときに、当該書き込み
を行ったプロセッサのキャッシュおよびメモリにのみ最
新のブロックが存在する状態であり他のプロセッサのキ
ャッシュが最新のブロックを保持していなければ、当該
他のプロセッサのキャッシュおよびメモリのブロックに
対して書き込みを反映し、最新のブロックが前記書き込
みを行ったプロセッサのキャッシュおよびメモリに存在
するようにし、書き込みが行われたプロセッサのキャッ
シュのブロックの状態を共有状態から非共有状態に遷移
させることを特徴とするデータ一貫性維持制御方法。
2. A data coherency maintenance control method in a multiprocessor system in which a plurality of processors have a cache, wherein when one processor writes to a block shared by the plurality of processors, the write operation is performed. If the latest block exists only in the cache and memory of the processor that performed the operation and the cache of another processor does not hold the latest block, write to the cache and memory block of the other processor. Reflecting, the latest block exists in the cache and memory of the processor that wrote the data, and the state of the block of the cache of the processor that wrote the data is transited from the shared state to the non-shared state. Data consistency maintenance control method.
【請求項3】複数のプロセッサがキャッシュを備えたマ
ルチプロセッサシステムにおけるデータ一貫性維持制御
方法において、 メモリにおいてブロック単位に更新頻度値を表すフィー
ルドを設け、複数のプロセッサが共有しているブロック
に対して1つのプロセッサが書き込みを行ったときに、
当該書き込みを行ったキャッシュおよびメモリにのみ最
新のブロックが存在する状態であり、他のキャッシュが
最新のブロックを保持しておらず、更新頻度値がある一
定値と異なる値の場合は、その更新頻度値をインクリメ
ントし、それ以外の場合は更新頻度値を0に初期化し、 複数のプロセッサが共有しているブロックに対して1つ
のプロセッサが書き込みを行ったときに、当該書き込み
を行ったプロセッサのキャッシュおよびメモリにのみ最
新のブロックが存在する状態であり、他のプロセッサの
キャッシュが最新のブロックを保持しておらず、更新頻
度値がある一定値と一致する場合は、当該書き込みを行
ったプロセッサのキャッシュおよびメモリのブロックに
対して書き込みを反映し、最新のブロックが前記書き込
みを行ったプロセッサのキャッシュおよびメモリに存在
するようにし、書き込みが行われたキャッシュのブロッ
クの状態を共有状態から非共有状態に遷移させることを
特徴とするデータ一貫性維持制御方法。
3. A data coherency maintenance control method in a multiprocessor system in which a plurality of processors have a cache, wherein a field indicating an update frequency value is provided for each block in a memory, and a block shared by the plurality of processors is provided. When one processor writes
If the latest block exists only in the cache and memory where the write was performed, another cache does not hold the latest block, and the update frequency value is different from a certain value, the update The frequency value is incremented, otherwise the update frequency value is initialized to 0, and when one processor writes to a block shared by multiple processors, the writing If the latest block exists only in the cache and memory, the cache of another processor does not hold the latest block, and if the update frequency value matches a certain value, the processor that performed the write Write to the other cache and memory blocks, and the latest block Data consistency maintenance control method characterized in that the state of a block of the cache in which data has been written is changed from a shared state to a non-shared state so that it exists in the cache and memory of the server.
JP8043924A 1996-03-01 1996-03-01 Method for controlling maintenance of data consistency in multi processor system Pending JPH09237259A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8043924A JPH09237259A (en) 1996-03-01 1996-03-01 Method for controlling maintenance of data consistency in multi processor system
JP2000009808A JP3678620B2 (en) 1996-03-01 2000-01-19 Data consistency maintenance control method in multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8043924A JPH09237259A (en) 1996-03-01 1996-03-01 Method for controlling maintenance of data consistency in multi processor system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2000009808A Division JP3678620B2 (en) 1996-03-01 2000-01-19 Data consistency maintenance control method in multiprocessor system

Publications (1)

Publication Number Publication Date
JPH09237259A true JPH09237259A (en) 1997-09-09

Family

ID=12677260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8043924A Pending JPH09237259A (en) 1996-03-01 1996-03-01 Method for controlling maintenance of data consistency in multi processor system

Country Status (1)

Country Link
JP (1) JPH09237259A (en)

Similar Documents

Publication Publication Date Title
KR100308323B1 (en) Non-uniform memory access (numa) data processing system having shared intervention support
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
US6631448B2 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
TWI391821B (en) Processor unit, data processing system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
EP1255201B1 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
US8103835B2 (en) Low-cost cache coherency for accelerators
JP3007872B2 (en) Method and apparatus for providing a cache coherency protocol for maintaining cache coherency in a multiprocessor data processing system
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US7386680B2 (en) Apparatus and method of controlling data sharing on a shared memory computer system
KR20030025296A (en) Method and apparatus for centralized snoop filtering
US6922755B1 (en) Directory tree multinode computer system
JPH09223118A (en) Snoop cache memory control system
US6587922B2 (en) Multiprocessor system
US20040002992A1 (en) Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices
JP3288712B2 (en) Link cache for context data search
JP3009430B2 (en) Processor and cache memory control method thereof
US20180225214A1 (en) Cache content management
KR20200049529A (en) Cache maintenance operations in a data processing system
KR100380674B1 (en) Method and system for maintaining cache coherency for write-through store operations in a multiprocessor system
JP3678620B2 (en) Data consistency maintenance control method in multiprocessor system
JP2003216597A (en) Multiprocessor system
JPH09237259A (en) Method for controlling maintenance of data consistency in multi processor system
JP3714235B2 (en) Multiprocessor system
US6757793B1 (en) Reducing probe traffic in multiprocessor systems using a victim record table
EP0631236B1 (en) A bus-master computer system and method