JP2000172656A - Data consistency maintenance control method for multiprocessor system - Google Patents
Data consistency maintenance control method for multiprocessor systemInfo
- Publication number
- JP2000172656A JP2000172656A JP2000009808A JP2000009808A JP2000172656A JP 2000172656 A JP2000172656 A JP 2000172656A JP 2000009808 A JP2000009808 A JP 2000009808A JP 2000009808 A JP2000009808 A JP 2000009808A JP 2000172656 A JP2000172656 A JP 2000172656A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- message
- block
- memory
- 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.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、各プロセッサがキ
ャッシュを備えたマルチプロセッサシステムにおける、
データ一貫性維持制御方法に関する。The present invention relates to a multiprocessor system in which each processor has a cache.
It relates to a data consistency maintenance control method.
【0002】[0002]
【従来の技術】マルチプロセッサシステムでは、システ
ムに複数存在するキャッシュ上に、同一のアドレスのデ
ータが存在し得る。そのため、同一アドレスのデータを
保持するキャッシュ間でデータの一貫性を維持するため
の制御、データの一貫性維持制御が必要である。2. Description of the Related Art In a multiprocessor system, data at the same address may exist on a plurality of caches in the system. Therefore, control for maintaining data consistency between caches holding data of the same address and control for maintaining data consistency are required.
【0003】このデータ一貫性維持制御は、各プロセッ
サがあるブロックに対して書き込みを行ったときにはそ
れを排他的に行うことができ、読み出し時には最新の値
が得られる、ということを保証するための制御である。
従って、まず、書き込みの対象となっているブロックが
どのキャッシュに存在しているかを特定することができ
なければならない。そして、読み出し時のミスの際に、
どこに最新のブロックが存在するかを特定できなければ
ならない。ここで、ブロックとはデータ管理の最小単位
であり、大きさは例えば64バイトになる。[0003] This data consistency maintaining control is for ensuring that each processor can write exclusively to a certain block, and that the latest value can be obtained at the time of reading. Control.
Therefore, first, it must be possible to specify in which cache the block to be written exists. And, in the case of reading mistake,
You must be able to identify where the latest block is. Here, the block is the minimum unit of data management, and has a size of, 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の特徴は、プロセッサが共有してい
るブロックに対して書き込みを行ったときに、他キャッ
シュのブロックを無効化して共有状態を解消し、当該キ
ャッシュにのみ最新のブロックが存在する状態とするこ
とにある。[0004] For example, in the literature ("A New Solut"
ion to CoherencyProblems
in Multisystems ”LUC
IEN M. CENSIER and PAUL FE
AUTORER, IEEETransactions
on Computers, p1112-1118, D
esber 1978), the method disclosed in
It has the following three features. First, the first feature resides in holding information on whether or not the block is shared in units of blocks in the cache. The second feature is that information for specifying a cache holding the block in the memory in units of blocks and information as to whether the latest block exists in the memory are stored. A third feature is that when writing is performed on a block shared by the processor, a block in another cache is invalidated to eliminate the shared state, and a state where the latest block exists only in the cache is set. Is to do.
【0005】以降、この方法の動作を説明する。Hereinafter, the operation of this method will be described.
【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 performing memory access, and each processor PRi.
And a memory CMi for temporarily holding data accessed by the processor PRi, a memory MMi for holding data, and an interconnection network 12 for connecting the cache CMi and the memory MMi. In the system shown in FIG. 1, the interconnection network 12 has eight ports, a cache CM1 at port 0, a cache CM2 at port 1, a cache CM3 at port 2, and a cache CM3 at port 3. The cache CM4 has the memory MM1 in the port 4.
The port 5 is connected to the memory MM2, the port 6 is connected to the memory MM3, and the port 7 is connected to the memory MM4.
【0007】以降、プロセッサPR1がメモリMM2の
データをアクセスした場合を例にとり、そのアクセスに
よって行われるデータ一貫性維持のための一連の動作を
説明する。Hereinafter, a series of operations for maintaining data consistency performed by the processor PR1 accessing data in the memory MM2 will be described with reference to an example.
【0008】プロセッサPR1があるブロックのデータ
に対してアクセスを行ったが、そのブロックがキャッシ
ュCM1に存在しなかった場合(以降この場合をキャッ
シュミスと記す)の動作を説明する。この場合、まずキ
ャッシュCM1からメモリMM2に読み出し要求メッセ
ージが発行される。読み出し要求を受けたメモリMM2
は、最新のブロックが当該メモリに存在するかどうかを
検査し、存在すれば当該ブロックを、キャッシュCM1
に送信する。存在しなければ、最新のブロックを保持す
るキャッシュが唯一存在するので、そのキャッシュ、例
えばキャッシュCM3に書き戻し要求メッセージを発行
する。書き戻し要求を受けたキャッシュCM3は、メモ
リMM2に対して当該ブロックの書き戻しを行う。メモ
リMM2は、キャッシュCM3から書き戻されたブロッ
クをキャッシュCM1に送信する。ブロックを受けたキ
ャッシュCM1は、再度、プロセッサPR1が行ったメ
モリアクセスを評価し、データ一貫性維持のために必要
な処理を行う。The operation when the processor PR1 accesses 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 has received the read request
Checks whether the latest block exists in the memory, and if so, stores the block in the cache CM1.
Send to If not, there is only one cache holding the latest block, and a 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 the block back to the memory MM2. The memory MM2 transmits the block written back from the cache CM3 to the cache CM1. The cache CM1 that has received the block again evaluates the memory access performed by the processor PR1, and performs processing necessary for maintaining 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 that previously held the block. Also, the memory M
The state is such that the latest block exists also in M2.
【0010】次に、プロセッサPR1があるブロックの
データに対して読み出しを行い、そのブロックがキャッ
シュCM1に存在した場合(以降この場合をリードヒッ
トと記す)の動作を説明する。この場合、キャッシュC
M1はそのブロックのデータをプロセッサPR1に渡す
ことで、処理は完了する。Next, the operation when the processor PR1 reads data of a certain block and the block exists in the cache CM1 (hereinafter, this case is referred to as a read hit) will be described. In this case, the cache C
M1 passes the data of the block to the processor PR1 to complete the processing.
【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 a shared state (hereinafter, this case is referred to as a write hit) will be described. In this case, the write performed by the processor PR1 on the cache CM1 is reflected on the block held by the cache CM1,
The processing 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 the cache CM3 and the cache CM4 hold blocks other than the cache CM1, the cache CM3 and the cache CM
4 issues an invalidation request message. The cache CM3 and the cache CM4 receiving the invalidation request respectively invalidate the block and transmit an invalidation completion message to the memory MM2. When 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
Receives the completion response message,
1 is notified that the writing has been completed, and the process is completed. As a result of the above processing, only the cache that has performed the writing holds the latest block, and the memory does not have the latest block.
【0013】上記の処理の結果、キャッシュCM1にの
み最新のブロックが存在することになり、他のキャッシ
ュCMiおよびメモリMM2には最新のブロックが存在
しない状態となる。As a result of the above processing, the latest block exists only in the cache CM1, and the other cache CMi and the memory MM2 do not have the latest block.
【0014】以上の、データ一貫性維持のための動作の
説明では、例えばメモリMM2が、キャッシュCM1か
らの読み出し要求を受けキャッシュCM3に対して書き
戻し要求を発行し、ブロックが書き戻されるのを待って
いる状態で、キャッシュCM2から読み出し要求があっ
た場合の動作などが省略されている。In the above description of the operation for maintaining data consistency, for example, it is assumed that the memory MM2 receives a read request from the cache CM1, issues a writeback request to the cache CM3, and writes the block back. The operation when a read request is issued from the cache CM2 in the waiting state is omitted.
【0015】[0015]
【発明が解決しようとする課題】第1の問題点は、プロ
セッサの読み出しによりキャッシュミスが発生した場合
に、キャッシュからプロセッサにデータが応答されるま
でにかかる時間が長いということである。A first problem is that when a cache miss occurs due to reading of a processor, it takes a long time until data is responded to the processor from the cache.
【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 a case where the processor PR1 performs writing and then the processor PR4 performs reading in a state where the block of the memory MM2 exists and is shared by M3. When the processor PR1 writes, the latest block exists only in the cache CM1, and the latest data does not exist in the memory MM2.
Next, when the processor PR4 reads data, a cache miss occurs because no block exists in the cache CM4. As a result, a read request message is transmitted to the memory MM2, but since the latest data does not exist in the memory MM2, a 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 thereafter transmits the block to the cache CM4. The cache CM4 that has received the block again evaluates the read performed by the processor PR4, passes the data to the processor PR4 because the block exists, and completes the processing.
【0017】このように、上記問題の理由は、プロセッ
サが書き込みを行った後に、メモリに最新のブロックが
存在しなくなることにある。As described above, the reason for the above-mentioned problem is that the latest block does not exist in the memory after the processor performs writing.
【0018】第2の問題点は、データ一貫性維持制御の
ためにキャッシュおよびメモリ間でやり取りされるメッ
セージが多いということである。A second problem is that many messages are exchanged between the cache and the memory for controlling data consistency.
【0019】その理由は、プロセッサが書き込みを行っ
た後に、メモリに最新のブロックが存在しなくなること
にある。即ち、あるプロセッサが書き込みを行った後、
別のキャッシュにおいてキャッシュミスが発生した場合
に、メモリへの読み出し要求メッセージおよびキャッシ
ュへのブロック転送の他に、最新のデータを保持するキ
ャッシュに対する書き戻し要求メッセージおよびそのキ
ャッシュからのブロックの書き戻しが必要となるためで
ある。The reason is that after the processor has written, the latest block no longer exists in memory. That is, after a certain processor writes,
When a cache miss occurs in another cache, in addition to a read request message to the memory and a block transfer to the cache, a write-back request message to the cache holding the latest data and a block write-back from the cache are performed. It is necessary.
【0020】本発明の目的は、読み出しによるキャッシ
ュミスが発生した場合のデータ一貫性維持制御に要する
時間を短縮した、データ一貫性維持制御方法を提供する
ことにある。An object of the present invention is to provide a data consistency maintaining control method which reduces the time required for data consistency maintaining control when a cache miss occurs due to reading.
【0021】本発明の他の目的は、データ一貫性維持制
御によって生成されるメッセージの数の増加を防ぐデー
タ一貫性一方制御方法を提供することにある。It is another object of the present invention to provide a data consistency control method for preventing 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 maintaining control method of the present invention, when data is written to a block shared by a processor, the data is written to the cache and memory blocks. Means for performing data consistency maintenance control in the cache and the memory to invalidate the blocks of the other cache and to keep the state of the block of the cache in which the writing is performed in the shared state (23 in FIG. 2). And 44) in FIG.
【0023】本発明の第2のデータ一貫性維持制御方法
は、プロセッサが共有しているブロックに対して書き込
みを行ったときに、当該キャッシュおよびメモリにのみ
最新のブロックが存在する状態であり他のキャッシュが
最新のブロックを保持していなければ、当該キャッシュ
およびメモリのブロックに対して書き込みを反映する
が、書き込みが行われたキャッシュのブロックの状態を
共有状態から非共有状態に遷移させる、データ一貫性維
持制御をキャッシュおよびメモリにおいて行う手段(図
2の23と図3の44)を有する。According to the second data consistency maintaining control method of the present invention, when data is written to a block shared by a processor, the latest block exists only in the cache and the memory. If the cache of the cache does not hold the latest block, the write is reflected to the cache and the block of the memory, but the state of the block of the cache where the write is performed 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 the cache and the memory.
【0024】本発明の第3のデータ一貫性維持制御方法
は、メモリにおいてブロック単位にカウンタを設け、ブ
ロックが新たにキャッシュに取り込まれたときはカウン
タの値を0に初期化し、プロセッサが共有しているブロ
ックに対して書き込みを行ったときはそのブロックのカ
ウンタの値をインクリメントし、またプロセッサが共有
しているブロックに対して書き込みを行ったときに、当
該キャッシュおよびメモリにのみ最新のブロックが存在
する状態であり他のキャッシュが最新のブロックを保持
しておらずまたカウンタの値がある値になっていれば、
当該キャッシュおよびメモリのブロックに対して書き込
みを反映するが、書き込みが行われたキャッシュのブロ
ックの状態を共有状態から非共有状態に遷移させる、デ
ータ一貫性維持制御をキャッシュおよびメモリにおいて
行う手段(図2の23と図3の44)を有する。According to the third data consistency maintaining control method of the present invention, a counter is provided for each block in a memory, and when a block is newly taken into a cache, the value of the counter is initialized to 0 and shared by the processors. When writing to a block that has been written, the counter value of that block is incremented, and when writing to a block shared by the processor, the latest block is stored only in the cache and memory. If it exists, the other cache does not hold the latest block, and the counter value is a certain value,
Means for performing data consistency maintenance control in the cache and the memory, which reflects the write to the cache and the memory block, but changes the state of the written cache block from the shared state to the non-shared state (FIG. 2 and 23 in FIG. 3).
【0025】本発明の第1のデータ一貫性維持制御方法
におけるデータ一貫性維持制御手段は、プロセッサが共
有しているブロックに対して書き込みを行ったときに、
書き込みが行われたキャッシュおよびメモリに、最新の
ブロックが存在する状態とする。The data consistency maintaining control means in the first data consistency maintaining control method according to the present invention comprises the steps of:
It is assumed that the latest block exists in the cache and memory where the writing has been performed.
【0026】本発明の第2のデータ一貫性維持制御方法
におけるデータ一貫性維持制御手段は、プロセッサが実
際に複数のキャッシュで共有されているブロックに対し
て連続して書き込みを行い、またその間他キャッシュが
アクセスを行わなかった場合に、最初の2回の書き込み
はメモリにも反映するが、2回目の書き込み後からブロ
ックの共有状態は解消され、3回目の書き込み以降は当
該キャッシュに対してのみ行われる。The data consistency maintaining control means in the second data consistency maintaining control method of the present invention is characterized in that the processor performs continuous writing to a block actually shared by a plurality of caches, When the cache does not access, the first two writes are also reflected in the memory, but after the second write, the block sharing state is canceled, and after the third write, only the cache is accessed. Done.
【0027】本発明の第3のデータ一貫性維持制御方法
におけるデータ一貫性維持制御手段は、プロセッサが実
際に複数のキャッシュで共有されているブロックに対し
て連続して書き込みを行い、またその間他のキャッシュ
がアクセスを行わなかった場合に、一定回数の書き込み
はメモリにも反映するが、それ以降の書き込みは当該キ
ャッシュに対してのみ行われる。The data consistency maintaining control means in the third data consistency maintaining control method of the present invention is characterized in that the processor performs continuous writing to a block actually shared by a plurality of caches, When the cache does not access the memory, the writing for a certain number of times is reflected in the memory, but the writing thereafter is performed only for 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 for executing an instruction and performing memory access, and a cache connected to each processor PRi for temporarily storing data accessed by the processor PRi. It comprises a CMi, a memory MMi holding data, a cache CMi, and an interconnection network 12 connecting the memories MMi. In the system shown in FIG. 1, the interconnection network 12 has eight ports, a cache CM1 at port 0, a cache CM2 at port 1, a cache CM3 at port 2, and a port CM3.
Is a cache CM4, and port 4 is a memory MM1.
The port 5 is connected to the memory MM2, the port 6 is connected to the memory MM3, and the port 7 is connected to the memory MM4.
【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, a 3-bit device number is assigned to each cache CMi and memory MMi corresponding to the port number connected to the interconnection network 12, and 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'. Also, each memory MM
i manages an area where the upper two bits of the address match the lower two bits of the own device number. For example, memory MM
2 manages the area where the upper two 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 for holding information on blocks such as tag states, a cache memory 25 for holding data in units of blocks, a processor P
A memory access management unit 21 for holding and managing the memory access from Ri, a first message receiving unit 26 for receiving a message delivered by the interconnection network 12, and a first for transmitting a message to the interconnection network 12. A message transmission unit 27, a first data control unit 24 that accesses the cache memory 25, and a memory access management unit 21
In order to perform processing for maintaining data consistency with respect to the memory access held by the first message receiver 26 and the message held by the first message receiver 26, the tag memory 22
A function of reading and writing information stored in the cache memory; a function of instructing the first data control unit 24 to access the cache memory 25 as a control function;
The first consistency maintaining control unit 23 has a function of instructing the first message transmitting unit 27 to transmit 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 on 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 a message delivered by the interconnection network 12,
Message transmitting unit 42 for transmitting a message to
The first data control unit 24 that accesses the main memory 46 and the data stored in the second message reception unit 41 are stored in the directory memory 43 in order to perform processing for maintaining data consistency. And a control function for reading and writing the stored information from the main memory 4 to the second data control unit 45.
No. 6 having a function of instructing access and a function of instructing the second message transmitting unit 42 to transmit a message.
And 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 maintaining control method according to the first embodiment, the tag state held in the tag memory 22 indicates the state of the block stored in the cache memory 25. It consists of four states, S, E, and D, each having the following meaning. The I state indicates that the latest block does not exist in the cache memory 25. The S state indicates that the latest block exists in the cache memory 25 and may also 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 main memory 46 has the latest block, but does not exist in the other cache memories 25. The state D indicates that the latest block exists in the cache memory 25, and the other blocks do not exist in the other cache memories 25 or the main memory 46. Also, the cache memory 2
At 5, the initial value of the tag state is I, and the cache memory 25 has no latest block.
【0034】また、第1の実施の形態におけるデータ一
貫性維持制御方法では、ディレクトリメモリ43に保持
されるディレクトリマップは、メインメモリ46の該当
するブロックを保持しているキャッシュCMiを表すも
ので、例えば文献(「A New Solution
to Coherency Problems inM
ulticache Systems」LUCIEN
M.CENSIERand PAUL FEAUTRI
ER,IEEE Transactionson Co
mputers,p1112−1118,Decemb
er 1978)に開示されている、フルマップ方式で
構成される。フルマップ方式は、各キャッシュCMiに
対応するビットを設け、そのビットによりキャッシュC
Miがブロックを保持しているか保持していないかを示
すものであり、図1のシステムでは、ディレクトリマッ
プは4ビットで構成される。図4にディレクトリマップ
の値と、どのキャッシュCMiがブロックを保持してい
るかの関係を示す。図4において、○は保持しているこ
とを示し、×は保持していないことを示す。図より明ら
かなように、ディレクトリマップの第0ビットが1の場
合キャッシュCM1がブロックを保持していることを示
し、第1ビットが1の場合キャッシュCM2が、第2ビ
ットが1の場合キャッシュCM3が、第3ビットが1の
場合キャッシュCM4がそれぞれブロックを保持してい
ることを示す。また、ディレクトリメモリ43におい
て、ディレクトリマップの初期値は‘0000’とな
り、どのキャッシュCMiもブロックを保持していない
状態となる。In the data consistency maintaining control method according to the first embodiment, the directory map held in the directory memory 43 represents the cache CMi holding the corresponding block of the main memory 46. For example, in the literature ("A New Solution
to Coherency Problems inM
multicache Systems ”LUCIEN
M. CENSIELAND PAUL FEAUTRI
ER, IEEE Transactionson Co
mputers, p1112-1118, Decemb
er 1978). In the full map method, a bit corresponding to each cache CMi is provided, and the bit
This indicates whether Mi holds a block or not, 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 a block. In FIG. 4, ○ indicates that the image is held, and X indicates that the image is not held. As is clear from the figure, when the 0th bit of the directory map is 1, it indicates that the cache CM1 holds the block. When the 1st bit is 1, the cache CM2 is stored. When the 2nd bit is 1, the cache CM3 is stored. However, when the third bit is 1, it indicates that the cache CM4 holds each block. In the directory memory 43, the initial value of the directory map is “0000”, and no cache CMi holds a 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に最新のブロックが存在する状態となる。In the data consistency maintaining control method according to the first embodiment, the directory state stored in the directory memory 43 indicates the state of the corresponding block stored in the main memory 46.
It consists of four states, C, M, RMP, and WSP, and each has the following meaning. The C state is the main memory 46
, There is a possibility that the cache CMi indicated by the directory map holds data. In this state, the directory map can take all 16 values shown in FIG. The M state indicates that the latest block does not exist in the main memory 46, and indicates that only one cache CMi indicated by the directory map may hold the latest block. In this state, the directory map is' 000
4 of 1 ',' 0010 ',' 0100 ',' 1000 '
It can only take on some kind of value. The RMP state receives an RM message, which will be described later, in the M state, issues an FR message to only one cache CMi indicated by the directory map, and waits for an FD or ACK message from that cache CMi to arrive. To indicate that In this state, the directory map is' 000
4 of 1 ',' 0010 ',' 0100 ',' 1000 '
It can only take on some kind of value. In the WSP state, an IV message is sent to all the caches CMi that may hold the data indicated by the directory map, except for the cache CMi that has received the WS message described later in the C state and issued the WS message. Issued to indicate that it is waiting for ACK messages from all of those caches CMi to arrive. In this state, the directory map can take only three kinds of values of '0011', '0010' or '0001'. Also, this value does not represent the cache CMi to be held,
'0011' indicates waiting for three ACKs, '0010' indicates waiting for two ACKs, and '0001' indicates waiting for one ACK. It represents that. In the directory memory 43, the initial value of the directory state is C, and the main memory 46 has the latest block.
【0036】また、第1の実施の形態におけるデータ一
貫性維持制御方法では、キャッシュCMiとメモリMM
iの間でやり取りされるメッセージには、RM,WS,
WB,FR,IV,FD,ACK,SDR,EDR,C
R,NCRの11種類のメッセージが存在し、それぞれ
次のような意味を持つ。In the data consistency maintaining control method according to the first embodiment, the cache CMi and the memory MM
The messages exchanged between i include RM, WS,
WB, FR, IV, FD, ACK, SDR, EDR, C
There are 11 types of messages, R and NCR, each having the following meaning.
【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 a write shared occurs. The data of the write performed by the processor is added to this WS message. WB
The message is a write-back message issued when writing back the block to be replaced. This W
A block to be replaced is added to the B message. The FR message is a write-back request message issued by the memory MMi that has received the RM message to the cache CMi holding the latest block. The IV message is an invalidation request message issued by the memory MMi that has received 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 includes 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 notifying the cache CMi that has issued the RM message that the process for 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 that notifies the cache CMi that has issued the WS message that the memory MMi has completed the processing for the WS message in the memory MMi. The NCR message is a message for notifying the cache CMi that has issued the RM or WS message when the MM 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, NCR
Are composed of only a header part. The WS message includes a header section and a data section including 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 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: a destination device number, a message identifier, an address, and a request source device number. The destination device number field indicates the cache CM connected to any port of the interconnection network 12.
Indicates whether the message is to be delivered to i or 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. Eleven types of messages are identified. The address field indicates which address each message is for. The request source device number field indicates which processor PRi each message originates 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 a memory access performed by the processor PR1, the request source device number of the message is “000”.
【0041】次に、第1の実施の形態におけるデータ一
貫性維持制御方法で、プロセッサPR1がメモリMM2
のデータをアクセスした場合を例にとり、そのアクセス
によって行われるデータ一貫性維持制御のための一連の
動作を図を参照しながら説明する。Next, in the data consistency maintaining control method according to the first embodiment, the processor PR1
A series of operations for data consistency maintenance control performed by the access will be described with reference to the drawings, taking as an example the case where the data is accessed.
【0042】まず、プロセッサPR1がメモリアクセス
を発行すると、メモリアクセス管理部21はそのメモリ
アクセスを内部に取り込む。取り込まれるのは、読み出
しアクセスか書き込みアクセスかを識別するメモリアク
セスコマンド、アクセス対象を示すアドレス、書き込み
アクセスの場合はデータ、である。コマンドおよびアド
レスは第1一貫性維持制御部23に供給され、データは
第1データ制御部24に供給されている。First, when the processor PR1 issues a memory access, the memory access management unit 21 takes in the memory access internally. A memory access command for identifying a read access or a write access, an address indicating an access target, and data for a write access are taken in. The command and the 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 has been taken into the memory access management unit 21, and, based on the memory address stored in the memory access management unit 21, reads the tag state of the corresponding block. Is read from the tag memory 22 and what kind of processing is performed is determined based on the value.
【0044】まず、タグステートが‘I’であった場
合、即ちキャッシュミスの場合の動作を説明する。First, the operation when the tag state is "I", that is, in the case of 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 taking in the block at the address where the memory was accessed, it is necessary to replace the block with another block already existing in the cache memory 25. If the replacement is not necessary, the first consistency maintenance control unit 23 starts the process of transmitting an RM message to the memory MMi (here, the memory MM2) specified from the address.
【0046】置き換えが必要であり、置き換えの対象と
なったブロックのタグステートが‘D’であった場合、
このブロックがシステムで唯一最新のブロックであるの
で、そのブロックを管理するメモリMMiに対して書き
戻しの処理をまず行う必要がある。図6および図7にこ
の場合のシーケンスフローを示す。図は、置き換え対象
となったブロックがメモリMM3で管理されているブロ
ックの場合を示している。If the tag needs to be replaced and the tag state of the block to be replaced is 'D',
Since this block is the only latest block in the system, it is necessary to first perform a write-back process on the memory MMi that manages the block. 6 and 7 show a sequence flow in this case. The figure shows a case where the replacement target block 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 a header section of the WB message, and
To supply. The destination device number of the message header generated at this time is “110” representing the memory MM3, the message identifier is an identifier representing the WB, the address is the address of the block to be replaced, and the request source device number is the cache '000' indicating the device number of CM1
become. Further, the first consistency maintenance control unit 23 instructs the first data control unit 24 to read the block to be replaced from the cache memory 25, and the read block is the first message transmission unit. WB on 27
Supplied as the data part of the message. The first message transmission unit 27 sends the message to the interconnection network 12 together with the header supplied from the first consistency maintenance control unit 23 and the data 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 replacement target block to “I”.
【0048】送出されたWBメッセージは、相互結合網
12によって配送され、メモリMM3の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給され、デー
タ部が第2データ制御部45に供給されている。The transmitted WB message is delivered by the interconnection network 12, and is taken into the second message receiving section 41 of the memory MM3. The header part of the fetched message is supplied to the second consistency maintenance control unit 44, and the data part is supplied to the second data control unit 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 captured by the second message receiving unit 41, and from the address of the header portion stored in the second message receiving unit 41, stores the directory state and directory map of the corresponding block from the directory memory 43. It reads out and determines what processing to perform based on the value. At this time, the possible values of the directory state are limited to 'M' or 'RMP' in terms of method.
【0050】ディレクトリステートがMであった場合、
図6に示すシーケンスとなる。第2一貫性維持制御部4
4はディレクトリメモリ43の書き込みを行い、ディレ
クトリステートをCに、ディレクトリマップをどのキャ
ッシュCMiもブロックを保持していないことを表す
‘0000’に更新する。また、第2一貫性維持制御部
44は、第2データ制御部45にWBメッセージに付加
されていたブロックをメインメモリ46の対応するブロ
ックへ書き込ませる。When the directory state is M,
The sequence is as shown in FIG. Second consistency maintenance control unit 4
4 writes the directory memory 43, updates the directory state to C, and updates the directory map to '0000' indicating that no cache CMi holds a 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 in 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
3 is not updated.
【0052】以上が、置き換えが必要であり、置き換え
の対象となったブロックのタグステートが‘D’であっ
た場合のシーケンスである。The above is the sequence when the replacement is necessary and the tag state of the block to be replaced is “D”.
【0053】次に、置き換えが必要であり、置き換えの
対象となったブロックのタグステートが‘D’以外であ
った場合、第1一貫性維持制御部23はタグメモリ22
の書き込みを行い、書き換えの対象となったブロックの
タグステートを‘I’に更新する。Next, if replacement is necessary and the tag state of the block to be replaced is other than 'D', the first consistency maintenance control unit 23 sets the tag memory 22
To update the tag state of the block to be rewritten 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 first coherence control unit 23 completes the process for replacement, the first coherence control unit 23 generates a header portion 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 'and the message length is the length of the RM message,
The message identifier is an identifier representing the 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 part supplied from the first consistency maintenance control unit 23 to the interconnection network 12 as a message (FIGS. 8, 9, and 10).
Sequences common to FIGS. 10, 11, and 12).
【0055】送出されたRMメッセージは、相互結合網
12によって配送され、メモリMM2の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給されてい
る。The transmitted RM message is delivered by the interconnection network 12, and is taken into the second message receiving section 41 of the memory MM2. The header portion 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 into the second message receiving unit 41, and, based on the address of the header part stored in the second message receiving unit 41, stores the directory state and directory map of the corresponding block from the directory memory 43. It reads out and determines what processing to perform based on 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 a block other than the cache CMi that issued the RM message (specified from the requesting device number added to the message, in this case, the cache CMi). Indicates that there is no cache CMi to be executed (here, the directory map is' 0
000 'or' 0001 ') is the sequence shown in FIG.
【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’とする操作を行った結果得られる値であ
る。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the request source device number of the message header part stored in the second message receiving unit 41 (in this case, it is “000”), and the message identifier is EDR.
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, the second consistency maintenance control unit 44
Is provided to the second data control unit 45 by the main memory 46.
To read a 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 transmitting unit 42 as a data portion of the EDR message. Second message transmitting unit 42
Sends a message to the interconnection network 12 together with the header supplied from the second consistency maintenance controller 44 and the data supplied from the second data controller 45. Also,
The second consistency maintenance control unit 44 stores 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 an operation of setting the bit corresponding to the cache CM1 that has 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 interconnection network 12, and is taken into the first message receiving section 26 of the cache CM1. The header portion of the fetched 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 consistency maintaining control unit 23 of the cache CM 1 detects that the EDR message has been taken into the first message receiving unit 26, and instructs the first data control unit 24 to send the EDR message to the cache memory 25. Instructs to take in the block data added to. Further, the first consistency maintenance control unit 23 performs writing in the tag memory 22 and updates the tag state of the corresponding block to “E”.
【0061】第1一貫性維持制御部23はその後、再度
メモリアクセス管理部21に格納されているメモリアク
セスを評価し、データ一貫性維持のために必要な処理を
行う。Thereafter, the first consistency maintenance control unit 23 evaluates again the memory access stored in the memory access management unit 21 and performs processing necessary for maintaining 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 state is C. Map value is RM
In a case where it indicates that there is a cache CMi holding a block other than the cache CMi that issued the message (here, the cache CM1) (here, since the cache CM1 has issued the RM message, the directory map is “0000”). 'Or' 0001 ')) is the sequence shown in FIG.
【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’にす
る操作を行った結果得られる値である。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header portion stored in the second message receiving unit 41 (in this case, “000”), and the message identifier is SDR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, the second consistency maintenance control unit 44
Is provided to the second data control unit 45 by the main memory 46.
To read a 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 transmitting unit 42 as a data part of the SDR message. Second message transmitting unit 42
Sends a message to the interconnection network 12 together with the header supplied from the second consistency maintenance controller 44 and the data supplied from the second data controller 45. Also,
The second consistency maintenance control unit 44 stores 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 a 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, set to “1”. Is a value obtained as a result of performing the operation of
【0064】送出されたSDRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第2一貫性維持制御部44に供給され、
データ部は第1データ制御部24に供給されている。The transmitted SDR message is delivered by the interconnection network 12, and is taken into the first message receiving section 26 of the cache CM1. The header portion of the fetched 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 consistency maintaining control unit 23 of the cache CM 1 detects that the SDR message has been taken into the first message receiving unit 26, and instructs the first data control unit 24 to send the SDR message to the cache memory 25. Instructs to take in the block data added to. Further, the first consistency maintenance control unit 23 writes the data in the tag memory 22 and updates the tag state of the corresponding block to 'S'.
【0066】第1一貫性維持制御部23はその後、再度
メモリアクセス管理部21に格納されているメモリアク
セスを評価し、データ一貫性維持のために必要な処理を
行う。Thereafter, the first consistency maintenance control unit 23 evaluates again the memory access stored in the memory access management unit 21 and performs processing necessary for maintaining data consistency.
【0067】次に、RMメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートがMであった場合、図10または図11に示
すシーケンスとなる。この場合、ディレクトリマップに
より、最新のブロックを保持するキャッシュCMiが唯
一定まる。図10および図11に示した例では、ディレ
クトリマップの値は‘0100’であるので、キャッシ
ュCM3が唯一最新のデータを保持していることが確認
できる。Next, when the second state 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 in the directory memory 43, and the directory state is M, , FIG. 10 or FIG. In this case, only the cache CMi holding the latest block is determined by the directory map. In the examples shown in FIGS. 10 and 11, since the value of the directory map is '0100', 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 a header part of the FR message and generates the header part of the FR message.
To supply. The destination device number of the message header generated at this time is the cache CM holding the latest block.
3, the message identifier is an identifier representing the FR, and the address and the requesting device number are the address of the message header section stored in the second message receiving unit 41 and the requesting device number (here, '00').
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection 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 unchanged.
【0069】送出されたFRメッセージは相互結合網1
2によって配送され、キャッシュCM3の第1メッセー
ジ受信部26に取り込まれる。取り込まれたメッセージ
のヘッダ部は第2一貫性維持制御部44に供給されてい
る。The transmitted FR message is transmitted to the interconnection network 1
2 and received by the first message receiving unit 26 of the cache CM3. The header portion 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 taken into the first message receiving unit 26, and determines from the address of the header part stored in the first message receiving unit 26. , The tag state of the corresponding block is read from the tag memory 22, and the type of processing is determined based on the read value. At this time, the possible values of the tag state are “I” or “E”.
Or it is 'D' and it cannot be 'S'.
【0071】タグステートが‘E’または‘D’で最新
のブロックが存在した場合、図10に示すシーケンスと
なる。When the tag state is “E” or “D” and the latest block exists, the sequence shown in FIG. 10 is performed.
【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 unit 23 first generates a header part of the FD message, and
To supply. The destination device number of the message header generated at this time is the device number indicating 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 is specified). The message identifier is an identifier representing the FD, and the address and the requesting device number are the address of the message header section stored in the second message receiving unit 41 and the requesting device number (here, '101'). 000 '). Further, 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, The issued block is supplied to the first message transmitting section 27 as a data section of the FD message. The first message transmission unit 27 includes a header supplied from the first consistency maintenance control unit 23 and the first data control unit 2.
4 together with the data portion supplied from the interconnection network 12
Send a message to Further, the first consistency maintenance control unit 23 writes the data in 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 transmitted to the interconnection network 1
2 and 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 unit 44, and the data part is supplied to the second data control unit 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 captured by the second message receiving unit 41 and, from the address of the header part stored in the second message receiving unit 41, stores the directory state and 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 terms of 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’にする操作を行った結果得ら
れる値である。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header portion stored in the second message receiving unit 41 (in this case, “000”), and the message identifier is SDR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, 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 in the main memory 46. The second data control unit 45 writes the data in 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 a data portion of the SDR message.
The second message transmitting unit 42 includes the second consistency maintenance control unit 4
4 together with the data section supplied from the second data control section 45, and sends a message to the interconnection network 12. Also, the second consistency maintenance control unit 44
Writes 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 different from the value of the directory map immediately before receiving the FD message by the cache CM1 specified from the request source device number stored in the second message receiving unit 41.
Is a value obtained as a result of performing an operation of setting the bit corresponding to “1” to “1”.
【0076】送出されたSDRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第1一貫性維持制御部23に供給され、
データ部は第1データ制御部24に供給される。The sent SDR message is delivered by the interconnection network 12, and is taken into the first message receiving section 26 of the cache CM1. The header portion of the fetched message is supplied to the first consistency maintenance control unit 23,
The data part is supplied to the first data control part 24.
【0077】キャッシュCM1の第1一貫性維持制御部
23が、第1メッセージ受信部26にSDRメッセージ
が取り込まれたのを検出した場合の動作は、図9に示す
シーケンスでキャッシュCM1がSDRメッセージを受
け取った場合と同一である。When the first consistency maintenance control unit 23 of the cache CM 1 detects that the SDR message has been taken into the first message receiving unit 26, the cache CM 1 transmits the SDR message in the sequence shown in FIG. Same as received.
【0078】次に、FRメッセージを受け取ったキャッ
シュCM3の第1一貫性維持制御部23が、タグメモリ
22の対応するブロックのタグステートを読み出した結
果、タグステートが‘I’であった場合、図11に示す
シーケンスとなる。Next, when the first coherence maintaining control unit 23 of the cache CM 3 that has received the FR message reads the tag state of the corresponding block in the tag memory 22 and finds that the tag state is “I”, The sequence is as 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 sets ACK
Generates a header part of a message and generates a first message transmission part 2
7 The destination device number of the message header generated at this time is a device number indicating the memory MMi specified from the address of the header portion stored in the first message receiving unit 26 (here, the address is used as the memory MM2).
Is specified as “101”), the message identifier is an identifier indicating ACK, the address and the requesting device number are the address of the message header stored in the second message receiving unit 41 and the requesting device number. This is the device number (here, '000'). The first message transmitter 27 sends the header supplied from the first consistency maintenance controller 23 to the interconnection network 12 as a message.
【0080】送出されたACKメッセージは相互結合網
12によって配送され、メモリMM2の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給される。The transmitted ACK message is delivered by the interconnection network 12 and is taken into the second message receiving unit 41 of the memory MM2. The header portion 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 taken into the second message receiving unit 41, and, based on the address of the header part stored in the second message receiving unit 41, stores the directory state and directory map of the corresponding block from the directory memory 43. read out. At this time, the possible values of the directory state are 'WSP' and 'RM' according to the method.
Although it is limited to P ', the case where the directory state is'RMP' in the sequence shown in FIG. 11 is described here.
【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’とする操作を行った結果得られる値である。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is “000”), and the message identifier is EDR.
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, the second consistency maintenance control unit 44
Is provided to the second data control unit 45 by the main memory 46.
To read a 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 transmitting unit 42 as a data portion of the EDR message. Second message transmitting unit 42
Sends a message to the interconnection network 12 together with the header supplied from the second consistency maintenance controller 44 and the data supplied from the second data controller 45. Also,
The second consistency maintenance control unit 44 stores 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 stored in the second message receiving unit 41
CMi (in this case, the cache Ci) specified by the request source device number in the message header portion stored in the
M1) is a value obtained as a result of performing an operation of setting a bit corresponding to “1” and setting other bits to “0”.
【0083】送出されたEDRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第2一貫性維持制御部44に供給され、
データ部は第1データ制御部24に供給されている。The sent EDR message is delivered by the interconnection network 12, and is taken into the first message receiving section 26 of the cache CM1. The header portion of the fetched 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メッセージを受
け取った場合と同一である。When the first consistency maintenance control unit 23 of the cache CM 1 detects that the EDR message has been taken into the first message receiving unit 26, the cache CM 1 transmits the EDR message in the sequence shown in FIG. Same as received.
【0085】次に、RMメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートが‘RMP’または‘WSP’であった場
合、図12に示すシーケンスとなる。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 in the directory memory 43, and as a result, the directory state becomes “RMP” or “RMP”. 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に送出する。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header part stored in the second message receiving unit 41 (in this case, it is '000'), and the message identifier is NCR
The identifier and the requesting device number are the second
The address of the message header portion and the device number of the request source supplied to the message receiving portion 41 (here, '00
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection network 12 as a message.
【0087】送出されたNCRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第1一貫性維持制御部23に供給され
る。The transmitted NCR message is delivered by the interconnection network 12, and is taken into the first message receiving section 26 of the cache CM1. The header portion 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 CM 1 detects that the first message receiving unit 26 has received the NCR message, 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 data consistency in the case of a cache miss.
【0090】次に、メモリアクセス管理部21にメモリ
アクセスが取り込まれたのを検知し、メモリアクセス管
理部21に格納されているアクセスから、対応するブロ
ックのタグステートをタグメモリ22から読み出した結
果、メモリアクセス管理部21に取り込まれたメモリア
クセスが読み出しで、タグステートが‘S’または
‘E’または‘D’であった場合(リードヒットの場
合)の動作を説明する。Next, the memory access management unit 21 detects that the memory access has been fetched, and reads the tag state of the corresponding block 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 a 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 the memory access management unit 21 and captured. The data taken into the memory access management unit 21 is the processor P
Supplied to R1. Further, the first consistency maintenance control unit 23 sends a completion response of the memory access to the processor PR1, causes the processor PR1 to take in the data supplied by the memory access management unit 21, and completes the read access.
【0092】次に、メモリアクセス管理部21にメモリ
アクセスが取り込まれたのを検知し、メモリアクセス管
理部21に格納されているアドレスから、対応するブロ
ックのタグステートをタグメモリ22から読み出した結
果、メモリアクセス管理部21に取り込まれたメモリア
クセスが書き込みで、タグステートが‘E’または
‘D’であった場合の動作を説明する(ライトヒットの
場合)。Next, the memory access management unit 21 detects that the memory access has been fetched, 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” (in the case of a write hit) will be described.
【0093】第1一貫性維持制御部23は、第1データ
制御部23に、キャッシュメモリ25のメモリアクセス
管理部21が出力するアドレスから特定されるデータ
を、メモリアクセス管理部21が供給するデータに書き
換えさせる。また、第1一貫性維持制御部23は、タグ
メモリ22の書き込みを行い、タグステートを‘D’に
更新する。また、第1一貫性維持制御部23はプロセッ
サPR1に対してメモリアクセスの完了応答を行い、書
き込みアクセスを完了させる。The first consistency maintenance control unit 23 sends the data specified by the address output from the memory access management unit 21 of the cache memory 25 to the first data control unit 23 as the data supplied by the memory access management unit 21. To be rewritten. Further, the first consistency maintenance control unit 23 writes the data in the tag memory 22 and updates the tag state to “D”. Further, the first consistency maintaining 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, the memory access management unit 21 detects that the memory access has been fetched, and reads the tag state of the corresponding block 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 a write 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 unit 23 first generates a header portion of the WS message, and generates the header portion of the WS message.
To supply. The destination device number of the message header generated at this time is “101” representing the memory MM2, the message identifier is an identifier representing WS, the address is an address stored in the memory access management unit 21, and the request source device number is It becomes “000” indicating the device number of the cache CM1. Also, the first consistency maintenance control unit 23
Causes the first data control unit 24 to rewrite data specified from the address output by the memory access management unit 21 of the cache memory 25 to 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 to the cache memory 25 and simultaneously supplies the data to the first message transmission unit 27. First message transmission unit 27
Sends a message to the interconnection network 12 by combining the header supplied from the first consistency maintenance controller 23 and the data supplied from the first data controller 24.
【0096】送出されたWSメッセージは相互結合網1
2によって配送され、メモリMM2の第2メッセージ受
信部41に取り込まれる。取り込まれたメッセージのヘ
ッダ部は第2一貫性維持制御部44に供給され、データ
部は第2データ制御部45に供給される。The transmitted WS message is transmitted to the interconnection network 1
2 and 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 unit 44, and the data part is supplied to the second data control unit 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 into the second message receiving unit 41, and from the address of the header part stored in the second message receiving unit 41, stores the directory state and directory map of the corresponding block from the directory memory 43. read out. At this time, the possible values of the directory state are “C” or “WS”
Limited to P '. When the directory state is C, the bit of the directory map corresponding to the cache CM1 that has issued the WS message is always "1".
【0098】ディレクトリステートが‘C’で、かつデ
ィレクトリマップの値がWSメッセージを発行したキャ
ッシュCMi以外にブロックを保持するキャッシュCM
iが存在しないことを表す場合(ここでは、キャッシュ
CM1がWSメッセージを発行しているので、ディレク
トリマップが‘0001’の場合である)図13に示す
シーケンスとなる。A cache CM that holds a block other than the cache CMi that has issued the WS message and whose directory state is “C” and the value of the directory map is “C”.
The sequence shown in FIG. 13 indicates that i does not exist (in this case, since the cache CM1 has issued the WS message, the directory map is “0001”).
【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 a header part of the CR message, and generates the header part of the CR message.
To supply. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is '000'), and the message identifier indicates CR. In the identifier, the address and the requesting device number are the address of the message header portion stored in the second message receiving unit 41 and the requesting device number (here, '000').
). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection network 12 as a message. Further, the second consistency maintenance control unit 44 sends the data specified from the address output from the second message receiving unit 41 of the main memory 46 to the second data receiving unit 41,
Is rewritten to the data supplied by.
【0100】送出されたCRメッセージは相互結合網1
2によって配送され、キャッシュCM1の第1メッセー
ジ受信部26に取り込まれる。取り込まれたメッセージ
のヘッダ部は第1一貫性維持制御部23に供給される。The sent CR message is transmitted to the interconnection network 1
2 and received by the first message receiving unit 26 of the cache CM1. The header portion of the fetched message is supplied to the first consistency maintenance control unit 23.
【0101】キャッシュCM1の第1一貫性維持制御部
23は、第1メッセージ受信部26にCRメッセージが
取り込まれたのを検出し、プロセッサPR1に対してメ
モリアクセスの完了応答を行い、書き込みアクセスを完
了させる。The first consistency maintaining control unit 23 of the cache CM1 detects that the CR message has been taken into the first message receiving unit 26, sends a memory access completion response to the processor PR1, and executes the 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 that has received the WS message reads the directory state and directory map of the corresponding block in 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 holding a block other than the cache CMi that has issued the WS message (here, since the cache CM1 has issued the WS message, the value of the directory map is' 00
This is the sequence shown in FIG. 14. Hereinafter, in the example shown in FIG. 14, a 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 consistency maintenance control unit 44 first checks whether the cache CM1 holds the latest block and is not the cache CMi that 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 performed in this case.
【0104】次に、第2一貫性維持制御部44は、キャ
ッシュCM2が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、ディレクトリマップの値‘11
01’より、キャッシュCM2は最新のデータを保持し
ていないのでこの場合も何も行わない。Next, the second consistency maintenance control unit 44 determines whether the cache CM2 holds the latest block and the WS
It is checked whether it is the cache CMi that issued the message. At this time, the value of the directory map '11
Since 01 ', the cache CM2 does not hold the latest data, and therefore does nothing.
【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 whether the cache CM3 holds the latest block and the WS
It is checked whether it is 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 has issued the WS message, the following processing is performed. The second consistency maintenance control unit 44 generates a 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 an identifier indicating the IV, and the address and the requesting device number are the message stored in the second message receiving unit 41. The address of the header portion and the requesting device number (here, '000') are used. Second message transmitting unit 42
Sends the header section supplied from the second consistency maintenance control section 44 to the interconnection network 12 as a message.
【0106】次に、第2一貫性維持制御部44は、キャ
ッシュCM4が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、キャッシュCM4は最新のブロ
ックを保持しておりまたWSメッセージを発行したキャ
ッシュCMiではないので、前記したキャッシュCM3
の場合と同じくIVメッセージのヘッダ部を生成する。
ただし、宛先装置番号はキャッシュCM4を表す‘01
1’となる。Next, the second consistency maintenance control unit 44 determines whether the cache CM4 holds the latest block and the WS
It is checked whether it is the cache CMi that issued the message. At this time, the cache CM4 holds the latest block and is not the cache CMi that has issued the WS message.
As in the case of (1), the header part of the IV message is generated.
However, the destination device number is “01” indicating 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 sends the data specified from the address output from the second message receiving unit 41 of the main memory 46 to the second data receiving unit 41 is rewritten to the data supplied. 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 transmitted IV messages are delivered by the interconnection network 12, and each of the cache messages CM3
Then, it is taken into 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 unit 44, and the data part is supplied to the first data control unit 24.
【0109】キャッシュCM3の第1一貫性維持制御部
23は、第1メッセージ受信部26にIVメッセージが
取り込まれたのを検出し、第1メッセージ受信部26に
格納されているヘッダ部のアドレスから、対応するブロ
ックのタグステートをタグメモリ22から読み出し、そ
の値によりどのような処理をするかを判断する。この
時、タグステートが取り得る値は、‘I’または‘S’
に限定される。The first coherence maintaining control unit 23 of the cache CM 3 detects that the IV message has been taken into the first message receiving unit 26, and determines from the address of the header part stored in the first message receiving unit 26. , The tag state of the corresponding block is read from the tag memory 22, and the type of processing is determined based on the read 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
First, the consistency maintaining control unit 23 generates a header part of the ACK message and supplies it to the first message transmitting unit 27. The destination device number of the message header generated at this time is the first
The device number indicates the memory MMi specified from the address of the header portion 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 representing K, the address and the requesting device number are the address of the message header section stored in the second message receiving unit 41 and the requesting device number (here, '0').
00 '). The first message transmitting unit 27
The header section supplied from the first consistency maintenance control section 23 is sent to the interconnection 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 unit 23 first generates a 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 device number indicating 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 is specified). The number is' 101 ', the message identifier is an identifier indicating ACK, the address and the requesting device number are the address of the message header section stored in the second message receiving unit 41 and the requesting device number (here,' 000 '). The first message transmitter 27 sends the header supplied from the first consistency maintenance controller 23 to the interconnection network 12 as a message. Further, the first consistency maintenance control unit 23 writes the data in the tag memory 22 and updates the tag state of the corresponding block to “I”.
【0112】送出されたACKメッセージは相互結合網
12によって配送され、メモリMM2の第2メッセージ
受信部41に取り込まれる。取り込まれたメッセージの
ヘッダ部は第2一貫性維持制御部44に供給される。The transmitted ACK message is delivered by the interconnection network 12, and is taken into the second message receiving section 41 of the memory MM2. The header portion 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 taken into the second message receiving unit 41, and, based on the address of the header part stored in the second message receiving unit 41, stores the directory state and directory map of the corresponding block from the directory memory 43. read out. At this time, the possible values of the directory state are 'WSP' and 'RM' according to the method.
Although it is limited to P ', the case where the directory state is'WSP' in the sequence shown in FIG. 14 is described here. 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 in the sequence shown in FIG. 14 is received. ), 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 value of all directory maps (here, '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".
If the value of the directory map is '0001' (this is a case where the ACK message issued by the cache CM4 in the sequence shown in FIG. 14 is received), the second
First, the consistency maintenance control unit 44 generates a header part of the CR message and supplies the header part to the second message transmission unit 42. The destination device number of the message header generated at this time is the second
The request source device number in the message header portion stored in the message receiving unit 41 is (000 in this case), the message identifier is an identifier indicating CR, and the address and the request source device number are the second message receiving unit. 41
Is the address of the message header part and the requesting device number (here, '000') stored in the message header.
The second message transmitting unit 42 includes the second consistency maintenance control unit 4
4 is sent to the interconnection network 12 as a message. Also, the second consistency maintenance control unit 44
Writes the directory memory 43, sets the directory state to M, and sets the directory map to '0'.
001 ′. The value of this directory map is such that the bit corresponding to the cache CMi (here, the cache CM1) specified from the request source device number in the header portion stored in the second message receiving unit 41 is “1”, and the other bits are “1”. This is the value obtained as a result of performing the operation of setting the bit to '0'.
【0116】送出されたCRメッセージは相互結合網1
2によって配送され、キャッシュCM1の第1メッセー
ジ受信部26に取り込まれる。取り込まれたメッセージ
のヘッダ部は第2一貫性維持制御部44に供給され、デ
ータ部は第1データ制御部24に供給されている。The transmitted CR message is transmitted to the interconnection network 1
2 and received by the first message receiving unit 26 of the cache CM1. The header part of the fetched message is supplied to the second consistency maintenance control unit 44, and the data part is supplied to the first data control unit 24.
【0117】キャッシュCM1の第1一貫性維持制御部
23が、第1メッセージ受信部26にCRメッセージが
取り込まれたのを検出した場合の動作は、図13に示す
シーケンスでキャッシュCM1がCRメッセージを受け
取った場合と同一である。When the first consistency maintenance control unit 23 of the cache CM 1 detects that the CR message has been taken into the first message receiving unit 26, the operation is as follows. Same as received.
【0118】次に、WSメッセージを受け取ったメモリ
MM2の第2一貫性維持制御部44が、ディレクトリメ
モリ43の対応するブロックのディレクトリステートお
よびディレクトリマップを読み出した結果、ディレクト
リステートが‘WSP’であった場合、図15に示すシ
ーケンスとなる。この時、同ブロックにおいて既に他の
キャッシュCMiからのWSメッセージを受付け処理し
ている最中であり、そのWSメッセージを処理したとき
に、メモリMM2はキャッシュCM1に対してIVメッ
セージを送信している。これにより、キャッシュCM1
においてタグメモリ22に格納されている当該ブロック
のタグステートは‘S’から‘I’に更新されている。Next, the second consistency maintaining control unit 44 of the memory MM2 that has received the WS message reads the directory state and the directory map of the corresponding block in the directory memory 43, and as a result, the directory state is “WSP”. In this case, the sequence is as shown in FIG. At this time, in the same block, a WS message from another cache CMi is already being received and processed, and when the WS message is processed, the memory MM2 transmits an IV message to the cache CM1. . Thereby, the cache CM1
In, the tag state of the block stored in the tag memory 22 has been 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 sets the NCR
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header part stored in the second message receiving unit 41 (in this case, it is '000'), and the message identifier is NCR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection network 12 as a message.
【0120】送出されたNCRメッセージは相互結合網
12によって配送され、キャッシュCM1の第1メッセ
ージ受信部26に取り込まれる。取り込まれたメッセー
ジのヘッダ部は第1一貫性維持制御部23に供給され
る。The transmitted NCR message is delivered by the interconnection network 12, and is taken into the first message receiving section 26 of the cache CM1. The header portion of the fetched message is supplied to the first consistency maintenance control unit 23.
【0121】キャッシュCM1の第1一貫性維持制御部
23が、第1メッセージ受信部26にNCRメッセージ
が取り込まれたのを検出した場合の動作は、図12に示
すシーケンスでキャッシュCM1がNCRメッセージを
受け取った場合と同一である。When the first consistency maintenance control unit 23 of the cache CM1 detects that the NCR message has been fetched into the first message receiving unit 26, the cache CM1 transmits the NCR message in the sequence shown in FIG. Same as received.
【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 a case where the processor PR1 performs writing and then the processor PR4 performs reading in a state where the block of the memory MM2 exists and is shared by M3. Since the write performed by the processor PR1 is reflected in the cache CM1 and the memory MM2, the state where the latest data exists in the cache CM1 and the memory MM2 is set.
【0124】そのため、次いでプロセッサPR4が読み
出しを行った場合、メモリMM2に対して読み出し要求
メッセージが送信されるが、メモリMM2に最新のデー
タが存在するため、メモリMM2はすぐさまキャッシュ
CM1に対して最新のブロックを付加したメッセージを
送信することができる。このため、メモリMM2におい
て最新のブロックを唯一保持するキャッシュCMiに対
して書き戻しを要求してその応答を受け取る処理がなく
なり、プロセッサPR4の読み出しに対してデータを応
答するまでの時間を短縮することができる。また、書き
戻しを要求する必要がなくなることから、データ一貫性
維持のためにキャッシュおよびメモリ間でやり取りされ
るメッセージ数を少なくすることができる。Therefore, when the processor PR4 reads next, a read request message is transmitted to the memory MM2. However, since the latest data exists in the memory MM2, the memory MM2 immediately stores the latest data in the cache CM1. Can be transmitted. Therefore, there is no need to perform a process of requesting a write back to the cache CMi holding only the latest block in the memory MM2 and receiving the response, thereby reducing the time required for responding to the data read by the processor PR4. Can be. Further, since it is not necessary to request a write-back, the number of messages exchanged between the cache and the memory for maintaining 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 maintaining 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 maintaining control method according to the first embodiment. , E and D.
In addition, the directory map stored in the directory memory 43 is also configured by a full map system consisting of 4 bits. The directory state is C, M, RMP, WS
It consists of four 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 maintaining control method according to the second embodiment, messages exchanged between the cache CMi and the memory MMi include RM in the data consistency maintaining control method according to the first embodiment. , WS, W
B, FR, IV, FD, ACK, SDR, EDR, C
An ECR message is newly added to 11 types of messages of R and NCR, and there are 12 types of messages. Like the CR message, the ECR message is a response message notifying the cache CMi to which 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
In this example, a series of operations for maintaining data consistency performed by the access will be described only with respect to differences from the data consistency maintenance control method according to 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 maintaining control method according to the second embodiment is different from the operation of the data consistency maintaining control method according to the first embodiment in that the second operation of the memory MM2 that has received the WS message is different. Consistency maintenance control unit 44
Read the directory state and directory map of the corresponding block in the directory memory 43. As a result, there is a cache CMi holding the block other than the cache CMi having the directory state C and the directory map value having issued the WS message. (In this case, the cache CM
1 issues a WS message, so 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.
【0129】この場合、第2の実施の形態におけるデー
タ一貫性維持制御方法では図16に示すシーケンスをと
る。In this case, the data consistency maintaining control method according to the second embodiment employs 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’とする操作を行った結果得られる値である。First, the second consistency maintenance control unit 44 executes the ECR
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is "000"), and the message identifier is ECR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection network 12 as a message. Further, the second consistency maintenance control unit 44 supplies the second data control unit 45 with the data specified from the address output from the second message reception unit 41 of the main memory 46 by the second message reception unit 41. Rewrite to data. Further, the second consistency maintenance control unit 44 writes 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 an operation of setting the bit corresponding to the cache CM1 that has 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 interconnection network 12, and is taken into the first message receiving section 26 of the cache CM1. The header portion of the fetched 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 data in the tag memory 22, and updates the tag state of the corresponding block from “S” to “E”.
Further, the first consistency maintenance control unit 23 includes the processor PR1
Of the memory access, and completes 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 state of the block of the cache CM1 is a shared state and the latest block exists only in the cache CM1 and the memory MM2, the processor PR
1 writes continuously, while the other processors P
Consider the case where Ri did not access. In this case, in the data consistency maintaining control method according to the first embodiment, a write request message is issued from the cache CM1 to the memory MM2 every time writing is performed, and the number of messages for data consistency maintaining control in this case increases. There is a problem of doing.
【0135】第2の実施の形態におけるデータ一貫性維
持制御方法では、上記のような場合に、最初の2回の書
き込みに関してはキャッシュCM1からメモリMM2に
対して書き込み要求メッセージが発行されるが、続く3
回目からの書き込みに関してはデータ一貫性維持制御の
ためのメッセージは発行されず、この場合のメッセージ
の増加を防ぐことができる。In the data consistency maintaining control method according to the second embodiment, in the above case, a write request message is issued from the cache CM1 to the memory MM2 for the first two write operations. The following three
No message for data consistency maintenance control is issued for the writing from the second time, so that an increase in the number 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 maintaining control method according to the third embodiment, the tag states stored in the tag memory 22 are I and S, as in the data consistency maintaining control method according to the second embodiment. , E and D.
In addition, the directory map stored in the directory memory 43 is also configured by a full map system consisting of 4 bits. The directory state is C, M, RMP, WS
It consists of four states of P.
【0137】第3の実施の形態におけるデータ一貫性維
持制御方法では、ディレクトリステートおよびディレク
トリマップに加えて、更新頻度値がブロックに関する情
報としてディレクトリメモリ43に保持される。更新頻
度値は、ある1つのキャッシュCMiとメモリMMiが
最新のブロックを保持している状態で、メモリMMi
が、他のキャッシュCMiからのRMメッセージを受け
取るまでに、何回最新のブロックを保持するキャッシュ
CMiからWSメッセージを受け取ったかをカウントし
た値である。In the data consistency maintaining control method according to the third embodiment, in addition to the directory state and the directory map, an update frequency value is held in the directory memory 43 as information on blocks. The update frequency value indicates that the memory MMi is in a state where one cache CMi and the memory MMi hold the latest block.
Is a value obtained by counting how many times the WS message has been received from the cache CMi holding the latest block until the RM message from another cache CMi is received.
【0138】また、第3の実施の形態におけるデータ一
貫性維持制御方法では、新たにパラメータとして更新頻
度上限値が定義される。In the data consistency maintenance control method according to the third embodiment, an update frequency upper limit 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種類のメッ
セージが存在する。In the data consistency maintaining control method according to the third embodiment, the cache CMi and the memory MMi
The messages exchanged between the RM, WS, WB, FR, IV, FD, ACK, and S are the same as those in the data consistency control method according to the second embodiment.
There are 12 types of messages, DR, EDR, CR, NCR, and ECR.
【0140】次に、第3の実施の形態におけるデータ一
貫性維持制御方法で、プロセッサPR1がメモリMM2
のデータをアクセスした場合を例にとり、そのアクセス
によって行われるデータ一貫性維持のための一連の動作
を説明する。Next, in the data consistency maintaining control method according to the third embodiment, the processor PR1
A series of operations for maintaining data consistency performed by the access will be described by taking a case where the data is accessed as an example.
【0141】第3の実施の形態におけるデータ一貫性維
持制御方法でのキャッシュCMiの動作は、第2の実施
の形態におけるデータ一貫性維持制御方法でのキャッシ
ュCMiの動作と同一であるので、ここではその説明を
省略する。以降第3の実施の形態におけるデータ一貫性
維持制御方法でのメモリMMiの動作を、RM,WS,
WB,FD,ACKの5種類のメッセージを受け取った
場合の順に説明する。The operation of the cache CMi in the data coherence control method in the third embodiment is the same as the operation of the cache CMi in the data coherence control method in the second embodiment. Then, the description is omitted. Hereinafter, the operation of the memory MMi in the data consistency maintaining control method according to the third embodiment is described as RM, WS,
Description will be made in the order of receiving five types of messages, WB, FD, and ACK.
【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 by the second message receiving unit 41, the directory state and the directory map of the corresponding block and the update frequency value are determined from the address of the header part stored in the second message receiving unit 41. Read from the directory memory 43,
It is determined what processing is to be performed based on the value.
【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 a block other than the cache CMi that issued the RM message (specified from the request source device number added to the message, in this case, the cache CM1). Indicates that there is no cache CMi to be executed (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’とする操作を行
った結果得られる値である。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is “000”), and the message identifier is EDR.
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, the second consistency maintenance control unit 44
Is provided to the second data control unit 45 by the main memory 46.
To read a 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 transmitting unit 42 as a data portion of the EDR message. Second message transmitting unit 42
Sends a message to the interconnection network 12 together with the header supplied from the second consistency maintenance controller 44 and the data supplied from the second data controller 45. Also,
The second consistency maintenance control unit 44 stores the directory memory 43
To update the directory state to M, the directory map to '0001', and the update frequency value to '0'. The value of this directory map is R
This is a value obtained as a result of performing an 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メッセージを受け
取った場合の処理をする。In the case where the directory state is C and the value of the directory map indicates that there is a cache CMi holding a block other than the cache CMi that issued the RM message (here, the cache CM1) (here, the cache CMi). Since the CM1 has issued the RM message, the directory map is “000”.
This is a case other than 0 'or' 0001 '), and the process shown in FIG. 18 is performed when the memory MM2 receives the RM message from the cache CM1 regardless of the update frequency value.
【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 sets the SDR
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header portion stored in the second message receiving unit 41 (in this case, “000”), and the message identifier is SDR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, the second consistency maintenance control unit 44
Is provided to the second data control unit 45 by the main memory 46.
To read a 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 transmitting unit 42 as a data part of the SDR message. Second message transmitting unit 42
Sends a message to the interconnection network 12 together with the header supplied from the second consistency maintenance controller 44 and the data supplied from the second data controller 45. Also,
The second consistency maintenance control unit 44 stores the directory memory 43
And updates the directory state to C, the directory map value to “1101”, and the update frequency value to “0”. The value of this directory map is R
As a result of performing an 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” for the value of the directory map immediately before receiving the M message 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 process is performed when the memory MM2 receives the RM message from the cache CM1 in the sequence shown in FIGS. In this case, only the cache CMi holding the latest block is determined from the directory map. FIG. 19 and FIG.
In the example shown in, the value of the directory map is' 010
Since it is 0 ', it can be confirmed that the cache CM3 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 section 44 first generates a header section of the FR message and generates the header section of the FR message.
To supply. The destination device number of the message header generated at this time is the cache CM holding the latest block.
3, the message identifier is an identifier representing the FR, and the address and the requesting device number are the address of the message header section stored in the second message receiving unit 41 and the requesting device number (here, '00').
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection network 12 as a message. Also, the second
The consistency maintenance control unit 44 writes the directory memory 43 to update the directory state to RMP and the update frequency value to “0”, but leave the directory map as it is.
【0149】ディレクトリステートが‘RMP’または
‘WSP’であった場合、ディレクトリマップおよび更
新頻度値の値に関わらず、図21に示すシーケンスで、
メモリMM2がキャッシュCM1からのRMメッセージ
を受け取った場合の処理をする。When the directory state is “RMP” or “WSP”, regardless of the values of the directory map and the update frequency value, the sequence shown in FIG.
Processing is performed when the memory MM2 receives the RM message from the cache CM1.
【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 sets the NCR
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header part stored in the second message receiving unit 41 (in this case, it is '000'), and the message identifier is NCR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection 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 has been taken into the second message reception unit 41, the header unit stored in the second message reception unit 41 , The directory state, the directory map, and the update frequency value of the corresponding block are read from the directory memory 43, and what kind of processing is performed is determined based on the read value.
【0152】ディレクトリステートが‘C’で、かつデ
ィレクトリマップの値がWSメッセージを発行したキャ
ッシュCMi以外にブロックを保持するキャッシュCM
iが存在しないことを表し(ここでは、キャッシュCM
1がWSメッセージを発行しているので、ディレクトリ
マップが‘0001’の場合である)、更新頻度値が更
新頻度上限値と一致しなかった場合、図22に示すシー
ケンスで、メモリMM2がキャッシュCM1からのWS
メッセージを受け取った場合の処理をする。A cache CM that holds a block other than the cache CMi that has issued the WS message and has a directory state of “C” and a directory map value of
i does not exist (here, the cache CM
1 issues a WS message, so the directory map is '0001'.) If the update frequency value does not match the update frequency upper limit value, the memory MM2 stores the cache CM1 in the sequence shown in FIG. WS from
Perform processing 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 a header portion of the CR message, and generates the header portion of the CR message.
To supply. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is '000'). The message identifier is an identifier indicating a CR, and the address and the requesting device number are the address of the message header stored in the second message receiving unit 41 and the requesting device number (here, “000”).
). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection network 12 as a message. Further, the second consistency maintenance control unit 44 sends the data specified from the address output from the second message receiving unit 41 of the main memory 46 to the second data receiving unit 41,
Is rewritten to the data supplied by. Further, the second consistency maintenance control unit 44 writes the directory memory 43, keeps 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 to '1'.
【0154】ディレクトリステートが‘C’で、かつデ
ィレクトリマップの値がWSメッセージを発行したキャ
ッシュCMi以外にブロックを保持するキャッシュCM
iが存在しないことを表し(ここでは、キャッシュCM
1がWSメッセージを発行しているので、ディレクトリ
マップが‘0001’の場合である)、更新頻度値が更
新頻度上限値と一致した場合、図23に示すシーケンス
で、メモリMM2がキャッシュCM1からのWSメッセ
ージを受け取った場合の処理をする。図23に示したシ
ーケンスは、更新頻度上限値を‘2’に設定した場合で
ある。A cache CM that holds a block other than the cache CMi that has issued the WS message and has a directory state of “C” and a directory map value of
i does not exist (here, the cache CM
1 issues a WS message, so that the directory map is “0001”.) When the update frequency value matches the update frequency upper limit value, the memory MM2 reads the cache CM1 from the cache CM1 in the sequence shown in FIG. Processing when a WS message is received is performed. The sequence shown in FIG. 23 is a case where the update frequency upper limit 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 sets the ECR
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is "000"), and the message identifier is ECR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection network 12 as a message. Further, the second consistency maintenance control unit 44 supplies the second data control unit 45 with the data specified from the address output from the second message reception unit 41 of the main memory 46 by the second message reception unit 41. Rewrite to data. Further, the second consistency maintenance control unit 44 writes the directory memory 43 to update 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 an operation of setting the bit corresponding to the cache CM1 that has 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 other than the cache CMi that issued the WS message,
i indicates that it exists (here, cache C
Since the M1 issues the WS message, the value of the directory map is other than '0001'.) Regardless of the update frequency value, the memory MM2 transmits the WS message from the cache CM1 in the sequence shown in FIG. Perform processing when received. Hereinafter, in the example shown in FIG. 24, a case will be described in which the value of the directory map when the WS message is received is, for example, '1101'.
【0157】第2一貫性維持制御部44はまず、キャッ
シュCM1が最新のブロックを保持しておりかつWSメ
ッセージを発行したキャッシュCMiではないかどうか
を検査する。この時、キャッシュCM1は、第2メッセ
ージ受信部41に格納された要求元装置番号よりWSメ
ッセージを発行したキャッシュCMiであるのでこの場
合は何も行わない。The second consistency maintenance control unit 44 first checks whether the cache CM1 holds the latest block and is not the cache CMi that 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 performed in this case.
【0158】次に、第2一貫性維持制御部44は、キャ
ッシュCM2が最新のブロックを保持しておりかつWS
メッセージを発行したキャッシュCMiではないかどう
かを検査する。この時、ディレクトリマップの値‘11
01’より、キャッシュCM2は最新のデータを保持し
ていないのでこの場合も何も行わない。Next, the second consistency maintenance control unit 44 determines whether the cache CM2 holds the latest block and the WS
It is checked whether it is the cache CMi that issued the message. At this time, the value of the directory map '11
Since 01 ', the cache CM2 does not hold the latest data, and therefore does nothing.
【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 whether the cache CM3 holds the latest block and the WS
It is checked whether it is 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 has issued the WS message, the following processing is performed. The second consistency maintenance control unit 44 generates a 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 an identifier indicating the IV, and the address and the requesting device number are the message stored in the second message receiving unit 41. The address of the header portion and the requesting device number (here, '000') are used. Second message transmitting unit 42
Sends the header section supplied from the second consistency maintenance control section 44 to the interconnection 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 whether the cache CM4 holds the latest block and the WS
It is checked whether it is the cache CMi that issued the message. At this time, the cache CM4 holds the latest block and is not the cache CMi that has issued the WS message.
As in the case of (1), the header part of the IV message is generated.
However, the destination device number is “01” indicating 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 maintaining control unit 44 sends the data specified from the address output by the second message receiving unit 41 of the main memory 46 to the second data receiving unit 41 is rewritten to the data supplied. Further, the second consistency maintenance control unit 44 writes the directory memory 43 and 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 process shown in FIG. 25 is performed when the memory MM2 receives the WS message from the cache CM1 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に送出する。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header part stored in the second message receiving unit 41 (in this case, it is '000'), and the message identifier is NCR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). The second message transmission unit 42 sends the header supplied from the second consistency maintenance control unit 44 to the interconnection 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 into the second message receiving unit 41, the header unit stored in the second message receiving unit 41 , The directory state, the directory map, and the update frequency value of the corresponding block are read from the directory memory 43, and what kind of processing is performed is determined based on the read value. At this time, the possible values of the directory state are limited to 'M' or 'RMP' in terms of 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”, regardless of the value of the update frequency value, the sequence shown in FIG.
The process is performed when the memory MM3 receives the WB message from the cache CM1. The second consistency maintenance control unit 44 writes the directory memory 43, sets the directory state to C, sets the directory map to “0000” indicating that no cache CMi holds a block, and sets the update frequency value to “0”. Update to '. Further, the second consistency maintenance control unit 44 includes the second data control unit 4.
5 causes the block added to the WB message to be written to the corresponding block in the main memory 46.
【0166】ディレクトリステートがRMPであった場
合、ディレクトリマップおよび更新頻度値の値に関わら
ず、図27に示すシーケンスで、メモリMM3がキャッ
シュCM1からのWBメッセージを受け取った場合の処
理をする。第2一貫性維持制御部44は、第2データ制
御部45にWBメッセージに付加されていたブロックを
メインメモリ46の対応するブロックへ書き込ませるの
みとし、ディレクトリメモリ43の更新は行わない。When the directory state is RMP, regardless of the values of the directory map and the update frequency value, the process shown in FIG. 27 is performed when the memory MM3 receives the WB message from the cache CM1. 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 in 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 has been taken into the second message receiving unit 41, the header unit stored in the second message receiving unit 41 , The directory state, the directory map, and the update frequency value of the corresponding block are read from the directory memory 43 from the address, 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 processing in case. At this time, the value that the directory state can take is limited to 'RMP' in terms of 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’にする操
作を行った結果得られる値である。First, the second consistency maintenance control unit 44
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the requesting device number of the message header portion stored in the second message receiving unit 41 (in this case, “000”), and the message identifier is SDR
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, 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 in the main memory 46. The second data control unit 45 writes the data in 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 a data portion of the SDR message.
The second message transmitting unit 42 includes the second consistency maintenance control unit 4
4 together with the data section supplied from the second data control section 45, and sends a message to the interconnection network 12. Also, the second consistency maintenance control unit 44
Writes the directory memory 43, sets the directory state to C, and sets the value of the directory map to '1'.
At 101 ', the update frequency value is updated to' 0 '. The value of this directory map is set to a bit corresponding to the cache CM1 specified by the request source device number stored in the second message receiving unit 41 by “1” with respect to the value of the directory map immediately before receiving the FD message. Is a value obtained as a result of performing the operation of
【0169】次に、メモリMM2の第2一貫性維持制御
部44が、第2メッセージ受信部41にACKメッセー
ジが取り込まれたのを検出した場合、第2メッセージ受
信部41に格納されたヘッダ部のアドレスから、対応す
るブロックのディレクトリステートおよびディレクトリ
マップおよび更新頻度値をディレクトリメモリ43から
読み出し、その値によりどのような処理をするかを判断
する。この時、ディレクトリステートが取り得る値は、
方法上‘WSP’または‘RMP’に限定される。Next, when the second consistency maintaining control unit 44 of the memory MM2 detects that the ACK message has been taken into the second message receiving unit 41, the header unit stored in the second message receiving unit 41 , The directory state, the directory map, and the update frequency value of the corresponding block are read from the directory memory 43, and what kind of processing is performed is determined based on the read value. At this time, the possible values of the directory state are
Methodically limited to 'WSP' or 'RMP'.
【0170】ディレクトリステートが‘RMP’の場
合、更新頻度値に関わらず、図20に示すシーケンス
で、メモリMM2がキャッシュCM3からのACKメッ
セージを受け取った場合の処理をする。When the directory state is 'RMP', the process shown in FIG. 20 is performed when the memory MM2 receives the ACK message from the cache CM3 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 sets the EDR
Generates a message header and generates a second message transmitting unit 4
Feed to 2. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is “000”), and the message identifier is EDR.
The identifier and the requesting device number are the second
The address of the message header section stored in the message receiving section 41 and the requesting apparatus number (here, '00
0 '). Also, the second consistency maintenance control unit 44
Is provided to the second data control unit 45 by the main memory 46.
To read a 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 transmitting unit 42 as a data portion of the EDR message. Second message transmitting unit 42
Sends a message to the interconnection network 12 together with the header supplied from the second consistency maintenance controller 44 and the data supplied from the second data controller 45. Also,
The second consistency maintenance control unit 44 stores the directory memory 43
To update the directory state to M, the directory map to '0001', and the update frequency value to '0'. The value of this directory map is stored in the cache CMi specified by the request source device number in the message header stored in the second message receiver 41.
This is a value obtained as a result of performing an 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 update frequency value.
A process is performed when M2 receives the ACK message issued by the cache CM3.
【0173】第2一貫性維持制御部44は、ディレクト
リメモリ43の書き込みを行い、ディレクトリステート
はそのままの‘WSP’とするが、ディレクトリマップ
は前ディレクトリマップの値をデクリメントした値(こ
こでは‘0001’である)に、更新頻度値は‘0’に
更新する。The second consistency maintaining control unit 44 writes the directory memory 43 and keeps the directory state as “WSP”, but the directory map is a value obtained by decrementing the value of the previous directory map (here, “0001”). '), The update frequency value is updated to' 0 '.
【0174】次にディレクトリステートが‘WSP’
で、ディレクトリマップの値が‘0001’であった場
合、更新頻度値の値に関わらず、図24に示すシーケン
スでメモリMM2がキャッシュCM4が発行したACK
メッセージを受け取った場合の処理をする。Next, the directory state is set to 'WSP'.
If the value of the directory map is '0001', the memory MM2 issues an ACK issued by the cache CM4 in the sequence shown in FIG. 24 regardless of the value of the update frequency value.
Perform processing 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’とする操作を行った結果得られる値である。First, the second consistency maintenance control unit 44 generates a header part of the CR message and generates the header part of the CR message.
To supply. The destination device number of the message header generated at this time is the request source device number of the message header portion stored in the second message receiving unit 41 (in this case, it is '000'), and the message identifier indicates CR. In the identifier, the address and the requesting device number are the address of the message header portion stored in the second message receiving unit 41 and the requesting device number (here, '000').
). The header part supplied from the second message transmission unit 42 and the second consistency maintenance control unit 44 is sent to the interconnection network 12 as a message. Further, the second consistency maintenance control unit 44 writes the directory memory 43, and 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 such that the bit corresponding to the cache CMi (here, the cache CM1) specified from the requesting device number in the header portion stored in the second message receiving unit 1 is “1”, and the other bits are “1”. This is a value obtained as a result of performing an operation of setting a 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, in a state where the block state of the cache CM1 is a shared state and the latest block exists only in the cache CM1 and the memory MM2, the processor PR
1 writes continuously, while the other processors P
Consider the case where Ri did not access. In this case, in the data consistency maintaining control method according to the first embodiment, a write request message is issued from the cache CM1 to the memory MM2 every time a write is performed. Therefore, there is a problem that the number of messages for data consistency maintenance control in this case increases. Further, in the data consistency maintaining control method according to the second embodiment, the first 2
The first write is reflected in the memory, but the third and subsequent writes are not reflected in the memory. Therefore, after the second writing, the latest block does not exist in the memory MM2. Therefore, when another processor PRi makes an access thereafter, the latest block does not exist in the memory MM2. In this case, the time required from the occurrence of a cache miss to the response of data to the processor is long. 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
, The first N + 1 write operations are performed in the memory M
It is also reflected in M2. Therefore, the latest block remains in the memory MM2 until N + 1 times of writing are performed. Therefore, other processors PRi
Access, the latest block is the memory MM
2, the time required from the occurrence of a cache miss to the response of data to the processor can be reduced. If no access is made during that time, the writing is not reflected in the memory MM2 from the (N + 2) th time. Therefore, an increase in the number of messages in this case can be prevented.
【0179】[0179]
【発明の効果】第1の効果は、プロセッサの読み出しに
よりキャッシュミスが発生した場合に、キャッシュから
プロセッサにデータが応答されるまでにかかる時間を短
縮できることにある。The first effect is that when a cache miss occurs due to the reading of the processor, the time required for the cache to return data to the processor can be reduced.
【0180】その理由は、プロセッサが共有しているブ
ロックに対して書き込みを行ったときに、メモリにも書
き込みを反映し最新のブロックが存在する状態としてい
るためである。The reason is that, when writing is performed on a block shared by the processor, the writing is reflected on the memory and the latest block exists.
【0181】第2の効果は、プロセッサの読み出しによ
りキャッシュミスが発生した場合に生成されるデータ一
貫性維持制御のためのメッセージを削減できることにあ
る。The second effect is that the number of messages for maintaining data consistency control generated when a cache miss occurs due to the reading of the processor can be reduced.
【0182】その理由は、プロセッサが共有しているブ
ロックに対して書き込みを行ったときに、メモリにも書
き込みを反映し最新のブロックが存在する状態としてい
るためである。The reason is that when writing is performed on a block shared by the processor, the writing is reflected in the memory and the latest block exists.
【0183】第3の効果は、プロセッサの書き込みによ
り発生するメッセージの数の増加を抑えることができる
ことにある。A third effect is that an increase in the number of messages generated by writing by the processor can be suppressed.
【0184】その理由は、プロセッサが実際に複数のキ
ャッシュで共有されているブロックに対して連続して書
き込みを行い、またその間他のキャッシュがアクセスを
行わなかった場合に、書き込みをメモリに反映するのを
途中で打ち切るためである。The reason is that when the processor actually writes continuously to a block shared by a plurality of caches, and the other cache does not access during that time, the write is reflected in the memory. In order to terminate the process.
【0185】第4の効果は、第1および第2の効果を強
くするか、第3の効果を強くするかを調整できることに
ある。The fourth effect is that it is possible to adjust whether the first and second effects are strengthened or the third effect is strengthened.
【0186】その理由は、プロセッサが実際に複数のキ
ャッシュで共有されているブロックに対して連続して書
き込みを行い、またその間他キャッシュがアクセスを行
わなかった場合に、書き込みをメモリに反映するのを何
回で打ち切るかパラメータで設定できるためである。The reason is that if the processor actually writes continuously to a block shared by a plurality of caches and the other cache does not access during that time, the write is reflected in the memory. The number of times to terminate can be set by a parameter.
【図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 configuration of a cache according to the present invention.
【図3】本発明に関わるメモリの構成説明図である。FIG. 3 is an explanatory diagram of a configuration of a memory according to the present invention.
【図4】ディレクトリマップの値と保持しているキャッ
シュの関係を表す図。FIG. 4 is a diagram showing a relationship between a value of a directory map and a held cache.
【図5】第1の実施の形態におけるデータ一貫性維持制
御方法のメッセージヘッダの構成を説明する図。FIG. 5 is an exemplary view for explaining the configuration of a message header in the data consistency maintaining control method according to the first embodiment;
【図6】第1の実施の形態におけるデータ一貫性維持制
御方法でキャッシュミスの場合に置き換えの対象となっ
たブロックをメモリに書き戻す場合のシーケンスフロー
である。FIG. 6 is a sequence flow in a case where a block to be replaced is written back to a memory in the case of a cache miss in the data coherence maintaining control method according to the first embodiment.
【図7】第1の実施の形態におけるデータ一貫性維持制
御方法でキャッシュミスの場合に置き換えの対象となっ
たブロックをメモリに書き戻す場合のシーケンスフロー
である。FIG. 7 is a sequence flow in a case where a block to be replaced is written back to a memory in the case of a cache miss in the data coherence maintaining 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 a message 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 a message 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 a message 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 a message 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 a message exchanged between a cache and a memory in the case of write sharing in the first embodiment.
【図14】第1の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。FIG. 14 is a sequence flow of a message exchanged between a cache and a memory in the case of write sharing in the first embodiment.
【図15】第1の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。FIG. 15 is a sequence flow of a message exchanged between a cache and a memory in the case of write sharing in the first embodiment.
【図16】第2の実施の形態におけるデータ一貫性維持
制御方法の動作を説明する図。FIG. 16 is a view for explaining the operation of a data consistency maintaining control method according to the second embodiment;
【図17】第3の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。FIG. 17 is a sequence flow of a message 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 a message 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 a message exchanged between a cache and a 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 a cache and a memory in the case of a cache miss in the third embodiment.
【図21】第3の実施の形態におけるキャッシュミスの
場合にキャッシュとメモリの間でやり取りされるメッセ
ージのシーケンスフローである。FIG. 21 is a sequence flow of a message exchanged between a cache and a 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 a cache and a memory in the case of write sharing in the third embodiment.
【図23】第3の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。FIG. 23 is a sequence flow of a message exchanged between a cache and a memory in the case of write sharing in the third embodiment.
【図24】第3の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。FIG. 24 is a sequence flow of a message exchanged between a cache and a memory in the case of write sharing in the third embodiment.
【図25】第3の実施の形態におけるライトシェアード
の場合にキャッシュとメモリの間でやり取りされるメッ
セージのシーケンスフローである。FIG. 25 is a sequence flow of a message exchanged between a cache and a memory in the case of write sharing in the third embodiment.
【図26】第3の実施の形態におけるデータ一貫性維持
方法でキャッシュミスの場合に置き換えの対象となった
ブロックをメモリに書き戻す場合のシーケンスフローで
ある。FIG. 26 is a sequence flow in a case where a block to be replaced is written back to a 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 a memory in the case of a cache miss in the data consistency maintaining method according to the third embodiment.
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 Interconnection Network 21 Memory Access Manager 22 Tag Memory 23 First Consistency Maintainer 24 First Data Controller 25 Cache Memory 26 First Message Receiver 27 First Message Transmitter 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)
複数相互結合網で接続されたマルチプロセッサシステム
におけるディレクトリ方式のデータ一貫性維持制御方法
において、 キャッシュにおいて、保持しているブロックが複数のプ
ロセッサのキャッシュに保持されている共有状態にある
のか当該プロセッサのキャッシュにのみ存在する非共有
状態にあるのかブロック毎に管理し、 メモリにおいて、どのプロセッサがブロックを保持して
いるか、最新のデータがメモリに存在するかどうかブロ
ック毎に管理し、 プロセッサがキャッシュのあるブロックに対して書き込
みを行った際に、 当該キャッシュのブロックの状態が非共有状態にある場
合は当該キャッシュのブロックに書き込みを反映し、 当該キャッシュのブロックの状態が共有状態にある場合
は、当該キャッシュおよびメモリのブロックに書き込み
を反映し、他プロセッサのキャッシュにあるブロックを
無効化し、書き込みを行ったプロセッサのキャッシュに
あるブロックの状態を共有状態のままとすることを特徴
とするデータ一貫性維持制御方法。1. A directory type data coherence control method in a multiprocessor system in which a processor having a cache and a memory are connected by a plurality of interconnection networks, wherein a cache holds a cache of a plurality of processors. It manages for each block whether it is in a shared state held in the cache or in a non-shared state that exists only in the cache of the processor, and in the memory, which processor holds the block and the latest data exists in the memory If the processor writes to a block in the cache and the state of the block in the cache is in a non-shared state, the write is reflected in the block in the cache and the Cache block status is shared In this case, the writing is reflected in the cache and the memory block, the block in the cache of the other processor is invalidated, and the state of the block in the cache of the writing processor remains in the shared state. Data consistency maintenance control method.
複数相互結合網で接続されたマルチプロセッサシステム
におけるディレクトリ方式のデータ一貫性維持制御方法
において、 キャッシュにおいて、保持しているブロックが複数のプ
ロセッサのキャッシュに保持されている共有状態にある
のか当該プロセッサのキャッシュにのみ存在する非共有
状態にあるのかブロック毎に管理し、 メモリにおいて、どのプロセッサがブロックを保持して
いるか、最新のデータがメモリに存在するかどうかブロ
ック毎に管理し、 プロセッサがキャッシュのあるブロックに対して書き込
みを行った際に、当該キャッシュのブロックの状態が非
共有状態の場合は当該キャッシュのブロックに書き込み
を反映し、 当該キャッシュのブロックの状態が共有状態にあり、メ
モリで管理している情報が他のプロセッサのキャッシュ
がブロックを保持していることを示している場合、当該
キャッシュおよびメモリのブロックに書き込みを反映
し、他のプロセッサのキャッシュがブロックを保持して
いた場合のブロックを無効化し、書き込みが行われたキ
ャッシュのブロックの状態を共有状態のままとし、 当該キャッシュのブロックの状態が共有状態にあり、メ
モリで管理している情報が他のプロセッサのキャッシュ
がブロックを保持していないことを示している場合、当
該キャッシュおよびメモリのブロックに書き込みを反映
し、書き込みが行われたキャッシュのブロックの状態を
非共有状態に遷移させることを特徴とするデータ一貫性
維持制御方法。2. A directory-based data coherence control method in a multiprocessor system in which a processor having a cache and a memory are connected by a plurality of interconnection networks, wherein a cache holds a cache of a plurality of processors. It manages for each block whether it is in a shared state held in the cache or in a non-shared state that exists only in the cache of the processor, and in the memory, which processor holds the block and the latest data exists in the memory If the processor writes to a certain block in the cache and the state of the block in the cache is in a non-shared state, the write is reflected in the block in the cache and the Block status is shared If the information managed in the memory indicates that the cache of another processor holds the block, the write is reflected in the cache and the block of the memory, and the cache of the other processor holds the block. If the block is invalidated, the state of the block in the cache where the write was performed remains in the shared state, the state of the block in the cache is in the shared state, and the information managed in the memory is stored in another processor. When the cache indicates that the block does not hold the block, the write is reflected in the cache and the block of the memory, and the state of the block of the cache where the write is performed is changed to the non-shared state. Data consistency maintenance control method.
複数相互結合網で接続されたマルチプロセッサシステム
におけるディレクトリ方式のデータ一貫性維持制御方法
において、 キャッシュにおいて、保持しているブロックが複数のプ
ロセッサのキャッシュに保持されている共有状態にある
のか当該プロセッサのキャッシュにのみ存在する非共有
状態にあるのかブロック毎に管理し、 メモリにおいて、どのプロセッサがブロックを保持して
いるか、最新のデータがメモリに存在するかどうか、更
新頻度値、をブロック毎に管理し、 前記更新頻度値は、メモリで管理している情報がある1
プロセッサのキャッシュがブロックを保持し最新のデー
タがメモリに存在することを示している場合にブロック
をキャッシュに保持する当該プロセッサから書き込みの
反映が行われた回数を記録し、他のプロセッサからアク
セスがあった場合は回数を0に戻し、 当該キャッシュのブロックの状態が非共有状態の場合は
当該キャッシュのブロックに書き込みを反映し、 当該キャッシュのブロックの状態が共有状態にあり、メ
モリで管理している情報が他のプロセッサのキャッシュ
がブロックを保持していることを示している場合は、当
該キャッシュおよびメモリのブロックに書き込みを反映
し、他のプロセッサのキャッシュがブロックを保持して
いた場合のブロックを無効化し、書き込みが行われたキ
ャッシュのブロックの状態を共有状態のままとし、 当該キャッシュのブロックの状態が共有状態にあり、メ
モリで管理している情報が他のプロセッサのキャッシュ
がブロックを保持していないことを示し、更新頻度値が
ある一定値より小さい場合は、当該キャッシュおよびメ
モリのブロックに書き込みを反映し、更新頻度値をイン
クリメントし、書き込みが行われたキャッシュのブロッ
クの状態を共有状態のままとし、 当該キャッシュのブロックの状態が共有状態にあり、メ
モリで管理している情報が他のプロセッサのキャッシュ
がブロックを保持していないことを示し、更新頻度値が
ある一定値と一致する場合は、当該キャッシュおよびメ
モリのブロックに書き込みを反映し、書き込みが行われ
たキャッシュのブロックの状態を非共有状態に遷移させ
る、ことを特徴とするデータ一貫性維持制御方法。3. A directory type data coherence control method in a multiprocessor system in which a processor having a cache and a memory are connected by a plurality of interconnection networks, wherein a cache holds a cache of a plurality of processors. It manages for each block whether it is in a shared state held in the cache or in a non-shared state that exists only in the cache of the processor, and in the memory, which processor holds the block and the latest data exists in the memory The update frequency value is managed for each block, and the update frequency value includes information managed in a memory.
If the cache of the processor holds the block and indicates that the latest data is present in the memory, the number of times that the write is reflected from the processor that holds the block in the cache is recorded. If there is, the count is returned to 0. If the status of the cache block is non-shared, the write is reflected in the cache block. The status of the cache block is shared and managed by the memory. If the information indicates that the cache of another processor holds the block, the write is reflected in the cache and the block of the memory, and the block when the cache of the other processor holds the block. Invalidates the state of the block in the cache where the If the status of the block in the cache is in the shared state, the information managed in the memory indicates that the cache of another processor does not hold the block, and the update frequency value is smaller than a certain value, The cache and the block of the memory reflect the write, the update frequency value is incremented, the state of the block of the cache where the write is performed remains in the shared state, the state of the block of the cache is the shared state, and the memory is Indicates that the cache of another processor does not hold the block, and if the update frequency value matches a certain value, the write is reflected in the cache and the memory block, and the write is Data that changes the state of a cache block that has been performed to a non-shared state. Transmural of maintaining control method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000009808A JP3678620B2 (en) | 1996-03-01 | 2000-01-19 | Data consistency maintenance control method in multiprocessor system |
Applications Claiming Priority (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 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8043924A Division JPH09237259A (en) | 1996-03-01 | 1996-03-01 | Method for controlling maintenance of data consistency in multi processor system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000172656A true JP2000172656A (en) | 2000-06-23 |
JP3678620B2 JP3678620B2 (en) | 2005-08-03 |
Family
ID=34913724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000009808A Expired - Fee Related JP3678620B2 (en) | 1996-03-01 | 2000-01-19 | Data consistency maintenance control method in multiprocessor system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3678620B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181292B2 (en) | 2002-02-27 | 2007-02-20 | Nec Corporation | System control method, control processing system, and control processing apparatus |
WO2007096980A1 (en) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | Record control device and record control method |
-
2000
- 2000-01-19 JP JP2000009808A patent/JP3678620B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181292B2 (en) | 2002-02-27 | 2007-02-20 | Nec Corporation | System control method, control processing system, and control processing apparatus |
WO2007096980A1 (en) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | Record control device and record control method |
US8176260B2 (en) | 2006-02-24 | 2012-05-08 | Fujitsu Limited | Recording controller including snoop unit issuing invalidation request and response unit outputting notification indicating identification information for indentifying recording request and recording control method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP3678620B2 (en) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
KR100548908B1 (en) | Method and apparatus for centralized snoop filtering | |
KR100308323B1 (en) | Non-uniform memory access (numa) data processing system having shared intervention support | |
US7117310B2 (en) | Systems and methods for cache synchronization between redundant storage controllers | |
JP3007872B2 (en) | Method and apparatus for providing a cache coherency protocol for maintaining cache coherency in a multiprocessor data processing system | |
US8103835B2 (en) | Low-cost cache coherency for accelerators | |
JP5116418B2 (en) | Method for processing data in a multiprocessor data processing system, processing unit for multiprocessor data processing system, and data processing system | |
EP1255201B1 (en) | Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols | |
US8037252B2 (en) | Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor | |
US6772298B2 (en) | Method and apparatus for invalidating a cache line without data return in a multi-node architecture | |
JPH09223118A (en) | Snoop cache memory control system | |
US6922755B1 (en) | Directory tree multinode computer system | |
US6587922B2 (en) | Multiprocessor system | |
KR20040007546A (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
TW201832095A (en) | Read-with overridable-invalidate transaction | |
JPH06110844A (en) | Decentralized shared memory type multiprocessor system | |
US6918009B1 (en) | Cache device and control method for controlling cache memories in a multiprocessor system | |
JP3009430B2 (en) | Processor and cache memory control method thereof | |
US6651157B1 (en) | Multi-processor system and method of accessing data therein | |
US6807608B2 (en) | Multiprocessor environment supporting variable-sized coherency transactions | |
JP3678620B2 (en) | Data consistency maintenance control method in multiprocessor system | |
US20040030843A1 (en) | Asynchronous non-blocking snoop invalidation | |
JP2003216597A (en) | Multiprocessor system | |
JPH09237259A (en) | Method for controlling maintenance of data consistency in multi processor system | |
JP2689899B2 (en) | Information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20001226 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050311 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050510 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090520 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100520 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110520 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110520 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120520 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120520 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130520 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |