[go: up one dir, main page]

JP2002055880A - Cache configuration method and processor system - Google Patents

Cache configuration method and processor system

Info

Publication number
JP2002055880A
JP2002055880A JP2000240215A JP2000240215A JP2002055880A JP 2002055880 A JP2002055880 A JP 2002055880A JP 2000240215 A JP2000240215 A JP 2000240215A JP 2000240215 A JP2000240215 A JP 2000240215A JP 2002055880 A JP2002055880 A JP 2002055880A
Authority
JP
Japan
Prior art keywords
cpu
cache
tag
request
registration request
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
JP2000240215A
Other languages
Japanese (ja)
Inventor
Hideo Suzuki
英雄 鈴木
Atsushi Nakajima
敦 中島
Masabumi Shibata
正文 柴田
Kazuyasu Akimoto
一泰 秋元
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 JP2000240215A priority Critical patent/JP2002055880A/en
Publication of JP2002055880A publication Critical patent/JP2002055880A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 ライトバック方式のマルチプロセッサシステ
ムにおいて、CPUからの付加情報なしで、CPUキャ
ッシュの複製タグ制御を可能にする。 【解決手段】 CPU020、120のCPUキャッシ
ュ021、121をセット数kでウェイ数wのセットア
ソシアティブ構成、CPU−SCインタフェース制御部
040、140のCPUキャッシュ複製タグ041、1
41をセット数kでウェイ数w+αのセットアソシアテ
ィブ構成とする。そして、CPUキャッシュ021、1
21とCPUキャッシュ複製タグ041、141が不一
致となった場合、CPU−SCインタフェース制御部0
40、140からCPU020、120に対してキャッ
シュ無効化要求を発行する。
(57) [Summary] [PROBLEMS] In a write-back type multiprocessor system, duplicate tag control of a CPU cache is enabled without additional information from a CPU. SOLUTION: The CPU caches 021 and 121 of the CPUs 020 and 120 are set associatively configured with the number of sets k and the number of ways w.
41 is a set associative configuration in which the number of sets is k and the number of ways is w + α. Then, the CPU caches 021, 1
21 and the CPU cache copy tags 041 and 141 do not match, the CPU-SC interface control unit 0
40 and 140 issue a cache invalidation request to the CPUs 020 and 120.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、マルチレベルキャ
ッシュを有するメモリ共有型マルチプロセッサシステム
に係り、特に、コヒーレンシリクエスト制御の改善に好
適なキャッシュ構成方法及びそれを適用したプロセッサ
システムに関する。
The present invention relates to a shared memory multiprocessor system having a multilevel cache, and more particularly to a cache configuration method suitable for improving coherency request control and a processor system using the same.

【0002】[0002]

【従来の技術】近年、キャッシュメモリを備えたプロセ
ッサ(CPU)を複数有する、いわゆるメモリ共有型マ
ルチプロセッサシステムが広く受け入れられている。こ
の様なシステムでは、複数のCPUが同一のデータライ
ンのコピーを各々のキャッシュメモリに置くため、キャ
ッシュメモリ間のデータの一貫性(コヒーレンシ)を保
つ必要がある。すなわち、キャッシュコヒーレンシの問
題が生じる。
2. Description of the Related Art In recent years, a so-called memory sharing type multiprocessor system having a plurality of processors (CPUs) each having a cache memory has been widely accepted. In such a system, since a plurality of CPUs store copies of the same data line in their respective cache memories, it is necessary to maintain coherency of data between the cache memories. That is, a problem of cache coherency occurs.

【0003】従来からキャシュコヒーレンシの問題を解
決するために種々の方法が提案されているが、コヒーレ
ンシリクエストによる全CPUキャッシュへの問い合わ
せを行う方式が一般的である。この方式では、あるキャ
ッシュメモリでキャッシュミスが発生し、当該CPUが
キャッシュ登録要求を発行した場合、該キャッシュ登録
要求をコヒーレンシリクエストとしてシステムコネクシ
ョンを介して他のCPUへブロードキャストする。コヒ
ーレンシリクエストを受け取ったCPUは、自分のキャ
ッシュメモリを検索してキャッシュヒット判定を行い、
その結果をシステムコネクションを介してキャッシュ登
録要求の発行元CPUへ通知する。キャッシュ登録要求
の発行元CPUでは、この他CPUキャッシュのヒット
判定結果に応じて必要なキャッシュ登録要求を実行す
る。
Conventionally, various methods have been proposed to solve the problem of cache coherency, but a method of inquiring all CPU caches by a coherency request is general. In this method, when a cache miss occurs in a certain cache memory and the CPU issues a cache registration request, the cache registration request is broadcast as a coherency request to another CPU via a system connection. Upon receiving the coherency request, the CPU searches its own cache memory to determine a cache hit,
The result is notified to the CPU that issued the cache registration request via the system connection. The issuing CPU of the cache registration request executes a necessary cache registration request according to the result of hit determination of the other CPU cache.

【0004】このコヒーレンシリクエストによる全CP
Uキャッシュへの問い合わせを行う方式の最大の問題点
は、キャッシュ登録要求の発行元CPUでは全キャッシ
ュへの問い合わせ結果を待ってからキャッシュメモリへ
データ登録等を行わなければならないため、トランザク
ションスループットが大きくなってしまうことである。
このトランザクションスループットの問題を解決するた
めに、キャッシュ複製タグを設ける方式がある。この方
式では、コヒーレンシリクエストによる全CPUキャッ
シュへの問い合わせが発生すると、当該CPUキャッシ
ュのアクセスを行う前に、キャッシュ複製タグによりキ
ャッシュヒット判定を行うことが可能で、問い合わせに
対する返答時間が低減される。
[0004] All CPs by this coherency request
The biggest problem with the method of making an inquiry to the U cache is that the CPU that issues the cache registration request must wait for the result of the inquiry to all the caches before registering data in the cache memory, so that the transaction throughput is large. It will be.
In order to solve the problem of transaction throughput, there is a method of providing a cache replication tag. In this method, when an inquiry to all the CPU caches due to a coherency request occurs, a cache hit determination can be performed by the cache duplication tag before accessing the CPU caches, and the response time to the inquiry is reduced.

【0005】このキャッシュ複製タグに関しては、例え
ば、特開平9−114735号公報に記載されている。
該公報には、CPUキャッシュ複製タグメモリを持つこ
とによりトランザクションスループットを低減させるマ
ルチプロセッサシステムにおいて、特にリプレース対象
の排他的ダーティデータを一時格納するライトバックバ
ッファをも備えた並列型コヒーレント読取り・書き戻し
トランザクション処理システムが記載されている。ここ
で、排他的ダーティデータとは、共有メモリ(メインメ
モリ)のデータとは異なるデータで、かつ、このデータ
のコピーを他のキャッシュが持っていないことを示し、
書き込み要求でキャッシュヒットした場合等で生じる。
[0005] This cache copy tag is described in, for example, Japanese Patent Application Laid-Open No. Hei 9-114735.
This publication discloses a parallel coherent read / write-back in a multiprocessor system in which a transaction throughput is reduced by having a CPU cache duplicated tag memory, particularly also including a write-back buffer for temporarily storing exclusive dirty data to be replaced. A transaction processing system is described. Here, the exclusive dirty data is data different from the data in the shared memory (main memory), and indicates that no other cache has a copy of this data.
This occurs when a cache hit occurs in a write request.

【0006】CPUからキャッシュ登録要求が発行さ
れ、CPUキャッシュに空きエントリがない場合、CP
Uキャッシュでリプレースが発生する。このリプレース
対象が排他的ダーティデータであれば共有メモリへの書
き戻し(ライトバック)を行わなければならないが、こ
の排他的データの書き戻し終了を待ってキャッシュ登録
要求を実行するのでは時間がかかり、CPUの実行が妨
げられる。そこで、排他的ダーティデータをライトバッ
クバッファへ一時的に保管して、キャッシュ登録要求を
先に実行し、その後、ライトバックバッファのデータを
任意の時間で共有メモリへ書き戻しを行う。これによ
り、キャッシュ登録要求のトランザクション処理時間を
短縮できる。
When a cache registration request is issued from the CPU and there is no empty entry in the CPU cache, the CP
Replacement occurs in the U cache. If the replacement target is exclusive dirty data, writing back (write back) to the shared memory must be performed. However, it takes time to execute the cache registration request after waiting for the completion of the writing back of the exclusive data. , The execution of the CPU is hindered. Therefore, the exclusive dirty data is temporarily stored in the write-back buffer, the cache registration request is executed first, and then the data in the write-back buffer is written back to the shared memory at an arbitrary time. As a result, the transaction processing time of the cache registration request can be reduced.

【0007】上記公報のシステムでは、kセットのCP
Uキャッシュに対して、k+1セットのCPUキャッシ
ュ複製タグがサブモジュールに設けられ、さらに、該C
PUキャッシュ複製タグには、「排他的ダーティ」、
「共有ダーティ」、「共有クリーン」、「無効」等のデ
ータ状態も保持されていて、CPUキャッシュ複製タグ
はCPUキャッシュをダイレクトマップで制御されてい
る。「排他的ダーティ」とは、上記したように、当該キ
ャッシュブロックに共有メモリとは異なるデータが入っ
ており、かつ、このデータのコピーが他のキャッシュに
入っていないことを示す。「共有ダーティ」とは、当該
キャッシュブロックに共有メモリとは異なるデータが入
っており、かつ、このデータのコピーが他のキャッシュ
にも存在することを示す。「共有クリーン」とは、当該
キャッシュブロックに共有メモリと同じデータ(クリー
ンなデータ)が入っており、かつ、このデータのコピー
が他のキャッシュにも存在することを示す。「無効」と
は、当該キャッシュブロックに有効なデータが入ってい
ないことを示す。
In the system of the above publication, k sets of CPs
For the U cache, k + 1 sets of CPU cache copy tags are provided in the submodule, and
PU cache duplicate tags include "exclusive dirty",
Data states such as "shared dirty", "shared clean", and "invalid" are also held, and the CPU cache copy tag controls the CPU cache by a direct map. As described above, "exclusive dirty" indicates that the cache block contains data different from that of the shared memory, and that a copy of this data is not contained in another cache. "Shared dirty" indicates that the cache block contains data different from that of the shared memory, and that a copy of this data also exists in another cache. “Shared clean” indicates that the cache block contains the same data (clean data) as the shared memory, and that a copy of this data also exists in another cache. “Invalid” indicates that the cache block does not contain valid data.

【0008】上記従来のライトバック方式のマルチプロ
セッサシステムでは、リプレース対象の排他的ダーティ
データを、ライトバックバッファに一時的に保持してか
ら、キャッシュ登録要求をCPUキャッシュ複製タグを
保持するサブモジュールに発行する時、このキャッシュ
登録要求に関連するライトバックバッファへの書込みが
あったと知らせるフラグがセットされる。サブモジュー
ルでは、このキャッシュ登録要求にてCPUキャッシュ
複製タグの当該セット番号のタグエントリを読み込ん
で、データ状態が有効でキャッシュ登録要求にフラグが
セットされていた状態の時、ライトバックバッファに書
き込まれたと認識して、k+1セット番号へ一時的にキ
ャッシュ登録要求の情報を記憶し、その後に期待してい
たデータ書き戻し要求であるライトバック処理が終了し
たら、k+1セット番号にある情報を当該セット番号へ
書き写して制御する。
In the above-mentioned conventional write-back multiprocessor system, the exclusive dirty data to be replaced is temporarily stored in a write-back buffer, and then a cache registration request is sent to a sub-module which holds a CPU cache copy tag. When issued, a flag is set to indicate that there has been a write to the write-back buffer associated with this cache registration request. The submodule reads the tag entry of the corresponding set number of the CPU cache copy tag by the cache registration request, and when the data state is valid and the flag is set in the cache registration request, the tag entry is written to the write-back buffer. And the information of the cache registration request is temporarily stored in the k + 1 set number, and when the write-back processing, which is the expected data write-back request, is completed, the information in the k + 1 set number is replaced with the set number. Transcribe to and control.

【0009】また、このCPUキャッシュ複製タグを維
持するサブモジュールに、コヒーレンシリクエスト処理
が必要なキャッシュ登録要求を他プロセッサから受けた
時、サブモジュールでは、CPUキャッシュ複製タグを
参照し、CPUキャッシュ内に目的のデータがある時
(キャッシュヒット時)は、キャッシュ登録要求をCP
Uエレメントに送出し、一緒にキャッシュ登録要求元に
データ状態を知らせるが、逆に無い時(キャッシュミス
時)には、コヒーレンシリクエスト処理が必要なキャッ
シュ登録要求をCPUエレメントに送出することなく、
キャッシュ登録要求元にキャッシュミスを応答する処理
を行う。この処理により、CPUからの問い合わせ結果
を待たずにCPUキャッシュ複製タグから結果を知るこ
とが可能になり、トランザクションスループットを低減
することができる。
When a sub-module that maintains the CPU cache duplicate tag receives a cache registration request that requires coherency request processing from another processor, the sub-module refers to the CPU cache duplicate tag and stores it in the CPU cache. When there is target data (at the time of a cache hit), the cache registration request is
To the U element and inform the cache registration request source of the data state. On the contrary, when there is no cache condition (cache miss), the cache registration request requiring coherency request processing is not sent to the CPU element.
A process of responding a cache miss to the cache registration request source is performed. By this processing, the result can be known from the CPU cache copy tag without waiting for the result of the inquiry from the CPU, and the transaction throughput can be reduced.

【0010】[0010]

【発明が解決しようとする課題】しかしながら、上記従
来技術においては、ライトバックバッファにあるデータ
ラインの存在をCPUキャッシュ複製タグが認識するた
めには、キャッシュ登録要求時に関連するライトバック
の発行有無を判断する為のCPUからの付加情報が必要
となる。また、ライトバック処理の時にk+1セット番
号への読み出しと、k+1セット番号にある情報を当該
セット番号への書き戻し処理など、CPUキャッシュ複
製タグに余分なアクセスが行われる。
However, in the above prior art, in order for the CPU cache duplication tag to recognize the existence of the data line in the write back buffer, it is necessary to determine whether or not the write back related to the cache registration request has been issued. Additional information from the CPU for determination is required. Further, at the time of the write-back processing, extra access to the CPU cache copy tag is performed, such as reading to the k + 1 set number and writing back the information in the k + 1 set number to the set number.

【0011】本発明の第1の目的は、CPUからの付加
情報なしでも、ライトバックバッファを備えた複数ウェ
イセットアソシアティブのCPUキャッシュ内のブロッ
ク追跡を可能にする好適なCPUキャッシュ複製タグ制
御を実現することにある。本発明の第2の目的は、ライ
トバック処理の時にCPUキャッシュ複製タグへの余分
なアクセスをすることなくCPUキャッシュ複製タグ制
御を実現することにある。
A first object of the present invention is to realize a suitable CPU cache duplication tag control which enables tracking of blocks in a CPU cache of a multi-way set associative having a write-back buffer without additional information from the CPU. Is to do. A second object of the present invention is to realize CPU cache copy tag control without extra access to a CPU cache copy tag during write-back processing.

【0012】[0012]

【課題を解決するための手段】本発明では、CPUキャ
ッシュのセット数がk(kは1以上の整数であり通常は
2のべき乗)でwウェイセットアソシアティブ(wは2
以上の整数であり通常は2のべき乗)の場合、CPUキ
ャッシュ複製タグの構成をセット数k、ウェイ数w+α
(αは一般には1)の複数ウェイセットアソシアティブ
とする。
According to the present invention, the number of sets in the CPU cache is k (k is an integer of 1 or more and is usually a power of 2) and the w-way set associative (w is 2).
In the case of the above integer, which is usually a power of 2, the configuration of the CPU cache duplication tag is represented by the number of sets k and the number of ways w + α.
(Α is generally 1) is a multiple way set associative.

【0013】CPUキャッシュ複製タグのエントリに
は、CPUが発行するキャッシュ登録要求ないしライト
バック要求のターゲットである共有メモリのメモリアド
レスと、CPUキャッシュ複製タグエントリのリプレー
スメント・アルゴリズムに使用する制御ビットを保持す
る。
The CPU cache copy tag entry holds the memory address of the shared memory which is the target of the cache registration request or write-back request issued by the CPU, and the control bit used for the replacement algorithm of the CPU cache copy tag entry. I do.

【0014】CPUからキャッシュ登録要求が発行され
た時、CPUキャッシュ複製タグを保持するサブモジュ
ール(CPU−SCインタフェース制御部)は、キャッ
シュ登録要求アドレスからCPUキャッシュ複製タグの
該当するセットをリードする。リードしたセットのタグ
エントリとキャッシュ登録要求アドレスを比較して不一
致の場合は、共有メインメモリへのキャッシュ登録要求
を発行するので、このキャッシュ登録要求アドレスをC
PUキャッシュ複製タグの当該セットへ登録し、コヒー
レンシリクエスト処理を実行するため全キャッシュへ問
い合わせを行うべくキャッシュ登録要求をシステムコネ
クション(SC)を介して他CPUへ発行する。
When a cache registration request is issued from the CPU, the sub-module (CPU-SC interface control unit) holding the CPU cache copy tag reads the corresponding set of the CPU cache copy tag from the cache registration request address. If the tag entry of the read set and the cache registration request address do not match, a cache registration request to the shared main memory is issued.
A PU cache copy tag is registered in the set, and a cache registration request is issued to other CPUs via the system connection (SC) in order to inquire all caches to execute coherency request processing.

【0015】システムコネクションからキャッシュ登録
要求を受け取って、そのアドレスがメモリアドレスを指
す時、コヒーレンシリクエスト処理を実行しなければな
らため、サブモジュールはCPUキャッシュ複製タグの
該当するセットをリードして、キャッシュ登録要求アド
レスと一致するタグエントリを探す。もし、一致するタ
グエントリがあると、CPUはそのアドレスのデータを
保持しているので、CPUへキャッシュ登録要求を発行
し、CPUはコヒーレンシリクエスト処理を実行する。
もし、不一致ならばCPUはそのアドレスのデータを保
持していないので、CPUへのキャッシュ登録要求を発
行せず、サブモジュールはコヒーレンシリクエスト処理
による問い合わせ結果をキャッシュ登録要求元に返す。
When a cache registration request is received from the system connection and the address points to a memory address, coherency request processing must be executed. Therefore, the sub-module reads the corresponding set of CPU cache copy tags, and Search for a tag entry that matches the registration request address. If there is a matching tag entry, since the CPU holds the data at that address, it issues a cache registration request to the CPU, and the CPU executes coherency request processing.
If they do not match, the CPU does not hold the data at that address, so it does not issue a cache registration request to the CPU, and the submodule returns an inquiry result by the coherency request processing to the cache registration request source.

【0016】CPUからライトバック要求が発行される
と、サブモジュールはCPUキャッシュ複製タグの該当
するセットをリードし、ライトバック要求アドレスと一
致するタグエントリを探す。一致するタグエントリがあ
れば、そのタグエントリを無効化する。
When a write-back request is issued from the CPU, the submodule reads the corresponding set of CPU cache duplicate tags and searches for a tag entry that matches the write-back request address. If there is a matching tag entry, invalidate the tag entry.

【0017】[0017]

【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して詳しく説明する。図1は、本発明を実施した
CPUキャッシュ複製タグ備えるマルチプロセッサシス
テムの構成例を示すブロック図である。本システムは、
CPU020、120及びCPU−SCインタフェース
制御部040、140を備えたプロセッサモジュール0
10、110と、共有メモリとしてのメインメモリ70
とが、バスまたはクロスバスイッチ等の任意のシステム
コネクション(SC)60を介して結合された構成であ
る。一般には、プロセッサモジュールは2台以上からな
り、また、共有メモリも一つである必要はない。CPU
020、120は、メインメモリ70上のデータが一時
的に格納されるwウェイセットアソシアティブのCPU
キャッシュ021、121と、ライトバックバッファ0
22、122を含んでいる。CPUキャッシュ021、
121はキャッシュデータメモリとキャッシュタグメモ
リからなるが、ここではCPUキャッシュで総称する。
キャッシュデータメモリには、メインメモリ70上のデ
ータが格納され、キャッシュタグメモリには、当該デー
タのメインメモリ70上のアドレス(タグアドレス)、
データ状態、リプレース制御ビットなどが格納される。
CPU−SCインタフェース制御部040、140に
は、CPUキャッシュ021、121のキャッシュタグ
メモリの複製であるCPUキャッシュ複製タグメモリ
(以下、CPUキャッシュ複製タグ)041、141を
含んでいる。CPUキャッシュ複製タグ041、141
には、後述するように、タグアドレス、リプレース制御
ビット、有効性ビットなどが格納される。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a block diagram showing a configuration example of a multiprocessor system having a CPU cache duplication tag embodying the present invention. This system is
Processor module 0 including CPUs 020 and 120 and CPU-SC interface control units 040 and 140
10, 110, and the main memory 70 as a shared memory
Are connected via an arbitrary system connection (SC) 60 such as a bus or a crossbar switch. Generally, there are two or more processor modules, and it is not necessary to have one shared memory. CPU
020 and 120 are w-way set associative CPUs in which data on the main memory 70 is temporarily stored.
Caches 021 and 121 and write-back buffer 0
22, 122 are included. CPU cache 211,
Reference numeral 121 denotes a cache data memory and a cache tag memory.
Data in the main memory 70 is stored in the cache data memory, and addresses (tag addresses) of the data in the main memory 70 are stored in the cache tag memory.
A data state, a replacement control bit, and the like are stored.
The CPU-SC interface control units 040 and 140 include CPU cache duplicate tag memories (hereinafter, CPU cache duplicate tags) 041 and 141 which are duplicates of the cache tag memories of the CPU caches 21 and 121. CPU cache duplication tags 041, 141
Stores a tag address, a replacement control bit, a validity bit, and the like, as will be described later.

【0018】本マルチプロセッサシステムでは、キャッ
シュコヒーレンシ問題の解決方式として、コヒーレンシ
リクエストによる全キャッシュへの問い合わせを行う方
式を採用するものとする。コヒーレンシリクエストによ
る全キャッシュへの問い合わせは、キャッシュ登録要求
やキャッシュ無効化要求が対象となる。
In the present multiprocessor system, as a method of solving the cache coherency problem, a method of inquiring all caches by a coherency request is adopted. Inquiries to all caches by coherency requests are cache registration requests and cache invalidation requests.

【0019】CPU020、120は所望のデータブロ
ックがCPUキャッシュ021、121に存在しないキ
ャッシュミスの場合、CPUインタフェース030、1
31を介してキャッシュ登録要求を発行し、CPU−S
Cインタフェース制御部040、140、システムコネ
クション60を介して、当該キャッシュ登録要求に対応
するデータを受信し、このデータをCPUキャッシュ0
21、121に登録する機能を持つ。このキャッシュミ
スの際、CPU020、120はw個のブロックからリ
プレース対象のブロックを選択し、選択したブロックが
排他的ダーティデータだった場合、ライトバックバッフ
ァ022、122へ一時的に移動し、適切なタイミング
でCPUインタフェース030、130を介してライト
バック要求を発行する。
When a desired data block does not exist in the CPU caches 21 and 121, the CPUs 020 and 120 perform a CPU interface 030, 1
Issue a cache registration request via CPU 31
The data corresponding to the cache registration request is received via the C interface control units 040 and 140 and the system connection 60, and the data is transmitted to the CPU cache 0.
21 and 121. At the time of this cache miss, the CPUs 020 and 120 select a replacement target block from the w blocks. If the selected block is exclusive dirty data, the CPUs 020 and 120 temporarily move to the write-back buffers 022 and 122, and At the timing, a write-back request is issued via the CPU interfaces 030 and 130.

【0020】また、CPU020、120は、CPUイ
ンタフェース030、130を介してキャッシュ登録要
求、キャッシュ無効化要求等のコヒーレンシ要求を受信
し、適切な応答を行う機能を有する。例えば、CPU0
20、120は、CPU−SCインタフェース制御部0
40、140からキャッシュ登録要求、キャッシュ無効
化要求を受けた時、該キャッシュ登録要求、キャッシュ
無効化要求のアドレスに関してCPUキャッシュ02
1、121を検査する。そして、当該アドレスのデータ
ブロックを保持する場合、該データブロックの状態を適
切に変更し(排他的ダーティ、共有クリーン、排他的ク
リーン、無効)、更に場合によってはライトバック要求
を発行するが、このケースではデータブロックをライト
バックバッファ022、122に移すことはせず、直ち
にシステムコネクション60側に送出する。
The CPUs 020 and 120 have a function of receiving coherency requests such as a cache registration request and a cache invalidation request via the CPU interfaces 030 and 130, and providing an appropriate response. For example, CPU0
20 and 120 are CPU-SC interface control units 0
When a cache registration request or a cache invalidation request is received from any one of the CPU cache 02 and the cache invalidation request 40, 140,
Inspect 1, 121. Then, when the data block of the address is held, the state of the data block is appropriately changed (exclusive dirty, shared clean, exclusive clean, invalid), and in some cases, a write-back request is issued. In this case, the data block is not transferred to the write-back buffers 022 and 122, but is immediately sent to the system connection 60 side.

【0021】CPU−SCインタフェース制御部04
0、140は、CPU020、120から受信したキャ
ッシュ登録要求、キャッシュ無効化要求、ライトバック
要求等を適切に処理する機能を有する。例えば、CPU
020、120からキャッシュ登録要求を受信した場
合、該キャッシュ登録要求をSCインタフェース50を
介してシステムコネクション60に送信し、システムコ
ネクション60から最新のデータを受信してCPU02
0、120にデータリターンする。また、CPU02
0、120からライトバック要求、後述するキャッシュ
無効化書き戻し要求を受信した場合、当該データをシス
テムコネクション60を介してメインメモリ70に反映
させる。さらに、CPU−SCインタフェース制御部0
40、140は、システムコネクション60からSCイ
ンタフェース50を介してキャッシュ登録要求、キャッ
シュ無効化要求等のコヒーレンシ要求を受信し、適切な
応答を行う機能を有する。このCPU−SCインタフェ
ース制御部040、140の処理については、あとで詳
しく説明する。
CPU-SC interface control unit 04
Reference numerals 0 and 140 have a function of appropriately processing a cache registration request, a cache invalidation request, a write-back request, and the like received from the CPUs 020 and 120. For example, CPU
When a cache registration request is received from 020 or 120, the cache registration request is transmitted to the system connection 60 via the SC interface 50, the latest data is received from the system connection 60, and the CPU 02
Data return to 0 and 120. CPU 02
When a write-back request and a cache invalidation write-back request described later are received from 0 and 120, the data is reflected in the main memory 70 via the system connection 60. Further, the CPU-SC interface control unit 0
Each of the functions 40 and 140 has a function of receiving a coherency request such as a cache registration request and a cache invalidation request from the system connection 60 via the SC interface 50, and performing an appropriate response. The processing of the CPU-SC interface control units 040 and 140 will be described later in detail.

【0022】システムコネクション60は、プロセッサ
モジュール010、110から受信したキャッシュ登録
要求、ライトバック要求、キャッシュ無効化書き戻し要
求をメインメモリ70に送信する機能を持つ。さらに、
システムコネクション60は、キャッシュ登録要求とキ
ャッシュ無効化要求はコヒーレンシ要求として、全プロ
セッサモジュールにブロードキャストする機能を持つ。
The system connection 60 has a function of transmitting a cache registration request, a write-back request, and a cache invalidation write-back request received from the processor modules 010 and 110 to the main memory 70. further,
The system connection 60 has a function of broadcasting a cache registration request and a cache invalidation request to all processor modules as a coherency request.

【0023】メインメモリ70は、システムコネクショ
ン60経由でプロセッサモジュール010、110から
のキャッシュ登録要求を受けると、このキャッシュ登録
要求元プロセッサモジュール010、110に、該当す
るデータブロックをSCインタフェース50、システム
コネクション60を介して返答する機能を持つ。また、
メインメモリ70は、システムコネクション60経由で
プロセッサモジュール010、110からのライトバッ
ク要求、キャッシュ無効化書き戻し要求を受けると、こ
のライトバック要求、キャッシュ無効化書き戻し要求の
データブロックが最新データとして、メインメモリ70
上にあるデータを更新する機能を持つ。
When the main memory 70 receives a cache registration request from the processor modules 010 and 110 via the system connection 60, the main memory 70 sends the corresponding data block to the SC interface 50 and the system connection It has the function of replying via the 60. Also,
When the main memory 70 receives the write-back request and the cache invalidation write-back request from the processor modules 010 and 110 via the system connection 60, the data block of the write-back request and the cache invalidation write-back request is set as the latest data. Main memory 70
It has a function to update the data above.

【0024】図2は、CPUキャッシュ複製タグ04
1、141の構成例を示す図である。CPUキャッシュ
021、121は、セット数がkで、ウェイ数(ブロッ
ク数)がwのセットアンシアティブ構成をとる。これに
対して、CPUキャッシュ複製タグ041、141は、
CPUキャッシュ021、121と同一セット数kで、
w+αウェイのセットアソシアティブの構成をとる。C
PUキャッシュ複製タグ041、141のタグエントリ
43は、タグアドレス44、リプレースメント・アルゴ
リズム用ビット(リプレース制御ビット)45、エント
リバリッド(有効性ビット)46を含む。
FIG. 2 shows the CPU cache duplication tag 04
1 is a diagram illustrating a configuration example of 141. FIG. The CPU caches 021 and 121 have a set associative configuration in which the number of sets is k and the number of ways (the number of blocks) is w. On the other hand, the CPU cache copy tags 041 and 141 are
With the same set number k as the CPU caches 211, 121,
A w + α-way set associative configuration is adopted. C
The tag entry 43 of the PU cache copy tags 041 and 141 includes a tag address 44, a replacement algorithm bit (replacement control bit) 45, and an entry validity (validity bit) 46.

【0025】CPUキャッシュ複製タグ041、141
のセット番号決定方法は、CPUキャッシュ021、1
21のセット番号決定と同一である。即ち、CPUキャ
ッシュ複製タグ041、141へアクセスするときのア
ドレスのインデックス部は、CPU020、120がC
PUキャッシュ021、121へアクセスときのアドレ
スのインデックス部と同じである。タグアドレス43に
は、アドレスのタグ部を保持する。リプレースメント・
アルゴリズム用ビット45は、CPUキャッシュ複製タ
グ041、141でのリプレースメント・アルゴリズム
で使用される。エントリバリッド46は、「1」のとき
このタグエントリ42が有効であることを示し、「0」
のときは無効であることを示すビットである。
CPU cache copy tags 041, 141
The set number determination method of the CPU caches 021 and 1
21 is the same as the determination of the set number. That is, the index part of the address when accessing the CPU cache duplication tags 041 and 141 is the
This is the same as the index part of the address when accessing the PU caches 021 and 121. The tag address 43 holds a tag portion of the address. Replacement
The algorithm bit 45 is used in the replacement algorithm in the CPU cache copy tags 041 and 141. When the entry valid 46 is “1”, it indicates that the tag entry 42 is valid, and “0”
Is a bit indicating that it is invalid.

【0026】以下に、図3乃至図7を参照して、CPU
−SCインタフェース制御部040、140の動作を説
明する。このCPU−SCインタフェース制御部04
0、140での主な制御は、CPUキャッシュ複製タグ
041、140のCPUキャッシュ021、121との
一致性確保、及び、CPUキャッシュ複製タグ041、
140を用いたコヒーレンシ問合わせ応答である。
Hereinafter, referring to FIG. 3 to FIG.
-The operation of the SC interface control units 040 and 140 will be described. This CPU-SC interface control unit 04
The main control at 0 and 140 is to ensure the consistency of the CPU cache copy tags 041 and 140 with the CPU caches 21 and 121, and to control the CPU cache copy tags
This is a coherency inquiry response using the 140.

【0027】図3は、CPU−SCインタフェース制御
部040、140が自分のCPU020、120からキ
ャッシュ登録要求を受けた時の動作を示すフローチャー
トである。
FIG. 3 is a flowchart showing the operation when the CPU-SC interface control units 040 and 140 receive a cache registration request from their own CPUs 020 and 120.

【0028】CPU020、120は、メモリリードや
メモリライト時、CPUキャッシュ021、121に所
望のデータが存在しない場合(キャッシュミス)、キャ
ッシュ登録要求を発行し、また、CPUキャッシュ02
1、121の該当セットからプレース対象のブロックを
選択し、システムコネクション60側から受信した当該
キャッシュ登録要求に対応するデータをリプレース対象
のブロックに格納して、対応するキャッシュタグエント
リへのキャッシュ登録要求のタグアドレスの登録、その
他、必要な処理を実行する。また、CPU020、12
0は、リプレース対象のブロックに排他的ダーティデー
タが存在する場合は、事前に該データをライトバックバ
ッファ022、122へ移動し、適当なタイミングでラ
イトバック要求を発行することになる。このライトバッ
ク要求時のCPU−SCインタフェース制御部040、
140の動作については後述する。
When desired data does not exist in the CPU caches 21 and 121 (cache miss) at the time of memory read or memory write, the CPUs 020 and 120 issue a cache registration request.
1, a block to be replaced is selected from the corresponding set of 121, data corresponding to the cache registration request received from the system connection 60 side is stored in the block to be replaced, and a cache registration request to the corresponding cache tag entry is stored. The registration of the tag address and other necessary processing are executed. Also, the CPUs 020 and 12
In the case of 0, when exclusive dirty data exists in the replacement target block, the data is moved to the write-back buffers 022 and 122 in advance and a write-back request is issued at an appropriate timing. CPU-SC interface control unit 040 at the time of this write back request,
The operation of 140 will be described later.

【0029】図3において、キャッシュ登録要求を受け
たCPU−SCインタフェース制御部040、141
は、キャッシュ登録要求のアドレスのインデックス部を
使用してCPUキャッシュ複製タグ041、141の該
当するセットを読み込む(ステップ300)。読み込ん
だ(w+α)個のタグエントリの中からタグアドレスと
キャッシュ登録要求のアドレスのタグ部を比較して一致
するタグエントリを探す(ステップ301)。また、
(w+α)個のタグエントリのエントリバリッドを検査
し、当該セット内に空きタグエントリがあるか否か調べ
る(ステップ302)。もし一致するタグエントリがな
く、空きタグエントリがあった場合は、該空きタグエン
トリのタグアドレスにキャッシュ登録要求のアドレスの
タグ部をセットし、エントリバリッドを有効にセットす
る(ステップ304)。
Referring to FIG. 3, CPU-SC interface control units 040 and 141 receiving a cache registration request
Reads the corresponding set of the CPU cache copy tags 041 and 141 using the index part of the address of the cache registration request (step 300). The tag address is compared with the tag part of the address of the cache registration request from the read (w + α) tag entries to find a matching tag entry (step 301). Also,
The entry validity of the (w + α) tag entries is checked to determine whether there is an empty tag entry in the set (step 302). If there is no matching tag entry and there is an empty tag entry, the tag part of the address of the cache registration request is set to the tag address of the empty tag entry, and the entry valid is set to valid (step 304).

【0030】一致するタグエントリがあった場合、その
タグエントリが有効か否か調べ(ステップ303)、有
効だった場合、CPUキャッシュ複製タグ040、14
0の当該セットには何も変更を行わない。無効だった場
合には、同様にステップ304を実行する。
If there is a matching tag entry, it is checked whether or not the tag entry is valid (step 303).
No changes are made to this set of zeros. If invalid, step 304 is executed similarly.

【0031】一方、一致するタグエントリがなく、空き
タグエントリもない場合、当該セットの(w+α)個の
タグエントリに含まれているリプレースメント・アルゴ
リズム用ビットを使い、LRU等の適切なリプレースメ
ント・アルゴリズムでリプレース対象のタグエントリを
決定し、当該タグエントリのエントリバリッドを無効に
セットする(ステップ305)。そして、このリプレー
ス対象のタグエントリに対応するCPUキャッシュ02
1、121の該当エントリブロックを無効にするための
処理として、該リプレース対象の無効にしたタグエント
リのタグアドレス部が保持する値からアドレスを生成
し、CPUインタフェース030、130からCPU0
20、120へ、このアドレスに対するキャッシュ無効
化要求を発行する(ステップ306)。
On the other hand, if there is no matching tag entry and there is no empty tag entry, the replacement algorithm bits included in the (w + α) tag entries of the set are used, and an appropriate replacement algorithm such as LRU is used. To determine the tag entry to be replaced, and set the entry validity of the tag entry to invalid (step 305). Then, the CPU cache 02 corresponding to the tag entry to be replaced
As a process for invalidating the corresponding entry block 1, 121, an address is generated from the value held in the tag address section of the invalidated tag entry to be replaced, and the CPU interface 030, 130
A cache invalidation request for this address is issued to 20, 20 (step 306).

【0032】キャッシュ無効化要求を受け取ったCPU
020、120は、CPUキャッシュ021、121に
おいて、キャッシュ無効化要求に対応するエントリブロ
ックを無効化する。この時、該ブロックに保持していた
データブロックが排他的ダーティデータだった場合、C
PU020、120は、キャッシュ無効化書き戻し要求
をデータブロックと共に、CPUインタフェース03
0、130を介してCPU−SCインタフェース制御部
040、140に発行することになる。CPU−SCイ
ンタフェース制御部040、140では、このキャッシ
ュ無効化書き戻し要求をシステムコネクション60へ送
出する。
CPU receiving cache invalidation request
020 and 120 invalidate an entry block corresponding to the cache invalidation request in the CPU caches 21 and 121. At this time, if the data block held in the block is exclusive dirty data, C
The PU 020, 120 sends the cache invalidation write back request together with the data block to the CPU interface 03.
0 and 130 to the CPU-SC interface control units 040 and 140. The CPU-SC interface control units 040 and 140 send this cache invalidation write-back request to the system connection 60.

【0033】CPU−SCインタフェース制御部04
0、140では、ステップ305でリプリース対象に決
まったタグエントリを無効化して空タグエントリができ
たので、キャッシュ登録要求をリトライし、該空タグエ
ントリのタグアドレスに、キャッシュ登録要求のアドレ
スのタグ部をセットし、エントリバリッドを有効にセッ
トする(ステップ306)。
CPU-SC interface control unit 04
In steps 0 and 140, the tag entry determined to be replenished in step 305 is invalidated and an empty tag entry is created. Therefore, the cache registration request is retried, and the tag address of the cache registration request is added to the tag address of the empty tag entry. The entry is set, and the entry valid is set effectively (step 306).

【0034】図4は、CPU−SCインタフェース制御
部040、140がシステムコネクション60からキャ
ッシュ登録要求を受けた時の動作を示すフローチャート
である。
FIG. 4 is a flowchart showing an operation when the CPU-SC interface control units 040 and 140 receive a cache registration request from the system connection 60.

【0035】システムコネクション60からキャッシュ
登録要求を受けたCPU−SCインタフェース制御部0
40、140は、キャッシュ登録要求のアドレスのイン
デックス部を使用してCPUキャッシュ複製タグ04
1、141の当該するセットを読み込む(ステップ40
0)。読み込んだ(w+α)個のタグエントリの中から
タグアドレスとキャッシュ登録要求のアドレスのタグ部
を比較して一致するタグエントリを探す(ステップ40
1)。一致するタグエントリがない場合、CPUキャッ
シュ021、121はキャッシュ登録要求のアドレスブ
ロックを保持しないので、CPU020、120に該キ
ャッシュ登録要求を発行しないで(ステップ403)、
該キャッシュ登録要求に対する問い合わせ結果をシステ
ムコネクション60を介してキャッシュ登録要求元のC
PU020、120へ返答する(ステップ404)。ま
た、一致するタグエントリがあった場合、該タグエント
リのエントリバリッドが有効か無効か判定し(ステップ
402)、無効の場合には、同様にステップ403、4
04を実行する。
CPU-SC interface control unit 0 receiving a cache registration request from system connection 60
The CPU cache copy tags 04 and 140 use the index part of the address of the cache registration request.
1 and 141 are read (step 40).
0). From the read (w + α) tag entries, the tag address and the tag part of the address of the cache registration request are compared to find a matching tag entry (step 40).
1). If there is no matching tag entry, the CPU caches 021 and 121 do not hold the address block of the cache registration request, and do not issue the cache registration request to the CPUs 020 and 120 (step 403).
The result of the inquiry to the cache registration request is transmitted to the cache registration request source C via the system connection 60.
Reply to PU020, 120 (step 404). If there is a matching tag entry, it is determined whether the entry validity of the tag entry is valid or invalid (step 402).
Execute 04.

【0036】一方、ステップ401、402で、比較が
一致しかつ当該タグエントリのバリッドが有効である場
合、CPUキャッシュ021、121は問い合わせのキ
ャッシュ登録要求のアドレスを保持していることになる
ので、CPU−SCインタフェース制御部040、14
0は、CPU020、120へキャッシュ登録要求を発
行する(ステップ405)。
On the other hand, if the comparisons match and the validity of the tag entry is valid in steps 401 and 402, the CPU caches 021 and 121 hold the address of the cache registration request of the inquiry. CPU-SC interface control units 040 and 14
0 issues a cache registration request to the CPUs 020 and 120 (step 405).

【0037】CPU−SCインタフェース制御部04
0、140からキャッシュ登録要求を受けたCPU02
0、120は、CPUキャッシュ021、120を検査
し、該当データブロックが排他的ダーティデータを保持
する場合、ライトバック要求を発行するが、このケース
では排他的ダーティデータをライトバックバッファ02
2、122に移すことはせずに、ライトバック要求とと
もにCPU−SCインタフェース制御部040、140
を介してシステムコネクション60側に送出する。そし
て、CPU020、120はCPUキャッシュ021、
120の該当データブロックを無効化する。
CPU-SC interface control unit 04
CPU 02 that has received a cache registration request from 0, 140
0 and 120 check the CPU caches 21 and 120 and issue a write-back request if the data block holds exclusive dirty data. In this case, the exclusive dirty data is written into the write-back buffer 02.
2 and 122, and together with the write-back request, the CPU-SC interface control units 040 and 140
To the system connection 60 side via the Then, the CPUs 020 and 120 execute the CPU cache 211,
The corresponding data block 120 is invalidated.

【0038】図5は、CPU−SCインタフェース制御
部040、140がCPU020、120からキャッシ
ュ無効化要求を受けた時の動作を示すフローチャートで
ある。
FIG. 5 is a flowchart showing the operation when the CPU-SC interface control units 040 and 140 receive a cache invalidation request from the CPUs 020 and 120.

【0039】CPU020、120は、CPUキャッシ
ュ021、121の初期化等、CPUキャッシュ02
1、121の無効化要因が発生した場合、キャッシュ無
効化要求を発行する。このキャッシュ無効化処理で、C
PU020、120は、排他的ダーティデータの存在す
るブロックについては、該データをライトバックバッフ
ァ022、122へ移すことはせず、キャッシュ無効化
書き戻し要求を発行することになる。
The CPUs 020 and 120 perform operations such as initialization of the CPU caches 021, 121 and the like.
When the invalidation factors 1 and 121 occur, a cache invalidation request is issued. In this cache invalidation process, C
The PUs 020 and 120 do not transfer the data to the write-back buffers 022 and 122 for the block in which the exclusive dirty data exists, but issue a cache invalidation write-back request.

【0040】キャッシュ無効化要求を受けたCPU−S
Cインタフェース制御部040、140は、キャッシュ
無効化要求のアドレスのインデックス部を使用してCP
Uキャッシュ複製タグ041、141の当該するセット
を読み込む(ステップ500)。読み込んだ(w+α)
個のタグエントリの中からタグアドレスとキャッシュ無
効化要求のアドレスのタグ部を比較して一致するタグエ
ントリを探し(ステップ501)、一致したタグエント
リのエントリバリッドは有効か無効か判定する(ステッ
プ502)。そして、比較が一致しかつエントリバリッ
ドが有効のタグエントリがあった場合、当該タグエント
リのエントリバリッドを無効にする(ステップ50
3)。タグアドレスが一致するエントリがなく、また、
一致しても、当該タグエントリのエントリバリッドが無
効の場合は、何もしない。
CPU-S that has received a cache invalidation request
The C interface control units 040 and 140 use the index part of the address of the cache invalidation request to
The corresponding set of the U cache copy tags 041, 141 is read (step 500). Read (w + α)
The tag address and the tag portion of the address of the cache invalidation request are compared from each other to find a matching tag entry (step 501), and it is determined whether the entry validity of the matching tag entry is valid or invalid (step 501). 502). Then, if there is a tag entry whose comparison matches and the entry validity is valid, the entry validity of the tag entry is invalidated (step 50).
3). No entry matches the tag address, and
Even if they match, if the entry valid of the tag entry is invalid, nothing is done.

【0041】図6は、CPU−SCインタフェース制御
部040、140がシステムコネクション60からキャ
ッシュ無効化要求を受けた時の動作を示すフローチャー
トである。
FIG. 6 is a flowchart showing the operation when the CPU-SC interface controllers 040 and 140 receive a cache invalidation request from the system connection 60.

【0042】キャッシュコネクション60からキャッシ
ュ無効化要求を受けたCPU−SCインタフェース制御
部040、140は、キャッシュ無効化要求のアドレス
のインデックス部を使用してCPUキャッシュ複製タグ
041、141の当該するセットを読み込む(ステップ
600)。読み込んだ(w+α)個のタグエントリ43
の中からタグアドレスとキャッシュ無効化要求のアドレ
スのタグ部を比較して一致するタグエントリを探す(ス
テップ601)。比較が不一致の場合、CPUキャッシ
ュ021、121にはキャッシュ無効化要求のアドレス
のブロックを保持しないので、CPU020、120に
キャッシュ無効化要求を発行しない(ステップ60
3)。また、タグアドレスの一致するタグエントリがあ
った場合、該タグエントリのエントリバリッドが有効か
無効か判定し(ステップ602)、無効の場合には、同
様にCPU020、120にキャッシュ無効化要求を発
行しない。
The CPU-SC interface control units 040 and 140 that have received the cache invalidation request from the cache connection 60 use the index part of the address of the cache invalidation request to store the corresponding set of the CPU cache copy tags 041 and 141. Read (step 600). (W + α) read tag entries 43
The tag address and the tag part of the address of the cache invalidation request are compared from each other to find a matching tag entry (step 601). If the comparisons do not match, the cache block 211, 121 does not hold the block of the address of the cache invalidation request, so that no cache invalidation request is issued to the CPUs 020, 120 (step 60).
3). If there is a tag entry with a matching tag address, it is determined whether the entry validity of the tag entry is valid or invalid (step 602). If invalid, a cache invalidation request is similarly issued to the CPUs 020 and 120. do not do.

【0043】一方、ステップ601、602で、比較が
一致しかつタグエントリバリッドが有効のエントリがあ
った場合、当該タグエントリのエントリバリッドを無効
にする(ステップ604)。また、CPUキャッシュ0
21、121はキャッシュ無効化要求のアドレスのブロ
ックを保持していることになるので、CPU020、1
20へキャッシュ無効化要求を発行する(ステップ60
5)。
On the other hand, if there is an entry in which the comparison matches and the tag entry valid is valid in steps 601 and 602, the entry valid of the tag entry is invalidated (step 604). Also, CPU cache 0
21 and 121 hold the block of the address of the cache invalidation request.
Issue a cache invalidation request to the client 20 (step 60)
5).

【0044】図7は、CPU−SCインタフェース制御
部040、140がCPU020、120からライトバ
ック要求を受けた時の動作を示すフローチャートであ
る。
FIG. 7 is a flowchart showing the operation when the CPU-SC interface control units 040 and 140 receive a write-back request from the CPUs 020 and 120.

【0045】先に述べたように、CPU020、120
は、CPUキャッシュ021、121のキャッシュミス
に伴いキャッシュ登録要求を発行し、リプレース対象の
ブロックを選択するが、このブロックが排他的ダーティ
データだった場合、該ブロックをライトバックバッファ
022、122へ移動し、適切なタイミングでライトバ
ック要求を発行する。また、CPU020、120は、
他CPUからコヒーレンシ問合わせのキャッシュ登録要
求を受信し、CPUキャッシュ021、121を検査し
て、該当ブロックが排他的ダーティデータだった場合、
同様にライトバック要求を発行する。ちだし、この場合
は、排他的ダーティデータをライトバックバッファ02
2、122へ移動することはせずに、ライトバック要求
とともにCPU−SCインタフェース制御部040、1
40を介してシステムコネクション60に送出する。
As described above, the CPUs 020, 120
Issues a cache registration request in response to a cache miss in the CPU caches 21 and 121, and selects a block to be replaced. If this block is exclusive dirty data, the block is moved to the write-back buffers 022 and 122. Then, a write-back request is issued at an appropriate timing. In addition, the CPUs 020 and 120
When a cache registration request for a coherency inquiry is received from another CPU, the CPU caches 021 and 121 are checked, and when the block is exclusive dirty data,
Similarly, a write-back request is issued. In this case, the exclusive dirty data is stored in the write-back buffer 02.
2, 122 without moving to the CPU-SC interface control units 040, 1 along with the write-back request.
The data is transmitted to the system connection 60 via the communication terminal 40.

【0046】ライトバック要求を受けたCPU−SCイ
ンタフェース制御部040、140は、ライトバック要
求のアドレスのインデックス部を使用してCPUキャッ
シュ複製タグ041、141の該当するセットを読み込
む(ステップ700)。読み込んだ(w+α)個のタグ
エントリの中からタグアドレスとライトバック要求のア
ドレスのタグ部を比較して一致するタグエントリを探す
(ステップ701)。タグアドレスの一致するタグエン
トリがあった場合、そのエントリバリッドが有効か無効
か判定する(ステップ702)。比較が一致しかつエン
トリバリッドが有効のタグエントリがあった場合、当該
タグエントリのエントリバリッドを無効にする(ステッ
プ703)。
The CPU-SC interface controllers 040 and 140 that have received the write-back request read the corresponding set of the CPU cache copy tags 041 and 141 using the index part of the address of the write-back request (step 700). The tag address is compared with the tag part of the address of the write-back request from the read (w + α) tag entries, and a matching tag entry is searched (step 701). If there is a tag entry with a matching tag address, it is determined whether the entry valid is valid or invalid (step 702). If there is a tag entry whose comparison matches and the entry validity is valid, the entry validity of the tag entry is invalidated (step 703).

【0047】一方、タグアドレスの一致するタグエント
リがなかった場合、あるいは、タグアドレスの一致する
タグエントリがあっても、そのエントリバリッドが無効
の場合、CPUキャッシュ複製タグ041、141の維
持ができていないとして、エラーとなる。
On the other hand, if there is no tag entry with a matching tag address, or if there is a tag entry with a matching tag address but its entry validity is invalid, the CPU cache duplicate tags 041 and 141 can be maintained. Otherwise, an error occurs.

【0048】次に、図8乃至図13を参照して、本実施
の形態のCPUキャッシュ複製タグ041、141の具
体的遷移例を説明する。なお、ここでは、CPUキャッ
シュ021とCPUキャッシュ複製タグ041を例に説
明する。また、ウェイ数はw=4、α=1の、CPUキ
ャッシュ021を4ウェイ、CPUキャッシュ複製タグ
041を5ウェイとする。
Next, specific transition examples of the CPU cache copy tags 041 and 141 of the present embodiment will be described with reference to FIGS. Here, the CPU cache 021 and the CPU cache copy tag 041 will be described as an example. The number of ways is w = 4, α = 1, and the CPU cache 021 is 4 ways and the CPU cache duplicate tag 041 is 5 ways.

【0049】図8乃至図13において、CPUキャッシ
ュ021とCPUキャッシュ複製タグ041のインデッ
クスは同一アドレス部を使用して読み込まれる。
8 to 13, the indexes of the CPU cache 021 and the CPU cache copy tag 041 are read using the same address portion.

【0050】図8は、CPU020から発行されるキャ
ッシュ登録/ライトバック要求によってCPUキャッシ
ュ複製タグ041のセット/リセットを行う一連の動作
例である。
FIG. 8 shows an example of a series of operations for setting / resetting the CPU cache copy tag 041 in response to a cache registration / write-back request issued from the CPU 020.

【0051】図8(1)は初期状態を示す。この状態で
は、CPUキャッシュ021のセット番号aのそれぞれ
のタグエントリにタグアドレスA、B、C、Dのデータ
ブロックが存在する。これに対応して、CPUキャッシ
ュ複製タグ041のセット番号aのタグエントリ(ウェ
イ0〜3)にタグアドレスA、B、C、Dがセットされ
ている。
FIG. 8A shows an initial state. In this state, data blocks of tag addresses A, B, C, and D exist in each tag entry of the set number a of the CPU cache 021. Correspondingly, tag addresses A, B, C, and D are set in the tag entries (way 0 to 3) of the set number a of the CPU cache copy tag 041.

【0052】図8(2)はCPU020からキャッシュ
登録要求Eが発行された場合を示している。図8(1)
の状態から、CPU020からCPUキャッシュ021
のキャッシュミスによるセット番号aのキャッシュ登録
要求Eが発行されたとする。CPU020では、新規の
キャッシュ登録データEの格納ブロックを確保する為
に、例えばセット番号aのタグアドレスAのデータブロ
ックを置換(リプレース)対象とするが、該データブロ
ックAが排他的ダーティデータであったため、ライトバ
ックバッファ022に移動(キューイング)し、外部メ
モリへのライトバックを抑止する。そして、CPU02
0は、キャッシュ登録要求EをCPU−SCインタフェ
ース制御部040に出力する。
FIG. 8B shows a case where a cache registration request E is issued from the CPU 020. Fig. 8 (1)
From the CPU 020 to the CPU cache 021
It is assumed that a cache registration request E of the set number a has been issued due to a cache miss of. In order to secure a storage block for the new cache registration data E, the CPU 020 replaces (replaces) the data block of the tag address A with the set number a, for example. However, the data block A is exclusive dirty data. Therefore, the data is moved (queued) to the write-back buffer 022, and the write-back to the external memory is suppressed. And CPU02
0 outputs the cache registration request E to the CPU-SC interface control unit 040.

【0053】キャッシュ登録要求Eを受けたCPU−S
Cインタフェース制御部040は、CPUキャッシュ複
製タグ041のセット番号aのタグエントリをリードし
(ステップ300)、ウェイ0〜3はにはEと別のタグ
アドレスA、B、C、Dがセットされており、ウェイ4
が空きであるため、該ウェイ4の空きタグエントリにキ
ャッシュ登録要求Eのアドレスをセットし(ステップ3
04)、システムコネクション60へキャッシュ登録要
求Eを発行する。
CPU-S receiving cache registration request E
The C interface control unit 040 reads the tag entry of the set number a of the CPU cache copy tag 041 (step 300), and the tag addresses A, B, C, and D different from E are set in the ways 0 to 3. And way 4
Is empty, the address of the cache registration request E is set in the empty tag entry of the way 4 (step 3).
04), issue a cache registration request E to the system connection 60;

【0054】図8(3)はCPU020からライトバッ
ク要求Aが発行された場合を示している。図8(2)の
状態より、CPU020からライトバックバッファ02
2内のタグアドレスAのライトバック要求AがCPU−
SCインタフェース制御部040に発行される。ライト
バック要求Aを受け取ったCPU−SCインタフェース
制御部040は、CPUキャッシュ複製タグ041のセ
ット番号aをリードし(ステップ700)、ライトバッ
ク要求Aと同じタグアドレスAでエントリバリッドが有
効なタグエントリのウェイ0を見つけて(ステップ70
1、702)、そのタグエントリのエントリバリッドを
無効にする(ステップ703)。
FIG. 8C shows a case where the CPU 020 issues a write-back request A. From the state of FIG. 8B, the CPU 020 sends the write-back buffer 02
2, the write-back request A of the tag address A in the CPU 2
Issued to the SC interface control unit 040. Upon receiving the write-back request A, the CPU-SC interface control unit 040 reads the set number a of the CPU cache copy tag 041 (step 700), and the tag entry with the same tag address A as the write-back request A and entry validity is valid. Find way 0 (step 70
1, 702), and invalidates the entry validity of the tag entry (step 703).

【0055】図9は、CPU020から発行されるセッ
ト番号の違うキャッシュ登録/ライトバック要求によっ
てCPUキャッシュ複製タグ041のセット/リセット
を行う一連の動作例である。
FIG. 9 shows an example of a series of operations for setting / resetting the CPU cache copy tag 041 in response to a cache registration / write-back request issued from the CPU 020 having a different set number.

【0056】図9(1)は初期状態を示す。この状態で
は、CPUキャッシュ022のセット番号aのタグエン
トリにタグアドレスB、C、D、Eのデータブロックが
存在し、セット番号bのタグエントリにタグアドレス
F、G、H、Iのデータブロックが存在する。また、ラ
イトバックバッファ022には、セット番号aのタグア
ドレスAのデータブロックが存在する。CPUキャッシ
ュ複製タグ041では、CPUキャッシュ022に対応
して、セット番号aのウェイ0〜4のタグエントリには
タグアドレスA、B、C、D、Eがセットされ、セット
番号bのウェイ1〜4のタグエントリにはタグアドレス
F、G、H、Iがセットされているとする。
FIG. 9A shows an initial state. In this state, data blocks of tag addresses B, C, D, and E exist in the tag entry of the set number a in the CPU cache 022, and data blocks of the tag addresses F, G, H, and I exist in the tag entry of the set number b. Exists. In the write-back buffer 022, there is a data block of the tag address A of the set number a. In the CPU cache copy tag 041, tag addresses A, B, C, D, and E are set in the tag entries of the ways 0 to 4 of the set number a corresponding to the CPU cache 022, and the ways 1 to 4 of the set number b are set. It is assumed that tag addresses F, G, H, and I are set in the tag entry 4.

【0057】図9(2)はCPU020からキャッシュ
登録要求Jが発行された場合を示している。図9(1)
の状態から、CPU020からCPUキャッシュ022
のキャッシュミスによるセット番号bのキャッシュ登録
要求Jが発生したとする。CPU020では、新規のキ
ャッシュ登録データJの格納ブロックを確保する為に、
セット番号bの例えばタグアドレスIのデータブロック
をリプレース対象とするが、該データブロックIが排他
的ダーティデータの場合、それをライトバックバッファ
022にキューイングし、外部メモリへのライトバック
を抑止する。そして、CPU020は、キャッシュ登録
要求JをCPU−SCインタフェース制御部040に出
力する。
FIG. 9B shows a case where a cache registration request J is issued from the CPU 020. FIG. 9 (1)
From the CPU 020 to the CPU cache 022
Assume that a cache registration request J of the set number b has occurred due to a cache miss of. In the CPU 020, in order to secure a storage block for new cache registration data J,
The data block of, for example, the tag address I of the set number b is to be replaced. If the data block I is exclusive dirty data, the data block is queued in the write-back buffer 022 and write-back to the external memory is suppressed. . Then, the CPU 020 outputs the cache registration request J to the CPU-SC interface control unit 040.

【0058】キャッシュ登録要求Jを受けたCPU−S
Cインタフェース制御部040は、CPUキャッシュ複
製タグ041のセット番号bのタグエントリをリードし
(ステップ301)、ウェイ1〜4にはJと別のタグア
ドレスF、G、H、Iがセットされており、ウェイ0が
空きであるため、該ウェイ0の空きタグエントリにキャ
ッシュ登録要求Jのアドレスをセットし(ステップ30
4)、システムコネクション60へキャッシュ登録要求
を発行する。
CPU-S receiving cache registration request J
The C interface control unit 040 reads the tag entry of the set number b of the CPU cache copy tag 041 (step 301), and the tag addresses F, G, H, and I different from J are set in the ways 1 to 4. Since the way 0 is empty, the address of the cache registration request J is set in the empty tag entry of the way 0 (step 30).
4) Issue a cache registration request to the system connection 60.

【0059】図9(3)はCPU020からライトバッ
ク要求Aが発行された場合を示している。図9(2)の
状態より、CPU020からライトバックバッファ02
2内のタグアドレスAのライトバック要求AがCPU−
SCインタフェース制御部040に発行されたとする。
ライトバック要求Aを受け取ったCPU−SCインタフ
ェース制御部040は、CPUキャッシュ複製タグ04
1のセット番号aをリードし(ステップ700)、ライ
トバック要求Aと同じタグアドレスAでエントリバリッ
ドが有効なタグエントリのウェイ0を見つけて(ステッ
プ701、702)、そのタグエントリのエントリバリ
ッドを無効にする(ステップ703)。
FIG. 9C shows a case where the CPU 020 issues a write-back request A. From the state of FIG. 9B, the CPU 020 sends the write-back buffer 02
2, the write-back request A of the tag address A in the CPU 2
It is assumed that it has been issued to the SC interface control unit 040.
Upon receiving the write-back request A, the CPU-SC interface control unit 040 sets the CPU cache copy tag 04
A set number a of 1 is read (step 700), a way 0 of a tag entry whose entry validity is valid is found at the same tag address A as the write back request A (steps 701 and 702), and the entry validity of the tag entry is Invalidate (step 703).

【0060】図10は、CPU020から発行されるキ
ャッシュ登録要求に対して、CPUキャッシュ複製タグ
041の該当するセットのタグエントリに空きがない時
の一連の動作例である。
FIG. 10 shows a series of operation examples when there is no free space in the tag entry of the corresponding set of the CPU cache copy tag 041 in response to the cache registration request issued from the CPU 020.

【0061】図10(1)は初期状態を示す。この状態
は、図8(2)の状態にあたる。ライトバックバッファ
022には、セット番号aにあたるタグアドレスEのデ
ータブロックが存在していて、CPUキャッシュ021
のセット番号aのタグエントリそれぞれにA、B、C、
Dのデータブロックが存在する。そして、このCPUキ
ャッシュ021に対応して、CPUキャッシュ複製タグ
041のセット番号aのそれぞれのタグエントリにもタ
グアドレスA、B、C、D、Eがセットされている。
FIG. 10A shows an initial state. This state corresponds to the state shown in FIG. The data block of the tag address E corresponding to the set number a exists in the write-back buffer 022, and the CPU cache 021
A, B, C,
There are D data blocks. The tag addresses A, B, C, D, and E are also set in the respective tag entries of the set number a of the CPU cache copy tag 041 corresponding to the CPU cache 21.

【0062】図10(2)はCPU020からキャッシ
ュ登録要求Fが発行された場合を示している。図10
(1)の状態から、CPU020からCPUキャッシュ
021のキャッシュミスによるセット番号aのキャッシ
ュ登録要求Fが発生したとする。CPU020では、新
規のキャッシュ登録データFの格納ブロックを確保する
為に、セット番号aの例えばタグアドレスCのデータブ
ロックをリプレース対象とするが、該データブロックC
が排他的ダーティデータの場合、該ブロックCをライト
バックバッファ022にキューイングし、外部メモリへ
のライトバックを抑止する。そして、CPU020は、
キャッシュ登録要求FをCPU−SCインタフェース制
御部040に出力する。
FIG. 10B shows a case where a cache registration request F is issued from the CPU 020. FIG.
Assume that a cache registration request F with a set number a has occurred from the CPU 020 due to a cache miss in the CPU cache 021 from the state of (1). In the CPU 020, in order to secure a storage block for the new cache registration data F, the data block of, for example, the tag address C of the set number a is to be replaced.
Is exclusive dirty data, the block C is queued in the write-back buffer 022, and write-back to the external memory is suppressed. Then, the CPU 020
The cache registration request F is output to the CPU-SC interface control unit 040.

【0063】キャッシュ登録要求Fを受けたCPU−S
Cインタフェース制御部040は、CPUキャッシュ複
製タグ041のセット番号aのタグエントリをリードし
(ステップ300)、全てのウェイがFとは別のタグア
ドレスでセットされているため、CPUキャッシュ複製
タグ041のタグエントリを空ける動作を行う(ステッ
プ301、302、305)。例えば、リプレースメン
ト・アルゴリズムによりタグエントリDを選択した場
合、CPU−SCインタフェース制御部040は、この
タグエントリDを無効化し、同時に、CPU020に対
してキャッシュ無効化要求Dを発行する(ステップ30
6)。
CPU-S receiving cache registration request F
The C interface control unit 040 reads the tag entry of the set number a of the CPU cache copy tag 041 (step 300), and since all the ways are set with a tag address different from F, the CPU cache copy tag 041. (Steps 301, 302, and 305). For example, when the tag entry D is selected by the replacement algorithm, the CPU-SC interface control unit 040 invalidates the tag entry D and simultaneously issues a cache invalidation request D to the CPU 020 (step 30).
6).

【0064】図10(3)はキャッシュ無効化要求Dに
もとづくキャッシュ無効化書き戻し要求Dの発行を示し
ている。キャッシュ無効化要求Dを受けたCPU020
は、コヒーレンシ制御Dの処理として、CPUキャッシ
ュ021のセット番号aにセットされているタグアドレ
スDのデータブロックを無効化するが、該データブロッ
クDが、排他的ダーティデータの場合、キャッシュ無効
化書き戻し要求DをCPU−SCインタフェース制御部
040を介してシステムコネクション60に発行し、該
排他的ダーティデータをシステムコネクション60に送
出する。このケースでは、CPU020は排他的ダーテ
ィデータDをライトバッファ022に格納することはし
ない。システムコネクション60では、キャッシュ無効
化書き戻し要求Dに伴って送られてくる排他的ダーティ
データをメインメモリ70に書き戻す。
FIG. 10C shows the issuance of the cache invalidation write-back request D based on the cache invalidation request D. CPU 020 that has received the cache invalidation request D
Invalidates the data block of the tag address D set in the set number a of the CPU cache 021 as a process of the coherency control D. If the data block D is exclusive dirty data, the cache invalidation write A return request D is issued to the system connection 60 via the CPU-SC interface control unit 040, and the exclusive dirty data is sent to the system connection 60. In this case, the CPU 020 does not store the exclusive dirty data D in the write buffer 022. In the system connection 60, the exclusive dirty data sent with the cache invalidation write-back request D is written back to the main memory 70.

【0065】図10(4)はCPU−SCインタフェー
ス制御部040でのキャッシュ登録要求Fのリトライ動
作を示している。図10(2)、(3)の状態より、C
PUキャッシュ複製タグ041のセット番号aにタグエ
ントリの空きが出来たので、CPU−SCインタフェー
ス制御部040ではキャッシュ登録要求Fをリトライす
る。即ち、キャッシュ登録要求Fにより、CPU−SC
インタフェース制御部040はCPUキャッシュ複製タ
グ041のセット番号aのタグエントリをリードし、ウ
ェイ0〜2、4にはFと一致しないタグアドレスがセッ
トされ、ウェイ3のタグエントリが空いているので、キ
ャッシュ登録要求Fのタグアドレスをウェイ3のタグエ
ントリにセットし、そのエントリバリッドを有効にする
(ステップ307)。
FIG. 10D shows the retry operation of the cache registration request F in the CPU-SC interface control unit 040. From the states of FIGS. 10 (2) and (3), C
Since there is a space for a tag entry in the set number a of the PU cache copy tag 041, the CPU-SC interface control unit 040 retries the cache registration request F. That is, the cache registration request F causes the CPU-SC
The interface control unit 040 reads the tag entry of the set number a of the CPU cache copy tag 041, and a tag address that does not match F is set in the ways 0 to 2 and 4, and the tag entry of the way 3 is empty. The tag address of the cache registration request F is set in the tag entry of way 3 and its entry validity is validated (step 307).

【0066】図11は、システムコネクション60から
発行されたキャッシュ登録要求によってCPUキャッシ
ュ複製タグ041のリセットを行う一連の動作例であ
る。
FIG. 11 shows an example of a series of operations for resetting the CPU cache copy tag 041 in response to a cache registration request issued from the system connection 60.

【0067】図11(1)は初期状態を示す。この状態
では、CPUキャッシュ021のセット番号aのそれぞ
れのタグエントリにタグアドレスA、B、C、Dのデー
タブロックが存在する。これに対応して、CPUキャッ
シュ複製タグ041のセット番号aのウェイ0〜3のタ
グエントリにタグアドレス44A、B、C、Dがセット
されている。
FIG. 11A shows an initial state. In this state, data blocks of tag addresses A, B, C, and D exist in each tag entry of the set number a of the CPU cache 021. Correspondingly, tag addresses 44A, B, C, and D are set in the tag entries of ways 0 to 3 of the set number a of the CPU cache copy tag 041.

【0068】図11(2)はシステムコネクション60
からキャッシュ登録要求Bが発行された場合を示してい
る。図11(1)の状態から、他CPU120からCP
Uキャッシュ121のキャッシュミスによるセット番号
aのキャッシュ登録要求Bが発生したとする。システム
コネクション60によりブロードキャストされたキャッ
シュ登録要求Bを受けたCPU−SCインタフェース制
御部040は、CPUキャッシュ複製タグ041のセッ
ト番号aのタグエントリをリードし(ステップ40
0)、キャッシュ登録要求Bと同じタグアドレスAでエ
ントリバリッドが有効なタグエントリのウェイ1を見つ
けたので(ステップ401、402)、CPU020に
キャッシュ登録要求Bを発行する(ステップ405)。
FIG. 11B shows the system connection 60.
Shows a case where a cache registration request B has been issued from. From the state of FIG.
Assume that a cache registration request B of the set number a has occurred due to a cache miss in the U cache 121. Upon receiving the cache registration request B broadcasted by the system connection 60, the CPU-SC interface control unit 040 reads the tag entry of the set number a of the CPU cache copy tag 041 (step 40).
0), since the way 1 of the valid tag entry is found at the same tag address A as the cache registration request B (steps 401 and 402), the cache registration request B is issued to the CPU 020 (step 405).

【0069】図11(3)はライトバック要求Bの実行
を示している。他CPU120からのキャッシュ登録要
求Bを受けたCPU020はコヒーレンシ制御Bの処理
として、CPUキャッシュ021のセット番号aにセッ
トされているタグアドレスBのデータブロックが排他的
ダーティデータの場合、該データBが最新のデータなの
で、発行元のCPU120に該最新のデータBをリター
ンさせ、また、メインメモリ70に書き戻すべく、当該
データブロックBを無効化し、ライトバック要求BをC
PU−SCインタフェース制御部040に発行し、該排
他的ダーティデータBをCPU−SCインタフェース制
御部040に送出する。このケースでは、CPU020
は排他的ダーティデータBをライトバックバッファ02
2に格納することはしない。ライトバック要求Bを受け
取ったCPU−SCインタフェース制御部040は、C
PUキャッシュ複製タグ041のセット番号aをリード
し(ステップ700)、ライトバック要求Bと同じタグ
アドレスBでエントリバリッドが有効なタグエントリの
ウェイ1を見つけて(ステップ701、702)、その
タグエントリのエントリバリッドを無効にする(ステッ
プ703)。そして、ライトバック要求Bをメインメモ
リ70に反映させるべくシステムコネクション60へ発
行し、排他的ダーティデータBを渡す。
FIG. 11C shows execution of the write-back request B. The CPU 020 that has received the cache registration request B from the other CPU 120 performs the coherency control B process. If the data block of the tag address B set in the set number a of the CPU cache 021 is exclusive dirty data, the data B Since this is the latest data, the latest data B is returned to the issuing CPU 120, and the data block B is invalidated in order to write it back to the main memory 70.
The exclusive dirty data B is issued to the PU-SC interface control unit 040 and sent to the CPU-SC interface control unit 040. In this case, CPU020
Writes exclusive dirty data B to write-back buffer 02
2 is not stored. Upon receiving the write-back request B, the CPU-SC interface control unit 040
The set number a of the PU cache copy tag 041 is read (step 700), and a way 1 of a tag entry whose entry validity is valid at the same tag address B as the write-back request B is found (steps 701 and 702). Is invalidated (step 703). Then, the write-back request B is issued to the system connection 60 so as to be reflected in the main memory 70, and the exclusive dirty data B is passed.

【0070】システムコネクション60では、排他的ダ
ーティデータBをメインメモリ70に書き戻し、また、
CPU120に対し、キャッシュ登録要求Bの応答とし
て最新の当該データBを転送する。なお、システムコネ
クション60では、CPU120に対して、キャッシュ
登録要求Bの応答としてCPU020が最新のデータを
持っていたことを通知し、この通知を受けて、CPU1
20がメインメモリ70をアクセスすることでもよい。
In the system connection 60, the exclusive dirty data B is written back to the main memory 70,
The latest data B is transferred to the CPU 120 as a response to the cache registration request B. Note that the system connection 60 notifies the CPU 120 that the CPU 020 has the latest data as a response to the cache registration request B.
20 may access the main memory 70.

【0071】図12は、システムコネクション60から
発行されたキャッシュ無効化要求によってCPUキャッ
シュ複製タグ041のリセットを行う一連の動作例であ
る。
FIG. 12 shows an example of a series of operations for resetting the CPU cache copy tag 041 in response to a cache invalidation request issued from the system connection 60.

【0072】図12(1)は初期状態を示す。この状態
では、CPUキャッシュ021のセット番号aのウェイ
0〜3のそれぞれのタグエントリにタグアドレスA、
B、C、Dのデータブロックが存在する。これに対応し
て、CPUキャッシュ複製タグ041のセット番号aの
ウェイ0〜3のそれぞれのタグエントリにタグアドレス
A、B、C、Dがセットされている。
FIG. 12A shows an initial state. In this state, the tag addresses A,
There are B, C, and D data blocks. Correspondingly, tag addresses A, B, C, and D are set in respective tag entries of ways 0 to 3 of the set number a of the CPU cache copy tag 041.

【0073】図12(2)はシステムコネクション60
からキャッシュ無効化要求Cが発行された場合を示して
いる。図12(1)の状態から、他CPU120からセ
ット番号aのキャッシュ無効化要求Cが発生したとす
る。システムコネクション60によりブロードキャスト
されたキャッシュ無効化要求Cを受けたCPU−SCイ
ンタフェース制御部040は、CPUキャッシュ複製タ
グ041のセット番号aのタグエントリをリードし(ス
テップ600)、キャッシュ無効化要求Cと同じタグア
ドレス44Cでエントリバリッドが有効なタグエントリ
(ウェイ2)を見つけたので(ステップ601、60
2)、そのタグエントリのエントリバリッドを無効にし
(ステップ604)、CPU020にキャッシュ無効化
要求Cを発行する(ステップ605)。
FIG. 12B shows the system connection 60.
Shows a case where a cache invalidation request C has been issued from. It is assumed that a cache invalidation request C with a set number a has been issued from another CPU 120 from the state of FIG. Upon receiving the cache invalidation request C broadcast by the system connection 60, the CPU-SC interface control unit 040 reads the tag entry of the set number a of the CPU cache copy tag 041 (step 600), and Since the entry valid found a valid tag entry (way 2) at the same tag address 44C (steps 601 and 60)
2), invalidate the entry validity of the tag entry (step 604), and issue a cache invalidation request C to the CPU 020 (step 605).

【0074】図12(3)はキャッシュ無効化書き戻し
要求Cの実行を示している。他CPU120からのキャ
ッシュ無効化要求Cを受けたCPU020は、コヒーレ
ンシ制御Cの処理として、CPUキャッシュ021のセ
ット番号aにセットされているタグアドレスCのデータ
ブロックを無効化するが、該データブロックCが排他的
ダーティデータの場合、キャッシュ無効化書き戻し要求
CをCPU−SCインタフェース制御部040を介して
システムコネクション60に発行し、該排他的ダーティ
データをシステムコネクション60に送る。システムコ
ネクション60では、ダーティデータをメインメモリ7
0に書き戻す。
FIG. 12C shows execution of the cache invalidation write-back request C. Upon receiving the cache invalidation request C from the other CPU 120, the CPU 020 invalidates the data block of the tag address C set in the set number a of the CPU cache 021 as a process of the coherency control C. Issues a cache invalidation write back request C to the system connection 60 via the CPU-SC interface control unit 040, and sends the exclusive dirty data to the system connection 60. The system connection 60 stores dirty data in the main memory 7.
Write back to 0.

【0075】図13は、CPU020から発行されるキ
ャッシュ登録要求によってCPUキャッシュ複製タグ0
41のセット/リセットを行う一連の動作の別の例であ
る。
FIG. 13 shows a CPU cache copy tag 0 in response to a cache registration request issued from the CPU 020.
41 is another example of a series of operations for setting / resetting 41.

【0076】図13(1)は初期状態を示す。この状態
は、CPUキャッシュ021のセット番号aのそれぞれ
のタグエントリにタグアドレスA、B、C、Dのデータ
ブロックが存在する。これに対応して、CPUキャッシ
ュ複製タグ041のセット番号aのウェイ0〜3のそれ
ぞれのタグエントリにタグアドレスA、B、C、Dがセ
ットされている。
FIG. 13A shows an initial state. In this state, data blocks of tag addresses A, B, C, and D exist in each tag entry of the set number a of the CPU cache 021. Correspondingly, tag addresses A, B, C, and D are set in respective tag entries of ways 0 to 3 of the set number a of the CPU cache copy tag 041.

【0077】図13(2)はCPU020からキャッシ
ュ登録要求Eが発行された場合を示している。図13
(1)の状態から、CPU020からCPUキャッシュ
021のキャッシュミスによるセット番号aのキャッシ
ュ登録要求Eが発生したとする。CPU020は新規の
キャッシュ登録データEの格納ブロックを確保する為
に、セット番号aの例えばタグアドレスAのデータブロ
ックを置換(リプレース)対象とするが、この例では、
データブロックAは排他的ダーティデータでなかった
為、該データブロックAをライトバックバッファ22に
移動(キューイング)することはしない。CPU020
は、キャッシュ登録要求EをCPU−SCインタフェー
ス制御部040に出力する。
FIG. 13B shows a case where a cache registration request E is issued from the CPU 020. FIG.
Assume that a cache registration request E of the set number a has occurred from the state of (1) due to a cache miss of the CPU cache 21 from the CPU 020. In order to secure a storage block for new cache registration data E, the CPU 020 replaces (replaces) a data block with a set number a, for example, a tag address A. In this example,
Since the data block A is not exclusive dirty data, the data block A is not moved (queued) to the write-back buffer 22. CPU020
Outputs the cache registration request E to the CPU-SC interface control unit 040.

【0078】キャッシュ登録要求Eを受けたCPU−S
Cインタフェース制御部040は、CPUキャッシュ複
製タグ041のセット番号aのタグエントリをリードし
(ステップ300)、ウェイ0〜3にはEと一致しない
タグアドレスがセットされ、ウェイ4が空いているの
で、このウェイ4の空きタグエントリにキャッシュ登録
要求Eのアドレスをセットし(ステップ301、30
2、304)、システムコネクション60へキャッシュ
登録要求を発行する。
CPU-S receiving cache registration request E
The C interface control unit 040 reads the tag entry of the set number a of the CPU cache copy tag 041 (step 300), and a tag address not matching E is set in the ways 0 to 3, and the way 4 is empty. The address of the cache registration request E is set in the empty tag entry of this way 4 (steps 301 and 30).
2, 304), and issues a cache registration request to the system connection 60.

【0079】図13(3)はCPU020から次にキャ
ッシュ登録要求Fが発行された場合を示している。図1
3(2)の状態から、CPU020からCPUキャッシ
ュ021のキャッシュミスによるセット番号aのキャッ
シュ登録要求Fが発生したとする。CPU020は、新
規のキャッシュ登録データFの格納ブロックを確保する
為に、セット番号aのタグアドレスCのデータブロック
をリプレース対象とするが、該データブロックCが排他
的ダーティデータであったためライトバックバッファ0
22にキューイングし、外部メモリへのライトバックを
抑止する。そして、CPU020は、キャッシュ登録要
求FをCPU−SCインタフェース制御部040に出力
する。
FIG. 13C shows a case where the CPU 020 issues a cache registration request F next. Figure 1
Assume that a cache registration request F with a set number a has occurred from the CPU 020 due to a cache miss in the CPU cache 021 from the state of 3 (2). The CPU 020 replaces the data block of the tag address C with the set number a in order to secure a storage block of the new cache registration data F. However, since the data block C is exclusive dirty data, the write-back buffer 0
22 to suppress write-back to the external memory. Then, the CPU 020 outputs the cache registration request F to the CPU-SC interface control unit 040.

【0080】キャッシュ登録要求Fを受けたCPU−S
Cインタフェース制御部040は、CPUキャッシュ複
製タグ041のセット番号aのタグエントリをリードし
(ステップ301)、全てのウェイには0〜4にFと一
致しないタグアドレスがセットされているので、CPU
キャッシュ複製タグ041のセット番号aからタグエン
トリを空ける動作を行う(ステップ305)。CPU−
SCインタフェース制御部040は、リプレースメント
・アルゴリズムにより、例えばウェイ0のタグエントリ
Aを選択した場合、該タグエントリAのエントリバリッ
ドを無効にし、同時に、CPU020に対してキャッシ
ュ無効要求Aを発行する(ステップ306)。
CPU-S receiving cache registration request F
The C interface control unit 040 reads the tag entry of the set number a of the CPU cache copy tag 041 (step 301), and the tag addresses that do not match F are set to 0 to 4 in all the ways.
An operation to empty a tag entry from the set number a of the cache copy tag 041 is performed (step 305). CPU-
When, for example, the tag entry A of the way 0 is selected by the replacement algorithm, the SC interface control unit 040 invalidates the entry validity of the tag entry A and simultaneously issues the cache invalidation request A to the CPU 020 (step 306).

【0081】図13(4)はキャッシュ無効要求Aの実
行を示している。キャッシュ無効要求Aを受けたCPU
020は、コヒーレンシ制御Aの処理として、CPUキ
ャッシュ021のセット番号aにセットされているタグ
アドレスAのデータブロックを探すが、この例ではない
為に何もせずに終了する。
FIG. 13D shows execution of the cache invalidation request A. CPU that received cache invalidation request A
Step 020 searches for a data block of the tag address A set in the set number a of the CPU cache 021 as a process of the coherency control A, but terminates without doing anything because this is not an example.

【0082】CPU−SCインタフェース制御部040
では、CPUキャッシュ複製タグ041のセット番号a
にタグエントリの空きが出来たので、キャッシュ登録要
求Fをリトライする。即ち、キャッシュ登録要求Fによ
り、CPU−SCインタフェース制御部040はセット
番号aのタグエントリをリードし、ウェイ1〜4にはF
と一致しないタグアドレスがセットされ、ウェイ0のタ
グエントリが空いているので、キャッシュ登録要求Fの
タグアドレスをウェイ0のタグエントリにセットし、そ
のエントリバリッドを有効にする(ステップ307)。
CPU-SC interface control unit 040
Then, the set number a of the CPU cache copy tag 041
Since the tag entry is free, the cache registration request F is retried. That is, in response to the cache registration request F, the CPU-SC interface control unit 040 reads the tag entry of the set number a, and
Since the tag address which does not match the tag address is set and the tag entry of the way 0 is empty, the tag address of the cache registration request F is set to the tag entry of the way 0, and the entry validity is made valid (step 307).

【0083】図13(2)では、CPUキャッシュ02
1とCPUキャッシュ複製タグ041が同一ではなかっ
たが、CPUキャッシュ複製タグ041にあるセット番
号aのタグアドレスAは、いずれCPUキャッシュ複製
タグ041内で発生するリプレース対象と成り得る為、
その後処理が進むと同一となる。
In FIG. 13B, the CPU cache 02
1 and the CPU cache copy tag 041 are not the same, but the tag address A of the set number a in the CPU cache copy tag 041 can be a replacement target that occurs in the CPU cache copy tag 041 anytime.
After that, the processing becomes the same.

【0084】以上、本発明の実施形態について説明した
が、これらの実施形態は一例であり、本発明はこれらに
限定されるものでないことは云うまでもない。
Although the embodiments of the present invention have been described above, these embodiments are merely examples, and it goes without saying that the present invention is not limited to these embodiments.

【0085】[0085]

【発明の効果】以上のように、本発明のCPUキャッシ
ュ複製タグ構成によれば、CPUからの付加情報無し
に、ライトバックバッファを含む複数ウェイセットアソ
シアティブ・キャッシュ内のデータブロック追跡が可能
であり、好適なコヒーレンシクエスト制御方式によるマ
ルチプロセッサシステムを実現できる。また、複数ライ
ンのライトバックバッファを備えたCPUエレメントに
も対応することが可能であり、性能向上の効果が得られ
る。
As described above, according to the CPU cache duplication tag configuration of the present invention, it is possible to track data blocks in a multi-way set associative cache including a write-back buffer without additional information from the CPU. Thus, a multiprocessor system using a suitable coherence request control method can be realized. Further, it is possible to support a CPU element having a write-back buffer of a plurality of lines, and an effect of improving performance can be obtained.

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

【図1】本発明の実施の形態のマルチプロセッサシステ
ム構成を示す図である。
FIG. 1 is a diagram showing a configuration of a multiprocessor system according to an embodiment of the present invention.

【図2】本発明の実施の形態のCPUキャッシュ複製タ
グを示す概念図である。
FIG. 2 is a conceptual diagram showing a CPU cache copy tag according to the embodiment of the present invention.

【図3】本発明の実施の形態のCPU−SCインタフェ
ース制御部の動作の一例を示すフローチャートである。
FIG. 3 is a flowchart illustrating an example of an operation of a CPU-SC interface control unit according to the embodiment of the present invention.

【図4】本発明の実施の形態のCPU−SCインタフェ
ース制御部の動作の他の一例を示すフローチャートであ
る。
FIG. 4 is a flowchart illustrating another example of the operation of the CPU-SC interface control unit according to the embodiment of the present invention.

【図5】本発明の実施の形態のCPU−SCインタフェ
ース制御部の動作の更に他の一例を示すフローチャート
である。
FIG. 5 is a flowchart illustrating yet another example of the operation of the CPU-SC interface control unit according to the embodiment of the present invention;

【図6】本発明の実施の形態のCPU−SCインタフェ
ース制御部の動作の更に他の一例を示すフローチャート
である。
FIG. 6 is a flowchart illustrating yet another example of the operation of the CPU-SC interface control unit according to the embodiment of the present invention;

【図7】本発明の実施の形態のCPU−SCインタフェ
ース制御部の動作の更に他の一例を示すフローチャート
である。概念図である。
FIG. 7 is a flowchart illustrating yet another example of the operation of the CPU-SC interface control unit according to the embodiment of the present invention; It is a conceptual diagram.

【図8】本発明の実施の形態のCPUキャッシュ複製タ
グの制御動作の一例を示す概念図である。
FIG. 8 is a conceptual diagram showing an example of a control operation of a CPU cache copy tag according to the embodiment of the present invention.

【図9】本発明の実施の形態のCPUキャッシュ複製タ
グの制御動作の他の一例を示す概念図である。
FIG. 9 is a conceptual diagram showing another example of the control operation of the CPU cache duplicate tag according to the embodiment of the present invention.

【図10】本発明の実施の形態のCPUキャッシュ複製
タグの制御動作の更に他の一例を示す概念図である。
FIG. 10 is a conceptual diagram showing still another example of the control operation of the CPU cache duplicate tag according to the embodiment of the present invention.

【図11】本発明の実施の形態のCPUキャッシュ複製
タグの制御動作の更に他の一例を示す概念図である。
FIG. 11 is a conceptual diagram showing still another example of the control operation of the CPU cache duplicate tag according to the embodiment of the present invention.

【図12】本発明の実施の形態のCPUキャッシュ複製
タグの制御動作の更に他の一例を示す概念図である。
FIG. 12 is a conceptual diagram showing still another example of the control operation of the CPU cache duplicate tag according to the embodiment of the present invention.

【図13】本発明の実施の形態のCPUキャッシュ複製
タグの制御動作の更に他の一例を示す概念図である。
FIG. 13 is a conceptual diagram showing still another example of the control operation of the CPU cache duplicate tag according to the embodiment of the present invention.

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

010、110 プロセッサモジュール 020、120 CPU 021、121 wウェイセットアソシアティブのCP
Uキャッシュ 022、122 ライトバックバッファ 030、130 CPUインタフェース 040、140 CPU−SCインタフェース制御部 041、141 w+αウェイセットアソシアティブの
CPUキャッシュ複製タグ 43 タグエントリ 44 タグアドレス 45 リプレースメント・アルゴリズム用ビット 46 エントリバリッド 50 SCインタフェース 60 システムコネクション(SC) 70 共有メインメモリ
010, 110 Processor module 020, 120 CPU 211, 121 CP of w-way set associative
U cache 022, 122 Write-back buffer 030, 130 CPU interface 040, 140 CPU-SC interface control unit 041, 141 w + α way set associative CPU cache copy tag 43 Tag entry 44 Tag address 45 Replacement algorithm bit 46 Entry valid 50 SC interface 60 System connection (SC) 70 Shared main memory

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/177 682 G06F 15/177 682J (72)発明者 柴田 正文 神奈川県秦野市堀山下1番地 株式会社日 立製作所エンタープライズサーバ事業部内 (72)発明者 秋元 一泰 神奈川県秦野市堀山下1番地 株式会社日 立製作所エンタープライズサーバ事業部内 Fターム(参考) 5B005 JJ11 KK13 MM01 NN31 NN45 PP03 PP11 PP21 TT02 5B045 DD01 DD13 ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G06F 15/177 682 G06F 15/177 682J (72) Inventor Masafumi Shibata 1st Horiyamashita, Hadano-shi, Kanagawa (72) Inventor Kazuyasu Akimoto Kazuyasu Akimoto 1 Horiyamashita, Hadano-shi, Kanagawa F-term in Enterprise Server Division, Hitachi Corporation (Reference) 5B005 JJ11 KK13 MM01 NN31 NN45 PP03 PP11 PP21 TT02 5B045 DD01 DD13

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 CPUキャッシュを内蔵するCPUとC
PUキャッシュ複製タグメモリを内蔵するCPU−SC
インタフェース制御部を備えた複数のプロセッサモジュ
ールと、メインメモリとが、システムコネクション(S
C)を介して結合されたマルチプロセッサシステムにお
けるキャッシュ構成方法であって、 前記CPUのCPUキャッシュをセット数k、ウェイ数
wのセットアソシアティブとし、前記CPU−SCイン
タフェース制御部のCPUキャッシュ複製タグメモリを
セット数k、ウェイ数w+αのセットアソシアティブと
することを特徴とするキャッシュ構成方法。
1. A CPU having a built-in CPU cache and C
CPU-SC with built-in PU cache duplicate tag memory
A plurality of processor modules having an interface control unit and a main memory are connected to a system connection (S
C) a cache configuration method in a multiprocessor system coupled via C), wherein the CPU cache of the CPU is set associative with the number of sets k and the number of ways w, and the CPU cache duplicate tag memory of the CPU-SC interface control unit. Is a set associative with the number of sets k and the number of ways w + α.
【請求項2】 請求項1記載のキャッシュ構成方法にお
いて、CPUからCPUキャッシュミスによりキャッシ
ュ登録要求が発行された時、CPU−SCインタフェー
ス制御部は、前記キャッシュ登録要求のアドレスをCP
Uキャッシュ複製タグメモリの空きエントリに登録し、
空きエントリが無い場合には、リプレース対象エントリ
を選択し、該選択したエントリに前記キャッシュ登録要
求のアドレスを登録するとともに、CPUに対して前記
選択したエントリブロックの無効化要求を発行すること
を特徴とするキャッシュ構成方法。
2. The cache configuration method according to claim 1, wherein when a cache registration request is issued from the CPU due to a CPU cache miss, the CPU-SC interface control unit sets the address of the cache registration request to the CP.
Register in the empty entry of the U-cache duplicate tag memory,
When there is no empty entry, the replacement target entry is selected, the address of the cache registration request is registered in the selected entry, and an invalidation request of the selected entry block is issued to the CPU. Cache configuration method.
【請求項3】 請求項1、2記載のキャッシュ構成方法
において、システムコネクションからキャッシュ登録要
求を受信した時、CPU−SCインタフェース制御部
は、CPUキャッシュ複製タグメモリを検査し、前記キ
ャッシュ登録要求のアドレスを保持している場合に当該
キャッシュ登録要求をCPUへあげることを特徴とする
キャッシュ構成方法。
3. The cache configuration method according to claim 1, wherein, when a cache registration request is received from a system connection, the CPU-SC interface control unit checks a CPU cache duplicate tag memory, and A cache configuration method, wherein when the address is held, the cache registration request is sent to the CPU.
【請求項4】 CPUとCPU−SCインタフェース制
御部を備えた複数のプロセッサモジュールと、メインメ
モリとが、システムコネクション(SC)を介して結合
されたマルチプロセッサシステムにおいて、 前記CPUはセット数kでウェイ数wのセットアソシア
ティブCPUキャッシュを具備し、 前記CPU−SCインタフェース制御部は、CPUキャ
ッシュの複製として、セット数kでウェイ数w+αのセ
ットアソシアティブCPUキャッシュ複製タグメモリを
具備する、ことを特徴とするマルチプロセッサシステ
ム。
4. In a multiprocessor system in which a CPU, a plurality of processor modules each having a CPU-SC interface control unit, and a main memory are connected via a system connection (SC), the number of CPUs is k. A set associative CPU cache having the number of ways w; and the CPU-SC interface control unit including a set associative CPU cache duplicate tag memory having the number of sets k and the number of ways w + α as a copy of the CPU cache. Multiprocessor system.
JP2000240215A 2000-08-08 2000-08-08 Cache configuration method and processor system Pending JP2002055880A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000240215A JP2002055880A (en) 2000-08-08 2000-08-08 Cache configuration method and processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000240215A JP2002055880A (en) 2000-08-08 2000-08-08 Cache configuration method and processor system

Publications (1)

Publication Number Publication Date
JP2002055880A true JP2002055880A (en) 2002-02-20

Family

ID=18731612

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000240215A Pending JP2002055880A (en) 2000-08-08 2000-08-08 Cache configuration method and processor system

Country Status (1)

Country Link
JP (1) JP2002055880A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046902A (en) * 2006-08-17 2008-02-28 Fujitsu Ltd Information processing system, information processing board, and cache tag and snoop tag update method
JP2022151611A (en) * 2021-03-27 2022-10-07 インテル・コーポレーション Integrated three-dimensional (3D) DRAM cache

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046902A (en) * 2006-08-17 2008-02-28 Fujitsu Ltd Information processing system, information processing board, and cache tag and snoop tag update method
KR100900012B1 (en) 2006-08-17 2009-05-29 후지쯔 가부시끼가이샤 Information processing system, information processing board, and method of updating cache tag and snoop tag
JP2022151611A (en) * 2021-03-27 2022-10-07 インテル・コーポレーション Integrated three-dimensional (3D) DRAM cache

Similar Documents

Publication Publication Date Title
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
JP4848771B2 (en) Cache coherency control method, chipset, and multiprocessor system
US7827354B2 (en) Victim cache using direct intervention
US6820086B1 (en) Forming linked lists using content addressable memory
US5802582A (en) Explicit coherence using split-phase controls
US7581068B2 (en) Exclusive ownership snoop filter
US6662276B2 (en) Storing directory information for non uniform memory architecture systems using processor cache
JP2000010860A (en) Cache memory control circuit, processor, processor system, and parallel processor system
JP2001515244A (en) Scalable shared memory multiprocessor system
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
KR20030024895A (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
KR100234503B1 (en) Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US6950906B2 (en) System for and method of operating a cache
US8214600B2 (en) Data processing system and method for efficient coherency communication utilizing coherency domains
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US7383398B2 (en) Preselecting E/M line replacement technique for a snoop filter
JP3732397B2 (en) Cash system
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
JP2002055880A (en) Cache configuration method and processor system
US6931510B1 (en) Method and system for translation lookaside buffer coherence in multiprocessor systems
US6826655B2 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations