JPH10320274A - キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体 - Google Patents

キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体

Info

Publication number
JPH10320274A
JPH10320274A JP9274214A JP27421497A JPH10320274A JP H10320274 A JPH10320274 A JP H10320274A JP 9274214 A JP9274214 A JP 9274214A JP 27421497 A JP27421497 A JP 27421497A JP H10320274 A JPH10320274 A JP H10320274A
Authority
JP
Japan
Prior art keywords
update
main memory
cache
memory
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9274214A
Other languages
English (en)
Inventor
Yoshio Masubuchi
美生 増渕
Takuya Kano
卓也 加納
Hiroshi Sakai
浩 酒井
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 JP9274214A priority Critical patent/JPH10320274A/ja
Publication of JPH10320274A publication Critical patent/JPH10320274A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】キャッシュフラッシュ操作に要する時間を短縮
してシステム性能を向上させるキャッシュフラッシュ装
置を提供する。 【解決手段】キャッシュメモリ20上のすべてのダーテ
ィブロックのアドレスは、更新アドレス登録部33によ
って更新アドレス記憶部32の備える複数の領域(A0
〜An−1)の中のいずれかに記憶される。また、ある
キャッシュブロックが一旦ダーティ状態となった後、ダ
ーティ状態でなくなったときには、更新アドレス削除部
34が、領域からそのアドレスを削除する。そして、キ
ャッシュフラッシュを行なうときには、全フラッシュ実
行部35が、ダーティブロックのアドレスを各領域から
順次取り出し、そのアドレスで示されるデータのメイン
メモリ51への書き戻しを要求するコマンドをシステム
バス40に発行することによって、すべてのダーティブ
ロックの内容がメインメモリ51へ書き戻される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データの一貫性を
保証するスヌープ機構を有するキャッシュメモリのキャ
ッシュフラッシュ装置及び同装置を備えた耐障害性の計
算機システム、記録媒体に関する。
【0002】
【従来の技術】一般に、計算機には、プロセッサによる
メインメモリへのアクセスを高速化するために、プロセ
ッサが必要とするデータを一時的に格納するキャッシュ
メモリが用いられている。
【0003】通常、キャッシュメモリは、キャッシュブ
ロックと呼ばれる所定の大きさのデータ単位でデータを
保持する。この場合、キャッシュタグと呼ばれる管理情
報を保持し、キャッシュメモリに格納されたキャッシュ
ブロックのデータが、例え波メインメモリの中のどのデ
ータであるのか、プロセッサによって変更されてメイン
メモリの内容と異なっている状態(ダーティ状態)にあ
るのかなどを管理している。
【0004】一方、複数のプロセッサを設けた計算機
(所謂マルチプロセッサ計算機)では、キャッシュメモ
リも複数あるが、これらのキャッシュメモリ間でデータ
の一貫性を保証するために、各キャッシュメモリにスヌ
ープ機構が設けられている。
【0005】スヌープ機構は、バスに発行されたバスコ
マンドが、自身のキャッシュメモリに格納されたデータ
に影響を与えないかどうか、自身のキャッシュメモリに
格納されたデータを応答として返さなければならないか
どうかなどを監視し、必要であれば、該当するデータの
無効化などを行なうものである。
【0006】ところで、キャッシュメモリには、コピー
バック型、ライトスルー型があるが、プロセッサによる
データ更新を直ちにメインメモリに反映させずに、ある
程度の期間内部に保持し続けるコピーバック型のキャッ
シュメモリの場合、プロセッサによってキャッシュメモ
リ上で変更されてメインメモリの内容と異なっているデ
ータを、積極的にメインメモリへ書き戻す(write
back)操作を必要とする。
【0007】例えば、スヌープ機構を持たない入出力装
置に対して、キャッシュメモリが格納するデータを転送
する場合などに書き戻しが必要となる。キャッシュメモ
リが格納するデータのうち、変更されているデータをメ
インメモリに書き戻す操作をキャッシュフラッシュ操作
と呼ぶ。また、キャッシュメモリのデータが変更されて
いる状態をダーティ状態と呼ぶ。そして、ダーティ状態
にあるキャッシュブロックをダーティブロックと呼ぶ。
【0008】このようなキャッシュフラッシュ操作は、
スヌープ機構を持たない入出力装置に対するデータの転
送時以外にも、チェックポイント方式の計算機にとって
有用である。すなわち、計算機に何らかの障害が発生し
たときに、予め取得しておいたチェックポイントから処
理を再開するチェックポイント方式の計算機の場合に
は、チェックポイントの時点で、キャッシュメモリ中に
のみ存在する変更されたデータをメインメモリに書き戻
す必要がある。
【0009】キャッシュフラッシュ操作は、通常、キャ
ッシュフラッシュ命令を含むソフトウェアに基づいて実
行される。ソフトウェアを実行することにより、プロセ
ッサは、キャッシュタグの内容を参照して、キャッシュ
ブロック毎にダーティブロックであるか否かを判断す
る。その結果、ダーティブロックであれば、対応するキ
ャッシュブロックのデータをメインメモリに書き戻すキ
ャッシュフラッシュ動作を行なう。
【0010】このように、プロセッサは、与えられたプ
ログラムに従って、すべてのキャッシュブロックの1つ
1つについて、その状態を判定し、ダーティ状態である
場合には、メインメモリへの書き戻し(キャッシュフラ
ッシュ操作)を実行せねばならない。すべてのキャッシ
ュブロックについて処理を行うには、非常に多くの時間
を要する。
【0011】この状況を次のようなプログラム例を参照
して具体的に説明する。
【0012】図32に米国SGI社R4000プロセッ
サにおいてキャッシュフラッシュ操作を行なうためのプ
ログラムの一例を示す。このプログラムでは、「cac
he0x17,0($4)」という命令を実行すると、
第4レジスタ($4)に保持されているアドレスに対応
するセカンドキャッシュのキャッシュブロックが選択さ
れる。そのキャッシュブロックの状態がダーティであれ
ば、その内容がメインメモリに書き戻されるとともに、
インバリッド状態となる。一方、ダーティ状態でなけれ
ば、単にインバリッド状態となる。このループ(loo
p)は、セカンダリキャッシュのキャッシュブロックの
数だけ実行する必要がある。
【0013】このループ(loop)を処理する時間を
数えると、命令数が4つであるので、4プロセッササイ
クルを要し、これをバスサイクルに換算すると、2バス
サイクルとなる(1バスクロックで2命令を実行)。し
たがって、すべてのキャッシュブロックをフラッシュす
る時間は、データをメインメモリに書き戻す時間を含め
なくても、キャッシュフラッシュ時間=キャッシュブロ
ック数×2バスサイクルとなり、非常に時間のかかる処
理となる。
【0014】一方、キャッシュフラッシュ操作を高速化
するために、キャッシュメモリ自体を改造することも行
なわれている。しかし、この方法では、既存のキャッシ
ュメモリを高速化することはできない。
【0015】
【発明が解決しようとする課題】上記したように、従来
の計算機においては、キャッシュメモリ全体のフラッシ
ュ操作(すべてのダーティブロックについて、その内容
をメインメモリに書き戻すこと)をソフトウェアにより
すべてのキャッシュブロックに対して逐次的に行なって
いたために、多くの処理時間を費やしていた。
【0016】また、キャッシュメモリ全体にフラッシュ
操作をを行う期間中は、そのプロセッサが他のプログラ
ムを実行することはできないため、本来のデータ処理が
ストップすることになり、システム全体の性能低下を招
いてしまうという問題があった。
【0017】特に、チェックポイントにおいて、キャッ
シュフラッシュ操作を行なわなければならないような方
式を採用した計算機にあっては、チェックポイント処理
時間の増大が大きな問題であった。
【0018】本発明は上記のような点に鑑みなされたも
ので、キャッシュフラッシュ操作に要する時間を短縮し
てシステム性能を向上させるキャッシュフラッシュ装置
及び同装置を備えた計算機システム、記録媒体を提供す
ることを目的とする。
【0019】
【課題を解決するための手段】
(1)本発明の第1の態様によれば、キャッシュフラッ
シュ装置は、バススヌープ機構を有するコピーバック型
のキャッシュメモリを備えた少なくとも1つ以上のプロ
セッサと、メインメモリと、上記プロセッサと上記メイ
ンメモリとを接続するシステムバスとを具備してなる計
算機に用いられるキャッシュフラッシュ装置であって、
上記キャッシュメモリ内に確保されたキャッシュブロッ
クのうち、上記メインメモリに書き戻すべきデータを保
持した状態にあるキャッシュブロックであるダーティブ
ロックが保持するデータのアドレスを記憶するための領
域を複数備えた更新アドレス記憶手段と、上記キャッシ
ュメモリ上でのデータ更新を上記システムバスの監視に
よって検知し、その更新アドレスとデータ更新を行なっ
た上記プロセッサの識別番号とから上記更新アドレス記
憶手段の各領域の中のいずれかの領域を選択し、その選
択した領域に上記更新アドレスを格納する更新アドレス
登録手段と、上記ダーティブロックが保持するデータの
上記メインメモリへの書き戻しを上記システムバスの監
視によって検知し、その書き戻しアドレスと書き戻しを
行なった上記プロセッサの識別番号とから上記更新アド
レス記憶手段の各領域の中のいずれかの領域を選択し、
その選択した領域に格納された上記書き戻しアドレスと
一致する更新アドレスを削除する更新アドレス削除手段
と、上記プロセッサから指示されたときに、上記更新ア
ドレス記憶手段に記憶されたすべての更新アドレスを逐
次読み出し、その読み出した更新アドレスで示される上
記ダーティブロックが保持するデータの上記メインメモ
リへの書き戻しを要求するコマンドを上記システムバス
に発行するフラッシュ実行手段とを具備してなることを
特徴とする。
【0020】上記第1の態様では、キャッシュメモリ上
のすべてのダーティブロックのアドレスは、更新アドレ
ス登録手段によって更新アドレス記憶手段の備える複数
の領域の中のいずれかに記憶される。また、あるキャッ
シュブロックが一旦ダーティ状態となった後、ダーティ
状態でなくなったときには、更新アドレス削除手段によ
って領域からそのアドレスは削除される。
【0021】そして、キャッシュフラッシュを行なうと
きには、フラッシュ実行手段が、ダーティブロックのア
ドレスを各領域から順次取り出し、そのアドレスで示さ
れるデータのメインメモリへの書き戻しを要求するコマ
ンドをシステムバスに発行することによって、すべての
ダーティブロックの内容がメインメモリへ書き戻され
る。
【0022】これにより、例えば従来のソフトウェアに
よるキャッシュフラッシュのように、すべてのキャッシ
ュブロックについて順次ダーティブロックかどうか判定
していくといった処理を行なう必要がなくなるため、迅
速かつ効率的なキャッシュフラッシュ操作を行なうこと
が可能となる。
【0023】(2)本発明の第2の態様によれば、キャ
ッシュフラッシュ装置は、バススヌープ機構を有するコ
ピーバック型であってダイレクトマップ方式のキャッシ
ュメモリを備えた少なくとも1つ以上のプロセッサと、
メインメモリと、上記プロセッサと上記メインメモリと
を接続するシステムバスとを具備してなる計算機に用い
られるキャッシュフラッシュ装置であって、上記キャッ
シュメモリ内に確保されたキャッシュブロックそれぞれ
に対応して設けられ、上記メインメモリに書き戻すべき
データを保持した状態にあるキャッシュブロックである
ダーティブロックが保持するデータのアドレスを記憶す
るための領域であって、それぞれが1つのエントリを有
してなる領域を複数備えた更新アドレス記憶手段と、上
記キャッシュメモリ上でのデータ更新を上記システムバ
スの監視によって検知し、その更新アドレスとデータ更
新を行なった上記プロセッサの識別番号とから上記更新
アドレス記憶手段の各領域の中のいずれかの領域を選択
し、その選択した領域に上記更新アドレスを登録する更
新アドレス登録手段と、上記ダーティブロックが保持す
るデータの上記メインメモリへの書き戻しを上記システ
ムバスの監視によって検知し、その書き戻しアドレスと
書き戻しを行なった上記プロセッサの識別番号とから上
記更新アドレス記憶手段の各領域の中のいずれかの領域
を選択し、その選択した領域に登録された更新アドレス
と上記書き戻しアドレスとが一致するときに、その領域
に登録された更新アドレスを削除する更新アドレス削除
手段と、上記プロセッサから指示されたときに、上記更
新アドレス記憶手段に記憶されたすべての更新アドレス
を逐次読み出し、その読み出した更新アドレスで示され
る上記ダーティブロックが保持するデータの上記メイン
メモリへの書き戻しを要求するコマンドを上記システム
バスに発行するフラッシュ実行手段とを具備してなるこ
とを特徴とする。
【0024】上記第2の態様では、例えばプロセッサが
メインメモリへの書き込み要求を一時的に蓄えるライト
バッファを持つ場合、システムバスに接続された前述の
キャッシュフラッシュ装置側から見ると、1つのキャッ
シュブロックが、一時に複数のダーティブロックを格納
しているように見えてしまう状況が発生する。本発明の
キャッシュフラッシュ装置は、このような状況に対応さ
せたものであり、各領域が1つのエントリのみを有する
構成として、このエントリには、ライトバッファではな
く、キャシュブロックに格納されたデータのアドレス
(最新の更新アドレス)のみを格納するようにし、更新
アドレス削除手段が、この更新アドレス登録手段によっ
て格納された最新の更新アドレスと、システムバスに発
行された書き戻しアドレスとが一致するときにのみ、そ
の更新アドレスの削除を行なうようにする。このよう
に、各領域を1つのエントリのみを有する構成とし、か
つライトバッファからシステムバスに発行された最新よ
り前の更新アドレスの書き戻し要求を無視することによ
り、適切なキャッシュフラッシュ動作が確保されること
になる。
【0025】(3)本発明の第3の態様によれば、キャ
ッシュフラッシュ装置は、バススヌープ機構を有するコ
ピーバック型であってダイレクトマップ方式のキャッシ
ュメモリを備えた少なくとも1つ以上のプロセッサと、
メインメモリと、上記プロセッサと上記メインメモリと
を接続するシステムバスとを具備してなる計算機に用い
られるキャッシュフラッシュ装置であって、上記キャッ
シュメモリ内に確保されるキャッシュブロックそれぞれ
に対応して設けられ、上記メインメモリに書き戻すべき
データを保持した状態にあるキャッシュブロックである
ダーティブロックが保持するデータのアドレスを記憶す
るための領域であって、それぞれが1つのエントリを有
してなる領域およびこの領域に対応して設けられるカウ
ンタを複数組備えた更新アドレス記憶手段と、上記キャ
ッシュメモリ上でのデータ更新を上記システムバスの監
視によって検知し、その更新アドレスとデータ更新を行
なった上記プロセッサの識別番号とから上記更新アドレ
ス記憶手段の各領域の中のいずれかの領域を選択し、そ
の更新アドレスを格納するとともに、その領域に対応す
る上記カウンタをインクリメントする更新アドレス登録
手段と、上記ダーティブロックが保持するデータの上記
メインメモリへの書き戻しを上記システムバスの監視に
よって検知し、その書き戻しアドレスと書き戻しを行な
った上記プロセッサの識別番号とから上記更新アドレス
記憶手段の各領域の中のいずれかの領域を選択し、その
領域に対応する上記カウンタをデクリメントする更新ア
ドレス削除手段と、上記プロセッサから指示されたとき
に、上記更新アドレス記憶手段が備えた領域のうち、そ
の領域に対応するカウンタの値が初期値でない領域に格
納された更新アドレスを逐次読み出し、その読み出した
更新アドレスで示される上記ダーティブロックが保持す
るデータの上記メインメモリへの書き戻しを要求するコ
マンドを上記システムバスに発行するフラッシュ実行手
段とを具備してなることを特徴とする。
【0026】上記第3の態様も、プロセッサがライトバ
ッファを持つ場合を考慮したものであり、各領域を1つ
のエントリのみを有する構成とするとともに、この領域
それぞれに対応してカウンタを設ける。そして、更新ア
ドレス登録手段は、更新アドレスをある領域に格納する
ときに、その領域に対応するカウンタをインクリメント
する。一方、更新アドレス削除手段は、書き戻しを検知
したときに、その領域に対応するカウンタをデクリメン
トする。そして、フラッシュ実行手段は、このカウンタ
が初期値でない領域に登録された更新アドレスについて
のみ書き戻しを要求する。すなわち、更新ブロック数と
書き戻しブロック数との差分をキャッシュブロックごと
に管理することにより、ライトバッファを適用した場合
でも適切なキャッシュフラッシュ動作が確保されること
になる。
【0027】なお、システムによっては、システムバス
へのコマンド発行では、ダーティブロックの内容をメイ
ンメモリへ書き戻すことができない場合がある。この場
合には、前述したフラッシュ実行手段に代えて、更新ア
ドレス記憶手段に記憶されたすべての更新アドレスを逐
次読み出し、この読み出した更新アドレスをプロセッサ
に通知する更新アドレス読み出し手段を備えることが好
ましい。この場合においても、このようにダーティブロ
ックのアドレスのみをプロセッサに通知する手段を備え
ることにより、従来のようにキャッシュブロックについ
て順次ダーティブロックかどうか判定していくといった
処理を行なうことと比較して、迅速かつ効率的なキャッ
シュフラッシュ操作を行なうことが可能となる。
【0028】(4)本発明の第4の態様によれば、キャ
ッシュフラッシュ装置は、バススヌープ機構を有するコ
ピーバック型のキャッシュメモリを備えた少なくとも1
つ以上のプロセッサと、メインメモリと、上記プロセッ
サと上記メインメモリとを接続するシステムバスとを具
備してなる計算機に用いられるキャッシュフラッシュ装
置であって、上記キャッシュメモリ内に確保されたキャ
ッシュブロックのうち、上記メインメモリに書き戻すべ
きデータを保持した状態にあるキャッシュブロックであ
るダーティブロックが保持するデータのアドレスを記憶
するための領域を複数備えた更新アドレス記憶手段と、
上記キャッシュメモリ上でのデータ更新を上記システム
バスの監視によって検知し、その更新アドレスとデータ
更新を行なった上記プロセッサの識別番号とから上記更
新アドレス記憶手段の各領域の中のいずれかの領域を選
択し、その選択した領域に上記更新アドレスを格納する
更新アドレス登録手段と、上記更新アドレス登録手段が
選択した領域の空きエントリ数が予め設定した値を下回
るときに、その領域にすでに格納されている更新アドレ
スの中のいずれか1つを選択し、この選択した更新アド
レスで示される上記ダーティブロックが保持するデータ
の上記メインメモリへの書き戻しを要求するコマンドを
上記システムバスに発行するとともに、その更新アドレ
スが格納されていたエントリを空きエントリとするエン
トリ解放手段(entry reclaim) と、上記プロセッサから
指示されたときに、上記更新アドレス記憶手段に記憶さ
れたすべての更新アドレスを逐次読み出し、その読み出
した更新アドレスで示される上記ダーティブロックが保
持するデータの上記メインメモリへの書き戻しを要求す
るコマンドを上記システムバスに発行するフラッシュ実
行手段とを具備してなることを特徴とする。
【0029】そして、本発明の第4の態様のキャッシュ
フラッシュ装置においては、更新アドレス記憶手段の備
える複数の領域それぞれに、予め設定された数(領域が
備えるエントリ数と一致させてもよいし、その範囲内の
任意の数であってもよい)の更新アドレスを記憶させる
ようにする。
【0030】すなわち、新たに更新アドレスを格納しよ
うとした際、その領域の空きエントリ数が予め設定され
た数を下回ってしまうようなときに、エントリ解放手段
が、すでに格納されている更新アドレスの中のいずれか
1つを選択し、この選択した更新アドレスの書き戻し要
求を発行するとともに、このエントリを空き状態とす
る。このように、領域それぞれの使用状況に応じて更新
アドレスの書き戻し要求を発行する機構を備えれば、ダ
イレクトマップ方式ではないキャッシュメモリへの適用
が容易になるとともに、更新アドレス記憶手段の備える
領域のエントリ数の設定や、領域とアドレスとの対応づ
けなどの自由度を大幅に拡大させることが可能となる。
【0031】なお、キャッシュメモリが、nウェイのセ
ットアソシアティブで構成される場合には、更新アドレ
ス記憶手段が備える複数の領域それぞれを、n個のキャ
ッシュブロックで形成されるグループに一対に設けるこ
とが好ましい。ハードウェアの簡素化と処理の高速化と
を実現するためである。
【0032】(5)本発明の第5の態様によれば、キャ
ッシュフラッシュ装置は、バススヌープ機構を有するコ
ピーバック型のキャッシュメモリを備えた少なくとも1
つ以上のプロセッサと、メインメモリと、上記プロセッ
サと上記メインメモリとを接続するシステムバスとを具
備してなる計算機に用いられるキャッシュフラッシュ装
置であって、上記キャッシュメモリ内に確保されたキャ
ッシュブロックのうち、上記メインメモリに書き戻すべ
きデータを保持した状態にあるキャッシュブロックであ
るダーティブロックが保持するデータのアドレスを記憶
するための領域を複数備えた更新アドレス記憶手段と、
上記キャッシュメモリ上でのデータ更新を上記システム
バスの監視によって検知し、その更新アドレスとデータ
更新を行なった上記プロセッサの識別番号とから上記更
新アドレス記憶手段の各領域の中のいずれかの領域を選
択し、その選択した領域に更新アドレスを登録する更新
アドレス登録手段と、上記ダーティブロックが保持する
データの上記メインメモリへの書き戻しを上記システム
バスの監視によって検知し、その書き戻しアドレスと書
き戻しを行なった上記プロセッサの識別番号とから上記
更新アドレス記憶手段の各領域の中のいずれかの領域を
選択し、その選択した領域内を予め定められた期間内で
検索して上記書き戻しアドレスと一致する更新アドレス
が検出されたときに、その更新アドレスを削除する更新
アドレス削除手段と、上記更新アドレス登録手段が選択
した領域の空きエントリ数が予め設定した値を下回って
いたときに、すでに登録されている更新アドレスの中の
いずれか1つを選択し、この選択した更新アドレスで示
される上記ダーティブロックが保持するデータの上記メ
インメモリへの書き戻しを要求するコマンドを上記シス
テムバスに発行するとともに、その更新アドレスが格納
されていたエントリを空きエントリとするエントリ解放
手段と、上記プロセッサから指示されたときに、上記更
新アドレス記憶手段に記憶されたすべての更新アドレス
を逐次読み出し、その読み出した更新アドレスで示され
る上記ダーティブロックが保持するデータの上記メイン
メモリへの書き戻しを要求するコマンドを上記システム
バスに発行するフラッシュ実行手段とを具備してなるこ
とを特徴とする。
【0033】上記第5の態様において、更新アドレス削
除手段は、書き戻しを要求するコマンドを検知したとき
に、予め定められた期間内で書き戻しアドレスに対応す
る領域内を検索し、その書き戻しアドレスと一致する更
新アドレスが検出されたとき、その更新アドレスを削除
(remove)する(検出されなかったときには何も
しない)。この場合には、領域内にすでにダーティブロ
ックではなくなった更新アドレスも混在して格納され続
ける可能性を含むことになるが、エントリ解放手段が空
きエントリ数を管理して能動的に空きエントリを確保す
る処理の中で削除されるものもあり、またフラッシュ実
行手段がこのダーティブロックではなくなったアドレス
を書き戻すコマンドを発行しても、いずれのキャッシュ
メモリもこのコマンドに応答しないのみで何ら問題はな
い。一方で、この更新アドレス削除手段の削除処理に費
やす時間を所定の範囲内に抑えるために、メインメモリ
に対するアクセス頻度が非常に高い場合などにおいても
他の処理に悪影響を与えることがない。
【0034】なお、この更新アドレス削除手段が、予め
定められた期間内で削除処理を実行することに代えて、
当該キャッシュメモリ装置が次に処理すべきコマンドを
検知するまで実行しつづけることも有効である。これに
よれば、他の処理に悪影響を与えることを防止するとと
もに、不要に格納された更新アドレスの削除処理の継続
/中断が、より適切に行なわれることになる。
【0035】また、更新アドレス削除手段が、前述のよ
うな書き戻しを要求するコマンドの検知以外に、例えば
キャッシュミスが発生したときに発行される読み出しコ
マンドなどを検知して、そのコマンドの対象となるアド
レスが領域内に更新アドレスとして登録されていないか
検索し、検出されたときに削除するなどといったことを
行なうことが好ましい。このキャッシュミスが発生した
ときに発行される読み出しコマンドの対象となるアドレ
スで示されるデータは、クリーンな状態であると判断で
きるため、このようなコマンドを契機とすれば、不要な
更新アドレスの削除処理を実行する頻度を高めることが
でき、エントリを解放する処理やキャッシュのフラッシ
ュ動作を軽減することが可能となる。
【0036】また、例えば予想されるキャッシュメモリ
のダーティ率によっては、各領域が有するエントリ数
を、対応するキャッシュブロック数よりも小さくしても
性能上問題になることがないため、その場合に各領域が
有するエントリ数を対応するキャッシュブロック数より
も小さくすれば、備えるべきハードウェア量を低減する
ことが可能となる。
【0037】また、場合によっては、更新アドレス記憶
手段が備える複数の領域を、更新アドレスのみで選択可
能に構成することも有効である。例えば、システムバス
の仕様によっては、システムバスの監視のみでは上記プ
ロセッサの識別番号を得ることができない場合もある。
すなわち、その場合であっても、当該キャッシュフラッ
シュ装置を適用可能となるためである。
【0038】(6)本発明の第6の態様によれば、キャ
ッシュフラッシュ装置は、上記更新アドレス記憶手段
が、上記ダーティブロックが保持するデータのアドレス
を記憶するための領域それぞれに対応した上記ダーティ
ブロックの数を保持するためのダーティブロックカウン
タを有し、上記更新アドレス登録手段が、上記選択した
領域に対応した上記ダーティブロックカウンタをインク
リメントするインクリメント手段を有し、上記ダーティ
ブロックが保持するデータの上記メインメモリへの書き
戻しを上記システムバスの監視によって検知し、その書
き戻しアドレスと書き戻しを行なった上記プロセッサの
識別番号とから上記更新アドレス記憶手段の各領域の中
のいずれかの領域を選択し、その選択した領域に対応し
た上記ダーティブロックカウンタをデクリメントするデ
クリメント手段と、このデクリメント手段のデクリメン
トによって上記ダーティブロックカウンタが初期値にな
ったときに、そのダーティブロックカウンタに対応する
領域の中の更新アドレスが格納されていたエントリをす
べて空きエントリとするエントリ一括解放手段をさらに
具備してなることを特徴とする。
【0039】上記第6の態様では、ダーティブロックカ
ウンタを管理することにより、ある領域に登録された更
新アドレスすべてがメインメモリへの書き戻し不要とな
ったことを検知することができ、その際にエントリ一括
解放手段がすべてのエントリを空き状態としてエントリ
解放手段の動作機会を減少させれば、計算機全体の性能
を向上させることが可能となる。
【0040】(7)本発明の第7の態様によれば、キャ
ッシュフラッシュ装置は、上記更新アドレス記憶手段
が、上記ダーティブロックが保持するデータのアドレス
を記憶するための領域それぞれに対応した上記ダーティ
ブロックの数を保持するためのダーティブロックカウン
タを有し、上記更新アドレス登録手段が、上記選択した
領域に対応した上記ダーティブロックカウンタをインク
リメントするインクリメント手段を有し、上記更新アド
レス削除手段が、上記選択した領域に対応した上記ダー
ティブロックカウンタをデクリメントするデクリメント
手段を有し、このデクリメント手段のデクリメントによ
って上記ダーティブロックカウンタが初期値になったと
きに、そのダーティブロックカウンタに対応する領域に
格納された更新アドレスをすべて削除する一括削除手段
をさらに具備してなることを特徴とする。
【0041】上記第7の態様では、ダーティブロックカ
ウンタを管理することにより、ある領域に登録された更
新アドレスすべてがメインメモリへの書き戻し不要とな
ったことを検知することができ、その際にエントリ一括
解放手段がすべてのエントリを空き状態としてエントリ
解放手段の動作機会を減少させれば、計算機全体の性能
を向上させることが可能となる。
【0042】また、ある領域に格納されたすべての更新
アドレスが書き戻し不要となったときに代えて、格納さ
れた更新アドレス数がダーティブロックカウンタの値を
予め定められた値を越えて多くなったときに、エントリ
解放手段にある程度の数の更新アドレスを解放させるこ
とも有効である。この場合には、書き戻し不要となった
更新アドレスが所定量を越えて格納されることを回避し
て、キャッシュフラッシュ操作時に不要に発行されるコ
マンドの数を減少させることが可能となる。
【0043】(8)本発明の第8の態様によれば、計算
機システムは、バススヌープ機構を有するコピーバック
型のキャッシュメモリを備えた少なくとも1つ以上のプ
ロセッサと、メインメモリと、上記プロセッサと上記メ
インメモリとを接続するシステムバスとを具備してな
り、中断した処理を再開始するためのチェックポイント
を定期的に採取する計算機システムであって、請求項
1、2、3、7乃至13記載のいずれかのキャッシュフ
ラッシュ装置と、このキャッシュフラッシュ装置に更新
アドレスの捕捉をさせながら通常のデータ処理を実行す
るデータ処理手段と、上記プロセッサすべてが同期して
実行するデータ処理中のコンテキストのメインメモリへ
の格納、および上記キャッシュフラッシュ装置の上記フ
ラッシュ実行手段が実行するすべてのダーティブロック
が保持するデータの上記メインメモリへの書き戻しを含
むチェックポイント作成手段と、故障が発生したとき
に、直前に採取したチェックポイント時点に上記メイン
メモリを復元し、この復元された上記メインメモリに保
持された情報を用いて、データ処理を再開するロールバ
ックリカバリ手段とを具備してなることを特徴とする。
【0044】上記第8の態様では、中断した処理を再開
始するためのチェックポイントを定期的に採取する計算
機システムにおいては、このチェックポイントの採取に
費やす時間をいかに短縮するかが重要である。そして、
このチェックポイント採取処理のほとんどが、キャッシ
ュフラッシュ操作で占められている。すなわち、このよ
うな計算機システムに、前述したようなキャッシュフラ
ッシュ装置を適用すれば、システム全体の性能を向上さ
せることが可能となる。
【0045】なお、チェックポイントを定期的に採取す
ることに加えて、主系および従系といった複数の計算機
を備えた計算機システムの場合も、前述したようなキャ
ッシュフラッシュ装置を適用することが好ましい。チェ
ックポイント採取時の所要時間を短縮できるために、シ
ステム全体の性能を向上させることが可能となるからで
ある。さらに、これらの計算機が通常時に実行するデー
タ処理の中で、キャッシュフラッシュ装置のフラッシュ
実行手段を起動すれば、チェックポイント採取時の所要
時間をさらに短縮することが可能となる。
【0046】
【発明の実施の形態】以下、図面を参照して本発明の一
実施の形態を説明する。
【0047】図1は第1の実施形態の構成を示すブロッ
ク図である。
【0048】キャッシュ一貫性を備えたコピーバック型
のキャッシュメモリ20を有する複数の(ここでは、3
つの)プロセッサ10はシステムバス40に接続され
る。ここで、キャッシュメモリがプライマリとセカンダ
リとの2階層あるいはそれ以上の階層で構成される場
合、本実施の形態でいうキャッシュメモリとは、システ
ムバス40に最も近いキャッシュメモリを指す。また、
キャッシュメモリによっては、命令を格納するキャッシ
ュメモリと、データを格納するキャッシュメモリとに分
かれているものもあるが、その場合、本実施の形態でい
うキャッシュメモリとは、データを格納するためのキャ
ッシュメモリを指す。また、本システムにおけるシステ
ムバス40上でのアドレスは、32ビットとして説明す
る。
【0049】システムバス40には、キャッシュフラッ
シュ装置30と、メインメモリ51に接続されるメモリ
コントローラ50も接続される。キャッシュフラッシュ
装置30は、バスインタフェース31、更新アドレス記
憶部32(領域A0〜An−1からなる)、更新アドレ
ス登録部33、更新アドレス削除部34およびフラッシ
ュ実行部35で構成される。
【0050】更新アドレス登録部33と更新アドレス削
除部34は上述機能で1種のハードウェアモジュールと
して成されるものである。
【0051】バスインタフェース31は、システムバス
40とのインタフェースを司る。
【0052】更新アドレス記憶部32は、すべてのダー
ティブロックのアドレスを保持するためのn個の領域A
0〜An−1で構成される。本例では、すべてのダーテ
ィブロックのアドレスが更新アドレス記憶部32に格納
され、ダーティではないアドレスは更新アドレス記憶部
32には格納されない。
【0053】ここで、領域の構造について説明する。領
域Aiは、図2(a)、図2(b)に示すように、更新
アドレスを格納する1つ以上のエントリを有する。各エ
ントリに格納されている値が有効であるか否かを示す必
要があるが、この方法としては、下記の2つの方法のい
ずれかに基づくのが適当である。
【0054】(1)更新アドレスが格納されていないエ
ントリには、通常は決して取り得ない値(例えば、0x
FFFFFFFF)を格納する(図2(a))。
【0055】(2)アドレスを格納するエントリとは別
にエントリの内容が有効か否か(valid or invalid)を示
すフラグを各エントリにつける(図2(b))。
【0056】なお、更新アドレス記憶部32を構成する
領域の設け方、およびアドレスと領域の対応について
は、後で詳細な説明を行なう。
【0057】図3は、更新アドレス登録部33の動作手
順を示す。プロセッサ10によるデータ書き込みによ
り、キャッシュメモリ20上でデータ更新が発生したこ
とを示すコマンドを検知すると(ステップA1)、更新
の発生したアドレス(更新アドレス)、および更新を行
なったプロセッサの識別番号に基づいて、更新アドレス
記憶部32を構成するn個の領域(A0〜An−1)の
いずれかの領域を選択し(ステップA2)、選択した領
域に属する更新を行なったプロセッサ10の識別番号の
獲得は、システムバスの仕様によって、下記の2通りの
場合がある。
【0058】(1)上記コマンドに含まれる場合 (2)バスアービトレーションの信号を監視することに
よって得られる場合 図4は、更新アドレス削除部34の動作手順を示す。ダ
ーティブロックの内容をメインメモリに書き戻すための
コマンドを検知すると(ステップB1)、書き戻しの発
生したアドレス(書戻しアドレス)、および書き戻しを
行なったプロセッサの識別番号に基づいて、更新アドレ
ス記憶部32を構成するn個の領域(A0〜An−1)
のいずれかの領域を選択し(ステップB2)、その領域
に含まれるエントリの中からそのアドレスを含むエント
リを探し、更新アドレスを削除する(ステップB3)。
【0059】なお、更新アドレス登録部33および更新
アドレス削除部34は、プロセッサ識別番号とアドレス
とから更新アドレス記憶部32を構成するn個の領域
(A0〜An−1)のいずれかの領域を選択する方法に
おいて、同一の方法をとらなければならない。また、更
新アドレス記憶部32をn個の領域で構成する理由は、
更新アドレス削除部34が書き戻しアドレスを含むエン
トリを探して、削除する動作をキャッシュメモリ並みに
高速化するためである。
【0060】図5は、フラッシュ実行部35の動作手順
を示す。
【0061】フラッシュ実行部35はプロセッサからの
指示に基づき、更新アドレス記憶部32に格納されてい
る全てのアドレスを逐次取り出して、そのアドレスを有
するダーティブロックの内容をメインメモリに書き戻す
ことを要求するコマンドをシステムバスに発行する。こ
のため、ステップC1で領域を示す変数iを0とし、ス
テップC2で領域Aiに更新アドレスがあるか否か決定
する。イエスの場合は、ステップC3で領域Aiに含ま
れる更新アドレスを取り出し、そのアドレスのダーティ
ブロックの内容をメインメモリに書き戻しを要求するコ
マンドを発行し、ステップC2に戻る。ステップC2で
ノーの場合は、ステップC4で変数iをインクリメント
し、ステップC5で全部の領域の処理が終わったか否か
判定するためにi=nか否か決定する。ノーの場合は、
ステップC2に戻り、イエスの場合は、終了する。
【0062】取り出されたアドレスを更新アドレス記憶
部32から削除する処理は、フラッシュ実行部35が実
行しても良いが、フラッシュ実行部35が発行したメイ
ンメモリ51への書き戻しを要求するコマンドを、更新
アドレス削除部34が検知することによっても可能であ
る。
【0063】次に、本例のキャッシュフラッシュ装置3
0の制御方法に則して、その動作を説明する。
【0064】(初期化)プロセッサ10は、キャッシュ
フラッシュ装置30を動作させる前に、キャッシュメモ
リ20の状態とキャッシュフラッシュ装置30の更新ア
ドレス記憶部32の内容が一致するように初期化を行な
う。初期化では、すべてのキャッシュブロックをインバ
リッド状態にする。領域A0〜An−1は、更新アドレ
スを含まないように初期化される。
【0065】(キャッシュフラッシュ装置30の通常時
の動作)プロセッサ10が初期化を行なった後、キャッ
シュフラッシュ装置30を構成する各部が所定の動作を
行なうことにより、更新アドレス記憶部32には、すべ
てのダーティブロックのアドレスが保持される。逆に更
新アドレス記憶部32に格納されている更新アドレスに
対して、必ずダーティブロックが存在する。それについ
て説明する。ここでは、あるプロセッサ10がキャッシ
ュメモリ20上でデータを更新する場合を考える。
【0066】(1)そのキャッシュメモリ20が更新す
べきデータを保持していない場合、そのアドレスのデー
タを要求するとともに、他のキャッシュメモリ20に対
して、そのアドレスのデータの無効化を要求するコマン
ドがシステムバス40に対して発行される。そして、そ
のキャッシュメモリ20にデータが供給されると、その
キャッシュブロックがダーティ状態に変化する。更新ア
ドレス登録部33は、上記コマンドをバスインタフェー
ス31を介して捉え、更新アドレスおよびプロセッサ識
別番号に基づいて、領域A0〜An−1のいずれかを選
択し、その領域の空きエントリに上記アドレスを書き込
む。
【0067】(2)そのキャッシュメモリ20が更新す
べきデータをShared状態で保持している場合、他
のキャッシュメモリ20に対して、そのアドレスのデー
タの無効化を要求するコマンドがシステムバス40に対
して発行される。そして、他のキャッシュメモリ20か
らの応答があると、そのキャッシュブロックの状態がダ
ーティに変化する。更新アドレス登録部33は、上記コ
マンドをバスインタフェースを介して捉え、更新アドレ
スおよびプロセッサ識別番号に基づいて、領域A0〜A
n−1のいずれかを選択し、その領域に上記アドレスを
書き込む。
【0068】(3)そのキャッシュメモリ20が更新す
べきデータをすでにダーティ状態で保持している場合、
システムバス40上にデータ更新を示すコマンドは出
ず、したがって、キャッシュフラッシュ装置30は何の
動作もしない。しかし、そのキャッシュブロックのアド
レスは、かつてダーティ状態以外からダーティ状態にな
ったとき、そのアドレスが領域A0〜An−1のいずれ
かに記憶されているので問題は生じない。
【0069】キャッシュメモリによっては、前述した
(1)〜(3)の状態の他に、Clean Exclu
siveという状態を取り得るものがある。Clean
Exclusive状態というのは、キャッシュメモ
リの内容はメインメモリと同一であり、かつそのアドレ
スのデータを保持しているキャッシュメモリはそのキャ
ッシュメモリのみであることを表わす。キャッシュブロ
ックがClean Exclusive状態になるの
は、プロセッサがデータを読込もうとしてキャッシュミ
スが発生し、そのデータを要求するコマンドがシステム
バスに発行されたとき、いずれのキャッシュメモリも
「そのデータを持っている」との応答を返さなかった場
合である。
【0070】キャッシュブロックがClean Exc
lusive状態である場合に、そのキャッシュブロッ
クに対してデータの書込みが行なわれると、他のキャッ
シュメモリにはそのアドレスに対応するキャッシュブロ
ックが存在しないため、システムバスにはデータの更新
を示すコマンドが発行されることなく、キャッシュブロ
ックがダーティ状態に変化する。
【0071】したがって、本例では、Clean Ex
clusive状態を取り得るキャッシュメモリを使用
する場合は、キャッシュブロックがClean Exc
lusive状態とならないようにする必要がある。そ
れは、キャッシュフラッシュ装置30に、あるキャッシ
ュメモリがプロセッサからのデータ読込みでキャッシュ
ミスを起こしてシステムバスにデータを要求するコマン
ドに対し、「そのデータを持っている」との応答を返す
機能を追加することで実現できる。
【0072】また、あるダーティブロックの内容がメイ
ンメモリ51に書き戻される場合、更新アドレス削除部
34がそのコマンドを検知し、書き戻しアドレスとプロ
セッサ識別番号をもとに、更新アドレス登録部33が領
域A0〜An−1を選択したのと同じ方法で領域A0〜
An−1のいずれかを選択し、その中に含まれる同アド
レスを削除する。
【0073】(キャッシュフラッシュ装置30によるキ
ャッシュフラッシュ動作)プロセッサ10がキャッシュ
フラッシュ装置30にキャッシュフラッシュを命ずる
と、フラッシュ実行部35は、プロセッサ10からの指
示に基づき、更新アドレス記憶部32に格納されている
すべてのアドレスを逐次取り出して、そのアドレスを有
するダーティブロックの内容をメインメモリ51に書戻
すことを要求するコマンドをシステムバス40に発行す
る。
【0074】この結果、ダーティブロックが存在せず、
また、更新アドレス記憶部32にも更新アドレスが記憶
されていない初期状態に戻る。
【0075】本実施形態においては、更新アドレス記憶
部32を構成する領域A0〜An−1の設定方法、およ
びアドレスと領域との対応づけは、キャッシュメモリ2
0の構成に合わせるのが望ましい。次にそれについて説
明する。
【0076】(領域の設計方法その1)まず、キャッシ
ュメモリ20がダイレクトマップ方式で、プロセッサ数
が1という最も単純な場合について説明する。いま、1
つのキャッシュブロックの大きさがBバイト、キャッシ
ュブロックの個数がMであるとする。この場合、通常の
キャッシュメモリでは、アドレスa番地のデータは、
(a/B mod M)番目のキャッシュブロックに格
納される。
【0077】この場合、領域A0〜An−1は、キャッ
シュブロックと1対1に対応させて設ける。すなわち、
領域の個数nをキャッシュブロック数Mと同じにして、
アドレスa番地のデータは、(a/B mod M)番
目の領域に格納する。なお、プロセッサ数が1であるの
で、更新アドレス登録部33および更新アドレス削除部
34は、プロセッサ識別番号を使用する必要はない。
【0078】ここで、最近のプロセッサが備えているラ
イトバッファと呼ばれる機構を有するキャッシュメモリ
に対処する必要があるので、それについて説明する。
【0079】ライトバッファとは、プロセッサおよびキ
ャッシュメモリからメインメモリへのデータ書込み要求
を一時的に蓄えるバッファである。ライトバッファを備
えることにより、プロセッサがダーティブロックに対し
て別のアドレスのデータを更新しようとしてライトミス
が発生した場合、まず新しく更新すべきデータをメイン
メモリから読み出して、その後に、もともとのダーティ
ブロックの内容をメインメモリに書き戻すようになる。
つまり、プロセッサからいえば、新しく更新すべきデー
タが、いち早く利用可能になるわけであり、その分だけ
性能が向上することになる。
【0080】最近のプロセッサでは、ライトバッファを
2個以上備えるので、同じキャッシュブロックに対応す
る種々のアドレスでのデータ更新が次々に起こると、メ
インメモリから更新すべきデータの読み出しが次々に起
こり、その後、ダーティブロックの書き戻しが連続して
起こる可能性がある。
【0081】このため、システムバス40を観測してい
るキャッシュフラッシュ装置30には、あたかも1つの
領域に対する更新アドレスが、ライトバッファの数+1
だけ存在するように見えることが一時的に起こるので、
それに対する対策が必要である。
【0082】最も単純な対策は、各領域のエントリ数を
増やすことであるが、下記の問題がある。
【0083】(1)エントリ数を大きくするため、ハー
ドウェア量が大きくなる。
【0084】(2)多くのエントリの中から、メインメ
モリへの書き戻しのあったアドレスを見つけるのを高速
化することは難しい。
【0085】キャッシュメモリがダイレクトマップ方式
の場合に限れば、ライトバッファ機構を有するキャッシ
ュメモリに対しては、下記に示す2つの具体例が有効で
ある。
【0086】(具体例1)ここでは、各領域のエントリ
数を1とする。更新アドレス登録部33がデータ更新を
示すコマンドを検知したときのキャッシュフラッシュ装
置30の動作手順を示す図6、更新アドレス削除部34
がダーティブロックのメインメモリ51への書き戻しを
示すコマンドを検知したときのキャッシュフラッシュ装
置30の動作手順を示す図7を参照して動作手順を説明
する。
【0087】(1)更新アドレス登録部33は、データ
更新を示すコマンドを検知すると、対応する領域のエン
トリに更新アドレスを書き込む(図6)。
【0088】(2)更新アドレス削除部34は、ダーテ
ィブロックの内容のメインメモリ51への書き戻しコマ
ンドを検知すると、対応する領域のエントリの内容と書
き戻しアドレスを比較する。一致すれば、そのエントリ
の内容を空きエントリの状態に変更する(図7)。
【0089】(3)フラッシュ実行部35は、各領域に
ついて、その領域のエントリが空きエントリでないと
き、そのアドレスのダーティブロックの内容のメインメ
モリ51への書き戻しを要求するコマンドをシステムバ
ス40に発行する。
【0090】ここで、図8を参照して、プロセッサ10
が、0番地、B×M番地、2B×M番地にそれぞれデー
タD0,D1,D2を連続して書き込む場合の動作を説
明する。ただし、Bはキャッシュブロックの大きさ、M
はプロセッサのキャッシュブロック数である。
【0091】(1)プロセッサ10が、0番地にデータ
D0を書こうとしたが、キャッシュブロック0に0番地
のデータが格納されていなかったので、システムバス4
0にメインメモリ51もしくは他のプロセッサ10のキ
ャッシュメモリ20(この場合、プロセッサ数は1なの
で、他のプロセッサ10からというのは、実際には起こ
らない)に、0番地から(B−1)番地のデータを要求
するとともに、データを更新することを他のプロセッサ
10に伝えるコマンドをシステムバス40に発する。
【0092】(2)その結果、キャッシュブロック0
に、0番地から(B−1)番地までのデータがダーティ
状態で格納され、そのうち、0番地のデータがD0に更
新される。また、領域A0には、0番地が更新されたこ
とに対応して更新アドレス0が格納される。
【0093】(3)プロセッサ10が、B×M番地にデ
ータD1を書こうとしたが、キャッシュブロック0にB
×M番地のデータが格納されていなかったので、現在ダ
ーティ状態で保持されている0番地のデータをメインメ
モリ51に書き戻すためのメインメモリ51へのライト
要求が、ライトバッファに格納される。また、システム
バス40に、メインメモリ51もしくは他のプロセッサ
10のキャッシュメモリ20に(この場合、プロセッサ
数は1なので、他のプロセッサ10からというのは、実
際には起こらない)、B×M番地から(B×M+B−
1)番地のデータを要求するとともに、データを更新す
ることを他のプロセッサ10に伝えるコマンドをシステ
ムバス40に発する。
【0094】(4)その結果、キャッシュブロック0
に、B×M番地から(B×M+B−1)番地までのデー
タがダーティ状態で格納され、そのうち、B×M番地の
データがD1に更新される。また、領域A0には、B×
M番地が更新されたことに対応してB×Mが格納され
る。
【0095】(5)プロセッサ10が2B×M番地にデ
ータD2を書こうとしたが、キャッシュブロック0に2
B×M番地のデータが格納されていなかったので、現在
ダーティ状態で保持されているB×M番地のデータをメ
インメモリ51に書き戻すためのメインメモリ51への
ライトアクセス要求が、ライトバッファに格納される。
この結果、ライトバッファには、メインメモリ51への
書き戻しのコマンドが2個格納されることになる。ま
た、システムバス40にメインメモリ51もしくは他の
プロセッサ10のキャッシュメモリ20に(この場合、
プロセッサ数は1なので、他のプロセッサ10からとい
うのは、実際には起こらない)、2B×M番地から(2
B×M+B−1)番地のデータを要求するとともに、デ
ータを更新することを他のプロセッサ10に伝えるコマ
ンドをシステムバス40に発する。 (6)その結果、キャッシュブロック0に、2B×M番
地から(2B×M+B−1)番地までのデータがダーテ
ィ状態で格納され、そのうち、2B×M番地のデータが
D2に更新される。また、領域A0には、2B×M番地
が更新されたことに対応して2B×Mが格納される。
【0096】(7)ライトバッファに格納されていた、
0番地から(B−1)番地までのデータのメインメモリ
51への書き戻しのコマンドが、システムバス40に発
せられる。更新アドレス削除部34は、領域A0の内容
2B×Mと書き戻しアドレス0が一致しないので、何も
しない。
【0097】(8)ライトバッファに格納されていた、
B×M番地から(B×M+B−1)番地までのデータの
メインメモリ51への書き戻しのコマンドが、システム
バス40に発せられる。更新アドレス削除部34は、領
域A0の内容2B×Mと書き戻しアドレスB×Mが一致
しないので、何もしない。
【0098】以上、具体例1について説明した。
【0099】(具体例2)ここでは、各領域のエントリ
数を1とし、その領域に対応する更新アドレスがいくつ
あるかを示すカウンタを設ける。エントリおよびカウン
タは、下記のように使用される。
【0100】(1)カウンタ0は、その領域に含まれる
更新アドレスが無いことを示す。
【0101】(2)更新アドレス登録部33は、データ
更新を検知すると、対応する領域のエントリに更新アド
レスを書き込むとともに、その領域のカウンタを+1す
る。 (3)更新アドレス削除部34は、ダーティブロックの
内容のメインメモリ51への書き戻しを検知すると、対
応する領域のカウンタを−1する。
【0102】(4)フラッシュ実行部35は、各領域に
ついて、その領域のカウンタが0でないとき、そのアド
レスのダーティブロックの内容のメインメモリ51への
書き戻しを要求するコマンドをシステムバス40に発行
する。
【0103】領域Aiの構造を、図9に示す。32ビッ
トのエントリに4ビットのカウンタが設けられている。
【0104】図10は更新アドレス登録部33がデータ
更新を示すコマンドを検知した時のキャッシュフラッシ
ュ装置30の動作手順、図11は更新アドレス削除部3
4がダーティブロックのメインメモリ51への書き戻し
を示すコマンドを検知したときのキャッシュフラッシュ
装置30の動作手順、および図12はフラッシュ実行部
35の動作手順をそれぞれ示す。
【0105】次に、図13を参照して、プロセッサ10
が、0番地、B×M番地、2B×M番地にそれぞれデー
タD0,D1,D2を連続して書き込む場合の動作を説
明する。ただし、Bはキャッシュブロックの大きさ、M
はプロセッサのキャッシュブロック数である。
【0106】(1)プロセッサ10が、0番地にデータ
D0を書こうとしたが、キャッシュブロック0に0番地
のデータが格納されていなかったので、システムバス4
0にメインメモリ51もしくは他のプロセッサ10のキ
ャッシュメモリ20(この場合、プロセッサ数は1なの
で、他のプロセッサ10からというのは、実際には起こ
らない)に、0番地から(B−1)番地のデータを要求
するとともに、データを更新することを他のプロセッサ
10に伝えるコマンドをシステムバス40に発する。
【0107】(2)その結果、キャッシュブロック0
に、0番地から(B−1)番地までのデータがダーティ
状態で格納され、そのうち、0番地のデータがD0に更
新される。また、領域A0には、0番地が更新されたこ
とに対応して0が格納され、カウンタの値は+1されて
1となる。
【0108】(3)プロセッサ10が、B×M番地にデ
ータD1を書こうとしたが、キャッシュブロック0にB
×M番地のデータが格納されていなかったので、現在ダ
ーティ状態で保持されている0番地のデータをメインメ
モリ51に書き戻すためのメインメモリ51へのライト
アクセス要求が、ライトバッファに格納される。また、
システムバス40に、メインメモリ51もしくは他のプ
ロセッサ10のキャッシュメモリ20(この場合、プロ
セッサ数は1なので、他のプロセッサ10からというの
は、実際には起こらない)に、B×M番地から(B×M
+B−1)番地のデータを要求するとともに、データを
更新することを他のプロセッサ10に伝えるコマンドを
システムバス40に発する。
【0109】(4)その結果、キャッシュブロック0
に、B×M番地から(B×M+B−1)番地までのデー
タがダーティ状態で格納され、そのうち、B×M番地の
データがD1に更新される。また、領域A0には、B×
M番地が更新されたことに対応してB×Mが格納され
る。また、カウンタの値は+1されて2となる。
【0110】(5)プロセッサ10が2B×M番地にデ
ータD2を書こうとしたが、キャッシュブロック0に2
B×M番地のデータが格納されていなかったので、現在
ダーティ状態で保持されているB×M番地のデータをメ
インメモリ51に書き戻すためのメインメモリ51への
ライトアクセス要求が、ライトバッファに格納される。
この結果、ライトバッファには、メインメモリ51への
書き戻しのコマンドが2個格納されることになる。ま
た、システムバス40にメインメモリ51もしくは他の
プロセッサ10のキャッシュメモリ20(この場合、プ
ロセッサ数は1なので、他のプロセッサ10からという
のは、実際には起こらない)に、2B×M番地から(2
B×M+B−1)番地のデータを要求するとともに、デ
ータを更新することを他のプロセッサ10に伝えるコマ
ンドをシステムバス40に発する。 (6)その結果、キャッシュブロック0に、2B×M番
地から(2B×M+B−1)番地までのデータがダーテ
ィ状態で格納され、そのうち、2B×M番地のデータが
D2に更新される。また、領域A0には、2B×M番地
が更新されたことに対応して2B×Mが格納される。ま
た、カウンタの値は+1されて3となる。
【0111】(7)ライトバッファに格納されていた、
0番地から(B−1)番地までのデータのメインメモリ
51への書き戻しのコマンドが、システムバス40に発
せられる。領域A0に対応するカウンタの値は−1され
て、2となる。
【0112】(8)ライトバッファに格納されていた、
B×M番地から(B×M+B−1)番地までのデータの
メインメモリ51への書き戻しのコマンドが、システム
バス40に発せられる。また、領域A0に対応するカウ
ンタの値は−1されて、1となる。
【0113】以上、具体例2について説明した。
【0114】(領域の設計方法その2)次に、キャッシ
ュメモリ20がダイレクトマップ方式で、プロセッサ数
がPという場合について説明する。この場合、1つのキ
ャッシュブロックの大きさがBバイト、キャッシュブロ
ックの個数がMであるとする。
【0115】この場合、2つの具体例がある。
【0116】(具体例3)領域の個数nをP×Mとし、
各領域のエントリ数を1とする。そして、最初のM個の
領域を最初のプロセッサ10のキャッシュメモリ20
に、次のM個の領域を2番目のプロセッサ10のキャッ
シュメモリ20に、という具合に対応させる。
【0117】更新アドレス登録部33および更新アドレ
ス削除部34は、前述の通りにプロセッサ識別番号とア
ドレスをもとに、領域を選択すれば良い。各領域は、1
つのプロセッサ10の1つのキャッシュブロックと対応
づけられるので、プロセッサ10が有するライトバッフ
ァへの対処では、先に説明した具体例1および具体例2
が有効である。
【0118】(具体例4)領域の個数nをMとし、各領
域のエントリ数をPとする。領域Aiは、各プロセッサ
10の第i番目のキャッシュブロックに対応させる。
【0119】このような対応づけを行なうことにより、
どのプロセッサ10でデータ更新が発生したかに依ら
ず、更新のあったアドレスから対応する領域が求められ
るので、第1の候補と異なり、プロセッサ識別番号は必
要ない。したがって、システムバスの仕様により、デー
タ更新を行なったプロセッサの識別番号が得られないよ
うな場合にも有効である。
【0120】ただし、プロセッサが有するライトバッフ
ァへの対処では、先に説明した具体例1および具体例2
が適用できないという問題がある。そのため、ライトバ
ッファを有するプロセッサについては、具体例3か、あ
るいは、後述する第2乃至第4の実施形態に基づく方が
望ましい。
【0121】(領域の設計方法その3)次に、キャッシ
ュメモリがNウェイのセットアソシアティブで、キャッ
シュブロック数がM、プロセッサ数が1という場合につ
いて説明する。1つのキャッシュブロックの大きさがB
バイトであるとする。この場合、N個のキャッシュブロ
ックがグループを形成し、アドレスa番地のデータは、
((a/B)mod(M/N))番目のグループのキャ
ッシュブロックに格納されることになる。
【0122】(具体例5)この場合、領域の個数nはM
/Nとし、各領域のエントリ数はNとする。また、アド
レスa番地のデータは、((a/B)mod(M/
N))番目の領域に格納する。この方法の欠点は、プロ
セッサ10がライトバッファを有する場合、ダイレクト
マップのキャッシュメモリ20の場合のような改良案が
ないことである。この問題に対しては、次に示す第2乃
乃至第4の実施形態に示す方式によるのが望ましい。
【0123】(具体例6)キャッシュメモリ20がセッ
トアソシアティブであっても、更新アドレスがどのウェ
イに格納されるか、システムバス40の制御信号線を観
測するなどの手段によって分かる場合には、ダイレクト
マップの場合と同様に、各キャッシュブロックごとに領
域を設定することが可能である。その場合には、プロセ
ッサ10が有するライトバッファへの対処では、先に説
明した時杖弦例1および具体例2が有効である。
【0124】以上説明した本例のキャッシュフラッシュ
装置30によるキャッシュフラッシュ処理と従来のソフ
トウェアによるキャッシュフラッシュ処理とを比較する
と、キャッシュブロックがダーティである率が、例えば
50%を超えるような非常に高い場合は、ダーティブロ
ックの内容をメインメモリ51に書戻す処理が多いた
め、所要時間に大きな差はない。
【0125】一方、キャッシュブロックがダーティであ
る率が、例えば10%の場合、ソフトウェアによるキャ
ッシュフラッシュでは、次のダーティブロックを見つけ
るのに、平均して2バスサイクル×10=20サイクル
を要するのに対して、本実施形態のキャッシュフラッシ
ュ装置30のフラッシュ実行部35は、各領域A0〜A
n−1に記憶されているアドレスを順に取り出す(タグ
サーチ)のを、例えば複数の領域を並列に検査するハー
ドウェアにより高速化できるので、キャッシュフラッシ
ュ処理時間を短縮できる。
【0126】また、領域A0〜An−1にアドレス以外
に付加情報を持たせることによってもタグサーチ時間を
高速化できる。この例については、第2の実施形態で説
明する。
【0127】本キャッシュフラッシュ装置のもう1つの
効果は、専用のハードウェアを設けたので、キャッシュ
フラッシュ装置にキャッシュフラッシュ処理をさせなが
ら、プロセッサは通常の処理を実行できるという点であ
る。これは、本実施形態のキャッシュフラッシュ装置を
チェックポイント方式を採用した耐障害性の計算機シス
テムに適用する場合に特に効果がある。これについては
第5および第6の実施形態で説明する。
【0128】なお、これまで説明してきたキャッシュフ
ラッシュ装置30は、フラッシュ実行部35が、ダーテ
ィブロックに対して、それが保持しているデータをメイ
ンメモリ51に書き戻すことを要求するコマンドをシス
テムバス40に発行することにより、キャッシュフラッ
シュが実行できることを前提としている。
【0129】通常のシステムでは、キャッシュ間でデー
タの一貫性を保持しながらデータの読み出しを要求する
Read−lineといったコマンドがそれに該当す
る。Read−lineに対する応答としては2種類あ
る。
【0130】1つは、ダーティブロックの内容がシステ
ムバスに発行され、その際、メインメモリも同時に更新
される。
【0131】もう1つは、Retry(少し後で再びR
ead−Lineを実行せよ)がシステムバスに発行さ
れる。次に、ダーティブロックの属するキャッシュメモ
リが自発的にWrite−Lineコマンドをシステム
バスに発行してダーティブロックの内容をメインメモリ
に書き戻す。そして、Retryを受けた側が、再度R
ead−Lineをシステムバスに発行すると、今度
は、メインメモリが最新のデータを応答する。
【0132】しかしながら、計算機システムによって
は、Read−Lineコマンドをシステムバスに発行
しても、ダーティブロックの内容がメインメモリ書き戻
されることなく、ダーティブロックに保持され続けるこ
ともあり得る。そこで、ここでは、そのような計算機シ
ステムに適用可能なキャッシュフラッシュ装置30の2
つの具体例について明する。
【0133】(具体例7)キャッシュフラッシュ装置3
0がキャッシュフラッシュを行なう際、まず、Read
−Line−with−Invalidateコマンド
という、ダーティブロックのデータを読み出すととも
に、ダーティブロックの内容を無効化するコマンドを発
行し、次に、Write−Lineコマンドを発行する
ことにより、先に読み出したデータをメインメモリ51
に書き戻す方法である。この方法は、データ一貫性を維
持するため、キャッシュフラッシュ装置30自身が、あ
たかもダーティブロックを保有するキャッシュメモリ2
0と同様に動作する必要がある。
【0134】 Read-Line-with-Invalidate 〜 Write-Line この方法では、キャッシュフラッシュ装置がデータ一貫
性を保つためにキャッシュのような動作をする必要があ
る。
【0135】Read-Line 〜Write-Line(Write-Line は無
条件でInvalidateも含む) この方法をUltraSPARC版のMBT で設計している。この方
法だと、キャッシュのような動作は不要でハードウェア
構成が簡単である。
【0136】(具体例8)第2の構成法は、まず、プロ
セッサ10が更新アドレス記憶部32に記憶されたすべ
ての更新アドレスを取得できるようにする。これは、例
えば図14に示すように、更新アドレス記憶部32に記
憶されたすべての更新アドレスを逐次読み出す機能をも
つ更新アドレス読み出し部37を、フラッシュ実行部3
5に代わってキャッシュフラッシュ装置30に設け、プ
ロセッサがこの更新アドレス読み出し部37の保存する
更新アドレスを読み出せるようにすることによって実現
する。更新アドレス読み出し部37はプロセッサに更新
アドレスを読み出されるたびに、新しい更新アドレスを
用意する。さらに、プロセッサによる更新アドレスの読
み出し時に、一度に複数の更新アドレスを読み出せるよ
うにして、さらに高速化することも考えられる。そし
て、プロセッサ10が、この更新アドレス読み出し部3
7を介して取得したアドレスを使用して、ダーティブロ
ックの内容をメインメモリに書き戻すようにする。
【0137】このとき、プロセッサ10は、キャッシュ
操作命令を使用するか、あるいは更新アドレスと同じキ
ャッシュブロックに格納される別アドレスのデータをメ
インメモリから読み出すことにより、キャッシュブロッ
クのリプレースメントを起こさせる。これを、更新アド
レスがなくなるまで繰り返せば全てのダーティブロック
をメインメモリに書き戻すことができる。更新アドレス
がなくなったという情報は更新アドレスと同様に、プロ
セッサが更新アドレス読み出し部37から読み出す。
【0138】この方法は、キャッシュフラッシュ装置3
0がデータ一貫性の管理をする必要がないため、ハード
ウェアが簡単になるのが長所である。また、プロセッサ
10がすべての処理をソフトウェアで実行する従来の方
法と比較して、ダーティブロックを効率よく見つけられ
るため、キャッシュフラッシュ処理が高速である。
【0139】この具体例8の動作を示すフローチャート
を図15に示す。
【0140】以下、本発明の他の実施形態を説明する。
以下の説明で、第1の実施形態と対応する部分は同一の
参照数字を付して詳細な説明は省略する。
【0141】(第2の実施形態)次に、本発明の第2の
実施形態を説明する。図16は、本発明の第2の実施形
態の計算機システムのシステム構成を示す。キャッシュ
フラッシュ装置30が適用される計算機の構成は第1の
実施形態と同じである。
【0142】キャッシュフラッシュ装置30は、バスイ
ンタフェース31、更新アドレス記憶部32(領域A0
〜An−1)、更新アドレス登録部33、フラッシュ実
行部35およびエントリ解放部36で構成される。
【0143】更新アドレス記憶部32は、すべてのダー
ティブロックのアドレスを保持するためのn個の領域
(領域A0〜An−1)で構成される。本実施形態で
は、すべてのダーティブロックのアドレスが更新アドレ
ス記憶部32に格納されるが、それ以外に、かつてダー
ティブロックであったが現在ではそうでなくなったよう
なアドレスも更新アドレス記憶部32に格納されること
がある。これは、本実施形態では、第1の実施形態で示
す更新アドレス削除部34を持たないことによるもので
あり、これが第1の実施形態との基本的な違いである。
【0144】ここで、領域Aiの構造について説明す
る。領域Aiの各エントリに格納されている値が有効で
あるか否かを示すには、第1の実施形態で示す方法を採
用することも可能であるが、下記の方法に基づく方がよ
り望ましい。
【0145】すなわち、領域を構成する複数のエントリ
を循環バッファとして使用する。読み出しポインタ(R
ポインタ)と書き込みポインタ(Wポインタ)を設け、
Rポインタが指すエントリからWポインタが指すエント
リの1つ手前のエントリまで更新アドレスが格納される
ようにする。ただし、WポインタとRポインタが一致す
る場合に、それがすべてのエントリが空きである状態を
表わすのか、すべてのエントリが空きでない状態を表わ
すのかが不明であり、これを判別するため、満杯フラグ
という1ビットのフラグも設ける。この方法は、更新ア
ドレス登録部33やフラッシュ実行部35の動作が高速
化しやすいという長所がある。
【0146】図17は、本実施形態の領域の構成を示す
概念図である。Rポインタは、有効な更新アドレスのう
ち、最も古く登録されたものを示す。また、Wポインタ
は、新しい更新アドレスを登録すべき位置を示す。そし
て、満杯フラグは、WポインタとRポインタが一致する
場合に、それがすべてのエントリが空きである状態を表
わす(満杯フラグ=OFF)のか、すべてのエントリが
空きでない状態を表わす(満杯フラグ=ON)のかの判
別に使用する。
【0147】更新アドレス登録部33は、第1の実施形
態と同じである。
【0148】エントリ解放部36は、前述した更新アド
レス登録部33がある領域に更新アドレスを書き込もう
とした場合に、その領域に属する空きエントリが無いこ
とを検出したときに、格納されている更新アドレスの中
から1つを選択し、そのアドレスを有するダーティブロ
ックの内容をメインメモリ51に書き戻すことを要求す
るコマンドをシステムバス40に発行する。このとき、
そのアドレスを保持していたエントリを空きにする。な
お、エントリ解放部36は、上記タイミングでエントリ
を解放するのが最も効率的であるが、未だ空きエントリ
が少し残っているような、より早いタイミングで行なう
ことも可能である。
【0149】図18は、キャッシュメモリ20上でデー
タ更新が発生したことを示すコマンドを更新アドレス登
録部33が検知したときの、更新アドレス登録部33お
よびエントリ解放部36の処理フローを示す。ステップ
I1でデータ更新を示すコマンドを検出すると、ステッ
プI2でプロセッサ識別番号と更新アドレスから対応す
る領域Aiを求める。ステップI3で領域Aiの満杯フ
ラグがオンか否か判定する。ノーの場合は、ステップI
8に飛び、イエスの場合は、ステップI4でエントリ開
放部36が領域AiのRポインタの示すエントリ中のア
ドレスを用いてダーティブロックのメインメモリへの書
き戻しを要求するコマンドを発行する。ステップI5で
Rポインタが最後のエントリを指しているか否かを判定
する。ノーの場合はステップI6でRポインタを1だけ
インクリメントし、イエスの場合はステップI7でRポ
インタが最初のエントリを指すようにしてから、ステッ
プI8を実行する。ステップI8では、Wポインタの示
す位置に更新アドレスを登録する。
【0150】ステップI9でWポインタが最後のエント
リを指しているか否かを判定する。ノーの場合はステッ
プI10でWポインタを1だけインクリメントし、イエ
スの場合はステップI11でWポインタが最初のエント
リを指すようにしてから、ステップI12を実行する。
ステップI12では、WポインタとRポインタが示す位
置が等しいか否か判定する。等しい場合にはステップI
13で満杯フラグをオンにしてから終了し、等しくない
場合には直ちに終了する。
【0151】フラッシュ実行部35の処理フローを図1
9に示す。フラッシュ実行部35は、プロセッサ10か
らの指示に基づき、更新アドレス記憶部32に格納され
ているすべてのアドレスを逐次取り出して(この結果、
読み出されたアドレスは、更新アドレス記憶部32から
消される)(ステップJ2〜J10)、そのアドレスの
ダーティブロックの内容をメインメモリ51に書き戻す
ことを要求するコマンドをシステムバス40に発行する
(ステップJ5)。
【0152】この実施形態では、各領域Aiについて、
RポインタからWポインタの指し示す範囲のエントリに
のみ有効な更新アドレスが格納されるので、ダーティブ
ロックの存在する割合が小さい場合でも、効率的にダー
ティブロックのアドレスを取り出すことができ、キャッ
シュフラッシュが高速化される。
【0153】次に、本実施形態のキャッシュフラッシュ
装置30の制御方法に則して、その動作を説明する。
【0154】(初期化)プロセッサ10は、キャッシュ
フラッシュ装置30を動作させる前に、キャッシュメモ
リ20の状態とキャッシュフラッシュ装置30の更新ア
ドレス記憶部32の内容が一致するように初期化を行な
う。初期化では、すべてのキャッシュブロックをインバ
リッド状態にする。領域A0〜An−1は、初期化しな
くとも正しく動作するが、各領域に対応するRポインタ
とWポインタを一致するようにすることが、性能上望ま
しい。
【0155】(キャッシュフラッシュ装置30の通常時
の動作)プロセッサ10が初期化を行なった後、キャッ
シュフラッシュ装置30を構成する各部が所定の動作を
行なうことにより、更新アドレス記憶部32には、すべ
てのダーティブロックのアドレスが保持される。ただ
し、あるダーティブロックの内容をメインメモリ51に
書き戻したとき、それに応じて領域A0〜An−1に保
持されているアドレスを削除する訳ではなく、したがっ
て、領域A0〜An−1に含まれているアドレスのダー
ティブロックが存在しない場合もある。それについて説
明する。
【0156】更新アドレス登録部33が、キャッシュメ
モリ20上でデータが更新されたことを検知すると、そ
の更新アドレスとデータ更新を行なったプロセッサ10
の識別番号とに基づいて、領域A0〜An−1のいずれ
かを選択し、その領域にアドレスを書き込もうとする。
ここで、その領域に空きエントリが無ければ、すなわ
ち、満杯フラグがONであれば、エントリ解放部36
は、Rポインタの指すエントリに格納されているアドレ
スを有するダーティブロックの内容をメインメモリ51
に書き戻すことを要求するコマンドをシステムバス40
に発行する。この結果、上記アドレスを有するダーティ
ブロックがあれば、その内容がメインメモリ51に書き
戻され、ダーティ状態ではなくなる。また、上記アドレ
スを有するダーティブロックが無い場合には何も起こら
ない。いずれにせよ、この操作により上記アドレスに対
するダーティブロックが無いことが保証できるので、空
いたエントリを更新アドレス登録部33が更新アドレス
の書き込みに使用することができる。
【0157】また、プロセッサ10がデータ処理をする
過程でダーティブロックの内容がメインメモリ51に書
き戻される場合、キャッシュフラッシュ装置30を構成
する各部は、何の動作も行わない。
【0158】(キャッシュフラッシュ装置30によるキ
ャッシュフラッシュ時の動作)プロセッサ10がキャッ
シュフラッシュ装置30にキャッシュフラッシュを命ず
ると、フラッシュ実行部35は、プロセッサ10からの
指示に基づき、更新アドレス記憶部32に格納されてい
るすべてのアドレスを逐次取り出して、そのアドレスを
有するダーティブロックの内容をメインメモリ51に書
き戻すことを要求するコマンドをシステムバス40に発
行する。
【0159】この結果、ダーティブロックが存在せず、
また、更新アドレス記憶部32にも更新アドレスが記憶
されていない初期状態に戻る。
【0160】本実施形態は、第1の実施形態と比較し
て、更新アドレス記憶部32を構成する領域の設定方法
およびアドレスと領域との対応づけの自由度が格段に大
きくなっている。すなわち、第1実施形態では、更新ア
ドレス記憶部32の領域はキャッシュメモリ20の構成
に合わせる必要があった。それは、各領域がダーティブ
ロックのアドレスを正確に保持し、かつ領域に保持しき
れなくなった場合に、ダーティブロックの内容をメイン
メモリ51に書き戻すようなアクションをとる手段が無
かったためである。これに対して、本実施形態では、更
新アドレスを領域に保持しきれなくなった場合には、エ
ントリ解放部36がその領域に保持されている更新アド
レスを1つ取り出して、そのアドレスを有するダーティ
ブロックの内容のメインメモリ51への書き戻しを要求
するコマンドをシステムバス40に発行することによ
り、キャッシュメモリ20の状態を更新アドレス記憶部
32の状態に合わせることができる。
【0161】更新アドレス記憶部32を構成する領域の
設定方法およびアドレスと領域との対応づけの具体例を
説明する。
【0162】(具体例1)キャッシュメモリ20がダイ
レクトマップ方式で、プロセッサ数がpという場合を考
える。この場合、例えば、すべてのプロセッサ10のi
番目のキャッシュブロックに対応させて、領域を1個設
けることができる。1つのキャッシュメモリ20のキャ
ッシュブロック数をMとすると、領域の数nは、Mとな
る。
【0163】1つの領域を構成するエントリ数は、第1
の実施形態では少なくともp必要であったが、本実施の
形態ではそれより少なくできる。この場合、1つの領域
に対応するキャッシュブロックの個数はpであるが、通
常、あるキャッシュブロックがダーティである率は20
〜50%程度であるので、エントリ数はp/2程度とし
ても良い。また、プロセッサ10のライトバッファへの
対策は特に必要はない。これについては後述する。
【0164】(具体例2)最も極端な例ではあるが、領
域の個数を1個としても良い。キャッシュブロックの個
数はp×Mであるので、エントリ数は例えばp×M/4
〜p×M/2程度とする。このとき、キャッシュメモリ
20の構成は、ダイレクトマップ方式でも、セットアソ
シアティブ方式でも、フルアソシアティブ方式でも正し
く動作する。
【0165】本実施の形態の場合、空きエントリがある
間は、キャッシュフラッシュ装置30は、システムバス
40に対して何のコマンドも発行しない。しかし、空き
エントリが無くなると、キャッシュメモリ20上でライ
トミスが発生する度に、ダーティブロックの内容のメイ
ンメモリ51への書き戻しを要求するコマンドが1個発
生する。
【0166】このように、領域の個数を1個とすると、
プロセッサ識別番号や更新アドレスから対応する領域を
選択するハードウェアが不要になるという長所がある反
面、同じアドレスに対するキャッシュミスが何度か発生
すると、複数のエントリにその更新アドレスが格納され
てしまうという事態が生じやすくなり、それだけ性能が
劣化する。
【0167】したがって、更新アドレス記憶部32の構
成を決定する際は、ハードウェア設計と性能とのバラン
スに配慮して、ある程度キャッシュメモリ20の構造に
合わせる必要がある。
【0168】(具体例3)キャッシュメモリ20がNウ
ェイのセットアソシアティブ方式で、キャッシュブロッ
ク数がM、プロセッサ数がpという場合について説明す
る。1つのキャッシュブロックの大きさがBバイトであ
るとする。この場合、N個のキャッシュブロックがグル
ープを形成し、アドレスa番地のデータは、((a/
B)mod(M/N))番目のグループのキャッシュブ
ロックに格納される。
【0169】このとき、領域をp×M個とし、各領域の
エントリ数を1とする。そして、プロセッサ識別番号が
kのプロセッサによるa番地のデータの更新を、(M×
k+(a/BmodM))番目の領域に対応させる。
【0170】この方法では、キャッシュメモリ20上で
は、Nウェイのセットアソシアティブで管理されている
が、キャッシュフラッシュ装置30上では、ダイレクト
マップのキャッシュメモリとして管理する。この結果、
例えば、識別番号0のプロセッサ10が、キャッシュメ
モリ20上で0番地のデータをダーティ状態で保持して
いる場合に、B×M番地のデータを更新しようとする
と、キャッシュフラッシュ装置30が0番地のデータの
メインメモリ51への書き戻しを要求するコマンドを発
行する。
【0171】本来、セットアソシアティブ方式のキャッ
シュメモリ20をダーティ状態の場合だけとはいえ、ダ
イレクトマップ方式で管理するのは、キャッシュヒット
率の劣化になるが、キャッシュフラッシュ装置30の設
計に関しては、ダイレクトマップ方式のように管理する
ことにより、1つのエントリに含まれる更新アドレスを
参照するだけでよく、ハードウェアの簡単化と処理の高
速化が実現できる。
【0172】本実施の形態では、上記具体例1および具
体例2で示すように、1つの領域をすべてのプロセッサ
10のあるキャッシュブロックに対応づけることも可能
である。これにより、更新アドレス登録部33などは、
領域A0〜An−1を求める際、プロセッサ10の識別
番号は必要としないので、システムバス40の仕様がコ
マンド中にプロセッサ識別番号を含まないようになって
いる場合でも適用できる。
【0173】次に、図20を参照して、プロセッサ10
が、0番地、B×M番地、2B×M番地にそれぞれデー
タD0,D1,D2を連続して書き込む場合の動作を説
明する。ただし、Bはキャッシュブロックの大きさ、M
はプロセッサのキャッシュブロック数である。また、領
域A0のエントリ数は2とする。
【0174】(1)プロセッサ10が、0番地にデータ
D0を書こうとしたが、キャッシュブロック0に0番地
のデータが格納されていなかったので、システムバス4
0にメインメモリ51もしくは他のプロセッサ10のキ
ャッシュメモリ20に0番地から(B−1)番地のデー
タを要求するとともに、データを更新することを他のプ
ロセッサ10に伝えるコマンドをシステムバス40に発
する。
【0175】(2)その結果、キャッシュブロック0
に、0番地から(B−1)番地までのデータがダーティ
状態で格納され、そのうち、0番地のデータがD0に更
新される。また、領域A0には、0番地が更新されたこ
とに対応して0が格納される。 (3)プロセッサ10が、B×M番地にデータD1を書
こうとしたが、キャッシュブロック0にB×M番地のデ
ータが格納されていなかったので、現在ダーティ状態で
保持されている0番地のデータをメインメモリ51に書
き戻すためのメインメモリ51へのライトアクセス要求
が、ライトバッファに格納される。また、システムバス
40に、メインメモリ51もしくは他のプロセッサ10
のキャッシュメモリ20に、B×M番地から(B×M+
B−1)番地のデータを要求するとともに、データを更
新することを他のプロセッサ10に伝えるコマンドをシ
ステムバス40に発する。
【0176】(4)その結果、キャッシュブロック0
に、B×M番地から(B×M+B−1)番地までのデー
タがダーティ状態で格納され、そのうち、B×M番地の
データがD1に更新される。また、領域A0には、B×
M番地が更新されたことに対応して、0とB×Mが格納
される。
【0177】(5)プロセッサ10が2B×M番地にデ
ータD2を書こうとしたが、キャッシュブロック0に2
B×M番地のデータが格納されていなかったので、現在
ダーティ状態で保持されているB×M番地のデータをメ
インメモリ51に書き戻すためのメインメモリ51への
ライトアクセス要求が、ライトバッファに格納される。
この結果、ライトバッファには、メインメモリ51への
書き戻しのコマンドが2個格納されることになる。ま
た、システムバス40にメインメモリ51もしくは他の
プロセッサ10のキャッシュメモリ20に、2B×M番
地から(2B×M+B−1)番地のデータを要求すると
ともに、データを更新することを他のプロセッサ10に
伝えるコマンドをシステムバス40に発する。
【0178】(6)その結果、キャッシュブロック0
に、2B×M番地から(2B×M+B−1)番地までの
データがダーティ状態で格納され、そのうち、2B×M
番地のデータがD2に更新される。また、領域A0に
は、2B×M番地が更新されたことに対応して2B×M
を格納しようとして、空きエントリが無い(満杯フラグ
=ON)であるため、一番最初に格納されたアドレス0
番地を有するダーティブロックの内容のメインメモリ5
1への書き戻しを要求するコマンドがシステムバス40
に発行される。
【0179】(7)キャッシュフラッシュ装置30から
システムバス40に発行された上記コマンドに呼応し
て、プロセッサ10のライトバッファに格納されていた
0番地〜(B−1)番地のデータのメインメモリ51へ
の書き戻しが行なわれる。
【0180】(8)ライトバッファに格納されていた、
B×M番地から(B×M+B−1)番地までのデータの
メインメモリ51への書き戻しのコマンドが、システム
バス40に発せられる。
【0181】(9)キャッシュフラッシュ装置30は、
(8)のコマンドについて何ら処理をしないので、領域
A0のエントリには、2B×MとともにB×Mも保持さ
れ続ける。
【0182】(第3の実施形態)次に、本発明の第3の
実施形態を説明する。図21には、本発明の第3の実施
形態の計算機システムのシステム構成を示す。キャッシ
ュフラッシュ装置30が適用される計算機の構成は第1
および第2の実施形態と同じである。
【0183】キャッシュフラッシュ装置30は、バスイ
ンタフェース31、更新アドレス記憶部32(領域A0
〜An−1)、更新アドレス登録部33、更新アドレス
削除部34、フラッシュ実行部35およびエントリ解放
部36で構成される。
【0184】更新アドレス記憶部32、更新アドレス登
録部33、フラッシュ実行部35およびエントリ解放部
36は、第2の実施形態と同じである。
【0185】更新アドレス記憶部32は、第1の実施形
態と類似するが、第1の実施形態では、書き戻しアドレ
スに対応する領域の中から常にそのアドレスを保持する
エントリを探し、空きエントリにしていたのとは異な
り、本実施形態では、この処理をある一定時間だけ試み
て、もし、その間にそのアドレスを保持するエントリが
見つかれば、それを空きエントリとするが、もし、見つ
からない場合には締めてしまう(アドレスを削除しな
い)。この結果、更新アドレス記憶部32には、すでに
ダーティブロックでなくなったアドレスも保持される可
能性があるので、第2の実施形態のように、エントリ解
放部36が能動的に空きエントリを作成する。
【0186】更新アドレス削除部34が書き戻しアドレ
スと同じアドレスが格納されているエントリを一定時間
だけ探す最も典型的な例を、図22に示すフローチャー
トにしたがって説明する。図22に示すように、更新ア
ドレス削除部34は、Rポインタが指すエントリの内容
と書き戻しアドレスとを比較して(ステップK3)、も
し一致すれば、Rポインタを進めることにより(ステッ
プK5〜K6)、更新アドレスを削除する。この結果、
エントリ解放部36が、適宜にフラッシュコマンド発行
手段を通してダーティブロックをなくす操作を減らすこ
とができる分、性能を向上させることができる。
【0187】また、更新アドレス削除部34が、書き戻
しアドレスと同じアドレスが格納されているエントリを
探す処理を一定時間だけ実行する代わりに、キャッシュ
メモリ20上でのデータ更新を示すコマンドが次に検知
されるまで、あるいはダーティブロックの内容をメイン
メモリ51へ書き戻すためのコマンドが次に検知される
までこの探す処理を実行することも可能である。その方
が、更新アドレス削除部34が実際に更新アドレス記憶
部32から更新アドレスを削除する頻度が高くなるの
で、性能上はより好ましい。
【0188】さらに、本実施の形態における更新アドレ
ス削除部34は、ダーティブロックの内容をメインメモ
リ51に書き戻すためのコマンドを検知することを契機
として、更新アドレス記憶部32に同一のアドレスが見
つかれば、それを削除するとした。しかし、例えば、プ
ロセッサ10がキャッシュメモリ20からデータを読も
うとしてキャッシュミスが発生したときに、キャッシュ
メモリ20からシステムバス40に発行されるコマンド
を検出したことを契機として、更新アドレス記憶部32
に同一のアドレスが見つかればそれを削除することもで
きる。一般に、システムバス40に発行されるコマンド
であって、その結果、対象となるアドレスのキャッシュ
メモリ20がダーティでない状態(クリーンな状態)に
なるようなコマンドの検知を契機とすることができる。
これにより、更新アドレス削除部34が動作する頻度が
増え、エントリ解放部36を必要とする回数が減り、性
能向上が期待できる。
【0189】(第4の実施の形態)次に、本発明の第4
の実施形態を説明する。図23には、本発明の第4の実
施形態の計算機システムのシステム構成を示す。キャッ
シュフラッシュ装置30が適用される計算機の構成は第
1および第2の実施形態と同じである。
【0190】キャッシュフラッシュ装置30は、バスイ
ンタフェース31、更新アドレス記憶部32(領域A0
〜An−1)、更新アドレス登録部33、更新アドレス
削除部34、フラッシュ実行部35およびエントリ解放
部36で構成される。
【0191】更新アドレス記憶部32は、第2の実施形
態で説明したものに加えて、図24に示すように各領域
に対応してこの領域に対応するダーティブロックの個数
を保持するダーティブロックカウンタを設ける。
【0192】更新アドレス登録部33は、第2の実施形
態で説明したものに加えて、その領域に対するダーティ
ブロックカウンタを+1する機能を追加したものであ
る。
【0193】エントリ解放部36は、第2の実施形態で
説明したものと同一である。
【0194】図25には、キャッシュメモリ20上でデ
ータ更新が発生したことを示すコマンドを更新アドレス
登録部33が検知したときの更新アドレス登録部33お
よびエントリ解放部36の処理フローを示す。ステップ
L1でデータ更新を示すコマンドを検出すると、ステッ
プL2でプロセッサ識別番号と更新アドレスから対応す
る領域Aiを求める。ステップL3でダーティブロック
カウンタを+1する。ステップL4で領域Aiの満杯フ
ラグがオンか否か判定する。ノーの場合は、 ステップL
9に飛び、イエスの場合は、ステップL5でエントリ開
放部36が領域AiのRポインタの示すエントリ中のア
ドレスを用いてダーティブロックのメインメモリへの書
き戻しを要求するコマンドを発行する。ステップL6で
Rポインタが最後のエントリを指しているか否かを判定
する。ノーの場合はステップL7でRポインタを1だけ
インクリメントし、イエスの場合はステップL8でRポ
インタが最初のエントリを指すようにしてから、ステッ
プL9を実行する。ステップL9では、Wポインタの示
す位置に更新アドレスを登録する。
【0195】ステップL10でWポインタが最後のエン
トリを指しているか否かを判定する。ノーの場合はステ
ップL11でWポインタを1だけインクリメントし、イ
エスの場合はステップL12でWポインタが最初のエン
トリを指すようにしてから、ステップL13を実行す
る。ステップL13では、WポインタとRポインタが示
す位置が等しいか否か判定する。等しい場合にはステッ
プL14で満杯フラグをオンにしてから終了し、等しく
ない場合には直ちに終了する。
【0196】図26は、更新アドレス削除部34の処理
フローを示す。更新アドレス削除部34は、ダーティブ
ロックの内容をメインメモリ51に書き戻すためのコマ
ンドを検知すると(ステップM1)、書き戻しの発生し
たアドレス(書き戻しアドレス)、および書き戻しを行
なったプロセッサ10の識別番号に基づいて、上記更新
アドレス記憶部32を構成するn個の領域(A0〜An
−1)のいずれかの領域を選択し(ステップM2)、そ
のダーティブロックカウンタを−1する(ステップM
3)。そして、その結果、もしダーティブロックカウン
タの値がゼロになれば、Rポインタの値をWポインタの
値と一致させ、かつ、満杯フラグをOFFとすることに
より(ステップM5)、その領域が保持していたすべて
の更新アドレスを削除する。
【0197】図27は、フラッシュ実行部35の処理フ
ローを示す。フラッシュ実行部35は、プロセッサ10
から指示に基づき、各領域のダーティブロックカウンタ
の値が0でない領域について、その各エントリに格納さ
れているアドレスを有するダーティブロックの内容のメ
インメモリ51への書き戻しを要求するコマンドをシス
テムバス40に発行する(ステップN3)。そして、ダ
ーティブロックカウンタが0になったところで(ステッ
プN2)、その領域に対する処理を終了する。本実施の
形態では、第2の実施形態の構成に加えて、更新アドレ
ス記憶部32を構成する各領域に対応させて、ダーティ
ブロックカウンタを設け、更新アドレス登録部33およ
び更新アドレス削除部34が、上記カウンタをダーティ
ブロックの増減に合わせてメンテナンスしている。そし
て、ある領域に対応するダーティブロックがすべて無く
なった場合に、更新アドレス削除部34が、その領域の
すべてのエントリを空きにしている。
【0198】この結果、第2の実施形態と比較して、エ
ントリ解放部36を起動する頻度を減少させ、本キャッ
シュフラッシュ装置30を備えた計算機の性能を向上さ
せることができる。
【0199】なお、本実施の形態では、第2の実施形態
への手段の追加として説明したが、第3の実施形態に対
しても同じ手段の追加できる。
【0200】また、本実施の形態では、更新アドレス削
除部34がダーティブロックカウンタをデクリメントし
た結果、0となったときに、対応する領域Aiのすべて
のエントリを空きにしているが、下記に示すようなダー
ティブロックカウンタの第2の利用法が考えられる。
【0201】いま、領域Aiのダーティブロックカウン
タをデクリメントした結果、1になったとする。このと
き、領域Aiに格納されている更新アドレスの個数(こ
れは、RポインタとWポインタの差から求めることがで
きる)が大きい場合、領域Aiに保持されているほとん
どの更新アドレスに対して、ダーティブロックは実在し
ないことを意味する。
【0202】そこで、領域Aiのすべてのエントリに対
してエントリ解放部36を適用すれば、フラッシュ実行
部35がダーティブロックの実在しないアドレスに対し
て、メインメモリ51への書き戻しを要求するコマンド
の発行回数を減らすことができ、性能向上が期待でき
る。
【0203】以上、第1の実施形態から第4の実施形態
は、キャッシュフラッシュ装置について説明した。次
に、上述した4つの実施形態のいずれかを用いた耐障害
性計算機の実施形態を説明する。
【0204】(第5の実施形態)図28は、本発明の第
5の実施形態を示す。第1乃至第4の実施形態のいずれ
かのキャッシュフラッシュ装置30がシステムバス40
に接続される。各プロセッサ10は、キャッシュ一貫性
を備えたコピーバック型のキャッシュメモリ20を有す
る。
【0205】本実施形態の計算機は、常時、下記の3つ
のステップのいずれかを実行することにより、耐障害性
に優れたデータ処理機能を提供する。
【0206】(1)データ処理ステップ キャッシュフラッシュ装置30に更新アドレスの捕捉を
させながら通常のデータ処理を実行する。
【0207】(2)チェックポイント作成ステップ このステップは、データ処理ステップを一時中断する形
で定期的に実行されるステップである。プロセッサ10
が複数ある場合には、すべてのプロセッサ10が同期し
て実行する。このステップで行なう処理は、下記の2つ
である。
【0208】(2a)データ処理中のプロセッサ10の
コンテキスト(プロセッサ10のプログラムカウンタや
汎用レジスタなどの内容)をメインメモリ51へ格納す
る。
【0209】(2b)上記キャッシュフラッシュ装置3
0のフラッシュ実行部35を起動することにより、すべ
てのダーティブロックの内容をメインメモリ51へ書き
戻す。
【0210】(3)ロールバック&リカバリステップ このステップは、データ処理ステップあるいはチェック
ポイント作成ステップの実行中に計算機に何らかの故障
が発生した時に実行されるステップである。このステッ
プで行なう処理は、下記の2つである。
【0211】(3a)直前に作成したチェックポイント
の状態にメインメモリ51を復元する。
【0212】(3b)復元されたメインメモリ51に格
納されている情報を使用して、データ処理を再開する
(再開されると、データ処理ステップに移る)。
【0213】図29は、本実施形態の計算機で、時間の
経過とともに、3つのステップが移り変わる様子を表わ
している。
【0214】データ処理ステップを開始して一定時間が
経過すると、各プロセッサ10はチェックポイント作成
ステップを開始する。このチェックポイント作成ステッ
プで行なう第1の処理は、直前のデータ処理ステップ
で、どこまで処理を行なったか、すなわち、直前のデー
タ処理ステップからチェックポイント作成ステップに切
り替わる時のプロセッサのコンテキスト(プログラムカ
ウンタ、状態レジスタ、および汎用レジスタなどの内
容)をメインメモリ51に書き出すことである。ただ
し、実際には、キャッシュメモリ20上にのみ格納され
るだけかもしれない。チェックポイント作成ステップで
行なう第2の処理は、ダーティブロックの内容をメイン
メモリ51に書き戻すことである。この第2の処理は、
キャッシュメモリ20中のデータが壊れてしまうような
故障が発生した場合にでも、ロールバック&リカバリス
テップによって、故障発生前の状態からデータ処理を再
開させるために必要である。
【0215】チェックポイント作成ステップが終了する
と、データ処理ステップを再開する。このとき、チェッ
クポイント作成ステップでメインメモリ51に書き出し
たプロセッサ10のコンテキストが使用される。
【0216】図29では、3番目のデータ処理ステップ
の途中で何らかの故障が発生し、ロールバック&リカバ
リステップが開始した旨を示す。ロールバック&リカバ
リステップで行なう第1の処理は、メインメモリ51の
状態を直前のチェックポイント作成ステップを実行した
状態、別の言い方をすれば、3番目のデータ処理ステッ
プを開始する直前の状態に復元することである。
【0217】一般に、データ処理ステップでは、ダーテ
ィブロックの内容のメインメモリ51への書き戻しが随
時発生するので、メインメモリ51の状態は、データ処
理ステップ開始時の状態から少しずつ変化する。そこ
で、ロールバック&リカバリステップの第1の処理とし
て、メインメモリ51の状態を直前のチェックポイント
の状態に復元する。この復元の方法は、例えば、ダーテ
ィブロックの内容のメインメモリ51への書き戻しが発
生するごとに、メインメモリ51の書き戻し前の内容を
ログメモリに蓄積しておき、それを用いてメインメモリ
51の状態を復元しても良い。
【0218】例えば、a番地にD1というデータの書き
戻しが発生するとき、メインメモリコントローラ50
が、その書き戻しのためのコマンドを保留して、メイン
メモリ51のa番地の内容(D0)を読み出した後、メ
インメモリ51のa番地にD1を書き込む。そしてa番
地とD0の組を蓄積しておく。そして、ロールバック&
リカバリステップの第1の処理として、a番地のメイン
メモリ51にD0を書き込むことで、直前のチェックポ
イント時のメインメモリ51の状態が復元できる。
【0219】また、別の方法としては、メインメモリ5
1をメモリAとメモリBとに二重化しておき、データ処
理ステップでのダーティブロックの内容のメインメモリ
51への書き戻しでは、メモリAにのみ書き戻しを行な
い、チェックポイント作成ステップで、メモリAの変化
分をメモリBにも適用することによっても実現すること
ができる。
【0220】ロールバック&リカバリステップの第2の
処理は、復元したメインメモリの状態からデータ処理ス
テップを再開することである。この処理は、チェックポ
イント作成ステップからデータ処理ステップへの移行と
同一である。上図の場合、3番目のデータ処理ステップ
と同じ状態から4番目のデータ処理ステップが開始され
る。
【0221】なお、ロールバック&リカバリステップで
は、この他に故障した原因を調べて、故障した装置を切
り離したり、深刻な障害の場合には、データ処理ステッ
プの再開を締めて、計算機を停止させるなどの処理が必
要である。ただし、この部分は本発明の本旨ではないの
で説明は省略する。
【0222】このような計算機では、定期的にチェック
ポイント作成ステップを実行する分、データ処理性能が
劣化するので、チェックポイント作成ステップの所要時
間の短縮が重要である。チェックポイント作成ステップ
の処理の大半は、ダーティブロックの内容をメインメモ
リ51に書き戻すことであるので、本発明のキャッシュ
フラッシュ装置30を使用することにより、書き戻し時
間が短縮でき、チェックポイント作成ステップの所要時
間の大幅な短縮が期待できる。
【0223】なお、データ処理ステップの後半に、キャ
ッシュフラッシュ装置30のフラッシュ実行部35を起
動すると、チェックポイント作成ステップの所要時間を
さらに短縮できる。それは、キャッシュフラッシュ装置
30のフラッシュ実行部35を起動することにより、チ
ェックポイント作成ステップの開始時点で、ダーティブ
ロックの個数が、上記処理をしなかった場合と比較して
かなり減るためである。上記処理をしなかった場合、ダ
ーティブロックの割合が、例えば30%であるものが、
15%程度になる。第1乃至第4の実施形態のキャッシ
ュフラッシュ装置30のフラッシュ実行部35は、ダー
ティブロックの割合が小さいときにも効率的に更新アド
レス記憶部32に格納されている更新アドレスを取り出
せるので、ダーティブロックの割合が15%であれば、
チェックポイント作成ステップの所要時間は、ほぼ半分
になる。
【0224】(第6の実施形態)次に、本発明の第6の
実施形態を説明する。図30には、第1乃至第4の実施
形態に示すいずれかのキャッシュフラッシュ装置30を
備えた本実施形態の耐障害性計算機の構成を示す。図3
0に示すように、本実施形態では、独立した第1の計算
機100aと第2の計算機100bとをメモリ更新観測
部60(第1の計算機100a内)とメモリ更新部70
(第2の計算機100b内)とで接続した構成をとって
いる。第1の計算機100aと第2の計算機100bと
は、少なくとも同じ種類のプロセッサ10と同じ種類の
メインメモリ51を含む必要がある。
【0225】第1の計算機100aは、常時、データ処
理ステップとチェックポイント作成ステップを実行す
る。一方、第2の計算機100bは、通常は、待機ステ
ップを実行し、第1の計算機100aに障害が発生する
と第1の計算機100aがそれまで実行してきたデータ
処理を引き継ぐ。
【0226】メモリ更新観測部60は、第1の計算機1
00aのシステムバス40を観測することにより、第1
の計算機100aで発生するメインメモリ51を更新す
るコマンドを観測・蓄積する。そして、第1の計算機1
00aの指示により、蓄積していたコマンドを第2の計
算機100bに接続されたメモリ更新部70に送る。メ
モリ更新部70は、メモリ更新観測部60から受け取っ
たコマンドを第2の計算機100bのシステムバス40
に発行することにより、第2の計算機100bのメイン
メモリ51の状態を第1の計算機100aと一致させ
る。
【0227】第1の計算機100aのデータ処理ステッ
プおよびチェックポイント作成ステップについて説明す
る。
【0228】(1)データ処理ステップ キャッシュフラッシュ装置30に更新アドレスの捕捉を
させながら通常のデータ処理を実行する。
【0229】(2)チェックポイント作成ステップ このステップは、データ処理ステップを一時中断する形
で定期的に実行されるステップである。プロセッサ10
が複数ある場合には、すべてのプロセッサ10が同期し
て実行する。このステップで行なう処理は、下記の3つ
である。
【0230】(2a)データ処理中のプロセッサ10の
コンテキスト(プロセッサ10のプログラムカウンタや
汎用レジスタなどの内容)をメインメモリ51へ格納す
る。(2b)上記キャッシュフラッシュ装置30のフラ
ッシュ実行部35を起動することにより、すべてのダー
ティブロックの内容をメインメモリ51へ書き戻す。
【0231】(2c)メモリ更新観測部60に対して、
蓄積したコマンドをメモリ更新部70に送るよう指示す
る。
【0232】第2の計算機100bの待機ステップで
は、各プロセッサ10はデータ処理は行なわず、メモリ
更新部70に第1の計算機100aからのメインメモリ
更新のコマンドが定期的に受信されているか否かを調べ
る。そして、一定期間以上、上記コマンドが受信されな
ければ、第1の計算機100aが動作不能に陥ったもの
とし、その時点の第2の計算機100bのメインメモリ
51の状態からデータ処理を行なう。
【0233】図31は、本実施の形態の計算機で、時間
の経過にともなう、第1の計算機100aと第2の計算
機100bとの状態が変化する様子を表わしている。
【0234】第1の計算機100aでは、データ処理ス
テップを開始して一定時間が経過すると、各プロセッサ
10はチェックポイント作成ステップを開始する。ここ
で行なう第1の処理は、直前のデータ処理ステップで、
どこまで処理を行なったか、すなわち、直前のデータ処
理ステップからチェックポイント作成ステップに切り替
わる時のプロセッサのコンテキスト(プログラムカウン
タ、状態レジスタ、および汎用レジスタなどの内容)を
メインメモリ51に書き出すことである。ただし、実際
には、キャッシュメモリ20上にのみ格納されるだけか
もしれない。
【0235】チェックポイント作成ステップで行なう第
2の処理は、ダーティブロックの内容をメインメモリ5
1に書き戻すことである。この第2の処理は、第1の計
算機100aでのメインメモリ51の更新をすべて第2
の計算機100bに送るために必要である。
【0236】チェックポイント作成ステップで行でう第
3の処理は、メモリ更新観測部60に、蓄積したコマン
ドをメモリ更新部70に送るよう指示することである。
この指示は、チェックポイント作成ステップが終了する
直前に行なうのが望ましい。それは、第2の計算機10
0bに常に健全なメインメモリイメージを保持させるた
めである。
【0237】チェックポイント作成ステップが終了する
と、データ処理ステップを再開する。このとき、チェッ
クポイント作成ステップでメインメモリ51に書き出し
たプロセッサ10のコンテキストが使用される。
【0238】図31では、3番目のデータ処理ステップ
の途中で何らかの故障が発生した旨を示す。このとき、
第1の計算機100aは単に処理を停止するだけで良
い。あるいは、次に第2の計算機100bで故障が発生
したときに備えて、スタートアップを行なうこともでき
る。
【0239】第2の計算機100bは、第1の計算機1
00aで故障が発生するまで、待機ステップを実行す
る。そして、時刻Tにおいて、メモリ更新部70がメモ
リ更新観測部60からコマンドを一定時間以上受け取っ
ていないとして、データ処理ステップを実行する。図3
1の場合、第2の計算機100bでは、第1の計算機1
00aでの3番目のデータ処理ステップと同じ状態から
データ処理ステップが開始されることになる。
【0240】このような計算機では、定期的にチェック
ポイント作成ステップを実行する分、データ処理性能が
劣化するので、チェックポイント作成ステップの所要時
間の短縮が重要である。チェックポイント作成ステップ
の処理の大半は、ダーティブロックの内容をメインメモ
リ51に書き戻すことであるので、キャッシュフラッシ
ュ装置30を使用することにより大幅な所要時間の短縮
が期待できる。
【0241】なお、データ処理ステップの後半に、キャ
ッシュフラッシュ装置30のフラッシュ実行部35を起
動すると、チェックポイント作成ステップの所要時間を
さらに短縮できるのは、第5の実施形態の場合と同様で
ある。
【0242】また、上述した各実施形態において記載し
た手法は、コンピュータに実行させることのできるプロ
グラムとして、例えば磁気ディスク(フロッピーディス
ク、ハードディスク等)、光ディスク(CD−ROM、
DVD等)、半導体メモリなどの記録媒体に書き込んで
各種装置に適用したり、通信媒体により伝送して各種装
置に適用することも可能である。本装置を実現するコン
ピュータは、記録媒体に記録されたプログラムを読み込
み、このプログラムによって動作が制御されることによ
り、上述した処理を実行する。
【0243】
【発明の効果】以上のように本発明によれば、キャッシ
ュメモリ上のすべてのダーティブロックのアドレスは、
キャッシュフラッシュ装置内のいずれかの領域に記憶さ
れる。また、あるキャッシュブロックが一旦ダーティ状
態となった後、ダーティ状態でなくなった場合、領域か
らそのアドレスは削除される。そして、フラッシュ実行
部が、ダーティブロックのアドレスを各領域から順次取
出し、そのアドレスのダーティブロックの内容のメイン
メモリへの書き戻しを要求するコマンドをシステムバス
に発行することにより、すべてのダーティブロックの内
容がメインメモリへ書き戻される。
【0244】これにより、たとえば従来のソフトウェア
によるキャッシュフラッシュのように、すべてのキャッ
シュブロックについて順次ダーティブロックかどうか判
定していくといった処理を行なう必要がなくなるため、
迅速かつ効率的なキャッシュフラッシュ操作を行なうこ
とが可能となる。
【0245】また、プロセッサがライトバッファを持つ
場合であっても、たとえば各領域が一つのエントリのみ
を有する構成として、このエントリには、ライトバッフ
ァではなく、キャシュブロックに格納されたデータのア
ドレス(最新の更新アドレス)のみを格納するようにす
る等により、適切なキャッシュフラッシュ動作が確保さ
れる。
【0246】さらに、領域それぞれの使用状況に応じて
更新アドレスの書き戻し要求を発行する機構を備えるこ
とにより、更新アドレス記憶部の備える領域のエントリ
数の設定や、領域とアドレスとの対応づけなどの自由度
を大幅に拡大させることを可能とする。
【0247】また、本発明の計算機システムによれば、
チェックポイント採取処理のほとんどを占めるキャッシ
ュフラッシュ操作を迅速かつ効率的に行なうため、シス
テム全体の性能を向上させることとなる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係わる計算機システム
のシステム構成を示す図。
【図2】同実施の形態に係わる更新アドレス記憶部の領
域Aiの構造を示す概念図。
【図3】同実施の形態に係わる更新アドレス登録部の動
作手順を示す図。
【図4】同実施の形態に係わる更新アドレス削除部の動
作手順を示す図。
【図5】同実施の形態に係わるフラッシュ実行部の動作
手順を示す図。
【図6】同実施の形態に係わる更新アドレス登録部がデ
ータ更新を示すコマンドを検知したときのキャッシュフ
ラッシュ装置の動作手順を示す図。
【図7】同実施の形態に係わる更新アドレス削除部がダ
ーティブロックのメインメモリへの書き戻しを示すコマ
ンドを検知したときのキャッシュフラッシュ装置の動作
手順を示す図。
【図8】同実施の形態に係わるプロセッサが、0番地、
B×M番地、2B×M番地にそれぞれデータD0,D
1,D2を連続して書き込む場合の動作を説明する図。
【図9】同実施の形態に係わる変形例における領域Ai
の構造を示す概念図。
【図10】同実施の形態に係わる同変形例の更新アドレ
ス登録部がデータ更新を示すコマンドを検知した時のキ
ャッシュフラッシュ装置の動作手順を示す図。
【図11】同実施の形態に係わる同変形例の更新アドレ
ス削除部がダーティブロックのメインメモリへの書き戻
しを示すコマンドを検知したときのキャッシュフラッシ
ュ装置の動作手順を示す図。
【図12】同実施の形態に係わる同変形例のフラッシュ
実行部の動作手順を示す図。
【図13】同実施の形態に係わる同変形例のプロセッサ
が、0番地、B×M番地、2B×M番地にそれぞれデー
タD0,D1,D2を連続して書き込む場合の動作を説
明する図。
【図14】同実施の形態に係わる他の変形例に係る計算
機システムのシステム構成を示す図。
【図15】同実施の形態に係わる図14の変形例のフラ
ッシュ実行部の動作手順を示す図。
【図16】本発明の第2の実施形態に係わる計算機シス
テムのシステム構成を示す図。
【図17】同実施の形態に係わる更新アドレス記憶部の
領域の構成を示す概念図。
【図18】同実施の形態に係わるキャッシュメモリ上で
データ更新が発生したことを示すコマンドを更新アドレ
ス登録部が検知したときの更新アドレス登録部およびエ
ントリ解放部の処理フローチャート。
【図19】同実施の形態に係わるフラッシュ実行部の処
理のフローチャート。
【図20】同実施の形態に係わるプロセッサが、0番
地、B×M番地、2B×M番地にそれぞれデータD0,
D1,D2を連続して書き込む場合の動作を説明する
図。
【図21】本発明の第3の実施形態に係わる計算機シス
テムのシステム構成を示す図。
【図22】同実施の形態に係わり更新アドレス削除部が
一定時間だけ書き戻しアドレスと同じアドレスが格納さ
れているエントリを一定時間探す例を示す図。
【図23】本発明の第4の実施形態に係わる計算機シス
テムのシステム構成を示す図。
【図24】同実施の形態に係わる更新アドレス記憶部の
領域の構成を示す概念図。
【図25】同実施の形態に係わるキャッシュメモリ上で
データ更新が発生したことを示すコマンドを更新アドレ
ス登録部が検知したときの更新アドレス登録部およびエ
ントリ解放部の処理のフローチャート。
【図26】同実施の形態に係わる更新アドレス削除部の
処理を示すフローチャート。
【図27】同実施の形態に係わるフラッシュ実行部の処
理を示すフローチャート。
【図28】本発明の第5の実施形態に係わる耐障害性計
算機の構成を示す図。
【図29】同実施の形態に係わる計算機において時間の
経過とともに3つのステップが移り変わる様子を表わす
図。
【図30】本発明の第6の実施形態に係わる耐障害性計
算機の構成を示す図。
【図31】同実施の形態に係わる計算機において時間の
経過にともなう第1の計算機100aと第2の計算機1
00bとの状態が変化する様子を表わす図。
【図32】従来のキャッシュフラッシュ操作を行うため
のプログラムを示す図。
【符号の説明】
10…プロセッサ 20…キャッシュメモリ 30…キャッシュフラッシュ装置 31…バスインタフェース 32…更新アドレス記憶部 33…更新アドレス登録部 34…更新アドレス削除部 35…フラッシュ実行部 36…エントリ解放部 37…更新アドレス読み出し部 40…システムバス 50…メモリコントローラ 51…メインメモリ 100a…第1の計算機 200b…第2の計算機

Claims (76)

    【特許請求の範囲】
  1. 【請求項1】 バススヌープ機構を有するコピーバック
    型のキャッシュメモリを備えた少なくとも1つのプロセ
    ッサと、メインメモリと、上記少なくとも1つのプロセ
    ッサと上記メインメモリとを接続するシステムバスとを
    具備してなる計算機に用いられるキャッシュフラッシュ
    装置であって、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する更新アドレス登録手段
    と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、データの書き戻しがあった書き戻しアドレ
    スと書き戻しを行なった上記プロセッサの識別番号とに
    基づいて、上記更新アドレス記憶手段の各領域の中のい
    ずれかの領域を選択し、その選択した領域に格納された
    上記書き戻しアドレスと一致する更新アドレスを削除す
    る更新アドレス削除手段と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行するフラッシュ実行手段とを具備したことを特徴とす
    るキャッシュフラッシュ装置。
  2. 【請求項2】 バススヌープ機構を有するコピーバック
    型でダイレクトマップ方式のキャッシュメモリを備えた
    少なくとも1つのプロセッサと、メインメモリと、上記
    少なくとも1つのプロセッサと上記メインメモリとを接
    続するシステムバスとを具備してなる計算機に用いられ
    るキャッシュフラッシュ装置であって、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域を複数備えた更新アドレス記憶
    手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する更新アドレス登録手段
    と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なったプロセッサの識別番号とに基づい
    て、上記更新アドレス記憶手段の各領域の中のいずれか
    の領域を選択し、その選択した領域に格納された更新ア
    ドレスと上記書き戻しアドレスとを比較し、両者が一致
    するときに、その選択した領域に格納された更新アドレ
    スを削除する更新アドレス削除手段と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行するフラッシュ実行手段とを具備したことを特徴とす
    るキャッシュフラッシュ装置。
  3. 【請求項3】 バススヌープ機構を有するコピーバック
    型でダイレクトマップ方式のキャッシュメモリを備えた
    少なくとも1つのプロセッサと、メインメモリと、上記
    少なくとも1つのプロセッサと上記メインメモリとを接
    続するシステムバスとを具備してなる計算機に用いられ
    るキャッシュフラッシュ装置であって、 上記キャッシュメモリ内に確保されるキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域およびこの領域に対応して設け
    られるカウンタを複数備えた更新アドレス記憶手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段が備
    えた複数の領域の中のいずれかの領域を選択し、その選
    択した領域にその更新アドレスを格納するとともに、そ
    の領域に対応する上記カウンタをインクリメントする更
    新アドレス登録手段と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なった上記プロセッサの識別番号とに基づ
    いて、上記更新アドレス記憶手段の各領域の中のいずれ
    かの領域を選択し、その選択した領域に対応する上記カ
    ウンタをデクリメントする更新アドレス削除手段と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段の各領域のうち、その領域に対応する上記カ
    ウンタの値が初期値でない領域に格納された更新アドレ
    スを逐次読み出し、その読み出した更新アドレスで示さ
    れる上記ダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻しを要求するコマンドを上記システ
    ムバスに発行するフラッシュ実行手段とを具備したこと
    を特徴とするキャッシュフラッシュ装置。
  4. 【請求項4】 バススヌープ機構を有するコピーバック
    型のキャッシュメモリを備えた少なくとも1つのプロセ
    ッサと、メインメモリと、上記少なくとも1つのプロセ
    ッサと上記メインメモリとを接続するシステムバスとを
    具備してなる計算機に用いられるキャッシュフラッシュ
    装置であって、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する更新アドレス登録手段
    と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、データの書き戻しがあった書き戻しアドレ
    スと書き戻しを行なった上記プロセッサの識別番号とに
    基づいて、上記更新アドレス記憶手段の各領域の中のい
    ずれかの領域を選択し、その選択した領域に格納された
    上記書き戻しアドレスと一致する更新アドレスを削除す
    る更新アドレス削除手段と、 上記更新アドレス記憶手段に記憶されたすべての更新ア
    ドレスを逐次読み出し、その読み出した更新アドレスを
    上記プロセッサが順次読み出せるように用意する更新ア
    ドレス読み出し手段とを具備したことを特徴とするキャ
    ッシュフラッシュ装置。
  5. 【請求項5】 バススヌープ機構を有するコピーバック
    型でダイレクトマップ方式のキャッシュメモリを備えた
    少なくとも1つのプロセッサと、メインメモリと、上記
    少なくとも1つのプロセッサと上記メインメモリとを接
    続するシステムバスとを具備してなる計算機に用いられ
    るキャッシュフラッシュ装置であって、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域を複数備えた更新アドレス記憶
    手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する更新アドレス登録手段
    と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なった上記プロセッサの識別番号とに基づ
    いて、上記更新アドレス記憶手段の各領域の中のいずれ
    かの領域を選択し、その選択した領域に格納された更新
    アドレスと上記書き戻しアドレスとを比較し、両者が一
    致するときに、その選択した領域に格納された更新アド
    レスを削除する更新アドレス削除手段と、 上記更新アドレス記憶手段に記憶されたすべての更新ア
    ドレスを逐次読み出し、その読み出した更新アドレスを
    上記プロセッサが順次読み出せるように用意する更新ア
    ドレス読み出し手段とを具備したことを特徴とするキャ
    ッシュフラッシュ装置。
  6. 【請求項6】 バススヌープ機構を有するコピーバック
    型でダイレクトマップ方式のキャッシュメモリを備えた
    少なくとも1つのプロセッサと、メインメモリと、上記
    少なくとも1つのプロセッサと上記メインメモリとを接
    続するシステムバスとを具備してなる計算機に用いられ
    るキャッシュフラッシュ装置であって、 上記キャッシュメモリ内に確保されるキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域およびこの領域に対応して設け
    られるカウンタを複数備えた更新アドレス記憶手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    にその更新アドレスを格納するとともに、その領域に対
    応する上記カウンタをインクリメントする更新アドレス
    登録手段と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なった上記プロセッサの識別番号とに基づ
    いて、上記更新アドレス記憶手段の各領域の中のいずれ
    かの領域を選択し、その選択した領域に対応する上記カ
    ウンタをデクリメントする更新アドレス削除手段と、 上記更新アドレス記憶手段が備えた領域のうち、その領
    域に対応するカウンタの値が初期値でない領域に格納さ
    れた更新アドレスを逐次読み出し、その読み出した更新
    アドレスを上記プロセッサが順次読み出せるように用意
    する更新アドレス読み出し手段とを具備したことを特徴
    とするキャッシュフラッシュ装置。
  7. 【請求項7】 バススヌープ機構を有するコピーバック
    型のキャッシュメモリを備えた少なくとも1つのプロセ
    ッサと、メインメモリと、上記少なくとも1つのプロセ
    ッサと上記メインメモリとを接続するシステムバスとを
    具備してなる計算機に用いられるキャッシュフラッシュ
    装置であって、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する更新アドレス登録手段
    と、 上記更新アドレス登録手段が選択した領域の空きエント
    リ数を所定値と比較し、空きエントリ数が上記所定値を
    下回るときに、その領域にすでに格納されている更新ア
    ドレスの中のいずれか1つを選択し、この選択した更新
    アドレスで示される上記ダーティブロックが保持するデ
    ータの上記メインメモリへの書き戻しを要求するコマン
    ドを上記システムバスに発行するとともに、その更新ア
    ドレスが格納されていたエントリを空きエントリとする
    エントリ解放手段と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行するフラッシュ実行手段とを具備したことを特徴とす
    るキャッシュフラッシュ装置。
  8. 【請求項8】 上記キャッシュメモリは、nウェイのセ
    ットアソシアティブ型であり、 上記更新アドレス記憶手段が備える複数の領域それぞれ
    は、n個のキャッシュブロックで形成されるグループと
    1対1に対応して設けられることを特徴とする請求項7
    記載のキャッシュフラッシュ装置。
  9. 【請求項9】 バススヌープ機構を有するコピーバック
    型のキャッシュメモリを備えた少なくとも1つのプロセ
    ッサと、メインメモリと、上記少なくとも1つのプロセ
    ッサと上記メインメモリとを接続するシステムバスとを
    具備してなる計算機に用いられるキャッシュフラッシュ
    装置であって、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する更新アドレス登録手段
    と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、書き戻しがあった書き戻しアドレスと書き
    戻しを行なった上記プロセッサの識別番号とに基づい
    て、上記更新アドレス記憶手段の各領域の中のいずれか
    の領域を選択し、その選択した領域内に上記書き戻しア
    ドレスと一致する更新アドレスがあるか否かを一定時間
    だけ検索し、上記書き戻しアドレスと一致する更新アド
    レスが検出された場合、その更新アドレスを削除する更
    新アドレス削除手段と、 上記更新アドレス登録手段が選択した領域の空きエント
    リ数を所定値と比較し、空きエントリ数が上記所定値を
    下回るときに、その領域にすでに格納されている更新ア
    ドレスの中のいずれか1つを選択し、この選択した更新
    アドレスで示される上記ダーティブロックが保持するデ
    ータの上記メインメモリへの書き戻しを要求するコマン
    ドを上記システムバスに発行するとともに、その更新ア
    ドレスが格納されていたエントリを空きエントリとする
    エントリ解放手段と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行するフラッシュ実行手段とを具備したことを特徴とす
    るキャッシュフラッシュ装置。
  10. 【請求項10】 上記更新アドレス削除手段は、あるア
    ドレスで示されるデータを保持するキャッシュブロック
    すべてがダーティブロックでないことを示すコマンドを
    検知したときに、そのアドレスから上記更新アドレス記
    憶手段の各領域の中のいずれかの領域を選択し、その選
    択した領域内を検索して上記書き戻しアドレスと一致す
    る更新アドレスが検出された場合、その更新アドレスを
    削除することを特徴とする請求項9記載のキャッシュフ
    ラッシュ装置。
  11. 【請求項11】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなる計算機に用いられるキャッシュフラッシ
    ュ装置であって、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段と、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する更新アドレス登録手段
    と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、書き戻しがあった書き戻しアドレスと書き
    戻しを行なった上記プロセッサの識別番号とに基づい
    て、上記更新アドレス記憶手段の各領域の中のいずれか
    の領域を選択し、その選択した領域内に上記書き戻しア
    ドレスと一致する更新アドレスがあるか否かを当該キャ
    ッシュフラッシュ装置が次に処理すべきコマンドを検知
    するまで検索し、上記書き戻しアドレスと一致する更新
    アドレスが検出された場合、その更新アドレスを削除す
    る更新アドレス削除手段と、 上記更新アドレス登録手段が選択した領域の空きエント
    リ数を所定値と比較し、空きエントリ数が上記所定値を
    下回るときに、その領域にすでに格納されている更新ア
    ドレスの中のいずれか1つを選択し、この選択した更新
    アドレスで示される上記ダーティブロックが保持するデ
    ータの上記メインメモリへの書き戻しを要求するコマン
    ドを上記システムバスに発行するとともに、その更新ア
    ドレスが格納されていたエントリを空きエントリとする
    エントリ解放手段と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行するフラッシュ実行手段とを具備したことを特徴とす
    るキャッシュフラッシュ装置。
  12. 【請求項12】 上記更新アドレス削除手段は、あるア
    ドレスで示されるデータを保持するキャッシュブロック
    すべてがダーティブロックでないことを示すコマンドを
    検知したときに、そのアドレスから上記更新アドレス記
    憶手段の各領域の中のいずれかの領域を選択し、その選
    択した領域内を検索して上記書き戻しアドレスと一致す
    る更新アドレスが検出された場合、その更新アドレスを
    削除することを特徴とする請求項11記載のキャッシュ
    フラッシュ装置。
  13. 【請求項13】 上記更新アドレス記憶手段が備える複
    数の領域それぞれが有するエントリ数は、対応するキャ
    ッシュブロックの個数より小さいことを特徴とする請求
    項7記載のキャッシュフラッシュ装置。
  14. 【請求項14】 上記更新アドレス記憶手段が備える複
    数の領域それぞれが有するエントリ数は、対応するキャ
    ッシュブロックの個数より小さいことを特徴とする請求
    項9記載のキャッシュフラッシュ装置。
  15. 【請求項15】 上記更新アドレス記憶手段が備える複
    数の領域それぞれが有するエントリ数は、対応するキャ
    ッシュブロックの個数より小さいことを特徴とする請求
    項11記載のキャッシュフラッシュ装置。
  16. 【請求項16】 上記更新アドレス記憶手段が備える複
    数の領域は、上記更新アドレスのみで選択可能であるこ
    とを特徴とする請求項1記載のキャッシュフラッシュ装
    置。
  17. 【請求項17】 上記更新アドレス記憶手段が備える複
    数の領域は、上記更新アドレスのみで選択可能であるこ
    とを特徴とする請求項7記載のキャッシュフラッシュ装
    置。
  18. 【請求項18】 上記更新アドレス記憶手段が備える複
    数の領域は、上記更新アドレスのみで選択可能であるこ
    とを特徴とする請求項9記載のキャッシュフラッシュ装
    置。
  19. 【請求項19】 上記更新アドレス記憶手段が備える複
    数の領域は、上記更新アドレスのみで選択可能であるこ
    とを特徴とする請求項11記載のキャッシュフラッシュ
    装置。
  20. 【請求項20】 上記更新アドレス記憶手段は、上記ダ
    ーティブロックが保持するデータのアドレスを記憶する
    ための領域それぞれに対応した上記ダーティブロックの
    数を保持するためのダーティブロックカウンタを有し、 上記更新アドレス登録手段は、上記選択した領域に対応
    した上記ダーティブロックカウンタをインクリメントす
    るインクリメント手段を有し、 上記システムバスの監視によって上記ダーティブロック
    が保持するデータの上記メインメモリへの書き戻しを検
    知し、その書き戻しアドレスと書き戻しを行なった上記
    プロセッサの識別番号とから上記更新アドレス記憶手段
    の各領域の中のいずれかの領域を選択し、その選択した
    領域に対応した上記ダーティブロックカウンタをデクリ
    メントするデクリメント手段と、 このデクリメント手段のデクリメントによって上記ダー
    ティブロックカウンタが初期値になったときに、そのダ
    ーティブロックカウンタに対応する領域の中の更新アド
    レスが格納されたエントリをすべて空きエントリとする
    エントリ一括解放手段とを具備したことを特徴とする請
    求項7記載のキャッシュフラッシュ装置。
  21. 【請求項21】 上記更新アドレス記憶手段は、上記ダ
    ーティブロックが保持するデータのアドレスを記憶する
    ための領域それぞれに対応した上記ダーティブロックの
    数を保持するためのダーティブロックカウンタを有し、 上記更新アドレス登録手段は、上記選択した領域に対応
    した上記ダーティブロックカウンタをインクリメントす
    るインクリメント手段を有し、 上記更新アドレス削除手段は、上記選択した領域に対応
    した上記ダーティブロックカウンタをデクリメントする
    デクリメント手段を有し、 このデクリメント手段のデクリメントによって上記ダー
    ティブロックカウンタが初期値になったときに、そのダ
    ーティブロックカウンタに対応する領域に格納された更
    新アドレスをすべて削除する一括削除手段を具備したこ
    とを特徴とする請求項9記載のキャッシュフラッシュ装
    置。
  22. 【請求項22】 上記更新アドレス記憶手段は、上記ダ
    ーティブロックが保持するデータのアドレスを記憶する
    ための領域それぞれに対応した上記ダーティブロックの
    数を保持するためのダーティブロックカウンタを有し、 上記更新アドレス登録手段は、上記選択した領域に対応
    した上記ダーティブロックカウンタをインクリメントす
    るインクリメント手段を有し、 上記更新アドレス削除手段は、上記選択した領域に対応
    した上記ダーティブロックカウンタをデクリメントする
    デクリメント手段を有し、 このデクリメント手段のデクリメントによって上記ダー
    ティブロックカウンタが初期値になったときに、そのダ
    ーティブロックカウンタに対応する領域に格納された更
    新アドレスをすべて削除する一括削除手段を具備したこ
    とを特徴とする請求項11記載のキャッシュフラッシュ
    装置。
  23. 【請求項23】 上記エントリ解放手段は、上記更新ア
    ドレス記憶手段が備えた複数の領域の中のいずれかの領
    域に格納されている更新アドレスの個数が、その領域に
    対応する上記ダーティブロックカウンタの値が予め定め
    られた値を越えて多くなったときに、その領域にすでに
    格納されている更新アドレスの中のいずれか1つを選択
    し、この選択した更新アドレスで示される上記ダーティ
    ブロックが保持するデータの上記メインメモリへの書き
    戻しを要求するコマンドを上記システムバスに発行する
    とともに、その更新アドレスが格納されていたエントリ
    を空きエントリとすることを特徴とする請求項20記載
    のキャッシュフラッシュ装置。
  24. 【請求項24】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項1記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストの上記メインメモリへの格納および上記
    キャッシュフラッシュ装置の上記フラッシュ実行手段が
    実行するすべてのダーティブロックが保持するデータの
    上記メインメモリへの書き戻しを含むチェックポイント
    作成手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  25. 【請求項25】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項2のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストの上記メインメモリへの格納および上記
    キャッシュフラッシュ装置の上記フラッシュ実行手段が
    実行するすべてのダーティブロックが保持するデータの
    上記メインメモリへの書き戻しを含むチェックポイント
    作成手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  26. 【請求項26】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項3記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  27. 【請求項27】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項7記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  28. 【請求項28】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項8記載のキャッシュフラッシュ装置と、 上記キャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  29. 【請求項29】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項9記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  30. 【請求項30】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項10記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  31. 【請求項31】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項11記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  32. 【請求項32】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項12記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  33. 【請求項33】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項13記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  34. 【請求項34】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項14記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  35. 【請求項35】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項15記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  36. 【請求項36】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項16記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  37. 【請求項37】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項17記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  38. 【請求項38】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項18記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  39. 【請求項39】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項19記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  40. 【請求項40】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項20記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  41. 【請求項41】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項21記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  42. 【請求項42】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項22記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  43. 【請求項43】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項23記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納および上記キャ
    ッシュフラッシュ装置の上記フラッシュ実行手段が実行
    するすべてのダーティブロックが保持するデータの上記
    メインメモリへの書き戻しを含むチェックポイント作成
    手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  44. 【請求項44】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項4記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストの上記メインメモリへの格納および上記
    キャッシュフラッシュ装置の上記更新アドレス読み出し
    手段を介して上記更新アドレスを取得し、その取得した
    更新アドレスで示されるデータを上記キャッシュメモリ
    から上記メインメモリへ書き戻すための命令列を実行す
    ることによるすべてのダーティブロックが保持するデー
    タの上記メインメモリへの書き戻しを含むチェックポイ
    ント作成手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  45. 【請求項45】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項5記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストの上記メインメモリへの格納および上記
    キャッシュフラッシュ装置の上記更新アドレス読み出し
    手段を介して上記更新アドレスを取得し、その取得した
    更新アドレスで示されるデータを上記キャッシュメモリ
    から上記メインメモリへ書き戻すための命令列を実行す
    ることによるすべてのダーティブロックが保持するデー
    タの上記メインメモリへの書き戻しを含む上記チェック
    ポイント作成手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  46. 【請求項46】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなり、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 請求項6記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストの上記メインメモリへの格納および上記
    キャッシュフラッシュ装置の上記更新アドレス読み出し
    手段を介して上記更新アドレスを取得し、その取得した
    更新アドレスで示されるデータを上記キャッシュメモリ
    から上記メインメモリへ書き戻すための命令列を実行す
    ることによるすべてのダーティブロックが保持するデー
    タの上記メインメモリへの書き戻しを含む上記チェック
    ポイント作成手段と、 故障が発生したときに、直前に採取したチェックポイン
    ト時点に上記メインメモリを復元し、この復元された上
    記メインメモリに保持された情報を用いてデータ処理を
    再開するロールバックリカバリ手段とを具備したことを
    特徴とする計算機システム。
  47. 【請求項47】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項1記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  48. 【請求項48】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、 このメモリ更新観測手段が送信したコマンドを受信し
    て、上記第2の計算機のメインメモリに対して上記第1
    の計算機と同様の書き込みコマンドを発行するメモリ更
    新手段とを備え、断した処理を再開始するためのチェッ
    クポイントを定期的に採取する計算機システムであっ
    て、 上記第1の計算機は、 請求項2記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  49. 【請求項49】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項3記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  50. 【請求項50】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項7記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備してなることを特徴と
    する計算機システム。
  51. 【請求項51】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項8記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  52. 【請求項52】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、 このメモリ更新観測手段が送信したコマンドを受信し
    て、上記第2の計算機のメインメモリに対して上記第1
    の計算機と同様の書き込みコマンドを発行するメモリ更
    新手段とを備え、中断した処理を再開始するためのチェ
    ックポイントを定期的に採取する計算機システムであっ
    て、 上記第1の計算機は、 請求項9記載のキャッシュフラッシュ装置と、 上記キャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  53. 【請求項53】 少なくとも第1および第2の計算機
    と、上記第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項10記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  54. 【請求項54】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項11記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  55. 【請求項55】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項12記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  56. 【請求項56】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項13記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  57. 【請求項57】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項14記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  58. 【請求項58】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項15記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  59. 【請求項59】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項16記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  60. 【請求項60】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項17記載のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  61. 【請求項61】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項18のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  62. 【請求項62】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項19のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  63. 【請求項63】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項20のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  64. 【請求項64】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを具備
    し、中断した処理を再開始するためのチェックポイント
    を定期的に採取する計算機システムであって、 上記第1の計算機は、 請求項21のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  65. 【請求項65】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項22のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  66. 【請求項66】 少なくとも第1および第2の計算機
    と、この第1の計算機で発生したメインメモリへの書き
    込みコマンドを捉えて蓄積し、上記第1の計算機から指
    示されたときに、上記蓄積したコマンドを上記第2の計
    算機に送信するメモリ更新観測手段と、このメモリ更新
    観測手段が送信したコマンドを受信して、上記第2の計
    算機のメインメモリに対して上記第1の計算機と同様の
    書き込みコマンドを発行するメモリ更新手段とを備え、
    中断した処理を再開始するためのチェックポイントを定
    期的に採取する計算機システムであって、 上記第1の計算機は、 請求項23のキャッシュフラッシュ装置と、 このキャッシュフラッシュ装置に更新アドレスの捕捉を
    させながら通常のデータ処理を実行するデータ処理手段
    と、 上記プロセッサすべてが同期して実行するデータ処理中
    のコンテキストのメインメモリへの格納、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段が実行する
    すべてのダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻し、および上記メモリ更新観測手段
    に対する上記蓄積したコマンドの上記第2の計算機への
    送信指示を含むチェックポイント採取手段とを具備し、 上記第2の計算機は、 上記メモリ更新手段が所定の時間を越えて上記メモリ更
    新観測手段からコマンドを受信しなかったときに、デー
    タ処理を開始する待機手段を具備したことを特徴とする
    計算機システム。
  67. 【請求項67】 上記データ処理手段は、上記キャッシ
    ュフラッシュ装置の上記フラッシュ実行手段を起動させ
    る処理を含むことを特徴とする請求項24乃至45、請
    求項47乃至66のいずれか1項に記載の計算機システ
    ム。
  68. 【請求項68】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなる計算機に用いられ、 上記メインメモリに書き戻すべきデータを保持した状態
    にあるキャッシュブロックであるダーティブロックが保
    持するデータのアドレスを記憶するための領域を複数備
    えた更新アドレス記憶手段を有するキャッシュフラッシ
    ュ装置を制御するためのプログラムを記録した記録媒体
    であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記キャッシュメモリ内に確保
    されたキャッシュブロックのうち、上記更新アドレス記
    憶手段の各領域の中のいずれかの領域を選択し、その選
    択した領域に上記更新アドレスを格納する手順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、データの書き戻しがあった書き戻しアドレ
    スと書き戻しを行なった上記プロセッサの識別番号とに
    基づいて、上記更新アドレス記憶手段の各領域の中のい
    ずれかの領域を選択し、その選択した領域に格納された
    上記書き戻しアドレスと一致する更新アドレスを削除す
    る手順と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行する手順とを実行させるプログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
  69. 【請求項69】 バススヌープ機構を有するコピーバッ
    ク型でダイレクトマップ方式のキャッシュメモリを備え
    た少なくとも1つのプロセッサと、メインメモリと、上
    記少なくとも1つのプロセッサと上記メインメモリとを
    接続するシステムバスとを具備してなる計算機に用いら
    れ、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域を複数備えた更新アドレス記憶
    手段を有するキャッシュフラッシュ装置を制御するため
    のプログラムを記録した記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する手順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なったプロセッサの識別番号とに基づい
    て、上記更新アドレス記憶手段の各領域の中のいずれか
    の領域を選択し、その選択した領域に格納された更新ア
    ドレスと上記書き戻しアドレスとを比較し、両者が一致
    するときに、その選択した領域に格納された更新アドレ
    スを削除する手順と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行する手順とを実行させるプログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
  70. 【請求項70】 バススヌープ機構を有するコピーバッ
    ク型でダイレクトマップ方式のキャッシュメモリを備え
    た少なくとも1つのプロセッサと、メインメモリと、上
    記少なくとも1つのプロセッサと上記メインメモリとを
    接続するシステムバスとを具備してなる計算機に用いら
    れ、 上記キャッシュメモリ内に確保されるキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域およびこの領域に対応して設け
    られるカウンタを複数備えた更新アドレス記憶手段を有
    するキャッシュフラッシュ装置を制御するためのプログ
    ラムを記録した記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段が備
    えた複数の領域の中のいずれかの領域を選択し、その選
    択した領域にその更新アドレスを格納するとともに、そ
    の領域に対応する上記カウンタをインクリメントする手
    順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なった上記プロセッサの識別番号とに基づ
    いて、上記更新アドレス記憶手段の各領域の中のいずれ
    かの領域を選択し、その選択した領域に対応する上記カ
    ウンタをデクリメントする手順と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段の各領域のうち、その領域に対応する上記カ
    ウンタの値が初期値でない領域に格納された更新アドレ
    スを逐次読み出し、その読み出した更新アドレスで示さ
    れる上記ダーティブロックが保持するデータの上記メイ
    ンメモリへの書き戻しを要求するコマンドを上記システ
    ムバスに発行する手順とを実行させるプログラムを記録
    したコンピュータ読み取り可能な記録媒体。
  71. 【請求項71】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなる計算機に用いられ、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段を有するキャッシ
    ュフラッシュ装置を制御するためのプログラムを記録し
    た記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する手順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、データの書き戻しがあった書き戻しアドレ
    スと書き戻しを行なった上記プロセッサの識別番号とに
    基づいて、上記更新アドレス記憶手段の各領域の中のい
    ずれかの領域を選択し、その選択した領域に格納された
    上記書き戻しアドレスと一致する更新アドレスを削除す
    る手順と、 上記更新アドレス記憶手段に記憶されたすべての更新ア
    ドレスを逐次読み出し、その読み出した更新アドレスを
    上記プロセッサが順次読み出せるように用意する手順と
    を実行させるプログラムを記録したコンピュータ読み取
    り可能な記録媒体。
  72. 【請求項72】 バススヌープ機構を有するコピーバッ
    ク型でダイレクトマップ方式のキャッシュメモリを備え
    た少なくとも1つのプロセッサと、メインメモリと、上
    記少なくとも1つのプロセッサと上記メインメモリとを
    接続するシステムバスとを具備してなる計算機に用いら
    れ、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域を複数備えた更新アドレス記憶
    手段を有するキャッシュフラッシュ装置を制御するため
    のプログラムを記録した記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する手順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なった上記プロセッサの識別番号とに基づ
    いて、上記更新アドレス記憶手段の各領域の中のいずれ
    かの領域を選択し、その選択した領域に格納された更新
    アドレスと上記書き戻しアドレスとを比較し、両者が一
    致するときに、その選択した領域に格納された更新アド
    レスを削除する手順と、 上記更新アドレス記憶手段に記憶されたすべての更新ア
    ドレスを逐次読み出し、その読み出した更新アドレスを
    上記プロセッサが順次読み出せるように用意する手順と
    を実行させるプログラムを記録したコンピュータ読み取
    り可能な記録媒体。
  73. 【請求項73】 バススヌープ機構を有するコピーバッ
    ク型でダイレクトマップ方式のキャッシュメモリを備え
    た少なくとも1つのプロセッサと、メインメモリと、上
    記少なくとも1つのプロセッサと上記メインメモリとを
    接続するシステムバスとを具備してなる計算機に用いら
    れ、 上記キャッシュメモリ内に確保されるキャッシュブロッ
    クそれぞれに対応して設けられ、上記メインメモリに書
    き戻すべきデータを保持した状態にあるキャッシュブロ
    ックであるダーティブロックが保持するデータのアドレ
    スを記憶するための領域であって、それぞれが1つのエ
    ントリを有してなる領域およびこの領域に対応して設け
    られるカウンタを複数備えた更新アドレス記憶手段を有
    するキャッシュフラッシュ装置を制御するためのプログ
    ラムを記録した記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    にその更新アドレスを格納するとともに、その領域に対
    応する上記カウンタをインクリメントする手順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、その書き戻しがあった書き戻しアドレスと
    書き戻しを行なった上記プロセッサの識別番号とに基づ
    いて、上記更新アドレス記憶手段の各領域の中のいずれ
    かの領域を選択し、その選択した領域に対応する上記カ
    ウンタをデクリメントする手順と、 上記更新アドレス記憶手段が備えた領域のうち、その領
    域に対応するカウンタの値が初期値でない領域に格納さ
    れた更新アドレスを逐次読み出し、その読み出した更新
    アドレスを上記プロセッサが順次読み出せるように用意
    する手順とを実行させるプログラムを記録したコンピュ
    ータ読み取り可能な記録媒体。
  74. 【請求項74】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなる計算機に用いられ、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段を有するキャッシ
    ュフラッシュ装置を制御するためのプログラムを記録し
    た記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する手順と、 上記データ更新時に選択した領域の空きエントリ数を所
    定値と比較し、空きエントリ数が上記所定値を下回ると
    きに、その領域にすでに格納されている更新アドレスの
    中のいずれか1つを選択し、この選択した更新アドレス
    で示される上記ダーティブロックが保持するデータの上
    記メインメモリへの書き戻しを要求するコマンドを上記
    システムバスに発行するとともに、その更新アドレスが
    格納されていたエントリを空きエントリとする手順と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行する手順とを実行させるプログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
  75. 【請求項75】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなる計算機に用いられ、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段を有するキャッシ
    ュフラッシュ装置を制御するためのプログラムを記録し
    た記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する手順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、書き戻しがあった書き戻しアドレスと書き
    戻しを行なった上記プロセッサの識別番号とに基づい
    て、上記更新アドレス記憶手段の各領域の中のいずれか
    の領域を選択し、その選択した領域内に上記書き戻しア
    ドレスと一致する更新アドレスがあるか否かを一定時間
    だけ検索し、上記書き戻しアドレスと一致する更新アド
    レスが検出された場合、その更新アドレスを削除する手
    順と、 上記データ更新時に選択した領域の空きエントリ数を所
    定値と比較し、空きエントリ数が上記所定値を下回ると
    きに、その領域にすでに格納されている更新アドレスの
    中のいずれか1つを選択し、この選択した更新アドレス
    で示される上記ダーティブロックが保持するデータの上
    記メインメモリへの書き戻しを要求するコマンドを上記
    システムバスに発行するとともに、その更新アドレスが
    格納されていたエントリを空きエントリとする手順と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行する手順とを実行させるプログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
  76. 【請求項76】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも1つのプロ
    セッサと、メインメモリと、上記少なくとも1つのプロ
    セッサと上記メインメモリとを接続するシステムバスと
    を具備してなる計算機に用いられ、 上記キャッシュメモリ内に確保されたキャッシュブロッ
    クのうち、上記メインメモリに書き戻すべきデータを保
    持した状態にあるキャッシュブロックであるダーティブ
    ロックが保持するデータのアドレスを記憶するための領
    域を複数備えた更新アドレス記憶手段を有するキャッシ
    ュフラッシュ装置を制御するためのプログラムを記録し
    た記録媒体であって、 上記システムバスを監視することにより上記キャッシュ
    メモリ上でのデータ更新を検知し、データ更新があった
    更新アドレスとデータ更新を行なった上記プロセッサの
    識別番号とに基づいて、上記更新アドレス記憶手段の各
    領域の中のいずれかの領域を選択し、その選択した領域
    に上記更新アドレスを格納する手順と、 上記システムバスを監視することにより上記ダーティブ
    ロックが保持するデータの上記メインメモリへの書き戻
    しを検知し、書き戻しがあった書き戻しアドレスと書き
    戻しを行なった上記プロセッサの識別番号とに基づい
    て、上記更新アドレス記憶手段の各領域の中のいずれか
    の領域を選択し、その選択した領域内に上記書き戻しア
    ドレスと一致する更新アドレスがあるか否かを当該キャ
    ッシュフラッシュ装置が次に処理すべきコマンドを検知
    するまで検索し、上記書き戻しアドレスと一致する更新
    アドレスが検出された場合、その更新アドレスを削除す
    る手順と、 上記データの更新時に選択した領域の空きエントリ数を
    所定値と比較し、空きエントリ数が上記所定値を下回る
    ときに、その領域にすでに格納されている更新アドレス
    の中のいずれか1つを選択し、この選択した更新アドレ
    スで示される上記ダーティブロックが保持するデータの
    上記メインメモリへの書き戻しを要求するコマンドを上
    記システムバスに発行するとともに、その更新アドレス
    が格納されていたエントリを空きエントリとする手順
    と、 上記プロセッサからの指示に応答して、上記更新アドレ
    ス記憶手段に記憶されたすべての更新アドレスを逐次読
    み出し、その読み出した更新アドレスで示される上記ダ
    ーティブロックが保持するデータの上記メインメモリへ
    の書き戻しを要求するコマンドを上記システムバスに発
    行する手順とを実行させるプログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
JP9274214A 1997-03-19 1997-10-07 キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体 Pending JPH10320274A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9274214A JPH10320274A (ja) 1997-03-19 1997-10-07 キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-67021 1997-03-19
JP6702197 1997-03-19
JP9274214A JPH10320274A (ja) 1997-03-19 1997-10-07 キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体

Publications (1)

Publication Number Publication Date
JPH10320274A true JPH10320274A (ja) 1998-12-04

Family

ID=26408225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9274214A Pending JPH10320274A (ja) 1997-03-19 1997-10-07 キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体

Country Status (1)

Country Link
JP (1) JPH10320274A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012074036A (ja) * 2010-09-28 2012-04-12 Arm Ltd ライトバック順序付けによるコヒーレンス制御
JP2014186521A (ja) * 2013-03-22 2014-10-02 Fujitsu Ltd 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US10366021B2 (en) 2015-12-30 2019-07-30 Samsung Electronics Co., Ltd. Memory system including DRAM cache and cache management method thereof

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322815A (en) * 1979-05-09 1982-03-30 International Computers Limited Hierarchical data storage system
JPS59160899A (ja) * 1982-12-09 1984-09-11 セコイア・システムス・インコ−ポレ−テツド メモリ−・バツク・アツプ・システム
JPS638835A (ja) * 1986-06-27 1988-01-14 Yokogawa Hewlett Packard Ltd 障害回復方法
JPH0227440A (ja) * 1988-06-30 1990-01-30 Internatl Business Mach Corp <Ibm> 記憶システム
JPH02217943A (ja) * 1989-02-20 1990-08-30 Toshiba Corp 高速キャッシュメモリ
JPH056308A (ja) * 1990-11-05 1993-01-14 Mitsubishi Electric Corp キヤツシユ・コントローラ並びにフオールト・トレラント・コンピユータ及びそのデータ転送方式
JPH086851A (ja) * 1994-06-16 1996-01-12 Toshiba Corp キャッシュメモリ制御装置
JPH096636A (ja) * 1995-06-19 1997-01-10 Toshiba Corp チェックポイント取得システム
JPH096680A (ja) * 1995-06-19 1997-01-10 Toshiba Corp キャッシュフラッシュ装置
JPH096731A (ja) * 1995-06-19 1997-01-10 Toshiba Corp メモリ状態復元装置
JPH09198312A (ja) * 1996-01-17 1997-07-31 Hitachi Ltd 半導体メモリシステム
JPH09259098A (ja) * 1996-03-19 1997-10-03 Toshiba Corp 分散メモリ型マルチプロセッサシステム及び故障回復方法
JPH09269905A (ja) * 1996-01-31 1997-10-14 Toshiba Corp 計算機システム
JPH09330303A (ja) * 1996-06-12 1997-12-22 Toshiba Corp コンピュータシステムおよびそのシステムにおける障害回復方法
JPH1078918A (ja) * 1996-09-04 1998-03-24 Toshiba Corp チェックポイント処理加速装置および同装置を適用した計算機システム
JPH10149307A (ja) * 1996-09-20 1998-06-02 Toshiba Corp チェックポイント処理方法及び記録媒体
JPH10154134A (ja) * 1996-09-30 1998-06-09 Toshiba Corp メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JPH10187535A (ja) * 1996-12-24 1998-07-21 Toshiba Corp 計算機システム及びメモリ状態復元装置
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322815A (en) * 1979-05-09 1982-03-30 International Computers Limited Hierarchical data storage system
JPS59160899A (ja) * 1982-12-09 1984-09-11 セコイア・システムス・インコ−ポレ−テツド メモリ−・バツク・アツプ・システム
JPS638835A (ja) * 1986-06-27 1988-01-14 Yokogawa Hewlett Packard Ltd 障害回復方法
JPH0227440A (ja) * 1988-06-30 1990-01-30 Internatl Business Mach Corp <Ibm> 記憶システム
JPH02217943A (ja) * 1989-02-20 1990-08-30 Toshiba Corp 高速キャッシュメモリ
JPH056308A (ja) * 1990-11-05 1993-01-14 Mitsubishi Electric Corp キヤツシユ・コントローラ並びにフオールト・トレラント・コンピユータ及びそのデータ転送方式
JPH086851A (ja) * 1994-06-16 1996-01-12 Toshiba Corp キャッシュメモリ制御装置
JPH096680A (ja) * 1995-06-19 1997-01-10 Toshiba Corp キャッシュフラッシュ装置
JPH096636A (ja) * 1995-06-19 1997-01-10 Toshiba Corp チェックポイント取得システム
JPH096731A (ja) * 1995-06-19 1997-01-10 Toshiba Corp メモリ状態復元装置
JPH09198312A (ja) * 1996-01-17 1997-07-31 Hitachi Ltd 半導体メモリシステム
JPH09269905A (ja) * 1996-01-31 1997-10-14 Toshiba Corp 計算機システム
JPH09259098A (ja) * 1996-03-19 1997-10-03 Toshiba Corp 分散メモリ型マルチプロセッサシステム及び故障回復方法
JPH09330303A (ja) * 1996-06-12 1997-12-22 Toshiba Corp コンピュータシステムおよびそのシステムにおける障害回復方法
JPH1078918A (ja) * 1996-09-04 1998-03-24 Toshiba Corp チェックポイント処理加速装置および同装置を適用した計算機システム
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法
JPH10149307A (ja) * 1996-09-20 1998-06-02 Toshiba Corp チェックポイント処理方法及び記録媒体
JPH10154134A (ja) * 1996-09-30 1998-06-09 Toshiba Corp メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JPH10187535A (ja) * 1996-12-24 1998-07-21 Toshiba Corp 計算機システム及びメモリ状態復元装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012074036A (ja) * 2010-09-28 2012-04-12 Arm Ltd ライトバック順序付けによるコヒーレンス制御
JP2014186521A (ja) * 2013-03-22 2014-10-02 Fujitsu Ltd 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US10366021B2 (en) 2015-12-30 2019-07-30 Samsung Electronics Co., Ltd. Memory system including DRAM cache and cache management method thereof
US11023396B2 (en) 2015-12-30 2021-06-01 Samsung Electronics Co., Ltd. Memory system including DRAM cache and cache management method thereof

Similar Documents

Publication Publication Date Title
JP2916421B2 (ja) キャッシュフラッシュ装置およびデータ処理方法
US7085955B2 (en) Checkpointing with a write back controller
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
JP2566701B2 (ja) 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
KR100567099B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
US7360069B2 (en) Systems and methods for executing across at least one memory barrier employing speculative fills
US7925839B1 (en) System and method for performing memory operations in a computing system
KR100243853B1 (ko) 개량된메모리아키텍쳐를위한방법및장치
US6418515B1 (en) Cache flush unit
JP2902976B2 (ja) キャッシュフラッシュ装置
JP3086779B2 (ja) メモリ状態復元装置
JPH0670779B2 (ja) フェッチ方法
US7260677B1 (en) Programmable system and method for accessing a shared memory
US5016168A (en) Method for storing into non-exclusive cache lines in multiprocessor systems
JPH05210584A (ja) 改善されたぺージングを有するディジタルデータプロセッサ
JPH10320274A (ja) キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP3320562B2 (ja) キャッシュメモリを有する電子計算機
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JP4286857B2 (ja) ノード間共用ファイル制御方法
JP3833760B2 (ja) 計算機システム及びメモリ状態復元装置
JP3555847B2 (ja) キャッシュメモリの障害処理装置、キャッシュメモリの障害処理方法、マルチプロセッサシステム
JPH10149307A (ja) チェックポイント処理方法及び記録媒体
JPH05324470A (ja) マルチプロセッサシステムとそのキャッシュメモリ制御方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081021