JPH1055314A - Cache memory controller - Google Patents

Cache memory controller

Info

Publication number
JPH1055314A
JPH1055314A JP8212369A JP21236996A JPH1055314A JP H1055314 A JPH1055314 A JP H1055314A JP 8212369 A JP8212369 A JP 8212369A JP 21236996 A JP21236996 A JP 21236996A JP H1055314 A JPH1055314 A JP H1055314A
Authority
JP
Japan
Prior art keywords
cache
main memory
data
directory
snoop
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
JP8212369A
Other languages
Japanese (ja)
Inventor
Takashi Moriyama
隆志 森山
Masahide Tsuboi
正英 坪井
Hiroshi Murashima
寛志 村嶋
Koichi Okazawa
宏一 岡澤
Masaya Umemura
雅也 梅村
Michinori Naito
倫典 内藤
Tetsuo Hiramitsu
哲生 平光
Masumi Terao
益美 寺尾
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
Hitachi Chubu Software Ltd
Hitachi Asahi Electronics Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Chubu Software Ltd
Hitachi Asahi Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Chubu Software Ltd, Hitachi Asahi Electronics Co Ltd filed Critical Hitachi Ltd
Priority to JP8212369A priority Critical patent/JPH1055314A/en
Publication of JPH1055314A publication Critical patent/JPH1055314A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 不必要なスヌープによるキャッシュアクセス
を減少させ、キャッシュの一致性保証を高速に行うこと
が可能なキャッシュメモリ制御装置を提供すること。 【解決手段】 スヌープ方式とディレクトリ方式とを併
用することにより、不必要なキャッシュのスヌープを減
少させる。そのために、主メモリコントローラ110が
キャッシュの状態を記憶している状態記憶手段112
(ディレクトリを含む)を参照し、スヌープが必要か否
かを判定してスヌープが必要であるときのみスヌープを
継続させ、スヌープが不要であるときにはキャッシュコ
ントローラ104〜106にスヌープの中断を知らせる
スヌープ中断信号を発する。キャッシュコントローラ1
04〜106では、スヌープ中断信号を受け取った場合
に該スヌープを中断させる。
(57) [Problem] To provide a cache memory control device capable of reducing cache access by unnecessary snoops and guaranteeing cache consistency at high speed. An unnecessary cache snoop is reduced by using both a snoop method and a directory method. For this purpose, the main memory controller 110 stores the state of the cache in the state storage unit 112.
(Including a directory) to determine whether or not snooping is required and to continue snooping only when snooping is required, and to notify cache controllers 104 to 106 of snooping suspension when snooping is not required. Emits a signal. Cache controller 1
In steps 04 to 106, when the snoop interruption signal is received, the snoop is interrupted.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、キャッシュコヒー
レンシをディレクトリ方式またはスヌープ方式で保証し
ているマルチプロセッサシステムのキャッシュメモリ制
御装置に関し、特に、複数のキャッシュメモリ間のデー
タの一致性保証の制御を高速かつ効率的に行なうキャッ
シュメモリ制御装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cache memory control device for a multiprocessor system which guarantees cache coherency by a directory method or a snoop method, and more particularly to a control method for guaranteeing data consistency among a plurality of cache memories. The present invention relates to a cache memory control device that performs high-speed and efficient.

【0002】[0002]

【従来の技術】マルチプロセッサシステムにおけるキャ
ッシュメモリ間のデータの一致性保証の方式としては、
一般に、ディレクトリ方式と呼ばれる方式とスヌープ方
式と呼ばれる方式が知られている。ディレクトリ方式と
スヌープ方式については、David A.Patterson,John
L.Hennessy著、富田眞治,他訳「コンピュータ・アー
キテクチャ −設計・実現・評価の定量的アプローチ
−」 (1992年12月25日日経BP社発行) PP.478-486
に記載されている。ディレクトリ方式とは、主メモリ全
体のデータに対して、該データのキャッシングの状態を
管理するテーブル(ディレクトリ)を持ち、あるプロセ
ッサが起動したメモリアクセスに対して、まずそのテー
ブル(ディレクトリ)を調べ、所望の最新のデータが主
メモリではなく、あるキャッシュにのみ存在することが
わかった場合には、そのキャッシュに対して該データの
アクセスを行う方式である。
2. Description of the Related Art As a method of guaranteeing data consistency between cache memories in a multiprocessor system,
Generally, a method called a directory method and a method called a snoop method are known. See David A. Patterson, John for the directory and snoop methods.
L. Hennessy, Shinji Tomita, et al., "Computer Architecture-A Quantitative Approach to Design, Realization, and Evaluation-" (Published by Nikkei BP, December 25, 1992) PP.478-486
It is described in. The directory method has a table (directory) for managing the state of caching of the data with respect to the entire main memory, and first examines the table (directory) for a memory access started by a certain processor. If it is found that the desired latest data exists only in a certain cache, not in the main memory, the data is accessed for that cache.

【0003】ディレクトリ方式を採用した従来例とし
て、特開平4−245350号公報「キャッシュ一致化
方式」に開示されたものがある。該公開公報には、複数
のプロセッサによって共有されるメモリに、該メモリ上
のデータが各プロセッサのキャッシュ上でどのような保
持状態(各プロセッサのいずれのキャッシュにも保持さ
れていない第1の状態,いずれか1つのプロセッサのキ
ャッシュのみに保持されている第2の状態,各プロセッ
サのうち2つ以上のプロセッサのキャッシュに保持され
ている第3の状態)にあるかを示す2ビットのタグ情報
(テーブル)、または各プロセッサのキャッシュに該メ
モリ上のデータが保持されているかを示すプロセッサの
台数に等しいビット数のタグ情報(テーブル)を持た
せ、これらのタグ情報を参照することにより、あるプロ
セッサからのメモリライトアクセスが発生した場合に、
本来一致化処理が必要でないプロセッサにおける無駄な
一致化処理を行わないようにしたものが記載されてい
る。
As a conventional example adopting the directory system, there is one disclosed in Japanese Unexamined Patent Publication No. Hei 4-245350, "Cache Matching System". The publication discloses that in a memory shared by a plurality of processors, data in the memory is stored in a cache of each processor in any holding state (a first state in which data is not held in any cache of each processor). , A second state held only in the cache of one of the processors, and a third state held in the caches of two or more of the processors) (Table) or tag information (table) having a bit number equal to the number of processors indicating whether data in the memory is held in the cache of each processor, and referring to the tag information. When a memory write access from the processor occurs,
This document describes that unnecessary matching processing is not performed in a processor that does not originally require matching processing.

【0004】ディレクトリ方式では、一旦必ずテーブル
(タグ情報)を調べてから必要となるキャッシュのアク
セスを行うため、他キャッシュにデータが存在していた
場合にはアクセスタイムが大きくなってしまい、それが
性能を低下させる原因となっていた。また、キャッシュ
の一致性を従来のディレクトリ方式で保証しているキャ
ッシュシステムでは、主記憶容量全体に対しディレクト
リを設ける必要があるため、主メモリの大容量化につれ
てディレクトリも大容量化する必要があった。
In the directory system, a necessary cache access is performed after a table (tag information) is always checked. Therefore, if data exists in another cache, the access time becomes long. This was the cause of performance degradation. Also, in a cache system that guarantees the consistency of the cache by the conventional directory method, it is necessary to provide a directory for the entire main storage capacity. Therefore, the directory needs to be increased as the capacity of the main memory increases. Was.

【0005】一方、スヌープ方式とは、あるプロセッサ
が起動したメモリアクセスに対して、全てのキャッシュ
が同時に、該アクセスのアドレスに対応するデータのコ
ピーを格納しているか否かを調べる方式である。スヌー
プ方式では、全てのキャッシュ各々が主メモリのアクセ
スと同時に、自キャッシュ内に所望のデータがあるか否
かのチェックを行うため、比較的高速にそのチェックが
行えるという利点があった。しかしながら、近年の、プ
ロセッサの高速化に伴い、メモリ装置としては、主メモ
リ以外に2〜3階層のキャッシュを持たせることが多く
なり、その場合、全ての階層のキャッシュのスヌープよ
りもメモリアクセスの方が高速に行えるという場合が生
じてきた。このため、主メモリアクセスが終了している
にも関わらず、スヌープの終了を待ち合わせるためにプ
ロセッサにデータを返すことができないという問題があ
る。
[0005] On the other hand, the snoop method is a method for checking whether or not all caches simultaneously store a copy of data corresponding to an address of a memory access started by a certain processor. The snoop method has an advantage that the check can be performed at a relatively high speed because all the caches check whether or not there is desired data in the own cache simultaneously with the access to the main memory. However, with the recent increase in the speed of processors, a memory device often has a cache of two or three layers in addition to the main memory. In this case, the memory access is smaller than that of the snoop of the cache of all the layers. There has been a case where it can be performed faster. Therefore, there is a problem that data cannot be returned to the processor in order to wait for the end of the snoop, even though the main memory access has been completed.

【0006】また、キャッシュ−プロセッサ間の転送単
位(ライン)よりも、主メモリ−キャッシュ間の転送単
位(ブロック)の方が大きい場合が多く、プロセッサか
らのアクセス1回につき、複数回の他キャッシュのスヌ
ープを必要とすることが多くなってきた。この様な場
合、全てのメモリアクセスに対して無条件にスヌープを
行うとバスのトラフィックが増加し、更には、バスが飽
和してしまうという問題が生じる。さらに、各階層のキ
ャッシュのスヌープを行っている間、当該キャッシュに
対するプロセッサからのアクセスが抑止されるため、マ
ルチプロセッサシステム全体の性能の低下をきたすとい
う問題がある。
In many cases, the transfer unit (block) between the main memory and the cache is larger than the transfer unit (line) between the cache and the processor. The need for snoops is increasing. In such a case, if snooping is performed unconditionally for all memory accesses, the traffic on the bus increases, and further, the bus is saturated. Further, while snooping the cache of each hierarchy, access from the processor to the cache is suppressed, which causes a problem that the performance of the entire multiprocessor system is reduced.

【0007】本発明の第1の目的は、マルチプロセッサ
システムにおいて、高速なキャッシュの一致性保証を行
うことが可能なキャッシュメモリ制御装置を提供するこ
とである。本発明の第2の目的は、不必要なスヌープに
よるキャッシュアクセスを減少させ、システム性能を向
上させることが可能なキャッシュメモリ制御装置を提供
することである。本発明の第3の目的は、キャッシュの
一致性をディレクトリ方式で保証しているキャッシュシ
ステムにおいて、ディレクトリを小容量化することが可
能なキャッシュメモリ制御装置を提供することにある。
A first object of the present invention is to provide a cache memory control device capable of ensuring high-speed cache consistency in a multiprocessor system. A second object of the present invention is to provide a cache memory control device capable of reducing cache access due to unnecessary snoops and improving system performance. A third object of the present invention is to provide a cache memory control device capable of reducing the capacity of a directory in a cache system that guarantees the consistency of a cache by a directory method.

【0008】[0008]

【課題を解決するための手段】本発明のキャッシュメモ
リ制御装置(図1ないし図5参照)は、上記第1および
第2の目的を達成するために、キャッシュを有するマル
チプロセッサシステムにおいて、スヌープ方式とディレ
クトリ方式とを併用することによって不要なキャッシュ
のスヌープを減少させるものである。さらに詳細に述べ
ると、主メモリ(111)上のデータに対してそのキャ
ッシングの状態を表す状態記憶手段(112)と、その
状態記憶手段(112)の内容により他キャッシュのス
ヌープが必要か否かを判定する判定回路ブロック(20
2)と、該判定回路ブロック(202)の判定結果によ
りスヌープ中断信号を発行する中断信号制御回路ブロッ
ク(203)と、さらに各キャッシュコントローラ(1
04ないし106)にスヌープ制御ブロック(302)
および中断回路ブロック(303)を設けている。即
ち、プロセッサからのアクセスに対して、各キャッシュ
のスヌープと同時に、キャッシングの状態を表す状態記
憶手段(112)を検索し、その結果、スヌープが不要
であるとわかった場合には、スヌープの終了を待たずに
スヌープを中断させてプロセッサに対してデータを返す
ようにしている。
According to a first aspect of the present invention, there is provided a cache memory control apparatus (see FIGS. 1 to 5) for a snoop system in a multiprocessor system having a cache in order to achieve the first and second objects. And a directory method are used together to reduce unnecessary cache snooping. More specifically, state storage means (112) indicating the state of caching of data on the main memory (111), and whether or not snooping of another cache is necessary depending on the contents of the state storage means (112) Determination circuit block (20)
2), an interrupt signal control circuit block (203) for issuing a snoop interrupt signal based on the determination result of the determination circuit block (202), and each cache controller (1).
04 to 106) to the snoop control block (302)
And an interruption circuit block (303). That is, in response to an access from the processor, the snoop of each cache is searched at the same time as the state storage means (112) indicating the state of the caching. As a result, if it is determined that the snoop is unnecessary, the snoop is terminated. Instead of waiting for snooping, snoop is interrupted and data is returned to the processor.

【0009】また、本発明のキャッシュメモリ制御装置
は、上記第1および第2の目的を達成するために、各キ
ャッシュメモリに対してスヌープの中断を知らせるスヌ
ープ中断信号(130)と、各キャッシュコントローラ
(104ないし106)に、前記スヌープ中断信号(1
30)を受け取った場合に該スヌープを中断するための
中断回路ブロック(303)を設けている。即ち、上記
第1の目的において、スヌープが不要であるとわかった
場合には、各キャッシュコントローラに対して、スヌー
プの中断を知らせ、現在行っているスヌープまたは現在
待ち合わせをしているスヌープを中止するようにしてい
る。
In order to achieve the first and second objects, the cache memory control device according to the present invention further comprises a snoop interruption signal (130) for notifying a snoop interruption to each cache memory; (104 to 106), the snoop interruption signal (1
An interrupt circuit block (303) for interrupting the snoop when 30) is received is provided. That is, in the first object, when it is determined that the snoop is unnecessary, the interruption of the snoop is notified to each cache controller, and the current snoop or the snoop currently waiting is stopped. Like that.

【0010】また、本発明のキャッシュメモリ制御装置
(図6ないし図8参照)は、上記第1および第2の目的
を達成するために、ブロックに対するアクセスについて
も、特定なラインに対するスヌープのみを行う回路と、
主メモリ上のデータに対してそのキャッシングの状態を
表す状態記憶手段(412)と、その状態記憶手段の内
容により他キャッシュのスヌープが必要か否かを判定す
る判定回路ブロック(502)と、前記判定回路ブロッ
ク(502)による判定の結果、該アドレスを含むブロ
ックに対応するデータに対してスヌープが不要であると
わかった場合にはブロック全体のデータをキャッシュコ
ントローラに出力するとともに、スヌープが必要である
とわかった場合には特定なラインのみの転送に切り替え
ることを主記憶アクセス制御回路ブロック(504)に
報告し、該特定のラインに転送される情報を前記キャッ
シュコントローラに通知するライン転送制御回路ブロッ
ク(503)を設けている。
In order to achieve the first and second objects, the cache memory control device of the present invention (see FIGS. 6 to 8) performs only a snoop on a specific line for access to a block. Circuit and
State storage means (412) representing the state of caching of data on the main memory, a determination circuit block (502) for determining whether or not snooping of another cache is necessary based on the contents of the state storage means; As a result of the determination by the determination circuit block (502), when it is determined that snoop is unnecessary for the data corresponding to the block including the address, the data of the entire block is output to the cache controller, and the snoop is required. If it is found that there is, a line transfer control circuit that reports to the main memory access control circuit block (504) that the transfer is switched to transfer of only a specific line, and notifies the cache controller of information transferred to the specific line. A block (503) is provided.

【0011】本発明のキャッシュメモリ制御装置(図9
ないし図12参照)は、上記第3の目的を達成するため
に、キャッシュの一致性をディレクトリ方式で保証して
いるシステムにおいて、キャッシュ(702,802)
とディレクトリ(1100)間にキャッシュ情報信号
(1000)を設け、キャッシュ状態が変化する場合に
は、必要であれば、該キャッシュ情報信号によってキャ
ッシュ(702,802)からキャッシュ状態の変化を
ディレクトリ(1100)に報告し、DMAが発生した
場合には、該キャッシュ情報信号によってディレクトリ
(1100)からキャッシュデータの無効化とキャッシ
ュデータの主メモリ(1200)への書き戻しをキャッ
シュ(702,802)に報告するようにしている。
The cache memory control device of the present invention (FIG. 9)
In order to achieve the third object, the cache (702, 802)
A cache information signal (1000) is provided between the cache (702, 802) and the directory (1100) according to the cache information signal, if necessary, when the cache state changes. ), And when a DMA occurs, the cache information signals invalidation of the cache data from the directory (1100) and writing back of the cache data to the main memory (1200) to the cache (702, 802) by the cache information signal. I am trying to do it.

【0012】すなわち、キャッシュ情報信号を用いるこ
とによりキャッシュ状態とディレクトリ状態を常に一致
させることができ、その結果、最小限のディレクトリ容
量でキャッシュスヌープを最適化することが可能にな
る。これにより、ディレクトリはキャッシュ容量の合計
分だけ持てばよいことになり、また、DMAでディレク
トリミスヒット時のキャッシュスヌープは必要なくな
り、DMAのキャッシュスヌープ時も無効化または書き
戻しの発生するキャッシュとウェイをキャッシュ情報信
号によってディレクトリが指示するため、キャッシュの
ヒット判定が必要なくなる。
That is, by using the cache information signal, the cache state and the directory state can always be matched, and as a result, the cache snoop can be optimized with a minimum directory capacity. As a result, the directory only needs to have the total cache capacity, and cache snooping is not required when a directory mishit occurs in the DMA. Is instructed by the cache information signal, so that it is not necessary to determine the cache hit.

【0013】[0013]

【発明の実施の形態】以下、本発明の実施例を図面を用
いて詳細に説明する。 (第1の実施例)本発明の第1の実施例は、キャッシン
グの状態を表す状態記憶手段を参照してスヌープが不要
であるとわかった場合にスヌープの終了を待たずにスヌ
ープを中断させるようにしたものである。図1は、本発
明の第1の実施例の全体のシステム構成を示す図であ
る。同図において、101〜103は各々マルチプロセ
ッサシステムを構成するプロセッサ1〜n、107〜1
09は各々プロセッサ1〜nに接続されるライトバック
方式のキャッシュ1〜n、104〜106は各々キャッ
シュ1〜nの制御を行うキャッシュコントローラ1〜n
である。また、111は主メモリであり、112は状態
記憶手段である。110は信号群(128)を介して主
メモリ(111)を制御するとともに、信号群(12
9)を介して状態記憶手段(112)を制御する主メモ
リコントローラである。
Embodiments of the present invention will be described below in detail with reference to the drawings. (First Embodiment) In a first embodiment of the present invention, if it is determined that snoop is unnecessary by referring to the state storage means indicating the state of caching, the snoop is interrupted without waiting for the end of snoop. It is like that. FIG. 1 is a diagram showing the overall system configuration of the first embodiment of the present invention. In the figure, reference numerals 101 to 103 denote processors 1 to n and 107 to 1 constituting a multiprocessor system, respectively.
Reference numeral 09 denotes write-back type caches 1 to n connected to the processors 1 to n, respectively, and 104 to 106 denote cache controllers 1 to n for controlling the caches 1 to n, respectively.
It is. Reference numeral 111 denotes a main memory, and 112 denotes a state storage unit. 110 controls the main memory (111) via the signal group (128), and controls the signal group (12).
9) is a main memory controller for controlling the state storage means (112).

【0014】キャッシュコントローラ1(104)は信
号群(121)を介してプロセッサ1(101)に、ま
た、信号群(124)を介してキャッシュ1(107)
に接続されている。同様に、キャッシュコントローラ2
(105)は信号群122を介してプロセッサ2(10
2)に、また信号群(125)を介してキャッシュ2
(108)に接続され、キャッシュコントローラn(1
06)は信号群(123)を介してプロセッサn(10
3)に、また信号群(126)を介してキャッシュn
(109)に接続されている。また、各キャッシュコン
トローラ1(104)〜n(106)および主メモリコ
ントローラ(110)は信号群(127)を介して相互
に接続され、本信号群(127)を介してデータ転送お
よびスヌープ制御が行われる。信号(130)は主メモ
リコントローラ(110)から各キャッシュコントロー
ラ1(104)〜n(106)に対して送られるスヌー
プ中断信号である。
The cache controller 1 (104) sends the signal to the processor 1 (101) via the signal group (121) and the cache 1 (107) via the signal group (124).
It is connected to the. Similarly, cache controller 2
(105) is the processor 2 (10) via the signal group 122.
2) and via the signal group (125)
(108) and connected to the cache controller n (1
06) is transmitted to the processor n (10) through the signal group (123).
3) and via the signal group (126)
(109). The cache controllers 1 (104) to n (106) and the main memory controller (110) are connected to each other via a signal group (127), and data transfer and snoop control are performed via this signal group (127). Done. The signal (130) is a snoop interruption signal sent from the main memory controller (110) to each of the cache controllers 1 (104) to n (106).

【0015】図2は、主メモリコントローラ(110)
の内部構成を示す図である。同図に示されているよう
に、主メモリコントローラ(110)は、主記憶アクセ
ス制御ブロック(201)と判定回路ブロック(20
2)を含んでいる。主記憶アクセス制御ブロック(20
1)は、主メモリ(111)に対する書き込み読み出し
を制御する主記憶アクセス制御回路(204)および状
態記憶手段(112)に対する書き込み読み出しを制御
する状態記憶手段制御回路(205)からなっており、
判定回路ブロック(202)は、主記憶アクセス制御ブ
ロック(201)の状態記憶手段制御回路(205)で
読み出した状態記憶手段の内容に基づいてスヌープを中
断するか否かを判定し中断信号制御回路ブロック(20
3)に報告する。中断信号制御回路ブロック(203)
は、スヌープ中断信号(130)を生成しキャッシュコ
ントローラ1(104)〜n(106)に送出するブロ
ックである。
FIG. 2 shows a main memory controller (110).
FIG. 3 is a diagram showing an internal configuration of the device. As shown in the figure, the main memory controller (110) includes a main memory access control block (201) and a determination circuit block (20).
2) is included. Main memory access control block (20
1) comprises a main memory access control circuit (204) for controlling writing and reading to and from the main memory (111) and a state storage means control circuit (205) for controlling writing and reading to and from the state storage means (112);
The determination circuit block (202) determines whether or not to interrupt snoop based on the contents of the state storage means read by the state storage means control circuit (205) of the main memory access control block (201), and determines whether or not to interrupt the snoop. Block (20
Report to 3). Interruption signal control circuit block (203)
Is a block that generates a snoop interruption signal (130) and sends it to the cache controllers 1 (104) to n (106).

【0016】図3は、キャッシュコントローラ1(10
4)の内部構成を示す図である。同図に示されているよ
うに、キャッシュコントローラ1(104)は、キャッ
シュアクセス制御ブロック(301)とスヌープ制御ブ
ロック(302)と中断回路ブロック(303)を含ん
でいる。中断回路ブロック(303)は、主メモリコン
トローラ(110)の中断信号制御回路ブロック(20
3)から送出されるスヌープ中断信号(130)によっ
てスヌープ中断信号が有効か無効かを判定するブロック
であり、スヌープ制御ブロック(302)は有効と判定
された場合に中断をキャッシュアクセスブロック(30
1)にスヌープ中断を通知するブロックであり、アクセ
ス制御ブロック(301)はスヌープ制御ブロック(3
02)からスヌープ中断を通知された場合にスヌープ処
理を中断するブロックである。なお、他のキャッシュコ
ントローラ2(105)〜n(106)もキャッシュコ
ントローラ1(104)と同様な構成を有している。
FIG. 3 shows the cache controller 1 (10
It is a figure which shows the internal structure of 4). As shown in the figure, the cache controller 1 (104) includes a cache access control block (301), a snoop control block (302), and a suspension circuit block (303). The interruption circuit block (303) is provided with an interruption signal control circuit block (20) of the main memory controller (110).
This is a block that determines whether the snoop interruption signal is valid or invalid based on the snoop interruption signal (130) sent from 3). If the snoop control block (302) determines that the snoop interruption signal is valid, the snoop control block (302) interrupts the cache access block (30).
The access control block (301) notifies the snoop interruption to the snoop control block (3).
02) is a block for interrupting the snoop process when the snoop interruption is notified from 02). The other cache controllers 2 (105) to n (106) have the same configuration as the cache controller 1 (104).

【0017】図4は、主メモリ(111)のメモリ空間
の各ブロックに対応する状態記憶手段(112)の位置
づけを示した図である。ここで言う、ブロックとは、キ
ャッシュにおいて管理される単位のことである。同図に
示すように、状態記憶手段(112)は主メモリ(11
1)のメモリ空間の各ブロックごとに一つのテーブルエ
ントリを持っている。
FIG. 4 is a diagram showing the position of the state storage means (112) corresponding to each block in the memory space of the main memory (111). Here, the block is a unit managed in the cache. As shown in the figure, the state storage means (112) is provided in the main memory (11).
Each block in the memory space of 1) has one table entry.

【0018】図5は、図4に示した状態記憶手段(11
2)のテーブルエントリの内容の定義を示したものであ
る。ここでは、状態記憶手段(112)の各エントリは
2ビットで構成され、該エントリの値が、(a)「00」
の場合は当該ブロックのデータはどのキャッシュにも格
納されていないことを、(b)「01」の場合は当該ブロ
ックのデータは少なくとも一つのキャッシュに格納され
ておりその内容は主メモリと一致していることを、(c)
「10」の場合は当該ブロックのデータは少なくとも一
つのキャッシュに格納されておりその内容は主メモリと
一致していないことを意味している。(d)「11」は未
定義とする。
FIG. 5 shows the state storage means (11) shown in FIG.
It shows the definition of the contents of the table entry of 2). Here, each entry of the state storage means (112) is composed of two bits, and the value of the entry is (a) "00".
In the case of (b), the data of the block is not stored in any cache, and in the case of (b) "01", the data of the block is stored in at least one cache, and the content thereof matches the main memory. (C)
In the case of "10", it means that the data of the block is stored in at least one cache and the content does not match the main memory. (d) "11" is undefined.

【0019】<リードアクセス>次に、プロセッサから
のリードアクセスにおける動作を詳細に説明する。プロ
セッサ1(101)がリードアクセスを要求した場合、
キャッシュコントローラ1(104)は、まず、該アド
レスに対応するデータがキャッシュ1(107)に格納
されているか否かをアドレスアレイ(図示せず)によっ
て調べる。 (a)キャッシュ1(107)ヒットの場合 該アドレスのデータがキャッシュ1(107)に格納さ
れていれば(ヒット)、キャッシュコントローラ1(1
04)は、該データをキャッシュ1(107)から読み
出し、プロセッサ1(101)へ送出し、該リードアク
セスを完了する。
<Read Access> Next, the operation in read access from the processor will be described in detail. When the processor 1 (101) requests read access,
First, the cache controller 1 (104) checks whether or not data corresponding to the address is stored in the cache 1 (107) by using an address array (not shown). (A) In the case of a cache 1 (107) hit If the data at the address is stored in the cache 1 (107) (hit), the cache controller 1 (1)
04) reads the data from the cache 1 (107), sends it to the processor 1 (101), and completes the read access.

【0020】(b)キャッシュ1(107)ミスヒット
の場合 一方、該アドレスのデータがキャッシュ1(107)に
格納されていなければ、キャッシュコントローラ1(1
04)は、該アドレスのデータのリード要求信号を、信
号群(127)を介して主メモリコントローラ(11
0)に送出する。主メモリコントローラ(110)は、
該信号群(127)の情報(リード要求信号,アドレス
信号,他信号)により、主メモリ(111)のアクセス
を開始する。一方それと同時に、キャッシュコントロー
ラ2(105)〜キャッシュコントローラn(106)
は、上記信号群(127)の情報により、それぞれキャ
ッシュ2(108)〜キャッシュn(109)のスヌー
プを開始する。
(B) In the case of a cache 1 (107) mishit On the other hand, if the data at the address is not stored in the cache 1 (107), the cache controller 1 (1)
04) sends the data read request signal of the address to the main memory controller (11) via the signal group (127).
0). The main memory controller (110)
Access to the main memory (111) is started by the information (read request signal, address signal, other signal) of the signal group (127). Meanwhile, at the same time, the cache controller 2 (105) to the cache controller n (106)
Starts snooping of the cache 2 (108) to the cache n (109) according to the information of the signal group (127).

【0021】主メモリコントローラ(110)では、ま
ず、主記憶アクセス制御ブロック(201)により、プ
ロセッサ1(101)がアクセスしようとしているアド
レスに対して、主メモリ(111)および状態記憶手段
(112)の内容を読み出し、次いで、判定回路ブロッ
ク(202)により、状態記憶手段(112)から読み
出した2ビットの値に応じて、下記の各動作を行う。 (a)「00」の場合:…主メモリ(111)から読み
出した値を信号群(127)を介して、キャッシュコン
トローラ1(104)へ送出するとともに、スヌープ中
断信号(130)を有効にして他キャッシュのスヌープ
を中断させる。また、状態記憶手段(112)の内容を
「01」に更新する。 (b)「01」の場合:…主メモリ(111)から読み
出した値を信号群(127)を介して、キャッシュコン
トローラ1(104)へ送出するとともに、スヌープ中
断信号(130)を有効にして他キャッシュのスヌープ
を中断させる。また、状態記憶手段(112)の内容
は、変化させない。 (c)「10」の場合:…主メモリ(111)から読み
出した値を無効化し、スヌープ中断信号(130)を無
効にし、他キャッシュのスヌープを継続させる。スヌー
プの結果、最新のデータを持つキャッシュは該最新のデ
ータを信号群(127)を介して、キャッシュコントロ
ーラ1(104)へ送出する。主メモリコントローラ
(110)は、信号群(127)を介して伝達される最
新のデータを主メモリ(111)に書き込む。また、状
態記憶手段(112)の内容を「01」に更新する。
In the main memory controller (110), first, the main memory (111) and the state storage means (112) respond to the address to be accessed by the processor 1 (101) by the main memory access control block (201). Then, the following operations are performed by the determination circuit block (202) in accordance with the 2-bit value read from the state storage means (112). (A) In the case of "00": a value read from the main memory (111) is transmitted to the cache controller 1 (104) via the signal group (127), and the snoop interruption signal (130) is enabled. Interrupt snooping of other caches. Further, the contents of the state storage means (112) are updated to "01". (B) In the case of "01": a value read from the main memory (111) is sent to the cache controller 1 (104) via the signal group (127), and the snoop interruption signal (130) is enabled. Interrupt snooping of other caches. The contents of the state storage means (112) are not changed. (C) In the case of "10": invalidating the value read from the main memory (111), invalidating the snoop interruption signal (130), and continuing the snoop of the other cache. As a result of the snoop, the cache having the latest data sends the latest data to the cache controller 1 (104) via the signal group (127). The main memory controller (110) writes the latest data transmitted via the signal group (127) to the main memory (111). Further, the contents of the state storage means (112) are updated to "01".

【0022】キャッシュコントローラ1(104)は、
主メモリコントローラ(110)から送られてきたデー
タを受け取り、キャッシュ1(107)の更新を行うと
ともに、プロセッサ1(101)に対して該データの送
出を行う。一方、他のキャッシュコントローラ2(10
5)〜キャッシュコントローラn(106)では、主メ
モリコントローラ(110)より送出されたスヌープ中
断信号(130)を中断回路ブロック(303)で受け
取り、スヌープ中断信号(130)が有効であればスヌ
ープ制御ブロック(302)に該情報を伝達してスヌー
プを中断し、スヌープ中断信号(130)が無効であれ
ばそのままスヌープを続行し、その結果、最新のデータ
がいずれかのキャッシュ内にあれば、その最新データを
信号群(127)を介して、キャッシュコントローラ1
(104)へ送出する処理を行う。
The cache controller 1 (104)
It receives the data sent from the main memory controller (110), updates the cache 1 (107), and sends the data to the processor 1 (101). On the other hand, the other cache controllers 2 (10
5) to the cache controller n (106) receive the snoop interruption signal (130) sent from the main memory controller (110) in the interruption circuit block (303), and perform the snoop control if the snoop interruption signal (130) is valid. The snoop is interrupted by transmitting the information to the block (302). If the snoop interruption signal (130) is invalid, the snoop is continued as it is. As a result, if the latest data is in any cache, the snoop is interrupted. The latest data is transmitted to the cache controller 1 via the signal group (127).
The process of sending to (104) is performed.

【0023】<ライトアクセス>次に、プロセッサから
のライトアクセスにおける動作を詳細に説明する。プロ
セッサ1(101)がライトアクセスを要求した場合、
キャッシュコントローラ1(104)は、まず、該アド
レスに対応するデータがキャッシュ1(107)に格納
されている(キャッシュヒット)か否(キャッシュミス
ヒット)かを調べる。 (a)キャッシュ1(107)ヒットの場合 該アドレスのデータがキャッシュ1(107)に格納さ
れていれば、キャッシュコントローラ1(104)は、
ライトデータをキャッシュ1(107)に格納して該ア
クセスを完了する(ライトバック方式のキャッシュの場
合)。
<Write Access> Next, the operation in the write access from the processor will be described in detail. When the processor 1 (101) requests a write access,
First, the cache controller 1 (104) checks whether the data corresponding to the address is stored in the cache 1 (107) (cache hit) or not (cache miss). (A) In the case of a cache 1 (107) hit If the data of the address is stored in the cache 1 (107), the cache controller 1 (104)
The write data is stored in the cache 1 (107) and the access is completed (in the case of a write-back cache).

【0024】(b)キャッシュ1(107)ミスヒット
の場合 一方、該アドレスのデータがキャッシュ1(107)に
格納されていなければ、キャッシュコントローラ1(1
04)は、該アドレスのデータのライト要求信号を、信
号群(127)を介して主メモリコントローラ(11
0)に送出する。主メモリコントローラ(110)は、
該信号群(127)を介して送られてきた情報(ライト
要求信号,アドレス信号,データ信号,他信号)によ
り、主メモリ(111)のライトアクセスを開始する。
一方、それと同時に、キャッシュコントローラ2(10
5)〜キャッシュコントローラn(106)は、該信号
群(127)の情報により、キャッシュ2(108)〜
キャッシュn(109)のスヌープを開始する。
(B) In the case of a cache 1 (107) mishit On the other hand, if the data of the address is not stored in the cache 1 (107), the cache controller 1 (1
04) sends a write request signal for the data of the address to the main memory controller (11) via the signal group (127).
0). The main memory controller (110)
The write access to the main memory (111) is started by the information (write request signal, address signal, data signal, other signal) sent via the signal group (127).
Meanwhile, at the same time, the cache controller 2 (10
5)-The cache controller n (106) uses the information of the signal group (127) to make the cache 2 (108)-
Start snooping on cache n (109).

【0025】このときの主メモリコントローラ(11
0)の動作を説明する。主メモリコントローラ(11
0)では、まず、主記憶アクセス制御回路(201)に
より、プロセッサ1(101)がアクセスしようとして
いるアドレスに対して、主メモリ(111)の内容と状
態記憶手段(112)の内容を読み出し、次いで、判定
回路(202)にて、状態記憶手段(112)から読み
出した値に応じて、下記の各動作を行う。 (a)「00」の場合:…信号群(127)を介して伝
達されたデータを主メモリ(111)へ書き込むと同時
に、スヌープ中断信号(130)を有効にして他キャッ
シュのスヌープを中断させる。また、状態記憶手段(1
12)の内容は変化させない。 (b)「01」の場合:…信号群(127)を介して伝
達されたデータを主メモリ(111)へ書き込むが、ス
ヌープ中断信号(130)は無効にして、他キャッシュ
のスヌープを継続させる。該アドレスのデータを持つキ
ャッシュは、主メモリ(111)との一致性を保つため
にキャッシュ内の該アドレスのデータを無効化する。ま
た、状態記憶手段(112)の内容を「00」に更新す
る。 (c)「10」の場合:…スヌープ中断信号(130)
は無効にして、他キャッシュのスヌープを継続させる。
該アドレスの最新のデータを持つキャッシュは、信号群
(127)を介して伝達されたデータを該キャッシュに
書き込む。また、状態記憶手段(112)の内容は変化
させない。
At this time, the main memory controller (11
Operation 0) will be described. Main memory controller (11
In (0), first, the contents of the main memory (111) and the contents of the state storage means (112) are read by the main memory access control circuit (201) from the address to which the processor 1 (101) is to access. Next, the determination circuit (202) performs the following operations according to the value read from the state storage means (112). (A) In the case of "00": data written via the signal group (127) is written into the main memory (111), and at the same time, the snoop interruption signal (130) is enabled to suspend the snoop of the other cache. . The state storage means (1
The contents of 12) are not changed. (B) In the case of “01”: data transmitted via the signal group (127) is written to the main memory (111), but the snoop interruption signal (130) is invalidated and snooping of another cache is continued. . The cache having the data at the address invalidates the data at the address in the cache in order to maintain consistency with the main memory (111). Further, the contents of the state storage means (112) are updated to "00". (C) In the case of "10": Snoop interruption signal (130)
Is invalidated, and snooping of another cache is continued.
The cache having the latest data at the address writes the data transmitted via the signal group (127) to the cache. Also, the contents of the state storage means (112) are not changed.

【0026】キャッシュコントローラ2(105)およ
びキャッシュコントローラn(106)では、中断回路
ブロック(303)により主メモリコントローラ(11
0)から送出されたスヌープ中断信号(130)を受け
取り、スヌープ中断信号(130)が有効であればスヌ
ープ制御ブロック(302)に該情報を伝達してスヌー
プを中断し、スヌープ中断信号(130)が無効であれ
ばそのままスヌープを続行し、主メモリと同じデータが
キャッシュ内にある場合には、当該キャッシュ内のデー
タを無効化し、主メモリよりも新しいデータがキャッシ
ュ内にある場合には、プロセッサ1から信号群(12
7)を介して送出されたデータを、当該キャッシュへ書
き込む。
In the cache controller 2 (105) and the cache controller n (106), the main memory controller (11) is operated by the interrupt circuit block (303).
0) is received, and if the snoop interruption signal (130) is valid, the information is transmitted to the snoop control block (302) to interrupt the snoop, and the snoop interruption signal (130) is transmitted. Is invalid, continue snooping, if the same data in the main memory is in the cache, invalidate the data in the cache, and if data in the cache is newer than the main memory, 1 to signal group (12
7) Write the data transmitted via the cache to the cache.

【0027】以上説明した第1の実施例によると、マル
チプロセッサシステムにおける不要なキャッシュのスヌ
ープを減少させることができ、また、主メモリのアクセ
スに要する時間よりもキャッシュのスヌープに要する時
間の方が長いようなシステムの場合、キャッシュのスヌ
ープで主メモリアクセスが律速することが避けられるた
め、システムの性能向上が達成できる。
According to the first embodiment described above, unnecessary cache snooping in a multiprocessor system can be reduced, and the time required for cache snooping is longer than the time required for main memory access. In the case of a long system, the main memory access is not limited by cache snooping, so that the system performance can be improved.

【0028】(第2の実施例)本発明の第2の実施例
は、キャッシングの状態を表す状態記憶手段を参照し、
スヌープが不要であるとわかった場合にはブロック全体
のデータをキャッシュコントローラに出力し、スヌープ
が必要であるとわかった場合には特定なラインのみの転
送に切り替えるようにしたものである。図6は本発明の
第2の実施例の全体のシステム構成を示す図である。同
図において、401〜403は各々マルチプロセッサシ
ステムを構成するプロセッサ1〜n、407〜409は
各々プロセッサ1〜nに接続されるライトバック方式の
キャッシュ1〜n、404〜406は各々キャッシュ1
〜nの制御を行うキャッシュコントローラ1〜nであ
る。また、411は主メモリであり、412は状態記憶
手段である。410は信号群(427)を介して主メモ
リ(411)を制御するとともに、信号群(429)を
介して状態記憶手段(412)を制御する主メモリコン
トローラである。
(Second Embodiment) A second embodiment of the present invention refers to a state storage means indicating the state of caching,
When it is determined that snooping is unnecessary, the data of the entire block is output to the cache controller, and when it is determined that snooping is required, the transfer is switched to transfer of only a specific line. FIG. 6 is a diagram showing the overall system configuration of the second embodiment of the present invention. In the figure, reference numerals 401 to 403 denote processors 1 to n constituting a multiprocessor system, and 407 to 409 denote write-back caches 1 to n connected to the processors 1 to n, respectively, and 404 to 406 denote caches 1
Cache controllers 1 to n that perform the control of. 411 is a main memory, and 412 is a state storage means. Reference numeral 410 denotes a main memory controller that controls the main memory (411) via the signal group (427) and controls the state storage means (412) via the signal group (429).

【0029】キャッシュコントローラ1(404)は信
号群(421)を介してプロセッサ1(401)に、ま
た、信号群(424)を介してキャッシュ1(407)
に接続されている。同様に、キャッシュコントローラ2
(405)は信号群(422)を介してプロセッサ2
(402)に、また信号群(425)を介してキャッシ
ュ2(408)に接続され、キャッシュコントローラn
(406)は信号群(423)を介してプロセッサn
(403)に、また信号群(426)を介してキャッシ
ュn(409)に接続されている。また、各キャッシュ
コントローラ1(404)〜n(406)および主メモ
リコントローラ(410)は信号群(427)を介して
相互に接続され、本信号群(427)を介してデータ転
送およびスヌープ制御が行われる。信号(430)は主
メモリコントローラ(410)から各キャッシュコント
ローラ1(404)〜n(406)に対して送られる1
ビットのライン転送信号であり、この信号が無効を示す
場合はブロック転送を行い、有効の場合はライン転送を
行うように制御する。
The cache controller 1 (404) sends the signal to the processor 1 (401) via the signal group (421) and the cache 1 (407) via the signal group (424).
It is connected to the. Similarly, cache controller 2
(405) is the processor 2 via the signal group (422).
(402) and to the cache 2 (408) via the signal group (425),
(406) is a processor n via a signal group (423).
(403) and to the cache n (409) via the signal group (426). The cache controllers 1 (404) to n (406) and the main memory controller (410) are interconnected via a signal group (427), and data transfer and snoop control are performed via the signal group (427). Done. A signal (430) is sent from the main memory controller (410) to each of the cache controllers 1 (404) to n (406).
This is a bit line transfer signal. When this signal indicates invalid, block transfer is performed, and when valid, line transfer is performed.

【0030】図7は、主メモリコントローラ(410)
の内部構成を示す図である。同図に示されているよう
に、主メモリコントローラ(410)は、主記憶アクセ
ス制御ブロック(501)と判定回路ブロック(50
2)とライン転送制御回路ブロック(503)を含んで
いる。主記憶アクセス制御ブロック(501)は、主メ
モリ(411)に対する書き込み読み出しを制御する主
記憶アクセス制御回路(504)および状態記憶手段
(412)に対する書き込み読み出しを制御する状態記
憶手段制御回路(505)からなり、判定回路ブロック
(502)は、主記憶アクセス制御ブロック(501)
の状態記憶手段制御回路(505)で読み出した状態記
憶手段の内容に基づいてライン転送の可否を判定し、ラ
イン転送制御回路ブロック(503)に報告するブロッ
クであり、ライン転送制御回路ブロック(503)はラ
イン転送信号(430)を生成し送出するための制御ブ
ロックである。
FIG. 7 shows the main memory controller (410).
FIG. 3 is a diagram showing an internal configuration of the device. As shown in the figure, the main memory controller (410) includes a main memory access control block (501) and a determination circuit block (50).
2) and a line transfer control circuit block (503). The main memory access control block (501) includes a main memory access control circuit (504) that controls writing and reading to and from the main memory (411) and a state storage means control circuit (505) that controls writing and reading to and from the state storage means (412). The determination circuit block (502) includes a main memory access control block (501).
The line transfer control circuit block (503) determines whether or not line transfer is possible based on the contents of the state storage means read by the state storage means control circuit (505) and reports it to the line transfer control circuit block (503). ) Is a control block for generating and transmitting the line transfer signal (430).

【0031】図8は、キャッシュコントローラ1(40
4)の内部構成を示す図である。同図に示されているよ
うに、キャッシュコントローラ1(404)は、キャッ
シュアクセス制御ブロック(601)とスヌープ制御ブ
ロック(602)を含んでいる。主メモリコントローラ
(410)のライン転送制御回路ブロック(503)か
ら送出されるライン転送信号(430)は、キャッシュ
コントローラ(404)のキャッシュアクセス制御ブロ
ック(601)に入力され、キャッシュへのデータ転送
制御に用いられる。なお、キャッシュコントローラ2
(405)〜n(406)もキャッシュコントローラ1
(404)と同様に構成される。主メモリ(411)と
状態記憶手段(412)の対応関係および状態記憶手段
(412)の内容は、第1の実施例の図4および5と同
じであるので説明を省略する。
FIG. 8 shows the cache controller 1 (40
It is a figure which shows the internal structure of 4). As shown in the figure, the cache controller 1 (404) includes a cache access control block (601) and a snoop control block (602). The line transfer signal (430) sent from the line transfer control circuit block (503) of the main memory controller (410) is input to the cache access control block (601) of the cache controller (404) and controls data transfer to the cache. Used for The cache controller 2
(405) to n (406) are also the cache controller 1
The configuration is the same as (404). The correspondence between the main memory (411) and the state storage means (412) and the contents of the state storage means (412) are the same as those in FIGS.

【0032】次に、第2の実施例のリードアクセスおよ
びライトアクセス動作を詳細に説明する。 <リードアクセス>プロセッサ1(401)がリードア
クセスを要求した場合、キャッシュコントローラ1(4
04)は、まず、該アドレスに対応するデータがキャッ
シュ1(407)に格納されているか否かをアドレスア
レイ(図示せず)によって調べる。 (a)キャッシュ1(407)ヒットの場合:該アドレ
スのデータがキャッシュ1(407)に格納されていれ
ば、キャッシュコントローラ1(404)は、当該デー
タをキャッシュ1(407)から読み出し、プロセッサ
1(401)へと送出し、該リードアクセスを完了す
る。
Next, the read access and write access operations of the second embodiment will be described in detail. <Read Access> When the processor 1 (401) requests a read access, the cache controller 1 (4
04) first checks with an address array (not shown) whether data corresponding to the address is stored in the cache 1 (407). (A) In the case of a cache 1 (407) hit: If the data at the address is stored in the cache 1 (407), the cache controller 1 (404) reads the data from the cache 1 (407) and (401) to complete the read access.

【0033】(b)キャッシュ1(407)ミスヒット
の場合:一方、該アドレスのデータがキャッシュ1(4
07)に格納されていなければ、キャッシュコントロー
ラ1(404)は、当該アドレスを含むブロックのリー
ド要求信号,アドレス信号,他信号を、信号群(42
7)を介して主メモリコントローラ(410)に送出す
る。主メモリコントローラ(410)は、該信号群(4
27)の情報(リード要求信号)により、主メモリ(4
11)のアクセスを開始する。一方それと同時に、キャ
ッシュコントローラ2(405)〜キャッシュコントロ
ーラn(406)は、上記信号群(427)の情報によ
り、それぞれキャッシュ2(408)〜キャッシュn
(409)のスヌープを開始する。
(B) In the case of cache 1 (407) mishit: On the other hand, if the data at the address is cache 1 (4
07), the cache controller 1 (404) transmits the read request signal, address signal, and other signals of the block including the address to a signal group (42).
7) to the main memory controller (410). The main memory controller (410) receives the signal group (4
27) (the read request signal), the main memory (4
11) Access is started. On the other hand, at the same time, the cache controllers 2 (405) to n (406) respectively execute the caches 2 (408) to n (n) based on the information of the signal group (427).
The snoop of (409) is started.

【0034】主メモリコントローラ(410)では、ま
ず、主記憶アクセス制御ブロック(501)により、プ
ロセッサ1(401)がアクセスしようとしているアド
レスに対して、主メモリ(411)および状態記憶手段
(412)の内容を読み出し、次いで、判定回路ブロッ
ク(502)により、状態記憶手段(412)から読み
出した2ビットの値に応じて、下記の各動作を行う。 (a)「00」の場合:…主メモリ(411)から読み
出したブロックのデータを信号群(427)を介して、
キャッシュコントローラ1(404)へ送出する。ま
た、状態記憶手段(412)の内容を「01」に更新す
る。この時、ライン転送信号(430)は無効状態にし
ておく。 (b)「01」の場合:…主メモリ(411)から読み
出したブロックを信号群(427)を介して、キャッシ
ュコントローラ1(404)へ送出する。また、状態記
憶手段(412)の内容は変化させない。この時、ライ
ン転送信号(430)は無効状態にしておく。 (c)「10」の場合:…主メモリ(411)から読み
出したブロックを信号群(427)を介して、キャッシ
ュコントローラ1(404)へ送出する。また、そのと
き状態記憶手段(412)の内容を「01」に更新す
る。この時、ライン転送信号(430)は有効状態にし
ておく。この場合、他キャッシュに最新のデータが存在
する場合に、スヌーププロトコルに応じて、データの転
送を行う。
In the main memory controller (410), the main memory (411) and the state storage means (412) use the main memory access control block (501) for the address to be accessed by the processor 1 (401). Then, the following operations are performed by the determination circuit block (502) according to the 2-bit value read from the state storage means (412). (A) In the case of “00”: data of a block read from the main memory (411) is transmitted via a signal group (427).
It is sent to the cache controller 1 (404). Further, the contents of the state storage means (412) are updated to "01". At this time, the line transfer signal (430) is set in an invalid state. (B) In the case of "01": The block read from the main memory (411) is transmitted to the cache controller 1 (404) via the signal group (427). The contents of the state storage means (412) are not changed. At this time, the line transfer signal (430) is set in an invalid state. (C) In the case of "10": The block read from the main memory (411) is transmitted to the cache controller 1 (404) via the signal group (427). At this time, the content of the state storage means (412) is updated to "01". At this time, the line transfer signal (430) is kept valid. In this case, when the latest data exists in another cache, the data is transferred according to the snoop protocol.

【0035】キャッシュコントローラ1(404)は、
主メモリコントローラ(410)から送られてきたデー
タを受け取り、プロセッサ1(401)に対して該デー
タの送出を行う。この時、ライン転送信号(430)が
無効状態であれば、キャッシュ1(407)に対してブ
ロック分のデータ更新を行い、ライン転送信号(43
0)が有効状態であれば、キャッシュ1(407)に対
して当該ライン分のみのデータ更新を行う。
The cache controller 1 (404)
It receives data sent from the main memory controller (410) and sends the data to the processor 1 (401). At this time, if the line transfer signal (430) is in an invalid state, the data for the block is updated in the cache 1 (407), and the line transfer signal (43) is updated.
If (0) is in the valid state, the cache 1 (407) updates the data only for the line.

【0036】<ライトアクセス>次に、プロセッサから
のライトアクセスにおける動作を詳細に説明する。プロ
セッサ1(401)がライトアクセスを要求した場合、
キャッシュコントローラ1(404)は、まず、該アド
レスに対応するデータがキャッシュ1(407)に格納
されている(キャッシュヒット)か否(キャッシュミス
ヒット)かを調べる。 (a)キャッシュ1(407)ヒットの場合 該アドレスのデータがキャッシュ1(407)に格納さ
れていれば、キャッシュコントローラ1(404)は、
ライトデータをキャッシュ1(407)に格納して該ア
クセスを完了する(ライトバック方式のキャッシュの場
合)。
<Write Access> Next, the operation in the write access from the processor will be described in detail. When the processor 1 (401) requests a write access,
First, the cache controller 1 (404) checks whether the data corresponding to the address is stored in the cache 1 (407) (cache hit) or not (cache miss). (A) In the case of a cache 1 (407) hit If the data of the address is stored in the cache 1 (407), the cache controller 1 (404)
The write data is stored in the cache 1 (407) and the access is completed (in the case of a write-back cache).

【0037】(b)キャッシュ1(407)ミスヒット
の場合 一方、該アドレスのデータがキャッシュ1(407)に
格納されていなければ、キャッシュコントローラ1(4
04)は、該アドレスのデータのライト要求信号,アド
レス信号,データ信号を、信号群(427)を介して主
メモリコントローラ(410)に送出する。主メモリコ
ントローラ(410)は、該信号群(427)を介して
送られてきた情報(ライト要求信号)により、主メモリ
(411)のライトアクセスを開始する。一方、それと
同時に、キャッシュコントローラ2(405)〜キャッ
シュコントローラn(406)は、該信号群(427)
の情報により、キャッシュ2(408)〜キャッシュn
(409)のスヌープを開始する。
(B) In the case of a cache 1 (407) mishit On the other hand, if the data at the address is not stored in the cache 1 (407), the cache controller 1 (4
04) sends a write request signal, an address signal, and a data signal of the data of the address to the main memory controller (410) via the signal group (427). The main memory controller (410) starts a write access to the main memory (411) according to the information (write request signal) sent via the signal group (427). On the other hand, at the same time, the cache controller 2 (405) to the cache controller n (406) transmit the signal group (427)
From the cache 2 (408) to the cache n
The snoop of (409) is started.

【0038】このときの主メモリコントローラ(41
0)の動作を説明する。主メモリコントローラ(41
0)では、まず、主記憶アクセス制御ブロック(50
1)により、プロセッサ1(401)がアクセスしよう
としているアドレスに対して、主メモリ(411)の内
容と状態記憶手段(412)の内容を読み出し、次い
で、判定回路ブロック(502)にて、状態記憶手段
(412)から読み出した値に応じて、下記の各動作を
行う。 (a)「00」の場合:…信号群(427)を介して伝
達されたデータを主メモリ(411)へ書き込む。ま
た、状態記憶手段(412)の内容は変化させない。 (b)「01」の場合:…信号群(427)を介して伝
達されたデータを主メモリ(411)へ書き込む。該ア
ドレスのデータを持つキャッシュは、主メモリ(41
1)との一致性を保つためにキャッシュ内の該アドレス
のデータを無効化する。また、状態記憶手段(412)
の内容を「00」に更新する。 (c)「10」の場合:…スヌープにより当該アドレス
の最新のデータを持つキャッシュを見付け、信号群(4
27)を介して伝達されたデータをそのキャッシュに書
き込む。またそのとき、状態記憶手段(412)の内容
は変化させない。
At this time, the main memory controller (41)
Operation 0) will be described. Main memory controller (41
0), first, the main memory access control block (50
According to 1), the contents of the main memory (411) and the contents of the state storage means (412) are read from the address to which the processor 1 (401) is going to access. The following operations are performed according to the value read from the storage unit (412). (A) For “00”: Write the data transmitted via the signal group (427) to the main memory (411). The contents of the state storage means (412) are not changed. (B) In the case of “01”: Write the data transmitted via the signal group (427) to the main memory (411). The cache having the data of the address is stored in the main memory (41
In order to maintain consistency with 1), the data at the address in the cache is invalidated. Also, a state storage means (412)
Is updated to “00”. (C) In the case of "10": A cache having the latest data at the address is found by snooping, and a signal group (4
27) writes the data transmitted via it to its cache. At this time, the contents of the state storage means (412) are not changed.

【0039】ライトアクセスの場合は、何れの場合も、
ライン転送信号(430)は無効状態である。キャッシ
ュコントローラ2(405)〜キャッシュコントローラ
n(406)ではスヌープを行い、主メモリと同じデー
タがキャッシュ内にある場合には、当該データを無効化
し、主メモリよりも新しい最新のデータがキャッシュ内
にある場合には、プロセッサ1から信号群(427)を
介して送出されたデータを、当該キャッシュへ書き込
む。本第2の実施例も上記第1の実施例と同様に、マル
チプロセッサシステムにおける不要なキャッシュのスヌ
ープを減少させることができるため、システムの性能向
上が達成できる。
In the case of write access,
The line transfer signal (430) is in an invalid state. The cache controller 2 (405) to the cache controller n (406) perform snooping. If the same data as in the main memory is in the cache, the data is invalidated, and the latest data newer than the main memory is stored in the cache. In some cases, the data sent from the processor 1 via the signal group (427) is written to the cache. In the second embodiment, unnecessary cache snoops in the multiprocessor system can be reduced, as in the first embodiment, so that the system performance can be improved.

【0040】(第3の実施例)次に、スヌープをさらに
減らすことが可能な第3の実施例を説明する。上記第1
および第2の実施例では、状態記憶手段に保持している
ものは、プロセッサからアクセスされたアドレスに該当
するブロックが、 a.少なくとも一つのキャッシュに保持されているか否
か、また、 b.もし保持されている場合にはそれがどういう状態
(主メモリと一致しているか否か)で保持されているか
を示す情報であるが、第3の実施例は、当該アドレスの
ブロックが、 a.どのキャッシュに存在するか、また b.そのキャッシュにどういう状態で保持されているか
(主メモリより新しい最新のデータが保持されているか
否か)、を示す情報にしたものである。
(Third Embodiment) Next, a third embodiment capable of further reducing snoops will be described. The first
In the second embodiment, the blocks stored in the state storage means include blocks corresponding to the address accessed by the processor. Whether it is held in at least one cache, and b. If it is held, it is information indicating what state (whether or not it matches the main memory) is held, but in the third embodiment, the block at the address is a. Which cache it is in, and b. This is information indicating what state is stored in the cache (whether the latest data newer than the main memory is stored).

【0041】この場合、状態記憶手段としては、特にス
ヌープの要否を判定するために特別に設けなくても通常
のディレクトリをそのまま利用してもよいことは明らか
である。このようにすると、どのキャッシュに存在する
かを示すために多少多くのビット(例えば、プロセッサ
数)を必要とするが、該当アドレスのブロックが最新の
データをもっている場合にはそのラインのデータを保持
しているキャッシュを調べ、そのキャッシュのみのスヌ
ープを続行し、他のキャッシュのスヌープを中断するこ
とにより、不要なスヌープをより少なくすることができ
る。
In this case, it is apparent that a normal directory may be used as the state storage means without any special provision for judging the necessity of snooping. In this way, a bit more (for example, the number of processors) is required to indicate which cache exists in the cache, but if the block at the corresponding address has the latest data, the data of that line is retained. Unnecessary snoops can be further reduced by examining the cache that is in use, continuing snooping only on that cache, and interrupting snoops on other caches.

【0042】(第4の実施例)次に、本発明の第4の実
施例を詳細に説明する。本発明の第4の実施例は、キャ
ッシュとディレクトリ間にキャッシュ情報信号を設け、
該キャッシュ情報信号によってキャッシュ状態とディレ
クトリ状態を常に一致させるようにしたものである。図
9に本発明の第4の実施例のブロック図を示す。同図に
おいて、700と800はCPUaとCPUb、701
と801は各CPUにおける命令制御部、702と80
2は各CPUにおける2ウェイ・セット・アソシアティ
ブのキャッシュ、703と803は各CPUにおけるキ
ャッシュバス、900はCPUバス、1000は本発明
が特徴とするキャッシュ情報信号、1100はディレク
トリ、1200は主メモリ、1300は主記憶制御信
号、1400はIOバス、1500はIOである。
(Fourth Embodiment) Next, a fourth embodiment of the present invention will be described in detail. A fourth embodiment of the present invention provides a cache information signal between a cache and a directory,
The cache information signal always matches the cache state with the directory state. FIG. 9 shows a block diagram of a fourth embodiment of the present invention. In the figure, 700 and 800 are CPUa and CPUb, 701
And 801 are instruction control units in each CPU, and 702 and 80
2 is a 2-way set associative cache in each CPU, 703 and 803 are cache buses in each CPU, 900 is a CPU bus, 1000 is a cache information signal which is a feature of the present invention, 1100 is a directory, 1200 is a main memory, Reference numeral 1300 denotes a main memory control signal, 1400 denotes an IO bus, and 1500 denotes an IO.

【0043】キャッシュ情報信号1000は、本実施例
では、キャッシングするか否かを示すための1bit、
CPUaとCPUbのどちらの操作であるかを示すため
の1bit、第1ウェイまたは第2ウェイのどちらに対
する操作かを示すための1bit、キャッシュの状態が
インバリッドまたはクリーンまたはダーティであること
を示すための2bitの合計5bitにより構成され
る。以下の例では、 第0ビット:「0」のときキャッシングすることを示
す。「1」のときキャッシングしないことを示す。 第1ビット:「0」のときCPUa側のキャッシュ/デ
ィレクトリアクセスを示す。「1」のときCPUb側の
キャッシュ/ディレクトリアクセスを示す。 第2ビット:「0」のとき第1ウェイに対するアクセス
を示す。「1」のとき第2ウェイに対するアクセスを示
す。 第3ビットおよび第4ビット:「00」のときキャッシ
ュの次状態がクリーンになることを示す。「01」のと
きキャッシュの次状態がダーティになることを示す。
「10」のときキャッシュの次状態がインバリッドにな
ることを示す。「11」のときキャッシュのキャッシュ
データ(ブロック)を主メモリに書き戻すことを示す。
例えば、キャッシュ情報が「00000」の場合には、
CPUa側のキャッシュ/ディレクトリの第1ウェイの
状態をクリーンにすることを示している。
In this embodiment, the cache information signal 1000 is 1 bit for indicating whether or not to perform caching.
1 bit to indicate which operation of CPUa or CPUb, 1 bit to indicate operation of the first way or the second way, and 1 bit to indicate that the cache state is invalid, clean, or dirty It is composed of a total of 5 bits of 2 bits. In the following example, caching is performed when the 0th bit is “0”. "1" indicates that no caching is performed. First bit: “0” indicates cache / directory access on the CPUa side. "1" indicates cache / directory access on the CPUb side. Second bit: “0” indicates access to the first way. "1" indicates access to the second way. Third and fourth bits: "00" indicates that the next state of the cache is clean. "01" indicates that the next state of the cache becomes dirty.
"10" indicates that the next state of the cache is invalid. "11" indicates that cache data (block) of the cache is written back to the main memory.
For example, if the cache information is “00000”,
This indicates that the state of the first way of the cache / directory on the CPUa side is to be cleaned.

【0044】図10に本実施例におけるキャッシュとデ
ィレクトリの構成図を示す。図10(a)に示すよう
に、CPUaとCPUbは、それぞれ深さXエントリの
2ウェイセットアソシアティブでライトアロケイトのキ
ャッシュを持っているものとする。この場合のディレク
トリは、図10(b)に示すように、深さXエントリの
2ウェイセットアソシアティブのディレクトリをCPU
a側とCPUb側の2セット持っている。
FIG. 10 shows a configuration diagram of the cache and the directory in this embodiment. As shown in FIG. 10A, it is assumed that each of the CPUa and the CPUb has a 2-way set associative cache with a depth X entry and a write allocate cache. In this case, as shown in FIG. 10B, the directory of the 2-way set associative of the depth X entry is set to the CPU.
It has two sets, a side and CPUb side.

【0045】次に、図9に示した各回路ブロックの動作
を説明する。図11はディレクトリ変更のフローチャー
トである。以下、同図に沿ってディレクトリ変更時の各
回路ブロックの動作について説明する。 (1)CPUリード要求時にヒットした場合:CPUa
の命令制御部701がキャッシュバス703に主記憶リ
ードを発行し(ステップS1;リード)、キャッシュ7
02のヒット判定結果がヒットの場合(ステップS2;
ヒット)、キャッシュ702は命令制御部701に要求
されたデータを返す。この場合、CPUaはCPUバス
900およびキャッシュ情報信号1000にコマンドを
発生しない。従って、ディレクトリ1100の変更は発
生しない(ステップS6)。
Next, the operation of each circuit block shown in FIG. 9 will be described. FIG. 11 is a flowchart of the directory change. Hereinafter, the operation of each circuit block when the directory is changed will be described with reference to FIG. (1) When hit at the time of CPU read request: CPUa
Instruction control unit 701 issues a main memory read to the cache bus 703 (step S1; read), and the cache 7
02 is a hit (step S2;
Hit), and the cache 702 returns the requested data to the instruction control unit 701. In this case, CPUa does not generate a command on CPU bus 900 and cache information signal 1000. Therefore, the directory 1100 is not changed (step S6).

【0046】(2)CPUリード要求時にミスヒットの
場合:CPUaの命令制御部701がキャッシュバス7
03に主記憶リードを発行し(ステップS1;リー
ド)、キャッシュ702のヒット判定結果がミスヒット
の場合(ステップS2;ミスヒット)、キャッシュ70
2は主記憶リードをCPUバス900に発行し、主メモ
リ1200のブロックをキャッシュ702に取り込むと
ともに、命令制御部701に要求されたデータを返す。
この時、キャッシュ702はキャッシュ情報信号100
0にキャッシュ702の第1ウェイまたは第2ウェイの
どちらかがクリーンの状態になることを報告する(ステ
ップS3)。この場合、CPUaはキャッシュ情報信号
1000に「00000」(CPUa側のキャッシュの
第1ウェイがクリーンの状態になる場合)または「00
100」(CPUa側のキャッシュの第2ウェイがクリ
ーンの状態になる場合)のコマンドをCPUバス900
のコマンド(主記憶リード要求)と同時に発行する。デ
ィレクトリ1100はこのキャッシュ情報信号1000
を受け取って該当するエントリの第1ウェイまたは第2
ウェイのタグ情報を更新し、ステータスをクリーンにす
る(ステップS3)。
(2) In the case of a mishit at the time of a CPU read request: the instruction control unit 701 of the CPU
03 is issued (step S1; read), and if the hit determination result of the cache 702 is a mishit (step S2; mishit), the cache 70 is read.
2 issues a main memory read to the CPU bus 900, takes the block of the main memory 1200 into the cache 702, and returns the requested data to the instruction control unit 701.
At this time, the cache 702 stores the cache information signal 100
0 is reported that either the first way or the second way of the cache 702 is in a clean state (step S3). In this case, the CPUa sets the cache information signal 1000 to “00000” (when the first way of the cache on the CPUa side is in a clean state) or “00”.
100 "(when the second way of the cache on the CPUa side is in a clean state).
(The main memory read request). The directory 1100 stores the cache information signal 1000
And the first or second way of the corresponding entry
The way tag information is updated to clear the status (step S3).

【0047】(3)CPUライト要求時にヒットでキャ
ッシュがダーティの場合:CPUaの命令制御部701
がキャッシュバス703に主記憶ライトを発行し(ステ
ップS1;ライト)、キャッシュ702のヒット判定結
果がヒット(ステップS4;ヒット)でキャッシュ状態
がダーティ(ステップS5;ダーティ)の場合、キャッ
シュ702は主記憶ライトのデータをキャッシュ702
にライトする。この場合、CPUaはCPUバス900
およびキャッシュ情報信号1000にコマンドを発生し
ない。従って、ディレクトリ1100の変更は発生しな
い(ステップS7)。
(3) If the cache is dirty due to a hit at the time of CPU write request: instruction control unit 701 of CPUa
Issues a main memory write to the cache bus 703 (step S1; write), and when the hit determination result of the cache 702 is hit (step S4; hit) and the cache state is dirty (step S5; dirty), the cache 702 Cache write data 702
Write to In this case, the CPUa is the CPU bus 900
And no command is issued to the cache information signal 1000. Therefore, no change occurs in the directory 1100 (step S7).

【0048】(4)CPUライト要求時にヒットでキャ
ッシュがクリーンの場合:CPUaの命令制御部701
がキャッシュバス703に主記憶ライトを発行し(ステ
ップS1;ライト)、キャッシュ702のヒット判定結
果がヒット(ステップS4;ヒット))でキャッシュ状
態がクリーン(ステップS5;クリーン)の場合、キャ
ッシュ702は主記憶ライトデータをキャッシュ702
にライトし、CPUbのキャッシュ802を無効化する
ため、無効化要求をCPUバス900に発行する。この
時、同時にキャッシュ702はキャッシュ情報信号10
00にキャッシュ702の第1ウェイまたは第2ウェイ
のどちらかがダーティの状態になることを報告する(ス
テップS7)。この場合、CPUaがキャッシュ情報信
号1000に「00001」(CPUa側のキャッシュ
の第1ウェイがダーティの状態になる場合)または「0
0101」(CPUa側のキャッシュの第2ウェイがダ
ーティの状態になる場合)のコマンドをCPUバス90
0のコマンド(無効化要求)と同時に発行する。ディレ
クトリ1100はこのキャッシュ情報信号1000を受
け取って該当するエントリの第1ウェイまたは第2ウェ
イのステータスをダーティにする(ステップS7)。
(4) When the cache is clean due to a hit at the time of a CPU write request: the instruction control unit 701 of the CPUa
Issues a main memory write to the cache bus 703 (step S1; write), and if the hit determination result of the cache 702 is hit (step S4; hit) and the cache state is clean (step S5; clean), the cache 702 Main memory write data cache 702
To invalidate the cache 802 of the CPU b, and issues an invalidation request to the CPU bus 900. At this time, the cache 702 simultaneously outputs the cache information signal 10
00, it is reported that either the first way or the second way of the cache 702 is in a dirty state (step S7). In this case, the CPUa sets the cache information signal 1000 to “00001” (when the first way of the cache on the CPUa side is in a dirty state) or “0”.
0101 "(when the second way of the cache on the CPUa side is in a dirty state).
It is issued at the same time as the 0 command (invalidation request). The directory 1100 receives the cache information signal 1000 and makes the status of the first way or the second way of the corresponding entry dirty (step S7).

【0049】(5)CPUライト要求時にミスヒットの
場合:CPUaの命令制御部701がキャッシュバス7
03に主記憶ライトを発行し(ステップS1;ライ
ト)、キャッシュ702のヒット判定結果がミスヒット
(ステップS4;ミスヒット)の場合、キャッシュ70
2は主記憶リードをCPUバス900に発行し、主メモ
リ1200のブロックをキャッシュ702に取り込み、
命令制御部701のデータをキャッシュ702にライト
する。キャッシュ702が主記憶リードをCPUバス9
00に発行する時、同時にキャッシュ702はキャッシ
ュ情報信号1000にキャッシュ702の第1ウェイま
たは第2ウェイのどちらかがダーティの状態になること
を報告する(ステップS7)。この場合、CPUaがキ
ャッシュ情報信号1000に「00001」(CPUa
側のキャッシュの第1ウェイがダーティの状態になる場
合)または「00101」(CPUa側のキャッシュの
第2ウェイがダーティの状態になる場合)のコマンドを
CPUバス900のコマンド(主記憶リード要求)と同
時に発行する。ディレクトリ1100はこのキャッシュ
情報信号1000を受け取って該当するエントリの第1
ウェイまたは第2ウェイのタグ情報を更新し、ステータ
スをダーティにする(ステップS7)。
(5) In the case of a mishit at the time of a CPU write request: the instruction control unit 701 of the CPU
03 is issued (step S1; write), and if the hit determination result of the cache 702 is a mishit (step S4; mishit), the cache 70
2 issues a main memory read to the CPU bus 900, fetches a block of the main memory 1200 into the cache 702,
The data of the instruction control unit 701 is written to the cache 702. The cache 702 transfers the main memory read to the CPU bus 9
When issued to 00, the cache 702 simultaneously reports to the cache information signal 1000 that either the first way or the second way of the cache 702 is in a dirty state (step S7). In this case, the CPUa adds “00001” (CPUa
When the first way of the cache on the side is in a dirty state, or "00101" (when the second way of the cache on the CPUa side is in a dirty state), the command of the CPU bus 900 (main memory read request) Issued at the same time. The directory 1100 receives the cache information signal 1000 and receives the first entry of the corresponding entry.
The tag information of the way or the second way is updated to make the status dirty (step S7).

【0050】以上説明したように、本実施例では、キャ
ッシュ情報を用いることによってキャッシュ702とデ
ィレクトリ1100の状態を常に同一に保つことが可能
になる。また、全く同様にして、CPUbのキャッシュ
802とディレクトリ1100の状態も常に同一に保つ
ことができる。
As described above, in this embodiment, the cache 702 and the directory 1100 can always be kept in the same state by using the cache information. Similarly, the state of the cache 802 of the CPUb and the state of the directory 1100 can always be kept the same.

【0051】図12はDMA時のディレクトリ動作フロ
ーチャートである。以下、同図に沿ってDMA要求時の
図1の各ブロックの動作について説明する。 (1)DMAリードでミスヒットの場合:IO1500
がIOバス1400にDMAリードを発行し、ディレク
トリ1100のヒット判定結果がミスヒット(ステップ
S11;ミスヒット)の場合、ディレクトリ1100が
主メモリ1200にIO1500へのデータ出力を指示
する。この場合、キャッシュ702とキャッシュ802
のスヌープは必要ない。ここでは、CPUバス900お
よびキャッシュ情報信号1000にコマンドは発行され
ない。
FIG. 12 is a flow chart of the directory operation at the time of DMA. Hereinafter, the operation of each block in FIG. 1 at the time of a DMA request will be described with reference to FIG. (1) In case of mishit in DMA read: IO1500
Issues a DMA read to the IO bus 1400, and when the hit determination result of the directory 1100 is a mishit (step S11; mishit), the directory 1100 instructs the main memory 1200 to output data to the IO 1500. In this case, the cache 702 and the cache 802
No snoops needed. Here, no command is issued to CPU bus 900 and cache information signal 1000.

【0052】(2)DMAリードでCPUa側ヒットで
ダーティの場合:IO1500がIOバス1400にD
MAリードを発行し、ディレクトリ1100のヒット判
定結果がCPUa側ヒット(ステップS11;CPUa
側ヒット)でCPUa側ディレクトリの状態がダーティ
(ステップS12;ダーティ)の場合、ディレクトリ1
100はCPUバス900に対し、キャッシュ702の
主メモリ1200への書き戻し(ライトバック)要求を
発行する(ステップS13)と同時に、キャッシュ情報
信号1000により、書き戻すブロックがキャッシュ7
02の第1ウェイまたは第2ウェイのどちらかであるこ
とを報告する。この場合、ディレクトリ1100がキャ
ッシュ情報信号1000に「00011」(CPUa側
のキャッシュの第1ウェイのブロックを主メモリに書き
戻す場合)または「00111」(CPUa側のキャッ
シュの第2ウェイのブロックを主メモリに書き戻す場
合)のコマンドをCPUバス900のコマンド(書き戻
し要求)と同時に発行する。キャッシュ702はこのキ
ャッシュ情報信号1000を受け取って当該キャッシュ
の第1ウェイまたは第2ウェイのデータを主メモリに書
き戻した後、該エントリをインバリッドにする。主メモ
リ1200はキャッシュ702から書き戻されたブロッ
クをIO1500へ返す。この時、CPUa側ディレク
トリをインバリッドに変更する(ステップS14)。
(2) In case of DMA read and dirty due to hit on CPUa side: IO 1500 is connected to IO bus 1400 by D
An MA read is issued, and the hit determination result of the directory 1100 is a CPUa side hit (step S11; CPUa
If the state of the directory on the CPUa side is dirty (Step S12; Dirty) at the side hit, the directory 1
100 issues a write-back (write-back) request of the cache 702 to the main memory 1200 to the CPU bus 900 (step S13), and at the same time, the cache 7
02 is reported to be either the first way or the second way. In this case, the directory 1100 stores “00011” (when the block in the first way of the cache on the CPUa side is written back to the main memory) or “00111” (block in the second way of the cache on the CPUa side) in the cache information signal 1000. Command (when writing back to the memory) is issued at the same time as the command (write-back request) of the CPU bus 900. The cache 702 receives the cache information signal 1000, writes the data of the first way or the second way of the cache back to the main memory, and then invalidates the entry. The main memory 1200 returns the block written back from the cache 702 to the IO 1500. At this time, the CPUa side directory is changed to invalid (step S14).

【0053】(3)DMAリードでCPUb側ヒットで
ダーティの場合:IO1500がIOバス1400にD
MAリードを発行し、ディレクトリ1100のヒット判
定結果がCPUb側ヒット(ステップS11;CPUb
側ヒット)でCPUb側ディレクトリの状態がダーティ
(ステップS17;ダーティ)の場合、ディレクトリ1
100はCPUバス900に対し、キャッシュ802の
主メモリ1200への書き戻し(ライトバック)要求を
発行する(ステップS18)と同時に、キャッシュ情報
信号1000により、書き戻すブロックがキャッシュ8
02の第1ウェイまたは第2ウェイのどちらかであるこ
とを報告する。この場合、ディレクトリ1100がキャ
ッシュ情報信号1000に「01011」(CPUb側
のキャッシュの第1ウェイのブロックを主メモリに書き
戻す場合)または「01111」(CPUb側のキャッ
シュの第2ウェイのブロックを主メモリに書き戻す場
合)のコマンドをCPUバス900のコマンド(書き戻
し要求)と同時に発行する。キャッシュ802はこのキ
ャッシュ情報信号1000を受け取って当該キャッシュ
の第1ウェイまたは第2ウェイのデータを主メモリに書
き戻した後、該エントリをインバリッドにする。主メモ
リ1200はキャッシュ802から書き戻されたデータ
をIO1500へ返す。この時、CPUb側ディレクト
リをインバリッドに変更する(ステップS19)。
(3) In case of DMA read and dirty due to hit on CPUb side: IO 1500 is connected to IO bus 1400 by D
An MA read is issued, and the hit determination result of the directory 1100 is a CPUb side hit (step S11; CPUb
If the state of the directory on the CPUb side is dirty (Step S17; Dirty) in directory hit, the directory 1
100 issues a write-back (write-back) request of the cache 802 to the main memory 1200 to the CPU bus 900 (step S18), and at the same time, the block to be written back is
02 is reported to be either the first way or the second way. In this case, the directory 1100 sets the cache information signal 1000 to “01011” (when writing the first way block of the CPUb side cache back to the main memory) or “01111” (when writing the second way block of the CPUb side cache to the main memory). Command (when writing back to the memory) is issued at the same time as the command (write-back request) of the CPU bus 900. The cache 802 receives the cache information signal 1000, writes the data of the first way or the second way of the cache back to the main memory, and then makes the entry invalid. The main memory 1200 returns the data written back from the cache 802 to the IO 1500. At this time, the directory on the CPUb side is changed to invalid (step S19).

【0054】(4)DMAリードでCPUa側ヒットで
クリーンの場合:IO1500がIOバス1400にD
MAリードを発行し、ディレクトリ1100のヒット判
定結果がCPUa側ヒット(ステップS11;CPUa
側ヒット)でCPUa側ディレクトリの状態がクリーン
(ステップS12;クリーン)の場合、ディレクトリ1
100が主メモリ1200にIO1500へのデータ出
力を指示する。この場合、キャッシュ702とキャッシ
ュ802のスヌープは必要ない。ここでは、CPUバス
900およびキャッシュ情報信号1000にコマンドは
発行されない。
(4) In the case of a DMA read and the CPUa side hit and clean: IO 1500 is connected to IO bus 1400 by D
An MA read is issued, and the hit determination result of the directory 1100 is a CPUa side hit (step S11; CPUa
If the state of the directory on the CPUa side is clean (step S12; clean) at the side hit, the directory 1
100 instructs the main memory 1200 to output data to the IO 1500. In this case, there is no need to snoop the cache 702 and the cache 802. Here, no command is issued to CPU bus 900 and cache information signal 1000.

【0055】(5)DMAリードでCPUb側ヒットで
クリーンの場合:IO1500がIOバス1400にD
MAリードを発行し、ディレクトリ1100のヒット判
定結果がCPUb側ヒット(ステップS11;CPUb
側ヒット)でCPUb側ディレクトリの状態がクリーン
(ステップS17;クリーン)の場合、ディレクトリ1
100が主メモリ1200にIO1500へのデータ出
力を指示する。この場合、キャッシュ702とキャッシ
ュ802のスヌープは必要ない。ここでは、CPUバス
900およびキャッシュ情報信号1000にコマンドは
発行されない。
(5) In the case of the DMA read and the CPUb side hit and clean: IO 1500 is connected to IO bus 1400 by D
An MA read is issued, and the hit determination result of the directory 1100 is a CPUb side hit (step S11; CPUb
If the state of the directory on the CPUb side is clean (step S17; clean) at the side hit, the directory 1
100 instructs the main memory 1200 to output data to the IO 1500. In this case, there is no need to snoop the cache 702 and the cache 802. Here, no command is issued to CPU bus 900 and cache information signal 1000.

【0056】(6)DMAライトでミスヒットの場合:
IO1500がIOバス1400にDMAライトを発行
し、ディレクトリ1100のヒット判定結果がミスヒッ
ト(ステップS11;ミスヒット)の場合、ディレクト
リ1100が主メモリ1200にIO1500からのデ
ータの書き込みを指示する。この場合、キャッシュ70
2とキャッシュ802のスヌープは必要ない。ここで
は、CPUバス900およびキャッシュ情報信号100
0にコマンドは発行されない。
(6) In case of mishit in DMA write:
If the IO 1500 issues a DMA write to the IO bus 1400 and the hit determination result of the directory 1100 is a mishit (step S11: mishit), the directory 1100 instructs the main memory 1200 to write data from the IO 1500. In this case, the cache 70
No snooping of 2 and cache 802 is required. Here, the CPU bus 900 and the cache information signal 100
No command is issued for 0.

【0057】(7)DMAライトでCPUa側ヒットで
ダーティの場合:IO1500がIOバス1400にD
MAライトを発行し、ディレクトリ1100のヒット判
定結果がCPUa側ヒット(ステップS11;CPUa
側ヒット)でCPUa側ディレクトリの状態がダーティ
(ステップS12;ダーティ)の場合、ディレクトリ1
100はCPUバス900に対し、キャッシュ702の
主メモリ1200への書き戻し要求を発行する(ステッ
プS13)と同時に、キャッシュ情報信号1000によ
り、書き戻すブロックがキャッシュ702の第1ウェイ
または第2ウェイのどちらかであることを報告する。こ
の場合、ディレクトリ1100がキャッシュ情報信号1
000に「00011」(CPUa側のキャッシュの第
1ウェイのブロックを主メモリに書き戻す場合)または
「00111」(CPUa側のキャッシュの第2ウェイ
のブロックを主メモリに書き戻す場合)のコマンドをC
PUバス300のコマンド(書き戻し要求)と同時に発
行する。キャッシュ702はこのキャッシュ情報信号1
000を受け取って当該キャッシュの第1ウェイまたは
第2ウェイのデータを主メモリに書き戻した後、該エン
トリをインバリッドにする。ディレクトリ1100はキ
ャッシュ702の書き戻しブロックを主メモリ1200
にライトしてからIO1500からのデータを主メモリ
1200にライトする。この時、CPUa側ディレクト
リをインバリッドに変更する(ステップS14)。
(7) In case of DMA write and dirty due to CPUa hit: IO 1500 is connected to IO bus 1400 by D
MA write is issued, and the hit determination result of the directory 1100 is a CPUa side hit (step S11; CPUa
If the state of the directory on the CPUa side is dirty (Step S12; Dirty) at the side hit, the directory 1
100 issues a request to write back the main memory 1200 of the cache 702 to the CPU bus 900 (step S13), and at the same time, the block to be written back is written in the first way or the second way of the cache 702 by the cache information signal 1000. Report either. In this case, the directory 1100 stores the cache information signal 1
000 to “00011” (when rewriting the block of the first way of the cache on the CPUa side to the main memory) or “00111” (when rewriting the block of the second way of the cache on the CPUa side to the main memory). C
It is issued at the same time as the PU bus 300 command (write-back request). The cache 702 stores the cache information signal 1
000 is received and the data of the first way or the second way of the cache is written back to the main memory, and then the entry is invalidated. The directory 1100 stores the write-back block of the cache 702 in the main memory 1200.
Then, the data from the IO 1500 is written to the main memory 1200. At this time, the CPUa side directory is changed to invalid (step S14).

【0058】(8)DMAライトでCPUb側ヒットで
ダーティの場合:IO1500がIOバス1400にD
MAライトを発行し、ディレクトリ1100のヒット判
定結果がCPUb側ヒット(ステップS11;CPUb
側ヒット)でCPUb側ディレクトリの状態がダーティ
(ステップS17;ダーティ)の場合、ディレクトリ1
100はCPUバス900に対し、キャッシュ802の
主メモリ1200への書き戻し要求を発行する(ステッ
プS18)と同時に、キャッシュ情報信号1000によ
り、書き戻すブロックがキャッシュ802の第1ウェイ
または第2ウェイのどちらかであることを報告する。こ
の場合、ディレクトリ1100がキャッシュ情報信号1
000に「01011」(CPUb側のキャッシュの第
1ウェイのブロックを主メモリに書き戻す場合)または
「01111」(CPUb側のキャッシュの第2ウェイ
のブロックを主メモリに書き戻す場合)のコマンドをC
PUバス900のコマンド(書き戻し要求)と同時に発
行する。キャッシュ802はこのキャッシュ情報信号1
000を受け取って当該キャッシュの第1ウェイまたは
第2ウェイのデータを主メモリに書き戻した後、該エン
トリをインバリッドにする。ディレクトリ1100はキ
ャッシュ802の書き戻しブロックを主メモリ1200
にライトしてからIO1500からのデータを主メモリ
1200にライトする。この時、CPUb側ディレクト
リをインバリッドに変更する(ステップS19)。
(8) In case of DMA write and dirty due to hit of CPUb side: IO 1500 is connected to IO bus 1400 by D
MA write is issued, and the hit determination result of the directory 1100 is a CPUb side hit (step S11; CPUb
If the state of the directory on the CPUb side is dirty (Step S17; Dirty) in directory hit, the directory 1
100 issues a write-back request to the main memory 1200 of the cache 802 to the CPU bus 900 (step S18), and at the same time, the cache information signal 1000 causes the block to be written back to the first way or the second way of the cache 802. Report either. In this case, the directory 1100 stores the cache information signal 1
The command of “01011” (when rewriting the block of the first way of the cache on the CPUb side to the main memory) or “01111” (when rewriting the block of the second way of the cache on the CPUb side to the main memory) is stored in 000. C
It is issued at the same time as the PU bus 900 command (write-back request). The cache 802 receives the cache information signal 1
000 is received and the data of the first way or the second way of the cache is written back to the main memory, and then the entry is invalidated. The directory 1100 stores the write-back block of the cache 802 in the main memory 1200.
Then, the data from the IO 1500 is written to the main memory 1200. At this time, the directory on the CPUb side is changed to invalid (step S19).

【0059】(9)DMAライトでCPUa側ヒットで
クリーンの場合:IO1500がIOバス1400にD
MAライトを発行し、ディレクトリ1100のヒット判
定結果がCPUa側ヒット(ステップS11;CPUa
側ヒット)でCPUa側ディレクトリの状態がクリーン
(ステップS12;クリーン)の場合、ディレクトリ1
100はCPUバス900に対し、キャッシュ702の
無効化要求を発行すると同時に、キャッシュ情報信号1
000により、無効化するデータがキャッシュ702の
第1ウェイまたは第2ウェイのどちらかであることを報
告する。この場合、ディレクトリ1100がキャッシュ
情報信号1000に「00010」(CPUa側のキャ
ッシュの第1ウェイがインバリッドの状態になる場合)
または「00110」(CPUa側のキャッシュの第2
ウェイがインバリッドの状態になる場合)のコマンドを
CPUバス900のコマンド(無効化要求)と同時に発
行する。キャッシュ702はこのキャッシュ情報信号1
000を受け取って当該キャッシュの第1ウェイまたは
第2ウェイをインバリッドにする(ステップS16)。
ディレクトリ1100はIO1500からのデータを主
メモリ1200にライトする。この時、CPUa側ディ
レクトリをインバリッドに変更する(ステップ14)。
(9) In the case where the CPUa side hits the DMA write and is clean: IO 1500 is connected to IO bus 1400 by D
MA write is issued, and the hit determination result of the directory 1100 is a CPUa side hit (step S11; CPUa
If the state of the directory on the CPUa side is clean (step S12; clean) at the side hit, the directory 1
100 issues a request to invalidate the cache 702 to the CPU bus 900,
000 reports that the data to be invalidated is either the first way or the second way of the cache 702. In this case, the directory 1100 indicates “00010” in the cache information signal 1000 (when the first way of the cache on the CPUa side becomes invalid).
Or "00110" (the second cache of the CPUa side)
Command (when the way enters the invalid state) is issued at the same time as the command (invalidation request) on the CPU bus 900. The cache 702 stores the cache information signal 1
000 is received and the first way or the second way of the cache is invalidated (step S16).
The directory 1100 writes data from the IO 1500 to the main memory 1200. At this time, the CPUa side directory is changed to invalid (step 14).

【0060】(10)DMAライトでCPUb側ヒット
でクリーンの場合:IO1500がIOバス1400に
DMAライトを発行し、ディレクトリ1100のヒット
判定結果がCPUb側ヒット(ステップS11;CPU
b側ヒット)でCPUb側ディレクトリの状態がクリー
ン(ステップS17;クリーン)の場合、ディレクトリ
1100はCPUバス900に対し、キャッシュ802
の無効化要求を発行すると同時に、キャッシュ情報信号
1000により、無効化するデータがキャッシュ702
の第1ウェイまたは第2ウェイのどちらかであることを
報告する。この場合、ディレクトリ1100がキャッシ
ュ情報信号1000に「01010」(CPUb側のキ
ャッシュの第1ウェイがインバリッドの状態になる場
合)または「01110」(CPUb側のキャッシュの
第2ウェイがインバリッドの状態になる場合)のコマン
ドをCPUバス900のコマンド(無効化要求)と同時
に発行する。キャッシュ802はこのキャッシュ情報信
号1000を受け取って当該キャッシュの第1ウェイま
たは第2ウェイをインバリッドにする(ステップS2
1)。主メモリ1200はIO1500からのデータを
ライトする。この時、CPUb側ディレクトリをインバ
リッドに変更する(ステップS19)。
(10) When the CPU write hits the CPUb side and the DMA is clean: The IO 1500 issues a DMA write to the IO bus 1400, and the hit determination result of the directory 1100 indicates that the CPU b hits (step S11; CPU
If the state of the directory on the CPUb side is clean (step S17; clean) in the (b-side hit), the directory 1100 is stored in the cache 802 on the CPU bus 900.
At the same time that the invalidation request is issued, the data to be invalidated
Is reported to be either the first way or the second way. In this case, the directory 1100 changes the cache information signal 1000 to “01010” (when the first way of the CPUb side cache is invalid) or “01110” (when the second way of the CPUb side cache is invalid). ) Is issued at the same time as the command (invalidation request) on the CPU bus 900. The cache 802 receives the cache information signal 1000 and invalidates the first way or the second way of the cache (step S2).
1). The main memory 1200 writes data from the IO 1500. At this time, the directory on the CPUb side is changed to invalid (step S19).

【0061】以上の動作により、ディレクトリ容量はキ
ャッシュ容量の合計で済むようになる。また、DMAで
ディレクトリミスヒット時のキャッシュスヌープは必要
なくなり、DMAのキャッシュスヌープ時も無効化また
は書き戻しの発生するキャッシュとウェイをディレクト
リが指示するため、キャッシュのヒット判定が必要なく
なる。なお、第4の実施例では2ウェイのキャッシュで
説明したが、キャッシュのウェイ数にもよらずキャッシ
ュ情報のビットを変更するだけでさらに多ウェイに拡張
できることは明らかである。また、上記実施例ではキャ
ッシュをCPU内に設けた場合で説明したが、本発明は
キャッシュの物理的な位置によらず、CPUの内部に位
置した場合にも、CPUの外部に位置した場合にも適用
可能である。また、上記実施例ではライトバック方式の
キャッシュで説明したが、本発明はキャッシュの方式に
よらずライトスルー方式でもライトバック方式でも適用
可能である。
With the above operation, the directory capacity can be the total of the cache capacity. In addition, cache snooping in the case of a directory mishit in the DMA is not necessary, and the cache also specifies the cache and way in which invalidation or write-back occurs during the cache snooping in the DMA. In the fourth embodiment, a two-way cache has been described. However, it is apparent that the number of ways can be expanded by simply changing the bit of the cache information regardless of the number of ways in the cache. Further, in the above embodiment, the case where the cache is provided in the CPU has been described. However, the present invention is applicable to the case where the cache is located inside the CPU and the case where the cache is located outside the CPU regardless of the physical position of the cache. Is also applicable. Further, in the above-described embodiment, the cache of the write-back system has been described, but the present invention is applicable to a write-through system and a write-back system regardless of the cache system.

【0062】[0062]

【発明の効果】本発明によれば、キャッシュを有するマ
ルチプロセッサシステムにおいて、スヌープ方式とディ
レクトリ方式とを併用することによって、不要なキャッ
シュのスヌープを減少させることができ、また、主メモ
リのアクセスに要する時間よりもキャッシュのスヌープ
に要する時間の方が長いようなシステムの場合、キャッ
シュのスヌープで主メモリアクセスが律速することが避
けられるため、システムの性能向上が達成できる。ま
た、本発明は、システム内のキャッシュの階層構造には
よらないし、各プロセッサが違う階層構造のキャッシュ
を持っていても有効である。また、各キャッシュの一致
性保証のプロトコルにもよらない。さらに、本発明は、
各キャッシュがライトスルー方式であっても、ライトバ
ック方式であっても、さらに、システム内および階層内
に両キャッシュ方式が混在していても有効である。ま
た、本発明は、状態記憶手段をDRAMで構成してもよ
いし、または、SRAMで構成してもよい。即ち、本発
明は、状態記憶手段の構成素子にはよらない。
According to the present invention, in a multiprocessor system having a cache, unnecessary snooping of a cache can be reduced by using both a snoop method and a directory method. In a system in which the time required for the snoop of the cache is longer than the required time, the main memory access is not limited by the cache snoop, so that the system performance can be improved. The present invention does not depend on the hierarchical structure of the cache in the system, and is effective even if each processor has a cache having a different hierarchical structure. Also, it does not depend on the protocol for guaranteeing the consistency of each cache. Further, the present invention provides
It is effective whether each cache is a write-through system or a write-back system, and both cache systems are mixed in the system and in the hierarchy. Further, in the present invention, the state storage means may be constituted by a DRAM or an SRAM. That is, the present invention does not depend on the constituent elements of the state storage means.

【0063】また、本発明によれば、キャッシュコヒー
レンシをディレクトリ方式で保証しているシステムにお
いて、キャッシュとディレクトリ間にキャッシュ情報信
号を設け、ディレクトリ状態とキャッシュ状態を常に一
致させることにより、主メモリ容量全てに対するディレ
クトリを持つ必要がなく、キャッシュ容量の合計のディ
レクトリで済むようになる。また、DMAでディレクト
リミスヒット時のキャッシュスヌープは必要なくなり、
DMAのキャッシュスヌープ時も無効化または書き戻し
の発生するキャッシュとウェイをディレクトリが指示す
るため、キャッシュのヒット判定が必要なくなる。
Further, according to the present invention, in a system in which cache coherency is guaranteed by a directory method, a cache information signal is provided between a cache and a directory so that the directory state and the cache state always coincide with each other, thereby reducing the main memory capacity. There is no need to have a directory for everything, and a directory with the total cache capacity is sufficient. In addition, cache snooping at the time of directory mishit in DMA becomes unnecessary,
Even during a DMA cache snoop, the directory indicates the cache and way in which invalidation or write-back occurs, so that it is not necessary to determine the cache hit.

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

【図1】本発明の第1の実施例を実施するための全体構
成図である。
FIG. 1 is an overall configuration diagram for implementing a first embodiment of the present invention.

【図2】本発明の第1の実施例を実施するための主メモ
リコントローラの主要ブロックを示す図である。
FIG. 2 is a diagram showing main blocks of a main memory controller for implementing the first embodiment of the present invention.

【図3】本発明の第1の実施例を実施するためのキャッ
シュコントローラの主要ブロックを示す図である。
FIG. 3 is a diagram showing main blocks of a cache controller for implementing the first embodiment of the present invention.

【図4】主メモリ空間およびそれに対応する状態記憶手
段を示す図である。
FIG. 4 is a diagram showing a main memory space and a corresponding state storage means.

【図5】状態記憶手段の一実施例の内容を示す図であ
る。
FIG. 5 is a diagram showing contents of an embodiment of a state storage means.

【図6】本発明の第2の実施例を実施するための全体構
成図である。
FIG. 6 is an overall configuration diagram for implementing a second embodiment of the present invention.

【図7】本発明の第2の実施例を実施するための主メモ
リコントローラの主要ブロックを示す図である。
FIG. 7 is a diagram showing main blocks of a main memory controller for implementing a second embodiment of the present invention.

【図8】本発明の第2の実施例を実施するためのキャッ
シュコントローラの主要ブロックを示す図である。
FIG. 8 is a diagram showing main blocks of a cache controller for implementing a second embodiment of the present invention.

【図9】本発明の第4の実施例のブロック図である。FIG. 9 is a block diagram of a fourth embodiment of the present invention.

【図10】本発明の第4の実施例のキャッシュとディレ
クトリの構成図である。
FIG. 10 is a configuration diagram of a cache and a directory according to a fourth embodiment of the present invention.

【図11】本発明の第4の実施例のディレクトリの変更
フローである。
FIG. 11 is a flowchart for changing a directory according to a fourth embodiment of the present invention.

【図12】本発明の第4の実施例のDMA時のディレク
トリの動作フローである。
FIG. 12 is an operation flow of a directory at the time of DMA according to the fourth embodiment of the present invention.

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

101,401…プロセッサ1、102,402…プロ
セッサ2、103,403…プロセッサn、104,4
04…キャッシュコントローラ1、105,405…キ
ャッシュコントローラ2、106,406…キャッシュ
コントローラn、107,407…キャッシュ1、10
8,408…キャッシュ2、109,409…キャッシ
ュn、110,410…主メモリコントローラ、11
1,411…主メモリ、112,412…状態記憶手
段、130…スヌープ中断信号、201,501…主記
憶アクセス制御ブロック、202,502…判定回路ブ
ロック、203…中断信号制御回路ブロック、204,
504…主記憶アクセス制御回路、205,505…状
態記憶手段制御回路、301,601…キャッシュアク
セス制御ブロック、302,602…スヌープ制御ブロ
ック、303…中断回路ブロック、430…ライン転送
信号、503…ライン転送制御回路ブロック、700,
800…CPU、701,801…CPU命令制御部、
702,802…キャッシュ、703,803…キャッ
シュバス、900…CPUバス、1000…キャッシュ
情報信号、1100…ディレクトリ、1200…主メモ
リ、1300…主記憶制御信号、1400…IOバス、
1500…IO
101, 401 ... Processor 1, 102, 402 ... Processor 2, 103, 403 ... Processor n, 104, 4
04: Cache controller 1, 105, 405: Cache controller 2, 106, 406: Cache controller n, 107, 407: Cache 1, 10
8, 408: Cache 2, 109, 409: Cache n, 110, 410: Main memory controller, 11
1,411: Main memory, 112, 412: State storage means, 130: Snoop interruption signal, 201, 501: Main memory access control block, 202, 502: Judgment circuit block, 203: Interruption signal control circuit block, 204,
504: Main memory access control circuit, 205, 505: State storage means control circuit, 301, 601: Cache access control block, 302, 602: Snoop control block, 303: Interruption circuit block, 430: Line transfer signal, 503: Line Transfer control circuit block, 700,
800: CPU, 701, 801: CPU instruction control unit,
702, 802: cache, 703, 803: cache bus, 900: CPU bus, 1000: cache information signal, 1100: directory, 1200: main memory, 1300: main memory control signal, 1400: IO bus,
1500 ... IO

───────────────────────────────────────────────────── フロントページの続き (72)発明者 坪井 正英 愛知県尾張旭市晴丘町池上1番地 株式会 社日立製作所オフィスシステム事業部内 (72)発明者 村嶋 寛志 愛知県尾張旭市晴丘町池上1番地 株式会 社日立製作所オフィスシステム事業部内 (72)発明者 岡澤 宏一 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 梅村 雅也 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 内藤 倫典 愛知県尾張旭市晴丘町池上1番地 株式会 社日立旭エレクトロニクス内 (72)発明者 平光 哲生 愛知県尾張旭市晴丘町池上1番地 株式会 社日立旭エレクトロニクス内 (72)発明者 寺尾 益美 愛知県名古屋市中区栄三丁目10番22号 日 立中部ソフトウェア株式会社内 ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Masahide Tsuboi 1 Ikegami, Haruoka-cho, Owariasahi-shi, Aichi Prefecture Inside the Office Systems Division of Hitachi, Ltd. (72) Inventor Koichi Okazawa 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Incorporated Hitachi Systems Development Laboratory (72) Inventor Masaya Umemura 1099, Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture (72) Inventor Tomonori Naito 1st Ikegami, Haruoka-cho, Owariasahi-city, Aichi Prefecture Inside Hitachi Asahi Electronics Co., Ltd. (72) Tetsuo Hiramitsu 1st Ikegami, Haruoka-machi, Owariasahi-shi, Aichi Japan Inc. Hitachi Asahi Electronics (72) Who Masumi Terao Nagoya, Aichi Prefecture, Naka-ku Sakae Third Street No. 10 No. 22 Date start-Central software within Co., Ltd.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 複数のプロセッサと、前記複数のプロセ
ッサに共有される主メモリと、前記主メモリの制御を行
う主メモリコントローラと、前記複数のプロセッサの各
々と前記主メモリとの間に位置し、前記主メモリの内容
のコピーを保持する複数のキャッシュメモリと、前記複
数のキャッシュメモリの各々の制御を行うキャッシュコ
ントローラとを有するマルチプロセッサシステムにおけ
るキャッシュメモリ制御装置において、 前記主メモリ上のデータの状態を記憶する状態記憶手段
と、前記プロセッサからアクセスされたアドレスに対応
して前記状態記憶手段を検索し該アドレスに対して他キ
ャッシュのスヌープが必要か否かを判定する判定回路
と、前記判定回路による判定の結果スヌープが不要であ
るとわかった場合、前記キャッシュコントローラに対し
て出力するスヌープの中断を知らせるスヌープ中断信号
と、前記各々のキャッシュコントローラに、前記スヌー
プ中断信号を受け取った場合に該スヌープを中断すため
の中断回路を設けたことを特徴とするキャッシュメモリ
制御装置。
A plurality of processors; a main memory shared by the plurality of processors; a main memory controller for controlling the main memory; and a main memory controller located between each of the plurality of processors and the main memory. A cache memory control device in a multiprocessor system having a plurality of cache memories for holding a copy of the contents of the main memory and a cache controller for controlling each of the plurality of cache memories; State storage means for storing a state, a determination circuit for searching the state storage means in response to an address accessed from the processor, and determining whether or not snooping of another cache is necessary for the address; If it is determined by the circuit that snooping is unnecessary, the cache A snoop interruption signal for notifying a snoop interruption outputted to a controller, and an interruption circuit for interrupting the snoop when each of the cache controllers receives the snoop interruption signal. Memory controller.
【請求項2】 複数のプロセッサと、前記複数のプロセ
ッサに共有される主メモリと、前記主メモリの制御を行
う主メモリコントローラと、前記複数のプロセッサの各
々と前記主メモリとの間に位置し、前記主メモリの内容
のコピーを保持する複数のキャッシュメモリと、前記複
数のキャッシュメモリの各々の制御を行うキャッシュコ
ントローラとからなり、前記主メモリから前記キャッシ
ュメモリへの転送単位(ブロック)が、前記キャッシュ
メモリから前記プロセッサへの転送単位(ライン)複数
分であるマルチプロセッサシステムにおけるキャッシュ
メモリ制御装置において、 前記キャッシュコントローラからのブロックの置き換え
要求時に、該ブロック内の特定のラインのみスヌープを
行うスヌープ回路と、前記主メモリ上のデータの状態を
記憶する状態記憶手段と、前記プロセッサからアクセス
されたアドレスに対応して前記状態記憶手段を検索し、
該アドレスを含むブロックに対応するデータの状態を判
定する判定回路と、前記判定回路による判定の結果該ア
ドレスを含むブロックに対応するデータに対してスヌー
プが不要であると判定された場合にブロック全体のデー
タをキャッシュコントローラに出力するとともに、スヌ
ープが必要であると判定された場合に特定のラインのみ
の転送に切り替え、該特定ラインの情報を前記キャッシ
ュコントローラに通知する手段を設けたことを特徴とす
るキャッシュメモリ制御装置。
2. A plurality of processors, a main memory shared by the plurality of processors, a main memory controller controlling the main memory, and a main memory controller located between each of the plurality of processors and the main memory. A plurality of cache memories for holding a copy of the contents of the main memory, and a cache controller for controlling each of the plurality of cache memories, and a transfer unit (block) from the main memory to the cache memory is: In a cache memory control device in a multiprocessor system that is a plurality of transfer units (lines) from the cache memory to the processor, a snoop that snoops only a specific line in the block when the cache controller requests a block replacement. A circuit and data on the main memory A state storage means for storing the state, searches the state storage means corresponding to the access address from the processor,
A determination circuit for determining a state of data corresponding to the block including the address; and a determination unit that determines that the snoop is unnecessary for the data corresponding to the block including the address as a result of the determination by the determination circuit. Data to the cache controller, and when it is determined that snooping is necessary, switching to transfer of only a specific line is provided, and means for notifying the cache controller of the information of the specific line is provided. Cache memory control device.
【請求項3】 請求項1または2に記載のキャッシュ制
御装置において、前記状態記憶手段は、主メモリ上のど
のデータが、少なくとも一つのキャッシュメモリに保持
されているか否か、また保持されている場合にどういう
状態で保持されているかを記憶していることを特徴とす
るキャッシュメモリ制御装置。
3. The cache control device according to claim 1, wherein the state storage means determines which data in the main memory is stored in at least one cache memory, and further stores the data. A cache memory control device, which stores the state in which the data is held.
【請求項4】 請求項1または2に記載のキャッシュメ
モリ制御装置において、前記状態記憶手段は、主メモリ
上のどのデータがキャッシュメモリに保持されているか
否か、保持されている場合にはどのキャッシュメモリに
どういう状態で保持されているかを記憶していることを
特徴とするキャッシュメモリ制御装置。
4. The cache memory control device according to claim 1, wherein said state storage means determines which data in said main memory is stored in said cache memory, and which data is stored in said cache memory. What is stored in a cache memory is a cache memory control device.
【請求項5】 キャッシュコヒーレンシをディレクトリ
方式で保証しているマルチプロセッサシステムにおける
キャッシュメモリ制御装置において、 キャッシュとディレクトリ間で送受するキャッシュ情報
信号を設け、該キャッシュ情報信号を用いてキャッシュ
状態とディレクトリ状態を一致させるようにしたことを
特徴とするキャッシュメモリ制御装置。
5. A cache memory control device in a multiprocessor system in which cache coherency is guaranteed by a directory method, a cache information signal transmitted / received between a cache and a directory is provided, and a cache state and a directory state are used by using the cache information signal. A cache memory control device, wherein
【請求項6】 請求項5記載のキャッシュメモリ制御装
置において、キャッシュ状態が変化する場合には、キャ
ッシュがキャッシュ状態の変化をキャッシュ情報信号に
よってディレクトリに報告し、DMAが発生した場合に
は、ディレクトリがキャッシュデータの無効化とキャッ
シュデータの主メモリへの書き戻しをキャッシュ情報信
号によってキャッシュに報告するようにしたことを特徴
とするキャッシュメモリ制御装置。
6. The cache memory control device according to claim 5, wherein when the cache state changes, the cache reports a change in the cache state to the directory by using a cache information signal, and when a DMA occurs, the directory changes. Wherein the invalidation of the cache data and the writing back of the cache data to the main memory are reported to the cache by a cache information signal.
JP8212369A 1996-08-12 1996-08-12 Cache memory controller Pending JPH1055314A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8212369A JPH1055314A (en) 1996-08-12 1996-08-12 Cache memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8212369A JPH1055314A (en) 1996-08-12 1996-08-12 Cache memory controller

Publications (1)

Publication Number Publication Date
JPH1055314A true JPH1055314A (en) 1998-02-24

Family

ID=16621429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8212369A Pending JPH1055314A (en) 1996-08-12 1996-08-12 Cache memory controller

Country Status (1)

Country Link
JP (1) JPH1055314A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358155B1 (en) * 1999-12-24 2002-10-25 한국전자통신연구원 Interrupt controller apparatus and control method for using cache controller
JP2008140258A (en) * 2006-12-04 2008-06-19 Renesas Technology Corp Bus controller
JP5136652B2 (en) * 2008-11-10 2013-02-06 富士通株式会社 Information processing apparatus and memory control apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358155B1 (en) * 1999-12-24 2002-10-25 한국전자통신연구원 Interrupt controller apparatus and control method for using cache controller
JP2008140258A (en) * 2006-12-04 2008-06-19 Renesas Technology Corp Bus controller
JP5136652B2 (en) * 2008-11-10 2013-02-06 富士通株式会社 Information processing apparatus and memory control apparatus

Similar Documents

Publication Publication Date Title
KR100318789B1 (en) System and method for managing cache in a multiprocessor data processing system
JP4316016B2 (en) System and method for maintaining memory coherence in a computer system having multiple system buses
US7827354B2 (en) Victim cache using direct intervention
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
JP3269967B2 (en) Cache coherency control method and multiprocessor system using the same
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US5740400A (en) Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
US6651115B2 (en) DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JP3281893B2 (en) Method and system for implementing a cache coherency mechanism utilized within a cache memory hierarchy
US7305523B2 (en) Cache memory direct intervention
JPH08185359A (en) Memory subsystem
JPH07253928A (en) Duplex cache snoop mechanism
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
JPH04233048A (en) Method and apparatus for controlling multilevel cahche
JP2000010860A (en) Cache memory control circuit, processor, processor system, and parallel processor system
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
JP3068469B2 (en) Second level cache memory system
JP3732397B2 (en) Cash system
US7234028B2 (en) Power/performance optimized cache using memory write prevention through write snarfing
JP3202943B2 (en) Processing apparatus and improved apparatus and method for snooping a lookaside cache
JP3626609B2 (en) Multiprocessor system