JPH11316712A - Cache device, consistency controller, protocol conversion device and multiprocessor device connecting the same and plural processors - Google Patents

Cache device, consistency controller, protocol conversion device and multiprocessor device connecting the same and plural processors

Info

Publication number
JPH11316712A
JPH11316712A JP11055438A JP5543899A JPH11316712A JP H11316712 A JPH11316712 A JP H11316712A JP 11055438 A JP11055438 A JP 11055438A JP 5543899 A JP5543899 A JP 5543899A JP H11316712 A JPH11316712 A JP H11316712A
Authority
JP
Japan
Prior art keywords
cache
memory block
data
write
consistency control
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.)
Withdrawn
Application number
JP11055438A
Other languages
Japanese (ja)
Inventor
Masafumi Takahashi
雅史 高橋
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.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP11055438A priority Critical patent/JPH11316712A/en
Publication of JPH11316712A publication Critical patent/JPH11316712A/en
Withdrawn legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a multiprocessor device permitting the existence of a plurality of writing rights for the same memory block. SOLUTION: A plurality of cache devices 2a and 2b connected to a plurality of processors 1a and 1b, a consistency control part 5 connected to a plurality of cache devices 2a and 2b and a main storage 3 are installed in a multiprocessor device. The cache devices 2a or 2b caches data accessed by the cache device 2a or 2b, manages cached data in a memory block unit and emits a pertinent memory block to the consistency control part 5 when the rewriting request of the memory block is given from the consistency control part 5. The consistency control part 5 synthesizes data in the memory block, which is received from the cache 2a or 2b, and stores the synthesized memory block in the main storage 3.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、主記憶を介してプ
ロセッサ間で情報交換を行ないながら処理を行なうマル
チプロセッサ装置に関し、特に、弱いメモリコンシステ
ンシモデルを採用するマルチプロセッサ装置、それに使
用されるキャッシュ装置、コンシステンシ制御装置およ
びプロトコル変換装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor which performs processing while exchanging information between processors via a main memory, and more particularly to a multiprocessor which employs a weak memory consistency model and is used in the multiprocessor. The present invention relates to a cache device, a consistency control device, and a protocol conversion device.

【0002】[0002]

【従来の技術】近年、マルチメディア処理や高精細画像
処理などのさまざまな分野で、プロセッサ性能の向上に
対する要求が高まっている。しかし、現在のLSI(La
rge Scale Integration )製造技術ではデバイスの高速
化にも限度がある。そこで、分散処理方式のマルチプロ
セッサ装置が注目を浴びており、盛んに研究、開発され
ている。
2. Description of the Related Art In various fields such as multimedia processing and high-definition image processing, demands for improving processor performance have been increasing in recent years. However, the current LSI (La
rge Scale Integration) Manufacturing technology has a limit to the speed of devices. Therefore, a multiprocessor device of a distributed processing system is receiving attention and is being actively researched and developed.

【0003】単一のプロセッサを搭載したプロセッサ装
置においては、プロセッサによって参照される確率が高
いデータを格納し、プロセッサのメモリアクセスに高速
に応答できるようにキャッシュを備えている場合が多
い。たとえば、8Kバイトの容量をもつキャッシュが集
積され、システムの性能の向上を可能にしているマイク
ロプロセッサがある。このマイクロプロセッサにおいて
は、キャッシュのメモリ空間を16バイトずつに分割
し、16バイト単位でキャッシュを管理している。この
ようにたとえば16バイトという所定バイト数に分割さ
れたメモリの断片を、以降メモリブロックと呼ぶことに
する。ライトバックキャッシュを採用するプロセッサ装
置においては、プロセッサのストア命令による更新処理
が、キャッシュ内のメモリブロックのコピーの更新のみ
で完了する。キャッシュ内の更新されたメモリブロック
のコピーは、プロセッサからの指示またはキャッシュ容
量の不足によって引き起こされる入替え処理によって主
記憶に書戻される。したがって、プロセッサによるスト
ア命令の実行ごとに直接主記憶を更新するライトスルー
キャッシュを採用するプロセッサ装置に比べて一般的に
性能が向上することになる。しかし、書き戻しが起こる
までは、主記憶のメモリブロックのデータと、キャッシ
ュ内の更新された当該メモリブロックのコピーとは内容
が不一致となっている。
[0003] A processor device equipped with a single processor often stores data that is highly likely to be referenced by the processor, and is provided with a cache so that it can respond to the memory access of the processor at high speed. For example, there is a microprocessor in which a cache having a capacity of 8 Kbytes is integrated, and the performance of the system can be improved. In this microprocessor, the memory space of the cache is divided into 16 bytes, and the cache is managed in units of 16 bytes. Such a memory fragment divided into a predetermined number of bytes, for example, 16 bytes, is hereinafter referred to as a memory block. In a processor device that employs a write-back cache, an update process by a store instruction of the processor is completed only by updating a copy of a memory block in the cache. The updated copy of the memory block in the cache is written back to the main memory by an instruction from the processor or a replacement process caused by a shortage of the cache capacity. Therefore, performance is generally improved as compared with a processor device employing a write-through cache that directly updates the main memory every time a processor executes a store instruction. However, until the write-back occurs, the contents of the data of the memory block in the main memory and the updated copy of the memory block in the cache do not match.

【0004】複数のプロセッサが搭載されたマルチプロ
セッサ装置においても、同様にキャッシュが採用されて
いる。マルチプロセッサ装置においては、各プロセッサ
に固有のキャッシュと、複数のプロセッサで共有される
キャッシュの2種類のキャッシュが採用されている。以
後、各プロセッサに固有のキャッシュを単にキャッシュ
と、複数のプロセッサで共有されるキャッシュを補助キ
ャッシュと呼ぶことにする。マルチプロセッサ装置にお
けるキャッシュは、メモリアクセスに高速に応答するだ
けでなく、プロセッサと主記憶とを相互に結ぶ結合網の
トラフィックを削減する機能をも果たしている。
[0004] A cache is similarly employed in a multiprocessor device equipped with a plurality of processors. In a multiprocessor device, two types of caches are employed: a cache unique to each processor and a cache shared by a plurality of processors. Hereinafter, a cache unique to each processor is simply called a cache, and a cache shared by a plurality of processors is called an auxiliary cache. The cache in the multiprocessor device not only responds to memory access at high speed, but also has a function of reducing traffic on the interconnection network interconnecting the processor and the main memory.

【0005】しかし、キャッシュの採用により、同一の
メモリブロックのコピーが複数のキャッシュに存在する
ことになるため、プロセッサによるキャッシュ内のデー
タの更新により、主記憶のデータとキャッシュ内のコピ
ーとの間の食い違いの発生、いわゆるキャッシュコンシ
ステンシの問題が発生する。マルチプロセッサ装置が正
しく動作するためには、あるプロセッサによるキャッシ
ュ内のデータの更新が他のプロセッサによるデータの参
照に正しく反映されなければならない。ここで、あるプ
ロセッサによるデータの更新が他のプロセッサによる参
照に正しく反映されている状態をメモリコンシステンシ
が保たれている状態といい、また、複数のプロセッサに
よる一連のメモリアクセスによってどのような結果が得
られるかを規定し、メモリコンシステンシが保たれるよ
うにプログラムを記述する基礎となるモデルをメモリコ
ンシステンシモデルという。
However, the use of the cache means that a copy of the same memory block exists in a plurality of caches. Therefore, when data in the cache is updated by the processor, the copy between the data in the main memory and the copy in the cache is performed. This causes a problem of so-called cache consistency. In order for a multiprocessor device to operate properly, an update of data in a cache by one processor must be correctly reflected in a reference to data by another processor. Here, a state in which data update by one processor is correctly reflected in reference by another processor is called a state in which memory consistency is maintained, and what kind of result is obtained by a series of memory accesses by a plurality of processors. Is defined as a memory consistency model, and a model on which a program is written so as to maintain a memory consistency is called a memory consistency model.

【0006】従来、メモリコンシステンシを保証する方
法は多数存在する。メモリコンシステンシを保証する方
法の分類の1つとして、無効化による方法とアップデー
トによる方法とに分類することが挙げられる。無効化に
よる方法は、いずれかのプロセッサによってキャッシュ
内のメモリブロックのコピーが更新された場合に、それ
以外のキャッシュのコピーを消去する方法である。それ
以降、プロセッサがキャッシュから無効化されたメモリ
ブロックを参照しようとしたときに、メモリブロックの
最新の値に更新されたコピーを有するキャッシュから直
接、または主記憶や補助キャッシュを経由して供給され
る。また、アップデートによる方法は、いずれかのキャ
ッシュ内のメモリブロックのコピーが更新された場合
に、それ以外のキャッシュのメモリブロックのコピーも
更新する方法である。いずれの方法においても、プロセ
ッサはキャッシュから当該メモリブロックを読出すこと
によって、新しいメモリブロックの内容を参照すること
ができる。
[0006] Conventionally, there are many methods for guaranteeing memory consistency. One of the classifications of the method of guaranteeing the memory consistency is to classify the method into a method by invalidation and a method by update. The invalidation method is a method in which, when a copy of a memory block in a cache is updated by one of the processors, the other copy of the cache is erased. Thereafter, when the processor attempts to reference the invalidated memory block from the cache, it is supplied directly from the cache having the updated copy of the memory block to the latest value, or via the main memory or the auxiliary cache. You. The update method is a method in which, when a copy of a memory block in any cache is updated, a copy of a memory block in another cache is also updated. In either method, the processor can refer to the contents of the new memory block by reading the memory block from the cache.

【0007】他の分類方法として、スヌープ機構による
方法とディレクトリ機構による方法とに分類することが
挙げられる。スヌープ機構は、バス結合マルチプロセッ
サ装置において広く用いられている機構であり、キャッ
シュがメモリブロックを更新または主記憶から読込むと
きに、その要求をバスを介してブロードキャストする。
そして、他のキャッシュはその要求を監視し、必要に応
じてメモリブロックのコピーの書き戻し、無効化、また
はアップデートを行なう。一方、ディレクトリ機構は、
それぞれのメモリブロックのコピーがどのキャッシュに
存在するかを管理しており、必要に応じて書き戻し、無
効化、またはアップデートを行なう。
As another classification method, there is a classification into a method using a snoop mechanism and a method using a directory mechanism. The snoop mechanism is a mechanism widely used in a bus-coupled multiprocessor device, and broadcasts a request over a bus when a cache updates a memory block or reads from a main memory.
Other caches then monitor the request and write back, invalidate, or update the copy of the memory block as needed. On the other hand, the directory mechanism
It manages which cache has a copy of each memory block and writes back, invalidates, or updates as needed.

【0008】図50は、特開平5−61770号公報に
開示されたマルチプロセッサ装置におけるキャッシュが
備えるエントリの構造を示す図である。このエントリの
中で、書込権フラグは排他的な書込権の管理のために使
用され、それぞれのメモリブロックについてこの書込権
フラグがセットされたキャッシュエントリがマルチプロ
セッサ装置中に2つ以上存在しないように制御が行なわ
れる。また、プロセッサはキャッシュ内のキャッシュエ
ントリにおける書込権フラグがセットされていなけれ
ば、このメモリブロックのコピーを更新することができ
ない。したがって、このマルチプロセッサ装置において
は、プロセッサがキャッシュ内のメモリブロックのコピ
ーを更新するに先立って、そのメモリブロックへの排他
的書込権を獲得し、そのメモリブロックへの排他的書込
権を持たないキャッシュが格納する当該メモリブロック
のコピーを無効化する。これにより、更新されたメモリ
ブロックのコピーは、排他的書込権を持つただ1つのキ
ャッシュにのみ存在することが保証され、メモリコンシ
ステンシが保証される。
FIG. 50 is a diagram showing a structure of an entry provided in a cache in a multiprocessor device disclosed in Japanese Patent Application Laid-Open No. 5-61770. In this entry, the write right flag is used for exclusive write right management. For each memory block, two or more cache entries in which this write right flag is set in the multiprocessor device. Control is performed so that it does not exist. Further, the processor cannot update this copy of the memory block unless the write right flag in the cache entry in the cache is set. Therefore, in this multiprocessor device, before the processor updates the copy of the memory block in the cache, the processor acquires the exclusive write right to the memory block, and acquires the exclusive write right to the memory block. Invalidate the copy of the memory block stored in the cache that does not have it. This guarantees that the updated copy of the memory block exists only in one cache having exclusive write right, thereby guaranteeing the memory consistency.

【0009】プロセッサがアクセスするデータのサイズ
は、ほとんどの場合メモリブロックのサイズよりも小さ
い。したがって、別々のプロセッサが同一のメモリブロ
ック内の別データにアクセスするというフォールスシェ
アリングの状態が発生する。上述したマルチプロセッサ
装置においては、このフォールスシェアリングが発生す
ると、たとえそれが別々のデータにアクセスした場合で
あっても、メモリブロック単位でコンシステンシを保証
する処理が行なわれる。
[0009] The size of the data accessed by the processor is in most cases smaller than the size of the memory block. Therefore, a false sharing state occurs in which different processors access different data in the same memory block. In the above-mentioned multiprocessor device, when this false sharing occurs, even if it accesses different data, a process for guaranteeing consistency is performed in memory block units.

【0010】また、「Memory Consistency and Event O
rdering in Scalable Shared-Memory Multiprocessors
」(pp. 15-26, 17th Annual International Symposiu
m onComputer Architecture )においてはプログラムの
流れに着目し、プロセッサのメモリアクセスごとにメモ
リコンシステンシを保証する強いメモリコンシステンシ
モデルが必ずしも必要ないことが示されており、弱いメ
モリコンシステンシモデルが採用されたマルチプロセッ
サ装置が提案されている。しかし、上述した従来のマル
チプロセッサ装置においては、メモリアクセスごとにメ
モリコンシステンシを保証する強いメモリコンシステン
シモデルが採用されている。
[0010] Further, "Memory Consistency and Event O
rdering in Scalable Shared-Memory Multiprocessors
(Pp. 15-26, 17th Annual International Symposiu
Focusing on the flow of programs in the mon on Computer Architecture), it has been shown that a strong memory consistency model that guarantees memory consistency for each memory access of a processor is not always necessary, and a weak memory consistency model was adopted. Multiprocessor devices have been proposed. However, in the conventional multiprocessor described above, a strong memory consistency model that guarantees a memory consistency for each memory access is employed.

【0011】[0011]

【発明が解決しようとする課題】しかし、上述した従来
のマルチプロセッサ装置においてフォールスシェアリン
グが発生すると、更新されるデータを含んだメモリブロ
ックの排他的書込権の移動が起こり、この書込権の移動
によって更新されるデータとは無関係なデータまでが無
効化される。このような不必要なデータの無効化は、メ
モリの平均アクセス時間を増加させる。したがって、従
来のマルチプロセッサ装置は、フォールスシェアリング
によって処理性能が低下するという問題点があった。
However, when false sharing occurs in the above-described conventional multiprocessor device, the exclusive write right of the memory block containing the data to be updated is moved, and this write right is transferred. The data which is not related to the data updated by the movement of the data is invalidated. Such invalidation of unnecessary data increases the average access time of the memory. Therefore, the conventional multiprocessor has a problem that the processing performance is reduced due to false sharing.

【0012】また、他のキャッシュに格納されるメモリ
ブロックのコピーをアップデートすることによりコンシ
ステンシを保つマルチプロセッサ装置においても、フォ
ールスシェアリングが発生すると各キャッシュ内のメモ
リブロックをアップデートするためのメッセージが多数
発生し、処理性能が低下するという問題点があった。こ
れらの問題は、スヌープ機構およびディレクトリ機構の
いずれを採用するマルチプロセッサ装置であっても、メ
モリブロックに対する排他的書込権によってメモリコン
システンシを保証する場合に発生する問題である。
Also, in a multiprocessor device which maintains consistency by updating a copy of a memory block stored in another cache, when false sharing occurs, a message for updating a memory block in each cache is generated. There has been a problem that a large number of such cases occur and the processing performance deteriorates. These problems occur in a multiprocessor device employing either the snoop mechanism or the directory mechanism when guaranteeing memory consistency by exclusive writing right to a memory block.

【0013】さらには、上述したマルチプロセッサ装置
においては、弱いメモリコンシステンシモデルに基づい
てプログラムが作成されているために、コンシステンシ
が保たれていなくても問題が生じない場合でも、各メモ
リアクセスごとにコンシステンシを保つ処理が行なわれ
る。したがって、必要以上のメッセージが発生し、フォ
ールスシェアリングと同様に処理性能を低下させる問題
点があった。
Further, in the above-described multiprocessor device, since a program is created based on a weak memory consistency model, even if no problem occurs even if the consistency is not maintained, each memory access A process for maintaining consistency is performed every time. Therefore, an unnecessary message is generated, and there is a problem that the processing performance is reduced as in the case of false sharing.

【0014】本発明は、上記問題点を解決するためにな
されたものであり、請求項1および2に記載の発明の目
的は、弱いメモリコンシステンシモデルの下で、同一の
メモリブロックに対して複数の書込権の存在を許容する
マルチプロセッサ装置を構築することが可能なキャッシ
ュ装置を提供することである。
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention described in claims 1 and 2 is to provide the same memory block under a weak memory consistency model. An object of the present invention is to provide a cache device capable of constructing a multiprocessor device that allows the existence of a plurality of write rights.

【0015】請求項3〜9に記載の発明の目的は、弱い
メモリコンシステンシモデルの下で、同一のメモリブロ
ックに対して複数の書込権の存在を許容するマルチプロ
セッサ装置を構築することが可能なコンシステンシ制御
装置を提供することである。
[0015] It is an object of the present invention to construct a multiprocessor device which allows a plurality of write rights to the same memory block under a weak memory consistency model. It is to provide a possible consistency control device.

【0016】請求項10および11に記載の発明の目的
は、既存のプロセッサユニットを用いた場合であって
も、同一のメモリブロックに対して複数の書込権の存在
を許容するマルチプロセッサ装置を構築することが可能
なプロトコル変換装置を提供することである。
An object of the present invention described in claims 10 and 11 is to provide a multiprocessor device which permits the existence of a plurality of write rights to the same memory block even when an existing processor unit is used. An object of the present invention is to provide a protocol conversion device that can be constructed.

【0017】請求項12〜17に記載の発明の目的は、
弱いメモリコンシステンシモデルの下で、同一のメモリ
ブロックに対して複数の書込権の存在を許容するマルチ
プロセッサ装置を提供することである。
The objects of the invention described in claims 12 to 17 are:
An object of the present invention is to provide a multiprocessor device that allows the existence of a plurality of write rights to the same memory block under a weak memory consistency model.

【0018】請求項18に記載の発明の目的は、既存の
プロセッサユニットを用いて、同一のメモリブロックに
対して複数の書込権の存在を許容するマルチプロセッサ
装置を提供することである。
An object of the invention described in claim 18 is to provide a multiprocessor device which allows the existence of a plurality of write rights to the same memory block using an existing processor unit.

【0019】[0019]

【課題を解決するための手段】請求項1に記載のキャッ
シュ装置は、プロセッサによってアクセスされるデータ
をキャッシュするためのキャッシュメモリと、キャッシ
ュメモリをメモリブロック単位で管理し、プロセッサに
よってデータワードが更新されたときに、メモリブロッ
ク内のどのデータワードが更新されたかを示す識別情報
を保持し、外部からメモリブロックの書き戻し要求があ
る場合、メモリブロックに当該識別情報を付加して発信
するためのキャッシュ管理手段と、プロセッサから書き
戻し指示を受信し、外部へ書き戻し開始メッセージを発
信するための通信手段とを含む。
According to a first aspect of the present invention, there is provided a cache device for managing a cache memory for caching data accessed by a processor, and managing the cache memory in units of memory blocks, and updating data words by the processor. Holds the identification information indicating which data word in the memory block has been updated, and when there is a write-back request for the memory block from the outside, the identification information is added to the memory block and transmitted. A cache management unit; and a communication unit for receiving a write-back instruction from the processor and transmitting a write-back start message to the outside.

【0020】キャッシュ管理手段は、メモリブロックに
当該識別情報を付加して発信するので、外部でそれを受
信してメモリブロックを統合することが可能となる。ま
た、通信手段は、プロセッサから書き戻し指示を受信
し、外部へ書き戻し開始メッセージを発信するので、外
部において容易にメモリブロックの書き戻し処理の開始
を知ることが可能となる。
Since the cache management means adds the identification information to the memory block and transmits the same, it is possible to externally receive the identification information and integrate the memory blocks. Further, the communication means receives the write-back instruction from the processor and transmits a write-back start message to the outside, so that it is possible to easily know the start of the memory block write-back processing outside.

【0021】請求項2に記載のコンシステンシ制御装置
は、外部から受信したメモリブロックおよびメモリブロ
ック内のどのデータワードが更新されたかを示す識別情
報に基づいて当該メモリブロックのデータを統合するた
めのデータ統合手段と、データ統合手段によって統合さ
れたメモリブロックを主記憶に格納するための格納手段
とを含む。
According to a second aspect of the present invention, there is provided a consistency control apparatus for integrating data of a memory block based on a memory block received from outside and identification information indicating which data word in the memory block has been updated. It includes data integration means and storage means for storing the memory block integrated by the data integration means in the main memory.

【0022】データ統合手段は、メモリブロックおよび
識別情報に基づいて当該メモリブロックのデータを統合
するので、それぞれのプロセッサはキャッシュ内の同一
メモリブロックの別データの内容を更新することが可能
となる。
Since the data integrating means integrates the data in the memory block based on the memory block and the identification information, each processor can update the contents of another data in the same memory block in the cache.

【0023】請求項3に記載のコンシステンシ制御装置
は、外部から受信したメモリブロック内のデータを統合
するためのデータ統合手段と、データ統合手段によって
統合されたメモリブロックを主記憶に格納するための格
納手段とを含む。
According to a third aspect of the present invention, there is provided a consistency control device for integrating data received from outside in a memory block, and for storing the memory block integrated by the data integration unit in a main memory. Storage means.

【0024】データ統合手段は、受信したメモリブロッ
ク内のデータを統合するので、各プロセッサはキャッシ
ュ内の同一メモリブロックの別データの内容を更新する
ことが可能となる。
Since the data integration means integrates the data in the received memory block, each processor can update the contents of another data in the same memory block in the cache.

【0025】請求項4に記載のコンシステンシ制御装置
は、請求項2または3記載のコンシステンシ制御装置で
あって、コンシステンシ制御装置はさらに、外部からす
べての更新されたメモリブロックが到着したことを検出
するための検出手段を含む。
According to a fourth aspect of the present invention, there is provided the consistency control apparatus according to the second or third aspect, wherein the consistency control apparatus further includes an externally-received memory block that has received all updated memory blocks. Detecting means for detecting the

【0026】検出手段は、外部からすべての更新された
メモリブロックが到着したことを検出するので、データ
統合手段は容易にデータ統合を開始することが可能とな
る。
Since the detecting means detects that all the updated memory blocks have arrived from the outside, the data integrating means can easily start data integration.

【0027】請求項5に記載のコンシステンシ制御装置
は、請求項4記載のコンシステンシ制御装置であって、
コンシステンシ制御装置はさらに外部からメモリブロッ
クの書き戻し開始メッセージを受信し、外部へ書き戻し
要求を発信するための通信手段を含む。
A consistency control device according to a fifth aspect is the consistency control device according to the fourth aspect,
The consistency control device further includes a communication unit for receiving a memory block write-back start message from outside and transmitting a write-back request to the outside.

【0028】通信手段は、外部からメモリブロックの書
き戻し開始メッセージを受信し、外部へ書き戻し要求を
発信するので、外部にあるキャッシュ装置からの書き戻
し開始メッセージに応答して複数のキャッシュ装置へ書
き戻し要求を発信することが可能となる。また、結合網
自体がブロードキャストあるいはマルチキャストの機能
を持たない場合にも、書き戻し要求のブロードキャスト
あるいはマルチキャストが可能となる。
The communication means receives the memory block write-back start message from the outside and issues a write-back request to the outside, so that the communication means responds to the write-back start message from the external cache to the plurality of caches. A write-back request can be sent. In addition, even when the connection network itself does not have a broadcast or multicast function, it is possible to broadcast or multicast a write-back request.

【0029】請求項6に記載のコンシステンシ制御装置
は、請求項4または5記載のコンシステンシ制御装置で
あって、データ統合手段は外部から受信したメモリブロ
ックの内容をデータワードごとに書込むためのレジスタ
手段と、外部から受信したメモリブロックの内容とレジ
スタ手段が保持するメモリブロックの内容とをデータワ
ードごとに比較するための比較手段と、比較手段によっ
てデータワードが不一致とされた場合に、以降の当該デ
ータワードのレジスタ手段への書込をマスクするための
マスク手段とを含む。
A consistency control device according to a sixth aspect is the consistency control device according to the fourth or fifth aspect, wherein the data integration means writes the contents of the memory block received from the outside for each data word. Register means for comparing the contents of the memory block received from the outside with the contents of the memory block held by the register means for each data word, and when the data words are not matched by the comparing means, Mask means for masking the subsequent writing of the data word into the register means.

【0030】マスク手段は、比較手段によってデータワ
ードが不一致とされた場合、以降の当該データワードの
レジスタ手段への書込をマスクするので、外部から受信
したメモリブロックの内容のみでメモリブロックのデー
タを統合することが可能となる。したがって、キャッシ
ュがワード単位でデータ更新の管理をする必要がなくな
る。
The mask means masks the subsequent writing of the data word into the register means when the data word is not matched by the comparing means, so that only the contents of the memory block received from the outside are used to mask the data of the memory block. Can be integrated. Therefore, the cache does not need to manage the data update in word units.

【0031】請求項7に記載のコンシステンシ制御装置
は、請求項4または5に記載のコンシステンシ制御装置
であって、データ統合手段は演算結果を保持するための
レジスタ手段と、外部から受信したメモリブロック数を
計数するための計数手段と、レジスタ手段に保持された
内容と外部から受信したメモリブロックの内容とのビッ
トごとの排他的論理和を求め演算結果として出力するた
めの演算手段と、計数手段による計数が偶数の場合、主
記憶の当該メモリブロックを読み出し演算手段に入力す
るための主記憶読出手段とを含む。
According to a seventh aspect of the present invention, there is provided the consistency control apparatus according to the fourth or fifth aspect, wherein the data integration means receives the operation result from the outside and the register means for holding the operation result. Counting means for counting the number of memory blocks; calculating means for calculating an exclusive OR for each bit of the content held in the register means and the content of the memory block received from the outside, and outputting the result as a calculation result; When the counting by the counting means is an even number, a main memory reading means for reading the memory block of the main memory and inputting the read memory block to the calculating means is included.

【0032】演算手段は、レジスタ手段に保持された内
容と外部から受信したメモリブロックの内容とのビット
ごとの排他的論理和を求め演算結果とし、さらに計数手
段による計数が偶数の場合には主記憶読出手段が主記憶
の当該メモリブロックを読み出し演算手段に演算を行な
わせるので、メモリブロックの内容のみで正確にメモリ
ブロックのデータを統合することが可能となる。したが
って、キャッシュがワード単位でデータ更新の管理をす
る必要がなくなる。
The arithmetic means obtains an exclusive OR for each bit of the content held in the register means and the content of the memory block received from the outside, and sets the result as an arithmetic result. Since the memory reading means reads the memory block of the main memory and causes the calculating means to perform the calculation, it is possible to accurately integrate the data of the memory block only with the contents of the memory block. Therefore, the cache does not need to manage the data update in word units.

【0033】請求項8に記載のコンシステンシ制御装置
は、請求項3〜7のいずれかに記載のコンシステンシ制
御装置であって、コンシステンシ制御装置はさらにデー
タ統合手段が受信したメモリブロックのコピーの無効化
を外部へ要求するための無効化要求手段を含む。
The consistency control device according to claim 8 is the consistency control device according to any one of claims 3 to 7, wherein the consistency control device further includes a copy of the memory block received by the data integration means. Invalidation request means for externally requesting invalidation of the program.

【0034】無効化要求手段は、データ統合手段が受信
したメモリブロックのコピーの無効化を外部にあるキャ
ッシュ装置へ要求するので、キャッシュ装置はメモリブ
ロックのコピーが無効であることを容易に知ることがで
きる。
Since the invalidation requesting unit requests the external cache unit to invalidate the copy of the memory block received by the data integration unit, the cache unit can easily recognize that the copy of the memory block is invalid. Can be.

【0035】請求項9に記載のコンシステンシ制御装置
は、請求項3〜8のいずれかに記載のコンシステンシ制
御装置であって、コンシステンシ制御装置はさらにデー
タ統合手段が受信したメモリブロックのアップデートを
外部へ要求するためのアップデート要求手段を含む。
A consistency control device according to claim 9 is the consistency control device according to any one of claims 3 to 8, wherein the consistency control device further updates the memory block received by the data integration means. Update request means for requesting externally.

【0036】アップデート要求手段は、データ統合手段
が受信したメモリブロックのアップデートを外部にある
キャッシュ装置へ要求するので、キャッシュ装置はメモ
リブロックのアップデートを容易に行なえるようにな
る。特に、請求項8との組合せの場合、無効化とアップ
デートとを適切に切り替えてコンシステンシ制御を行な
うことが可能となる。
The update request unit requests the external cache unit to update the memory block received by the data integration unit, so that the cache unit can easily update the memory block. In particular, in the case of the combination with claim 8, it is possible to perform consistency control by appropriately switching between invalidation and update.

【0037】請求項10に記載のプロトコル変換装置
は、スヌープバス上のトランザクションを処理するトラ
ンザクション処理手段と、結合網を介してメッセージの
送受信を行う結合網インタフェース手段と、トランザク
ション処理手段によって処理されるトランザクションと
結合網インタフェース手段によって送受信されるメッセ
ージとを相互に変換するプロトコル変換制御手段とを含
む。
According to a tenth aspect of the present invention, the protocol conversion apparatus is processed by transaction processing means for processing a transaction on a snoop bus, connection network interface means for transmitting / receiving a message via a connection network, and transaction processing means. Protocol conversion control means for mutually converting a transaction and a message transmitted and received by the connection network interface means.

【0038】プロトコル変換制御手段は、トランザクシ
ョン処理手段によって処理されるトランザクションと結
合網インタフェース手段によって送受信されるメッセー
ジとを相互に変換するので、スヌープバスに接続される
スヌープキャッシュと結合網に接続されるコンシステン
シ制御装置との間でメモリブロックを送受信することが
可能となる。
The protocol conversion control means converts between the transaction processed by the transaction processing means and the message transmitted / received by the connection network interface means, so that it is connected to the snoop cache connected to the snoop bus and to the connection network. It is possible to transmit and receive the memory block to and from the consistency control device.

【0039】請求項11に記載のプロトコル変換装置
は、請求項10記載のプロトコル変換装置であって、ト
ランザクション処理手段は、ライトトランザクションが
発生した場合には該ライトトランザクションの処理が終
了するまで前記スヌープバスの利用権を占有する。
According to a eleventh aspect of the present invention, in the protocol conversion apparatus of the tenth aspect, when a write transaction occurs, the snooping is performed until the processing of the write transaction is completed. Take the right to use the bus.

【0040】トランザクション処理手段は、ライトトラ
ンザクションが発生した場合には該ライトトランザクシ
ョンの処理が終了するまでスヌープバスの利用権を占有
するので、プロセッサユニットは新たなバストランザク
ションを発生させることができなくなる。したがって、
書き戻し応答を受信する機構を持たない既存のプロセッ
サユニットを用いた場合であっても、プロセッサユニッ
トが書き戻し処理の完了の通知を受信したのと同様の動
作が可能となる。
When the write transaction occurs, the transaction processing means occupies the right to use the snoop bus until the processing of the write transaction is completed, so that the processor unit cannot generate a new bus transaction. Therefore,
Even when an existing processor unit having no mechanism for receiving a write-back response is used, the same operation as when the processor unit receives the notification of the completion of the write-back process can be performed.

【0041】請求項12に記載のマルチプロセッサ装置
は、複数のプロセッサと、複数のプロセッサのそれぞれ
に接続される複数のキャッシュ装置と、複数のキャッシ
ュ装置および主記憶に接続されるコンシステンシ制御装
置とを含むマルチプロセッサ装置であって、複数のキャ
ッシュ装置の各々は接続されるプロセッサによってアク
セスされるデータをキャッシュするためのキャッシュメ
モリと、キャッシュメモリをメモリブロック単位で管理
し、接続されるプロセッサによってデータワードが更新
されたときに、メモリブロック内のどのデータワードが
更新されたかを示す識別情報を保持し、メモリブロック
の書き戻し要求がある場合、メモリブロックに当該識別
情報を付加してコンシステンシ制御装置に発信するため
のキャッシュ管理手段とを含み、コンシステンシ制御装
置はキャッシュ管理手段から受信したメモリブロックお
よび識別情報に基づいて当該メモリブロックのデータを
統合するためのデータ統合手段と、データ統合手段によ
って統合されたメモリブロックを主記憶に格納するため
の格納手段とを含む。
According to a twelfth aspect of the present invention, there is provided a multiprocessor device comprising: a plurality of processors; a plurality of cache devices connected to each of the plurality of processors; and a consistency control device connected to the plurality of cache devices and the main memory. Wherein each of the plurality of cache devices manages a cache memory for caching data accessed by a connected processor, the cache memory is managed in memory block units, and the When a word is updated, identification information indicating which data word in the memory block has been updated is held, and when there is a write-back request for the memory block, the identification information is added to the memory block and consistency control is performed. Cache management for sending to devices The consistency control device mainly includes a memory integrating unit for integrating data of the memory block based on the memory block and the identification information received from the cache managing unit, and a memory block integrated by the data integrating unit. Storage means for storing in a storage.

【0042】コンシステンシ制御装置は、キャッシュ管
理手段から受信したメモリブロックおよび識別情報に基
づいて当該メモリブロックのデータを統合するので、そ
れぞれのキャッシュ装置は同一メモリブロックの別デー
タを個別に更新することが可能となる。
Since the consistency control device integrates the data of the memory block based on the memory block and the identification information received from the cache management means, each cache device individually updates another data of the same memory block. Becomes possible.

【0043】請求項13に記載のマルチプロセッサ装置
は、複数のプロセッサと、複数のプロセッサのそれぞれ
に接続される複数のキャッシュ装置と、結合網を介して
複数のキャッシュ装置と接続されるコンシステンシ制御
装置と、コンシステンシ制御装置と接続される主記憶と
を含むマルチプロセッサ装置であって、複数のキャッシ
ュ装置の各々は接続されるプロセッサによってアクセス
されるデータをキャッシュするためのキャッシュメモリ
と、キャッシュメモリをメモリブロック単位で管理し、
メモリブロックの書き戻し要求がある場合、当該メモリ
ブロックをコンシステンシ制御装置へ発信するためのキ
ャッシュ管理手段とを含み、コンシステンシ制御装置は
キャッシュ管理手段から受信したメモリブロック内のデ
ータを統合するためのデータ統合手段と、データ統合手
段によって統合されたメモリブロックを主記憶に格納す
るための格納手段とを含む。
According to a thirteenth aspect of the present invention, there is provided a multiprocessor device, comprising: a plurality of processors; a plurality of cache devices connected to each of the plurality of processors; and a consistency control connected to the plurality of cache devices via a connection network. A multiprocessor device including a device and a main memory connected to a consistency control device, wherein each of the plurality of cache devices caches data accessed by a connected processor, and a cache memory. Is managed in memory block units,
A cache management unit for transmitting the memory block to the consistency control device when there is a write-back request for the memory block, wherein the consistency control device integrates the data in the memory block received from the cache management unit. And data storage means for storing the memory block integrated by the data integration means in the main memory.

【0044】コンシステンシ制御装置は、キャッシュ管
理手段から受信したメモリブロック内のデータを統合す
るので、それぞれのキャッシュ装置は同一メモリブロッ
クの別データを更新することが可能となる。
Since the consistency control device integrates the data in the memory blocks received from the cache management means, each cache device can update another data in the same memory block.

【0045】請求項14に記載のマルチプロセッサ装置
は、請求項12または13記載のマルチプロセッサ装置
であって、マルチプロセッサ装置はさらにコンシステン
シ制御装置と主記憶との間に設けられ、コンシステンシ
制御装置によってアクセスされるデータをキャッシュす
るための補助キャッシュ装置を含み、格納手段はデータ
統合手段によって統合されたメモリブロックを補助キャ
ッシュ装置に格納する。
A multiprocessor device according to claim 14 is the multiprocessor device according to claim 12 or 13, wherein the multiprocessor device is further provided between the consistency control device and the main memory, and The storage means includes an auxiliary cache device for caching data accessed by the device, and the storage means stores the memory block integrated by the data integration means in the auxiliary cache device.

【0046】補助キャッシュ装置がコンシステンシ制御
装置と主記憶との間に設けられるので、コンシステンシ
制御装置は補助キャッシュからデータを高速にアクセス
することが可能となり、マルチプロセッサ装置の処理性
能が向上する。
Since the auxiliary cache device is provided between the consistency control device and the main memory, the consistency control device can access data from the auxiliary cache at high speed, and the processing performance of the multiprocessor device is improved. .

【0047】請求項15に記載のマルチプロセッサ装置
は、請求項12〜14のいずれかに記載のマルチプロセ
ッサ装置であって、マルチプロセッサ装置はさらに結合
網を監視し、メモリブロックごとにそれぞれのキャッシ
ュ装置における当該メモリブロックの状態を保持するた
めのディレクトリ手段を含み、データ統合手段はディレ
クトリ手段に保持された内容に基づいて、当該メモリブ
ロックの内容を更新しているキャッシュ装置のみに書き
戻し要求を送信し、キャッシュ管理手段から受信したメ
モリブロック内のデータを統合する。
A multiprocessor device according to a fifteenth aspect is the multiprocessor device according to any one of the twelfth to twelfth aspects, wherein the multiprocessor device further monitors a connection network and provides a cache for each memory block. A directory unit for holding a state of the memory block in the device, wherein the data integration unit issues a write-back request only to the cache device updating the content of the memory block based on the content held in the directory unit. The data in the memory block transmitted and received from the cache management unit is integrated.

【0048】データ統合手段は、ディレクトリ手段に保
持された内容に基づいてキャッシュ管理手段から受信し
たメモリブロック内のデータを統合するので、メモリブ
ロック内のデータの統合処理が容易となる。
The data integration means integrates the data in the memory block received from the cache management means based on the contents held in the directory means, so that the integration processing of the data in the memory block is facilitated.

【0049】請求項16に記載のマルチプロセッサ装置
は、請求項15記載のマルチプロセッサ装置であって、
ディレクトリ手段はさらに、コンシステンシ制御装置に
よってアクセスされるメモリブロックを格納するための
補助キャッシュ手段と、コンシステンシ制御装置によっ
てアクセスされるデータを補助キャッシュ手段にキャッ
シュするための補助キャッシュ制御手段とを含む。
A multiprocessor device according to claim 16 is the multiprocessor device according to claim 15,
The directory means further includes auxiliary cache means for storing memory blocks accessed by the consistency control device, and auxiliary cache control means for caching data accessed by the consistency control device in the auxiliary cache means. .

【0050】ディレクトリ手段は、補助キャッシュ手段
を含むので、コンシステンシ制御装置は補助キャッシュ
手段からデータを高速にアクセスすることが可能とな
る。また、ディレクトリ手段と補助キャッシュの両方に
必要な連想記憶タグが統合できるため、回路規模を小さ
くできる。
Since the directory means includes the auxiliary cache means, the consistency control device can access data from the auxiliary cache means at high speed. Further, since the associative memory tags required for both the directory means and the auxiliary cache can be integrated, the circuit scale can be reduced.

【0051】請求項17に記載のマルチプロセッサ装置
は、請求項12〜16のいずれかに記載のマルチプロセ
ッサ装置であって、キャッシュ装置はさらに接続される
プロセッサによって特殊ストア命令が実行されるのを検
出し、特殊ストア命令によって更新されたメモリブロッ
クの書き戻し開始メッセージをコンシステンシ制御装置
に送信するための特殊ストア命令処理手段を含む。
A multiprocessor device according to a seventeenth aspect is the multiprocessor device according to any one of the twelfth to twelfth aspects, wherein the cache device further executes a special store instruction by a connected processor. Special store instruction processing means for detecting and transmitting a memory block writeback start message updated by the special store instruction to the consistency control device is included.

【0052】特殊ストア命令処理手段は、プロセッサに
よって特殊ストア命令が実行されるのを検出し、この命
令によって更新されたメモリブロックの書き戻し開始メ
ッセージをコンシステンシ制御装置に送信するので、プ
ロセッサは別途書き戻し指示を送信する必要がなくな
り、処理の高速化を図ることが可能となる。
The special store instruction processing means detects that the special store instruction is executed by the processor, and sends a write back start message of the memory block updated by this instruction to the consistency control device. It is not necessary to transmit a write-back instruction, and the processing can be speeded up.

【0053】請求項18に記載のマルチプロセッサ装置
は、複数のプロセッサユニットと、複数のプロセッサユ
ニットのそれぞれに接続される複数のプロトコル変換装
置と、複数のプロトコル変換装置および主記憶に接続さ
れるコンシステンシ制御装置とを含むマルチプロセッサ
装置であって、複数のプロセッサユニットの各々は、プ
ロセッサと、スヌープバスに接続されるスヌープキャッ
シュとを含み、複数のプロトコル変換装置の各々は、ス
ヌープバス上のトランザクションを処理するためのトラ
ンザクション処理手段と、結合網を介してメッセージの
送受信を行うための結合網インタフェース手段と、トラ
ンザクション処理手段によって処理されるトランザクシ
ョンと結合網インタフェース手段によって送受信される
メッセージとを相互に変換するためのプロトコル変換制
御手段とを含み、コンシステンシ制御装置は、複数のプ
ロトコル変換装置から結合網を介して受信したメモリブ
ロックのデータを統合するためのデータ統合手段と、デ
ータ統合手段によって統合されたメモリブロックを主記
憶に格納するための格納手段とを含む。
[0053] The multiprocessor device according to the eighteenth aspect includes a plurality of processor units, a plurality of protocol converters connected to each of the plurality of processor units, and a controller connected to the plurality of protocol converters and the main memory. A multi-processor device including a latency control device, wherein each of the plurality of processor units includes a processor and a snoop cache connected to the snoop bus, and each of the plurality of protocol conversion devices performs a transaction on the snoop bus. , A network interface for transmitting / receiving a message via a network, and a transaction processed by the transaction processor and a message transmitted / received by the network interface. And a protocol conversion control unit for converting the data into a memory.The consistency control device includes a data integration unit for integrating data of a memory block received from a plurality of protocol conversion devices via a connection network, and a data integration unit. Storage means for storing the integrated memory block in the main memory.

【0054】プロトコル変換装置は、スヌープバス上で
発生するトランザクションとコンシステンシ制御装置間
で送受信されるメッセージとを相互に変換するので、ス
ヌープバスに接続されるスヌープキャッシュと結合網に
接続されるコンシステンシ制御装置との間でメモリブロ
ックを送受信することが可能となる。
Since the protocol conversion device converts a transaction generated on the snoop bus and a message transmitted and received between the consistency control devices into and out of each other, the protocol conversion device converts the snoop cache connected to the snoop bus and the consistency cache connected to the connection network. It is possible to transmit and receive the memory block to and from the tension control device.

【0055】[0055]

【発明の実施の形態】以下に本発明の実施の形態につい
て説明するが、これらは本発明の例示であって、本発明
がこれらの実施の形態に限定されるものではない。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below, but these are exemplifications of the present invention, and the present invention is not limited to these embodiments.

【0056】[実施の形態1]図1は、本発明の実施の
形態1におけるマルチプロセッサ装置の概略構成を示す
ブロック図である。マルチプロセッサ装置は、プロセッ
サ1aおよび1bと、プロセッサ1aまたは1bがアク
セスするデータをキャッシュするためのキャッシュ2a
および2bと、結合網4を介してキャッシュ2aおよび
2bと接続されメモリコンシステンシを保つように制御
を行なうコンシステンシ制御部5と、主記憶3とを含
む。なお、キャッシュ2aおよび2bは、それぞれライ
トバックキャッシュで構成される。
[First Embodiment] FIG. 1 is a block diagram showing a schematic configuration of a multiprocessor according to a first embodiment of the present invention. The multiprocessor device includes a processor 1a and 1b and a cache 2a for caching data accessed by the processor 1a or 1b.
And 2b, a consistency control unit 5 connected to the caches 2a and 2b via the connection network 4 and controlling to maintain memory consistency, and a main memory 3. Each of the caches 2a and 2b is composed of a write-back cache.

【0057】図2は、図1に示す本実施の形態における
マルチプロセッサ装置で使用されるメッセージの種類を
説明するための図である。また、図3は図2に示すメッ
セージに付加される情報を示す図である。“書き戻し指
示”は、プロセッサ1aまたは1bからキャッシュ2a
または2bへ発信されるメッセージであり、書き戻し処
理の開始を指示するためのメッセージである。“書き戻
し指示”には、書き戻し処理の対象となるメモリブロッ
クのアドレス情報が付加されている。
FIG. 2 is a diagram for explaining types of messages used in the multiprocessor device according to the present embodiment shown in FIG. FIG. 3 is a diagram showing information added to the message shown in FIG. The “write-back instruction” is transmitted from the processor 1a or 1b to the cache 2a.
Alternatively, the message is transmitted to 2b, and is a message for instructing the start of the write-back process. The address information of the memory block to be subjected to the write-back process is added to the “write-back instruction”.

【0058】“書き戻し応答”は、キャッシュ2aまた
は2bからプロセッサ1aまたは1bへ発信されるメッ
セージであり、“書き戻し指示”に対する応答メッセー
ジである。このメッセージは、書き戻し処理がすべて完
了したときに発信される。
The "write-back response" is a message transmitted from the cache 2a or 2b to the processor 1a or 1b, and is a response message to the "write-back instruction". This message is sent when all the write-back processing is completed.

【0059】“書き戻し開始メッセージ”は、キャッシ
ュ2aまたは2bからコンシステンシ制御部5へ発信さ
れるメッセージであり、キャッシュ2aまたは2bが
“書き戻し指示”を受信したときにコンシステンシ制御
部5へ書き戻しデータの統合処理の開始を要求するため
のメッセージである。“書き戻し開始メッセージ”に
は、“書き戻し指示”を発信したプロセッサの識別子お
よび書き戻し処理の対象となるメモリブロックのアドレ
ス情報が付加される。
The "write-back start message" is a message transmitted from the cache 2a or 2b to the consistency control unit 5, and is transmitted to the consistency control unit 5 when the cache 2a or 2b receives the "write-back instruction". This is a message for requesting the start of the write-back data integration process. The identifier of the processor that has issued the “write-back instruction” and the address information of the memory block to be subjected to the write-back process are added to the “write-back start message”.

【0060】“書き戻し完了メッセージ”は、コンシス
テンシ制御部5からキャッシュ2aまたは2bへ発信さ
れるメッセージであり、“書き戻し開始メッセージ”に
対する応答メッセージであり、書き戻しデータの統合処
理がすべて完了したときにキャッシュ2aまたは2bへ
発信するメッセージである。
The "write-back completion message" is a message transmitted from the consistency control unit 5 to the cache 2a or 2b, is a response message to the "write-back start message", and completes the integration processing of the write-back data. This is a message transmitted to the cache 2a or 2b when it is done.

【0061】“書き戻し要求”は、コンシステンシ制御
部5からキャッシュ2aまたは2bへ発信されるメッセ
ージであり、キャッシュ2aまたは2b内で更新された
メモリブロックの発信を要求するためのメッセージであ
る。“書き戻し要求”には、書き戻し処理の対象となる
メモリブロックのアドレス情報が付加される。
The "rewrite request" is a message transmitted from the consistency control unit 5 to the cache 2a or 2b, and is a message for requesting transmission of a memory block updated in the cache 2a or 2b. The address information of the memory block to be subjected to the write-back processing is added to the “write-back request”.

【0062】“書き戻しデータ”は、キャッシュ2aま
たはキャッシュ2bからコンシステンシ制御部5へ発信
されるメッセージであり、“書き戻し要求”に応答して
発信されるメッセージである。“書き戻しデータ”に
は、キャッシュ2aまたは2b内における更新されたメ
モリブロックと当該メモリブロック内のどのデータワー
ドが更新されているかを示す情報(更新状況)とが付加
されている。
The "write-back data" is a message transmitted from the cache 2a or the cache 2b to the consistency control unit 5, and is a message transmitted in response to the "write-back request". The “write-back data” includes an updated memory block in the cache 2a or 2b and information (update status) indicating which data word in the memory block has been updated.

【0063】“読出要求”は、キャッシュ2aまたは2
bからコンシステンシ制御部5へ発信されるメッセージ
であり、主記憶3からメモリブロックの読出を要求する
ためのメッセージである。“読出要求”には、読出を要
求したプロセッサ1aまたは1bの識別子および読出処
理の対象となるメモリブロックのアドレス情報が付加さ
れている。
The "read request" is sent to the cache 2a or 2
b is a message transmitted to the consistency control unit 5 to request reading of a memory block from the main memory 3. The identifier of the processor 1a or 1b that has requested reading and the address information of the memory block to be read are added to the "read request".

【0064】“読出データ”は、コンシステンシ制御部
5からキャッシュ2aまたは2bへ発信されるメッセー
ジであり、“読出要求”に対する応答メッセージであ
る。“読出データ”には、主記憶3から読出されたメモ
リブロックのデータが付加されている。
The "read data" is a message transmitted from the consistency control unit 5 to the cache 2a or 2b, and is a response message to the "read request". The data of the memory block read from the main memory 3 is added to “read data”.

【0065】キャッシュ2aまたは2bは、プロセッサ
1aまたは1bから“書き戻し指示”を受信した場合、
またはキャッシュの容量不足等の理由によりデータの入
替えが必要になった場合に、“書き戻し開始メッセー
ジ”をコンシステンシ制御部5へ発信する。キャッシュ
2aまたは2bは、プロセッサ1aまたは1bから“書
き戻し指示”を受信すると、指示されたメモリブロック
を保持していなくても、コンシステンシ制御部5へ“書
き戻し開始メッセージ”を発信する。
When the cache 2a or 2b receives a "write-back instruction" from the processor 1a or 1b,
Alternatively, when data replacement is required due to lack of cache capacity or the like, a “write back start message” is transmitted to the consistency control unit 5. When the cache 2a or 2b receives the "write-back instruction" from the processor 1a or 1b, the cache 2a or 2b transmits a "write-back start message" to the consistency control unit 5 even if it does not hold the specified memory block.

【0066】キャッシュ2aまたは2bは、コンシステ
ンシ制御部5から“書き戻し要求”を受信すると、更新
されたメモリブロックのコピーを自身で保持していれ
ば、コンシステンシ制御部5へ“書き戻しデータ”を発
信する。また、キャッシュ2aまたは2bは、メモリブ
ロックのコピーを自身で保持していないか、保持してい
ても更新されてなければ、いずれのワードも更新されて
いないことを示す更新状況を付加した“書き戻しデー
タ”(以下、クリーンな “書き戻しデータ”と呼ぶ)
をコンシステンシ制御部5へ発信する。以降の処理で、
メッセージ中のデータは利用されないため、任意の値
(たとえば、“0”)を設定できる。クリーンな“書き
戻しデータ”メッセージ中のデータは利用されないが、
コンシステンシ制御部5は全てのキャッシュが“書き戻
し要求”に応答したことを検出するため、キャッシュの
メッセージ発信は必要である。
When the cache 2a or 2b receives the "write-back request" from the consistency control unit 5, if the cache 2a or 2b holds the updated copy of the memory block by itself, it sends the "write-back data" to the consistency control unit 5. " Further, the cache 2a or 2b does not hold the copy of the memory block by itself, or if the cache block is not updated even if it holds the copy of the memory block, an update status indicating that no word has been updated is added. Return data ”(hereinafter referred to as clean“ write-back data ”)
Is transmitted to the consistency control unit 5. In subsequent processing,
Since the data in the message is not used, an arbitrary value (for example, “0”) can be set. The data in the clean “write back data” message is not used,
Since the consistency control unit 5 detects that all the caches have responded to the "write-back request", it is necessary to transmit a message from the cache.

【0067】なお、メッセージの転送方法には、メッセ
ージ交換または回線交換等の方法が想定されるが、本実
施の形態におけるマルチプロセッサ装置はメッセージの
転送方法には依存しない。また、結合網の形態として、
バスまたは多段スイッチ等が想定されるが、本実施の形
態におけるマルチプロセッサ装置は結合網の形態にも依
存しない。ただし、結合網がブロードキャストの機能を
備えるならば、書き戻し開始メッセージをブロードキャ
ストすることによって、書き戻し要求の代用とすること
が可能であり、この場合は、コンシステンシ制御部が書
き戻し要求を発行する必要がなくなる。
Although the message transfer method may be a message exchange or circuit exchange method, the multiprocessor in this embodiment does not depend on the message transfer method. Also, as the form of the connection network,
Although a bus or a multistage switch is assumed, the multiprocessor device in the present embodiment does not depend on the form of the connection network. However, if the connection network has a broadcast function, it is possible to substitute a write-back request by broadcasting a write-back start message. In this case, the consistency control unit issues a write-back request. You don't have to.

【0068】図4は、本実施の形態におけるマルチプロ
セッサ装置のキャッシュ2aまたは2bの概略構成を示
すブロック図である。キャッシュ2aまたは2bは、プ
ロセッサバス620aまたは620bに接続されるプロ
セッサインターフェイス21、キャッシュ2aまたは2
b全体の制御を行なうためのキャッシュ制御部22、キ
ャッシュバス610aまたは610bを介して結合網4
に接続される結合網インターフェイス23、およびキャ
ッシュセット群(キャッシュメモリ)24を含む。
FIG. 4 is a block diagram showing a schematic configuration of the cache 2a or 2b of the multiprocessor device according to the present embodiment. The cache 2a or 2b includes the processor interface 21 connected to the processor bus 620a or 620b, the cache 2a or 2b.
b, the cache control unit 22 for controlling the entire network 4 via the cache bus 610a or 610b.
And a cache set group (cache memory) 24.

【0069】キャッシュ2aまたは2bは、基本的には
ライトバック方式による制御を行なうが、このライトバ
ック方式については周知技術であるのでここでの詳細な
説明は行なわない。ただし、キャッシュ制御部22は、
図2および図3を用いて説明したメッセージの送受信を
行なう機能および後述するキャッシュエントリを制御す
る機能が付加されている。
The cache 2a or 2b basically controls by a write-back method. However, the write-back method is a well-known technique, and therefore will not be described in detail here. However, the cache control unit 22
The function of transmitting / receiving a message described with reference to FIGS. 2 and 3 and the function of controlling a cache entry described later are added.

【0070】図5は、本実施の形態におけるマルチプロ
セッサ装置のキャッシュ2aまたは2b内におけるキャ
ッシュエントリを説明するための図である。キャッシュ
エントリは、メモリブロックのアドレスタグ、有効ビッ
ト(V)、更新ビットM0〜M3、LRU(Least Rece
ntly Used )フィールド、およびデータワード0〜3を
含む。LRUフィールドは、データの入替えの際に使用
される情報であり、周知技術であるので詳細な説明は行
なわない。キャッシュエントリは、アソシアティビティ
数だけまとめられてキャッシュセットとなる。さらにキ
ャッシュセットがまとめられてキャッシュセット群とな
る。
FIG. 5 is a diagram for explaining cache entries in the cache 2a or 2b of the multiprocessor device according to the present embodiment. The cache entry includes the address tag of the memory block, the valid bit (V), the update bits M0 to M3, and the LRU (Least Receive).
ntly Used) fields and data words 0-3. The LRU field is information used at the time of exchanging data, and is a well-known technique, and thus will not be described in detail. Cache entries are grouped by the number of associativities to form a cache set. Furthermore, the cache sets are put together to form a cache set group.

【0071】図6は、図5に示すキャッシュエントリ内
の有効ビット(V)および更新ビットM0〜M3によっ
て示されるエントリの状態を説明するための図である。
有効ビットVが“0”の場合に、更新ビットM0〜M3
が無効となり、そのエントリが無効であることを示して
いる。また、有効ビットVが“1”の場合、そのエント
リが有効であることを示しており、各更新ビットM0〜
M3の値が“0”のときには、更新ビットに対応するデ
ータワードの内容が更新されていないことを示してお
り、“1”のときには対応するデータワードが更新され
ていることを示している。したがって、有効ビットVが
“1”であり、かつ更新M0〜M3がすべて“0”の場
合には、当該キャッシュエントリがクリーンな状態であ
ることを示している。1メモリブロック内のワード数お
よびワードの大きさはシステムへの要求によって定めら
れ、本図に示された大きさ、数に限定されるものではな
い。
FIG. 6 is a diagram for explaining a state of an entry indicated by a valid bit (V) and update bits M0 to M3 in the cache entry shown in FIG.
When the valid bit V is “0”, the update bits M0 to M3
Is invalid, indicating that the entry is invalid. When the valid bit V is “1”, it indicates that the entry is valid, and each of the update bits M0 to M0
When the value of M3 is "0", it indicates that the content of the data word corresponding to the update bit has not been updated, and when it is "1", it indicates that the corresponding data word has been updated. Therefore, when the valid bit V is “1” and the updates M0 to M3 are all “0”, it indicates that the cache entry is in a clean state. The number of words and the size of words in one memory block are determined by the requirements of the system, and are not limited to the sizes and numbers shown in FIG.

【0072】図7は、キャッシュが“書き戻し指示”を
プロセッサから受信した場合の処理手順を示すフローチ
ャートである。キャッシュ2aまたは2bが“書き戻し
指示”を受信すると、コンシステンシ制御部5へ“書き
戻し開始メッセージ”を発信する(S701)。そし
て、コンシステンシ制御部5から“書き戻し要求”が発
信されるのを待ち(S702)、“書き戻し要求”を受
信したときにキャッシュ2aまたは2bがコンシステン
シ制御部5へ“書き戻しデータ”を発信する。キャッシ
ュ2aまたは2bは、コンシステンシ制御部5から“書
き戻し完了メッセージ”が発信されるのを待ち(S70
4)、“書き戻し完了メッセージ”を受信したときに
“書き戻し指示”を発信したプロセッサ1aまたは1b
へ“書き戻し応答”を発信して(S705)、処理を終
了する。キャッシュの容量不足によって入替え処理が行
なわれる場合も、処理開始の条件および“書き戻し応
答”を発信しないこと以外は同一の処理となる。
FIG. 7 is a flowchart showing a processing procedure when the cache receives a "write-back instruction" from the processor. When the cache 2a or 2b receives the "write-back instruction", it sends a "write-back start message" to the consistency control unit 5 (S701). The cache 2a or 2b waits for a "write-back request" to be transmitted from the consistency control unit 5 (S702). When the "write-back request" is received, the cache 2a or 2b sends the "write-back data" to the consistency control unit 5. Outgoing. The cache 2a or 2b waits until a "write back completion message" is transmitted from the consistency control unit 5 (S70).
4) The processor 1a or 1b which has transmitted the "write-back instruction" when receiving the "write-back completion message"
A "write back response" is transmitted to the server (S705), and the process ends. Even when the replacement process is performed due to insufficient cache capacity, the same process is performed except that a process start condition and a “write back response” are not transmitted.

【0073】図8は、“書き戻し指示”を受信していな
いキャッシュであって、コンシステンシ制御部5から
“書き戻し要求”を受信したときの処理手順を示すフロ
ーチャートである。キャッシュ2aまたは2bが、コン
システンシ制御部5から“書き戻し要求”を受信したと
きに、コンシステンシ制御部5へ“書き戻しデータ”を
発信する(S801)。
FIG. 8 is a flowchart showing a processing procedure when a “write-back request” is received from the consistency control unit 5 in a cache that has not received a “write-back instruction”. When the cache 2a or 2b receives the "write-back request" from the consistency control unit 5, it sends "write-back data" to the consistency control unit 5 (S801).

【0074】なお、キャッシュ2aまたは2bが、図7
のステップS702に示す“書き戻し要求”の受信待ち
のときに、別のアドレスのメモリブロックに関する“書
き戻し要求”を受信した場合には、図7に示す処理を一
時保留し、図8に示す当該別のアドレスのメモリブロッ
クの発信処理を行なう。
It should be noted that the cache 2a or 2b
If a "write-back request" for a memory block at another address is received while waiting for the "write-back request" shown in step S702, the process shown in FIG. 7 is temporarily suspended and shown in FIG. The transmission process of the memory block at the different address is performed.

【0075】図9は、本実施の形態におけるマルチプロ
セッサ装置のコンシステンシ制御部5の概略構成を示す
ブロック図である。コンシステンシ制御部5は、コンシ
ステンシ制御部5の全体的な制御を行なうためのシーケ
ンサ501、キャッシュ2aおよび2bからのメッセー
ジを受信するためのメッセージ受信部502、キャッシ
ュ2aおよび2bへメッセージを発信するためのメッセ
ージ発信部503、およびキャッシュ2aと2bとから
受信した書き戻しデータを統合して主記憶3へ格納する
ための書き戻しデータ統合部504を含む。
FIG. 9 is a block diagram showing a schematic configuration of the consistency control unit 5 of the multiprocessor device according to the present embodiment. Consistency control unit 5 transmits a message to sequencer 501 for performing overall control of consistency control unit 5, message receiving unit 502 for receiving messages from caches 2a and 2b, and caches 2a and 2b. And a write-back data integration unit 504 for integrating the write-back data received from the caches 2a and 2b and storing them in the main memory 3.

【0076】メッセージ受信部502は、キャッシュ2
aまたは2bから“書き戻し開始メッセージ”を受信す
ると、シーケンサ501を起動する。また、シーケンサ
が既に他のメモリブロックの書き戻し処理を進行してい
る間にメッセージ受信部502が“書き戻し開始メッセ
ージ”を受信した場合には、シーケンサ501が進行中
の書き戻し処理を終了するまでシーケンサ501に対す
る起動を保留し、シーケンサ501が進行中の書き戻し
処理を終了後にメッセージ受信部502がシーケンサ5
01を起動する。
The message receiving unit 502
When the “write-back start message” is received from a or 2b, the sequencer 501 is started. If the message receiving unit 502 receives the “write-back start message” while the sequencer is already performing write-back processing for another memory block, the sequencer 501 ends the ongoing write-back processing. Until the sequencer 501 finishes the ongoing write-back process, the message receiving unit 502 sets the sequencer 5
01 is started.

【0077】図10は、実施の形態1におけるマルチプ
ロセッサ装置のコンシステンシ制御部5の処理手順を示
すフローチャートである。メッセージ受信部502が、
キャッシュ2aまたは2bから“書き戻し開始メッセー
ジ”を受信すると、現在進行中の他のメモリブロックの
書き戻し処理があるか否かを判定する(S101)。進
行中の書き戻し処理がある場合(S101,Yes)、
当該進行中の書き戻し処理が終了するまで処理を保留す
る。また、進行中の書き戻し処理がない場合(S10
1,No)、メッセージ受信部502がシーケンサ50
1を起動する。
FIG. 10 is a flowchart showing a processing procedure of the consistency control unit 5 of the multiprocessor device according to the first embodiment. The message receiving unit 502
When a "write-back start message" is received from the cache 2a or 2b, it is determined whether there is a write-back process of another memory block currently in progress (S101). If there is a write-back process in progress (S101, Yes),
The processing is suspended until the ongoing write-back processing ends. If there is no ongoing write-back processing (S10
1, No), the message receiving unit 502
Start 1

【0078】シーケンサ501の指示により、メッセー
ジ発信部503はすべてのキャッシュ2aおよび2bへ
“書き戻し要求”を発信し(S102)、キャッシュ2
aおよび2bから“書き戻しデータ”が発信されるのを
待つ。
In response to an instruction from the sequencer 501, the message sending unit 503 sends a "write back request" to all the caches 2a and 2b (S102).
Wait for "write back data" to be transmitted from a and 2b.

【0079】シーケンサ501が書き戻しデータ統合部
504を起動することにより、書き戻しデータ統合部5
04はキャッシュ2aおよび2bから受信した“書き戻
しデータ”の統合処理を行なう(S103)。この書き
戻しデータ統合処理については後述する。
When the sequencer 501 activates the write-back data integration section 504, the write-back data integration section 5
04 performs the integration process of the "write-back data" received from the caches 2a and 2b (S103). This write-back data integration process will be described later.

【0080】さらに、書き戻しデータ統合部504は、
統合した書き戻しデータを主記憶バス640を介して主
記憶3に格納する(S104)。そして、シーケンサ5
01がメッセージ発信部503を起動することにより、
メッセージ発信部503が“書き戻し開始メッセージ”
を発信したキャッシュ2aまたは2bへ“書き戻し完了
メッセージ”を発信し(S105)、処理を終了する。
Further, the write-back data integration unit 504
The integrated write-back data is stored in the main memory 3 via the main memory bus 640 (S104). And sequencer 5
01 activates the message transmission unit 503,
The message sending unit 503 sends a “writeback start message”
Is sent to the cache 2a or 2b that sent the message (S105), and the process ends.

【0081】図11は、図10のステップS103の処
理を説明するための図である。書き戻しデータ統合部5
04は、受け取った“書き戻しデータ”群からクリーン
な“書き戻しデータ”を取り除いた後、図5に示す更新
ビットM0〜M3の内容とデータワード0〜3の内容に
基づいて書き戻しデータの統合処理を行なう。たとえ
ば、キャッシュ2aから受信した“書き戻しデータ”の
うち、更新ビットM0〜M3を参照することにより、デ
ータワード1および3が更新されていることがわかる。
また、キャッシュ2bから受信した“書き戻しデータ”
のうち、更新ビットM0〜M3を参照することによりデ
ータワード2のみが更新されていることがわかる。した
がって、書き戻しデータ統合部504は、キャッシュ2
aからの“書き戻しデータ”のうちデータワード1およ
びデータワード3を抽出し、キャッシュ2bから受信し
た“書き戻しデータ”のうちデータワード2を抽出し、
これらを統合することにより書き戻しデータの統合が行
なわれる。なお、データワード0については更新されて
いないので、どちらの“書き戻しデータ”から抽出して
もよい。またはそのワードを主記憶に書込まない方法も
考えられる。
FIG. 11 is a diagram for explaining the processing in step S103 of FIG. Write-back data integration unit 5
04 removes clean “write-back data” from the received “write-back data” group and then writes the write-back data based on the contents of the update bits M0 to M3 and the data words 0 to 3 shown in FIG. Perform integration processing. For example, by referring to the update bits M0 to M3 of the “write-back data” received from the cache 2a, it can be seen that the data words 1 and 3 have been updated.
Also, the “write-back data” received from the cache 2b
Of these, it can be seen that only data word 2 has been updated by referring to update bits M0 to M3. Therefore, the write-back data integration unit 504 sets the cache 2
Data word 1 and data word 3 are extracted from "write-back data" from a, and data word 2 is extracted from "write-back data" received from cache 2b.
By integrating them, the write-back data is integrated. Since data word 0 has not been updated, it may be extracted from either “write-back data”. Alternatively, a method of not writing the word in the main memory is also conceivable.

【0082】図12は、統合処理においてあり得ない場
合の組合せを説明するための図である。たとえば、キャ
ッシュ2aから受信した“書き戻しデータ”のうちデー
タワード1およびデータワード3が更新されており、キ
ャッシュ2bから受信した“書き戻しデータ”のうちデ
ータワード2およびデータワード3が更新されていると
する。この場合、データワード3が両方更新されている
ことになり、データワード3の統合処理が行なえないこ
とになる。しかし、弱いメモリコンシステンシモデルに
おいては、同期点で区切られた処理内では異なるプロセ
ッサが同一メモリブロックの同一データワードを更新す
ることを禁止している。したがって、図12に示す組合
せは絶対に起こり得ない。
FIG. 12 is a diagram for explaining combinations that are not possible in the integration process. For example, data word 1 and data word 3 of “write-back data” received from cache 2a have been updated, and data word 2 and data word 3 of “write-back data” received from cache 2b have been updated. Suppose you have In this case, both data words 3 have been updated, and the data word 3 cannot be integrated. However, the weak memory consistency model prohibits different processors from updating the same data word in the same memory block within the process delimited by the synchronization point. Therefore, the combination shown in FIG. 12 cannot occur at all.

【0083】なお、図11および図12に示すメモリブ
ロックのサイズを4ワードとし、統合処理をワード単位
で行なっているが、これに限られるものではない。ま
た、ワードサイズは8、16、32ビット等いずれであ
ってもよい。
Although the size of the memory block shown in FIGS. 11 and 12 is set to 4 words and the integration processing is performed in word units, the present invention is not limited to this. Further, the word size may be any of 8, 16, 32 bits, and the like.

【0084】以上説明したキャッシュ2a、2bおよび
コンシステンシ制御部5の動作によって、あるキャッシ
ュのキャッシュエントリが主記憶3に書き戻されようと
するときには、マルチプロセッサ装置中の他のキャッシ
ュについても、同じメモリブロックのキャッシュエント
リが同時に書き戻される。つまり、あるキャッシュのキ
ャッシュエントリが書き戻されると、主記憶3のメモリ
ブロックにはその時点までの全ての更新が反映されるこ
とになる。
When the cache entries of a certain cache are to be written back to the main memory 3 by the operations of the caches 2a and 2b and the consistency control unit 5 described above, the same applies to the other caches in the multiprocessor device. The cache entry of the memory block is written back at the same time. That is, when a cache entry of a certain cache is written back, all the updates up to that point are reflected in the memory block of the main memory 3.

【0085】図13は、プロセッサ1aまたは1bによ
る最新データの獲得処理の処理手順を示すフローチャー
トである。プロセッサ1aまたは1bが最新データを獲
得する場合、まずキャッシュ2aまたは2bへ最新デー
タを獲得するべきメモリブロックに対応する“書き戻し
指示”を発信し(S131)、キャッシュ2aまたは2
bから“書き戻し応答”を受信した後に、キャッシュ2
aまたは2bに当該メモリブロックのキャッシュエント
リの無効化を指示する(S132)。この処理より、プ
ロセッサ1aまたは1bは、図13の○を付した時点に
おけるメモリブロックの最新データを参照することが可
能となる。
FIG. 13 is a flowchart showing the processing procedure of the latest data acquisition processing by the processor 1a or 1b. When the processor 1a or 1b acquires the latest data, the processor 1a or 1b first sends a "write-back instruction" corresponding to the memory block from which the latest data is to be acquired to the cache 2a or 2b (S131), and the cache 2a or 2b.
b, after receiving a “writeback response” from
a or 2b is instructed to invalidate the cache entry of the memory block (S132). Through this processing, the processor 1a or 1b can refer to the latest data in the memory block at the time when the circle in FIG.

【0086】以上説明したように、本実施の形態におけ
るマルチプロセッサ装置において、同一メモリブロック
に複数のデータワードが含まれる場合に、フォールスシ
ェアリングが発生しても異なるプロセッサが同一メモリ
ブロック内に含まれるデータワードを独立して更新する
ことが可能となる。したがって、フォールスシェアリン
グによって発生する不必要なデータの無効化による処理
の遅延を防止することができ、メモリコンシステンシを
保証しつつも高速に処理が行なえるマルチプロセッサ装
置を提供することが可能となった。
As described above, in the multiprocessor device according to the present embodiment, when a plurality of data words are included in the same memory block, different processors are included in the same memory block even if false sharing occurs. Data words can be updated independently. Therefore, it is possible to prevent a processing delay due to invalidation of unnecessary data caused by false sharing, and to provide a multiprocessor device capable of performing high-speed processing while guaranteeing memory consistency. became.

【0087】なお、本実施の形態においては、プロセッ
サ数を2個として説明したが、3個以上の場合にも同様
にしてマルチプロセッサ装置を構築することが可能であ
る。
Although the present embodiment has been described assuming that the number of processors is two, a multiprocessor device can be constructed in a similar manner when three or more processors are used.

【0088】[実施の形態2]実施の形態2におけるマ
ルチプロセッサ装置は、図1に示す実施の形態1におけ
るマルチプロセッサ装置と比較して、キャッシュ2aお
よび2bに機能が追加された点およびコンシステンシ制
御部5に機能が追加された点のみが異なる。したがっ
て、重複する構成および機能の詳細な説明は繰返さな
い。なお、実施の形態2におけるキャッシュの参照符号
を2a′および2b′とし、コンシステンシ制御部の参
照符号を5′として説明する。
[Second Embodiment] The multiprocessor device according to the second embodiment is different from the multiprocessor device according to the first embodiment shown in FIG. 1 in that functions are added to caches 2a and 2b and consistency. The only difference is that a function is added to the control unit 5. Therefore, detailed description of the same configurations and functions will not be repeated. It is to be noted that the reference numerals of the cache in the second embodiment are 2a 'and 2b', and the reference numeral of the consistency control unit is 5 '.

【0089】図14および図15は、実施の形態2にお
けるマルチプロセッサ装置において新たに追加されたメ
ッセージの内容を示す図である。“無効化要求”は、コ
ンシステンシ制御部5′からキャッシュ2a′または2
b′へ発信されるメッセージであり、キャッシュ2a′
または2b′内のメモリブロックのキャッシュエントリ
の無効化を要求するためのメッセージである。“無効化
要求”には、無効化処理の対象となるメモリブロックの
アドレス情報が付加される。
FIG. 14 and FIG. 15 are diagrams showing the contents of a message newly added in the multiprocessor device according to the second embodiment. The "invalidation request" is transmitted from the consistency control unit 5 'to the cache 2a' or 2
b 'is a message transmitted to the cache 2a'
Alternatively, this is a message for requesting invalidation of the cache entry of the memory block in 2b '. The address information of the memory block to be invalidated is added to the “invalidation request”.

【0090】“無効化応答”は、キャッシュ2a′また
は2b′からコンシステンシ制御部5′へ発信されるメ
ッセージであり、“無効化要求”に対する応答メッセー
ジである。
The "invalidation response" is a message transmitted from the cache 2a 'or 2b' to the consistency control unit 5 ', and is a response message to the "invalidation request".

【0091】“アップデートデータ”は、コンシステン
シ制御部5′からキャッシュ2a′または2b′へ発信
されるメッセージであり、キャッシュ2a′または2
b′内のメモリブロックのキャッシュエントリの更新を
要求するためのメッセージである。“アップデートデー
タ”には、メモリブロックの更新データとアップデート
処理の対象となるメモリブロックのアドレス情報とが付
加される。
"Update data" is a message transmitted from the consistency control unit 5 'to the cache 2a' or 2b '.
This is a message for requesting an update of the cache entry of the memory block in b '. The “update data” is added with the update data of the memory block and the address information of the memory block to be updated.

【0092】“アップデート応答”は、キャッシュ2
a′または2b′からコンシステンシ制御部5′へ発信
されるメッセージであり、“アップデートデータ”に対
する応答メッセージである。
The “update response” is stored in the cache 2
This is a message transmitted from a ′ or 2b ′ to the consistency control unit 5 ′, and is a response message to “update data”.

【0093】図16は、キャッシュ2a′または2b′
がプロセッサ1aまたは1bから“書き戻し指示”を受
信したときの処理手順を示すフローチャートである。キ
ャッシュ2a′または2b′が“書き戻し指示”を受信
すると、コンシステンシ制御部5′へ“書き戻し開始メ
ッセージ”を発信する(S161)。そして、コンシス
テンシ制御部5′から“書き戻し要求”が発信されるの
を待つ(S162)。
FIG. 16 shows the cache 2a 'or 2b'
FIG. 9 is a flowchart showing a processing procedure when receives a “write-back instruction” from the processor 1a or 1b. When the cache 2a 'or 2b' receives the "write-back instruction", it sends a "write-back start message" to the consistency control unit 5 '(S161). Then, it waits for a "write back request" to be transmitted from the consistency control unit 5 '(S162).

【0094】キャッシュ2a′または2b′は、コンシ
ステンシ制御部5′から“書き戻し要求”を受信する
と、コンシステンシ制御部5′へ“書き戻しデータ”を
発信する(S163)。そして、コンシステンシ制御部
5′が“無効化要求”または“アップデートデータ”を
発信するのを待つ(S164)。
When the cache 2a 'or 2b' receives the "write-back request" from the consistency control unit 5 ', it sends "write-back data" to the consistency control unit 5' (S163). Then, it waits for the consistency control unit 5 'to transmit an "invalidation request" or "update data" (S164).

【0095】キャッシュ2a′または2b′は、コンシ
ステンシ制御部5′から“無効化要求”または“アップ
デートデータ”を受信すると、それぞれに対応する処理
を行なう。すなわち、“無効化要求”を受信した場合に
は、対象となるメモリブロックのキャッシュエントリの
有効ビットV(図5参照)を“0”にし、当該キャッシ
ュエントリを無効とする。また、“アップデートデー
タ”を受信した場合では、対象となるメモリブロックの
キャッシュエントリをコンシステンシ制御部5′から受
信したアップデートデータに書換える(S165)。
When the cache 2a 'or 2b' receives an "invalidation request" or "update data" from the consistency control unit 5 ', it performs a corresponding process. That is, when an “invalidation request” is received, the valid bit V (see FIG. 5) of the cache entry of the target memory block is set to “0”, and the cache entry is invalidated. When the "update data" is received, the cache entry of the target memory block is rewritten with the update data received from the consistency control unit 5 '(S165).

【0096】次に、キャッシュ2a′または2b′はコ
ンシステンシ制御部5′へ“無効化応答”または“アッ
プデート応答”を発信し(S166)、コンシステンシ
制御部5′から“書き戻し完了メッセージ”が発信され
るのを待つ(S167)。
Next, the cache 2a 'or 2b' sends an "invalidation response" or "update response" to the consistency control unit 5 '(S166), and the "write back completion message" is sent from the consistency control unit 5'. Is transmitted (S167).

【0097】キャッシュ2a′または2b′は、コンシ
ステンシ制御部5′から“書き戻し完了メッセージ”を
受信すると、プロセッサ1aまたは1bへ“書き戻し応
答”を発信し(S168)、処理を終了する。
When the cache 2a 'or 2b' receives the "write-back completion message" from the consistency control unit 5 ', it sends a "write-back response" to the processor 1a or 1b (S168), and ends the processing.

【0098】図17は、“書き戻し指示”を受信してい
ないキャッシュ2a′または2b′が“無効化要求”ま
たは“アップデートデータ”を受信した場合の処理手順
を説明するためのフローチャートである。キャッシュ2
a′または2b′は、“無効化要求”または“アップデ
ートデータ”を受信すると、それぞれに対応する処理を
行なう。すなわち、“無効化要求”を受信した場合に
は、キャッシュ2a′または2b′は対象となるメモリ
ブロックのキャッシュエントリの有効ビットV(図5参
照)を“0”にし、キャッシュエントリを無効化する。
また、“アップデートデータ”を受信した場合には、キ
ャッシュ2a′または2b′は対象となるメモリブロッ
クのキャッシュエントリをコンシステンシ制御部5′か
ら受信したアップデートデータに書換える(S17
1)。そして、コンシステンシ制御部5′へ“無効化応
答”または“アップデート応答”を発信し(S17
2)、処理を終了する。
FIG. 17 is a flowchart for explaining a processing procedure when the cache 2a 'or 2b' which has not received the "write back instruction" receives the "invalidation request" or "update data". Cache 2
When a 'or 2b' receives the "invalidation request" or "update data", it performs the corresponding processing. That is, when receiving the "invalidation request", the cache 2a 'or 2b' sets the valid bit V (see FIG. 5) of the cache entry of the target memory block to "0", and invalidates the cache entry. .
When the "update data" is received, the cache 2a 'or 2b' rewrites the cache entry of the target memory block with the update data received from the consistency control unit 5 '(S17).
1). Then, an "invalidation response" or "update response" is transmitted to the consistency control unit 5 '(S17).
2), end the process.

【0099】図18は、本実施の形態におけるマルチプ
ロセッサ装置のコンシステンシ制御部5′の概略構成を
示すブロック図である。図9に示す実施の形態1におけ
るコンシステンシ制御部5と比較して、メッセージ受信
部502′が“無効化応答”または“アップデート応
答”を受信する点、メッセージ発信部503′が“無効
化要求”または“アップデートデータ”を発信する点、
およびシーケンサ501′の制御が異なる点のみが異な
る。したがって、重複する構成および機能についての詳
細な説明は繰返さない。
FIG. 18 is a block diagram showing a schematic configuration of a consistency control unit 5 'of the multiprocessor device according to the present embodiment. Compared with the consistency control unit 5 in the first embodiment shown in FIG. 9, the message receiving unit 502 'receives an "invalidation response" or an "update response", and the message transmitting unit 503' receives an "invalidation request". "Or" update data ",
And only the control of the sequencer 501 'is different. Therefore, detailed description of the same configurations and functions will not be repeated.

【0100】図19は、本実施の形態におけるコンシス
テンシ制御部5′が“書き戻し開始メッセージ”を受信
した場合の処理手順を説明するためのフローチャートで
ある。メッセージ受信部502′がキャッシュ2a′ま
たは2b′から“書き戻し開始メッセージ”を受信する
と、現在進行中の他のメモリブロックの書き戻し処理が
行なわれているか否かを判定する(S191)。進行中
の書き戻し処理がある場合(S191,Yes)、当該
書き戻し処理が終了するまで処理を保留する。また、現
在進行中の書き戻し処理がない場合(S191,N
o)、メッセージ受信部502′がシーケンサ501′
を起動することにより、シーケンサ501′がメッセー
ジ発信部503′にすべてのキャッシュ2a′および2
b′へ“書き戻し要求”を発信させる(S192)。
FIG. 19 is a flowchart for explaining a processing procedure when consistency control unit 5 'in the present embodiment receives a "writeback start message". When the message receiving unit 502 'receives the "write-back start message" from the cache 2a' or 2b ', it determines whether or not a write-back process of another memory block currently in progress is being performed (S191). If there is a write-back process in progress (S191, Yes), the process is suspended until the write-back process ends. If there is no write-back process currently in progress (S191, N
o), the message receiving unit 502 'is the sequencer 501'
Is activated, the sequencer 501 'causes the message transmission unit 503' to send all the caches 2a 'and 2a.
A “write back request” is transmitted to b ′ (S192).

【0101】次に、シーケンサ501′は書き戻しデー
タ統合部504を起動することにより、書き戻しデータ
統合部504は図11を用いて説明した書き戻しデータ
の統合処理を行ない(S193)、統合された書き戻し
データを主記憶バス640を介して主記憶3に格納する
(S194)。そして、シーケンサ501′はメッセー
ジ発信部503′にすべてのキャッシュ2a′および2
b′へ“無効化要求”または“アップデートデータ”を
発信させ(S195)、すべてのキャッシュ2a′およ
び2b′から“無効化応答”または“アップデート応
答”が発信されるのを待つ(S196)。
Next, the sequencer 501 'activates the write-back data integration unit 504, so that the write-back data integration unit 504 performs the write-back data integration process described with reference to FIG. 11 (S193). The rewritten data is stored in the main memory 3 via the main memory bus 640 (S194). Then, the sequencer 501 'sends all the caches 2a' and 2
b ”is sent an“ invalidation request ”or“ update data ”(S195), and waits for an“ invalidation response ”or“ update response ”to be sent from all caches 2a ′ and 2b ′ (S196).

【0102】メッセージ受信部502′がすべてのキャ
ッシュ2a′および2b′から“無効化応答”または
“アップデート応答”を受信すると、シーケンサ50
1′はメッセージ発信部503′に“書き戻し完了メッ
セージ”を“書き戻し開始メッセージ”を発信したキャ
ッシュに発信し(S197)、処理を終了する。
When the message receiving section 502 'receives an "invalidation response" or an "update response" from all the caches 2a' and 2b ', the sequencer 50
1 'sends a "writeback completion message" to the message sending unit 503' to the cache that sent the "writeback start message" (S197), and ends the processing.

【0103】図20は、プロセッサによる最新データの
獲得処理の処理手順を示すフローチャートである。プロ
セッサ1aまたは1bは、キャッシュ2a′または2
b′に対象となるメモリブロックの“書き戻し指示”を
発信し、キャッシュ2a′または2b′から“書き戻し
応答”を受信することにより(S201)、処理を終了
する。この処理により、プロセッサ1aまたは1bは、
図20の○を付した時点におけるメモリブロックの最新
のデータを参照することが可能となる。
FIG. 20 is a flowchart showing the processing procedure of the latest data acquisition processing by the processor. The processor 1a or 1b has a cache 2a 'or 2
By transmitting a "write-back instruction" of the target memory block to b 'and receiving a "write-back response" from the cache 2a' or 2b '(S201), the process is terminated. By this processing, the processor 1a or 1b
It is possible to refer to the latest data in the memory block at the time when a circle is added in FIG.

【0104】なお、コンシステンシ制御部5′は、“書
き戻し要求”の応答として得られた書き戻しデータのう
ち1つのみが更新されている場合には、この更新された
書き戻しデータを発信したキャッシュ2a′または2
b′が最新のデータを保持していることが明らかである
ため、図19のステップS195において、当該キャッ
シュに対して“無効化要求”または“アップデートデー
タ”を発信せずにメッセージ数を削減することも可能で
ある。同様に、キャッシュミスによるメモリブロックの
入替えが原因で書き戻し処理を開始したキャッシュにつ
いても、当該メモリブロックのコピーは書き戻し処理の
完了によって破棄されることが明らかであるため、コン
システンシ制御部5′は当該キャッシュに対して“無効
化要求”または“アップデートデータ”を発信せずにメ
ッセージ数を削減することも可能である。
If only one of the write-back data obtained as a response to the "write-back request" has been updated, the consistency control unit 5 'transmits the updated write-back data. Cache 2a 'or 2
Since it is clear that b ′ holds the latest data, the number of messages is reduced without sending an “invalidation request” or “update data” to the cache in step S195 of FIG. It is also possible. Similarly, for a cache that has started write-back processing due to replacement of a memory block due to a cache miss, it is clear that a copy of the memory block is discarded upon completion of the write-back processing. 'Can also reduce the number of messages without sending an "invalidation request" or "update data" to the cache.

【0105】以上説明したように、本実施の形態におけ
るマルチプロセッサ装置においては、コンシステンシ制
御部5′の書き戻し処理中にキャッシュ内のメモリブロ
ックを無効化またはアップデートするようにしたので、
プロセッサによって当該メモリブロック内のデータがア
クセスされた場合に、キャッシュの処理負担を軽減する
ことが可能となった。
As described above, in the multiprocessor according to the present embodiment, the memory block in the cache is invalidated or updated during the write-back processing of the consistency control unit 5 '.
When the data in the memory block is accessed by the processor, the processing load on the cache can be reduced.

【0106】[実施の形態3]実施の形態3におけるマ
ルチプロセッサ装置は、実施の形態1または実施の形態
2におけるマルチプロセッサ装置の構成と同様である。
ただし、コンシステンシ制御部5または5′内の書き戻
しデータ統合部504の機能が異なる。したがって、こ
の書き戻しデータ統合部の参照符号を504′として説
明し、他の重複する構成および機能についての詳細な説
明は繰返さない。
[Third Embodiment] The multiprocessor device according to the third embodiment has the same configuration as the multiprocessor device according to the first or second embodiment.
However, the function of the write-back data integration unit 504 in the consistency control unit 5 or 5 'is different. Therefore, the reference numeral of the write-back data integration unit will be described as 504 ', and detailed description of other overlapping configurations and functions will not be repeated.

【0107】図21は、本実施の形態における書き戻し
データ統合部504′の概略構成を示すブロック図であ
る。書き戻しデータ統合部504′は、書き戻しデータ
4ワード分のデータを保持するためのレジスタ部51
0、レジスタ部510内のDフリップフロップアレイの
EN信号をマスクするためのマスク部511、およびレ
ジスタ部510から出力されるワードと書き戻しデータ
のワードとを比較するための比較部512を含む。レジ
スタ部510内のDフリップフロップは、EN信号が
“0”のとき入力タイミング信号CKに同期して入力デ
ータをDから取り込む。
FIG. 21 is a block diagram showing a schematic configuration of write-back data integration section 504 'in the present embodiment. The write-back data integration unit 504 'is a register unit 51 for holding data of four words of write-back data.
0, a mask unit 511 for masking the EN signal of the D flip-flop array in the register unit 510, and a comparing unit 512 for comparing a word output from the register unit 510 with a word of write-back data. The D flip-flop in the register unit 510 takes in input data from D in synchronization with the input timing signal CK when the EN signal is “0”.

【0108】レジスタ部510は、データワード分のD
フリップフロップアレイを4個含んでいる。また、比較
部512は、レジスタ部510から出力されるデータワ
ードと書き戻しデータのデータワードとを比較するコン
パレータが4個含まれている。
The register section 510 stores the data word D
It includes four flip-flop arrays. The comparing unit 512 includes four comparators for comparing the data word output from the register unit 510 with the data word of the write-back data.

【0109】図22は、図21に示す書き戻しデータ統
合部504′の動作を説明するための図である。まず、
レジスタ部510に主記憶3からのメモリブロックの内
容がロードされる。図22(a)に示すように、マスク
部511内のDフリップフロップの値はすべてリセット
されており、レジスタ部510には書き戻しデータに対
応する主記憶3内のメモリブロックの値がロードされて
いる。
FIG. 22 is a diagram for explaining the operation of write-back data integration section 504 'shown in FIG. First,
The contents of the memory block from the main memory 3 are loaded into the register unit 510. As shown in FIG. 22A, the values of the D flip-flops in the mask unit 511 are all reset, and the value of the memory block in the main memory 3 corresponding to the write-back data is loaded into the register unit 510. ing.

【0110】キャッシュから書き戻しデータが書き戻し
データ統合部504′に入力されると、比較部512内
のコンパレータのうち不一致となったコンパレータの出
力が“1”となる。たとえば、図22(b)に示すよう
に、データワード0のみが不一致となるとすると、コン
パレータ515の出力が“1”となり、OR回路517
の出力も“1”となる。入力タイミング信号が入力され
ると、レジスタ部510内のDフリップフロップアレイ
に書き戻しデータの内容が保持されるとともに、マスク
部511内のDフリップフロップ516の出力Qが
“1”となる。したがって、Dフリップフロップアレイ
514のEN信号が“1”となることにより、以後入力
タイミング信号がDフリップフロップアレイ514に入
力されたときにも、その保持する内容は更新されず、最
初の書き戻しデータのデータワード0の内容を保持し続
けることになる。このときのマスク部511およびレジ
スタ部510の内容を図22(b)に示す。
When the write-back data is input from the cache to the write-back data integration unit 504 ', the output of the comparator in the comparison unit 512 that has become inconsistent becomes "1". For example, as shown in FIG. 22B, assuming that only the data word 0 does not match, the output of the comparator 515 becomes “1” and the OR circuit 517
Also becomes “1”. When the input timing signal is input, the contents of the write-back data are held in the D flip-flop array in the register unit 510, and the output Q of the D flip-flop 516 in the mask unit 511 becomes “1”. Therefore, when the EN signal of the D flip-flop array 514 becomes “1”, even when an input timing signal is subsequently input to the D flip-flop array 514, the held content is not updated, and the first write-back is performed. The contents of data word 0 of the data will continue to be retained. FIG. 22B shows the contents of the mask unit 511 and the register unit 510 at this time.

【0111】同様に、図22(c)においてデータワー
ド3が更新され、図22(d)に示すようにデータワー
ド1が更新されて、書き戻しデータの統合が終了する。
このように、各書き戻しデータ内のどのデータワードが
更新されているかを示す情報が不要となるので、図23
に示すようにキャッシュ内におけるキャッシュエントリ
の管理情報部の内容を削減することが可能となる。すな
わち、更新ビットによってどのデータワードが更新され
ているかを示す必要がなく、更新ビットMによってデー
タワードのいずれかが更新されていることを表わせるよ
うにすればよいからである。
Similarly, in FIG. 22C, data word 3 is updated, and as shown in FIG. 22D, data word 1 is updated, and the integration of the write-back data is completed.
As described above, since information indicating which data word in each write-back data has been updated is unnecessary, FIG.
As shown in (1), the contents of the management information section of the cache entry in the cache can be reduced. That is, it is not necessary to indicate which data word is being updated by the update bit, and it is sufficient that the update bit M can indicate that any of the data words is being updated.

【0112】また、“書き戻しデータ”に個々のワード
についての更新状況を含める必要がなくなり、キャッシ
ュエントリ全体として更新されているか否かの情報を含
めればよい。したがって、図4に示すメッセージに付加
される情報は、図24に示すように変更される。
Further, it is not necessary to include the update status of each word in the “write-back data”, and it is sufficient to include information on whether or not the entire cache entry has been updated. Therefore, the information added to the message shown in FIG. 4 is changed as shown in FIG.

【0113】以上説明したように、本実施の形態におけ
るマルチプロセッサ装置によれば、キャッシュ内におけ
る各データワードに対応した更新ビットを不要とし、キ
ャッシュのデータ容量を有効に利用することができると
ともに、コンシステンシ制御部内の書き戻しデータ統合
部における処理のハードウェア化が容易となった。
As described above, according to the multiprocessor device of the present embodiment, the update bit corresponding to each data word in the cache is not required, and the data capacity of the cache can be effectively used. The processing in the write-back data integration unit in the consistency control unit can be easily implemented in hardware.

【0114】[実施の形態4]実施の形態4におけるマ
ルチプロセッサ装置は、実施の形態1または実施の形態
2におけるマルチプロセッサ装置の構成と同様である。
ただし、コンシステンシ制御部5または5′内の書き戻
しデータ統合部504の構成および機能のみが異なる。
したがって、重複する構成および機能についての詳細な
説明は繰返さない。なお、本実施の形態における書き戻
しデータ統合部の参照符号を504″として説明する。
[Fourth Embodiment] A multiprocessor device according to a fourth embodiment has the same configuration as the multiprocessor device according to the first or second embodiment.
However, only the configuration and function of the write-back data integration unit 504 in the consistency control unit 5 or 5 'are different.
Therefore, detailed description of the same configurations and functions will not be repeated. It is to be noted that the description will be made assuming that the reference numeral of the write-back data integration unit in this embodiment is 504 ″.

【0115】図25は、本実施の形態における書き戻し
データ統合部504″の概略構成を示すブロック図であ
る。書き戻しデータ統合部504″は、4データワード
分の内容を保持するためのレジスタ部510、書き戻し
データと主記憶3から読み出したメモリブロックとをデ
ータワードごとに選択して出力するためのセレクタ52
1a〜521d、レジスタ部510から出力されるデー
タワードとセレクタ521a〜521dから出力される
データワードとをビットごとに排他的論理和演算を行な
うための演算部520、1ビットのカウンタからなる計
数部522、およびAND回路523を含む。
FIG. 25 is a block diagram showing a schematic configuration of a write-back data integration section 504 "in the present embodiment. The write-back data integration section 504" has a register for holding the contents of four data words. A selector 510 for selecting and outputting the write-back data and the memory block read from the main memory 3 for each data word
1a to 521d, an operation unit 520 for performing an exclusive OR operation on the data words output from the register unit 510 and the data words output from the selectors 521a to 521d for each bit, and a counting unit including a 1-bit counter 522, and an AND circuit 523.

【0116】レジスタ部510および計数部522は、
書き戻しデータの統合処理開始時には、すべてリセット
されている。また、主記憶タイミング信号は“0”とな
っており、セレクタ521a〜521dは、書き戻しデ
ータを選択して出力している。コンシステンシ制御部5
または5′が書き戻しデータを受信すると、セレクタ5
21a〜521dに書き戻しデータが入力され、書き戻
しデータの入力に同期して入力タイミング信号がレジス
タ部510および計数部522に入力される。
The register unit 510 and the counting unit 522
At the start of the write-back data integration process, all of them are reset. The main memory timing signal is "0", and the selectors 521a to 521d select and output write-back data. Consistency control unit 5
Or 5 'receives the write-back data, the selector 5'
Write-back data is input to 21a to 521d, and an input timing signal is input to the register unit 510 and the counting unit 522 in synchronization with the input of the write-back data.

【0117】図26は、図25に示す書き戻しデータ統
合部504″の動作を説明するための図である。図26
(a)に示すように、レジスタ部510には初期値とし
てすべてのビットに“0”が設定されている。キャッシ
ュから最初の書き戻しデータを受信すると、セレクタ5
21a〜521dによって書き戻しデータが選択され演
算部520に書き戻しデータが入力される。たとえば、
データワード0が入力される排他的論理和522は、書
き戻しデータのデータワード0とレジスタ部510内の
Dフリップフロップアレイ514が出力するデータワー
ドとをビットごとに排他的論理和演算を行ない、その結
果が入力タイミング信号の立上がりによってDフリップ
フロップアレイ514に保持される。その演算結果を図
26(b)に示す。
FIG. 26 is a diagram for explaining the operation of write-back data integration unit 504 ″ shown in FIG.
As shown in (a), “0” is set in all bits in the register unit 510 as an initial value. When the first write-back data is received from the cache, the selector 5
The write-back data is selected by 21a to 521d, and the write-back data is input to the arithmetic unit 520. For example,
The exclusive OR 522 to which the data word 0 is input performs an exclusive OR operation for each bit of the data word 0 of the write-back data and the data word output by the D flip-flop array 514 in the register unit 510, The result is held in D flip-flop array 514 by the rise of the input timing signal. The calculation result is shown in FIG.

【0118】2番目の書き戻しデータを受信すると、最
初の書き戻しデータを受信したときと同様の処理を行な
い、その演算結果が図26(c)に示す値となる。さら
に、3番目の書き戻しデータを受信したときに、同様の
処理を行ない、その演算結果が図26(d)に示す値と
なる。
When the second write-back data is received, the same processing as when the first write-back data is received is performed, and the operation result becomes the value shown in FIG. 26 (c). Further, when the third write-back data is received, the same processing is performed, and the operation result becomes the value shown in FIG.

【0119】書き戻しデータをすべて受信した後に、主
記憶タイミング信号が“1”となり、セレクタ521a
〜521dは、主記憶データを選択して出力するように
なる。しかし、このときの計数部522の出力は“1”
であり、主記憶タイミング信号も“1”であるので、A
ND回路523は“1”を出力し、レジスタ部510内
の各DフリップフロップアレイのEN信号が“1”とな
る。したがって、入力タイミング信号が立上がっても、
レジスタ部510の内容は更新されず、図26(d)に
示す値が、最終的に統合された書き戻しデータの値とな
り、書き戻しデータ統合部504″から出力される。
After receiving all the write-back data, the main memory timing signal becomes "1" and the selector 521a
521d select and output the main storage data. However, the output of the counting unit 522 at this time is “1”.
Since the main memory timing signal is also “1”, A
The ND circuit 523 outputs “1”, and the EN signal of each D flip-flop array in the register unit 510 becomes “1”. Therefore, even if the input timing signal rises,
The contents of the register unit 510 are not updated, and the value shown in FIG. 26D is finally the value of the integrated write-back data, which is output from the write-back data integrating unit 504 ″.

【0120】図27は、書き戻しデータ数が2個の場合
の書き戻しデータ統合部504″の動作を説明するため
の図である。図26を用いて説明した処理と同様に、図
27(a)がレジスタ部510の初期値を示しており、
最初の書き戻しデータを受信したときの演算部520の
演算結果を図27(b)に示しており、2番目の書き戻
しデータを受信したときの演算部520の演算結果を図
27(c)に示している。
FIG. 27 is a diagram for explaining the operation of the write-back data integration unit 504 ″ when the number of write-back data is two. Similar to the processing described with reference to FIG. 26, FIG. a) shows the initial value of the register unit 510,
FIG. 27B shows the operation result of the operation unit 520 when the first write-back data is received, and FIG. 27C shows the operation result of the operation unit 520 when the second write-back data is received. Is shown in

【0121】しかし、2番目の書き戻しデータを受信し
た後、計数部522の出力は“0”となっており、主記
憶タイミング信号が“1”となってもAND回路523
は“0”を出力することになる。したがって、セレクタ
521a〜521dによって主記憶データが選択されて
出力され、演算部520によってレジスタ部510から
出力されるデータワードと主記憶データのデータワード
とがビットごとに排他的論理和演算され、その結果が入
力タイミング信号の立上がりによってレジスタ部510
に保持される。このときの演算結果が図27(d)に示
され、この演算結果が書き戻しデータ統合部504″か
ら出力される。
However, after receiving the second write-back data, the output of counter 522 is "0", and even if the main memory timing signal is "1", AND circuit 523 is output.
Outputs "0". Therefore, the main storage data is selected and output by the selectors 521a to 521d, and the data word output from the register unit 510 and the data word of the main storage data are subjected to an exclusive OR operation for each bit by the operation unit 520. The result is determined by the rise of the input timing signal.
Is held. The calculation result at this time is shown in FIG. 27D, and the calculation result is output from the write-back data integration unit 504 ″.

【0122】本実施の形態におけるマルチプロセッサ装
置によれば、実施の形態3におけるマルチプロセッサ装
置と同様に、キャッシュエントリを図23に示すものと
することができる。したがって各キャッシュは、キャッ
シュメモリの容量を有効に利用することができ、コンシ
ステンシ制御部における書き戻しデータ統合部504″
を簡易なハードウェアで実現することが可能となる。
According to the multiprocessor of the present embodiment, the cache entries can be those shown in FIG. 23, similarly to the multiprocessor of the third embodiment. Therefore, each cache can effectively use the capacity of the cache memory, and the write-back data integration unit 504 ″ in the consistency control unit.
Can be realized by simple hardware.

【0123】[実施の形態5]図28は、実施の形態5
におけるマルチプロセッサ装置の概略構成を示すブロッ
ク図である。本実施の形態におけるマルチプロセッサ装
置は、実施の形態3または実施の形態4におけるマルチ
プロセッサ装置の構成と同様である。ただし、プロセッ
サ1aおよび1bがプロセッサユニット700aおよび
700bに、キャッシュ2aおよび2bがプロトコル変
換部702aおよび702bに、プロセッサバス620
aおよび620bがスヌープバス703aおよび703
bに、それぞれ置換されている点のみが異なる。したが
って、重複する構成および機能についての詳細な説明は
繰り返さない。
[Embodiment 5] FIG. 28 shows Embodiment 5 of the present invention.
1 is a block diagram illustrating a schematic configuration of a multiprocessor device in FIG. The configuration of the multiprocessor according to the present embodiment is the same as the configuration of the multiprocessor according to the third or fourth embodiment. However, the processors 1a and 1b are provided in the processor units 700a and 700b, the caches 2a and 2b are provided in the protocol converters 702a and 702b, and the processor bus 620 is provided.
a and 620b are snoop buses 703a and 703
b differs only in that each is substituted. Therefore, detailed description of the same components and functions will not be repeated.

【0124】既存のマイクロプロセッサには、チップや
モジュールにプロセッサ本体だけでなくスヌープキャッ
シュも集積されているものが少なくない。また、このス
ヌープキャッシュは、複数の書き込み権の存在を許容す
るものではないが、プロセッサの同一チップまたは同一
モジュールに集積されているため、動作速度、消費電力
およびコストの点で優れている。
Many existing microprocessors integrate not only the processor itself but also a snoop cache on a chip or module. Although this snoop cache does not allow the existence of a plurality of write rights, it is integrated in the same chip or the same module of the processor, and thus is superior in operation speed, power consumption, and cost.

【0125】プロセッサユニット700aおよび700
bは、スヌープキャッシュを集積した既存のマイクロプ
ロセッサを想定しており、プロセッサ701aおよび7
01bと、スヌープキャッシュ704aおよび704b
とがそれぞれ集積されている。プロトコル変換部702
aおよび702bは、スヌープバス703aおよび70
3b上のバストランザクションと、キャッシュバス61
0aおよび610b上のメッセージとをそれぞれ相互に
変換する。通常、プロセッサユニット700aまたは7
00bに集積されたスヌープキャッシュ704aまたは
704bは、データワード毎の更新ビットを持たず、キ
ャッシュエントリにつき1つの更新ビットを持つのみで
ある。したがって、コンシステンシ制御部5は、実施の
形態3または実施の形態4に示したような書き戻しデー
タ統合部504’または504”を持たなければならな
い。
Processor units 700a and 700
b assumes an existing microprocessor with integrated snoop cache, and processors 701a and 701a
01b and snoop caches 704a and 704b
And are respectively integrated. Protocol converter 702
a and 702b are snoop buses 703a and 703b.
3b and the cache bus 61
0a and 610b, respectively. Usually, the processor unit 700a or 7
Snoop cache 704a or 704b integrated in 00b has no update bit per data word, only one update bit per cache entry. Therefore, the consistency control unit 5 must have the write-back data integration unit 504 ′ or 504 ″ as shown in the third or fourth embodiment.

【0126】図29は、プロトコル変換部702aおよ
び702bの概略構成を示すブロック図である。プロト
コル変換部702aおよび702bは、スヌープバス7
03aおよび703b上で発生するトランザクションに
対応した処理を行うトランザクション処理部710と、
プロトコル変換の全体的な制御を行うプロトコル変換制
御部711と、キャッシュバス610aまたは610b
を介して結合網4に接続される結合網インタフェース7
12とを含む。
FIG. 29 is a block diagram showing a schematic configuration of protocol conversion units 702a and 702b. The protocol converters 702a and 702b are connected to the snoop bus 7
A transaction processing unit 710 that performs a process corresponding to a transaction generated on the transaction 03a and the transaction 703b;
A protocol conversion control unit 711 for performing overall control of protocol conversion; and a cache bus 610a or 610b.
Network interface 7 connected to network 4 via
12 is included.

【0127】本実施の形態においては、プロセッサ70
1aまたは701bが、I/O(Input/Output)領域の
ある特定アドレスに対して書き戻すメモリブロックのア
ドレスをデータとして書き込むことにより、書き戻し指
示を発生させることとする。
In the present embodiment, the processor 70
It is assumed that the write-back instruction 1a or 701b generates a write-back instruction by writing, as data, an address of a memory block to be written to a specific address in an I / O (Input / Output) area.

【0128】図30は、この特定アドレスへのライトト
ランザクションがスヌープバス703aまたは703b
上に発生した場合のプロトコル変換部702aまたは7
02bの処理手順を説明するためのフローチャートであ
り、図17と同等の処理を示している。
FIG. 30 shows that a write transaction to this specific address is executed by snoop bus 703a or 703b.
Protocol conversion unit 702a or 7 when it occurs above
FIG. 18 is a flowchart for explaining the processing procedure of FIG. 02b, and shows processing equivalent to FIG.

【0129】プロトコル変換部702aまたは702b
は、書き戻し処理に必要なメッセージを交換すると共
に、ライトトランザクションが発生してから書き戻し処
理が完了するまでスヌープバス703aまたは703b
の利用権を占有する。プロトコル変換部702aまたは
702bによってスヌープバス703aまたは703b
の利用権が占有されることにより、プロセッサユニット
700aまたは700bは新たなバストランザクション
を発生させることができなくなる。このようにして、書
き戻し応答を受信する機構を持たない既存のプロセッサ
ユニットを用いた場合であっても、プロセッサユニット
が書き戻し処理の完了の通知を受信したのと同様の動作
を可能にしている。
Protocol converter 702a or 702b
Exchanges messages necessary for the write-back process, and executes a snoop bus 703a or 703b until the write-back process is completed after the write transaction occurs.
Occupy the right to use. Snoop bus 703a or 703b by protocol converter 702a or 702b
Is occupied, the processor unit 700a or 700b cannot generate a new bus transaction. In this way, even when an existing processor unit that does not have a mechanism for receiving a write-back response is used, the same operation as when the processor unit receives a notification of completion of the write-back process can be performed. I have.

【0130】トランザクション処理部710は、ライト
トランザクションが発生するとスヌープバス703aま
たは703bの利用権を獲得して、新たなバストランザ
クションの発生を抑制する(S1001)。プロトコル
変換制御部711は、結合網インタフェース712を介
してコンシステンシ制御部5へ、指定されたメモリブロ
ックのアドレスを含む“書き戻し開始メッセージ”を発
信する(S1002)。そして、プロトコル変換制御部
711は、コンシステンシ制御部5から“書き戻し要
求”が発信されるのを待つ(S1003)。
When a write transaction occurs, the transaction processing unit 710 acquires the right to use the snoop bus 703a or 703b, and suppresses the occurrence of a new bus transaction (S1001). The protocol conversion control unit 711 sends a “write back start message” including the address of the specified memory block to the consistency control unit 5 via the connection network interface 712 (S1002). Then, the protocol conversion control unit 711 waits for the transmission of the “write-back request” from the consistency control unit 5 (S1003).

【0131】プロトコル変換制御部711は、コンシス
テンシ制御部5から“書き戻し要求”を受信すると、ト
ランザクション処理部710に問い合わせトランザクシ
ョンを発生させる(S1004)。この問い合わせトラ
ンザクションとは、スヌープキャッシュ704aおよび
704bにメモリブロックのアドレスを与え、対応する
キャッシュエントリについての情報を問い合わせるトラ
ンザクションである。スヌープキャッシュ704aおよ
び704bは問い合わせトランザクションを受信する
と、当該キャッシュエントリがあるか否かを返送し、キ
ャッシュエントリがある場合にはそのキャッシュエント
リが更新されているか否かも返送する。さらには、スヌ
ープキャッシュ704aおよび704bは、そのキャッ
シュエントリが存在し、かつ更新されている場合にはキ
ャッシュエントリのデータも出力する。
Upon receiving the “write-back request” from the consistency control unit 5, the protocol conversion control unit 711 causes the transaction processing unit 710 to generate an inquiry transaction (S1004). The inquiry transaction is a transaction for giving the address of a memory block to the snoop caches 704a and 704b and inquiring information about a corresponding cache entry. Upon receiving the inquiry transaction, snoop caches 704a and 704b return whether or not the cache entry exists, and if there is a cache entry, also return whether or not the cache entry has been updated. Furthermore, snoop caches 704a and 704b also output cache entry data if the cache entry exists and has been updated.

【0132】プロトコル変換制御部711は、スヌープ
キャッシュ704aまたは704bにキャッシュエント
リが存在しない場合、またはキャッシュエントリが存在
するが更新されていない場合には、クリーンな“書き戻
しデータ”をコンシステンシ制御部5へ発信する。ま
た、プロトコル変換制御部711は、スヌープキャッシ
ュ704aまたは704bにキャッシュエントリが存在
し、かつ更新されている場合には更新されたデータを含
めた“書き戻しデータ”をコンシステンシ制御部5へ発
信する(S1005)。そして、プロトコル変換制御部
711は、コンシステンシ制御部5が“無効化要求”ま
たは“アップデートデータ”を発信するのを待つ(S1
006)。
If there is no cache entry in the snoop cache 704a or 704b, or if the cache entry exists but has not been updated, the protocol conversion control unit 711 sends clean "write-back data" to the consistency control unit. Call 5 When a cache entry exists in the snoop cache 704a or 704b and is updated, the protocol conversion control unit 711 transmits “write-back data” including the updated data to the consistency control unit 5. (S1005). Then, the protocol conversion control unit 711 waits for the consistency control unit 5 to transmit an “invalidation request” or “update data” (S1).
006).

【0133】プロトコル変換制御部711は、コンシス
テンシ制御部5から“無効化要求”または“アップデー
トデータ”を受信すると、それぞれに対応する処理を行
う。すなわち、プロトコル変換制御部711が“無効化
要求”を受信した場合には、トランザクション処理部7
10はスヌープキャッシュ704aおよび704bに当
該メモリブロックのアドレスを与え、対応するキャッシ
ュエントリを無効化させる。また、プロトコル変換制御
部711が“アップデートデータ”を受信した場合に
は、トランザクション処理部710はスヌープキャッシ
ュ704aおよび704bに当該メモリブロックのアド
レスとアップデートデータとを与え、対応するキャッシ
ュエントリを更新させる(S1007)。
When the protocol conversion control unit 711 receives an “invalidation request” or “update data” from the consistency control unit 5, it performs a corresponding process. That is, when the protocol conversion control unit 711 receives the “invalidation request”, the transaction processing unit 7
Numeral 10 gives the address of the memory block to the snoop caches 704a and 704b, and invalidates the corresponding cache entry. When the protocol conversion control unit 711 receives the “update data”, the transaction processing unit 710 gives the address of the memory block and the update data to the snoop caches 704a and 704b to update the corresponding cache entry ( S1007).

【0134】次に、プロトコル変換制御部711は、コ
ンシステンシ制御部5へ“無効化応答”または“アップ
デート応答”を発信し(S1008)、コンシステンシ
制御部5から“書き戻し完了メッセージ”が発信される
のを待つ(S1009)。プロトコル変換制御部711
がコンシステンシ制御部5から“書き戻し完了メッセー
ジ”を受信すると、トランザクション処理部710はス
ヌープバス703aおよび703bの利用権を開放して
(S1010)、処理を終了する。
Next, the protocol conversion control unit 711 sends an “invalidation response” or an “update response” to the consistency control unit 5 (S1008), and sends a “write back completion message” from the consistency control unit 5. It is waited for (S1009). Protocol conversion control unit 711
Receives the “write-back completion message” from the consistency control unit 5, the transaction processing unit 710 releases the right to use the snoop buses 703a and 703b (S1010), and ends the processing.

【0135】図31は、ライトバックトランザクション
がスヌープバス703aまたは703b上に発生した場
合におけるプロトコル変換部702aおよび702bの
処理手順を説明するためのフローチャートである。この
ライトバックトランザクションとは、スヌープキャッシ
ュ704aまたはスヌープキャッシュ704bが容量不
足となったときに発生させるトランザクションであっ
て、スヌープキャッシュ704aまたは704bが書き
戻すメモリブロックのアドレスと更新されたデータとを
出力することによって行なわれる。
FIG. 31 is a flowchart for explaining the processing procedure of protocol conversion units 702a and 702b when a write-back transaction occurs on snoop bus 703a or 703b. The write-back transaction is a transaction generated when the snoop cache 704a or 704b runs out of capacity, and outputs the address of the memory block to be rewritten by the snoop cache 704a or 704b and updated data. It is done by doing.

【0136】トランザクション処理部710がスヌープ
バス703aまたは703b上にライトバックトランザ
クションの発生を検知すると、プロトコル変換制御部7
11はコンシステンシ制御部5へ“書き戻し開始メッセ
ージ”を発信する(S1101)。そして、プロトコル
変換制御部711は、コンシステンシ制御部5から“書
き戻し要求”が発信されるのを待つ(S1102)。
When the transaction processing unit 710 detects the occurrence of a write-back transaction on the snoop bus 703a or 703b, the protocol conversion control unit 7
11 sends a "writeback start message" to the consistency control unit 5 (S1101). Then, the protocol conversion control unit 711 waits for the transmission of the “write-back request” from the consistency control unit 5 (S1102).

【0137】プロトコル変換制御部711は、コンシス
テンシ制御部5から“書き戻し要求”を受信すると、更
新されたデータを含めた“書き戻しデータ”をコンシス
テンシ制御部5へ発信する(S1103)。そして、プ
ロトコル変換制御部711は、コンシステンシ制御部5
が“無効化要求”または“アップデートデータ”を発信
するのを待つ(S1104)。
Upon receiving the "write-back request" from the consistency control unit 5, the protocol conversion control unit 711 transmits "write-back data" including the updated data to the consistency control unit 5 (S1103). Then, the protocol conversion control unit 711 controls the consistency control unit 5
Waits for an “invalidation request” or “update data” (S1104).

【0138】プロトコル変換制御部711は、コンシス
テンシ制御部5から“無効化要求”または“アップデー
トデータ”を受信すると、コンシステンシ制御部5へ
“無効化応答”または“アップデート応答”を発信し
(S1106)、コンシステンシ制御部5から“書き戻
し完了メッセージ”が発信されるのを待つ(S110
7)。ライトバックトランザクションの対象となったキ
ャッシュエントリは捨てられるため、無効化やアップデ
ートの処理は不要である。そして、プロトコル変換制御
部711は、コンシステンシ制御部5から“書き戻し完
了メッセージ”を受信すると、処理を終了する。
Upon receiving the “invalidation request” or “update data” from the consistency control unit 5, the protocol conversion control unit 711 sends an “invalidation response” or “update response” to the consistency control unit 5 ( S1106), and waits for the transmission of the “write-back completion message” from the consistency control unit 5 (S110).
7). Since the cache entry targeted for the write-back transaction is discarded, invalidation or update processing is unnecessary. Then, upon receiving the “write-back completion message” from the consistency control unit 5, the protocol conversion control unit 711 ends the processing.

【0139】図32は、“書き戻し要求”がキャッシュ
バス610aまたは610b上に発生した場合における
プロトコル変換部702aまたは702bの処理手順を
説明するためのフローチャートであり、図9の処理と同
等の処理を示している。
FIG. 32 is a flowchart for explaining the processing procedure of protocol conversion section 702a or 702b when a "write back request" occurs on cache bus 610a or 610b, and is equivalent to the processing of FIG. Is shown.

【0140】プロトコル変換制御部711がコンシステ
ンシ制御部5から“書き戻し要求”を受信すると、トラ
ンザクション処理部710に問い合わせトランザクショ
ンを発生させる(S1201)。プロトコル変換制御部
711は、“書き戻し要求”に対応するキャッシュエン
トリが存在しないか、またはメモリブロックが更新され
ていなければ、クリーンな“書き戻しデータ”をコンシ
ステンシ制御部5へ発信する。また、プロトコル変換制
御部711は、“書き戻し要求”に対応するキャッシュ
エントリが存在し、かつメモリブロックが更新されてい
れば、更新されたデータを含めた“書き戻しデータ”を
コンシステンシ制御部5へ発信し(S1202)、処理
を終了する。
When the protocol conversion control unit 711 receives a “write-back request” from the consistency control unit 5, it causes the transaction processing unit 710 to generate an inquiry transaction (S1201). The protocol conversion control unit 711 sends clean “write-back data” to the consistency control unit 5 if there is no cache entry corresponding to the “write-back request” or the memory block has not been updated. If the cache entry corresponding to the “write-back request” exists and the memory block has been updated, the protocol conversion control unit 711 sends the “write-back data” including the updated data to the consistency control unit. 5 (S1202), and the process ends.

【0141】図33は、“無効化要求”または“アップ
デートデータ”がキャッシュバス610aまたは610
b上に発生した場合におけるプロトコル変換部702a
または702bの処理手順を説明するためのフローチャ
ートであり、図18の処理と同等の処理を示している。
FIG. 33 shows that the "invalidation request" or "update data" is stored in the cache bus 610a or 610.
protocol conversion unit 702a when the error occurs on
19 is a flowchart for explaining the processing procedure of 702b, and shows processing equivalent to the processing of FIG.

【0142】プロトコル変換制御部711は、コンシス
テンシ制御部5から“無効化要求”または“アップデー
トデータ”を受信すると、それぞれに対応する処理を行
う。すなわち、プロトコル変換制御部711が“無効化
要求”を受信した場合には、トランザクション処理部7
10はスヌープキャッシュ704aまたは704bにメ
モリブロックのアドレスを与え、対応するキャッシュエ
ントリを無効化させる。また、プロトコル変換制御部7
11が“アップデートデータ”を受信した場合には、ト
ランザクション処理部710はスヌープキャッシュ70
4aまたは704bにメモリブロックのアドレスとアッ
プデートデータとを与え、対応するキャッシュエントリ
を更新させる(S1301)。そして、プロトコル変換
制御部711は、コンシステンシ制御部5へ“無効化応
答”または“アップデート応答”を発信して(S130
2)、処理を終了する。
When the protocol conversion control unit 711 receives an “invalidation request” or “update data” from the consistency control unit 5, it performs a corresponding process. That is, when the protocol conversion control unit 711 receives the “invalidation request”, the transaction processing unit 7
Numeral 10 gives the address of the memory block to the snoop cache 704a or 704b, and invalidates the corresponding cache entry. The protocol conversion control unit 7
11 receives the “update data”, the transaction processing unit 710 sends the snoop cache 70
The address of the memory block and the update data are given to 4a or 704b, and the corresponding cache entry is updated (S1301). Then, the protocol conversion control unit 711 sends an “invalidation response” or an “update response” to the consistency control unit 5 (S130).
2), end the process.

【0143】以上説明したように、本実施の形態におけ
るマルチプロセッサ装置においては、プロセッサとスヌ
ープキャッシュとを集積した既存のプロセッサユニット
を利用し、スヌープバス上のトランザクションとキャッ
シュバス上のメッセージとを相互に交換するプロトコル
変換部を設けたため、動作速度、消費電力およびコスト
の点において優れたマルチプロセッサ装置を構築するこ
とが可能となった。
As described above, in the multiprocessor device according to the present embodiment, an existing processor unit in which a processor and a snoop cache are integrated is used to exchange a transaction on the snoop bus and a message on the cache bus. Since a protocol conversion unit for replacement is provided, a multiprocessor device excellent in operation speed, power consumption and cost can be constructed.

【0144】[実施の形態6]図34は、実施の形態6
におけるマルチプロセッサ装置の概略構成を示すブロッ
ク図である。図1に示す実施の形態1におけるマルチプ
ロセッサ装置または実施の形態2〜4におけるマルチプ
ロセッサ装置と比較して、コンシステンシ制御部5また
は5′と主記憶3との間に共有補助キャッシュ7が設け
られた点のみが異なる。したがって、重複する構成およ
び機能についての詳細な説明は繰返さない。
[Embodiment 6] FIG. 34 shows a sixth embodiment.
1 is a block diagram illustrating a schematic configuration of a multiprocessor device in FIG. Compared with the multiprocessor device according to the first embodiment or the multiprocessor devices according to the second to fourth embodiments shown in FIG. 1, a shared auxiliary cache 7 is provided between the consistency control unit 5 or 5 'and the main memory 3. The only difference is that it was done. Therefore, detailed description of the same configurations and functions will not be repeated.

【0145】実施の形態1〜4におけるマルチプロセッ
サ装置においては、コンシステンシ制御部5または5′
が主記憶3にデータをアクセスすることにより処理を行
なっていたが、本実施の形態におけるコンシステンシ制
御部5または5′は共有補助キャッシュ7に対してデー
タをアクセスすることになる。共有補助キャッシュ7
は、キャッシュミスが発生したときにのみ、共有補助キ
ャッシュバス660を介して主記憶3にアクセスする。
一般に、共有補助キャッシュ7のアクセス速度は、主記
憶3のアクセス速度より高速であるため、マルチプロセ
ッサ装置全体の性能が向上することになる。また、実施
の形態3および4におけるマルチプロセッサ装置のコン
システンシ制御部5または5′は、書き戻しデータの統
合処理において主記憶3からデータを読出すため、共有
補助キャッシュ7が付加されることにより統合処理の高
速化も可能となる。この共有補助キャッシュ7は、ライ
トバックまたはライトスルー方式いずれでもよいが、主
記憶3への書込回数を削減するために、ライトバックキ
ャッシュにすることが望ましい。
In the multiprocessor devices according to the first to fourth embodiments, consistency control unit 5 or 5 '
Performs the processing by accessing data in the main memory 3, but the consistency control unit 5 or 5 ′ in the present embodiment accesses the data to the shared auxiliary cache 7. Shared auxiliary cache 7
Accesses the main memory 3 via the shared auxiliary cache bus 660 only when a cache miss occurs.
Generally, the access speed of the shared auxiliary cache 7 is higher than the access speed of the main memory 3, so that the performance of the entire multiprocessor device is improved. In addition, the consistency control unit 5 or 5 ′ of the multiprocessor in the third and fourth embodiments reads the data from the main memory 3 in the integration process of the write-back data, and thus the shared auxiliary cache 7 is added. It is also possible to speed up the integration processing. The shared auxiliary cache 7 may be of a write-back or write-through type, but is preferably a write-back cache in order to reduce the number of times of writing to the main memory 3.

【0146】また、キャッシュ2a,2a′,2bまた
は2b′と共有補助キャッシュ7との関係において、キ
ャッシュに格納されたメモリブロックが必ず補助キャッ
シュにも格納されるように制御する方法と、キャッシュ
に格納されたメモリブロックが必ずしも共有補助キャッ
シュ7に格納されてはいない制御方法とが考えられる。
以下、前者の制御方法をとる共有補助キャッシュを完全
補助キャッシュと呼び、後者の制御方法をとる共有補助
キャッシュを部分補助キャッシュと呼ぶことにする。完
全補助キャッシュを採用したマルチプロセッサ装置にお
いては、書き戻しデータの統合処理においてコンシステ
ンシ制御部5または5′は必ず共有補助キャッシュ7か
らデータを得ることができるので、主記憶3の内容が参
照されることがなくなり、統合処理が高速化される。ま
た、部分補助キャッシュを採用したマルチプロセッサ装
置においては、共有補助キャッシュ7の容量をキャッシ
ュの総容量よりも少なくすることができるため、共有補
助キャッシュ7の回路規模を小さくすることが可能とな
る。
In the relationship between the caches 2a, 2a ', 2b or 2b' and the shared auxiliary cache 7, a method for controlling a memory block stored in the cache so as to be surely stored in the auxiliary cache is also described. A control method in which the stored memory block is not always stored in the shared auxiliary cache 7 can be considered.
Hereinafter, the shared auxiliary cache that uses the former control method is called a complete auxiliary cache, and the shared auxiliary cache that uses the latter control method is called a partial auxiliary cache. In a multiprocessor device employing a complete auxiliary cache, the consistency control unit 5 or 5 'can always obtain data from the shared auxiliary cache 7 in the process of integrating write-back data, so the contents of the main memory 3 are referred to. And the speed of the integration process is increased. Further, in a multiprocessor device employing the partial auxiliary cache, the capacity of the shared auxiliary cache 7 can be made smaller than the total capacity of the cache, so that the circuit size of the shared auxiliary cache 7 can be reduced.

【0147】[実施の形態7]図35は、実施の形態7
におけるマルチプロセッサ装置の概略構成を示すブロッ
ク図である。図1に示す実施の形態1におけるマルチプ
ロセッサ装置と比較して、ディレクトリ部8が付加され
た点およびコンシステンシ制御部5の機能が追加された
点のみが異なる。したがって、重複する構成および機能
の詳細な説明については繰返さない。なお、本実施の形
態におけるコンシステンシ制御部の参照符号を5″とし
て説明する。ディレクトリ部8は、コンシステンシ制御
部バス630を通過するキャッシュ2aまたは2bとコ
ンシステンシ制御部5″との間で送受信されるメッセー
ジを監視することにより、各キャッシュにおけるメモリ
ブロックの状態を保持するものである。
[Seventh Embodiment] FIG.
1 is a block diagram illustrating a schematic configuration of a multiprocessor device in FIG. The difference from the multiprocessor device according to the first embodiment shown in FIG. 1 lies only in that a directory unit 8 is added and the function of the consistency control unit 5 is added. Therefore, detailed description of the same configurations and functions will not be repeated. The description of the consistency control unit in the present embodiment will be made with a reference numeral of 5 ″. The directory unit 8 is provided between the cache 2a or 2b passing through the consistency control unit bus 630 and the consistency control unit 5 ″. By monitoring transmitted and received messages, the state of the memory block in each cache is maintained.

【0148】図36は、本実施の形態におけるコンシス
テンシ制御部5″の概略構成を示すブロック図である。
本実施の形態におけるコンシステンシ制御部5″は、図
18に示す実施の形態2におけるコンシステンシ制御部
5′と比較して、シーケンサ501″がディレクトリ部
8に対してメモリブロックに対応するアドレスを出力
し、ディレクトリ部出力バス680を介して当該メモリ
ブロックの各キャッシュにおける状態を受信する機能が
追加された点のみが異なる。したがって、重複する構成
および機能の詳細な説明については繰返さない。
FIG. 36 is a block diagram showing a schematic configuration of a consistency control unit 5 ″ according to the present embodiment.
The consistency control unit 5 ″ of the present embodiment is different from the consistency control unit 5 ′ of the second embodiment shown in FIG. 18 in that the sequencer 501 ″ assigns an address corresponding to a memory block to the directory unit 8. The only difference is that the function of outputting the status of each memory block of the memory block via the directory part output bus 680 is added. Therefore, detailed description of the same configurations and functions will not be repeated.

【0149】図37は、本実施の形態におけるディレク
トリ部8の概略構成を示すブロック図である。ディレク
トリ部8は、複数のディレクトリエントリ800および
ディレクトリ部8の全体的な制御を行なうためのディレ
クトリ制御部803を含む。ディレクトリ制御部803
は、ディレクトリ部入力バス670を介してコンシステ
ンシ制御部バス630を通過するメッセージ(図2、図
3、図14および図15参照)を監視することにより、
各キャッシュ2aおよび2b内に保持されるメモリブロ
ックのアドレスおよび状態を、ディレクトリエントリ8
00内のアドレスタグ802と状態表示部Aおよび状態
表示部Bとに格納する。そして、コンシステンシ制御部
5″からディレクトリエントリの内容が参照されるとき
にアドレス出力690に対応するメモリブロックの状態
をディレクトリ部出力バス680を介して出力する。
FIG. 37 is a block diagram showing a schematic configuration of directory section 8 in the present embodiment. Directory section 8 includes a plurality of directory entries 800 and directory control section 803 for performing overall control of directory section 8. Directory control unit 803
Monitors messages passing through the consistency control unit bus 630 via the directory unit input bus 670 (see FIGS. 2, 3, 14, and 15).
The address and state of the memory block held in each of the caches 2a and 2b are stored in the directory entry 8
00 is stored in the address tag 802 and the status display unit A and the status display unit B in the address 00. Then, when the contents of the directory entry are referred to by the consistency control unit 5 ″, the state of the memory block corresponding to the address output 690 is output via the directory unit output bus 680.

【0150】図38は、状態表示部AまたはBの内容に
対応するキャッシュ内のメモリブロックの状態を説明す
るための図である。状態表示部の内容が“無効”の場
合、当該キャッシュはアドレスタグに対応するメモリブ
ロックのコピーを持たないことを示している。状態表示
部の内容が“クリーン”の場合、当該キャッシュにアド
レスタグに対応するメモリブロックのコピーがあり、そ
のメモリブロックの内容が更新されていないことを示し
ている。また、状態表示部の内容が“更新済み”の場
合、当該キャッシュ内にアドレスタグに対応するメモリ
ブロックのコピーが保持されており、そのメモリブロッ
クの内容が既に更新されていることを示している。
FIG. 38 is a diagram for explaining the state of the memory block in the cache corresponding to the contents of state display section A or B. When the content of the status display section is "invalid", it indicates that the cache does not have a copy of the memory block corresponding to the address tag. When the content of the status display section is "clean", it indicates that the cache has a copy of the memory block corresponding to the address tag and the content of the memory block has not been updated. When the content of the status display section is "updated", a copy of the memory block corresponding to the address tag is held in the cache, indicating that the content of the memory block has already been updated. .

【0151】図39は、ディレクトリ制御部803がメ
ッセージを受信したときに、ディレクトリ制御部803
によって更新される状態表示部の内容を説明するための
図である。ディレクトリ制御部803が“無効化要求”
を受信すると、当該キャッシュの当該メモリブロックの
状態表示部801aまたは801bの内容を参照し、そ
の内容が“無効”または“クリーン”の場合には、その
状態表示部の内容を“無効”に更新する。
FIG. 39 shows that the directory control unit 803 receives the message when the directory control unit 803 receives the message.
FIG. 7 is a diagram for explaining the contents of the status display unit updated by the process. The directory control unit 803 sets an “invalidation request”
Is received, the contents of the status display unit 801a or 801b of the memory block of the cache are referred to, and if the content is “invalid” or “clean”, the content of the status display unit is updated to “invalid”. I do.

【0152】ディレクトリ制御部803が“アップデー
トデータ”を受信すると、当該メモリブロックに対応す
るディレクトリエントリの状態表示部を参照し、当該キ
ャッシュに対応する状態表示部の内容が“クリーン”で
ある場合には、そのまま状態表示部の内容を“クリー
ン”とする。
When the directory control unit 803 receives the "update data", the directory control unit 803 refers to the status display unit of the directory entry corresponding to the memory block, and if the content of the status display unit corresponding to the cache is "clean". Changes the content of the status display section to "clean".

【0153】ディレクトリ制御部803が“書き戻し要
求”を受信すると、当該メモリブロックに対応するディ
レクトリエントリ800内の状態表示部を参照し、当該
キャッシュに対応する状態表示部の内容が“無効”の場
合には、そのまま“無効”とする。また、状態表示部の
内容が“クリーン”または“更新済み”の場合には、そ
の状態表示部の内容を“クリーン”に更新する。
When directory control section 803 receives the "write-back request", it refers to the status display section in directory entry 800 corresponding to the memory block, and sets the contents of the status display section corresponding to the cache to "invalid". In this case, it is set to “invalid”. When the content of the status display section is “clean” or “updated”, the content of the status display section is updated to “clean”.

【0154】ディレクトリ制御部803が“読出要求”
を受信すると、当該メモリブロックに対応するディレク
トリエントリ800内の状態表示部を参照し、当該キャ
ッシュに対応する状態表示部の内容が“無効”の場合に
は、この状態表示部の内容を“クリーン”に更新する。
When directory control unit 803 determines “read request”
Is received, the status display section in the directory entry 800 corresponding to the memory block is referred to, and when the content of the status display section corresponding to the cache is “invalid”, the content of the status display section is “cleaned”. To ".

【0155】また、ディレクトリ制御部803が“書込
権獲得メッセージ”を受信したとき、当該メモリブロッ
クに対応するディレクトリエントリ800内の状態表示
部を参照し、当該キャッシュに対応する状態表示部の内
容が“クリーン”の場合には、この状態表示部の内容を
“更新済み”に更新する。
When directory control section 803 receives the "write right acquisition message", it refers to the state display section in directory entry 800 corresponding to the memory block, and reads the contents of the state display section corresponding to the cache. Is "clean", the content of the status display section is updated to "updated".

【0156】図40および図41は、“書込権獲得要
求”の内容および付加される情報を説明するための図で
ある。“書込権獲得要求”は、キャッシュ2aまたは2
bからコンシステンシ制御部5″へ発信されるメッセー
ジであり、ディレクトリ部8内のメモリブロックに対応
するディレクトリエントリ800内の当該キャッシュに
対応する状態表示部の内容を“更新済み”に変更するこ
とを要求するメッセージである。この“書込権獲得要
求”には、書込権獲得処理の対象となるメモリブロック
のアドレス情報が付加されている。
FIGS. 40 and 41 are diagrams for explaining the contents of the “write right acquisition request” and the information to be added. The “write right acquisition request” is sent to the cache 2a or 2
b is a message transmitted to the consistency control unit 5 ″, and the content of the status display unit corresponding to the cache in the directory entry 800 corresponding to the memory block in the directory unit 8 is changed to “updated”. The "write right acquisition request" is added with address information of the memory block to be subjected to the write right acquisition processing.

【0157】図42は、ディレクトリ部8内のディレク
トリエントリ800の内容とキャッシュ内のキャッシュ
エントリの内容との関係を示す図である。図42(a)
に示すように、ディレクトリエントリの内容がの場合
には、キャッシュA内には対応するメモリブロックが存
在せず、キャッシュB内には″に示すように対応する
メモリブロックが存在するが、更新はされていない。ま
た、図42(a)に示すディレクトリ部8内のディレク
トリエントリがに示す内容の場合、図42(b)に示
すようにキャッシュA内に対応するメモリブロックが存
在し、その内容は既に更新されている。また、キャッシ
ュB内には、″に示すように対応するメモリブロック
が存在し、その内容が既に更新されていることを示して
いる。同様に、図42(a)内の〜の内容が、図4
2(b)に示す′および″、′、″にそれぞれ
対応していることを示している。
FIG. 42 is a diagram showing the relationship between the contents of the directory entry 800 in the directory section 8 and the contents of the cache entry in the cache. FIG. 42 (a)
As shown in FIG. 7, when the contents of the directory entry are, there is no corresponding memory block in the cache A, and there is a corresponding memory block in the cache B as shown by ". When the directory entry in the directory section 8 shown in FIG. 42A has the content shown in FIG. 42A, the corresponding memory block exists in the cache A as shown in FIG. Has already been updated. In the cache B, there is a corresponding memory block as shown by "", indicating that the contents have been already updated. Similarly, the contents of to in FIG.
2 (b) and ",", "", respectively.

【0158】図43は、状態表示部の内容とコンシステ
ンシ制御部5″が発信するメッセージとの対応関係を示
す図である。コンシステンシ制御部5″は、状態表示部
の内容が“無効”の場合には、当該キャッシュにはメッ
セージを発信しない。また、状態表示部の内容が“クリ
ーン”の場合には、コンシステンシ制御部5″は当該キ
ャッシュに当該メモリブロックに対応する“無効化要
求”または“アップデートデータ”を発信する。また、
状態表示部の内容が“更新済み”の場合には、コンシス
テンシ制御部5″は“書き戻し要求”の後当該キャッシ
ュに当該メモリブロックに対応する“無効化要求”また
は“アップデートデータ”を発信する。
FIG. 43 is a diagram showing the correspondence between the contents of the status display section and the messages transmitted by the consistency control section 5 ". The consistency control section 5" has the content of the status display section of "invalid". In this case, no message is sent to the cache. When the content of the status display section is "clean", the consistency control section 5 "sends an" invalidation request "or" update data "corresponding to the memory block to the cache.
If the contents of the status display section are "updated", the consistency control section 5 "sends an" invalidation request "or" update data "corresponding to the memory block to the cache after the" writeback request ". I do.

【0159】図44は、本実施の形態におけるコンシス
テンシ制御部5″の処理手順を説明するためのフローチ
ャートである。コンシステンシ制御部5″は、キャッシ
ュ2aまたは2bから“書き戻し開始メッセージ”を受
信すると、現在進行中の書き戻し処理があるか否かを判
定する(S371)。進行中の書き戻し処理がある場合
(S371,Yes)、処理を保留する。また、進行中
の書き戻し処理がない場合(S371,No)、シーケ
ンサ501″を起動する。シーケンサ501″は、ディ
レクトリ部8へアドレスを出力し、このアドレスに対応
するメモリブロックのディレクトリエントリの内容(状
態表示部)を読込む。そして、シーケンサ501″は、
対応する状態表示部の内容が“更新済み”であるキャッ
シュへ“書き戻し要求”を発信するようにメッセージ発
信部503′に指示する(S372)。
FIG. 44 is a flowchart for explaining the processing procedure of consistency control unit 5 ″ in the present embodiment. Consistency control unit 5 ″ transmits a “write back start message” from cache 2a or 2b. Upon reception, it is determined whether or not there is a write-back process currently in progress (S371). If there is a write-back process in progress (S371, Yes), the process is suspended. If there is no ongoing write-back processing (S371, No), the sequencer 501 ″ is started. The sequencer 501 ″ outputs an address to the directory section 8, and the contents of the directory entry of the memory block corresponding to this address. (Status display section). And the sequencer 501 ″
The message sending unit 503 'is instructed to send a "write-back request" to the cache whose corresponding content of the status display unit is "updated" (S372).

【0160】コンシステンシ制御部5″に書き戻しデー
タが受信されると、シーケンサ501″は書き戻しデー
タ統合部504に書き戻しデータの統合処理を行なわせ
(S373)、書き戻しデータ統合部504は統合した
書き戻しデータを主記憶バス640を介して主記憶3に
格納する(S374)。そして、コンシステンシ制御部
5″は、“書き戻し開始メッセージ”を発信したキャッ
シュに対して“書き戻し完了メッセージ”を発信し(S
375)、処理を終了する。
When the write-back data is received by the consistency control unit 5 ″, the sequencer 501 ″ causes the write-back data integration unit 504 to perform the integration processing of the write-back data (S373). The integrated write-back data is stored in the main memory 3 via the main memory bus 640 (S374). Then, the consistency control unit 5 ″ sends a “write-back completion message” to the cache that sent the “write-back start message” (S
(375), and terminate the process.

【0161】図45は、本実施の形態におけるコンシス
テンシ制御部5″が“書き戻し開始メッセージ”を受信
したときの他の処理を説明するためのフローチャートで
ある。コンシステンシ制御部5″は、キャッシュ2aま
たは2bから“書き戻し開始メッセージ”を受信する
と、現在進行中の書き戻し処理があるか否かを判定する
(S381)。進行中の書き戻し処理がある場合(S3
81,Yes)、処理を保留する。また、進行中の書き
戻し処理がない場合(S381,No)、メッセージ受
信部502′はシーケンサ501″を起動する。シーケ
ンサ501″は、ディレクトリ部8に対してアドレスを
出力し、ディレクトリ部8からこのアドレスに対応する
ディレクトリエントリ800の内容(状態表示部)をデ
ィレクトリ部出力バス680を介して受信する。
FIG. 45 is a flowchart for explaining another process when the consistency control unit 5 ″ according to the present embodiment receives a “write-back start message”. Upon receiving the "write-back start message" from the cache 2a or 2b, it is determined whether or not there is a write-back process currently in progress (S381). When there is a write-back process in progress (S3
81, Yes), suspend the processing. If there is no ongoing write-back process (S381, No), the message receiving unit 502 'activates the sequencer 501 ". The sequencer 501" outputs an address to the directory unit 8, and outputs the address to the directory unit 8. The contents (status display section) of directory entry 800 corresponding to this address are received via directory section output bus 680.

【0162】シーケンサ501″は、ディレクトリ部8
から受信した状態表示部を参照し、対応する状態表示部
が“更新済み”であるキャッシュに対して“書き戻し要
求”を発信するようメッセージ発信部503′に指示す
る(S382)。そして、シーケンサ501″は書き戻
しデータ統合部504を起動することにより、書き戻し
データ統合部504は受信した書き戻しデータを統合し
(S383)、統合した書き戻しデータを主記憶バス6
40を介して主記憶3に格納する(S384)。
The sequencer 501 ″ has a directory section 8
, And instructs the message transmission unit 503 'to transmit a "write-back request" to the cache whose corresponding status display unit is "updated" (S382). Then, the sequencer 501 ″ activates the write-back data integration unit 504, so that the write-back data integration unit 504 integrates the received write-back data (S383), and transfers the integrated write-back data to the main storage bus 6.
The data is stored in the main memory 3 via 40 (S384).

【0163】次に、シーケンサ501″は、ディレクト
リ部8から受信した状態表示部を参照することにより、
対応する状態表示部の内容が“クリーン”であるキャッ
シュに対して“無効化要求”または“アップデートデー
タ”を発信する(S385)。そして、“無効化要求”
または“アップデートデータ”を発信した宛先のキャッ
シュから“無効化応答”または“アップデート応答”が
発信されるのを待ち(S386)、すべての“無効化応
答”または“アップデート応答”を受信したときに、
“書き戻し開始メッセージ”を発信したキャッシュに対
して“書き戻し完了メッセージ”を発信し(S38
7)、処理を終了する。
Next, the sequencer 501 ″ refers to the status display section received from the directory section 8, and
An "invalidation request" or "update data" is transmitted to a cache whose corresponding content of the status display section is "clean" (S385). Then, "Invalidation request"
Alternatively, it waits for an “invalidation response” or “update response” to be transmitted from the cache of the destination that has transmitted “update data” (S386), and when all “invalidation response” or “update response” are received. ,
A “write-back completion message” is sent to the cache that sent the “write-back start message” (S38).
7), the process ends.

【0164】また、キャッシュ2aまたは2bとディレ
クトリ部8との関係において、キャッシュ2aまたは2
bに格納されたメモリブロックのエントリが必ずディレ
クトリ部8に格納されるように制御する方法と、キャッ
シュ2aまたは2bに格納されたメモリブロックのエン
トリが必ずしもディレクトリ部8には格納されていない
ように制御する方法とが考えられる。以下、前者の制御
方法をとるディレクトリ部を完全ディレクトリと呼び、
後者の制御方法をとるディレクトリ部を部分ディレクト
リと呼ぶことにする。部分ディレクトリを採用するマル
チプロセッサ装置においては、ディレクトリエントリを
読出せなかった場合には、コンシステンシ制御部5″は
すべてのキャッシュに対して“書き戻し要求”、“無効
化要求”または“アップデートデータ”を発信すること
になる。またディレクトリの容量が不足した場合にどの
ディレクトリエントリを捨てるかを決定するLRUフィ
ールドをディレクトリエントリに含める必要がある。
In the relationship between the cache 2a or 2b and the directory section 8, the cache 2a or 2b
b, so that the entry of the memory block stored in the cache 2a or 2b is not always stored in the directory unit 8. A control method is conceivable. Hereinafter, the directory part that adopts the former control method is called a complete directory,
The directory part that adopts the latter control method is called a partial directory. In a multiprocessor device employing a partial directory, when a directory entry cannot be read, the consistency control unit 5 "sends a" write-back request "," invalidation request ", or" update data "to all caches. And an LRU field for determining which directory entry should be discarded when the directory capacity is insufficient is included in the directory entry.

【0165】図46は、ディレクトリ部8の制御方法と
コンシステンシ制御部5″の処理手順との関係を示す図
である。ディレクトリ部8が完全ディレクトリの場合、
コンシステンシ制御部5″が“無効化要求”および“ア
ップデート要求”を発信しない場合には、図44に示す
フローチャートに従って処理を行なう。また、コンシス
テンシ制御部5″が“無効化要求”または“アップデー
ト要求”を発信する場合には、図45に示すフローチャ
ートに従って処理を行なう。
FIG. 46 is a diagram showing the relationship between the control method of the directory unit 8 and the processing procedure of the consistency control unit 5 ″. When the directory unit 8 is a complete directory,
If the consistency control unit 5 "does not transmit the" invalidation request "and" update request ", the processing is performed according to the flowchart shown in Fig. 44. The consistency control unit 5" performs the "invalidation request" or " When an "update request" is transmitted, processing is performed according to the flowchart shown in FIG.

【0166】また、ディレクトリ部8が部分ディレクト
リの場合、ディレクトリ部8に対応するディレクトリエ
ントリがあり、コンシステンシ制御部5″が“無効化要
求”および“アップデート要求”を発信しない場合に
は、図44に示すフローチャートに従って処理を行な
う。また、ディレクトリ部8内に対応するディレクトリ
エントリがあり、コンシステンシ制御部5″が“無効化
要求”または“アップデート要求”を発信する場合に
は、コンシステンシ制御部5″は図45に示すフローチ
ャートに従って処理を行なう。
If the directory section 8 is a partial directory, there is a directory entry corresponding to the directory section 8, and if the consistency control section 5 ″ does not send “invalidation request” and “update request”, The process is performed in accordance with the flowchart shown in Fig. 44. If there is a corresponding directory entry in the directory section 8 and the consistency control section 5 "issues an" invalidation request "or" update request ", the consistency control is performed. The unit 5 ″ performs processing according to the flowchart shown in FIG.

【0167】さらには、ディレクトリ部8が部分ディレ
クトリであり、ディレクトリ部分8に対応するディレク
トリがなく、コンシステンシ制御部5″が“無効化要
求”および“アップデート要求”を発信しない場合に
は、コンシステンシ制御部5″は図10に示すフローチ
ャートに従って処理を行なう。また、ディレクトリ部8
に対応するディレクトリがなく、コンシステンシ制御部
5″が“無効化要求”または“アップデート要求”を発
信する場合には、コンシステンシ制御部5″は図19に
示すフローチャートに従って処理を行なう。
Furthermore, if the directory section 8 is a partial directory, there is no directory corresponding to the directory section 8 and the consistency control section 5 ″ does not send out “invalidation request” and “update request”, The tension control unit 5 ″ performs processing according to the flowchart shown in FIG. Also, the directory section 8
Does not exist and the consistency control unit 5 ″ issues an “invalidation request” or an “update request”, the consistency control unit 5 ″ performs processing according to the flowchart shown in FIG.

【0168】以上説明したように、本実施の形態におけ
るマルチプロセッサ装置によれば、ディレクトリ部8を
設けることにより、メモリブロックのコピーを持たない
キャッシュに対して無駄なメッセージが発信されること
がなくなり、結合網4の負荷を軽減することが可能とな
った。また、メモリブロックのコピーを持たないキャッ
シュが、メッセージを受信することにより存在しないア
ドレスタグを検索することによるオーバーヘッドを削減
することが可能となった。さらには、コンシステンシ制
御部5″内の書き戻しデータ統合部504が図25に示
す回路構成である場合、“更新済み”を示す状態表示部
の数を計数することにより、計数部522による計数と
同じ結果が得られるようになり、計数部522を削減す
ることが可能となる。
As described above, according to the multiprocessor of this embodiment, provision of the directory section 8 prevents unnecessary messages from being transmitted to the cache having no copy of the memory block. Thus, the load on the connection network 4 can be reduced. Further, it is possible to reduce the overhead caused by a cache having no copy of a memory block and searching for a nonexistent address tag by receiving a message. Furthermore, when the write-back data integration unit 504 in the consistency control unit 5 ″ has the circuit configuration shown in FIG. 25, the counting unit 522 counts the number of status display units indicating “updated”. As a result, the same result as described above can be obtained, and the number of counting units 522 can be reduced.

【0169】[実施の形態8]図47は、実施の形態8
におけるマルチプロセッサ装置の概略構成を示すブロッ
ク図である。本実施の形態におけるマルチプロセッサ装
置は、図35に示す実施の形態7におけるマルチプロセ
ッサ装置と比較して、ディレクトリ部8がディレクトリ
部・共有補助キャッシュ9に置換され、さらにこのディ
レクトリ部・共有補助キャッシュ9がコンシステンシ制
御部5″と主記憶3との間の制御を行なう点のみが異な
る。したがって、重複する構成および機能の詳細な説明
は繰返さない。
[Eighth Embodiment] FIG. 47 shows an eighth embodiment.
1 is a block diagram illustrating a schematic configuration of a multiprocessor device in FIG. The multiprocessor device according to the present embodiment is different from the multiprocessor device according to the seventh embodiment shown in FIG. 35 in that the directory section 8 is replaced with a directory section / shared auxiliary cache 9, and the directory section / shared auxiliary cache 9 is further provided. 9 only controls the consistency control unit 5 ″ and the main memory 3. Therefore, the detailed description of the overlapping configuration and functions will not be repeated.

【0170】図48は、ディレクトリ部・共有補助キャ
ッシュ9の概略構成を示すブロック図である。ディレク
トリ部・共有補助キャッシュ9は、図37に示すディレ
クトリ部8と比較して、ディレクトリエントリ800が
ディレクトリ/キャッシュエントリ800′に置換され
ている点、および共有補助キャッシュ制御部805が追
加された点のみが異なる。したがって、重複する構成お
よび機能の詳細な説明は繰返さない。ディレクトリ/キ
ャッシュエントリ800′は、アドレスタグ802、状
態表示部A、状態表示部Bおよび補助キャッシュ部80
4を含む。本ディレクトリ部が部分ディレクトリとして
制御されるならば前述のようにLRUフィールドを加え
る必要がある。アドレスタグ802、状態表示部Aおよ
び状態表示部Bは、図37に示すディレクトリ部8に含
まれるものと同じものである。また、補助キャッシュ部
804は、図23に示すキャッシュエントリからアドレ
スタグおよびLRUフィールドを削除したものである。
FIG. 48 is a block diagram showing a schematic configuration of the directory unit / shared auxiliary cache 9. As shown in FIG. The directory part / shared auxiliary cache 9 is different from the directory part 8 shown in FIG. 37 in that the directory entry 800 is replaced with a directory / cache entry 800 ′ and that a shared auxiliary cache control unit 805 is added. Only differ. Therefore, detailed description of the same configurations and functions will not be repeated. The directory / cache entry 800 ′ includes an address tag 802, a status display A, a status display B, and an auxiliary cache 80.
4 inclusive. If the main directory is controlled as a partial directory, it is necessary to add the LRU field as described above. The address tag 802, the status display section A and the status display section B are the same as those included in the directory section 8 shown in FIG. The auxiliary cache unit 804 is obtained by deleting the address tag and the LRU field from the cache entry shown in FIG.

【0171】コンシステンシ制御部5″が主記憶バス6
40を介してデータをアクセスすると、共有補助キャッ
シュ制御部805は対応するメモリブロックのディレク
トリ/キャッシュエントリ800′内の有効ビットVを
調べることにより、キャッシュヒットしたか否かを判定
する。キャッシュヒットした場合には、共有補助キャッ
シュ制御部805は補助キャッシュ部804のメモリブ
ロックをコンシステンシ制御部5″へ発信する。また、
キャッシュミスの場合には、共有補助キャッシュバスを
介して主記憶3からメモリブロックを読出すとともに、
当該メモリブロックをコンシステンシ制御部5″へ発信
する。
The consistency control unit 5 ″ is connected to the main memory bus 6
When the data is accessed via 40, the shared auxiliary cache control unit 805 checks the valid bit V in the directory / cache entry 800 'of the corresponding memory block to determine whether or not a cache hit has occurred. When a cache hit occurs, the shared auxiliary cache control unit 805 sends the memory block of the auxiliary cache unit 804 to the consistency control unit 5 ″.
In the case of a cache miss, the memory block is read from the main memory 3 via the shared auxiliary cache bus, and
The memory block is transmitted to the consistency control unit 5 ″.

【0172】以上説明したように、本実施の形態におけ
るマルチプロセッサ装置によれば、ディレクトリエント
リと共有補助キャッシュにおけるキャッシュエントリと
を統合することができ、回路規模を縮小することが可能
となる。
As described above, according to the multiprocessor of the present embodiment, the directory entry and the cache entry in the shared auxiliary cache can be integrated, and the circuit size can be reduced.

【0173】[実施の形態9]実施の形態9におけるマ
ルチプロセッサ装置は、実施の形態2におけるマルチプ
ロセッサ装置の構成と同様である。ただし、図4に示す
キャッシュ内のキャッシュ制御部22′の機能のみが異
なる。したがって、重複する構成および機能の詳細な説
明は繰返さない。なお、本実施の形態におけるキャッシ
ュ制御部の参照符号を22″として説明する。
Ninth Embodiment A multiprocessor according to a ninth embodiment has the same configuration as the multiprocessor according to the second embodiment. However, only the function of the cache control unit 22 'in the cache shown in FIG. 4 is different. Therefore, detailed description of the same configurations and functions will not be repeated. It is to be noted that a description will be made assuming that the reference numeral of the cache control unit in the present embodiment is 22 ″.

【0174】本実施の形態におけるキャッシュは、プロ
セッサ1aまたは1bによって実行される特殊ストア命
令を検出する。この特殊ストア命令とは、キャッシュ内
にデータをストアするとともに、このデータを直ちに主
記憶3に反映させる機能をも有する命令のことである。
The cache according to the present embodiment detects a special store instruction executed by processor 1a or 1b. The special store instruction is an instruction that stores data in the cache and also has a function of immediately reflecting the data in the main memory 3.

【0175】図49は、本実施の形態におけるキャッシ
ュの処理手順を説明するためのフローチャートである。
プロセッサ1aまたは1bが特殊ストア命令を実行する
と、キャッシュは当該特殊ストア命令を検出し、データ
ワードがキャッシュにヒットしたか否かを判定する(S
421)。キャッシュにヒットした場合は(S421,
Yes)、ステップS424へ進む。また、キャッシュ
ミスの場合には(S421,No)、コンシステンシ制
御部5′へ“読出要求”を発信し(S422)、コンシ
ステンシ制御部5′を介して読出データを受信する(S
423)。
FIG. 49 is a flow chart for explaining a cache processing procedure according to the present embodiment.
When the processor 1a or 1b executes the special store instruction, the cache detects the special store instruction and determines whether or not the data word has hit the cache (S
421). If the cache is hit (S421,
Yes), proceed to step S424. In the case of a cache miss (S421, No), a "read request" is transmitted to the consistency control unit 5 '(S422), and read data is received via the consistency control unit 5' (S422).
423).

【0176】ステップS424において、キャッシュ制
御部22″は、キャッシュセット群24内の当該データ
ワードを含むメモリブロックのキャッシュエントリを更
新し(S424)、結合網インターフェイス23を介し
てコンシステンシ制御部5′へ“書き戻し開始メッセー
ジ”を発信する(S425)。そして、コンシステンシ
制御部5′から“書き戻し要求”を受信すると(S42
6)、コンシステンシ制御部5′へ“書き戻しデータ”
を発信する(S427)。そして、コンシステンシ制御
部5′から“無効化要求”を受信し(S428)、当該
キャッシュエントリを無効化し(S429)、コンシス
テンシ制御部5′から“書き戻し完了メッセージ”を受
信し(S430)、処理を終了する。
In step S424, the cache control unit 22 ″ updates the cache entry of the memory block including the data word in the cache set group 24 (S424), and the consistency control unit 5 ′ via the connection network interface 23. (S425), and receives a "writeback request" from the consistency control unit 5 '(S42).
6), "write-back data" to the consistency control unit 5 '
Is transmitted (S427). Then, an "invalidation request" is received from the consistency control unit 5 '(S428), the cache entry is invalidated (S429), and a "write-back completion message" is received from the consistency control unit 5' (S430). , And the process ends.

【0177】以上説明したように、本実施の形態におけ
るマルチプロセッサ装置によれば、プロセッサが特殊ス
トア命令を実行する際に、キャッシュがコンシステンシ
制御部5′へ“書き戻し開始メッセージ”を発信するこ
とにより、プロセッサがキャッシュに書込むデータワー
ドが直ちに主記憶3に反映され、他のすべてのプロセッ
サがこのメモリブロックの内容を参照できるようにな
る。
As described above, according to the multiprocessor of this embodiment, when the processor executes the special store instruction, the cache transmits a "write back start message" to consistency control unit 5 '. As a result, the data word that the processor writes to the cache is immediately reflected in the main memory 3, and all other processors can refer to the contents of this memory block.

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

【図1】本発明の実施の形態1におけるマルチプロセッ
サ装置の概略構成を示すブロック図である。
FIG. 1 is a block diagram illustrating a schematic configuration of a multiprocessor device according to a first embodiment of the present invention.

【図2】本発明の実施の形態1におけるマルチプロセッ
サ装置において使用されるメッセージの内容を説明する
ための図である。
FIG. 2 is a diagram for explaining the contents of a message used in the multiprocessor device according to the first embodiment of the present invention.

【図3】本発明の実施の形態1におけるマルチプロセッ
サ装置において使用されるメッセージに付加される情報
を説明するための図である。
FIG. 3 is a diagram for explaining information added to a message used in the multiprocessor device according to the first embodiment of the present invention.

【図4】本発明の実施の形態1におけるキャッシュの概
略構成を示すブロック図である。
FIG. 4 is a block diagram illustrating a schematic configuration of a cache according to the first embodiment of the present invention.

【図5】キャッシュエントリの内容を説明するための図
である。
FIG. 5 is a diagram for explaining the contents of a cache entry.

【図6】キャッシュエントリの状態を説明するための図
である。
FIG. 6 is a diagram for explaining a state of a cache entry.

【図7】書き戻し指示を受信したキャッシュの処理手順
を説明するためのフローチャートである。
FIG. 7 is a flowchart illustrating a processing procedure of a cache that has received a write-back instruction;

【図8】書き戻し指示を受信していないキャッシュが書
き戻し要求を受信したときの処理手順を説明するための
フローチャートである。
FIG. 8 is a flowchart illustrating a processing procedure when a cache that has not received a write-back instruction receives a write-back request.

【図9】本発明の実施の形態1におけるコンシステンシ
制御部5の概略構成を示すブロック図である。
FIG. 9 is a block diagram illustrating a schematic configuration of a consistency control unit 5 according to the first embodiment of the present invention.

【図10】コンシステンシ制御部5の処理手順を説明す
るためのフローチャートである。
FIG. 10 is a flowchart for explaining a processing procedure of a consistency control unit 5;

【図11】書き戻しデータ統合処理を説明するための図
である。
FIG. 11 is a diagram for explaining a write-back data integration process.

【図12】起こり得ない書き戻しデータの組合せを説明
するための図である。
FIG. 12 is a diagram illustrating a combination of write-back data that cannot occur.

【図13】本発明の実施の形態1におけるプロセッサの
処理手順を説明するための図である。
FIG. 13 is a diagram illustrating a processing procedure of a processor according to the first embodiment of the present invention.

【図14】本発明の実施の形態2におけるマルチプロセ
ッサ装置において追加されるメッセージの内容を説明す
るための図である。
FIG. 14 is a diagram for explaining the content of a message added in the multiprocessor device according to the second embodiment of the present invention.

【図15】本発明の実施の形態2におけるマルチプロセ
ッサ装置において追加されたメッセージに付加される情
報を説明するための図である。
FIG. 15 is a diagram for explaining information added to a message added in the multiprocessor device according to the second embodiment of the present invention.

【図16】本発明の実施の形態2におけるキャッシュの
処理手順を説明するためのフローチャートである。
FIG. 16 is a flowchart illustrating a cache processing procedure according to the second embodiment of the present invention.

【図17】無効化要求またはアップデート要求を受信し
たときのキャッシュの処理手順を説明するためのフロー
チャートである。
FIG. 17 is a flowchart illustrating a cache processing procedure when an invalidation request or an update request is received.

【図18】本発明の実施の形態2におけるコンシステン
シ制御部5′の概略構成を示すブロック図である。
FIG. 18 is a block diagram illustrating a schematic configuration of a consistency control unit 5 ′ according to the second embodiment of the present invention.

【図19】コンシステンシ制御部5′の処理手順を説明
するためのフローチャートである。
FIG. 19 is a flowchart illustrating a processing procedure of a consistency control unit 5 ′.

【図20】本発明の実施の形態2におけるプロセッサの
処理手順を説明するための図である。
FIG. 20 is a diagram for describing a processing procedure of a processor according to the second embodiment of the present invention.

【図21】本発明の実施の形態3における書き戻しデー
タ統合部504′の概略構成を示すブロック図である。
FIG. 21 is a block diagram illustrating a schematic configuration of a write-back data integration unit 504 ′ according to Embodiment 3 of the present invention.

【図22】書き戻しデータ統合部504′の動作を説明
するための図である。
FIG. 22 is a diagram for explaining the operation of the write-back data integration unit 504 '.

【図23】本発明の実施の形態3におけるキャッシュエ
ントリの内容を説明するための図である。
FIG. 23 is a diagram for describing the contents of a cache entry according to the third embodiment of the present invention.

【図24】本発明の実施の形態3におけるメッセージを
説明するための図である。
FIG. 24 is a diagram for explaining a message according to Embodiment 3 of the present invention.

【図25】本発明の実施の形態4における書き戻しデー
タ統合部504″の概略構成を示すブロック図である。
FIG. 25 is a block diagram showing a schematic configuration of a write-back data integration unit 504 ″ according to Embodiment 4 of the present invention.

【図26】書き戻しデータ統合部504″の動作を説明
するための図(その1)である。
FIG. 26 is a diagram (part 1) for explaining the operation of the write-back data integration unit 504 ″;

【図27】書き戻しデータ統合部504″の動作を説明
するための図(その2)である。
FIG. 27 is a diagram (part 2) for explaining the operation of the write-back data integration unit 504 ″;

【図28】本発明の実施の形態5におけるマルチプロセ
ッサ装置の概略構成を示すブロック図である。
FIG. 28 is a block diagram illustrating a schematic configuration of a multiprocessor device according to a fifth embodiment of the present invention.

【図29】プロトコル変換部の概略構成を示すブロック
図である。
FIG. 29 is a block diagram illustrating a schematic configuration of a protocol conversion unit.

【図30】ライトトランザクションが発生した場合のプ
ロトコル変換部702aおよび702bの処理手順を説
明するためのフローチャートである。
FIG. 30 is a flowchart illustrating a processing procedure of protocol conversion units 702a and 702b when a write transaction occurs.

【図31】ライトバックトランザクションが発生した場
合のプロトコル変換部702aおよび702bの処理手
順を説明するためのフローチャートである。
FIG. 31 is a flowchart illustrating a processing procedure of protocol conversion units 702a and 702b when a write-back transaction occurs.

【図32】“書き戻し要求”が発生した場合のプロトコ
ル変換部702aおよび702bの処理手順を説明する
ためのフローチャートである。
FIG. 32 is a flowchart illustrating a processing procedure of protocol conversion units 702a and 702b when a “write back request” occurs.

【図33】“無効化要求”または“アップデートデー
タ”が発生した場合のプロトコル変換部702aおよび
702bの処理手順を説明するためのフローチャートで
ある。
FIG. 33 is a flowchart illustrating a processing procedure of protocol conversion units 702a and 702b when an “invalidation request” or “update data” occurs.

【図34】本発明の実施の形態6におけるマルチプロセ
ッサ装置の概略構成を示すブロック図である。
FIG. 34 is a block diagram illustrating a schematic configuration of a multiprocessor device according to a sixth embodiment of the present invention.

【図35】本発明の実施の形態7におけるマルチプロセ
ッサ装置の概略構成を示すブロック図である。
FIG. 35 is a block diagram illustrating a schematic configuration of a multiprocessor device according to a seventh embodiment of the present invention.

【図36】本発明の実施の形態7におけるコンシステン
シ制御部5″の概略構成を示すブロック図である。
FIG. 36 is a block diagram showing a schematic configuration of a consistency control unit 5 ″ according to the seventh embodiment of the present invention.

【図37】ディレクトリ部8の概略構成を示すブロック
図である。
FIG. 37 is a block diagram showing a schematic configuration of a directory unit 8;

【図38】ディレクトリ部8内の状態表示部の内容と対
応するキャッシュの状態との関係を示す図である。
FIG. 38 is a diagram showing the relationship between the contents of the state display section in the directory section 8 and the corresponding cache state.

【図39】ディレクトリ部8が受信するメッセージと状
態表示部の変更前後の値との関係を示す図である。
FIG. 39 is a diagram showing a relationship between messages received by the directory unit 8 and values before and after the change of the status display unit.

【図40】書込権獲得要求の内容を示す図である。FIG. 40 shows the contents of a write right acquisition request.

【図41】書込権獲得要求に付加される情報を示す図で
ある。
FIG. 41 is a diagram showing information added to a write right acquisition request.

【図42】ディレクトリ部内のディレクトリエントリと
キャッシュとの関係を説明するための図である。
FIG. 42 is a diagram for explaining a relationship between a directory entry in a directory section and a cache;

【図43】状態表示部の内容と発信されるメッセージと
の関係を示す図である。
FIG. 43 is a diagram showing the relationship between the content of the status display unit and the message transmitted.

【図44】本発明の実施の形態7におけるコンシステン
シ制御部5″の処理手順を説明するためのフローチャー
トである。
FIG. 44 is a flowchart illustrating a processing procedure of a consistency control unit 5 ″ according to the seventh embodiment of the present invention.

【図45】本発明の実施の形態7におけるコンシステン
シ制御部5″の別の処理手順を説明するためのフローチ
ャートである。
FIG. 45 is a flowchart for describing another processing procedure of the consistency control unit 5 ″ according to the seventh embodiment of the present invention.

【図46】完全ディレクトリまたは部分ディレクトリと
無効化要求/アップデート要求を発信しないコンシステ
ンシ制御部または無効化要求/アップデート要求を発信
するコンシステンシ制御部との関係によって定まる処理
手順を説明するための図である。
FIG. 46 is a diagram for explaining a processing procedure determined by a relationship between a complete directory or a partial directory and a consistency control unit not transmitting an invalidation request / update request or a consistency control unit transmitting an invalidation request / update request. It is.

【図47】本発明の実施の形態8におけるマルチプロセ
ッサ装置の概略構成を示すブロック図である。
FIG. 47 is a block diagram illustrating a schematic configuration of a multiprocessor device according to an eighth embodiment of the present invention.

【図48】ディレクトリ部・共有補助キャッシュ9の概
略構成を示すブロック図である。
FIG. 48 is a block diagram showing a schematic configuration of a directory / shared auxiliary cache 9;

【図49】プロセッサが特殊ストア命令を実行したとき
のキャッシュの処理手順を説明するための図である。
FIG. 49 is a diagram for describing a processing procedure of the cache when the processor executes the special store instruction.

【図50】従来のキャッシュエントリを説明するための
図である。
FIG. 50 is a diagram for explaining a conventional cache entry.

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

1a,1b,701a,701b プロセッサ 2a,2a′,2b,2b′ キャッシュ 3 主記憶 4 結合網 5,5′,5″ コンシステンシ制御部 7 共有補助キャッシュ 8 ディレクトリ部 9 ディレクトリ部・共有補助キャッシュ 21 プロセッサインターフェイス 23 結合網インターフェイス 24 キャッシュセット群 501,501′,501″ シーケンサ 502,502′ メッセージ受信部 503,503′ メッセージ発信部 504 書き戻しデータ統合部 510 レジスタ部 511 マスク部 512 比較部 520 演算部 521a〜521d セレクタ 700a,700b プロセッサユニット 702a,702b プロトコル変換部 704a,704b スヌープキャッシュ 800 ディレクトリエントリ 803 ディレクトリ制御部 805 共有補助キャッシュ制御部 1a, 1b, 701a, 701b Processor 2a, 2a ', 2b, 2b' Cache 3 Main memory 4 Connection network 5, 5 ', 5 "Consistency control unit 7 Shared auxiliary cache 8 Directory unit 9 Directory unit / shared auxiliary cache 21 Processor interface 23 Connection network interface 24 Cache set group 501, 501 ', 501 "Sequencer 502, 502' Message receiving unit 503, 503 'Message transmitting unit 504 Write-back data integration unit 510 Register unit 511 Mask unit 512 Comparison unit 520 Operation unit 521a-521d Selectors 700a, 700b Processor Units 702a, 702b Protocol Conversion Units 704a, 704b Snoop Cache 800 Directory Entries 803 Directory System Gobe 805 Shared auxiliary cache control unit

Claims (18)

【特許請求の範囲】[Claims] 【請求項1】 プロセッサによってアクセスされるデー
タをキャッシュするためのキャッシュメモリと、 前記キャッシュメモリをメモリブロック単位で管理し、
前記プロセッサによってデータワードが更新されたとき
に、メモリブロック内のどのデータワードが更新された
かを示す識別情報を保持し、 外部からメモリブロックの書き戻し要求がある場合、メ
モリブロックに当該識別情報を付加して発信するための
キャッシュ管理手段と、 前記プロセッサから書き戻し指示を受信し、外部へ書き
戻し開始メッセージを発信するための通信手段とを含む
キャッシュ装置。
1. A cache memory for caching data accessed by a processor; and managing the cache memory in units of memory blocks.
When a data word is updated by the processor, the identification information indicating which data word in the memory block has been updated is retained. If there is a write-back request for the memory block from outside, the identification information is stored in the memory block. A cache device comprising: a cache management unit for additionally transmitting a message; and a communication unit for receiving a write-back instruction from the processor and transmitting a write-back start message to the outside.
【請求項2】 外部から受信したメモリブロックおよび
該メモリブロック内のどのデータワードが更新されたか
を示す識別情報に基づいて当該メモリブロックのデータ
を統合するためのデータ統合手段と、 前記データ統合手段によって統合されたメモリブロック
を主記憶に格納するための格納手段とを含むコンシステ
ンシ制御装置。
2. A data integration unit for integrating data of a memory block based on a memory block received from outside and identification information indicating which data word in the memory block has been updated, and the data integration unit And a storage unit for storing the memory block integrated by the main storage in the main storage.
【請求項3】 外部から受信したメモリブロック内のデ
ータを統合するためのデータ統合手段と、 前記データ統合手段によって統合されたメモリブロック
を主記憶に格納するための格納手段とを含むコンシステ
ンシ制御装置。
3. Consistency control including data integration means for integrating data in a memory block received from outside, and storage means for storing the memory block integrated by the data integration means in a main memory. apparatus.
【請求項4】 前記コンシステンシ制御装置はさらに、
外部からすべての更新されたメモリブロックが到着した
ことを検出するための検出手段を含む、請求項2または
3記載のコンシステンシ制御装置。
4. The consistency control device further comprises:
4. The consistency control device according to claim 2, further comprising a detection unit configured to detect that all updated memory blocks have arrived from outside.
【請求項5】 前記コンシステンシ制御装置はさらに、
外部からメモリブロックの書き戻し開始メッセージを受
信し、外部へ書き戻し要求を発信するための通信手段を
含む、請求項4記載のコンシステンシ制御装置。
5. The consistency control device further comprises:
5. The consistency control device according to claim 4, further comprising communication means for receiving a memory block write-back start message from outside and transmitting a write-back request to the outside.
【請求項6】 前記データ統合手段は、外部から受信し
たメモリブロックの内容をデータワードごとに書込むた
めのレジスタ手段と、 外部から受信したメモリブロックの内容と前記レジスタ
手段が保持するメモリブロックの内容とをデータワード
ごとに比較するための比較手段と、 前記比較手段によってデータワードが不一致とされた場
合に、以降の当該データワードの前記レジスタ手段への
書込をマスクするためのマスク手段とを含む、請求項4
または5記載のコンシステンシ制御装置。
6. The data integration means includes: a register for writing the contents of a memory block received from the outside for each data word; and a memory for storing the contents of the memory block received from the outside and the memory block held by the register. Comparing means for comparing the content with each data word, and mask means for masking the subsequent writing of the data word to the register means when the data word is not matched by the comparing means. Claim 4.
Or the consistency control device according to 5.
【請求項7】 前記データ統合手段は、演算結果を保持
するためのレジスタ手段と、 外部から受信したメモリブロック数を計数するための計
数手段と、 前記レジスタ手段に保持された内容と前記外部から受信
したメモリブロックの内容とのビットごとの排他的論理
和を求め前記演算結果として出力するための演算手段
と、 前記計数手段による計数が偶数の場合、主記憶の当該メ
モリブロックを読み出し前記演算手段へ入力するための
主記憶読出手段とを含む、請求項4または5記載のコン
システンシ制御装置。
7. The data integration means includes: a register means for holding a calculation result; a counting means for counting the number of memory blocks received from outside; a content held in the register means; Calculating means for obtaining an exclusive OR for each bit with the contents of the received memory block and outputting the result as the calculation result; and when the counting by the counting means is an even number, the memory block of the main memory is read and the calculation means is read. The consistency control device according to claim 4 or 5, further comprising a main storage reading means for inputting the data to the memory.
【請求項8】 前記コンシステンシ制御装置はさらに、
前記データ統合手段が受信したメモリブロックのコピー
の無効化を外部へ要求するための無効化要求手段を含
む、請求項3〜7のいずれかに記載のコンシステンシ制
御装置。
8. The consistency control device further includes:
The consistency control device according to any one of claims 3 to 7, further comprising invalidation requesting means for externally requesting invalidation of a copy of the memory block received by the data integration means.
【請求項9】 前記コンシステンシ制御装置はさらに、
前記データ統合手段が受信したメモリブロックのアップ
デートを外部へ要求するためのアップデート要求手段を
含む、請求項3〜8のいずれかに記載のコンシステンシ
制御装置。
9. The consistency control device further includes:
The consistency control device according to any one of claims 3 to 8, further comprising an update request unit for requesting an external device to update the memory block received by the data integration unit.
【請求項10】 スヌープバス上のトランザクションを
処理するためのトランザクション処理手段と、 結合網を介してメッセージの送受信を行うための結合網
インタフェース手段と、 前記トランザクション処理手段によって処理されるトラ
ンザクションと前記結合網インタフェース手段によって
送受信されるメッセージとを相互に変換するためのプロ
トコル変換制御手段とを含むプロトコル変換装置。
10. A transaction processing means for processing a transaction on a snoop bus, a connection network interface means for transmitting and receiving a message via a connection network, and a connection between the transaction processed by the transaction processing means and the connection. A protocol conversion control means for mutually converting a message transmitted and received by the network interface means.
【請求項11】 前記トランザクション処理手段は、メ
モリブロックの書き戻しを指示するトランザクションが
発生した場合には該トランザクションの処理が終了する
まで前記スヌープバスの利用権を占有する、請求項10
記載のプロトコル変換装置。
11. The transaction processing means, when a transaction instructing a write-back of a memory block occurs, occupies the right to use the snoop bus until the processing of the transaction ends.
The described protocol converter.
【請求項12】 複数のプロセッサと、 前記複数のプロセッサのそれぞれに接続される複数のキ
ャッシュ装置と、 前記複数のキャッシュ装置および主記憶に接続されるコ
ンシステンシ制御装置とを含むマルチプロセッサ装置で
あって、 前記複数のキャッシュ装置の各々は、接続されるプロセ
ッサによってアクセスされるデータをキャッシュするた
めのキャッシュメモリと、 前記キャッシュメモリをメモリブロック単位で管理し、
前記接続されるプロセッサによってデータワードが更新
されたときに、メモリブロック内のどのデータワードが
更新されたかを示す識別情報を保持し、 メモリブロックの書き戻し要求がある場合、メモリブロ
ックに当該識別情報を付加して前記コンシステンシ制御
装置に発信するためのキャッシュ管理手段とを含み、 前記コンシステンシ制御装置は、前記キャッシュ管理手
段から受信したメモリブロックおよび前記識別情報に基
づいて当該メモリブロックのデータを統合するためのデ
ータ統合手段と、 前記データ統合手段によって統合されたメモリブロック
を主記憶に格納するための格納手段とを含む、マルチプ
ロセッサ装置。
12. A multiprocessor device comprising: a plurality of processors; a plurality of cache devices connected to each of the plurality of processors; and a consistency control device connected to the plurality of cache devices and main storage. Wherein each of the plurality of cache devices manages a cache memory for caching data accessed by a connected processor, and the cache memory in units of memory blocks;
When a data word is updated by the connected processor, the identification information indicating which data word in the memory block has been updated is held. When there is a write-back request for the memory block, the identification information is stored in the memory block. And a cache management means for transmitting the data to the consistency control device, and the consistency control device transmits the data of the memory block based on the memory block and the identification information received from the cache management means. A multiprocessor device, comprising: data integration means for integration; and storage means for storing a memory block integrated by the data integration means in a main storage.
【請求項13】 複数のプロセッサと、 前記複数のプロセッサのそれぞれに接続される複数のキ
ャッシュ装置と、 結合網を介して前記複数のキャッシュ装置と接続される
コンシステンシ制御装置と、 前記コンシステンシ制御装置と接続される主記憶とを含
むマルチプロセッサ装置であって、 前記複数のキャッシュ装置の各々は、接続されるプロセ
ッサによってアクセスされるデータをキャッシュするた
めのキャッシュメモリと、 前記キャッシュメモリをメモリブロック単位で管理し、
メモリブロックの書き戻し要求がある場合、当該メモリ
ブロックを前記コンシステンシ制御装置へ発信するため
のキャッシュ管理手段とを含み、 前記コンシステンシ制御装置は、前記キャッシュ管理手
段から受信したメモリブロック内のデータを統合するた
めのデータ統合手段と、 前記データ統合手段によって統合されたメモリブロック
を前記主記憶に格納するための格納手段とを含む、マル
チプロセッサ装置。
13. A plurality of processors, a plurality of cache devices connected to each of the plurality of processors, a consistency control device connected to the plurality of cache devices via a connection network, and the consistency control A multiprocessor device including a main memory connected to a device, wherein each of the plurality of cache devices is a cache memory for caching data accessed by a connected processor, and a memory block that stores the cache memory. Manage in units,
A cache management unit for transmitting the memory block to the consistency control device when there is a memory block write-back request, wherein the consistency control device transmits the data in the memory block received from the cache management unit. And a storage unit for storing the memory block integrated by the data integration unit in the main storage.
【請求項14】 前記マルチプロセッサ装置はさらに、
前記コンシステンシ制御装置と主記憶との間に設けら
れ、前記コンシステンシ制御装置によってアクセスされ
るデータをキャッシュするための補助キャッシュ装置を
含み、 前記格納手段は、前記データ統合手段によって統合され
たメモリブロックを前記補助キャッシュ装置に格納す
る、請求項12または13記載のマルチプロセッサ装
置。
14. The multiprocessor device further comprises:
An auxiliary cache device provided between the consistency control device and a main memory for caching data accessed by the consistency control device, wherein the storage unit is a memory integrated by the data integration unit 14. The multiprocessor device according to claim 12, wherein a block is stored in the auxiliary cache device.
【請求項15】 前記マルチプロセッサ装置はさらに、
前記結合網を監視し、メモリブロックごとにそれぞれの
キャッシュ装置における当該メモリブロックの状態を保
持するためのディレクトリ手段を含み、 前記データ統合手段は、前記ディレクトリ手段に保持さ
れた内容に基づいて、当該メモリブロックの内容を更新
しているキャッシュ装置のみに書き戻し要求を送信し、
前記キャッシュ管理手段から受信したメモリブロック内
のデータを統合する、請求項12〜14のいずれかに記
載のマルチプロセッサ装置。
15. The multiprocessor device further comprises:
A directory unit for monitoring the connection network and holding a state of the memory block in each cache device for each memory block, wherein the data integration unit is configured to perform a process based on the content held in the directory unit; Send a write-back request only to the cache device that is updating the contents of the memory block,
15. The multiprocessor device according to claim 12, wherein data in a memory block received from said cache management unit is integrated.
【請求項16】 前記ディレクトリ手段はさらに、前記
データ統合手段によって統合されたメモリブロックを格
納するための補助キャッシュ手段と、 前記コンシステンシ制御装置によってアクセスされるデ
ータを前記補助キャッシュ手段にキャッシュするための
補助キャッシュ制御手段とを含む、請求項15記載のマ
ルチプロセッサ装置。
16. The directory means further includes an auxiliary cache means for storing a memory block integrated by the data integration means, and a cache for data accessed by the consistency control device in the auxiliary cache means. 16. The multiprocessor device according to claim 15, further comprising: an auxiliary cache control unit.
【請求項17】 前記キャッシュ装置はさらに、前記接
続されるプロセッサによって特殊ストア命令が実行され
るのを検出し、前記特殊ストア命令によって更新された
メモリブロックの書き戻し開始メッセージを前記コンシ
ステンシ制御装置に送信するための特殊ストア命令処理
手段を含む、請求項12〜16のいずれかに記載のマル
チプロセッサ装置。
17. The cache controller further detects that a special store instruction is executed by the connected processor, and sends a memory block write-back start message updated by the special store instruction to the consistency control device. 17. The multiprocessor device according to claim 12, further comprising a special store instruction processing means for transmitting the special store instruction.
【請求項18】 複数のプロセッサユニットと、 前記複数のプロセッサユニットのそれぞれに接続される
複数のプロトコル変換装置と、 前記複数のプロトコル変換装置および主記憶に接続され
るコンシステンシ制御装置とを含むマルチプロセッサ装
置であって、 前記複数のプロセッサユニットの各々は、プロセッサ
と、 スヌープバスに接続されるスヌープキャッシュとを含
み、 前記複数のプロトコル変換装置の各々は、前記スヌープ
バス上のトランザクションを処理するためのトランザク
ション処理手段と、 結合網を介してメッセージの送受信を行うための結合網
インタフェース手段と、 前記トランザクション処理手段によって処理されるトラ
ンザクションと前記結合網インタフェース手段によって
送受信されるメッセージとを相互に変換するためのプロ
トコル変換制御手段とを含み、 前記コンシステンシ制御装置は、前記複数のプロトコル
変換装置から前記結合網を介して受信したメモリブロッ
クのデータを統合するためのデータ統合手段と、 前記データ統合手段によって統合されたメモリブロック
を主記憶に格納する格納手段とを含む、マルチプロセッ
サ装置。
18. A multi-processor comprising: a plurality of processor units; a plurality of protocol conversion devices connected to each of the plurality of processor units; and a consistency control device connected to the plurality of protocol conversion devices and main storage. A processor device, wherein each of the plurality of processor units includes a processor and a snoop cache connected to a snoop bus, and each of the plurality of protocol conversion devices processes a transaction on the snoop bus. Transaction processing means, a connection network interface means for transmitting / receiving a message via a connection network, and mutually changing a transaction processed by the transaction processing means and a message transmitted / received by the connection network interface means. A data conversion unit for integrating data of a memory block received from the plurality of protocol conversion devices via the connection network, and the data integration unit. Storage means for storing the memory block integrated by the means in the main memory.
JP11055438A 1998-03-06 1999-03-03 Cache device, consistency controller, protocol conversion device and multiprocessor device connecting the same and plural processors Withdrawn JPH11316712A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11055438A JPH11316712A (en) 1998-03-06 1999-03-03 Cache device, consistency controller, protocol conversion device and multiprocessor device connecting the same and plural processors

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5513798 1998-03-06
JP10-55137 1998-03-06
JP11055438A JPH11316712A (en) 1998-03-06 1999-03-03 Cache device, consistency controller, protocol conversion device and multiprocessor device connecting the same and plural processors

Publications (1)

Publication Number Publication Date
JPH11316712A true JPH11316712A (en) 1999-11-16

Family

ID=26395989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11055438A Withdrawn JPH11316712A (en) 1998-03-06 1999-03-03 Cache device, consistency controller, protocol conversion device and multiprocessor device connecting the same and plural processors

Country Status (1)

Country Link
JP (1) JPH11316712A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105256A1 (en) * 2006-02-24 2007-09-20 Fujitsu Limited Multiprocessor system, processor, and cache control method
WO2008155844A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Data processing unit and method for controlling cache

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105256A1 (en) * 2006-02-24 2007-09-20 Fujitsu Limited Multiprocessor system, processor, and cache control method
US7945754B2 (en) 2006-02-24 2011-05-17 Fujitsu Limited Multiprocessor system, processor, and cache control method
WO2008155844A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Data processing unit and method for controlling cache
JPWO2008155844A1 (en) * 2007-06-20 2010-08-26 富士通株式会社 Information processing apparatus and cache control method
JP4613247B2 (en) * 2007-06-20 2011-01-12 富士通株式会社 Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus
US8370585B2 (en) 2007-06-20 2013-02-05 Fujitsu Limited Data processing system and cache control method

Similar Documents

Publication Publication Date Title
JP2819982B2 (en) Multiprocessor system with cache match guarantee function that can specify range
US20010039604A1 (en) Consistency control device merging updated memory blocks
US7747825B2 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US7996625B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US7620776B2 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks
KR101038963B1 (en) Cache allocation upon data placement in network interface
JPH11506852A (en) Reduction of cache snooping overhead in a multi-level cache system having a large number of bus masters and a shared level 2 cache
US6138217A (en) Method and apparatus for cache coherency in an interconnecting network
JP2000250812A (en) Memory cache system and managing method therefor
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
US6662216B1 (en) Fixed bus tags for SMP buses
US6587922B2 (en) Multiprocessor system
WO2002073417A1 (en) State-based allocation and replacement for improved hit ratio in directory caches
KR101061667B1 (en) Pushing of clean data to one or more caches corresponding to one or more processors in a system having coherency protocol
KR20030024895A (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6973547B2 (en) Coherence message prediction mechanism and multiprocessing computer system employing the same
KR101072174B1 (en) System and method for implementing an enhanced hover state with active prefetches
JP2000067024A (en) Divided non-dense directory for distributed shared memory multi-processor system
JP3757117B2 (en) Cache apparatus and control method
US7669013B2 (en) Directory for multi-node coherent bus
US7725660B2 (en) Directory for multi-node coherent bus
JPH09128346A (en) Hierarchical bus system
KR20090053837A (en) Mechanisms and methods of using self-reconciled data to reduce cache coherence overhead in multiprocessor systems
US6944721B2 (en) Asynchronous non-blocking snoop invalidation
JP3626609B2 (en) Multiprocessor system

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060509