JP2001043204A - Cache memory controller - Google Patents

Cache memory controller

Info

Publication number
JP2001043204A
JP2001043204A JP11219265A JP21926599A JP2001043204A JP 2001043204 A JP2001043204 A JP 2001043204A JP 11219265 A JP11219265 A JP 11219265A JP 21926599 A JP21926599 A JP 21926599A JP 2001043204 A JP2001043204 A JP 2001043204A
Authority
JP
Japan
Prior art keywords
cache
processor
memory
address
bus
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
JP11219265A
Other languages
Japanese (ja)
Inventor
Hirokazu Yoshida
啓和 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP11219265A priority Critical patent/JP2001043204A/en
Publication of JP2001043204A publication Critical patent/JP2001043204A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce load caused by the bus snooping operation of each processor for guaranteeing the coherency of a cache in a multiprocessor system. SOLUTION: A function for guaranteeing the coherency of cache memories 120 and 220 is added to a system bus-I/O bus bridge 300. The bridge 300 singly discriminates whether cache matching processing is required for the data of an address to be accessed or not and only when cache matching processing is required, it is instructed to the relevant processor. Besides, address and tag information showing the address on a shared memory 400 and the state of the data held on the cache memories 120 and 220 inside respective processors 100 and 200 is held just by cache capacity for the unit of a cache line in processor cache tag tables 350 and 351.

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 having a shared memory, and more particularly to a coherency control device for a multiprocessor system which guarantees cache coherency by a bus snoop method. The present invention relates to a cache memory control device that performs guarantee control at high speed and efficiently.

【0002】[0002]

【従来の技術】通常、キャッシュ・メモリおよび共有メ
モリを有するマルチ・プロセッサシステムでは、システ
ム内のキャッシュ・メモリおよび共有メモリに格納され
たすべてのデータにおいてコヒーレンシを保証しなけれ
ばならない。このコヒーレンシの保証とは、各プロセッ
サおよび共有メモリにアクセスできるI/Oバス配下の
デバイスが、特定のアドレスに対応する最新のデータに
アクセスできることを保証するということである。たと
えば、特定のプロセッサが共有メモリの特定アドレスの
データのコピーをキャッシュ・メモリに格納し、かつ、
キャッシュ・メモリ内のデータのみを更新した場合は、
他のプロセッサおよび共有メモリにアクセス可能なI/
Oバス配下のデバイスは、そのアドレスのデータとし
て、上記キャッシュ・メモリ内に存在する更新後のデー
タにアクセスしなければならないということである。
2. Description of the Related Art Generally, in a multi-processor system having a cache memory and a shared memory, coherency must be guaranteed for all data stored in the cache memory and the shared memory in the system. This guarantee of coherency means that devices under the I / O bus that can access each processor and the shared memory can access the latest data corresponding to a specific address. For example, a particular processor stores a copy of the data at a particular address of the shared memory in a cache memory, and
If only the data in the cache memory is updated,
I / O that can access other processors and shared memory
This means that the device under the O bus must access the updated data existing in the cache memory as the data at the address.

【0003】一般に、マルチ・プロセッサ・システムに
おけるキャッシュのコヒーレンシ保証の方法としては、
キャッシュ・メモリを有する各プロセッサのバス・スヌ
ーピング・オペレーションによるものが知られている。
この方法は、マルチ・プロセッサ・システム内のキャッ
シュ・メモリを有する各プロセッサが、常に他のプロセ
ッサおよび共有メモリにアクセスできるI/Oバス配下
のデバイスによるメモリ・アクセスを監視し、該当する
アドレスのデータが自キャッシュ・メモリ内に存在する
か否かを調べ、必要であればキャッシュ一致化処理を行
うという方法である。この方法では、キャッシュ一致化
処理が必要ないメモリ・アクセスであったとしても、そ
の判定のために、メモリ・アクセスの度に必ず上記の各
プロセッサによるスヌーピング・オペレーションが伴
い、各プロセッサのオーバーヘッドの増大によりシステ
ム性能の低下を招くという問題があり、これを解決する
ために種々の技術が提案されている。
In general, as a method of guaranteeing coherency of a cache in a multi-processor system,
It is known to rely on the bus snooping operation of each processor having a cache memory.
In this method, each processor having a cache memory in a multi-processor system monitors a memory access by a device under an I / O bus that can always access another processor and a shared memory, and stores data at an appropriate address. Is checked whether it exists in its own cache memory, and if necessary, a cache matching process is performed. According to this method, even if the memory access does not require the cache coherency processing, a snooping operation by each processor described above is always performed for each memory access for the determination, and the overhead of each processor increases. Therefore, there is a problem that the system performance is deteriorated, and various techniques have been proposed to solve the problem.

【0004】このような従来技術の一例として、たとえ
ば、特開平10−55314号公報に開示されているキ
ャッシュ・メモリ制御装置を挙げることができる。この
キャッシュ・メモリ制御装置では、各プロセッサによる
不要なバス・スヌーピング・オペレーションを避けるた
めに、共有メモリ上のデータに対してそのキャッシング
の状態をキャッシュ・ライン単位で表す状態記憶手段
と、その状態記憶手段の内容により、他キャッシュのス
ヌープが必要か否かを判定する判定回路と、該判定回路
の判定結果によりスヌープ中断信号を発行する中断信号
制御回路と、各プロセッサのキャッシュ制御部毎のスヌ
ープ制御部および中断回路とを設け、メモリ・アクセス
に対して従来通り各プロセッサによるバス・スヌーピン
グ・オペレーションは行うが、同時に上記状態記憶手段
を参照し、スヌープが不要であるとわかった場合には、
スヌープの終了を待たずに上記中断信号制御回路よりプ
ロセッサの中断回路に対してスヌープの中止を指示する
ことによって、各プロセッサの不要なバス・スヌーピン
グ・オペレーションによるシステム性能低下を減少させ
ている。
As an example of such a conventional technique, for example, a cache memory control device disclosed in Japanese Patent Application Laid-Open No. H10-55314 can be mentioned. In this cache memory control device, in order to avoid unnecessary bus snooping operation by each processor, state storage means for expressing the state of caching of data on the shared memory in units of cache lines, and the state storage means A determining circuit for determining whether or not snooping of another cache is necessary according to the contents of the means; a suspending signal control circuit for issuing a snoop suspending signal based on the determination result of the determining circuit; and a snooping control for each cache control unit of each processor. And a suspending circuit are provided, and a bus snooping operation is performed by each processor for memory access as in the past, but when it is determined that snooping is unnecessary by referring to the state storage means at the same time,
The interruption signal control circuit instructs the interruption circuit of the processor to suspend the snoop without waiting for the end of the snoop, thereby reducing the system performance degradation due to unnecessary bus snooping operation of each processor.

【0005】図10は、同公報記載のキャッシュメモリ
制御装置の一例を実施するための全体構成図である。キ
ャッシュメモリコントローラ1(4)等は信号線(2
1)等を介してプロセッサ1(1)等に、また、信号線
(24)等を介してキャッシュ1(7)等に接続されて
いる。また、各キャッシュコントローラ1(4)〜n
(6)および主メモリコントローラ(10)は信号群
(27)を介して相互に接続され、該信号群(27)を介
してデータ転送およびスヌープ制御が行われる。信号
(30)は主メモリコントローラ(10)から各キャッ
シュコントローラ1(4)〜n(6)に対して送られる
スヌープ中断信号である。
FIG. 10 is an overall configuration diagram for implementing an example of the cache memory control device described in the publication. The cache memory controller 1 (4) and the like are connected to the signal line (2
1) and the like, and to the cache 1 (7) and the like via a signal line (24) and the like. Also, each of the cache controllers 1 (4) to n
(6) and the main memory controller (10)
They are connected to each other via (27), and data transfer and snoop control are performed via the signal group (27). The signal (30) is a snoop interruption signal sent from the main memory controller (10) to each of the cache controllers 1 (4) to n (6).

【0006】状態記憶手段(12)は主メモリ(11)
のメモリ空間の各ブロックごとに一つのテーブルエント
リを持っておリ、該エントリの内容が「00」の場合は
当該ブロックのデータはどのキャッシュにも格納されて
いないことを、「01」の場合は当該ブロックのデータ
は少なくとも一つのキャッシュに格納されておりその内
容は主メモリと一致していることを、「10」の場合は
当該ブロックのデータは少なくとも一つのキャッシュに
格納されておりその内容は主メモリと一致していないこ
とを意味する。
The state storage means (12) is a main memory (11)
Has one table entry for each block in the memory space, and if the content of the entry is "00", it means that the data of the block is not stored in any cache; Indicates that the data of the block is stored in at least one cache and its contents match the main memory, and if "10", the data of the block is stored in at least one cache and its contents Means that it does not match the main memory.

【0007】主メモリコントローラ(10)がキャッシ
ュの状態を記憶している状態記憶手段(ディレクトリを
含む)(12)を参照し、スヌープが必要か否かを判定
する。その結果、スヌープが不要であるときにはキャッ
シュコントローラ(4)〜(6)にスヌープ中断を知ら
せるスヌープ中断信号(30)を発する。キャッシュコ
ントローラ(4)〜(6)では、スヌープ中断信号(3
0)を受け取った場合に該スヌープを中断させる。この
ように、本装置はスヌープ方式とディレクトリ方式とを
併用することにより、不必要なキャッシュのスヌープを
減少させるというものである。
The main memory controller (10) refers to state storage means (including a directory) (12) storing the state of the cache, and determines whether or not snooping is necessary. As a result, when the snoop is unnecessary, the snoop interruption signal (30) for notifying the snoop interruption to the cache controllers (4) to (6) is issued. In the cache controllers (4) to (6), the snoop interruption signal (3
0), the snoop is interrupted. As described above, the present apparatus reduces unnecessary cache snooping by using both the snoop method and the directory method.

【0008】[0008]

【発明が解決しようとする課題】しかしながら、上述の
特開平10−55314号公報記載の従来技術では、キ
ャッシュ一致化処理が必要でないプロセッサにもバス・
スヌーピング・オペレーションの負荷が生じるという第
1の問題点がある。その理由は、メモリ・アクセスの度
に各プロセッサが無条件にスヌーピング・オペレーショ
ンを行い、主メモリ・コントローラが状態記憶手段を参
照した後、不要であればそのスヌープを中断させるとい
う手法を採っているからである。
However, in the prior art described in the above-mentioned Japanese Patent Application Laid-Open No. H10-55314, even a processor which does not need the cache coherence processing needs a bus and a bus.
There is a first problem that a load of the snooping operation occurs. The reason is that each processor unconditionally performs a snooping operation every time a memory access is performed, and after the main memory controller refers to the state storage means, the snoop is interrupted if unnecessary. Because.

【0009】また、状態記憶手段のメモリ容量が多くな
ってしまうという第2の問題点がある。その理由は、状
態記憶手段内に、共有メモリ上の全データに対して、そ
のキャッシングの状態をキャッシュ・ライン単位で管理
する必要があるからである。たとえば、同公報に記載さ
れているように、キャッシュ・ラインあたりのキャッシ
ング状態を2ビットで管理したとし、共有メモリ・サイ
ズが256Mバイト、キャッシュ・ライン・サイズが3
2バイトのシステムであれば、状態記憶手段は16Mビ
ットもの容量が必要となってしまう。
There is also a second problem that the memory capacity of the state storage means is increased. The reason is that it is necessary to manage the state of caching for all data in the shared memory in units of cache lines in the state storage means. For example, as described in the above publication, it is assumed that the cache state per cache line is managed by 2 bits, the shared memory size is 256 Mbytes, and the cache line size is 3 bits.
In the case of a 2-byte system, the state storage means requires a capacity of as much as 16 Mbits.

【0010】本発明の第1の目的は、従来、各プロセッ
サが個々に持っていたキャッシュのコヒーレンシを保証
する機能を、システム・バス−I/Oバス・ブリッジに
集中することにより、マルチ・プロセッサ・システムに
おける各プロセッサのバス・スヌーピング・オペレーシ
ョンによる負荷を無くし、システム全体の性能を向上さ
せるキャッシュ・メモリ制御装置を提供することにあ
る。
A first object of the present invention is to provide a multi-processor by concentrating a function for guaranteeing coherency of a cache which each processor has conventionally had individually on a system bus-I / O bus bridge. The object of the present invention is to provide a cache memory control device that eliminates a load due to a bus snooping operation of each processor in a system and improves the performance of the entire system.

【0011】本発明の第2の目的は、上記キャッシュの
コヒーレンシを保証する機能を、システム・バス−I/
Oバス・ブリッジに可能な限り小型でインプリメントす
るキャッシュ・メモリ制御装置を提供することにある。
A second object of the present invention is to provide a system bus-I /
An object of the present invention is to provide a cache memory controller which is implemented as small as possible in an O bus bridge.

【0012】[0012]

【課題を解決するための手段】第1の本発明のキャッシ
ュ・メモリ制御装置は、共有メモリを備えたマルチプロ
セッサシステムを構成する各プロセッサおよび前記共有
メモリにアクセス可能なデバイスが、特定のメモリアド
レスに対応する最新のデータにアクセスできるための保
証を前記プロセッサ外でバス・スヌープ方式により、か
つ単一の装置として行うことを特徴とする。
According to a first aspect of the present invention, there is provided a cache memory control device, wherein each processor constituting a multiprocessor system having a shared memory and a device capable of accessing the shared memory are provided with a specific memory address. Is guaranteed by the bus snoop method outside the processor and as a single device so that the latest data corresponding to the data can be accessed.

【0013】第2の本発明のキャッシュ・メモリ制御装
置は、共有メモリを備えたマルチプロセッサシステムを
構成する各プロセッサおよび前記共有メモリにアクセス
可能なデバイスが、特定のメモリアドレスに対応する最
新のデータにアクセスできるための保証をバス・スヌー
プ方式により行うために、前記各プロッセサのキャッシ
ュ・メモリがどのような状態で前記共有メモリ内のデー
タを保持しているかを、前記プロセッサ対応に、かつ、
キャッシ・ュメモリのキャッシュ・ライン単位で保持す
ることを特徴とする。
According to a second aspect of the present invention, there is provided a cache memory control device, wherein each processor constituting a multiprocessor system having a shared memory and a device capable of accessing the shared memory are provided with the latest data corresponding to a specific memory address. In order to perform the guarantee for accessing the shared memory by the bus snoop method, in what state the cache memory of each processor holds the data in the shared memory, corresponding to the processor, and
It is characterized in that the cache memory is held in cache line units.

【0014】第3の本発明のキャッシュ・メモリ制御装
置は、共有メモリを備えたマルチプロセッサシステムに
おけるキャッシュ・メモリ制御装置において、前記各プ
ロセッサのキャッシュ・メモリに前記共有メモリ内のど
のアドレスのデータがどのような状態で保持されている
かを示すアドレスおよびタグ情報をキャッシュ・ライン
単位で保持するプロセッサ・キャッシュ・タグ・テーブ
ルと、前記プロセッサおよびI/Oバス配下のデバイス
からのメモリアクセス要求時に、アクセスされようとし
ているアドレスのデータに対してキャッシュ一致化処理
が必要であるか否かを前記プロセッサ・キャッシュ・タ
グ・テーブルから判定するキャッシュヒット検出回路
と、該判定の結果によりキャッシュ一致化処理が必要な
場合のみ該当するプロセッサ内のキャッシュ制御回路に
対してキャッシュ・ライン単位でのキャッシュ一致化処
理を指示し、各プロセッサによりキャッシュ内部の状態
が変更された場合には前記プロセッサ・キャッシュ・タ
グ・テーブルを更新するために該当キャッシュ・ライン
・アドレスを指示されるキャッシュ制御回路とを設けた
ことを特徴とする。
According to a third aspect of the present invention, there is provided a cache memory control device in a multiprocessor system having a shared memory, wherein data of any address in the shared memory is stored in the cache memory of each processor. A processor cache tag table for holding address and tag information indicating in what state it is held in cache line units, and a memory access request when a memory access request is issued from the processor and a device under the I / O bus A cache hit detection circuit for determining from the processor cache tag table whether or not cache matching processing is required for the data of the address to be performed, and cache matching processing is required based on the result of the determination; If the relevant To instruct the cache control circuit in the processor to perform cache matching processing in units of cache lines, and to update the processor cache tag table when the internal state of the cache is changed by each processor. A cache control circuit for designating a corresponding cache line address.

【0015】詳しくは、本発明のキャッシュ・メモリ制
御装置は、前記キャッシュ制御回路と前記プロセッサ内
のキャッシュ制御回路とは、前記キャッシュ・ラインの
アドレス信号線を含むキャッシュ制御信号線で接続さ
れ、前記キャッシュ・メモリにアドレスおよびデータを
格納するときのプロトコルと、前記プロセッサ・キャッ
シュ・タグ・テーブルにアドレスを格納するときのプロ
トコルとを同一にしたことを特徴とする。
More specifically, in the cache memory control device according to the present invention, the cache control circuit and the cache control circuit in the processor are connected by a cache control signal line including an address signal line of the cache line. A protocol for storing an address and data in a cache memory is the same as a protocol for storing an address in the processor cache tag table.

【0016】詳しくは、本発明のキャッシュ・メモリ制
御装置は、前記キャッシュ制御回路と前記プロセッサ内
のキャッシュ制御回路とは、前記プロセッサ,前記共有
メモリおよび該キャッシュ・メモリ制御装置を接続する
システムバス内ののデータ信号線で接続されることを特
徴とする。
More specifically, in the cache memory control device according to the present invention, the cache control circuit and the cache control circuit in the processor are provided in a system bus connecting the processor, the shared memory, and the cache memory control device. Are connected by data signal lines.

【0017】詳しくは、本発明のキャッシュ・メモリ制
御装置は、各プロセッサおよび前記共有メモリが接続さ
れるシステムバスと、前記デバイスが接続される入出力
バスとの間に挿入され、DMA制機能およびメモリ制御
機能を併せ持つシステム・バスーI/Oバス・ブリッジ
で構成されることを特徴とする。
More specifically, the cache memory control device of the present invention is inserted between a system bus to which each processor and the shared memory are connected and an input / output bus to which the device is connected, and has a DMA control function and It is characterized by comprising a system bus-I / O bus bridge having a memory control function.

【0018】本発明のキャッシュ・メモリ制御装置は、
具体的には、共有メモリを備えたマルチ・プロセッサ・
システムにおいて、キャッシュのコヒーレンシを保証す
る手段として、システム・バス−I/Oバス・ブリッジ
内に、各プロセッサの内部キャッシュに共有メモリ上の
どのアドレスのデータがどのような状態で保持されてい
るかを示すアドレス及びタグ情報をプロセッサ毎にキャ
ッシュ・ライン単位で保持するテーブル(図1の35
0,351)と、プロセッサ及びI/Oバス配下のエー
ジェントからのメモリアクセス要求時に、アクセスされ
ようとしているアドレスのデータに対してキャッシュ一
致化処理が必要であるか否かを上記テーブルから判定す
る判定手段(図1の360)と、キャッシュ一致化処理
が必要な場合のみ該当するプロセッサのキャッシュ制御
回路に対してキャッシュ・ライン単位でのキャッシュ一
致化処理を指示し、各プロセッサによりキャッシュ内部
の状態が変更された場合には該当キャッシュ・ライン・
アドレスを指示される通信手段(図1の330及び18
0,280)とを設けることにより、各プロセッサによ
る不要なスヌーピング・オペレーションを無くし、シス
テムの性能を向上させるものである。
The cache memory control device of the present invention comprises:
Specifically, multi-processors with shared memory
In the system, as a means for guaranteeing cache coherency, in a system bus-I / O bus bridge, an internal cache of each processor stores which address data in a shared memory is held in what state. A table (35 in FIG. 1) for holding the indicated address and tag information in cache line units for each processor.
0, 351), and when the memory access request from the processor and the agent under the I / O bus is made, it is determined from the above table whether or not the data of the address to be accessed requires the cache matching process. The determination means (360 in FIG. 1) and the cache control circuit of the corresponding processor are instructed to perform the cache matching process in units of cache lines only when the cache matching process is necessary, and the state of the cache internal by each processor. Is changed, the corresponding cache line
Communication means designated by the address (330 and 18 in FIG. 1)
0, 280), unnecessary snooping operation by each processor is eliminated, and the performance of the system is improved.

【0019】本発明では、システム・バス−I/Oバス
・ブリッジ内に、各プロセッサの内部キャッシュに共有
メモリ上のどのアドレスのデータがどのような状態で保
持されているかを示すアドレス及びタグ情報をプロセッ
サ毎にキャッシュ・ライン単位で保持し、プロセッサ及
びI/Oバス配下のエージェント(デバイス)からのメ
モリアクセス要求時に、アクセスされようとしているア
ドレスのデータに対してキャッシュ一致化処理が必要で
あるか否かをシステム・バス−I/Oバス・ブリッジが
単独で判定し、キャッシュ一致化処理が必要な場合のみ
該当するプロセッサに対して指示をするため、各プロセ
ッサのバス・スヌーピング・オペレーションによるオー
バーヘッドを無くし、キャッシュのコヒーレンシを保つ
ためのシステム性能の低下を軽減できるようにしたもの
である。
According to the present invention, in the system bus-I / O bus bridge, address and tag information indicating which address data on the shared memory is held in the internal cache of each processor and in what state. Is held for each processor in a cache line unit, and when a memory access request is made from the processor and an agent (device) under the I / O bus, cache matching processing is required for data at an address to be accessed. The system bus-I / O bus bridge independently determines whether or not it is, and gives an instruction to the corresponding processor only when cache matching processing is necessary. Therefore, the overhead due to the bus snooping operation of each processor. System to eliminate cache and maintain cache coherency It is a reduction of those to be alleviated.

【0020】また、共有メモリに対してではなく、キャ
ッシュ・メモリのキャッシュ・ライン単位でデータの状
態を示すアドレス及びタグを保持することとしたため、
キャッシュのコヒーレンシ保証機能を少量のハードウェ
アで実現できるのである。
Further, since the address and the tag indicating the data state are stored not in the shared memory but in the cache line unit of the cache memory,
The cache coherency guarantee function can be realized with a small amount of hardware.

【0021】[0021]

【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
Next, embodiments of the present invention will be described in detail with reference to the drawings.

【0022】図1は、本発明の一実施の形態によるキャ
ッシュ・メモリ制御装置が適用されるマルチ・プロセッ
サ・システムの構成を示すブロック図である。このマル
チ・プロセッサ・システムは、プロセッサ100〜20
0と、システムバスI/Oバス・ブリッジ300と、共
有メモリ400と、システム・バス401と、I/Oバ
ス402と、デバイス403〜405とから構成され
る。同図において、プロセッサ100〜プロセッサ20
0および共有メモリ400が接続されるシステム・バス
401と、I/Oバス402配下のデバイス403〜4
05が接続されるI/Oバス402とを接続し制御する
システム・バス−I/Oバス・ブリッジ300が、本発
明のキャッシュ・メモリ制御装置である。システム・バ
ス―I/Oバス・ブリッジ300はDMA制御および共
有メモリ400に対するメモリ制御をも行う。
FIG. 1 is a block diagram showing a configuration of a multi-processor system to which a cache memory control device according to an embodiment of the present invention is applied. This multi-processor system includes processors 100-20.
0, a system bus I / O bus bridge 300, a shared memory 400, a system bus 401, an I / O bus 402, and devices 403 to 405. Referring to FIG.
0 and the shared memory 400 are connected to the system bus 401 and the devices 403 to 4 under the I / O bus 402.
The system bus-I / O bus bridge 300 that connects and controls the I / O bus 402 to which the H.05 is connected is a cache memory control device of the present invention. The system bus-I / O bus bridge 300 also performs DMA control and memory control for the shared memory 400.

【0023】プロセッサ100はCPUコア110と、
ライトバック方式で制御されるキャッシュ・メモリ12
0と、キャッシュ・メモリ120に入出力されるアドレ
ス信号線,データ信号線,制御信号線等を制御するキャ
ッシュ制御回路130と、システム・バス401とのイ
ンタフェースを制御するバス・インタフェース回路14
0とで構成される。このキャッシュ・メモリ120は各
ラインのアドレスを格納するアドレス部と各ラインのデ
ータを格納するデータ部と、各ラインのキャッシングの
状態値を格納する状態部とで構成される。この状態部は
「無効(Invalid)」、「共有(Share
d)」、「変更(Dirty)」の3つの状態値を格納
することができる。状態部の初期値は「無効」である。
なお、他のプロセッサ200等は、プロセッサ100と
同様に構成されており、プロセッサ200等の構成要素
もそれぞれプロセッサ100の相当する構成要素と同様
である。
The processor 100 includes a CPU core 110,
Cache memory 12 controlled by write-back method
0, a cache control circuit 130 for controlling an address signal line, a data signal line, a control signal line and the like input / output to / from the cache memory 120, and a bus interface circuit 14 for controlling an interface with the system bus 401.
0. The cache memory 120 includes an address section for storing an address of each line, a data section for storing data of each line, and a state section for storing a caching state value of each line. This state part is “Invalid”, “Shared (Share)
d) "and" Dirty "can be stored. The initial value of the state part is “invalid”.
The other processors 200 and the like have the same configuration as the processor 100, and the components of the processor 200 and the like are also the same as the corresponding components of the processor 100.

【0024】システム・バス−I/Oバス・ブリッジ3
00は、プロセッサ100〜200内部のキャッシュ・
メモリ120〜220のアドレス部とタグ部のコピーを
保持するために、マルチ・プロセッサ・システムを構成
するキャッシュ・メモリを有するプロセッサの数と同じ
数のプロセッサ・キャッシュ・タグ・テーブル350〜
351を有する。図1では、図面の煩雑化を回避するた
め、プロセッサ100,プロセッサ200対応のプロセ
ッサ・キャッシュ・タグ・テーブル350,351のみ
を示している。。
System bus-I / O bus bridge 3
00 denotes a cache in the processors 100 to 200.
In order to hold copies of the address portion and the tag portion of the memories 120 to 220, the same number of processor cache tag tables 350 to 350 as the number of processors having the cache memories constituting the multi-processor system are used.
351. FIG. 1 shows only processor cache tag tables 350 and 351 corresponding to the processors 100 and 200 in order to avoid complication of the drawing. .

【0025】キャッシュ・メモリの特定ラインにアドレ
ス及びデータを格納する際のプロトコルは、そのプロセ
ッサもしくはシステムに依存するが、本実施の形態で
は、プロセッサ100とシステム・バス−I/Oバス・
ブリッジ300、プロセッサ200とシステム・バス−
I/Oバス・ブリッジ300の間で、キャッシュ・ライ
ン・アドレスを使用してキャッシュ・メモリの制御を行
うため、プロセッサ100,200の、キャッシュ・メ
モリ120,220にアドレス及びデータを格納する際
のプロトコルと、プロセッサ・キャッシュ・タグ・テー
ブル350,プロセッサ・キャッシュ・タグ・テーブル
351に該当アドレスを格納する際のプロトコルは同じ
である必要があり、同じライン・アドレスのプロセッサ
のキャッシュ・ラインと該当するプロセッサ・キャッシ
ュ・タグ・テーブルのラインとは、常に同じアドレスが
格納されることを保証する。
The protocol for storing an address and data in a specific line of the cache memory depends on the processor or the system. In this embodiment, the processor 100 and the system bus-I / O bus
Bridge 300, processor 200 and system bus
In order to control the cache memory using the cache line address between the I / O bus bridges 300, when the processor 100, 200 stores addresses and data in the cache memories 120, 220, The protocol and the protocol for storing the corresponding address in the processor cache tag table 350 and the processor cache tag table 351 need to be the same, and correspond to the cache line of the processor having the same line address. The line of the processor cache tag table guarantees that the same address is always stored.

【0026】システム・バス−I/Oバス・ブリッジ3
00は、システム・バス401に接続されている共有メ
モリ400を制御するメモリ・コントローラ320と、
I/Oバス402に接続されているデバイス403〜4
05を制御するDMAコントローラ310と、入出力バ
ッファ311および321と、システム・バス401上
のトランザクションのコマンドが格納されるコマンド・
レジスタ322と、アドレスが格納されるアドレス・レ
ジスタ323と、データが格納されるデータ・レジスタ
324と、I/Oバス402上のトランザクションのコ
マンドが格納されるコマンド・レジスタ312と、アド
レスが格納されるアドレス・レジスタ313と、データ
が格納されるデータ・レジスタ314と、システム・バ
ス401のアービトレーションを制御するシステム・バ
ス調停回路370と、プロセッサ100,200のキャ
ッシュ・メモリおよびシステム・バス−I/Oバス・ブ
リッジ300のプロセッサ・キャッシュ・タグ・テーブ
ル350,351とを制御するキャッシュ制御回路33
0と、プロセッサ100,プロセッサ200およびI/
Oバス402配下のデバイス403〜405からのメモ
リ・リード/ライト・トランザクションがプロセッサ・
キャッシュ・タグ・テーブル350,351にヒットし
キャッシュ一致化処理が必要か否かを判定するキャッシ
ュヒット検出回路360とで構成される。
System bus-I / O bus bridge 3
00 is a memory controller 320 that controls the shared memory 400 connected to the system bus 401;
Devices 403 to 4 connected to I / O bus 402
Controller 310 for controlling the H.05, input / output buffers 311 and 321, and a command for storing a transaction command on the system bus 401.
A register 322, an address register 323 for storing an address, a data register 324 for storing data, a command register 312 for storing a command of a transaction on the I / O bus 402, and an address for storing Address register 313, a data register 314 storing data, a system bus arbitration circuit 370 for controlling arbitration of the system bus 401, a cache memory of the processors 100 and 200 and a system bus I / O. A cache control circuit 33 for controlling the processor cache tag tables 350 and 351 of the O bus bridge 300
0, processor 100, processor 200 and I /
Memory read / write transactions from the devices 403 to 405 under the O bus 402
A cache hit detection circuit 360 that hits the cache tag tables 350 and 351 and determines whether or not cache matching processing is necessary.

【0027】共有メモリ400はシステム・バス401
に接続され、プロセッサ100,プロセッサ200、お
よびI/Oバス402配下のデバイス403〜405か
ら、システム・バス−I/Oバス・ブリッジ300を介
してシステム・バス401上に要求されたメモリ・リー
ド・アクセスやメモリ・ライト・アクセスに対して応答
可能な記憶装置である。
The shared memory 400 includes a system bus 401
Connected to the processor 100, the processor 200, and the devices 403 to 405 under the I / O bus 402, which are requested on the system bus 401 via the system bus-I / O bus bridge 300. A storage device that can respond to access and memory write access.

【0028】システム・バス401およびI/Oバス4
02は、接続された各装置が相互にアクセス可能なため
のアドレス信号線,データ信号線,コマンド信号線およ
びアービトレーション信号線等の制御信号線を含むバス
である。また、キャッシュ一致化処理のために、各プロ
セッサ100,200のキャッシュ制御回路130,2
30とシステム・バス−I/Oバス・ブリッジ300の
キャッシュ制御回路330とは、キャッシュ制御信号線
180,280で接続される。キャッシュ制御信号線1
80,280はキャッシュ・ライン・アドレス信号線と
制御信号線とで構成され、ポイント−ツウ−ポイントで
接続される。
System bus 401 and I / O bus 4
Reference numeral 02 denotes a bus including control signal lines such as an address signal line, a data signal line, a command signal line, and an arbitration signal line for allowing the connected devices to access each other. Also, for the cache matching process, the cache control circuits 130, 2 of each processor 100, 200
The cache control circuit 330 of the system bus-I / O bus bridge 300 is connected to the cache control signal lines 180 and 280. Cache control signal line 1
Numerals 80 and 280 are composed of a cache line address signal line and a control signal line, and are connected point-to-point.

【0029】次に、キャッシュ・メモリ120,220
の状態部が格納することのできる3つの状態値について
説明する。状態値の1つ「無効(Invalid)」
は、そのキャッシュ・ラインのアドレス部とデータ部と
が有効でないこと、すなわち、そのラインが共有メモリ
400のコピーを持っていないことを表す。他の状態値
「共有(Shared)」は、そのキャッシュ・ライン
には、共有メモリ400のコピーが存在し、複数のプロ
セッサのキャッシュ・メモリにコピーが存在し得るが、
共有メモリ400のデータと内容が一致していることを
表す。残る状態値「変更(Dirty)」は、そのキャ
ッシュ・ラインにのみ共有メモリ400のコピーが存在
し、かつ、その内容が更新されていることを表す。
Next, the cache memories 120 and 220
The following describes three state values that can be stored by the state unit. One of the status values "Invalid"
Indicates that the address portion and the data portion of the cache line are invalid, that is, the line does not have a copy of the shared memory 400. Another state value "Shared" indicates that a copy of the shared memory 400 exists in the cache line, and a copy may exist in the cache memory of a plurality of processors.
This indicates that the data and the contents of the shared memory 400 match. The remaining state value "Change (Dirty)" indicates that a copy of the shared memory 400 exists only in the cache line and the content is updated.

【0030】次に、図1の実施の形態の動作について、
図を参照して説明する。
Next, the operation of the embodiment shown in FIG.
This will be described with reference to the drawings.

【0031】第1に、プロセッサ100のCPUコア1
10から共有メモリ400の特定アドレスに対してメモ
リリード・アクセスを行う場合を考える。このとき、C
PUコア110は、キャッシュ制御回路130に対し
て、キャッシュ・メモリ120内に該当するアドレスの
データが格納されているか否かのチェックを指示する。
First, the CPU core 1 of the processor 100
Consider a case where a memory read access is performed from 10 to a specific address of the shared memory 400. At this time, C
The PU core 110 instructs the cache control circuit 130 to check whether or not the data of the corresponding address is stored in the cache memory 120.

【0032】(ケース1)キャッシュ・メモリ120内
にリード対象のデータがあり、該当する状態部が「共
有」もしくは「変更」を表していた場合、すなわち、キ
ャッシュ・ヒットした場合は、キャッシュ・メモリ12
0内のデータがCPUコア110に渡され、メモリリー
ド・アクセスは終了する。
(Case 1) If there is data to be read in the cache memory 120 and the corresponding status part indicates "shared" or "change", that is, if a cache hit occurs, the cache memory 12
The data in 0 is passed to the CPU core 110, and the memory read access ends.

【0033】(ケース2)キャッシュ・メモリ120内
にリードの対象のデータが存在しない場合、または存在
するが該当する状態部が「無効」を表していた場合、す
なわち、キャッシュ・ミスヒットした場合は、CPUコ
ア110はバス・インタフェース回路140を介してシ
ステム・バス−I/Oバス・ブリッジ300のシステム
・バス調停回路370に対して、バス・リクエスト信号
線181をドライブしシステム・バス401の使用権を
要求する。他のプロセッサがシステム・バス401を使
用中でない場合、システム・バス調停回路370は、し
かるべき調停の後、プロセッサ100のバス・インタフ
ェース回路140に対して、バス許可信号線182をド
ライブし、システム・バス401の使用を許可する。
(Case 2) When the data to be read does not exist in the cache memory 120, or when it exists but the corresponding status part indicates "invalid", that is, when a cache miss occurs. The CPU core 110 drives the bus request signal line 181 to the system bus arbitration circuit 370 of the system bus-I / O bus bridge 300 via the bus interface circuit 140 to use the system bus 401. Claim rights. If no other processor is using the system bus 401, the system bus arbitration circuit 370 drives the bus enable signal line 182 to the bus interface circuit 140 of the processor 100 after appropriate arbitration, and -The use of the bus 401 is permitted.

【0034】システム・バスの使用権を許可されたプロ
セッサ・コア110は、システム・バス401のアドレ
ス信号線にメモリリード・アドレスを、コマンド信号線
にメモリリード・コマンドをドライブして、メモリリー
ドを開始する。システム・バス−I/Oバス・ブリッジ
300は、プロセッサ100がドライブしたアドレス,
コマンドをアドレス・レジスタ323,コマンド・レジ
スタ322に取り込み、そのメモリリードを開始したプ
ロセッサ100以外のプロセッサ対応のプロセッサ・キ
ャッシュ・タグ・テーブル351内に該当するアドレス
が格納されているか否かをキャッシュヒット検出回路3
60にてチェックする。
The processor core 110 granted the right to use the system bus drives the memory read address on the address signal line of the system bus 401 and the memory read command on the command signal line to read the memory read. Start. The system bus-I / O bus bridge 300 stores addresses driven by the processor 100,
The command is fetched into the address register 323 and the command register 322, and it is determined whether or not the corresponding address is stored in the processor cache tag table 351 corresponding to the processor other than the processor 100 which has started the memory read. Detection circuit 3
Check at 60.

【0035】(ケース2−1)他のプロセッサ対応のプ
ロセッサ・キャッシュ・タグ・テーブルのいずれかに、
該当するアドレスが格納されていて、その状態部が「変
更」を表していた場合、システム・バス−I/Oバス・
ブリッジ300のキャッシュヒット検出回路360は、
キャッシュ一致化処理が必要と判断し、キャッシュ制御
回路330を介して、該当するプロセッサのキャッシュ
制御回路に対してキャッシュ一致化処理を指示する(図
2参照)。
(Case 2-1) In one of the processor cache tag tables corresponding to other processors,
If the corresponding address is stored and the status part indicates "change", the system bus-I / O bus.
The cache hit detection circuit 360 of the bridge 300
It determines that the cache matching process is necessary, and instructs the cache control circuit of the corresponding processor to perform the cache matching process via the cache control circuit 330 (see FIG. 2).

【0036】以下、プロセッサ100が開始したメモリ
リード・アクセスがプロセッサ200に対応するプロセ
ッサ・キャッシュ・タグ・テーブル351にヒットした
として説明する。システム・バス−I/Oバス・ブリッ
ジ300のキャッシュ制御回路330は、キャッシュ制
御信号線280を使用し、プロセッサ200のキャッシ
ュ制御回路230に、プロセッサ100が開始したメモ
リリード・アドレスがヒットしたラインを共有メモリ4
00にライトし、その状態部を「共有」にするよう指示
する。
The following description is based on the assumption that a memory read access initiated by the processor 100 hits the processor cache tag table 351 corresponding to the processor 200. The cache control circuit 330 of the system bus-I / O bus bridge 300 uses the cache control signal line 280 to send the line where the memory read address started by the processor 100 hits to the cache control circuit 230 of the processor 200. Shared memory 4
00, and instructs the status part to be “shared”.

【0037】指示を受けたプロセッサ200のキャッシ
ュ制御回路230は、バス・インタフェース回路240
を介して、該当するアドレスを含むラインのデータをシ
ステム・バス401のデータ信号線にドライブし、該当
ラインの状態部を「共有」に変更する。
The cache control circuit 230 of the processor 200 receiving the instruction sets the bus interface circuit 240
, The data of the line including the corresponding address is driven to the data signal line of the system bus 401, and the status part of the corresponding line is changed to “shared”.

【0038】システム・バス−I/Oバス・ブリッジ3
00は、メモリ・コントローラ320を介して、該デー
タを共有メモリ400に取り込むよう指示する。同時に
プロセッサ100はシステム・バス401上にドライブ
されたデータをメモリリードに対するデータとしてバス
・インタフェース回路140を介して、キャッシュ・メ
モリ120内に取り込み、キャッシュ制御回路130
は、その状態部を「共有」とする。さらに、該データを
CPUコア110に渡し、メモリリード・アクセスを終
了する。
System bus-I / O bus bridge 3
00 instructs via the memory controller 320 to fetch the data into the shared memory 400. At the same time, the processor 100 fetches the data driven on the system bus 401 into the cache memory 120 via the bus interface circuit 140 as data for the memory read, and the cache control circuit 130
Makes its status part "shared". Further, the data is passed to the CPU core 110, and the memory read access is terminated.

【0039】システム・バス−I/Oバス・ブリッジ3
00は、プロセッサ200対応のキャッシュ・タグ・テ
ーブル351の該当するアドレスを含むラインの状態部
を「変更」から「共有」に更新し、プロセッサ・キャッ
シュ・タグ・テーブル350に、プロセッサ100のキ
ャッシュ格納プロトコルと同じプロトコルを用いて、す
なわち、プロセッサ100のキャッシュ・メモリ120
の該メモリリード・アドレスおよびデータが格納された
ライン・アドレスと同じライン・アドレスに、アドレス
・レジスタ323内の該メモリ・リードのアドレスを格
納し、情報部に「共有」を格納する。
System bus-I / O bus bridge 3
00 updates the state part of the line including the corresponding address in the cache tag table 351 corresponding to the processor 200 from “change” to “shared”, and stores the cache of the processor 100 in the processor cache tag table 350. Using the same protocol as the cache memory 120 of the processor 100.
The address of the memory read in the address register 323 is stored at the same line address as the memory read address and the line address at which the data is stored, and "shared" is stored in the information section.

【0040】(ケース2−2)他のプロセッサ対応のプ
ロセッサ・キャッシュ・タグ・テーブル351にも、該
当するアドレスが格納されていない場合、または格納さ
れているが、その状態部が「共有」あるいは「無効」を
表していた場合、システム・バス−I/Oバス・ブリッ
ジ300のキャッシュヒット検出回路360は、キャッ
シュ一致化処理が不要と判断し、メモリ・コントローラ
320を介して、共有メモリ400にメモリ・リードを
指示する(図3参照)。
(Case 2-2) When the corresponding address is not stored in the processor cache tag table 351 corresponding to another processor, or is stored, the state part is “shared” or If it indicates “invalid”, the cache hit detection circuit 360 of the system bus-I / O bus bridge 300 determines that the cache matching process is unnecessary, and sends the cache memory to the shared memory 400 via the memory controller 320. Instruct a memory read (see FIG. 3).

【0041】指示を受けた共有メモリ400は該メモリ
リード・アドレスに対するデータをシステム・バス40
1のデータ信号線にドライブする。
Upon receiving the instruction, the shared memory 400 stores the data corresponding to the memory read address in the system bus 40.
Drive to one data signal line.

【0042】プロセッサ100はシステム・バス401
上にドライブされたデータをメモリリードに対するデー
タとしてバス・インタフェース回路140を介して、キ
ャッシュ・メモリ120内に取り込み、CPUコア11
0に渡し、メモリリード・アクセスを終了する。
The processor 100 includes a system bus 401
The data driven above is taken into the cache memory 120 via the bus interface circuit 140 as data for the memory read, and the CPU core 11
0 to end the memory read access.

【0043】システム・バス−I/Oバス・ブリッジ3
00は、プロセッサ100対応のプロセッサ・キャッシ
ュ・タグ・テーブル350に、プロセッサ100のキャ
ッシュ格納プロトコルと同じプロトコルを用いて、すな
わち、プロセッサ100のキャッシュ・メモリ120の
該メモリリード・アドレス及びデータが格納されたライ
ン・アドレスと同じライン・アドレスに、アドレス・レ
ジスタ323内の該メモリ・リードのアドレスを格納
し、状態部に「共有」を格納する。
System bus-I / O bus bridge 3
00 stores the memory read address and data of the cache memory 120 of the processor 100 in the processor cache tag table 350 corresponding to the processor 100 using the same protocol as the cache storage protocol of the processor 100. Then, the address of the memory read in the address register 323 is stored in the same line address as the specified line address, and “shared” is stored in the status section.

【0044】第2に、プロセッサ100のCPUコア1
10から共有メモリ400の特定アドレスに対してメモ
リライト・アクセスを行う場合を考える。このとき、C
PUコア110は、キャッシュ制御回路130に対し
て、キャッシュ・メモリ120内に該当するアドレスの
データが格納されているか否かのチェックを指示する。
Second, the CPU core 1 of the processor 100
Consider a case where a memory write access is performed from 10 to a specific address of the shared memory 400. At this time, C
The PU core 110 instructs the cache control circuit 130 to check whether or not the data of the corresponding address is stored in the cache memory 120.

【0045】(ケース3)キャッシュ・メモリ120内
にライトの対象データがあり、該当する状態部が「変
更」を表していた場合、CPUコア110はキャッシュ
・メモリ120内のデータに対してライトを行い、メモ
リライト・アクセスは終了する。
(Case 3) If there is data to be written in the cache memory 120 and the corresponding status part indicates “change”, the CPU core 110 writes data to the data in the cache memory 120. Then, the memory write access ends.

【0046】(ケース4)キャッシュ・メモリ120内
にライトの対象のデータがあり、該当する状態部が「共
有」を表していた場合、CPUコア110はキャッシュ
・メモリ120内のデータに対してライトを行い、キャ
ッシュ制御部130は、その状態部を「変更」に更新す
ると同時に、該メモリライト・アクセスがヒットしたキ
ャッシュ・ライン・アドレスの状態部が「変更」に更新
されたことを、キャッシュ制御信号線180を使用し
て、システム・バス−I/Oバス・ブリッジ300のキ
ャッシュ制御回路330に指示する。
(Case 4) If there is data to be written in the cache memory 120 and the corresponding status part indicates “shared”, the CPU core 110 writes to the data in the cache memory 120. The cache control unit 130 updates the status part to “change” and, at the same time, updates the status part of the cache line address hit by the memory write access to “change”. The signal line 180 is used to instruct the cache control circuit 330 of the system bus-I / O bus bridge 300.

【0047】指示を受けたシステム・バス−I/Oバス
・ブリッジ300のキャッシュ制御回路330は、プロ
セッサ・キャッシュ・タグ・テーブル350の該キャッ
シュ・ライン・アドレスの状態部を「変更」に更新し、
他のプロセッサ・キャッシュ・タグ・テーブルに、該キ
ャッシュ・ライン・アドレスのアドレス部に格納されて
いるアドレスと同じアドレスが存在しないかチェックす
る。
The cache control circuit 330 of the system bus-I / O bus bridge 300 that has received the instruction updates the status part of the cache line address in the processor cache tag table 350 to “change”. ,
It is checked whether another processor cache tag table has the same address as the address stored in the address portion of the cache line address.

【0048】(ケース4−1)他のプロセッサ・キャッ
シュ・タグ・テーブルに該メモリライト・アドレスが存
在し、その状態部が「共有」を表していた場合、キャッ
シュ一致化処理が必要と判断し、該当するプロセッサの
キャッシュ制御回路に対してキャッシュ一致化処理を指
示する。以下、プロセッサ100が開始したメモリ・ラ
イト・アクセスがプロセッサ100のキャッシュ・メモ
リ120にヒットし、かつ、プロセッサ200のキャッ
シュ・メモリ220にも同じアドレスのデータのコピー
が「共有」の状態で存在したとして説明する。
(Case 4-1) If the memory write address exists in another processor cache tag table and its status part indicates "shared", it is determined that cache matching processing is necessary. , And instructs the cache control circuit of the corresponding processor to perform the cache matching process. Hereinafter, the memory write access initiated by the processor 100 hits the cache memory 120 of the processor 100, and a copy of the data at the same address also exists in the cache memory 220 of the processor 200 in a “shared” state. It will be described as.

【0049】システム・バス−I/Oバス・ブリッジ3
00のキャッシュ制御回路330は、プロセッサ・キャ
ッシュ・タグ・テーブル351の該メモリ・ライト・ア
ドレスがヒットしたラインの状態部を「無効」に更新
し、キャッシュ制御信号線280を使用して、プロセッ
サ200のキャッシュ制御回路230に対して該メモリ
・ライト・アドレスがヒットしたラインの状態部を「無
効」に更新することを指示する。指示を受けたプロセッ
サ200のキャッシュ制御回路230は、該当するキャ
ッシュ・ライン・アドレスの制御部を「無効」に更新す
る(図4参照)。
System bus-I / O bus bridge 3
The cache control circuit 330 of the processor 200 updates the status portion of the line where the memory write address hits in the processor cache tag table 351 to “invalid” and uses the cache control signal line 280 to execute the processor 200 Of the line where the memory write address hits is updated to "invalid". The cache control circuit 230 of the processor 200 that has received the instruction updates the control unit of the corresponding cache line address to “invalid” (see FIG. 4).

【0050】(ケース4−2)他のプロセッサ・キャッ
シュ・タグ・テーブルに該メモリライト・アドレスが存
在しない場合、または、存在するがその状態部が「無
効」を表していた場合、システム・バス−I/Oバス・
ブリッジ300のキャッシュ・ヒット検出回路360は
キャッシュ一致化処理が不要と判断し、処理を終了する
(図5参照)。
(Case 4-2) When the memory write address does not exist in another processor cache tag table, or when the memory write address exists but its status part indicates "invalid", the system bus -I / O bus
The cache hit detection circuit 360 of the bridge 300 determines that the cache matching process is unnecessary, and ends the process (see FIG. 5).

【0051】(ケース5)キャッシュ・メモリ120内
にライトの対象のデータが存在しない場合、または、存
在するが該当する状態部が「無効」を表していた場合、
すなわち、キャッシュ・ミスヒットした場合、CPUコ
ア110はバス・インタフェース回路140を介してシ
ステム・バス−I/Oバス・ブリッジ300のシステム
・バス調停回路370に対して、バス・リクエスト信号
線181をドライブしシステム・バス401の使用権を
要求する。他のプロセッサがシステム・バス401を使
用中でない場合、システム・バス調停回路370は、し
かるべき調停後、プロセッサ100のバス・インタフェ
ース回路140に対して、バス許可信号線182をドラ
イブし、システム・バス401の使用を許可する。
(Case 5) If the data to be written does not exist in the cache memory 120, or if it exists but the corresponding status part indicates "invalid",
That is, when a cache miss occurs, the CPU core 110 sends the bus request signal line 181 to the system bus arbitration circuit 370 of the system bus-I / O bus bridge 300 via the bus interface circuit 140. Drives and requests the right to use system bus 401. If no other processor is using the system bus 401, the system bus arbitration circuit 370 drives the bus enable signal line 182 to the bus interface circuit 140 of the processor 100 after appropriate arbitration, and The use of the bus 401 is permitted.

【0052】システム・バスの使用権を許可されたプロ
セッサ・コア110は、キャッシュ・フィル(共有メモ
リ400からリードしたデータでキャッシュ・メモリを
埋めること)を行なうため、システム・バス401のア
ドレス信号線に該アドレスを、また、コマンド信号線に
ライトを前提としたリード・コマンドをドライブして、
ライトを前提としたリードを開始する。ライトを前提と
したリード・コマンドをドライブするのは、プロセッサ
100は、単なるリードではなく、リードしたデータで
キャッシュ・メモリ120を書き替えるため、そのこと
を他のプロセッサに知らせ、必要なキャッシュ制御(た
とえば、状態部を「無効」とする)を行わせるためであ
る。システム・バス−I/Oバス・ブリッジ300はプ
ロセッサ100がドライブしたアドレス,コマンドをア
ドレス・レジスタ323,コマンド・レジスタ322に
取り込み、プロセッサ100以外のプロセッサ対応のプ
ロセッサ・キャッシュ・タグ・テーブル351内に該当
するアドレスが格納されているか否かをキャッシュヒッ
ト検出回路360にてチェックする。
The processor core 110 to which the right to use the system bus has been granted the address signal line of the system bus 401 to perform a cache fill (filling the cache memory with data read from the shared memory 400). And the read command on the command signal line on the premise of writing.
Start reading on the premise of writing. Driving a read command on the premise of writing is not merely a read operation, but the processor 100 rewrites the cache memory 120 with read data. For example, the state part is set to “invalid”). The system bus-I / O bus bridge 300 captures the address and command driven by the processor 100 into the address register 323 and the command register 322, and stores the address and command in the processor cache tag table 351 corresponding to processors other than the processor 100. The cache hit detection circuit 360 checks whether or not the corresponding address is stored.

【0053】(ケース5−1)他のプロセッサ対応のプ
ロセッサ・キャッシュ・タグ・テーブルのいずれかに、
該当するアドレスが格納されていて、その状態部が「変
更」を表していた場合、システム・バス−I/Oバス・
ブリッジ300のキャッシュヒット検出回路360は、
キャッシュ一致化処理が必要と判断し、キャッシュ制御
回路330を介して、該当するプロセッサのキャッシュ
制御回路に対してキャッシュ一致化処理を指示する。以
下、プロセッサ100が開始したライトを前提としたリ
ード・アクセスがプロセッサ200対応のプロセッサ・
キャッシュ・タグ・テーブル351にヒットしたとして
説明する。
(Case 5-1) In one of the processor cache tag tables corresponding to other processors,
If the corresponding address is stored and the status part indicates "change", the system bus-I / O bus.
The cache hit detection circuit 360 of the bridge 300
It is determined that the cache matching processing is necessary, and the cache matching circuit is instructed via the cache control circuit 330 to the cache control circuit of the corresponding processor. Hereinafter, a read access on the premise of a write started by the processor 100 is performed by a processor corresponding to the processor 200.
It is assumed that a hit has occurred in the cache tag table 351.

【0054】システム・バス−I/Oバス・ブリッジ3
00のキャッシュ制御回路330は、キャッシュ制御信
号280を使用し、プロセッサ200のキャッシュ制御
回路230に、プロセッサ100が開始したライトを前
提としたリード・アドレスがヒットしたライン、すなわ
ち「変更」状態となったキャッシュ・ラインを共有メモ
リ400にライトし、その状態部を「無効」とするよう
指示する。
System bus-I / O bus bridge 3
The cache control circuit 330 of 00 uses the cache control signal 280 to cause the cache control circuit 230 of the processor 200 to hit the line where the read address based on the write started by the processor 100 hits, that is, the “changed” state. The cache line written to the shared memory 400 is instructed to make its status part “invalid”.

【0055】指示を受けたプロセッサ200のキャッシ
ュ制御回路230は、該当キャッシュ・ラインの状態部
を「無効」とすると同時に、バス・インタフェース回路
240を介して、該当するアドレスを含むラインのデー
タをシステム・バス401のデータ信号線にドライブす
る。
Upon receiving the instruction, the cache control circuit 230 of the processor 200 sets the status section of the corresponding cache line to “invalid” and, at the same time, transfers the data of the line including the corresponding address to the system via the bus interface circuit 240. -Drive to the data signal line of the bus 401.

【0056】システム・バス−I/Oバス・ブリッジ3
00は、メモリ・コントローラ320を介して、該デー
タを共有メモリ400に取り込むよう指示する。同時に
プロセッサ100はシステム・バス401上にドライブ
されたデータをライトを前提としたリードに対するデー
タとしてバス・インタフェース回路140を介して、キ
ャッシュ・メモリ120内に取り込み、CPUコア11
0はキャッシュ・メモリ120内のデータに対してライ
トを実行する。同時にキャッシュ制御回路130は、そ
の状態部を「変更」とし、メモリライト・アクセスを終
了する。
System bus-I / O bus bridge 3
00 instructs via the memory controller 320 to fetch the data into the shared memory 400. At the same time, the processor 100 captures the data driven on the system bus 401 into the cache memory 120 via the bus interface circuit 140 as data for a read on the premise of writing, and the CPU core 11
0 executes writing to data in the cache memory 120. At the same time, the cache control circuit 130 sets the status part to "change" and ends the memory write access.

【0057】システム・バス−I/Oバス・ブリッジ3
00は、プロセッサ200対応のプロセッサ・キャッシ
ュ・タグ・テーブル351の該当するアドレスを含むラ
インの状態部を「変更」から「無効」に更新し、プロセ
ッサ100対応のプロセッサ・キャッシュ・タグ・テー
ブル350に、プロセッサ100のキャッシュ格納プロ
トコルと同じプロトコルを用いて、すなわち、プロセッ
サ100のキャッシュ・メモリ120のライトを前提と
したリード・アドレスおよびデータが格納されたライン
・アドレスと同じライン・アドレスに、アドレス・レジ
スタ323内のメモリ・リードのアドレスを格納し、状
態部に「変更」を格納する(以上図6参照)。
System bus-I / O bus bridge 3
00 updates the state part of the line including the corresponding address in the processor cache tag table 351 corresponding to the processor 200 from “change” to “invalid”, and stores the state part in the processor cache tag table 350 corresponding to the processor 100. Using the same protocol as the cache storage protocol of the processor 100, that is, the same address as the line address where the read address and the data stored in the cache memory 120 of the processor 100 are stored, The address of the memory read in the register 323 is stored, and “change” is stored in the status section (see FIG. 6).

【0058】(ケース5−2)他のプロセッサ対応のプ
ロセッサ・キャッシュ・タグ・テーブルのいずれかに、
該当するアドレスが格納されていて、その状態部が「共
有」を表していた場合、システム・バス−I/Oバス・
ブリッジ300のキャッシュヒット検出回路360は、
キャッシュ一致化処理が必要と判断し、キャッシュ制御
回路330を介して、該当するプロセッサのキャッシュ
制御回路に対してキャッシュ一致化処理を指示する。以
下、プロセッサ100が開始したライトを前提としたリ
ード・アクセスがプロセッサ200対応のプロセッサ2
00キャッシュ・タグ・テーブル351にヒットしたと
して説明する。
(Case 5-2) In one of the processor cache tag tables corresponding to other processors,
If the corresponding address is stored and the status part indicates "shared", the system bus-I / O bus.
The cache hit detection circuit 360 of the bridge 300
It is determined that the cache matching processing is necessary, and the cache matching circuit is instructed via the cache control circuit 330 to the cache control circuit of the corresponding processor. Hereinafter, the read access based on the write started by the processor 100 is performed by the processor 2 corresponding to the processor 200.
It is assumed that a hit has occurred in the 00 cache tag table 351.

【0059】システム・バス−I/Oバス・ブリッジ3
00は、キャッシュ制御回路330を介して、キャッシ
ュ制御信号280を使用し、プロセッサ200のキャッ
シュ制御回路230に、プロセッサ100が開始したラ
イトを前提としたリード・アドレスを含むキャッシュ・
ラインの状態部を「無効」とするよう指示する。同時に
メモリ・コントローラ320を介して、共有メモリ40
0にメモリ・リードを指示する。
System bus-I / O bus bridge 3
00 uses the cache control signal 280 via the cache control circuit 330 to cause the cache control circuit 230 of the processor 200 to include a cache address including a read address based on a write started by the processor 100.
Instructs the state part of the line to be "invalid". At the same time, the shared memory 40
0 is designated for memory read.

【0060】指示を受けたプロセッサ200のキャッシ
ュ制御回路230は、該当キャッシュ・ラインの状態部
を「無効」とする。また、指示を受けた共有メモリ40
0は、該メモリリード・アドレスに対するデータをシス
テム・バス401のデータ信号線にドライブする。
The cache control circuit 230 of the processor 200 that has received the instruction sets the status part of the relevant cache line to “invalid”. Also, the shared memory 40 receiving the instruction
0 drives the data corresponding to the memory read address to the data signal line of the system bus 401.

【0061】プロセッサ100は、システム・バス40
1上にドライブされたデータをライトを前提としたリー
ドに対するデータとして、バス・インタフェース回路1
40を介してキャッシュ・メモリ120内に取り込み、
CPUコア110はキャッシュ・メモリ120内のデー
タに対してライトを実行する。同時に、キャッシュ制御
回路130は、その状態部を「変更」とし、メモリライ
ト・アクセスを終了する。
The processor 100 includes a system bus 40
The bus interface circuit 1 uses the data driven on the bus 1 as data for reading on the premise of writing.
40 into the cache memory 120 via
The CPU core 110 executes a write on data in the cache memory 120. At the same time, the cache control circuit 130 sets the status part to "change" and ends the memory write access.

【0062】システム・バス−I/Oバス・ブリッジ3
00は、プロセッサ200に対応するプロセッサ・キャ
ッシュ・タグ・テーブル351の該当するアドレスがヒ
ットしたラインの状態部を「共有」から「無効」に更新
し、プロセッサ100対応のプロセッサ・キャッシュ・
タグ・テーブル350に、プロセッサ100のキャッシ
ュ格納プロトコルと同じプロトコルを用いて、すなわ
ち、プロセッサ100のキャッシュ・メモリ120のラ
イトを前提としたリード・アドレスおよびデータが格納
されたライン・アドレスと同じライン・アドレスに、ア
ドレス・レジスタ323内のメモリ・リードのアドレス
を格納し、状態部に「変更」を格納する(以上図7参
照)。
System bus-I / O bus bridge 3
00 updates the status portion of the line where the corresponding address hits in the processor cache tag table 351 corresponding to the processor 200 from “shared” to “invalid”, and updates the processor cache cache corresponding to the processor 100.
The tag table 350 uses the same protocol as the cache storage protocol of the processor 100, that is, the same read address as the write address of the cache memory 120 of the processor 100 and the same line address as the line address where the data is stored. The address of the memory read in the address register 323 is stored in the address, and “change” is stored in the status section (see FIG. 7).

【0063】(ケース5−3)他のプロセッサ対応のプ
ロセッサ・キャッシュ・タグ・テーブル351のいずれ
にも、該当するアドレスが格納されていない場合、シス
テム・バス−I/Oバス・ブリッジ300のキャッシュ
ヒット検出回路360は、キャッシュ一致化処理が不要
と判断し、メモリ・コントローラ320を介して、共有
メモリ400にメモリ・リードを指示する。
(Case 5-3) If the corresponding address is not stored in any of the processor cache tag tables 351 corresponding to other processors, the cache of the system bus-I / O bus bridge 300 is used. The hit detection circuit 360 determines that the cache matching process is unnecessary, and instructs the shared memory 400 via the memory controller 320 to perform a memory read.

【0064】指示を受けた共有メモリ400は該メモリ
リード・アドレスに対するデータをシステム・バス40
1のデータ信号線にドライブする。
Upon receiving the instruction, shared memory 400 transfers the data corresponding to the memory read address to system bus 40.
Drive to one data signal line.

【0065】プロセッサ100は、システム・バス40
1上にドライブされたデータをライトを前提としたリー
ドに対するデータとして、バス・インタフェース回路1
40を介してキャッシュ・メモリ120内に取り込み、
CPUコア110はキャッシュ・メモリ120内のデー
タに対してライトを実行する。同時に、キャッシュ制御
回路130は、その状態部を「変更」とし、メモリライ
ト・アクセスを終了する。
The processor 100 is connected to the system bus 40
The bus interface circuit 1 uses the data driven on the bus 1 as data for reading on the premise of writing.
40 into the cache memory 120 via
The CPU core 110 executes a write on data in the cache memory 120. At the same time, the cache control circuit 130 sets the status part to "change" and ends the memory write access.

【0066】システム・バス−I/Oバス・ブリッジ3
00は、プロセッサ・キャッシュ・タグ・テーブル35
0に、プロセッサ100のキャッシュ格納プロトコルと
同じプロトコルを用いて、すなわち、プロセッサ100
のキャッシュ・メモリ120のライトを前提としたリー
ド・アドレスおよびデータが格納されたライン・アドレ
スと同じライン・アドレスに、アドレス・レジスタ32
3内のメモリ・リードのアドレスを格納し、状態部に
「変更」を格納する(図8参照)。
System bus-I / O bus bridge 3
00 is the processor cache tag table 35
0, using the same protocol as the cache storage protocol of processor 100, ie, processor 100
The address register 32 is stored in the same line address as the read address and the line address where the data is stored on the assumption that the data is stored in the cache memory 120 of FIG.
3 is stored, and "change" is stored in the status section (see FIG. 8).

【0067】第3に、プロセッサのキャッシュ・メモリ
のキャストアウト(キャッシュ・メモリから共有メモリ
400ヘの掃出し)が起こった場合について説明する。
以下、プロセッサ100のキャッシュ・メモリ120の
特定ラインがキャストアウトされるものとして説明す
る。
Third, a case where the cache memory of the processor is cast out (sweep from the cache memory to the shared memory 400) will be described.
Hereinafter, description will be made assuming that a specific line of the cache memory 120 of the processor 100 is cast out.

【0068】CPUコア110は、バス・インタフェー
ス回路140を介してシステム・バス−I/Oバス・ブ
リッジ300のシステム・バス調停回路370に対し
て、バス・リクエスト信号線181をドライブしてシス
テム・バス401の使用権を要求する。他のプロセッサ
がシステム・バス401を使用中でない場合、システム
・バス調停回路370は、しかるべき調停を行なった
後、プロセッサ100のバス・インタフェース回路14
0に対して、バス許可信号線182をドライブし、シス
テム・バス401の使用を許可する。システム・バスの
使用権を許可されたプロセッサ100は、システム・バ
ス401のアドレス信号線に該キャストアウトのアドレ
スを、コマンド信号線にキャストアウト・コマンドをド
ライブして、キャストアウトを開始する。
The CPU core 110 drives the bus request signal line 181 to the system bus arbitration circuit 370 of the system bus-I / O bus bridge 300 via the bus interface circuit 140 to drive the system bus. Request the right to use the bus 401. If no other processor is using the system bus 401, the system bus arbitration circuit 370, after making the appropriate arbitrations, returns the bus interface circuit 14 of the processor 100.
For 0, the bus permission signal line 182 is driven and the use of the system bus 401 is permitted. The processor 100 permitted to use the system bus starts the castout by driving the castout address to the address signal line of the system bus 401 and the castout command to the command signal line.

【0069】システム・バス−I/Oバス・ブリッジ3
00は、プロセッサ100がドライブしたアドレス,コ
マンドをアドレス・レジスタ323,コマンド・レジス
タ322に取り込み、プロセッサ100キャッシュ・タ
グ・テーブル351の該当するアドレスが格納されてい
るラインの状態部を「共有」とする。
System bus-I / O bus bridge 3
00 fetches the address and command driven by the processor 100 into the address register 323 and the command register 322, and sets the status part of the line of the processor 100 cache tag table 351 where the corresponding address is stored to "shared". I do.

【0070】以上に説明した全ての動作を簡単に表1に
まとめる。
Table 1 briefly summarizes all the operations described above.

【0071】このように、本実施の形態では、従来は各
プロセッサが個々に行っていたキャッシュ・メモリの管
理を、システム・バス−I/Oバス・ブリッジ300で
一括して行い、必要な場合にのみ、該当するプロセッサ
に指示を出す構成としたため、メモリリードまたはメモ
リライトを開始したプロセッサ以外のプロセッサは、従
来のように実行中の処理を中断させてバス・スヌーピン
グ・オペレーションを行いキャッシュの一致化処理が必
要か否かを判断するという無駄な処理の必要がなくな
る。
As described above, in this embodiment, the management of the cache memory, which was conventionally performed individually by each processor, is collectively performed by the system bus-I / O bus bridge 300, and when necessary, In this configuration, the processor other than the one that started the memory read or memory write interrupts the currently executing process and performs a bus snooping operation to match the caches as in the past. There is no need to uselessly determine whether or not the conversion process is necessary.

【0072】次に、本発明の第2の実施の形態について
説明する。
Next, a second embodiment of the present invention will be described.

【0073】上述した第1の実施の形態では、プロセッ
サ100とシステム・バス−I/Oバス・ブリッジ30
0、およびプロセッサ200とシステム・バス−I/O
バス・ブリッジ300間では、キャッシュ・ライン・ア
ドレスを使用してキャッシュ・メモリの制御を行うた
め、プロセッサにおいてキャッシュ・メモリにアドレス
及びデータを格納する際のプロトコルと、システムバス
I/Oバス・ブリッジにおいてプロセッサ・キャッシュ
・タグ・テーブル350,プロセッサ・キャッシュ・タ
グ・テーブル351に該当アドレスを格納する際のプロ
トコルとは同じであることが必要とされ、同じライン・
アドレスのキャッシュ・ラインと該当するプロセッサ・
キャッシュ・タグ・テーブルのラインとは、常に同じア
ドレスを格納していることを保証する必要があった。
In the above-described first embodiment, the processor 100 and the system bus-I / O bus bridge 30
0, and processor 200 and system bus-I / O
Since the cache memory is controlled using the cache line address between the bus bridges 300, a protocol for storing addresses and data in the cache memory in the processor and a system bus I / O bus bridge It is necessary that the protocol used to store the relevant address in the processor cache tag table 350 and the processor cache tag table 351 be the same, and the same line
Address cache line and corresponding processor
It was necessary to ensure that the cache tag table line always stored the same address.

【0074】本実施の形態では、第1の実施の形態にお
いてはキャッシュ・メモリのアドレスをキャッシュ・ラ
イン・アドレスを使用しているのに対し、これを使用せ
ず、システム・バス401のアドレス信号線上のメモリ
アドレスで指示する。この場合、キャッシュ制御時にお
いて、各プロセッサ100,200と共有メモリ400
に共有されるシステム・バス401の調停が複雑化し、
システム・バス401のデータ転送性能が多少低下する
という問題はあるものの、キャッシュ・メモリにアドレ
スおよびデータを格納する際のプロトコルをプロセッサ
とシステム・バス−I/Oバス・ブリッジ300で同じ
にする必要はなくなり、また、システム・バス401の
アドレス信号線を使用するため、プロセッサとシステム
・バス−I/Oバス・ブリッジ300とをポイント−ツ
ウ−ポイントで接続しているキャッシュ制御信号線から
アドレス信号線を削除できるため、その本数を大幅に縮
小できるという効果も有する。
In the present embodiment, the cache memory address is used as the cache line address in the first embodiment, but this is not used, and the address signal of the system bus 401 is not used. It is indicated by the memory address on the line. In this case, at the time of cache control, each of the processors 100 and 200 and the shared memory 400
Arbitration of the system bus 401 shared by
Although there is a problem that the data transfer performance of the system bus 401 is slightly lowered, the protocol for storing addresses and data in the cache memory must be the same between the processor and the system bus-I / O bus bridge 300. In addition, since the address signal line of the system bus 401 is used, the address signal is transmitted from the cache control signal line connecting the processor and the system bus-I / O bus bridge 300 in a point-to-point manner. Since lines can be deleted, the number of lines can be significantly reduced.

【0075】[0075]

【発明の効果】本発明の第1の効果は、マルチ・プロセ
ッサ・システムにおける各プロセッサのバス・スヌーピ
ング・オペレーションによる負荷を軽減し、システム全
体の性能を向上させることができるということである。
その理由は、従来、各プロセッサが個々に持っていたキ
ャッシュのコヒーレンシを保証する機能を、システム・
バス−I/Oバス・ブリッジに集中することにより、ア
クセスされようとしているアドレスのデータに対してキ
ャッシュ一致化処理が必要であるか否かをシステム・バ
ス−I/Oバス・ブリッジが単独で判定し、キャッシュ
一致化処理が必要な場合のみ該当するプロセッサに対し
て指示をする構成としたからである。
A first effect of the present invention is that the load due to the bus snooping operation of each processor in a multiprocessor system can be reduced, and the performance of the entire system can be improved.
The reason for this is that each processor has a function that guarantees the coherency of the cache that each processor had individually,
By concentrating on the bus-I / O bus bridge, the system bus-I / O bus bridge alone determines whether or not cache matching processing is necessary for the data of the address to be accessed. This is because the determination is made and an instruction is given to the corresponding processor only when cache matching processing is necessary.

【0076】また、第2の効果は、上記キャッシュのコ
ヒーレンシを保証する機能を、システム・バス−I/O
バス・ブリッジに少ないハードウェア構成でインプリメ
ントすることができるということである。その理由は、
各プロセッサの内部キャッシュに共有メモリ上のどのア
ドレスのデータがどのような状態で保持されているかを
示すアドレスおよびタグ情報を共有メモリに対してでは
なく、プロセッサ毎にキャッシュ・メモリ、キャッシュ
・ライン単位で保持しているからである。
The second effect is that the function of ensuring the coherency of the cache is provided by the system bus-I / O.
This means that the bus bridge can be implemented with a small hardware configuration. The reason is,
The address and tag information indicating which address data in the shared memory is held in what state in the internal cache of each processor is not stored in the shared memory, but in units of a cache memory and a cache line for each processor. This is because they are held by

【0077】たとえば、システム・バス401のアドレ
ス信号線を32ビットとし、キャッシング状態を2ビッ
トで管理したとしたとして、共有メモリ・サイズが25
6Mバイト、プロセッサのキャッシュ・ライン・サイズ
が32バイトのシステムであれば、特開平10−553
14号公報の状態記憶手段が16Mビットもの容量が必
要となるのに対し、本発明によると、わずか30Kビッ
ト/プロセッサという少ない記憶容量で実現することが
可能である。
For example, assuming that the address signal line of the system bus 401 is 32 bits and the caching state is managed by 2 bits, the shared memory size is 25 bits.
For a system having 6 Mbytes and a processor cache line size of 32 bytes, Japanese Patent Application Laid-Open No. H10-553
While the state storage means disclosed in Japanese Patent Application Publication No. 14 requires a capacity of as much as 16 Mbits, according to the present invention, it can be realized with a small storage capacity of only 30 Kbits / processor.

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

【図1】本発明の第1の実施の形態を示すブロック図FIG. 1 is a block diagram showing a first embodiment of the present invention.

【図2】図1に示した実施の形態のケース2−1の動作
説明図
FIG. 2 is an operation explanatory diagram of case 2-1 of the embodiment shown in FIG. 1;

【図3】図1に示した実施の形態のケース2−2の動作
説明図
FIG. 3 is an operation explanatory diagram of case 2-2 of the embodiment shown in FIG. 1;

【図4】図1に示した実施の形態のケース4−1の動作
説明図
FIG. 4 is an operation explanatory diagram of case 4-1 of the embodiment shown in FIG. 1;

【図5】図1に示した実施の形態のケース4−2の動作
説明図
FIG. 5 is an operation explanatory diagram of case 4-2 of the embodiment shown in FIG. 1;

【図6】図1に示した実施の形態のケース5−1の動作
説明図
FIG. 6 is an operation explanatory diagram of case 5-1 of the embodiment shown in FIG. 1;

【図7】図1に示した実施の形態のケース5−2の動作
説明図
FIG. 7 is an operation explanatory diagram of case 5-2 of the embodiment shown in FIG. 1;

【図8】図1に示した実施の形態のケース5−3の動作
説明図
FIG. 8 is an operation explanatory diagram of case 5-3 of the embodiment shown in FIG. 1;

【図9】図1に示した実施の形態の各ケースの動作一覧
表を示す図
FIG. 9 is a view showing an operation list of each case of the embodiment shown in FIG. 1;

【図10】従来例を示すブロック図FIG. 10 is a block diagram showing a conventional example.

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

100,200 プロセッサ 110,210 CPUコア 120,220 キャッシュ・メモリ 130,230 キャッシュ制御回路 140,240 バス・インタフェース回路 300 システム・バス−I/Oバス・ブ
リッジ 310 DMAコントローラ 311 入出力バッファ 312 DMAコマンド・レジスタ 313 DMAアドレス・レジスタ 314 DMAデータ・レジスタ 320 メモリ・コントローラ 321 入出力バッファ 322 コマンド・レジスタ 323 アドレス・レジスタ 324 データ・レジスタ 330 キャッシュ制御回路 350,351 プロセッサ・キャッシュ・タグ・
テーブル 360 キャッシュヒット検出回路 370 システムバス調停回路 400 共有メモリ 401 システム・バス 402 I/Oバス 403〜405 デバイス
100, 200 Processor 110, 210 CPU core 120, 220 Cache memory 130, 230 Cache control circuit 140, 240 Bus interface circuit 300 System bus-I / O bus bridge 310 DMA controller 311 I / O buffer 312 DMA command Register 313 DMA address register 314 DMA data register 320 Memory controller 321 I / O buffer 322 Command register 323 Address register 324 Data register 330 Cache control circuit 350, 351 Processor cache tag
Table 360 Cache hit detection circuit 370 System bus arbitration circuit 400 Shared memory 401 System bus 402 I / O bus 403-405 Device

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 共有メモリを備えたマルチプロセッサシ
ステムを構成する各プロセッサおよび前記共有メモリに
アクセス可能なデバイスが、特定のメモリアドレスに対
応する最新のデータにアクセスできるための保証を前記
プロセッサ外でバス・スヌープ方式により、かつ、単一
の装置として行うことを特徴とするキャッシュ・メモリ
制御装置。
An assurance is provided outside the processor that each processor constituting a multiprocessor system having a shared memory and a device capable of accessing the shared memory can access latest data corresponding to a specific memory address. A cache memory control device according to the bus snoop method, wherein the control is performed as a single device.
【請求項2】 共有メモリを備えたマルチプロセッサシ
ステムを構成する各プロセッサおよび前記共有メモリに
アクセス可能なデバイスが、特定のメモリアドレスに対
応する最新のデータにアクセスできるための保証をバス
・スヌープ方式により行うために、前記各プロッセサの
キャッシュ・メモリがどのような状態で前記共有メモリ
内のデータを保持しているかを、前記プロセッサ対応
に、かつキャッシュ・メモリのキャッシュ・ライン単位
で保持することを特徴とするキャッシュ・メモリ制御装
置。
2. A bus snoop method that guarantees that each processor constituting a multiprocessor system having a shared memory and a device that can access the shared memory can access the latest data corresponding to a specific memory address. In order to perform the above, it is required that the state of the cache memory of each processor holding the data in the shared memory be held for each of the processors and in units of cache lines of the cache memory. Characteristic cache memory control device.
【請求項3】 共有メモリを備えたマルチプロセッサシ
ステムにおけるキャッシュ・メモリ制御装置において、 前記各プロセッサのキャッシュ・メモリに前記共有メモ
リ内のどのアドレスのデータがどのような状態で保持さ
れているかを示すアドレスおよびタグ情報をキャッシュ
・ライン単位で保持するプロセッサ・キャッシュ・タグ
・テーブルと、 前記プロセッサおよびI/Oバス配下のデバイスからの
メモリアクセス要求時に、アクセスされようとしている
アドレスのデータに対してキャッシュ一致化処理が必要
であるか否かを前記プロセッサ・キャッシュ・タグ・テ
ーブルから判定するキャッシュヒット検出回路と、 該判定の結果によりキャッシュ一致化処理が必要な場合
のみ該当するプロセッサ内のキャッシュ制御回路に対し
てキャッシュ・ライン単位でのキャッシュ一致化処理を
指示し、各プロセッサによりキャッシュ内部の状態が変
更された場合には前記プロセッサ・キャッシュ・タグ・
テーブルを更新するために該当キャッシュ・ライン・ア
ドレスを指示されるキャッシュ制御回路とを設けたこと
を特徴とするキャッシュメモリ制御装置。
3. A cache memory control device in a multiprocessor system provided with a shared memory, wherein the cache memory of each processor indicates which address data in the shared memory is held in what state. A processor cache tag table for holding address and tag information on a cache line basis, and a cache for data of an address to be accessed when a memory access request is made from the processor and a device under the I / O bus A cache hit detection circuit for judging from the processor cache tag table whether or not the coincidence processing is necessary; and a cache control circuit in the corresponding processor only when the cache coincidence processing is required based on the result of the judgment. Against The cache matching process is instructed on a cache line basis, and when the internal state of the cache is changed by each processor, the processor cache tag
A cache control circuit for instructing a corresponding cache line address to update a table.
【請求項4】 前記キャッシュ制御回路と前記プロセッ
サ内のキャッシュ制御回路とは、前記キャッシュ・ライ
ンのアドレス信号線を含むキャッシュ制御信号線で接続
され、前記キャッシュ・メモリにアドレスおよびデータ
を格納するときのプロトコルと、前記プロセッサ・キャ
ッシュ・タグ・テーブルにアドレスを格納するときのプ
ロトコルとを同一にしたことを特徴とする請求項3記載
のキャッシュ・メモリ制御装置。
4. The cache control circuit and a cache control circuit in the processor are connected by a cache control signal line including an address signal line of the cache line, and store addresses and data in the cache memory. 4. The cache memory control device according to claim 3, wherein a protocol for storing an address in the processor cache tag table is the same as a protocol for storing the address in the processor cache tag table.
【請求項5】 前記キャッシュ制御回路と前記プロセッ
サ内のキャッシュ制御回路とは、前記プロセッサ,前記
共有メモリおよび該キャッシュ・メモリ制御装置を接続
するシステムバス内ののデータ信号線で接続されること
を特徴とする請求項3記載のキャッシュ・メモリ制御装
置。
5. The cache control circuit and a cache control circuit in the processor are connected by a data signal line in a system bus connecting the processor, the shared memory and the cache memory control device. The cache memory control device according to claim 3, wherein:
【請求項6】 各プロセッサおよび前記共有メモリが接
続されるシステムバスと、前記デバイスが接続される入
出力バスとの間に挿入され、DMA制機能およびメモリ
制御機能を併せ持つシステム・バスーI/Oバス・ブリ
ッジで構成されることを特徴とする請求項1ないし5の
いずれかに記載のキャッシュ・メモリ制御装置。
6. A system bus I / O which is inserted between a system bus to which each processor and the shared memory is connected and an input / output bus to which the device is connected, and has both a DMA control function and a memory control function. 6. The cache memory control device according to claim 1, comprising a bus bridge.
JP11219265A 1999-08-02 1999-08-02 Cache memory controller Pending JP2001043204A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11219265A JP2001043204A (en) 1999-08-02 1999-08-02 Cache memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11219265A JP2001043204A (en) 1999-08-02 1999-08-02 Cache memory controller

Publications (1)

Publication Number Publication Date
JP2001043204A true JP2001043204A (en) 2001-02-16

Family

ID=16732829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11219265A Pending JP2001043204A (en) 1999-08-02 1999-08-02 Cache memory controller

Country Status (1)

Country Link
JP (1) JP2001043204A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008140258A (en) * 2006-12-04 2008-06-19 Renesas Technology Corp Bus controller
KR100906262B1 (en) 2003-01-28 2009-07-06 마이크로소프트 코포레이션 Method and system for an atomically updated, central cache memory
US7779209B2 (en) 2006-08-18 2010-08-17 Fujitsu Limited System controller, snoop tag modification method and information processing apparatus having snoop tag modification function
JP2011150427A (en) * 2010-01-19 2011-08-04 Renesas Electronics Corp Multiprocessor system and method of controlling the same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100906262B1 (en) 2003-01-28 2009-07-06 마이크로소프트 코포레이션 Method and system for an atomically updated, central cache memory
US7779209B2 (en) 2006-08-18 2010-08-17 Fujitsu Limited System controller, snoop tag modification method and information processing apparatus having snoop tag modification function
JP2008140258A (en) * 2006-12-04 2008-06-19 Renesas Technology Corp Bus controller
JP2011150427A (en) * 2010-01-19 2011-08-04 Renesas Electronics Corp Multiprocessor system and method of controlling the same

Similar Documents

Publication Publication Date Title
US5426765A (en) Multiprocessor cache abitration
US5463753A (en) Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US5537575A (en) System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
EP0288649B1 (en) Memory control subsystem
JP3289661B2 (en) Cache memory system
JPH08185359A (en) Memory subsystem
US20230214326A1 (en) Computer Memory Expansion Device and Method of Operation
JPH10154100A (en) Information processing system, device and its controlling method
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US6345320B1 (en) DMA address buffer and cache-memory control system
US5511226A (en) System for generating snoop addresses and conditionally generating source addresses whenever there is no snoop hit, the source addresses lagging behind the corresponding snoop addresses
US5678025A (en) Cache coherency maintenance of non-cache supporting buses
JP2708943B2 (en) Cache memory controller
EP0309995B1 (en) System for fast selection of non-cacheable address ranges using programmed array logic
JP2001043204A (en) Cache memory controller
JPH0816885B2 (en) Cache memory control method
JPH0744459A (en) Cache control method and cache controller
EP0840232B1 (en) Microprocessor comprising means for storing non-cacheable data
JP2748862B2 (en) Bus interface adapter
JP2002342162A (en) Method for controlling memory access and host bridge
JPH09160863A (en) Input/output buffer device and management method therefor
JP3782178B2 (en) Information processing device
KR950012735B1 (en) Cache memory
KR0164919B1 (en) Multi-processor having directory cache in memory module
JP2000090008A (en) Memory sharing type multiprocessor system