JP3097941B2 - Cache memory controller - Google Patents

Cache memory controller

Info

Publication number
JP3097941B2
JP3097941B2 JP05215299A JP21529993A JP3097941B2 JP 3097941 B2 JP3097941 B2 JP 3097941B2 JP 05215299 A JP05215299 A JP 05215299A JP 21529993 A JP21529993 A JP 21529993A JP 3097941 B2 JP3097941 B2 JP 3097941B2
Authority
JP
Japan
Prior art keywords
cache memory
processor
data
processor element
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP05215299A
Other languages
Japanese (ja)
Other versions
JPH0749809A (en
Inventor
正俊 佐藤
浩一 武田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP05215299A priority Critical patent/JP3097941B2/en
Publication of JPH0749809A publication Critical patent/JPH0749809A/en
Application granted granted Critical
Publication of JP3097941B2 publication Critical patent/JP3097941B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

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

【0001】[0001]

【産業上の利用分野】本発明はマルチプロセッサシステ
ムにおけるキャッシュメモリ制御装置に関し、特にその
キャッシュメモリのデータの無矛盾化方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cache memory control device in a multiprocessor system, and more particularly to a method for making data in a cache memory consistent.

【0002】[0002]

【従来の技術】複数のプロセッサと、これらプロセッサ
が共有するメインメモリ(主記憶装置)とを共有バスを
介して接続したマルチプロセッサシステムでは、各プロ
セッサのアクセスが全て共有バスに集中することを避け
るため、各プロセッサはそれぞれキャッシュメモリを備
えているのが一般的である。一方、このようなマルチプ
ロセッサシステムでは、各プロセッサがそれぞれ個別に
キャッシュメモリを持つことから、同一のデータのコピ
ーが複数のキャッシュメモリに存在することになり、従
って、これらのデータの統一性を保つ必要がある。
2. Description of the Related Art In a multiprocessor system in which a plurality of processors and a main memory (main storage device) shared by the processors are connected via a shared bus, it is possible to prevent all accesses of each processor from being concentrated on the shared bus. Therefore, each processor generally has a cache memory. On the other hand, in such a multiprocessor system, since each processor has its own cache memory, a copy of the same data exists in a plurality of cache memories, and therefore, the uniformity of these data is maintained. There is a need.

【0003】そこで、マルチプロセッサシステムでは、
各プロセッサの有するキャッシュメモリのデータに変更
が生じた場合、メインメモリだけでなく、他のキャッシ
ュメモリにもそのデータ変更を知らせて、システム内の
データの統一性を保つようにしており、この制御の取り
決めをキャッシュメモリの無矛盾化(コヒーレンシ)プ
ロトコルといい、種々のプロトコルが提案されている。
そして、これらのプロトコルでは、その無矛盾化を行う
ために次のような構成をとっている。
Therefore, in a multiprocessor system,
When a change occurs in the data in the cache memory of each processor, not only the main memory but also the other cache memories are notified of the data change so as to maintain the uniformity of the data in the system. This protocol is called a cache memory coherency protocol, and various protocols have been proposed.
These protocols have the following configuration in order to make them consistent.

【0004】即ち、各プロセッサがある操作を行う場合
は、その操作が終了するまで共有バスを専有し、かつ、
共有バス上にその操作に対応した信号を放送する。一
方、他のプロセッサは共有バスを監視することにより、
対応するブロックをキャッシュメモリに持っている場合
は、その信号に従ってブロックの状態を変更するといっ
た処理により無矛盾化を保証するものである。
That is, when each processor performs an operation, the processor occupies the shared bus until the operation is completed, and
A signal corresponding to the operation is broadcast on a shared bus. On the other hand, other processors monitor the shared bus,
If the corresponding block is stored in the cache memory, consistency is assured by processing such as changing the state of the block according to the signal.

【0005】例えば、このような無矛盾化のプロトコル
としてイリノイプロトコルにおけるプロセッサ・リード
・ミスの場合を以下に説明する。 (a)プロセッサがリード動作を行い、キャッシュミス
を起こすと、プロセッサはリードミス信号を有意にし、
共有バスにデータを要求する。 (b1)データが他のキャッシュメモリから送られてく
ると、データを「Shared Clean」の状態で
登録する(通常、メインメモリのデータよりも別のキャ
ッシュメモリからのデータの方が早くかつ優先的に届く
ようになっている)。 (b2)他のキャッシュメモリにデータが無い場合はメ
インメモリからデータが送られ、この場合はデータを
「Private Clean」の状態で登録する。
[0005] For example, a case of a processor read miss in the Illinois protocol will be described below as such a non-consistent protocol. (A) When the processor performs a read operation and causes a cache miss, the processor makes the read miss signal significant,
Request data from the shared bus. (B1) When data is sent from another cache memory, the data is registered in a "Shared Clean" state (normally, data from another cache memory is faster and has higher priority than data in the main memory). ). (B2) If there is no data in the other cache memory, the data is sent from the main memory, and in this case, the data is registered in a “Private Clean” state.

【0006】このように、従来の無矛盾化プロトコルで
は、(a)と(b1)または(b2)との二つの操作
を、一つの不可分の操作、即ち、(a)の操作が開始さ
れてから(b1)または(b2)の操作が終了するまで
を一つの同期単位とし、この間はバスの専有状態を解除
せずに行っていた。
As described above, in the conventional non-consistent protocol, the two operations (a) and (b1) or (b2) are divided into one inseparable operation, that is, after the operation of (a) is started. Until the operation of (b1) or (b2) is completed, one synchronization unit is used, and during this period, the operation is performed without releasing the exclusive state of the bus.

【0007】[0007]

【発明が解決しようとする課題】しかしながら、上記従
来の無矛盾化方式における「いくつかの操作群をバス上
の不可分の操作として扱うこと」の制限は、マルチプロ
セッサが小規模なものではさほど問題は生じないもの
の、大規模なシステムやバスを汎用的なネットワーク結
合網に置き換えた場合は、大きな問題となる。例えば、
大規模なマルチプロセッサシステムを考えた場合、その
バスを流れる信号の伝搬遅延は無視できないものとな
る。また、汎用的なネットワーク結合網を考えた場合も
同様である。
However, the limitation of "treating some operation groups as inseparable operations on the bus" in the above-mentioned conventional non-consistent scheme is not so large when the multiprocessor is small. Although this does not occur, it becomes a serious problem when a large-scale system or bus is replaced with a general-purpose network connection network. For example,
When a large-scale multiprocessor system is considered, the propagation delay of a signal flowing through the bus cannot be ignored. The same applies when a general-purpose network connection network is considered.

【0008】即ち、このような大規模なシステムに従来
と同様の同期単位を設定することを考えた場合、キャッ
シュメモリの無矛盾化を保証するためには、伝搬遅延時
間を考慮し、そのシステムにおける最大遅延時間を同期
単位としなければならない。その結果、システムの規模
が大きくなればなるほど一つのプロセッサの操作による
ネットワークの専有時間が長くなってシステムの性能が
低下してしまうことから、このような構成は、到底採用
できるものではなかった。
That is, when considering the same synchronization unit as in the prior art in such a large-scale system, in order to guarantee the consistency of the cache memory, the propagation delay time is taken into consideration and the system is used. The maximum delay time must be a synchronization unit. As a result, as the scale of the system increases, the occupation time of the network by the operation of one processor increases and the performance of the system deteriorates. Therefore, such a configuration cannot be adopted at all.

【0009】一方、このような問題に対処するため、各
プロセッサがバスからの信号の遅れを考慮せず、それぞ
れが独自に同期単位を設定することが考えられる。即
ち、バスの専有を、各プロセッサの操作単位とする方法
である。しかしながら、このような方法を用いた場合、
これまでのキャッシュメモリの無矛盾化方式では、以下
のような問題が発生する。即ち、これまでのキャッシュ
メモリの無矛盾化方式では、各キャッシュメモリの状態
遷移の事象を、システムとしてのグローバルクロックに
より、事象発生と同時に放送していた。ところが、上記
のような同期単位を設定した場合、このような事象発生
の放送は遅れを伴い、しかも発生源からの距離により、
通知の逆転を伴って伝えられる場合が発生する。従っ
て、このような通知の逆転といったことから、キャッシ
ュメモリの無矛盾化を保証することができないといった
問題が発生する。
On the other hand, in order to cope with such a problem, it is conceivable that each processor independently sets a synchronization unit without considering delay of a signal from a bus. In other words, this is a method in which the exclusive use of the bus is used as an operation unit of each processor. However, when using such a method,
In the conventional cache memory non-consistent method, the following problem occurs. In other words, in the conventional cache memory non-contradiction method, the event of the state transition of each cache memory is broadcasted simultaneously with the occurrence of the event by a global clock as a system. However, when the above synchronization unit is set, broadcasting of such an event occurrence involves a delay, and furthermore, depending on the distance from the source,
In some cases, the notification is transmitted with the reversal of the notification. Therefore, such a reversal of the notification causes a problem that it is not possible to guarantee the consistency of the cache memory.

【0010】このような問題を、上述したイリノイプロ
トコルによるプロセッサ・リード・ミスを例にとって説
明する。先ず、従来では上述したように、(a)の操作
と(b1)または(b2)の操作を一つの不可分の操作
で行っていた。これに対し、操作を(a)、(b1)、
(b2)のそれぞれに分割し、各操作を独自に行うこと
を考える。
[0010] Such a problem will be described by taking a processor read miss by the above-mentioned Illinois protocol as an example. First, conventionally, as described above, the operation (a) and the operation (b1) or (b2) are performed by one inseparable operation. On the other hand, the operations are (a), (b1),
It is considered that the operation is divided into (b2) and each operation is performed independently.

【0011】図2に、これを説明するためのマルチプロ
セッサシステムの要部を示す。尚、この図2において
は、煩雑さを避けるため、プロセッサ等の図示を省略し
ている。図において、1、2はキャッシュメモリを示し
ており、これらキャッシュメモリ1、2とメインメモリ
3とがバス4を介して接続されているとする。また、操
作がキャッシュメモリ1/メインメモリ3間を伝わる時
間をn、キャッシュメモリ2/メインメモリ3間を伝わ
る時間をmとし、n>mの関係がある。
FIG. 2 shows a main part of a multiprocessor system for explaining this. In FIG. 2, illustration of a processor and the like is omitted to avoid complexity. In the figure, reference numerals 1 and 2 denote cache memories, and it is assumed that these cache memories 1 and 2 and the main memory 3 are connected via a bus 4. In addition, the time during which an operation travels between the cache memory 1 and the main memory 3 is represented by n, and the time through which the operation travels between the cache memory 2 and the main memory 3 is represented by m, where n> m.

【0012】このような構成において、キャッシュメモ
リ1がダーティの時、キャッシュメモリ2に対してプロ
セッサ・リード・ミスが生じ、キャッシュメモリ1のブ
ロックを読む場合を考える。そして、この時点では、キ
ャッシュメモリ1に正しいデータがあり、メインメモリ
3には古い正しくないデータがあるとする(キャッシュ
メモリ1でライトヒットが繰り返され、データが更新さ
れている)。
In such a configuration, consider a case where when the cache memory 1 is dirty, a processor read miss occurs in the cache memory 2 and a block of the cache memory 1 is read. At this point, it is assumed that correct data is present in the cache memory 1 and old incorrect data is present in the main memory 3 (a write hit is repeated in the cache memory 1 and the data is updated).

【0013】以下に、事象の流れを示す。 キャッシュメモリ2で、ブロックXに対して、プロセ
ッサ・リード・ミスが生じる。 上記と同時刻にキャッシュメモリ1で、ブロックX
に対して、スワップアウト(メインメモリ3へのデータ
の書き戻し)が生じる。 m時間後、キャッシュメモリ2はメインメモリ3より
データ(古い/正しくない)を受け取る。即ち、n>m
の関係により、この時点ではキャッシュメモリ1からの
データはメインメモリ3に届いていない。 n時間後、メインメモリ3は、キャッシュメモリ1か
らのデータ(正しい)を受け取る。 n+m時間後、キャッシュメモリ1はキャッシュメモ
リ2からのデータ要求を受けるがブロックXはスワップ
アウトのため既にない。尚、この場合、本来ならば、キ
ャッシュメモリ1がキャッシュメモリ2のデータ要求を
処理する。 従って、キャッシュメモリ2は正しいデータを受け取
ることができない。
The flow of events will be described below. In the cache memory 2, a processor read miss occurs for the block X. At the same time as above, block X
Causes a swap-out (writing back data to the main memory 3). After m hours, the cache memory 2 receives the data (old / incorrect) from the main memory 3. That is, n> m
At this time, the data from the cache memory 1 has not reached the main memory 3 at this time. After n hours, the main memory 3 receives the data (correct) from the cache memory 1. After n + m hours, the cache memory 1 receives a data request from the cache memory 2, but the block X does not exist because of swap-out. In this case, the cache memory 1 normally processes the data request of the cache memory 2. Therefore, the cache memory 2 cannot receive correct data.

【0014】上記のような操作において、従来の方式で
は、プロセッサ・リード・ミスまたはスワップアウトの
いずれか一方の事象がバス権を取り、プロセッサ・リー
ド・ミスがバス権を取った場合はスワップアウトが待た
され、キャッシュメモリ1からの正しいデータがキャッ
シュメモリ2に転送される。また、スワップアウトがバ
ス権を取った場合は、プロセッサ・リード・ミスが待た
され、スワップアウトがメインメモリ3に対して行われ
た後、メインメモリ3から正しいデータがキャッシュメ
モリ2に転送される。これに対して、上記のように操作
群を分割したものでは、別のキャッシュメモリからのデ
ータが早くかつ優先的に届くとは限らず、古いデータを
受け取ってしまい、キャッシュメモリの無矛盾化を保証
することができないといった問題点を有していた。
In the above-mentioned operation, in the conventional method, either one of the processor read miss and the swap out takes the bus right, and if the processor read miss takes the bus right, the swap out occurs. , And the correct data from the cache memory 1 is transferred to the cache memory 2. When the swap-out takes the bus right, a processor read miss is awaited. After the swap-out is performed on the main memory 3, correct data is transferred from the main memory 3 to the cache memory 2. . On the other hand, when the operation group is divided as described above, data from another cache memory does not always arrive quickly and preferentially, and old data is received, which guarantees consistency of the cache memory. There was a problem that it could not be done.

【0015】本発明は、上記従来の問題点を解決するた
めになされたもので、大規模なマルチプロセッサシステ
ムであっても性能の低下がなく、かつキャッシュメモリ
の無矛盾化を保証することのできるキャッシュメモリ制
御装置を提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned conventional problems. Even in a large-scale multiprocessor system, it is possible to guarantee that the performance of the cache memory is not reduced and that the cache memory is made consistent. It is an object to provide a cache memory control device.

【0016】[0016]

【課題を解決するための手段】本発明のキャッシュメモ
リ制御装置は、それぞれがプロセッサとキャッシュメモ
リとを備えたプロセッサエレメントを放送機能を有する
ネットワークに接続してなるマルチプロセッサシステム
のキャッシュメモリ制御装置において、前記それぞれの
プロセッサエレメントは、各プロセッサエレメントの信
号送出時のみ前記ネットワークを専有する同期単位制御
部と、前記プロセッサエレメントが前記ネットワークを
専有する権利を解放後、当該プロセッサエレメントから
の要求に対する応答が受信されるのに必要な最大時間だ
け前記ネットワークからの入力信号を監視する監視部
と、前記監視部による監視時間の間に、入力される信号
の内容と、予め決められた動作の優先順位と、前記複数
のプロセッサエレメントの各々の優先順位とに従って、
前記要求を発生させた自キャッシュメモリにおけるデー
タの状態を決定する状態管理部とを備えたことを特徴と
するものである。
According to the present invention, there is provided a cache memory control device for a multiprocessor system comprising processor elements each having a processor and a cache memory connected to a network having a broadcasting function. Each of the processor elements has a synchronization unit control unit that occupies the network only when each processor element sends out a signal.After releasing the right of the processor element to occupy the network, a response to a request from the processor element is issued. A monitoring unit that monitors an input signal from the network for a maximum time necessary to be received, and a content of an input signal and a priority of a predetermined operation during a monitoring time period by the monitoring unit. , The plurality
According to the priority of each of the processor elements of
A state management unit for determining a state of data in the own cache memory which has generated the request.

【0017】[0017]

【作用】本発明のキャッシュメモリ制御装置において
は、プロセッサエレメントは、例えば、リードミスが発
生し、このリードミスに対するデータ要求が発生した場
合、同期単位制御部は、データ要求時のみ共有バスやネ
ットワークを専有する権利を要求する。監視部は、プロ
セッサエレメントが上記の専有する権利を解放後、予め
定めた、要求に対する応答が受信されるのに必要な最大
時間だけ共有バスやネットワークから入力される信号を
監視する。
In the cache memory control device according to the present invention, for example, when a read miss occurs and a data request for the read miss occurs, the synchronization unit control unit occupies the shared bus or network only when the data request is made. Claim the right to After the processor element releases the exclusive right, the monitoring unit monitors a signal input from the shared bus or the network for a predetermined maximum time necessary for receiving a response to the request.

【0018】状態管理部は、監視部が監視した時間に入
力された信号と、予め定められた優先順位のルールに基
づき、キャッシュメモリのデータの状態を決定する。例
えば、監視時間内に、リードミスに対するデータが入力
されると共に、優先度の高い他のプロセッサエレメント
からライトヒット信号が入力された場合、入力されたデ
ータと他のプロセッサエレメントでライトヒットしたデ
ータは一致しなくなるため、入力したデータは無効とな
り、キャッシュメモリの状態は「Invalid」とな
る。また、他の場合でも、状態管理部は予め定められた
優先順位のルールに従って監視時間後にそのキャッシュ
メモリの状態を決定する。従って、プロセッサエレメン
トは共有バスやネットワークを専有する権利を明け渡し
た状態でも、キャッシュメモリにおけるデータの無矛盾
化は保証することができる。
The state management unit determines the state of the data in the cache memory based on the signal input at the time monitored by the monitoring unit and a rule of a predetermined priority . For example, when data for a read miss is input during the monitoring time and a write hit signal is input from another processor element having a higher priority , the input data and the data that has been write hit by another processor element are one. Therefore, the input data becomes invalid, and the state of the cache memory becomes “Invalid”. Also, in other cases, the state management unit is determined in advance.
The state of the cache memory is determined after the monitoring time according to the priority rule. Therefore, even when the processor element has given up the right to occupy the shared bus or the network, it is possible to guarantee that data in the cache memory is not inconsistent.

【0019】[0019]

【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。図1は本発明のキャッシュメモリ制御装置の
実施例を示すブロック図である。図の装置は、複数のプ
ロセッサエレメント10(10−1〜10−n)とメイ
ンメモリ20と、共有バス(ネットワーク)30とから
なる。プロセッサエレメント10は、各々プロセッサ1
1(11−1〜11−n)と、キャッシュメモリ12
(12−1〜12−n)とからなる。尚、プロセッサエ
レメント10−2〜10−nの構成は、プロセッサエレ
メント10−1と同様であるため、内部の構成は図示省
略し、各プロセッサエレメント10に共通の構成は、プ
ロセッサ11およびキャッシュメモリ12として説明す
る。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a block diagram showing an embodiment of the cache memory control device of the present invention. The illustrated device includes a plurality of processor elements 10 (10-1 to 10-n), a main memory 20, and a shared bus (network) 30. The processor elements 10 each include a processor 1
1 (11-1 to 11-n) and the cache memory 12
(12-1 to 12-n). Since the configuration of the processor elements 10-2 to 10-n is the same as that of the processor element 10-1, the internal configuration is not shown, and the configuration common to each processor element 10 is the processor 11 and the cache memory 12 It will be described as.

【0020】プロセッサ11は、各種の制御を司る制御
部であり、特に、共有メモリ型マルチプロセッサシステ
ムにおいて、キャッシュメモリ12とメインメモリ20
間のデータのライト/リード制御や各キャッシュメモリ
12間のデータ転送等の制御を行うものである。そし
て、プロセッサ11は、キャッシュメモリ12の制御装
置として、同期単位制御部13、監視部14、状態管理
部15とを有している。同期単位制御部13は、操作を
分割して同期単位とする機能を有している。尚、この分
割については後述する。
The processor 11 is a control unit that controls various controls. In particular, in a shared memory type multiprocessor system, the cache memory 12 and the main memory 20
It controls the write / read of data between them and controls the data transfer between the cache memories 12 and the like. The processor 11 includes a synchronization unit control unit 13, a monitoring unit 14, and a state management unit 15 as control devices for the cache memory 12. The synchronization unit control unit 13 has a function of dividing an operation into synchronization units. This division will be described later.

【0021】また、監視部14は、バッファメモリ14
aを備え、予め定められた監視時間にバッファリングさ
れたデータを監視するためのものである。尚、ここで予
め定められた監視時間とは、プロセッサエレメント10
からある要求が発生した場合に、その要求の開始から応
答を受け取るまでに必要なシステムとしての最大遅れ時
間を指している。更に、状態管理部15は、予め、定め
られた優先順位に基づくルールを有し、監視部14によ
る監視時間の間、何らかの応答信号が入力された場合
は、このルールに従って、キャッシュメモリ12の状態
を決定するものである。
The monitoring unit 14 includes a buffer memory 14
a for monitoring data buffered at a predetermined monitoring time. Here, the predetermined monitoring time refers to the processor element 10
When a certain request is generated from the server, the maximum delay time as a system required from the start of the request to the reception of a response. Further, the state management unit 15 has a rule based on a predetermined priority order . If any response signal is input during the monitoring time by the monitoring unit 14, the state management unit 15 stores the state of the cache memory 12 according to the rule. Is determined.

【0022】キャッシュメモリ12は、キャッシュメモ
リとしての既知の機能を有すると共に、状態管理部15
によって格納されているデータブロックの状態が決定さ
れるものである。また、メインメモリ20は各プロセッ
サエレメント10が共有するメモリであり、共有バス3
0は、これらプロセッサエレメント10とメインメモリ
20とを接続するバスである。尚、本実施例では、複数
のプロセッサエレメント10と、これらプロセッサエレ
メント10の共有メモリであるメインメモリ20とを接
続するネットワークを共有バス30として説明するが、
この共有バス30は、複数のプロセッサエレメント10
間で放送機能を持つ汎用的なネットワークであっても同
様である。
The cache memory 12 has a known function as a cache memory, and has a state management unit 15.
Is used to determine the state of the data block stored. The main memory 20 is a memory that is shared by the processor elements 10,
A bus 0 connects the processor element 10 and the main memory 20. In this embodiment, a network connecting a plurality of processor elements 10 and a main memory 20 which is a shared memory of the processor elements 10 will be described as a shared bus 30.
The shared bus 30 includes a plurality of processor elements 10
The same applies to a general-purpose network having a broadcast function between them.

【0023】次に、上記同期単位制御部13による操作
の分割例をイリノイプロトコルの場合を例にとって説明
する。図3にイリノイプロトコルの状態遷移を示す。
尚、図3中、括弧内の番号は、以下の番号に対応してい
る。
Next, an example of division of the operation by the synchronization unit control unit 13 will be described by taking the case of the Illinois protocol as an example. FIG. 3 shows the state transition of the Illinois protocol.
The numbers in parentheses in FIG. 3 correspond to the following numbers.

【0024】(1)プロセッサ・リード・ミス (a)プロセッサ11がリード動作を行い、キャッシュ
ミスを起こすと、リード・ミス信号を有意にし、共有バ
ス30にデータを要求する。 (b1)キャッシュメモリ12またはメインメモリ20
から送られてくるデータを待ち、データが別のキャッシ
ュメモリ12から送られてくると、データを「Shar
ed Clean」の状態で登録する。 (b2)メインメモリ20からデータが送られてきた場
合(他のキャッシュメモリ12にデータが無い場合)
は、データを「Private Clean」の状態で
登録する。
(1) Processor Read Miss (a) When the processor 11 performs a read operation and causes a cache miss, it makes the read miss signal significant and requests data from the shared bus 30. (B1) Cache memory 12 or main memory 20
And waits for data sent from another cache memory 12, and when the data is sent from another cache memory 12,
ed Clean ". (B2) When data is sent from the main memory 20 (when there is no data in another cache memory 12)
Registers data in a state of “Private Clean”.

【0025】(2)バス・リード・ミス これは、共有バス30のスレーブとなっているプロセッ
サ11(他のプロセッサ11がリクエストを出している
状態でこのリクエストを受ける方のプロセッサ)がリク
エストされたデータのコピーを持っていて、「バス・リ
ード・ミス」を受け取った場合である。
(2) Bus read miss This is a request from the processor 11 which is a slave of the shared bus 30 (the processor receiving this request while another processor 11 is issuing a request). This is the case where the user has a copy of the data and receives a “bus read miss”.

【0026】状態が「Private Clean」
または「Shared Clean」の場合 (a)マスタ側のキャッシュメモリ12(リクエストを
出した方のプロセッサエレメントのキャッシュメモリ)
にリクエストされたデータをブロック転送し、キャッシ
ュメモリ12の状態を「Shared Clean」に
する。 状態が「Dirty」の場合 (a)マスタ側のキャッシュメモリ12およびメインメ
モリ20に、リクエストされたデータをブロック転送
し、キャッシュメモリ12の状態を「Shared C
lean」にする。
The state is "Private Clean"
Or “Shared Clean” (a) Master side cache memory 12 (cache memory of the processor element that issued the request)
The requested data is block-transferred, and the state of the cache memory 12 is set to “Shared Clean”. When the state is “Dirty” (a) The requested data is block-transferred to the cache memory 12 and the main memory 20 on the master side, and the state of the cache memory 12 is changed to “Shared C”.
"lean".

【0027】(3)プロセッサ・ライト・ヒット 状態が「Dirty」または「Private Cl
ean」の場合 (a)データは直ちにキャッシュメモリ12に書かれ、
状態を「Dirty」にする。 状態が「Shared Clean」の場合 (a)プロセッサ11は共有バス30に無効化信号を送
出する。また、データをキャッシュメモリ12に書き、
状態を「Dirty」にする。
(3) Processor write hit status is "Dirty" or "Private Cl
ean "(a) Data is immediately written to the cache memory 12,
Change the state to "Dirty". When the state is “Shared Clean” (a) The processor 11 sends an invalidation signal to the shared bus 30. Also, the data is written to the cache memory 12,
Change the state to "Dirty".

【0028】(4)プロセッサ・ライト・ミス (a)キャッシュミスを起こすと、ライト・ミス信号を
有意にし、共有バス30にデータを要求する。 (b)キャッシュメモリ12またはメインメモリ20か
ら送られてくるデータを待ち、データを「Dirty」
の状態でキャッシュメモリ12に登録する。また、この
時、キャッシュメモリ12からのデータを優先し、登録
する。そしてプロセッサ11がキャッシュメモリ12に
書込みを行う。
(4) Processor Write Miss (a) When a cache miss occurs, the write miss signal is made significant and data is requested from the shared bus 30. (B) Wait for data sent from the cache memory 12 or the main memory 20 and store the data in “Dirty”
In the cache memory 12 in the state described above. At this time, the data from the cache memory 12 is registered with priority. Then, the processor 11 writes to the cache memory 12.

【0029】(5)バス・ライト・ヒット 状態が「Shared Clean」の場合 (a)プロセッサ11は、対応するデータの状態を無効
化する。
(5) When the bus write hit state is "Shared Clean" (a) The processor 11 invalidates the state of the corresponding data.

【0030】(6)バス・ライト・ミス 共有バス30のスレーブとなっているプロセッサ11が
リクエストされたデータのコピーを持っていて、「バス
・ライト・ミス」を受け取った場合 状態が「Private Clean」または「Sh
ared Clean」の場合 (a)マスタ側のキャッシュメモリ12に、リクエスト
されたデータをブロック転送し、キャッシュメモリ12
の状態を無効化する。 状態が「Dirty」の場合 (a)マスタ側のキャッシュメモリ12およびメインメ
モリ20に、リクエストされたデータをブロック転送
し、キャッシュメモリ12の状態を無効化する。
(6) Bus Write Miss When the processor 11 which is the slave of the shared bus 30 has a copy of the requested data and receives a “Bus Write Miss”, the status is “Private Clean”. "Or" Sh
"ared Clean" (a) The requested data is block-transferred to the cache memory 12 on the master side, and the cache memory 12
Invalidates the state of. When the state is "Dirty" (a) The requested data is block-transferred to the cache memory 12 and the main memory 20 on the master side, and the state of the cache memory 12 is invalidated.

【0031】以上、(a)、(b)、(b1)、(b
2)といった操作が、それぞれ個別に一つの同期単位、
即ち、バス権を要求する単位として行われる。
As described above, (a), (b), (b1), (b)
Operations such as 2) are individually performed in one synchronization unit,
That is, it is performed as a unit for requesting the bus right.

【0032】そして、上記(1)プロセッサ・リード・
ミスと、(4)プロセッサ・ライト・ミスの場合、他の
キャッシュメモリ12あるいはメインメモリ20から送
られてくるデータを待つ必要があり、これらからの順序
は保証されていない。そこで、監視部14は、システム
としての最大遅れ時間の間、バッファメモリ14aに共
有バス30からの信号をバッファリングする。
Then, (1) the processor read
In the case of a miss and (4) a processor write miss, it is necessary to wait for data sent from another cache memory 12 or the main memory 20, and the order from these is not guaranteed. Therefore, the monitoring unit 14 buffers the signal from the shared bus 30 in the buffer memory 14a during the maximum delay time of the system.

【0033】更に、状態管理部15は、監視部14によ
る監視時間内に送られてきた信号に基づき、キャッシュ
メモリ12の状態を決定する。また、その決定のルール
は優先順位順に次のようになっている。 (1)他のキャッシュメモリ12からのスワップアウト (2)他のキャッシュメモリ12からのデータブロック
転送 (3)メインメモリ20からのデータブロック転送 状態管理部15は、このような優先順位に従い、監視時
間後にキャッシュメモリ12の状態を書き込むものであ
る。尚、プロセッサエレメント10の操作の分割は、共
有バス30に対する操作の分割であり、上記のようなキ
ャッシュメモリ12の状態遷移に関する操作の分割の必
要は無い。
Further, the state management unit 15 determines the state of the cache memory 12 based on the signal sent within the monitoring time by the monitoring unit 14. The rules for the determination are as follows in order of priority. (1) Swap-out from other cache memory 12 (2) Data block transfer from other cache memory 12 (3) Data block transfer from main memory 20 The state management unit 15 monitors according to such priorities. After a lapse of time, the state of the cache memory 12 is written. The division of the operation of the processor element 10 is the division of the operation on the shared bus 30, and there is no need to divide the operation related to the state transition of the cache memory 12 as described above.

【0034】更に、信号の遅れ時間を考慮すると、同一
ブロックに対してあたかも同時に事象が発生したような
状態が存在する。このような場合の種々の状態遷移に関
して、二つのプロセッサエレメントを例にとって以下に
説明する。
Further, when the delay time of the signal is taken into consideration, there is a state in which an event occurs simultaneously with respect to the same block. Various state transitions in such a case will be described below using two processor elements as an example.

【0035】図4〜図10は、その状態を示す図であ
る。これらの図において、Pi、Pjは、それぞれプロ
セッサエレメントであり、各プロセッサエレメントP
i、Pjの時間軸で太線で示した長さが、共有バス30
上を流れる(放送される)信号を、監視部14が監視す
る時間を示している。
FIGS. 4 to 10 are diagrams showing the state. In these figures, Pi and Pj are processor elements, respectively, and each processor element P
The length indicated by the thick line on the time axis of i, Pj is the shared bus 30
The time when the monitoring unit 14 monitors a signal flowing (broadcasting) thereover is shown.

【0036】[1]同一ブロックに対する複数のリード
・ミスが同時に起きた場合(図4) また、図4中、“read miss”とは、プロセッ
サがリードミスを起こしたことを表し、“RM”とはリ
ードミス信号、“SH”は共有応答、“shared”
はキャッシュメモリの状態がShared Clean
になったことを表している。(a)の場合は、プロセッ
サエレメントPiからリードミス信号がプロセッサエレ
メントPjに届かないうちに、プロセッサエレメントP
j側から同一ブロックに対してリードミス信号が出力さ
れた場合であり、(b)の場合は、プロセッサエレメン
トPiからリードミス信号がプロセッサエレメントPj
に届いた後、プロセッサエレメントPj側からリードミ
ス信号が出力された場合である。このような二つのパタ
ーンの場合、共にリードミス信号を受けたプロセッサP
iは共有にする応答SHを返し、自分の状態を「Sha
red Clean」にする。
[1] When a plurality of read misses occur simultaneously for the same block (FIG. 4) In FIG. 4, "read miss" indicates that the processor has made a read miss, and "RM" Is a read miss signal, “SH” is a shared response, “shared”
Indicates that the state of the cache memory is Shared Clean
It has become. In the case of (a), before the read miss signal from the processor element Pi reaches the processor element Pj, the processor element P
This is the case where a read miss signal is output from the j side to the same block. In the case of (b), the read miss signal is output from the processor element Pi to the processor element Pj.
, A read miss signal is output from the processor element Pj side. In the case of such two patterns, the processor P which has both received the read miss signal
i returns a response SH to be shared, and changes its state to “Sha
red Clean ".

【0037】即ち、これらプロセッサエレメントPi、
Pjは、リードミス信号を送出後、対応するデータのブ
ロックを他のプロセッサエレメントのキャッシュメモリ
12あるいはメインメモリ20から受け取るが、いずれ
の場合もこのブロックを共有し、かつメインメモリ20
のブロックとも一致しているため、「SharedCl
ean」となるものである。
That is, these processor elements Pi,
After transmitting the read miss signal, Pj receives the corresponding block of data from the cache memory 12 or the main memory 20 of another processor element. In either case, Pj shares this block and
"SharedCl"
ean ”.

【0038】[2]同一ブロックに対するリードミスと
ライトヒットが同時に起きた場合(図5) また、図5中、“write hit”とは、プロセッ
サがライトヒットを起こしたことを表し、“WH”とは
ライトヒット信号、“IV”は無効化応答を示してい
る。そして、“shared”はキャッシュメモリの状
態がSharedCleanであることを表し、更に、
“dirty”はキャッシュメモリの状態がdirty
になり、“invalid”は、キャッシュメモリの状
態がinvalidになったことを表している。
[2] When Read Miss and Write Hit for the Same Block Occur Simultaneously (FIG. 5) In FIG. 5, "write hit" indicates that the processor has caused a write hit, and "WH" Indicates a write hit signal, and “IV” indicates an invalidation response. "Shared" indicates that the state of the cache memory is Shared Clean, and further,
"Dirty" indicates that the state of the cache memory is dirty.
And "invalid" indicates that the state of the cache memory is invalid.

【0039】ここで、(a)は、プロセッサエレメント
Piからライトヒット信号がプロセッサエレメントPj
に届かないうちに、プロセッサエレメントPj側から同
一ブロックに対してリードミス信号が出力された場合で
あり、(b)の場合は、プロセッサエレメントPiから
ライトヒット信号がプロセッサエレメントPjに届いた
後、プロセッサエレメントPj側からリードミス信号が
出力された場合である。
Here, (a) shows that a write hit signal from the processor element Pi is output from the processor element Pj.
In this case, a read miss signal is output from the processor element Pj side to the same block before the write hit signal reaches the processor element Pj before the write hit signal reaches the processor element Pj. This is a case where a read miss signal is output from the element Pj side.

【0040】このような二つのパターンの場合、共にリ
ードミス信号を受けたプロセッサPiは無効化する応答
IVを返し、自分の状態を「Dirty」にする。ま
た、プロセッサエレメントPjは、無効化応答を受けた
ら、自分の状態を「Invalid」にする。即ち、プ
ロセッサエレメントPiのキャッシュメモリ12には、
新しいデータが書き込まれたため、そのブロックはメイ
ンメモリ20のブロックとは一致しなくなり、また、同
一のブロックを他のキャッシュメモリ12が持っていた
場合、そのデータは無効となるものである。
In the case of such two patterns, the processor Pi, which has both received the read miss signal, returns a response IV for invalidation and changes its state to "Dirty". When receiving the invalidation response, the processor element Pj changes its own state to “Invalid”. That is, in the cache memory 12 of the processor element Pi,
Since the new data has been written, the block does not match the block of the main memory 20, and if another cache memory 12 has the same block, the data becomes invalid.

【0041】尚、プロセッサエレメントPjは、監視時
間後には、キャッシュメモリ12の状態が「Inval
id」となるため、その後、再度リードミス信号を送出
することになる。
After the monitoring time, the processor element Pj changes the state of the cache memory 12 to "Inval.
Then, the read miss signal is transmitted again.

【0042】[3]同一ブロックに対するリードミスと
ライトミスが同時に起きた場合(図6) また、図6中、“write miss”はプロセッサ
がライトミスを起こしたことを表し、“WM”はライト
ミス信号を表している。ここで、(a)、(b)は、上
記[2]の場合と同様に、プロセッサエレメントPiか
らライトミス信号がプロセッサエレメントPjに届かな
いうちに、プロセッサエレメントPj側から同一ブロッ
クに対してリードミス信号が出力された場合、およびプ
ロセッサエレメントPiからライトミス信号がプロセッ
サエレメントPjに届いた後、プロセッサエレメントP
j側からリードミス信号が出力された場合である。ま
た、(c)は、プロセッサエレメントPjからのリード
ミス信号が先にプロセッサエレメントPiに届いた場合
である。
[3] Case where a read miss and a write miss occur in the same block at the same time (FIG. 6) In FIG. 6, “write miss” indicates that the processor has made a write miss, and “WM” is a write miss. Represents a signal. Here, (a) and (b) show a read miss from the processor element Pj side to the same block before the write miss signal from the processor element Pi reaches the processor element Pj, as in the case of the above [2]. When a signal is output, or after a write miss signal reaches processor element Pj from processor element Pi, processor element P
This is a case where a read miss signal is output from the j side. (C) is a case where the read miss signal from the processor element Pj reaches the processor element Pi first.

【0043】このような場合は、上記[2]の場合と同
様に、全て、プロセッサエレメントPiはプロセッサP
jを無効化する応答を返し、プロセッサエレメントPj
は無効化応答を受けたら、自分の状態を「Invali
d」にする。尚、この場合、プロセッサエレメントPj
は、監視時間の間に、プロセッサエレメントPi以外の
プロセッサエレメントあるいはメインメモリ20からリ
ードミスに対するデータを受け取ることが考えられる
が、プロセッサエレメントPi以外のデータは正しくな
いデータであるため、「Invalid」とするもので
ある。
In such a case, as in the case of the above [2], all the processor elements Pi
A response to invalidate j is returned, and the processor element Pj
Receives the invalidation response, changes its state to “Invali
d ”. In this case, the processor element Pj
During the monitoring time, it is conceivable that data for a read miss is received from a processor element other than the processor element Pi or the main memory 20, but since the data other than the processor element Pi is incorrect data, it is set to "Invalid". Things.

【0044】また、プロセッサエレメントPiは、監視
時間内に、後述するような優先順位の高いプロセッサエ
レメントからのライトヒットまたはライトミスといった
事象発生の通知を受けなかった場合は、自分の状態を
「Dirty」とする。
If the processor element Pi does not receive a notification of occurrence of an event such as a write hit or a write miss from a processor element having a higher priority as described later within the monitoring time, the processor element Pi changes its state to “Dirty”. ".

【0045】[4]同一ブロックに対する複数のライト
ヒットまたはライトミスが同時に起きた場合(図7〜図
9) 図に示すように、(a)〜(h)の八つのパターンがあ
り、(a)とそれ以外に分類できる。即ち、(a)のパ
ターンは、ライトヒットの遷移中であるプロセッサPi
が、他のプロセッサエレメントであるプロセッサエレメ
ントPjからライトヒット信号を受けた場合で、この場
合は、プロセッサの優先度に従う。例えば、受けた信号
が自プロセッサエレメントより高い優先度の場合、自分
の状態を「Invalid」にし、受けた信号が自プロ
セッサエレメントより低い優先度の場合は、受けた信号
を無視する。
[4] Simultaneous occurrence of a plurality of write hits or write misses for the same block (FIGS. 7 to 9) As shown in the figure, there are eight patterns (a) to (h). ) And others. That is, the pattern of (a) indicates that the processor Pi in transition of the write hit is
Is a case where a write hit signal is received from the processor element Pj which is another processor element, and in this case, it follows the priority of the processor. For example, if the received signal has a higher priority than the own processor element, the status of the own signal is set to "Invalid". If the received signal has a lower priority than the own processor element, the received signal is ignored.

【0046】図7の(a)〜(h)に示す例では、プロ
セッサエレメントの優先度はPi>Pjとした場合であ
り、従って、(a)ではプロセッサエレメントPiは自
分の状態を「Dirty」とし、プロセッサエレメント
Pjは自分の状態を「Invalid」とする。
In the examples shown in FIGS. 7A to 7H, the priority of the processor element is set to Pi> Pj. Therefore, in FIG. 7A, the processor element Pi changes its state to “Dirty”. The processor element Pj sets its state to “Invalid”.

【0047】また、(b)のパターンは、プロセッサエ
レメントPiが「Shared Clean」の状態で
ライトヒットし、そのライトヒット信号をプロセッサエ
レメントPjが受け、その後、プロセッサエレメントP
jがライトミス信号を送出する場合である。この場合、
プロセッサエレメントPiは、監視時間内に自分より優
先度の高い他のプロセッサエレメントからライトヒット
やライトミスといった事象発生の通知を受けなければ、
自分の状態を「Dirty」とし、プロセッサエレメン
トPjは、監視時間後、自分の状態を「Invali
d」とする。
In the pattern (b), a write hit occurs when the processor element Pi is in the “Shared Clean” state, the processor element Pj receives the write hit signal, and thereafter the processor element Pj receives the write hit signal.
j is a case where a write miss signal is transmitted. in this case,
If the processor element Pi does not receive a notification of occurrence of an event such as a write hit or a write miss from another processor element having a higher priority than itself during the monitoring time,
The state is set to “Dirty”, and the processor element Pj sets the state to “Invalid” after the monitoring time.
d ”.

【0048】次に、(c)のパターンは、プロセッサエ
レメントPiがライトミス、プロセッサエレメントPj
がライトヒットした場合である。この場合、プロセッサ
エレメントPiの方が優先度が高いため、プロセッサエ
レメントPjに対して無効化信号を送出し、自分の状態
を「Dirty」とする。
Next, the pattern (c) shows that the processor element Pi is a write miss and the processor element Pj
Is a light hit. In this case, since the processor element Pi has a higher priority, an invalidation signal is sent to the processor element Pj, and its state is set to "Dirty".

【0049】また、(d)のパターンは、プロセッサエ
レメントPiがライトヒット、プロセッサエレメントP
jがライトミスであった例である。この場合も、優先度
の高いプロセッサエレメントPiが、プロセッサエレメ
ントPjに対して無効化応答を返し、自分の状態を「D
irty」とする。
The pattern (d) shows that the processor element Pi is a write hit and the processor element P
j is an example of a write miss. Also in this case, the processor element Pi having a higher priority returns an invalidation response to the processor element Pj and changes its state to "D".
irty ”.

【0050】そして、(e)のパターンは、上記(d)
の場合とは逆に、プロセッサエレメントPiがライトミ
ス、プロセッサエレメントPjがライトヒットであった
例である。しかし、この場合も、優先度によって状態遷
移が行われるため、優先度の高いプロセッサエレメント
Piが、プロセッサエレメントPjに対して無効化応答
を返し、自分の状態を「Dirty」とする。
Then, the pattern of (e) corresponds to the above (d)
In this case, the processor element Pi is a write miss and the processor element Pj is a write hit. However, also in this case, since the state transition is performed according to the priority, the processor element Pi having a higher priority returns an invalidation response to the processor element Pj, and sets its own state to “Dirty”.

【0051】更に、(f)、(g)、(h)のパターン
は、プロセッサエレメントPi、Pjが共にライトミス
の場合であり、(f)がほぼ同時に発生した場合、
(g)は、プロセッサエレメントPiの方が先に発生
し、そのライトミス信号がプロセッサエレメントPjの
ライトミス発生より早く届いた場合、(h)は(g)と
逆の場合である。これらの例でも、優先度の高いプロセ
ッサエレメントPiは相手のプロセッサエレメントPj
を無効化する応答を返し、自分の状態を「Dirty」
とする。
Further, the patterns (f), (g) and (h) are for the case where both the processor elements Pi and Pj are write misses, and when (f) occurs almost simultaneously,
(G) is a case where the processor element Pi occurs earlier and its write miss signal arrives earlier than a write miss occurrence of the processor element Pj, and (h) is a case opposite to (g). Also in these examples, the processor element Pi having the higher priority is set to the processor element Pj of the partner.
Returns a response to invalidate the status and changes the status to "Dirty".
And

【0052】[5]同一ブロックに対するリードミスま
たはライトミスとスワップアウトが同時に起きた場合
(図10) (a)および(b)は、プロセッサエレメントPiにリ
ードミスまたはライトミスが起き、ほぼ同時刻にプロセ
ッサエレメントPjにスワップアウトが起きた例であ
る。このような場合は、プロセッサエレメントの優先度
には無関係に、スワップアウトの事象が優先されるた
め、プロセッサエレメントPiのリードミスまたはライ
トミスに対するメインメモリ20から転送されたデータ
ブロックは無効となり、監視時間の後、プロセッサエレ
メントPiは、再度リードミス信号またはライトミス信
号を送出することになる。尚、スワップアウトしたプロ
セッサエレメントPjは、そのキャッシュメモリ12に
データブロックが存在しない状態となる。
[5] When a read miss or write miss and a swap-out occur simultaneously in the same block (FIG. 10) In (a) and (b), a read miss or a write miss occurs in the processor element Pi, and the processor This is an example in which a swap-out has occurred in the element Pj. In such a case, regardless of the priority of the processor element, the event of the swap-out is prioritized, so that the data block transferred from the main memory 20 for the read miss or the write miss of the processor element Pi becomes invalid, and the monitoring time After that, the processor element Pi sends out a read miss signal or a write miss signal again. The processor element Pj that has been swapped out has no data block in its cache memory 12.

【0053】このように、上記実施例では、システムの
最大遅れ時間は、共有バス30からの信号を監視し、か
つ予め決められたルールに従ってキャッシュメモリ12
の状態遷移を決定するようにしたので、例えば、従来の
図2で示した例でもキャッシュメモリ2は正しいデータ
を受け取ることができる。即ち、図2の例ではキャッシ
ュメモリ2は、m時間後にメインメモリ3よりデータを
受け取るが、このデータは監視時間内に入力されるキャ
ッシュメモリ1からのスワップアウト信号により、無効
化される。そして、キャッシュメモリ2は、その後再度
リードミス信号を送出し、このリードミス信号によっ
て、メインメモリ3から正しいデータが送られてくるも
のである。
As described above, in the above embodiment, the maximum delay time of the system is determined by monitoring the signal from the shared bus 30 and determining the maximum delay time of the cache memory 12 according to a predetermined rule.
Is determined, the cache memory 2 can receive correct data, for example, even in the conventional example shown in FIG. That is, in the example of FIG. 2, the cache memory 2 receives data from the main memory 3 after m hours, but this data is invalidated by a swap-out signal from the cache memory 1 input within the monitoring time. Then, the cache memory 2 sends a read miss signal again, and correct data is sent from the main memory 3 by the read miss signal.

【0054】尚、上記実施例では、マルチプロセッサシ
ステムにおけるキャッシュメモリの無矛盾化プロトコル
としてイリノイプロトコルを例にとって説明したが、こ
れに限定されるものではなく、バークレイプロトコル
等、種々のプロトコルでも適用可能である。
In the above embodiment, the Illinois protocol has been described as an example of a protocol for making the cache memory consistent in the multiprocessor system. However, the present invention is not limited to this, and various protocols such as the Berkeley protocol can be applied. is there.

【0055】[0055]

【発明の効果】以上説明したように、本発明のキャッシ
ュメモリ制御装置によれば、プロセッサエレメントの操
作群を分割し、信号送出時のみネットワークを専有する
同期単位とし、かつ、要求発生からその要求に対する応
答が受信されるのに必要な最大時間はネットワークから
の入力信号を監視し、この監視した時間内に入力される
信号と予め定められた優先順位に基づくルールに従って
キャッシュメモリのデータ状態を決定するようにしたの
で、ネットワークの利用効率が向上し、従って、大規模
なシステム用の大規模バスや汎用的なネットワーク結合
網に置き換え可能となり、システム全体の性能向上を期
待することができる。
As described above, according to the cache memory control device of the present invention, the operation group of the processor element is divided, the synchronization unit exclusively occupies the network only at the time of signal transmission, and the request is generated from the request generation. Monitors the input signal from the network for the maximum time required to receive a response to, and determines the data state of the cache memory according to a rule based on a signal input within the monitored time and a predetermined priority. As a result, the utilization efficiency of the network is improved, so that it can be replaced with a large-scale bus for a large-scale system or a general-purpose network connection network, and an improvement in the performance of the entire system can be expected.

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

【図1】本発明のキャッシュメモリ制御装置のブロック
図である。
FIG. 1 is a block diagram of a cache memory control device of the present invention.

【図2】従来の問題点を説明するためのマルチプロセッ
サシステムの要部構成図である。
FIG. 2 is a main part configuration diagram of a multiprocessor system for explaining a conventional problem.

【図3】本発明のキャッシュメモリ制御装置に関わるイ
リノイプロトコルの状態遷移の説明図である。
FIG. 3 is an explanatory diagram of a state transition of an Illinois protocol relating to the cache memory control device of the present invention.

【図4】本発明のキャッシュメモリ制御装置における同
一ブロックに対する複数のリード・ミスが同時に起きた
場合の説明図である。
FIG. 4 is an explanatory diagram when a plurality of read misses occur simultaneously for the same block in the cache memory control device of the present invention.

【図5】本発明のキャッシュメモリ制御装置における同
一ブロックに対するリードミスとライトヒットが同時に
起きた場合の説明図である。
FIG. 5 is an explanatory diagram when a read miss and a write hit for the same block occur simultaneously in the cache memory control device of the present invention.

【図6】本発明のキャッシュメモリ制御装置における同
一ブロックに対するリードミスとライトミスが同時に起
きた場合の説明図である。
FIG. 6 is an explanatory diagram of a case where a read miss and a write miss occur simultaneously for the same block in the cache memory control device of the present invention.

【図7】本発明のキャッシュメモリ制御装置における同
一ブロックに対する複数のライトヒットまたはライトミ
スが同時に起きた場合(その1)の説明図である。
FIG. 7 is an explanatory diagram when a plurality of write hits or write misses to the same block occur simultaneously (part 1) in the cache memory control device of the present invention.

【図8】本発明のキャッシュメモリ制御装置における同
一ブロックに対する複数のライトヒットまたはライトミ
スが同時に起きた場合(その2)の説明図である。
FIG. 8 is an explanatory diagram of a case where a plurality of write hits or write misses to the same block occur simultaneously (No. 2) in the cache memory control device of the present invention.

【図9】本発明のキャッシュメモリ制御装置における同
一ブロックに対する複数のライトヒットまたはライトミ
スが同時に起きた場合(その3)の説明図である。
FIG. 9 is an explanatory diagram of a case where a plurality of write hits or write misses to the same block occur simultaneously (part 3) in the cache memory control device of the present invention.

【図10】本発明のキャッシュメモリ制御装置における
同一ブロックに対するリードミスまたはライトミスとス
ワップアウトが同時に起きた場合の説明図である。
FIG. 10 is an explanatory diagram of a case where a read miss or a write miss and a swap-out occur simultaneously for the same block in the cache memory control device of the present invention.

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

10−1〜10−n プロセッサエレメント 11−1〜11−n プロセッサ 12−1〜12−n キャッシュメモリ 13−1〜13−n 同期単位制御部 14−1〜14−n 監視部 15−1〜15−n 状態管理部 10-1 to 10-n Processor element 11-1 to 11-n Processor 12-1 to 12-n Cache memory 13-1 to 13-n Synchronization unit control unit 14-1 to 14-n Monitoring unit 15-1 15-n state management unit

───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 7 , DB name) G06F 12/08

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 それぞれがプロセッサとキャッシュメモ
リとを備えたプロセッサエレメントを放送機能を有する
ネットワークに接続してなるマルチプロセッサシステム
のキャッシュメモリ制御装置において、 前記それぞれのプロセッサエレメントは、 各プロセッサエレメントの信号送出時のみ前記ネットワ
ークを専有する同期単位制御部と、 前記プロセッサエレメントが前記ネットワークを専有す
る権利を解放後、当該プロセッサエレメントからの要求
に対する応答が受信されるのに必要な最大時間だけ前記
ネットワークからの入力信号を監視する監視部と、 前記監視部による監視時間の間に、入力される信号の内
と、予め決められた動作の優先順位と、前記複数のプ
ロセッサエレメントの各々の優先順位とに従って、前記
要求を発生させた自キャッシュメモリにおけるデータの
状態を決定する状態管理部とを備えたキャッシュメモリ
制御装置。
1. A cache memory control device for a multiprocessor system, wherein processor elements each having a processor and a cache memory are connected to a network having a broadcasting function, wherein each of the processor elements includes a signal of each processor element. A synchronization unit control unit that occupies the network only at the time of transmission; and after the processor element releases the right to occupy the network, the synchronization unit control unit transmits the synchronization unit control unit from the network for a maximum time necessary for receiving a response to a request from the processor element. A monitoring unit that monitors the input signal of the plurality of input signals, a content of an input signal, a priority of a predetermined operation, and the plurality of programs during a monitoring time by the monitoring unit.
A cache memory control device comprising: a state management unit that determines the state of data in the own cache memory that has generated the request according to the priority of each of the processor elements .
JP05215299A 1993-08-06 1993-08-06 Cache memory controller Expired - Fee Related JP3097941B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05215299A JP3097941B2 (en) 1993-08-06 1993-08-06 Cache memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05215299A JP3097941B2 (en) 1993-08-06 1993-08-06 Cache memory controller

Publications (2)

Publication Number Publication Date
JPH0749809A JPH0749809A (en) 1995-02-21
JP3097941B2 true JP3097941B2 (en) 2000-10-10

Family

ID=16670026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05215299A Expired - Fee Related JP3097941B2 (en) 1993-08-06 1993-08-06 Cache memory controller

Country Status (1)

Country Link
JP (1) JP3097941B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5722264B2 (en) * 2012-03-23 2015-05-20 株式会社日立ハイテクノロジーズ Data processing apparatus and data capacity increase suppressing method

Also Published As

Publication number Publication date
JPH0749809A (en) 1995-02-21

Similar Documents

Publication Publication Date Title
KR100465583B1 (en) Non-uniform memory access(numa) data processing system that speculatively forwards a read request to a remote processing node and communication method in the system
US5958019A (en) Multiprocessing system configured to perform synchronization operations
US8190820B2 (en) Optimizing concurrent accesses in a directory-based coherency protocol
US5796977A (en) Highly pipelined bus architecture
KR100324975B1 (en) Non-uniform memory access(numa) data processing system that buffers potential third node transactions to decrease communication latency
US7177987B2 (en) System and method for responses between different cache coherency protocols
JP3696012B2 (en) Write operation sequencing bus bridge
EP0640923A1 (en) System and method to notify an empty status from peer cache units to global storage control unit in a multiprocessor data processing system
JPH0776942B2 (en) Multiprocessor system and data transmission device thereof
KR20000022712A (en) Non-uniform memory access(numa) data processing system that speculatively issues requests on a node interconnect
US20090113138A1 (en) Combined Response Cancellation for Load Command
US6922755B1 (en) Directory tree multinode computer system
EP1701267B1 (en) Address snoop method and multi-processor system
US7149852B2 (en) System and method for blocking data responses
US6295583B1 (en) Method and apparatus for resolving probes in multi-processor systems which do not use external duplicate tags for probe filtering
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US6826643B2 (en) Method of synchronizing arbiters within a hierarchical computer system
JP3097941B2 (en) Cache memory controller
US6735654B2 (en) Method and apparatus for efficiently broadcasting transactions between an address repeater and a client
JPH0744459A (en) Cache control method and cache controller
US6889343B2 (en) Method and apparatus for verifying consistency between a first address repeater and a second address repeater
US6877055B2 (en) Method and apparatus for efficiently broadcasting transactions between a first address repeater and a second address repeater
US20020133652A1 (en) Apparatus for avoiding starvation in hierarchical computer systems that prioritize transactions
JP2006209797A (en) Cache coherence device
JPH11120157A (en) Method for high-speed communication within parallel computer system and parallel computer system operated by the method

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees