JP4091171B2 - キャッシュフラッシュ方法および装置 - Google Patents
キャッシュフラッシュ方法および装置 Download PDFInfo
- Publication number
- JP4091171B2 JP4091171B2 JP18295498A JP18295498A JP4091171B2 JP 4091171 B2 JP4091171 B2 JP 4091171B2 JP 18295498 A JP18295498 A JP 18295498A JP 18295498 A JP18295498 A JP 18295498A JP 4091171 B2 JP4091171 B2 JP 4091171B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- main memory
- processor
- address
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、コピーバック方式のキャッシュを有するコンピュータシステムに適用されるキャッシュフラッシュ方法および装置に関し、特にチェックポイント取得方式を採用するコンピュータシステムに適用されるキャッシュフラッシュ方法および装置にする。
【0002】
【従来の技術】
一般に、計算機においては、プロセッサによるメインメモリへのアクセスを高速化するために、プロセッサが必要とするデータを一時的に格納するキャッシュが用いられている。通常、このキャッシュは、キャッシュブロックと呼ばれる所定の大きさのデータ単位でデータを保持する。また、このキャッシュは、キャッシュタグと呼ばれる管理情報を保持し、キャッシュに格納したキャッシュブロックのデータが、メインメモリの中のどのデータであるのか、およびプロセッサによって変更されてメインメモリの内容と異なっている状態(モディファイド状態、ダーティ状態)にあるか等を管理している。
【0003】
プロセッサを複数設けた計算機システム(マルチプロセッサシステム)においては、複数のキャッシュ間でデータの一貫性を保証するために、スヌープ機構をもったキャッシュがよく用いられる。このスヌープ機構は、バス上に発行されたバスコマンド(又はトランザクション)が、自身のキャッシュに格納されたデータに影響を与えないか、あるいは自身のキャッシュに格納されたデータを応答として返さなければならないかを監視し、必要であれば、該当するデータの無効化などを行うものである。
【0004】
コピーバック方式のキャッシュの場合、すなわち、プロセッサによるデータの更新を直ちにメインメモリに反映させないタイプのキャッシュの場合、プロセッサによってキャッシュ上で変更されてメインメモリの内容と異なっているデータ(モディファイド状態のデータ)を、積極的にメインメモリへ書き戻す操作が必要となる。例えば、スヌープ機構を持たない入出力装置に対してキャッシュが保持するデータを転送する場合などに必要となる。このキャッシュが保持するデータのうち、モディファイド状態にあるデータをメインメモリに書き戻すことをキャッシュフラッシュと呼ぶ。また、モディファイド状態にあるキャッシュブロックをモディファイドブロックと呼ぶ。
【0005】
このキャッシュフラッシュは、特に、チェックポイント方式の計算機において必要とされる処理である。すなわち、計算機に何らかの障害が発生したときに、予め取得しておいたチェックポイントの時点から処理を再開するチェックポイント方式の計算機の場合、各チェックポイントの時点で、キャッシュ中にのみ存在する変更されたデータをまとめてメインメモリに書き戻す(キャッシュフラッシュする)必要があるためである。
【0006】
上記キャッシュフラッシュ操作を実現する方式としては、プロセッサにキャッシュフラッシュ命令を実行させる方式と、キャッシュフラッシュ装置を用いてキャッシュフラッシュ命令を実行させる方式とが挙げられる。
【0007】
キャッシュフラッシュ装置を用いる方式では、キャッシュフラッシュ装置からプロセッサバス上に非バーストリードトランザクションを発行することでプロセッサ内のダーティーラインをメインメモリに書き戻すようにしている。この場合のシステム構成例について以下に説明する。
【0008】
図30は、従来のキャッシュフラッシュ装置を含むコンピュータシステムの構成を示すブロック図である。
【0009】
2はシステムバスであり、プロセッサ110,120と、メインメモリ制御装置500と、I/O制御装置600と、キャッシュフラッシュ装置100とを接続し、データの受け渡しを行う。
【0010】
100はキャッシュフラッシュ装置であり、プロセッサ110,120が持つキャッシュメモリのキャッシュ状態を監視してキャッシュ管理用メモリ101にアドレス情報を記録し、キャッシュフラッシュが起動するとプロセッサからダーティーラインを読み出してメインメモリ制御装置500に書き戻す。101はキャッシュ管理用メモリであり、プロセッサ110,120のキャッシュラインの状態を含むアドレス情報を記録する。
【0011】
110,120はプロセッサである。111,121はそれぞれプロセッサ110,120のキャッシュメモリである。
【0012】
500はメインメモリを制御するメインメモリ制御装置である。501はメインメモリである。
【0013】
600はI/Oバス制御装置である。601,602はI/Oバス制御装置600に接続されるI/Oバスである。
【0014】
図31は、キャッシュフラッシュが単独で実行される場合の動作を示すタイミングチャートである。ここでは、メインメモリ501にシンクロナスDRAMを使用している。
【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は、メインメモリ制御装置500が出力するメインメモリ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は、メインメモリ制御装置500が出力するメインメモリ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のアドレスバスの一部を通じて接続され、前記キャッシュフラッシュ装置と前記プロセッサと前記メインメモリとがアドレスバスの他の部分を通じて接続されるコンピュータシステムに適用されるキャッシュフラッシュ方法であって、前記第1のアドレスバスの一部に出力するアドレスビットと前記第2のアドレスバスの一部に出力するアドレスビットとを異なるようにしつつ、モディファイドデータについてのリード要求を前記キャッシュフラッシュ装置が前記アドレスバスに対して送り、前記リード要求に応じて送られてきた前記プロセッサからのモディファイドデータを前記キャッシュフラッシュ装置により受け取り、前記モディファイドデータの受け取りが完了したキャッシュラインだけについて前記メインメモリに対するバーストライトを行い、キャッシュフラッシュ時に前記メインメモリがリードモディファイライト動作せずに単純にバーストライト動作するようにしたことを特徴とする。
【0028】
また、前記キャッシュフラッシュ方法において、前記リード要求時に、前記プロセッサにリード要求を観測させるためのアドレスビットを前記キャッシュフラッシュ装置から前記第1のアドレスバスの一部に出力すると共に、前記メインメモリには無関係のアドレスビットを前記キャッシュフラッシュ装置から前記第2のアドレスバスの一部に出力し、前記バーストライト時に、前記メインメモリに対するバーストライトを可能とするアドレスビットを前記キャッシュフラッシュ装置から前記第2のアドレスバスの一部に出力するようにしてもよい。
【0029】
また、前記キャッシュフラッシュ方法において、前記の各アドレスバスの一部に出力するアドレスビットを偶数ビット数で構成することによりパリティ保護されたアドレスバスに対応させるようにしてもよい。
【0030】
また、前記キャッシュフラッシュ方法において、前記プロセッサにリード要求を観測させるためのアドレスビットを全て“0”とし、前記メインメモリに無関係のアドレスビットを全て“1”とし、前記メインメモリに対するバーストライトを可能とするアドレスビットを全て“0”とするようにしてもよい。
【0031】
また、前記キャッシュフラッシュ方法において、前記キャッシュフラッシュ装置にデータメモリを備えることにより外部キャッシュとしての機能を有するようにしてもよい。
【0032】
また、上記課題を解決するために、本発明のキャッシュフラッシュ装置は、コピーバック方式のキャッシュを備えた少なくとも一つのプロセッサと、前記プロセッサが接続されるプロセッサバスと、メインメモリと、前記プロセッサバスと前記メインメモリとに接続されるキャッシュフラッシュ装置とを有するコンピュータシステムに設けられるキャッシュフラッシュ装置において、モディファイドデータについてのリード要求を前記プロセッサバスだけに対して送る手段と、前記リード要求に応じて送られてきた前記プロセッサからのモディファイドデータを受け取る手段と、前記モディファイドデータの受け取りが完了したキャッシュラインだけについて前記メインメモリに対するバーストライトを行う手段とを具備し、キャッシュフラッシュ時に前記メインメモリがリードモディファイライト動作せずに単純にバーストライト動作するようにしたことを特徴とする。
【0033】
なお、前記キャッシュフラッシュ装置は、前記プロセッサバスと前記メインメモリとの間にインラインで接続されるものであってもよい。
【0034】
また、本発明のキャッシュフラッシュ装置は、コピーバック方式のキャッシュを備えた少なくとも一つのプロセッサと、メインメモリと、キャッシュフラッシュ装置とを備え、前記キャッシュフラッシュ装置と前記プロセッサとが第1のアドレスバスの一部を通じて接続され、前記キャッシュフラッシュ装置と前記メインメモリとが前記第1のアドレスバスの一部とは独立した第2のアドレスバスの一部を通じて接続され、前記キャッシュフラッシュ装置と前記プロセッサと前記メインメモリとがアドレスバスの他の部分を通じて接続されるコンピュータシステムに設けられるキャッシュフラッシュ装置であって、前記第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はプロセッサである。111,121はそれぞれプロセッサ110,120のキャッシュメモリ(コピーバック方式)である。
【0045】
500はメインメモリを制御するメインメモリ制御装置である。501はメインメモリである。
【0046】
600はI/Oバス制御装置である。601,602はI/Oバス制御装置600に接続されるI/Oバスである。
【0047】
上記キャッシュフラッシュ装置100は、プロセッサバス10とメインメモリ制御装置500(メインメモリ501)との間にインラインで接続されている。このため、この構成例は、メインメモリのために使用可能なアドレス空間に制限が発生せず、アダプタ接続方式で実現しやすいという利点がある。
【0048】
本実施形態では、プロセッサ110,120が“MESI”プロトコルでキャッシュ管理を行っている場合を例にとって説明する。ここで、“MESI”は、キャッシュメモリ111,121上の各キャッシュブロックの取り得る4種類の状態、すなわち、以下に説明するような“Modified”,“Exclusive ”,“Shared”,“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 ”,“Invalidate”,“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に“Exclusive ”状態が発生したときには、キャッシュが“Modified”状態になったことを外部から観測できない。このため、プロセッサバス10上にReadトランザクションが発行された場合には(ステップA1)、キャッシュフラッシュ装置100は“Shared”応答をプロセッサバス10上に返し、キャッシュを“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は、メインメモリ501にデータを書き込む。そして、キャッシュフラッシュ装置100は、キャッシュ管理用メモリ101を検索して該当するキャッシュラインを“Clean ”にする(ステップC3)。
【0064】
図5は、プロセッサバス上に発行されたトランザクションの種類に応じてキャッシュ管理用メモリ101の状態が変更される様子をまとめたものである。
【0065】
図中、“M”は、キャッシュ管理用メモリ101が「プロセッサが“Modified”ラインを持っている」と認識している状態を示す。“C”は、キャッシュ管理用メモリ101が「プロセッサが“Modified”ラインを持っていない」と認識している状態“Clean ”を示す。このときのプロセッサキャッシュの状態は、“Invalid ”または“Shared”である。“M(追い出し)”は、キャッシュ管理用メモリ101が「プロセッサが“Modified”ラインを持っている」と認識し、かつキャッシュ管理用メモリ101に登録されていたエントリのリードをプロセッサバス上に発行してプロセッサキャッシュ内の“Modified”ラインを追い出すことを示す。
【0066】
(キャッシュフラッシュ時の動作)
次に、キャッシュフラッシュ時の動作を、図6を参照して説明する。
キャッシュフラッシュが開始されると、キャッシュフラッシュ装置100は、キャッシュ管理用メモリ101を検索してプロセッサ110,120にある“Modified”であるキャッシュラインを見つけ(ステップD1)、プロセッサバス10だけに対してリード要求を行う(ステップD2)。なお、リード要求の発行にあたっては、“0バイト”すなわち“Modified”応答が無ければデータ転送を伴わない形でトランザクションが完了するようにする。
【0067】
ここで、プロセッサ110もしくは120が本当に“Modified”であるデータを持っていれば、該プロセッサはReadトランザクションに対して“Modified”応答をして“Modified”データをプロセッサバス10上に出力してくる。
【0068】
キャッシュフラッシュ装置100は、プロセッサバス10から“Modified”データを受け取ると(ステップD3)、システムバス1上にそのキャッシュラインのバーストライトトランザクションを発行し(ステップD4)、キャッシュフラッシュを完了する。
【0069】
この場合、メインメモリ制御装置500側としては、キャッシュフラッシュ装置100からのキャッシュフラッシュを単純なバーストライトとして扱えるので、メインメモリ501へのアクセスは1回だけで終了する。
【0070】
図7は、この第1実施形態においてキャッシュフラッシュが単独で実行される場合の動作を示すタイミングチャートである。ここでは、メインメモリ501にシンクロナス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 は、システムバストランザクションに対するスヌープ応答であり、本構成の場合、通常はメインメモリ制御装置500が“Normal”応答を返す。システムバスのDataは、システムバストランザクションに対するデータ出力であり、本構成の場合、プロセッサバス10上でプロセッサ110もしくは120が出力したデータをキャッシュフラッシュ装置100が出力する。
【0075】
メインメモリのAddress は、メインメモリ制御装置500が出力するメインメモリ501のアドレスである。メインメモリのRASは、メインメモリ制御装置500が出力するメインメモリ501のRAS信号である。メインメモリのCASは、メインメモリ制御装置500が出力するメインメモリ501のCAS信号である。メインメモリのWEは、メインメモリ制御装置500が出力するメインメモリ501のWE信号である。メインメモリのDataは、メインメモリ制御装置500とメインメモリ501の間のデータ信号である。CASが“L”のときにWEが“L”であればメインメモリ制御装置500がライトデータを出力し、CASが“L”のときにWEが“H”であればメインメモリ501がリードデータを出力する。
【0076】
図8は、この第1実施形態においてキャッシュフラッシュが3連続で実行される場合の動作を示すタイミングチャートである。ここでは、メインメモリ501にシンクロナス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 は、システムバストランザクションに対するスヌープ応答であり、本構成の場合、通常はメインメモリ制御装置500が“Normal”応答を返す。システムバスのDataは、システムバストランザクションに対するデータ出力であり、本構成の場合、プロセッサバス10上でプロセッサ110もしくは120が出力したデータをキャッシュフラッシュ装置100が出力する。
【0081】
メインメモリのAddress は、メインメモリ制御装置500が出力するメインメモリ501のアドレスである。メインメモリのRASは、メインメモリ制御装置500が出力するメインメモリ501のRAS信号である。メインメモリのCASは、メインメモリ制御装置500が出力するメインメモリ501のCAS信号である。メインメモリのWEは、メインメモリ制御装置500が出力するメインメモリ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に記録し、キャッシュフラッシュが起動するとプロセッサからダーティーラインを読み出してメインメモリ制御装置500に書き戻す。101はキャッシュ管理用メモリであり、プロセッサ110,120のキャッシュラインの状態を記録する。
【0088】
110,120はプロセッサである。111,121はそれぞれプロセッサ110,120のキャッシュメモリ(コピーバック方式)である。
【0089】
500はメインメモリを制御するメインメモリ制御装置である。501はメインメモリである。
【0090】
600はI/Oバス制御装置である。601,602はI/Oバス制御装置600に接続されるI/Oバスである。
【0091】
この第2実施形態においても、プロセッサは“MESI”プロトコルでキャッシュ管理を行っているものとする。
【0092】
図10は、図9で示したシステムの通常動作時のアドレス出力を模式的に図示したものである。
【0093】
プロセッサ110,120からアドレスを出力するとき、アドレスバスの一部(最上位2ビット分)3に対してプロセッサ110,120は“00”を出力する。このとき、キャッシュフラッシュ装置100はアドレスバスの一部(最上位2ビット分)4に対して“00”を出力する。よって、メインメモリ制御装置500にはプロセッサ110が出力したアドレスがそのまま観測される。
【0094】
図11は、図9で示したシステムのキャッシュフラッシュ前半のアドレス出力を模式的に図示したものである。
【0095】
キャッシュフラッシュ装置100からプロセッサにキャッシュフラッシュ要求(リード要求)をするとき、キャッシュフラッシュ装置100はアドレスバスの一部3に対して“00”を出力する。プロセッサ110が“Modified”データを持っていれば、該プロセッサ110は“Modified”応答をして“Modified”データを出力してくる。
【0096】
キャッシュフラッシュ装置100は、“Modified”データを受け取ると、アドレスバスの一部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に対して“00”を出力する。よって、メインメモリ制御装置500はプロセッサ110,120が観測するのと同じアドレスを観測する。プロセッサは、図11で示したキャッシュフラッシュ前半に“Modified”データを出力しているので、今度は“Modified”応答しない。
【0099】
キャッシュフラッシュ装置100が出力したライトデータは、そのままメインメモリ制御装置500を通じてメインメモリ501に書き込まれる。
【0100】
なお、上記の例では、アドレスビット“00”,“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に“Exclusive ”状態が発生したときにはキャッシュが“Modified”状態になったことを外部から観測できない。このため、システムバス2上にReadトランザクションが発行された場合には(ステップE1)、キャッシュフラッシュ装置100は“Shared”応答をシステムバス2上に返し、キャッシュを“Shared”状態にする(ステップE2)。すなわち、“Exclusive ”状態を許さない。キャッシュフラッシュ装置100は、キャッシュ管理用メモリ101を検索し、該当するキャッシュラインを“Clean ”にする(ステップE3)。
【0105】
システムバス2上にInvalidateトランザクション又はRead and Invalidate トランザクションが発行された場合には(ステップF1)、キャッシュフラッシュ装置100はキャッシュ管理用メモリ101中の“Modified”として該当するインデックスの位置にタグを保存する(ステップF2)。
【0106】
このとき、既に別のキャッシュラインがModifiedとして登録されていたら、キャッシュフラッシュ装置100はプロセッサに接続されたアドレスバスの一部3には“00”を出力し、メインメモリ制御装置500に接続されたアドレスバスの一部4には“11”を出力し、登録されていたタグとインデックスとから物理アドレスを生成してシステムバス2上に発行する(ステップF3,F4)。プロセッサが“Modified”ラインを持っていれば、該プロセッサは“Modified”応答をして“Modified”データを出力してくる。
【0107】
キャッシュフラッシュ装置100は、システムバス2から“Modified”データを受け取ると(ステップF5)、システムバス2上にそのアドレスのWrite トランザクションを発行する(ステップF6)。これにより、メインメモリ制御装置500は、メインメモリ501にデータを書き戻す。
【0108】
なお、このようなキャッシュラインの追い出し時は、後述するキャッシュフラッシュ時と同じように動作するので、メインメモリ制御装置500はプロセッサ110,120からのキャッシュフラッシュ動作には反応せず、キャッシュフラッシュ装置100からのライト動作のみに反応する。
【0109】
システムバス2上にWrite トランザクションを発行したならば(ステップG1)、メインメモリ制御装置500はシステムバス2上にWrite トランザクションを発行する(ステップG2)。これにより、メインメモリ制御装置500は、メインメモリ501にデータを書き込む。そして、キャッシュフラッシュ装置100は、キャッシュ管理用メモリ101を検索して該当するキャッシュラインを“Clean ”にする(ステップG3)。
【0110】
(キャッシュフラッシュ時の動作)
次に、キャッシュフラッシュ時の動作を、図16を参照して説明する。
キャッシュフラッシュが開始されると、キャッシュフラッシュ装置100はキャッシュ管理用メモリ101を検索してプロセッサ110,120にある“Modified”であるキャッシュラインを見つけ(ステップH1)、システムバス2にリード要求を行う(ステップH2)。
【0111】
このときプロセッサに接続されたアドレスバスの一部(最上位2ビット分)3には“00”を、メインメモリ制御装置500に接続されたアドレスバスの一部(最上位2ビット分)4には“11”を出力する。これにより、プロセッサ110,120およびI/Oバスブリッジ600にはこのキャッシュフラッシュ用のReadトランザクションは観測されるが、メインメモリ制御装置500には関係の無いアドレス空間に対するアクセスとして観測される。なお、リード要求の発行にあたっては、“0バイト”すなわち“Modified”応答が無ければデータ転送を伴わない形でトランザクションが完了するようにする。
【0112】
ここで、プロセッサ110もしくは120が本当に“Modified”であるデータを持っていれば、該プロセッサはReadトランザクションに対して“Modified”応答をして“Modified”データをシステムバス2に出力してくる。
【0113】
キャッシュフラッシュ装置100は、システムバス2から“Modified”データを受け取ると(ステップH3)、システムバス2上にそのキャッシュラインのバーストライトトランザクションを発行する(ステップH4)。
【0114】
このとき、キャッシュフラッシュ装置100は、アドレスバスの一部3,4を共に“00”にし、プロセッサ110,120とI/Oブリッジ600およびメインメモリ制御装置500の両方に普通のアドレス空間として見えるようにする。
【0115】
なお、プロセッサ110,120は、該当するキャッシュラインをすでに書き戻しているので、今度は“Shared”応答を返し、プロセッサからのデータ転送は発生しない。このとき、メインメモリ制御装置500はキャッシュフラッシュ装置100からのキャッシュフラッシュを単純なバーストライトとして扱えるので、メインメモリ501へのアクセスは1回だけで終了する。
【0116】
図18は、この第2実施形態においてキャッシュフラッシュが単独で実行される場合の動作を示すタイミングチャートである。ここでは、メインメモリ501にシンクロナスDRAMを使用している。
【0117】
以下、図18を参照して各種信号について説明する。なお、図中の横軸はバスサイクル数を示している。
【0118】
システムバスのAddress[33:5] はシステムバストランザクションのアドレスであり、キャッシュフラッシュ装置100が出力する。システムバスのAddress[35:34] to Processor はシステムバストランザクションのアドレスであり、キャッシュフラッシュ装置100とプロセッサ110,120との間で使用される。システムバスのAddress[35:34] to Memoryはシステムバストランザクションのアドレスであり、キャッシュフラッシュ装置100とメモリ制御装置500との間で使用される。システムバスのSnoop は、システムトランザクションに対するスヌープ応答であり、プロセッサ110,120のいずれかが出力する。この図の例では、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は、メインメモリ制御装置500が出力するメインメモリ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が出力する。システムバスのAddress[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個目のトランザクションであるリードの場合プロセッサ110,120のいずれかが出力する。なお、Readトランザクションに対するスヌープ応答が“Modified”以外の場合、通常はメインメモリ制御装置500がデータを出力する。この図の4〜6個目のトランザクションであるライトに対してはキャッシュフラッシュ装置100がデータを出力する。
【0123】
メインメモリのAddress は、メインメモリ制御装置500が出力するメインメモリ501のアドレスである。メインメモリのRASは、メインメモリ制御装置500が出力するメインメモリ501のRAS信号である。メインメモリのCASは、メインメモリ制御装置500が出力するメインメモリ501のCAS信号である。メインメモリのWEは、メインメモリ制御装置500が出力するメインメモリ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実施形態では、プロセッサ110,120がMESIプロトコルによる2階層のキャッシュメモリを持つ。
【0128】
図20において、111,121は第2階層キャッシュ(以下L2キャッシュと略記する)であり、キャッシュフラッシュ装置100に接続されたメモリ101’は第3階層キャッシュ(以下L3キャッシュと略記する)である。すなわち、第1実施形態(図1)ではアドレス情報を記憶する管理用メモリ101を使用したのに対し、この第3実施形態ではその代わりにアドレス情報のみならず実際のデータをも記憶するキャッシュメモリ(L3キャッシュ)101’を使用している。すなわち、キャッシュフラッシュ装置100にデータメモリを備えることにより外部キャッシュとしての機能を持たせるようにしている。
【0129】
L2キャッシュ111,121に“Exclusive ”状態が発生したときには、キャッシュデータの更新が外部から観測できないので、キャッシュフラッシュ装置100は第1実施形態と同様にプロセッサ110,120からのReadトランザクションに対しては“Shared”応答を返して“Exclusive ”状態を許さないことにする。
【0130】
ここで、L3キャッシュ101’もMESI方法で管理するが、L3キャッシュ101’の“Modified”状態にはL3キャッシュ101’に記録されたデータが有効(valid )の場合と、L3キャッシュ101’のデータは無効で有効データはプロセッサのL2キャッシュ111,121にある場合、の2種類がある。
【0131】
以下では、L3キャッシュ101’が“Modified”でデータが有効な場合(即ち、キャッシュフラッシュ装置100事体が最新のデータを持っている状態)を“Owned (O)”状態と呼び、L3キャッシュ101’が“Modified”でデータが有効でない場合(即ち、L2キャッシュ111,121に最新のデータがある状態)を“Dirty (D)”状態と呼ぶこととし、このキャッシュ管理方法を“DOSI”プロトコルと呼ぶことにする。
【0132】
L2キャッシュ111,121が“Modified(M)”,“Shared(S)”,“Invalid (I)”の各状態のときL3キャッシュ101’は図21に示す状態をとる。ここで、L2キャッシュ111,121のいずれかが“Invalid ”状態のときL3キャッシュ101’が“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,J4)、システムバス1上にReadトランザクションを発行してメインメモリ501からデータを読み出す(ステップJ5)。“Shared”が登録されていれば、新しいトランザクションを“Shared”として登録し(ステップJ3,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キャッシュ101’のデータをリードデータとしてプロセッサバス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 Write Back データをL3キャッシュ101’に書き込む(ステップJ11,J12)。この場合、システムバス1上にはReadトランザクションを発行しない(ステップJ10)。ステップJ11でアドレスマッチしていなければ、システムバス1上にReadトランザクションを発行してメインメモリ501からデータを読み出す(ステップJ14)。
【0142】
L3キャッシュ101’の該当するインデックスに“Owned ”として登録されている場合、アドレスマッチしているかどうかを調べる(ステップJ3,J13)。アドレスマッチしていれば、L3キャッシュ101’内のデータをプロセッサバス10に出力する(ステップJ9)。この場合、システムバス1上にはReadトランザクションを発行しない(ステップJ10)。ステップJ13でアドレスマッチしていなければ、システムバス1上にReadトランザクションを発行してメインメモリ501からデータを読み出す(ステップJ14)。
【0143】
プロセッサバス10上にRead and Invalidate トランザクションが発行された場合には(ステップK1)、キャッシュフラッシュ装置100はL3キャッシュ101’中の該当するキャッシュラインを“Dirty ”として登録し(ステップK2)、システムバス1上にRead and Invalidate トランザクションを発行する(ステップK3)。このとき、L3キャッシュ101’にすでに他のキャッシュラインが“Dirty ”もしくは“Owned ”として登録されていたら、そのキャッシュラインをフラッシュする(ステップK4,K5)。このフラッシュ動作は後述のキャッシュフラッシュ時の動作と同じなのでここでは省略する。
【0144】
なお、システムバス1からリードデータが戻るとこのデータをプロセッサバス10に転送することなる。L3キャッシュ101’にはデータは登録しなくてよい。また、プロセッサバス10上でのもともとのRead and Invalidate トランザクションに対してもう一方のプロセッサが“Modified”応答をすると、キャッシュフラッシュ装置100は、システムバス1から戻ってきたデータを捨てる。
【0145】
プロセッサバス10上にInvalidateトランザクションが発行された場合には(ステップL1)、キャッシュフラッシュ装置100はL3キャッシュ101’中の該当するキャッシュラインを“Dirty ”として登録し(ステップL2)、システムバス1上にInvalidateトランザクションを発行する(ステップ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上のトランザクションがReadの場合、L3キャッシュ101’が“Owned ”ならば、プロセッサバス10上にはトランザクションを発行せずにシステムバス100にL3キャッシュ101’内のデータを出力する。
【0150】
L3キャッシュ101’が“Dirty ”ならば、プロセッサバス10上にReadトランザクションを発行し、プロセッサにデータを出力させる。なお、いずれの場合もL3キャッシュ101’のキャッシュステートを“Shared”にする。
【0151】
システムバス上のトランザクションがWrite の場合、L3キャッシュ101’が“Owned ”ならば、プロセッサバス10上にInvalidateトランザクションを発行し、システムバス100にL3キャッシュ101’内のデータを出力する。
【0152】
L3キャッシュ101’が“Dirty ”ならプロセッサバス10上にRead and Invalidate トランザクションを発行し、プロセッサにデータを出力させる。なお、いずれの場合もL3キャッシュ101’のキャッシュステートを“Invalid ”にし、システムバス1には“Modified”応答を返す。
【0153】
L3キャッシュ101’が“Shared”の場合、プロセッサバス10上にInvalidateトランザクションを発行し、L3キャッシュ101’の状態を“Invalidate”にし、システムバスには“Shared”応答を返す。
【0154】
L3キャッシュ101’に該当するキャッシュラインが登録されていない場合にも本実施形態のプロトコルではプロセッサが“Shared”でデータを持っている可能性があるので、プロセッサバス10上にInvalidateトランザクションを発行し、システムバス1には“Shared”応答を返す。
【0155】
システムバス上のトランザクションがInvalidate又は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の状態を“Invalidate”にし、システムバスには“Shared”応答を返す。
【0158】
L3キャッシュ101’に該当するキャッシュラインが登録されていない場合にも本実施形態のプロトコルではプロセッサが“Shared”でデータを持っている可能性があるので、プロセッサバス10上にInvalidateトランザクションを発行し、システムバス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’上で“Owned ”状態のものはキャッシュフラッシュ装置100自体が最新データを持っているので、直ちにシステムバス1上にWrite トランザクションを発行し、そのデータをメインメモリ501に書き戻す(ステップN2,N6)。
【0164】
キャッシュフラッシュが完了するとL3キャッシュ101’に登録されたキャッシュ状態は“Shared”または“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がL2キャッシュ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は“Burst Read”トランザクションであり、メインメモリ501からシステムバス1にデータを読み出すトランザクションである。
【0175】
図29はキャッシュフラッシュ装置100が出力するトランザクションによりプロセッサ110および120、もしくはL3キャッシュ101にある“Modified”データをメインメモリ501に書き戻す時のL3キャッシュ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実施形態で採用したL3キャッシュを第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,120…プロセッサ、101’,111,121…キャッシュメモリ、500…メインメモリ制御装置、501…メインメモリ、600…I/Oバス制御装置、610,620…I/Oバス。
Claims (16)
- コピーバック方式のキャッシュを備えた少なくとも一つのプロセッサと、前記プロセッサが接続されるプロセッサバスと、メインメモリと、前記プロセッサバスと前記メインメモリとに接続されるキャッシュフラッシュ装置とを有するコンピュータシステムに適用されるキャッシュフラッシュ方法において、
モディファイドデータについてのリード要求を前記キャッシュフラッシュ装置から前記プロセッサバスだけに対して送り、
前記リード要求に応じて送られてきた前記プロセッサからのモディファイドデータを前記キャッシュフラッシュ装置により受け取り、
前記モディファイドデータの受け取りが完了したキャッシュラインだけについて前記メインメモリに対するバーストライトを行い、
キャッシュフラッシュ時に前記メインメモリがリードモディファイライト動作せずに単純にバーストライト動作するようにしたことを特徴とするキャッシュフラッシュ方法。 - 前記キャッシュフラッシュ装置は、前記プロセッサバスと前記メインメモリとの間にインラインで接続されることを特徴とする請求項1記載のキャッシュフラッシュ方法。
- コピーバック方式のキャッシュを備えた少なくとも一つのプロセッサと、メインメモリと、キャッシュフラッシュ装置とを備え、前記キャッシュフラッシュ装置と前記プロセッサとが第1のアドレスバスの一部を通じて接続され、前記キャッシュフラッシュ装置と前記メインメモリとが前記第1のアドレスバスの一部とは独立した第2のアドレスバスの一部を通じて接続され、前記キャッシュフラッシュ装置と前記プロセッサと前記メインメモリとがアドレスバスの他の部分を通じて接続されるコンピュータシステムに適用されるキャッシュフラッシュ方法であって、
前記第1のアドレスバスの一部に出力するアドレスビットと前記第2のアドレスバスの一部に出力するアドレスビットとを異なるようにしつつ、モディファイドデータについてのリード要求を前記キャッシュフラッシュ装置が前記アドレスバスに対して送り、
前記リード要求に応じて送られてきた前記プロセッサからのモディファイドデータを前記キャッシュフラッシュ装置により受け取り、
前記モディファイドデータの受け取りが完了したキャッシュラインだけについて前記メインメモリに対するバーストライトを行い、
キャッシュフラッシュ時に前記メインメモリがリードモディファイライト動作せずに単純にバーストライト動作するようにしたことを特徴とするキャッシュフラッシュ方法。 - 前記リード要求時に、前記プロセッサにリード要求を観測させるためのアドレスビットを前記キャッシュフラッシュ装置から前記第1のアドレスバスの一部に出力すると共に、前記メインメモリには無関係のアドレスビットを前記キャッシュフラッシュ装置から前記第2のアドレスバスの一部に出力し、
前記バーストライト時に、前記メインメモリに対するバーストライトを可能とするアドレスビットを前記キャッシュフラッシュ装置から前記第2のアドレスバスの一部に出力することを特徴とする請求項3記載のキャッシュフラッシュ方法。 - 前記の各アドレスバスの一部に出力するアドレスビットを偶数ビット数で構成することによりパリティ保護されたアドレスバスに対応させたことを特徴とする請求項4記載のキャッシュフラッシュ方法。
- 前記プロセッサにリード要求を観測させるためのアドレスビットを全て“0”とし、前記メインメモリに無関係のアドレスビットを全て“1”とし、前記メインメモリに対するバーストライトを可能とするアドレスビットを全て“0”としたことを特徴とする請求項5記載のキャッシュフラッシュ方法。
- 前記キャッシュフラッシュ装置にデータメモリを備えることにより外部キャッシュとしての機能を有するようにしたことを特徴とする請求項2記載のキャッシュフラッシュ方法。
- 前記キャッシュフラッシュ装置にデータメモリを備えることにより外部キャッシュとしての機能を有するようにしたことを特徴とする請求項3乃至5のいずれかに記載のキャッシュフラッシュ方法。
- コピーバック方式のキャッシュを備えた少なくとも一つのプロセッサと、前記プロセッサが接続されるプロセッサバスと、メインメモリと、前記プロセッサバスと前記メインメモリとに接続されるキャッシュフラッシュ装置とを有するコンピュータシステムに設けられるキャッシュフラッシュ装置において、
モディファイドデータについてのリード要求を前記プロセッサバスだけに対して送る手段と、
前記リード要求に応じて送られてきた前記プロセッサからのモディファイドデータを受け取る手段と、
前記モディファイドデータの受け取りが完了したキャッシュラインだけについて前記メインメモリに対するバーストライトを行う手段と
を具備し、キャッシュフラッシュ時に前記メインメモリがリードモディファイライト動作せずに単純にバーストライト動作するようにしたことを特徴とするキャッシュフラッシュ装置。 - 前記キャッシュフラッシュ装置は、前記プロセッサバスと前記メインメモリとの間にインラインで接続されることを特徴とする請求項9記載のキャッシュフラッシュ装置。
- コピーバック方式のキャッシュを備えた少なくとも一つのプロセッサと、メインメモリと、キャッシュフラッシュ装置とを備え、前記キャッシュフラッシュ装置と前記プロセッサとが第1のアドレスバスの一部を通じて接続され、前記キャッシュフラッシュ装置と前記メインメモリとが前記第1のアドレスバスの一部とは独立した第2のアドレスバスの一部を通じて接続され、前記キャッシュフラッシュ装置と前記プロセッサと前記メインメモリとがアドレスバスの他の部分を通じて接続されるコンピュータシステムに設けられるキャッシュフラッシュ装置であって、
前記第1のアドレスバスの一部に出力するアドレスビットと前記第2のアドレスバスの一部に出力するアドレスビットとを異なるようにしつつ、モディファイドデータについてのリード要求を前記アドレスバスに対して送る手段と、
前記リード要求に応じて送られてきた前記プロセッサからのモディファイドデータを受け取る手段と、
前記モディファイドデータの受け取りが完了したキャッシュラインだけについて前記メインメモリに対するバーストライトを行う手段と、
を具備し、キャッシュフラッシュ時に前記メインメモリがリードモディファイライト動作せずに単純にバーストライト動作するようにしたことを特徴とするキャッシュフラッシュ装置。 - 前記リード要求時に、前記プロセッサにリード要求を観測させるためのアドレスビットを前記キャッシュフラッシュ装置から前記第1のアドレスバスの一部に出力すると共に、前記メインメモリには無関係のアドレスビットを前記キャッシュフラッシュ装置から前記第2のアドレスバスの一部に出力する手段と、
前記バーストライト時に、前記メインメモリに対するバーストライトを可能とするアドレスビットを前記キャッシュフラッシュ装置から前記第2のアドレスバスの一部に出力する手段と
を更に具備したことを特徴とする請求項11記載のキャッシュフラッシュ装置。 - 前記の各アドレスバスの一部に出力するアドレスビットを偶数ビット数で構成することによりパリティ保護されたアドレスバスに対応させたことを特徴とする請求項12記載のキャッシュフラッシュ装置。
- 前記プロセッサにリード要求を観測させるためのアドレスビットを全て“0”とし、前記メインメモリに無関係のアドレスビットを全て“1”とし、前記メインメモリに対するバーストライトを可能とするアドレスビットを全て“0”としたことを特徴とする請求項13記載のキャッシュフラッシュ装置。
- 前記キャッシュフラッシュ装置にデータメモリを備えることにより外部キャッシュとしての機能を有するようにしたことを特徴とする請求項10記載のキャッシュフラッシュ装置。
- 前記キャッシュフラッシュ装置にデータメモリを備えることにより外部キャッシュとしての機能を有するようにしたことを特徴とする請求項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 JP2000020395A (ja) | 2000-01-21 |
JP4091171B2 true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4725044B2 (ja) * | 2004-07-06 | 2011-07-13 | 富士通株式会社 | 情報処理装置 |
JP4856373B2 (ja) * | 2004-12-09 | 2012-01-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法 |
-
1998
- 1998-06-29 JP JP18295498A patent/JP4091171B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000020395A (ja) | 2000-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
JP3737834B2 (ja) | 2重化キャッシュ・スヌープ機構 | |
US6148416A (en) | Memory update history storing apparatus and method for restoring contents of memory | |
US5787478A (en) | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy | |
EP0750258B1 (en) | Computer system with memory state recovery | |
JP4119380B2 (ja) | マルチプロセッサシステム | |
US20020174305A1 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
JPH10320283A (ja) | マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置 | |
US10949292B1 (en) | Memory interface having data signal path and tag signal path | |
JP2007533014A (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
WO1997004392A1 (en) | Shared cache memory device | |
JPH03189845A (ja) | 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
KR100380674B1 (ko) | 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템 | |
JP4091171B2 (ja) | キャッシュフラッシュ方法および装置 | |
JP3083786B2 (ja) | メモリ更新履歴保存装置およびメモリ更新履歴保存方法 | |
JP2001034533A (ja) | キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法 | |
JP3340047B2 (ja) | マルチプロセッサシステムおよび複製タグの制御方法 | |
JPH02224161A (ja) | 高速データ処理装置 | |
JP3833760B2 (ja) | 計算機システム及びメモリ状態復元装置 | |
JP2000227877A (ja) | 待ち時間を低減した非同期入出力キャッシュ | |
JP3287239B2 (ja) | 階層キャッシュメモリとそのステート遷移制御方法 | |
JP2791319B2 (ja) | データ処理装置 | |
KR970004520B1 (ko) | 고속 메모리 제어방법 및 장치 | |
JPH01279342A (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 |