JP2852247B2 - Shared memory multiprocessor system - Google Patents

Shared memory multiprocessor system

Info

Publication number
JP2852247B2
JP2852247B2 JP8157309A JP15730996A JP2852247B2 JP 2852247 B2 JP2852247 B2 JP 2852247B2 JP 8157309 A JP8157309 A JP 8157309A JP 15730996 A JP15730996 A JP 15730996A JP 2852247 B2 JP2852247 B2 JP 2852247B2
Authority
JP
Japan
Prior art keywords
directory
store
cache
memory
shared memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP8157309A
Other languages
Japanese (ja)
Other versions
JPH103461A (en
Inventor
みどり 田草川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP8157309A priority Critical patent/JP2852247B2/en
Publication of JPH103461A publication Critical patent/JPH103461A/en
Application granted granted Critical
Publication of JP2852247B2 publication Critical patent/JP2852247B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は共有メモリ型マルチ
プロセッサシステムに関し、特にディレクトリ方式の共
有メモリ型マルチプロセッサシステムに関するものであ
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a shared memory type multiprocessor system, and more particularly to a directory type shared memory type multiprocessor system.

【0002】[0002]

【従来の技術】一つのシステムバスに、複数のストアイ
ンキャッシュ及び共有メモリが接続されているマルチプ
ロセッサシステム(一般に、クラスタと呼ばれる)を、
ディレクトリ方式で複数接続した共有メモリ型マルチプ
ロセッサシステムは既知の技術で実現されている。例え
ば、特開平2−12361号公報記載の階層化バスによ
る並列計算機システム、特開平4−291446号公報
記載のスケーラブルメモリ帯域を備えた緊密結合型多重
プロセッサなどがある。
2. Description of the Related Art A multiprocessor system (generally called a cluster) in which a plurality of store-in caches and shared memories are connected to one system bus,
A shared memory multiprocessor system in which a plurality of directories are connected by a directory method is realized by a known technique. For example, there are a parallel computer system using a hierarchical bus described in Japanese Patent Application Laid-Open No. 2-123361 and a tightly-coupled multiprocessor with a scalable memory band described in Japanese Patent Application Laid-Open No. 4-291446.

【0003】しかし、特開平2−12361号公報の技
術では、クラスタ間のストアインキャッシュのコヒーレ
ンシの保証の方法が開示されていない。また、特開平4
−291446号公報の技術ではクラスタ相互を接続す
るのにクロスバ(これに接続されている複数のクラスタ
のうち、任意の2つのクラスタ間の通信を可能にするス
イッチ)を用いており、更にストアインキャッシュのコ
ヒーレンシを保証するために、クラスタ内、クラスタ間
を問わず複数のストアインキャッシュ間で同一メモリブ
ロックを同時にキャッシング(キャッシュに貯蔵するこ
とをキャッシングするという。以下この用語を使用す
る。)しないように制御している。
However, the technique disclosed in Japanese Patent Application Laid-Open No. 2-136161 does not disclose a method for guaranteeing coherency of store-in-cache between clusters. In addition, Japanese Unexamined Patent Application Publication No.
In the technique of Japanese Patent Application Laid-Open No. 291446, a crossbar (a switch that enables communication between any two clusters among a plurality of clusters connected to the cluster) is used to connect the clusters. In order to guarantee cache coherency, the same memory block is not cached at the same time between a plurality of store-in caches in a cluster or between clusters. Control.

【0004】[0004]

【発明が解決しようとする課題】特開平2−12361
号公報記載の構成では、クラスタ間のストアインキャッ
シュのコヒーレンシの保証がとれないという欠点があ
る。また、特開平4−291446号公報記載の構成で
はクラスタ単体だけでも動作することができるシステム
を2つ接続した構成とする場合において、バス方式でな
くクロスバ方式を採用しているために、ハードウェア量
の増大を招くという欠点がある。更に、ストアインキャ
ッシュのコヒーレンシの保証のために、共有メモリのい
ずれのメモリブロックも同時期にはどれか1個のストア
インキャッシュにしかキャッシングできないように制御
される。このため、ストアインキャッシュでのヒット率
が低下し、システム全体の性能が低下するという欠点が
ある。
Problems to be Solved by the Invention
In the configuration described in Japanese Patent Application Laid-Open No. H10-157, there is a drawback that coherency of store-in cache between clusters cannot be guaranteed. In the configuration described in Japanese Patent Application Laid-Open No. 4-291446, when a configuration is used in which two systems that can operate only by a single cluster are connected, a crossbar system is used instead of a bus system. There is a disadvantage that the amount is increased. Further, in order to guarantee the coherency of the store-in cache, control is performed such that any memory block of the shared memory can be cached in only one store-in cache at the same time. For this reason, there is a disadvantage that the hit rate in the store-in cache is reduced, and the performance of the entire system is reduced.

【0005】そこで、本願出願人は、このような欠点を
解消した共有メモリ型マルチプロセッサシステムを特願
平7−102532号として出願している。このマルチ
プロセッサシステムにおいては、クラスタ内、クラスタ
間を問わず複数のストアインキャッシュ間で同一メモリ
ブロックを共有できるように制御するため、ストアイン
キャッシュのヒット率を向上でき、システム全体の性能
を向上することができる。
The applicant of the present application has filed a Japanese Patent Application No. 7-102532 for a shared memory type multiprocessor system which has solved such a disadvantage. In this multiprocessor system, the same memory block is controlled so that multiple store-in caches can be shared within a cluster or between clusters, so that the store-in cache hit rate can be improved and the overall system performance can be improved. can do.

【0006】しかしながら、上述した先願のマルチプロ
セッサシステムでは、他クラスタのストアインキャッシ
ュに保持された自クラスタ内の共有メモリのメモリブロ
ックアドレスをディレクトリ方式でディレクトリメモリ
に登録しているため、自クラスタ内の共有メモリブロッ
クアドレスのすべてをディレクトリに貯蔵しなければな
らない。そのため、ハードウェア量が大きくなり、また
共有メモリの容量を変化させたとき、それぞれに対応し
たディレクトリメモリを用意しなければならなかった。
However, in the above-mentioned multiprocessor system of the prior application, the memory block address of the shared memory in the own cluster held in the store-in cache of the other cluster is registered in the directory memory in a directory system. All of the shared memory block addresses in the IP must be stored in the directory. Therefore, when the amount of hardware becomes large and the capacity of the shared memory is changed, it is necessary to prepare a directory memory corresponding to each.

【0007】そこで、本発明は、上記先願を更に改良
し、ハードウェア量を著しく低減することが可能な共有
メモリ型マルチプロセッサシステムを提供することを目
的としたものである。
Accordingly, an object of the present invention is to provide a shared memory type multiprocessor system that can further improve the above-mentioned prior application and can significantly reduce the amount of hardware.

【0008】[0008]

【課題を解決するための手段】本発明は、上記目的を達
成するため、各々複数のプロセッサに接続されたストア
インキャッシュを有する複数の処理装置と、前記複数の
処理装置とシステムバスで接続された共有メモリとを備
えた2つのクラスタを有する共有メモリ型マルチプロセ
ッサシステムにおいて、他クラスタのストアインキャッ
シュに保持された自クラスタ内の共有メモリのブロック
アドレスのキーアドレスを登録するためのディレクトリ
メモリと、前記ディレクトリメモリを検索し、前記共有
メモリへのメモリアクセスリクエストのアドレスがキャ
ッシュヒットするか否かを判定する手段とを有すること
を特徴としている。
In order to achieve the above object, the present invention provides a plurality of processing units each having a store-in cache connected to a plurality of processors, and a plurality of processing units connected to the plurality of processing units by a system bus. A shared memory multiprocessor system having two clusters with a shared memory and a directory memory for registering a key address of a block address of a shared memory in the own cluster held in a store-in cache of another cluster; Means for searching the directory memory and determining whether an address of a memory access request to the shared memory has a cache hit.

【0009】[0009]

【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。図1は本発明の一実
施形態を示したブロック図である。図1において、20
0及び201は各々クラスタである。クラスタ200
は、4つの処理装置230〜233とこれにシステムバ
ス250で接続された共有メモリ240、ディレクトリ
260からなっている。処理装置230〜233は、そ
れぞれ4つのプロセッサ(以下、EPUという)210
〜213とこの4つのEPUに各々接続されたストアイ
ンキャッシュ220〜223から構成されている。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a block diagram showing an embodiment of the present invention. In FIG.
0 and 201 are clusters, respectively. Cluster 200
Is composed of four processing devices 230 to 233, a shared memory 240 connected to the processing devices via a system bus 250, and a directory 260. The processing units 230 to 233 each include four processors (hereinafter, referred to as EPUs) 210.
To 213 and store-in caches 220 to 223 connected to the four EPUs.

【0010】また、他方のクラスタ201も全く同様の
構成であり、4つの処理装置234〜237とこれにシ
ステムバス251で接続された共有メモリ241、ディ
レクトリ261からなっている。処理装置234〜23
7は、それぞれ4つのEPU214〜217とこの4つ
のEPUに各々接続されたストアインキャッシュ224
〜227から構成されている。
The other cluster 201 has exactly the same configuration, and includes four processing devices 234 to 237, a shared memory 241 connected to the processing devices 234 through a system bus 251, and a directory 261. Processing devices 234 to 23
Reference numeral 7 denotes four EPUs 214 to 217 and a store-in cache 224 connected to each of the four EPUs.
To 227.

【0011】図2は図1のクラスタ201内のディレク
トリ261を詳細に示したブロック図である。なお、デ
ィレクトリ260についてもディレクトリ261と全く
同じ構成である。図2において、100はディレクトリ
メモリ271を制御するディレクトリメモリ制御回路で
あり、他クラスタのディレクトリ260から自クラスタ
内の共有メモリ241へのメモリアクセスリクエスト、
自クラスタ内のシステムバス251から自クラスタ内の
共有メモリ241へのメモリアクセスリクエストなどの
リクエストコードとアドレスを受け付け、ディレクトリ
メモリ271の制御を行う。
FIG. 2 is a block diagram showing in detail the directory 261 in the cluster 201 of FIG. The directory 260 has the same configuration as the directory 261. In FIG. 2, reference numeral 100 denotes a directory memory control circuit that controls the directory memory 271, and requests a memory access from the directory 260 of another cluster to the shared memory 241 in the own cluster.
A request code and an address such as a memory access request from the system bus 251 in the own cluster to the shared memory 241 in the own cluster are received, and the directory memory 271 is controlled.

【0012】図3にディレクトリメモリ271のフォー
マットを示している。ディレクトリメモリ271は、他
クラスタのストアインキャッシュ220〜223に保持
された自クラスタ内の共有メモリ241のメモリブロッ
クのキーアドレス300、そのアドレスが有効であるこ
とを示す有効ビット301、そのアドレスのメモリブロ
ックが他クラスタのEPU210〜213による書き込
みで更新されていることを示す更新ビット302を格納
する複数のコンパートメントからなっていて、各々のコ
ンパートメントにキーアドレス300、有効ビット30
1、更新ビット302が格納されている。
FIG. 3 shows the format of the directory memory 271. The directory memory 271 includes a key address 300 of a memory block of the shared memory 241 in the own cluster held in the store-in caches 220 to 223 of another cluster, a valid bit 301 indicating that the address is valid, and a memory of the address. The block comprises a plurality of compartments storing an update bit 302 indicating that the block has been updated by writing by the EPUs 210 to 213 of other clusters. Each compartment has a key address 300 and a valid bit 30.
1, an update bit 302 is stored.

【0013】102はヒット・ステータス判定回路であ
る。ヒット・ステータス判定回路102は、ディレクト
リメモリ271から読み出されたアドレスを検索し、メ
モリアクセスリクエストのアドレスがキャッシュヒット
するか否かを判定する。また詳しく後述するようにディ
レクトリメモリ271のキーアドレスの各々に付加され
ている有効ビットと更新ビットをもとにステータス判定
を行う。
Reference numeral 102 denotes a hit status determination circuit. The hit / status determination circuit 102 searches the address read from the directory memory 271 and determines whether or not the address of the memory access request has a cache hit. As will be described later in detail, status determination is performed based on the valid bit and the update bit added to each of the key addresses of the directory memory 271.

【0014】103はリクエスト差し替え回路であり、
ヒット・ステータス判定回路102の判定結果に基づい
てリクエストをアクセスしようとするメモリブロックの
ステータスに適したリクエストに差し替え、システムバ
ス251上またはディレクトリ260へリクエストを出
力する。104は追い出し制御回路であり、ヒット・ス
テータス判定回路102でキャッシュミスヒットと判定
された場合、ステータス判定結果に基づいてメモリアク
セスリクエストのアドレスを新たにディレクトリ271
に登録するために、既にディレクトリメモリ271に登
録されている同一セットアドレスのうちのいずれかを追
い出すように制御する。
Reference numeral 103 denotes a request replacement circuit.
Based on the determination result of the hit / status determination circuit 102, the request is replaced with a request suitable for the status of the memory block to be accessed, and the request is output to the system bus 251 or the directory 260. Reference numeral 104 denotes an eviction control circuit. When the hit / status determination circuit 102 determines that there is a cache mishit, the address of the memory access request is newly added to the directory 271 based on the status determination result.
In order to register any one of the same set addresses already registered in the directory memory 271, control is performed.

【0015】なお、本実施形態に用いるストアインキャ
ッシュにキャッシングされるメモリブロックのとりうる
状態を表1に示している。
Table 1 shows the possible states of the memory blocks cached in the store-in cache used in the present embodiment.

【0016】[0016]

【表1】 次に、図1を参照して本実施形態の基本となる動作につ
いて説明する。便宜的にクラスタ200の処理装置23
0のいずれかのEPUから共有メモリ240、または2
41をアクセスしようとした場合の動作について説明す
る。クラスタ200の他のEPU、及びクラスタ201
のEPUの場合も全く同様である。EPUからのリクエ
ストの種類に応じて、以下の4つの場合の基本動作に分
けて説明する。 (1)自クラスタのメモリ空間(共有メモリ240)に
対するリード (2)他クラスタのメモリ空間(共有メモリ241)に
対するリード (3)自クラスタのメモリ空間(共有メモリ240)に
対するライト (4)他クラスタのメモリ空間(共有メモリ241)に
対するライト まず、(1)の自クラスタのメモリ空間(共有メモリ2
40)に対するリードの場合の動作を説明する。以下、
1.1.所望のデータがストアインキャッシュ220内
にキャッシングされている場合と、1.2.所望のデー
タがストアインキャッシュ220内にキャッシングされ
ていない場合とに分けて説明する。
[Table 1] Next, the basic operation of the present embodiment will be described with reference to FIG. For convenience, the processing device 23 of the cluster 200
0 to the shared memory 240 or 2
The operation when trying to access 41 will be described. Other EPUs in cluster 200 and cluster 201
This is exactly the same for the EPU. The basic operation in the following four cases will be described according to the type of request from the EPU. (1) Read for the memory space of the own cluster (shared memory 240) (2) Read for the memory space of the other cluster (shared memory 241) (3) Write for the memory space of the own cluster (shared memory 240) (4) Other cluster First, write to the memory space (shared memory 241) of the own cluster (shared memory 2)
The operation in the case of a read for (40) will be described. Less than,
1.1. When the desired data is cached in the store-in cache 220, and 1.2. The case where the desired data is not cached in the store-in cache 220 will be described separately.

【0017】1.1.所望のデータがストアインキャッ
シュ220内にキャッシングされている場合、そのデー
タがEPUに返される。
1.1. If the desired data has been cached in the store-in cache 220, that data is returned to the EPU.

【0018】1.2.所望のデータがストアインキャッ
シュ220内にキャッシングされていない場合、ストア
インキャッシュ220はシステムバス250に対して共
有ブロックリードリクエスト(以下SBRという)を発
行する。このSBRに対するデータリプライが返ってき
たらこれをEPUに返すことになる。以下、1.2.
1.クラスタ200の他のストアインキャッシュがDE
状態でキャッシングしていた場合と、1.2.2.クラ
スタ200の他のストアインキャッシュがCE、または
CS状態でキャッシングしていた場合と、1.2.3.
クラスタ200の他のストアインキャッシュのどれもが
キャッシングしていない場合とに分けて説明する。
1.2. If the desired data is not cached in the store-in cache 220, the store-in cache 220 issues a shared block read request (SBR) to the system bus 250. When a data reply to this SBR is returned, this is returned to the EPU. Hereinafter, 1.2.
1. The other store-in cache of cluster 200 is DE
Caching in the state, and 1.2.2. When another store-in cache of the cluster 200 is caching in the CE or CS state, and 1.2.3.
A case where none of the other store-in caches of the cluster 200 is caching will be described separately.

【0019】1.2.1.クラスタ200の他のストア
インキャッシュがDE状態でキャッシングしていた場
合、そのストアインキャッシュがシステムバス250上
にデータリプライを行い、自身をCS状態にする。スト
アインキャッシュ220はデータを受け取り、CS状態
で登録し、EPUに返す。共有メモリ240もこのデー
タを受け取り、メモリの内容を更新する。
1.2.1. If another store-in cache in the cluster 200 is caching in the DE state, the store-in cache makes a data reply on the system bus 250 and puts itself in the CS state. The store-in cache 220 receives the data, registers it in the CS state, and returns it to the EPU. The shared memory 240 also receives this data and updates the contents of the memory.

【0020】1.2.2.クラスタ200の他のストア
インキャッシュがCEまたはCS状態でキャッシングし
ていた場合、CE状態のときはCS状態に更新する。共
有メモリ240がシステムバス250上にデータリプラ
イを行う。ストアインキャッシュ220はこのデータを
受け取り、CS状態で登録し、EPUに返す。
1.2.2. If another store-in cache of the cluster 200 is caching in the CE or CS state, the cache is updated to the CS state in the CE state. The shared memory 240 performs data reply on the system bus 250. The store-in cache 220 receives this data, registers it in the CS state, and returns it to the EPU.

【0021】1.2.3.クラスタ200の他のストア
インキャッシュのどれもがキャッシングしていない場
合、ディレクトリ260はディレクトリメモリ270を
検索する。以下、1.2.3.1.アドレスがディレク
トリメモリ270に登録されていない場合と、1.2.
3.2.アドレスがディレクトリメモリ270に登録さ
れており、かつ更新ビットが“0”である場合と、1.
2.3.3.アドレスがディレクトリメモリ270に登
録されており、更新ビットが“1”である場合とに分け
て説明する。
1.2.3. Directory 260 searches directory memory 270 if none of the other store-in caches of cluster 200 are caching. Hereinafter, 1.2.3.1. When the address is not registered in the directory memory 270;
3.2. When the address is registered in the directory memory 270 and the update bit is “0”;
2.3.3. The case where the address is registered in the directory memory 270 and the update bit is “1” will be described separately.

【0022】1.2.3.1.アドレスがディレクトリ
メモリ270に登録されていない場合は何もしない。こ
の時は共有メモリ240がシステムバス250上にデー
タリプライを行う。ストアインキャッシュ220はこの
データを受け取り、CE状態で登録し、EPUに返す。
1.2.3.1. If the address is not registered in the directory memory 270, nothing is performed. At this time, the shared memory 240 performs data reply on the system bus 250. The store-in cache 220 receives this data, registers it in the CE state, and returns it to the EPU.

【0023】1.2.3.2.アドレスがディレクトリ
メモリ270に登録されており、かつ更新ビットが
“0”の場合は何もしない。この時は共有メモリ240
がデータリプライを行い、ストアインキャッシュ220
はデータを受け取り、CS状態で登録し、EPUに返
す。
1.2.3.2. If the address is registered in the directory memory 270 and the update bit is “0”, nothing is performed. At this time, the shared memory 240
Makes a data reply and stores in cache 220
Receives the data, registers it in the CS state, and returns it to the EPU.

【0024】1.2.3.3.アドレスがディレクトリ
メモリ270に登録されており、かつ更新ビットが
“1”の場合、更新フラグを“0”にする。また、ディ
レクトリ261にSBRを転送し、ディレクトリ261
はシステムバス251上にSBRを発行する。このSB
Rに対し、クラスタ201のいずれかのストアインキャ
ッシュのうち、DE状態でキャッシングしているものが
システムバス251上にデータリプライを行う。データ
リプライを行ったストアインキャッシュは状態をDEか
らCSに更新する。このデータはディレクトリ261で
受け取られ、ディレクトリ260へ転送される。ディレ
クトリ260はシステムバス250上にデータリプライ
を行う。ストアインキャッシュ220はこのデータを受
け取り、CS状態で登録し、EPUに返す。共有メモリ
240もこのデータを受け取り、メモリの内容を更新す
る。
1.2.3.3. When the address is registered in the directory memory 270 and the update bit is “1”, the update flag is set to “0”. Further, the SBR is transferred to the directory 261 and the directory 261 is transferred.
Issues an SBR on the system bus 251. This SB
With respect to R, one of the store-in caches of the cluster 201, which is cached in the DE state, performs data reply on the system bus 251. The store-in cache that has performed the data reply updates the state from DE to CS. This data is received at directory 261 and transferred to directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives this data, registers it in the CS state, and returns it to the EPU. The shared memory 240 also receives this data and updates the contents of the memory.

【0025】次に、(2)の他クラスタのメモリ空間
(共有メモリ241)に対するリードの場合について説
明する。以下、2.1.所望のデータがストアインキャ
ッシュ220内にキャッシングされている場合と、2.
2.所望のデータがストアインキャッシュ220にキャ
ッシングされていない場合に分けて説明する。
Next, the case of (2) reading from the memory space (shared memory 241) of another cluster will be described. Hereinafter, 2.1. 1. when the desired data is cached in the store-in cache 220;
2. A case where desired data is not cached in the store-in cache 220 will be described separately.

【0026】2.1.所望のデータがストアインキャッ
シュ220内にキャッシングされている場合、そのデー
タがEPUに返される。
2.1. If the desired data has been cached in the store-in cache 220, that data is returned to the EPU.

【0027】2.2.所望のデータがストアインキャッ
シュ220内にキャッシングされていない場合、システ
ムバス250上にSBRを発行する。このSBRに対す
るデータリプライが返ってきたらこれをEPUに返すこ
とになる。以下、2.2.1.クラスタ200の他のス
トアインキャッシュがDE状態でキャッシングしていた
場合と、2.2.2.クラスタ200の他のストアイン
キャッシュがCE、またはCS状態でキャッシングして
いた場合と、2.2.3.クラスタ200の他のストア
インキャッシュのどれもがキャッシングしていない場合
とに分けて説明する。
2.2. If the desired data is not cached in store-in cache 220, issue an SBR on system bus 250. When a data reply to this SBR is returned, this is returned to the EPU. Hereinafter, 2.2.1. The case where another store-in cache of the cluster 200 is caching in the DE state, and 2.2.2. When another store-in cache of the cluster 200 is caching in the CE or CS state, and 2.2.3. A case where none of the other store-in caches of the cluster 200 is caching will be described separately.

【0028】2.2.1.クラスタ200のストアイン
キャッシュがDE状態でキャッシングしていた場合、そ
のストアインキャッシュがシステムバス250上にデー
タリプライを行い、自身をCS状態にする。ストアイン
キャッシュ220はデータを受け取り、CS状態で登録
し、EPUに返す。これと並行して、ディレクトリ26
0がデータを受け取り、ディレクトリ261に転送す
る。ディレクトリ261はこのデータのメモリブロック
アドレスに対する更新ビットを“0”にする。また、シ
ステムバス251上にメモリブロックライトリクエスト
を発行し、共有メモリ241にこのデータをライトす
る。
2.2.1. When the store-in cache of the cluster 200 performs caching in the DE state, the store-in cache makes a data reply on the system bus 250 and puts itself in the CS state. The store-in cache 220 receives the data, registers it in the CS state, and returns it to the EPU. In parallel with this, directory 26
0 receives the data and transfers it to the directory 261. The directory 261 sets the update bit for the memory block address of this data to “0”. Further, a memory block write request is issued on the system bus 251 and this data is written to the shared memory 241.

【0029】2.2.2.クラスタ200の他のストア
インキャッシュがCS状態でキャッシングしていた場
合、この(これらの)ストアインキャッシュは何もしな
い。ディレクトリ260はSBRをディレクトリ261
に転送し、ディレクトリ261はこのSBRをシステム
バス251上に発行する。共有メモリ241がシステム
バス251上にデータリプライを行う。ディレクトリ2
61はこのデータを受け取り、ディレクトリ260に転
送する。ディレクトリ260はシステムバス250上に
データリプライを行う。ストアインキャッシュ220
は、データを受け取り、CS状態で登録し、EPUに返
す。
2.2.2. If other store-in caches of cluster 200 were caching in the CS state, this (these) store-in caches do nothing. Directory 260 stores SBR in directory 261
And the directory 261 issues this SBR on the system bus 251. The shared memory 241 performs data reply on the system bus 251. Directory 2
61 receives this data and transfers it to the directory 260. The directory 260 performs data reply on the system bus 250. Store-in cache 220
Receives the data, registers it in the CS state, and returns it to the EPU.

【0030】2.2.3.クラスタ200の他のストア
インキャッシュのどれもがキャッシングしていない場
合、ディレクトリ260はディレクトリ261に転送す
る。ディレクトリ261はこのSBRのアドレスを、更
新ビットを“0”、有効ビットを“1”として登録す
る。また、システムバス251上にSBRを発行する。
以下、このSBRに対する動作を2.2.3.1.クラ
スタ201のストアインキャッシュいずれかがDE状態
でキャッシングしていた場合と、2.2.3.2.クラ
スタ201のストアインキャッシュがCEまたはCS状
態でキャッシングしていた場合と、2.2.3.3.ク
ラスタ201のストアインキャッシュのどれもがキャッ
シングしていない場合とに分けて説明する。
2.2.3. If none of the other store-in caches of cluster 200 are caching, directory 260 transfers to directory 261. The directory 261 registers the address of this SBR with the update bit being “0” and the valid bit being “1”. Also, it issues an SBR on the system bus 251.
Hereinafter, the operation for this SBR will be described in 2.2.3.1. When any of the store-in caches of the cluster 201 is caching in the DE state, 2.2.2.2. The case where the store-in cache of the cluster 201 is caching in the CE or CS state, and 2.2.2.3. The case where none of the store-in caches of the cluster 201 performs caching will be described separately.

【0031】2.2.3.1.クラスタ201のストア
インキャッシュいずれかがDE状態でキャッシングして
いた場合、そのストアインキャッシュがシステムバス2
51上にデータリプライを行い、自身をCS状態にす
る。ディレクトリ261はこのデータを受け取り、ディ
レクトリ260に転送する。共有メモリ241もこのデ
ータを受け取り、メモリの内容を更新する。ディレクト
リ260はシステムバス250上にデータリプライを行
う。ストアインキャッシュ220はデータを受け取り、
CS状態で登録し、EPUに返す。
2.2.3.1. If any of the store-in caches of the cluster 201 is caching in the DE state, the store-in cache is
A data reply is made on 51 to bring itself into the CS state. The directory 261 receives this data and transfers it to the directory 260. The shared memory 241 also receives this data and updates the contents of the memory. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives the data,
Register in CS state and return to EPU.

【0032】2.2.3.2.クラスタ201のストア
インキャッシュがCEまたはCS状態でキャッシングし
ていた場合、CE状態の場合はCS状態に更新する。共
有メモリ241がシステムバス251にデータリプライ
を行う。ディレクトリ261はこのデータを受け取り、
ディレクトリ260に転送する。ディレクトリ260は
システムバス250上にデータリプライを行う。ストア
インキャッシュ220はデータを受け取り、CS状態で
登録し、EPUに返す。
2.2.3.2. If the store-in cache of the cluster 201 is caching in the CE or CS state, in the case of the CE state, it is updated to the CS state. The shared memory 241 performs data reply to the system bus 251. The directory 261 receives this data,
Transfer to directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives the data, registers it in the CS state, and returns it to the EPU.

【0033】2.2.3.3.クラスタ201のストア
インキャッシュのどれもがキャッシングしていない場
合、共有メモリ241がシステムバス251上にデータ
リプライを行う。ディレクトリ261はこのデータを受
け取り、ディレクトリ260に転送する。ディレクトリ
260は、システムバス250上にデータリプライを行
う。ストアインキャッシュ220はデータを受け取り、
CS状態で登録し、EPUに返す。
2.2.3.3. When none of the store-in caches of the cluster 201 is caching, the shared memory 241 performs data reply on the system bus 251. The directory 261 receives this data and transfers it to the directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives the data,
Register in CS state and return to EPU.

【0034】次に、(3)の自クラスタのメモリ空間
(共有メモリ240)に対するライトの場合について説
明する。以下、3.1.ストアインキャッシュ220が
ライト対象のデータをDE状態でキャッシングしている
場合と、3.2.ストアインキャッシュ220がライト
対象のデータをCE状態でキャッシングしている場合
と、3.3.ストアインキャッシュ220がライト対象
のデータをCS状態でキャッシングしている場合と、
3.4.ストアインキャッシュ220がライト対象のデ
ータをキャッシングしていない場合とに分けて説明す
る。
Next, the case (3) of writing to the memory space (shared memory 240) of the own cluster will be described. Hereinafter, 3.1. When the store-in cache 220 caches the data to be written in the DE state, and 3.2. When the store-in cache 220 caches data to be written in the CE state, and 3.3. When the store-in cache 220 caches the data to be written in the CS state,
3.4. The case where the store-in cache 220 does not cache the data to be written will be described separately.

【0035】3.1.ストアインキャッシュ220がラ
イト対象のデータをDE状態でキャッシングしている場
合、これにライトする。
3.1. If the store-in cache 220 caches the data to be written in the DE state, it writes to this.

【0036】3.2.ストアインキャッシュ220がラ
イト対象のデータをCE状態でキャッシングしている場
合、これにライトし、自身をDE状態にする。
3.2. If the store-in cache 220 is caching the data to be written in the CE state, it writes to this and puts itself in the DE state.

【0037】3.3.ストアインキャッシュ220がラ
イト対象のデータをCS状態でキャッシングしている場
合、これにライトし、DE状態にする。これと並行して
システムバス250上にメモリブロック無効化リクエス
ト(以下、INVという)を発行する。クラスタ200
の他のストアインキャッシュでCS状態でキャッシング
しているものがあれば、これをINV状態にして登録を
抹消する。ディレクトリメモリ270に更新ビットが
“0”で登録されている場合には、ディレクトリメモリ
270は有効ビットを“0”として登録を抹消し、ディ
レクトリ261にINVを転送する。ディレクトリ26
1はINVをシステムバス251上に発行する。クラス
タ201のストアインキャッシュでCS状態でキャッシ
ングしているものがあれば、これをINV状態にする。
3.3. If the store-in cache 220 is caching the data to be written in the CS state, it writes it into the DE state. In parallel with this, a memory block invalidation request (hereinafter referred to as INV) is issued on the system bus 250. Cluster 200
If any of the other store-in caches is cached in the CS state, it is placed in the INV state and the registration is deleted. If the update bit is registered as "0" in the directory memory 270, the directory memory 270 sets the valid bit to "0", deletes the registration, and transfers the INV to the directory 261. Directory 26
1 issues INV on the system bus 251. If any of the store-in caches of the cluster 201 is cached in the CS state, this is set to the INV state.

【0038】3.4.ストアインキャッシュ220がラ
イト対象のデータをキャッシングしていない場合、シス
テムバス250上に排他ブロックリードリクエスト(以
下、EBRという)を発行する。以下、3.4.1.ク
ラスタ200の他のストアインキャッシュがDE状態で
キャッシングしている場合と、3.4.2.クラスタ2
00の他のストアインキャッシュがCE状態でキャッシ
ングしている場合と、3.4.3.クラスタ200の他
のストアインキャッシュがCS状態でキャッシングして
いる場合と、3.4.4.クラスタ200の他のストア
インキャッシュどれもがキャッシングしていない場合と
に分けて説明する。
3.4. If the store-in cache 220 is not caching the data to be written, it issues an exclusive block read request (hereinafter, referred to as EBR) on the system bus 250. Hereinafter, 3.4.1. When another store-in cache of the cluster 200 is caching in the DE state, and 3.4.2. Cluster 2
00 is cached in CE state, and 3.4.3. When another store-in cache of the cluster 200 is caching in the CS state, and 3.4.4. The case where none of the other store-in caches of the cluster 200 is caching will be described separately.

【0039】3.4.1.クラスタ200の他のストア
インキャッシュがDE状態でキャッシングしている場
合、そのストアインキャッシュがシステムバス250上
にデータリプライを行い、自身をINV状態にする。ス
トアインキャッシュ220はこのデータを受け取り、こ
れに対してライトし、DE状態で登録する。
3.4.1. When another store-in cache of the cluster 200 is caching in the DE state, the store-in cache makes a data reply on the system bus 250 and puts itself in the INV state. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0040】3.4.2.クラスタ200の他のストア
インキャッシュがCE状態でキャッシングしている場
合、これをINV状態にする。共有メモリ240がシス
テムバス250上にデータリプライを行う。ストアイン
キャッシュ220はデータを受け取り、これに対してラ
イトし、DE状態で登録する。
3.4.2. If another store-in cache of the cluster 200 is caching in the CE state, it is put into the INV state. The shared memory 240 performs data reply on the system bus 250. The store-in cache 220 receives the data, writes to it, and registers it in the DE state.

【0041】3.4.3.クラスタ200の他のストア
インキャッシュがCS状態でキャッシングしている場
合、これをINV状態にする。共有メモリ240がシス
テムバス250上にデータリプライを行う。ストアイン
キャッシュ220はデータを受け取り、これに対してラ
イトし、DE状態で登録する。また、これらと並行して
ディレクトリメモリ270を検索し、更新ビットが
“0”で登録されているならば、有効ビットを“0”と
して登録を抹消し、ディレクトリ261にINVを転送
する。ディレクトリ260はシステムバス251上にI
NVを発行する。クラスタ201のストアインキャッシ
ュでCS状態でキャッシングしているものがあれば、こ
れをINV状態にする。
3.4.3. If another store-in cache of the cluster 200 is caching in the CS state, it is brought into the INV state. The shared memory 240 performs data reply on the system bus 250. The store-in cache 220 receives the data, writes to it, and registers it in the DE state. In parallel with these, the directory memory 270 is searched, and if the update bit is registered as "0", the registration is deleted by setting the valid bit to "0" and the INV is transferred to the directory 261. Directory 260 is located on system bus 251
Issue NV. If any of the store-in caches of the cluster 201 is cached in the CS state, this is set to the INV state.

【0042】3.4.4.クラスタ200の他のストア
インキャッシュどれもがキャッシングしていない場合、
ディレクトリメモリ270を検索する。以下、3.4.
4.1.ディレクトリメモリ270に登録されていない
場合と、3.4.4.2.ディレクトリメモリ270に
更新ビットが“0”で登録されている場合と、3.4.
4.3.ディレクトリメモリ270に更新ビットが
“1”で登録されている場合とに分けて説明する。
3.4.4. If none of the other store-in caches of cluster 200 are caching,
The directory memory 270 is searched. Hereinafter, 3.4.
4.1. The case where it is not registered in the directory memory 270 and the case of 3.4.4.2. The case where the update bit is registered as “0” in the directory memory 270, and 3.4.
4.3. The case where the update bit is registered as "1" in the directory memory 270 will be described separately.

【0043】3.4.4.1.ディレクトリメモリ27
0に登録されていない場合、何もしない。この場合、共
有メモリ240がシステムバス250上にデータリプラ
イを行う。ストアインキャッシュ220はデータを受け
取り、これに対してライトしDE状態で登録する。
3.4.4.1. Directory memory 27
If it is not registered in 0, do nothing. In this case, the shared memory 240 performs data reply on the system bus 250. The store-in cache 220 receives the data, writes it, and registers it in the DE state.

【0044】3.4.4.2.ディレクトリメモリ27
0に更新ビットが“0”で登録されている場合、ディレ
クトリメモリ270は有効ビットを“0”として登録を
抹消し、ディレクトリ261にINVを転送する。ディ
レクトリ261はシステムバス251上にINVを発行
する。クラスタ201のストアインキャッシュでCS状
態でキャッシングしているものがあれば、これをINV
状態にする。これらと並行して、共有メモリ240がシ
ステムバス250上にリプライを行う。ストアインキャ
ッシュ220はこのデータを受け取り、これに対してラ
イトし、DE状態で登録する。
3.4.4.2. Directory memory 27
When the update bit is registered as “0” at 0, the directory memory 270 deletes the registration by setting the valid bit to “0” and transfers the INV to the directory 261. The directory 261 issues an INV on the system bus 251. If any of the store-in caches of the cluster 201 are cached in the CS state, this is stored in the INV
State. In parallel with these, the shared memory 240 makes a reply on the system bus 250. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0045】3.4.4.3.ディレクトリメモリ27
0に更新ビットが“1”で登録されている場合、有効ビ
ットを“0”として登録を抹消し、ディレクトリ261
にEBRを転送する。ディレクトリ261はシステムバ
ス251上にEBRを発行する。このEBRに対し、ク
ラスタ201のいずれかのストアインキャッシュのう
ち、DE状態でキャッシングしているものがシステムバ
ス251上にデータリプライを行う。データリプライを
行ったストアインキャッシュは状態をDE状態からIN
V状態に更新する。このデータはディレクトリ261で
受け取られ、ディレクトリ260に転送される。ディレ
クトリ260はシステムバス250上にデータリプライ
を行う。ストアインキャッシュ220はこのデータを受
け取り、これに対してライトし、DE状態で登録する。
3.4.4.3. Directory memory 27
If the update bit is registered as "1" at 0, the registration is deleted by setting the valid bit to "0" and the directory 261 is deleted.
To the EBR. The directory 261 issues an EBR on the system bus 251. In response to this EBR, one of the store-in caches of the cluster 201, which is cached in the DE state, performs data reply on the system bus 251. The store-in cache that performed the data reply changes the state from the DE state to IN
Update to V state. This data is received at directory 261 and transferred to directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0046】次に、(4)の他クラスタのメモリ空間
(共有メモリ241)に対するライトの場合について説
明する。以下、4.1.ストアインキャッシュ220が
ライト対象のデータをDE状態でキャッシングしている
場合と、4.2.ストアインキャッシュ220がライト
対象のデータをCS状態でキャッシングしている場合
と、4.3.ストアインキャッシュ220がライト対象
のデータをキャッシングしていない場合とに分けて説明
する。
Next, the case (4) of writing data to the memory space (shared memory 241) of another cluster will be described. Hereinafter, 4.1. When the store-in cache 220 caches data to be written in the DE state, and 4.2. When the store-in cache 220 caches the data to be written in the CS state, and 4.3. The case where the store-in cache 220 does not cache the data to be written will be described separately.

【0047】4.1.ストアインキャッシュ220がラ
イト対象のデータをDE状態でキャッシングしている場
合、これにライトする。
4.1. If the store-in cache 220 caches the data to be written in the DE state, it writes to this.

【0048】4.2.ストアインキャッシュ220がラ
イト対象のデータをCS状態でキャッシングしている場
合、これにライトし、DE状態にする。これと並行し
て、システムバス250上にINVを発行する。クラス
タ200の他のストアインキャッシュでCS状態でキャ
ッシングしているものがあれば、これをINV状態にす
る。
4.2. If the store-in cache 220 is caching the data to be written in the CS state, it writes it into the DE state. In parallel with this, an INV is issued on the system bus 250. If another store-in cache of the cluster 200 is cached in the CS state, this is set to the INV state.

【0049】4.3.ストアインキャッシュ220がラ
イト対象のデータをキャッシングしていない場合、シス
テムバス250上にEBRを発行する。以下、4.3.
1.クラスタ200の他のストアインキャッシュがDE
状態でキャッシングしている場合、4.3.2.クラス
タ200の他のストアインキャッシュがCS状態でキャ
ッシングしている場合、4.3.3.クラスタ200の
他のストアインキャッシュどれもがキャッシングしてい
ない場合とに分けて説明する。
4.3. If the store-in cache 220 is not caching the data to be written, an EBR is issued on the system bus 250. Hereinafter, 4.3.
1. The other store-in cache of cluster 200 is DE
When caching is performed in the state 4.3.2. When another store-in cache of the cluster 200 is caching in the CS state, 4.3.3. The case where none of the other store-in caches of the cluster 200 is caching will be described separately.

【0050】4.3.1.クラスタ200の他のストア
インキャッシュがDE状態でキャッシングしている場
合、そのストアインキャッシュがシステムバス250上
にデータリプライを行い、自身をINV状態にする。ス
トアインキャッシュ220はこのデータを受け取り、こ
れに対してライトし、DE状態で登録する。
4.3.1. When another store-in cache of the cluster 200 is caching in the DE state, the store-in cache makes a data reply on the system bus 250 and puts itself in the INV state. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0051】4.3.2.クラスタ200の他のストア
インキャッシュがCS状態でキャッシングしている場
合、そのストアインキャッシュはこれをINV状態にす
る。ディレクトリ260はディレクトリ261にEBR
を転送する。ディレクトリメモリ271は更新ビットを
“1”にして、システムバス251上にEBRを発行す
る。クラスタ201のストアインキャッシュでCS状態
でキャッシングしているものがあれば、これをINV状
態にする。共有メモリ241がシステムバス251上に
データリプライを行う。このデータはディレクトリ26
1で受け取られ、ディレクトリ260に転送される。デ
ィレクトリ260は、システムバス250上にデータリ
プライを行う。ストアインキャッシュ220はこのデー
タを受け取り、これに対してライトし、DE状態で登録
する。
4.3.2. If another store-in cache of the cluster 200 is caching in the CS state, that store-in cache puts it in the INV state. Directory 260 is EBR in directory 261
To transfer. The directory memory 271 sets the update bit to “1” and issues an EBR on the system bus 251. If any of the store-in caches of the cluster 201 is cached in the CS state, this is set to the INV state. The shared memory 241 performs data reply on the system bus 251. This data is stored in directory 26
1 and transferred to the directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0052】4.3.3.クラスタ200の他のストア
インキャッシュどれもがキャッシングしていない場合、
ディレクトリ260はディレクトリ261にEBRを転
送する。ディレクトリメモリ271は更新ビットを
“1”、有効ビットを“1”として登録し、システムバ
ス251上にEBRを発行する。以下、このEBRに対
する動作を4.3.3.1.クラスタ201のストアイ
ンキャッシュいずれかがDE状態でキャッシングしてい
る場合と、4.3.3.2.クラスタ201のストアイ
ンキャッシュがCEまたはCS状態でキャッシングして
いる場合と、4.3.3.3.クラスタ201のストア
インキャッシュのどれもがキャッシングしていない場合
とに分けて説明する。
4.3.3. If none of the other store-in caches of cluster 200 are caching,
Directory 260 transfers the EBR to directory 261. The directory memory 271 registers the update bit as “1” and the valid bit as “1”, and issues an EBR on the system bus 251. Hereinafter, the operation for this EBR will be described in 4.3.3.1. When one of the store-in caches of the cluster 201 is caching in the DE state, and 4.3.3.2. The case where the store-in cache of the cluster 201 is caching in the CE or CS state, and 4.3.3.3. The case where none of the store-in caches of the cluster 201 performs caching will be described separately.

【0053】4.3.3.1.クラスタ201のストア
インキャッシュいずれかがDE状態でキャッシングして
いる場合、そのストアインキャッシュがシステムバス2
51上にデータリプライを行い、自身をINV状態にす
る。このデータはディレクトリ261で受け取られ、デ
ィレクトリ260に転送される。ディレクトリ260は
システムバス250上にデータリプライを行う。ストア
インキャッシュ220はこのデータを受け取り、これに
対してライトし、DE状態で登録する。
4.3.3.1. If any of the store-in caches of the cluster 201 is caching in the DE state, the store-in cache is
A data reply is made on 51 to put itself in the INV state. This data is received at directory 261 and transferred to directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0054】4.3.3.2.クラスタ201のストア
インキャッシュがCEまたはCS状態でキャッシングし
ている場合、これをINV状態にする。共有メモリ24
1がシステムバス251上にデータリプライを行う。こ
のデータはディレクトリ261で受け取られ、ディレク
トリ260に転送される。ディレクトリ260はシステ
ムバス250上にデータリプライを行う。ストアインキ
ャッシュ220はこのデータを受け取り、これに対して
ライトし、DE状態で登録する。
4.3.3.2. If the store-in cache of the cluster 201 is caching in the CE or CS state, it is set to the INV state. Shared memory 24
1 performs data reply on the system bus 251. This data is received at directory 261 and transferred to directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0055】4.3.3.3.クラスタ201のストア
インキャッシュどれもがキャッシングしていない場合、
共有メモリ241がシステムバス251上にデータリプ
ライを行う。このデータはディレクトリ261で受け取
られ、ディレクトリ260に転送される。ディレクトリ
260はシステムバス250上にデータリプライを行
う。ストアインキャッシュ220はこのデータを受け取
り、これに対してライトし、DE状態で登録する。
4.3.3.3. If none of the store-in caches of cluster 201 is caching,
The shared memory 241 performs data reply on the system bus 251. This data is received at directory 261 and transferred to directory 260. The directory 260 performs data reply on the system bus 250. The store-in cache 220 receives this data, writes it, and registers it in the DE state.

【0056】次に、図2のディレクトリによる追い出し
処理について説明する。追い出し処理が必要となるの
は、前述の2.2.3.または4.3.3.の場合で、
アドレスを新規にディレクトリメモリに登録するため
に、既に登録されているアドレスを抹消するケースであ
る。また、抹消されるアドレスを追い出し対象アドレス
という。
Next, the eviction process using the directory shown in FIG. 2 will be described. The eviction process is required according to 2.2.3. Or 4.3.3. In the case of
In this case, in order to newly register an address in the directory memory, the already registered address is deleted. Also, the address to be deleted is referred to as an eviction target address.

【0057】以下、新規に登録するアドレスと同一のセ
ットアドレスにおいて、5.1.ディレクトリメモリに
既に登録されているアドレスブロックのいずれかが無効
である場合と、5.2.ディレクトリメモリに既に登録
されている全てのアドレスブロックが有効であり、その
うちのいずれかが更新ビット“0”である場合と、5.
3.ディレクトリメモリに既に登録されている全てのア
ドレスブロックが有効であり、そのうちのどれもが更新
ビット“1”である場合とに分けて、追い出し処理の内
容について説明する。
Hereinafter, in the same set address as the address to be newly registered, 5.1. When one of the address blocks already registered in the directory memory is invalid, and 5.2. 4. all address blocks already registered in the directory memory are valid, and any one of them is the update bit “0”;
3. The contents of the eviction process will be described separately for the case where all the address blocks already registered in the directory memory are valid and all of them are the update bit “1”.

【0058】5.1.ディレクトリメモリに既に登録さ
れているアドレスブロックのいずれかが無効である場
合、追い出し処理は行わない。
5.1. If any of the address blocks already registered in the directory memory is invalid, the eviction process is not performed.

【0059】5.2.ディレクトリメモリに既に登録さ
れている全てのアドレスブロックが有効であり、そのう
ちのいずれかが更新ビット“0”である場合、このうち
のいずれかのアドレスを追い出し対象アドレスとする。
追い出し対象アドレスの有効ビットを“0”として登録
を抹消し、ディレクトリ261はディレクトリ260へ
INVを転送する。ディレクトリ260はシステムバス
250上にINVを発行する。クラスタ200のストア
インキャッシュでCS状態でキャッシングしているもの
は、これをINV状態にする。
5.2. If all the address blocks already registered in the directory memory are valid, and if any of them is the update bit “0”, any one of these addresses is set as an eviction target address.
The registration is deleted by setting the valid bit of the eviction target address to “0”, and the directory 261 transfers the INV to the directory 260. The directory 260 issues an INV on the system bus 250. If the store-in cache of the cluster 200 is caching in the CS state, it is changed to the INV state.

【0060】5.3.ディレクトリメモリに既に登録さ
れている全てのアドレスブロックが有効であり、そのう
ちのどれもが更新ビット“1”である場合、このうちの
いずれかのアドレスを追い出し対象アドレスとする。追
い出し対象アドレスの有効ビットを“0”として登録を
抹消し、ディレクトリ261はディレクトリ260へE
BRを転送する。ディレクトリ260はシステムバス2
50上にEBRを発行する。クラスタ200のストアイ
ンキャッシュのうち、DE状態でキャッシングしている
ものがシステムバス250上にデータリプライを行う。
データリプライを行ったストアインキャッシュは状態を
DEからINVに変更する。このデータはディレクトリ
260で受け取られ、ディレクトリ261に転送され
る。ディレクトリ261はシステムバス251上にメモ
リブロックライトリクエストを発行し、共有メモリ24
1にこのデータをライトする。
5.3. If all the address blocks already registered in the directory memory are valid, and if any of them is the update bit “1”, any one of the addresses is set as the eviction target address. The registration is deleted by setting the effective bit of the eviction target address to “0”, and the directory 261 is moved to the directory 260 by E.
Transfer BR. Directory 260 is in system bus 2
Issue EBR on 50. Among the store-in caches of the cluster 200, those cached in the DE state perform data reply on the system bus 250.
The store-in cache that has performed the data reply changes the state from DE to INV. This data is received at directory 260 and transferred to directory 261. The directory 261 issues a memory block write request on the system bus 251, and the shared memory 24
1 is written with this data.

【0061】次に、ディレクトリ261内での追い出し
処理の具体的な動作について図2を参照して説明する。
まず、クラスタ200のディレクトリ260からメモリ
アクセスリクエストが送出されたとすると、ディレクト
リメモリ制御回路100でディレクトリメモリ271の
データが読み出され、ヒット・ステータス判定回路10
2へ送られる。ヒット・ステータス判定回路102で
は、前述のようにディレクトリメモリ271から読み出
されたアドレス、有効ビット、更新ビットをもとにキャ
ッシュヒットしているか否かを判定し、ディレクトリメ
モリ271の複数のコンパートメントから読み出された
アドレス各々についてステータス判定を行う。ここで
は、追い出し処理の説明であるので、ヒット・ステータ
ス判定回路102でキャッシュミスヒットと判定された
ものとする。
Next, a specific operation of the eviction process in the directory 261 will be described with reference to FIG.
First, assuming that a memory access request is sent from the directory 260 of the cluster 200, the directory memory control circuit 100 reads the data of the directory memory 271 and the hit / status determination circuit 10
Sent to 2. The hit status determination circuit 102 determines whether a cache hit has occurred based on the address, valid bit, and update bit read from the directory memory 271 as described above. The status is determined for each read address. Here, since the eviction process is described, it is assumed that the hit / status determination circuit 102 determines that the cache is a mishit.

【0062】追い出し処理制御回路104では、ヒット
・ステータス判定回路102の判定結果に基づいて追い
出し処理の制御を行う。ここで、追い出し制御回路10
4の追い出し処理をステータス判定の結果により、以
下、5.1.a.いずれかのアドレスが無効である場合
と、5.2.a.全てのアドレスが有効ビット“1”で
あり、そのうちのいずれかが更新ビット“0”である場
合と、5.3.a.全てのアドレスが有効ビット“1”
であり、そのうちのどれもが更新ビット“1”である場
合とに分けて、それぞれの動作について説明する。
The eviction process control circuit 104 controls the eviction process based on the determination result of the hit / status determination circuit 102. Here, the eviction control circuit 10
4 according to the result of the status determination. a. If any address is invalid, and 5.2. a. All addresses are valid bits "1", and any of them is an update bit "0", and 5.3. a. All addresses are valid bits "1"
Each operation will be described separately for the case where all of them are update bits “1”.

【0063】5.1.a.いずれかのアドレスが無効で
ある場合は、追い出し処理は行わない。
5.1. a. If any of the addresses is invalid, the eviction process is not performed.

【0064】5.2.a.全てのアドレスが有効ビット
“1”であり、そのうちのいずれかに更新ビット“0”
のアドレスブロックがある場合、このうちのいずれかを
追い出し対象アドレスとして、クラスタのディレクトリ
260に対してINVリクエストを転送する。
5.2. a. All addresses are valid bits “1”, and one of them is an update bit “0”.
In this case, an INV request is transferred to the directory 260 of the cluster using any one of the address blocks as an eviction target address.

【0065】5.3.a.全てのアドレスが有効ビット
“1”であり、そのうちのどれもが更新ビット“1”で
ある場合、このうちのいずれかを追い出し対象アドレス
として、クラスタのディレクトリ260に対してEBR
リクエストを転送する。
5.3. a. If all of the addresses are valid bits “1” and all of them are update bits “1”, any one of them is set as an eviction target address and the EBR is set to the directory 260 of the cluster.
Forward the request.

【0066】本実施形態では、例えばディレクトリメモ
リのセットアドレスを17ビット、キーアドレスを10
ビット、1ブロック64バイト管理により実現すると、
128Kワードのディレクトリメモリにより8Gバイト
の共有メモリの管理を行うことができる。これに対し、
従来のディレクトリ方式では、128Mワードのディレ
クトリメモリが必要であり、従来に比べて大幅にメモリ
容量を低減することができる。
In this embodiment, for example, the set address of the directory memory is 17 bits and the key address is 10 bits.
When realized by managing 64 bits per block,
An 8 GB shared memory can be managed by a 128 K word directory memory. In contrast,
In the conventional directory system, a directory memory of 128 M words is required, and the memory capacity can be significantly reduced as compared with the conventional one.

【0067】[0067]

【発明の効果】以上説明したように本発明によれば、デ
ィレクトリメモリをキャッシュ構成とすることにより、
ディレクトリメモリの容量を従来に比べて大幅に低減す
ることができ、これによって装置の構成を著しく簡単化
及び低コスト化できるという効果がある。
As described above, according to the present invention, the directory memory has a cache structure,
The capacity of the directory memory can be significantly reduced as compared with the conventional one, which has the effect that the configuration of the apparatus can be significantly simplified and the cost can be reduced.

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

【図1】本発明の一実施形態を示したブロック図であ
る。
FIG. 1 is a block diagram showing an embodiment of the present invention.

【図2】図1の実施形態のディレクトリを詳細に示した
ブロック図である。
FIG. 2 is a block diagram showing a directory of the embodiment of FIG. 1 in detail.

【図3】図1の実施形態で用いられるディレクトリメモ
リのフォーマットを示した図である。
FIG. 3 is a diagram showing a format of a directory memory used in the embodiment of FIG. 1;

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

100 ディレクトリメモリ制御回路 102 ヒット・ステータス判定回路 103 リクエスト差し替え回路 104 追い出し制御回路 200,201 クラスタ 210〜217 プロセッサ(EPU) 220〜227 ストアインキャッシュ 230〜237 処理装置 240,241 共有メモリ 250,251 システムバス 260,261 ディレクトリ 270,271 ディレクトリメモリ REFERENCE SIGNS LIST 100 directory memory control circuit 102 hit / status determination circuit 103 request replacement circuit 104 eviction control circuit 200, 201 cluster 210-217 processor (EPU) 220-227 store-in cache 230-237 processing device 240,241 shared memory 250,251 system Bus 260,261 Directory 270,271 Directory memory

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 各々複数のプロセッサに接続されたスト
アインキャッシュを有する複数の処理装置と、前記複数
の処理装置とシステムバスで接続された共有メモリとを
備えた2つのクラスタを有する共有メモリ型マルチプロ
セッサシステムにおいて、他クラスタのストアインキャ
ッシュに保持された自クラスタ内の共有メモリのブロッ
クアドレスのキーアドレスを登録するためのディレクト
リメモリと、前記ディレクトリメモリを検索し、前記共
有メモリへのメモリアクセスリクエストのアドレスがキ
ャッシュヒットするか否かを判定する手段とを有するこ
とを特徴とする共有メモリ型マルチプロセッサシステ
ム。
1. A shared memory type having two clusters each including a plurality of processing units each having a store-in cache connected to a plurality of processors, and a shared memory connected to the plurality of processing units and a system bus. In a multiprocessor system, a directory memory for registering a key address of a block address of a shared memory in its own cluster held in a store-in cache of another cluster, and a search for the directory memory, and a memory access to the shared memory Means for determining whether or not a request address has a cache hit. A shared memory type multiprocessor system comprising:
【請求項2】 請求項1に記載の共有メモリ型マルチプ
ロセッサシステムにおいて、前記判定手段でキャッシュ
ミスヒットと判定されたときに、ミスヒットと判定され
たアドレスを前記ディレクトリメモリに新たに登録する
場合、前記判定手段によるステータス判定結果に基づい
て前記ディレクトリメモリに既に登録されている同一セ
ットアドレスのうちのいずれかを追い出すように制御す
る手段を有することを特徴とする共有メモリ型マルチプ
ロセッサシステム。
2. The shared memory type multiprocessor system according to claim 1, wherein when said judging means judges a cache mishit, an address judged as a mishit is newly registered in said directory memory. A shared memory type multiprocessor system, characterized in that the shared memory type multiprocessor system includes means for controlling to evict any one of the same set addresses already registered in the directory memory based on a status determination result by the determination means.
【請求項3】 請求項2に記載の共有メモリ型マルチプ
ロセッサシステムにおいて、前記ディレクトリメモリに
は、登録されたキーアドレスの各々について登録された
アドレスが有効であるか否かを示す有効ビット及び更新
されているか否かを示す更新ビットが付加されており、
前記判定手段は前記有効ビット及び更新ビットに基づい
てステータス判定を行うことを特徴とする共有メモリ型
マルチプロセッサシステム。
3. The shared memory multiprocessor system according to claim 2, wherein the directory memory has a valid bit indicating whether a registered address is valid for each of the registered key addresses and an update. Update bit indicating whether or not the
The shared memory type multiprocessor system according to claim 1, wherein the determination unit performs a status determination based on the valid bit and the update bit.
JP8157309A 1996-06-19 1996-06-19 Shared memory multiprocessor system Expired - Fee Related JP2852247B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8157309A JP2852247B2 (en) 1996-06-19 1996-06-19 Shared memory multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8157309A JP2852247B2 (en) 1996-06-19 1996-06-19 Shared memory multiprocessor system

Publications (2)

Publication Number Publication Date
JPH103461A JPH103461A (en) 1998-01-06
JP2852247B2 true JP2852247B2 (en) 1999-01-27

Family

ID=15646862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8157309A Expired - Fee Related JP2852247B2 (en) 1996-06-19 1996-06-19 Shared memory multiprocessor system

Country Status (1)

Country Link
JP (1) JP2852247B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894092B (en) * 2010-07-28 2012-09-26 杭州华三通信技术有限公司 Multi-core CPU and inter-core communication method thereof

Also Published As

Publication number Publication date
JPH103461A (en) 1998-01-06

Similar Documents

Publication Publication Date Title
JP2819982B2 (en) Multiprocessor system with cache match guarantee function that can specify range
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
EP0438211B1 (en) Cache memory system
US6826651B2 (en) State-based allocation and replacement for improved hit ratio in directory caches
JP4447580B2 (en) Partitioned sparse directory for distributed shared memory multiprocessor systems
US20020053004A1 (en) Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links
JP2002536715A (en) Technology for improving memory access in virtual memory systems
JP2001297035A (en) Information processor
JPH10240621A (en) Multi-processor computer system
JP2000010860A (en) Cache memory control circuit, processor, processor system, and parallel processor system
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US7093075B2 (en) Location-based placement algorithms for set associative cache memory
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
US6651157B1 (en) Multi-processor system and method of accessing data therein
EP0489583A2 (en) Multiple processor cache control system
JP3732397B2 (en) Cash system
JP2852247B2 (en) Shared memory multiprocessor system
JP2786124B2 (en) Shared memory multiprocessor system
JPH04191946A (en) Snoop cache memory control system
JPH11102321A (en) Cache coherency control system of decentralized common memory parallel computer
JPH08263374A (en) Cache control method and multiprocessor system using this method
JP2003316756A (en) Dispersed and shared memory type multi-processor system and tag controlling method used therein
JPH06103477B2 (en) Parallel cache memory
JP3213758B2 (en) Memory matching control method and multiprocessor system using the same

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees