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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Retry When Errors Occur (AREA)
Abstract
ーストライト動作するようにしてキャッシュフラッシュ
時間を短縮する。 【解決手段】 キャッシュフラッシュ装置100は、モ
ディファイドデータについてのリード要求をプロセッサ
バス10だけに対して送る。この場合、メインメモリ制
御装置500側にはリード要求は通知されない。そし
て、キャッシュフラッシュ装置100は、リード要求に
応じて送られてきたプロセッサ110又は120からの
モディファイドデータを受け取り、当該受け取りが完了
したキャッシュラインだけについて前記メインメモリに
対するバーストライトをメインメモリ制御装置500を
介して行う。これにより、キャッシュフラッシュ時にメ
インメモリ501がリード・モディファイ・ライト動作
せずに単純にバーストライト動作するようになる。
Description
のキャッシュを有するコンピュータシステムに適用され
るキャッシュフラッシュ方法および装置に関し、特にチ
ェックポイント取得方式を採用するコンピュータシステ
ムに適用されるキャッシュフラッシュ方法および装置に
する。
によるメインメモリへのアクセスを高速化するために、
プロセッサが必要とするデータを一時的に格納するキャ
ッシュが用いられている。通常、このキャッシュは、キ
ャッシュブロックと呼ばれる所定の大きさのデータ単位
でデータを保持する。また、このキャッシュは、キャッ
シュタグと呼ばれる管理情報を保持し、キャッシュに格
納したキャッシュブロックのデータが、メインメモリの
中のどのデータであるのか、およびプロセッサによって
変更されてメインメモリの内容と異なっている状態(モ
ディファイド状態、ダーティ状態)にあるか等を管理し
ている。
(マルチプロセッサシステム)においては、複数のキャ
ッシュ間でデータの一貫性を保証するために、スヌープ
機構をもったキャッシュがよく用いられる。このスヌー
プ機構は、バス上に発行されたバスコマンド(又はトラ
ンザクション)が、自身のキャッシュに格納されたデー
タに影響を与えないか、あるいは自身のキャッシュに格
納されたデータを応答として返さなければならないかを
監視し、必要であれば、該当するデータの無効化などを
行うものである。
なわち、プロセッサによるデータの更新を直ちにメイン
メモリに反映させないタイプのキャッシュの場合、プロ
セッサによってキャッシュ上で変更されてメインメモリ
の内容と異なっているデータ(モディファイド状態のデ
ータ)を、積極的にメインメモリへ書き戻す操作が必要
となる。例えば、スヌープ機構を持たない入出力装置に
対してキャッシュが保持するデータを転送する場合など
に必要となる。このキャッシュが保持するデータのう
ち、モディファイド状態にあるデータをメインメモリに
書き戻すことをキャッシュフラッシュと呼ぶ。また、モ
ディファイド状態にあるキャッシュブロックをモディフ
ァイドブロックと呼ぶ。
ックポイント方式の計算機において必要とされる処理で
ある。すなわち、計算機に何らかの障害が発生したとき
に、予め取得しておいたチェックポイントの時点から処
理を再開するチェックポイント方式の計算機の場合、各
チェックポイントの時点で、キャッシュ中にのみ存在す
る変更されたデータをまとめてメインメモリに書き戻す
(キャッシュフラッシュする)必要があるためである。
方式としては、プロセッサにキャッシュフラッシュ命令
を実行させる方式と、キャッシュフラッシュ装置を用い
てキャッシュフラッシュ命令を実行させる方式とが挙げ
られる。
は、キャッシュフラッシュ装置からプロセッサバス上に
非バーストリードトランザクションを発行することでプ
ロセッサ内のダーティーラインをメインメモリに書き戻
すようにしている。この場合のシステム構成例について
以下に説明する。
置を含むコンピュータシステムの構成を示すブロック図
である。
0,120と、メインメモリ制御装置500と、I/O
制御装置600と、キャッシュフラッシュ装置100と
を接続し、データの受け渡しを行う。
り、プロセッサ110,120が持つキャッシュメモリ
のキャッシュ状態を監視してキャッシュ管理用メモリ1
01にアドレス情報を記録し、キャッシュフラッシュが
起動するとプロセッサからダーティーラインを読み出し
てメインメモリ制御装置500に書き戻す。101はキ
ャッシュ管理用メモリであり、プロセッサ110,12
0のキャッシュラインの状態を含むアドレス情報を記録
する。
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリである。
モリ制御装置である。501はメインメモリである。
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
実行される場合の動作を示すタイミングチャートであ
る。ここでは、メインメモリ501にシンクロナスDR
AMを使用している。
説明する。なお、図中の横軸はバスサイクル数を示して
いる。
ランザクションのアドレスであり、キャッシュフラッシ
ュ装置100が出力する。システムバスのSnoop は、シ
ステムトランザクションに対するスヌープ応答であり、
プロセッサ110,120のいずれかが出力する。この
図の例では、“Modified”応答を出している。システム
バスのDataは、システムトランザクションに対するデー
タであり、プロセッサ110,120のいずれかが出力
する。なお、Readトランザクションに対するスヌープ応
答が“Modified”以外の場合、通常はメインメモリ制御
装置500がデータを出力する。
制御装置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がリー
ドデータを出力する。
する場合の動作を示すタイミングチャートである。
説明する。なお、図中の横軸はバスサイクル数を示して
いる。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
ランザクションのアドレスであり、キャッシュフラッシ
ュ装置100が出力する。システムバスのSnoop は、シ
ステムトランザクションに対するスヌープ応答であり、
プロセッサ110,120のいずれかが出力する。この
図の例では、“Modified”応答を出している。システム
バスのDataは、システムトランザクションに対するデー
タであり、プロセッサ110,120のいずれかが出力
する。なお、Readトランザクションに対するスヌープ応
答が“Modified”以外の場合、通常はメインメモリ制御
装置500がデータを出力する。
制御装置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がリー
ドデータを出力する。
ッシュ装置を用いてキャッシュフラッシュを行う方式で
は、一般にメインメモリは非バースト転送に対してプロ
セッサがキャッシュに“Modified”データを持っている
ことは想定しておらず、インプリメントを簡単にしてい
る。このためにメインメモリの動作が「リード・モディ
ファイ・ライト」となり、メインメモリがシステムの性
能上のボトルネックとなっている。この結果、キャッシ
ュフラッシュ時間が長くなるという問題がある。
命令を実行させる方式では、プロセッサの種類によって
はキャッシュが全て無効化されてしまうため、キャッシ
ュフラッシュ終了後に命令キャッシュ、データキャッシ
ュの中身をメインメモリから読み出さなくてはならず、
性能低下の要因となっている。
あり、キャッシュフラッシュ時にメインメモリがリード
・モディファイ・ライト動作することなくバーストライ
ト動作するようにして、キャッシュフラッシュ時間を短
縮するキャッシュフラッシュ方法および装置を提供する
ことを目的とする。
に、本発明のキャッシュフラッシュ方法は、コピーバッ
ク方式のキャッシュを備えた少なくとも一つのプロセッ
サと、前記プロセッサが接続されるプロセッサバスと、
メインメモリと、前記プロセッサバスと前記メインメモ
リとに接続されるキャッシュフラッシュ装置とを有する
コンピュータシステムに適用されるキャッシュフラッシ
ュ方法において、モディファイドデータについてのリー
ド要求を前記キャッシュフラッシュ装置から前記プロセ
ッサバスだけに対して送り、前記リード要求に応じて送
られてきた前記プロセッサからのモディファイドデータ
を前記キャッシュフラッシュ装置により受け取り、前記
モディファイドデータの受け取りが完了したキャッシュ
ラインだけについて前記メインメモリに対するバースト
ライトを行い、キャッシュフラッシュ時に前記メインメ
モリがリードモディファイライト動作せずに単純にバー
ストライト動作するようにしたことを特徴とする。
いて、前記キャッシュフラッシュ装置は、例えば前記プ
ロセッサバスと前記メインメモリとの間にインラインで
接続されるようにしてもよい。
いて、前記キャッシュフラッシュ装置と前記プロセッサ
とが第1のアドレスバスの一部を通じて接続され、前記
キャッシュフラッシュ装置と前記メインメモリとが前記
第1のアドレスバスとは独立した第2のアドレスバスの
一部を通じて接続されるようにしてもよい。
いて、前記リード要求時に、前記プロセッサにリード要
求を観測させるためのアドレスビットを前記キャッシュ
フラッシュ装置から前記第1のアドレスバスの一部に出
力すると共に、前記メインメモリには無関係のアドレス
ビットを前記キャッシュフラッシュ装置から前記第2の
アドレスバスの一部に出力し、前記バーストライト時
に、前記メインメモリに対するバーストライトを可能と
するアドレスビットを前記キャッシュフラッシュ装置か
ら前記第2のアドレスバスの一部に出力するようにして
もよい。
いて、前記の各アドレスバスに出力するアドレスビット
を偶数ビット数で構成することによりパリティ保護され
たアドレスバスに対応させるようにしてもよい。
いて、前記プロセッサにリード要求を観測させるための
アドレスビットを全て“0”とし、前記メインメモリに
無関係のアドレスビットを全て“1”とし、前記メイン
メモリに対するバーストライトを可能とするアドレスビ
ットを全て“0”とするようにしてもよい。
いて、前記キャッシュフラッシュ装置にデータメモリを
備えることにより外部キャッシュとしての機能を有する
ようにしてもよい。
のキャッシュフラッシュ装置は、コピーバック方式のキ
ャッシュを備えた少なくとも一つのプロセッサと、前記
プロセッサが接続されるプロセッサバスと、メインメモ
リと、前記プロセッサバスと前記メインメモリとに接続
されるキャッシュフラッシュ装置とを有するコンピュー
タシステムに設けられるキャッシュフラッシュ装置にお
いて、モディファイドデータについてのリード要求を前
記プロセッサバスだけに対して送る手段と、前記リード
要求に応じて送られてきた前記プロセッサからのモディ
ファイドデータを受け取る手段と、前記モディファイド
データの受け取りが完了したキャッシュラインだけにつ
いて前記メインメモリに対するバーストライトを行う手
段とを具備し、キャッシュフラッシュ時に前記メインメ
モリがリードモディファイライト動作せずに単純にバー
ストライト動作するようにしたことを特徴とする。
前記プロセッサバスと前記メインメモリとの間にインラ
インで接続されるものであってもよい。
いて、前記キャッシュフラッシュ装置と前記プロセッサ
とが第1のアドレスバスの一部を通じて接続され、前記
キャッシュフラッシュ装置と前記メインメモリとが前記
第1のアドレスバスとは独立した第2のアドレスバスの
一部を通じて接続されるものであってもよい。
前記リード要求時に、前記プロセッサにリード要求を観
測させるためのアドレスビットを前記キャッシュフラッ
シュ装置から前記第1のアドレスバスの一部に出力する
と共に、前記メインメモリには無関係のアドレスビット
を前記キャッシュフラッシュ装置から前記第2のアドレ
スバスの一部に出力する手段と、前記バーストライト時
に、前記メインメモリに対するバーストライトを可能と
するアドレスビットを前記キャッシュフラッシュ装置か
ら前記第2のアドレスバスの一部に出力する手段とを更
に具備していてもよい。
前記の各アドレスバスに出力するアドレスビットを偶数
ビット数で構成することによりパリティ保護されたアド
レスバスに対応させたものであってもよい。
前記プロセッサにリード要求を観測させるためのアドレ
スビットを全て“0”とし、前記メインメモリに無関係
のアドレスビットを全て“1”とし、前記メインメモリ
に対するバーストライトを可能とするアドレスビットを
全て“0”としたものであってもよい。
データメモリを備えることにより外部キャッシュとして
の機能を有するようにしたものであってもよい。
施の形態を説明する。
施形態に係るキャッシュフラッシュ装置を含むコンピュ
ータシステムの全体構成を示すブロック図である。
御装置500とI/O制御装置600とキャッシュフラ
ッシュ装置100とを接続し、データの受け渡しを行
う。
110,120とキャッシュフラッシュ装置100を接
続し、データの受け渡しを行う。
ュ装置であり、プロセッサ110,120のキャッシュ
状態を監視してキャッシュ管理用メモリ101にアドレ
ス情報を記録し、キャッシュフラッシュが起動するとプ
ロセッサからダーティーラインを読み出してメインメモ
リ制御装置500に書き戻す。101はキャッシュ管理
用メモリであり、プロセッサ110,120のキャッシ
ュラインの状態を含むアドレス情報を記録する。
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリ(コピーバック方式)である。
モリ制御装置である。501はメインメモリである。
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
プロセッサバス10とメインメモリ制御装置500(メ
インメモリ501)との間にインラインで接続されてい
る。このため、この構成例は、メインメモリのために使
用可能なアドレス空間に制限が発生せず、アダプタ接続
方式で実現しやすいという利点がある。
0が“MESI”プロトコルでキャッシュ管理を行って
いる場合を例にとって説明する。ここで、“MESI”
は、キャッシュメモリ111,121上の各キャッシュ
ブロックの取り得る4種類の状態、すなわち、以下に説
明するような“Modified”,“Exclusive ”,“Share
d”,“Invalid ”の各種の状態を示すものである。な
お、以下では、それぞれの頭文字を用いて単に“M”,
“E”,“S”,“I”と呼ぶ場合があるものとする。
クには更新されたデータが存在する。他のプロセッサの
キャッシュブロックには、このデータは存在しない。 Exclusive (E): そのキャッシュブロックには、メ
インメモリ501と同一内容のデータが存在する。他の
キャッシュメモリのキャッシュブロックには、このデー
タは存在しない。 Shared(S): そのキャッシュブロックには、メイン
メモリ501と同一内容のデータが存在する。他のプロ
セッサのキャッシュブロックにも、このデータが存在す
る可能性がある。 Invalid (I): そのキャッシュブロックには有効な
データが存在しない。
よび“Shared(S)”は、“Clean(C)”に相当する
ものである。
に発行される各種のトランザクションには、以下に説明
するように“Read and Invalidate ”,“Invalidat
e”,“Write ”,“Read”などがある。
ータを更新しようとして、キャッシュメモリ中にそのデ
ータが無い場合に発行されるものであり、キャッシュブ
ロックデータのリード、および他のキャッシュブロック
の無効化要求を意味する。
態のキャッシュブロックのデータを更新しようとする場
合に発行されるものであり、他のキャッシュメモリのデ
ータ無効化要求を意味する。
ブロックに他のアドレスのデータを格納しなければなら
なくなったために、“Modified”状態のキャッシュブロ
ックの内容をメインメモリ501に書き戻す必要がある
場合に発行されるものであり、キャッシュブロックデー
タのメインメモリ501への書込み要求を意味する。
て、キャッシュメモリ中にそのデータが無い場合に発行
されるものであり、キャッシュブロックデータのリード
要求を意味する。
明する。
る。通常動作時には、プロセッサバス10上に発行され
たトランザクションをキャッシュフラッシュ装置100
が受け取り、必要なトランザクションをシステムバス1
上に発行する。このとき、メインメモリ制御装置500
またはI/Oバスブリッジ600がシステムバス1上の
アドレスによって反応する。
ャッシュフラッシュ装置100を通じてメモリアクセス
もしくはI/Oアクセスを行うので、プロセッサの内部
レジスタ等の特殊な空間を除けばキャッシュフラッシュ
装置100がトランザクションのターゲットアドレスを
保持し、キャッシュフラッシュ装置100がトランザク
ションへのレスポンスを返す責任を持つ。
ランザクションが発行された場合のキャッシュフラッシ
ュ装置100が行う処理を、図2〜図4を参照して説明
する。
usive ”状態が発生したときには、キャッシュが“Modi
fied”状態になったことを外部から観測できない。この
ため、プロセッサバス10上にReadトランザクションが
発行された場合には(ステップA1)、キャッシュフラ
ッシュ装置100は“Shared”応答をプロセッサバス1
0上に返し、キャッシュを“Shared”状態にする(ステ
ップA2)。すなわち、“Exclusive ”状態を許さな
い。そして、キャッシュフラッシュ装置100は、キャ
ッシュ管理用メモリ101を検索して該当するキャッシ
ュラインを“Clean ”にする(ステップA3)。
ザクション又はRead and Invalidate トランザクション
が発行された場合には(ステップB1)、キャッシュフ
ラッシュ装置100はキャッシュ管理用メモリ101中
の“Modified”として該当するインデックスの位置にタ
グを保存する(ステップB2)。このとき、既に別のキ
ャッシュラインがModifiedとして登録されていたら、キ
ャッシュフラッシュ装置100は登録されていたタグと
インデックスとから物理アドレスを生成してプロセッサ
バス10上にReadトランザクションを発行する(ステッ
プB3,B4)。プロセッサが“Modified”ラインを持
っていれば、該プロセッサは“Modified”応答をして
“Modified”データをプロセッサバス10上に出力して
くる。
セッサバス10から“Modified”データを受け取ると
(ステップB5)、システムバス1上にそのアドレスの
Writeトランザクションを発行する(ステップB6)。
これにより、メインメモリ制御装置500は、メインメ
モリ501にデータを書き戻す。
ションが発行された場合には(ステップC1)、キャッ
シュフラッシュ装置100はシステムバス1上にWrite
トランザクションを発行する(ステップC2)。これに
より、メインメモリ制御装置500は、メインメモリ5
01にデータを書き込む。そして、キャッシュフラッシ
ュ装置100は、キャッシュ管理用メモリ101を検索
して該当するキャッシュラインを“Clean ”にする(ス
テップC3)。
ランザクションの種類に応じてキャッシュ管理用メモリ
101の状態が変更される様子をまとめたものである。
101が「プロセッサが“Modified”ラインを持ってい
る」と認識している状態を示す。“C”は、キャッシュ
管理用メモリ101が「プロセッサが“Modified”ライ
ンを持っていない」と認識している状態“Clean ”を示
す。このときのプロセッサキャッシュの状態は、“Inva
lid ”または“Shared”である。“M(追い出し)”
は、キャッシュ管理用メモリ101が「プロセッサが
“Modified”ラインを持っている」と認識し、かつキャ
ッシュ管理用メモリ101に登録されていたエントリの
リードをプロセッサバス上に発行してプロセッサキャッ
シュ内の“Modified”ラインを追い出すことを示す。
キャッシュフラッシュ時の動作を、図6を参照して説明
する。キャッシュフラッシュが開始されると、キャッシ
ュフラッシュ装置100は、キャッシュ管理用メモリ1
01を検索してプロセッサ110,120にある“Modi
fied”であるキャッシュラインを見つけ(ステップD
1)、プロセッサバス10だけに対してリード要求を行
う(ステップD2)。なお、リード要求の発行にあたっ
ては、“0バイト”すなわち“Modified”応答が無けれ
ばデータ転送を伴わない形でトランザクションが完了す
るようにする。
が本当に“Modified”であるデータを持っていれば、該
プロセッサはReadトランザクションに対して“Modifie
d”応答をして“Modified”データをプロセッサバス1
0上に出力してくる。
セッサバス10から“Modified”データを受け取ると
(ステップD3)、システムバス1上にそのキャッシュ
ラインのバーストライトトランザクションを発行し(ス
テップD4)、キャッシュフラッシュを完了する。
としては、キャッシュフラッシュ装置100からのキャ
ッシュフラッシュを単純なバーストライトとして扱える
ので、メインメモリ501へのアクセスは1回だけで終
了する。
シュフラッシュが単独で実行される場合の動作を示すタ
イミングチャートである。ここでは、メインメモリ50
1にシンクロナスDRAMを使用している。
明する。なお、図中の横軸はバスサイクル数を示してい
る。
ストランザクションのアドレスであり、キャッシュフラ
ッシュ装置100が出力する。プロセッサバスのSnoop
は、システムトランザクションに対するスヌープ応答で
あり、プロセッサ110,120のいずれかが出力す
る。この図の例では、“Modified”応答を出している。
プロセッサバスのDataは、システムトランザクションに
対するデータであり、プロセッサ110,120のいず
れかが出力する。なお、Readトランザクションに対する
スヌープ応答が“Modified”以外の場合、通常はキャッ
シュフラッシュ装置100がデータを出力する。
は、キャッシュフラッシュ装置100内のデータバッフ
ァがプロセッサバス10上のデータを受け取る様子を示
している。
トランザクションのアドレスであり、キャッシュフラッ
シュ装置100が出力する。システムバスのSnoop は、
システムバストランザクションに対するスヌープ応答で
あり、本構成の場合、通常はメインメモリ制御装置50
0が“Normal”応答を返す。システムバスのDataは、シ
ステムバストランザクションに対するデータ出力であ
り、本構成の場合、プロセッサバス10上でプロセッサ
110もしくは120が出力したデータをキャッシュフ
ラッシュ装置100が出力する。
制御装置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がリー
ドデータを出力する。
シュフラッシュが3連続で実行される場合の動作を示す
タイミングチャートである。ここでは、メインメモリ5
01にシンクロナスDRAMを使用している。
明する。なお、図中の横軸はバスサイクル数を示してい
る。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
ストランザクションのアドレスであり、キャッシュフラ
ッシュ装置100が出力する。プロセッサバスのSnoop
は、システムトランザクションに対するスヌープ応答で
あり、プロセッサ110,120のいずれかが出力す
る。この図の例では、“Modified”応答をしている。プ
ロセッサバスのDataは、システムトランザクションに対
するデータであり、プロセッサ110,120のいずれ
かが出力する。なお、Readトランザクションに対するス
ヌープ応答が“Modified”以外の場合、通常はキャッシ
ュフラッシュ装置100がデータを出力する。
は、キャッシュフラッシュ装置100内のデータバッフ
ァがプロセッサバス10上のデータを受け取る様子を示
している。
トランザクションのアドレスであり、キャッシュフラッ
シュ装置100が出力する。システムバスのSnoop は、
システムバストランザクションに対するスヌープ応答で
あり、本構成の場合、通常はメインメモリ制御装置50
0が“Normal”応答を返す。システムバスのDataは、シ
ステムバストランザクションに対するデータ出力であ
り、本構成の場合、プロセッサバス10上でプロセッサ
110もしくは120が出力したデータをキャッシュフ
ラッシュ装置100が出力する。
制御装置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がリー
ドデータを出力する。
ット、キャッシュフラッシュ終了までの時間の比較結果
を図17に示す。キャッシュ全領域をフラッシュするの
に要する時間はほぼスループットに比例するので、本例
では従来例の1/3以下の時間でキャッシュフラッシュ
が終了する。
明する。
ッシュフラッシュ装置を含むコンピュータシステムの全
体構成を示すブロック図である。
スバスの最上位2ビット分を除いたものである。このシ
ステムバス2は、メインメモリ制御装置500と、I/
O制御装置600と、キャッシュフラッシュ装置100
と、プロセッサ110,120とを接続してデータの受
け渡しを行う。なお、プロセッサバスに相当する部分は
このシステムバス2に含まれているものと考える。
り、プロセッサ110,120とキャッシュフラッシュ
装置100とを接続してアドレスの受け渡しを行う。4
はアドレスバスの最上位2ビット分であり、メインメモ
リ制御装置500とキャッシュフラッシュ装置100と
を接続してアドレスの受け渡しを行う。なお、バス3と
4とは接続されておらず、各々は独立して設けられてい
る。
ュ装置であり、プロセッサ110,120のキャッシュ
状態を監視してキャッシュ管理用メモリ101に記録
し、キャッシュフラッシュが起動するとプロセッサから
ダーティーラインを読み出してメインメモリ制御装置5
00に書き戻す。101はキャッシュ管理用メモリであ
り、プロセッサ110,120のキャッシュラインの状
態を記録する。
1,121はそれぞれプロセッサ110,120のキャ
ッシュメモリ(コピーバック方式)である。
モリ制御装置である。501はメインメモリである。
1,602はI/Oバス制御装置600に接続されるI
/Oバスである。
は“MESI”プロトコルでキャッシュ管理を行ってい
るものとする。
作時のアドレス出力を模式的に図示したものである。
出力するとき、アドレスバスの一部(最上位2ビット
分)3に対してプロセッサ110,120は“00”を
出力する。このとき、キャッシュフラッシュ装置100
はアドレスバスの一部(最上位2ビット分)4に対して
“00”を出力する。よって、メインメモリ制御装置5
00にはプロセッサ110が出力したアドレスがそのま
ま観測される。
シュフラッシュ前半のアドレス出力を模式的に図示した
ものである。
セッサにキャッシュフラッシュ要求(リード要求)をす
るとき、キャッシュフラッシュ装置100はアドレスバ
スの一部3に対して“00”を出力する。プロセッサ1
10が“Modified”データを持っていれば、該プロセッ
サ110は“Modified”応答をして“Modified”データ
を出力してくる。
dified”データを受け取ると、アドレスバスの一部4に
対して“11”を出力する。よって、メインメモリ制御
装置500はプロセッサ110,120が観測するのと
は異なるアドレスを観測する。このアドレス領域はメイ
ンメモリ501やI/Oバス610,620には割り当
てられていないのでプロセッサ110,120以外は反
応しない。プロセッサ110が出力したデータはキャッ
シュフラッシュ装置100が受け取る。
シュフラッシュ後半のアドレス出力を模式的に図示した
ものである。
ンメモリ制御装置500にライト要求をするとき、キャ
ッシュフラッシュ装置100はアドレスバスの一部3に
対して“00”を出力する。このとき、キャッシュフラ
ッシュ装置100はアドレスバスの一部4に対して“0
0”を出力する。よって、メインメモリ制御装置500
はプロセッサ110,120が観測するのと同じアドレ
スを観測する。プロセッサは、図11で示したキャッシ
ュフラッシュ前半に“Modified”データを出力している
ので、今度は“Modified”応答しない。
たライトデータは、そのままメインメモリ制御装置50
0を通じてメインメモリ501に書き込まれる。
0”,“11”は、偶数ビット数で構成することによ
り、パリティ保護されたアドレスバスに対応させてい
る。しかし、パリティ保護されていないアドレスバスに
対しては、アドレスビットを単純に“0”,“1”(1
ビット分)としても構わない。
明する。
る。通常動作時には、キャッシュフラッシュ装置100
は、プロセッサに接続されたアドレスバスの一部(最上
位2ビット分)3およびメインメモリ制御装置500に
接続されたアドレスバスの一部(最上位2ビット分)4
の両方に“00”を出力する。これにより、プロセッサ
から出力されたトランザクションは、メインメモリ制御
装置500やI/Oブリッジ600でも同じアドレスと
して観測される。このとき、アドレスバス上のアドレス
によってメインメモリ制御装置500またはI/Oバス
ブリッジ600が反応する。
ザクションが発行された場合のキャッシュフラッシュ装
置100が行う処理を、図13〜図15を参照して説明
する。
usive ”状態が発生したときにはキャッシュが“Modifi
ed”状態になったことを外部から観測できない。このた
め、システムバス2上にReadトランザクションが発行さ
れた場合には(ステップE1)、キャッシュフラッシュ
装置100は“Shared”応答をシステムバス2上に返
し、キャッシュを“Shared”状態にする(ステップE
2)。すなわち、“Exclusive ”状態を許さない。キャ
ッシュフラッシュ装置100は、キャッシュ管理用メモ
リ101を検索し、該当するキャッシュラインを“Clea
n ”にする(ステップE3)。
ション又はRead and Invalidate トランザクションが発
行された場合には(ステップF1)、キャッシュフラッ
シュ装置100はキャッシュ管理用メモリ101中の
“Modified”として該当するインデックスの位置にタグ
を保存する(ステップF2)。
difiedとして登録されていたら、キャッシュフラッシュ
装置100はプロセッサに接続されたアドレスバスの一
部3には“00”を出力し、メインメモリ制御装置50
0に接続されたアドレスバスの一部4には“11”を出
力し、登録されていたタグとインデックスとから物理ア
ドレスを生成してシステムバス2上に発行する(ステッ
プF3,F4)。プロセッサが“Modified”ラインを持
っていれば、該プロセッサは“Modified”応答をして
“Modified”データを出力してくる。
テムバス2から“Modified”データを受け取ると(ステ
ップF5)、システムバス2上にそのアドレスのWrite
トランザクションを発行する(ステップF6)。これに
より、メインメモリ制御装置500は、メインメモリ5
01にデータを書き戻す。
出し時は、後述するキャッシュフラッシュ時と同じよう
に動作するので、メインメモリ制御装置500はプロセ
ッサ110,120からのキャッシュフラッシュ動作に
は反応せず、キャッシュフラッシュ装置100からのラ
イト動作のみに反応する。
ンを発行したならば(ステップG1)、メインメモリ制
御装置500はシステムバス2上にWrite トランザクシ
ョンを発行する(ステップG2)。これにより、メイン
メモリ制御装置500は、メインメモリ501にデータ
を書き込む。そして、キャッシュフラッシュ装置100
は、キャッシュ管理用メモリ101を検索して該当する
キャッシュラインを“Clean ”にする(ステップG
3)。
キャッシュフラッシュ時の動作を、図16を参照して説
明する。キャッシュフラッシュが開始されると、キャッ
シュフラッシュ装置100はキャッシュ管理用メモリ1
01を検索してプロセッサ110,120にある“Modi
fied”であるキャッシュラインを見つけ(ステップH
1)、システムバス2にリード要求を行う(ステップH
2)。
バスの一部(最上位2ビット分)3には“00”を、メ
インメモリ制御装置500に接続されたアドレスバスの
一部(最上位2ビット分)4には“11”を出力する。
これにより、プロセッサ110,120およびI/Oバ
スブリッジ600にはこのキャッシュフラッシュ用のRe
adトランザクションは観測されるが、メインメモリ制御
装置500には関係の無いアドレス空間に対するアクセ
スとして観測される。なお、リード要求の発行にあたっ
ては、“0バイト”すなわち“Modified”応答が無けれ
ばデータ転送を伴わない形でトランザクションが完了す
るようにする。
が本当に“Modified”であるデータを持っていれば、該
プロセッサはReadトランザクションに対して“Modifie
d”応答をして“Modified”データをシステムバス2に
出力してくる。
テムバス2から“Modified”データを受け取ると(ステ
ップH3)、システムバス2上にそのキャッシュライン
のバーストライトトランザクションを発行する(ステッ
プH4)。
0は、アドレスバスの一部3,4を共に“00”にし、
プロセッサ110,120とI/Oブリッジ600およ
びメインメモリ制御装置500の両方に普通のアドレス
空間として見えるようにする。
するキャッシュラインをすでに書き戻しているので、今
度は“Shared”応答を返し、プロセッサからのデータ転
送は発生しない。このとき、メインメモリ制御装置50
0はキャッシュフラッシュ装置100からのキャッシュ
フラッシュを単純なバーストライトとして扱えるので、
メインメモリ501へのアクセスは1回だけで終了す
る。
ッシュフラッシュが単独で実行される場合の動作を示す
タイミングチャートである。ここでは、メインメモリ5
01にシンクロナスDRAMを使用している。
説明する。なお、図中の横軸はバスサイクル数を示して
いる。
バストランザクションのアドレスであり、キャッシュフ
ラッシュ装置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がデータを
出力する。
制御装置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 トランザクションしか自装置のアドレ
スとして見えていないので、ライト動作のみを行う。
ッシュフラッシュが3連続で実行される場合の動作を示
すタイミングチャートである。ここでは、メインメモリ
501にシンクロナスDRAMを使用している。
説明する。なお、図中の横軸はバスサイクル数を示して
いる。また、図中の==、--、++はそれぞれ一番目、二番
目、三番目のバストランザクションに対応する。
バストランザクションのアドレスであり、キャッシュフ
ラッシュ装置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がデ
ータを出力する。
制御装置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 トランザクションしか自装置のアドレ
スとして見えていないのでライト動作のみを行う。
ット、キャッシュフラッシュ終了までの時間の比較結果
を図17に示す。キャッシュ全領域をフラッシュするの
に要する時間はほぼスループットに比例するので、本例
では従来例の約9/13の時間でキャッシュフラッシュ
が終了するので、約30%の高速化を実現する。
ッシュ時間はほぼキャッシュフラッシュ時のスループッ
トに比例する。よって、従来方法に比べ、第1実施形態
の方法で約225%、第2実施形態の方法で約44%の
性能向上を実現できる。
明する。図20は、本発明の第3実施形態に係るキャッ
シュフラッシュ装置を含むコンピュータシステムの全体
構成を示すブロック図である。
0,120がMESIプロトコルによる2階層のキャッ
シュメモリを持つ。
層キャッシュ(以下L2キャッシュと略記する)であ
り、キャッシュフラッシュ装置100に接続されたメモ
リ101’は第3階層キャッシュ(以下L3キャッシュ
と略記する)である。すなわち、第1実施形態(図1)
ではアドレス情報を記憶する管理用メモリ101を使用
したのに対し、この第3実施形態ではその代わりにアド
レス情報のみならず実際のデータをも記憶するキャッシ
ュメモリ(L3キャッシュ)101’を使用している。
すなわち、キャッシュフラッシュ装置100にデータメ
モリを備えることにより外部キャッシュとしての機能を
持たせるようにしている。
ive ”状態が発生したときには、キャッシュデータの更
新が外部から観測できないので、キャッシュフラッシュ
装置100は第1実施形態と同様にプロセッサ110,
120からのReadトランザクションに対しては“Share
d”応答を返して“Exclusive ”状態を許さないことに
する。
I方法で管理するが、L3キャッシュ101’の“Modi
fied”状態にはL3キャッシュ101’に記録されたデ
ータが有効(valid )の場合と、L3キャッシュ10
1’のデータは無効で有効データはプロセッサのL2キ
ャッシュ111,121にある場合、の2種類がある。
dified”でデータが有効な場合(即ち、キャッシュフラ
ッシュ装置100事体が最新のデータを持っている状
態)を“Owned (O)”状態と呼び、L3キャッシュ1
01’が“Modified”でデータが有効でない場合(即
ち、L2キャッシュ111,121に最新のデータがあ
る状態)を“Dirty (D)”状態と呼ぶこととし、この
キャッシュ管理方法を“DOSI”プロトコルと呼ぶこ
とにする。
ed(M)”,“Shared(S)”,“Invalid (I)”の
各状態のときL3キャッシュ101’は図21に示す状
態をとる。ここで、L2キャッシュ111,121のい
ずれかが“Invalid ”状態のときL3キャッシュ10
1’が“Dirty ”という状態をとっていれば、もう一方
のL2キャッシュは“Modified”状態になっている。
ュフラッシュを目的としたものなので、L2キャッシュ
111,121がL3キャッシュ101’のサブセット
である必要はない。すなわち、L2キャッシュ111,
121が“Shared”の時にL3キャッシュ101’が
“Invalid ”であることも許される。
明する。
明する。まず、プロセッサバス10上に各種のトランザ
クションが発行された場合のキャッシュフラッシュ装置
100が行う処理を、図22〜図25を参照して説明す
る。
ョンが発行された場合には(ステップJ1)、キャッシ
ュフラッシュ装置100は“Shared”応答を返し、プロ
セッサキャッシュに“Exclusive ”状態が発生するのを
防止する(ステップJ2)。
ックスに何も登録されていなければ、新しいトランザク
ションを“Shared”として登録し(ステップJ3,J
4)、システムバス1上にReadトランザクションを発行
してメインメモリ501からデータを読み出す(ステッ
プJ5)。“Shared”が登録されていれば、新しいトラ
ンザクションを“Shared”として登録し(ステップJ
3,J6)、アドレスマッチしていれば、古いデータを
捨て(ステップJ7,J8)、システムバス1上にRead
トランザクションを発行してメインメモリ501からデ
ータを読み出す(ステップJ5)。
れば、L3キャッシュ101’内のデータをプロセッサ
バス10に出力する(ステップJ9)。この場合、シス
テムバス1上にはReadトランザクションを発行しない
(ステップJ10)。
ラインをL3キャッシュ101’が持っていない場合、
もしくはシステムバス1上にすぐにReadトランザクショ
ンを発行できる場合には、システムバス1上にReadトラ
ンザクションを発行してメインメモリ501からデータ
を読み出す。なお、L3キャッシュ101’がそのキャ
ッシュラインを既に持っていれば、L3キャッシュ10
1’のデータをリードデータとしてプロセッサバス10
に出力し、メインメモリ501から読みだしたデータを
捨てる。
インデックスに“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’はデータを
出力しない。
するインデックスに“Dirty ”として登録されている場
合、アドレスマッチしているかどうかを調べる(ステッ
プJ3,J11)。アドレスマッチしていれば、L3キ
ャッシュ101’を“Owned”に変更し、Implicit Writ
e Back データをL3キャッシュ101’に書き込む
(ステップJ11,J12)。この場合、システムバス
1上にはReadトランザクションを発行しない(ステップ
J10)。ステップJ11でアドレスマッチしていなけ
れば、システムバス1上にReadトランザクションを発行
してメインメモリ501からデータを読み出す(ステッ
プJ14)。
ックスに“Owned ”として登録されている場合、アドレ
スマッチしているかどうかを調べる(ステップJ3,J
13)。アドレスマッチしていれば、L3キャッシュ1
01’内のデータをプロセッサバス10に出力する(ス
テップJ9)。この場合、システムバス1上にはReadト
ランザクションを発行しない(ステップJ10)。ステ
ップJ13でアドレスマッチしていなければ、システム
バス1上にReadトランザクションを発行してメインメモ
リ501からデータを読み出す(ステップJ14)。
ate トランザクションが発行された場合には(ステップ
K1)、キャッシュフラッシュ装置100はL3キャッ
シュ101’中の該当するキャッシュラインを“Dirty
”として登録し(ステップK2)、システムバス1上
にRead and Invalidate トランザクションを発行する
(ステップK3)。このとき、L3キャッシュ101’
にすでに他のキャッシュラインが“Dirty ”もしくは
“Owned ”として登録されていたら、そのキャッシュラ
インをフラッシュする(ステップK4,K5)。このフ
ラッシュ動作は後述のキャッシュフラッシュ時の動作と
同じなのでここでは省略する。
戻るとこのデータをプロセッサバス10に転送すること
なる。L3キャッシュ101’にはデータは登録しなく
てよい。また、プロセッサバス10上でのもともとのRe
ad and Invalidate トランザクションに対してもう一方
のプロセッサが“Modified”応答をすると、キャッシュ
フラッシュ装置100は、システムバス1から戻ってき
たデータを捨てる。
ザクションが発行された場合には(ステップL1)、キ
ャッシュフラッシュ装置100はL3キャッシュ10
1’中の該当するキャッシュラインを“Dirty ”として
登録し(ステップL2)、システムバス1上にInvalida
teトランザクションを発行する(ステップL3)。この
とき、L3キャッシュ101’に既に他のキャッシュラ
インが“Dirty ”もしくは“Owned ”として登録されて
いたら、そのキャッシュラインをフラッシュする(ステ
ップL4,L5)。このフラッシュ動作は後述のキャッ
シュフラッシュ時の動作と同じなのでここでは省略す
る。
ションが発行された場合には(ステップM1)、キャッ
シュフラッシュ装置100はライトデータの転送終了す
るのを待ち(ステップM2)、L3キャッシュ101’
にデータを書き込み(ステップM3)、キャッシュ状態
を“Owned ”にする(ステップM4)。なお、システム
バス1上にはトランザクションを発行しない。
クションが発行された場合のキャッシュフラッシュ装置
100が行う処理について説明する。
は、キャッシュフラッシュ装置100はL3キャッシュ
101’を検索して“Dirty ”もしくは“Owned ”の場
合に“Modified”応答をしてキャッシュ内容をシステム
バス1に出力する。
adの場合、L3キャッシュ101’が“Owned ”なら
ば、プロセッサバス10上にはトランザクションを発行
せずにシステムバス100にL3キャッシュ101’内
のデータを出力する。
ば、プロセッサバス10上にReadトランザクションを発
行し、プロセッサにデータを出力させる。なお、いずれ
の場合もL3キャッシュ101’のキャッシュステート
を“Shared”にする。
e の場合、L3キャッシュ101’が“Owned ”なら
ば、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、システムバス100にL3キャッシュ10
1’内のデータを出力する。
プロセッサバス10上にRead and Invalidate トランザ
クションを発行し、プロセッサにデータを出力させる。
なお、いずれの場合もL3キャッシュ101’のキャッ
シュステートを“Invalid ”にし、システムバス1には
“Modified”応答を返す。
合、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、L3キャッシュ101’の状態を“Invali
date”にし、システムバスには“Shared”応答を返す。
シュラインが登録されていない場合にも本実施形態のプ
ロトコルではプロセッサが“Shared”でデータを持って
いる可能性があるので、プロセッサバス10上にInvali
dateトランザクションを発行し、システムバス1には
“Shared”応答を返す。
lidate又はRead and Invalidate の場合、L3キャッシ
ュ101’が“Owned ”ならば、プロセッサバス10上
にInvalidateトランザクションを発行し、システムバス
100にL3キャッシュ101’内のデータを出力す
る。
ば、プロセッサバス10上にRead and Invalidate トラ
ンザクションを発行し、プロセッサにデータを出力させ
る。なお、いずれの場合もL3キャッシュ101’のキ
ャッシュステートを“Invalid ”にし、システムバス1
には“Modified”応答を返す。
合、プロセッサバス10上にInvalidateトランザクショ
ンを発行し、L3キャッシュ101の状態を“Invalida
te”にし、システムバスには“Shared”応答を返す。
シュラインが登録されていない場合にも本実施形態のプ
ロトコルではプロセッサが“Shared”でデータを持って
いる可能性があるので、プロセッサバス10上にInvali
dateトランザクションを発行し、システムバス1には
“Shared”応答を返す。
置100ではL3キャッシュ101’内でのキャッシュ
置換が発生しない限り、システムバス上にはWrite トラ
ンザクションを発行しない。
キャッシュフラッシュ時の動作を、図26を参照して説
明する。
フラッシュ装置100はL3キャッシュ101’を検索
し、“Dirty ”状態と“Owned ”状態のものを見つけだ
す(ステップN1)。“Dirty ”状態のものは、L2キ
ャッシュ111,121に最新のデータがあるので、プ
ロセッサバス10上にReadトランザクションを発行し、
プロセッサに最新データを出力させる(ステップN2,
N3)。
タを受け取ると(ステップN4)、システムバス1上に
Write トランザクションを発行し、そのデータをメイン
メモリ501に書き戻す(ステップN5)。
d ”状態のものはキャッシュフラッシュ装置100自体
が最新データを持っているので、直ちにシステムバス1
上にWrite トランザクションを発行し、そのデータをメ
インメモリ501に書き戻す(ステップN2,N6)。
ャッシュ101’に登録されたキャッシュ状態は“Shar
ed”または“Invalid ”になる(ステップN7)。
はメインメモリ501は単純なライト動作になるので、
高速にキャッシュフラッシュを実行できる。
を許さないように動的に変更できるようにしてL3キャ
ッシュ101’まで含めたキャッシュのダーティー率を
低くするインプリメントを採れば、キャッシュフラッシ
ュ時間をさらに短縮することができる。
ら出力されたプロセッサバス10上のトランザクション
によるL3キャッシュ101の状態遷移を示したもので
ある。
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
ザクションを示し、メインメモリ501からデータを読
み込むと同時に他のバスエージェントが同じキャッシュ
ラインを持っていればそのラインを無効化するトランザ
クションである。Iは“Invalidate”トランザクション
を示し、他のバスエージェントが同じキャッシュライン
を持っていればそのラインを無効化するトランザクショ
ンである。
ンを示し、プロセッサ110,120がL2キャッシュ
111,121に持っていた“Modified”ラインを書き
戻すトランザクションである。Readは“Burst Read”ト
ランザクションであり、プロセッサ110,120がL
2キャッシュ111,121にデータを読み出すトラン
ザクションである。
ョンによるL3キャッシュ101の状態遷移を示したも
のである。
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
ザクションを示し、メインメモリ501からデータを読
み込むと同時に他のバスエージェントが同じキャッシュ
ラインを持っていればそのラインを無効化するトランザ
クションである。Iは“Invalidate”トランザクション
を示し、他のバスエージェントが同じキャッシュライン
を持っていればそのラインを無効化するトランザクショ
ンである。
ンを示し、システムバス1からメインメモリ501にデ
ータを書き込むトランザクションである。Readは“Burs
t Read”トランザクションであり、メインメモリ501
からシステムバス1にデータを読み出すトランザクショ
ンである。
が出力するトランザクションによりプロセッサ110お
よび120、もしくはL3キャッシュ101にある“Mo
dified”データをメインメモリ501に書き戻す時のL
3キャッシュ101の状態遷移を示したものである。
ッサ110または120がModifiedデータを持っている
ことを示す。Oは“Owned ”状態を示し、L3キャッシ
ュ101がModifiedデータを持っていることを示す。S
は“Shared”状態を示し、L3キャッシュ101がメイ
ンメモリ501と同じデータを持っていることを示す。
Iは“Invalid ”状態を示し、L3キャッシュ101の
内容が有効でないことを示す。
“Burst Read”トランザクション、システムバス1上で
は“Burst Write ”トランザクションを示し、プロセッ
サ110,120が持っている“Modified”データをプ
ロセッサバス10に出力させ、キャッシュフラッシュ装
置100がシステムバス10上にデータを出力するトラ
ンザクションを示す。
えることで種々のコンピュータシステムに適用できる。
例えば、本発明をI/Oバスとディスクキャッシュとか
らなるシステムに適用することも可能である。
ものではなく、その要旨の範囲で種々変形して実施する
ことが可能である。例えば、第3実施形態で採用したL
3キャッシュを第2実施形態のシステムに適用すること
も可能である。
ディファイドデータについてのリード要求を前記キャッ
シュフラッシュ装置からプロセッサバス(プロセッサ)
だけに対して送り、このリード要求に応じて送られてき
たプロセッサからのモディファイドデータをキャッシュ
フラッシュ装置により受け取り、モディファイドデータ
の受け取りが完了したキャッシュラインだけについてメ
インメモリに対するバーストライトを行うようにしてい
る。これにより、キャッシュフラッシュ時に前記メイン
メモリがリードモディファイライト動作せずに単純にバ
ーストライト動作するようになり、キャッシュフラッシ
ュ時間を短縮することができる。特に、本発明をチェッ
クポイントロールバック方式を採用したシステムに適用
した場合には、上記の効果が顕著にあらわれる。
シュ装置を含むコンピュータシステムの全体構成を示す
ブロック図。
を説明するためのフローチャート。
を説明するためのフローチャート。
ためのフローチャート。
れたトランザクションの種類に応じてキャッシュ管理用
メモリの状態が変更される様子をまとめた図。
動作を説明するためのフローチャート。
独で実行される場合の動作を示すタイミングチャート。
連続で実行される場合の動作を示すタイミングチャー
ト。
シュ装置を含むコンピュータシステムの全体構成を示す
ブロック図。
力を模式的に示す図。
半のアドレス出力を模式的に示す図。
半のアドレス出力を模式的に示す図。
るためのフローチャート。
るためのフローチャート。
るためのフローチャート。
の動作を説明するためのフローチャート。
キャッシュフラッシュ時のスループット、キャッシュフ
ラッシュ終了までの時間の比較結果を示す図。
が単独で実行される場合の動作を示すタイミングチャー
ト。
3連続で実行される場合の動作を示すタイミングチャー
ト。
ッシュ装置を含むコンピュータシステムの全体構成を示
すブロック図。
シュ状態とプロセッサL3のキャッシュ状態との関係を
示す図。
るためのフローチャート。
るためのフローチャート。
るためのフローチャート。
るためのフローチャート。
の動作を説明するためのフローチャート。
ンザクションによるL3キャッシュの状態遷移を示す
図。
ザクションによるL3キャッシュの状態遷移を示す図。
置が出力するトランザクションによりプロセッサもしく
はL3キャッシュにある“Modified”データをメインメ
モリに書き戻す時のL3キャッシュの状態遷移を示す
図。
ピュータシステムの構成を示すブロック図。
ッシュフラッシュが単独で実行される場合の動作を示す
タイミングチャート。
ッシュフラッシュが3連続で実行される場合の動作を示
すタイミングチャート。
10…プロセッサバス、100…キャッシュフラッシュ
装置、101…キャッシュ管理用メモリ、110,12
0…プロセッサ、101’,111,121…キャッシ
ュメモリ、500…メインメモリ制御装置、501…メ
インメモリ、600…I/Oバス制御装置、610,6
20…I/Oバス。
Claims (16)
- 【請求項1】 コピーバック方式のキャッシュを備えた
少なくとも一つのプロセッサと、前記プロセッサが接続
されるプロセッサバスと、メインメモリと、前記プロセ
ッサバスと前記メインメモリとに接続されるキャッシュ
フラッシュ装置とを有するコンピュータシステムに適用
されるキャッシュフラッシュ方法において、 モディファイドデータについてのリード要求を前記キャ
ッシュフラッシュ装置から前記プロセッサバスだけに対
して送り、 前記リード要求に応じて送られてきた前記プロセッサか
らのモディファイドデータを前記キャッシュフラッシュ
装置により受け取り、 前記モディファイドデータの受け取りが完了したキャッ
シュラインだけについて前記メインメモリに対するバー
ストライトを行い、 キャッシュフラッシュ時に前記メインメモリがリードモ
ディファイライト動作せずに単純にバーストライト動作
するようにしたことを特徴とするキャッシュフラッシュ
方法。 - 【請求項2】 前記キャッシュフラッシュ装置は、前記
プロセッサバスと前記メインメモリとの間にインライン
で接続されることを特徴とする請求項1記載のキャッシ
ュフラッシュ方法。 - 【請求項3】 前記キャッシュフラッシュ装置と前記プ
ロセッサとが第1のアドレスバスの一部を通じて接続さ
れ、前記キャッシュフラッシュ装置と前記メインメモリ
とが前記第1のアドレスバスとは独立した第2のアドレ
スバスの一部を通じて接続されることを特徴とする請求
項1記載のキャッシュフラッシュ方法。 - 【請求項4】 前記リード要求時に、前記プロセッサに
リード要求を観測させるためのアドレスビットを前記キ
ャッシュフラッシュ装置から前記第1のアドレスバスの
一部に出力すると共に、前記メインメモリには無関係の
アドレスビットを前記キャッシュフラッシュ装置から前
記第2のアドレスバスの一部に出力し、 前記バーストライト時に、前記メインメモリに対するバ
ーストライトを可能とするアドレスビットを前記キャッ
シュフラッシュ装置から前記第2のアドレスバスの一部
に出力することを特徴とする請求項3記載のキャッシュ
フラッシュ方法。 - 【請求項5】 前記の各アドレスバスに出力するアドレ
スビットを偶数ビット数で構成することによりパリティ
保護されたアドレスバスに対応させたことを特徴とする
請求項4記載のキャッシュフラッシュ方法。 - 【請求項6】 前記プロセッサにリード要求を観測させ
るためのアドレスビットを全て“0”とし、前記メイン
メモリに無関係のアドレスビットを全て“1”とし、前
記メインメモリに対するバーストライトを可能とするア
ドレスビットを全て“0”としたことを特徴とする請求
項5記載のキャッシュフラッシュ方法。 - 【請求項7】 前記キャッシュフラッシュ装置にデータ
メモリを備えることにより外部キャッシュとしての機能
を有するようにしたことを特徴とする請求項2記載のキ
ャッシュフラッシュ方法。 - 【請求項8】 前記キャッシュフラッシュ装置にデータ
メモリを備えることにより外部キャッシュとしての機能
を有するようにしたことを特徴とする請求項3乃至5の
いずれかに記載のキャッシュフラッシュ方法。 - 【請求項9】 コピーバック方式のキャッシュを備えた
少なくとも一つのプロセッサと、前記プロセッサが接続
されるプロセッサバスと、メインメモリと、前記プロセ
ッサバスと前記メインメモリとに接続されるキャッシュ
フラッシュ装置とを有するコンピュータシステムに設け
られるキャッシュフラッシュ装置において、 モディファイドデータについてのリード要求を前記プロ
セッサバスだけに対して送る手段と、 前記リード要求に応じて送られてきた前記プロセッサか
らのモディファイドデータを受け取る手段と、 前記モディファイドデータの受け取りが完了したキャッ
シュラインだけについて前記メインメモリに対するバー
ストライトを行う手段とを具備し、キャッシュフラッシ
ュ時に前記メインメモリがリードモディファイライト動
作せずに単純にバーストライト動作するようにしたこと
を特徴とするキャッシュフラッシュ装置。 - 【請求項10】 前記キャッシュフラッシュ装置は、前
記プロセッサバスと前記メインメモリとの間にインライ
ンで接続されることを特徴とする請求項9記載のキャッ
シュフラッシュ装置。 - 【請求項11】 前記キャッシュフラッシュ装置と前記
プロセッサとが第1のアドレスバスの一部を通じて接続
され、前記キャッシュフラッシュ装置と前記メインメモ
リとが前記第1のアドレスバスとは独立した第2のアド
レスバスの一部を通じて接続されることを特徴とする請
求項9記載のキャッシュフラッシュ装置。 - 【請求項12】 前記リード要求時に、前記プロセッサ
にリード要求を観測させるためのアドレスビットを前記
キャッシュフラッシュ装置から前記第1のアドレスバス
の一部に出力すると共に、前記メインメモリには無関係
のアドレスビットを前記キャッシュフラッシュ装置から
前記第2のアドレスバスの一部に出力する手段と、 前記バーストライト時に、前記メインメモリに対するバ
ーストライトを可能とするアドレスビットを前記キャッ
シュフラッシュ装置から前記第2のアドレスバスの一部
に出力する手段とを更に具備したことを特徴とする請求
項11記載のキャッシュフラッシュ装置。 - 【請求項13】 前記の各アドレスバスに出力するアド
レスビットを偶数ビット数で構成することによりパリテ
ィ保護されたアドレスバスに対応させたことを特徴とす
る請求項12記載のキャッシュフラッシュ装置。 - 【請求項14】 前記プロセッサにリード要求を観測さ
せるためのアドレスビットを全て“0”とし、前記メイ
ンメモリに無関係のアドレスビットを全て“1”とし、
前記メインメモリに対するバーストライトを可能とする
アドレスビットを全て“0”としたことを特徴とする請
求項13記載のキャッシュフラッシュ装置。 - 【請求項15】 前記キャッシュフラッシュ装置にデー
タメモリを備えることにより外部キャッシュとしての機
能を有するようにしたことを特徴とする請求項10記載
のキャッシュフラッシュ装置。 - 【請求項16】 前記キャッシュフラッシュ装置にデー
タメモリを備えることにより外部キャッシュとしての機
能を有するようにしたことを特徴とする請求項11乃至
13のいずれかに記載のキャッシュフラッシュ装置。
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)
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> | メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法 |
-
1998
- 1998-06-29 JP JP18295498A patent/JP4091171B2/ja not_active Expired - Fee Related
Cited By (3)
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 |