JP2000020395A - キャッシュフラッシュ方法および装置 - Google Patents

キャッシュフラッシュ方法および装置

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
English (en)
Other versions
JP4091171B2 (ja
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/ja
Publication of JP2000020395A publication Critical patent/JP2000020395A/ja
Application granted granted Critical
Publication of JP4091171B2 publication Critical patent/JP4091171B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 キャッシュフラッシュ時にメインメモリがバ
ーストライト動作するようにしてキャッシュフラッシュ
時間を短縮する。 【解決手段】 キャッシュフラッシュ装置100は、モ
ディファイドデータについてのリード要求をプロセッサ
バス10だけに対して送る。この場合、メインメモリ制
御装置500側にはリード要求は通知されない。そし
て、キャッシュフラッシュ装置100は、リード要求に
応じて送られてきたプロセッサ110又は120からの
モディファイドデータを受け取り、当該受け取りが完了
したキャッシュラインだけについて前記メインメモリに
対するバーストライトをメインメモリ制御装置500を
介して行う。これにより、キャッシュフラッシュ時にメ
インメモリ501がリード・モディファイ・ライト動作
せずに単純にバーストライト動作するようになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コピーバック方式
のキャッシュを有するコンピュータシステムに適用され
るキャッシュフラッシュ方法および装置に関し、特にチ
ェックポイント取得方式を採用するコンピュータシステ
ムに適用されるキャッシュフラッシュ方法および装置に
する。
【0002】
【従来の技術】一般に、計算機においては、プロセッサ
によるメインメモリへのアクセスを高速化するために、
プロセッサが必要とするデータを一時的に格納するキャ
ッシュが用いられている。通常、このキャッシュは、キ
ャッシュブロックと呼ばれる所定の大きさのデータ単位
でデータを保持する。また、このキャッシュは、キャッ
シュタグと呼ばれる管理情報を保持し、キャッシュに格
納したキャッシュブロックのデータが、メインメモリの
中のどのデータであるのか、およびプロセッサによって
変更されてメインメモリの内容と異なっている状態(モ
ディファイド状態、ダーティ状態)にあるか等を管理し
ている。
【0003】プロセッサを複数設けた計算機システム
(マルチプロセッサシステム)においては、複数のキャ
ッシュ間でデータの一貫性を保証するために、スヌープ
機構をもったキャッシュがよく用いられる。このスヌー
プ機構は、バス上に発行されたバスコマンド(又はトラ
ンザクション)が、自身のキャッシュに格納されたデー
タに影響を与えないか、あるいは自身のキャッシュに格
納されたデータを応答として返さなければならないかを
監視し、必要であれば、該当するデータの無効化などを
行うものである。
【0004】コピーバック方式のキャッシュの場合、す
なわち、プロセッサによるデータの更新を直ちにメイン
メモリに反映させないタイプのキャッシュの場合、プロ
セッサによってキャッシュ上で変更されてメインメモリ
の内容と異なっているデータ(モディファイド状態のデ
ータ)を、積極的にメインメモリへ書き戻す操作が必要
となる。例えば、スヌープ機構を持たない入出力装置に
対してキャッシュが保持するデータを転送する場合など
に必要となる。このキャッシュが保持するデータのう
ち、モディファイド状態にあるデータをメインメモリに
書き戻すことをキャッシュフラッシュと呼ぶ。また、モ
ディファイド状態にあるキャッシュブロックをモディフ
ァイドブロックと呼ぶ。
【0005】このキャッシュフラッシュは、特に、チェ
ックポイント方式の計算機において必要とされる処理で
ある。すなわち、計算機に何らかの障害が発生したとき
に、予め取得しておいたチェックポイントの時点から処
理を再開するチェックポイント方式の計算機の場合、各
チェックポイントの時点で、キャッシュ中にのみ存在す
る変更されたデータをまとめてメインメモリに書き戻す
(キャッシュフラッシュする)必要があるためである。
【0006】上記キャッシュフラッシュ操作を実現する
方式としては、プロセッサにキャッシュフラッシュ命令
を実行させる方式と、キャッシュフラッシュ装置を用い
てキャッシュフラッシュ命令を実行させる方式とが挙げ
られる。
【0007】キャッシュフラッシュ装置を用いる方式で
は、キャッシュフラッシュ装置からプロセッサバス上に
非バーストリードトランザクションを発行することでプ
ロセッサ内のダーティーラインをメインメモリに書き戻
すようにしている。この場合のシステム構成例について
以下に説明する。
【0008】図30は、従来のキャッシュフラッシュ装
置を含むコンピュータシステムの構成を示すブロック図
である。
【0009】2はシステムバスであり、プロセッサ11
0,120と、メインメモリ制御装置500と、I/O
制御装置600と、キャッシュフラッシュ装置100と
を接続し、データの受け渡しを行う。
【0010】100はキャッシュフラッシュ装置であ
り、プロセッサ110,120が持つキャッシュメモリ
のキャッシュ状態を監視してキャッシュ管理用メモリ1
01にアドレス情報を記録し、キャッシュフラッシュが
起動するとプロセッサからダーティーラインを読み出し
てメインメモリ制御装置500に書き戻す。101はキ
ャッシュ管理用メモリであり、プロセッサ110,12
0のキャッシュラインの状態を含むアドレス情報を記録
する。
【0011】110,120はプロセッサである。11
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリである。
【0012】500はメインメモリを制御するメインメ
モリ制御装置である。501はメインメモリである。
【0013】600はI/Oバス制御装置である。60
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
【0014】図31は、キャッシュフラッシュが単独で
実行される場合の動作を示すタイミングチャートであ
る。ここでは、メインメモリ501にシンクロナスDR
AMを使用している。
【0015】以下、図31を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。
【0016】システムバスのaddress はシステムバスト
ランザクションのアドレスであり、キャッシュフラッシ
ュ装置100が出力する。システムバスのSnoop は、シ
ステムトランザクションに対するスヌープ応答であり、
プロセッサ110,120のいずれかが出力する。この
図の例では、“Modified”応答を出している。システム
バスのDataは、システムトランザクションに対するデー
タであり、プロセッサ110,120のいずれかが出力
する。なお、Readトランザクションに対するスヌープ応
答が“Modified”以外の場合、通常はメインメモリ制御
装置500がデータを出力する。
【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がリー
ドデータを出力する。
【0018】図32は、キャッシュフラッシュが3連続
する場合の動作を示すタイミングチャートである。
【0019】以下、図32を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
【0020】システムバスのaddress はシステムバスト
ランザクションのアドレスであり、キャッシュフラッシ
ュ装置100が出力する。システムバスのSnoop は、シ
ステムトランザクションに対するスヌープ応答であり、
プロセッサ110,120のいずれかが出力する。この
図の例では、“Modified”応答を出している。システム
バスのDataは、システムトランザクションに対するデー
タであり、プロセッサ110,120のいずれかが出力
する。なお、Readトランザクションに対するスヌープ応
答が“Modified”以外の場合、通常はメインメモリ制御
装置500がデータを出力する。
【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がリー
ドデータを出力する。
【0022】
【発明が解決しようとする課題】上述のキャッシュフラ
ッシュ装置を用いてキャッシュフラッシュを行う方式で
は、一般にメインメモリは非バースト転送に対してプロ
セッサがキャッシュに“Modified”データを持っている
ことは想定しておらず、インプリメントを簡単にしてい
る。このためにメインメモリの動作が「リード・モディ
ファイ・ライト」となり、メインメモリがシステムの性
能上のボトルネックとなっている。この結果、キャッシ
ュフラッシュ時間が長くなるという問題がある。
【0023】一方、プロセッサにキャッシュフラッシュ
命令を実行させる方式では、プロセッサの種類によって
はキャッシュが全て無効化されてしまうため、キャッシ
ュフラッシュ終了後に命令キャッシュ、データキャッシ
ュの中身をメインメモリから読み出さなくてはならず、
性能低下の要因となっている。
【0024】本発明は上記実情に鑑みてなされたもので
あり、キャッシュフラッシュ時にメインメモリがリード
・モディファイ・ライト動作することなくバーストライ
ト動作するようにして、キャッシュフラッシュ時間を短
縮するキャッシュフラッシュ方法および装置を提供する
ことを目的とする。
【0025】
【課題を解決するための手段】上記課題を解決するため
に、本発明のキャッシュフラッシュ方法は、コピーバッ
ク方式のキャッシュを備えた少なくとも一つのプロセッ
サと、前記プロセッサが接続されるプロセッサバスと、
メインメモリと、前記プロセッサバスと前記メインメモ
リとに接続されるキャッシュフラッシュ装置とを有する
コンピュータシステムに適用されるキャッシュフラッシ
ュ方法において、モディファイドデータについてのリー
ド要求を前記キャッシュフラッシュ装置から前記プロセ
ッサバスだけに対して送り、前記リード要求に応じて送
られてきた前記プロセッサからのモディファイドデータ
を前記キャッシュフラッシュ装置により受け取り、前記
モディファイドデータの受け取りが完了したキャッシュ
ラインだけについて前記メインメモリに対するバースト
ライトを行い、キャッシュフラッシュ時に前記メインメ
モリがリードモディファイライト動作せずに単純にバー
ストライト動作するようにしたことを特徴とする。
【0026】なお、前記キャッシュフラッシュ方法にお
いて、前記キャッシュフラッシュ装置は、例えば前記プ
ロセッサバスと前記メインメモリとの間にインラインで
接続されるようにしてもよい。
【0027】また、前記キャッシュフラッシュ方法にお
いて、前記キャッシュフラッシュ装置と前記プロセッサ
とが第1のアドレスバスの一部を通じて接続され、前記
キャッシュフラッシュ装置と前記メインメモリとが前記
第1のアドレスバスとは独立した第2のアドレスバスの
一部を通じて接続されるようにしてもよい。
【0028】また、前記キャッシュフラッシュ方法にお
いて、前記リード要求時に、前記プロセッサにリード要
求を観測させるためのアドレスビットを前記キャッシュ
フラッシュ装置から前記第1のアドレスバスの一部に出
力すると共に、前記メインメモリには無関係のアドレス
ビットを前記キャッシュフラッシュ装置から前記第2の
アドレスバスの一部に出力し、前記バーストライト時
に、前記メインメモリに対するバーストライトを可能と
するアドレスビットを前記キャッシュフラッシュ装置か
ら前記第2のアドレスバスの一部に出力するようにして
もよい。
【0029】また、前記キャッシュフラッシュ方法にお
いて、前記の各アドレスバスに出力するアドレスビット
を偶数ビット数で構成することによりパリティ保護され
たアドレスバスに対応させるようにしてもよい。
【0030】また、前記キャッシュフラッシュ方法にお
いて、前記プロセッサにリード要求を観測させるための
アドレスビットを全て“0”とし、前記メインメモリに
無関係のアドレスビットを全て“1”とし、前記メイン
メモリに対するバーストライトを可能とするアドレスビ
ットを全て“0”とするようにしてもよい。
【0031】また、前記キャッシュフラッシュ方法にお
いて、前記キャッシュフラッシュ装置にデータメモリを
備えることにより外部キャッシュとしての機能を有する
ようにしてもよい。
【0032】また、上記課題を解決するために、本発明
のキャッシュフラッシュ装置は、コピーバック方式のキ
ャッシュを備えた少なくとも一つのプロセッサと、前記
プロセッサが接続されるプロセッサバスと、メインメモ
リと、前記プロセッサバスと前記メインメモリとに接続
されるキャッシュフラッシュ装置とを有するコンピュー
タシステムに設けられるキャッシュフラッシュ装置にお
いて、モディファイドデータについてのリード要求を前
記プロセッサバスだけに対して送る手段と、前記リード
要求に応じて送られてきた前記プロセッサからのモディ
ファイドデータを受け取る手段と、前記モディファイド
データの受け取りが完了したキャッシュラインだけにつ
いて前記メインメモリに対するバーストライトを行う手
段とを具備し、キャッシュフラッシュ時に前記メインメ
モリがリードモディファイライト動作せずに単純にバー
ストライト動作するようにしたことを特徴とする。
【0033】なお、前記キャッシュフラッシュ装置は、
前記プロセッサバスと前記メインメモリとの間にインラ
インで接続されるものであってもよい。
【0034】また、前記キャッシュフラッシュ装置にお
いて、前記キャッシュフラッシュ装置と前記プロセッサ
とが第1のアドレスバスの一部を通じて接続され、前記
キャッシュフラッシュ装置と前記メインメモリとが前記
第1のアドレスバスとは独立した第2のアドレスバスの
一部を通じて接続されるものであってもよい。
【0035】また、前記キャッシュフラッシュ装置は、
前記リード要求時に、前記プロセッサにリード要求を観
測させるためのアドレスビットを前記キャッシュフラッ
シュ装置から前記第1のアドレスバスの一部に出力する
と共に、前記メインメモリには無関係のアドレスビット
を前記キャッシュフラッシュ装置から前記第2のアドレ
スバスの一部に出力する手段と、前記バーストライト時
に、前記メインメモリに対するバーストライトを可能と
するアドレスビットを前記キャッシュフラッシュ装置か
ら前記第2のアドレスバスの一部に出力する手段とを更
に具備していてもよい。
【0036】また、前記キャッシュフラッシュ装置は、
前記の各アドレスバスに出力するアドレスビットを偶数
ビット数で構成することによりパリティ保護されたアド
レスバスに対応させたものであってもよい。
【0037】また、前記キャッシュフラッシュ装置は、
前記プロセッサにリード要求を観測させるためのアドレ
スビットを全て“0”とし、前記メインメモリに無関係
のアドレスビットを全て“1”とし、前記メインメモリ
に対するバーストライトを可能とするアドレスビットを
全て“0”としたものであってもよい。
【0038】また、前記キャッシュフラッシュ装置は、
データメモリを備えることにより外部キャッシュとして
の機能を有するようにしたものであってもよい。
【0039】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。
【0040】[第1実施形態]図1は、本発明の第1実
施形態に係るキャッシュフラッシュ装置を含むコンピュ
ータシステムの全体構成を示すブロック図である。
【0041】1はシステムバスであり、メインメモリ制
御装置500とI/O制御装置600とキャッシュフラ
ッシュ装置100とを接続し、データの受け渡しを行
う。
【0042】10はプロセッサバスであり、プロセッサ
110,120とキャッシュフラッシュ装置100を接
続し、データの受け渡しを行う。
【0043】100は本発明に係るキャッシュフラッシ
ュ装置であり、プロセッサ110,120のキャッシュ
状態を監視してキャッシュ管理用メモリ101にアドレ
ス情報を記録し、キャッシュフラッシュが起動するとプ
ロセッサからダーティーラインを読み出してメインメモ
リ制御装置500に書き戻す。101はキャッシュ管理
用メモリであり、プロセッサ110,120のキャッシ
ュラインの状態を含むアドレス情報を記録する。
【0044】110,120はプロセッサである。11
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリ(コピーバック方式)である。
【0045】500はメインメモリを制御するメインメ
モリ制御装置である。501はメインメモリである。
【0046】600はI/Oバス制御装置である。60
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
【0047】上記キャッシュフラッシュ装置100は、
プロセッサバス10とメインメモリ制御装置500(メ
インメモリ501)との間にインラインで接続されてい
る。このため、この構成例は、メインメモリのために使
用可能なアドレス空間に制限が発生せず、アダプタ接続
方式で実現しやすいという利点がある。
【0048】本実施形態では、プロセッサ110,12
0が“MESI”プロトコルでキャッシュ管理を行って
いる場合を例にとって説明する。ここで、“MESI”
は、キャッシュメモリ111,121上の各キャッシュ
ブロックの取り得る4種類の状態、すなわち、以下に説
明するような“Modified”,“Exclusive ”,“Share
d”,“Invalid ”の各種の状態を示すものである。な
お、以下では、それぞれの頭文字を用いて単に“M”,
“E”,“S”,“I”と呼ぶ場合があるものとする。
【0049】Modified(M): そのキャッシュブロッ
クには更新されたデータが存在する。他のプロセッサの
キャッシュブロックには、このデータは存在しない。 Exclusive (E): そのキャッシュブロックには、メ
インメモリ501と同一内容のデータが存在する。他の
キャッシュメモリのキャッシュブロックには、このデー
タは存在しない。 Shared(S): そのキャッシュブロックには、メイン
メモリ501と同一内容のデータが存在する。他のプロ
セッサのキャッシュブロックにも、このデータが存在す
る可能性がある。 Invalid (I): そのキャッシュブロックには有効な
データが存在しない。
【0050】なお、上記の状態“Exclusive (E)”お
よび“Shared(S)”は、“Clean(C)”に相当する
ものである。
【0051】一方、本システムのプロセッサバス10上
に発行される各種のトランザクションには、以下に説明
するように“Read and Invalidate ”,“Invalidat
e”,“Write ”,“Read”などがある。
【0052】Read and Invalidate : プロセッサがデ
ータを更新しようとして、キャッシュメモリ中にそのデ
ータが無い場合に発行されるものであり、キャッシュブ
ロックデータのリード、および他のキャッシュブロック
の無効化要求を意味する。
【0053】Invalidate: プロセッサが“Shared”状
態のキャッシュブロックのデータを更新しようとする場
合に発行されるものであり、他のキャッシュメモリのデ
ータ無効化要求を意味する。
【0054】Write : “Modified”状態のキャッシュ
ブロックに他のアドレスのデータを格納しなければなら
なくなったために、“Modified”状態のキャッシュブロ
ックの内容をメインメモリ501に書き戻す必要がある
場合に発行されるものであり、キャッシュブロックデー
タのメインメモリ501への書込み要求を意味する。
【0055】Read: プロセッサがデータを読もうとし
て、キャッシュメモリ中にそのデータが無い場合に発行
されるものであり、キャッシュブロックデータのリード
要求を意味する。
【0056】次に、この第1実施形態の動作について説
明する。
【0057】(通常動作)はじめに通常動作を説明す
る。通常動作時には、プロセッサバス10上に発行され
たトランザクションをキャッシュフラッシュ装置100
が受け取り、必要なトランザクションをシステムバス1
上に発行する。このとき、メインメモリ制御装置500
またはI/Oバスブリッジ600がシステムバス1上の
アドレスによって反応する。
【0058】このように、プロセッサバス10上ではキ
ャッシュフラッシュ装置100を通じてメモリアクセス
もしくはI/Oアクセスを行うので、プロセッサの内部
レジスタ等の特殊な空間を除けばキャッシュフラッシュ
装置100がトランザクションのターゲットアドレスを
保持し、キャッシュフラッシュ装置100がトランザク
ションへのレスポンスを返す責任を持つ。
【0059】ここで、プロセッサバス10上に各種のト
ランザクションが発行された場合のキャッシュフラッシ
ュ装置100が行う処理を、図2〜図4を参照して説明
する。
【0060】キャッシュメモリ111,121に“Excl
usive ”状態が発生したときには、キャッシュが“Modi
fied”状態になったことを外部から観測できない。この
ため、プロセッサバス10上にReadトランザクションが
発行された場合には(ステップA1)、キャッシュフラ
ッシュ装置100は“Shared”応答をプロセッサバス1
0上に返し、キャッシュを“Shared”状態にする(ステ
ップA2)。すなわち、“Exclusive ”状態を許さな
い。そして、キャッシュフラッシュ装置100は、キャ
ッシュ管理用メモリ101を検索して該当するキャッシ
ュラインを“Clean ”にする(ステップA3)。
【0061】プロセッサバス10上にInvalidateトラン
ザクション又はRead and Invalidate トランザクション
が発行された場合には(ステップB1)、キャッシュフ
ラッシュ装置100はキャッシュ管理用メモリ101中
の“Modified”として該当するインデックスの位置にタ
グを保存する(ステップB2)。このとき、既に別のキ
ャッシュラインがModifiedとして登録されていたら、キ
ャッシュフラッシュ装置100は登録されていたタグと
インデックスとから物理アドレスを生成してプロセッサ
バス10上にReadトランザクションを発行する(ステッ
プB3,B4)。プロセッサが“Modified”ラインを持
っていれば、該プロセッサは“Modified”応答をして
“Modified”データをプロセッサバス10上に出力して
くる。
【0062】キャッシュフラッシュ装置100は、プロ
セッサバス10から“Modified”データを受け取ると
(ステップB5)、システムバス1上にそのアドレスの
Writeトランザクションを発行する(ステップB6)。
これにより、メインメモリ制御装置500は、メインメ
モリ501にデータを書き戻す。
【0063】プロセッサバス10上にWrite トランザク
ションが発行された場合には(ステップC1)、キャッ
シュフラッシュ装置100はシステムバス1上にWrite
トランザクションを発行する(ステップC2)。これに
より、メインメモリ制御装置500は、メインメモリ5
01にデータを書き込む。そして、キャッシュフラッシ
ュ装置100は、キャッシュ管理用メモリ101を検索
して該当するキャッシュラインを“Clean ”にする(ス
テップC3)。
【0064】図5は、プロセッサバス上に発行されたト
ランザクションの種類に応じてキャッシュ管理用メモリ
101の状態が変更される様子をまとめたものである。
【0065】図中、“M”は、キャッシュ管理用メモリ
101が「プロセッサが“Modified”ラインを持ってい
る」と認識している状態を示す。“C”は、キャッシュ
管理用メモリ101が「プロセッサが“Modified”ライ
ンを持っていない」と認識している状態“Clean ”を示
す。このときのプロセッサキャッシュの状態は、“Inva
lid ”または“Shared”である。“M(追い出し)”
は、キャッシュ管理用メモリ101が「プロセッサが
“Modified”ラインを持っている」と認識し、かつキャ
ッシュ管理用メモリ101に登録されていたエントリの
リードをプロセッサバス上に発行してプロセッサキャッ
シュ内の“Modified”ラインを追い出すことを示す。
【0066】(キャッシュフラッシュ時の動作)次に、
キャッシュフラッシュ時の動作を、図6を参照して説明
する。キャッシュフラッシュが開始されると、キャッシ
ュフラッシュ装置100は、キャッシュ管理用メモリ1
01を検索してプロセッサ110,120にある“Modi
fied”であるキャッシュラインを見つけ(ステップD
1)、プロセッサバス10だけに対してリード要求を行
う(ステップD2)。なお、リード要求の発行にあたっ
ては、“0バイト”すなわち“Modified”応答が無けれ
ばデータ転送を伴わない形でトランザクションが完了す
るようにする。
【0067】ここで、プロセッサ110もしくは120
が本当に“Modified”であるデータを持っていれば、該
プロセッサはReadトランザクションに対して“Modifie
d”応答をして“Modified”データをプロセッサバス1
0上に出力してくる。
【0068】キャッシュフラッシュ装置100は、プロ
セッサバス10から“Modified”データを受け取ると
(ステップD3)、システムバス1上にそのキャッシュ
ラインのバーストライトトランザクションを発行し(ス
テップD4)、キャッシュフラッシュを完了する。
【0069】この場合、メインメモリ制御装置500側
としては、キャッシュフラッシュ装置100からのキャ
ッシュフラッシュを単純なバーストライトとして扱える
ので、メインメモリ501へのアクセスは1回だけで終
了する。
【0070】図7は、この第1実施形態においてキャッ
シュフラッシュが単独で実行される場合の動作を示すタ
イミングチャートである。ここでは、メインメモリ50
1にシンクロナスDRAMを使用している。
【0071】以下、図7を参照して各種信号について説
明する。なお、図中の横軸はバスサイクル数を示してい
る。
【0072】プロセッサバスのaddress はプロセッサバ
ストランザクションのアドレスであり、キャッシュフラ
ッシュ装置100が出力する。プロセッサバスのSnoop
は、システムトランザクションに対するスヌープ応答で
あり、プロセッサ110,120のいずれかが出力す
る。この図の例では、“Modified”応答を出している。
プロセッサバスのDataは、システムトランザクションに
対するデータであり、プロセッサ110,120のいず
れかが出力する。なお、Readトランザクションに対する
スヌープ応答が“Modified”以外の場合、通常はキャッ
シュフラッシュ装置100がデータを出力する。
【0073】キャッシュフラッシュ装置のData Buffer
は、キャッシュフラッシュ装置100内のデータバッフ
ァがプロセッサバス10上のデータを受け取る様子を示
している。
【0074】システムバスのaddress は、システムバス
トランザクションのアドレスであり、キャッシュフラッ
シュ装置100が出力する。システムバスのSnoop は、
システムバストランザクションに対するスヌープ応答で
あり、本構成の場合、通常はメインメモリ制御装置50
0が“Normal”応答を返す。システムバスのDataは、シ
ステムバストランザクションに対するデータ出力であ
り、本構成の場合、プロセッサバス10上でプロセッサ
110もしくは120が出力したデータをキャッシュフ
ラッシュ装置100が出力する。
【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がリー
ドデータを出力する。
【0076】図8は、この第1実施形態においてキャッ
シュフラッシュが3連続で実行される場合の動作を示す
タイミングチャートである。ここでは、メインメモリ5
01にシンクロナスDRAMを使用している。
【0077】以下、図8を参照して各種信号について説
明する。なお、図中の横軸はバスサイクル数を示してい
る。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
【0078】プロセッサバスのaddress はプロセッサバ
ストランザクションのアドレスであり、キャッシュフラ
ッシュ装置100が出力する。プロセッサバスのSnoop
は、システムトランザクションに対するスヌープ応答で
あり、プロセッサ110,120のいずれかが出力す
る。この図の例では、“Modified”応答をしている。プ
ロセッサバスのDataは、システムトランザクションに対
するデータであり、プロセッサ110,120のいずれ
かが出力する。なお、Readトランザクションに対するス
ヌープ応答が“Modified”以外の場合、通常はキャッシ
ュフラッシュ装置100がデータを出力する。
【0079】キャッシュフラッシュ装置のData Buffer
は、キャッシュフラッシュ装置100内のデータバッフ
ァがプロセッサバス10上のデータを受け取る様子を示
している。
【0080】システムバスのaddress は、システムバス
トランザクションのアドレスであり、キャッシュフラッ
シュ装置100が出力する。システムバスのSnoop は、
システムバストランザクションに対するスヌープ応答で
あり、本構成の場合、通常はメインメモリ制御装置50
0が“Normal”応答を返す。システムバスのDataは、シ
ステムバストランザクションに対するデータ出力であ
り、本構成の場合、プロセッサバス10上でプロセッサ
110もしくは120が出力したデータをキャッシュフ
ラッシュ装置100が出力する。
【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がリー
ドデータを出力する。
【0082】本例とキャッシュフラッシュ時のスループ
ット、キャッシュフラッシュ終了までの時間の比較結果
を図17に示す。キャッシュ全領域をフラッシュするの
に要する時間はほぼスループットに比例するので、本例
では従来例の1/3以下の時間でキャッシュフラッシュ
が終了する。
【0083】[第2実施形態]次に、第2実施形態を説
明する。
【0084】図9は、本発明の第2実施形態に係るキャ
ッシュフラッシュ装置を含むコンピュータシステムの全
体構成を示すブロック図である。
【0085】2はシステムバスのうち、後述するアドレ
スバスの最上位2ビット分を除いたものである。このシ
ステムバス2は、メインメモリ制御装置500と、I/
O制御装置600と、キャッシュフラッシュ装置100
と、プロセッサ110,120とを接続してデータの受
け渡しを行う。なお、プロセッサバスに相当する部分は
このシステムバス2に含まれているものと考える。
【0086】3はアドレスバスの最上位2ビット分であ
り、プロセッサ110,120とキャッシュフラッシュ
装置100とを接続してアドレスの受け渡しを行う。4
はアドレスバスの最上位2ビット分であり、メインメモ
リ制御装置500とキャッシュフラッシュ装置100と
を接続してアドレスの受け渡しを行う。なお、バス3と
4とは接続されておらず、各々は独立して設けられてい
る。
【0087】100は本発明に係るキャッシュフラッシ
ュ装置であり、プロセッサ110,120のキャッシュ
状態を監視してキャッシュ管理用メモリ101に記録
し、キャッシュフラッシュが起動するとプロセッサから
ダーティーラインを読み出してメインメモリ制御装置5
00に書き戻す。101はキャッシュ管理用メモリであ
り、プロセッサ110,120のキャッシュラインの状
態を記録する。
【0088】110,120はプロセッサである。11
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリ(コピーバック方式)である。
【0089】500はメインメモリを制御するメインメ
モリ制御装置である。501はメインメモリである。
【0090】600はI/Oバス制御装置である。60
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
【0091】この第2実施形態においても、プロセッサ
は“MESI”プロトコルでキャッシュ管理を行ってい
るものとする。
【0092】図10は、図9で示したシステムの通常動
作時のアドレス出力を模式的に図示したものである。
【0093】プロセッサ110,120からアドレスを
出力するとき、アドレスバスの一部(最上位2ビット
分)3に対してプロセッサ110,120は“00”を
出力する。このとき、キャッシュフラッシュ装置100
はアドレスバスの一部(最上位2ビット分)4に対して
“00”を出力する。よって、メインメモリ制御装置5
00にはプロセッサ110が出力したアドレスがそのま
ま観測される。
【0094】図11は、図9で示したシステムのキャッ
シュフラッシュ前半のアドレス出力を模式的に図示した
ものである。
【0095】キャッシュフラッシュ装置100からプロ
セッサにキャッシュフラッシュ要求(リード要求)をす
るとき、キャッシュフラッシュ装置100はアドレスバ
スの一部3に対して“00”を出力する。プロセッサ1
10が“Modified”データを持っていれば、該プロセッ
サ110は“Modified”応答をして“Modified”データ
を出力してくる。
【0096】キャッシュフラッシュ装置100は、“Mo
dified”データを受け取ると、アドレスバスの一部4に
対して“11”を出力する。よって、メインメモリ制御
装置500はプロセッサ110,120が観測するのと
は異なるアドレスを観測する。このアドレス領域はメイ
ンメモリ501やI/Oバス610,620には割り当
てられていないのでプロセッサ110,120以外は反
応しない。プロセッサ110が出力したデータはキャッ
シュフラッシュ装置100が受け取る。
【0097】図12は、図9で示したシステムのキャッ
シュフラッシュ後半のアドレス出力を模式的に図示した
ものである。
【0098】キャッシュフラッシュ装置100からメイ
ンメモリ制御装置500にライト要求をするとき、キャ
ッシュフラッシュ装置100はアドレスバスの一部3に
対して“00”を出力する。このとき、キャッシュフラ
ッシュ装置100はアドレスバスの一部4に対して“0
0”を出力する。よって、メインメモリ制御装置500
はプロセッサ110,120が観測するのと同じアドレ
スを観測する。プロセッサは、図11で示したキャッシ
ュフラッシュ前半に“Modified”データを出力している
ので、今度は“Modified”応答しない。
【0099】キャッシュフラッシュ装置100が出力し
たライトデータは、そのままメインメモリ制御装置50
0を通じてメインメモリ501に書き込まれる。
【0100】なお、上記の例では、アドレスビット“0
0”,“11”は、偶数ビット数で構成することによ
り、パリティ保護されたアドレスバスに対応させてい
る。しかし、パリティ保護されていないアドレスバスに
対しては、アドレスビットを単純に“0”,“1”(1
ビット分)としても構わない。
【0101】次に、この第2実施形態の動作について説
明する。
【0102】(通常動作)はじめに通常動作を説明す
る。通常動作時には、キャッシュフラッシュ装置100
は、プロセッサに接続されたアドレスバスの一部(最上
位2ビット分)3およびメインメモリ制御装置500に
接続されたアドレスバスの一部(最上位2ビット分)4
の両方に“00”を出力する。これにより、プロセッサ
から出力されたトランザクションは、メインメモリ制御
装置500やI/Oブリッジ600でも同じアドレスと
して観測される。このとき、アドレスバス上のアドレス
によってメインメモリ制御装置500またはI/Oバス
ブリッジ600が反応する。
【0103】ここで、システムバス2上に各種のトラン
ザクションが発行された場合のキャッシュフラッシュ装
置100が行う処理を、図13〜図15を参照して説明
する。
【0104】キャッシュメモリ111,121に“Excl
usive ”状態が発生したときにはキャッシュが“Modifi
ed”状態になったことを外部から観測できない。このた
め、システムバス2上にReadトランザクションが発行さ
れた場合には(ステップE1)、キャッシュフラッシュ
装置100は“Shared”応答をシステムバス2上に返
し、キャッシュを“Shared”状態にする(ステップE
2)。すなわち、“Exclusive ”状態を許さない。キャ
ッシュフラッシュ装置100は、キャッシュ管理用メモ
リ101を検索し、該当するキャッシュラインを“Clea
n ”にする(ステップE3)。
【0105】システムバス2上にInvalidateトランザク
ション又はRead and Invalidate トランザクションが発
行された場合には(ステップF1)、キャッシュフラッ
シュ装置100はキャッシュ管理用メモリ101中の
“Modified”として該当するインデックスの位置にタグ
を保存する(ステップF2)。
【0106】このとき、既に別のキャッシュラインがMo
difiedとして登録されていたら、キャッシュフラッシュ
装置100はプロセッサに接続されたアドレスバスの一
部3には“00”を出力し、メインメモリ制御装置50
0に接続されたアドレスバスの一部4には“11”を出
力し、登録されていたタグとインデックスとから物理ア
ドレスを生成してシステムバス2上に発行する(ステッ
プF3,F4)。プロセッサが“Modified”ラインを持
っていれば、該プロセッサは“Modified”応答をして
“Modified”データを出力してくる。
【0107】キャッシュフラッシュ装置100は、シス
テムバス2から“Modified”データを受け取ると(ステ
ップF5)、システムバス2上にそのアドレスのWrite
トランザクションを発行する(ステップF6)。これに
より、メインメモリ制御装置500は、メインメモリ5
01にデータを書き戻す。
【0108】なお、このようなキャッシュラインの追い
出し時は、後述するキャッシュフラッシュ時と同じよう
に動作するので、メインメモリ制御装置500はプロセ
ッサ110,120からのキャッシュフラッシュ動作に
は反応せず、キャッシュフラッシュ装置100からのラ
イト動作のみに反応する。
【0109】システムバス2上にWrite トランザクショ
ンを発行したならば(ステップG1)、メインメモリ制
御装置500はシステムバス2上にWrite トランザクシ
ョンを発行する(ステップG2)。これにより、メイン
メモリ制御装置500は、メインメモリ501にデータ
を書き込む。そして、キャッシュフラッシュ装置100
は、キャッシュ管理用メモリ101を検索して該当する
キャッシュラインを“Clean ”にする(ステップG
3)。
【0110】(キャッシュフラッシュ時の動作)次に、
キャッシュフラッシュ時の動作を、図16を参照して説
明する。キャッシュフラッシュが開始されると、キャッ
シュフラッシュ装置100はキャッシュ管理用メモリ1
01を検索してプロセッサ110,120にある“Modi
fied”であるキャッシュラインを見つけ(ステップH
1)、システムバス2にリード要求を行う(ステップH
2)。
【0111】このときプロセッサに接続されたアドレス
バスの一部(最上位2ビット分)3には“00”を、メ
インメモリ制御装置500に接続されたアドレスバスの
一部(最上位2ビット分)4には“11”を出力する。
これにより、プロセッサ110,120およびI/Oバ
スブリッジ600にはこのキャッシュフラッシュ用のRe
adトランザクションは観測されるが、メインメモリ制御
装置500には関係の無いアドレス空間に対するアクセ
スとして観測される。なお、リード要求の発行にあたっ
ては、“0バイト”すなわち“Modified”応答が無けれ
ばデータ転送を伴わない形でトランザクションが完了す
るようにする。
【0112】ここで、プロセッサ110もしくは120
が本当に“Modified”であるデータを持っていれば、該
プロセッサはReadトランザクションに対して“Modifie
d”応答をして“Modified”データをシステムバス2に
出力してくる。
【0113】キャッシュフラッシュ装置100は、シス
テムバス2から“Modified”データを受け取ると(ステ
ップH3)、システムバス2上にそのキャッシュライン
のバーストライトトランザクションを発行する(ステッ
プH4)。
【0114】このとき、キャッシュフラッシュ装置10
0は、アドレスバスの一部3,4を共に“00”にし、
プロセッサ110,120とI/Oブリッジ600およ
びメインメモリ制御装置500の両方に普通のアドレス
空間として見えるようにする。
【0115】なお、プロセッサ110,120は、該当
するキャッシュラインをすでに書き戻しているので、今
度は“Shared”応答を返し、プロセッサからのデータ転
送は発生しない。このとき、メインメモリ制御装置50
0はキャッシュフラッシュ装置100からのキャッシュ
フラッシュを単純なバーストライトとして扱えるので、
メインメモリ501へのアクセスは1回だけで終了す
る。
【0116】図18は、この第2実施形態においてキャ
ッシュフラッシュが単独で実行される場合の動作を示す
タイミングチャートである。ここでは、メインメモリ5
01にシンクロナスDRAMを使用している。
【0117】以下、図18を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。
【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がデータを
出力する。
【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 トランザクションしか自装置のアドレ
スとして見えていないので、ライト動作のみを行う。
【0120】図19は、この第2実施形態においてキャ
ッシュフラッシュが3連続で実行される場合の動作を示
すタイミングチャートである。ここでは、メインメモリ
501にシンクロナスDRAMを使用している。
【0121】以下、図19を参照して各種信号について
説明する。なお、図中の横軸はバスサイクル数を示して
いる。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
【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がデ
ータを出力する。
【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 トランザクションしか自装置のアドレ
スとして見えていないのでライト動作のみを行う。
【0124】本例とキャッシュフラッシュ時のスループ
ット、キャッシュフラッシュ終了までの時間の比較結果
を図17に示す。キャッシュ全領域をフラッシュするの
に要する時間はほぼスループットに比例するので、本例
では従来例の約9/13の時間でキャッシュフラッシュ
が終了するので、約30%の高速化を実現する。
【0125】なお、キャッシュ全領域のキャッシュフラ
ッシュ時間はほぼキャッシュフラッシュ時のスループッ
トに比例する。よって、従来方法に比べ、第1実施形態
の方法で約225%、第2実施形態の方法で約44%の
性能向上を実現できる。
【0126】[第3実施形態]次に、第3実施形態を説
明する。図20は、本発明の第3実施形態に係るキャッ
シュフラッシュ装置を含むコンピュータシステムの全体
構成を示すブロック図である。
【0127】この第3実施形態では、プロセッサ11
0,120がMESIプロトコルによる2階層のキャッ
シュメモリを持つ。
【0128】図20において、111,121は第2階
層キャッシュ(以下L2キャッシュと略記する)であ
り、キャッシュフラッシュ装置100に接続されたメモ
リ101’は第3階層キャッシュ(以下L3キャッシュ
と略記する)である。すなわち、第1実施形態(図1)
ではアドレス情報を記憶する管理用メモリ101を使用
したのに対し、この第3実施形態ではその代わりにアド
レス情報のみならず実際のデータをも記憶するキャッシ
ュメモリ(L3キャッシュ)101’を使用している。
すなわち、キャッシュフラッシュ装置100にデータメ
モリを備えることにより外部キャッシュとしての機能を
持たせるようにしている。
【0129】L2キャッシュ111,121に“Exclus
ive ”状態が発生したときには、キャッシュデータの更
新が外部から観測できないので、キャッシュフラッシュ
装置100は第1実施形態と同様にプロセッサ110,
120からのReadトランザクションに対しては“Share
d”応答を返して“Exclusive ”状態を許さないことに
する。
【0130】ここで、L3キャッシュ101’もMES
I方法で管理するが、L3キャッシュ101’の“Modi
fied”状態にはL3キャッシュ101’に記録されたデ
ータが有効(valid )の場合と、L3キャッシュ10
1’のデータは無効で有効データはプロセッサのL2キ
ャッシュ111,121にある場合、の2種類がある。
【0131】以下では、L3キャッシュ101’が“Mo
dified”でデータが有効な場合(即ち、キャッシュフラ
ッシュ装置100事体が最新のデータを持っている状
態)を“Owned (O)”状態と呼び、L3キャッシュ1
01’が“Modified”でデータが有効でない場合(即
ち、L2キャッシュ111,121に最新のデータがあ
る状態)を“Dirty (D)”状態と呼ぶこととし、この
キャッシュ管理方法を“DOSI”プロトコルと呼ぶこ
とにする。
【0132】L2キャッシュ111,121が“Modifi
ed(M)”,“Shared(S)”,“Invalid (I)”の
各状態のときL3キャッシュ101’は図21に示す状
態をとる。ここで、L2キャッシュ111,121のい
ずれかが“Invalid ”状態のときL3キャッシュ10
1’が“Dirty ”という状態をとっていれば、もう一方
のL2キャッシュは“Modified”状態になっている。
【0133】また、このキャッシュシステムはキャッシ
ュフラッシュを目的としたものなので、L2キャッシュ
111,121がL3キャッシュ101’のサブセット
である必要はない。すなわち、L2キャッシュ111,
121が“Shared”の時にL3キャッシュ101’が
“Invalid ”であることも許される。
【0134】次に、この第3実施形態の動作について説
明する。
【0135】(通常動作)はじめに通常動作について説
明する。まず、プロセッサバス10上に各種のトランザ
クションが発行された場合のキャッシュフラッシュ装置
100が行う処理を、図22〜図25を参照して説明す
る。
【0136】プロセッサバス10上にReadトランザクシ
ョンが発行された場合には(ステップJ1)、キャッシ
ュフラッシュ装置100は“Shared”応答を返し、プロ
セッサキャッシュに“Exclusive ”状態が発生するのを
防止する(ステップJ2)。
【0137】L3キャッシュ101’の該当するインデ
ックスに何も登録されていなければ、新しいトランザク
ションを“Shared”として登録し(ステップJ3,J
4)、システムバス1上にReadトランザクションを発行
してメインメモリ501からデータを読み出す(ステッ
プJ5)。“Shared”が登録されていれば、新しいトラ
ンザクションを“Shared”として登録し(ステップJ
3,J6)、アドレスマッチしていれば、古いデータを
捨て(ステップJ7,J8)、システムバス1上にRead
トランザクションを発行してメインメモリ501からデ
ータを読み出す(ステップJ5)。
【0138】ステップJ7でアドレスマッチしていなけ
れば、L3キャッシュ101’内のデータをプロセッサ
バス10に出力する(ステップJ9)。この場合、シス
テムバス1上にはReadトランザクションを発行しない
(ステップJ10)。
【0139】これ以外の場合、すなわちそのキャッシュ
ラインをL3キャッシュ101’が持っていない場合、
もしくはシステムバス1上にすぐにReadトランザクショ
ンを発行できる場合には、システムバス1上にReadトラ
ンザクションを発行してメインメモリ501からデータ
を読み出す。なお、L3キャッシュ101’がそのキャ
ッシュラインを既に持っていれば、L3キャッシュ10
1’のデータをリードデータとしてプロセッサバス10
に出力し、メインメモリ501から読みだしたデータを
捨てる。
【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’はデータを
出力しない。
【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)。
【0142】L3キャッシュ101’の該当するインデ
ックスに“Owned ”として登録されている場合、アドレ
スマッチしているかどうかを調べる(ステップJ3,J
13)。アドレスマッチしていれば、L3キャッシュ1
01’内のデータをプロセッサバス10に出力する(ス
テップJ9)。この場合、システムバス1上にはReadト
ランザクションを発行しない(ステップJ10)。ステ
ップJ13でアドレスマッチしていなければ、システム
バス1上にReadトランザクションを発行してメインメモ
リ501からデータを読み出す(ステップJ14)。
【0143】プロセッサバス10上にRead and Invalid
ate トランザクションが発行された場合には(ステップ
K1)、キャッシュフラッシュ装置100はL3キャッ
シュ101’中の該当するキャッシュラインを“Dirty
”として登録し(ステップK2)、システムバス1上
にRead and Invalidate トランザクションを発行する
(ステップK3)。このとき、L3キャッシュ101’
にすでに他のキャッシュラインが“Dirty ”もしくは
“Owned ”として登録されていたら、そのキャッシュラ
インをフラッシュする(ステップK4,K5)。このフ
ラッシュ動作は後述のキャッシュフラッシュ時の動作と
同じなのでここでは省略する。
【0144】なお、システムバス1からリードデータが
戻るとこのデータをプロセッサバス10に転送すること
なる。L3キャッシュ101’にはデータは登録しなく
てよい。また、プロセッサバス10上でのもともとのRe
ad and Invalidate トランザクションに対してもう一方
のプロセッサが“Modified”応答をすると、キャッシュ
フラッシュ装置100は、システムバス1から戻ってき
たデータを捨てる。
【0145】プロセッサバス10上にInvalidateトラン
ザクションが発行された場合には(ステップL1)、キ
ャッシュフラッシュ装置100はL3キャッシュ10
1’中の該当するキャッシュラインを“Dirty ”として
登録し(ステップL2)、システムバス1上にInvalida
teトランザクションを発行する(ステップL3)。この
とき、L3キャッシュ101’に既に他のキャッシュラ
インが“Dirty ”もしくは“Owned ”として登録されて
いたら、そのキャッシュラインをフラッシュする(ステ
ップL4,L5)。このフラッシュ動作は後述のキャッ
シュフラッシュ時の動作と同じなのでここでは省略す
る。
【0146】プロセッサバス10上にWrite トランザク
ションが発行された場合には(ステップM1)、キャッ
シュフラッシュ装置100はライトデータの転送終了す
るのを待ち(ステップM2)、L3キャッシュ101’
にデータを書き込み(ステップM3)、キャッシュ状態
を“Owned ”にする(ステップM4)。なお、システム
バス1上にはトランザクションを発行しない。
【0147】次に、システムバス1上に各種のトランザ
クションが発行された場合のキャッシュフラッシュ装置
100が行う処理について説明する。
【0148】システムバス1からのアクセスに対して
は、キャッシュフラッシュ装置100はL3キャッシュ
101’を検索して“Dirty ”もしくは“Owned ”の場
合に“Modified”応答をしてキャッシュ内容をシステム
バス1に出力する。
【0149】システムバス1上のトランザクションがRe
adの場合、L3キャッシュ101’が“Owned ”なら
ば、プロセッサバス10上にはトランザクションを発行
せずにシステムバス100にL3キャッシュ101’内
のデータを出力する。
【0150】L3キャッシュ101’が“Dirty ”なら
ば、プロセッサバス10上にReadトランザクションを発
行し、プロセッサにデータを出力させる。なお、いずれ
の場合もL3キャッシュ101’のキャッシュステート
を“Shared”にする。
【0151】システムバス上のトランザクションがWrit
e の場合、L3キャッシュ101’が“Owned ”なら
ば、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、システムバス100にL3キャッシュ10
1’内のデータを出力する。
【0152】L3キャッシュ101’が“Dirty ”なら
プロセッサバス10上にRead and Invalidate トランザ
クションを発行し、プロセッサにデータを出力させる。
なお、いずれの場合もL3キャッシュ101’のキャッ
シュステートを“Invalid ”にし、システムバス1には
“Modified”応答を返す。
【0153】L3キャッシュ101’が“Shared”の場
合、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、L3キャッシュ101’の状態を“Invali
date”にし、システムバスには“Shared”応答を返す。
【0154】L3キャッシュ101’に該当するキャッ
シュラインが登録されていない場合にも本実施形態のプ
ロトコルではプロセッサが“Shared”でデータを持って
いる可能性があるので、プロセッサバス10上にInvali
dateトランザクションを発行し、システムバス1には
“Shared”応答を返す。
【0155】システムバス上のトランザクションがInva
lidate又はRead and Invalidate の場合、L3キャッシ
ュ101’が“Owned ”ならば、プロセッサバス10上
にInvalidateトランザクションを発行し、システムバス
100にL3キャッシュ101’内のデータを出力す
る。
【0156】L3キャッシュ101’が“Dirty ”なら
ば、プロセッサバス10上にRead and Invalidate トラ
ンザクションを発行し、プロセッサにデータを出力させ
る。なお、いずれの場合もL3キャッシュ101’のキ
ャッシュステートを“Invalid ”にし、システムバス1
には“Modified”応答を返す。
【0157】L3キャッシュ101’が“Shared”の場
合、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、L3キャッシュ101の状態を“Invalida
te”にし、システムバスには“Shared”応答を返す。
【0158】L3キャッシュ101’に該当するキャッ
シュラインが登録されていない場合にも本実施形態のプ
ロトコルではプロセッサが“Shared”でデータを持って
いる可能性があるので、プロセッサバス10上にInvali
dateトランザクションを発行し、システムバス1には
“Shared”応答を返す。
【0159】以上見たように、キャッシュフラッシュ装
置100ではL3キャッシュ101’内でのキャッシュ
置換が発生しない限り、システムバス上にはWrite トラ
ンザクションを発行しない。
【0160】(キャッシュフラッシュ時の動作)次に、
キャッシュフラッシュ時の動作を、図26を参照して説
明する。
【0161】キャッシュフラッシュ時には、キャッシュ
フラッシュ装置100はL3キャッシュ101’を検索
し、“Dirty ”状態と“Owned ”状態のものを見つけだ
す(ステップN1)。“Dirty ”状態のものは、L2キ
ャッシュ111,121に最新のデータがあるので、プ
ロセッサバス10上にReadトランザクションを発行し、
プロセッサに最新データを出力させる(ステップN2,
N3)。
【0162】キャッシュフラッシュ装置100は、デー
タを受け取ると(ステップN4)、システムバス1上に
Write トランザクションを発行し、そのデータをメイン
メモリ501に書き戻す(ステップN5)。
【0163】一方、L3キャッシュ101’上で“Owne
d ”状態のものはキャッシュフラッシュ装置100自体
が最新データを持っているので、直ちにシステムバス1
上にWrite トランザクションを発行し、そのデータをメ
インメモリ501に書き戻す(ステップN2,N6)。
【0164】キャッシュフラッシュが完了するとL3キ
ャッシュ101’に登録されたキャッシュ状態は“Shar
ed”または“Invalid ”になる(ステップN7)。
【0165】以上のように、キャッシュフラッシュ時に
はメインメモリ501は単純なライト動作になるので、
高速にキャッシュフラッシュを実行できる。
【0166】なお、レジスタ設定により“Owned ”状態
を許さないように動的に変更できるようにしてL3キャ
ッシュ101’まで含めたキャッシュのダーティー率を
低くするインプリメントを採れば、キャッシュフラッシ
ュ時間をさらに短縮することができる。
【0167】図27はプロセッサ110および120か
ら出力されたプロセッサバス10上のトランザクション
によるL3キャッシュ101の状態遷移を示したもので
ある。
【0168】図中、Dは“Dirty ”状態を示し、プロセ
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
【0169】R&Iは“Read and Invalidate ”トラン
ザクションを示し、メインメモリ501からデータを読
み込むと同時に他のバスエージェントが同じキャッシュ
ラインを持っていればそのラインを無効化するトランザ
クションである。Iは“Invalidate”トランザクション
を示し、他のバスエージェントが同じキャッシュライン
を持っていればそのラインを無効化するトランザクショ
ンである。
【0170】Write は“Burst Write ”トランザクショ
ンを示し、プロセッサ110,120がL2キャッシュ
111,121に持っていた“Modified”ラインを書き
戻すトランザクションである。Readは“Burst Read”ト
ランザクションであり、プロセッサ110,120がL
2キャッシュ111,121にデータを読み出すトラン
ザクションである。
【0171】図28はシステムバス1上のトランザクシ
ョンによるL3キャッシュ101の状態遷移を示したも
のである。
【0172】図中、Dは“Dirty ”状態を示し、プロセ
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
【0173】R&Iは“Read and Invalidate ”トラン
ザクションを示し、メインメモリ501からデータを読
み込むと同時に他のバスエージェントが同じキャッシュ
ラインを持っていればそのラインを無効化するトランザ
クションである。Iは“Invalidate”トランザクション
を示し、他のバスエージェントが同じキャッシュライン
を持っていればそのラインを無効化するトランザクショ
ンである。
【0174】Write は“Burst Write ”トランザクショ
ンを示し、システムバス1からメインメモリ501にデ
ータを書き込むトランザクションである。Readは“Burs
t Read”トランザクションであり、メインメモリ501
からシステムバス1にデータを読み出すトランザクショ
ンである。
【0175】図29はキャッシュフラッシュ装置100
が出力するトランザクションによりプロセッサ110お
よび120、もしくはL3キャッシュ101にある“Mo
dified”データをメインメモリ501に書き戻す時のL
3キャッシュ101の状態遷移を示したものである。
【0176】図中、Dは“Dirty ”状態を示し、プロセ
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
【0177】Write Backは、プロセッサバス10上では
“Burst Read”トランザクション、システムバス1上で
は“Burst Write ”トランザクションを示し、プロセッ
サ110,120が持っている“Modified”データをプ
ロセッサバス10に出力させ、キャッシュフラッシュ装
置100がシステムバス10上にデータを出力するトラ
ンザクションを示す。
【0178】本発明は、フラッシュ装置の実装位置を変
えることで種々のコンピュータシステムに適用できる。
例えば、本発明をI/Oバスとディスクキャッシュとか
らなるシステムに適用することも可能である。
【0179】本発明は上述した各実施形態に限定される
ものではなく、その要旨の範囲で種々変形して実施する
ことが可能である。例えば、第3実施形態で採用したL
3キャッシュを第2実施形態のシステムに適用すること
も可能である。
【0180】
【発明の効果】以上詳述したように本発明によれば、モ
ディファイドデータについてのリード要求を前記キャッ
シュフラッシュ装置からプロセッサバス(プロセッサ)
だけに対して送り、このリード要求に応じて送られてき
たプロセッサからのモディファイドデータをキャッシュ
フラッシュ装置により受け取り、モディファイドデータ
の受け取りが完了したキャッシュラインだけについてメ
インメモリに対するバーストライトを行うようにしてい
る。これにより、キャッシュフラッシュ時に前記メイン
メモリがリードモディファイライト動作せずに単純にバ
ーストライト動作するようになり、キャッシュフラッシ
ュ時間を短縮することができる。特に、本発明をチェッ
クポイントロールバック方式を採用したシステムに適用
した場合には、上記の効果が顕著にあらわれる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るキャッシュフラッ
シュ装置を含むコンピュータシステムの全体構成を示す
ブロック図。
【図2】本発明の第1実施形態における通常動作の一部
を説明するためのフローチャート。
【図3】本発明の第1実施形態における通常動作の一部
を説明するためのフローチャート。
【図4】同実施形態における通常動作の一部を説明する
ためのフローチャート。
【図5】同実施形態においてプロセッサバス上に発行さ
れたトランザクションの種類に応じてキャッシュ管理用
メモリの状態が変更される様子をまとめた図。
【図6】同実施形態におけるキャッシュフラッシュ時の
動作を説明するためのフローチャート。
【図7】同実施形態においてキャッシュフラッシュが単
独で実行される場合の動作を示すタイミングチャート。
【図8】同実施形態においてキャッシュフラッシュが3
連続で実行される場合の動作を示すタイミングチャー
ト。
【図9】本発明の第2実施形態に係るキャッシュフラッ
シュ装置を含むコンピュータシステムの全体構成を示す
ブロック図。
【図10】同実施形態における通常動作時のアドレス出
力を模式的に示す図。
【図11】同実施形態におけるキャッシュフラッシュ前
半のアドレス出力を模式的に示す図。
【図12】同実施形態におけるキャッシュフラッシュ後
半のアドレス出力を模式的に示す図。
【図13】同実施形態における通常動作の一部を説明す
るためのフローチャート。
【図14】同実施形態における通常動作の一部を説明す
るためのフローチャート。
【図15】同実施形態における通常動作の一部を説明す
るためのフローチャート。
【図16】同実施形態におけるキャッシュフラッシュ時
の動作を説明するためのフローチャート。
【図17】第1及び第2実施形態と従来技術との間での
キャッシュフラッシュ時のスループット、キャッシュフ
ラッシュ終了までの時間の比較結果を示す図。
【図18】第2実施形態においてキャッシュフラッシュ
が単独で実行される場合の動作を示すタイミングチャー
ト。
【図19】同実施形態においてキャッシュフラッシュが
3連続で実行される場合の動作を示すタイミングチャー
ト。
【図20】本発明の第3実施形態に係るキャッシュフラ
ッシュ装置を含むコンピュータシステムの全体構成を示
すブロック図。
【図21】同実施形態におけるプロセッサL2のキャッ
シュ状態とプロセッサL3のキャッシュ状態との関係を
示す図。
【図22】同実施形態における通常動作の一部を説明す
るためのフローチャート。
【図23】同実施形態における通常動作の一部を説明す
るためのフローチャート。
【図24】同実施形態における通常動作の一部を説明す
るためのフローチャート。
【図25】同実施形態における通常動作の一部を説明す
るためのフローチャート。
【図26】同実施形態におけるキャッシュフラッシュ時
の動作を説明するためのフローチャート。
【図27】同実施形態におけるプロセッサバス上のトラ
ンザクションによるL3キャッシュの状態遷移を示す
図。
【図28】同実施形態におけるシステムバス上のトラン
ザクションによるL3キャッシュの状態遷移を示す図。
【図29】同実施形態におけるキャッシュフラッシュ装
置が出力するトランザクションによりプロセッサもしく
はL3キャッシュにある“Modified”データをメインメ
モリに書き戻す時のL3キャッシュの状態遷移を示す
図。
【図30】従来のキャッシュフラッシュ装置を含むコン
ピュータシステムの構成を示すブロック図。
【図31】従来のキャッシュフラッシュ装置によりキャ
ッシュフラッシュが単独で実行される場合の動作を示す
タイミングチャート。
【図32】従来のキャッシュフラッシュ装置によりキャ
ッシュフラッシュが3連続で実行される場合の動作を示
すタイミングチャート。
【符号の説明】
1,2…システムバス、3,4…アドレスバスの一部、
10…プロセッサバス、100…キャッシュフラッシュ
装置、101…キャッシュ管理用メモリ、110,12
0…プロセッサ、101’,111,121…キャッシ
ュメモリ、500…メインメモリ制御装置、501…メ
インメモリ、600…I/Oバス制御装置、610,6
20…I/Oバス。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/00 531 G06F 12/00 531J

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 コピーバック方式のキャッシュを備えた
    少なくとも一つのプロセッサと、前記プロセッサが接続
    されるプロセッサバスと、メインメモリと、前記プロセ
    ッサバスと前記メインメモリとに接続されるキャッシュ
    フラッシュ装置とを有するコンピュータシステムに適用
    されるキャッシュフラッシュ方法において、 モディファイドデータについてのリード要求を前記キャ
    ッシュフラッシュ装置から前記プロセッサバスだけに対
    して送り、 前記リード要求に応じて送られてきた前記プロセッサか
    らのモディファイドデータを前記キャッシュフラッシュ
    装置により受け取り、 前記モディファイドデータの受け取りが完了したキャッ
    シュラインだけについて前記メインメモリに対するバー
    ストライトを行い、 キャッシュフラッシュ時に前記メインメモリがリードモ
    ディファイライト動作せずに単純にバーストライト動作
    するようにしたことを特徴とするキャッシュフラッシュ
    方法。
  2. 【請求項2】 前記キャッシュフラッシュ装置は、前記
    プロセッサバスと前記メインメモリとの間にインライン
    で接続されることを特徴とする請求項1記載のキャッシ
    ュフラッシュ方法。
  3. 【請求項3】 前記キャッシュフラッシュ装置と前記プ
    ロセッサとが第1のアドレスバスの一部を通じて接続さ
    れ、前記キャッシュフラッシュ装置と前記メインメモリ
    とが前記第1のアドレスバスとは独立した第2のアドレ
    スバスの一部を通じて接続されることを特徴とする請求
    項1記載のキャッシュフラッシュ方法。
  4. 【請求項4】 前記リード要求時に、前記プロセッサに
    リード要求を観測させるためのアドレスビットを前記キ
    ャッシュフラッシュ装置から前記第1のアドレスバスの
    一部に出力すると共に、前記メインメモリには無関係の
    アドレスビットを前記キャッシュフラッシュ装置から前
    記第2のアドレスバスの一部に出力し、 前記バーストライト時に、前記メインメモリに対するバ
    ーストライトを可能とするアドレスビットを前記キャッ
    シュフラッシュ装置から前記第2のアドレスバスの一部
    に出力することを特徴とする請求項3記載のキャッシュ
    フラッシュ方法。
  5. 【請求項5】 前記の各アドレスバスに出力するアドレ
    スビットを偶数ビット数で構成することによりパリティ
    保護されたアドレスバスに対応させたことを特徴とする
    請求項4記載のキャッシュフラッシュ方法。
  6. 【請求項6】 前記プロセッサにリード要求を観測させ
    るためのアドレスビットを全て“0”とし、前記メイン
    メモリに無関係のアドレスビットを全て“1”とし、前
    記メインメモリに対するバーストライトを可能とするア
    ドレスビットを全て“0”としたことを特徴とする請求
    項5記載のキャッシュフラッシュ方法。
  7. 【請求項7】 前記キャッシュフラッシュ装置にデータ
    メモリを備えることにより外部キャッシュとしての機能
    を有するようにしたことを特徴とする請求項2記載のキ
    ャッシュフラッシュ方法。
  8. 【請求項8】 前記キャッシュフラッシュ装置にデータ
    メモリを備えることにより外部キャッシュとしての機能
    を有するようにしたことを特徴とする請求項3乃至5の
    いずれかに記載のキャッシュフラッシュ方法。
  9. 【請求項9】 コピーバック方式のキャッシュを備えた
    少なくとも一つのプロセッサと、前記プロセッサが接続
    されるプロセッサバスと、メインメモリと、前記プロセ
    ッサバスと前記メインメモリとに接続されるキャッシュ
    フラッシュ装置とを有するコンピュータシステムに設け
    られるキャッシュフラッシュ装置において、 モディファイドデータについてのリード要求を前記プロ
    セッサバスだけに対して送る手段と、 前記リード要求に応じて送られてきた前記プロセッサか
    らのモディファイドデータを受け取る手段と、 前記モディファイドデータの受け取りが完了したキャッ
    シュラインだけについて前記メインメモリに対するバー
    ストライトを行う手段とを具備し、キャッシュフラッシ
    ュ時に前記メインメモリがリードモディファイライト動
    作せずに単純にバーストライト動作するようにしたこと
    を特徴とするキャッシュフラッシュ装置。
  10. 【請求項10】 前記キャッシュフラッシュ装置は、前
    記プロセッサバスと前記メインメモリとの間にインライ
    ンで接続されることを特徴とする請求項9記載のキャッ
    シュフラッシュ装置。
  11. 【請求項11】 前記キャッシュフラッシュ装置と前記
    プロセッサとが第1のアドレスバスの一部を通じて接続
    され、前記キャッシュフラッシュ装置と前記メインメモ
    リとが前記第1のアドレスバスとは独立した第2のアド
    レスバスの一部を通じて接続されることを特徴とする請
    求項9記載のキャッシュフラッシュ装置。
  12. 【請求項12】 前記リード要求時に、前記プロセッサ
    にリード要求を観測させるためのアドレスビットを前記
    キャッシュフラッシュ装置から前記第1のアドレスバス
    の一部に出力すると共に、前記メインメモリには無関係
    のアドレスビットを前記キャッシュフラッシュ装置から
    前記第2のアドレスバスの一部に出力する手段と、 前記バーストライト時に、前記メインメモリに対するバ
    ーストライトを可能とするアドレスビットを前記キャッ
    シュフラッシュ装置から前記第2のアドレスバスの一部
    に出力する手段とを更に具備したことを特徴とする請求
    項11記載のキャッシュフラッシュ装置。
  13. 【請求項13】 前記の各アドレスバスに出力するアド
    レスビットを偶数ビット数で構成することによりパリテ
    ィ保護されたアドレスバスに対応させたことを特徴とす
    る請求項12記載のキャッシュフラッシュ装置。
  14. 【請求項14】 前記プロセッサにリード要求を観測さ
    せるためのアドレスビットを全て“0”とし、前記メイ
    ンメモリに無関係のアドレスビットを全て“1”とし、
    前記メインメモリに対するバーストライトを可能とする
    アドレスビットを全て“0”としたことを特徴とする請
    求項13記載のキャッシュフラッシュ装置。
  15. 【請求項15】 前記キャッシュフラッシュ装置にデー
    タメモリを備えることにより外部キャッシュとしての機
    能を有するようにしたことを特徴とする請求項10記載
    のキャッシュフラッシュ装置。
  16. 【請求項16】 前記キャッシュフラッシュ装置にデー
    タメモリを備えることにより外部キャッシュとしての機
    能を有するようにしたことを特徴とする請求項11乃至
    13のいずれかに記載のキャッシュフラッシュ装置。
JP18295498A 1998-06-29 1998-06-29 キャッシュフラッシュ方法および装置 Expired - Fee Related JP4091171B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18295498A JP4091171B2 (ja) 1998-06-29 1998-06-29 キャッシュフラッシュ方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18295498A JP4091171B2 (ja) 1998-06-29 1998-06-29 キャッシュフラッシュ方法および装置

Publications (2)

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

Family

ID=16127260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18295498A Expired - Fee Related JP4091171B2 (ja) 1998-06-29 1998-06-29 キャッシュフラッシュ方法および装置

Country Status (1)

Country Link
JP (1) JP4091171B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (ja) * 2004-07-06 2006-01-26 Fujitsu Ltd 情報処理装置
JP2006164077A (ja) * 2004-12-09 2006-06-22 Internatl Business Mach Corp <Ibm> メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (ja) * 2004-07-06 2006-01-26 Fujitsu Ltd 情報処理装置
JP4725044B2 (ja) * 2004-07-06 2011-07-13 富士通株式会社 情報処理装置
JP2006164077A (ja) * 2004-12-09 2006-06-22 Internatl Business Mach Corp <Ibm> メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法

Also Published As

Publication number Publication date
JP4091171B2 (ja) 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 (ja) 2重化キャッシュ・スヌープ機構
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 (ja) マルチプロセッサシステム
JP2014089760A (ja) キャッシュ競合の解決
JPH08328957A (ja) マルチプロセッシング・システムにおけるキャッシュ・パフォーマンス向上のためのシステムおよび方法
JPH10320283A (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
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 (zh) 用于支持多处理器架构的***缓存架构和芯片
WO1997004392A1 (en) Shared cache memory device
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
JP4091171B2 (ja) キャッシュフラッシュ方法および装置
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JP2001034533A (ja) キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法
JPH03230238A (ja) キャッシュメモリ制御方式
JP4856373B2 (ja) メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法
JPH10187535A (ja) 計算機システム及びメモリ状態復元装置
JPH04302044A (ja) マルチプロセッサシステム

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