[go: up one dir, main page]

JPH08263374A - Cache control method and multiprocessor system using the same - Google Patents

Cache control method and multiprocessor system using the same

Info

Publication number
JPH08263374A
JPH08263374A JP7060813A JP6081395A JPH08263374A JP H08263374 A JPH08263374 A JP H08263374A JP 7060813 A JP7060813 A JP 7060813A JP 6081395 A JP6081395 A JP 6081395A JP H08263374 A JPH08263374 A JP H08263374A
Authority
JP
Japan
Prior art keywords
processor
cache
processor element
directory
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7060813A
Other languages
Japanese (ja)
Inventor
Masanao Ito
昌尚 伊藤
Tsuguo Matsuura
嗣夫 松浦
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7060813A priority Critical patent/JPH08263374A/en
Publication of JPH08263374A publication Critical patent/JPH08263374A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】少ない容量のディレクトリを用いてキャッシュ
間一致制御を行う。 【構成】各プロセッサエレメント(PE)のビット圧縮
ディレクトリ装置13は、主記憶20をキャッシュ装置
11のラインサイズよりも大きなサイズで複数の単位領
域に分割し、この単位領域を単位としたビット圧縮ディ
レクトリを他のPEに対応して保持し、各PEにおい
て、主記憶20にデータが書き込まれるときに、このビ
ット圧縮ディレクトリ装置を用いてキャッシュ間一致制
御を実行する。圧縮ディレクトリ装置12は、上記単位
領域ごとに、このPEのキャッシュ装置11にキャッシ
ングされているブロックの数と、それらのブロックのい
ずれかが更新済みか否かを示す圧縮ディレクトリを保持
し、これらの情報の変化に応じて、このPEのビットマ
ップディレクトリの更新を他のPEに指示する。
(57) [Summary] [Purpose] Cache match control is performed using a directory with a small capacity. A bit compression directory device 13 of each processor element (PE) divides a main memory 20 into a plurality of unit areas having a size larger than a line size of a cache device 11, and a bit compression directory in which the unit areas are used as a unit. Are held in correspondence with other PEs, and in each PE, when data is written in the main memory 20, cache coincidence control is executed using this bit compression directory device. The compression directory device 12 holds, for each unit area, a compression directory indicating the number of blocks cached in the cache device 11 of this PE and whether or not any of these blocks has been updated. According to the change of information, the other PE is instructed to update the bitmap directory of this PE.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、互いに記憶装置を共有
し、各々がキャッシュを有する複数のプロセッサからな
るマルチプロセッサシステムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system including a plurality of processors which share a memory device with each other and each have a cache.

【0002】[0002]

【従来の技術】近年、より高速な計算機の実現の一つの
手段として、主記憶を共有する密結合型のマルチプロセ
ッサシステムが実用化されつつある。密結合型のマルチ
プロセッサシステムにおいても、これまでのシングルプ
ロセッサシステムと同様、性能の向上のために各プロセ
ッサはキャッシュを持つことが多い。
2. Description of the Related Art In recent years, a tightly coupled multiprocessor system sharing a main memory has been put into practical use as one means for realizing a faster computer. Even in a tightly coupled multiprocessor system, each processor often has a cache in order to improve performance, as in the conventional single processor system.

【0003】複数のプロセッサが各々キャッシュを有す
るシステムにおいては、キャッシュ間のデータの一致制
御(コヒーレンス制御)の必要が生ずる。例えば、各プ
ロセッサがそれぞれのキャッシュについて同じアドレス
のデータを書き換えると、本来、同一時刻においては同
一アドレスの値は各プロセッサ間で同一であるべきであ
るのに、実際には異なる値を取る可能性が生ずる。この
ような状況に陥るのを避けるために、キャッシュのコヒ
ーレンス制御が行われる。例えば、あるプロセッサが主
記憶のデータを書き換えた場合、そのデータをすでにキ
ャッシュに持つ他のプロセッサは、自分のキャッシュに
あるデータの無効化を行なわせる。
In a system in which a plurality of processors each have a cache, there is a need for data consistency control (coherence control) between the caches. For example, if each processor rewrites the data of the same address in each cache, the value of the same address should originally be the same among the processors at the same time, but it may actually take different values. Occurs. In order to avoid such a situation, cache coherence control is performed. For example, when a processor rewrites data in the main memory, another processor that already has the data in the cache invalidates the data in its own cache.

【0004】コヒーレンス制御の一つの方法としてスヌ
ープキャッシュ方式がある。スヌープキャッシュ方式で
は、複数のプロセッサエレメントが共通のバスを通し
て、それらで共有される主記憶に接続されている。各プ
ロセッサエレメントは、主記憶内のデータを書き換えた
とき、そのデータをキャッシュ内に保持する他の特定の
プロセッサエレメントに対して、キャッシュ内のそのデ
ータの無効を要求はしない。その代わり、他の全てのプ
ロセッサが、自分のキャッシュ内のデータの無効をすべ
きか否かを判断するようになっている。すなわち、各プ
ロセッサエレメントは、他のプロセッサエレメントから
このバス上に出された、主記憶へのデータ書き込み要求
を監視しており、そのような書き込み要求が検出された
とき、各プロセッサエレメントは、自分のキャッシュ内
にこの書き込み要求で指定されたデータが有るかを判別
し、もしあれば、そのデータを無効にする。
A snoop cache method is one of the coherence control methods. In the snoop cache system, a plurality of processor elements are connected to a main memory shared by them through a common bus. When each processor element rewrites the data in the main memory, each processor element does not request the invalidation of the data in the cache to another specific processor element which holds the data in the cache. Instead, all other processors decide whether to invalidate the data in their cache. That is, each processor element is monitoring a data write request to the main memory issued from another processor element on this bus, and when such a write request is detected, each processor element recognizes itself. It is determined whether or not the data specified by this write request exists in the cache of, and if there is, that data is invalidated.

【0005】この方法では、書き込み要求を発行したプ
ロセッサエレメントは、他のプロセッサエレメントの
内、いずれのプロセッサエレメントがその書き込み要求
が指定するアドレスのデータを保持しているのかを判別
しないので、そのような判別を行なうための回路を要し
ない。このため、この方法は、比較的高い性能が要求さ
れないシステムで多く採用されている。
In this method, the processor element that has issued the write request does not determine which of the other processor elements holds the data of the address specified by the write request. It does not require a circuit for making a distinction. For this reason, this method is often used in systems that do not require relatively high performance.

【0006】各プロセッサエレメントは、他のプロセッ
サエレメントが主記憶に対するデータの書き込み要求を
出力するごとに、その書き込み要求で指定されたアドレ
スのデータが自分のキャッシュ内に保持しているか否か
というヒットチェックを行なう必要がある。このヒット
チェックのためにキャッシュに保持されたデータのアド
レスを保持するキャッシュタグをアクセスする。このプ
ロセッサエレメント内のプロセッサから発行される主記
憶アクセス要求の実行のために、このアドレスタグをア
クセスする必要もあり、その結果、これらの二つのアク
セス要求は、アドレスタグの利用に関して衝突すること
になる。この結果、プロセッサから発行された主記憶ア
クセス要求の実行が遅延する。他のプロセッサから発行
された主記憶書き込み要求が指定するデータが自分のキ
ャッシュにない場合も多く、そのような場合には、多く
の無駄なヒットチェックでもって、自分のプロセッサの
アクセスを妨げていることになる。
Each time a processor element outputs a data write request to the main memory, each processor element hits whether or not the data at the address designated by the write request is held in its own cache. Need to check. For this hit check, the cache tag holding the address of the data held in the cache is accessed. It is also necessary to access this address tag in order to fulfill the main memory access request issued by the processor in this processor element, so that these two access requests conflict with respect to the use of the address tag. Become. As a result, the execution of the main memory access request issued by the processor is delayed. In many cases, the data specified by the main memory write request issued by another processor is not in my cache, and in such a case, many useless hit checks are preventing access to my processor. It will be.

【0007】なお、この衝突を回避する方法として、同
一のキャッシュに対する複数のヒットチェックを並列に
行なうために各プロセッサエレメント内に、他のプロセ
ッサエレメントから発行された書き込み要求のヒットチ
ェックに使用するアドレスタグを、自分のプロセッサか
ら発行されたアクセス要求のためのヒットチェックに使
用するものとは別に設けるようにすることも知られてい
る。例えば、特公昭54−40,182号公報あるいは
これに対応する米国特許4,056,844参照。
As a method of avoiding this collision, in order to perform a plurality of hit checks for the same cache in parallel, an address used in the hit check of a write request issued from another processor element in each processor element. It is also known to provide tags separately from those used for hit checking for access requests issued by their processor. See, for example, Japanese Examined Patent Publication No. 40-40182 or U.S. Pat. No. 4,056,844 corresponding thereto.

【0008】コヒーレンス制御を行なうための他の代表
的な方法はディレクトリ方式で、これは比較的規模の大
きいシステムでよく使われる。例えば、D Chaiken, G F
ields, K Kurihara and A Agarwal,”Directroy-Based
Cache Coherence in Large-Scale Multiprocessors,”I
EEE Computer, June 1990, pp49-58参照。原理的には、
ディレクトリ方式においては、主記憶がキャッシュのブ
ロックのサイズの単位領域で分割され、各単位領域に対
応して、その領域のデータがどのプロセッサのキャッシ
ュに登録されているかを示す情報を含むディレクトリ
が、複数のプロセッサエレメントに共通に設けられる。
Another typical method for performing coherence control is the directory method, which is often used in relatively large systems. For example, D Chaiken, GF
ields, K Kurihara and A Agarwal, ”Directroy-Based
Cache Coherence in Large-Scale Multiprocessors, ”I
See EEE Computer, June 1990, pp 49-58. In principle,
In the directory system, the main memory is divided into unit areas of the size of the cache block, and a directory containing information indicating in which cache the data of the area is registered, corresponding to each unit area, It is provided commonly to a plurality of processor elements.

【0009】例えば、いずれかのプロセッサが主記憶に
対してデータの書き込み要求を発行した場合、ディレク
トリ制御回路において、この書き込み要求が指定するア
ドレスのデータがいずれのプロセッサエレメントに保持
されているかを、このディレクトリを使用して判別し、
そのようなプロセッサエレメントが検出された場合、こ
のディレクトリ制御回路は、そのプロセッサエレメント
に対してデータの無効を指示する。
For example, when one of the processors issues a data write request to the main memory, it is determined in which processor element the data of the address designated by the write request is held in the directory control circuit. Use this directory to determine,
When such a processor element is detected, the directory control circuit instructs the processor element to invalidate the data.

【0010】この方法では、ディレクトリ制御回路は、
データの無効が必要な他のプロセッサエレメントに対し
てのみ無効要求を発行するので、このようなプロセッサ
エレメント以外の他のプロセッサエレメントでは、他の
プロセッサエレメントから発行された書き込み要求に対
してキャッシュのヒットチェックをする必要はない。そ
の結果、このディレクトリ方式では、各プロセッサエレ
メント内のプロセッサによる主記憶アクセスのためのヒ
ットチェックが妨げられることがスヌーピ方式よりも少
なくなる。
In this method, the directory control circuit is
Since invalidation requests are issued only to other processor elements that require invalidation of data, other processor elements other than such processor elements hit the cache with respect to write requests issued from other processor elements. No need to check. As a result, this directory method is less likely to interfere with the hit check for the main memory access by the processor in each processor element than the snoopy method.

【0011】また、特開平2−77858には、主記憶
を共有するベクトルプロセッサとスカラプロセッサとを
有し、スカラプロセッサがキャッシュメモリを有し、ベ
クトルプロセッサがそれを有しないシステムにおいて、
主記憶をスカラプロセッサ内のキャッシュに保持される
ブロックのサイズに等しい複数の単位領域に分け、各単
位領域に属するブロックがスカラプロセッサに保持され
ているか否かを示すブロックバリッドビットを有するブ
ロックバリッドメモリとよぶテーブルを主記憶に保持し
ている。さらに、これらの主記憶の複数の単位領域を一
つにまとめたブロック群毎に、そのグループのいずれか
の少なくとも一つが、スカラプロセッサのキャッシュに
保持されているか否かを示すブロックグループバリッド
テーブルを主記憶に有している。
Further, Japanese Patent Laid-Open No. 2-77858 discloses a system having a vector processor and a scalar processor sharing a main memory, the scalar processor having a cache memory and the vector processor not having the cache memory.
A block valid memory that divides the main memory into a plurality of unit areas that are equal in size to the blocks held in the cache in the scalar processor and has a block valid bit that indicates whether or not the blocks belonging to each unit area are held in the scalar processor. It holds a table called main memory. Furthermore, a block group valid table indicating whether or not at least one of the groups is held in the cache of the scalar processor for each block group in which the plurality of unit areas of the main memory are collected Have in main memory.

【0012】ベクトルプロセッサから主記憶に書き込み
を行なう際に、主記憶に保持された、ブロックグループ
バリッドテーブルをまず参照して、書き込み対象のブロ
ックがスカラプロセッサ内のキャッシュメモリに保持さ
れているか否かを荒くチェックし、このチェックにより
保持されていると判断された後に、上記ブロックバリッ
ドメモリを参照して、書き込み対象のブロックが実際に
スカラプロセッサに保持されているかを判別し、この後
の判別によりそのブロックが保持されていると判断され
た場合にのみ、スカラプロセッサに、キャッシュコヒー
レンスのための処理、例えば、そのブロックの無効を通
知している。これにより、ベクトルプロセッサにより主
記憶に対して書き込みを行なった場合に、上記ブロック
バリッドメモリにより、その書き込み要求が指定するブ
ロックに対してスカラプロセッサが無用なキャッシュヒ
ットチェックをするのを防いでいる。
When writing from the vector processor to the main memory, the block group valid table held in the main memory is first referenced to determine whether the block to be written is held in the cache memory in the scalar processor. Is roughly checked, and after it is determined that the block is held by this check, the block valid memory is referenced to determine whether the block to be written is actually held in the scalar processor. Only when it is determined that the block is held, the scalar processor is notified of processing for cache coherence, for example, invalidation of the block. This prevents the scalar processor from performing an unnecessary cache hit check on the block designated by the write request when the vector processor writes to the main memory.

【0013】さらに、多くの書き込み要求によるこのブ
ロックバリッドメモリを参照する際に生じる、メモリの
参照の衝突を回避するために、ブロックグループバリッ
ドテーブルにより、大まかなふるいをかけ、それによ
り、無用な書き込み要求によるブロックバリッドメモリ
の参照を防いでいる。
Further, in order to avoid a memory reference collision that occurs when referring to this block valid memory due to a large number of write requests, the block group valid table performs a rough sieving, whereby unnecessary writing is performed. It prevents the block valid memory from being referenced by a request.

【0014】[0014]

【発明が解決しようとする課題】上記ディレクトリ方式
においては、ディレクトのエントリの総数は、主記憶容
量をキャッシュのブロックサイズで割った値になる。例
えば、主記憶4ギガバイト(GB)で、キャッシュのブ
ロックサイズが4バイト(B)のシステムでは、ディレ
クトリのエントリ数は4GB/4B=10億エントリと
なる。各エントリには、どのプロセッサエレメントが、
そのエントリに対応するブロックがいずれのプロセッサ
エレメントに保持されているかの情報を保持させる。従
って、各エントリのサイズは、プロセッサエレメントの
総数が増大するほど、多くなる。この結果、ディレクト
リの総容量は、主記憶が大きくなるほど、さらに、プロ
セッサエレメントの数が増えるほど増大し、ディレクト
リを保持するメモリのコストが増大する。さらに、プロ
セッサ面積、あるいはシステム制御LSIの面積に占め
るディレクトリ用のメモリの割合は必ずしも無視できる
大きさではなくなりつつある。従って、ディレクトリの
容量を低減することが望ましい。
In the above directory system, the total number of directory entries is the value obtained by dividing the main memory capacity by the cache block size. For example, in a system having a main memory of 4 gigabytes (GB) and a cache block size of 4 bytes (B), the number of directory entries is 4 GB / 4B = 1 billion entries. For each entry, which processor element
Information on which processor element the block corresponding to the entry is held is held. Therefore, the size of each entry increases as the total number of processor elements increases. As a result, the total capacity of the directory increases as the main memory increases and the number of processor elements increases, and the cost of the memory for holding the directory increases. Further, the ratio of the memory for the directory to the area of the processor or the area of the system control LSI is not necessarily negligible. Therefore, it is desirable to reduce the capacity of the directory.

【0015】プロセッサエレメントが増大した場合の、
ディレクトリの容量を低減する方法は、例えば、前述の
文献にも紹介されている。
When the number of processor elements increases,
A method of reducing the capacity of the directory is also introduced in the above-mentioned document, for example.

【0016】ところで、科学技術計算のように、各プロ
セッサのデータ共有率の低いアプリケーションでは、キ
ャッシュコヒーレンス制御によってキャッシュの内容が
変化する頻度も低い。すなわち、あるプロセッサがアク
セスするアドレス範囲のデータを、他のプロセッサはほ
とんどアクセスしないため、そのプロセッサのキャッシ
ュミスなどに伴うキャッシュコヒーレンス制御が発生し
ても、それによって他のプロセッサのキャッシュの内容
が実際に変化を受ける頻度は低くなる。このような各プ
ロセッサのデータ共有率の低いアプリケーションでは、
キャッシュコヒーレンス専用に設けたディレクトリは資
源として有効に利用されていないことになる。このよう
な用途では、ディレクトリの容量のさらなる低減が望ま
しい。
By the way, in applications such as scientific and technological calculations in which the data sharing rate of each processor is low, the cache contents change less frequently due to cache coherence control. In other words, data in the address range accessed by one processor is rarely accessed by other processors, so even if cache coherence control occurs due to a cache miss in that processor, the contents of the cache of another processor will actually be affected. Changes less frequently. In applications where the data sharing rate of each processor is low,
The directory provided only for cache coherence is not effectively used as a resource. For such applications, further reduction of directory capacity is desirable.

【0017】また、従来のディレクトリは、複数のプロ
セッサエレメントに共通に主記憶内もしくはその近傍に
設けられているため、各プロセッサエレメントにおいて
発生したデータ書き込み要求に対して、ディレクトリを
チェックした上で、その結果を他のプロセッサエレメン
トに通知する。一般に主記憶と各プロセッサエレメント
の間の信号伝達時間より長い。したがって、ディレクト
リチェックの結果を関係するプロセッサエレメントに通
知するのに時間が掛かるため、いずれかのプロセッサエ
レメントにおいてあるデータが更新されても、そのデー
タと同じデータを保持する他のプロセッサエレメント内
のキャッシュをすぐには無効にできないという問題があ
る。
Further, since the conventional directory is provided in the main memory or in the vicinity thereof in common to a plurality of processor elements, the directory is checked for a data write request generated in each processor element, and The result is notified to other processor elements. It is generally longer than the signal transmission time between the main memory and each processor element. Therefore, since it takes time to notify the concerned processor element of the result of the directory check, even if some data is updated in one of the processor elements, the cache in the other processor element that holds the same data as the data is updated. There is a problem that can not be immediately disabled.

【0018】本発明の目的は、従来よりも容量の少ない
ディレクトリを使用してキャッシュコヒーレンス制御を
行うことが可能なキャッシュ制御方法及びそれを用いた
マルチプロセッサシステムを提供することにある。
An object of the present invention is to provide a cache control method capable of performing cache coherence control by using a directory having a smaller capacity than before, and a multiprocessor system using the cache control method.

【0019】本発明の他の目的は、ディレクトリのチェ
ックを各プロセッサエレメントにて実行可能なキャッシ
ュ制御方法及びそれを用いたマルチプロセッサシステム
を提供することにある。
Another object of the present invention is to provide a cache control method capable of executing a directory check in each processor element, and a multiprocessor system using the cache control method.

【0020】[0020]

【課題を解決するための手段】上記目的を達成するため
に本願第1の発明では、複数のプロセッサエレメントに
関するディレクトリとして、これらにより共有される記
憶装置を、キャッシュのブロックが有する第1のサイズ
より大きい第2のサイズを有する複数の単位領域に分
け、それらの単位領域の内、いずれかのプロセッサエレ
メントにキャッシングされている少なくとも一つのブロ
ックを有する複数の単位領域およびそれぞれの単位領域
に対する当該他のプロセッサエレメントとを少なくとも
識別するための情報を含む第1のディレクトリを記憶
し、いずれかの第1のプロセッサエレメントにより発行
された、上記記憶装置に対するアクセス要求に応答し
て、その第1のプロセッサエレメント内に設けられた上
記第1のディレクトリに基づき、そのアクセス要求が指
定するアドレスのデータが属する特定の単位領域内のい
ずれかのブロックを保持している他の第2のキャッシュ
を有する第2のプロセッサエレメントがあるか否かを検
出し、この第2のプロセッサエレメントが検出されたと
き、キャッシュ間コヒーレンス維持のための特定の処理
の実行要求を、その検出された第2のプロセッサエレメ
ントに対して選択的に送出し、上記第2のプロセッサエ
レメントでは、そのプロセッサエレメント内の上記第2
のキャッシュに上記アクセス要求が指定するアドレスを
有する特定のブロックが現に存在するか否かのヒットチ
ェックを行ない、そのヒットチェックの結果、この第2
のキャッシュに上記特定のブロックが現に存在すると判
明した場合、その要求された特定の処理をこの第2のキ
ャッシュに対して実行する。
In order to achieve the above object, according to the first invention of the present application, a storage device shared by a plurality of processor elements as a directory for a plurality of processor elements is set to a size larger than a first size of a cache block. A plurality of unit areas having a large second size are divided into a plurality of unit areas having at least one block that is cached by any of the processor elements, and the other unit areas corresponding to the plurality of unit areas. A first directory containing information for at least identifying the processor element is stored, and the first processor element is responsive to an access request issued by any one of the first processor elements to the storage device. In the first directory provided inside Then, it is detected whether or not there is a second processor element having another second cache that holds any block in the specific unit area to which the data of the address specified by the access request belongs, When the second processor element is detected, a request for executing a specific process for maintaining inter-cache coherence is selectively transmitted to the detected second processor element, and the second processor In the element, the second element in the processor element
It is checked whether or not a specific block having the address specified by the above access request actually exists in the cache of the second cache, and as a result of the hit check, the second block
If it is found that the particular block is actually present in the second cache, then the requested particular processing is performed for this second cache.

【0021】この本願第1の発明によれば、ディレクト
リが保持する情報は、キャッシュのブロックのサイズよ
り大きなサイズであるために、ディレクトリの容量を従
来より低減できる。さらに、いずれかのプロセッサエレ
メントで記憶装置へのアクセス要求が発生したとき、他
のプロセッサエレメントにそのアクセス要求が指定する
データがキャッシングされているか否かを検出する際、
ディレクトリが保持する情報がキャッシュのブロックの
サイズより大きなサイズであるため、他のプロセッサエ
レメントがキャッシングしている可能性があるか否かを
検出するにとまる。したがって、キャッシングしている
と判断された他のプロセッサエレメントでは、実際にそ
のデータをキャッシングしているか否かを判定した上
で、そのアクセス要求に関連するキャッシュ間一致制御
を当該他のプロセッサエレメントで実行するか否かを決
めている。
According to the first invention of the present application, since the information held by the directory has a size larger than the size of the block of the cache, the capacity of the directory can be reduced more than before. Furthermore, when an access request to the storage device is generated in any of the processor elements, when detecting whether the data specified by the access request is cached in another processor element,
Since the information held by the directory is larger than the size of the block of the cache, it is only necessary to detect whether or not there is a possibility that another processor element is caching. Therefore, in the other processor element determined to be caching, it is determined whether or not the data is actually cached, and then the cache matching control related to the access request is performed in the other processor element. It decides whether or not to execute.

【0022】当該他のプロセッサエレメントにおけるこ
のような判定は、そのプロセッサエレメント内のプロセ
ッサによるキャッシュアクセスを妨害するが、プロセッ
サエレメント間で共用されるデータが少ない場合、この
ような妨害の悪影響は実際上少なく出来る。また、この
ような判定を行なって結果、そのデータが当該他のプロ
セッサエレメントにキャッシングされていないことが起
こり得る。このような場合、当該他のプロセッサエレメ
ントにとっては、この判定は望ましい処理ではないこと
になるが、プロセッサエレメント間で共有されるデータ
が少ないときには、このような判定が必要になる頻度は
高くないと考えられる。
Such a determination in the other processor element interferes with cache access by the processors in that processor element, but when the data shared between the processor elements is small, the adverse effect of such interference is practical. Can be reduced. Further, as a result of making such a determination, the data may not be cached by the other processor element. In such a case, this determination is not desirable processing for the other processor elements, but when the amount of data shared between the processor elements is small, such determination is not necessary frequently. Conceivable.

【0023】上記他の目的を達成するために、本願第2
の発明では、各プロセッサエレメントに関するディレク
トリをそのプロセッサエレメント以外のプロセッサエレ
メントに重複して保持し、各プロセッサエレメントがい
ずれかのデータをアクセスするときに、他のプロセッサ
エレメントでのデータのキャッシングの有無をそのプロ
セッサエレメントにて判定し、いずれかの他のプロセッ
サエレメントがそのデータが属する単位領域内のデータ
をキャッシングしているときには、当該アクセスを実行
するプロセッサエレメントから検出された他のプロセッ
サエレメントに対してキャッシュ間一致制御のための処
理の実行を要求する。
In order to achieve the above other objects, the second aspect of the present invention
In the invention, the directory related to each processor element is redundantly held in the processor elements other than the processor element, and when each processor element accesses any data, whether or not the data is cached in the other processor element is checked. When it is determined by the processor element and any other processor element is caching the data in the unit area to which the data belongs, the other processor element detected from the processor element executing the access Requests execution of processing for cache match control.

【0024】この結果、各プロセッサエレメントでは、
アクセスしようとするデータに関する、他のプロセッサ
エレメントにおけるキャッシングの有無を判定でき、そ
の判定の結果に応じて、キャッシュ間一致制御のための
処理の実行を他のプロセッサエレメントに要求できる。
したがって、従来のディレクトリ方式より、ディレクト
リの検索とその後の処理が高速になる。
As a result, in each processor element,
It is possible to determine whether or not there is caching in the other processor element regarding the data to be accessed, and it is possible to request the other processor element to execute the process for cache match control according to the result of the determination.
Therefore, the directory search and subsequent processing become faster than the conventional directory method.

【0025】なお、この場合、望ましくは、主記憶を分
割して得られる単位領域のサイズとキャッシュのブロッ
クのサイズとの比は複数のプロセッサエレメントの総数
の2倍以上であることが望ましい。この場合には、各プ
ロセッサエレメントにディレクトリを分散して配置して
も、ディレクトリの総容量は、依然として従来より少な
くて済む。
In this case, it is desirable that the ratio between the size of the unit area obtained by dividing the main memory and the size of the cache block is at least twice the total number of processor elements. In this case, even if the directories are arranged in a distributed manner in each processor element, the total capacity of the directories is still smaller than the conventional one.

【0026】[0026]

【実施例】以下、本発明に係るデータ処理装置を図面に
示したいくつかの実施例を参照してさらに詳細に説明す
る。なお、以下においては、同じ参照番号は同じものも
しくは類似のものを表わすものとする。また、実施例2
以降の説明においては、実施例1と異なる点に限定して
説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The data processing device according to the present invention will be described in more detail below with reference to some embodiments shown in the drawings. In the following, the same reference numbers represent the same or similar items. Example 2
In the following description, only the points different from the first embodiment will be described.

【0027】<実施例1>図1は、本発明によるマルチ
プロセッサのシステムの実施例の概略構成図である。図
において、2aから2dはプロセッサエレメントであ
り、これらはバス1に接続された主記憶20を共有して
いる。プロセッサエレメント2a内には、命令プロセッ
サ(IP)3と、主記憶20のデータの写を保持するキ
ャッシュ装置11が設けられる。これらのキャッシュ装
置11は、命令プロセッサ3からアクセスされる。プロ
セッサエレメントには、さらに、他のプロセッサエレメ
ントのキャッシュ装置に保持されたデータに関する、圧
縮された領域に対するディレクトリ情報を保持するビッ
ト圧縮ディレクトリ装置13と、このキャッシュ装置1
1に保持されたデータに関する圧縮されたディレクトリ
情報を保持する圧縮ディレクトリ装置12とを有する。
図示していないが、プロセッサ2bから2dの内部もプ
ロセッサ2aと同様の構成をとる。
<Embodiment 1> FIG. 1 is a schematic configuration diagram of an embodiment of a multiprocessor system according to the present invention. In the figure, 2 a to 2 d are processor elements, which share the main memory 20 connected to the bus 1. In the processor element 2a, an instruction processor (IP) 3 and a cache device 11 for holding a copy of the data in the main memory 20 are provided. These cache devices 11 are accessed by the instruction processor 3. The processor element further includes a bit compression directory device 13 that holds directory information for a compressed area regarding data held in a cache device of another processor element, and this cache device 1.
The compressed directory device 12 holds compressed directory information regarding the data held in 1.
Although not shown, the inside of the processors 2b to 2d has the same configuration as that of the processor 2a.

【0028】本実施例では、各プロセッサエレメントの
キャッシュ装置11に保持されるブロックのサイズより
大きなサイズの単位領域に主記憶20の領域を区分し、
これらの単位領域の各々に対して、その単位領域に属す
るデータを各プロセッサエレメントが保持しているか否
かを示すディレクトリ情報を使用する。したがって、単
位領域のサイズがキャッシュに保持されるブロックのサ
イズと等しいときよりは少ない数のエントリからなる。
その意味で、本実施例では圧縮されたディレクトリ情報
を使用する。
In this embodiment, the area of the main memory 20 is divided into unit areas each having a size larger than the size of the block held in the cache device 11 of each processor element.
For each of these unit areas, directory information indicating whether or not each processor element holds data belonging to the unit area is used. Therefore, the number of entries is smaller than when the size of the unit area is equal to the size of the block held in the cache.
In that sense, the compressed directory information is used in this embodiment.

【0029】より具体的には、ビット圧縮ディレクトリ
装置13は、後に説明するように、他の複数のプロセッ
サエレメントの各々に関する圧縮されたディレクトリ情
報を保持する。このビット圧縮ディレクトリ装置13
は、命令プロセッサ3が主記憶20に対するデータを書
き込み要求を発行したとき、そのデータを保持する他の
プロセッサエレメントの有無を判別し、それにより、も
し、いずれかの他のプロセッサエレメントが同じデータ
を保持している場合に、当該他のプロセッサエレメント
内のデータが、このプロセッサエレメント2a内のキャ
ッシュ装置11に保持されたデータとの間で不一致が生
じないように、いわゆるキャッシュコヒーレンスの制御
に使用される。例えば、そのデータのアドレスを指定し
て、そのアドレスのでデータの無効を指示する。他のプ
ロセッサエレメントでは、この無効の指示に応答して、
その無効指示で指定されるアドレスのデータがキャッシ
ュ装置11内に保持されているかを判別し、そのデータ
を含むブロックがキャッシュ装置内に保持されていれ
ば、そのブロックを無効にする。
More specifically, the bit compression directory device 13 holds compressed directory information regarding each of a plurality of other processor elements, as will be described later. This bit compression directory device 13
When the instruction processor 3 issues a request to write data to the main memory 20, it determines whether or not there is another processor element holding the data, and if any of the other processor elements receives the same data. When the data is held, the data in the other processor element is used for the control of so-called cache coherence so that the data held in the cache device 11 in the processor element 2a does not become inconsistent. It For example, the address of the data is specified, and the invalidation of the data is instructed at that address. In the other processor elements, in response to this invalid indication,
It is determined whether the data of the address specified by the invalidation instruction is held in the cache device 11, and if the block including the data is held in the cache device, the block is invalidated.

【0030】なお、ビット圧縮ディレクトリ装置13
は、キャッシュ装置11に保持されるブロックのサイズ
より大きな単位領域に関するディレクトリ情報を有する
ため、このビット圧縮ディレクトリ装置13によるディ
レクトリチェックの結果、いずれかの他のプロセッサエ
レメント内のキャッシュ装置がその書き込み要求が指定
するデータを現実には保持していないことが起こり得
る。これは、無駄なキャッシュチェックをすることにな
り、上記他のプロセッサエレメント内の命令プロセッサ
3によるアクセスとの間で、キャッシュチェックに関し
て無駄な競合をすることになる。しかし、この無駄な競
合は従来のスヌーピ方式の場合よりもはるかに少ない。
また、プロセッサエレメント間で共有されるデータがあ
る程度限られているときには、この無駄な競合はさらに
低減される。
The bit compression directory device 13
Has directory information about a unit area larger than the size of the block held in the cache device 11, the result of the directory check by the bit compression directory device 13 indicates that the cache device in any of the other processor elements requests the write request. It is possible that the data specified by is not actually stored. This results in a wasteful cache check, resulting in a wasteful competition with respect to the cache check with the access by the instruction processor 3 in the other processor element. However, this useless contention is much less than in the conventional Snoopy scheme.
Further, when the data shared between the processor elements is limited to some extent, this useless competition is further reduced.

【0031】なお、圧縮ディレクトリ装置12は、この
装置が含まれているプロセッサエレメント2aに関する
ディレクトリ情報を保持する。この圧縮ディレクトリ装
置12は、このプロセッサエレメント内の命令プロセッ
サ3により、上記データ書き込み要求が発行された結
果、このプロセッサエレメントに関する圧縮されたディ
レクトリ情報に変更が生じたときに、他のプロセッサエ
レメントにそれを通知し、それらのプロセッサエレメン
ト内のビット圧縮ディレクトリ装置13の内容を書き換
えるのに使用される。したがって、この圧縮ディレクト
リ装置12には、ビット圧縮ディレクトリ装置13とは
異なるディレクトリ情報を有する。
The compression directory device 12 holds the directory information regarding the processor element 2a including this device. This compressed directory device 12 notifies the other processor elements when the compressed directory information relating to this processor element has changed as a result of the data write request issued by the instruction processor 3 in this processor element. And is used to rewrite the contents of the bit compression directory unit 13 in those processor elements. Therefore, the compressed directory device 12 has different directory information from the bit compressed directory device 13.

【0032】以上のように、本実施例では、圧縮された
ディレクトリ情報を使用することにより、ディレクトリ
情報の総容量を減少するとともに、各プロセッサエレメ
ントに関するディレクトリ情報を、他のプロセッサエレ
メントに分散して配置しているので、複数のプロセッサ
エレメントに関するディレクトリ情報を主記憶又はその
近傍に集中して配置する方法よりも、ディレクトリ情報
へのアクセスおよびそのディレクトリ情報に基づくその
後のコヒーレンス制御の処理を高速化している。本実施
例では、一つのプロセッサエレメントに関するディレク
トリ情報が他の複数のプロセッサエレメントの各々に重
複されて保持されることになる。したがって、主記憶2
0内又はその近傍に全部のプロセッサエレメントに関す
るディレクトリ情報を集中して配置する場合より、ディ
レクトリ情報の総容量が増大する可能性があるが、本実
施例では、ディレクトリ情報の圧縮率をある程度高い値
にすることにより、ディレクトリ情報の総容量が、主記
憶にディレクトリ情報が集中して配置している場合より
も少なくしている。
As described above, in this embodiment, by using the compressed directory information, the total capacity of the directory information is reduced and the directory information regarding each processor element is distributed to other processor elements. Since they are arranged, the access to the directory information and the subsequent processing of the coherence control based on the directory information can be speeded up as compared with the method of centrally arranging the directory information regarding a plurality of processor elements in the main memory or in the vicinity thereof. There is. In this embodiment, the directory information regarding one processor element is duplicated and held in each of the other plurality of processor elements. Therefore, main memory 2
There is a possibility that the total capacity of the directory information will increase as compared with the case where the directory information related to all the processor elements is centrally arranged in or near 0, but in the present embodiment, the compression rate of the directory information is set to a high value to some extent. By doing so, the total capacity of the directory information is reduced as compared with the case where the directory information is concentrated in the main memory.

【0033】図1においては、プロセッサエレメント2
aの内部のうち、キャッシュコヒーレンス制御に関連の
ある部分のみ示し、通常の命令実行に関係する部分は図
示していないが、これらは従来のプロセッサと同様に処
理が行われる。また、以下の説明に於いて、プロセッサ
名を付けずに述べたものは全てプロセッサ2a内にある
ものを指し示すこととする。例えば、「キャッシュ装置
11」と記述された場合、これはプロセッサ2a内のキ
ャッシュ装置11を示す。他のプロセッサのキャッシュ
装置11を述べる場合には、「プロセッサ2b内のキャ
ッシュ装置11」のように記述するものとする。以上の
ような省略形を用いず、「プロセッサ2a内のキャッシ
ュ装置11」のような表現を行う場合も、もちろんあり
うる。
In FIG. 1, the processor element 2
Of the inside of a, only the part related to cache coherence control is shown, and the part related to normal instruction execution is not shown, but these are processed in the same way as a conventional processor. Further, in the following description, all the description without adding the processor name indicates the one in the processor 2a. For example, when described as "cache device 11", this indicates the cache device 11 in the processor 2a. When describing the cache device 11 of another processor, it is described as "cache device 11 in the processor 2b". It is of course possible that an expression such as "the cache device 11 in the processor 2a" is made without using the above abbreviations.

【0034】図2は、キャッシュ装置11の内部の構成
を示した図である。図において、30はキャッシュメモ
リであり、15から18はキャッシュメモリ30に含ま
れる複数のエントリの各々に含まれるフィールドを示し
ており、18は一つのブロックを保持するデータ部、1
5はそのブロックのアドレスを保持するアドレス部、1
6は、そのエントリのデータ部のデータが有効か否かを
示す有効ビット(VB)、17はそのデータが有効な場
合において、そのデータが、主記憶20からキャッシュ
装置11にロードされた後、命令プロセッサ3により書
き換えられたか否かを示すストアビット(DB)であ
る。このようなフィールドを有するキャッシュ自体は公
知である。本実施例では、キャッシュ装置11はストア
タイプのキャッシュを使用する。
FIG. 2 is a diagram showing the internal construction of the cache device 11. In the figure, 30 is a cache memory, and 15 to 18 are fields included in each of a plurality of entries included in the cache memory 30, and 18 is a data section for holding one block, 1
5 is an address part for holding the address of the block, 1
6 is a valid bit (VB) indicating whether or not the data in the data portion of the entry is valid, and 17 is the case where the data is valid, after the data is loaded from the main memory 20 into the cache device 11, It is a store bit (DB) indicating whether or not it has been rewritten by the instruction processor 3. Caches having such fields are known per se. In this embodiment, the cache device 11 uses a store type cache.

【0035】図4は、ビット圧縮ディレクトリ装置13
の内部の構成を示した図である。図において、54から
56はビット圧縮ディレクトリである。
FIG. 4 shows the bit compression directory device 13
It is the figure which showed the internal structure. In the figure, 54 to 56 are bit compression directories.

【0036】図6はビット圧縮ディレクトリ54から5
6の構成を示す図である。ビット圧縮ディレクトリ54
から56は主記憶をアドレス単位、例えば、1MB単位
で区切ったテーブルであり、各エントリは他有効ビット
23と他ストアビット24からなる。ビット圧縮ディレ
クトリ54から56は他のプロセッサの各々に対応して
設けられ、他のプロセッサのキャッシュの状態を示して
いる。他有効ビット23は、アドレス管理単位内のアド
レスのデータが対応する他のプロセッサのキャッシュに
登録されてるかどうかを示すビットであり、他ストアビ
ット24は、このキャッシュに登録されているデータの
うち、ストアビット17の値がDB=1となっているも
のがあるかどうかを示すビットである。他有効ビット2
3と他ストアビット24の値は、元になる圧縮ディレク
トリ40が更新された際に同時に更新を受ける。尚、本
実施例では説明の都合上、アドレス管理単位を1MBと
しているが、ビット圧縮ディレクトリ54から56と圧
縮ディレクトリ40が同一のアドレス分割方法であれ
ば、これ以外でもよいことは言うまでもない。
FIG. 6 shows bit compression directories 54 to 5
It is a figure which shows the structure of 6. Bit compression directory 54
Reference numerals 56 to 56 are tables in which the main memory is divided in address units, for example, 1 MB units, and each entry includes another valid bit 23 and another store bit 24. The bit compression directories 54 to 56 are provided corresponding to each of the other processors and indicate the cache states of the other processors. The other valid bit 23 is a bit indicating whether or not the data of the address in the address management unit is registered in the cache of the corresponding other processor, and the other store bit 24 is one of the data registered in this cache. , Store bit 17 is a bit indicating whether or not there is a value of DB = 1. Other effective bit 2
The values of 3 and the other store bit 24 are simultaneously updated when the original compression directory 40 is updated. In the present embodiment, the address management unit is set to 1 MB for convenience of description, but it goes without saying that the bit compression directories 54 to 56 and the compression directory 40 may have the same address division method.

【0037】図10は、プロセッサ2aから2d内のビ
ット圧縮ディレクトリ54から56が、どのプロセッサ
2aから2dの圧縮ディレクトリ40に対応しているか
を示す対応表である。ビット圧縮ディレクトリは、他の
プロセッサ内の圧縮ディレクトリの内容を反映したもの
である。各々のプロセッサは、他のプロセッサの圧縮デ
ィレクトリに対応したビット圧縮ディレクトリを有す
る。具体的に述べると、図4中の54はプロセッサ2b
内の圧縮ディレクトリ(図示せず)に対応するビット圧
縮ディレクトリであり、55はプロセッサ2c内の圧縮
ディレクトリ(図示せず)に対応するビット圧縮ディレ
クトリであり、56はプロセッサ2d内の圧縮ディレク
トリ(図示せず)に対応するビット圧縮ディレクトリで
ある。同様にして、プロセッサ2bはプロセッサ2a内
の圧縮ディレクトリ12に対応するビット圧縮ディレク
トリ(図示せず)、プロセッサ2c内の圧縮ディレクト
リ(図示せず)に対応するビット圧縮ディレクトリ(図
示せず)および、プロセッサ2d内の圧縮ディレクトリ
(図示せず)に対応するビット圧縮ディレクトリ(図示
せず)を持つ。他のプロセッサについても同様である。
FIG. 10 is a correspondence table showing which bit compression directories 54 to 56 in the processors 2a to 2d correspond to the compression directories 40 of the processors 2a to 2d. The bit compression directory reflects the contents of the compression directory in another processor. Each processor has a bit compression directory that corresponds to the compression directories of the other processors. Specifically, 54 in FIG. 4 is the processor 2b.
Is a bit compression directory corresponding to a compression directory in the processor 2c, 55 is a bit compression directory corresponding to a compression directory in the processor 2c (not shown), and 56 is a compression directory in the processor 2d. It is a bit compression directory corresponding to (not shown). Similarly, the processor 2b has a bit compression directory (not shown) corresponding to the compression directory 12 in the processor 2a, a bit compression directory (not shown) corresponding to a compression directory (not shown) in the processor 2c, and It has a bit compression directory (not shown) corresponding to the compression directory (not shown) in the processor 2d. The same applies to other processors.

【0038】本実施例ではプロセッサが4台の場合を図
示してあるが、これ以外の台数でもかまわない。その場
合、プロセッサの台数に応じてビット圧縮ディレクトリ
54から56を増減し、その台数をプロセッサ当たり、
プロセッサ数より1を減じた数にすればよい。
In the present embodiment, the case where the number of processors is four is shown, but the number of processors may be other than this. In that case, the bit compression directories 54 to 56 are increased / decreased according to the number of processors,
The number may be one less than the number of processors.

【0039】図3は、圧縮ディレクトリ装置12の内部
の構成を示した図である。図において、40は圧縮ディ
レクトリである。
FIG. 3 is a diagram showing an internal configuration of the compression directory device 12. In the figure, 40 is a compression directory.

【0040】図5は圧縮ディレクトリ40の構成を示す
図である。圧縮ディレクトリ40は、ビット圧縮ディレ
クトリで用いたアドレス単位と同じアドレス単位、例え
ば、1MB、でもって、主記憶を区切ったテーブルであ
り、各エントリは有効ブロック数21とストブロック数
22からなる。圧縮ディレクトリ40は自プロセッサの
キャッシュメモリ30のエントリのアドレス部15、有
効ビット16、ストアビット17の情報を持つ装置であ
る。有効ブロック数21には、圧縮ディレクトリ40の
アドレス管理単位(1MB)内のアドレス毎にキャッシ
ュメモリ30内にいくつのVB=1となっているエント
リが存在するかを計数した結果が記録される。同様に、
ストブロック数22には、圧縮ディレクトリ40のアド
レス管理単位(1MB)内のアドレス毎にキャッシュメ
モリ30内にいくつのDB=1となっているエントリが
存在するかを計数した結果が記録される。尚、本実施例
では主記憶のサイズを4GBとし、アドレスを1MB単
位の分割としているが、これ以外の値でもよいことは言
うまでもない。
FIG. 5 is a diagram showing the structure of the compression directory 40. The compression directory 40 is a table in which the main memory is divided by the same address unit as that used in the bit compression directory, for example, 1 MB, and each entry has 21 effective blocks and 22 strike blocks. The compression directory 40 is a device having information of the address section 15, the valid bit 16 and the store bit 17 of the entry of the cache memory 30 of the self processor. The number of valid blocks 21 records the result of counting how many VB = 1 entries exist in the cache memory 30 for each address in the address management unit (1 MB) of the compressed directory 40. Similarly,
The number of storage blocks 22 records the result of counting how many DB = 1 entries exist in the cache memory 30 for each address in the address management unit (1 MB) of the compressed directory 40. In this embodiment, the size of the main memory is 4 GB and the address is divided into 1 MB units, but it goes without saying that other values may be used.

【0041】(動作の概略)さて、通常のディレクトリ
方式において、キャッシュコヒーレンス制御は2種類の
動作によって行われる。すなわち、各プロセッサの自キ
ャッシュアクセス時に同時に行われるディレクトリの参
照によって発生する、他のプロセッサのキャッシュの内
容の更新(具体的にはデータの主記憶への書き戻し、な
いしは、データのパージ)と、各プロセッサのキャッシ
ュアクセスに起因するキャッシュ状態の変化に伴うディ
レクトリの内容の更新とである。本実施例のキャッシュ
コヒーレンス制御も同様な2種類の動作によって行われ
る。以下でもキャッシュコヒーレンス制御という言葉
を、各プロセッサのキャッシュアクセス時に発生する、
他のプロセッサのキャッシュの内容の更新要求と、自プ
ロセッサのキャッシュの状態の更新という意味で用いる
ことがある。この制御は、プロセッサエレメント、例え
ば、2aがキャッシュメモリ30をアクセスすることを
きっかけとして行われ、キャッシュアクセスの結果と、
キャッシュアクセスしたアドレスのデータが他のプロセ
ッサ2bから2dのキャッシュメモリに存在するかしな
いか、存在した場合にはそのデータの内容が主記憶20
の内容と一致しているかどうか、によって異なる動作を
とる。
(Outline of Operation) In the normal directory system, cache coherence control is performed by two kinds of operations. That is, updating of the contents of the cache of another processor (specifically, writing back of data to the main memory, or purging of data) that occurs due to directory reference being performed at the same time when each processor accesses its own cache, The contents of the directory are updated when the cache state changes due to the cache access of each processor. The cache coherence control of this embodiment is also performed by two similar operations. In the following, the term cache coherence control is also used when the cache is accessed by each processor.
It may be used to mean a request to update the cache contents of another processor and an update of the cache state of its own processor. This control is performed when the processor element, for example, 2a accesses the cache memory 30, and the result of the cache access and
Whether or not the data of the address accessed by the cache exists in the cache memory of the other processors 2b to 2d, or if it exists, the content of the data is stored in the main memory 20.
It takes different actions depending on whether it matches the contents of.

【0042】以下では、プロセッサエレメント2aによ
るキャッシュアクセスを例に取り、そのアクセスの結果
が1)リードヒット、2)リードミス、3)ライトヒッ
ト、4)ライトミスの場合について順に説明を行う。リ
ードヒットとはキャッシュをリードのためにアクセスし
て、キャッシュがヒットした状態を示す。以下同様であ
る。尚、プロセッサ2aにおいてキャッシュアクセスし
たアドレスのデータが他のプロセッサ2bから2dのキ
ャッシュメモリ30に存在するかどうか、また、存在し
た場合にそのデータの内容が主記憶20の内容と一致し
ているかどうかは、ビット圧縮ディレクトリ装置13に
おいて判定されるが、判定の詳細は後で述べる。ここで
は判定が行われたあとの処理について説明を行う。
In the following, the cache access by the processor element 2a is taken as an example, and the case where the access result is 1) read hit, 2) read miss, 3) write hit, and 4) write miss will be described in order. The read hit indicates a state in which the cache is accessed for reading and the cache is hit. The same applies hereinafter. Whether the data of the address accessed by the cache in the processor 2a exists in the cache memory 30 of the other processors 2b to 2d, and if it exists, whether the content of the data matches the content of the main memory 20. Is determined by the bit compression directory device 13, and details of the determination will be described later. Here, the processing after the determination is performed will be described.

【0043】1)リードヒット この場合には、プロセッサ2aはキャッシュメモリ30
からデータを読みとるが、他のプロセッサ2bから2d
のキャッシュメモリ30に対しては特別な動作を行うこ
となく動作を終了する。また、読み出したエントリの有
効ビット16、ストアビット17の値は元のままで変化
しない(VB=1となり、DBは元のままである)。
1) Read hit In this case, the processor 2a uses the cache memory 30.
Read data from the other processors 2b to 2d
The operation is ended without performing any special operation on the cache memory 30 of FIG. Further, the values of the valid bit 16 and the store bit 17 of the read entry remain unchanged (VB = 1 and DB remains unchanged).

【0044】2)リードミス この場合には、リードミスしたアドレスのデータが他の
プロセッサ2bから2dのキャッシュメモリ30に存在
するかどうかで動作が変化する。
2) Read Miss In this case, the operation changes depending on whether or not the data at the read-missed address exists in the cache memory 30 of the other processors 2b to 2d.

【0045】2a)読み出すべきデータが他のプロセッ
サのキャッシュメモリ30に存在しない場合 プロセッサ2aのキャッシュメモリ30は主記憶20に
対してデータの読み出しを行い、データをデータ部18
に格納する。他のプロセッサ2bから2dのキャッシュ
メモリ30に対しては特別な動作を行うことなく動作を
終了する。
2a) When the data to be read does not exist in the cache memory 30 of another processor: The cache memory 30 of the processor 2a reads the data from the main memory 20 and stores the data in the data section 18
To be stored. The operation ends without performing any special operation on the cache memories 30 of the other processors 2b to 2d.

【0046】2b)読み出すべきデータが他のプロセッ
サのキャッシュメモリ30に存在して、そのデータの内
容が主記憶20の内容と一致している場合 上記の2a)と同様で、キャッシュメモリ30は主記憶
20に対してデータの読み出しを行い、他のプロセッサ
2bから2dのキャッシュメモリ30に対しては特別な
動作を行うことなく動作を終了する。
2b) When the data to be read exists in the cache memory 30 of another processor and the content of the data matches the content of the main memory 20, the same as in 2a) above, the cache memory 30 is The data is read from the memory 20, and the operation ends without performing any special operation on the cache memory 30 of the other processors 2b to 2d.

【0047】2c)読み出すべきデータが他のプロセッ
サのキャッシュメモリ30に存在して、そのデータの内
容が主記憶20の内容と一致していない場合 プロセッサ2aにおいてキャッシュコヒーレンス制御の
要求を他のプロセッサ2bから2dに対して発行する装
置であるビット圧縮ディレクトリ装置13が、他のプロ
セッサ2bから2dに対して、リードミスしたアドレス
のデータを、他のプロセッサ2bから2dのキャッシュ
メモリ30から主記憶20に書き戻しを行うよう要求を
発行する。書き戻しが完了すると、書き戻しを行った他
のプロセッサ2bから2dのキャッシュメモリ30のエ
ントリのストアビット17の値はDB=1からDB=0
へと変化する(VBは1のまま)。書き戻しの完了はプ
ロセッサ2aのキャッシュメモリ30に通知され、プロ
セッサ2aのキャッシュメモリ30はデータを主記憶2
0から読み出す。
2c) When the data to be read exists in the cache memory 30 of another processor and the content of the data does not match the content of the main memory 20. A request for cache coherence control is issued by the processor 2a to the other processor 2b. From the cache memory 30 of the other processors 2b to 2d to the main memory 20 by the bit compression directory device 13, which is a device issuing to the other processors 2b to 2d, from the other processors 2b to 2d. Issue a request to do a return. When the write-back is completed, the value of the store bit 17 of the entry of the cache memory 30 of the other processors 2b to 2d that performed the write-back is DB = 1 to DB = 0.
Changes to (VB remains at 1). The completion of the write-back is notified to the cache memory 30 of the processor 2a, and the cache memory 30 of the processor 2a stores the data in the main memory 2
Read from 0.

【0048】リードミスの場合には、以上のようにキャ
ッシュコヒーレンス制御が行われるれ、プロセッサ2a
のキャッシュメモリ30に新たに読み出したデータのた
めのエントリが生成され、その有効ビット16の値はV
B=1となり、ストアビット17の値はDB=0とな
る。
In the case of a read miss, the cache coherence control is performed as described above, and the processor 2a
An entry for the newly read data is generated in the cache memory 30 of the above, and the value of the valid bit 16 is V
B = 1 and the value of the store bit 17 becomes DB = 0.

【0049】3)ライトヒット この場合にも、リードミスの場合と同様、ライトヒット
したアドレスのデータが他のプロセッサ2bから2dの
キャッシュメモリ30に存在するかどうかで動作が変化
する。
3) Write Hit In this case as well, as in the case of a read miss, the operation changes depending on whether or not the data at the address where the write hit exists in the cache memory 30 of the other processors 2b to 2d.

【0050】3a)書き込むべきデータが他のプロセッ
サ2bから2dのキャッシュメモリ30に存在しない場
合 プロセッサ2aはキャッシュメモリ30へデータを書き
込むが、他のプロセッサ2bから2dのキャッシュメモ
リ30に対しては特別な動作を行うことなく動作を終了
する。
3a) When the data to be written does not exist in the cache memory 30 of the other processors 2b to 2d The processor 2a writes the data to the cache memory 30, but it is special for the cache memory 30 of the other processors 2b to 2d. The operation ends without performing any operation.

【0051】3b)書き込むべきデータが他のプロセッ
サ2bから2dのキャッシュメモリ30に存在して、そ
のデータの内容が主記憶20の内容と一致している場合 プロセッサ2aはキャッシュメモリ30へデータを書き
込むと同時に、ビット圧縮ディレクトリ装置13が、他
のプロセッサ2bから2dに、そのアドレスのデータを
キャッシュメモリ30からパージを行うよう要求を発行
する。パージを受け付けた他のプロセッサ2bから2d
のキャッシュメモリ30のエントリの有効ビット16の
値はVB=1からVB=0へと変化する。プロセッサ2
aは、他のプロセッサ2bから2dのキャッシュメモリ
30のパージを待つことなく、プロセッサ2aのキャッ
シュメモリ30の書き込みを行う。
3b) When the data to be written exists in the cache memory 30 of the other processors 2b to 2d and the content of the data matches the content of the main memory 20. The processor 2a writes the data in the cache memory 30. At the same time, the bit compression directory device 13 issues a request to the other processors 2b to 2d to purge the data of the address from the cache memory 30. Other processors 2b to 2d that have accepted the purge
The value of the valid bit 16 of the cache memory 30 entry changes from VB = 1 to VB = 0. Processor 2
The a writes to the cache memory 30 of the processor 2a without waiting for the purging of the cache memory 30 of the other processors 2b to 2d.

【0052】ライトヒットの場合には、以上のようなキ
ャッシュコヒーレンス制御が行われる。そして、プロセ
ッサ2aがキャッシュメモリ30にデータを書き込んだ
エントリのストアビット17の値をDB=1とする。有
効ビット16の値は元のまま(VB=1)で変化しな
い。
In the case of a write hit, the cache coherence control as described above is performed. Then, the value of the store bit 17 of the entry in which the processor 2a writes the data in the cache memory 30 is set to DB = 1. The value of the valid bit 16 remains unchanged (VB = 1) and does not change.

【0053】尚、本実施例において説明を行っているキ
ャッシュコヒーレンス制御では、ライトヒットの場合に
おいて、プロセッサ2aにおいてライトヒットしたデー
タが、他のプロセッサ2bから2dのキャッシュメモリ
30に存在して、かつ、他のプロセッサ2bから2dの
キャッシュメモリ30のこのデータが主記憶20と一致
しないという状態になることはない。したがって、リー
ドミスの場合の2c)に相当する状態を考える必要はな
い。これは、本実施例において説明を行っているキャッ
シュコヒーレンス制御では、リードミス時には他のプロ
セッサの一致するキャッシュラインの書き戻しを行い、
ライト動作の際に他のプロセッサの一致するキャッシュ
ラインのパージを行うためである。したがって、同一の
データを複数のプロセッサのキャッシュメモリ30が共
有する場合(それらのキャッシュメモリの有効ビット1
6がVB=1となる場合)には、どのプロセッサのキャ
ッシュメモリ30のストアビット17もDB=1となる
ことはない。また、あるプロセッサにおいてキャッシュ
メモリ30のストアビット17がDB=1となっている
場合には、他のプロセッサのキャッシュメモリ30に
は、そのデータは存在しない。
In the cache coherence control described in the present embodiment, in the case of a write hit, the data which is write hit in the processor 2a exists in the cache memory 30 of the other processors 2b to 2d, and The data in the cache memories 30 of the other processors 2b to 2d will not be inconsistent with the main memory 20. Therefore, it is not necessary to consider the state corresponding to 2c) in the case of a read miss. This is because in the cache coherence control described in the present embodiment, when a read miss occurs, the cache line that matches with another processor is written back,
This is because purging of the cache line that coincides with that of another processor is performed during the write operation. Therefore, when the same data is shared by the cache memories 30 of a plurality of processors (the effective bit 1 of those cache memories is 1
(When 6 becomes VB = 1), the store bit 17 of the cache memory 30 of any processor never becomes DB = 1. Further, when the store bit 17 of the cache memory 30 in one processor is DB = 1, the data does not exist in the cache memory 30 of another processor.

【0054】4)ライトミス この場合には、基本的にはリードミスの制御を行った後
にキャッシュメモリ30にデータを書き込む制御が行わ
れる。したがって、リードミスの場合と同様にライトミ
スしたアドレスのデータが他のプロセッサ2bから2d
のキャッシュメモリ30に存在するかどうかで動作が変
化する。
4) Write Miss In this case, basically, the control of writing the data in the cache memory 30 is performed after the control of the read miss. Therefore, as in the case of the read miss, the data of the address where the write miss occurs is transmitted from the other processors 2b to 2d.
The operation changes depending on whether the cache memory 30 exists.

【0055】4a)書き込むべきデータが他のプロセッ
サ2bから2dのキャッシュメモリ30に存在しない場
合 プロセッサ2aのキャッシュメモリ30は主記憶20に
対してデータの読み出しを行い、データをデータ部18
に格納する。格納した後に、命令プロセッサ(IP)3
はデータをキャッシュメモリ30に書き込む。他のプロ
セッサ2bから2dのキャッシュメモリ30に対しては
特別な動作を行うことなく動作を終了する。
4a) When the data to be written does not exist in the cache memory 30 of the other processors 2b to 2d The cache memory 30 of the processor 2a reads the data from the main memory 20 and stores the data in the data section 18
To be stored. After storing, the instruction processor (IP) 3
Writes data to the cache memory 30. The operation ends without performing any special operation on the cache memories 30 of the other processors 2b to 2d.

【0056】4b)書き込むべきデータが他のプロセッ
サ2bから2dのキャッシュメモリ30に存在して、そ
のデータの内容が主記憶20の内容と一致している場合 プロセッサ2aのビット圧縮ディレクトリ装置13が、
他のプロセッサ2bから2dに対して、ライトミスした
アドレスのデータを、他のプロセッサ2bから2dのキ
ャッシュメモリ30からパージを行うよう要求を発行す
る。パージ要求の結果、他のプロセッサ2bから2dの
キャッシュメモリ30のエントリの有効ビット16の値
はVB=1からVB=0へと変化する(DBは0のま
ま)。パージ要求と並行して、プロセッサ2aのキャッ
シュメモリ30はデータを主記憶20から読み出し、デ
ータをデータ部18に格納する。格納した後、命令プロ
セッサ(IP)3はデータをキャッシュメモリ30に書
き込む。
4b) When the data to be written exists in the cache memory 30 of the other processors 2b to 2d and the content of the data matches the content of the main memory 20. The bit compression directory device 13 of the processor 2a
A request is issued to the other processors 2b to 2d to purge the data of the write-missed address from the cache memory 30 of the other processors 2b to 2d. As a result of the purge request, the value of the valid bit 16 of the entry of the cache memory 30 of the other processors 2b to 2d changes from VB = 1 to VB = 0 (DB remains 0). In parallel with the purge request, the cache memory 30 of the processor 2a reads data from the main memory 20 and stores the data in the data unit 18. After storing, the instruction processor (IP) 3 writes the data in the cache memory 30.

【0057】4c)書き込むべきデータが他のプロセッ
サ2bから2dのキャッシュメモリ30に存在して、そ
のデータの内容が主記憶20の内容と一致していない場
合 プロセッサ2aのビット圧縮ディレクトリ装置13が、
他のプロセッサ2bから2dに対して、ライトミスした
アドレスのデータの、他のプロセッサ2bから2dのキ
ャッシュメモリ30から主記憶20への書き戻し、およ
び、書き戻しの後のパージの2つの要求を発行する。書
き戻しおよびパージが完了すると、書き戻しを行った他
のプロセッサ2bから2dのキャッシュメモリ30のエ
ントリの有効ビット16、およびストアビット17の値
は共に0となる。書き戻しの完了はプロセッサ2aのキ
ャッシュメモリ30に通知され、プロセッサ2aのキャ
ッシュメモリ30はデータを主記憶20から読み出し、
データをデータ部18に格納する。格納した後、命令プ
ロセッサ(IP)3はデータをキャッシュメモリ30に
書き込む。
4c) When the data to be written exists in the cache memory 30 of the other processors 2b to 2d and the content of the data does not match the content of the main memory 20. The bit compression directory device 13 of the processor 2a
Two requests are issued to the other processors 2b to 2d for writing back the data of the write miss address from the cache memory 30 of the other processors 2b to 2d to the main memory 20, and for purging after the writing back. Issue. When the write-back and the purge are completed, the values of the valid bit 16 and the store bit 17 of the entries of the cache memories 30 of the other processors 2b to 2d that have performed the write-back become 0. The completion of the write-back is notified to the cache memory 30 of the processor 2a, the cache memory 30 of the processor 2a reads the data from the main memory 20,
The data is stored in the data section 18. After storing, the instruction processor (IP) 3 writes the data in the cache memory 30.

【0058】ライトミスの場合には、以上のようなキャ
ッシュコヒーレンス制御が行われる。そして、プロセッ
サ2aのキャッシュメモリ30に新たに読み出したデー
タのためのエントリが生成され、その有効ビット16の
値はVB=1となり、ストアビット17の値はDB=1
となる。
In the case of a write miss, the cache coherence control as described above is performed. Then, an entry for the newly read data is generated in the cache memory 30 of the processor 2a, the value of the valid bit 16 becomes VB = 1, and the value of the store bit 17 becomes DB = 1.
Becomes

【0059】尚、リードミスおよび、ライトミスの場合
において、新たにエントリを生成するために他のエント
リのリプレースを行う制御は、シングルプロセッサと同
様であり、リプレースに伴って他のプロセッサのキャッ
シュメモリ30の状態を変更することはない。
In the case of a read miss and a write miss, the control for replacing another entry in order to newly create an entry is the same as that of the single processor, and the cache memory 30 of another processor is accompanied by the replacement. It does not change the state of.

【0060】(動作の詳細)以下では、あるプロセッサ
のキャッシュメモリ30のアクセス時に、アクセスした
データが他のプロセッサのキャッシュに存在するかどう
か、また、存在した場合にそのデータの内容が主記憶2
0の内容と一致しているかどうかを、ビット圧縮ディレ
クトリ装置13がどのようにして判定するか、および、
このデータが他のプロセッサのキャッシュに存在してい
た場合に、どのようにして他のプロセッサのキャッシュ
に対してその内容の書き戻しまたはパージを要求するか
を装置の構成とともに詳細に説明する。説明は、プロセ
ッサ2aにおける命令プロセッサ(IP)3のキャッシ
ュメモリ30のアクセスに起因する場合を例として行う
が、その他のプロセッサの場合でも同様である。
(Details of Operation) In the following, at the time of accessing the cache memory 30 of a certain processor, whether the accessed data exists in the cache of the other processor, and if it exists, the content of the data is stored in the main memory 2.
How the bit compression directory device 13 determines whether or not it matches the content of 0, and
When this data exists in the cache of another processor, how to request the cache of the other processor to write back or purge its contents will be described in detail together with the configuration of the device. The description will be given by taking as an example the case where the cache memory 30 of the instruction processor (IP) 3 in the processor 2a is accessed, but the same applies to other processors.

【0061】まず、プロセッサ2aにおける命令プロセ
ッサ(IP)3がキャッシュメモリ30のアクセスを行
う。この時、調停回路4によって命令プロセッサ(I
P)3が優先され、信号線L12が示すアドレスがセレ
クタ10を通過し、信号線L23に伝達されて、キャッ
シュメモリ30へのアクセスが行われたとする。する
と、信号線L12が示すアドレスでキャッシュメモリ3
0の検索を行うと同時に、ビット圧縮ディレクトリ54
から56の検索も行われる。このアドレスに対応するビ
ット圧縮ディレクトリ54から56のいずれかのエント
リの他有効ビットおよび他ストアビットが0であった場
合には、ビット圧縮ディレクトリ54から56に対応す
る他プロセッサ2bから2dのキャッシュメモリ30に
おいて、プロセッサ2aの命令プロセッサ(IP)3の
アクセスしたアドレスが存在しないことを示している。
この場合には他プロセッサ2bから2dに対して、キャ
ッシュコヒーレンス制御を行う必要はない。逆に、この
アドレスに対応するビット圧縮ディレクトリ54から5
6のいずれかのエントリの他有効ビット23または他ス
トアビット24が1であった場合には、該当する他プロ
セッサ2bから2dに対して、キャッシュコヒーレンス
制御を行う必要のあることを示しているため、引き続い
てキャッシュコヒーレンス要求がビット圧縮ディレクト
リ装置13によって行われる。
First, the instruction processor (IP) 3 in the processor 2a accesses the cache memory 30. At this time, the arbitration circuit 4 causes the instruction processor (I
P) 3 is prioritized, the address indicated by the signal line L12 passes through the selector 10, is transmitted to the signal line L23, and the cache memory 30 is accessed. Then, at the address indicated by the signal line L12, the cache memory 3
At the same time as searching for 0, the bit compression directory 54
Searches from 56 to 56 are also performed. If the other valid bit and the other store bit of any of the entries of the bit compression directories 54 to 56 corresponding to this address are 0, the cache memories of the other processors 2b to 2d corresponding to the bit compression directories 54 to 56. At 30, the address accessed by the instruction processor (IP) 3 of the processor 2a does not exist.
In this case, it is not necessary to perform cache coherence control on the other processors 2b to 2d. Conversely, the bit compression directories 54 to 5 corresponding to this address
If the other valid bit 23 or the other store bit 24 of any of the entries 6 is 1, it indicates that the cache coherence control needs to be performed on the corresponding other processors 2b to 2d. , A cache coherence request is subsequently made by the bit compression directory device 13.

【0062】まず、コヒレンシ制御要求回路50に入力
される3本の信号線L10,L13,L26の情報によ
って、コヒレンシ制御要求回路50は命令プロセッサ
(IP)3のアクセスがキャッシュコヒーレンス制御を
必要とする種類のアクセスであったかどうか、すなわ
ち、アクセスは命令プロセッサ(IP)3の発行したも
ので、キャッシュメモリ30へのアクセスがリードミス
またはライトヒットまたはライトミスであったかどうか
を確認する。そして、この条件を満たしていてかつ、L
23で伝達されるアクセスアドレスに対応するビット圧
縮ディレクトリ54から56のいずれかのエントリの他
有効ビット23または他ストアビット24が1であった
場合には、キャッシュコヒーレンス制御を必要とする種
類のアクセスであると判定される。
First, according to the information of the three signal lines L10, L13, L26 input to the coherency control request circuit 50, the coherency control request circuit 50 requires cache coherence control for access by the instruction processor (IP) 3. It is confirmed whether or not it is a kind of access, that is, whether the access is issued by the instruction processor (IP) 3 and the access to the cache memory 30 is a read miss, a write hit or a write miss. Then, if this condition is satisfied and L
When the other valid bit 23 or the other store bit 24 of any one of the entries of the bit compression directories 54 to 56 corresponding to the access address transmitted by 23 is 1, the type of access that requires cache coherence control It is determined that

【0063】この場合、PE番号送出回路51に対して
指示を行い、他有効ビット23または他ストアビット2
4が1であったビット圧縮ディレクトリ54から56の
PE番号を信号線L34を介して共有バス1に出力させ
る。同時に、送出したPE番号に対応するビット圧縮デ
ィレクトリ54から56の他有効ビット23と他ストア
ビット24の値と、キャッシュメモリ30へのアクセス
がリードミスまたはライトヒットまたはライトミスのい
ずれであったかの情報をコヒレンシ制御要求回路50か
ら受け取ったコヒーレンシ種別発行回路53は、キャッ
シュコヒーレンス制御の種類を信号線L35に出力す
る。キャッシュコヒーレンス制御の種類は、プロセッサ
2bから2dのキャッシュメモリ30に対する主記憶2
0への書き戻し要求か、または、内容のパージ要求か、
またはその両方の要求かの3種類が存在する。どのよう
な要求となるかは先に述べたとおりである。また、コヒ
レンシ種別発行回路53は、他プロセッサ2bから2d
に対して発行したキャッシュコヒーレンス制御の種類と
総数、すなわちいくつの書き戻し要求と、いくつのパー
ジ要求が発生したかを計数して、信号線L35を介して
キャッシュ装置11内にある終了判定回路38へ送出す
る。さらに、信号線L35はゲート8を指示し、信号線
L12の示すアドレス、すなわちキャッシュコヒーレン
ス制御の対象となるアドレスを共有バス1へ出力させ
る。
In this case, an instruction is issued to the PE number sending circuit 51, and the other valid bit 23 or the other store bit 2 is sent.
The PE numbers of the bit compression directories 54 to 56 in which 4 is 1 are output to the shared bus 1 via the signal line L34. At the same time, the values of the other effective bit 23 and the other store bit 24 corresponding to the transmitted PE number from the bit compression directories 54 to 56 and the information indicating whether the access to the cache memory 30 is a read miss, a write hit or a write miss are displayed. The coherency type issuing circuit 53 received from the coherency control request circuit 50 outputs the type of cache coherence control to the signal line L35. The type of cache coherence control is the main memory 2 for the cache memory 30 of the processors 2b to 2d.
Request to write back to 0, or request to purge contents,
There are three types of requirements, or both requirements. The requirements are as described above. In addition, the coherency type issuing circuit 53 includes the other processors 2b to 2d.
The number and type of cache coherence control issued to the cache coherence control, that is, how many write-back requests and how many purge requests are generated, are counted, and the end determination circuit 38 in the cache device 11 is provided via the signal line L35. Send to. Further, the signal line L35 instructs the gate 8 to output the address indicated by the signal line L12, that is, the address to be the target of cache coherence control, to the shared bus 1.

【0064】以下ではキャッシュコヒーレンス制御の種
類が書き戻しであった場合の具体例として、プロセッサ
2aのキャッシュメモリ30のアクセスの際にリードミ
スが発生し、同時にビット圧縮ディレクトリ54におい
て、信号線L23の示すアドレスに対応するエントリの
他有効ビット23と他ストアビット24の値が共に1で
あったために、プロセッサ2bに対して書き戻し要求が
行われる場合について説明を行う。まず、プロセッサ2
aのビット圧縮ディレクトリ装置13から、プロセッサ
2bに対してキャッシュコヒーレンス要求(今の場合、
データの書き戻し要求)が信号線L12、L34、L3
5に出力されるが、これは先に述べたとおりである。信
号線L35がデータの書き戻し要求を発行したことは、
終了判定回路38に入力され主記憶アクセス制御回路3
6に伝達される。この結果、主記憶アクセス制御回路3
6はリードミスしたデータのアクセスを、キャッシュコ
ヒーレンス要求の終了が信号線L05によって通知され
るまで一時保留する。
In the following, as a specific example in the case where the type of cache coherence control is write back, a read miss occurs when accessing the cache memory 30 of the processor 2a, and at the same time, the signal line L23 indicates in the bit compression directory 54. A case will be described in which the write-back request is issued to the processor 2b because the values of the other valid bit 23 and the other store bit 24 of the entry corresponding to the address are both 1. First, processor 2
A cache coherence request (in this case, from the bit compression directory device 13 of a to the processor 2b)
(Data write-back request) is signal lines L12, L34, L3
5, which is as described above. The fact that the signal line L35 has issued the data write-back request
The main memory access control circuit 3 is input to the end determination circuit 38.
6 is transmitted. As a result, the main memory access control circuit 3
Reference numeral 6 temporarily suspends the access to the read-miss data until the end of the cache coherence request is notified by the signal line L05.

【0065】信号線L34により出力された、キャッシ
ュコヒーレンス制御の対象となるPE番号はプロセッサ
2bの信号線L03を介してプロセッサ2bのPE番号
比較回路5に入力される。プロセッサ2bのPE番号比
較回路5は、このPE番号が自プロセッサ2bを示すこ
とを認識すると、プロセッサ2bのゲート6および7を
操作して、信号線L35が出力したキャッシュコヒーレ
ンス制御の種類を示す情報をプロセッサ2bの信号線L
04に、信号線L12が出力したアドレス、すなわちキ
ャッシュコヒーレンス制御の対象となるアドレスをプロ
セッサ2bの信号線L02に伝達させる。プロセッサ2
bの信号線L04の信号は、プロセッサ2bの調停回路
4に入力され、プロセッサ2bの調停回路4はこの信号
をキャッシュコヒーレンス要求として認識する。
The PE number to be subjected to cache coherence control, which is output from the signal line L34, is input to the PE number comparison circuit 5 of the processor 2b via the signal line L03 of the processor 2b. When the PE number comparison circuit 5 of the processor 2b recognizes that this PE number indicates its own processor 2b, it operates the gates 6 and 7 of the processor 2b to output the information indicating the type of cache coherence control output from the signal line L35. To the signal line L of the processor 2b
04, the address output from the signal line L12, that is, the address to be the target of cache coherence control is transmitted to the signal line L02 of the processor 2b. Processor 2
The signal on the signal line L04 of b is input to the arbitration circuit 4 of the processor 2b, and the arbitration circuit 4 of the processor 2b recognizes this signal as a cache coherence request.

【0066】調停の結果、キャッシュコヒーレンス要求
のためのプロセッサ2bのキャッシュメモリ30のアク
セスを、プロセッサ2bの命令プロセッサ(IP)3の
アクセスよりも優先すると、プロセッサ2b内のセレク
タ10はプロセッサ2bの信号線L02の信号を信号線
L23へ通過させる。また、プロセッサ2bの信号線L
14を介して、プロセッサ2bのキャッシュメモリ登録
/更新回路31に対して、アクセス種別がキャッシュコ
ヒーレンス要求、この場合は主記憶20への書き戻し要
求であることを伝達する。この時、プロセッサ2bのキ
ャッシュメモリ登録/更新回路31は、まず、プロセッ
サ2bのキャッシュメモリ30に対して、プロセッサ2
bの信号線L40およびL41を介して指示を行い、プ
ロセッサ2bの信号線L23の示すアドレスに対応する
データが存在するかどうかの検索を行う。
As a result of the arbitration, when the access of the cache memory 30 of the processor 2b for the cache coherence request is prioritized over the access of the instruction processor (IP) 3 of the processor 2b, the selector 10 in the processor 2b outputs the signal of the processor 2b. The signal on the line L02 is passed to the signal line L23. In addition, the signal line L of the processor 2b
The access type is transmitted to the cache memory registration / updating circuit 31 of the processor 2b via 14 that the access type is a cache coherence request, in this case, a write back request to the main memory 20. At this time, the cache memory registration / updating circuit 31 of the processor 2b first sets the processor 2 to the cache memory 30 of the processor 2b.
An instruction is given via the signal lines L40 and L41 of b to search whether or not there is data corresponding to the address indicated by the signal line L23 of the processor 2b.

【0067】検索の結果、プロセッサ2bの比較器33
がアドレスの一致を示す場合であって、かつ、そのスト
アビット17の値が1である時には、プロセッサ2bの
主記憶アクセス制御回路36の制御によって、このアド
レスに対応するデータ部のデータをプロセッサ2bの信
号線L21を介して主記憶20に書き戻す。もし、検索
の結果、プロセッサ2bの比較器33がアドレスの一致
を示さなかった場合、またはアドレスは一致したが、そ
のエントリのストアビット17の値が0であった場合に
は、この書き戻し要求は、圧縮ディレクトリ40のアド
レス管理単位がキャッシュのエントリサイズよりも大き
いために発生した、見かけのものであり、元来は書き戻
し要求を発生する必要のない要求であるので、データの
書き戻しを行わずにプロセッサ2bのキャッシュメモリ
30の更新処理を終了する。
As a result of the search, the comparator 33 of the processor 2b
Indicates that the addresses match, and when the value of the store bit 17 is 1, the data in the data portion corresponding to this address is controlled by the processor 2b under the control of the main memory access control circuit 36 of the processor 2b. Write back to the main memory 20 via the signal line L21. If, as a result of the search, the comparator 33 of the processor 2b does not indicate the match of the addresses, or if the addresses match but the value of the store bit 17 of the entry is 0, this write-back request is issued. Is an apparent problem that occurs because the address management unit of the compressed directory 40 is larger than the cache entry size. Originally, it is a request that does not require a write-back request. The update process of the cache memory 30 of the processor 2b ends without performing the process.

【0068】プロセッサ2bにおけるデータの主記憶2
0への書き戻し処理の完了は、プロセッサ2bのキャッ
シュメモリ登録/更新回路31からプロセッサ2bの終
了通知回路37へ通知される。この際、プロセッサ2b
の終了通知回路37は実際に書き戻しが行われたか、そ
れとも、書き戻し要求は見かけのもので実際にはデータ
の書き戻しが行われなかったかを判定して、プロセッサ
2bの信号線L07に出力する。これは、共有バス1を
経由してプロセッサ2aの信号線L05を介して、プロ
セッサ2aの終了判定回路38に入力される。プロセッ
サ2aの終了判定回路38は、プロセッサ2bにおける
データの主記憶20への書き戻し処理の完了を主記憶ア
クセス制御回路36に伝達し、主記憶アクセス制御回路
36は一時保留していたリードミスしたデータのアクセ
スを再開する。主記憶アクセス制御回路36は信号線L
06に主記憶20をアクセスする信号を出力し、読み出
されたデータは信号線L21を介してキャッシュメモリ
30に格納され、信号線L20を介して、命令プロセッ
サ(IP)3へと送られる。このようにして、キャッシ
ュコヒーレンス制御が完了する。
Main memory 2 for data in processor 2b
Completion of the write back processing to 0 is notified from the cache memory registration / update circuit 31 of the processor 2b to the end notification circuit 37 of the processor 2b. At this time, the processor 2b
The end notification circuit 37 determines whether the write-back is actually performed or the write-back request is apparent and the data is not actually written back, and outputs the signal to the signal line L07 of the processor 2b. To do. This is input to the end determination circuit 38 of the processor 2a via the shared bus 1 and the signal line L05 of the processor 2a. The end determination circuit 38 of the processor 2a notifies the main memory access control circuit 36 of the completion of the process of writing back the data to the main memory 20 in the processor 2b, and the main memory access control circuit 36 temporarily holds the read-missed data. Access again. The main memory access control circuit 36 uses the signal line L
A signal for accessing the main memory 20 is output to 06, and the read data is stored in the cache memory 30 via the signal line L21 and sent to the instruction processor (IP) 3 via the signal line L20. In this way, the cache coherence control is completed.

【0069】具体的な動作例を図7を参照して説明す
る。図7において、ビット圧縮ディレクトリ54は、プ
ロセッサ2a内にあるプロセッサ2bの圧縮ディレクト
リ40を反映したものであるとし、キャッシュメモリ3
0はプロセッサ2bのものとして説明を行う(プロセッ
サ2aのキャッシュメモリ30の状態変化については省
略する)。尚、図7では説明のため、キャッシュメモリ
30を6エントリとしており、データ部18を省略して
いる。また、主記憶の全アドレス空間は16MBである
としている。図7ではキャッシュメモリ30の全てのエ
ントリが登録された状態となっている。登録されている
アドレスは図中のアドレス部15にあるように、0x0002
00、0x08F000、0x0FF000、0x100000、0x1A0000、0x2000
00となっている。また、ストアビット17がセットされ
ているのはアドレスが、0x000200、0x0FF000、0x1A000
0、の3つのエントリである。ビット圧縮ディレクトリ
54はキャッシュメモリ30の状態を反映して、アドレ
スが0x000000〜0x0FFFFF、および、0x100000〜0x1FFFFF
の他有効ビット23と他ストアビット24の値が1にな
っており、アドレスが0x200000〜0x2FFFFFの他有効ビッ
ト23の値は1、他ストアビット24の値は0となって
いる。また、それ以外のアドレスの他有効ビット23と
他ストアビット24の値は0になっている。尚、圧縮デ
ィレクトリ40に関しては後で述べる、ビット圧縮ディ
レクトリ54の更新のところで説明を行うため、ここで
の説明は省略する。
A specific operation example will be described with reference to FIG. In FIG. 7, it is assumed that the bit compression directory 54 reflects the compression directory 40 of the processor 2b in the processor 2a.
The description will be made assuming that 0 is for the processor 2b (state change of the cache memory 30 of the processor 2a is omitted). In FIG. 7, for the sake of explanation, the cache memory 30 has 6 entries and the data section 18 is omitted. The total address space of the main memory is 16 MB. In FIG. 7, all the entries in the cache memory 30 are registered. The registered address is 0x0002 as shown in the address section 15 in the figure.
00, 0x08F000, 0x0FF000, 0x100000, 0x1A0000, 0x2000
It is 00. The store bit 17 is set when the address is 0x000200, 0x0FF000, 0x1A000.
There are three entries, 0. The bit compression directory 54 reflects the state of the cache memory 30 and has addresses 0x000000 to 0x0FFFFF and 0x100000 to 0x1FFFFF.
The value of the other valid bit 23 and the other store bit 24 is 1, the value of the other valid bit 23 of the address 0x200000 to 0x2FFFFF is 1, and the value of the other store bit 24 is 0. The values of the other valid bit 23 and the other store bit 24 of the other addresses are 0. Since the compressed directory 40 will be described later in the description of updating the bit compressed directory 54, the description thereof will be omitted here.

【0070】ここで例えば、プロセッサ2aにおけるア
ドレス0x100000へのアクセスがリードミスとなった場合
の処理を例にとって示す。アドレス0x100000へのアクセ
スの際に、ビット圧縮ディレクトリ54が参照される。
参照の結果、アドレス0x100000に対応するビット圧縮デ
ィレクトリ54の他有効ビット23、他ストアビット2
4の値はともに1であることがわかる。すなわち、プロ
セッサ2bのキャッシュメモリ30にはアドレス部15
の値が0x100000のエントリが存在する可能性のあること
がわかる。この場合には、さらにプロセッサ2bのキャ
ッシュメモリ30へ、キャッシュコヒーレンス制御(こ
の場合は、書き戻し)のための要求が発行される。実際
にプロセッサ2bのキャッシュメモリ30中にアドレス
部15の値が0x100000のエントリが存在することがわか
ると、そのエントリのデータの主記憶20への書き戻し
が行われる。これが終了した後、プロセッサ2aは主記
憶20からアドレス0x100000のデータの読み出しを行
い、一連の処理が完了する。
Here, for example, the processing when the access to the address 0x100000 in the processor 2a becomes a read miss will be described as an example. The bit compression directory 54 is referred to when accessing the address 0x100000.
As a result of the reference, the other valid bit 23 and the other store bit 2 of the bit compression directory 54 corresponding to the address 0x100000
It can be seen that the values of 4 are both 1. That is, the cache memory 30 of the processor 2b has the address unit 15
It can be seen that there may be an entry with a value of 0x100000. In this case, a request for cache coherence control (writeback in this case) is further issued to the cache memory 30 of the processor 2b. When it is found that there is an entry whose value in the address section 15 is 0x100000 in the cache memory 30 of the processor 2b, the data of the entry is written back to the main memory 20. After this is completed, the processor 2a reads the data of the address 0x100000 from the main memory 20, and the series of processing is completed.

【0071】以上の例はデータの書き戻しの例である
が、データのパージ(あるいは書き戻しとパージの両方
の場合)も同様にして処理される。ただし、パージのみ
の場合には、次の点が書き戻しの場合と異なる。すなわ
ち、書き戻しの場合には、終了判定回路38にキャッシ
ュコヒーレンス要求の終了が信号線L05によって通知
されるまで、主記憶アクセス制御回路36はリードミス
(あるいはライトヒット、ライトミス)したデータのア
クセスを一時保留したが、パージの場合には、キャッシ
ュコヒーレンス要求の終了は信号線L05によって通知
されず、主記憶アクセス制御回路36はリードミス(あ
るいはライトヒット、ライトミス)したデータのアクセ
スを一時保留せず、直ちに行う。また、以上の例はリー
ドミスの場合であるが、ライトヒット、ライトミスの場
合の書き戻し処理(あるいはパージの場合)も同様な経
過で行われる。
The above example is an example of writing back data, but data purging (or both writing back and purging) is processed in the same manner. However, in the case of only purging, the following points are different from the case of writing back. That is, in the case of write-back, the main memory access control circuit 36 accesses the read-missed (or write-hit, write-miss) data until the end determination circuit 38 is notified of the end of the cache coherence request by the signal line L05. Although it has been temporarily held, in the case of purging, the end of the cache coherence request is not notified by the signal line L05, and the main memory access control circuit 36 does not temporarily hold the access of the read miss (or write hit, write miss) data. , Immediately. Although the above example is for a read miss, the write-back process (or purge) for a write hit or write miss is also performed in the same manner.

【0072】尚、上記の例ではプロセッサ2bのみがキ
ャッシュコヒーレンス要求の対象である例を説明した
が、ビット圧縮ディレクトリ54から56において、複
数のキャッシュコヒーレンス要求が発生した場合には、
先に述べたようにコヒレンシ種別発行回路53が、他プ
ロセッサ2bから2dに対して発行したキャッシュコヒ
ーレンス制御の種類と総数、すなわちいくつの書き戻し
要求と、いくつのパージ要求が発生したかを計数して、
終了判定回路38へ送出する。終了判定回路38は、他
プロセッサ2bから2dに対して発行したキャッシュコ
ヒーレンス制御のうち、いくつが書き戻し要求であった
かを記憶する。書き戻し要求の個数が0個の場合には、
キャッシュコヒーレンス要求の終了は信号線L05によ
って通知されないため、主記憶アクセス制御回路36は
リードミス(あるいはライトヒット、ライトミス)した
データのアクセスを一時保留せず、直ちに行う。書き戻
し要求の個数が1個以上の場合には、実際に書き戻しを
行ったことが信号線L05によって通知されるまで、主
記憶アクセス制御回路36はリードミス(あるいはライ
トヒット、ライトミス)したデータのアクセスを一時保
留する。もし、他プロセッサ2bから2dに対して発行
した書き戻し要求の全てが見かけのもので実際には書き
戻しを行う必要のない場合には、あらかじめ終了判定回
路38が記憶していた書き戻し要求の個数のキャッシュ
コヒーレンス要求の終了が信号線L05によって通知さ
れた時点でアクセスの一時保留を解除し、主記憶アクセ
ス制御回路36はアクセスを再開する。
In the above example, only the processor 2b is the target of the cache coherence request. However, when a plurality of cache coherence requests are generated in the bit compression directories 54 to 56,
As described above, the coherency type issuing circuit 53 counts the type and total number of cache coherence control issued to the other processors 2b to 2d, that is, how many write-back requests and how many purge requests have occurred. hand,
It is sent to the end determination circuit 38. The end determination circuit 38 stores how many of the cache coherence controls issued from the other processors 2b to 2d are write-back requests. If the number of write-back requests is 0,
Since the end of the cache coherence request is not notified by the signal line L05, the main memory access control circuit 36 does not temporarily hold the access of the read-miss (or write-hit, write-miss) data but immediately performs it. When the number of write-back requests is one or more, the main memory access control circuit 36 reads the data (or write hits or misses) until the signal line L05 indicates that the write-back is actually performed. Suspends access to. If all the write-back requests issued to the other processors 2b to 2d are apparent and it is not necessary to actually perform the write-back, the write-back request stored in advance by the end determination circuit 38 When the completion of the number of cache coherence requests is notified by the signal line L05, the temporary suspension of access is released, and the main memory access control circuit 36 restarts the access.

【0073】先ほど図7を用いて示した具体例は、書き
戻し要求に対して実際に書き戻し処理が行われる例であ
ったが、次に、書き戻し要求が見かけのもので、実際に
は書き戻し処理が行われない例を示す。例えば、プロセ
ッサ2aにおけるアドレス0x110000へのアクセスがリー
ドミスとなった場合の処理を例にとって示す。アドレス
0x110000へのアクセスの際に、ビット圧縮ディレクトリ
54が参照される。参照の結果、アドレス0x110000に対
応するビット圧縮ディレクトリ54の他有効ビット2
3、他ストアビット24の値はともに1であることがわ
かる。すなわち、プロセッサ2bのキャッシュメモリ3
0にはアドレス部15の値が0x110000のエントリが存在
する可能性のあることがわかる。この場合には、さらに
プロセッサ2bのキャッシュメモリ30へ、キャッシュ
コヒーレンス制御(この場合は、書き戻し)のための要
求が発行される。実際には、プロセッサ2bのキャッシ
ュメモリ30中にアドレス部15の値が0x110000のエン
トリが存在しないことがわかると、書き戻しを行わなか
った旨の終了信号がプロセッサ2aに伝えられる。その
終了信号を受け取った後、プロセッサ2aは主記憶20
からアドレス0x110000のデータの読み出しを行い、一連
の処理が完了する。
The specific example shown with reference to FIG. 7 is an example in which the write-back processing is actually performed in response to the write-back request. An example in which write-back processing is not performed is shown. For example, the processing when the access to the address 0x110000 in the processor 2a is a read miss will be described as an example. address
The bit compression directory 54 is referred to when accessing 0x110000. As a result of the reference, the other valid bit 2 of the bit compression directory 54 corresponding to the address 0x110000
It can be seen that the values of 3 and the other store bit 24 are both 1. That is, the cache memory 3 of the processor 2b
It can be seen that there is a possibility that an entry in which the value of the address part 15 is 0x110000 exists in 0. In this case, a request for cache coherence control (writeback in this case) is further issued to the cache memory 30 of the processor 2b. Actually, when it is found that there is no entry having the value of 0x110000 in the address section 15 in the cache memory 30 of the processor 2b, the end signal indicating that the write back is not performed is transmitted to the processor 2a. After receiving the end signal, the processor 2a sends the main memory 20
The data at address 0x110000 is read from, and a series of processing is completed.

【0074】さらにもう1つの例として、ビット圧縮デ
ィレクトリ54を参照した結果、他のプロセッサ2bに
対してキャッシュコヒーレンス制御が不要であることが
判明した場合の例を示す。例えば、プロセッサ2aにお
いてアドレス0x300000へのアクセスがリードミスとなっ
たとする。アドレス0x300000へのアクセスの際に、ビッ
ト圧縮ディレクトリ54が参照される。参照の結果、ア
ドレス0x300000に対応するビット圧縮ディレクトリ54
の他有効ビット23、他ストアビット24の値はともに
0であることがわかる。すなわち、プロセッサ2bのキ
ャッシュメモリ30にはアドレス部15の値が0x300000
であるエントリは存在しないことがわかり、プロセッサ
2bのキャッシュメモリ30のデータを書き戻す必要も
パージする必要もないことがわかる。そこで、プロセッ
サ2aは主記憶20に対してアドレス0x300000の読み出
しを行い、一連の処理が完了する。
As yet another example, an example will be shown in which, as a result of referring to the bit compression directory 54, it is found that cache coherence control is unnecessary for the other processor 2b. For example, suppose that a read miss occurs in access to the address 0x300000 in the processor 2a. The bit compression directory 54 is referred to when accessing the address 0x300000. As a result of the reference, the bit compression directory 54 corresponding to the address 0x300000
It can be seen that the values of the other valid bit 23 and the other store bit 24 are both 0. That is, the value of the address part 15 is 0x300000 in the cache memory 30 of the processor 2b.
It can be seen that there is no entry that indicates that there is no need to write back or purge the data in the cache memory 30 of the processor 2b. Therefore, the processor 2a reads the address 0x300000 from the main memory 20, and the series of processing is completed.

【0075】次に、先に述べた2種類のキャッシュコヒ
ーレンス制御の後者である、あるプロセッサのキャッシ
ュメモリ30の変化によって、圧縮ディレクトリ装置1
2が書き換えられ、引き続いて、他のプロセッサ中にあ
るビット圧縮ディレクトリ装置13が書き換えられる動
作について説明を行う。
Next, the compressed directory device 1 is changed by the change of the cache memory 30 of a certain processor which is the latter of the above-mentioned two types of cache coherence control.
2 is rewritten, and subsequently, the operation of rewriting the bit compression directory device 13 in another processor will be described.

【0076】以下では、プロセッサ2a内の命令プロセ
ッサ(IP)3のアクセスに起因する場合を具体例とし
て示すが、プロセッサ2bから2dの場合も同様であ
る。初期状態においては、全てのプロセッサのキャッシ
ュ装置11内のキャッシュメモリ30の全てのエントリ
の有効ビット、ストアビットはリセットされており、全
てのプロセッサの圧縮ディレクトリ40の全てのエント
リの有効カウント数21、ストアカウント数22の値は
0であり、全てのプロセッサのビット圧縮ディレクトリ
54から56の全てのエントリの他有効ビット23、他
ストアビット24の値は0である。それ以外の部分の初
期状態における値は従来のプロセッサと同様な値が格納
される。
In the following, the case where the access is caused by the instruction processor (IP) 3 in the processor 2a is shown as a specific example, but the same applies to the cases of the processors 2b to 2d. In the initial state, the valid bits and store bits of all the entries of the cache memory 30 in the cache device 11 of all the processors are reset, and the valid count numbers 21 of all the entries of the compression directory 40 of all the processors 21, The value of the store count number 22 is 0, and the values of the other valid bit 23 and the other store bit 24 of all the entries of the bit compression directories 54 to 56 of all the processors are 0. Values in the initial state of the other parts are the same as those in the conventional processor.

【0077】命令プロセッサ(IP)3の発行したデー
タアクセスのためのアドレスは信号線L12に出力され
る。調停回路4は命令プロセッサ(IP)3のキャッシ
ュ装置11のアクセスと、共有バス1から信号線L02
およびL04を介してもたらされるキャッシュコヒーレ
ンスのためのキャッシュ装置11のアクセス(キャッシ
ュ装置11のデータを主記憶20へ書き戻す要求ないし
は、キャッシュ装置11のエントリをパージする要
求)、および信号線L01およびL02を介してもたら
されるビット圧縮ディレクトリ54から56の内容を更
新するためのアクセスとを調停する。調停の結果、命令
プロセッサ(IP)3が優先された場合、調停回路4は
信号線L13を介してセレクタ10を指示して信号線L
12の信号を信号線L23へ通過させる。また、調停回
路4は信号線L14を介してキャッシュメモリ登録/更
新回路31に指示を与え、現在のキャッシュアクセスが
命令プロセッサ(IP)3によることを伝える。キャッ
シュメモリ登録/更新回路31はキャッシュメモリ30
を制御し、信号線L23のアドレスで検索を行う。
The address for data access issued by the instruction processor (IP) 3 is output to the signal line L12. The arbitration circuit 4 accesses the cache device 11 of the instruction processor (IP) 3 and connects the shared bus 1 to the signal line L02.
And access of the cache device 11 for cache coherence brought through L04 (request to write back data of the cache device 11 to the main memory 20 or request to purge entry of the cache device 11), and signal lines L01 and L02. And access to update the contents of the bit-compressed directories 54-56 via As a result of the arbitration, when the instruction processor (IP) 3 is prioritized, the arbitration circuit 4 instructs the selector 10 via the signal line L13 to signal line L.
The 12 signals are passed to the signal line L23. Further, the arbitration circuit 4 gives an instruction to the cache memory registration / update circuit 31 via the signal line L14 to notify that the current cache access is by the instruction processor (IP) 3. The cache memory registration / update circuit 31 is a cache memory 30.
Is controlled, and a search is performed using the address of the signal line L23.

【0078】このアドレスによる検索結果は、信号線L
23のアドレスと比較器33によって比較され、一致し
た場合はキャッシュヒットとなる。もし、この比較器3
3による比較結果が一致しない場合はキャッシュミスと
なる。アクセスがヒットかミスかの情報は信号線L26
によって出力される。キャッシュヒットの場合はそのエ
ントリの有効ビット16の値は元のまま1であるが、キ
ャッシュミスの場合には、キャッシュメモリ登録/更新
回路31によって新たにエントリが生成されて有効ビッ
ト16の値は1がセットされる。また、キャッシュミス
によるリプレースまたは、他のプロセッサ2bから2d
のキャッシュコヒーレンス制御の結果としてパージが行
われた場合には、そのエントリの有効ビット16の値は
キャッシュメモリ登録/更新回路31によって0にリセ
ットされる。このような有効ビット16の値の変化は比
較器34によって検出され、信号線L24に出力され
る。
The search result by this address is the signal line L
The address of 23 is compared with the address of the comparator 33, and if they match, a cache hit occurs. If this comparator 3
If the comparison results of 3 do not match, a cache miss occurs. Information on whether the access is hit or miss is signal line L26.
Output by. In the case of a cache hit, the value of the valid bit 16 of the entry remains 1, but in the case of a cache miss, a new entry is generated by the cache memory registration / update circuit 31 and the value of the valid bit 16 becomes 1 is set. Also, replacement due to a cache miss or other processors 2b to 2d
When purging is performed as a result of the cache coherence control of 1, the value of the valid bit 16 of the entry is reset to 0 by the cache memory registration / update circuit 31. Such a change in the value of the effective bit 16 is detected by the comparator 34 and output to the signal line L24.

【0079】また、信号線L10によってアクセス種別
がリードであるかライトであるかがストアビット更新回
路32に入力され、キャッシュメモリ30のストアビッ
ト17の値を更新する。ライトの場合には、ストアビッ
ト17の値は元の値に関わらずストアビット更新回路3
2によって1にセットされる。リードの場合にはストア
ビット17の値は変化しない。ストアビットの値が1か
ら0に変化するのは、エントリのリプレースの場合か、
他のプロセッサから書き戻し要求が来た場合かのいずれ
かの場合である。このようなストアビット17の変化は
比較器35によって検出され、信号線L25に出力され
る。
Further, whether the access type is read or write is input to the store bit update circuit 32 by the signal line L10, and the value of the store bit 17 of the cache memory 30 is updated. In the case of write, the value of the store bit 17 does not depend on the original value of the store bit update circuit 3
Set to 1 by 2. In the case of reading, the value of the store bit 17 does not change. Is the value of the store bit changed from 1 to 0 when the entry is replaced?
This is one of the cases where a write-back request is received from another processor. Such a change in the store bit 17 is detected by the comparator 35 and output to the signal line L25.

【0080】上記のようにキャッシュメモリ30のエン
トリ中の有効ビット16、ストアビット17の値が変化
した場合には、その変化は信号線L24およびL25を
介して圧縮ディレクトリ40へ伝達され、圧縮ディレク
トリ40の更新を行う。更新は次のように行われる。信
号線L24およびL25のいずれかが、キャッシュメモ
リ30のエントリ中の有効ビット16、ストアビット1
7の変化を示すと、キャッシュメモリ30より信号線L
27を介して伝達されるアドレスに対応する圧縮ディレ
クトリ40のエントリの有効カウント数21、ストアカ
ウント数22の値が読み出され、加減算器41および4
2へ送られる。
When the values of the valid bit 16 and the store bit 17 in the entry of the cache memory 30 change as described above, the changes are transmitted to the compression directory 40 via the signal lines L24 and L25, and the compression directory 40 is compressed. Update 40. The update is performed as follows. One of the signal lines L24 and L25 is a valid bit 16 or a store bit 1 in the entry of the cache memory 30.
7 indicates that the signal line L from the cache memory 30
The values of the effective count number 21 and the storage account number 22 of the entry of the compressed directory 40 corresponding to the address transmitted via 27 are read out, and the adders / subtractors 41 and 4
Sent to 2.

【0081】加減算器41および42は信号線L24お
よびL25を介して伝達された変化に基づいて、有効カ
ウント数21、ストアカウント数22の値に1を加える
か減ずるかを行い、再び圧縮ディレクトリ40の元のエ
ントリへ格納する。1を加えるか減ずるかは次のように
して決められる。もし、キャッシュメモリ30の有効ビ
ット16がセットされた場合(0から1へ変化した場
合)には、有効カウント数21の値に1を加える操作が
行われ、有効ビット16がリセットされた場合には、有
効カウント数21の値から1を減ずる操作が行われる。
ストアビット17の場合も同様である。
The adders / subtractors 41 and 42 add or subtract 1 to the values of the effective count number 21 and the strike account number 22 based on the change transmitted through the signal lines L24 and L25, and again the compression directory 40. Store it in the original entry of. Whether to add or subtract 1 is determined as follows. If the valid bit 16 of the cache memory 30 is set (changes from 0 to 1), 1 is added to the value of the valid count number 21 and the valid bit 16 is reset. For, the operation of subtracting 1 from the value of the effective count number 21 is performed.
The same applies to the case of the store bit 17.

【0082】この圧縮ディレクトリ40のエントリの更
新の際に、有効カウント数21、またはストアカウント
数22の値のいずれかについて、更新前の値、または更
新後の値が0であった場合には、ゼロ検出回路43およ
び44がこれを検出し、ビット圧縮ディレクトリ更新要
求回路45が信号線L30を介して、他のプロセッサ2
bから2dに存在するプロセッサ2aの圧縮ディレクト
リ40に対応したビット圧縮ディレクトリ54から56
(図示せず)の内容の更新をプロセッサ毎に指示する。
更新は次のように行われる。
When the entry of the compression directory 40 is updated, if the value before the update or the value after the update is 0 for either the value of the effective count number 21 or the value of the storage account number 22, , The zero detection circuits 43 and 44 detect this, and the bit compression directory update request circuit 45 sends the signal to the other processor 2 via the signal line L30.
Bit compression directories 54 to 56 corresponding to the compression directories 40 of the processors 2a existing in b to 2d
The update of the contents (not shown) is instructed for each processor.
The update is performed as follows.

【0083】ゼロ検出回路43および44が圧縮ディレ
クトリ40のエントリの更新前の値、または更新後の値
が0であったことを検出するとビット圧縮ディレクトリ
更新要求回路45は、その情報(どのエントリの他有効
ビット23または他ストアビット24の値が、0からま
たは0へと変化したか)を信号線L30を経由して共有
バス1へ出力し、全ての他のプロセッサ2bから2dに
伝達される。また、信号線L30は、ゲート9を操作
し、信号線L27の信号、すなわち、エントリのアドレ
スを示す情報を共有バス1へ出力させる。
When the zero detection circuits 43 and 44 detect that the value before the update of the entry of the compressed directory 40 or the value after the update is 0, the bit compressed directory update request circuit 45 causes the information (which entry The value of the other valid bit 23 or the other store bit 24 is changed from 0 to 0) is output to the shared bus 1 via the signal line L30, and is transmitted to all the other processors 2b to 2d. .. Further, the signal line L30 operates the gate 9 to output the signal of the signal line L27, that is, the information indicating the address of the entry, to the shared bus 1.

【0084】以下では信号線L27およびL30の信号
をプロセッサ2bが受け取って、ビット圧縮ディレクト
リ54から56(図示せず)の内容の更新を行う例を示
すが、他のプロセッサ2cから2dでも同様な処理が行
われる。また、図1中において、プロセッサ2b内のも
のは省略されており図示されていないが、以下では図示
されていないことに対する断り書きを省略する。
An example in which the processor 2b receives the signals on the signal lines L27 and L30 and updates the contents of the bit compression directories 54 to 56 (not shown) is shown below, but the same applies to the other processors 2c to 2d. Processing is performed. Further, in FIG. 1, the components inside the processor 2b are omitted and not shown, but in the following, a notice to those not shown is omitted.

【0085】信号線L30の信号はプロセッサ2b内の
信号線L01を介してプロセッサ2b内の調停回路4お
よびプロセッサ2b内の分配回路52に入力される。ま
た、信号線L01はゲート6を操作し、信号線L02の
信号を通過させる。プロセッサ2b内の調停回路4が調
停の結果、プロセッサ2b内のビット圧縮ディレクトリ
54の更新を優先すると、プロセッサ2b内の信号線L
13を介してプロセッサ2b内のセレクタ10を指示
し、プロセッサ2b内の信号線L02の信号を通過させ
る。プロセッサ2b内の信号線L02には、先にプロセ
ッサ2a内の信号線L27から共有バス1に出力され
た、更新前の値、または更新後の値が0であった圧縮デ
ィレクトリ40のエントリのアドレスが格納され、更新
されるべきプロセッサ2b内のビット圧縮ディレクトリ
54のエントリを指し示す。
The signal on the signal line L30 is input to the arbitration circuit 4 in the processor 2b and the distribution circuit 52 in the processor 2b via the signal line L01 in the processor 2b. Further, the signal line L01 operates the gate 6 to allow the signal of the signal line L02 to pass. As a result of the arbitration performed by the arbitration circuit 4 in the processor 2b, priority is given to updating the bit compression directory 54 in the processor 2b.
The selector 10 in the processor 2b is instructed via 13 to pass the signal of the signal line L02 in the processor 2b. To the signal line L02 in the processor 2b, the address of the entry of the compressed directory 40 whose value before update or value after update, which was previously output from the signal line L27 in the processor 2a to the shared bus 1, was 0. Is stored and points to the entry of the bit compression directory 54 in the processor 2b to be updated.

【0086】プロセッサ2b内の分配回路52は、接続
されているプロセッサ2b内のビット圧縮ディレクトリ
54から56のうち、更新されるべきプロセッサ2b内
のビット圧縮ディレクトリ54を選択し、プロセッサ2
a内の圧縮ディレクトリ40の有効カウント数21の値
が0に変化した場合には、他有効ビット23を0とし、
有効カウント数21の値が0から非0に変化した場合に
は、他有効ビット23を1とする。他ストアビット24
に関してはストアカウント数22の値の変化に基づいて
同様の更新を行う。プロセッサ2a内の圧縮ディレクト
リ40、およびプロセッサ2b内のビット圧縮ディレク
トリ54は以上のように更新される。
The distribution circuit 52 in the processor 2b selects the bit compression directory 54 in the processor 2b to be updated from the bit compression directories 54 to 56 in the connected processor 2b.
When the value of the effective count number 21 of the compressed directory 40 in a changes to 0, the other effective bit 23 is set to 0,
When the value of the valid count number 21 changes from 0 to non-zero, the other valid bit 23 is set to 1. Other store bit 24
With respect to, the same update is performed based on the change in the value of the strike account number 22. The compression directory 40 in the processor 2a and the bit compression directory 54 in the processor 2b are updated as described above.

【0087】尚、圧縮ディレクトリ40および、他のプ
ロセッサ中にあるビット圧縮ディレクトリ54から56
の書き換えは、命令プロセッサ(IP)3のキャッシュ
メモリ30へのアクセスに起因するのみならず、先に述
べた、他のプロセッサからのキャッシュコヒーレンス制
御のためのキャッシュメモリ30へのアクセスのため
に、キャッシュメモリ30のエントリの有効ビット1
6、またはストアビット17に変化が生じた場合にも行
われる。この場合にも、上記の圧縮ディレクトリ40の
更新の手順と同様に更新を行う。また、ビット圧縮ディ
レクトリ54から56も同様に更新する。
The compression directory 40 and the bit compression directories 54 to 56 in the other processors.
Is not only caused by the access to the cache memory 30 of the instruction processor (IP) 3, but also because of the access to the cache memory 30 for cache coherence control from another processor, which is described above. Valid bit 1 of cache memory 30 entry
It is also performed when a change occurs in 6 or the store bit 17. Also in this case, the update is performed in the same manner as the procedure for updating the compressed directory 40. Further, the bit compression directories 54 to 56 are updated in the same manner.

【0088】以下に具体例として、図7から図9を用い
て、本実施例の主要構成要素である、キャッシュメモリ
30、圧縮ディレクトリ40および、ビット圧縮ディレ
クトリ54から56の動作の詳細を説明する。キャッシ
ュメモリ30の状態については、先に述べたのと同様、
全てのエントリが登録された状態となっている。登録さ
れているアドレスは図中のアドレス部15にあるよう
に、0x000200、0x08F000、0x0FF000、0x100000、0x1A00
00、0x200000となっている。6つのエントリのうちアド
レス部15のアドレスが、0x000000〜0x0FFFFFの範囲に
入るのはエントリ1〜3の3つのエントリであり、した
がって、圧縮ディレクトリ40のアドレス0x000000〜0x
0FFFFFに対応するエントリの有効カウント数21の値は
3となる。また、キャッシュのエントリ1〜3のうちス
トアビット17がセットされているのは2つであるた
め、圧縮ディレクトリ40のアドレス0x000000〜0x0FFF
FFに対応するエントリのストアカウント数22の値は2
となる。同様にして、キャッシュメモリ30に登録され
たエントリのうち0x100000〜0x1FFFFFの範囲に入るアド
レスのものはエントリ4〜5の2つのエントリであり、
そのうちでストアビット17がセットされているエント
リは1つであるため、圧縮ディレクトリ40のアドレス
0x100000〜0x1FFFFFに対応するエントリの有効カウント
数21の値は2となり、ストアカウント数22の値は1
となる。同様にして、圧縮ディレクトリ40のアドレス
0x200000〜0x2FFFFFに対応するエントリの有効カウント
数21の値は1、ストアカウント数22の値は0となっ
ている。他のエントリの有効カウント数21、ストアカ
ウント数22の値は全て0となっている。
As a concrete example, the operation of the cache memory 30, the compression directory 40, and the bit compression directories 54 to 56, which are the main components of this embodiment, will be described in detail with reference to FIGS. 7 to 9. . Regarding the state of the cache memory 30, as described above,
All entries are registered. The registered addresses are 0x000200, 0x08F000, 0x0FF000, 0x100000, 0x1A00 as shown in the address section 15 in the figure.
The numbers are 00 and 0x200000. Of the six entries, the address of the address part 15 falls within the range of 0x000000 to 0x0FFFFF for the three entries 1 to 3, and therefore the addresses 0x000000 to 0x of the compressed directory 40.
The value of the effective count number 21 of the entry corresponding to 0FFFFF is 3. Since only two of the cache entries 1 to 3 have the store bit 17 set, the addresses 0x000000 to 0x0FFF of the compressed directory 40 are stored.
The value of the strike account number 22 of the entry corresponding to FF is 2
Becomes Similarly, among the entries registered in the cache memory 30, those having addresses within the range of 0x100000 to 0x1FFFFF are two entries 4 to 5,
Since only one entry has store bit 17 set, the address of compressed directory 40
The value of the valid count number 21 of the entry corresponding to 0x100000 to 0x1FFFFF is 2, and the value of the store account number 22 is 1.
Becomes Similarly, the address of the compressed directory 40
The value of the effective count number 21 and the value of the strike account number 22 of the entries corresponding to 0x200000 to 0x2FFFFF are 1. The values of the valid count number 21 and the strike account number 22 of other entries are all 0.

【0089】ビット圧縮ディレクトリ54は、圧縮ディ
レクトリ40と同じアドレス管理単位であり、圧縮ディ
レクトリ40の有効カウント数21、ストアカウント数
22の値が0か否かを他有効ビット23、他ストアビッ
ト24に記憶している。
The bit compression directory 54 has the same address management unit as that of the compression directory 40, and whether the values of the effective count number 21 and the strike account number 22 of the compression directory 40 are 0 is another effective bit 23, another store bit 24. I remember.

【0090】図7の場合、圧縮ディレクトリ40の有効
カウント数21の値が非0であるのは、アドレス0x0000
00〜0x0FFFFF、0x100000〜0x1FFFFF、0x200000〜0x2FFF
FFに対応するエントリであり、ストアカウント数22の
値が非0であるのは、アドレス0x000000〜0x0FFFFF、0x
100000〜0x1FFFFFに対応するエントリであるため、これ
らの部分が値1をとり、他の部分は0となっている。
In the case of FIG. 7, the value of the effective count number 21 of the compression directory 40 is non-zero at the address 0x0000.
00 to 0x0FFFFF, 0x100000 to 0x1FFFFF, 0x200000 to 0x2FFF
The entry corresponding to FF and the value of the storage account number 22 is non-zero is the address 0x000000 to 0x0FFFFF, 0x.
Since this is an entry corresponding to 100000 to 0x1FFFFF, these parts take the value 1 and the other parts are 0.

【0091】次に図7の状態からキャッシュメモリ30
の6番目のエントリが消滅した場合について、図8を用
いて説明を行う。図8において、キャッシュメモリ30
の6番目のエントリが消滅したため、そのエントリの有
効ビット16が0となっている。これに伴い、圧縮ディ
レクトリ40のアドレス0x200000〜0x2FFFFFに対応する
エントリの有効カウント数21の値は図7の場合より1
だけ値が減少し、0となる。ストアカウント数22の値
はもともと0であったため、今回の場合には変化が起こ
らない。圧縮ディレクトリ40の有効カウント数21の
値の変化は、ビット圧縮ディレクトリ54に反映され、
アドレス0x200000〜0x2FFFFFに対応するエントリの他有
効ビット23の値が1から0へ変化する。
Next, from the state shown in FIG. 7, the cache memory 30
The case where the sixth entry of is deleted will be described with reference to FIG. In FIG. 8, the cache memory 30
Since the sixth entry of No. has disappeared, the valid bit 16 of that entry is 0. Accordingly, the value of the effective count number 21 of the entry corresponding to the addresses 0x200000 to 0x2FFFFF of the compression directory 40 is 1 as compared with the case of FIG.
The value decreases only to 0. Since the value of the store count number 22 was originally 0, no change occurs in this case. The change in the value of the effective count number 21 of the compression directory 40 is reflected in the bit compression directory 54,
The value of the other valid bit 23 of the entry corresponding to the address 0x200000 to 0x2FFFFF changes from 1 to 0.

【0092】さらに、図8の状態からキャッシュメモリ
30の6番目のエントリに新しいアドレスが登録された
場合について、図9を用いて説明を行う。図9におい
て、キャッシュメモリ30の6番目のエントリに新しい
アドレス0x0A0000が登録されている。この時の有効ビッ
ト16、ストアビット17の値はともに1である。これ
に伴い、圧縮ディレクトリ40のアドレス0x000000〜0x
0FFFFFに対応するエントリの有効カウント数21、スト
アカウント数22の値は図8の場合より1だけ値が増加
し、4と3に変化する。今回の場合には、圧縮ディレク
トリ40の有効カウント数21、ストアカウント数22
の値は0に変化したのでも、0から変化したのでもない
ため、ビット圧縮ディレクトリ54に変化は起こらず、
前と同じ値のままである。
Further, a case where a new address is registered in the sixth entry of the cache memory 30 from the state of FIG. 8 will be described with reference to FIG. In FIG. 9, a new address 0x0A0000 is registered in the sixth entry of the cache memory 30. At this time, the values of the valid bit 16 and the store bit 17 are both 1. Along with this, addresses 0x000000 to 0x of the compressed directory 40
The values of the effective count number 21 and the storage account number 22 of the entry corresponding to 0FFFFF are increased by 1 from the case of FIG. 8 and are changed to 4 and 3. In this case, the effective count number 21 and the strike account number 22 of the compressed directory 40
Since the value of is neither changed to 0 nor changed from 0, no change occurs in the bit compression directory 54,
It remains the same as before.

【0093】本実施例はディレクトリ方式と一般に呼ば
れている方式の変形であり、ビット圧縮ディレクトリ5
4から56が、通常のディレクトリ方式におけるディレ
クトリに対応する。一般のディレクトリ方式において
は、単一のディレクトリが全てのプロセッサのキャッシ
ュの情報を持つ方式がよく知られているが、本実施例で
は、ディレクトリに対応するビット圧縮ディレクトリ5
4から56は各プロセッサに対応して設けられている。
本実施例の特徴は、通常のディレクトリ方式におけるデ
ィレクトリがキャッシュのラインサイズ単位でキャッシ
ュコヒーレンス情報を持つのに対して、ラインサイズよ
りも大きな単位でアドレスを管理する点にある。これに
より、通常のディレクトリ方式で問題点となるディレク
トリのサイズ(エントリ数)を大幅に削減することが可
能である。大きな単位でアドレスを管理するために、ビ
ット圧縮ディレクトリ54から56の更新は圧縮ディレ
クトリ40を用いて行われる。また、本実施例では各プ
ロセッサに対応して設けられたビット圧縮ディレクトリ
54から56を複数用意し、個々のプロセッサに配置し
ている。このため、各プロセッサが自キャッシュをアク
セスした際に、他プロセッサのキャッシュに対してキャ
ッシュコヒーレンス制御を行う必要があるかどうかを、
自プロセッサで判断することができる。したがって、キ
ャッシュコヒーレンス制御のために他プロセッサに対し
て問い合わせを行う件数を削減することができ、システ
ム性能の向上が可能となる。
The present embodiment is a modification of the method generally called the directory method, and the bit compression directory 5
4 to 56 correspond to directories in the normal directory system. In a general directory system, a system in which a single directory has cache information of all processors is well known, but in the present embodiment, the bit compression directory 5 corresponding to the directory is used.
4 to 56 are provided corresponding to each processor.
A feature of this embodiment is that a directory in a normal directory system has cache coherence information in a cache line size unit, while an address is managed in a unit larger than a line size. As a result, it is possible to significantly reduce the size of the directory (the number of entries) which is a problem in the normal directory method. The update of the bit compression directories 54 to 56 is performed using the compression directory 40 in order to manage the address in a large unit. Further, in this embodiment, a plurality of bit compression directories 54 to 56 provided corresponding to each processor are prepared and arranged in each processor. Therefore, when each processor accesses its own cache, whether or not it is necessary to perform cache coherence control with respect to the cache of another processor,
It can be judged by its own processor. Therefore, the number of inquiries to other processors for cache coherence control can be reduced, and the system performance can be improved.

【0094】通常、一般的なディレクトリ方式ではディ
レクトリの物量が大きいため、ディレクトリを各プロセ
ッサに配置することは現実的とは言えない。本実施例に
おいては、アドレス管理単位を大きく取ったビット圧縮
ディレクトリ54から56および圧縮ディレクトリ40
を用いることで、物量が大きくなる問題点を解決してい
る。これを式を用いて説明する。主記憶の大きさをM
(単位はKB)、アドレス管理単位をA(単位はK
B)、キャッシュのラインサイズをL(単位はKB)、
プロセッサ数をNとすると、次の式で与えられるFの値
が1より小さい場合には、本実施例の方式は一般的なデ
ィレクトリ方式に比べてディレクトリの物量を小さくす
ることができる。Fの値は、本実施例におけるビット圧
縮ディレクトリ54から56および圧縮ディレクトリ4
0の物量と、一般的なディレクトリ方式におけるディレ
クトリの物量との比を示しており、この値が小さくなる
ほど、本実施例における物量が小さくて済むことを現
す。
Usually, in the general directory system, the physical quantity of the directory is large, so that it is not realistic to arrange the directory in each processor. In this embodiment, the bit compression directories 54 to 56 and the compression directory 40, which have a large address management unit, are used.
The problem that the quantity becomes large is solved by using. This will be described using an equation. The size of the main memory is M
(Unit is KB), address management unit is A (unit is K
B), the line size of the cache is L (unit is KB),
If the number of processors is N and the value of F given by the following equation is smaller than 1, the method of the present embodiment can reduce the physical quantity of the directory as compared with the general directory method. The value of F is the bit compression directories 54 to 56 and the compression directory 4 in this embodiment.
The ratio of the physical quantity of 0 to the physical quantity of the directory in the general directory system is shown. The smaller this value is, the smaller the physical quantity in this embodiment is.

【0095】[0095]

【数1】 F=[2N×(log(A/L)+N−1)×M/A] /[(1+N)×M/L] (1) (logの底は2であるものとする) 上記の式において分母は一般的なディレクトリ方式にお
けるディレクトリの物量の大きさであり、分子は本実施
例におけるビット圧縮ディレクトリ54から56および
圧縮ディレクトリ40の物量の大きさを表している(単
位はビット)。上記の式は、Nが1よりも充分に大きい
という近似を行うと、次のように変形することができ
る。
## EQU00001 ## F = [2N.times. (Log (A / L) + N-1) .times.M / A] / [(1 + N) .times.M / L] (1) (assuming the log base is 2) In the above formula, the denominator is the size of the physical quantity of the directory in the general directory system, and the numerator is the size of the physical quantity of the bit compression directories 54 to 56 and the compression directory 40 in this embodiment (the unit is bit. ). The above equation can be transformed into the following by making an approximation that N is sufficiently larger than 1.

【0096】[0096]

【数2】 F=2N×L/A (2) このFが1より小さくなるための条件は以下の通りであ
る。
## EQU00002 ## F = 2N.times.L / A (2) The conditions for making F smaller than 1 are as follows.

【0097】[0097]

【数3】 A/L>2N (3) すなわち、ビット圧縮ディレクトリ54から56および
圧縮ディレクトリ40のアドレス管理単位をキャッシュ
のラインサイズの大きさの2N倍以上にすれば、本実施
例の方式は一般的なディレクトリ方式に比べて、物量を
小さくすることができる。科学技術計算のように、各プ
ロセッサのデータ共有率の低いアプリケーションでは、
アドレス管理単位をキャッシュのラインサイズ(通常4
B〜16B程度)よりもはるかに大きくとれるため、F
の値を1より小さくすることは容易であることがわか
る。例えば、アドレス管理単位を1MBとし、キャッシ
ュのラインサイズを4Bとすれば、プロセッサ台数が約
10万台以下であれば、Fの値は1より小さくなる。も
しプロセッサ台数が十数台から数十台の規模であれば、
Fの値は1/1000〜1/10000程度の値とな
り、本実施例の方式に必要なディレクトリのための物量
は、一般的なディレクトリ方式に比べて1/1000〜
1/10000程度の大きさですむことがわかる。
## EQU00003 ## A / L> 2N (3) That is, if the address management unit of the bit compression directories 54 to 56 and the compression directory 40 is set to 2N times or more the size of the line size of the cache, the method of this embodiment is The physical quantity can be made smaller than that of a general directory system. For applications with low data sharing rate of each processor, such as scientific computing,
Address management unit is the cache line size (usually 4
B to about 16B), so F
It can be seen that it is easy to make the value of less than 1. For example, when the address management unit is 1 MB and the cache line size is 4 B, the value of F becomes smaller than 1 when the number of processors is about 100,000 or less. If the number of processors is from a dozen to a few dozen,
The value of F is about 1/1000 to 1/10000, and the physical quantity required for the directory of the present embodiment is 1/1000 to that of the general directory system.
It can be seen that the size is about 1/10000.

【0098】以上のように、本実施例では、ビット圧縮
ディレクトリを使ったキャッシュコヒーレンス制御が行
われる。通常のディレクトリ方式の場合であれば、本実
施例の説明のように主記憶容量を16MBとした場合に
は、エントリ数は16MB/4B=400万(キャッシ
ュのラインサイズを4Bと仮定)となるが、本実施例の
ようにアドレス管理単位を1MBと、キャッシュのライ
ンサイズよりも大きな値とすることで、圧縮ディレクト
リおよびビット圧縮ディレクトリのエントリ数は16M
B/1MB=16と、はるかに小さくすることができ
る。
As described above, in this embodiment, cache coherence control using the bit compression directory is performed. In the case of the normal directory method, when the main storage capacity is 16 MB as described in this embodiment, the number of entries is 16 MB / 4B = 4 million (assuming the cache line size is 4B). However, by setting the address management unit to 1 MB and a value larger than the line size of the cache as in this embodiment, the number of entries in the compressed directory and the bit compressed directory is 16 M.
B / 1MB = 16, which can be much smaller.

【0099】<実施例1の変形例> (1)実施例1では圧縮ディレクトリとビット圧縮ディ
レクトリの間の更新を共有バスを介して行うものとした
が、専用の通信線を設けて更新を行う方法でも実現可能
なことは言うまでもない。また、本実施例ではキャッシ
ュコヒーレンスのための圧縮ディレクトリ、および、ビ
ット圧縮ディレクトリがプロセッサ内に存在するとして
説明を行ったが、プロセッサ外に存在してもかまわない
ことは言うまでもない。
<Modification of First Embodiment> (1) In the first embodiment, the update between the compression directory and the bit compression directory is performed via the shared bus, but the update is performed by providing a dedicated communication line. It goes without saying that it can be realized by the method. Further, although the present embodiment has been described assuming that the compression directory for cache coherence and the bit compression directory exist inside the processor, it goes without saying that they may exist outside the processor.

【0100】(2)実施例1に示したキャッシュコヒー
レンス制御動作は一つの例であり、これ以外の制御方法
も存在しうる。例えばここに示した例では、ライトヒッ
トの場合には、他のプロセッサのキャッシュにそのデー
タが存在するとすれば、その場合は他のプロセッサのキ
ャッシュでは必ずDB=0となっているとしたが、DB
=1であることを許すような制御も存在しうる。このよ
うな、ここに示した例とは異なる制御方法でキャッシュ
コヒーレンス制御を行うためには、他のプロセッサのキ
ャッシュの状態(VB、DBの値)を、どのプロセッサ
からでも知ることができ、かつ、その時に他のプロセッ
サのキャッシュに対してデータを主記憶に書き戻す、な
いしはパージする制御が行えれば良く、すでに述べたよ
うに、実施例1においてもその条件は満されているの
で、実施例1に示した例以外のキャッシュコヒーレンス
制御も実施例1に適用可能である。
(2) The cache coherence control operation shown in the first embodiment is only an example, and other control methods may exist. For example, in the example shown here, in the case of a write hit, if the data exists in the cache of the other processor, in that case, it is assumed that DB = 0 in the cache of the other processor. DB
There may be controls that allow = 1. In order to perform the cache coherence control by the control method different from the example shown here, the cache states (VB and DB values) of other processors can be known from any processor, and At that time, it suffices if the cache can be written back to the main memory or purged to another processor, and as described above, the condition is satisfied in the first embodiment. The cache coherence control other than the example shown in the example 1 is also applicable to the example 1.

【0101】(3)実施例1では説明を行う便宜上、主
記憶のサイズを4GBとし、アドレスを1MB単位の固
定分割としているが、これ以外の値でもよいことは言う
までもない。そして、アドレスの分割単位をアドレスに
よって変更することも可能である。例えば、アドレスの
上位16MBまではアドレスの分割単位を4KBとし、
それより下位のアドレスでは分割単位を1MB単位とす
るような構成も可能である。
(3) In the first embodiment, for convenience of explanation, the size of the main memory is set to 4 GB and the address is fixedly divided in units of 1 MB, but it goes without saying that other values may be used. The address division unit can be changed according to the address. For example, the address division unit is 4 KB up to the upper 16 MB of the address,
It is also possible to adopt a configuration in which the division unit is 1 MB unit for lower addresses.

【0102】<実施例2>本実施例は、より少ないエン
トリ数の圧縮ディレクトリでキャッシュコヒーレンス制
御を効率よく行うことを目的とする。本実施例は実施例
1に対して、圧縮ディレクトリ装置12の構成とビット
圧縮ディレクトリ54から56の構成が異なる。また、
キャッシュコヒーレンス動作としては、キャッシュメモ
リ30の変化に伴う圧縮ディレクトリ装置12および他
のプロセッサのビット圧縮ディレクトリ装置13の更新
動作は異なるが、ビット圧縮ディレクトリ装置13によ
る他のプロセッサのキャッシュメモリ30の更新動作は
実施例1と同様である。
<Embodiment 2> This embodiment aims at efficiently performing cache coherence control with a compressed directory having a smaller number of entries. The present embodiment is different from the first embodiment in the configuration of the compression directory device 12 and the configurations of the bit compression directories 54 to 56. Also,
As the cache coherence operation, the update operation of the compression directory device 12 and the bit compression directory device 13 of another processor due to the change of the cache memory 30 is different, but the update operation of the cache memory 30 of another processor by the bit compression directory device 13 is different. Is the same as in the first embodiment.

【0103】図11は、圧縮ディレクトリ装置12の構
成を示す図であり、図11中、46は圧縮ディレクト
リ、47は圧縮ディレクトリ登録/更新回路である。圧
縮ディレクトリ46各エントリは、アドレス部25、有
効カウント数21、ストアカウント数22からなる。実
施例1で示した圧縮ディレクトリ40は、アドレス管理
単位が固定であったのに対して、圧縮ディレクトリ46
は、アドレス部25を持つことにより、有効カウント数
21、ストアカウント数22の計数の対象となるアドレ
ス領域を各エントリ毎に自由に変更できる。
FIG. 11 is a diagram showing the structure of the compression directory device 12, wherein in FIG. 11, 46 is a compression directory and 47 is a compression directory registration / update circuit. Each entry of the compression directory 46 includes an address part 25, a valid count number 21, and a strike account number 22. In the compressed directory 40 shown in the first embodiment, the address management unit is fixed, whereas the compressed directory 46.
With the address section 25, the address area for counting the effective count number 21 and the storage account number 22 can be freely changed for each entry.

【0104】図12はビット圧縮ディレクトリ54から
56の構成を示す図である。ビット圧縮ディレクトリ5
4から56の各エントリは圧縮ディレクトリ47と同
様、アドレス部26が新たに設けられている。他有効ビ
ット23、他ストアビット24については、実施例1に
おけるビット圧縮ディレクトリ54から56(図6)と
同様の機能と構成を持つ。圧縮ディレクトリ46および
ビット圧縮ディレクトリ54から56の一つのエントリ
がカバーするアドレス領域の大きさは固定されている。
以下では説明のために仮に1MBの大きさを持つものと
する。
FIG. 12 is a diagram showing the structure of the bit compression directories 54 to 56. Bit compression directory 5
Similar to the compressed directory 47, each of the entries 4 to 56 is newly provided with an address part 26. The other valid bit 23 and the other store bit 24 have the same functions and configurations as the bit compression directories 54 to 56 (FIG. 6) in the first embodiment. The size of the address area covered by one entry of the compression directory 46 and the bit compression directories 54 to 56 is fixed.
Hereinafter, for the sake of explanation, it is assumed that the size is 1 MB.

【0105】次に、このように構成された本システムの
動作について、図1、図2、図4、図11、図12を用
いて説明する。以下、実施例1と本実施例との違いであ
る〓、圧縮ディレクトリ46とビット圧縮ディレクトリ
54から56の内容がどのように更新されるかに関して
説明を行う。説明は、プロセッサ2a内の命令プロセッ
サ(IP)3のアクセスに起因して、圧縮ディレクトリ
46が更新される過程を具体例として示す。また、圧縮
ディレクトリ46の更新に引き続いて発生するビット圧
縮ディレクトリ54から56の更新に関しては、プロセ
ッサ2a内の圧縮ディレクトリ46が更新された後、プ
ロセッサ2bのビット圧縮ディレクトリ54が更新され
る過程を具体例として示す。
Next, the operation of the present system configured as described above will be described with reference to FIGS. 1, 2, 4, 11, and 12. Hereinafter, a difference between the first embodiment and this embodiment, that is, how the contents of the compression directory 46 and the bit compression directories 54 to 56 are updated will be described. The description shows a specific example of the process in which the compression directory 46 is updated due to the access of the instruction processor (IP) 3 in the processor 2a. Further, regarding the update of the bit compression directories 54 to 56 that occur following the update of the compression directory 46, the process of updating the bit compression directory 54 of the processor 2b after updating the compression directory 46 in the processor 2a will be described in detail. As an example:

【0106】初期状態においては、キャッシュメモリ3
0の全てのエントリの有効ビット、ストアビットはリセ
ットされており、圧縮ディレクトリ46の全てのエント
リの有効カウント数、ストアカウント数の値は0であ
り、ビット圧縮ディレクトリ54から56の全てのエン
トリの他有効ビット、他ストアビット値は0である。圧
縮ディレクトリ46のアドレス部25、ビット圧縮ディ
レクトリ54から56のアドレス部26は任意の値でよ
い。それ以外の部分の初期状態における値は従来のプロ
セッサと同様な値が格納される。
In the initial state, the cache memory 3
The valid bit and the store bit of all the entries of 0 are reset, the values of the valid count number and the storage account number of all the entries of the compression directory 46 are 0, and all the entries of the bit compression directories 54 to 56 are Other valid bits and other store bit values are 0. The address part 25 of the compression directory 46 and the address part 26 of the bit compression directories 54 to 56 may have arbitrary values. Values in the initial state of the other parts are the same as those in the conventional processor.

【0107】さて、命令プロセッサ(IP)3のアクセ
スに起因してキャッシュメモリ30のエントリに変化が
あった場合、具体的にはエントリ中の有効ビット16、
ストアビット17の値が変化した場合には、その変化は
信号線L24およびL25を介して圧縮ディレクトリ登
録/更新回路47に伝達される。また、キャッシュメモ
リ30の変化したエントリのアドレスは信号線L27に
よって、圧縮ディレクトリ46に伝達される。圧縮ディ
レクトリ46のエントリでそのアドレス部25の示すア
ドレスが、信号線L27の示すアドレスを含む場合に
は、実施例1と同様にしてそのエントリの有効カウント
数21、ストアカウント数22の値が更新され、引き続
いてプロセッサ2bのビット圧縮ディレクトリ54の他
有効ビット23、他ストアビット24が更新される。
When the entry of the cache memory 30 is changed due to the access of the instruction processor (IP) 3, specifically, the valid bit 16 in the entry,
When the value of the store bit 17 changes, the change is transmitted to the compression directory registration / update circuit 47 via the signal lines L24 and L25. The address of the changed entry in the cache memory 30 is transmitted to the compression directory 46 via the signal line L27. When the address indicated by the address section 25 in the entry of the compressed directory 46 includes the address indicated by the signal line L27, the values of the valid count number 21 and the strike account number 22 of the entry are updated as in the first embodiment. Subsequently, the other valid bit 23 and the other store bit 24 of the bit compression directory 54 of the processor 2b are updated.

【0108】次に、信号線L27の示すアドレスが、圧
縮ディレクトリ46中のいずれのエントリのアドレス部
25にも存在しなかった場合の圧縮ディレクトリ46の
更新、およびプロセッサ2bのビット圧縮ディレクトリ
54の更新について説明を行う。圧縮ディレクトリ登録
/更新回路47は、圧縮ディレクトリ46のエントリに
おいて有効カウント数21の値が0であるようなエント
リが存在するか否かを検索する。そのようなエントリが
存在した場合には、そのエントリのアドレス部25に信
号線L27の示すアドレスを書き込む。アドレス部25
を書き換えた後の圧縮ディレクトリ46の更新は、前述
の信号線L27の示すアドレスが、圧縮ディレクトリ4
6中のいずれかのエントリのアドレス部25に存在した
場合と同様に行われる。この時、有効カウント数21の
値は0から1に変化するので、プロセッサ2bのビット
圧縮ディレクトリ54の更新も引き続いて行われる。
Next, when the address indicated by the signal line L27 does not exist in the address part 25 of any entry in the compression directory 46, the compression directory 46 is updated and the bit compression directory 54 of the processor 2b is updated. Will be described. The compression directory registration / updating circuit 47 searches the entry of the compression directory 46 for an entry having a value of the valid count number 21 of 0. If such an entry exists, the address indicated by the signal line L27 is written in the address section 25 of that entry. Address part 25
When the compression directory 46 is updated after rewriting, the address indicated by the signal line L27 is changed to the compression directory 4
It is performed in the same manner as in the case where it exists in the address part 25 of any entry in 6. At this time, the value of the effective count number 21 changes from 0 to 1, so that the bit compression directory 54 of the processor 2b is also updated subsequently.

【0109】まず、圧縮ディレクトリ登録/更新回路4
7は信号線L30上に、圧縮ディレクトリ46において
あらたにアドレスを書き込んだエントリの番号を送る。
プロセッサ2bはこのエントリ番号をプロセッサ2bの
信号線L01を介してプロセッサ2bのビット圧縮ディ
レクトリ54に伝達し、対応するエントリに対して、プ
ロセッサ2bの信号線L02およびL23を介して伝達
されたアドレスの値をプロセッサ2bのビット圧縮ディ
レクトリ54のアドレス部26に書き込み、他有効ビッ
トと他ストアビットの更新を行う。
First, the compressed directory registration / update circuit 4
7 sends the number of the entry in which the address is newly written in the compression directory 46 to the signal line L30.
The processor 2b transmits this entry number to the bit compression directory 54 of the processor 2b via the signal line L01 of the processor 2b, and the address transmitted via the signal lines L02 and L23 of the processor 2b to the corresponding entry. The value is written in the address part 26 of the bit compression directory 54 of the processor 2b, and the other valid bit and the other store bit are updated.

【0110】次に、信号線L27の示すアドレスが、圧
縮ディレクトリ46中のいずれのエントリのアドレス部
25にも存在しなかった場合であって、かつ、圧縮ディ
レクトリ46のエントリにおいて有効カウント数が0で
あるようなエントリが存在しなかった場合の圧縮ディレ
クトリ46の更新、およびプロセッサ2bのビット圧縮
ディレクトリ54の更新について説明を行う。
Next, when the address indicated by the signal line L27 does not exist in the address part 25 of any entry in the compression directory 46, and the effective count number is 0 in the entry of the compression directory 46. Update of the compression directory 46 when there is no such entry and update of the bit compression directory 54 of the processor 2b will be described.

【0111】圧縮ディレクトリ登録/更新回路47は、
圧縮ディレクトリ46のエントリのうち適当なエントリ
を選択してそのエントリの示すアドレス部25の値を読
み出し、そのアドレス部25の示すアドレス領域に存在
する全てのキャッシュメモリ30の内容をフラッシュな
いしパージするよう、キャッシュメモリ登録/更新回路
31に対して信号線L22を介して、キャッシュメモリ
30に指示を送る。フラッシュないしパージが完了した
後に、選択したエントリに対して、前述の圧縮ディレク
トリ46のエントリにおいて有効カウント数が0である
ようなエントリが存在した場合と同様の方法によって、
圧縮ディレクトリ46の更新、およびプロセッサ2bの
ビット圧縮ディレクトリ54の更新を行う。
The compressed directory registration / update circuit 47
An appropriate entry is selected from the entries of the compression directory 46, the value of the address section 25 indicated by the entry is read, and the contents of all the cache memories 30 existing in the address area indicated by the address section 25 are flushed or purged. , Sends an instruction to the cache memory registration / update circuit 31 via the signal line L22 to the cache memory 30. After the flushing or purging is completed, by the same method as in the case where there is an entry having an effective count number of 0 in the entry of the compression directory 46, for the selected entry,
The compression directory 46 is updated, and the bit compression directory 54 of the processor 2b is updated.

【0112】尚、圧縮ディレクトリ46のエントリのう
ち適当なエントリを選択する方法としては、有効カウン
ト数の最も小さな値のエントリを選択する方法、ストア
カウント数の値が0または最も小さなエントリを選択す
る方法、またはLRU方式を採用して最も過去に更新さ
れたエントリを更新するなどの方法があるが、状況に応
じてどの方法を選択してもよいし、また、これ以外の方
法の採用をしてももちろんよい。
As a method of selecting an appropriate entry among the entries of the compression directory 46, a method of selecting an entry having the smallest effective count value, or an entry having 0 or the smallest account count value is selected. There is a method or a method of adopting the LRU method to update the most recently updated entry, but any method may be selected depending on the situation, and another method may be adopted. But of course

【0113】本実施例では、キャッシュコヒーレンス制
御をアドレス部25を設けた圧縮ディレクトリ46を用
いて行っているために、例えば、使用アドレスの局所性
が大きいプログラムに対して、実施例1よりもエントリ
を有効に利用できる。そのため、実施例1よりも圧縮デ
ィレクトリ46のエントリのサイズはアドレス部25の
大きさだけ増加するもののエントリの本数を削減するこ
とが可能となり、結果として圧縮ディレクトリ46の容
量をより小さくできる。
In this embodiment, the cache coherence control is performed by using the compression directory 46 provided with the address section 25. Therefore, for example, for a program in which the locality of the used address is large, an entry is made more than in the first embodiment. Can be used effectively. Therefore, although the size of the entry of the compression directory 46 is increased by the size of the address part 25, the number of entries can be reduced as compared with the first embodiment, and as a result, the capacity of the compression directory 46 can be further reduced.

【0114】尚、本実施例では圧縮ディレクトリ60お
よびビット圧縮ディレクトリ54から56の一つのエン
トリがカバーするアドレス領域の大きさはアドレスによ
らず固定としたが、例えば、実施例1のように、アドレ
スの上位16MBまではアドレス管理単位を4KBと
し、それより下位のアドレスでは管理単位を1MB単位
とするような構成も可能である。
In the present embodiment, the size of the address area covered by one entry of the compression directory 60 and the bit compression directories 54 to 56 is fixed regardless of the address. For example, as in the first embodiment, A configuration is possible in which the address management unit is 4 KB for the upper 16 MB of addresses and the management unit is 1 MB for lower addresses.

【0115】<実施例3>本実施例は、実施例2同様、
少ないエントリ数の圧縮ディレクトリでキャッシュコヒ
ーレンス制御を効率よく行うことを目的とする。本実施
例は、実施例2に対して、圧縮ディレクトリ装置12の
構成とビット圧縮ディレクトリ54から56の構成が異
なる。ここでは実施例2と異なる構成要素および動作に
ついてのみ説明を行う。
<Third Embodiment> This embodiment is similar to the second embodiment.
The purpose is to efficiently perform cache coherence control with a compressed directory having a small number of entries. The present embodiment is different from the second embodiment in the configuration of the compression directory device 12 and the configurations of the bit compression directories 54 to 56. Here, only components and operations different from those of the second embodiment will be described.

【0116】図13は、圧縮ディレクトリ装置12の構
成を示す図であり、図において、60は圧縮ディレクト
リ、61は圧縮ディレクトリ登録/更新回路である。圧
縮ディレクトリ60の各エントリは、アドレス部26、
アドレスサイズ指示部27、有効カウント数21、スト
アカウント数22からなる。そして、エントリの総数
は、命令プロセッサ(IP)3のアドレス変換バッファ
(TLB)のエントリ数と同数あるいはそれ以上とす
る。
FIG. 13 is a diagram showing the configuration of the compression directory device 12, in which 60 is a compression directory and 61 is a compression directory registration / update circuit. Each entry of the compressed directory 60 has an address part 26,
The address size instruction unit 27, the effective count number 21, and the strike account number 22. The total number of entries is equal to or more than the number of entries in the address translation buffer (TLB) of the instruction processor (IP) 3.

【0117】実施例2で示した圧縮ディレクトリ46
は、アドレス管理単位が固定であったのに対して、圧縮
ディレクトリ60は、アドレスサイズ指示部を持つこと
により、その有効カウント数21、ストアカウント数2
2の計数の対象となるアドレス領域の大きさを各エント
リ毎に自由に変更できる。
The compressed directory 46 shown in the second embodiment.
The address management unit is fixed, whereas the compressed directory 60 has an address size instruction section, so that the effective count number is 21 and the storage account number is 2.
The size of the address area to be counted by 2 can be freely changed for each entry.

【0118】図14はビット圧縮ディレクトリ54から
56の構成を示す図である。ビット圧縮ディレクトリ5
4から56の各エントリは圧縮ディレクトリ61と同
様、アドレスサイズ指示部28が新たに設けられてい
る。アドレス部26、他有効ビット23、他ストアビッ
ト24については実施例2におけるビット圧縮ディレク
トリ54から56(図12)と同様の機能と構成を持
つ。
FIG. 14 is a diagram showing the structure of the bit compression directories 54 to 56. Bit compression directory 5
Similar to the compressed directory 61, each of the entries 4 to 56 is newly provided with an address size instruction unit 28. The address part 26, the other valid bit 23, and the other store bit 24 have the same functions and configurations as the bit compression directories 54 to 56 (FIG. 12) in the second embodiment.

【0119】次に、このように構成された本システムの
動作について、図1、図2、図4、図13、図14を用
いて説明する。本実施例は、実施例2と比較して、圧縮
ディレクトリ60、および、ビット圧縮ディレクトリ5
4から56のアドレス部の更新の方法だけ異なってい
る。以下ではこの異なっている部分のみについて説明を
行う。
Next, the operation of the present system thus constructed will be described with reference to FIG. 1, FIG. 2, FIG. 4, FIG. 13 and FIG. In this embodiment, the compression directory 60 and the bit compression directory 5 are compared with the second embodiment.
The only difference is the method of updating the address part from 4 to 56. Only the different parts will be described below.

【0120】圧縮ディレクトリ60の更新は次のように
して行われる。命令プロセッサ(IP)3のアクセスに
起因して、命令プロセッサ(IP)3内にあるアドレス
変換バッファ(TLB)の内容が書き換えられる場合、
すなわち、アドレス変換バッファ(TLB)のエントリ
の生成ないし消滅が起こる場合、生成ないし消滅するア
ドレス変換バッファ(TLB)のエントリの変換アドレ
ス対のうちの物理アドレスおよび、アドレスサイズ情報
を信号線L15を介して、圧縮ディレクトリ登録/更新
回路61に送る。圧縮ディレクトリ登録/更新回路61
は、受け取った物理アドレスおよび、アドレスサイズ情
報を用いて、アドレス変換バッファ(TLB)のエント
リの生成ないし消滅にあわせて、圧縮ディレクトリ60
のエントリの生成ないし消滅を行う。結果として、圧縮
ディレクトリ60のエントリのアドレス部25とアドレ
スサイズ指示部27が、アドレス変換バッファ(TL
B)の全てのアドレス変換対の物理アドレスおよび、ア
ドレスサイズと同一の情報を持つように制御を行う。
The compression directory 60 is updated as follows. When the content of the address translation buffer (TLB) in the instruction processor (IP) 3 is rewritten due to the access of the instruction processor (IP) 3,
That is, when the entry or the erasure of the entry of the address translation buffer (TLB) occurs, the physical address and the address size information of the translation address pair of the entry of the address translation buffer (TLB) that is created or erased are transmitted via the signal line L15. And sends it to the compressed directory registration / update circuit 61. Compressed directory registration / update circuit 61
Uses the received physical address and address size information to create or delete an entry in the address translation buffer (TLB) according to the compression directory 60.
Create or delete an entry for. As a result, the address part 25 and the address size instructing part 27 of the entry of the compressed directory 60 are
The control is performed so as to have the same information as the physical address and the address size of all the address translation pairs in B).

【0121】尚、本実施例では、アドレス変換バッファ
(TLB)はアドレス変換対毎に変換を行うアドレスの
アドレスサイズが変更可能であると仮定している。も
し、アドレスサイズが固定である場合には、圧縮ディレ
クトリ60の代わりに圧縮ディレクトリ40を用いるこ
とが可能である。また、その場合、ビット圧縮ディレク
トリ54から56の構造は図14に示すものの代わりに
図12のものを用いて良い。
In this embodiment, it is assumed that the address translation buffer (TLB) can change the address size of the address to be translated for each address translation pair. If the address size is fixed, it is possible to use the compression directory 40 instead of the compression directory 60. Further, in that case, the structure of the bit compression directories 54 to 56 may be the one shown in FIG. 12 instead of the structure shown in FIG.

【0122】アドレス変換バッファ(TLB)のエント
リが消滅した場合には、消滅したエントリの物理アドレ
スと同じアドレスを持つ圧縮ディレクトリ60のエント
リを消滅させるが、消滅させるエントリの有効カウント
数21、ストアカウント数22の値が0でなかった場合
には、圧縮ディレクトリ登録/更新回路61はキャッシ
ュメモリ登録/更新回路31に対して信号線L22を介
して指示を送り、消滅させる圧縮ディレクトリ60のエ
ントリのアドレス領域範囲の全てのデータのフラッシュ
ないしパージをキャッシュメモリ30に対して行う。た
だし、アドレス変換バッファ(TLB)のエントリが消
滅する際に、上記のキャッシュメモリ30のデータのフ
ラッシュないしパージが自動的に行われる仕様となって
いる場合も存在するが、このような場合には、圧縮ディ
レクトリ登録/更新回路61がこの操作を行う必要はな
い。
When the entry of the address translation buffer (TLB) disappears, the entry of the compressed directory 60 having the same address as the physical address of the disappeared entry is deleted, but the effective count number of the deleted entry is 21, the account When the value of the equation 22 is not 0, the compression directory registration / update circuit 61 sends an instruction to the cache memory registration / update circuit 31 via the signal line L22 to delete the address of the entry of the compression directory 60 to be deleted. The cache memory 30 is flushed or purged with all the data in the area range. However, there is a case where the specification is such that the data in the cache memory 30 is automatically flushed or purged when the entry of the address translation buffer (TLB) disappears, but in such a case, The compressed directory registration / update circuit 61 does not need to perform this operation.

【0123】圧縮ディレクトリ60の更新に伴うビット
圧縮ディレクトリ54から56の更新は、アドレスサイ
ズ指示部の更新を除き、実施例2と同様である。アドレ
スサイズ指示部の更新は、信号線L30上に更新される
エントリ番号とともにアドレスサイズ指示部の情報を送
ることで行われる。
The updating of the bit compression directories 54 to 56 associated with the updating of the compression directory 60 is the same as that of the second embodiment except for the update of the address size instruction section. The update of the address size instruction unit is performed by sending the information of the address size instruction unit together with the updated entry number on the signal line L30.

【0124】このようにして、本実施例では、キャッシ
ュコヒーレンス制御をアドレス変換バッファ(TLB)
の持つアドレス情報に基づいて行う。一般に、アドレス
変換バッファ(TLB)に含まれるアドレス範囲は、ほ
とんど全てのキャッシュメモリのエントリを網羅するも
のと考えられる。したがって、本実施例では実施例2よ
りもさらにエントリの本数を削減した圧縮ディレクトリ
によって、効率よくキャッシュコヒーレンス制御を行う
ことが可能となる。
In this way, in this embodiment, the cache coherence control is performed by the address translation buffer (TLB).
Based on the address information of the. Generally, the address range included in the address translation buffer (TLB) is considered to cover almost all entries of the cache memory. Therefore, in the present embodiment, the cache coherence control can be efficiently performed by the compressed directory in which the number of entries is further reduced as compared with the second embodiment.

【0125】<実施例4>本実施例は実施例3の変形で
ある。実施例3では圧縮ディレクトリ60の更新の際に
キャッシュの内容をフラッシュないしパージする必要が
生じる可能性があり、システム性能を低下させる可能性
があったが、本実施例ではこれを改善することを目的と
する。本実施例は実施例3に対して、圧縮ディレクトリ
装置12の構成とビット圧縮ディレクトリ装置13の構
成が異なる。ここでは実施例3と異なる構成要素および
動作についてのみ説明を行う。
<Fourth Embodiment> This embodiment is a modification of the third embodiment. In the third embodiment, there is a possibility that the cache contents may need to be flushed or purged when updating the compressed directory 60, and system performance may be degraded. To aim. This embodiment differs from the third embodiment in the configuration of the compression directory device 12 and the configuration of the bit compression directory device 13. Here, only components and operations different from those of the third embodiment will be described.

【0126】図15は、圧縮ディレクトリ装置12の構
成を示す図であり、図15中、62は補助圧縮ディレク
トリ、63は補助圧縮ディレクトリ登録/更新回路、7
1および72は加減算器、73から74はゼロ検出器で
ある。補助圧縮ディレクトリ62は、実施例1の圧縮デ
ィレクトリ40(図5)と同様の構成を持つ。
FIG. 15 is a diagram showing the structure of the compression directory device 12, wherein 62 is an auxiliary compression directory, 63 is an auxiliary compression directory registration / update circuit, and 7
1 and 72 are adder / subtractors, and 73 to 74 are zero detectors. The auxiliary compression directory 62 has the same structure as the compression directory 40 (FIG. 5) of the first embodiment.

【0127】図16はビット圧縮ディレクトリ装置13
の構成を示す図である。図16中、80は分配回路、8
1から83は補助ビット圧縮ディレクトリである。補助
ビット圧縮ディレクトリ81から83は、実施例1のビ
ット圧縮ディレクトリ54から56(図6)と同様の構
成を持つ。
FIG. 16 shows the bit compression directory device 13
It is a figure which shows the structure of. In FIG. 16, 80 is a distribution circuit and 8
Reference numerals 1 to 83 are auxiliary bit compression directories. The auxiliary bit compression directories 81 to 83 have the same configuration as the bit compression directories 54 to 56 (FIG. 6) of the first embodiment.

【0128】次に、このように構成された本システムの
動作について、図1、図2、図5、図6、図13、図1
4、図15、図16を用いて説明する。
Next, with respect to the operation of the present system configured as described above, FIG. 1, FIG. 2, FIG. 5, FIG. 6, FIG.
4, FIG. 15 and FIG.

【0129】本実施例は、実施例3に実施例1を融合し
たものであり、実施例3と比較して、圧縮ディレクトリ
60の更新の際の制御方法および、補助圧縮ディレクト
リ62の更新制御があらたに加わる点が異なる。以下、
その異なる点について説明を行う。例として、説明はプ
ロセッサ2a内の命令プロセッサ(IP)3のアクセス
に起因して、圧縮ディレクトリ60および、補助圧縮デ
ィレクトリ62が更新される過程を具体例として示す。
また、圧縮ディレクトリ60および、補助圧縮ディレク
トリ62の更新に引き続いて発生するビット圧縮ディレ
クトリおよび補助ビット圧縮ディレクトリの更新に関し
ては、プロセッサ2bを対象として説明を行う。
The present embodiment is a combination of the first embodiment and the third embodiment. Compared with the third embodiment, the control method at the time of updating the compression directory 60 and the update control of the auxiliary compression directory 62 are improved. They are different in that they are newly added. Less than,
The different points will be described. As an example, the description shows a specific example of the process in which the compression directory 60 and the auxiliary compression directory 62 are updated due to the access of the instruction processor (IP) 3 in the processor 2a.
Further, the update of the bit compression directory and the auxiliary bit compression directory that occur subsequent to the update of the compression directory 60 and the auxiliary compression directory 62 will be described for the processor 2b.

【0130】圧縮ディレクトリ60の更新において、本
実施例と実施例3とで異なる点は、命令プロセッサ(I
P)3のアドレス変換バッファ(TLB)のエントリが
消滅した場合であって、そのエントリと同じアドレス情
報を持つ圧縮ディレクトリ60のエントリを消滅させる
が、消滅させるエントリの有効カウント数21、ストア
カウント数22の値が0でなかった場合の制御である。
実施例3では、消滅させる圧縮ディレクトリ60のエン
トリのアドレス領域内に対応するキャッシュメモリ30
の全てのデータのフラッシュないしパージを行ったのに
対して、本実施例では、消滅させる圧縮ディレクトリ6
0のエントリの情報を圧縮ディレクトリ60から、補助
圧縮ディレクトリ62に移送を行う。
The difference between the present embodiment and the third embodiment in updating the compression directory 60 is that the instruction processor (I
P) When the entry of the address translation buffer (TLB) 3 is deleted, and the entry of the compressed directory 60 having the same address information as that entry is deleted, but the effective count number of the deleted entry is 21, the account count This is the control when the value of 22 is not 0.
In the third embodiment, the cache memory 30 corresponding to the address area of the entry of the compressed directory 60 to be deleted
In the present embodiment, the compressed directory 6 to be deleted is flushed or purged.
The information of the entry of 0 is transferred from the compression directory 60 to the auxiliary compression directory 62.

【0131】すなわち、消滅させる圧縮ディレクトリ6
0のエントリの情報を圧縮ディレクトリ登録/更新回路
61から信号線L63を介して補助圧縮ディレクトリ登
録/更新回路63へ移送し、補助圧縮ディレクトリ62
のアドレス管理方法に変換して補助圧縮ディレクトリ6
2へ登録を行う。これに伴って、ビット圧縮ディレクト
リ54から56と補助ビット圧縮ディレクトリ81から
83の更新を行うが、この方法は、実施例3、および、
実施例1で説明した方法と同様である。
That is, the compressed directory 6 to be deleted
The information of the entry of 0 is transferred from the compression directory registration / update circuit 61 to the auxiliary compression directory registration / update circuit 63 through the signal line L63, and the auxiliary compression directory 62 is transferred.
Auxiliary compression directory 6
Register to 2. Along with this, the bit compression directories 54 to 56 and the auxiliary bit compression directories 81 to 83 are updated. In this method, the third embodiment and
The method is the same as that described in the first embodiment.

【0132】また、補助圧縮ディレクトリ更新回路63
は信号線L15を監視し、命令プロセッサ(IP)3内
のアドレス変換バッファ(TLB)でエントリの生成が
発生した場合には、補助圧縮ディレクトリ62の内容を
チェックする。そして、新たに生成したアドレス変換バ
ッファ(TLB)のエントリのアドレス領域に対応する
補助圧縮ディレクトリ62のエントリの有効カウント数
21、ストアカウント数22の値が0でなかった場合に
は、その補助圧縮ディレクトリ62のエントリの内容を
圧縮ディレクトリ60へ移送を行う。すなわち、補助圧
縮ディレクトリ62はキャッシュメモリ登録/更新回路
31へ信号線L22を介して指示を送り、前述の新たに
生成した補助圧縮ディレクトリ62のアドレス範囲につ
いて、キャッシュメモリ30を検索する。そして、キャ
ッシュメモリ30のエントリにおいて該当したアドレス
部15の有効ビット16、ストアビット17の情報を読
み出し、圧縮ディレクトリ60を更新する。
Further, the auxiliary compression directory update circuit 63
Monitors the signal line L15, and checks the contents of the auxiliary compression directory 62 when an entry is generated in the address translation buffer (TLB) in the instruction processor (IP) 3. Then, when the values of the effective count number 21 and the storage account number 22 of the entry of the auxiliary compression directory 62 corresponding to the address area of the entry of the newly generated address translation buffer (TLB) are not 0, the auxiliary compression is performed. The contents of the entries in the directory 62 are transferred to the compressed directory 60. That is, the auxiliary compression directory 62 sends an instruction to the cache memory registration / update circuit 31 via the signal line L22 to search the cache memory 30 for the address range of the newly generated auxiliary compression directory 62 described above. Then, the information of the valid bit 16 and the store bit 17 of the corresponding address part 15 in the entry of the cache memory 30 is read and the compression directory 60 is updated.

【0133】ビット圧縮ディレクトリ54から56と補
助ビット圧縮ディレクトリ81から83とを用いたキャ
ッシュコヒーレンス制御は、実施例3と実施例1を併せ
た方法で行う。すなわち、キャッシュメモリ30をアク
セスしたアドレスでビット圧縮ディレクトリ54から5
6と補助ビット圧縮ディレクトリ81から83の双方を
参照し、双方に関して、それぞれ第3実施例、実施例1
で述べた、キャッシュコヒーレンス制御を行う。
The cache coherence control using the bit compression directories 54 to 56 and the auxiliary bit compression directories 81 to 83 is performed by a method combining the third embodiment and the first embodiment. That is, the bit compression directories 54 to 5 are accessed at the addresses that access the cache memory 30.
6 and the auxiliary bit compression directories 81 to 83, and with respect to both, the third embodiment and the first embodiment, respectively.
Performs cache coherence control as described above.

【0134】以上のような制御によって、圧縮ディレク
トリ60、補助圧縮ディレクトリ62の更新を行う。本
実施例によれば、実施例3と異なり、アドレス変換バッ
ファ(TLB)のエントリが消滅した場合でも、キャッ
シュのデータをフラッシュないしパージする必要がな
く、実施例3よりも性能の低下を抑えたキャッシュコヒ
ーレンス制御が可能となる。
By the control as described above, the compression directory 60 and the auxiliary compression directory 62 are updated. According to the present embodiment, unlike the third embodiment, even if the entry of the address translation buffer (TLB) disappears, it is not necessary to flush or purge the data in the cache, and the performance degradation is suppressed as compared with the third embodiment. Cache coherence control becomes possible.

【0135】<実施例4の変形例>本実施例では実施例
3と実施例1を融合した例を述べたが、これ以外の組み
合わせ、例えば、実施例2と実施例1を融合したもの
や、実施例3と実施例2を融合したものであってもよ
い。
<Modified Example of Fourth Embodiment> In this embodiment, an example in which the third embodiment and the first embodiment are combined has been described. However, other combinations, for example, a combination of the second embodiment and the first embodiment, and the like. Alternatively, the third embodiment and the second embodiment may be combined.

【0136】<実施例5>実施例1から4およびそれら
の変形例では、各プロセッサエレメントに関するビット
圧縮ディレクトリの写を、そのプロセッサエレメント以
外の複数のプロセッサエレメント内に重複して配置し
た。しかし、これに代えて、各プロセッサエレメントの
ビット圧縮ディレクトリを主記憶内部あるいはその近傍
に配置することも可能である。
<Embodiment 5> In Embodiments 1 to 4 and the modifications thereof, the copy of the bit compression directory for each processor element is redundantly arranged in a plurality of processor elements other than the processor element. However, instead of this, it is also possible to arrange the bit compression directory of each processor element inside or in the vicinity of the main memory.

【0137】この場合、同じプロセッサエレメントに関
するビット圧縮ディレクトリの重複がなくなるので、デ
ィレクトリの総容量はすでに示した実施例1等より低減
される。
In this case, since the bit compression directories relating to the same processor element do not overlap, the total capacity of the directories is reduced as compared with the above-described first embodiment.

【0138】さらに、実施例1から4およびそれらの変
形例では、圧縮ディレクトリを各プロセッサエレメント
に配置した。しかし、これに代えて、圧縮ディレクトリ
を主記憶の内部もしくは近傍に配置することも可能であ
る。
Further, in the first to fourth embodiments and their modifications, the compression directory is arranged in each processor element. However, instead of this, it is also possible to arrange the compression directory inside or in the vicinity of the main memory.

【0139】<実施例6>本実施例では、実施例5と同
様に、各プロセッサエレメントのビット圧縮ディレクト
リを主記憶内部あるいはその近傍に配置する。この場
合、同じプロセッサエレメントに関するビット圧縮ディ
レクトリの重複がなくなるので、ディレクトリの総容量
はすでに示した実施例より低減される。
<Embodiment 6> In this embodiment, as in the case of the embodiment 5, the bit compression directory of each processor element is arranged in the main memory or in the vicinity thereof. In this case, the bit-compressed directories for the same processor element do not overlap, so that the total capacity of the directories is reduced compared to the previously described embodiments.

【0140】しかし、圧縮ディレクトリは、実施例1等
と同じく、各プロセッサエレメントに配置する。この結
果、各プロセッサエレメントの圧縮ディレクトリの更新
を、そのプロセッサエレメント内で行なえるため、実施
例5より高速に行なうことが出来る。
However, the compressed directory is arranged in each processor element as in the first embodiment. As a result, since the compression directory of each processor element can be updated within that processor element, it can be performed faster than in the fifth embodiment.

【0141】[0141]

【発明の効果】本発明によれば、マルチプロセッサシス
テムにおけるキャッシュコヒーレンス制御を容量の小さ
い圧縮ディレクトリを用いて行うことができる。
According to the present invention, cache coherence control in a multiprocessor system can be performed using a compressed directory having a small capacity.

【0142】とくに、各プロセッサエレメントにディレ
クトリを分散して配置し、各プロセッサエレメントにお
いて他のプロセッサエレメントでのデータのキャッシン
グの有無を高速にチェック可能な構成にする場合にも、
ディレクトリの総容量を少なく出来る。
In particular, in the case where directories are dispersedly arranged in each processor element so that each processor element can quickly check the presence or absence of data caching in another processor element,
The total capacity of the directory can be reduced.

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

【図1】本発明の実施例1によるマルチプロセッサシス
テムの概略回路構成図。
FIG. 1 is a schematic circuit configuration diagram of a multiprocessor system according to a first embodiment of the present invention.

【図2】図1の装置に使用するキャッシュ装置(11)
の概略回路構成図。
FIG. 2 is a cache device (11) used in the device of FIG.
FIG.

【図3】図1の装置に使用する圧縮ディレクトリ装置
(12)の概略回路構成図。
FIG. 3 is a schematic circuit configuration diagram of a compressed directory device (12) used in the device of FIG.

【図4】図1の装置に使用するビット圧縮ディレクトリ
装置(13)の概略回路構成図。
4 is a schematic circuit configuration diagram of a bit compression directory device (13) used in the device of FIG.

【図5】図3の圧縮ディレクトリ装置に使用する圧縮デ
ィレクトリ(40)のデータ構造図。
5 is a data structure diagram of a compression directory (40) used in the compression directory device of FIG.

【図6】図4のビット圧縮ディレクトリ装置に使用する
ビット圧縮ディレクトリ(54)のデータ構造図。
6 is a data structure diagram of a bit compression directory (54) used in the bit compression directory device of FIG.

【図7】図1の装置における、キャッシュメモリ(3
0)、圧縮ディレクトリ(40)、ビット圧縮ディレク
トリ(54)内のデータの具体例を示す図。
7 is a diagram illustrating a cache memory (3
0), the compression directory (40), and a diagram showing a specific example of data in the bit compression directory (54).

【図8】図1の装置における、キャッシュメモリ(3
0)、圧縮ディレクトリ(40)、ビット圧縮ディレク
トリ(54)内のデータの他の具体例を示す図。
FIG. 8 is a diagram showing a cache memory (3
0), the compression directory (40), and a diagram showing another specific example of the data in the bit compression directory (54).

【図9】図1の装置における、キャッシュメモリ(3
0)、圧縮ディレクトリ(40)、ビット圧縮ディレク
トリ(54)内のデータのさらに他の具体例を示す図。
9 is a diagram showing a cache memory (3
0), the compression directory (40), and a diagram showing still another specific example of the data in the bit compression directory (54).

【図10】図1の装置の各プロセッサエレメントにおけ
るビット圧縮ディレクトリ(54、55、56)と他の
プロセッサエレメントとの関係を示す図。
10 is a diagram showing the relationship between the bit compression directories (54, 55, 56) in each processor element of the apparatus of FIG. 1 and other processor elements.

【図11】本発明の実施例2によるマルチプロセッサシ
ステムに使用する圧縮ディレクトリ装置(12)の概略
回路構成図。
FIG. 11 is a schematic circuit configuration diagram of a compressed directory device (12) used in a multiprocessor system according to a second embodiment of the present invention.

【図12】本発明の実施例2によるマルチプロセッサシ
ステムに使用するビット圧縮ディレクトリ装置(13)
の概略回路構成図。
FIG. 12 is a bit compression directory device (13) used in a multiprocessor system according to a second embodiment of the present invention.
FIG.

【図13】本発明の実施例3によるマルチプロセッサシ
ステムに使用する圧縮ディレクトリ装置(12)の概略
回路構成図。
FIG. 13 is a schematic circuit configuration diagram of a compressed directory device (12) used in a multiprocessor system according to a third embodiment of the present invention.

【図14】本発明の実施例3によるマルチプロセッサシ
ステムに使用するビット圧縮ディレクトリ装置(13)
の概略回路構成図。
FIG. 14 is a bit compression directory device (13) used in a multiprocessor system according to a third embodiment of the present invention.
FIG.

【図15】本発明の実施例4によるマルチプロセッサシ
ステムに使用する圧縮ディレクトリ装置(12)の概略
回路構成図。
FIG. 15 is a schematic circuit configuration diagram of a compressed directory device (12) used in a multiprocessor system according to a fourth embodiment of the present invention.

【図16】本発明の実施例4によるマルチプロセッサシ
ステムに使用するビット圧縮ディレクトリ装置(13)
の概略回路構成図。
FIG. 16 is a bit compression directory device (13) used in a multiprocessor system according to a fourth embodiment of the present invention.
FIG.

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

1…共有バス、40、46、60…圧縮ディレクトリ、
54から56、81から83…ビット圧縮ディレクト
リ。
1 ... Shared bus, 40, 46, 60 ... Compressed directory,
54 to 56, 81 to 83 ... Bit compression directory.

Claims (17)

【特許請求の範囲】[Claims] 【請求項1】複数のプロセッサエレメントと、 該複数のプロセッサエレメントに共有される記憶装置と
を有し、 各プロセッサエレメントは、プロセッサと、該記憶装置
に保持された第1のサイズの複数のブロックを保持する
キャッシュとを有するマルチプロセッサシステムにおい
て、 上記記憶装置を構成する、上記第1のサイズより大きい
第2のサイズを有する複数の単位領域の内、いずれかの
プロセッサエレメントにキャッシングされている少なく
とも一つのブロックを有する複数の単位領域およびそれ
ぞれの単位領域に対する当該他のプロセッサエレメント
とを少なくとも識別するための情報を含む第1のディレ
クトリを記憶し、 いずれかの第1のプロセッサエレメント内のプロセッサ
により発行された、上記記憶装置に対するアクセス要求
に応答して、上記第1のディレクトリの情報に基づき、
そのアクセス要求が指定するアドレスのデータが属する
特定の単位領域内のいずれかのブロックをキャッシング
している第2のプロセッサエレメントがあるか否かを検
出し、 該第2のプロセッサエレメントが検出されたとき、キャ
ッシュ間コヒーレンス維持のための特定の処理の実行要
求を、その検出された第2のプロセッサエレメントに対
して選択的に送出し、 上記第2のプロセッサエレメントでは、そのプロセッサ
エレメント内の第2のキャッシュに上記アクセス要求が
指定するアドレスを有する特定のブロックが現に存在す
るか否かのヒットチェックを行ない、 そのヒットチェックの結果、該第2のキャッシュに上記
特定のブロックが現に存在すると判明した場合、その要
求された特定の処理を該第2のキャッシュに対して実行
するキャッシュ制御方法。
1. A processor having a plurality of processor elements and a storage device shared by the plurality of processor elements, each processor element having a processor and a plurality of blocks of a first size held in the storage device. In a multiprocessor system having a cache for holding at least one of a plurality of unit areas having a second size larger than the first size and configuring the storage device, at least one of the processor elements is cached. A first directory containing information for at least identifying a plurality of unit areas having one block and the other processor elements for the respective unit areas, and storing a first directory by a processor in any one of the first processor elements. Access to the storage device issued In response to the request for the database, based on the information in the first directory,
It is detected whether or not there is a second processor element that is caching any block in a specific unit area to which the data of the address specified by the access request belongs, and the second processor element is detected. At this time, a request to execute a specific process for maintaining the coherence between caches is selectively sent to the detected second processor element, and in the second processor element, the second processor element in the second processor element It is hit-checked whether a specific block having the address specified by the access request actually exists in the cache of the above, and as a result of the hit check, it is found that the specific block actually exists in the second cache. If this is the case, the requested specific processing is executed for the second cache. Yasshu control method.
【請求項2】各プロセッサエレメントに対応する情報と
して、上記記憶装置を構成する上記複数の単位領域の
内、その対応するプロセッサエレメントにキャッシング
されている少なくとも一つのブロックを有する複数の単
位領域およびそれぞれの単位領域に属し、それらのキャ
ッシングされているブロックの数を少なくとも識別する
情報を含む第2のディレクトリを記憶し、 上記アクセス要求を実行した結果、上記第1のプロセッ
サエレメントにキャッシングされたブロックが変更され
た場合、その変更に依存してその特定のプロセッサエレ
メントに関連する、上記第2のディレクトリ内の情報を
更新し、 その特定のプロセッサエレメントに関連する、更新前の
第2のディレクトリ内の情報と更新後の第2のディレク
トリ内の情報とに基づいて、その特定のプロセッサエレ
メントの上記キャッシングされたブロックが属する複数
の単位領域の少なくとも一つが変更されたか否かを判別
し、 その特定のプロセッサエレメントにキャッシングされた
ブロックを有する上記複数の単位領域の少なくとも一つ
が変更された場合、上記第1のディレクトリ内の、当該
特定のプロセッサエレメントに関連する情報を変更する
ステップをさらに有する請求項1記載のキャッシュ制御
方法。
2. As information corresponding to each processor element, a plurality of unit areas having at least one block cached in the corresponding processor element among the plurality of unit areas constituting the storage device, and respectively. Storing a second directory containing information identifying at least the number of cached blocks belonging to the unit area of the block, and as a result of executing the access request, the cached blocks are stored in the first processor element. When changed, the information in the second directory related to the specific processor element is updated depending on the change, and the information in the second directory before the update related to the specific processor element is updated. Based on the information and the information in the updated second directory. Determine whether or not at least one of the plurality of unit areas to which the cached block of the specific processor element belongs has been changed, and the plurality of unit areas of the plurality of unit areas having the cached block in the particular processor element are determined. The cache control method according to claim 1, further comprising a step of changing information related to the specific processor element in the first directory when at least one is changed.
【請求項3】上記第1のディレクトリは、各プロセッサ
エレメント内に設けられ、それぞれそのプロセッサエレ
メント以外の他のプロセッサエレメントでのキャッシン
グに関する情報を有する複数のディレクトリからなり、 上記第2のディレクトリは、各プロセッサエレメント内
に分散して設けられ、それぞれそのプロセッサエレメン
トに関する情報を有する複数のディレクトリからなり、 上記第2のプロセッサエレメントの検出は、上記第1の
プロセッサエレメント内に設けられた、他のプロセッサ
エレメントに関する上記第1のディレクトリに基づいて
該第1のプロセッサエレメント内で行なわれ、 該第2のプロセッサエレメントが検出されたとき、キャ
ッシュ間コヒーレンス維持のための特定の処理の実行要
求は、上記第1のプロセッサエレメントから上記第2の
プロセッサエレメントに対して選択的に送出され、 上記第1のプロセッサエレメント内のキャッシュに保持
されたブロックが変更された場合の、その変更に依存す
る、そのプロセッサエレメント内の上記第1のディレク
トリ情報の更新は、第1のプロセッサエレメント内で行
なわれ、 上記キャッシュに保持された複数の上記単位領域の少な
くとも一つが変更された場合における、上記第1のプロ
セッサエレメント以外の他のプロセッサエレメントにお
ける、上記第1のプロセッサエレメントに関する、該第
2のディレクトリの更新では、 第1のプロセッサエレメントから他のプロセッサエレメ
ントに該単位領域の変更を通知し、 上記通知を受けた他のプロセッサエレメントにおいて、
当該他のプロセッサエレメントに保持された第2のディ
レクトリ情報の内、その変更された上単位領域に関する
情報をその通知に基づいて変更する請求項2記載のキャ
ッシュ制御方法。
3. The first directory is provided in each processor element, and comprises a plurality of directories each having information relating to caching by another processor element other than the processor element, and the second directory comprises: Each processor element is provided in a distributed manner and comprises a plurality of directories each having information about the processor element. Detection of the second processor element is performed by another processor provided in the first processor element. When the second processor element is detected in the first processor element based on the first directory regarding the element and the second processor element is detected, a request for executing a specific process for maintaining inter-cache coherence is issued. Process 1 If a block selectively sent from the sub-element to the second processor element and held in the cache in the first processor element is changed, depending on the change, The update of the first directory information is performed in the first processor element, and other than the first processor element when at least one of the plurality of unit areas held in the cache is changed. In updating the second directory for the first processor element in the processor element of, the first processor element notifies another processor element of the change of the unit area, and the other processor receiving the notification In the element,
3. The cache control method according to claim 2, wherein, of the second directory information held in the other processor element, information regarding the changed upper unit area is changed based on the notification.
【請求項4】上記第2のプロセッサエレメントでは、そ
のプロセッサエレメント内の上記第2のキャッシュに上
記アクセス要求が指定するアドレスを有する特定のブロ
ックが現に存在するか否かのヒットチェックを行ない、 そのヒットチェックの結果、該第2のキャッシュに上記
特定のブロックが現に存在すると判明した場合、その要
求された特定の処理を該第2のキャッシュに対して実行
し、該第2のキャッシュの上記特定のブロックが存在し
ないと判明した場合、その要求された特定の処理の実行
を中止する請求項3記載のキャッシュ制御方法。
4. The second processor element performs a hit check as to whether or not a specific block having an address designated by the access request actually exists in the second cache in the processor element, If it is found as a result of the hit check that the specific block actually exists in the second cache, the requested specific process is executed for the second cache, and the specific block of the second cache is specified. 4. The cache control method according to claim 3, wherein the execution of the requested specific processing is stopped when it is determined that the block of <1> does not exist.
【請求項5】上記第2のサイズと上記第1のサイズの比
は上記複数のプロセッサエレメントの総数の2倍以上で
ある請求項3記載のキャッシュ制御方法。
5. The cache control method according to claim 3, wherein the ratio of the second size to the first size is at least twice the total number of the plurality of processor elements.
【請求項6】複数のプロセッサエレメントと、 該複数のプロセッサエレメントに共有される記憶装置と
を有し、 各プロセッサエレメントは、プロセッサと、該記憶装置
に保持された第1のサイズの複数のブロックを保持する
キャッシュとを有するマルチプロセッサシステムにおい
て、 各プロセッサエレメント内に、上記記憶装置を構成す
る、上記第1のサイズより大きい第2のサイズを有する
複数の単位領域の内、そのプロセッサエレメント以外の
他のプロセッサエレメントにキャッシングされている少
なくとも一つのブロックを有する複数の単位領域および
それぞれの単位領域に対する当該他のプロセッサエレメ
ントとを少なくとも識別するための第1のディレクトリ
情報を記憶し、 いずれかの第1のプロセッサエレメント内のプロセッサ
により発行された、上記記憶装置に対するアクセス要求
に応答して、その第1のプロセッサエレメント内に設け
られた上記第1のディレクトリ情報に基づき、そのアク
セス要求が指定するアドレスのデータが属する特定の単
位領域内のいずれかのブロックをキャッシングしている
第2のプロセッサエレメントがあるか否かを、その第1
のプロセッサエレメントにおいて検出し、 該第2のプロセッサエレメントが検出されたとき、上記
アクセス要求の種別と上記第1のヒットチェックの結果
に依存する、キャッシュ間コヒーレンス維持のための特
定の処理の実行要求を、その検出された第2のプロセッ
サエレメントに対してその第1のプロセッサエレメント
から選択的に送出し、 上記第2のプロセッサエレメントにおいて、上記ブロッ
クをキャッシングしているか否かの第2のヒットチェッ
クを行ない、 上記第2のヒットチェックの結果、上記第2のプロセッ
サエレメントが上記ブロックをキャッシングしていると
判明した場合には、その要求された特定の処理をその第
2のプロセッサエレメントに含まれる第2のキャッシュ
に対して実行するキャッシュ制御方法。
6. A processor having a plurality of processor elements and a storage device shared by the plurality of processor elements, each processor element having a processor and a plurality of blocks of a first size held in the storage device. In a multiprocessor system having a cache for holding a plurality of unit areas having a second size larger than the first size and configuring the storage device in each processor element, other than the processor element Storing a plurality of unit areas having at least one block cached in another processor element and first directory information for at least identifying the other processor element with respect to each unit area; Processor in one processor element In response to the access request to the storage device issued by the server, based on the first directory information provided in the first processor element, the specific data to which the address specified by the access request belongs is specified. Whether or not there is a second processor element that is caching any block in the unit area
Request for execution of a specific process for maintaining inter-cache coherence depending on the type of the access request and the result of the first hit check when the second processor element is detected. Is selectively transmitted from the first processor element to the detected second processor element, and a second hit check is performed to determine whether or not the block is cached in the second processor element. If the second hit check reveals that the second processor element is caching the block, the requested specific processing is included in the second processor element. A cache control method executed for the second cache.
【請求項7】上記第2のサイズと上記第1のサイズの比
は上記複数のプロセッサエレメントの総数の2倍以上で
ある請求項6記載のキャッシュ制御方法。
7. The cache control method according to claim 6, wherein the ratio of the second size to the first size is at least twice the total number of the plurality of processor elements.
【請求項8】上記検出の結果、上記他の第2のプロセッ
サエレメントとして、複数の他のプロセッサエレメント
が検出された場合、上記処理の実行を、それらの検出さ
れた複数のプロセッサエレメントの各々に対して上記第
1のプロセッサエレメントから選択的に要求する請求項
6記載のキャッシュ制御方法。
8. When a plurality of other processor elements are detected as the other second processor element as a result of the detection, execution of the processing is performed on each of the detected plurality of processor elements. 7. The cache control method according to claim 6, wherein a request is selectively made from said first processor element.
【請求項9】上記アクセス要求が要求する処理が、上記
特定の処理の実行後に実行されるべきである場合には、
上記第2のプロセッサエレメントでの上記特定の処理の
実行が終了するまで上記アクセス要求で要求される上記
処理を上記第1のプロセッサエレメントで実行するのを
遅延するステップをさらに有する請求項6または8記載
のキャッシュ制御方法。
9. If the processing requested by the access request should be executed after execution of the specific processing,
9. The method according to claim 6, further comprising delaying execution of the processing requested by the access request by the first processor element until execution of the specific processing by the second processor element is completed. The described cache control method.
【請求項10】上記第2のヒットチェックの結果、上記
第2のプロセッサエレメントが上記特定のブロックをキ
ャッシングしていないと判明した場合には、上記第2の
プロセッサエレメントから上記第1のプロセッサエレメ
ントに、上記特定の処理の実行の終了もしくは中止を通
知し、 上記アクセス要求が要求する処理が、上記特定の処理の
実行後に実行されるべきである場合には、上記第2のプ
ロセッサエレメントから上記特定の処理の実行の終了も
しくは中止が通知がなされるまで、上記アクセス要求で
要求される上記処理を上記第1のプロセッサエレメント
で実行するのを遅延する請求項6記載のキャッシュ制御
方法。
10. When the second hit check reveals that the second processor element is not caching the specific block, the second processor element changes from the first processor element to the first processor element. Is notified of the end or cancellation of the execution of the specific processing, and when the processing requested by the access request should be executed after the execution of the specific processing, 7. The cache control method according to claim 6, wherein the execution of the processing requested by the access request is delayed until the end or cancellation of execution of the specific processing is notified.
【請求項11】各プロセッサエレメント内に、上記記憶
装置に保持され、上記第1のサイズより大きい複数の単
位領域の内、そのプロセッサエレメント内のキャッシュ
に保持されている少なくとも一つのブロックを有する複
数の単位領域およびそれぞれの単位領域に属し、そのキ
ャッシュに現に保持されているブロックの数を少なくと
も識別するための第2のディレクトリ情報を記憶し、 いずれかのプロセッサエレメント内のキャッシュに保持
されたブロックが変更された場合、その変更に依存して
そのプロセッサエレメント内の上記第2のディレクトリ
情報を更新し、 更新前の第1のディレクトリ情報と更新後の第1のディ
レクトリ情報とに基づいて、そのプロセッサエレメント
内の上記キャッシュに保持されたブロックが属する複数
の単位領域の少なくとも一つが変更されたか否かを判別
し、 上記キャッシュに保持された複数の単位領域の少なくと
も一つが変更された場合、その単位領域の変更を他のプ
ロセッサエレメントに通知し、 上記通知を受けた他のプロセッサエレメントでは、当該
他のプロセッサエレメントに保持された第1のディレク
トリ情報の内、その変更された単位領域に関する情報
を、その通知に基づいて変更するステップをさらに有す
る請求項6記載のキャッシュ制御方法。
11. A plurality of processor elements each having at least one block held in the storage device and held in a cache in the processor element among a plurality of unit areas larger than the first size in each processor element. Of the unit area of each processor area and second directory information for identifying at least the number of blocks currently held in the cache, and the block held in the cache in any of the processor elements. Is changed, the second directory information in the processor element is updated depending on the change, and the second directory information is updated based on the first directory information before update and the first directory information after update. A plurality of blocks to which the cache held in the processor element belongs It is determined whether at least one of the unit areas has been changed, and when at least one of the plurality of unit areas held in the cache has been changed, the change of the unit area is notified to another processor element, and the notification is given. 7. The other processor element that has received the information further includes a step of changing information about the changed unit area in the first directory information held in the other processor element based on the notification. The described cache control method.
【請求項12】複数のプロセッサエレメントと、 該複数のプロセッサエレメントに共有される記憶装置と
を有し、 各プロセッサエレメントは、プロセッサと、該記憶装置
に保持された第1のサイズの複数のブロックを保持する
キャッシュとを有するマルチプロセッサシステムにおい
て、 各プロセッサエレメント内に、上記記憶装置に保持さ
れ、上記第1のサイズより大きい複数の単位領域の内、
そのプロセッサエレメント以外の他のプロセッサエレメ
ント内のキャッシュに保持されている少なくとも一つの
ブロックを有する複数の単位領域および当該他のプロセ
ッサエレメントとを少なくとも識別するためのディレク
トリ情報を記憶し、 いずれかの第1のプロセッサエレメント内のプロセッサ
により発行された上記記憶装置に対するアクセス要求に
応答して、そのアクセス要求が指定するアドレスのブロ
ックについて、上記第1のプロセッサエレメントに含ま
れた第1のキャッシュに対して第1のヒットチェックを
行ない、 上記ディレクトリ情報を基に、上記アドレスのデータが
属する単位領域内のいずれかのブロックを保持している
第2のキャッシュを有する第2のプロセッサエレメント
があるか否かを検出し、 該第2のプロセッサエレメントが検出されたとき、上記
アクセス要求の種別と上記第1のヒットチェックの結果
に依存する、キャッシュ間コヒーレンス維持のための特
定の処理の実行要求を、その検出された第2のプロセッ
サエレメントに対して選択的に送出し、 上記第2のプロセッサエレメントにおいて、上記第2の
キャッシュに上記ブロックが現に存在するか否かの第2
のヒットチェックを行ない、 その第2のヒットチェックの結果、該他のキャッシュに
上記特定のブロックが現に存在すると判明した場合に
は、その要求された特定の処理を該第2のキャッシュに
対して実行し、その第2のヒットチェックの結果、該第
2のキャッシュの上記特定のブロックが存在しない場
合、その要求された特定の処理の実行を中止し、 上記第2のプロセッサエレメントから上記第1のプロセ
ッサエレメントに、上記特定の処理の実行の終了もしく
は中止を通知し、 上記アクセス要求が要求する処理が、上記特定の処理の
実行後に実行されるべきである場合には、上記第2のプ
ロセッサエレメントから上記特定の処理の実行の終了も
しくは中止が通知がなされるまで、上記アクセス要求で
要求される上記処理を上記第1のプロセッサエレメント
で実行するのを遅延するキャッシュ制御方法。
12. A processor having a plurality of processor elements and a storage device shared by the plurality of processor elements, each processor element having a processor and a plurality of blocks of a first size held in the storage device. In a multiprocessor system having a cache for holding, a plurality of unit areas held in the storage device and larger than the first size in each processor element,
A plurality of unit areas having at least one block held in a cache in a processor element other than the processor element and directory information for at least identifying the other processor element are stored, and any one of In response to an access request to the storage device issued by the processor in one processor element, for the block of the address specified by the access request, to the first cache included in the first processor element. Whether or not there is a second processor element that performs a first hit check and has a second cache that holds any block in the unit area to which the data of the above address belongs based on the above directory information Is detected and the second processor When an element is detected, a request to execute a specific process for maintaining inter-cache coherence, which depends on the type of the access request and the result of the first hit check, is sent to the detected second processor element. Selectively sending to the second processor element, the second processor element determines whether or not the block currently exists in the second cache.
If the second hit check reveals that the specific block actually exists in the other cache, the requested specific processing is performed on the second cache. If the specified block of the second cache does not exist as a result of the second hit check, the execution of the requested specific process is stopped, and the second processor element executes the first process. When the processing requested by the access request is to be executed after the execution of the specific processing, the second processor is notified of the end or cancellation of the execution of the specific processing. Until the element notifies the end or cancellation of the execution of the specific processing, the processing requested by the access request is performed by the first program. Cache control method to delay to run on processor element.
【請求項13】上記他の第2のプロセッサエレメントと
して、複数の他のプロセッサエレメントが検出された場
合、上記処理の実行を、それらの検出された複数のプロ
セッサエレメントの各々に対して選択的に要求し、 上記第1のプロセッサエレメントにおいて、上記検出さ
れた複数のプロセッサエレメントの各々から上記通知が
なされるまで、上記アクセス要求が要求する上記処理の
実行を遅延する請求項12記載のキャッシュ制御方法。
13. When a plurality of other processor elements are detected as the other second processor element, execution of the processing is selectively performed for each of the detected plurality of processor elements. 13. The cache control method according to claim 12, wherein a request is made, and in the first processor element, execution of the processing requested by the access request is delayed until the notification is made from each of the plurality of detected processor elements. .
【請求項14】複数のプロセッサエレメントと、 該複数のプロセッサエレメントに共有される共有記憶装
置とを有し、 各プロセッサエレメントは、 プロセッサと、 その記憶装置に対するキャッシュと、 該キャッシュに保持されるブロックのサイズより大きい
サイズを有する、該記憶装置の複数の単位領域の各々に
対応して、その単位領域内に属し、かつ、該キャッシュ
に登録されているブロックの個数を示す第1のディレク
トリ情報を保持する第1のテーブルと、 他のプロセッサエレメントごとに設けられ、該記憶装置
の該複数の単位領域に対して該他のプロセッサエレメン
ト内の上記第1のディレクトリ情報が保持するブロック
数が0か否かを示す第2のディレクトリ情報を保持する
第2のテーブルと、 該キャッシュに登録済みのブロックの変化に応じて該第
1のディレクトリ情報を更新し、該第1のディレクトリ
情報の更新に応じて、対応する登録済みのブロック数が
0から1もしくは1から0に変更された単位領域を検出
し、検出された単位領域を他のプロセッサエレメントに
通知する第1のディレクトリ管理回路と、 他のプロセッサエレメントの上記ディレクトリ管理回路
からの単位領域の通知に応答して、該他のプロセッサエ
レメントに対応して設けられた上記第2のディレクトリ
情報の内、その通知された単位領域に対する登録済みの
ブロック数を更新する第2のディレクトリ管理回路と、 該プロセッサから発行された該記憶装置に対するアクセ
ス要求に応答して、他プロセッサエレメントに対応して
設けられた該第2のディレクトリ情報を検索し、そのア
クセス要求が指定するアドレスが属する単位領域に対応
する、該第2のディレクトリ情報に含まれた情報に基づ
いて、該他プロセッサエレメントに対してコヒーレンス
制御のための特定の処理の実行を要求するべきか否かを
判定する回路と、 上記判定回路の判定の結果に従って、該特定の処理を他
のプロセッサエレメントに要求するか否かを制御する回
路とを有するマルチプロセッサシステム。
14. A processor having a plurality of processor elements and a shared storage device shared by the plurality of processor elements, each processor element including a processor, a cache for the storage device, and a block held in the cache. Corresponding to each of a plurality of unit areas of the storage device having a size larger than the size of the first storage area, the first directory information indicating the number of blocks registered in the cache and belonging to the unit area is stored. A first table to be held, and whether the number of blocks held by the first directory information in the other processor element is 0 for the plurality of unit areas of the storage device, which is provided for each other processor element. A second table that holds the second directory information that indicates whether or not the block has been registered in the cache. Unit area in which the first directory information is updated according to a change in the number of registered blocks, and the corresponding number of registered blocks is changed from 0 to 1 or from 1 to 0 according to the update of the first directory information. In response to the notification of the unit area from the directory management circuit of the other processor element, the first directory management circuit detecting the detected unit area and notifying the other processor element of the detected unit area. A second directory management circuit for updating the number of registered blocks for the notified unit area in the second directory information provided corresponding to the above, and an access to the storage device issued from the processor. In response to the request, the second directory information provided corresponding to the other processor element is searched and its access is searched. Should the other processor element be requested to execute a specific process for coherence control based on the information contained in the second directory information corresponding to the unit area to which the address specified by the request belongs? A multiprocessor system comprising: a circuit for determining whether or not there is a circuit, and a circuit for controlling whether or not the specific processing is requested to another processor element according to the result of the determination by the determination circuit.
【請求項15】該第1のディレクトリ情報は、該記憶装
置の全領域を一定長のサイズで分割して得られる複数の
単位領域の各々に関する、キャッシュに登録済みのブロ
ック数を含む請求項14記載のマルチプロセッサシステ
ム。
15. The first directory information includes the number of blocks registered in the cache for each of a plurality of unit areas obtained by dividing the entire area of the storage device by a size of a fixed length. The described multiprocessor system.
【請求項16】該第1のディレクトリ情報は、該記憶装
置の該複数の単位領域の内、現にキャッシュに登録済み
のブロックを有する一部の複数の単位領域の各々に関す
る、該キャッシュに登録済みのブロック数を含み、上記
一部の複数の単位領域以外の単位領域に関する、キャッ
シュに登録済みのブロック数を含まない請求項14記載
のマルチプロセッサシステム。
16. The first directory information is registered in the cache for each of a plurality of unit areas having blocks currently registered in the cache among the plurality of unit areas of the storage device. 15. The multiprocessor system according to claim 14, wherein the number of blocks registered in the cache is not included in the unit areas other than the some of the plurality of unit areas.
【請求項17】該第1のディレクトリ情報は、該記憶装
置の該複数の単位領域の内、該プロセッサ内のTLBに
登録された一部の複数の単位領域の各々に関する、キャ
ッシュに登録済みのブロック数を含み、上記一部の複数
の単位領域以外の単位領域に関する、キャッシュに登録
済みのブロック数を含まない請求項14記載のマルチプ
ロセッサシステム。
17. The first directory information is registered in a cache for each of a plurality of unit areas registered in a TLB in the processor among the plurality of unit areas in the storage device. 15. The multiprocessor system according to claim 14, wherein the multiprocessor system includes the number of blocks and does not include the number of blocks registered in the cache regarding unit areas other than the some of the plurality of unit areas.
JP7060813A 1995-03-20 1995-03-20 Cache control method and multiprocessor system using the same Pending JPH08263374A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7060813A JPH08263374A (en) 1995-03-20 1995-03-20 Cache control method and multiprocessor system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7060813A JPH08263374A (en) 1995-03-20 1995-03-20 Cache control method and multiprocessor system using the same

Publications (1)

Publication Number Publication Date
JPH08263374A true JPH08263374A (en) 1996-10-11

Family

ID=13153174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7060813A Pending JPH08263374A (en) 1995-03-20 1995-03-20 Cache control method and multiprocessor system using the same

Country Status (1)

Country Link
JP (1) JPH08263374A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US6901450B1 (en) 2000-09-22 2005-05-31 Hitachi, Ltd. Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors
JP2005250830A (en) * 2004-03-04 2005-09-15 Hitachi Ltd Processor and main memory shared multiprocessor
WO2012008008A1 (en) * 2010-07-12 2012-01-19 富士通株式会社 Information processing system
JP2021507437A (en) * 2017-12-18 2021-02-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated Space-based directory scheme to accommodate large cache sizes

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US6901450B1 (en) 2000-09-22 2005-05-31 Hitachi, Ltd. Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors
JP2005250830A (en) * 2004-03-04 2005-09-15 Hitachi Ltd Processor and main memory shared multiprocessor
WO2012008008A1 (en) * 2010-07-12 2012-01-19 富士通株式会社 Information processing system
JP2021507437A (en) * 2017-12-18 2021-02-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated Space-based directory scheme to accommodate large cache sizes
US11809322B2 (en) 2017-12-18 2023-11-07 Advanced Micro Devices, Inc. Region based directory scheme to adapt to large cache sizes

Similar Documents

Publication Publication Date Title
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US10248572B2 (en) Apparatus and method for operating a virtually indexed physically tagged cache
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
EP0349122B1 (en) Method and apparatus for filtering invalidate requests
US8782348B2 (en) Microprocessor cache line evict array
US8495308B2 (en) Processor, data processing system and method supporting a shared global coherency state
US5539895A (en) Hierarchical computer cache system
US7500065B2 (en) Data processing system and method for efficient L3 cache directory management
EP0780770A1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US20100217937A1 (en) Data processing apparatus and method
US8700863B2 (en) Computer system having a cache memory and control method of the same
US6711653B1 (en) Flexible mechanism for enforcing coherency among caching structures
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
US6560681B1 (en) Split sparse directory for a distributed shared memory multiprocessor system
KR20030097871A (en) Method and system for speculatively invalidating lines in a cache
US20090216947A1 (en) System, method and processor for accessing data after a translation lookaside buffer miss
JPH0962572A (en) Device and method for stream filter
US7496730B2 (en) System and method for reducing the number of translation buffer invalidates an operating system needs to issue
US7590804B2 (en) Pseudo least recently used replacement/allocation scheme in request agent affinitive set-associative snoop filter
US10983914B2 (en) Information processing apparatus, arithmetic processing device, and method for controlling information processing apparatus
JPH04230549A (en) Multilevel cache
US20050091459A1 (en) Flexible mechanism for enforcing coherency among caching structures
JP2007533014A (en) System and method for canceling write back processing when snoop push processing and snoop kill processing occur simultaneously in write back cache
JPH08263374A (en) Cache control method and multiprocessor system using the same
JPH0816474A (en) Multiprocessor system