JP2000020395A - Method and device for cache flash - Google Patents

Method and device for cache flash

Info

Publication number
JP2000020395A
JP2000020395A JP10182954A JP18295498A JP2000020395A JP 2000020395 A JP2000020395 A JP 2000020395A JP 10182954 A JP10182954 A JP 10182954A JP 18295498 A JP18295498 A JP 18295498A JP 2000020395 A JP2000020395 A JP 2000020395A
Authority
JP
Japan
Prior art keywords
cache
main memory
address
processor
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.)
Granted
Application number
JP10182954A
Other languages
Japanese (ja)
Other versions
JP4091171B2 (en
Inventor
Yasuhiko Kurosawa
泰彦 黒澤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP18295498A priority Critical patent/JP4091171B2/en
Publication of JP2000020395A publication Critical patent/JP2000020395A/en
Application granted granted Critical
Publication of JP4091171B2 publication Critical patent/JP4091171B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To shorten the cache flash time so that a main memory can perform burst write operation at the time of cache flash. SOLUTION: A cache flash device 100 sends a read request concerning modified data only to a processor bus 10. In this case, no read request is reported to the side of a main memory controller 500. Then, the cache flash device 100 receives modified data sent from a processor 110 or 120 corresponding to the read request and only concerning a cache line for which this reception is completed, burst write to the main memory is performed through the main memory controller 500. Thus, at the time of cache flash, a main memory 501 simply performs burst write operation without read-modify-write operation.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、コピーバック方式
のキャッシュを有するコンピュータシステムに適用され
るキャッシュフラッシュ方法および装置に関し、特にチ
ェックポイント取得方式を採用するコンピュータシステ
ムに適用されるキャッシュフラッシュ方法および装置に
する。
The present invention relates to a cache flush method and apparatus applied to a computer system having a copy-back type cache, and more particularly to a cache flush method and apparatus applied to a computer system employing a checkpoint acquisition method. To

【0002】[0002]

【従来の技術】一般に、計算機においては、プロセッサ
によるメインメモリへのアクセスを高速化するために、
プロセッサが必要とするデータを一時的に格納するキャ
ッシュが用いられている。通常、このキャッシュは、キ
ャッシュブロックと呼ばれる所定の大きさのデータ単位
でデータを保持する。また、このキャッシュは、キャッ
シュタグと呼ばれる管理情報を保持し、キャッシュに格
納したキャッシュブロックのデータが、メインメモリの
中のどのデータであるのか、およびプロセッサによって
変更されてメインメモリの内容と異なっている状態(モ
ディファイド状態、ダーティ状態)にあるか等を管理し
ている。
2. Description of the Related Art Generally, in a computer, in order to speed up access to a main memory by a processor,
A cache for temporarily storing data required by the processor is used. Usually, this cache holds data in data units of a predetermined size called cache blocks. Also, this cache holds management information called a cache tag, and the data of the cache block stored in the cache is different from the content of the main memory by being changed by the processor as to which data is in the main memory. Is managed (modified state, dirty state).

【0003】プロセッサを複数設けた計算機システム
(マルチプロセッサシステム)においては、複数のキャ
ッシュ間でデータの一貫性を保証するために、スヌープ
機構をもったキャッシュがよく用いられる。このスヌー
プ機構は、バス上に発行されたバスコマンド(又はトラ
ンザクション)が、自身のキャッシュに格納されたデー
タに影響を与えないか、あるいは自身のキャッシュに格
納されたデータを応答として返さなければならないかを
監視し、必要であれば、該当するデータの無効化などを
行うものである。
In a computer system (multiprocessor system) having a plurality of processors, a cache having a snoop mechanism is often used in order to guarantee data consistency among a plurality of caches. In this snoop mechanism, a bus command (or transaction) issued on the bus must not affect data stored in its own cache, or it must return data stored in its own cache as a response. Is monitored, and if necessary, the corresponding data is invalidated.

【0004】コピーバック方式のキャッシュの場合、す
なわち、プロセッサによるデータの更新を直ちにメイン
メモリに反映させないタイプのキャッシュの場合、プロ
セッサによってキャッシュ上で変更されてメインメモリ
の内容と異なっているデータ(モディファイド状態のデ
ータ)を、積極的にメインメモリへ書き戻す操作が必要
となる。例えば、スヌープ機構を持たない入出力装置に
対してキャッシュが保持するデータを転送する場合など
に必要となる。このキャッシュが保持するデータのう
ち、モディファイド状態にあるデータをメインメモリに
書き戻すことをキャッシュフラッシュと呼ぶ。また、モ
ディファイド状態にあるキャッシュブロックをモディフ
ァイドブロックと呼ぶ。
[0004] In the case of a copy-back type cache, that is, in the case of a type of cache in which the data update by the processor is not immediately reflected in the main memory, data (modified) that is changed on the cache by the processor and is different from the content of the main memory State data) must be positively written back to the main memory. This is necessary, for example, when transferring data held by a cache to an input / output device that does not have a snoop mechanism. Writing back the modified data from the data held in the cache to the main memory is called cache flush. A cache block in a modified state is called a modified block.

【0005】このキャッシュフラッシュは、特に、チェ
ックポイント方式の計算機において必要とされる処理で
ある。すなわち、計算機に何らかの障害が発生したとき
に、予め取得しておいたチェックポイントの時点から処
理を再開するチェックポイント方式の計算機の場合、各
チェックポイントの時点で、キャッシュ中にのみ存在す
る変更されたデータをまとめてメインメモリに書き戻す
(キャッシュフラッシュする)必要があるためである。
[0005] This cache flush is a process required especially in a checkpoint type computer. In other words, in the case of a checkpoint-type computer that resumes processing from a previously acquired checkpoint when some kind of failure occurs in the computer, a change that exists only in the cache at each checkpoint. This is because it is necessary to collectively write back the data to the main memory (cache flush).

【0006】上記キャッシュフラッシュ操作を実現する
方式としては、プロセッサにキャッシュフラッシュ命令
を実行させる方式と、キャッシュフラッシュ装置を用い
てキャッシュフラッシュ命令を実行させる方式とが挙げ
られる。
As a method of realizing the cache flush operation, there are a method of causing a processor to execute a cache flush instruction, and a method of causing a cache flush device to execute a cache flush instruction.

【0007】キャッシュフラッシュ装置を用いる方式で
は、キャッシュフラッシュ装置からプロセッサバス上に
非バーストリードトランザクションを発行することでプ
ロセッサ内のダーティーラインをメインメモリに書き戻
すようにしている。この場合のシステム構成例について
以下に説明する。
In the method using the cache flash device, a non-burst read transaction is issued from the cache flash device onto the processor bus so that the dirty line in the processor is written back to the main memory. An example of a system configuration in this case will be described below.

【0008】図30は、従来のキャッシュフラッシュ装
置を含むコンピュータシステムの構成を示すブロック図
である。
FIG. 30 is a block diagram showing a configuration of a computer system including a conventional cache flash device.

【0009】2はシステムバスであり、プロセッサ11
0,120と、メインメモリ制御装置500と、I/O
制御装置600と、キャッシュフラッシュ装置100と
を接続し、データの受け渡しを行う。
Reference numeral 2 denotes a system bus.
0, 120, main memory control device 500, I / O
The control device 600 is connected to the cache flash device 100 to exchange data.

【0010】100はキャッシュフラッシュ装置であ
り、プロセッサ110,120が持つキャッシュメモリ
のキャッシュ状態を監視してキャッシュ管理用メモリ1
01にアドレス情報を記録し、キャッシュフラッシュが
起動するとプロセッサからダーティーラインを読み出し
てメインメモリ制御装置500に書き戻す。101はキ
ャッシュ管理用メモリであり、プロセッサ110,12
0のキャッシュラインの状態を含むアドレス情報を記録
する。
Reference numeral 100 denotes a cache flash device, which monitors the cache state of the cache memory of the processors 110 and 120 and stores the cache management memory 1
01, the address information is recorded, and when the cache flush is activated, the dirty line is read from the processor and written back to the main memory control device 500. Reference numeral 101 denotes a cache management memory, and the processors 110 and 12
The address information including the state of the cache line of 0 is recorded.

【0011】110,120はプロセッサである。11
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリである。
Reference numerals 110 and 120 are processors. 11
Reference numerals 1 and 121 are cache memories of the processors 110 and 120, respectively.

【0012】500はメインメモリを制御するメインメ
モリ制御装置である。501はメインメモリである。
Reference numeral 500 denotes a main memory control device for controlling the main memory. 501 is a main memory.

【0013】600はI/Oバス制御装置である。60
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
Reference numeral 600 denotes an I / O bus control device. 60
Reference numerals 1 and 602 denote I / O bus controllers 600
/ O bus.

【0014】図31は、キャッシュフラッシュが単独で
実行される場合の動作を示すタイミングチャートであ
る。ここでは、メインメモリ501にシンクロナスDR
AMを使用している。
FIG. 31 is a timing chart showing the operation when cache flush is executed independently. Here, the synchronous DR is stored in the main memory 501.
AM is used.

【0015】以下、図31を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。
Hereinafter, various signals will be described with reference to FIG. The horizontal axis in the figure indicates the number of bus cycles.

【0016】システムバスのaddress はシステムバスト
ランザクションのアドレスであり、キャッシュフラッシ
ュ装置100が出力する。システムバスのSnoop は、シ
ステムトランザクションに対するスヌープ応答であり、
プロセッサ110,120のいずれかが出力する。この
図の例では、“Modified”応答を出している。システム
バスのDataは、システムトランザクションに対するデー
タであり、プロセッサ110,120のいずれかが出力
する。なお、Readトランザクションに対するスヌープ応
答が“Modified”以外の場合、通常はメインメモリ制御
装置500がデータを出力する。
The address of the system bus is the address of the system bus transaction, and is output from the cache flash device 100. Snoop of the system bus is a snoop response to the system transaction,
Either of the processors 110 and 120 outputs. In the example of this figure, a “Modified” response is issued. Data of the system bus is data for a system transaction, and is output by one of the processors 110 and 120. When the snoop response to the Read transaction is other than “Modified”, the main memory control device 500 normally outputs data.

【0017】メインメモリのAddress は、メインメモリ
制御装置500が出力するメインメモリ501のアドレ
スである。メインメモリのRASは、メインメモリ制御
装置500が出力するメインメモリ501のRAS信号
である。メインメモリのCASは、メインメモリ制御装
置500が出力するメインメモリ501のCAS信号で
ある。メインメモリのWEは、メインメモリ制御装置5
00が出力するメインメモリ501のWE信号である。
メインメモリのDataは、メインメモリ制御装置500と
メインメモリ501の間のデータ信号である。CASが
“L”のときにWEが“L”であればメインメモリ制御
装置500がライトデータを出力し、CASが“L”の
ときにWEが“H”であればメインメモリ501がリー
ドデータを出力する。
The address of the main memory is the address of the main memory 501 output by the main memory control device 500. The RAS of the main memory is the RAS signal of the main memory 501 output from the main memory control device 500. The CAS of the main memory is a CAS signal of the main memory 501 output from the main memory control device 500. The WE of the main memory is the main memory controller 5
00 is an output WE signal of the main memory 501.
Data of the main memory is a data signal between the main memory control device 500 and the main memory 501. If WE is "L" when CAS is "L", main memory control device 500 outputs write data. If CAS is "L" and WE is "H", main memory 501 outputs read data. Is output.

【0018】図32は、キャッシュフラッシュが3連続
する場合の動作を示すタイミングチャートである。
FIG. 32 is a timing chart showing an operation in the case where cache flush is performed three consecutive times.

【0019】以下、図32を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
Hereinafter, various signals will be described with reference to FIG. The horizontal axis in the figure indicates the number of bus cycles. Further, ==,-, ++ in the figure correspond to the first, second, and third bus transactions, respectively.

【0020】システムバスのaddress はシステムバスト
ランザクションのアドレスであり、キャッシュフラッシ
ュ装置100が出力する。システムバスのSnoop は、シ
ステムトランザクションに対するスヌープ応答であり、
プロセッサ110,120のいずれかが出力する。この
図の例では、“Modified”応答を出している。システム
バスのDataは、システムトランザクションに対するデー
タであり、プロセッサ110,120のいずれかが出力
する。なお、Readトランザクションに対するスヌープ応
答が“Modified”以外の場合、通常はメインメモリ制御
装置500がデータを出力する。
The address of the system bus is the address of the system bus transaction, and is output from the cache flash device 100. Snoop of the system bus is a snoop response to the system transaction,
Either of the processors 110 and 120 outputs. In the example of this figure, a “Modified” response is issued. Data of the system bus is data for a system transaction, and is output by one of the processors 110 and 120. When the snoop response to the Read transaction is other than “Modified”, the main memory control device 500 normally outputs data.

【0021】メインメモリのAddress は、メインメモリ
制御装置500が出力するメインメモリ501のアドレ
スである。メインメモリのRASは、メインメモリ制御
装置500が出力するメインメモリ501のRAS信号
である。メインメモリのCASは、メインメモリ制御装
置500が出力するメインメモリ501のCAS信号で
ある。メインメモリのWEは、メインメモリ制御装置5
00が出力するメインメモリ501のWE信号である。
メインメモリのDataは、メインメモリ制御装置500と
メインメモリ501の間のデータ信号である。CASが
“L”のときにWEが“L”であればメインメモリ制御
装置500がライトデータを出力し、CASが“L”の
ときにWEが“H”であればメインメモリ501がリー
ドデータを出力する。
The address of the main memory is the address of the main memory 501 output from the main memory control device 500. The RAS of the main memory is the RAS signal of the main memory 501 output from the main memory control device 500. The CAS of the main memory is a CAS signal of the main memory 501 output from the main memory control device 500. The WE of the main memory is the main memory controller 5
00 is an output WE signal of the main memory 501.
Data of the main memory is a data signal between the main memory control device 500 and the main memory 501. If WE is "L" when CAS is "L", main memory control device 500 outputs write data. If CAS is "L" and WE is "H", main memory 501 outputs read data. Is output.

【0022】[0022]

【発明が解決しようとする課題】上述のキャッシュフラ
ッシュ装置を用いてキャッシュフラッシュを行う方式で
は、一般にメインメモリは非バースト転送に対してプロ
セッサがキャッシュに“Modified”データを持っている
ことは想定しておらず、インプリメントを簡単にしてい
る。このためにメインメモリの動作が「リード・モディ
ファイ・ライト」となり、メインメモリがシステムの性
能上のボトルネックとなっている。この結果、キャッシ
ュフラッシュ時間が長くなるという問題がある。
In the above-described method of performing a cache flush using the cache flush device, it is generally assumed that the processor has "Modified" data in the cache for the non-burst transfer in the main memory. Not implemented, simplifying implementation. For this reason, the operation of the main memory becomes “read-modify-write”, and the main memory is a bottleneck in the performance of the system. As a result, there is a problem that the cache flush time becomes longer.

【0023】一方、プロセッサにキャッシュフラッシュ
命令を実行させる方式では、プロセッサの種類によって
はキャッシュが全て無効化されてしまうため、キャッシ
ュフラッシュ終了後に命令キャッシュ、データキャッシ
ュの中身をメインメモリから読み出さなくてはならず、
性能低下の要因となっている。
On the other hand, in the method in which the processor executes the cache flush instruction, all the caches are invalidated depending on the type of the processor. Therefore, after the cache flush is completed, the contents of the instruction cache and the data cache must be read from the main memory. Not
This is a cause of performance degradation.

【0024】本発明は上記実情に鑑みてなされたもので
あり、キャッシュフラッシュ時にメインメモリがリード
・モディファイ・ライト動作することなくバーストライ
ト動作するようにして、キャッシュフラッシュ時間を短
縮するキャッシュフラッシュ方法および装置を提供する
ことを目的とする。
The present invention has been made in view of the above circumstances, and a cache flush method and a cache flush method for shortening a cache flush time by allowing a main memory to perform a burst write operation without performing a read-modify-write operation during a cache flush. It is intended to provide a device.

【0025】[0025]

【課題を解決するための手段】上記課題を解決するため
に、本発明のキャッシュフラッシュ方法は、コピーバッ
ク方式のキャッシュを備えた少なくとも一つのプロセッ
サと、前記プロセッサが接続されるプロセッサバスと、
メインメモリと、前記プロセッサバスと前記メインメモ
リとに接続されるキャッシュフラッシュ装置とを有する
コンピュータシステムに適用されるキャッシュフラッシ
ュ方法において、モディファイドデータについてのリー
ド要求を前記キャッシュフラッシュ装置から前記プロセ
ッサバスだけに対して送り、前記リード要求に応じて送
られてきた前記プロセッサからのモディファイドデータ
を前記キャッシュフラッシュ装置により受け取り、前記
モディファイドデータの受け取りが完了したキャッシュ
ラインだけについて前記メインメモリに対するバースト
ライトを行い、キャッシュフラッシュ時に前記メインメ
モリがリードモディファイライト動作せずに単純にバー
ストライト動作するようにしたことを特徴とする。
In order to solve the above-mentioned problems, a cache flush method according to the present invention comprises at least one processor having a copy-back cache, a processor bus to which the processor is connected,
In a cache flush method applied to a computer system having a main memory and a cache flush device connected to the processor bus and the main memory, a read request for modified data is sent from the cache flush device to only the processor bus. Receiving the modified data from the processor sent in response to the read request by the cache flash device, performing a burst write to the main memory only for the cache line for which the reception of the modified data has been completed, In the flash memory, the main memory simply performs a burst write operation without performing a read-modify-write operation.

【0026】なお、前記キャッシュフラッシュ方法にお
いて、前記キャッシュフラッシュ装置は、例えば前記プ
ロセッサバスと前記メインメモリとの間にインラインで
接続されるようにしてもよい。
In the cache flush method, the cache flush device may be connected in-line, for example, between the processor bus and the main memory.

【0027】また、前記キャッシュフラッシュ方法にお
いて、前記キャッシュフラッシュ装置と前記プロセッサ
とが第1のアドレスバスの一部を通じて接続され、前記
キャッシュフラッシュ装置と前記メインメモリとが前記
第1のアドレスバスとは独立した第2のアドレスバスの
一部を通じて接続されるようにしてもよい。
In the cache flush method, the cache flush device and the processor are connected through a part of a first address bus, and the cache flush device and the main memory are connected to the first address bus. The connection may be made through a part of the independent second address bus.

【0028】また、前記キャッシュフラッシュ方法にお
いて、前記リード要求時に、前記プロセッサにリード要
求を観測させるためのアドレスビットを前記キャッシュ
フラッシュ装置から前記第1のアドレスバスの一部に出
力すると共に、前記メインメモリには無関係のアドレス
ビットを前記キャッシュフラッシュ装置から前記第2の
アドレスバスの一部に出力し、前記バーストライト時
に、前記メインメモリに対するバーストライトを可能と
するアドレスビットを前記キャッシュフラッシュ装置か
ら前記第2のアドレスバスの一部に出力するようにして
もよい。
In the cache flush method, at the time of the read request, an address bit for causing the processor to observe the read request is output from the cache flush device to a part of the first address bus, and An address bit irrelevant to the memory is output from the cache flash device to a part of the second address bus, and at the time of the burst write, an address bit enabling a burst write to the main memory is output from the cache flash device. The data may be output to a part of the second address bus.

【0029】また、前記キャッシュフラッシュ方法にお
いて、前記の各アドレスバスに出力するアドレスビット
を偶数ビット数で構成することによりパリティ保護され
たアドレスバスに対応させるようにしてもよい。
In the cache flush method, the address bits output to each of the address buses may be constituted by an even number of bits so as to correspond to an address bus protected by parity.

【0030】また、前記キャッシュフラッシュ方法にお
いて、前記プロセッサにリード要求を観測させるための
アドレスビットを全て“0”とし、前記メインメモリに
無関係のアドレスビットを全て“1”とし、前記メイン
メモリに対するバーストライトを可能とするアドレスビ
ットを全て“0”とするようにしてもよい。
Further, in the cache flush method, all address bits for causing the processor to observe a read request are set to "0", and all address bits irrelevant to the main memory are set to "1". All address bits that enable writing may be set to “0”.

【0031】また、前記キャッシュフラッシュ方法にお
いて、前記キャッシュフラッシュ装置にデータメモリを
備えることにより外部キャッシュとしての機能を有する
ようにしてもよい。
In the cache flush method, the cache flush device may have a function as an external cache by including a data memory.

【0032】また、上記課題を解決するために、本発明
のキャッシュフラッシュ装置は、コピーバック方式のキ
ャッシュを備えた少なくとも一つのプロセッサと、前記
プロセッサが接続されるプロセッサバスと、メインメモ
リと、前記プロセッサバスと前記メインメモリとに接続
されるキャッシュフラッシュ装置とを有するコンピュー
タシステムに設けられるキャッシュフラッシュ装置にお
いて、モディファイドデータについてのリード要求を前
記プロセッサバスだけに対して送る手段と、前記リード
要求に応じて送られてきた前記プロセッサからのモディ
ファイドデータを受け取る手段と、前記モディファイド
データの受け取りが完了したキャッシュラインだけにつ
いて前記メインメモリに対するバーストライトを行う手
段とを具備し、キャッシュフラッシュ時に前記メインメ
モリがリードモディファイライト動作せずに単純にバー
ストライト動作するようにしたことを特徴とする。
According to another aspect of the present invention, there is provided a cache flash device comprising at least one processor having a copy-back cache, a processor bus to which the processor is connected, a main memory, In a cache flash device provided in a computer system having a processor bus and a cache flash device connected to the main memory, means for sending a read request for modified data to only the processor bus, Means for receiving the modified data sent from the processor, and means for performing a burst write to the main memory for only the cache line for which the reception of the modified data has been completed. Tsu said main memory during shoe flash characterized in that to work burst write simply without read-modify-write operation.

【0033】なお、前記キャッシュフラッシュ装置は、
前記プロセッサバスと前記メインメモリとの間にインラ
インで接続されるものであってもよい。
Incidentally, the cache flush device includes:
It may be connected in-line between the processor bus and the main memory.

【0034】また、前記キャッシュフラッシュ装置にお
いて、前記キャッシュフラッシュ装置と前記プロセッサ
とが第1のアドレスバスの一部を通じて接続され、前記
キャッシュフラッシュ装置と前記メインメモリとが前記
第1のアドレスバスとは独立した第2のアドレスバスの
一部を通じて接続されるものであってもよい。
In the cache flash device, the cache flash device and the processor are connected through a part of a first address bus, and the cache flash device and the main memory are connected to the first address bus. It may be connected through a part of the independent second address bus.

【0035】また、前記キャッシュフラッシュ装置は、
前記リード要求時に、前記プロセッサにリード要求を観
測させるためのアドレスビットを前記キャッシュフラッ
シュ装置から前記第1のアドレスバスの一部に出力する
と共に、前記メインメモリには無関係のアドレスビット
を前記キャッシュフラッシュ装置から前記第2のアドレ
スバスの一部に出力する手段と、前記バーストライト時
に、前記メインメモリに対するバーストライトを可能と
するアドレスビットを前記キャッシュフラッシュ装置か
ら前記第2のアドレスバスの一部に出力する手段とを更
に具備していてもよい。
Further, the cache flush device includes:
At the time of the read request, an address bit for causing the processor to observe the read request is output from the cache flash device to a part of the first address bus, and an address bit irrelevant to the main memory is output to the cache flash. Means for outputting from the device to a part of the second address bus, and, during the burst write, an address bit enabling burst write to the main memory from the cache flash device to a part of the second address bus. Output means may be further provided.

【0036】また、前記キャッシュフラッシュ装置は、
前記の各アドレスバスに出力するアドレスビットを偶数
ビット数で構成することによりパリティ保護されたアド
レスバスに対応させたものであってもよい。
Further, the cache flush device includes:
The address bits output to each of the address buses may be configured with an even number of bits to correspond to the parity-protected address bus.

【0037】また、前記キャッシュフラッシュ装置は、
前記プロセッサにリード要求を観測させるためのアドレ
スビットを全て“0”とし、前記メインメモリに無関係
のアドレスビットを全て“1”とし、前記メインメモリ
に対するバーストライトを可能とするアドレスビットを
全て“0”としたものであってもよい。
Further, the cache flush device includes:
All address bits for causing the processor to observe a read request are set to "0", all address bits irrelevant to the main memory are set to "1", and all address bits enabling burst write to the main memory are set to "0". ".

【0038】また、前記キャッシュフラッシュ装置は、
データメモリを備えることにより外部キャッシュとして
の機能を有するようにしたものであってもよい。
Further, the cache flush device includes:
It may have a function as an external cache by including a data memory.

【0039】[0039]

【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0040】[第1実施形態]図1は、本発明の第1実
施形態に係るキャッシュフラッシュ装置を含むコンピュ
ータシステムの全体構成を示すブロック図である。
[First Embodiment] FIG. 1 is a block diagram showing the overall configuration of a computer system including a cache flash device according to a first embodiment of the present invention.

【0041】1はシステムバスであり、メインメモリ制
御装置500とI/O制御装置600とキャッシュフラ
ッシュ装置100とを接続し、データの受け渡しを行
う。
A system bus 1 connects the main memory control device 500, the I / O control device 600, and the cache flash device 100, and exchanges data.

【0042】10はプロセッサバスであり、プロセッサ
110,120とキャッシュフラッシュ装置100を接
続し、データの受け渡しを行う。
A processor bus 10 connects the processors 110 and 120 to the cache flash device 100 and exchanges data.

【0043】100は本発明に係るキャッシュフラッシ
ュ装置であり、プロセッサ110,120のキャッシュ
状態を監視してキャッシュ管理用メモリ101にアドレ
ス情報を記録し、キャッシュフラッシュが起動するとプ
ロセッサからダーティーラインを読み出してメインメモ
リ制御装置500に書き戻す。101はキャッシュ管理
用メモリであり、プロセッサ110,120のキャッシ
ュラインの状態を含むアドレス情報を記録する。
A cache flash device 100 according to the present invention monitors the cache state of the processors 110 and 120, records address information in the cache management memory 101, and reads a dirty line from the processor when the cache flash is activated. The data is written back to the main memory control device 500. Reference numeral 101 denotes a cache management memory, which records address information including the state of the cache line of the processors 110 and 120.

【0044】110,120はプロセッサである。11
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリ(コピーバック方式)である。
Reference numerals 110 and 120 are processors. 11
Reference numerals 1 and 121 denote cache memories (copy back method) of the processors 110 and 120, respectively.

【0045】500はメインメモリを制御するメインメ
モリ制御装置である。501はメインメモリである。
Reference numeral 500 denotes a main memory control device for controlling the main memory. 501 is a main memory.

【0046】600はI/Oバス制御装置である。60
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
Reference numeral 600 denotes an I / O bus control device. 60
Reference numerals 1 and 602 denote I / O bus controllers 600
/ O bus.

【0047】上記キャッシュフラッシュ装置100は、
プロセッサバス10とメインメモリ制御装置500(メ
インメモリ501)との間にインラインで接続されてい
る。このため、この構成例は、メインメモリのために使
用可能なアドレス空間に制限が発生せず、アダプタ接続
方式で実現しやすいという利点がある。
The cache flash device 100
It is connected inline between the processor bus 10 and the main memory control device 500 (main memory 501). Therefore, this configuration example has an advantage that an address space usable for the main memory is not limited, and is easily realized by an adapter connection method.

【0048】本実施形態では、プロセッサ110,12
0が“MESI”プロトコルでキャッシュ管理を行って
いる場合を例にとって説明する。ここで、“MESI”
は、キャッシュメモリ111,121上の各キャッシュ
ブロックの取り得る4種類の状態、すなわち、以下に説
明するような“Modified”,“Exclusive ”,“Share
d”,“Invalid ”の各種の状態を示すものである。な
お、以下では、それぞれの頭文字を用いて単に“M”,
“E”,“S”,“I”と呼ぶ場合があるものとする。
In this embodiment, the processors 110 and 12
A case in which 0 performs cache management using the “MESI” protocol will be described as an example. Here, “MESI”
Are four possible states of each cache block on the cache memories 111 and 121, namely, "Modified", "Exclusive", and "Share" as described below.
d ”and“ Invalid ”. In the following,“ M ”,“ M ”,
It is assumed that they may be called "E", "S", and "I".

【0049】Modified(M): そのキャッシュブロッ
クには更新されたデータが存在する。他のプロセッサの
キャッシュブロックには、このデータは存在しない。 Exclusive (E): そのキャッシュブロックには、メ
インメモリ501と同一内容のデータが存在する。他の
キャッシュメモリのキャッシュブロックには、このデー
タは存在しない。 Shared(S): そのキャッシュブロックには、メイン
メモリ501と同一内容のデータが存在する。他のプロ
セッサのキャッシュブロックにも、このデータが存在す
る可能性がある。 Invalid (I): そのキャッシュブロックには有効な
データが存在しない。
Modified (M): The cache block contains updated data. This data does not exist in cache blocks of other processors. Exclusive (E): The cache block has the same data as the main memory 501. This data does not exist in a cache block of another cache memory. Shared (S): The cache block contains data having the same contents as the main memory 501. This data may also be present in cache blocks of other processors. Invalid (I): There is no valid data in the cache block.

【0050】なお、上記の状態“Exclusive (E)”お
よび“Shared(S)”は、“Clean(C)”に相当する
ものである。
The states "Exclusive (E)" and "Shared (S)" correspond to "Clean (C)".

【0051】一方、本システムのプロセッサバス10上
に発行される各種のトランザクションには、以下に説明
するように“Read and Invalidate ”,“Invalidat
e”,“Write ”,“Read”などがある。
On the other hand, various transactions issued on the processor bus 10 of the present system include "Read and Invalidate" and "Invalidat" as described below.
e "," Write ", and" Read ".

【0052】Read and Invalidate : プロセッサがデ
ータを更新しようとして、キャッシュメモリ中にそのデ
ータが無い場合に発行されるものであり、キャッシュブ
ロックデータのリード、および他のキャッシュブロック
の無効化要求を意味する。
Read and Invalidate: This is issued when the processor attempts to update data and the data is not present in the cache memory, and indicates a read of cache block data and a request to invalidate another cache block. .

【0053】Invalidate: プロセッサが“Shared”状
態のキャッシュブロックのデータを更新しようとする場
合に発行されるものであり、他のキャッシュメモリのデ
ータ無効化要求を意味する。
Invalidate: This is issued when the processor attempts to update the data of the cache block in the “Shared” state, and indicates a data invalidation request of another cache memory.

【0054】Write : “Modified”状態のキャッシュ
ブロックに他のアドレスのデータを格納しなければなら
なくなったために、“Modified”状態のキャッシュブロ
ックの内容をメインメモリ501に書き戻す必要がある
場合に発行されるものであり、キャッシュブロックデー
タのメインメモリ501への書込み要求を意味する。
Write: issued when it is necessary to write back the contents of the cache block in the "Modified" state to the main memory 501 because data of another address has to be stored in the cache block in the "Modified" state. This means a request for writing cache block data to the main memory 501.

【0055】Read: プロセッサがデータを読もうとし
て、キャッシュメモリ中にそのデータが無い場合に発行
されるものであり、キャッシュブロックデータのリード
要求を意味する。
Read: This is issued when the processor attempts to read data and there is no such data in the cache memory, and indicates a request to read cache block data.

【0056】次に、この第1実施形態の動作について説
明する。
Next, the operation of the first embodiment will be described.

【0057】(通常動作)はじめに通常動作を説明す
る。通常動作時には、プロセッサバス10上に発行され
たトランザクションをキャッシュフラッシュ装置100
が受け取り、必要なトランザクションをシステムバス1
上に発行する。このとき、メインメモリ制御装置500
またはI/Oバスブリッジ600がシステムバス1上の
アドレスによって反応する。
(Normal Operation) First, the normal operation will be described. During normal operation, a transaction issued on the processor bus 10 is
Receives the necessary transactions and sends them to system bus 1.
Issue above. At this time, the main memory control device 500
Alternatively, the I / O bus bridge 600 responds according to the address on the system bus 1.

【0058】このように、プロセッサバス10上ではキ
ャッシュフラッシュ装置100を通じてメモリアクセス
もしくはI/Oアクセスを行うので、プロセッサの内部
レジスタ等の特殊な空間を除けばキャッシュフラッシュ
装置100がトランザクションのターゲットアドレスを
保持し、キャッシュフラッシュ装置100がトランザク
ションへのレスポンスを返す責任を持つ。
As described above, since the memory access or the I / O access is performed on the processor bus 10 through the cache flash device 100, the cache flash device 100 sets the target address of the transaction except for a special space such as an internal register of the processor. The cache flush device 100 is responsible for returning a response to the transaction.

【0059】ここで、プロセッサバス10上に各種のト
ランザクションが発行された場合のキャッシュフラッシ
ュ装置100が行う処理を、図2〜図4を参照して説明
する。
The processing performed by the cache flash device 100 when various transactions are issued on the processor bus 10 will be described with reference to FIGS.

【0060】キャッシュメモリ111,121に“Excl
usive ”状態が発生したときには、キャッシュが“Modi
fied”状態になったことを外部から観測できない。この
ため、プロセッサバス10上にReadトランザクションが
発行された場合には(ステップA1)、キャッシュフラ
ッシュ装置100は“Shared”応答をプロセッサバス1
0上に返し、キャッシュを“Shared”状態にする(ステ
ップA2)。すなわち、“Exclusive ”状態を許さな
い。そして、キャッシュフラッシュ装置100は、キャ
ッシュ管理用メモリ101を検索して該当するキャッシ
ュラインを“Clean ”にする(ステップA3)。
"Excl" is stored in the cache memories 111 and 121.
usive ”state, the cache is“ Modi
Therefore, when a Read transaction is issued on the processor bus 10 (step A1), the cache flash device 100 sends a “Shared” response to the processor bus 1 (step A1).
Then, the cache is returned to "Shared" state (step A2). That is, the “Exclusive” state is not allowed. Then, the cache flush device 100 searches the cache management memory 101 and sets the corresponding cache line to "Clean" (Step A3).

【0061】プロセッサバス10上にInvalidateトラン
ザクション又はRead and Invalidate トランザクション
が発行された場合には(ステップB1)、キャッシュフ
ラッシュ装置100はキャッシュ管理用メモリ101中
の“Modified”として該当するインデックスの位置にタ
グを保存する(ステップB2)。このとき、既に別のキ
ャッシュラインがModifiedとして登録されていたら、キ
ャッシュフラッシュ装置100は登録されていたタグと
インデックスとから物理アドレスを生成してプロセッサ
バス10上にReadトランザクションを発行する(ステッ
プB3,B4)。プロセッサが“Modified”ラインを持
っていれば、該プロセッサは“Modified”応答をして
“Modified”データをプロセッサバス10上に出力して
くる。
When an Invalidate transaction or a Read and Invalidate transaction is issued on the processor bus 10 (step B1), the cache flash device 100 sets the tag at the position of the corresponding index as "Modified" in the cache management memory 101. Is stored (step B2). At this time, if another cache line has already been registered as Modified, the cache flash device 100 generates a physical address from the registered tag and index, and issues a Read transaction on the processor bus 10 (step B3). B4). If the processor has a "Modified" line, the processor responds with a "Modified" response and outputs "Modified" data on the processor bus 10.

【0062】キャッシュフラッシュ装置100は、プロ
セッサバス10から“Modified”データを受け取ると
(ステップB5)、システムバス1上にそのアドレスの
Writeトランザクションを発行する(ステップB6)。
これにより、メインメモリ制御装置500は、メインメ
モリ501にデータを書き戻す。
When the cache flash device 100 receives the "Modified" data from the processor bus 10 (step B5), the address of the address is displayed on the system bus 1.
Issue a Write transaction (step B6).
As a result, the main memory control device 500 writes the data back to the main memory 501.

【0063】プロセッサバス10上にWrite トランザク
ションが発行された場合には(ステップC1)、キャッ
シュフラッシュ装置100はシステムバス1上にWrite
トランザクションを発行する(ステップC2)。これに
より、メインメモリ制御装置500は、メインメモリ5
01にデータを書き込む。そして、キャッシュフラッシ
ュ装置100は、キャッシュ管理用メモリ101を検索
して該当するキャッシュラインを“Clean ”にする(ス
テップC3)。
When a Write transaction is issued on the processor bus 10 (step C1), the cache flash device 100 writes a Write transaction on the system bus 1.
A transaction is issued (step C2). As a result, the main memory control device 500
01 is written. Then, the cache flush device 100 searches the cache management memory 101 and sets the corresponding cache line to "Clean" (Step C3).

【0064】図5は、プロセッサバス上に発行されたト
ランザクションの種類に応じてキャッシュ管理用メモリ
101の状態が変更される様子をまとめたものである。
FIG. 5 summarizes how the state of the cache management memory 101 is changed according to the type of transaction issued on the processor bus.

【0065】図中、“M”は、キャッシュ管理用メモリ
101が「プロセッサが“Modified”ラインを持ってい
る」と認識している状態を示す。“C”は、キャッシュ
管理用メモリ101が「プロセッサが“Modified”ライ
ンを持っていない」と認識している状態“Clean ”を示
す。このときのプロセッサキャッシュの状態は、“Inva
lid ”または“Shared”である。“M(追い出し)”
は、キャッシュ管理用メモリ101が「プロセッサが
“Modified”ラインを持っている」と認識し、かつキャ
ッシュ管理用メモリ101に登録されていたエントリの
リードをプロセッサバス上に発行してプロセッサキャッ
シュ内の“Modified”ラインを追い出すことを示す。
In the figure, “M” indicates a state in which the cache management memory 101 recognizes that “the processor has a“ Modified ”line”. “C” indicates a state “Clean” in which the cache management memory 101 recognizes that “the processor does not have the“ Modified ”line”. At this time, the state of the processor cache is “Inva
“lid” or “Shared.” “M (remove)”
Indicates that the cache management memory 101 recognizes that the "processor has a" Modified "line", issues a read of an entry registered in the cache management memory 101 to the processor bus, and issues Indicates that the "Modified" line will be kicked out.

【0066】(キャッシュフラッシュ時の動作)次に、
キャッシュフラッシュ時の動作を、図6を参照して説明
する。キャッシュフラッシュが開始されると、キャッシ
ュフラッシュ装置100は、キャッシュ管理用メモリ1
01を検索してプロセッサ110,120にある“Modi
fied”であるキャッシュラインを見つけ(ステップD
1)、プロセッサバス10だけに対してリード要求を行
う(ステップD2)。なお、リード要求の発行にあたっ
ては、“0バイト”すなわち“Modified”応答が無けれ
ばデータ転送を伴わない形でトランザクションが完了す
るようにする。
(Operation at Cache Flush) Next,
The operation at the time of cache flush will be described with reference to FIG. When the cache flush is started, the cache flush device 100
01 and “Modi” in the processors 110 and 120
Find the cache line that is "fied" (step D
1) A read request is issued only to the processor bus 10 (step D2). When issuing a read request, the transaction is completed without data transfer unless there is a "0 byte", that is, "Modified" response.

【0067】ここで、プロセッサ110もしくは120
が本当に“Modified”であるデータを持っていれば、該
プロセッサはReadトランザクションに対して“Modifie
d”応答をして“Modified”データをプロセッサバス1
0上に出力してくる。
Here, the processor 110 or 120
If the processor has data that is truly “Modified”, then the processor
“d” response and “Modified” data to processor bus 1
It is output on 0.

【0068】キャッシュフラッシュ装置100は、プロ
セッサバス10から“Modified”データを受け取ると
(ステップD3)、システムバス1上にそのキャッシュ
ラインのバーストライトトランザクションを発行し(ス
テップD4)、キャッシュフラッシュを完了する。
When receiving the "Modified" data from the processor bus 10 (step D3), the cache flush device 100 issues a burst write transaction for the cache line on the system bus 1 (step D4), and completes the cache flush. .

【0069】この場合、メインメモリ制御装置500側
としては、キャッシュフラッシュ装置100からのキャ
ッシュフラッシュを単純なバーストライトとして扱える
ので、メインメモリ501へのアクセスは1回だけで終
了する。
In this case, since the cache flush from the cache flush device 100 can be handled as a simple burst write on the main memory control device 500 side, the access to the main memory 501 is completed only once.

【0070】図7は、この第1実施形態においてキャッ
シュフラッシュが単独で実行される場合の動作を示すタ
イミングチャートである。ここでは、メインメモリ50
1にシンクロナスDRAMを使用している。
FIG. 7 is a timing chart showing the operation in the case where the cache flush is executed independently in the first embodiment. Here, the main memory 50
1 uses a synchronous DRAM.

【0071】以下、図7を参照して各種信号について説
明する。なお、図中の横軸はバスサイクル数を示してい
る。
Hereinafter, various signals will be described with reference to FIG. The horizontal axis in the figure indicates the number of bus cycles.

【0072】プロセッサバスのaddress はプロセッサバ
ストランザクションのアドレスであり、キャッシュフラ
ッシュ装置100が出力する。プロセッサバスのSnoop
は、システムトランザクションに対するスヌープ応答で
あり、プロセッサ110,120のいずれかが出力す
る。この図の例では、“Modified”応答を出している。
プロセッサバスのDataは、システムトランザクションに
対するデータであり、プロセッサ110,120のいず
れかが出力する。なお、Readトランザクションに対する
スヌープ応答が“Modified”以外の場合、通常はキャッ
シュフラッシュ装置100がデータを出力する。
The address of the processor bus is the address of the processor bus transaction, and is output from the cache flash device 100. Processor bus Snoop
Is a snoop response to the system transaction, which is output by one of the processors 110 and 120. In the example of this figure, a “Modified” response is issued.
Data of the processor bus is data for a system transaction, and is output by one of the processors 110 and 120. When the snoop response to the Read transaction is other than “Modified”, the cache flash device 100 normally outputs data.

【0073】キャッシュフラッシュ装置のData Buffer
は、キャッシュフラッシュ装置100内のデータバッフ
ァがプロセッサバス10上のデータを受け取る様子を示
している。
Data Buffer of Cache Flash Device
2 shows a state in which the data buffer in the cache flash device 100 receives data on the processor bus 10.

【0074】システムバスのaddress は、システムバス
トランザクションのアドレスであり、キャッシュフラッ
シュ装置100が出力する。システムバスのSnoop は、
システムバストランザクションに対するスヌープ応答で
あり、本構成の場合、通常はメインメモリ制御装置50
0が“Normal”応答を返す。システムバスのDataは、シ
ステムバストランザクションに対するデータ出力であ
り、本構成の場合、プロセッサバス10上でプロセッサ
110もしくは120が出力したデータをキャッシュフ
ラッシュ装置100が出力する。
The address of the system bus is the address of the system bus transaction, and is output from the cache flash device 100. The system bus Snoop is
This is a snoop response to the system bus transaction.
0 returns a "Normal" response. Data of the system bus is a data output for the system bus transaction. In this configuration, the cache flash device 100 outputs data output from the processor 110 or 120 on the processor bus 10.

【0075】メインメモリのAddress は、メインメモリ
制御装置500が出力するメインメモリ501のアドレ
スである。メインメモリのRASは、メインメモリ制御
装置500が出力するメインメモリ501のRAS信号
である。メインメモリのCASは、メインメモリ制御装
置500が出力するメインメモリ501のCAS信号で
ある。メインメモリのWEは、メインメモリ制御装置5
00が出力するメインメモリ501のWE信号である。
メインメモリのDataは、メインメモリ制御装置500と
メインメモリ501の間のデータ信号である。CASが
“L”のときにWEが“L”であればメインメモリ制御
装置500がライトデータを出力し、CASが“L”の
ときにWEが“H”であればメインメモリ501がリー
ドデータを出力する。
Address of the main memory is an address of the main memory 501 output from the main memory control device 500. The RAS of the main memory is the RAS signal of the main memory 501 output from the main memory control device 500. The CAS of the main memory is a CAS signal of the main memory 501 output from the main memory control device 500. The WE of the main memory is the main memory controller 5
00 is an output WE signal of the main memory 501.
Data of the main memory is a data signal between the main memory control device 500 and the main memory 501. If WE is "L" when CAS is "L", main memory control device 500 outputs write data. If CAS is "L" and WE is "H", main memory 501 outputs read data. Is output.

【0076】図8は、この第1実施形態においてキャッ
シュフラッシュが3連続で実行される場合の動作を示す
タイミングチャートである。ここでは、メインメモリ5
01にシンクロナスDRAMを使用している。
FIG. 8 is a timing chart showing an operation in the case where cache flush is executed three consecutive times in the first embodiment. Here, the main memory 5
01 uses a synchronous DRAM.

【0077】以下、図8を参照して各種信号について説
明する。なお、図中の横軸はバスサイクル数を示してい
る。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
Hereinafter, various signals will be described with reference to FIG. The horizontal axis in the figure indicates the number of bus cycles. Further, ==,-, ++ in the figure correspond to the first, second, and third bus transactions, respectively.

【0078】プロセッサバスのaddress はプロセッサバ
ストランザクションのアドレスであり、キャッシュフラ
ッシュ装置100が出力する。プロセッサバスのSnoop
は、システムトランザクションに対するスヌープ応答で
あり、プロセッサ110,120のいずれかが出力す
る。この図の例では、“Modified”応答をしている。プ
ロセッサバスのDataは、システムトランザクションに対
するデータであり、プロセッサ110,120のいずれ
かが出力する。なお、Readトランザクションに対するス
ヌープ応答が“Modified”以外の場合、通常はキャッシ
ュフラッシュ装置100がデータを出力する。
The address of the processor bus is the address of the processor bus transaction, and is output from the cache flash device 100. Processor bus Snoop
Is a snoop response to the system transaction, which is output by one of the processors 110 and 120. In the example of this figure, a “Modified” response is sent. Data of the processor bus is data for a system transaction, and is output by one of the processors 110 and 120. When the snoop response to the Read transaction is other than “Modified”, the cache flash device 100 normally outputs data.

【0079】キャッシュフラッシュ装置のData Buffer
は、キャッシュフラッシュ装置100内のデータバッフ
ァがプロセッサバス10上のデータを受け取る様子を示
している。
Data Buffer of Cache Flash Device
2 shows a state in which the data buffer in the cache flash device 100 receives data on the processor bus 10.

【0080】システムバスのaddress は、システムバス
トランザクションのアドレスであり、キャッシュフラッ
シュ装置100が出力する。システムバスのSnoop は、
システムバストランザクションに対するスヌープ応答で
あり、本構成の場合、通常はメインメモリ制御装置50
0が“Normal”応答を返す。システムバスのDataは、シ
ステムバストランザクションに対するデータ出力であ
り、本構成の場合、プロセッサバス10上でプロセッサ
110もしくは120が出力したデータをキャッシュフ
ラッシュ装置100が出力する。
The address of the system bus is the address of the system bus transaction, and is output from the cache flash device 100. The system bus Snoop is
This is a snoop response to the system bus transaction.
0 returns a "Normal" response. Data of the system bus is a data output for the system bus transaction. In this configuration, the cache flash device 100 outputs data output from the processor 110 or 120 on the processor bus 10.

【0081】メインメモリのAddress は、メインメモリ
制御装置500が出力するメインメモリ501のアドレ
スである。メインメモリのRASは、メインメモリ制御
装置500が出力するメインメモリ501のRAS信号
である。メインメモリのCASは、メインメモリ制御装
置500が出力するメインメモリ501のCAS信号で
ある。メインメモリのWEは、メインメモリ制御装置5
00が出力するメインメモリ501のWE信号である。
メインメモリのDataは、メインメモリ制御装置500と
メインメモリ501の間のデータ信号である。CASが
“L”のときにWEが“L”であればメインメモリ制御
装置500がライトデータを出力し、CASが“L”の
ときにWEが“H”であればメインメモリ501がリー
ドデータを出力する。
The address of the main memory is the address of the main memory 501 output from the main memory control device 500. The RAS of the main memory is the RAS signal of the main memory 501 output from the main memory control device 500. The CAS of the main memory is a CAS signal of the main memory 501 output from the main memory control device 500. The WE of the main memory is the main memory controller 5
00 is an output WE signal of the main memory 501.
Data of the main memory is a data signal between the main memory control device 500 and the main memory 501. If WE is "L" when CAS is "L", main memory control device 500 outputs write data. If CAS is "L" and WE is "H", main memory 501 outputs read data. Is output.

【0082】本例とキャッシュフラッシュ時のスループ
ット、キャッシュフラッシュ終了までの時間の比較結果
を図17に示す。キャッシュ全領域をフラッシュするの
に要する時間はほぼスループットに比例するので、本例
では従来例の1/3以下の時間でキャッシュフラッシュ
が終了する。
FIG. 17 shows a comparison result between the present example, the throughput at the time of cache flush, and the time until the end of cache flush. Since the time required to flush the entire cache area is almost proportional to the throughput, in this example, the cache flush is completed in less than one third of the time in the conventional example.

【0083】[第2実施形態]次に、第2実施形態を説
明する。
[Second Embodiment] Next, a second embodiment will be described.

【0084】図9は、本発明の第2実施形態に係るキャ
ッシュフラッシュ装置を含むコンピュータシステムの全
体構成を示すブロック図である。
FIG. 9 is a block diagram showing the overall configuration of a computer system including a cache flash device according to the second embodiment of the present invention.

【0085】2はシステムバスのうち、後述するアドレ
スバスの最上位2ビット分を除いたものである。このシ
ステムバス2は、メインメモリ制御装置500と、I/
O制御装置600と、キャッシュフラッシュ装置100
と、プロセッサ110,120とを接続してデータの受
け渡しを行う。なお、プロセッサバスに相当する部分は
このシステムバス2に含まれているものと考える。
Reference numeral 2 denotes a system bus excluding the most significant two bits of an address bus to be described later. The system bus 2 is connected to the main memory control device 500 and an I / O
O control device 600 and cache flush device 100
And the processors 110 and 120 are connected to perform data transfer. It is assumed that the part corresponding to the processor bus is included in the system bus 2.

【0086】3はアドレスバスの最上位2ビット分であ
り、プロセッサ110,120とキャッシュフラッシュ
装置100とを接続してアドレスの受け渡しを行う。4
はアドレスバスの最上位2ビット分であり、メインメモ
リ制御装置500とキャッシュフラッシュ装置100と
を接続してアドレスの受け渡しを行う。なお、バス3と
4とは接続されておらず、各々は独立して設けられてい
る。
Reference numeral 3 denotes the most significant 2 bits of the address bus, which connects the processors 110 and 120 and the cache flash device 100 to transfer addresses. 4
The uppermost two bits of the address bus connect the main memory control device 500 and the cache flash device 100 to transfer addresses. Note that the buses 3 and 4 are not connected, and are provided independently of each other.

【0087】100は本発明に係るキャッシュフラッシ
ュ装置であり、プロセッサ110,120のキャッシュ
状態を監視してキャッシュ管理用メモリ101に記録
し、キャッシュフラッシュが起動するとプロセッサから
ダーティーラインを読み出してメインメモリ制御装置5
00に書き戻す。101はキャッシュ管理用メモリであ
り、プロセッサ110,120のキャッシュラインの状
態を記録する。
Reference numeral 100 denotes a cache flush device according to the present invention, which monitors the cache state of the processors 110 and 120 and records the cache state in the cache management memory 101. When the cache flush is activated, a dirty line is read from the processor to control the main memory. Device 5
Write back to 00. Reference numeral 101 denotes a cache management memory that records the status of the cache line of the processors 110 and 120.

【0088】110,120はプロセッサである。11
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリ(コピーバック方式)である。
Reference numerals 110 and 120 are processors. 11
Reference numerals 1 and 121 denote cache memories (copy back method) of the processors 110 and 120, respectively.

【0089】500はメインメモリを制御するメインメ
モリ制御装置である。501はメインメモリである。
Reference numeral 500 denotes a main memory control device for controlling the main memory. 501 is a main memory.

【0090】600はI/Oバス制御装置である。60
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
Reference numeral 600 denotes an I / O bus control device. 60
Reference numerals 1 and 602 denote I / O bus controllers 600
/ O bus.

【0091】この第2実施形態においても、プロセッサ
は“MESI”プロトコルでキャッシュ管理を行ってい
るものとする。
Also in the second embodiment, it is assumed that the processor performs cache management using the "MESI" protocol.

【0092】図10は、図9で示したシステムの通常動
作時のアドレス出力を模式的に図示したものである。
FIG. 10 schematically shows address output during normal operation of the system shown in FIG.

【0093】プロセッサ110,120からアドレスを
出力するとき、アドレスバスの一部(最上位2ビット
分)3に対してプロセッサ110,120は“00”を
出力する。このとき、キャッシュフラッシュ装置100
はアドレスバスの一部(最上位2ビット分)4に対して
“00”を出力する。よって、メインメモリ制御装置5
00にはプロセッサ110が出力したアドレスがそのま
ま観測される。
When outputting an address from the processors 110 and 120, the processors 110 and 120 output "00" to a part (for the most significant two bits) 3 of the address bus. At this time, the cache flush device 100
Outputs "00" to a part (2 most significant bits) 4 of the address bus. Therefore, the main memory control device 5
At 00, the address output from the processor 110 is observed as it is.

【0094】図11は、図9で示したシステムのキャッ
シュフラッシュ前半のアドレス出力を模式的に図示した
ものである。
FIG. 11 schematically shows an address output in the first half of the cache flush of the system shown in FIG.

【0095】キャッシュフラッシュ装置100からプロ
セッサにキャッシュフラッシュ要求(リード要求)をす
るとき、キャッシュフラッシュ装置100はアドレスバ
スの一部3に対して“00”を出力する。プロセッサ1
10が“Modified”データを持っていれば、該プロセッ
サ110は“Modified”応答をして“Modified”データ
を出力してくる。
When a cache flush request (read request) is issued from the cache flush device 100 to the processor, the cache flush device 100 outputs “00” to a part 3 of the address bus. Processor 1
If 10 has "Modified" data, the processor 110 responds with "Modified" and outputs "Modified" data.

【0096】キャッシュフラッシュ装置100は、“Mo
dified”データを受け取ると、アドレスバスの一部4に
対して“11”を出力する。よって、メインメモリ制御
装置500はプロセッサ110,120が観測するのと
は異なるアドレスを観測する。このアドレス領域はメイ
ンメモリ501やI/Oバス610,620には割り当
てられていないのでプロセッサ110,120以外は反
応しない。プロセッサ110が出力したデータはキャッ
シュフラッシュ装置100が受け取る。
The cache flush device 100 stores “Mo
When the "dified" data is received, "11" is output to the part 4 of the address bus, so that the main memory controller 500 observes an address different from that observed by the processors 110 and 120. This address area Are not assigned to the main memory 501 or the I / O buses 610 and 620, and therefore do not respond to the processors other than the processors 110 and 120. The data output from the processor 110 is received by the cache flash device 100.

【0097】図12は、図9で示したシステムのキャッ
シュフラッシュ後半のアドレス出力を模式的に図示した
ものである。
FIG. 12 schematically shows the address output in the latter half of the cache flush of the system shown in FIG.

【0098】キャッシュフラッシュ装置100からメイ
ンメモリ制御装置500にライト要求をするとき、キャ
ッシュフラッシュ装置100はアドレスバスの一部3に
対して“00”を出力する。このとき、キャッシュフラ
ッシュ装置100はアドレスバスの一部4に対して“0
0”を出力する。よって、メインメモリ制御装置500
はプロセッサ110,120が観測するのと同じアドレ
スを観測する。プロセッサは、図11で示したキャッシ
ュフラッシュ前半に“Modified”データを出力している
ので、今度は“Modified”応答しない。
When the cache flash device 100 issues a write request to the main memory control device 500, the cache flash device 100 outputs "00" to a part 3 of the address bus. At this time, the cache flash device 100 sets “0” for part 4 of the address bus.
0 ". Therefore, the main memory control device 500
Observes the same address that the processors 110 and 120 observe. Since the processor has output “Modified” data in the first half of the cache flush shown in FIG. 11, it does not respond to “Modified” this time.

【0099】キャッシュフラッシュ装置100が出力し
たライトデータは、そのままメインメモリ制御装置50
0を通じてメインメモリ501に書き込まれる。
The write data output from the cache flash device 100 is directly used by the main memory control device 50.
0 is written to the main memory 501.

【0100】なお、上記の例では、アドレスビット“0
0”,“11”は、偶数ビット数で構成することによ
り、パリティ保護されたアドレスバスに対応させてい
る。しかし、パリティ保護されていないアドレスバスに
対しては、アドレスビットを単純に“0”,“1”(1
ビット分)としても構わない。
In the above example, the address bit "0"
"0" and "11" are made up of even-numbered bits to correspond to an address bus protected by parity, but for an address bus not protected by parity, the address bits are simply set to "0". ”,“ 1 ”(1
Bit).

【0101】次に、この第2実施形態の動作について説
明する。
Next, the operation of the second embodiment will be described.

【0102】(通常動作)はじめに通常動作を説明す
る。通常動作時には、キャッシュフラッシュ装置100
は、プロセッサに接続されたアドレスバスの一部(最上
位2ビット分)3およびメインメモリ制御装置500に
接続されたアドレスバスの一部(最上位2ビット分)4
の両方に“00”を出力する。これにより、プロセッサ
から出力されたトランザクションは、メインメモリ制御
装置500やI/Oブリッジ600でも同じアドレスと
して観測される。このとき、アドレスバス上のアドレス
によってメインメモリ制御装置500またはI/Oバス
ブリッジ600が反応する。
(Normal Operation) First, the normal operation will be described. During normal operation, the cache flush device 100
Are part of the address bus (for the most significant two bits) 3 connected to the processor and part of the address bus (for the most significant two bits) 4 connected to the main memory control device 500.
"00" is output to both of them. As a result, the transaction output from the processor is observed as the same address in the main memory control device 500 and the I / O bridge 600. At this time, the main memory control device 500 or the I / O bus bridge 600 reacts according to the address on the address bus.

【0103】ここで、システムバス2上に各種のトラン
ザクションが発行された場合のキャッシュフラッシュ装
置100が行う処理を、図13〜図15を参照して説明
する。
Here, the processing performed by the cache flash device 100 when various transactions are issued on the system bus 2 will be described with reference to FIGS.

【0104】キャッシュメモリ111,121に“Excl
usive ”状態が発生したときにはキャッシュが“Modifi
ed”状態になったことを外部から観測できない。このた
め、システムバス2上にReadトランザクションが発行さ
れた場合には(ステップE1)、キャッシュフラッシュ
装置100は“Shared”応答をシステムバス2上に返
し、キャッシュを“Shared”状態にする(ステップE
2)。すなわち、“Exclusive ”状態を許さない。キャ
ッシュフラッシュ装置100は、キャッシュ管理用メモ
リ101を検索し、該当するキャッシュラインを“Clea
n ”にする(ステップE3)。
“Excl” is stored in the cache memories 111 and 121.
When the "usive" state occurs, the cache is "Modifi
The fact that the state has become "ed" cannot be observed from the outside. Therefore, when a Read transaction is issued on the system bus 2 (step E1), the cache flash device 100 sends a "Shared" response to the system bus 2. To set the cache to the "Shared" state (step E
2). That is, the “Exclusive” state is not allowed. The cache flush device 100 searches the cache management memory 101 and finds the corresponding cache line in “Clea
n "(step E3).

【0105】システムバス2上にInvalidateトランザク
ション又はRead and Invalidate トランザクションが発
行された場合には(ステップF1)、キャッシュフラッ
シュ装置100はキャッシュ管理用メモリ101中の
“Modified”として該当するインデックスの位置にタグ
を保存する(ステップF2)。
When an Invalidate transaction or a Read and Invalidate transaction is issued on the system bus 2 (step F 1), the cache flash device 100 sets the tag at the position of the corresponding index as “Modified” in the cache management memory 101. Is stored (step F2).

【0106】このとき、既に別のキャッシュラインがMo
difiedとして登録されていたら、キャッシュフラッシュ
装置100はプロセッサに接続されたアドレスバスの一
部3には“00”を出力し、メインメモリ制御装置50
0に接続されたアドレスバスの一部4には“11”を出
力し、登録されていたタグとインデックスとから物理ア
ドレスを生成してシステムバス2上に発行する(ステッ
プF3,F4)。プロセッサが“Modified”ラインを持
っていれば、該プロセッサは“Modified”応答をして
“Modified”データを出力してくる。
At this time, another cache line is already
If it is registered as "dified", the cache flash device 100 outputs "00" to a part 3 of the address bus connected to the processor, and the main memory control device 50
"11" is output to a part 4 of the address bus connected to "0", a physical address is generated from the registered tag and index, and is issued on the system bus 2 (steps F3 and F4). If the processor has a "Modified" line, the processor responds with a "Modified" response and outputs "Modified" data.

【0107】キャッシュフラッシュ装置100は、シス
テムバス2から“Modified”データを受け取ると(ステ
ップF5)、システムバス2上にそのアドレスのWrite
トランザクションを発行する(ステップF6)。これに
より、メインメモリ制御装置500は、メインメモリ5
01にデータを書き戻す。
When receiving the "Modified" data from the system bus 2 (step F5), the cache flash device 100 writes the address on the system bus 2.
A transaction is issued (step F6). As a result, the main memory control device 500
01 is written back.

【0108】なお、このようなキャッシュラインの追い
出し時は、後述するキャッシュフラッシュ時と同じよう
に動作するので、メインメモリ制御装置500はプロセ
ッサ110,120からのキャッシュフラッシュ動作に
は反応せず、キャッシュフラッシュ装置100からのラ
イト動作のみに反応する。
At the time of eviction of a cache line, the same operation as at the time of a cache flush described later is performed. Therefore, the main memory control device 500 does not respond to the cache flush operation from the processors 110 and 120, and It reacts only to the write operation from the flash device 100.

【0109】システムバス2上にWrite トランザクショ
ンを発行したならば(ステップG1)、メインメモリ制
御装置500はシステムバス2上にWrite トランザクシ
ョンを発行する(ステップG2)。これにより、メイン
メモリ制御装置500は、メインメモリ501にデータ
を書き込む。そして、キャッシュフラッシュ装置100
は、キャッシュ管理用メモリ101を検索して該当する
キャッシュラインを“Clean ”にする(ステップG
3)。
When a write transaction has been issued on the system bus 2 (step G1), the main memory controller 500 issues a write transaction on the system bus 2 (step G2). Thereby, the main memory control device 500 writes data to the main memory 501. Then, the cache flush device 100
Retrieves the cache management memory 101 and sets the corresponding cache line to “Clean” (step G).
3).

【0110】(キャッシュフラッシュ時の動作)次に、
キャッシュフラッシュ時の動作を、図16を参照して説
明する。キャッシュフラッシュが開始されると、キャッ
シュフラッシュ装置100はキャッシュ管理用メモリ1
01を検索してプロセッサ110,120にある“Modi
fied”であるキャッシュラインを見つけ(ステップH
1)、システムバス2にリード要求を行う(ステップH
2)。
(Operation at Cache Flush) Next,
The operation at the time of cache flush will be described with reference to FIG. When the cache flush is started, the cache flush device 100 sets the cache management memory 1
01 and “Modi” in the processors 110 and 120
Find the cache line that is "fied" (step H
1), making a read request to the system bus 2 (step H)
2).

【0111】このときプロセッサに接続されたアドレス
バスの一部(最上位2ビット分)3には“00”を、メ
インメモリ制御装置500に接続されたアドレスバスの
一部(最上位2ビット分)4には“11”を出力する。
これにより、プロセッサ110,120およびI/Oバ
スブリッジ600にはこのキャッシュフラッシュ用のRe
adトランザクションは観測されるが、メインメモリ制御
装置500には関係の無いアドレス空間に対するアクセ
スとして観測される。なお、リード要求の発行にあたっ
ては、“0バイト”すなわち“Modified”応答が無けれ
ばデータ転送を伴わない形でトランザクションが完了す
るようにする。
At this time, "00" is set to a part (the most significant two bits) 3 of the address bus connected to the processor, and a part (the most significant two bits) to the address bus connected to the main memory control device 500. 4) "11" is output.
As a result, the processors 110 and 120 and the I / O bus bridge 600 have the cache flush Re
Although the ad transaction is observed, it is observed as an access to an address space unrelated to the main memory control device 500. When issuing a read request, the transaction is completed without data transfer unless there is a "0 byte", ie, "Modified" response.

【0112】ここで、プロセッサ110もしくは120
が本当に“Modified”であるデータを持っていれば、該
プロセッサはReadトランザクションに対して“Modifie
d”応答をして“Modified”データをシステムバス2に
出力してくる。
Here, the processor 110 or 120
If the processor has data that is truly “Modified”, then the processor
In response to "d", "Modified" data is output to the system bus 2.

【0113】キャッシュフラッシュ装置100は、シス
テムバス2から“Modified”データを受け取ると(ステ
ップH3)、システムバス2上にそのキャッシュライン
のバーストライトトランザクションを発行する(ステッ
プH4)。
When receiving the "Modified" data from the system bus 2 (step H3), the cache flash device 100 issues a burst write transaction for the cache line on the system bus 2 (step H4).

【0114】このとき、キャッシュフラッシュ装置10
0は、アドレスバスの一部3,4を共に“00”にし、
プロセッサ110,120とI/Oブリッジ600およ
びメインメモリ制御装置500の両方に普通のアドレス
空間として見えるようにする。
At this time, the cache flash device 10
0 sets both parts 3 and 4 of the address bus to "00",
The processor 110, 120, the I / O bridge 600, and the main memory controller 500 make it appear as a normal address space.

【0115】なお、プロセッサ110,120は、該当
するキャッシュラインをすでに書き戻しているので、今
度は“Shared”応答を返し、プロセッサからのデータ転
送は発生しない。このとき、メインメモリ制御装置50
0はキャッシュフラッシュ装置100からのキャッシュ
フラッシュを単純なバーストライトとして扱えるので、
メインメモリ501へのアクセスは1回だけで終了す
る。
Since the corresponding cache line has already been written back, the processors 110 and 120 return a "Shared" response this time, and no data transfer from the processors occurs. At this time, the main memory control device 50
0 indicates that the cache flush from the cache flush device 100 can be handled as a simple burst write.
Access to the main memory 501 ends only once.

【0116】図18は、この第2実施形態においてキャ
ッシュフラッシュが単独で実行される場合の動作を示す
タイミングチャートである。ここでは、メインメモリ5
01にシンクロナスDRAMを使用している。
FIG. 18 is a timing chart showing the operation in the case where the cache flush is executed independently in the second embodiment. Here, the main memory 5
01 uses a synchronous DRAM.

【0117】以下、図18を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。
The various signals will be described below with reference to FIG. The horizontal axis in the figure indicates the number of bus cycles.

【0118】システムバスのAddress[33:5] はシステム
バストランザクションのアドレスであり、キャッシュフ
ラッシュ装置100が出力する。システムバスのAddres
s[35:34] to Processor はシステムバストランザクショ
ンのアドレスであり、キャッシュフラッシュ装置100
とプロセッサ110,120との間で使用される。シス
テムバスのAddress[35:34] to Memoryはシステムバスト
ランザクションのアドレスであり、キャッシュフラッシ
ュ装置100とメモリ制御装置500との間で使用され
る。システムバスのSnoop は、システムトランザクショ
ンに対するスヌープ応答であり、プロセッサ110,1
20のいずれかが出力する。この図の例では、1個目の
Readトランザクションに対して“Modified”応答を、2
個目のWrite トランザクションに対して“Shared”応答
をしている。システムバスのDataは、システムトランザ
クションに対するデータであり、この図の1個目のトラ
ンザクションであるリードの場合はプロセッサ110,
120のいずれかが出力する。なお、Readトランザクシ
ョンに対するスヌープ応答が“Modified”以外の場合、
通常はメインメモリ制御装置500がデータを出力す
る。この図の2個目のトランザクションであるライトに
対しては、キャッシュフラッシュ装置100がデータを
出力する。
Address [33: 5] of the system bus is the address of the system bus transaction, and is output from the cache flash device 100. System bus Addres
s [35:34] to Processor is the address of the system bus transaction, and the cache flash device 100
And the processors 110 and 120. Address [35:34] to Memory of the system bus is the address of the system bus transaction, and is used between the cache flash device 100 and the memory control device 500. Snoop of the system bus is a snoop response to the system transaction, and the processors 110, 1
20 outputs. In the example of this figure, the first
"Modified" response to Read transaction
A “Shared” response has been sent to the Write transaction. Data of the system bus is data for a system transaction. In the case of a read which is the first transaction in FIG.
120 outputs. If the snoop response to the Read transaction is other than “Modified”,
Normally, the main memory control device 500 outputs data. The cache flush device 100 outputs data for the write which is the second transaction in FIG.

【0119】メインメモリのAddress は、メインメモリ
制御装置500が出力するメインメモリ501のアドレ
スである。システムバスのRASは、メインメモリ制御
装置500が出力するメインメモリ501のRAS信号
である。メインメモリのCASは、メインメモリ制御装
置500が出力するメインメモリ501のCAS信号で
ある。メインメモリのWEは、メインメモリ制御装置5
00が出力するメインメモリ501のWE信号である。
メインメモリのDataは、メインメモリ制御装置500と
メインメモリ501の間のデータ信号である。CASが
“L”のときにWEが“L”であればメインメモリ制御
装置500がライトデータを出力し、CASが“L”の
ときにWEが“H”であればメインメモリ501がリー
ドデータを出力する。本図では、メインメモリ制御装置
500にはWrite トランザクションしか自装置のアドレ
スとして見えていないので、ライト動作のみを行う。
Address of the main memory is an address of the main memory 501 output from the main memory control device 500. RAS of the system bus is a RAS signal of the main memory 501 output from the main memory control device 500. The CAS of the main memory is a CAS signal of the main memory 501 output from the main memory control device 500. The WE of the main memory is the main memory controller 5
00 is an output WE signal of the main memory 501.
Data of the main memory is a data signal between the main memory control device 500 and the main memory 501. If WE is “L” when CAS is “L”, main memory controller 500 outputs write data. If WE is “H” when CAS is “L”, main memory 501 outputs read data. Is output. In this figure, only the write transaction is seen by the main memory control device 500 as its own address, so only the write operation is performed.

【0120】図19は、この第2実施形態においてキャ
ッシュフラッシュが3連続で実行される場合の動作を示
すタイミングチャートである。ここでは、メインメモリ
501にシンクロナスDRAMを使用している。
FIG. 19 is a timing chart showing the operation in the case where cache flush is performed three times in a row in the second embodiment. Here, a synchronous DRAM is used for the main memory 501.

【0121】以下、図19を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
Hereinafter, various signals will be described with reference to FIG. The horizontal axis in the figure indicates the number of bus cycles. Further, ==,-, ++ in the figure correspond to the first, second, and third bus transactions, respectively.

【0122】システムバスのAddress[33:5] はシステム
バストランザクションのアドレスであり、キャッシュフ
ラッシュ装置100が出力する。システムバスのAddres
s[35:34] to Processor はシステムバストランザクショ
ンのアドレスであり、キャッシュフラッシュ装置100
とプロセッサ110,120に接続されている。システ
ムバスのAddress[35:34] to Memoryはシステムバストラ
ンザクションのアドレスであり、キャッシュフラッシュ
装置100とメモリ制御装置500に接続されている。
システムバスのSnoop は、システムトランザクションに
対するスヌープ応答であり、プロセッサ110,120
のいずれかが出力する。この図の例では、1〜3個目の
Readトランザクションに対して“Modified”応答を、4
〜6個目のWrite トランザクションに対して“Shared”
応答をしている。システムバスのDataは、システムトラ
ンザクションに対するデータであり、この図の1〜3個
目のトランザクションであるリードの場合プロセッサ1
10,120のいずれかが出力する。なお、Readトラン
ザクションに対するスヌープ応答が“Modified”以外の
場合、通常はメインメモリ制御装置500がデータを出
力する。この図の4〜6個目のトランザクションである
ライトに対してはキャッシュフラッシュ装置100がデ
ータを出力する。
Address [33: 5] of the system bus is the address of the system bus transaction, and is output from the cache flash device 100. System bus Addres
s [35:34] to Processor is the address of the system bus transaction, and the cache flash device 100
And the processors 110 and 120. Address [35:34] to Memory of the system bus is the address of the system bus transaction, and is connected to the cache flash device 100 and the memory control device 500.
Snoop of the system bus is a snoop response to the system transaction, and the processors 110 and 120
Either output. In the example of FIG.
4 “Modified” response to Read transaction
"Shared" for the 6th Write transaction
Has responded. Data of the system bus is data for a system transaction, and in the case of a read which is the first to third transactions in FIG.
Either 10, 120 outputs. When the snoop response to the Read transaction is other than “Modified”, the main memory control device 500 normally outputs data. The cache flush device 100 outputs data for the write which is the fourth to sixth transactions in FIG.

【0123】メインメモリのAddress は、メインメモリ
制御装置500が出力するメインメモリ501のアドレ
スである。メインメモリのRASは、メインメモリ制御
装置500が出力するメインメモリ501のRAS信号
である。メインメモリのCASは、メインメモリ制御装
置500が出力するメインメモリ501のCAS信号で
ある。メインメモリのWEは、メインメモリ制御装置5
00が出力するメインメモリ501のWE信号である。
メインメモリのDataは、メインメモリ制御装置500と
メインメモリ501の間のデータ信号である。CASが
“L”のときにWEが“L”であればメインメモリ制御
装置500がライトデータを出力し、CASが“L”の
ときにWEが“H”であればメインメモリ501がリー
ドデータを出力する。本図では、メインメモリ制御装置
500にはWrite トランザクションしか自装置のアドレ
スとして見えていないのでライト動作のみを行う。
The address of the main memory is the address of the main memory 501 output from the main memory control device 500. The RAS of the main memory is the RAS signal of the main memory 501 output from the main memory control device 500. The CAS of the main memory is a CAS signal of the main memory 501 output from the main memory control device 500. The WE of the main memory is the main memory controller 5
00 is an output WE signal of the main memory 501.
Data of the main memory is a data signal between the main memory control device 500 and the main memory 501. If WE is “L” when CAS is “L”, main memory controller 500 outputs write data. If WE is “H” when CAS is “L”, main memory 501 outputs read data. Is output. In this figure, only the write transaction is seen by the main memory control device 500 as its own address, so only the write operation is performed.

【0124】本例とキャッシュフラッシュ時のスループ
ット、キャッシュフラッシュ終了までの時間の比較結果
を図17に示す。キャッシュ全領域をフラッシュするの
に要する時間はほぼスループットに比例するので、本例
では従来例の約9/13の時間でキャッシュフラッシュ
が終了するので、約30%の高速化を実現する。
FIG. 17 shows a comparison result between the present example, the throughput at the time of cache flush, and the time until the end of cache flush. Since the time required to flush the entire cache area is almost proportional to the throughput, in this example, the cache flush is completed in about 9/13 of the conventional example, so that about 30% speedup is realized.

【0125】なお、キャッシュ全領域のキャッシュフラ
ッシュ時間はほぼキャッシュフラッシュ時のスループッ
トに比例する。よって、従来方法に比べ、第1実施形態
の方法で約225%、第2実施形態の方法で約44%の
性能向上を実現できる。
Note that the cache flush time of the entire cache area is almost proportional to the throughput at the time of cache flush. Therefore, compared to the conventional method, the performance of the first embodiment can be improved by about 225%, and the performance of the second embodiment can be improved by about 44%.

【0126】[第3実施形態]次に、第3実施形態を説
明する。図20は、本発明の第3実施形態に係るキャッ
シュフラッシュ装置を含むコンピュータシステムの全体
構成を示すブロック図である。
[Third Embodiment] Next, a third embodiment will be described. FIG. 20 is a block diagram showing the overall configuration of a computer system including a cache flush device according to the third embodiment of the present invention.

【0127】この第3実施形態では、プロセッサ11
0,120がMESIプロトコルによる2階層のキャッ
シュメモリを持つ。
In the third embodiment, the processor 11
0 and 120 have a two-level cache memory according to the MESI protocol.

【0128】図20において、111,121は第2階
層キャッシュ(以下L2キャッシュと略記する)であ
り、キャッシュフラッシュ装置100に接続されたメモ
リ101’は第3階層キャッシュ(以下L3キャッシュ
と略記する)である。すなわち、第1実施形態(図1)
ではアドレス情報を記憶する管理用メモリ101を使用
したのに対し、この第3実施形態ではその代わりにアド
レス情報のみならず実際のデータをも記憶するキャッシ
ュメモリ(L3キャッシュ)101’を使用している。
すなわち、キャッシュフラッシュ装置100にデータメ
モリを備えることにより外部キャッシュとしての機能を
持たせるようにしている。
In FIG. 20, 111 and 121 are second-level caches (hereinafter abbreviated as L2 caches), and the memory 101 'connected to the cache flash device 100 is a third-level cache (hereinafter abbreviated as L3 caches). It is. That is, the first embodiment (FIG. 1)
Uses a management memory 101 for storing address information, whereas the third embodiment uses a cache memory (L3 cache) 101 'for storing not only address information but also actual data instead. I have.
That is, the cache flash device 100 is provided with a data memory so as to have a function as an external cache.

【0129】L2キャッシュ111,121に“Exclus
ive ”状態が発生したときには、キャッシュデータの更
新が外部から観測できないので、キャッシュフラッシュ
装置100は第1実施形態と同様にプロセッサ110,
120からのReadトランザクションに対しては“Share
d”応答を返して“Exclusive ”状態を許さないことに
する。
"Exclus" is stored in the L2 caches 111 and 121.
When the "ive" state occurs, the update of the cache data cannot be observed from the outside, so that the cache flash device 100
"Share" for the Read transaction from
Return a "d" response and disallow the "Exclusive" state.

【0130】ここで、L3キャッシュ101’もMES
I方法で管理するが、L3キャッシュ101’の“Modi
fied”状態にはL3キャッシュ101’に記録されたデ
ータが有効(valid )の場合と、L3キャッシュ10
1’のデータは無効で有効データはプロセッサのL2キ
ャッシュ111,121にある場合、の2種類がある。
Here, the L3 cache 101 ′ is also a MES
In the L3 cache 101 ′, “Modi
In the “fied” state, when the data recorded in the L3 cache 101 ′ is valid,
1 'is invalid and valid data is in the L2 caches 111 and 121 of the processor.

【0131】以下では、L3キャッシュ101’が“Mo
dified”でデータが有効な場合(即ち、キャッシュフラ
ッシュ装置100事体が最新のデータを持っている状
態)を“Owned (O)”状態と呼び、L3キャッシュ1
01’が“Modified”でデータが有効でない場合(即
ち、L2キャッシュ111,121に最新のデータがあ
る状態)を“Dirty (D)”状態と呼ぶこととし、この
キャッシュ管理方法を“DOSI”プロトコルと呼ぶこ
とにする。
In the following, the L3 cache 101 'is set to "Mo
In the case where the data is valid in "dified" (that is, the state where the cache flash device 100 has the latest data), it is called "Owned (O)" state, and the L3 cache 1
01 ′ is “Modified” and the data is not valid (that is, the state where the latest data exists in the L2 caches 111 and 121) is called a “Dirty (D)” state, and this cache management method is referred to as a “DOSI” protocol. I will call it.

【0132】L2キャッシュ111,121が“Modifi
ed(M)”,“Shared(S)”,“Invalid (I)”の
各状態のときL3キャッシュ101’は図21に示す状
態をとる。ここで、L2キャッシュ111,121のい
ずれかが“Invalid ”状態のときL3キャッシュ10
1’が“Dirty ”という状態をとっていれば、もう一方
のL2キャッシュは“Modified”状態になっている。
If the L2 caches 111 and 121 are "Modifi
In each of the states of "ed (M)", "Shared (S)", and "Invalid (I)", the L3 cache 101 'assumes the state shown in Fig. 21. Here, one of the L2 caches 111 and 121 is " Invalid ”status when L3 cache 10
If 1 'is in the "Dirty" state, the other L2 cache is in the "Modified" state.

【0133】また、このキャッシュシステムはキャッシ
ュフラッシュを目的としたものなので、L2キャッシュ
111,121がL3キャッシュ101’のサブセット
である必要はない。すなわち、L2キャッシュ111,
121が“Shared”の時にL3キャッシュ101’が
“Invalid ”であることも許される。
Since this cache system is intended for cache flush, it is not necessary that the L2 caches 111 and 121 are a subset of the L3 cache 101 '. That is, the L2 cache 111,
It is also permitted that the L3 cache 101 ′ is “Invalid” when 121 is “Shared”.

【0134】次に、この第3実施形態の動作について説
明する。
Next, the operation of the third embodiment will be described.

【0135】(通常動作)はじめに通常動作について説
明する。まず、プロセッサバス10上に各種のトランザ
クションが発行された場合のキャッシュフラッシュ装置
100が行う処理を、図22〜図25を参照して説明す
る。
(Normal Operation) First, the normal operation will be described. First, the processing performed by the cache flush device 100 when various transactions are issued on the processor bus 10 will be described with reference to FIGS.

【0136】プロセッサバス10上にReadトランザクシ
ョンが発行された場合には(ステップJ1)、キャッシ
ュフラッシュ装置100は“Shared”応答を返し、プロ
セッサキャッシュに“Exclusive ”状態が発生するのを
防止する(ステップJ2)。
When a Read transaction is issued on the processor bus 10 (Step J1), the cache flush unit 100 returns a "Shared" response to prevent the "Exclusive" state from occurring in the processor cache (Step J1). J2).

【0137】L3キャッシュ101’の該当するインデ
ックスに何も登録されていなければ、新しいトランザク
ションを“Shared”として登録し(ステップJ3,J
4)、システムバス1上にReadトランザクションを発行
してメインメモリ501からデータを読み出す(ステッ
プJ5)。“Shared”が登録されていれば、新しいトラ
ンザクションを“Shared”として登録し(ステップJ
3,J6)、アドレスマッチしていれば、古いデータを
捨て(ステップJ7,J8)、システムバス1上にRead
トランザクションを発行してメインメモリ501からデ
ータを読み出す(ステップJ5)。
If nothing is registered in the corresponding index of the L3 cache 101 ′, a new transaction is registered as “Shared” (steps J3 and J3).
4) Issue a Read transaction on the system bus 1 to read data from the main memory 501 (step J5). If “Shared” is registered, register a new transaction as “Shared” (step J
3, J6), if the address matches, discard the old data (steps J7, J8) and read on the system bus 1.
A transaction is issued to read data from the main memory 501 (step J5).

【0138】ステップJ7でアドレスマッチしていなけ
れば、L3キャッシュ101’内のデータをプロセッサ
バス10に出力する(ステップJ9)。この場合、シス
テムバス1上にはReadトランザクションを発行しない
(ステップJ10)。
If the address does not match in step J7, the data in the L3 cache 101 'is output to the processor bus 10 (step J9). In this case, no Read transaction is issued on the system bus 1 (step J10).

【0139】これ以外の場合、すなわちそのキャッシュ
ラインをL3キャッシュ101’が持っていない場合、
もしくはシステムバス1上にすぐにReadトランザクショ
ンを発行できる場合には、システムバス1上にReadトラ
ンザクションを発行してメインメモリ501からデータ
を読み出す。なお、L3キャッシュ101’がそのキャ
ッシュラインを既に持っていれば、L3キャッシュ10
1’のデータをリードデータとしてプロセッサバス10
に出力し、メインメモリ501から読みだしたデータを
捨てる。
In other cases, that is, when the L3 cache 101 ′ does not have the cache line,
Alternatively, if a Read transaction can be issued immediately on the system bus 1, a Read transaction is issued on the system bus 1 to read data from the main memory 501. If the L3 cache 101 'already has the cache line, the L3 cache 10'
1 ′ as read data,
And the data read from the main memory 501 is discarded.

【0140】一方、L3キャッシュ101’の該当する
インデックスに“Dirty ”もしくは“Owned ”として登
録されていれば、新しいトランザクションの内容をL3
キャッシュ101’には登録しない。リードトランザク
ションのアドレスがL3キャッシュ101’のアドレス
と一致していなければ、システムバス1上にはReadトラ
ンザクションを発行する。なお、メインメモリ501か
らリードデータが返るとプロセッサバス1にデータを転
送することになる。リードトランザクションのアドレス
がL3キャッシュ101’のアドレスと一致していれ
ば、L3キャッシュ101’のデータをプロセッサバス
10に返す。また、L3キャッシュ101’は“Owned
”にする。なお、L3キャッシュ101’が“Dirty
”の場合、プロセッサバス1上でImplicit Write Back
が発生するので、L3キャッシュ101’はデータを
出力しない。
On the other hand, if “Dirty” or “Owned” is registered in the corresponding index of the L3 cache 101 ′, the contents of the new transaction are
It is not registered in the cache 101 '. If the address of the read transaction does not match the address of the L3 cache 101 ', a read transaction is issued on the system bus 1. When the read data is returned from the main memory 501, the data is transferred to the processor bus 1. If the address of the read transaction matches the address of the L3 cache 101 ', the data of the L3 cache 101' is returned to the processor bus 10. Also, the L3 cache 101 ′ is “Owned
The L3 cache 101 ′ is “Dirty”.
", Implicit Write Back on processor bus 1
Occurs, the L3 cache 101 'does not output data.

【0141】すなわち、L3キャッシュ101’の該当
するインデックスに“Dirty ”として登録されている場
合、アドレスマッチしているかどうかを調べる(ステッ
プJ3,J11)。アドレスマッチしていれば、L3キ
ャッシュ101’を“Owned”に変更し、Implicit Writ
e Back データをL3キャッシュ101’に書き込む
(ステップJ11,J12)。この場合、システムバス
1上にはReadトランザクションを発行しない(ステップ
J10)。ステップJ11でアドレスマッチしていなけ
れば、システムバス1上にReadトランザクションを発行
してメインメモリ501からデータを読み出す(ステッ
プJ14)。
That is, if the address is registered as "Dirty" in the corresponding index of the L3 cache 101 ', it is checked whether or not the address matches (steps J3 and J11). If the address matches, the L3 cache 101 'is changed to "Owned" and the Implicit Writ
Write the e Back data to the L3 cache 101 '(steps J11 and J12). In this case, no Read transaction is issued on the system bus 1 (step J10). If the address does not match in step J11, a Read transaction is issued on the system bus 1 to read data from the main memory 501 (step J14).

【0142】L3キャッシュ101’の該当するインデ
ックスに“Owned ”として登録されている場合、アドレ
スマッチしているかどうかを調べる(ステップJ3,J
13)。アドレスマッチしていれば、L3キャッシュ1
01’内のデータをプロセッサバス10に出力する(ス
テップJ9)。この場合、システムバス1上にはReadト
ランザクションを発行しない(ステップJ10)。ステ
ップJ13でアドレスマッチしていなければ、システム
バス1上にReadトランザクションを発行してメインメモ
リ501からデータを読み出す(ステップJ14)。
If it is registered as "Owned" in the corresponding index of the L3 cache 101 ', it is checked whether or not the address matches (steps J3 and J3).
13). If the address matches, L3 cache 1
01 'is output to the processor bus 10 (step J9). In this case, no Read transaction is issued on the system bus 1 (step J10). If the address does not match in step J13, a Read transaction is issued on the system bus 1 to read data from the main memory 501 (step J14).

【0143】プロセッサバス10上にRead and Invalid
ate トランザクションが発行された場合には(ステップ
K1)、キャッシュフラッシュ装置100はL3キャッ
シュ101’中の該当するキャッシュラインを“Dirty
”として登録し(ステップK2)、システムバス1上
にRead and Invalidate トランザクションを発行する
(ステップK3)。このとき、L3キャッシュ101’
にすでに他のキャッシュラインが“Dirty ”もしくは
“Owned ”として登録されていたら、そのキャッシュラ
インをフラッシュする(ステップK4,K5)。このフ
ラッシュ動作は後述のキャッシュフラッシュ時の動作と
同じなのでここでは省略する。
Read and Invalid on the processor bus 10
When the ate transaction is issued (step K1), the cache flush device 100 sets the corresponding cache line in the L3 cache 101 'to "Dirty".
(Step K2), and issues a Read and Invalidate transaction on the system bus 1 (step K3). At this time, the L3 cache 101 '
If another cache line has already been registered as "Dirty" or "Owned", the cache line is flushed (steps K4 and K5). This flush operation is the same as the operation at the time of the cache flush described later, so that the description is omitted here.

【0144】なお、システムバス1からリードデータが
戻るとこのデータをプロセッサバス10に転送すること
なる。L3キャッシュ101’にはデータは登録しなく
てよい。また、プロセッサバス10上でのもともとのRe
ad and Invalidate トランザクションに対してもう一方
のプロセッサが“Modified”応答をすると、キャッシュ
フラッシュ装置100は、システムバス1から戻ってき
たデータを捨てる。
When the read data returns from the system bus 1, this data is transferred to the processor bus 10. Data need not be registered in the L3 cache 101 '. The original Re on the processor bus 10
When the other processor responds “Modified” to the ad and Invalidate transaction, the cache flush device 100 discards the data returned from the system bus 1.

【0145】プロセッサバス10上にInvalidateトラン
ザクションが発行された場合には(ステップL1)、キ
ャッシュフラッシュ装置100はL3キャッシュ10
1’中の該当するキャッシュラインを“Dirty ”として
登録し(ステップL2)、システムバス1上にInvalida
teトランザクションを発行する(ステップL3)。この
とき、L3キャッシュ101’に既に他のキャッシュラ
インが“Dirty ”もしくは“Owned ”として登録されて
いたら、そのキャッシュラインをフラッシュする(ステ
ップL4,L5)。このフラッシュ動作は後述のキャッ
シュフラッシュ時の動作と同じなのでここでは省略す
る。
When an Invalidate transaction is issued on the processor bus 10 (step L1), the cache flash device 100
The corresponding cache line in 1 'is registered as "Dirty" (step L2), and invalidated on the system bus 1.
A te transaction is issued (step L3). At this time, if another cache line has already been registered as "Dirty" or "Owned" in the L3 cache 101 ', that cache line is flushed (steps L4 and L5). This flush operation is the same as the operation at the time of the cache flush described later, so that the description is omitted here.

【0146】プロセッサバス10上にWrite トランザク
ションが発行された場合には(ステップM1)、キャッ
シュフラッシュ装置100はライトデータの転送終了す
るのを待ち(ステップM2)、L3キャッシュ101’
にデータを書き込み(ステップM3)、キャッシュ状態
を“Owned ”にする(ステップM4)。なお、システム
バス1上にはトランザクションを発行しない。
When a write transaction has been issued on the processor bus 10 (step M1), the cache flash device 100 waits for the end of transfer of write data (step M2), and the L3 cache 101 '.
Is written (step M3), and the cache state is set to "Owned" (step M4). No transaction is issued on the system bus 1.

【0147】次に、システムバス1上に各種のトランザ
クションが発行された場合のキャッシュフラッシュ装置
100が行う処理について説明する。
Next, the processing performed by the cache flash device 100 when various transactions are issued on the system bus 1 will be described.

【0148】システムバス1からのアクセスに対して
は、キャッシュフラッシュ装置100はL3キャッシュ
101’を検索して“Dirty ”もしくは“Owned ”の場
合に“Modified”応答をしてキャッシュ内容をシステム
バス1に出力する。
In response to an access from the system bus 1, the cache flush unit 100 searches the L3 cache 101 'and sends a "Modified" response in the case of "Dirty" or "Owned" to transfer the cache contents to the system bus 1. Output to

【0149】システムバス1上のトランザクションがRe
adの場合、L3キャッシュ101’が“Owned ”なら
ば、プロセッサバス10上にはトランザクションを発行
せずにシステムバス100にL3キャッシュ101’内
のデータを出力する。
When the transaction on the system bus 1 is Re
In the case of ad, if the L3 cache 101 ′ is “Owned”, the data in the L3 cache 101 ′ is output to the system bus 100 without issuing a transaction on the processor bus 10.

【0150】L3キャッシュ101’が“Dirty ”なら
ば、プロセッサバス10上にReadトランザクションを発
行し、プロセッサにデータを出力させる。なお、いずれ
の場合もL3キャッシュ101’のキャッシュステート
を“Shared”にする。
If the L3 cache 101 'is "Dirty", a Read transaction is issued on the processor bus 10 to cause the processor to output data. In any case, the cache state of the L3 cache 101 'is set to "Shared".

【0151】システムバス上のトランザクションがWrit
e の場合、L3キャッシュ101’が“Owned ”なら
ば、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、システムバス100にL3キャッシュ10
1’内のデータを出力する。
When a transaction on the system bus is Writ
In the case of e, if the L3 cache 101 ′ is “Owned”, an Invalidate transaction is issued on the processor bus 10 and the L3 cache 10
Output the data in 1 '.

【0152】L3キャッシュ101’が“Dirty ”なら
プロセッサバス10上にRead and Invalidate トランザ
クションを発行し、プロセッサにデータを出力させる。
なお、いずれの場合もL3キャッシュ101’のキャッ
シュステートを“Invalid ”にし、システムバス1には
“Modified”応答を返す。
If the L3 cache 101 'is "Dirty", a Read and Invalidate transaction is issued on the processor bus 10 to cause the processor to output data.
In any case, the cache state of the L3 cache 101 'is set to "Invalid" and a "Modified" response is returned to the system bus 1.

【0153】L3キャッシュ101’が“Shared”の場
合、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、L3キャッシュ101’の状態を“Invali
date”にし、システムバスには“Shared”応答を返す。
When the L3 cache 101 'is "Shared", an Invalidate transaction is issued on the processor bus 10 to change the state of the L3 cache 101' to "Invaliable".
date ”and return a“ Shared ”response to the system bus.

【0154】L3キャッシュ101’に該当するキャッ
シュラインが登録されていない場合にも本実施形態のプ
ロトコルではプロセッサが“Shared”でデータを持って
いる可能性があるので、プロセッサバス10上にInvali
dateトランザクションを発行し、システムバス1には
“Shared”応答を返す。
Even when the cache line corresponding to the L3 cache 101 ′ is not registered, the protocol of the present embodiment may cause the processor to have “Shared” data, so that the invalidate is stored on the processor bus 10.
A date transaction is issued, and a "Shared" response is returned to the system bus 1.

【0155】システムバス上のトランザクションがInva
lidate又はRead and Invalidate の場合、L3キャッシ
ュ101’が“Owned ”ならば、プロセッサバス10上
にInvalidateトランザクションを発行し、システムバス
100にL3キャッシュ101’内のデータを出力す
る。
When a transaction on the system bus is Inva
In the case of lidate or Read and Invalidate, if the L3 cache 101 ′ is “Owned”, an invalidate transaction is issued on the processor bus 10 and the data in the L3 cache 101 ′ is output to the system bus 100.

【0156】L3キャッシュ101’が“Dirty ”なら
ば、プロセッサバス10上にRead and Invalidate トラ
ンザクションを発行し、プロセッサにデータを出力させ
る。なお、いずれの場合もL3キャッシュ101’のキ
ャッシュステートを“Invalid ”にし、システムバス1
には“Modified”応答を返す。
If the L3 cache 101 'is "Dirty", a Read and Invalidate transaction is issued on the processor bus 10, and the processor outputs data. In any case, the cache state of the L3 cache 101 'is set to "Invalid" and the system bus 1
Returns a “Modified” response.

【0157】L3キャッシュ101’が“Shared”の場
合、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、L3キャッシュ101の状態を“Invalida
te”にし、システムバスには“Shared”応答を返す。
When the L3 cache 101 'is "Shared", an Invalidate transaction is issued on the processor bus 10, and the state of the L3 cache 101 is changed to "Invalidate".
te ”and return a“ Shared ”response to the system bus.

【0158】L3キャッシュ101’に該当するキャッ
シュラインが登録されていない場合にも本実施形態のプ
ロトコルではプロセッサが“Shared”でデータを持って
いる可能性があるので、プロセッサバス10上にInvali
dateトランザクションを発行し、システムバス1には
“Shared”応答を返す。
Even when the cache line corresponding to the L3 cache 101 ′ is not registered, the protocol of the present embodiment may cause the processor to have “Shared” data, so the Invalid
A date transaction is issued, and a "Shared" response is returned to the system bus 1.

【0159】以上見たように、キャッシュフラッシュ装
置100ではL3キャッシュ101’内でのキャッシュ
置換が発生しない限り、システムバス上にはWrite トラ
ンザクションを発行しない。
As described above, in the cache flash device 100, unless a cache replacement in the L3 cache 101 'occurs, no write transaction is issued on the system bus.

【0160】(キャッシュフラッシュ時の動作)次に、
キャッシュフラッシュ時の動作を、図26を参照して説
明する。
(Operation at the time of cache flush)
The operation at the time of cache flush will be described with reference to FIG.

【0161】キャッシュフラッシュ時には、キャッシュ
フラッシュ装置100はL3キャッシュ101’を検索
し、“Dirty ”状態と“Owned ”状態のものを見つけだ
す(ステップN1)。“Dirty ”状態のものは、L2キ
ャッシュ111,121に最新のデータがあるので、プ
ロセッサバス10上にReadトランザクションを発行し、
プロセッサに最新データを出力させる(ステップN2,
N3)。
At the time of cache flush, the cache flush device 100 searches the L3 cache 101 'to find those in the "Dirty" state and the "Owned" state (step N1). In the "Dirty" state, since the latest data is stored in the L2 caches 111 and 121, a Read transaction is issued on the processor bus 10, and
The processor outputs the latest data (step N2,
N3).

【0162】キャッシュフラッシュ装置100は、デー
タを受け取ると(ステップN4)、システムバス1上に
Write トランザクションを発行し、そのデータをメイン
メモリ501に書き戻す(ステップN5)。
When the cache flash device 100 receives the data (step N4), the data is placed on the system bus 1.
A write transaction is issued, and the data is written back to the main memory 501 (step N5).

【0163】一方、L3キャッシュ101’上で“Owne
d ”状態のものはキャッシュフラッシュ装置100自体
が最新データを持っているので、直ちにシステムバス1
上にWrite トランザクションを発行し、そのデータをメ
インメモリ501に書き戻す(ステップN2,N6)。
On the other hand, on the L3 cache 101 ', "Owne
In the "d" state, since the cache flash device 100 itself has the latest data, the system bus 1
A write transaction is issued, and the data is written back to the main memory 501 (steps N2 and N6).

【0164】キャッシュフラッシュが完了するとL3キ
ャッシュ101’に登録されたキャッシュ状態は“Shar
ed”または“Invalid ”になる(ステップN7)。
When the cache flush is completed, the cache state registered in the L3 cache 101 ′ becomes “Shar
"ed" or "Invalid" (step N7).

【0165】以上のように、キャッシュフラッシュ時に
はメインメモリ501は単純なライト動作になるので、
高速にキャッシュフラッシュを実行できる。
As described above, at the time of cache flush, the main memory 501 performs a simple write operation.
You can execute cache flush at high speed.

【0166】なお、レジスタ設定により“Owned ”状態
を許さないように動的に変更できるようにしてL3キャ
ッシュ101’まで含めたキャッシュのダーティー率を
低くするインプリメントを採れば、キャッシュフラッシ
ュ時間をさらに短縮することができる。
It is to be noted that the cache flush time can be further reduced by adopting an implementation in which the "Owned" state can be dynamically changed so as not to be permitted by setting the register and the dirty ratio of the cache including the L3 cache 101 'is reduced. can do.

【0167】図27はプロセッサ110および120か
ら出力されたプロセッサバス10上のトランザクション
によるL3キャッシュ101の状態遷移を示したもので
ある。
FIG. 27 shows a state transition of the L3 cache 101 due to a transaction on the processor bus 10 output from the processors 110 and 120.

【0168】図中、Dは“Dirty ”状態を示し、プロセ
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
In the figure, D indicates a "Dirty" state, indicating that the processor 110 or 120 has Modified data. O indicates the “Owned” state, indicating that the L3 cache 101 has Modified data. S
Indicates a "Shared" state, indicating that the L3 cache 101 has the same data as the main memory 501.
I indicates an "Invalid" state, indicating that the contents of the L3 cache 101 are not valid.

【0169】R&Iは“Read and Invalidate ”トラン
ザクションを示し、メインメモリ501からデータを読
み込むと同時に他のバスエージェントが同じキャッシュ
ラインを持っていればそのラインを無効化するトランザ
クションである。Iは“Invalidate”トランザクション
を示し、他のバスエージェントが同じキャッシュライン
を持っていればそのラインを無効化するトランザクショ
ンである。
R & I indicates a "Read and Invalidate" transaction, which is a transaction for reading data from the main memory 501 and invalidating the same cache line if another bus agent has the same cache line. I indicates an "Invalidate" transaction, and if another bus agent has the same cache line, this transaction invalidates that line.

【0170】Write は“Burst Write ”トランザクショ
ンを示し、プロセッサ110,120がL2キャッシュ
111,121に持っていた“Modified”ラインを書き
戻すトランザクションである。Readは“Burst Read”ト
ランザクションであり、プロセッサ110,120がL
2キャッシュ111,121にデータを読み出すトラン
ザクションである。
Write indicates a "Burst Write" transaction, which is a transaction for writing back the "Modified" line held by the processors 110 and 120 in the L2 caches 111 and 121. Read is a “Burst Read” transaction, and the processors 110 and 120
2 is a transaction for reading data into the two caches 111 and 121.

【0171】図28はシステムバス1上のトランザクシ
ョンによるL3キャッシュ101の状態遷移を示したも
のである。
FIG. 28 shows a state transition of the L3 cache 101 due to a transaction on the system bus 1.

【0172】図中、Dは“Dirty ”状態を示し、プロセ
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
In the figure, D indicates a "Dirty" state, indicating that the processor 110 or 120 has Modified data. O indicates the “Owned” state, indicating that the L3 cache 101 has Modified data. S
Indicates a "Shared" state, indicating that the L3 cache 101 has the same data as the main memory 501.
I indicates an "Invalid" state, indicating that the contents of the L3 cache 101 are not valid.

【0173】R&Iは“Read and Invalidate ”トラン
ザクションを示し、メインメモリ501からデータを読
み込むと同時に他のバスエージェントが同じキャッシュ
ラインを持っていればそのラインを無効化するトランザ
クションである。Iは“Invalidate”トランザクション
を示し、他のバスエージェントが同じキャッシュライン
を持っていればそのラインを無効化するトランザクショ
ンである。
R & I indicates a "Read and Invalidate" transaction, which is a transaction for reading data from the main memory 501 and invalidating the same cache line if another bus agent has the same cache line. I indicates an "Invalidate" transaction, and if another bus agent has the same cache line, this transaction invalidates that line.

【0174】Write は“Burst Write ”トランザクショ
ンを示し、システムバス1からメインメモリ501にデ
ータを書き込むトランザクションである。Readは“Burs
t Read”トランザクションであり、メインメモリ501
からシステムバス1にデータを読み出すトランザクショ
ンである。
Write represents a "Burst Write" transaction, which is a transaction for writing data from the system bus 1 to the main memory 501. Read is “Burs
t Read ”transaction and the main memory 501
This is a transaction for reading data from the system bus 1 to the system bus 1.

【0175】図29はキャッシュフラッシュ装置100
が出力するトランザクションによりプロセッサ110お
よび120、もしくはL3キャッシュ101にある“Mo
dified”データをメインメモリ501に書き戻す時のL
3キャッシュ101の状態遷移を示したものである。
FIG. 29 shows the cache flash device 100.
"Mo" stored in the processors 110 and 120 or the L3 cache 101 depending on the transaction output by
L when writing "dified" data back to the main memory 501
3 illustrates a state transition of the three caches 101.

【0176】図中、Dは“Dirty ”状態を示し、プロセ
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
In the figure, D indicates a "Dirty" state, indicating that the processor 110 or 120 has Modified data. O indicates the “Owned” state, indicating that the L3 cache 101 has Modified data. S
Indicates a "Shared" state, indicating that the L3 cache 101 has the same data as the main memory 501.
I indicates an "Invalid" state, indicating that the contents of the L3 cache 101 are not valid.

【0177】Write Backは、プロセッサバス10上では
“Burst Read”トランザクション、システムバス1上で
は“Burst Write ”トランザクションを示し、プロセッ
サ110,120が持っている“Modified”データをプ
ロセッサバス10に出力させ、キャッシュフラッシュ装
置100がシステムバス10上にデータを出力するトラ
ンザクションを示す。
Write Back indicates a “Burst Read” transaction on the processor bus 10 and a “Burst Write” transaction on the system bus 1, and outputs “Modified” data held by the processors 110 and 120 to the processor bus 10. 4 shows a transaction in which the cache flash device 100 outputs data on the system bus 10.

【0178】本発明は、フラッシュ装置の実装位置を変
えることで種々のコンピュータシステムに適用できる。
例えば、本発明をI/Oバスとディスクキャッシュとか
らなるシステムに適用することも可能である。
The present invention can be applied to various computer systems by changing the mounting position of the flash device.
For example, the present invention can be applied to a system including an I / O bus and a disk cache.

【0179】本発明は上述した各実施形態に限定される
ものではなく、その要旨の範囲で種々変形して実施する
ことが可能である。例えば、第3実施形態で採用したL
3キャッシュを第2実施形態のシステムに適用すること
も可能である。
The present invention is not limited to the above-described embodiments, but can be implemented with various modifications within the scope of the invention. For example, L used in the third embodiment
It is also possible to apply three caches to the system of the second embodiment.

【0180】[0180]

【発明の効果】以上詳述したように本発明によれば、モ
ディファイドデータについてのリード要求を前記キャッ
シュフラッシュ装置からプロセッサバス(プロセッサ)
だけに対して送り、このリード要求に応じて送られてき
たプロセッサからのモディファイドデータをキャッシュ
フラッシュ装置により受け取り、モディファイドデータ
の受け取りが完了したキャッシュラインだけについてメ
インメモリに対するバーストライトを行うようにしてい
る。これにより、キャッシュフラッシュ時に前記メイン
メモリがリードモディファイライト動作せずに単純にバ
ーストライト動作するようになり、キャッシュフラッシ
ュ時間を短縮することができる。特に、本発明をチェッ
クポイントロールバック方式を採用したシステムに適用
した場合には、上記の効果が顕著にあらわれる。
As described above in detail, according to the present invention, a read request for modified data is sent from the cache flash device to a processor bus (processor).
, And the modified data sent from the processor in response to the read request is received by the cache flash device, and the burst write to the main memory is performed only for the cache line for which the reception of the modified data has been completed. . This allows the main memory to simply perform a burst write operation without performing a read-modify-write operation at the time of cache flush, thereby shortening the cache flush time. In particular, when the present invention is applied to a system employing the checkpoint rollback method, the above-described effects are remarkably exhibited.

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

【図1】本発明の第1実施形態に係るキャッシュフラッ
シュ装置を含むコンピュータシステムの全体構成を示す
ブロック図。
FIG. 1 is an exemplary block diagram showing the overall configuration of a computer system including a cache flush device according to a first embodiment of the present invention.

【図2】本発明の第1実施形態における通常動作の一部
を説明するためのフローチャート。
FIG. 2 is a flowchart for explaining a part of a normal operation in the first embodiment of the present invention.

【図3】本発明の第1実施形態における通常動作の一部
を説明するためのフローチャート。
FIG. 3 is a flowchart illustrating a part of a normal operation according to the first embodiment of the present invention.

【図4】同実施形態における通常動作の一部を説明する
ためのフローチャート。
FIG. 4 is a flowchart for explaining a part of a normal operation in the embodiment.

【図5】同実施形態においてプロセッサバス上に発行さ
れたトランザクションの種類に応じてキャッシュ管理用
メモリの状態が変更される様子をまとめた図。
FIG. 5 is an exemplary view summarizing how the state of the cache management memory is changed according to the type of transaction issued on the processor bus in the embodiment;

【図6】同実施形態におけるキャッシュフラッシュ時の
動作を説明するためのフローチャート。
FIG. 6 is an exemplary flowchart for explaining the operation at the time of cache flush in the embodiment;

【図7】同実施形態においてキャッシュフラッシュが単
独で実行される場合の動作を示すタイミングチャート。
FIG. 7 is a timing chart showing an operation in the case where cache flush is executed alone in the embodiment.

【図8】同実施形態においてキャッシュフラッシュが3
連続で実行される場合の動作を示すタイミングチャー
ト。
FIG. 8 shows that cache flush is 3 in the embodiment.
6 is a timing chart showing the operation when the operation is performed continuously.

【図9】本発明の第2実施形態に係るキャッシュフラッ
シュ装置を含むコンピュータシステムの全体構成を示す
ブロック図。
FIG. 9 is a block diagram showing an overall configuration of a computer system including a cache flush device according to a second embodiment of the present invention.

【図10】同実施形態における通常動作時のアドレス出
力を模式的に示す図。
FIG. 10 is a diagram schematically showing an address output during a normal operation in the embodiment.

【図11】同実施形態におけるキャッシュフラッシュ前
半のアドレス出力を模式的に示す図。
FIG. 11 is a view schematically showing an address output in the first half of the cache flush in the embodiment.

【図12】同実施形態におけるキャッシュフラッシュ後
半のアドレス出力を模式的に示す図。
FIG. 12 is a diagram schematically showing an address output in the second half of the cache flush in the embodiment.

【図13】同実施形態における通常動作の一部を説明す
るためのフローチャート。
FIG. 13 is a flowchart for explaining a part of the normal operation in the embodiment.

【図14】同実施形態における通常動作の一部を説明す
るためのフローチャート。
FIG. 14 is a flowchart for explaining a part of the normal operation in the embodiment.

【図15】同実施形態における通常動作の一部を説明す
るためのフローチャート。
FIG. 15 is a flowchart for explaining a part of the normal operation in the embodiment.

【図16】同実施形態におけるキャッシュフラッシュ時
の動作を説明するためのフローチャート。
FIG. 16 is a flowchart for explaining an operation at the time of cache flush in the embodiment.

【図17】第1及び第2実施形態と従来技術との間での
キャッシュフラッシュ時のスループット、キャッシュフ
ラッシュ終了までの時間の比較結果を示す図。
FIG. 17 is a diagram showing a comparison result of the throughput at the time of cache flush and the time until the end of cache flush between the first and second embodiments and the conventional technology.

【図18】第2実施形態においてキャッシュフラッシュ
が単独で実行される場合の動作を示すタイミングチャー
ト。
FIG. 18 is a timing chart showing an operation when a cache flush is executed independently in the second embodiment.

【図19】同実施形態においてキャッシュフラッシュが
3連続で実行される場合の動作を示すタイミングチャー
ト。
FIG. 19 is a timing chart showing an operation in the case where cache flush is executed three consecutive times in the embodiment.

【図20】本発明の第3実施形態に係るキャッシュフラ
ッシュ装置を含むコンピュータシステムの全体構成を示
すブロック図。
FIG. 20 is a block diagram showing an overall configuration of a computer system including a cache flush device according to a third embodiment of the present invention.

【図21】同実施形態におけるプロセッサL2のキャッ
シュ状態とプロセッサL3のキャッシュ状態との関係を
示す図。
FIG. 21 is an exemplary view showing the relationship between the cache state of the processor L2 and the cache state of the processor L3 in the embodiment.

【図22】同実施形態における通常動作の一部を説明す
るためのフローチャート。
FIG. 22 is an exemplary flowchart for explaining a part of the normal operation in the embodiment.

【図23】同実施形態における通常動作の一部を説明す
るためのフローチャート。
FIG. 23 is an exemplary flowchart for explaining a part of the normal operation in the embodiment.

【図24】同実施形態における通常動作の一部を説明す
るためのフローチャート。
FIG. 24 is a flowchart for explaining a part of the normal operation in the embodiment.

【図25】同実施形態における通常動作の一部を説明す
るためのフローチャート。
FIG. 25 is a flowchart for explaining a part of the normal operation in the embodiment.

【図26】同実施形態におけるキャッシュフラッシュ時
の動作を説明するためのフローチャート。
FIG. 26 is a flowchart for explaining the operation at the time of cache flush in the embodiment.

【図27】同実施形態におけるプロセッサバス上のトラ
ンザクションによるL3キャッシュの状態遷移を示す
図。
FIG. 27 is a view showing a state transition of the L3 cache due to a transaction on the processor bus in the embodiment.

【図28】同実施形態におけるシステムバス上のトラン
ザクションによるL3キャッシュの状態遷移を示す図。
FIG. 28 is a view showing a state transition of the L3 cache due to a transaction on the system bus in the embodiment.

【図29】同実施形態におけるキャッシュフラッシュ装
置が出力するトランザクションによりプロセッサもしく
はL3キャッシュにある“Modified”データをメインメ
モリに書き戻す時のL3キャッシュの状態遷移を示す
図。
FIG. 29 is a diagram showing a state transition of the L3 cache when the “Modified” data in the processor or the L3 cache is written back to the main memory by a transaction output by the cache flush device in the embodiment.

【図30】従来のキャッシュフラッシュ装置を含むコン
ピュータシステムの構成を示すブロック図。
FIG. 30 is a block diagram showing a configuration of a computer system including a conventional cache flush device.

【図31】従来のキャッシュフラッシュ装置によりキャ
ッシュフラッシュが単独で実行される場合の動作を示す
タイミングチャート。
FIG. 31 is a timing chart showing an operation in a case where cache flush is independently performed by a conventional cache flush device.

【図32】従来のキャッシュフラッシュ装置によりキャ
ッシュフラッシュが3連続で実行される場合の動作を示
すタイミングチャート。
FIG. 32 is a timing chart showing an operation in a case where cache flush is performed three times in succession by a conventional cache flush device.

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

1,2…システムバス、3,4…アドレスバスの一部、
10…プロセッサバス、100…キャッシュフラッシュ
装置、101…キャッシュ管理用メモリ、110,12
0…プロセッサ、101’,111,121…キャッシ
ュメモリ、500…メインメモリ制御装置、501…メ
インメモリ、600…I/Oバス制御装置、610,6
20…I/Oバス。
1, 2, ... system bus, 3, 4 ... part of address bus,
10: Processor bus, 100: Cache flash device, 101: Cache management memory, 110, 12
0: Processor, 101 ', 111, 121: Cache memory, 500: Main memory controller, 501: Main memory, 600: I / O bus controller, 610, 6
20 ... I / O bus.

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/00 531 G06F 12/00 531J ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G06F 12/00 531 G06F 12/00 531J

Claims (16)

【特許請求の範囲】[Claims] 【請求項1】 コピーバック方式のキャッシュを備えた
少なくとも一つのプロセッサと、前記プロセッサが接続
されるプロセッサバスと、メインメモリと、前記プロセ
ッサバスと前記メインメモリとに接続されるキャッシュ
フラッシュ装置とを有するコンピュータシステムに適用
されるキャッシュフラッシュ方法において、 モディファイドデータについてのリード要求を前記キャ
ッシュフラッシュ装置から前記プロセッサバスだけに対
して送り、 前記リード要求に応じて送られてきた前記プロセッサか
らのモディファイドデータを前記キャッシュフラッシュ
装置により受け取り、 前記モディファイドデータの受け取りが完了したキャッ
シュラインだけについて前記メインメモリに対するバー
ストライトを行い、 キャッシュフラッシュ時に前記メインメモリがリードモ
ディファイライト動作せずに単純にバーストライト動作
するようにしたことを特徴とするキャッシュフラッシュ
方法。
At least one processor having a copy-back type cache, a processor bus connected to the processor, a main memory, and a cache flash device connected to the processor bus and the main memory. A cache flush method applied to a computer system having the same, wherein a read request for modified data is sent from the cache flush device only to the processor bus, and the modified data from the processor sent in response to the read request is sent. A burst write to the main memory is performed for only the cache line which has been received by the cache flash device and the reception of the modified data has been completed. Cache flush method main memory is characterized in that to work burst write simply without read-modify-write operation.
【請求項2】 前記キャッシュフラッシュ装置は、前記
プロセッサバスと前記メインメモリとの間にインライン
で接続されることを特徴とする請求項1記載のキャッシ
ュフラッシュ方法。
2. The cache flush method according to claim 1, wherein said cache flush device is connected in-line between said processor bus and said main memory.
【請求項3】 前記キャッシュフラッシュ装置と前記プ
ロセッサとが第1のアドレスバスの一部を通じて接続さ
れ、前記キャッシュフラッシュ装置と前記メインメモリ
とが前記第1のアドレスバスとは独立した第2のアドレ
スバスの一部を通じて接続されることを特徴とする請求
項1記載のキャッシュフラッシュ方法。
3. The cache flash device and the processor are connected through a part of a first address bus, and the cache flash device and the main memory are connected to a second address independent of the first address bus. 2. The cache flush method according to claim 1, wherein connection is made through a part of a bus.
【請求項4】 前記リード要求時に、前記プロセッサに
リード要求を観測させるためのアドレスビットを前記キ
ャッシュフラッシュ装置から前記第1のアドレスバスの
一部に出力すると共に、前記メインメモリには無関係の
アドレスビットを前記キャッシュフラッシュ装置から前
記第2のアドレスバスの一部に出力し、 前記バーストライト時に、前記メインメモリに対するバ
ーストライトを可能とするアドレスビットを前記キャッ
シュフラッシュ装置から前記第2のアドレスバスの一部
に出力することを特徴とする請求項3記載のキャッシュ
フラッシュ方法。
4. When the read request is issued, an address bit for causing the processor to observe the read request is output from the cache flash device to a part of the first address bus, and an address irrelevant to the main memory is output. Outputting a bit from the cache flash device to a part of the second address bus, and outputting, from the cache flash device, an address bit enabling burst write to the main memory during the burst write. 4. The cache flush method according to claim 3, wherein the data is partially output.
【請求項5】 前記の各アドレスバスに出力するアドレ
スビットを偶数ビット数で構成することによりパリティ
保護されたアドレスバスに対応させたことを特徴とする
請求項4記載のキャッシュフラッシュ方法。
5. The cache flush method according to claim 4, wherein the address bits output to each of the address buses are constituted by an even number of bits to correspond to an address bus protected by parity.
【請求項6】 前記プロセッサにリード要求を観測させ
るためのアドレスビットを全て“0”とし、前記メイン
メモリに無関係のアドレスビットを全て“1”とし、前
記メインメモリに対するバーストライトを可能とするア
ドレスビットを全て“0”としたことを特徴とする請求
項5記載のキャッシュフラッシュ方法。
6. An address enabling all the address bits for causing the processor to observe a read request to be "0", all address bits unrelated to the main memory to be "1", and enabling a burst write to the main memory. 6. The cache flush method according to claim 5, wherein all bits are set to "0".
【請求項7】 前記キャッシュフラッシュ装置にデータ
メモリを備えることにより外部キャッシュとしての機能
を有するようにしたことを特徴とする請求項2記載のキ
ャッシュフラッシュ方法。
7. The cache flush method according to claim 2, wherein said cache flush device is provided with a data memory so as to have a function as an external cache.
【請求項8】 前記キャッシュフラッシュ装置にデータ
メモリを備えることにより外部キャッシュとしての機能
を有するようにしたことを特徴とする請求項3乃至5の
いずれかに記載のキャッシュフラッシュ方法。
8. The cache flush method according to claim 3, wherein said cache flush device has a function as an external cache by including a data memory.
【請求項9】 コピーバック方式のキャッシュを備えた
少なくとも一つのプロセッサと、前記プロセッサが接続
されるプロセッサバスと、メインメモリと、前記プロセ
ッサバスと前記メインメモリとに接続されるキャッシュ
フラッシュ装置とを有するコンピュータシステムに設け
られるキャッシュフラッシュ装置において、 モディファイドデータについてのリード要求を前記プロ
セッサバスだけに対して送る手段と、 前記リード要求に応じて送られてきた前記プロセッサか
らのモディファイドデータを受け取る手段と、 前記モディファイドデータの受け取りが完了したキャッ
シュラインだけについて前記メインメモリに対するバー
ストライトを行う手段とを具備し、キャッシュフラッシ
ュ時に前記メインメモリがリードモディファイライト動
作せずに単純にバーストライト動作するようにしたこと
を特徴とするキャッシュフラッシュ装置。
9. At least one processor having a copy-back type cache, a processor bus connected to the processor, a main memory, and a cache flash device connected to the processor bus and the main memory. A cache flash device provided in a computer system having: a means for sending a read request for modified data only to the processor bus; a means for receiving modified data from the processor sent in response to the read request; Means for performing a burst write to the main memory only for the cache line for which the reception of the modified data has been completed, wherein the main memory performs a read-modify-write operation during a cache flush. A cache flash device characterized by simply performing a burst write operation without making any operation.
【請求項10】 前記キャッシュフラッシュ装置は、前
記プロセッサバスと前記メインメモリとの間にインライ
ンで接続されることを特徴とする請求項9記載のキャッ
シュフラッシュ装置。
10. The cache flash device according to claim 9, wherein said cache flash device is connected in-line between said processor bus and said main memory.
【請求項11】 前記キャッシュフラッシュ装置と前記
プロセッサとが第1のアドレスバスの一部を通じて接続
され、前記キャッシュフラッシュ装置と前記メインメモ
リとが前記第1のアドレスバスとは独立した第2のアド
レスバスの一部を通じて接続されることを特徴とする請
求項9記載のキャッシュフラッシュ装置。
11. The cache flash device and the processor are connected through a part of a first address bus, and the cache flash device and the main memory are connected to a second address independent of the first address bus. 10. The cache flush device according to claim 9, wherein the cache flush device is connected through a part of a bus.
【請求項12】 前記リード要求時に、前記プロセッサ
にリード要求を観測させるためのアドレスビットを前記
キャッシュフラッシュ装置から前記第1のアドレスバス
の一部に出力すると共に、前記メインメモリには無関係
のアドレスビットを前記キャッシュフラッシュ装置から
前記第2のアドレスバスの一部に出力する手段と、 前記バーストライト時に、前記メインメモリに対するバ
ーストライトを可能とするアドレスビットを前記キャッ
シュフラッシュ装置から前記第2のアドレスバスの一部
に出力する手段とを更に具備したことを特徴とする請求
項11記載のキャッシュフラッシュ装置。
12. When the read request is issued, an address bit for causing the processor to observe the read request is output from the cache flash device to a part of the first address bus, and an address irrelevant to the main memory is output. Means for outputting bits from the cache flash device to a part of the second address bus; and address bits enabling burst write to the main memory during the burst write from the cache flash device to the second address. 12. The cache flush device according to claim 11, further comprising: means for outputting to a part of a bus.
【請求項13】 前記の各アドレスバスに出力するアド
レスビットを偶数ビット数で構成することによりパリテ
ィ保護されたアドレスバスに対応させたことを特徴とす
る請求項12記載のキャッシュフラッシュ装置。
13. The cache flash device according to claim 12, wherein the address bits output to each address bus are constituted by an even number of bits so as to correspond to an address bus protected by parity.
【請求項14】 前記プロセッサにリード要求を観測さ
せるためのアドレスビットを全て“0”とし、前記メイ
ンメモリに無関係のアドレスビットを全て“1”とし、
前記メインメモリに対するバーストライトを可能とする
アドレスビットを全て“0”としたことを特徴とする請
求項13記載のキャッシュフラッシュ装置。
14. All address bits for causing the processor to observe a read request are set to "0", and all address bits irrelevant to the main memory are set to "1".
14. The cache flash device according to claim 13, wherein all address bits enabling burst write to said main memory are set to "0".
【請求項15】 前記キャッシュフラッシュ装置にデー
タメモリを備えることにより外部キャッシュとしての機
能を有するようにしたことを特徴とする請求項10記載
のキャッシュフラッシュ装置。
15. The cache flash device according to claim 10, wherein said cache flash device is provided with a data memory so as to have a function as an external cache.
【請求項16】 前記キャッシュフラッシュ装置にデー
タメモリを備えることにより外部キャッシュとしての機
能を有するようにしたことを特徴とする請求項11乃至
13のいずれかに記載のキャッシュフラッシュ装置。
16. The cache flash device according to claim 11, wherein the cache flash device is provided with a data memory so as to have a function as an external cache.
JP18295498A 1998-06-29 1998-06-29 Cache flush method and apparatus Expired - Fee Related JP4091171B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18295498A JP4091171B2 (en) 1998-06-29 1998-06-29 Cache flush method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18295498A JP4091171B2 (en) 1998-06-29 1998-06-29 Cache flush method and apparatus

Publications (2)

Publication Number Publication Date
JP2000020395A true JP2000020395A (en) 2000-01-21
JP4091171B2 JP4091171B2 (en) 2008-05-28

Family

ID=16127260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18295498A Expired - Fee Related JP4091171B2 (en) 1998-06-29 1998-06-29 Cache flush method and apparatus

Country Status (1)

Country Link
JP (1) JP4091171B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (en) * 2004-07-06 2006-01-26 Fujitsu Ltd Information processor
JP2006164077A (en) * 2004-12-09 2006-06-22 Internatl Business Mach Corp <Ibm> Memory system, control method therefor and method for maintaining data coherency

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (en) * 2004-07-06 2006-01-26 Fujitsu Ltd Information processor
JP4725044B2 (en) * 2004-07-06 2011-07-13 富士通株式会社 Information processing device
JP2006164077A (en) * 2004-12-09 2006-06-22 Internatl Business Mach Corp <Ibm> Memory system, control method therefor and method for maintaining data coherency

Also Published As

Publication number Publication date
JP4091171B2 (en) 2008-05-28

Similar Documents

Publication Publication Date Title
US5752264A (en) Computer architecture incorporating processor clusters and hierarchical cache memories
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
JP3737834B2 (en) Dual cache snoop mechanism
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
US5913021A (en) Memory state recovering apparatus
JP4119380B2 (en) Multiprocessor system
JP2014089760A (en) Resolving cache conflicts
JPH08328957A (en) System and method for enhancement of cache performance in multiprocessing system
JPH10320283A (en) Method and device for providing cache coherent protocol for maintaining cache coherence in multiprocessor/data processing system
KR20030024895A (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US10169236B2 (en) Cache coherency
US10949292B1 (en) Memory interface having data signal path and tag signal path
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
CN115858420B (en) System cache architecture and chip for supporting multiprocessor architecture
WO1997004392A1 (en) Shared cache memory device
KR100380674B1 (en) Method and system for maintaining cache coherency for write-through store operations in a multiprocessor system
JP4091171B2 (en) Cache flush method and apparatus
JP3083786B2 (en) Memory update history storage device and memory update history storage method
JP2001034533A (en) Cache coherency controller, secondary cache memory, central processor, multiprocessing system, processor node, and cache coherency control method
JPH03230238A (en) Cache memory control system
JP4856373B2 (en) Memory system, control method thereof, and method of maintaining data coherency
JPH10187535A (en) Computer system and memory state recovering device
JPH04302044A (en) Multiprocessor system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080228

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110307

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120307

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130307

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140307

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees