JPH10149307A - チェックポイント処理方法及び記録媒体 - Google Patents
チェックポイント処理方法及び記録媒体Info
- Publication number
- JPH10149307A JPH10149307A JP9232936A JP23293697A JPH10149307A JP H10149307 A JPH10149307 A JP H10149307A JP 9232936 A JP9232936 A JP 9232936A JP 23293697 A JP23293697 A JP 23293697A JP H10149307 A JPH10149307 A JP H10149307A
- Authority
- JP
- Japan
- Prior art keywords
- data
- update
- address
- command
- cache
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】本発明は、標準的なユニプロセッサなどを搭載
する計算機でチェックポイント/リカバリ機能を容易に
実現可能とする。 【解決手段】キャッシュメモリ20上でのデータ更新が
行なわれると、ビフォアイメージ取得部32は、その更
新アドレスと更新前データとを取得して、ビフォアイメ
ージ記憶部35に格納する。キャッシュフラッシュ実行
部34は、このビフォアイメージ記憶部35に格納され
たすべてのアドレスを使用し、更新状態のキャッシュブ
ロックの内容をメインメモリ51に書き戻すことを要求
するコマンドをシステムバス40に発行する。一方、メ
インメモリ状態復元部33は、ビフォアイメージ記憶部
35に格納されたすべての更新前データについて、新し
く格納したものから順に、メインメモリ51への更新書
き込みを要求するコマンドをシステムバス40に発行す
る。
する計算機でチェックポイント/リカバリ機能を容易に
実現可能とする。 【解決手段】キャッシュメモリ20上でのデータ更新が
行なわれると、ビフォアイメージ取得部32は、その更
新アドレスと更新前データとを取得して、ビフォアイメ
ージ記憶部35に格納する。キャッシュフラッシュ実行
部34は、このビフォアイメージ記憶部35に格納され
たすべてのアドレスを使用し、更新状態のキャッシュブ
ロックの内容をメインメモリ51に書き戻すことを要求
するコマンドをシステムバス40に発行する。一方、メ
インメモリ状態復元部33は、ビフォアイメージ記憶部
35に格納されたすべての更新前データについて、新し
く格納したものから順に、メインメモリ51への更新書
き込みを要求するコマンドをシステムバス40に発行す
る。
Description
【0001】
【発明の属する技術分野】本発明は、例えばデータの一
貫性を保証するためにスヌープ機構を有してなるキャッ
シュメモリを備えた計算機に適用して好適なチェックポ
イント処理方法、及びコピーバック型のキャッシュメモ
リを備えた計算機システムのチェックポイント処理機構
に適用されるコンピュータプログラムを記録した記録媒
体に関する。
貫性を保証するためにスヌープ機構を有してなるキャッ
シュメモリを備えた計算機に適用して好適なチェックポ
イント処理方法、及びコピーバック型のキャッシュメモ
リを備えた計算機システムのチェックポイント処理機構
に適用されるコンピュータプログラムを記録した記録媒
体に関する。
【0002】更に本発明は、バススヌープ機構を有する
コピーバック型のキャッシュメモリを備えた少なくとも
一つ以上のプロセッサと、メインメモリと、前記プロセ
ッサと前記メインメモリとを接続するシステムバスとを
具備してなる計算機に適用されるチェックポイント処理
方法、及び同計算機のチェックポイント処理機構に適用
されるコンピュータプログラムを記録した記録媒体に関
する。
コピーバック型のキャッシュメモリを備えた少なくとも
一つ以上のプロセッサと、メインメモリと、前記プロセ
ッサと前記メインメモリとを接続するシステムバスとを
具備してなる計算機に適用されるチェックポイント処理
方法、及び同計算機のチェックポイント処理機構に適用
されるコンピュータプログラムを記録した記録媒体に関
する。
【0003】
【従来の技術】計算機システムを高信頼化する方式の一
つとして、通常のデータ処理の途中で定期的にチェック
ポイントをメインメモリ上に作成しておき、計算機に何
らかの障害が発生したときに、直前のチェックポイント
に戻って処理を再開する機能を実現した技術が存在す
る。このような機能を実現する方式は、通常、チェック
ポイント/リカバリ方式と称され、下記の3つの種類に
大別される。
つとして、通常のデータ処理の途中で定期的にチェック
ポイントをメインメモリ上に作成しておき、計算機に何
らかの障害が発生したときに、直前のチェックポイント
に戻って処理を再開する機能を実現した技術が存在す
る。このような機能を実現する方式は、通常、チェック
ポイント/リカバリ方式と称され、下記の3つの種類に
大別される。
【0004】(1)主にデータベース管理システムなど
で使用され、計算機がダウンしたときに、データ自体の
喪失を防いだり、データ間の論理的な整合性を維持した
り、他の計算機がデータベースを引継いたりするための
もの。
で使用され、計算機がダウンしたときに、データ自体の
喪失を防いだり、データ間の論理的な整合性を維持した
り、他の計算機がデータベースを引継いたりするための
もの。
【0005】(2)ひとつのアプリケーションプログラ
ムをプライマリプロセスとシャドウプロセスとして別の
計算機に配置して実行し、プライマリプロセスを実行中
の計算機がダウンしたときに、シャドウプロセスが整合
性のとれた状態で引継ぐためのもの。ユーザからは、ア
プリケーションプログラムの実行が途中で打ち切られず
に続いているように見える。
ムをプライマリプロセスとシャドウプロセスとして別の
計算機に配置して実行し、プライマリプロセスを実行中
の計算機がダウンしたときに、シャドウプロセスが整合
性のとれた状態で引継ぐためのもの。ユーザからは、ア
プリケーションプログラムの実行が途中で打ち切られず
に続いているように見える。
【0006】(3)計算機に何らかの故障が発生したと
きに、その計算機がダウンすることを回避するためのも
の。ユーザおよびアプリケーションプログラムからは、
故障が発生しなかったときと比べてほとんど違いが見え
ない。
きに、その計算機がダウンすることを回避するためのも
の。ユーザおよびアプリケーションプログラムからは、
故障が発生しなかったときと比べてほとんど違いが見え
ない。
【0007】このうち、(3)のチェックポイント/リ
カバリ方式では、何らかの故障が発生したときに、直前
のチェックポイントから処理が再開されるので、チェッ
クポイント自身は故障発生によっても破壊されない記憶
装置に格納することが必須である。そのような記憶装置
は安定記憶と呼ばれ、たとえば二重化された主記憶装置
などが使用される。
カバリ方式では、何らかの故障が発生したときに、直前
のチェックポイントから処理が再開されるので、チェッ
クポイント自身は故障発生によっても破壊されない記憶
装置に格納することが必須である。そのような記憶装置
は安定記憶と呼ばれ、たとえば二重化された主記憶装置
などが使用される。
【0008】このようなチェックポイント/リカバリ方
式の計算機では、図28に示すように、各プロセッサ
は、定期的に通常のデータ処理を一時中断してチェック
ポイント処理を行ない(1)、それが終了すると再び通
常のデータ処理を中断した時点から再開する(2)。
式の計算機では、図28に示すように、各プロセッサ
は、定期的に通常のデータ処理を一時中断してチェック
ポイント処理を行ない(1)、それが終了すると再び通
常のデータ処理を中断した時点から再開する(2)。
【0009】そして、何らかの故障が発生すると
(3)、プロセッサはリカバリ処理を行なう。このリカ
バリ処理では、メインメモリを(2)の状態に戻した後
に、通常のデータ処理を再開する(4)。
(3)、プロセッサはリカバリ処理を行なう。このリカ
バリ処理では、メインメモリを(2)の状態に戻した後
に、通常のデータ処理を再開する(4)。
【0010】すなわち、(4)において(2)と同じ状
態から再開することにより、障害発生の影響を受けるこ
となくデータ処理を続行することを目指すものである。
態から再開することにより、障害発生の影響を受けるこ
となくデータ処理を続行することを目指すものである。
【0011】次に、この種、チェックポイント/リカバ
リ方式について、キャッシュメモリ、メインメモリおよ
びチェックポイントの関係を下記に示す。
リ方式について、キャッシュメモリ、メインメモリおよ
びチェックポイントの関係を下記に示す。
【0012】(通常のデータ処理)障害発生時にメイン
メモリをチェックポイント時の状態に戻すため、メイン
メモリが書き換えられる場合、何らかの対策をとる必要
がある。
メモリをチェックポイント時の状態に戻すため、メイン
メモリが書き換えられる場合、何らかの対策をとる必要
がある。
【0013】(チェックポイント処理)キャッシュメモ
リに保持されている更新されたデータをすべてメインメ
モリに書き戻す。
リに保持されている更新されたデータをすべてメインメ
モリに書き戻す。
【0014】(障害発生時の復旧処理)少なくとも直前
のチェックポイント処理以後にメインメモリ上で更新の
発生した部分をチェックポイント時点の状態に戻す必要
がある。
のチェックポイント処理以後にメインメモリ上で更新の
発生した部分をチェックポイント時点の状態に戻す必要
がある。
【0015】チェックポイント/リカバリ方式を採用し
たフォールトトレラント計算機は、たとえばPhili
p A Bernstein,“Sequoia:A
Fault−Tolerant Tightly Co
upled Multiprocessor for
Transaction Processing”,I
EEE Computer,Vol.21,No.2,
1988などに開示されている。
たフォールトトレラント計算機は、たとえばPhili
p A Bernstein,“Sequoia:A
Fault−Tolerant Tightly Co
upled Multiprocessor for
Transaction Processing”,I
EEE Computer,Vol.21,No.2,
1988などに開示されている。
【0016】このSequoia計算機に於いては、通
常のデータ処理の期間中、プロセッサがデータを更新す
ると、そのデータはキャッシュメモリ上に保持され、決
してメインメモリに書き戻されることはない。
常のデータ処理の期間中、プロセッサがデータを更新す
ると、そのデータはキャッシュメモリ上に保持され、決
してメインメモリに書き戻されることはない。
【0017】そして、チェックポイント処理を開始する
と、キャッシュメモリに保持されていた更新されたデー
タがメインメモリに書き戻される。
と、キャッシュメモリに保持されていた更新されたデー
タがメインメモリに書き戻される。
【0018】計算機に何らかの故障が発生した場合に
は、キャッシュメモリを無効化することにより、直前の
チェックポイントの時点のメインメモリの状態から通常
のデータ処理を再開することができる。
は、キャッシュメモリを無効化することにより、直前の
チェックポイントの時点のメインメモリの状態から通常
のデータ処理を再開することができる。
【0019】これを前述したキャッシュメモリ、メイン
メモリおよびチェックポイントの関係に対応させると、
下記のように示すことができる。
メモリおよびチェックポイントの関係に対応させると、
下記のように示すことができる。
【0020】(通常のデータ処理)プロセッサにより更
新されたデータは、チェックポイント処理を始めるまで
はメインメモリに書き戻さない。
新されたデータは、チェックポイント処理を始めるまで
はメインメモリに書き戻さない。
【0021】(チェックポイント処理)キャッシュメモ
リに保持されている更新されたデータは、すべてメイン
メモリに書き戻す。
リに保持されている更新されたデータは、すべてメイン
メモリに書き戻す。
【0022】(障害発生時の復旧処理)キャッシュメモ
リを無効化するだけでよい。
リを無効化するだけでよい。
【0023】また、このSequoia計算機では、チ
ェックポイント/リカバリ方式を実現するために、特別
なキャッシュメモリを備えている。その理由は、通常の
ライトスルー型、あるいはコピーバック型のキャッシュ
メモリを使用すると、「通常のデータ処理の期間中にプ
ロセッサにより更新されたデータは、チェックポイント
処理を始めるまではメインメモリに書き戻さない」とい
う制御ができないためである。
ェックポイント/リカバリ方式を実現するために、特別
なキャッシュメモリを備えている。その理由は、通常の
ライトスルー型、あるいはコピーバック型のキャッシュ
メモリを使用すると、「通常のデータ処理の期間中にプ
ロセッサにより更新されたデータは、チェックポイント
処理を始めるまではメインメモリに書き戻さない」とい
う制御ができないためである。
【0024】また、USP 4,740,969“Me
thod & Apparatusfor Recov
ering from Hardware Fault
s”には、下記の方式が開示されている。
thod & Apparatusfor Recov
ering from Hardware Fault
s”には、下記の方式が開示されている。
【0025】(通常のデータ処理)メインメモリからキ
ャッシュメモリにデータをロードする際、そのアドレス
とデータの内容を保持する。
ャッシュメモリにデータをロードする際、そのアドレス
とデータの内容を保持する。
【0026】(チェックポイント処理)言及されていな
い。
い。
【0027】(障害発生時の復旧処理)前記アドレスと
データとを用いて、メインメモリをチェックポイント時
点の状態に戻す。
データとを用いて、メインメモリをチェックポイント時
点の状態に戻す。
【0028】このように、Sequoia計算機の場合
には、チェックポイント/リカバリのために特別なキャ
ッシュメモリを備える必要があり、プロセッサの急激な
技術改革に追従させることが難しいという問題がある。
には、チェックポイント/リカバリのために特別なキャ
ッシュメモリを備える必要があり、プロセッサの急激な
技術改革に追従させることが難しいという問題がある。
【0029】また、USP4,740,969に開示さ
れる方式では、通常のデータ処理において取得するデー
タの量が多くなること、およびチェックポイント処理時
にキャッシュフラッシュを実行する手段を設ける必要が
あるという問題がある。
れる方式では、通常のデータ処理において取得するデー
タの量が多くなること、およびチェックポイント処理時
にキャッシュフラッシュを実行する手段を設ける必要が
あるという問題がある。
【0030】
【発明が解決しようとする課題】上記したように、チェ
ックポイント/リカバリ方式の計算機として代表され
る、従来技術によるところのSequoia計算機にあ
っては、チェックポイント/リカバリのために特別なキ
ャッシュメモリを備える必要があり、プロセッサの急激
な技術改革に追従させることが難しいという問題があっ
た。また、USP4,740,969に開示される方式
では、通常のデータ処理に於いて取得するデータの量が
多くなること、およびチェックポイント処理時にキャッ
シュフラッシュを実行する手段を設ける必要があるとい
う問題があった。
ックポイント/リカバリ方式の計算機として代表され
る、従来技術によるところのSequoia計算機にあ
っては、チェックポイント/リカバリのために特別なキ
ャッシュメモリを備える必要があり、プロセッサの急激
な技術改革に追従させることが難しいという問題があっ
た。また、USP4,740,969に開示される方式
では、通常のデータ処理に於いて取得するデータの量が
多くなること、およびチェックポイント処理時にキャッ
シュフラッシュを実行する手段を設ける必要があるとい
う問題があった。
【0031】本発明は上記実情に鑑みなされたもので、
上記した各問題点を解消し、特別なキャッシュメモリを
必要とせずに、標準的なユニプロセッサあるいはマルチ
プロセッサを搭載する計算機でチェックポイント/リカ
バリ機能を容易に実現可能とするチェックポイント処理
加速装置、およびチェックポイント/リカバリ方式を提
供することにより、標準的な計算機における性能向上の
恩恵を享受することができ、また、USP4,740,
969に開示される方法と比較して、通常のデータ処理
において取得するデータの量がより少なく、チェックポ
イント処理時のキャッシュフラッシュ機能も容易に実現
することのできるチェックポイント処理方法、及びバス
スヌープ機構を有するコピーバック型のキャッシュメモ
リを備えた少なくとも一つ以上のプロセッサを具備して
なる計算機のチェックポイント処理機構に適用されるコ
ンピュータプログラムを記録した記録媒体を提供するこ
とを目的とする。
上記した各問題点を解消し、特別なキャッシュメモリを
必要とせずに、標準的なユニプロセッサあるいはマルチ
プロセッサを搭載する計算機でチェックポイント/リカ
バリ機能を容易に実現可能とするチェックポイント処理
加速装置、およびチェックポイント/リカバリ方式を提
供することにより、標準的な計算機における性能向上の
恩恵を享受することができ、また、USP4,740,
969に開示される方法と比較して、通常のデータ処理
において取得するデータの量がより少なく、チェックポ
イント処理時のキャッシュフラッシュ機能も容易に実現
することのできるチェックポイント処理方法、及びバス
スヌープ機構を有するコピーバック型のキャッシュメモ
リを備えた少なくとも一つ以上のプロセッサを具備して
なる計算機のチェックポイント処理機構に適用されるコ
ンピュータプログラムを記録した記録媒体を提供するこ
とを目的とする。
【0032】
【課題を解決するための手段】本発明は、上記目的を達
成するため、コピーバック型のキャッシュメモリを備え
た計算機システムに適用されるチェックポイント処理方
法でに於いて、システムバス上のバススヌープによりキ
ャッシュメモリ上でデータ更新が発生したことを示すコ
マンドおよび当該コマンドに対する応答を監視する第1
の処理手段と、前記第1の処理手段でシステムバス上の
アクセスに更新アドレスおよび更新前データが含まれる
ことを検知したとき、当該アドレスおよび更新前データ
を採取し所定の記憶手段に記憶する第2の処理手段と、
前記第1の処理手段でシステムバス上のアクセスに更新
の発生したアドレスを含むが更新前のデータを含まない
ことを検知したとき、その更新前のデータを読み出すた
めのコマンドを前記コマンドに含まれるアドレスを用い
前記システムバスに発行して前記アドレスおよび読み出
された更新前のデータを採取し前記記憶手段に記憶する
第3の処理手段と、前記記憶手段に記憶されたすべての
アドレスについて、そのアドレスで示される更新状態の
データをメインメモリに書き戻すことを要求するコマン
ドを前記システムバスに発行する第4の処理手段とを具
備してなることを特徴とする。
成するため、コピーバック型のキャッシュメモリを備え
た計算機システムに適用されるチェックポイント処理方
法でに於いて、システムバス上のバススヌープによりキ
ャッシュメモリ上でデータ更新が発生したことを示すコ
マンドおよび当該コマンドに対する応答を監視する第1
の処理手段と、前記第1の処理手段でシステムバス上の
アクセスに更新アドレスおよび更新前データが含まれる
ことを検知したとき、当該アドレスおよび更新前データ
を採取し所定の記憶手段に記憶する第2の処理手段と、
前記第1の処理手段でシステムバス上のアクセスに更新
の発生したアドレスを含むが更新前のデータを含まない
ことを検知したとき、その更新前のデータを読み出すた
めのコマンドを前記コマンドに含まれるアドレスを用い
前記システムバスに発行して前記アドレスおよび読み出
された更新前のデータを採取し前記記憶手段に記憶する
第3の処理手段と、前記記憶手段に記憶されたすべての
アドレスについて、そのアドレスで示される更新状態の
データをメインメモリに書き戻すことを要求するコマン
ドを前記システムバスに発行する第4の処理手段とを具
備してなることを特徴とする。
【0033】また、本発明は上記目的を達成するため、
コピーバック型のキャッシュメモリを備えた計算機シス
テムに適用されるチェックポイント処理方法に於いて、
システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理手段と、前記第1のビフォアイメージ処理手段
でシステムバス上のアクセスに更新アドレスおよび更新
前データが含まれることを検知したとき、当該アドレス
および更新前データを採取してビフォアイメージ記憶手
段に記憶し、更新の発生したアドレスを含むが更新前の
データを含まないことを検知したとき、その更新前のデ
ータを読み出すためのコマンドを前記コマンドに含まれ
るアドレスを用いて前記システムバスに発行し、前記ア
ドレスおよび読み出された更新前のデータを採取して前
記ビフォアイメージ記憶手段に記憶する第2のビフォア
イメージ処理手段と、前記ビフォアイメージ記憶手段に
記憶されたすべてのアドレスについて、そのアドレスで
示される更新状態のデータをメインメモリに書き戻すこ
とを要求するコマンドを前記システムバスに発行するキ
ャッシュフラッシュ実行処理手段とを具備してなること
を特徴とする。
コピーバック型のキャッシュメモリを備えた計算機シス
テムに適用されるチェックポイント処理方法に於いて、
システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理手段と、前記第1のビフォアイメージ処理手段
でシステムバス上のアクセスに更新アドレスおよび更新
前データが含まれることを検知したとき、当該アドレス
および更新前データを採取してビフォアイメージ記憶手
段に記憶し、更新の発生したアドレスを含むが更新前の
データを含まないことを検知したとき、その更新前のデ
ータを読み出すためのコマンドを前記コマンドに含まれ
るアドレスを用いて前記システムバスに発行し、前記ア
ドレスおよび読み出された更新前のデータを採取して前
記ビフォアイメージ記憶手段に記憶する第2のビフォア
イメージ処理手段と、前記ビフォアイメージ記憶手段に
記憶されたすべてのアドレスについて、そのアドレスで
示される更新状態のデータをメインメモリに書き戻すこ
とを要求するコマンドを前記システムバスに発行するキ
ャッシュフラッシュ実行処理手段とを具備してなること
を特徴とする。
【0034】また、本発明は上記目的を達成するため、
コピーバック型のキャッシュメモリを備えた計算機シス
テムに適用されるチェックポイント処理方法に於いて、
システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理手段と、前記第1のビフォアイメージ処理手段
でシステムバス上のアクセスに更新アドレスおよび更新
前データが含まれることを検知したとき、当該アドレス
および更新前データを採取してビフォアイメージ記憶手
段に記憶し、更新の発生したアドレスを含むが更新前の
データを含まないことを検知したとき、その更新前のデ
ータを読み出すためのコマンドを前記コマンドに含まれ
るアドレスを用い前記システムバスに発行して前記アド
レスおよび読み出された更新前のデータを採取して前記
ビフォアイメージ記憶手段に記憶する第2のビフォアイ
メージ処理手段と、前記ビフォアイメージ記憶手段に記
憶されたすべてのアドレスについて、そのアドレスで示
される更新状態のデータをメインメモリに書き戻すこと
を要求するコマンドを前記システムバスに発行するキャ
ッシュフラッシュ実行処理手段と、前記ビフォアイメー
ジ記憶手段に記憶されたすべての更新前データについ
て、新しく格納したものから順にメインメモリへ更新書
き込みを行なうことを要求するコマンドを前記システム
バスに発行するメインメモリ状態復元処理手段とを具備
してなることを特徴とする。
コピーバック型のキャッシュメモリを備えた計算機シス
テムに適用されるチェックポイント処理方法に於いて、
システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理手段と、前記第1のビフォアイメージ処理手段
でシステムバス上のアクセスに更新アドレスおよび更新
前データが含まれることを検知したとき、当該アドレス
および更新前データを採取してビフォアイメージ記憶手
段に記憶し、更新の発生したアドレスを含むが更新前の
データを含まないことを検知したとき、その更新前のデ
ータを読み出すためのコマンドを前記コマンドに含まれ
るアドレスを用い前記システムバスに発行して前記アド
レスおよび読み出された更新前のデータを採取して前記
ビフォアイメージ記憶手段に記憶する第2のビフォアイ
メージ処理手段と、前記ビフォアイメージ記憶手段に記
憶されたすべてのアドレスについて、そのアドレスで示
される更新状態のデータをメインメモリに書き戻すこと
を要求するコマンドを前記システムバスに発行するキャ
ッシュフラッシュ実行処理手段と、前記ビフォアイメー
ジ記憶手段に記憶されたすべての更新前データについ
て、新しく格納したものから順にメインメモリへ更新書
き込みを行なうことを要求するコマンドを前記システム
バスに発行するメインメモリ状態復元処理手段とを具備
してなることを特徴とする。
【0035】また、本発明は上記目的を達成するため、
バススヌープ機構を有するコピーバック型のキャッシュ
メモリを備えた少なくとも一つ以上のプロセッサと、メ
インメモリと、前記プロセッサと前記メインメモリとを
接続するシステムバスとを具備してなる計算機に適用さ
れるチェックポイント処理方法に於いて、前記キャッシ
ュメモリ上でデータ更新が発生したことを示すコマンド
およびそれに対する応答を前記システムバスの監視によ
って検知するステップと、それらが更新アドレスおよび
更新前データを含む場合に、そのアドレスおよび更新前
データを記憶するステップと、更新の発生したアドレス
を含むが更新前のデータを含まない場合に、その更新前
のデータを読み出すためのコマンドを前記コマンドに含
まれるアドレスを用いて前記システムバスに発行して前
記アドレスおよび読み出された更新前のデータを記憶す
るステップと、前記プロセッサから指示されたときに、
前記記憶されたすべてのアドレスについて、そのアドレ
スで示される更新状態のデータをメインメモリに書き戻
すことを要求するコマンドを前記システムバスに発行す
るステップと、前記プロセッサから指示されたときに、
前記記憶されたすべての更新前データについて、新しく
格納したものから順にメインメモリへの更新書き込みを
要求するコマンドを前記システムバスに発行するステッ
プとを具備してなることを特徴とする。
バススヌープ機構を有するコピーバック型のキャッシュ
メモリを備えた少なくとも一つ以上のプロセッサと、メ
インメモリと、前記プロセッサと前記メインメモリとを
接続するシステムバスとを具備してなる計算機に適用さ
れるチェックポイント処理方法に於いて、前記キャッシ
ュメモリ上でデータ更新が発生したことを示すコマンド
およびそれに対する応答を前記システムバスの監視によ
って検知するステップと、それらが更新アドレスおよび
更新前データを含む場合に、そのアドレスおよび更新前
データを記憶するステップと、更新の発生したアドレス
を含むが更新前のデータを含まない場合に、その更新前
のデータを読み出すためのコマンドを前記コマンドに含
まれるアドレスを用いて前記システムバスに発行して前
記アドレスおよび読み出された更新前のデータを記憶す
るステップと、前記プロセッサから指示されたときに、
前記記憶されたすべてのアドレスについて、そのアドレ
スで示される更新状態のデータをメインメモリに書き戻
すことを要求するコマンドを前記システムバスに発行す
るステップと、前記プロセッサから指示されたときに、
前記記憶されたすべての更新前データについて、新しく
格納したものから順にメインメモリへの更新書き込みを
要求するコマンドを前記システムバスに発行するステッ
プとを具備してなることを特徴とする。
【0036】また、本発明は上記チェックポイント処理
方法に於いて、前記計算機に、前記メインメモリを前記
キャッシュメモリ内に確保されるキャッシュブロックの
大きさで分割し、この分割によって定義される複数の区
画の中の少なくとも一つ以上の区画それぞれに対応させ
て、オンとオフとの二つの状態が割り当てられるフラグ
メモリを設け、前記更新アドレスおよび更新前データを
取得した際、その更新アドレスに対するフラグメモリが
設けられ、かつオフのときに、前記フラグメモリをオン
に設定するとともに前記更新アドレスおよび更新前デー
タを記憶するステップと、前記更新アドレスおよび更新
前データを取得した際、その更新アドレスに対するフラ
グメモリが設けられていないときに、前記更新アドレス
および更新前データを記憶するステップと、前記記憶し
た更新アドレスおよび更新前データを取り出して更新状
態にあるキャッシュブロックの内容の前記メインメモリ
への書き戻しを要求するコマンドを発行する際、そのア
ドレスに対応するフラグメモリが設けられているとき
に、そのフラグメモリをオフに設定するステップとを具
備してなることを特徴とする。
方法に於いて、前記計算機に、前記メインメモリを前記
キャッシュメモリ内に確保されるキャッシュブロックの
大きさで分割し、この分割によって定義される複数の区
画の中の少なくとも一つ以上の区画それぞれに対応させ
て、オンとオフとの二つの状態が割り当てられるフラグ
メモリを設け、前記更新アドレスおよび更新前データを
取得した際、その更新アドレスに対するフラグメモリが
設けられ、かつオフのときに、前記フラグメモリをオン
に設定するとともに前記更新アドレスおよび更新前デー
タを記憶するステップと、前記更新アドレスおよび更新
前データを取得した際、その更新アドレスに対するフラ
グメモリが設けられていないときに、前記更新アドレス
および更新前データを記憶するステップと、前記記憶し
た更新アドレスおよび更新前データを取り出して更新状
態にあるキャッシュブロックの内容の前記メインメモリ
への書き戻しを要求するコマンドを発行する際、そのア
ドレスに対応するフラグメモリが設けられているとき
に、そのフラグメモリをオフに設定するステップとを具
備してなることを特徴とする。
【0037】さらに、本発明は上記チェックポイント処
理方法に於いて、前記計算機に、互いに共通部分をもた
ないように設定される一つ以上のアドレス範囲それぞれ
に対応して設けられ、前記アドレス範囲に属する更新状
態のキャッシュブロック数を保持するブロックカウンタ
を設け、前記システムバス上のコマントおよびその応答
を監視して、前記キャッシュブロックが更新状態に移行
することを検知した際、そのアドレスに対応した前記ブ
ロックカウンタが存在するときに、そのブロックカウン
タをインクリメントし、前記キャッシュブロックが更新
状態からそれ以外の状態に移行すること検知した際、そ
のアドレスに対応した前記ブロックカウンタがあるとき
に、そのブロックカウンタをデクリメントするステップ
と、前記記憶されたすべての更新アドレスについて、そ
の更新アドレスに対応する前記ブロックカウンタがない
か、またはその値が初期値でないときに、そのアドレス
の更新状態のキャッシュブロックの内容をメインメモリ
に書き戻すことを要求するコマンドを前記システムバス
に発行するステップとを具備してなることを特徴とす
る。
理方法に於いて、前記計算機に、互いに共通部分をもた
ないように設定される一つ以上のアドレス範囲それぞれ
に対応して設けられ、前記アドレス範囲に属する更新状
態のキャッシュブロック数を保持するブロックカウンタ
を設け、前記システムバス上のコマントおよびその応答
を監視して、前記キャッシュブロックが更新状態に移行
することを検知した際、そのアドレスに対応した前記ブ
ロックカウンタが存在するときに、そのブロックカウン
タをインクリメントし、前記キャッシュブロックが更新
状態からそれ以外の状態に移行すること検知した際、そ
のアドレスに対応した前記ブロックカウンタがあるとき
に、そのブロックカウンタをデクリメントするステップ
と、前記記憶されたすべての更新アドレスについて、そ
の更新アドレスに対応する前記ブロックカウンタがない
か、またはその値が初期値でないときに、そのアドレス
の更新状態のキャッシュブロックの内容をメインメモリ
に書き戻すことを要求するコマンドを前記システムバス
に発行するステップとを具備してなることを特徴とす
る。
【0038】さらに、本発明は上記チェックポイント処
理方法に於いて、前記キャッシュメモリは、ダイレクト
マップで構成され、前記ブロックカウンタは、キャッシ
ュブロックと一対に設けられることを特徴とする。
理方法に於いて、前記キャッシュメモリは、ダイレクト
マップで構成され、前記ブロックカウンタは、キャッシ
ュブロックと一対に設けられることを特徴とする。
【0039】さらに、本発明は上記チェックポイント処
理方法に於いて、前記キャッシュメモリは、nウェイの
セットアソシアティブで構成され、前記ブロックカウン
タは、n個のキャッシュブロックで形成されるグループ
と一対に設けられることを特徴とする。
理方法に於いて、前記キャッシュメモリは、nウェイの
セットアソシアティブで構成され、前記ブロックカウン
タは、n個のキャッシュブロックで形成されるグループ
と一対に設けられることを特徴とする。
【0040】さらに、本発明は上記チェックポイント処
理方法に於いて、前記計算機は、前記メインメモリを前
記キャッシュメモリ内に確保されるキャッシュブロック
の大きさで分割し、この分割によって定義される複数の
区画の中の少なくとも一つ以上の区画それぞれに対応さ
せて、オンとオフとの二つの状態が割り当てられるフラ
グメモリを設けてなり、前記システムバス上のコマント
およびその応答を監視して、前記キャッシュブロックが
更新状態に移行することを検知した際、そのアドレスに
対応した前記フラグメモリが設けられているときに、そ
のフラグメモリをオンに設定し、前記キャッシュブロッ
クが更新状態からそれ以外の状態に移行すること検知し
た際、そのアドレスに対応した前記フラグメモリが設け
られているときに、そのフラグメモリをオフに設定する
ステップと、前記記憶されたすべての更新アドレスにつ
いて、その更新アドレスに対応する前記フラグメモリが
設けられていないか、またはその状態がオンのときに、
そのアドレスの更新状態のキャッシュブロックの内容を
メインメモリに書き戻すことを要求するコマンドを前記
システムバスに発行するステップを具備してなることを
特徴とする。
理方法に於いて、前記計算機は、前記メインメモリを前
記キャッシュメモリ内に確保されるキャッシュブロック
の大きさで分割し、この分割によって定義される複数の
区画の中の少なくとも一つ以上の区画それぞれに対応さ
せて、オンとオフとの二つの状態が割り当てられるフラ
グメモリを設けてなり、前記システムバス上のコマント
およびその応答を監視して、前記キャッシュブロックが
更新状態に移行することを検知した際、そのアドレスに
対応した前記フラグメモリが設けられているときに、そ
のフラグメモリをオンに設定し、前記キャッシュブロッ
クが更新状態からそれ以外の状態に移行すること検知し
た際、そのアドレスに対応した前記フラグメモリが設け
られているときに、そのフラグメモリをオフに設定する
ステップと、前記記憶されたすべての更新アドレスにつ
いて、その更新アドレスに対応する前記フラグメモリが
設けられていないか、またはその状態がオンのときに、
そのアドレスの更新状態のキャッシュブロックの内容を
メインメモリに書き戻すことを要求するコマンドを前記
システムバスに発行するステップを具備してなることを
特徴とする。
【0041】さらに、本発明は上記チェックポイント処
理方法に於いて、前記キャッシュメモリ上でデータ更新
が発生したことを示すコマンドまたはそれに対する応答
を検知したときに、その更新アドレスおよび更新前デー
タを記憶するか否かその更新アドレスにより判断するス
テップを具備してなることを特徴とする。
理方法に於いて、前記キャッシュメモリ上でデータ更新
が発生したことを示すコマンドまたはそれに対する応答
を検知したときに、その更新アドレスおよび更新前デー
タを記憶するか否かその更新アドレスにより判断するス
テップを具備してなることを特徴とする。
【0042】さらに、本発明は上記チェックポイント処
理方法に於いて、前記記憶された前記更新アドレスおよ
び更新前データそれぞれについて、前記メインメモリに
書き戻すか否かその更新アドレスにより判断するステッ
プを具備してなることを特徴とする。
理方法に於いて、前記記憶された前記更新アドレスおよ
び更新前データそれぞれについて、前記メインメモリに
書き戻すか否かその更新アドレスにより判断するステッ
プを具備してなることを特徴とする。
【0043】さらに、本発明は上記チェックポイント処
理方法に於いて、前記キャッシュメモリ上でのデータ更
新が行なわれた際、その更新対象のデータが他のキャッ
シュメモリ上で更新されて保持されているデータである
ときに、前記更新アドレスおよび更新前データの記憶を
回避するステップを具備してなることを特徴とする。
理方法に於いて、前記キャッシュメモリ上でのデータ更
新が行なわれた際、その更新対象のデータが他のキャッ
シュメモリ上で更新されて保持されているデータである
ときに、前記更新アドレスおよび更新前データの記憶を
回避するステップを具備してなることを特徴とする。
【0044】さらに、本発明は上記チェックポイント処
理方法に於いて、前記キャッシュブロックに割り当てら
れる複数の管理状態の中に、そのキャッシュブロックが
保持しているデータは他のプロセッサのキャッシュメモ
リには保持されておらず、かつメインメモリ上と同じデ
ータであるといったクリーンエクスクルーシブ状態を含
むときに、いずれかのキャッシュメモリの発行したメイ
ンメモリデータの読み込み要求コマンドに対し、そのデ
ータを保持していると応答するステップを具備し、前記
キャッシュブロックがクリーンエクスクルーシブ状態と
なるのを防ぐことを特徴とする。
理方法に於いて、前記キャッシュブロックに割り当てら
れる複数の管理状態の中に、そのキャッシュブロックが
保持しているデータは他のプロセッサのキャッシュメモ
リには保持されておらず、かつメインメモリ上と同じデ
ータであるといったクリーンエクスクルーシブ状態を含
むときに、いずれかのキャッシュメモリの発行したメイ
ンメモリデータの読み込み要求コマンドに対し、そのデ
ータを保持していると応答するステップを具備し、前記
キャッシュブロックがクリーンエクスクルーシブ状態と
なるのを防ぐことを特徴とする。
【0045】さらに、本発明は上記チェックポイント処
理方法に於いて、前記キャッシュメモリの機構を介さず
に前記メインメモリの内容を更新するコマンドを検知し
たときに、そのコマンドの実行を中止させ、前記コマン
ドに含まれる更新アドレスを用いて前記メインメモリか
ら更新前のデータを読み出すためのコマンドを前記シス
テムバスに発行し、前記アドレスと読み出された更新前
のデータとを記憶するステップと、前記実行を中止させ
たコマンドが再度発行されたときに、そのコマンドの実
行の中止を行なわないように制御するステップとを具備
してなることを特徴とする。
理方法に於いて、前記キャッシュメモリの機構を介さず
に前記メインメモリの内容を更新するコマンドを検知し
たときに、そのコマンドの実行を中止させ、前記コマン
ドに含まれる更新アドレスを用いて前記メインメモリか
ら更新前のデータを読み出すためのコマンドを前記シス
テムバスに発行し、前記アドレスと読み出された更新前
のデータとを記憶するステップと、前記実行を中止させ
たコマンドが再度発行されたときに、そのコマンドの実
行の中止を行なわないように制御するステップとを具備
してなることを特徴とする。
【0046】さらに、本発明は上記チェックポイント処
理方法に於いて、前記プロセッサから指示されたアドレ
ス範囲について、前記メインメモリから更新前のデータ
を読み出すためのコマンドを前記システムバスに発行
し、前記アドレスとその読み出された更新前のデータを
組として記憶するステップを具備してなることを特徴と
する。
理方法に於いて、前記プロセッサから指示されたアドレ
ス範囲について、前記メインメモリから更新前のデータ
を読み出すためのコマンドを前記システムバスに発行
し、前記アドレスとその読み出された更新前のデータを
組として記憶するステップを具備してなることを特徴と
する。
【0047】さらに、本発明は上記チェックポイント処
理方法に於いて、前記更新アドレスおよび更新前データ
を記憶するステップと、前記更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するステップとは並行して実行可能である
ことを特徴とする。
理方法に於いて、前記更新アドレスおよび更新前データ
を記憶するステップと、前記更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するステップとは並行して実行可能である
ことを特徴とする。
【0048】さらに、本発明は上記チェックポイント処
理方法に於いて、前記更新状態のデータをメインメモリ
に書き戻すことを要求するコマンドを前記システムバス
に発行するステップは、最も早い時点で取得された更新
アドレスおよび更新前データから順に処理することを特
徴とする。
理方法に於いて、前記更新状態のデータをメインメモリ
に書き戻すことを要求するコマンドを前記システムバス
に発行するステップは、最も早い時点で取得された更新
アドレスおよび更新前データから順に処理することを特
徴とする。
【0049】さらに、本発明は上記チェックポイント処
理方法に於いて、前記更新アドレスおよび更新前データ
を記憶する領域の残容量が予め定められた量を下回った
ことを前記プロセッサに通知するステップを具備してな
ることを特徴とする。
理方法に於いて、前記更新アドレスおよび更新前データ
を記憶する領域の残容量が予め定められた量を下回った
ことを前記プロセッサに通知するステップを具備してな
ることを特徴とする。
【0050】さらに、本発明は上記チェックポイント処
理方法に於いて、前記更新アドレスおよび更新前データ
を記憶するステップが実行中であるときに、前記更新状
態のデータをメインメモリに書き戻すことを要求するコ
マンドを前記システムバスに発行するステップにより発
行される、前記更新状態のキャッシュブロックの内容を
前記メインメモリへ書き戻すことを要求するコマンドの
発行頻度を予め定められた値以内に抑制するステップ
と、前記更新アドレスおよび更新前データを記憶するス
テップが停止したときに、前記更新状態のデータをメイ
ンメモリに書き戻すことを要求するコマンドを前記シス
テムバスに発行するステップにより発行される前記更新
状態のキャッシュブロックの内容を前記メインメモリへ
書き戻すことを要求するコマンドの発行頻度を高くする
ステップとを具備してなることを特徴とする。
理方法に於いて、前記更新アドレスおよび更新前データ
を記憶するステップが実行中であるときに、前記更新状
態のデータをメインメモリに書き戻すことを要求するコ
マンドを前記システムバスに発行するステップにより発
行される、前記更新状態のキャッシュブロックの内容を
前記メインメモリへ書き戻すことを要求するコマンドの
発行頻度を予め定められた値以内に抑制するステップ
と、前記更新アドレスおよび更新前データを記憶するス
テップが停止したときに、前記更新状態のデータをメイ
ンメモリに書き戻すことを要求するコマンドを前記シス
テムバスに発行するステップにより発行される前記更新
状態のキャッシュブロックの内容を前記メインメモリへ
書き戻すことを要求するコマンドの発行頻度を高くする
ステップとを具備してなることを特徴とする。
【0051】また、本発明は、コピーバック型のキャッ
シュメモリを備えた計算機システムのチェックポイント
処理機構に適用されるコンピュータプログラムを記録し
た記録媒体であって、システムバス上のバススヌープに
よりキャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を監視す
る機能と、前記監視機能でシステムバス上のアクセスに
更新アドレスおよび更新前データが含まれることを検知
したとき、当該アドレスおよび更新前データを採取し所
定の記憶手段に記憶する機能と、前記監視機能でシステ
ムバス上のアクセスに更新の発生したアドレスを含むが
更新前のデータを含まないことを検知したとき、その更
新前のデータを読み出すためのコマンドを前記コマンド
に含まれるアドレスを用い前記システムバスに発行して
前記アドレスおよび読み出された更新前のデータを採取
し前記記憶手段に記憶する機能と、前記記憶手段に記憶
されたすべてのアドレスについて、そのアドレスで示さ
れる更新状態のデータをメインメモリに書き戻すことを
要求するコマンドを前記システムバスに発行する機能と
を実現させるためのプログラムを記録したことを特徴と
する。
シュメモリを備えた計算機システムのチェックポイント
処理機構に適用されるコンピュータプログラムを記録し
た記録媒体であって、システムバス上のバススヌープに
よりキャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を監視す
る機能と、前記監視機能でシステムバス上のアクセスに
更新アドレスおよび更新前データが含まれることを検知
したとき、当該アドレスおよび更新前データを採取し所
定の記憶手段に記憶する機能と、前記監視機能でシステ
ムバス上のアクセスに更新の発生したアドレスを含むが
更新前のデータを含まないことを検知したとき、その更
新前のデータを読み出すためのコマンドを前記コマンド
に含まれるアドレスを用い前記システムバスに発行して
前記アドレスおよび読み出された更新前のデータを採取
し前記記憶手段に記憶する機能と、前記記憶手段に記憶
されたすべてのアドレスについて、そのアドレスで示さ
れる更新状態のデータをメインメモリに書き戻すことを
要求するコマンドを前記システムバスに発行する機能と
を実現させるためのプログラムを記録したことを特徴と
する。
【0052】また、本発明は、コピーバック型のキャッ
シュメモリを備えた計算機システムのチェックポイント
処理機構に適用されるコンピュータプログラムを記録し
た記録媒体であって、システムバス上のバススヌープに
よりキャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を監視す
る第1のビフォアイメージ処理機能と、前記第1のビフ
ォアイメージ処理機能でシステムバス上のアクセスに更
新アドレスおよび更新前データが含まれることを検知し
たとき、当該アドレスおよび更新前データを採取してビ
フォアイメージ記憶手段に記憶し、更新の発生したアド
レスを含むが更新前のデータを含まないことを検知した
とき、その更新前のデータを読み出すためのコマンドを
前記コマンドに含まれるアドレスを用い前記システムバ
スに発行して前記アドレスおよび読み出された更新前の
データを採取して前記ビフォアイメージ記憶手段に記憶
する第2のビフォアイメージ処理機能と、前記ビフォア
イメージ記憶手段に記憶されたすべてのアドレスについ
て、そのアドレスで示される更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するキャッシュフラッシュ実行処理機能と
を実現させるためのプログラムを記録したことを特徴と
する。
シュメモリを備えた計算機システムのチェックポイント
処理機構に適用されるコンピュータプログラムを記録し
た記録媒体であって、システムバス上のバススヌープに
よりキャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を監視す
る第1のビフォアイメージ処理機能と、前記第1のビフ
ォアイメージ処理機能でシステムバス上のアクセスに更
新アドレスおよび更新前データが含まれることを検知し
たとき、当該アドレスおよび更新前データを採取してビ
フォアイメージ記憶手段に記憶し、更新の発生したアド
レスを含むが更新前のデータを含まないことを検知した
とき、その更新前のデータを読み出すためのコマンドを
前記コマンドに含まれるアドレスを用い前記システムバ
スに発行して前記アドレスおよび読み出された更新前の
データを採取して前記ビフォアイメージ記憶手段に記憶
する第2のビフォアイメージ処理機能と、前記ビフォア
イメージ記憶手段に記憶されたすべてのアドレスについ
て、そのアドレスで示される更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するキャッシュフラッシュ実行処理機能と
を実現させるためのプログラムを記録したことを特徴と
する。
【0053】また、本発明は、コピーバック型のキャッ
シュメモリを備えた計算機システムのチェックポイント
処理機構に適用されるコンピュータプログラムを記録し
た記録媒体であって、システムバス上のバススヌープに
よりキャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を監視す
る第1のビフォアイメージ処理機能と、前記第1のビフ
ォアイメージ処理機能でシステムバス上のアクセスに更
新アドレスおよび更新前データが含まれることを検知し
たとき、当該アドレスおよび更新前データを採取してビ
フォアイメージ記憶手段に記憶し、更新の発生したアド
レスを含むが更新前のデータを含まないことを検知した
とき、その更新前のデータを読み出すためのコマンドを
前記コマンドに含まれるアドレスを用い前記システムバ
スに発行して前記アドレスおよび読み出された更新前の
データを採取して前記ビフォアイメージ記憶手段に記憶
する第2のビフォアイメージ処理機能と、前記ビフォア
イメージ記憶手段に記憶されたすべてのアドレスについ
て、そのアドレスで示される更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するキャッシュフラッシュ実行処理機能
と、前記ビフォアイメージ記憶手段に記憶されたすべて
の更新前データについて、新しく格納したものから順に
メインメモリへ更新書き込みを行なうことを要求するコ
マンドを前記システムバスに発行するメインメモリ状態
復元処理機能とを実現させるためのプログラムを記録し
たことを特徴とする。
シュメモリを備えた計算機システムのチェックポイント
処理機構に適用されるコンピュータプログラムを記録し
た記録媒体であって、システムバス上のバススヌープに
よりキャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を監視す
る第1のビフォアイメージ処理機能と、前記第1のビフ
ォアイメージ処理機能でシステムバス上のアクセスに更
新アドレスおよび更新前データが含まれることを検知し
たとき、当該アドレスおよび更新前データを採取してビ
フォアイメージ記憶手段に記憶し、更新の発生したアド
レスを含むが更新前のデータを含まないことを検知した
とき、その更新前のデータを読み出すためのコマンドを
前記コマンドに含まれるアドレスを用い前記システムバ
スに発行して前記アドレスおよび読み出された更新前の
データを採取して前記ビフォアイメージ記憶手段に記憶
する第2のビフォアイメージ処理機能と、前記ビフォア
イメージ記憶手段に記憶されたすべてのアドレスについ
て、そのアドレスで示される更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するキャッシュフラッシュ実行処理機能
と、前記ビフォアイメージ記憶手段に記憶されたすべて
の更新前データについて、新しく格納したものから順に
メインメモリへ更新書き込みを行なうことを要求するコ
マンドを前記システムバスに発行するメインメモリ状態
復元処理機能とを実現させるためのプログラムを記録し
たことを特徴とする。
【0054】また、本発明は、バススヌープ機構を有す
るコピーバック型のキャッシュメモリを備えた少なくと
も一つ以上のプロセッサと、メインメモリと、前記プロ
セッサと前記メインメモリとを接続するシステムバスと
を具備してなる計算機のチェックポイント処理機構に適
用されるコンピュータプログラムを記録した記録媒体で
あって、前記キャッシュメモリ上でデータ更新が発生し
たことを示すコマンドおよび当該コマンドに対する応答
を前記システムバス上の監視により検知する機能と、前
記システムバス上の検知内容が更新アドレスおよび更新
前データを含む場合に、当該アドレスおよび更新前デー
タを記憶する機能と、更新の発生したアドレスを含むが
更新前のデータを含まない場合に、その更新前のデータ
を読み出すためのコマンドを前記コマンドに含まれるア
ドレスを用いて前記システムバスに発行して前記アドレ
スおよび読み出された更新前のデータを記憶する機能
と、前記プロセッサから指示に従い前記記憶されたすべ
てのアドレスについて、そのアドレスで示される更新状
態のデータをメインメモリに書き戻すことを要求するコ
マンドを前記システムバスに発行する機能とを実現させ
るためのプログラムを記録したことを特徴とする。
るコピーバック型のキャッシュメモリを備えた少なくと
も一つ以上のプロセッサと、メインメモリと、前記プロ
セッサと前記メインメモリとを接続するシステムバスと
を具備してなる計算機のチェックポイント処理機構に適
用されるコンピュータプログラムを記録した記録媒体で
あって、前記キャッシュメモリ上でデータ更新が発生し
たことを示すコマンドおよび当該コマンドに対する応答
を前記システムバス上の監視により検知する機能と、前
記システムバス上の検知内容が更新アドレスおよび更新
前データを含む場合に、当該アドレスおよび更新前デー
タを記憶する機能と、更新の発生したアドレスを含むが
更新前のデータを含まない場合に、その更新前のデータ
を読み出すためのコマンドを前記コマンドに含まれるア
ドレスを用いて前記システムバスに発行して前記アドレ
スおよび読み出された更新前のデータを記憶する機能
と、前記プロセッサから指示に従い前記記憶されたすべ
てのアドレスについて、そのアドレスで示される更新状
態のデータをメインメモリに書き戻すことを要求するコ
マンドを前記システムバスに発行する機能とを実現させ
るためのプログラムを記録したことを特徴とする。
【0055】また、本発明は、バススヌープ機構を有す
るコピーバック型のキャッシュメモリを備えた少なくと
も一つ以上のプロセッサと、メインメモリと、前記プロ
セッサと前記メインメモリとを接続するシステムバスと
を具備してなる計算機のチェックポイント処理機構に適
用されるコンピュータプログラムを記録した記録媒体で
あって、前記キャッシュメモリ上でデータ更新が発生し
たことを示すコマンドおよび当該コマンドに対する応答
を前記システムバス上の監視により検知する機能と、前
記システムバス上の検知内容が更新アドレスおよび更新
前データを含む場合に、当該アドレスおよび更新前デー
タを記憶する機能と、更新の発生したアドレスを含むが
更新前のデータを含まない場合に、その更新前のデータ
を読み出すためのコマンドを前記コマンドに含まれるア
ドレスを用いて前記システムバスに発行して前記アドレ
スおよび読み出された更新前のデータを記憶する機能
と、前記プロセッサから指示に従い前記記憶されたすべ
てのアドレスについて、そのアドレスで示される更新状
態のデータをメインメモリに書き戻すことを要求するコ
マンドを前記システムバスに発行する機能と、前記プロ
セッサから指示に従い、前記記憶されたすべての更新前
データについて、新しく格納したものから順にメインメ
モリへの更新書き込みを要求するコマンドを前記システ
ムバスに発行する機能とを実現させるためのプログラム
を記録したことを特徴とする。
るコピーバック型のキャッシュメモリを備えた少なくと
も一つ以上のプロセッサと、メインメモリと、前記プロ
セッサと前記メインメモリとを接続するシステムバスと
を具備してなる計算機のチェックポイント処理機構に適
用されるコンピュータプログラムを記録した記録媒体で
あって、前記キャッシュメモリ上でデータ更新が発生し
たことを示すコマンドおよび当該コマンドに対する応答
を前記システムバス上の監視により検知する機能と、前
記システムバス上の検知内容が更新アドレスおよび更新
前データを含む場合に、当該アドレスおよび更新前デー
タを記憶する機能と、更新の発生したアドレスを含むが
更新前のデータを含まない場合に、その更新前のデータ
を読み出すためのコマンドを前記コマンドに含まれるア
ドレスを用いて前記システムバスに発行して前記アドレ
スおよび読み出された更新前のデータを記憶する機能
と、前記プロセッサから指示に従い前記記憶されたすべ
てのアドレスについて、そのアドレスで示される更新状
態のデータをメインメモリに書き戻すことを要求するコ
マンドを前記システムバスに発行する機能と、前記プロ
セッサから指示に従い、前記記憶されたすべての更新前
データについて、新しく格納したものから順にメインメ
モリへの更新書き込みを要求するコマンドを前記システ
ムバスに発行する機能とを実現させるためのプログラム
を記録したことを特徴とする。
【0056】また、本発明は、上記記録媒体に於いて、
前記計算機に、前記メインメモリを前記キャッシュメモ
リ内に確保されるキャッシュブロックの大きさで分割
し、この分割によって定義される複数の区画の中の少な
くとも一つ以上の区画それぞれに対応させて、オンとオ
フとの二つの状態が割り当てられるフラグメモリを有し
て、前記更新アドレスおよび更新前データを取得した
際、その更新アドレスに対するフラグメモリが設けら
れ、かつオフのときに、前記フラグメモリをオンに設定
するとともに前記更新アドレスおよび更新前データを記
憶する機能と、前記更新アドレスおよび更新前データを
取得した際、その更新アドレスに対するフラグメモリが
設けられていないときに、前記更新アドレスおよび更新
前データを記憶する機能と、前記記憶した更新アドレス
および更新前データを取り出して更新状態にあるキャッ
シュブロックの内容の前記メインメモリへの書き戻しを
要求するコマンドを発行する際、そのアドレスに対応す
るフラグメモリが設けられているときに、そのフラグメ
モリをオフに設定する機能とを実現させるためのプログ
ラムを記録したことを特徴とする。
前記計算機に、前記メインメモリを前記キャッシュメモ
リ内に確保されるキャッシュブロックの大きさで分割
し、この分割によって定義される複数の区画の中の少な
くとも一つ以上の区画それぞれに対応させて、オンとオ
フとの二つの状態が割り当てられるフラグメモリを有し
て、前記更新アドレスおよび更新前データを取得した
際、その更新アドレスに対するフラグメモリが設けら
れ、かつオフのときに、前記フラグメモリをオンに設定
するとともに前記更新アドレスおよび更新前データを記
憶する機能と、前記更新アドレスおよび更新前データを
取得した際、その更新アドレスに対するフラグメモリが
設けられていないときに、前記更新アドレスおよび更新
前データを記憶する機能と、前記記憶した更新アドレス
および更新前データを取り出して更新状態にあるキャッ
シュブロックの内容の前記メインメモリへの書き戻しを
要求するコマンドを発行する際、そのアドレスに対応す
るフラグメモリが設けられているときに、そのフラグメ
モリをオフに設定する機能とを実現させるためのプログ
ラムを記録したことを特徴とする。
【0057】また、本発明は、上記記録媒体に於いて、
前記計算機に、互いに共通部分をもたないように設定さ
れる一つ以上のアドレス範囲それぞれに対応して設けら
れ、前記アドレス範囲に属する更新状態のキャッシュブ
ロック数を保持するブロックカウンタを有して、前記シ
ステムバス上のコマントおよびその応答を監視し、前記
キャッシュブロックが更新状態に移行することを検知し
た際、そのアドレスに対応した前記ブロックカウンタが
存在するときに、そのブロックカウンタをインクリメン
トし、前記キャッシュブロックが更新状態からそれ以外
の状態に移行すること検知した際、そのアドレスに対応
した前記ブロックカウンタがあるときに、そのブロック
カウンタをデクリメントする機能と、前記記憶されたす
べての更新アドレスについて、その更新アドレスに対応
する前記ブロックカウンタがないか、またはその値が初
期値でないときに、そのアドレスの更新状態のキャッシ
ュブロックの内容をメインメモリに書き戻すことを要求
するコマンドを前記システムバスに発行する機能とを実
現させるためのプログラムを記録したことを特徴とす
る。
前記計算機に、互いに共通部分をもたないように設定さ
れる一つ以上のアドレス範囲それぞれに対応して設けら
れ、前記アドレス範囲に属する更新状態のキャッシュブ
ロック数を保持するブロックカウンタを有して、前記シ
ステムバス上のコマントおよびその応答を監視し、前記
キャッシュブロックが更新状態に移行することを検知し
た際、そのアドレスに対応した前記ブロックカウンタが
存在するときに、そのブロックカウンタをインクリメン
トし、前記キャッシュブロックが更新状態からそれ以外
の状態に移行すること検知した際、そのアドレスに対応
した前記ブロックカウンタがあるときに、そのブロック
カウンタをデクリメントする機能と、前記記憶されたす
べての更新アドレスについて、その更新アドレスに対応
する前記ブロックカウンタがないか、またはその値が初
期値でないときに、そのアドレスの更新状態のキャッシ
ュブロックの内容をメインメモリに書き戻すことを要求
するコマンドを前記システムバスに発行する機能とを実
現させるためのプログラムを記録したことを特徴とす
る。
【0058】
【発明の実施の形態】本発明によるチェックポイント処
理方法及び記録媒体の概要は、次の通りである。
理方法及び記録媒体の概要は、次の通りである。
【0059】本発明によるチェックポイント処理方法
は、コピーバック型のキャッシュメモリを備えた計算機
システムに於いて、システムバス上に、ビフォアイメー
ジ処理手段と、ビフォアイメージ記憶手段と、キャッシ
ュフラッシュ実行処理手段とメインメモリ状態復元処理
手段とをもつチェックポイント処理加速装置を設け、第
1のビフォアイメージ処理手段により、システムバス上
のバススヌープによりキャッシュメモリ上でデータ更新
が発生したことを示すコマンドおよび当該コマンドに対
する応答を監視する。そして第2のビフォアイメージ処
理手段により、第1のビフォアイメージ処理手段でシス
テムバス上のアクセスに更新アドレスおよび更新前デー
タが含まれることを検知したとき、当該アドレスおよび
更新前データを採取してビフォアイメージ記憶手段に記
憶し、更新の発生したアドレスを含むが更新前のデータ
を含まないことを検知したとき、その更新前のデータを
読み出すためのコマンドを前記コマンドに含まれるアド
レスを用いてシステムバスに発行し、アドレスおよび読
み出された更新前のデータを採取してビフォアイメージ
記憶手段に記憶する。また、システムバスより受けた指
示コマンドに従い、キャッシュフラッシュ実行処理手段
により、前記ビフォアイメージ記憶手段に記憶されたす
べてのアドレスについて、そのアドレスで示される更新
状態のデータをメインメモリに書き戻すことを要求する
コマンドを前記システムバスに発行する。更にメインメ
モリ状態復元処理手段により、前記ビフォアイメージ記
憶手段に記憶されたすべての更新前データについて、新
しく格納したものから順にメインメモリへ更新書き込み
を行なうことを要求するコマンドを前記システムバスに
発行する。
は、コピーバック型のキャッシュメモリを備えた計算機
システムに於いて、システムバス上に、ビフォアイメー
ジ処理手段と、ビフォアイメージ記憶手段と、キャッシ
ュフラッシュ実行処理手段とメインメモリ状態復元処理
手段とをもつチェックポイント処理加速装置を設け、第
1のビフォアイメージ処理手段により、システムバス上
のバススヌープによりキャッシュメモリ上でデータ更新
が発生したことを示すコマンドおよび当該コマンドに対
する応答を監視する。そして第2のビフォアイメージ処
理手段により、第1のビフォアイメージ処理手段でシス
テムバス上のアクセスに更新アドレスおよび更新前デー
タが含まれることを検知したとき、当該アドレスおよび
更新前データを採取してビフォアイメージ記憶手段に記
憶し、更新の発生したアドレスを含むが更新前のデータ
を含まないことを検知したとき、その更新前のデータを
読み出すためのコマンドを前記コマンドに含まれるアド
レスを用いてシステムバスに発行し、アドレスおよび読
み出された更新前のデータを採取してビフォアイメージ
記憶手段に記憶する。また、システムバスより受けた指
示コマンドに従い、キャッシュフラッシュ実行処理手段
により、前記ビフォアイメージ記憶手段に記憶されたす
べてのアドレスについて、そのアドレスで示される更新
状態のデータをメインメモリに書き戻すことを要求する
コマンドを前記システムバスに発行する。更にメインメ
モリ状態復元処理手段により、前記ビフォアイメージ記
憶手段に記憶されたすべての更新前データについて、新
しく格納したものから順にメインメモリへ更新書き込み
を行なうことを要求するコマンドを前記システムバスに
発行する。
【0060】即ち、この発明のチェックポイント処理加
速装置は、バススヌープ機構を有するコピーバック型の
キャッシュメモリを備えた少なくとも一つ以上のプロセ
ッサと、メインメモリと、前記プロセッサと前記メイン
メモリとを接続するシステムバスとを具備してなる計算
機に適用されるチェックポイント処理加速装置であっ
て、データ更新の発生したアドレスおよびその更新前の
データを組としたビフォアイメージを複数個記憶するビ
フォアイメージ記憶手段と、前記キャッシュメモリ上で
データ更新が発生したことを示すコマンドおよびそれに
対する応答を前記システムバスの監視によって検知し、
それらが更新アドレスおよび更新前データを含む場合
に、そのアドレスおよび更新前データを前記ビフォアイ
メージ記憶手段に格納し、更新の発生したアドレスを含
むが更新前のデータを含まない場合に、その更新前のデ
ータを読み出すためのコマンドを前記コマンドに含まれ
るアドレスを用いて前記システムバスに発行し、前記ア
ドレスおよび読み出された更新前のデータを前記ビフォ
アイメージ記憶手段に格納するビフォアイメージ取得手
段と、前記プロセッサから指示されたときに、前記ビフ
ォアイメージ記憶手段に格納されたすべてのアドレスに
ついて、そのアドレスで示される更新状態のデータをメ
インメモリに書き戻すことを要求するコマンドを前記シ
ステムバスに発行するキャッシュフラッシュ実行手段
と、前記プロセッサから指示されたときに、前記ビフォ
アイメージ記憶手段に格納されたすべての更新前データ
について、新しく格納したものから順にメインメモリへ
の更新書き込みを要求するコマンドを前記システムバス
に発行するメインメモリ状態復元手段とを具備してなる
ことを特徴とする。
速装置は、バススヌープ機構を有するコピーバック型の
キャッシュメモリを備えた少なくとも一つ以上のプロセ
ッサと、メインメモリと、前記プロセッサと前記メイン
メモリとを接続するシステムバスとを具備してなる計算
機に適用されるチェックポイント処理加速装置であっ
て、データ更新の発生したアドレスおよびその更新前の
データを組としたビフォアイメージを複数個記憶するビ
フォアイメージ記憶手段と、前記キャッシュメモリ上で
データ更新が発生したことを示すコマンドおよびそれに
対する応答を前記システムバスの監視によって検知し、
それらが更新アドレスおよび更新前データを含む場合
に、そのアドレスおよび更新前データを前記ビフォアイ
メージ記憶手段に格納し、更新の発生したアドレスを含
むが更新前のデータを含まない場合に、その更新前のデ
ータを読み出すためのコマンドを前記コマンドに含まれ
るアドレスを用いて前記システムバスに発行し、前記ア
ドレスおよび読み出された更新前のデータを前記ビフォ
アイメージ記憶手段に格納するビフォアイメージ取得手
段と、前記プロセッサから指示されたときに、前記ビフ
ォアイメージ記憶手段に格納されたすべてのアドレスに
ついて、そのアドレスで示される更新状態のデータをメ
インメモリに書き戻すことを要求するコマンドを前記シ
ステムバスに発行するキャッシュフラッシュ実行手段
と、前記プロセッサから指示されたときに、前記ビフォ
アイメージ記憶手段に格納されたすべての更新前データ
について、新しく格納したものから順にメインメモリへ
の更新書き込みを要求するコマンドを前記システムバス
に発行するメインメモリ状態復元手段とを具備してなる
ことを特徴とする。
【0061】また、連続するチェックポイントの間でプ
ロセッサが同じアドレスのデータを複数回更新すること
も十分考えられる。そこで、メインメモリをキャッシュ
メモリ上に確保されるキャッシュブロックの大きさで分
割し、この分割によって定義される区画に対応させて、
オンとオフとの二つの状態が割り当てられるフラグメモ
リを設けることが好ましい。そして、キャッシュブロッ
ク内のデータが更新された際、そのアドレスに対応した
フラグメモリがオフであった場合には、その更新前のデ
ータをビフォアイメージ記憶手段に格納するとともに、
そのフラグメモリをオンにする。また、プロセッサによ
り再度そのデータが更新された場合には、そのフラグメ
モリはすでにオンとなっているので、更新前のデータは
格納済みであることが認識できるため、更新前のデータ
のビフォアイメージ記憶手段への格納は行なわない。こ
れにより、不要な動作を削減することができるため、そ
の性能をさらに向上させることが可能となる。このフラ
グメモリは、必ずしもすべての区画に対応させて設けな
ければならないものではなく、一部の区画に対応させて
設けた場合であっても有効である。
ロセッサが同じアドレスのデータを複数回更新すること
も十分考えられる。そこで、メインメモリをキャッシュ
メモリ上に確保されるキャッシュブロックの大きさで分
割し、この分割によって定義される区画に対応させて、
オンとオフとの二つの状態が割り当てられるフラグメモ
リを設けることが好ましい。そして、キャッシュブロッ
ク内のデータが更新された際、そのアドレスに対応した
フラグメモリがオフであった場合には、その更新前のデ
ータをビフォアイメージ記憶手段に格納するとともに、
そのフラグメモリをオンにする。また、プロセッサによ
り再度そのデータが更新された場合には、そのフラグメ
モリはすでにオンとなっているので、更新前のデータは
格納済みであることが認識できるため、更新前のデータ
のビフォアイメージ記憶手段への格納は行なわない。こ
れにより、不要な動作を削減することができるため、そ
の性能をさらに向上させることが可能となる。このフラ
グメモリは、必ずしもすべての区画に対応させて設けな
ければならないものではなく、一部の区画に対応させて
設けた場合であっても有効である。
【0062】また、互いに共通部分をもたないようにア
ドレス範囲を設定し、この設定したアドレス範囲それぞ
れに対応させてブロックカウンタを設けることが好まし
い。この場合、このブロックカウンタを、その対応する
アドレス範囲に含まれるキャッシュブロックの中で更新
状態のキャッシュブロックがいくつあるかを示すように
管理する。したがって、このブロックカウンタが初期値
(たとえば0)を示す場合、このアドレス範囲に関して
は、キャッシュフラッシュが不要であることが即座に認
識できるため、チェックポイント処理の所要時間を大幅
に短縮することが可能となる。
ドレス範囲を設定し、この設定したアドレス範囲それぞ
れに対応させてブロックカウンタを設けることが好まし
い。この場合、このブロックカウンタを、その対応する
アドレス範囲に含まれるキャッシュブロックの中で更新
状態のキャッシュブロックがいくつあるかを示すように
管理する。したがって、このブロックカウンタが初期値
(たとえば0)を示す場合、このアドレス範囲に関して
は、キャッシュフラッシュが不要であることが即座に認
識できるため、チェックポイント処理の所要時間を大幅
に短縮することが可能となる。
【0063】また、この発明の計算機システムは、バス
スヌープ機構を有するコピーバック型のキャッシュメモ
リを備えた少なくとも一つ以上のプロセッサと、メイン
メモリと、前記プロセッサと前記メインメモリとを接続
するシステムバスを具備し、中断した処理を再開始する
ためのチェックポイントを定期的に採取する作成しなが
らデータ処理を行なう計算機システムであって、チェッ
クポイント処理加速装置と、前記チェックポイント処理
加速装置のビフォアイメージ取得手段を動作させながら
通常のデータ処理を実行するデータ処理手段と、すべて
のプロセッサが同期して実行するデータ処理中のコンテ
キストのメインメモリへの格納、および前記チェックポ
イント処理加速装置のキャッシュフラッシュ実行手段が
実行するすべての更新状態のブロックの内容の前記メイ
ンメモリへの書き戻しを含むチェックポイント作成手段
と、故障が発生したときに、すべてのキャッシュブロッ
クを無効化し、前記チェックポイント処理加速装置のメ
インメモリ復元手段により直前に採取したチェックポイ
ント時点の状態へのメインメモリを復元し、この復元さ
れたメインメモリに格納されている情報を用いて、デー
タ処理を再開するロールバック/リカバリ手段とを具備
してなることを特徴とする。
スヌープ機構を有するコピーバック型のキャッシュメモ
リを備えた少なくとも一つ以上のプロセッサと、メイン
メモリと、前記プロセッサと前記メインメモリとを接続
するシステムバスを具備し、中断した処理を再開始する
ためのチェックポイントを定期的に採取する作成しなが
らデータ処理を行なう計算機システムであって、チェッ
クポイント処理加速装置と、前記チェックポイント処理
加速装置のビフォアイメージ取得手段を動作させながら
通常のデータ処理を実行するデータ処理手段と、すべて
のプロセッサが同期して実行するデータ処理中のコンテ
キストのメインメモリへの格納、および前記チェックポ
イント処理加速装置のキャッシュフラッシュ実行手段が
実行するすべての更新状態のブロックの内容の前記メイ
ンメモリへの書き戻しを含むチェックポイント作成手段
と、故障が発生したときに、すべてのキャッシュブロッ
クを無効化し、前記チェックポイント処理加速装置のメ
インメモリ復元手段により直前に採取したチェックポイ
ント時点の状態へのメインメモリを復元し、この復元さ
れたメインメモリに格納されている情報を用いて、デー
タ処理を再開するロールバック/リカバリ手段とを具備
してなることを特徴とする。
【0064】中断した処理を再開始するためのチェック
ポイントを定期的に採取する計算機システムにおいて
は、このチェックポイントの採取に費やす時間をいかに
短縮するかが重要である。すなわち、このような計算機
システムに、前述したようなチェックポイント処理加速
装置を適用すれば、システム全体の性能を向上させるこ
とが可能となる。
ポイントを定期的に採取する計算機システムにおいて
は、このチェックポイントの採取に費やす時間をいかに
短縮するかが重要である。すなわち、このような計算機
システムに、前述したようなチェックポイント処理加速
装置を適用すれば、システム全体の性能を向上させるこ
とが可能となる。
【0065】以下、図面を参照してこの発明の実施の形
態を説明する。
態を説明する。
【0066】(第1の実施形態)図1には、この発明の
第1の実施形態に係る計算機システムのシステム構成が
示されている。
第1の実施形態に係る計算機システムのシステム構成が
示されている。
【0067】各プロセッサ10は、キャッシュ一貫性を
備えたコピーバック型のキャッシュメモリ20を有す
る。ただし、キャッシュメモリがプライマリとセカンダ
リとの2階層あるいはそれ以上の階層で構成される場
合、本実施形態でいうキャッシュメモリ20とは、最も
システムバス40に近いキャッシュメモリを指す。
備えたコピーバック型のキャッシュメモリ20を有す
る。ただし、キャッシュメモリがプライマリとセカンダ
リとの2階層あるいはそれ以上の階層で構成される場
合、本実施形態でいうキャッシュメモリ20とは、最も
システムバス40に近いキャッシュメモリを指す。
【0068】また、キャッシュメモリによっては、命令
を格納するキャッシュメモリと、データを格納するキャ
ッシュメモリとが分かれているものもあるが、その場
合、本実施形態でいうキャッシュメモリ20とは、デー
タを格納するためのキャッシュメモリを指す。また、本
システムにおけるシステムバス40上でのアドレスは、
32ビットとして説明する。
を格納するキャッシュメモリと、データを格納するキャ
ッシュメモリとが分かれているものもあるが、その場
合、本実施形態でいうキャッシュメモリ20とは、デー
タを格納するためのキャッシュメモリを指す。また、本
システムにおけるシステムバス40上でのアドレスは、
32ビットとして説明する。
【0069】まず、このチェックポイント処理加速装置
30の機能について、本装置を制御するソフトウェアと
関連させて説明する。
30の機能について、本装置を制御するソフトウェアと
関連させて説明する。
【0070】(初期化)プロセッサ10は、ある適当な
時点でModified状態(後述)のキャッシュブロ
ックが存在しない状態を作る。
時点でModified状態(後述)のキャッシュブロ
ックが存在しない状態を作る。
【0071】(通常のデータ処理時)プロセッサ10
は、通常のデータ処理を開始する時点でビフォアイメー
ジ取得部32を起動する。プロセッサ10が、アプリケ
ーションプログラムなどを実行している間、チェックポ
イント処理加速装置30は、システムバス40を監視
し、プロセッサ10がキャッシュメモリ20上でデータ
を更新したことを検知するごとに、更新アドレスと更新
前のデータとを記憶する。
は、通常のデータ処理を開始する時点でビフォアイメー
ジ取得部32を起動する。プロセッサ10が、アプリケ
ーションプログラムなどを実行している間、チェックポ
イント処理加速装置30は、システムバス40を監視
し、プロセッサ10がキャッシュメモリ20上でデータ
を更新したことを検知するごとに、更新アドレスと更新
前のデータとを記憶する。
【0072】(チェックポイント処理)プロセッサ10
は、通常のデータ処理を一定時間、たとえば数ミリ秒〜
数10ミリ秒実行すると、チェックポイント処理を行な
う。チェックポイント処理では、直前まで実行していた
アプリケーションプログラムのコンテキスト(プロセッ
サのレジスタ内容など)をメインメモリ51に格納する
とともに、すべてのModified状態のキャッシュ
ブロックの内容をメインメモリ51に格納する(以下、
「キャッシュフラッシュ」という)。
は、通常のデータ処理を一定時間、たとえば数ミリ秒〜
数10ミリ秒実行すると、チェックポイント処理を行な
う。チェックポイント処理では、直前まで実行していた
アプリケーションプログラムのコンテキスト(プロセッ
サのレジスタ内容など)をメインメモリ51に格納する
とともに、すべてのModified状態のキャッシュ
ブロックの内容をメインメモリ51に格納する(以下、
「キャッシュフラッシュ」という)。
【0073】このチェックポイント処理加速装置30
は、すべてのModified状態のキャッシュブロッ
クに対し、その内容のメインメモリ51への書き戻しを
要求するコマンドをシステムバス40に発行することに
よってキャッシュフラッシュを実現する。
は、すべてのModified状態のキャッシュブロッ
クに対し、その内容のメインメモリ51への書き戻しを
要求するコマンドをシステムバス40に発行することに
よってキャッシュフラッシュを実現する。
【0074】この処理は、プロセッサ10がキャッシュ
フラッシュ用のソフトウェアを実行するのと比較して高
速であることが期待される。チェックポイント処理が終
了すると、プロセッサ10は通常のデータ処理を再開す
る。
フラッシュ用のソフトウェアを実行するのと比較して高
速であることが期待される。チェックポイント処理が終
了すると、プロセッサ10は通常のデータ処理を再開す
る。
【0075】(障害発生時の復旧処理)計算機システム
に何らかの障害が発生した場合、プロセッサ10は、障
害の箇所を同定し、必要であれば障害の発生した装置を
切り離すとともに、すべてのキャッシュブロック20を
無効化する。
に何らかの障害が発生した場合、プロセッサ10は、障
害の箇所を同定し、必要であれば障害の発生した装置を
切り離すとともに、すべてのキャッシュブロック20を
無効化する。
【0076】そして、チェックポイント処理加速装置3
0は、その内部に記憶されているビフォアイメージを使
って、メインメモリ51に更新前のデータを書き戻すコ
マンドを発行することにより、メインメモリ51の状態
を直前のチェックポイント処理時の状態に戻す。その
後、プロセッサ10は通常のデータ処理を再開する。
0は、その内部に記憶されているビフォアイメージを使
って、メインメモリ51に更新前のデータを書き戻すコ
マンドを発行することにより、メインメモリ51の状態
を直前のチェックポイント処理時の状態に戻す。その
後、プロセッサ10は通常のデータ処理を再開する。
【0077】すなわち、本実施形態のチェックポイント
処理加速装置30は、下記の3つの機能を有する。
処理加速装置30は、下記の3つの機能を有する。
【0078】(1)通常のデータ処理時 プロセッサ10がデータ更新を行なったことを検知し、
そのビフォアイメージを取得して記憶する。
そのビフォアイメージを取得して記憶する。
【0079】(2)チェックポイント処理 プロセッサ10からの指示により、記憶していたビフォ
フイメージを使ってModified状態のキャッシュ
ブロックの内容のメインメモリ51への書き戻しを要求
するコマンドを発行する。
フイメージを使ってModified状態のキャッシュ
ブロックの内容のメインメモリ51への書き戻しを要求
するコマンドを発行する。
【0080】(3)障害発生時の復旧処理 プロセッサ10からの指示により、記憶していたビフォ
アイメージを使ってメインメモリ51に更新前のデータ
を書き戻すコマンドを発行する。
アイメージを使ってメインメモリ51に更新前のデータ
を書き戻すコマンドを発行する。
【0081】なお、ビフォアイメージを記憶するのは、
(2)および(3)の機能を実現するためであるから、
必ずしもすべてのデータ更新について、そのビフォアイ
メージを取得する必要はない。たとえば、チェックポイ
ントの後、あるアドレスに対して最初に更新が発生した
場合、ビフォアイメージの取得は必須であるが、2度目
以降の場合には、ビフォアイメージの取得は不要であ
る。
(2)および(3)の機能を実現するためであるから、
必ずしもすべてのデータ更新について、そのビフォアイ
メージを取得する必要はない。たとえば、チェックポイ
ントの後、あるアドレスに対して最初に更新が発生した
場合、ビフォアイメージの取得は必須であるが、2度目
以降の場合には、ビフォアイメージの取得は不要であ
る。
【0082】このチェックポイント処理加速装置30
は、システムバス40上のコマンドとその応答とを監視
し、あるいは能動的にコマンドを発行することにより処
理を行なうので、ここでキャッシュメモリ20およびシ
ステムバス40の構造、ならびにコマンドとそれに対す
る応答とについて説明する。ただし、ここで述べるもの
は、本実施形態のメモリ状態復元部33を適用可能な計
算機の一例である。たとえば、下記に示すキャッシュブ
ロックの取り得る状態やシステムバス40上のコマンド
や応答には、それぞれ数種類のバリエーションが存在す
るが、いずれについても本実施形態の主旨にしたがった
チェックポイント処理加速装置30が構成可能である。
は、システムバス40上のコマンドとその応答とを監視
し、あるいは能動的にコマンドを発行することにより処
理を行なうので、ここでキャッシュメモリ20およびシ
ステムバス40の構造、ならびにコマンドとそれに対す
る応答とについて説明する。ただし、ここで述べるもの
は、本実施形態のメモリ状態復元部33を適用可能な計
算機の一例である。たとえば、下記に示すキャッシュブ
ロックの取り得る状態やシステムバス40上のコマンド
や応答には、それぞれ数種類のバリエーションが存在す
るが、いずれについても本実施形態の主旨にしたがった
チェックポイント処理加速装置30が構成可能である。
【0083】(システムバスの構造)システムバス40
は、アドレス/データ線の他、制御用信号線として、コ
マンド信号線、モディファイド応答信号線、およびシェ
アード応答信号線を含む。アドレス/データ信号線は、
コマンドのアドレスおよびデータを送るための信号線で
あり、共通の信号線を時分割で使う方式と、アドレス/
データそれぞれに独立した信号線を設ける方式とがあ
り、いずれであっても構わない。コマンド信号線は、コ
マンドの種類を示す他、コマンドに関する各種情報を送
るための信号線である。シェアード応答信号線は、他の
プロセッサ/キャッシュメモリにより発行されたコマン
ドに対して、ブロックを共有していることを通知するた
めに用いられる。そして、モディファイド応答信号線
は、他のプロセッサ/キャッシュメモリにより発行され
たコマンドに対して、ブロックの更新データを保持して
いることを通知するために用いられる。
は、アドレス/データ線の他、制御用信号線として、コ
マンド信号線、モディファイド応答信号線、およびシェ
アード応答信号線を含む。アドレス/データ信号線は、
コマンドのアドレスおよびデータを送るための信号線で
あり、共通の信号線を時分割で使う方式と、アドレス/
データそれぞれに独立した信号線を設ける方式とがあ
り、いずれであっても構わない。コマンド信号線は、コ
マンドの種類を示す他、コマンドに関する各種情報を送
るための信号線である。シェアード応答信号線は、他の
プロセッサ/キャッシュメモリにより発行されたコマン
ドに対して、ブロックを共有していることを通知するた
めに用いられる。そして、モディファイド応答信号線
は、他のプロセッサ/キャッシュメモリにより発行され
たコマンドに対して、ブロックの更新データを保持して
いることを通知するために用いられる。
【0084】(キャッシュブロックの状態)キャッシュ
ブロックの取り得る状態は、下記の通りである。
ブロックの取り得る状態は、下記の通りである。
【0085】(1)Invalid状態 そのキャッシュブロックには有効なデータが存在しな
い。
い。
【0086】(2)Modified状態 そのキャッシュブロックには更新されたデータが存在す
る。また、他のプロセッサ10のキャッシュブロックに
は、このデータは存在しない。
る。また、他のプロセッサ10のキャッシュブロックに
は、このデータは存在しない。
【0087】(3)Clean−Shared状態 そのキャッシュブロックにはメインメモリ51と同一内
容のデータが存在する。また、他のプロセッサ10のキ
ャッシュブロックにも、このデータが存在する可能性が
ある。
容のデータが存在する。また、他のプロセッサ10のキ
ャッシュブロックにも、このデータが存在する可能性が
ある。
【0088】(4)Clean−Exclusive状
態 そのキャッシュブロックにはメインメモリ51と同一内
容のデータが存在する。また、他のキャッシュメモリ2
0のキャッシュブロックには、このデータは存在しな
い。
態 そのキャッシュブロックにはメインメモリ51と同一内
容のデータが存在する。また、他のキャッシュメモリ2
0のキャッシュブロックには、このデータは存在しな
い。
【0089】(コマンドおよび応答の仕様)システムバ
ス40上のコマンドおよびそれに対するキャッシュメモ
リ20あるいはメインメモリ51からの応答は、次の通
りである。ただし、このうち、Read−Line−N
on−Coherentは、システムバス40ではサポ
ートされているが、キャッシュメモリ20が発行するコ
マンドではない。
ス40上のコマンドおよびそれに対するキャッシュメモ
リ20あるいはメインメモリ51からの応答は、次の通
りである。ただし、このうち、Read−Line−N
on−Coherentは、システムバス40ではサポ
ートされているが、キャッシュメモリ20が発行するコ
マンドではない。
【0090】(1)Read−Line(キャッシュブ
ロックデータのリード要求) 発行される状況…プロセッサ10がデータを読込もうと
して、キャッシュメモリ20中にそのデータが無い場
合。
ロックデータのリード要求) 発行される状況…プロセッサ10がデータを読込もうと
して、キャッシュメモリ20中にそのデータが無い場
合。
【0091】応答(ケース1)…Modified状態
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Lineコマン
ドを発行したキャッシュメモリ20とメインメモリ51
にデータが転送される。両方のキャッシュブロックの状
態は、Clean−Sharedとなる。
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Lineコマン
ドを発行したキャッシュメモリ20とメインメモリ51
にデータが転送される。両方のキャッシュブロックの状
態は、Clean−Sharedとなる。
【0092】応答(ケース2)…Modified状態
のキャッシュブロックを有するキャッシュメモリ20は
ないが、Clean−SharedまたはClean−
Exclusive状態のキャッシュブロックを有する
キャッシュメモリ20があれば、そのキャッシュメモリ
20は、シェアード応答信号線をアサートする。メイン
メモリ51またはそのデータを保持するキャッシュメモ
リ20がRead−Lineコマンドを発行したキャッ
シュメモリ20にデータを転送する。いずれがデータ転
送するかは、計算機に依存する。両方のキャッシュブロ
ックの状態は、Clean−Sharedとなる。
のキャッシュブロックを有するキャッシュメモリ20は
ないが、Clean−SharedまたはClean−
Exclusive状態のキャッシュブロックを有する
キャッシュメモリ20があれば、そのキャッシュメモリ
20は、シェアード応答信号線をアサートする。メイン
メモリ51またはそのデータを保持するキャッシュメモ
リ20がRead−Lineコマンドを発行したキャッ
シュメモリ20にデータを転送する。いずれがデータ転
送するかは、計算機に依存する。両方のキャッシュブロ
ックの状態は、Clean−Sharedとなる。
【0093】応答(ケース3)…前記いずれでもない場
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ineコマンドを発行したキャッシュメモリ20にデー
タが転送される。キャッシュブロックの状態は、Cle
an−Exclusiveとなる。
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ineコマンドを発行したキャッシュメモリ20にデー
タが転送される。キャッシュブロックの状態は、Cle
an−Exclusiveとなる。
【0094】(2)Read−Line−with−I
nvalidate(キャッシュブロックデータのリー
ドと、他のキャッシュブロックの無効化要求) 発行される状況…プロセッサ10がデータを更新しよう
として、キャッシュメモリ20中にそのデータが無い場
合。
nvalidate(キャッシュブロックデータのリー
ドと、他のキャッシュブロックの無効化要求) 発行される状況…プロセッサ10がデータを更新しよう
として、キャッシュメモリ20中にそのデータが無い場
合。
【0095】応答(ケース1)…Modified状態
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Line−wi
th−Invalidateコマンドを発行したキャッ
シュメモリ20とメインメモリ51にデータが転送され
る。計算機によっては、Modified状態のキャッ
シュブロックを有するキャッシュメモリ20がRetr
yを応答して、メインメモリ51にデータを書戻し、R
ead−Line−with−Invalidateコ
マンドを発行したキャッシュメモリ20が再度同じコマ
ンドを発行すると、今度はメインメモリ51が応答する
こともある(後述するケース3)。本実施形態では、前
者であるとして説明する。要求を発行した側のキャッシ
ュブロックの状態は、Modifiedとなり、応答し
た側は、Invalid状態となる。
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Line−wi
th−Invalidateコマンドを発行したキャッ
シュメモリ20とメインメモリ51にデータが転送され
る。計算機によっては、Modified状態のキャッ
シュブロックを有するキャッシュメモリ20がRetr
yを応答して、メインメモリ51にデータを書戻し、R
ead−Line−with−Invalidateコ
マンドを発行したキャッシュメモリ20が再度同じコマ
ンドを発行すると、今度はメインメモリ51が応答する
こともある(後述するケース3)。本実施形態では、前
者であるとして説明する。要求を発行した側のキャッシ
ュブロックの状態は、Modifiedとなり、応答し
た側は、Invalid状態となる。
【0096】応答(ケース2)…Clean−Shar
edまたはClean−Exclusive状態のキャ
ッシュブロックを有するキャッシュメモリ20があれ
ば、そのキャッシュメモリ20は、シェアード応答信号
線をアサートする。メインメモリ51またはそのデータ
を保持するキャッシュメモリ20がRead−Line
−with−Invalidateコマンドを発行した
キャッシュメモリ20にデータを転送する。いずれがデ
ータ転送するかは、計算機に依存する。要求を発行した
側のキャッシュブロックの状態は、Modifiedと
なり、応答した側は、Invalid状態となる。
edまたはClean−Exclusive状態のキャ
ッシュブロックを有するキャッシュメモリ20があれ
ば、そのキャッシュメモリ20は、シェアード応答信号
線をアサートする。メインメモリ51またはそのデータ
を保持するキャッシュメモリ20がRead−Line
−with−Invalidateコマンドを発行した
キャッシュメモリ20にデータを転送する。いずれがデ
ータ転送するかは、計算機に依存する。要求を発行した
側のキャッシュブロックの状態は、Modifiedと
なり、応答した側は、Invalid状態となる。
【0097】応答(ケース3)…前記いずれでもない場
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ine−with−Invalidateコマンドを発
行したキャッシュメモリ20にデータが転送される。キ
ャッシュブロックの状態は、Modifiedとなる。
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ine−with−Invalidateコマンドを発
行したキャッシュメモリ20にデータが転送される。キ
ャッシュブロックの状態は、Modifiedとなる。
【0098】(3)Write−Line(キャッシュ
ブロックデータのメインメモリへの書き込み) 発行される状況…Modified状態のキャッシュブ
ロックに他のアドレスのデータを格納しなければならな
くなったため、Modified状態のキャッシュブロ
ックの内容をメインメモリ51に書き戻す場合。
ブロックデータのメインメモリへの書き込み) 発行される状況…Modified状態のキャッシュブ
ロックに他のアドレスのデータを格納しなければならな
くなったため、Modified状態のキャッシュブロ
ックの内容をメインメモリ51に書き戻す場合。
【0099】応答…メインメモリ51がこのコマンドに
含まれるデータにより更新される。キャッシュブロック
の内容は、Clean−Sharedとなる。
含まれるデータにより更新される。キャッシュブロック
の内容は、Clean−Sharedとなる。
【0100】(4)Invalidate(他のキャッ
シュメモリのデータ無効化要求。アドレスの転送のみ) 発行される状況…プロセッサ10がClean−Sha
red状態のキャッシュブロックのデータを更新しよう
とする場合。
シュメモリのデータ無効化要求。アドレスの転送のみ) 発行される状況…プロセッサ10がClean−Sha
red状態のキャッシュブロックのデータを更新しよう
とする場合。
【0101】応答…本コマンドを発行した側は、Mod
ified状態となり、受信した側は、Invalid
状態となる。
ified状態となり、受信した側は、Invalid
状態となる。
【0102】(5)Read−Line−Non−Co
herent(メインメモリデータのリード要求) 発行される状況…メインメモリ51からI/O装置への
DMA転送等で使用応答…キャッシュメモリ20の状態
に関わらず、常にメインメモリ51が要求されたアドレ
スの内容を応答として返す。キャッシュブロックの状態
は不変である。
herent(メインメモリデータのリード要求) 発行される状況…メインメモリ51からI/O装置への
DMA転送等で使用応答…キャッシュメモリ20の状態
に関わらず、常にメインメモリ51が要求されたアドレ
スの内容を応答として返す。キャッシュブロックの状態
は不変である。
【0103】以上、本実施形態のキャッシュメモリ20
およびシステムバス40などを説明した。
およびシステムバス40などを説明した。
【0104】(チェックポイント処理加速装置の構成)
チェックポイント処理加速装置30は、ビフォアイメー
ジ記憶部35、ビフォアイメージ取得部32、キャッシ
ュフラッシュ実行部34およびメインメモリ状態復元部
33で構成される。
チェックポイント処理加速装置30は、ビフォアイメー
ジ記憶部35、ビフォアイメージ取得部32、キャッシ
ュフラッシュ実行部34およびメインメモリ状態復元部
33で構成される。
【0105】ビフォアイメージ記憶部35は、図2に示
すように、更新アドレスおよび更新前データの組(ビフ
ォアイメージ)を記憶する複数のエントリと、キャッシ
ュフラッシュ実行部34が使用するFポインタと、ビフ
ォアイメージ取得部32およびメインメモリ状態復元部
33が使用するWポインタとで構成される。
すように、更新アドレスおよび更新前データの組(ビフ
ォアイメージ)を記憶する複数のエントリと、キャッシ
ュフラッシュ実行部34が使用するFポインタと、ビフ
ォアイメージ取得部32およびメインメモリ状態復元部
33が使用するWポインタとで構成される。
【0106】ビフォアイメージ記憶部35に記憶する更
新前のデータは、キャッシュブロックと同じ大きさ(こ
こでは、Bビットとする)である。これは、キャッシュ
メモリ20間、あるいはキャッシュメモリ20とメイン
メモリ51間のデータ転送の単位と同じにするためであ
る。
新前のデータは、キャッシュブロックと同じ大きさ(こ
こでは、Bビットとする)である。これは、キャッシュ
メモリ20間、あるいはキャッシュメモリ20とメイン
メモリ51間のデータ転送の単位と同じにするためであ
る。
【0107】Wポインタは、ビフォアイメージ取得部3
2が新たに取得したビフォアイメージを格納するエント
リを示す。プロセッサ10の指示により、ビフォアイメ
ージ取得部32が起動されると、Wポインタは、最初の
エントリを指すように初期化される。
2が新たに取得したビフォアイメージを格納するエント
リを示す。プロセッサ10の指示により、ビフォアイメ
ージ取得部32が起動されると、Wポインタは、最初の
エントリを指すように初期化される。
【0108】そして、ビフォアイメージ取得部32が新
たに取得したビフォアイメージをWポインタの指すエン
トリに格納すると、Wポインタがインクリメントされ、
その次のエントリを指すように制御される。
たに取得したビフォアイメージをWポインタの指すエン
トリに格納すると、Wポインタがインクリメントされ、
その次のエントリを指すように制御される。
【0109】また、プロセッサ10の指示によりメイン
メモリ状態復元部33が起動されると、Wポインタが次
々とデクリメントされながら、Wポインタの指すエント
リに格納されている更新アドレスと更新前データの組を
使って、メインメモリ51の内容が更新前の状態に戻さ
れていく。
メモリ状態復元部33が起動されると、Wポインタが次
々とデクリメントされながら、Wポインタの指すエント
リに格納されている更新アドレスと更新前データの組を
使って、メインメモリ51の内容が更新前の状態に戻さ
れていく。
【0110】Fポインタは、キャッシュフラッシュ実行
部34が次に処理対象とするビフォアイメージを格納し
ているエントリを指す。プロセッサ10の指示により、
キャッシュフラッシュ実行部34が起動されると、Fポ
インタは最初のエントリを指すよう初期化される。
部34が次に処理対象とするビフォアイメージを格納し
ているエントリを指す。プロセッサ10の指示により、
キャッシュフラッシュ実行部34が起動されると、Fポ
インタは最初のエントリを指すよう初期化される。
【0111】キャッシュフラッシュ実行部34は、Fポ
インタの指すエントリに格納されている更新アドレスに
対して、Read−Lineコマンドを発行しては、F
ポインタが次のエントリを指すよう制御される。そし
て、Fポインタの値とWポインタの値が一致すると、キ
ャッシュフラッシュ実行部34は終了する。
インタの指すエントリに格納されている更新アドレスに
対して、Read−Lineコマンドを発行しては、F
ポインタが次のエントリを指すよう制御される。そし
て、Fポインタの値とWポインタの値が一致すると、キ
ャッシュフラッシュ実行部34は終了する。
【0112】ビフォアイメージ取得部32は、システム
バス40上のコマンドおよび応答を監視し、あるいは必
要によりコマンドを発行することにより、プロセッサ1
0がキャッシュメモリ20上でデータを更新した際、そ
のビフォアイメージをビフォアイメージ記憶部35に格
納する。ビフォアイメージ取得部32が前記コマンドを
検知したときの動作を下記に示す。
バス40上のコマンドおよび応答を監視し、あるいは必
要によりコマンドを発行することにより、プロセッサ1
0がキャッシュメモリ20上でデータを更新した際、そ
のビフォアイメージをビフォアイメージ記憶部35に格
納する。ビフォアイメージ取得部32が前記コマンドを
検知したときの動作を下記に示す。
【0113】(1)Read−Line シェアード応答信号線をアサートする。
【0114】(2)Read−Line−with−I
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスと、キャッシュメモリ20またはメインメモリ5
1からの応答に含まれる更新前データとをビフォアイメ
ージ記憶部35に格納する。
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスと、キャッシュメモリ20またはメインメモリ5
1からの応答に含まれる更新前データとをビフォアイメ
ージ記憶部35に格納する。
【0115】(3)Invalidate コマンドに含まれる更新アドレスを使って、Read−
Lint−Non−Coherentコマンドを発行す
る。そして、前記更新アドレスとメインメモリ51から
の応答に含まれる更新前データとをビフォアイメージ記
憶部35に格納する。
Lint−Non−Coherentコマンドを発行す
る。そして、前記更新アドレスとメインメモリ51から
の応答に含まれる更新前データとをビフォアイメージ記
憶部35に格納する。
【0116】図3には、このビフォアイメージ取得部3
2の処理フローが示されている。
2の処理フローが示されている。
【0117】Read−Lineコマンドは、プロセッ
サ10がデータを更新するときに発行されるコマンドで
はないので、ビフォアイメージを取得することはない。
しかし、シェアード応答信号線をアサートし、キャッシ
ュブロックがClean−Exclusive状態とな
るのを防ぐ必要がある。というのは、プロセッサ10が
Clean−Exclusive状態のキャッシュブロ
ックのデータを更新する場合、他のキャッシュメモリ2
0はそのデータを保持していないため、システムバス4
0に何のコマンドも発行されることなく、Clean−
Exclusive状態からModified状態に遷
移する。そのため、ビフォアイメージ取得部32は、ビ
フォアイメージを取得できなくなる。そこで、ビフォア
イメージ取得部32がシェアード応答信号線をアサート
することにより、キャッシュブロックはClean−S
hared状態となり、プロセッサ10によるデータの
更新では、システムバス40にInvalidateコ
マンドが発行されることになる。
サ10がデータを更新するときに発行されるコマンドで
はないので、ビフォアイメージを取得することはない。
しかし、シェアード応答信号線をアサートし、キャッシ
ュブロックがClean−Exclusive状態とな
るのを防ぐ必要がある。というのは、プロセッサ10が
Clean−Exclusive状態のキャッシュブロ
ックのデータを更新する場合、他のキャッシュメモリ2
0はそのデータを保持していないため、システムバス4
0に何のコマンドも発行されることなく、Clean−
Exclusive状態からModified状態に遷
移する。そのため、ビフォアイメージ取得部32は、ビ
フォアイメージを取得できなくなる。そこで、ビフォア
イメージ取得部32がシェアード応答信号線をアサート
することにより、キャッシュブロックはClean−S
hared状態となり、プロセッサ10によるデータの
更新では、システムバス40にInvalidateコ
マンドが発行されることになる。
【0118】Read−Line−with−Inva
lidateコマンドの場合、キャッシュメモリ20あ
るいはメインメモリ51から更新前のデータを含む応答
があるので、ビフォアイメージ取得部32は、それらを
抽出すれば良い。ただし、モディファイド応答信号線が
アサートされている場合、他のキャッシュメモリ20が
そのデータをModified状態で保持していたこと
になるので(したがって、そのアドレスに対応するビフ
ォアイメージはすでにビフォアイメージ記憶部35に記
憶されている)、その場合にはビフォアイメージを記憶
しない。これにより、ビフォアイメージ記憶部32の利
用効率の向上、キャッシュフラッシュ時間の短縮などが
期待できる。
lidateコマンドの場合、キャッシュメモリ20あ
るいはメインメモリ51から更新前のデータを含む応答
があるので、ビフォアイメージ取得部32は、それらを
抽出すれば良い。ただし、モディファイド応答信号線が
アサートされている場合、他のキャッシュメモリ20が
そのデータをModified状態で保持していたこと
になるので(したがって、そのアドレスに対応するビフ
ォアイメージはすでにビフォアイメージ記憶部35に記
憶されている)、その場合にはビフォアイメージを記憶
しない。これにより、ビフォアイメージ記憶部32の利
用効率の向上、キャッシュフラッシュ時間の短縮などが
期待できる。
【0119】Invalidateコマンドの場合、本
コマンドおよび応答はデータを含まないので、ビフォア
イメージ取得部32が、Read−Line−Non−
Coherentコマンドを発行し、メインメモリ51
からの応答に含まれる更新前データを取得する。ここ
で、もしRead−Lineコマンドを発行すると更新
されたデータを保持しているキャッシュブロックが応答
するので、更新前のデータを得ることはできない。すな
わち、Read−Line−Non−Coherent
コマンドを発行することが必須である。
コマンドおよび応答はデータを含まないので、ビフォア
イメージ取得部32が、Read−Line−Non−
Coherentコマンドを発行し、メインメモリ51
からの応答に含まれる更新前データを取得する。ここ
で、もしRead−Lineコマンドを発行すると更新
されたデータを保持しているキャッシュブロックが応答
するので、更新前のデータを得ることはできない。すな
わち、Read−Line−Non−Coherent
コマンドを発行することが必須である。
【0120】キャッシュフラッシュ実行部34は、プロ
セッサ10の指示により、まずFポインタが最初のエン
トリを指すようにした後、Fポインタの指すエントリ中
の更新アドレスを使って、Read−Lineコマンド
を発行し、Fポインタを進める。Read−Lineコ
マンドを発行するのは、もし、そのアドレスのデータを
Modified状態で保持するキャッシュブロックが
あれば、そのデータをメインメモリ51にも転送し、そ
のキャッシュブロックの状態はModifiedからC
lean−Sharedに変化するというRead−L
ineとその応答の性質を利用するためである。そし
て、FポインタがWポインタと等しくなれば、キャッシ
ュフラッシュ処理を終了する。この時、キャッシュブロ
ックの状態はすべてInvalidもしくはClean
−Sharedとなっている。
セッサ10の指示により、まずFポインタが最初のエン
トリを指すようにした後、Fポインタの指すエントリ中
の更新アドレスを使って、Read−Lineコマンド
を発行し、Fポインタを進める。Read−Lineコ
マンドを発行するのは、もし、そのアドレスのデータを
Modified状態で保持するキャッシュブロックが
あれば、そのデータをメインメモリ51にも転送し、そ
のキャッシュブロックの状態はModifiedからC
lean−Sharedに変化するというRead−L
ineとその応答の性質を利用するためである。そし
て、FポインタがWポインタと等しくなれば、キャッシ
ュフラッシュ処理を終了する。この時、キャッシュブロ
ックの状態はすべてInvalidもしくはClean
−Sharedとなっている。
【0121】このキャッシュフラッシュ実行部34は、
ビフォアイメージ記憶部35に格納されているすべての
アドレスについて、Read−Lineコマンドを発行
しているが、これには無駄がある。というのは、通常の
データ処理において、たとえばa番地のデータをMod
ified状態で保持しているキャッシュブロックが、
その後にb番地のデータを格納するため、a番地のデー
タをメインメモリ51に書き戻した場合、a番地のMo
dified状態のキャッシュブロックは実在しないに
もかかわらず、キャッシュフラッシュ実行部34は、a
番地のビフォアイメージが存在するため、a番地に対し
てRead−Lineコマンドを発行することが、少な
からず起こるためである。これを改善する方法について
は、他の実施形態において説明する。図4には、キャッ
シュフラッシュ実行部34の処理フローが示されてい
る。
ビフォアイメージ記憶部35に格納されているすべての
アドレスについて、Read−Lineコマンドを発行
しているが、これには無駄がある。というのは、通常の
データ処理において、たとえばa番地のデータをMod
ified状態で保持しているキャッシュブロックが、
その後にb番地のデータを格納するため、a番地のデー
タをメインメモリ51に書き戻した場合、a番地のMo
dified状態のキャッシュブロックは実在しないに
もかかわらず、キャッシュフラッシュ実行部34は、a
番地のビフォアイメージが存在するため、a番地に対し
てRead−Lineコマンドを発行することが、少な
からず起こるためである。これを改善する方法について
は、他の実施形態において説明する。図4には、キャッ
シュフラッシュ実行部34の処理フローが示されてい
る。
【0122】メインメモリ状態復元部33は、プロセッ
サ10の指示により、Wポインタをデクリメントし、W
ポインタの指すエントリ中のビフォアイメージをWri
te−Lineコマンドを使って、メインメモリに書き
戻す。ここで、a番地に対するビフォアイメージが2つ
以上存在する場合、チェックポイント時の状態に戻すに
は、より早い時点で取得したビフォアイメージをより遅
い時点でメインメモリ51に書き戻す必要がある。した
がって、Wポインタが現在指すエントリから最初のエン
トリに向かってデクリメントするのは、前記の制約を満
たす最も容易な方法である。図5には、メインメモリ状
態復元部33の処理フローが示されている。
サ10の指示により、Wポインタをデクリメントし、W
ポインタの指すエントリ中のビフォアイメージをWri
te−Lineコマンドを使って、メインメモリに書き
戻す。ここで、a番地に対するビフォアイメージが2つ
以上存在する場合、チェックポイント時の状態に戻すに
は、より早い時点で取得したビフォアイメージをより遅
い時点でメインメモリ51に書き戻す必要がある。した
がって、Wポインタが現在指すエントリから最初のエン
トリに向かってデクリメントするのは、前記の制約を満
たす最も容易な方法である。図5には、メインメモリ状
態復元部33の処理フローが示されている。
【0123】次に、プロセッサ10によるチェックポイ
ント処理加速装置30の制御方式を図6に基づいて説明
する。
ント処理加速装置30の制御方式を図6に基づいて説明
する。
【0124】通常のデータ処理では、ビフォアイメージ
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになると、通常のデータ処理を中断して、
チェックポイント処理を開始する。
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになると、通常のデータ処理を中断して、
チェックポイント処理を開始する。
【0125】チェックポイント処理では、まず、プロセ
ッサ10を割り込み禁止状態にして、外部機器などから
の割り込みを受けつけないようにする。これは、チェッ
クポイント処理中は、通常のデータ処理を一切実行しな
いようにするためである。ただし、計算機の故障発生を
通知する割り込みについては、通常の割り込みより高い
優先度を設定するなど、前記割り込み禁止状態にあって
も受け付けられるようになっている必要がある。
ッサ10を割り込み禁止状態にして、外部機器などから
の割り込みを受けつけないようにする。これは、チェッ
クポイント処理中は、通常のデータ処理を一切実行しな
いようにするためである。ただし、計算機の故障発生を
通知する割り込みについては、通常の割り込みより高い
優先度を設定するなど、前記割り込み禁止状態にあって
も受け付けられるようになっている必要がある。
【0126】次に、プロセッサ10は、キャッシュフラ
ッシュ実行部34を起動し、通常のデータ処理を中断し
た時点でのコンテキスト、すなわちレジスタの内容のメ
インメモリ51の然るべきアドレスへの書き込みを行な
う。ただし、本実施形態ではコピーバック型のキャッシ
ュメモリが使用されるので、この時点では通常のデータ
更新と同じように、キャッシュブロックにModifi
ed状態で保持され、ビフォアイメージ記憶部35にそ
のアドレスのビフォアイメージが記憶されている。
ッシュ実行部34を起動し、通常のデータ処理を中断し
た時点でのコンテキスト、すなわちレジスタの内容のメ
インメモリ51の然るべきアドレスへの書き込みを行な
う。ただし、本実施形態ではコピーバック型のキャッシ
ュメモリが使用されるので、この時点では通常のデータ
更新と同じように、キャッシュブロックにModifi
ed状態で保持され、ビフォアイメージ記憶部35にそ
のアドレスのビフォアイメージが記憶されている。
【0127】その後、プロセッサ10は、キャッシュフ
ラッシュ実行部34が、ビフォアイメージ記憶部35内
のビフォアイメージを使って、すべてのModifie
d状態のキャッシュブロックのデータがメインメモリ5
1に書き戻されるのを待つ。プロセッサ10のコンテキ
ストも、このとき、メインメモリ51に書き戻される。
キャッシュフラッシュ実行部34が実行を終了すると、
メインメモリ51に保存したコンテキストを対応するレ
ジスタに戻し、割り込み禁止状態を解除することによ
り、通常のデータ処理を再開する。
ラッシュ実行部34が、ビフォアイメージ記憶部35内
のビフォアイメージを使って、すべてのModifie
d状態のキャッシュブロックのデータがメインメモリ5
1に書き戻されるのを待つ。プロセッサ10のコンテキ
ストも、このとき、メインメモリ51に書き戻される。
キャッシュフラッシュ実行部34が実行を終了すると、
メインメモリ51に保存したコンテキストを対応するレ
ジスタに戻し、割り込み禁止状態を解除することによ
り、通常のデータ処理を再開する。
【0128】次に、チェックポイント処理加速装置30
の動作を説明する。
の動作を説明する。
【0129】(初期化)プロセッサ10は、ソフトウェ
アを実行することにより、すべてのキャッシュブロック
をModified状態以外の状態にする。
アを実行することにより、すべてのキャッシュブロック
をModified状態以外の状態にする。
【0130】(通常のデータ処理時)プロセッサ10
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図7を参照し、
通常のデータ処理として、プロセッサ10が、a番地の
データをA0からA1に、b番地のデータをB0からB
1に、a番地のデータをA1からA2に、この順で更新
する場合について説明する。ただし、a番地、b番地
は、ともにキャッシュブロックBLK0に対応し、BL
K0は、初期状態ではa番地のデータA0をClean
−Shared状態で保持しているとする。
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図7を参照し、
通常のデータ処理として、プロセッサ10が、a番地の
データをA0からA1に、b番地のデータをB0からB
1に、a番地のデータをA1からA2に、この順で更新
する場合について説明する。ただし、a番地、b番地
は、ともにキャッシュブロックBLK0に対応し、BL
K0は、初期状態ではa番地のデータA0をClean
−Shared状態で保持しているとする。
【0131】(1)初期状態を示す。
【0132】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0133】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
【0134】(4)ビフォアイメージ取得部32は、a
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
【0135】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
【0136】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0137】(7)メインメモリ51がデータB0を含
む応答を返す。この動作例は、初期化直後であるので、
モディファイド応答信号線はアサートされない。このと
き、ビフォアイメージ取得部32は、b番地とデータB
0の組をビフォアイメージ記憶部35に格納する。
む応答を返す。この動作例は、初期化直後であるので、
モディファイド応答信号線はアサートされない。このと
き、ビフォアイメージ取得部32は、b番地とデータB
0の組をビフォアイメージ記憶部35に格納する。
【0138】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
番地に対するWrite−Lineコマンドが発行され
る。
【0139】(9)メインメモリ51のa番地のデータ
がA1に変わる。
がA1に変わる。
【0140】(10)プロセッサ10がa番地のデータ
をA2に更新しようするが、キャッシュブロックBLK
0がb番地のデータB1をModified状態を保持
しているため、b番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にa番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
をA2に更新しようするが、キャッシュブロックBLK
0がb番地のデータB1をModified状態を保持
しているため、b番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にa番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0141】(11)メインメモリ51がデータA1を
含む応答を返す。ビフォアイメージ取得部32は、a番
地とデータA1の組をビフォアイメージ記憶部35に格
納する。
含む応答を返す。ビフォアイメージ取得部32は、a番
地とデータA1の組をビフォアイメージ記憶部35に格
納する。
【0142】(12)ライトバッファに保持されていた
b番地に対するWrite−Lineコマンドが発行さ
れる。
b番地に対するWrite−Lineコマンドが発行さ
れる。
【0143】(13)メインメモリ51のb番地のデー
タがB1に変わる。
タがB1に変わる。
【0144】以上、プロセッサ10、メインメモリ51
およびビフォアイメージ取得部32の動作例を示した。
およびビフォアイメージ取得部32の動作例を示した。
【0145】(チェックポイント処理時)前述した状態
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図8に示す。ただし、ビフォ
アイメージの欄の下線は、Fポインタの指す位置を表わ
す。
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図8に示す。ただし、ビフォ
アイメージの欄の下線は、Fポインタの指す位置を表わ
す。
【0146】(1)初期状態を示す。
【0147】(2)キャッシュフラッシュ実行部34
は、最初に取得したビフォアイメージa番地とデータA
0の組を使い、a番地に対するRead−Lineコマ
ンドを発行する。
は、最初に取得したビフォアイメージa番地とデータA
0の組を使い、a番地に対するRead−Lineコマ
ンドを発行する。
【0148】(3)BLK0はa番地のデータA2をM
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。
【0149】(4)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対してRead−Lineコマンドを発行す
る。
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対してRead−Lineコマンドを発行す
る。
【0150】(5)BLK0はa番地のデータをCle
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートし
ない。メインメモリ51がB1を応答する。BLK0の
状態は変化しない。
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートし
ない。メインメモリ51がB1を応答する。BLK0の
状態は変化しない。
【0151】(6)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対してRead−Lineコマンドを発行す
る。
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対してRead−Lineコマンドを発行す
る。
【0152】(7)BLK0はClean−Share
d状態であるので、シェアード応答信号線をアサートす
る。メインメモリ51がA2を応答する。BLK0の状
態は変化しない。
d状態であるので、シェアード応答信号線をアサートす
る。メインメモリ51がA2を応答する。BLK0の状
態は変化しない。
【0153】キャッシュフラッシュ実行部34の動作が
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。これは、初期化直後
と同じ状態であり、したがって、キャッシュフラッシュ
実行部34が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。これは、初期化直後
と同じ状態であり、したがって、キャッシュフラッシュ
実行部34が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
【0154】以上、ビフォアイメージを使った、キャッ
シュフラッシュ実行部34の動作例を示した。
シュフラッシュ実行部34の動作例を示した。
【0155】(障害発生時の復旧処理)計算機に何らか
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
そして、チェックポイント処理加速装置30のメインメ
モリ状態復元部33が、ビフォアイメージを使って、W
rite−Lineコマンドを発行することにより、メ
インメモリ51の状態を直前のチェックポイント処理時
の状態に戻す。
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
そして、チェックポイント処理加速装置30のメインメ
モリ状態復元部33が、ビフォアイメージを使って、W
rite−Lineコマンドを発行することにより、メ
インメモリ51の状態を直前のチェックポイント処理時
の状態に戻す。
【0156】この様子を、先に説明したチェックポイン
ト処理の開始前に故障が発生した場合を例に図9を参照
して説明する。
ト処理の開始前に故障が発生した場合を例に図9を参照
して説明する。
【0157】(1)初期状態を示す。
【0158】(2)プロセッサ10がすべてのキャッシ
ュブロックの無効化を行なう命令を実行する。
ュブロックの無効化を行なう命令を実行する。
【0159】(3)この命令実行の結果、BLK0はI
nvalid状態となる。
nvalid状態となる。
【0160】(4)メインメモリ状態復元部33が、最
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
【0161】(5)メインメモリ51のa番地にA1が
書かれるが、もともとA1であったので変わらない。
書かれるが、もともとA1であったので変わらない。
【0162】(6)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
【0163】(7)メインメモリ51のb番地がB0に
変わる。
変わる。
【0164】(8)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
【0165】(9)メインメモリ51のa番地がA0に
変わる。
変わる。
【0166】この結果、メインメモリ51はチェックポ
イント処理終了時点の状態に戻る。
イント処理終了時点の状態に戻る。
【0167】以上、メインメモリ状態復元部33の動作
例を示した。
例を示した。
【0168】このように、本実施形態のチェックポイン
ト処理加速装置30を適用すれば、特別なキャッシュメ
モリなどを必要とせずに、標準的な構成をもつ計算機シ
ステムにおいて効率的なキャッシュフラッシュが実現さ
れ、かつ高性能なチェックポイントリカバリ方式の計算
機システムが構築可能となる。
ト処理加速装置30を適用すれば、特別なキャッシュメ
モリなどを必要とせずに、標準的な構成をもつ計算機シ
ステムにおいて効率的なキャッシュフラッシュが実現さ
れ、かつ高性能なチェックポイントリカバリ方式の計算
機システムが構築可能となる。
【0169】(第2の実施形態)次に、この発明の第2
の実施形態を説明する。図10には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
の実施形態を説明する。図10には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
【0170】本実施形態のチェックポイント処理加速装
置30は、ビフォアイメージ記憶部35、フラグメモリ
36、ビフォアイメージ取得部32、キャッシュフラッ
シュ実行部34およびメインメモリ状態復元部33で構
成される。
置30は、ビフォアイメージ記憶部35、フラグメモリ
36、ビフォアイメージ取得部32、キャッシュフラッ
シュ実行部34およびメインメモリ状態復元部33で構
成される。
【0171】ビフォアイメージ記憶部35は、第1の実
施形態のビフォアイメージ記憶部35と同一である。
施形態のビフォアイメージ記憶部35と同一である。
【0172】フラグメモリ36は、メインメモリ51を
キャッシュブロック単位ごとに1ビットの情報を保持す
る領域である。なお、実装されているメインメモリ51
の一部分についてフラグメモリ36を備えるだけでもよ
い。フラグメモリ36は、そのアドレスに対するビフォ
アイメージがビフォアイメージ記憶部35に格納され、
かつキャッシュフラッシュ実行部34が未だそのアドレ
スに対してRead−Lineコマンドを発行していな
いときにだけオンになるように制御される。
キャッシュブロック単位ごとに1ビットの情報を保持す
る領域である。なお、実装されているメインメモリ51
の一部分についてフラグメモリ36を備えるだけでもよ
い。フラグメモリ36は、そのアドレスに対するビフォ
アイメージがビフォアイメージ記憶部35に格納され、
かつキャッシュフラッシュ実行部34が未だそのアドレ
スに対してRead−Lineコマンドを発行していな
いときにだけオンになるように制御される。
【0173】したがって、あるアドレスに対するフラグ
メモリ36がオンになっているということは、キャッシ
ュフラッシュ実行部34が、将来、そのアドレスに対し
てRead−Lineコマンドを発行することを表わし
ている。また、初期化終了時やチェックポイント処理終
了時は、すべてのフラグメモリ36の値がオフになって
いる。
メモリ36がオンになっているということは、キャッシ
ュフラッシュ実行部34が、将来、そのアドレスに対し
てRead−Lineコマンドを発行することを表わし
ている。また、初期化終了時やチェックポイント処理終
了時は、すべてのフラグメモリ36の値がオフになって
いる。
【0174】ビフォアイメージ取得部32は、ビフォア
イメージを取得する部分に関しては第1の実施形態と同
じである。しかし、前述したフラグメモリ36の参照/
更新の処理が追加され、また、フラグメモリ36の値に
よって、ビフォアイメージを格納しないことがある。ビ
フォアイメージ取得部32の処理フローを図11に示
す。
イメージを取得する部分に関しては第1の実施形態と同
じである。しかし、前述したフラグメモリ36の参照/
更新の処理が追加され、また、フラグメモリ36の値に
よって、ビフォアイメージを格納しないことがある。ビ
フォアイメージ取得部32の処理フローを図11に示
す。
【0175】図11に示したように、ビフォアイメージ
取得部32は、更新アドレスに対応するフラグメモリ3
6の値を参照し、もしオフであれば、それをオンに変更
するとともに、第1の実施形態と同一の方法でビフォア
イメージを取得する。一方、オンであれば、ビフォアイ
メージを取得・格納する必要はない。それは、下記の理
由による。
取得部32は、更新アドレスに対応するフラグメモリ3
6の値を参照し、もしオフであれば、それをオンに変更
するとともに、第1の実施形態と同一の方法でビフォア
イメージを取得する。一方、オンであれば、ビフォアイ
メージを取得・格納する必要はない。それは、下記の理
由による。
【0176】(1)フラグメモリ36をオンにするの
は、ビフォアイメージ取得部32がビフォアイメージを
取得して、ビフォアイメージ記憶部35に格納する時だ
けである。したがって、フラグメモリ36がオンである
ということは、そのアドレスに対するビフォアイメージ
が格納されているので、メインメモリ状態復元部33は
正しく動作する。
は、ビフォアイメージ取得部32がビフォアイメージを
取得して、ビフォアイメージ記憶部35に格納する時だ
けである。したがって、フラグメモリ36がオンである
ということは、そのアドレスに対するビフォアイメージ
が格納されているので、メインメモリ状態復元部33は
正しく動作する。
【0177】(2)また、フラグメモリ36がオンとい
うことは、キャッシュフラッシュ実行部34が、そのア
ドレスに対して将来Read−Lineコマンドを発行
することを示している。したがって、キャッシュフラッ
シュ実行部34にとっても、フラグメモリ36がオンの
時には、ビフォアイメージを格納する必要はない。
うことは、キャッシュフラッシュ実行部34が、そのア
ドレスに対して将来Read−Lineコマンドを発行
することを示している。したがって、キャッシュフラッ
シュ実行部34にとっても、フラグメモリ36がオンの
時には、ビフォアイメージを格納する必要はない。
【0178】なお、あるアドレスに対応するフラグメモ
リ36が無い場合には、そのアドレスに対応するビフォ
アイメージを常に採取・格納すれば良い。つまり、その
ようなアドレスに関しては、第1実施形態の場合と同じ
動作となる。
リ36が無い場合には、そのアドレスに対応するビフォ
アイメージを常に採取・格納すれば良い。つまり、その
ようなアドレスに関しては、第1実施形態の場合と同じ
動作となる。
【0179】キャッシュフラッシュ実行部34は、第1
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、フラグメモリ3
6をオフにする機構を追加したものである。なお、ある
アドレスに対応するフラグメモリ36が無い場合には、
図12に示す処理フローにおいて、フラグメモリ36を
オフにする部分だけを実行しないようにすればよい。
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、フラグメモリ3
6をオフにする機構を追加したものである。なお、ある
アドレスに対応するフラグメモリ36が無い場合には、
図12に示す処理フローにおいて、フラグメモリ36を
オフにする部分だけを実行しないようにすればよい。
【0180】メインメモリ状態復元部33は、第1の実
施形態と同じである。
施形態と同じである。
【0181】ここで、チェックポイント処理加速装置3
0の動作を説明する。
0の動作を説明する。
【0182】(初期化)プロセッサ10は、すべてのフ
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
【0183】(通常のデータ処理時)プロセッサ10
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図13を参照
し、通常のデータ処理として、プロセッサ10が、a番
地のデータをA0からA1に、b番地のデータをB0か
らB1に、a番地のデータをA1からA2に、この順で
更新する場合について説明する。ただし、a番地、b番
地は、ともにキャッシュブロックBLK0に対応し、B
LK0は、初期状態ではa番地のデータA0をClea
n−Shared状態で保持しているとする。
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図13を参照
し、通常のデータ処理として、プロセッサ10が、a番
地のデータをA0からA1に、b番地のデータをB0か
らB1に、a番地のデータをA1からA2に、この順で
更新する場合について説明する。ただし、a番地、b番
地は、ともにキャッシュブロックBLK0に対応し、B
LK0は、初期状態ではa番地のデータA0をClea
n−Shared状態で保持しているとする。
【0184】(1)初期状態を示す。
【0185】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0186】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
【0187】(4)ビフォアイメージ取得部32は、a
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
【0188】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
【0189】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書戻しのためのWrit
e−Lineコマンドがライトバッファに一時的に保持
され、先にb番地に対するRead−Line−wit
h−Invalidateコマンドが発行される。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書戻しのためのWrit
e−Lineコマンドがライトバッファに一時的に保持
され、先にb番地に対するRead−Line−wit
h−Invalidateコマンドが発行される。
【0190】(7)メインメモリ51がデータB0を応
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
【0191】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
番地に対するWrite−Lineコマンドが発行され
る。
【0192】(9)メインメモリ51のa番地がA1に
変わる。
変わる。
【0193】(10)プロセッサ10がa番地のデータ
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
【0194】(11)メインメモリ51がデータA1を
応答する。ビフォアイメージ取得部32は、a番地に対
応するフラグメモリ36がオンであるため、ビフォアイ
メージを格納しない。
応答する。ビフォアイメージ取得部32は、a番地に対
応するフラグメモリ36がオンであるため、ビフォアイ
メージを格納しない。
【0195】(12)ライトバッファに保持されていた
a番地に対するWrite−Lineコマンドが発行さ
れる。
a番地に対するWrite−Lineコマンドが発行さ
れる。
【0196】(13)メインメモリ51のa番地がA1
に変わる。
に変わる。
【0197】以上、プロセッサ10、メインメモリ5
1、およびビフォアイメージ取得部32の動作例を示し
た。
1、およびビフォアイメージ取得部32の動作例を示し
た。
【0198】(チェックポイント処理時)前述した状態
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地の順にRead−Lineコマンドを発行
する。その様子を図14に示す。ただし、ビフォアイメ
ージの欄の下線は、Fポインタが指す位置を表わす。
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地の順にRead−Lineコマンドを発行
する。その様子を図14に示す。ただし、ビフォアイメ
ージの欄の下線は、Fポインタが指す位置を表わす。
【0199】(1)初期状態を示す。
【0200】(2)キャッシュフラッシュ実行部34
は、最初に、ビフォアイメージa番地とデータA0の組
を使い、a番地に対応するフラグメモリ36をオフにす
るとともに、a番地に対してRead−Lineコマン
ドを発行する。
は、最初に、ビフォアイメージa番地とデータA0の組
を使い、a番地に対応するフラグメモリ36をオフにす
るとともに、a番地に対してRead−Lineコマン
ドを発行する。
【0201】(3)BLK0はa番地のデータA2をM
odified状態で保持しているので、モディファイ
ド応答信号線がアサートされ、メインメモリ51への書
き戻しが行なわれ、メインメモリ51のa番地がA2に
変わる。BLK0の状態は、Clean−Shared
に変化する。
odified状態で保持しているので、モディファイ
ド応答信号線がアサートされ、メインメモリ51への書
き戻しが行なわれ、メインメモリ51のa番地がA2に
変わる。BLK0の状態は、Clean−Shared
に変化する。
【0202】(4)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
【0203】(5)BLK0はa番地のデータをCle
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートさ
れない。メインメモリ51がB1を応答する。BLK0
の状態は変化しない。
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートさ
れない。メインメモリ51がB1を応答する。BLK0
の状態は変化しない。
【0204】キャッシュフラッシュ実行部34の動作が
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。また、すべてのフラ
グメモリ36の値がオフとなる。これは、初期化直後と
同じ状態であり、したがって、キャッシュフラッシュ実
行部34の動作が終了すると、プロセッサ10は直ちに
通常のデータ処理を始めることができる。
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。また、すべてのフラ
グメモリ36の値がオフとなる。これは、初期化直後と
同じ状態であり、したがって、キャッシュフラッシュ実
行部34の動作が終了すると、プロセッサ10は直ちに
通常のデータ処理を始めることができる。
【0205】以上、ビフォアイメージを使った、キャッ
シュフラッシュ実行部34の動作例を示した。
シュフラッシュ実行部34の動作例を示した。
【0206】(障害発生時の復旧処理)計算機に何らか
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
【0207】そして、チェックポイント処理加速装置3
0のメインメモリ状態復元部33が、ビフォアイメージ
を使って、Write−Lineコマンドを発行するこ
とにより、メインメモリ51の状態を直前のチェックポ
イント処理時の状態に戻す。
0のメインメモリ状態復元部33が、ビフォアイメージ
を使って、Write−Lineコマンドを発行するこ
とにより、メインメモリ51の状態を直前のチェックポ
イント処理時の状態に戻す。
【0208】この様子を、先に説明したチェックポイン
ト処理の開始前に故障が発生した場合を例に図15を参
照して説明する。
ト処理の開始前に故障が発生した場合を例に図15を参
照して説明する。
【0209】(1)初期状態を示す。
【0210】(2)プロセッサ10がすべてのキャッシ
ュブロックの無効化を行なう命令を実行する。
ュブロックの無効化を行なう命令を実行する。
【0211】(3)この命令実行の結果、BLK0はI
nvalid状態となる。
nvalid状態となる。
【0212】(4)メインメモリ状態復元部33が、最
後に取得したビフォアイメージb番地とデータB0の組
をもとに、Write−Lineコマンドを発行する。
後に取得したビフォアイメージb番地とデータB0の組
をもとに、Write−Lineコマンドを発行する。
【0213】(5)メインメモリ51のb番地がB0に
変わる。
変わる。
【0214】(6)メインメモリ状態復元部33が、ビ
フォアイメージa番地とデータA0の組をもとに、Wr
ite−Lineコマンド発行する。
フォアイメージa番地とデータA0の組をもとに、Wr
ite−Lineコマンド発行する。
【0215】(7)メインメモリ51のa番地がA0に
変わる。
変わる。
【0216】(8)プロセッサ10は、フラグメモリ5
1をすべてオフにする。
1をすべてオフにする。
【0217】この結果、メインメモリ51はチェックポ
イント処理終了時点の状態に戻る。
イント処理終了時点の状態に戻る。
【0218】以上、メインメモリ状態復元部33の動作
例を示した。
例を示した。
【0219】なお、フラグメモリ36は、すべてのアド
レスに対して設定する必要は必ずしもない。あるアドレ
スについて、対応するフラグメモリ36がない場合、ビ
フォアイメージ取得部32は、そのアドレスに対するビ
フォアイメージを取得し、ビフォアイメージ記憶部35
に格納するようにすればよい。
レスに対して設定する必要は必ずしもない。あるアドレ
スについて、対応するフラグメモリ36がない場合、ビ
フォアイメージ取得部32は、そのアドレスに対するビ
フォアイメージを取得し、ビフォアイメージ記憶部35
に格納するようにすればよい。
【0220】このように、本実施形態のチェックポイン
ト処理加速装置30では、フラグメモリ36を設けるこ
とにより、同じアドレスに対するビフォアイメージが2
回以上ビフォアイメージ記憶部35に格納されることを
回避できる。
ト処理加速装置30では、フラグメモリ36を設けるこ
とにより、同じアドレスに対するビフォアイメージが2
回以上ビフォアイメージ記憶部35に格納されることを
回避できる。
【0221】また、キャッシュフラッシュ実行部34が
実行を終了したときには、すべてのフラグメモリ36が
オフになっているため、プロセッサ10は直ちに通常の
データ処理を開始できる。
実行を終了したときには、すべてのフラグメモリ36が
オフになっているため、プロセッサ10は直ちに通常の
データ処理を開始できる。
【0222】(第3の実施形態)次に、この発明の第3
の実施形態を説明する。図16には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
の実施形態を説明する。図16には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
【0223】本実施形態のチェックポイント処理加速装
置30は、ビフォアイメージ記憶部35、ブロックカウ
ンタ38、ブロックカウンタ制御部37、ビフォアイメ
ージ取得部32、キャッシュフラッシュ実行部34およ
びメインメモリ状態復元部33で構成される。
置30は、ビフォアイメージ記憶部35、ブロックカウ
ンタ38、ブロックカウンタ制御部37、ビフォアイメ
ージ取得部32、キャッシュフラッシュ実行部34およ
びメインメモリ状態復元部33で構成される。
【0224】ビフォアイメージ記憶部35は、第1の実
施形態のビフォアイメージ記憶部35と同一である。
施形態のビフォアイメージ記憶部35と同一である。
【0225】ブロックカウンタ38は、1つ以上のアド
レス範囲の各々に対して設けられたカウンタの集合であ
り、各アドレス範囲に含まれるModified状態の
キャッシュブロックの個数を保持するのに用いられる。
ただし、各アドレス範囲は、互い共通部分を持たないよ
うに設定する。このアドレス範囲の設定の一例を、キャ
ッシュメモリ20がダイレクトマップ方式の場合につい
て説明する。
レス範囲の各々に対して設けられたカウンタの集合であ
り、各アドレス範囲に含まれるModified状態の
キャッシュブロックの個数を保持するのに用いられる。
ただし、各アドレス範囲は、互い共通部分を持たないよ
うに設定する。このアドレス範囲の設定の一例を、キャ
ッシュメモリ20がダイレクトマップ方式の場合につい
て説明する。
【0226】ひとつのキャッシュブロックに対応するア
ドレスの集合をひとつのアドレス範囲とする。この場
合、ブロックカウンタに属するひとつのカウンタは、対
応するキャッシュブロックでModified状態のも
のの個数を保持することになる。プロセッサ数がPの場
合、カウンタは0〜P+αまでの値を取りうる。ここ
で、αは正の整数であり、最近の高速プロセッサが有す
るライトバッファの効果により、システムバスを監視し
ているチェックポイント処理加速装置からは、一時的に
ではあるが、ひとつのキャッシュブロックに対応して、
複数の番地のデータがModified状態で保持され
ているように見えることに対応するものである。αの値
は、P程度であれば十分である。なお、ブロックカウン
タを構成する各カウンタは、ブロックカウンタ制御部3
7により増減される。また、キャッシュフラッシュ実行
部34によって参照される。
ドレスの集合をひとつのアドレス範囲とする。この場
合、ブロックカウンタに属するひとつのカウンタは、対
応するキャッシュブロックでModified状態のも
のの個数を保持することになる。プロセッサ数がPの場
合、カウンタは0〜P+αまでの値を取りうる。ここ
で、αは正の整数であり、最近の高速プロセッサが有す
るライトバッファの効果により、システムバスを監視し
ているチェックポイント処理加速装置からは、一時的に
ではあるが、ひとつのキャッシュブロックに対応して、
複数の番地のデータがModified状態で保持され
ているように見えることに対応するものである。αの値
は、P程度であれば十分である。なお、ブロックカウン
タを構成する各カウンタは、ブロックカウンタ制御部3
7により増減される。また、キャッシュフラッシュ実行
部34によって参照される。
【0227】ブロックカウンタ制御部37は、システム
バス40上のコマンドおよびその応答を監視して、キャ
ッシュブロックがModified状態に変わるのを検
知したときに、そのアドレスに対応する前記カウンタが
ある場合は、それをインクリメントする。
バス40上のコマンドおよびその応答を監視して、キャ
ッシュブロックがModified状態に変わるのを検
知したときに、そのアドレスに対応する前記カウンタが
ある場合は、それをインクリメントする。
【0228】一方、キャッシュブロックがModifi
ed状態からそれ以外の状態に変わるのを検知したとき
には、そのアドレスに対応する前記カウンタがある場合
は、それをデクリメントする。
ed状態からそれ以外の状態に変わるのを検知したとき
には、そのアドレスに対応する前記カウンタがある場合
は、それをデクリメントする。
【0229】ブロックカウンタ制御部37がシステムバ
ス40上のコマンドおよびその応答を検知したときの動
作を下記に示す。
ス40上のコマンドおよびその応答を検知したときの動
作を下記に示す。
【0230】(1)Read−Line もし、モディファイド応答信号線がアサートされれば、
コマンドに含まれるアドレスに対応するカウンタをデク
リメントする。そうでなければ何もしない。
コマンドに含まれるアドレスに対応するカウンタをデク
リメントする。そうでなければ何もしない。
【0231】(2)Read−Line−with−I
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスに対応するカウンタをインクリメントする。
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスに対応するカウンタをインクリメントする。
【0232】(3)Invalidate コマンドに含まれる更新アドレスに対応するカウンタを
インクリメントする。
インクリメントする。
【0233】(4)Write−Line コマンドに含まれるアドレスに対応するカウンタをデク
リメントする。
リメントする。
【0234】なお、Read−Lineコマンドでモデ
ィファイド応答信号線がアサートされた場合は、Mod
ified状態のキャッシュブロックのデータがメイン
メモリに書き戻され、状態がModifiedからCl
ean−Sharedに変化したことを示すから、カウ
ンタをデクリメントする。
ィファイド応答信号線がアサートされた場合は、Mod
ified状態のキャッシュブロックのデータがメイン
メモリに書き戻され、状態がModifiedからCl
ean−Sharedに変化したことを示すから、カウ
ンタをデクリメントする。
【0235】また、Read−Line−with−I
nvalidateコマンドでモディファイド応答信号
線がアサートされた場合は、Modified状態のキ
ャッシュブロックがあるキャッシュメモリから他のキャ
ッシュメモリに移動したということであるから、カウン
タの値は変えない。
nvalidateコマンドでモディファイド応答信号
線がアサートされた場合は、Modified状態のキ
ャッシュブロックがあるキャッシュメモリから他のキャ
ッシュメモリに移動したということであるから、カウン
タの値は変えない。
【0236】ビフォアイメージ取得部32は、第1の実
施形態のビフォアイメージ取得部32と同一である。
施形態のビフォアイメージ取得部32と同一である。
【0237】キャッシュフラッシュ実行部34は、第1
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、対応するカウン
タの値を参照し、もし、0であれば、Read−Lin
eコマンドを発行しないようにする機構を追加したもの
である。図17には、キャッシュフラッシュ実行部34
の処理フローが示されている。
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、対応するカウン
タの値を参照し、もし、0であれば、Read−Lin
eコマンドを発行しないようにする機構を追加したもの
である。図17には、キャッシュフラッシュ実行部34
の処理フローが示されている。
【0238】メインメモリ状態復元部33は、第1の実
施形態と同じである。
施形態と同じである。
【0239】ここで、チェックポイント処理加速装置3
0の動作を説明する。
0の動作を説明する。
【0240】(初期化)プロセッサ10は、ブロックカ
ウンタ38を構成するすべてのカウンタの値を0とす
る。これと同期して、プロセッサ10はソフトウェアを
実行することにより、すべてのキャッシュブロックをM
odified状態以外の状態にする。
ウンタ38を構成するすべてのカウンタの値を0とす
る。これと同期して、プロセッサ10はソフトウェアを
実行することにより、すべてのキャッシュブロックをM
odified状態以外の状態にする。
【0241】(通常のデータ処理時)プロセッサ10
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図18を参照
し、通常のデータ処理として、プロセッサ10が、a番
地のデータをA0からA1に、b番地のデータをB0か
らB1に、a番地のデータをA1からA2に、この順で
更新する場合について説明する。ただし、a番地、b番
地は、ともにキャッシュブロックBLK0に対応し、B
LK0は、初期状態ではa番地のデータA0をClea
n−Shared状態で保持しているとする。また、キ
ャッシュブロックBLK0に対応して、カウンタが1つ
設けられているとする。
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図18を参照
し、通常のデータ処理として、プロセッサ10が、a番
地のデータをA0からA1に、b番地のデータをB0か
らB1に、a番地のデータをA1からA2に、この順で
更新する場合について説明する。ただし、a番地、b番
地は、ともにキャッシュブロックBLK0に対応し、B
LK0は、初期状態ではa番地のデータA0をClea
n−Shared状態で保持しているとする。また、キ
ャッシュブロックBLK0に対応して、カウンタが1つ
設けられているとする。
【0242】(1)初期状態を示す。
【0243】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0244】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
ブロックカウンタ制御部37は、カウンタをインクリメ
ントして1とする。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
ブロックカウンタ制御部37は、カウンタをインクリメ
ントして1とする。
【0245】(4)ビフォアイメージ取得部32は、a
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
【0246】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
【0247】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
ti−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
ti−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0248】(7)メインメモリ51がデータB0を含
む応答を返す。ブロックカウンタ制御部37は、カウン
タをインクリメントして2とする。ビフォアイメージ取
得部32は、b番地とデータB0の組をビフォアイメー
ジ記憶部35に格納する。
む応答を返す。ブロックカウンタ制御部37は、カウン
タをインクリメントして2とする。ビフォアイメージ取
得部32は、b番地とデータB0の組をビフォアイメー
ジ記憶部35に格納する。
【0249】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
番地に対するWrite−Lineコマンドが発行され
る。
【0250】(9)メインメモリ51のa番地のデータ
がA1に変わる。ブロックカウンタ制御部37は、カウ
ンタをデクリメントして1とする。
がA1に変わる。ブロックカウンタ制御部37は、カウ
ンタをデクリメントして1とする。
【0251】(10)プロセッサ10がa番地のデータ
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
【0252】(11)メインメモリ51がデータA1を
含む応答を返す。ブロックカウンタ制御部37は、カウ
ンタをインクリメントして2とする。ビフォアイメージ
取得部32は、a番地とデータA1の組をビフォアイメ
ージ記憶部35に格納する。
含む応答を返す。ブロックカウンタ制御部37は、カウ
ンタをインクリメントして2とする。ビフォアイメージ
取得部32は、a番地とデータA1の組をビフォアイメ
ージ記憶部35に格納する。
【0253】(12)ライトバッファに保持されていた
b番地に対するWrite−Lineコマンドが発行さ
れる。
b番地に対するWrite−Lineコマンドが発行さ
れる。
【0254】(13)メインメモリ51のb番地のデー
タがB1に変わる。このとき、ブロックカウンタ制御部
37は、カウンタをデクリメントして1とする。
タがB1に変わる。このとき、ブロックカウンタ制御部
37は、カウンタをデクリメントして1とする。
【0255】以上、プロセッサ10、メインメモリ5
1、ブロックカウンタ制御部37、およびビフォアイメ
ージ取得部32の動作例を示した。
1、ブロックカウンタ制御部37、およびビフォアイメ
ージ取得部32の動作例を示した。
【0256】(チェックポイント処理時)前述した状態
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図19に示す。ただし、ビフ
ォアイメージの欄の下線は、Fポインタの指す位置を表
わす。
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図19に示す。ただし、ビフ
ォアイメージの欄の下線は、Fポインタの指す位置を表
わす。
【0257】(1)初期状態を示す。
【0258】(2)キャッシュフラッシュ実行部34
は、最初に、取得したビフォアイメージa番地とデータ
A0の組を使う。a番地に対応するカウンタが1である
ので、a番地に対してRead−Lineコマンドを発
行する。
は、最初に、取得したビフォアイメージa番地とデータ
A0の組を使う。a番地に対応するカウンタが1である
ので、a番地に対してRead−Lineコマンドを発
行する。
【0259】(3)BLK0はa番地のデータA2をM
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。
【0260】ブロックカウンタ制御部37は、Read
−Lineコマンドに対して、モディファイド応答信号
線がアサートされたので、カウンタをデクリメントして
0とする。
−Lineコマンドに対して、モディファイド応答信号
線がアサートされたので、カウンタをデクリメントして
0とする。
【0261】(4)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使おう
とするが、b番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
は、ビフォアイメージb番地とデータB0の組を使おう
とするが、b番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
【0262】(5)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA1の組を使おう
とするが、a番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
は、ビフォアイメージa番地とデータA1の組を使おう
とするが、a番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
【0263】(6)キャッシュフラッシュ実行部34の
動作が終了すると、Modified状態であったすべ
てのキャッシュブロックの内容がメインメモリ51に書
き戻されるとともに、それらキャッシュブロックの状態
がClean−Shared状態になる。また、すべて
のカウンタの値は0となる。これは、初期化直後と同じ
状態であり、したがって、キャッシュフラッシュ実行部
34の動作が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
動作が終了すると、Modified状態であったすべ
てのキャッシュブロックの内容がメインメモリ51に書
き戻されるとともに、それらキャッシュブロックの状態
がClean−Shared状態になる。また、すべて
のカウンタの値は0となる。これは、初期化直後と同じ
状態であり、したがって、キャッシュフラッシュ実行部
34の動作が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
【0264】以上、ビフォアイメージを使った、キャッ
シュフラッシュ実行部34の動作例を示した。
シュフラッシュ実行部34の動作例を示した。
【0265】このように、本実施形態では、ブロックカ
ウンタ38を設けることにより、キャッシュフラッシュ
実行部34が発行するRead−Lineコマンドの数
を減らすことができるため、その分、チェックポイント
処理の所要時間を短縮できる。
ウンタ38を設けることにより、キャッシュフラッシュ
実行部34が発行するRead−Lineコマンドの数
を減らすことができるため、その分、チェックポイント
処理の所要時間を短縮できる。
【0266】(障害発生時の復旧処理)次に、先に説明
したチェックポイント処理の開始前に故障が発生した場
合を例に図20を参照して説明する。障害が発生したと
き、プロセッサ10はすべてのキャッシュブロックを無
効化するので、キャッシュブロックBLK0の状態もI
nvalidとなっている。
したチェックポイント処理の開始前に故障が発生した場
合を例に図20を参照して説明する。障害が発生したと
き、プロセッサ10はすべてのキャッシュブロックを無
効化するので、キャッシュブロックBLK0の状態もI
nvalidとなっている。
【0267】(1)初期状態を示す。
【0268】(2)プロセッサ10がすべてのキャッシ
ュブロックの無効化を行なう命令を実行する。
ュブロックの無効化を行なう命令を実行する。
【0269】(3)この命令実行の結果、BLK0はI
nvalid状態となる。
nvalid状態となる。
【0270】(4)メインメモリ状態復元部33が、最
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
【0271】(5)メインメモリ51のa番地にA1が
書かれるが、もともとA1であったので変わらない。
書かれるが、もともとA1であったので変わらない。
【0272】(6)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
【0273】(7)メインメモリ51のb番地がB0に
変わる。
変わる。
【0274】(8)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
【0275】(9)メインメモリ51のa番地がA0に
変わる。
変わる。
【0276】(10)プロセッサ10が、すべてのカウ
ンタの値を0にする。
ンタの値を0にする。
【0277】この結果、メインメモリ51は、チェック
ポイント処理終了の時点の状態に戻る。
ポイント処理終了の時点の状態に戻る。
【0278】以上、メインメモリ状態復元部33の動作
例を示した。
例を示した。
【0279】なお、ブロックカウンタ38は、すべての
アドレスに対して設定する必要は必ずしもない。あるア
ドレスについて、対応するカウンタがない場合、キャッ
シュフラッシュ実行部34は、そのアドレスに対するR
ead−Lineコマンドを常に発行するようにすれば
良い。
アドレスに対して設定する必要は必ずしもない。あるア
ドレスについて、対応するカウンタがない場合、キャッ
シュフラッシュ実行部34は、そのアドレスに対するR
ead−Lineコマンドを常に発行するようにすれば
良い。
【0280】このように、本実施形態のチェックポイン
ト処理加速装置30では、ブロックカウンタ38を設け
ることにより、キャッシュフラッシュ実行部34がMo
dified状態のキャッシュブロックが実在しないア
ドレスに対して、Read−Lineコマンドを発行す
るという無駄をある程度軽減できる。また、キャッシュ
フラッシュ実行部34が実行中も、ブロックカウンタ制
御部37がブロックカウンタ38のインクリメント/デ
クリメントを適切に行なうことにより、キャッシュフラ
ッシュ実行部34が実行を終了したとき、すべてのブロ
ックカウンタの値は0となっている。このため、キャッ
シュフラッシュ実行部34が実行を終了すると、プロセ
ッサは直ちに通常のデータ処理を開始できる。
ト処理加速装置30では、ブロックカウンタ38を設け
ることにより、キャッシュフラッシュ実行部34がMo
dified状態のキャッシュブロックが実在しないア
ドレスに対して、Read−Lineコマンドを発行す
るという無駄をある程度軽減できる。また、キャッシュ
フラッシュ実行部34が実行中も、ブロックカウンタ制
御部37がブロックカウンタ38のインクリメント/デ
クリメントを適切に行なうことにより、キャッシュフラ
ッシュ実行部34が実行を終了したとき、すべてのブロ
ックカウンタの値は0となっている。このため、キャッ
シュフラッシュ実行部34が実行を終了すると、プロセ
ッサは直ちに通常のデータ処理を開始できる。
【0281】なお、前述した実施形態では、ブロックカ
ウンタ38を、ダイレクトマップ方式のキャッシュメモ
リ20についてキャッシュブロックの各々に対応させて
設ける方式を示した。
ウンタ38を、ダイレクトマップ方式のキャッシュメモ
リ20についてキャッシュブロックの各々に対応させて
設ける方式を示した。
【0282】ここでは、キャッシュメモリ20がnウェ
イのセットアソシアティブ方式の場合について示す。
イのセットアソシアティブ方式の場合について示す。
【0283】nウェイのセットアソシアティブ方式のキ
ャッシュメモリの場合、あるアドレスのデータは、ひと
つのウェイを形成するn個のキャッシュブロックのいず
れかに格納されるが、そのうちのどのキャッシュブロッ
クに格納されるかは、その都度変わりうる。
ャッシュメモリの場合、あるアドレスのデータは、ひと
つのウェイを形成するn個のキャッシュブロックのいず
れかに格納されるが、そのうちのどのキャッシュブロッ
クに格納されるかは、その都度変わりうる。
【0284】そこで、ひとつのウェイを形成するn個の
キャッシュブロックに対して、ひとつのカウンタを設け
る。すなわち、あるカウンタは、対応するウェイでMo
dified状態のキャッシュブロックの個数を保持す
ることになる。プロセッサ数がPの場合、カウンタは0
〜P×n+αまでの値を取りうる。αはダイレクトマッ
プ方式の場合に説明したように、プロセッサのライトバ
ッファに対応するためのマージンである。
キャッシュブロックに対して、ひとつのカウンタを設け
る。すなわち、あるカウンタは、対応するウェイでMo
dified状態のキャッシュブロックの個数を保持す
ることになる。プロセッサ数がPの場合、カウンタは0
〜P×n+αまでの値を取りうる。αはダイレクトマッ
プ方式の場合に説明したように、プロセッサのライトバ
ッファに対応するためのマージンである。
【0285】また、ブロックカウンタ38をキャッシュ
ブロックあるいはひとつのウェイを形成するキャッシュ
ブロックの集合に対応させて設けることに代えて、メイ
ンメモリをキャッシュブロックの大きさに分け、それぞ
れに対してカウンタを設けることも可能である。この場
合、計算機のプロセッサ数に関係なく、ひとつのアドレ
スに対するModified状態のキャッシュブロック
の個数は0か1かであるので、それぞれ1ビットで表現
することができ、ブロックカウンタ制御部37を簡単化
することができる。
ブロックあるいはひとつのウェイを形成するキャッシュ
ブロックの集合に対応させて設けることに代えて、メイ
ンメモリをキャッシュブロックの大きさに分け、それぞ
れに対してカウンタを設けることも可能である。この場
合、計算機のプロセッサ数に関係なく、ひとつのアドレ
スに対するModified状態のキャッシュブロック
の個数は0か1かであるので、それぞれ1ビットで表現
することができ、ブロックカウンタ制御部37を簡単化
することができる。
【0286】これは、メインメモリをキャッシュブロッ
クの大きさに分けて、1ビットの情報を持たせるという
点で、第2の実施形態と類似するが、下記の点で異な
る。
クの大きさに分けて、1ビットの情報を持たせるという
点で、第2の実施形態と類似するが、下記の点で異な
る。
【0287】すなわち、1ビット情報のオン/オフする
タイミング、および、そのオン/オフによって制御する
対象が異なる。具体的には、第2の実施形態では、ビフ
ォアイメージを取得するか否かの判断に使用するのに対
し、キャッシュフラッシュ実行部34がRead−Li
neコマンドを発行するか否かの判断に使用する。
タイミング、および、そのオン/オフによって制御する
対象が異なる。具体的には、第2の実施形態では、ビフ
ォアイメージを取得するか否かの判断に使用するのに対
し、キャッシュフラッシュ実行部34がRead−Li
neコマンドを発行するか否かの判断に使用する。
【0288】また、チェックポイント方式の計算機の障
害が発生した場合、すべてのメインメモリを直前のチェ
ックポイントに戻すのではなく、メインメモリの一部の
領域、たとえば障害発生と回復処理の履歴を保持する領
域や、回復処理を実行するプログラムの作業領域など、
戻してはならない領域が存在する。
害が発生した場合、すべてのメインメモリを直前のチェ
ックポイントに戻すのではなく、メインメモリの一部の
領域、たとえば障害発生と回復処理の履歴を保持する領
域や、回復処理を実行するプログラムの作業領域など、
戻してはならない領域が存在する。
【0289】このチェックポイント処理加速装置30
で、それを実現する方式には下記の2種類の候補があ
る。
で、それを実現する方式には下記の2種類の候補があ
る。
【0290】(1)ビフォアイメージ取得部32に、ビ
フォアイメージを取得するか否かを判断させる機構を設
ける。この方法は、取得するビフォアイメージが少なく
なる長所があるが、その判断を高速に実行しないと、プ
ロセッサ10やシステムバス40の動作に追従できなく
なる危険性がある。
フォアイメージを取得するか否かを判断させる機構を設
ける。この方法は、取得するビフォアイメージが少なく
なる長所があるが、その判断を高速に実行しないと、プ
ロセッサ10やシステムバス40の動作に追従できなく
なる危険性がある。
【0291】(2)メインメモリ状態復元部33に、同
様の判断機構を持たせ、メインメモリ51にビフォアイ
メージを書き込むWrite−Lineコマンドを発行
するか否かを判断する。この方法では、実行速度を余り
気にする必要はない。また、同様の判断機構を、キャッ
シュフラッシュ実行部34に持たせれば、チェックポイ
ント処理の所要時間が若干短縮できる。
様の判断機構を持たせ、メインメモリ51にビフォアイ
メージを書き込むWrite−Lineコマンドを発行
するか否かを判断する。この方法では、実行速度を余り
気にする必要はない。また、同様の判断機構を、キャッ
シュフラッシュ実行部34に持たせれば、チェックポイ
ント処理の所要時間が若干短縮できる。
【0292】ここでは、状態を復元してはならない領域
は、制御ソフトウェアの方で、物理的に連続な領域で、
かつ、領域の先頭アドレスをある程度自由に設定できる
という前提で、前者にも適用可能な判断が高速でハード
ウェア量も余り必要としない方式を示す。
は、制御ソフトウェアの方で、物理的に連続な領域で、
かつ、領域の先頭アドレスをある程度自由に設定できる
という前提で、前者にも適用可能な判断が高速でハード
ウェア量も余り必要としない方式を示す。
【0293】図21のように、この機構は、判断の対象
となる更新アドレスを保持するアドレスレジスタ、アド
レスレジスタの一部ビットをマスクするためのマスクレ
ジスタと32ビットのAND回路、その結果と比較する
ための比較参照レジスタと32ビット比較器で構成され
る。そして、比較器で一致と判断したときは、ビフォア
イメージを採取しないようにする。なお、この機構でも
判断が遅すぎる場合には、たとえばInvalidat
eコマンドに対するRead−Line−Non−Co
herentコマンドを先に発行して、ビフォアイメー
ジを格納する直前にこの機構の結果を使用しても良い。
となる更新アドレスを保持するアドレスレジスタ、アド
レスレジスタの一部ビットをマスクするためのマスクレ
ジスタと32ビットのAND回路、その結果と比較する
ための比較参照レジスタと32ビット比較器で構成され
る。そして、比較器で一致と判断したときは、ビフォア
イメージを採取しないようにする。なお、この機構でも
判断が遅すぎる場合には、たとえばInvalidat
eコマンドに対するRead−Line−Non−Co
herentコマンドを先に発行して、ビフォアイメー
ジを格納する直前にこの機構の結果を使用しても良い。
【0294】これまで、キャッシュメモリ20上でデー
タ更新が発生した場合に、システムバス40に発行され
るInvalidateコマンド、およびRead−L
ine−with−Invalidateコマンドが観
測されたとき、ビフォアイメージ取得部32が更新アド
レスと更新前データを取得する方法を示してきた。しか
しながら、計算機によっては、I/O機器からメインメ
モリ51へのデータ転送や、プロセッサ10からのキャ
ッシュメモリ20を通さないメインメモリ51への書き
込みが起こる場合があるので、次に、その対策について
説明する。
タ更新が発生した場合に、システムバス40に発行され
るInvalidateコマンド、およびRead−L
ine−with−Invalidateコマンドが観
測されたとき、ビフォアイメージ取得部32が更新アド
レスと更新前データを取得する方法を示してきた。しか
しながら、計算機によっては、I/O機器からメインメ
モリ51へのデータ転送や、プロセッサ10からのキャ
ッシュメモリ20を通さないメインメモリ51への書き
込みが起こる場合があるので、次に、その対策について
説明する。
【0295】(対策1)ここでは、下記の前提に基づい
て、第1の対策について説明する。
て、第1の対策について説明する。
【0296】(1)メインメモリ51への書き込みに
は、Write−Lineコマンドとは別のコマンド
(ここでは、それをWrite−Non−Cohere
ntコマンドと呼ぶ)が使われる。
は、Write−Lineコマンドとは別のコマンド
(ここでは、それをWrite−Non−Cohere
ntコマンドと呼ぶ)が使われる。
【0297】(2)システムバス40の仕様として、R
etry応答線という制御信号線があり、Write−
Non−Coherentコマンドがシステムバスに発
行されたとき、Retry信号線をアサートすることに
より、そのコマンドの実行中止を要求できる。この場
合、暫くして、中止させられたコマンドが再度発行され
る。
etry応答線という制御信号線があり、Write−
Non−Coherentコマンドがシステムバスに発
行されたとき、Retry信号線をアサートすることに
より、そのコマンドの実行中止を要求できる。この場
合、暫くして、中止させられたコマンドが再度発行され
る。
【0298】ビフォアイメージ取得部32は、Writ
e−Non−Coherentコマンドを検出すると、
Retry応答線をアサートする。そして、その直後
に、Write−Non−Coherentコマンドに
含まれている更新アドレスを使って、Read−Lin
e−Non−Coherentコマンドを発行する。
e−Non−Coherentコマンドを検出すると、
Retry応答線をアサートする。そして、その直後
に、Write−Non−Coherentコマンドに
含まれている更新アドレスを使って、Read−Lin
e−Non−Coherentコマンドを発行する。
【0299】そして、メインメモリ51からの応答に含
まれるデータと前記更新アドレスの組をビフォアイメー
ジとしてビフォアイメージ記憶部35に格納する。
まれるデータと前記更新アドレスの組をビフォアイメー
ジとしてビフォアイメージ記憶部35に格納する。
【0300】一方、ビフォアイメージ取得部32は、先
程と同じアドレスを含むWrite−Non−Cohe
rentコマンドを検出したときには、Retry応答
線をアサートしない。
程と同じアドレスを含むWrite−Non−Cohe
rentコマンドを検出したときには、Retry応答
線をアサートしない。
【0301】(対策2)I/O機器からメインメモリ5
1へのデータ転送や、プロセッサ10からのキャッシュ
メモリ20を通さないメインメモリ51への書き込み
は、プロセッサ10の制御下で行なわれる。
1へのデータ転送や、プロセッサ10からのキャッシュ
メモリ20を通さないメインメモリ51への書き込み
は、プロセッサ10の制御下で行なわれる。
【0302】したがって、Write−Non−Coh
erentコマンドが発行される前に、プロセッサ10
がそのアドレスに対してキャッシュメモリ20を経由し
たデータ更新を行なうことにより、ビフォアイメージ取
得部32にビフォアイメージを取得させる。
erentコマンドが発行される前に、プロセッサ10
がそのアドレスに対してキャッシュメモリ20を経由し
たデータ更新を行なうことにより、ビフォアイメージ取
得部32にビフォアイメージを取得させる。
【0303】次に、プロセッサ10は、更新したデータ
を保持しているキャッシュブロックを無効化し、その
後、I/O機器からメインメモリ51へのデータ転送な
どを起動する。
を保持しているキャッシュブロックを無効化し、その
後、I/O機器からメインメモリ51へのデータ転送な
どを起動する。
【0304】(対策3)ビフォアイメージ取得部32
は、プロセッサ10から指定されたアドレス範囲につい
て、ビフォアイメージの取得と格納を実行する機能を付
加する。通常、I/O機器からメインメモリ51へのデ
ータ転送は、連続したアドレスに対して行なわれるの
で、プロセッサ10からの1回の指示で複数のビフォア
イメージの取得が可能となる。したがって、対策2より
処理が高速である。
は、プロセッサ10から指定されたアドレス範囲につい
て、ビフォアイメージの取得と格納を実行する機能を付
加する。通常、I/O機器からメインメモリ51へのデ
ータ転送は、連続したアドレスに対して行なわれるの
で、プロセッサ10からの1回の指示で複数のビフォア
イメージの取得が可能となる。したがって、対策2より
処理が高速である。
【0305】以上、第3の実施形態について説明した。
【0306】(第4の実施形態)次に、この発明の第4
の実施形態を説明する。前述した第1乃至第3の実施形
態では、通常のデータ処理時、ビフォアイメージ取得部
32を動作させることによってビフォアイメージを取得
し、チェックポイント処理時には、プロセッサ10がキ
ャッシュフラッシュ実行部34を起動し、その終了を待
って通常のデータ処理を再開する制御方式のもとでの動
作説明をした。ここでは、チェックポイント処理の所要
時間を短縮する、より最適化されたチェックポイント処
理加速装置30の制御方法、およびその制御方法に適合
したチェックポイント処理加速装置の機能および構成法
を示す。なお、この制御方式をフラッシュ前倒し方式と
呼ぶことにする。
の実施形態を説明する。前述した第1乃至第3の実施形
態では、通常のデータ処理時、ビフォアイメージ取得部
32を動作させることによってビフォアイメージを取得
し、チェックポイント処理時には、プロセッサ10がキ
ャッシュフラッシュ実行部34を起動し、その終了を待
って通常のデータ処理を再開する制御方式のもとでの動
作説明をした。ここでは、チェックポイント処理の所要
時間を短縮する、より最適化されたチェックポイント処
理加速装置30の制御方法、およびその制御方法に適合
したチェックポイント処理加速装置の機能および構成法
を示す。なお、この制御方式をフラッシュ前倒し方式と
呼ぶことにする。
【0307】このチェックポイント処理加速装置30を
適用したチェックポイント/リカバリ方式の計算機で
は、通常のデータ処理を継続する時間は、典型的には数
ミリ秒〜数10ミリ秒である。チェックポイント処理が
終了した時点では、すべてのキャッシュブロックが、I
nvalid状態、またはClean−Shared状
態であり、Modified状態のものはない。
適用したチェックポイント/リカバリ方式の計算機で
は、通常のデータ処理を継続する時間は、典型的には数
ミリ秒〜数10ミリ秒である。チェックポイント処理が
終了した時点では、すべてのキャッシュブロックが、I
nvalid状態、またはClean−Shared状
態であり、Modified状態のものはない。
【0308】そして、通常のデータ処理を再開すると、
次第にModified状態のキャッシュブロックが増
加し、次のチェックポイント処理を始める時には、典型
的には、10%〜50%のキャッシュブロックがMod
ified状態になっている。
次第にModified状態のキャッシュブロックが増
加し、次のチェックポイント処理を始める時には、典型
的には、10%〜50%のキャッシュブロックがMod
ified状態になっている。
【0309】チェックポイント処理の所要時間の大部分
は、ビフォアイメージ記憶部35に格納されているビフ
ォアイメージのアドレスに対して、Read−Line
コマンドを発行する処理が占める。これを高速化する方
法として、第2の実施形態ではフラグメモリ36を使用
する方法を、また、第3の実施形態ではブロックカウン
タ38を使用する方法を示した。そして、これらは無駄
なRead−Lineコマンドの発行を減らすことを目
的としていた。
は、ビフォアイメージ記憶部35に格納されているビフ
ォアイメージのアドレスに対して、Read−Line
コマンドを発行する処理が占める。これを高速化する方
法として、第2の実施形態ではフラグメモリ36を使用
する方法を、また、第3の実施形態ではブロックカウン
タ38を使用する方法を示した。そして、これらは無駄
なRead−Lineコマンドの発行を減らすことを目
的としていた。
【0310】ここでは、キャッシュフラッシュ実行部3
4の起動を、チェックポイント処理の開始前、すなわ
ち、通常のデータ処理中に行なう方法を説明する。ま
た、第1乃至第3の実施形態で説明したチェックポイン
ト処理加速装置が、いずれもこの制御方式のもとで正し
く動作すること、および、この制御方式により適合した
チェックポイント処理加速装置の構成法について説明す
る。
4の起動を、チェックポイント処理の開始前、すなわ
ち、通常のデータ処理中に行なう方法を説明する。ま
た、第1乃至第3の実施形態で説明したチェックポイン
ト処理加速装置が、いずれもこの制御方式のもとで正し
く動作すること、および、この制御方式により適合した
チェックポイント処理加速装置の構成法について説明す
る。
【0311】最初に、図22に基づいて、プロセッサ1
0、ビフォアイメージ取得部32、およびキャッシュフ
ラッシュ実行部34の動作の時間的な関係を説明する。
0、ビフォアイメージ取得部32、およびキャッシュフ
ラッシュ実行部34の動作の時間的な関係を説明する。
【0312】プロセッサ10は、通常のデータ処理およ
びビフォアイメージ処理の前半は、ビフォアイメージ取
得部32を実行させておく。また、プロセッサ10は、
通常のデータ処理の途中で、キャッシュフラッシュ実行
部34を起動する。すると、その後は、プロセッサ10
が通常のデータ処理にともなって、データの更新を行な
い、それをビフォアイメージ取得部32がビフォアイメ
ージ記憶部35のWポインタ(第1の実施形態で説明)
が指すエントリに格納するという処理と、キャッシュフ
ラッシュ実行部34がビフォアイメージ記憶部35のF
ポインタが指すエントリに格納されているアドレスに対
してRead−Lineコマンドを発行することによ
り、Modified状態のキャッシュブロックの内容
をメインメモリに書き戻すという処理が並行して行なわ
れる。
びビフォアイメージ処理の前半は、ビフォアイメージ取
得部32を実行させておく。また、プロセッサ10は、
通常のデータ処理の途中で、キャッシュフラッシュ実行
部34を起動する。すると、その後は、プロセッサ10
が通常のデータ処理にともなって、データの更新を行な
い、それをビフォアイメージ取得部32がビフォアイメ
ージ記憶部35のWポインタ(第1の実施形態で説明)
が指すエントリに格納するという処理と、キャッシュフ
ラッシュ実行部34がビフォアイメージ記憶部35のF
ポインタが指すエントリに格納されているアドレスに対
してRead−Lineコマンドを発行することによ
り、Modified状態のキャッシュブロックの内容
をメインメモリに書き戻すという処理が並行して行なわ
れる。
【0313】そして、プロセッサ10がチェックポイン
ト処理を開始すると、まず、通常のデータ処理を中断し
た時のコンテキストのメインメモリ51(実際には、キ
ャッシュメモリ20)への書き込み後、キャッシュフラ
ッシュ実行部34が処理を終了するのを待つ。
ト処理を開始すると、まず、通常のデータ処理を中断し
た時のコンテキストのメインメモリ51(実際には、キ
ャッシュメモリ20)への書き込み後、キャッシュフラ
ッシュ実行部34が処理を終了するのを待つ。
【0314】次に、フラッシュ前倒し方式のプロセッサ
の処理フローを図23に基づいて説明する。
の処理フローを図23に基づいて説明する。
【0315】通常のデータ処理では、ビフォアイメージ
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになるとキャッシュフラッシュ実行部34
を起動する。このキャッシュフラッシュ実行部34を起
動するタイミングについては後述する。そして、さらに
アプリケーションプログラムやオペレーティングシステ
ムの実行を続け、適当なタイミングになると、通常のデ
ータ処理を中断し、チェックポイント処理を開始する。
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになるとキャッシュフラッシュ実行部34
を起動する。このキャッシュフラッシュ実行部34を起
動するタイミングについては後述する。そして、さらに
アプリケーションプログラムやオペレーティングシステ
ムの実行を続け、適当なタイミングになると、通常のデ
ータ処理を中断し、チェックポイント処理を開始する。
【0316】チェックポイント処理では、まず、プロセ
ッサ10を割り込み禁止状態にして、外部機器などから
の割込みを受けつけないようにする。これは、チェック
ポイント処理中は、通常のデータ処理を一切実行しない
ようにするためである。ただし、計算機の故障発生を通
知する割り込みについては、通常の割込みにより高い優
先度を設定するなど、割込み禁止状態にあっても受け付
けられるようになっている必要がある。
ッサ10を割り込み禁止状態にして、外部機器などから
の割込みを受けつけないようにする。これは、チェック
ポイント処理中は、通常のデータ処理を一切実行しない
ようにするためである。ただし、計算機の故障発生を通
知する割り込みについては、通常の割込みにより高い優
先度を設定するなど、割込み禁止状態にあっても受け付
けられるようになっている必要がある。
【0317】次に、プロセッサ10は、通常のデータ処
理を中断した時点でのコンテキスト、すなわちレジスタ
の内容のメインメモリ51の然るべきアドレスへの書き
込みを行なう。ただし、本実施形態では、コピーバック
型のキャッシュメモリが使用されるので、この時点では
通常のデータ更新と同じように、キャッシュブロックに
Modified状態で保持され、ビフォアイメージ記
憶部35にそのアドレスのビフォアイメージが記憶され
ている。
理を中断した時点でのコンテキスト、すなわちレジスタ
の内容のメインメモリ51の然るべきアドレスへの書き
込みを行なう。ただし、本実施形態では、コピーバック
型のキャッシュメモリが使用されるので、この時点では
通常のデータ更新と同じように、キャッシュブロックに
Modified状態で保持され、ビフォアイメージ記
憶部35にそのアドレスのビフォアイメージが記憶され
ている。
【0318】その後、プロセッサ10は、キャッシュフ
ラッシュ実行部34がビフォアイメージ記憶部35内の
ビフォアイメージを使って、すべてのModified
状態のキャッシュブロックのデータがメインメモリ51
に書き戻されるのを待つ。プロセッサ10のコンテキス
トも、このとき、メインメモリ51に書き戻される。
ラッシュ実行部34がビフォアイメージ記憶部35内の
ビフォアイメージを使って、すべてのModified
状態のキャッシュブロックのデータがメインメモリ51
に書き戻されるのを待つ。プロセッサ10のコンテキス
トも、このとき、メインメモリ51に書き戻される。
【0319】キャッシュフラッシュ実行部34が実行を
終了すると、メインメモリ51に保存したコンテキスト
を対応するレジスタに戻し、割り込み禁止状態を解除す
ることにより、通常のデータ処理を再開する。
終了すると、メインメモリ51に保存したコンテキスト
を対応するレジスタに戻し、割り込み禁止状態を解除す
ることにより、通常のデータ処理を再開する。
【0320】フラッシュ前倒し方式の効果を、元の制御
方式と対比させて模式的に表わすと、図24のようにな
る。
方式と対比させて模式的に表わすと、図24のようにな
る。
【0321】元の制御方式(a)もフラッシュ前倒し方
式(b)も、通常のデータ処理を開始した直後は、新た
に取得されるビフォアイメージの量が、ほぼ直線的に増
加する。
式(b)も、通常のデータ処理を開始した直後は、新た
に取得されるビフォアイメージの量が、ほぼ直線的に増
加する。
【0322】元の制御方式では、この状態がチェックポ
イント処理の直前まで続くのに対して、フラッシュ前倒
し方式では、通常のデータ処理の途中でキャッシュフラ
ッシュ実行部34を起動することにより、ビフォアイメ
ージ取得部32が新たにビフォアイメージを取得する一
方でキャッシュフラッシュ実行部34がRead−Li
neコマンドを発行し、その結果、キャッシュフラッシ
ュ実行部34が処理すべきビフォアイメージの量(Wポ
インタとFポインタの差)の増加が鈍るもしくは減る。
模式図では減る場合を示した。キャッシュフラッシュ実
行部34が処理すべきビフォアイメージの量を減らすよ
うにするか否かは、キャッシュフラッシュ実行部34の
構成法で制御できるので後で説明する。
イント処理の直前まで続くのに対して、フラッシュ前倒
し方式では、通常のデータ処理の途中でキャッシュフラ
ッシュ実行部34を起動することにより、ビフォアイメ
ージ取得部32が新たにビフォアイメージを取得する一
方でキャッシュフラッシュ実行部34がRead−Li
neコマンドを発行し、その結果、キャッシュフラッシ
ュ実行部34が処理すべきビフォアイメージの量(Wポ
インタとFポインタの差)の増加が鈍るもしくは減る。
模式図では減る場合を示した。キャッシュフラッシュ実
行部34が処理すべきビフォアイメージの量を減らすよ
うにするか否かは、キャッシュフラッシュ実行部34の
構成法で制御できるので後で説明する。
【0323】このチェックポイント処理加速装置30を
用いた場合のチェックポイント処理の所要時間は、ほ
ぼ、キャッシュフラッシュ実行部34が処理すべきビフ
ォアイメージの量に比例するので、フラッシュ前倒し方
式は、チェックポイント処理の所要時間を大幅に減らす
ことができる。
用いた場合のチェックポイント処理の所要時間は、ほ
ぼ、キャッシュフラッシュ実行部34が処理すべきビフ
ォアイメージの量に比例するので、フラッシュ前倒し方
式は、チェックポイント処理の所要時間を大幅に減らす
ことができる。
【0324】通常のデータ処理の継続時間は、前に述べ
た通り、典型的には数ミリ秒〜数10ミリ秒の間であ
り、元の制御方式の場合、チェックポイント処理の所要
時間は、1ミリ秒〜10ミリ秒程度である。その間、外
部機器からの割込みを受け付けないことが、本チェック
ポイント/リカバリ方式の計算機の適用範囲を制限する
要因となりうる。したがって、フラッシュ前倒し方式に
より、チェックポイント処理の所要時間が、たとえば数
分の1になるということは十分に意味がある。
た通り、典型的には数ミリ秒〜数10ミリ秒の間であ
り、元の制御方式の場合、チェックポイント処理の所要
時間は、1ミリ秒〜10ミリ秒程度である。その間、外
部機器からの割込みを受け付けないことが、本チェック
ポイント/リカバリ方式の計算機の適用範囲を制限する
要因となりうる。したがって、フラッシュ前倒し方式に
より、チェックポイント処理の所要時間が、たとえば数
分の1になるということは十分に意味がある。
【0325】ただし、フラッシュ前倒し方式には、性能
を劣化させる側面もある。それは、将来もModifi
ed状態で使われるキャッシュブロック(メインメモリ
上に設けられたカウンタがその典型である)をClea
n−Shared状態にしてしまい、次にプロセッサが
そのデータを更新しようとするとき、Invalida
teコマンドが発行されてしまう点である。この性能劣
化を軽減する方法については、後で説明する。
を劣化させる側面もある。それは、将来もModifi
ed状態で使われるキャッシュブロック(メインメモリ
上に設けられたカウンタがその典型である)をClea
n−Shared状態にしてしまい、次にプロセッサが
そのデータを更新しようとするとき、Invalida
teコマンドが発行されてしまう点である。この性能劣
化を軽減する方法については、後で説明する。
【0326】ここでチェックポイント処理加速装置30
の動作を説明する。
の動作を説明する。
【0327】フラッシュ前倒し方式のもとで、第1乃至
第3の実施形態のチェックポイント処理加速装置30は
正しく動作する。動作例は類似するので、ここでは、第
2の実施形態の場合について説明するにとどめる。
第3の実施形態のチェックポイント処理加速装置30は
正しく動作する。動作例は類似するので、ここでは、第
2の実施形態の場合について説明するにとどめる。
【0328】(初期化)プロセッサ10は、すべてのフ
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
【0329】(通常のデータ処理およびチェックポイン
ト処理時)プロセッサ10は、通常のデータ処理を開始
する時点で、ビフォアイメージ取得部32を起動する。
ここでは、下記に示した順序で処理が行なわれた場合に
ついて説明する。
ト処理時)プロセッサ10は、通常のデータ処理を開始
する時点で、ビフォアイメージ取得部32を起動する。
ここでは、下記に示した順序で処理が行なわれた場合に
ついて説明する。
【0330】(1)プロセッサ10が、a番地のデータ
をA0からA1に、b番地のデータをB0からB1に、
この順で更新した。
をA0からA1に、b番地のデータをB0からB1に、
この順で更新した。
【0331】(2)プロセッサ10が、キャッシュフラ
ッシュ実行部34を起動した。
ッシュ実行部34を起動した。
【0332】(3)キャッシュフラッシュ実行部34
が、a番地に対してRead−Lineコマンドを発行
した。
が、a番地に対してRead−Lineコマンドを発行
した。
【0333】(4)プロセッサ10が、a番地のデータ
をA1からA2に更新した。
をA1からA2に更新した。
【0334】ただし、a番地、b番地、ともにキャッシ
ュブロックBLK0に対応し、BLK0は、初期状態で
はa番地のデータA0をClean−Shared状態
で保持しているとする。
ュブロックBLK0に対応し、BLK0は、初期状態で
はa番地のデータA0をClean−Shared状態
で保持しているとする。
【0335】この場合の動作を図25を参照して説明す
る。
る。
【0336】(1)初期状態を示す。
【0337】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0338】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
【0339】(4)ビフォアイメージ取得部32は、a
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
【0340】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
【0341】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0342】(7)メインメモリ51がデータB0を応
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
【0343】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
番地に対するWrite−Lineコマンドが発行され
る。
【0344】(9)メインメモリのa番地がA1に変わ
る。
る。
【0345】(10)プロセッサ10は、この時点でキ
ャッシュフラッシュ実行部34を起動する。
ャッシュフラッシュ実行部34を起動する。
【0346】(11)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA0の組を使い、
a番地に対応するフラグメモリ36をオフにするととも
に、a番地に対してRead−Lineコマンドを発行
する。
は、ビフォアイメージa番地とデータA0の組を使い、
a番地に対応するフラグメモリ36をオフにするととも
に、a番地に対してRead−Lineコマンドを発行
する。
【0347】(12)BLK0はb番地のデータB1を
Modified状態で保持しているので、モディファ
イド応答信号線もシェアード応答信号線もアサートされ
ない。メインメモリ51がA1を応答する。BLK0の
状態は変化しない。
Modified状態で保持しているので、モディファ
イド応答信号線もシェアード応答信号線もアサートされ
ない。メインメモリ51がA1を応答する。BLK0の
状態は変化しない。
【0348】(13)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
【0349】(14)BLK0はb番地のデータB1を
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のb番地がB1
に変わる。BLK0の状態は、Clean−Share
dに変わる。
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のb番地がB1
に変わる。BLK0の状態は、Clean−Share
dに変わる。
【0350】(15)プロセッサ10がa番地のデータ
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をClean−Shared
状態で保持しているため、a番地に対するRead−L
ine−with−Invalidateコマンドが発
行される。
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をClean−Shared
状態で保持しているため、a番地に対するRead−L
ine−with−Invalidateコマンドが発
行される。
【0351】(16)メインメモリ51がデータA1を
含む応答を返す。ビフォアイメージ取得部32は、a番
地に対応するフラグメモリ36がオフであるため、これ
をオンにし、a番地とデータA1の組をビフォアイメー
ジ記憶部35に格納する。
含む応答を返す。ビフォアイメージ取得部32は、a番
地に対応するフラグメモリ36がオフであるため、これ
をオンにし、a番地とデータA1の組をビフォアイメー
ジ記憶部35に格納する。
【0352】(17)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対応するフラグメモリ36をオフにし、a番地
に対してRead−Lineコマンドを発行する。
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対応するフラグメモリ36をオフにし、a番地
に対してRead−Lineコマンドを発行する。
【0353】(18)BLK0はa番地のデータA2を
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のa番地はA2
に変わる。BLK0の状態は、Clean−Share
dに変わる。
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のa番地はA2
に変わる。BLK0の状態は、Clean−Share
dに変わる。
【0354】以上、本制御方法における、プロセッサ1
0、メインメモリ51、ビフォアイメージ取得部32、
およびキャッシュフラッシュ実行部34の動作例を示し
た。
0、メインメモリ51、ビフォアイメージ取得部32、
およびキャッシュフラッシュ実行部34の動作例を示し
た。
【0355】(障害発生時の復旧処理)メインメモリ状
態復元部33の動作は、ビフォアイメージ記憶部35に
記憶されているビフォアイメージを、より後で格納され
たものから順に、Write−Lineコマンドを発行
するだけであるので、動作例に基づいた説明を割愛す
る。
態復元部33の動作は、ビフォアイメージ記憶部35に
記憶されているビフォアイメージを、より後で格納され
たものから順に、Write−Lineコマンドを発行
するだけであるので、動作例に基づいた説明を割愛す
る。
【0356】以上、フラッシュ前倒し方式のもとで、本
発明の第2の実施形態のチェックポイント処理加速装置
が正しく動作することを説明した。
発明の第2の実施形態のチェックポイント処理加速装置
が正しく動作することを説明した。
【0357】次に、チェックポイント処理加速装置30
の機能および構成法を説明する。
の機能および構成法を説明する。
【0358】第1乃至第3の実施形態では、キャッシュ
フラッシュ実行部34は、ビフォアイメージ記憶部35
に格納されているビフォアイメージをFポインタを使っ
て最初に格納されたものから順に処理する方式を示し
た。元の制御方式の場合には、ビフォアイメージをどの
ような順序で処理しても大して変わりはないが、フラッ
シュ前倒し方式の場合、この処理方式は2つの長所があ
る。
フラッシュ実行部34は、ビフォアイメージ記憶部35
に格納されているビフォアイメージをFポインタを使っ
て最初に格納されたものから順に処理する方式を示し
た。元の制御方式の場合には、ビフォアイメージをどの
ような順序で処理しても大して変わりはないが、フラッ
シュ前倒し方式の場合、この処理方式は2つの長所があ
る。
【0359】第1の長所は、将来もModified状
態で使われるキャッシュブロックをClean−Sha
red状態にしてしまい、次にプロセッサがそのデータ
を更新しようとする時、Invalidateコマンド
が発行されてしまうという性能劣化要因を軽減できる点
である。
態で使われるキャッシュブロックをClean−Sha
red状態にしてしまい、次にプロセッサがそのデータ
を更新しようとする時、Invalidateコマンド
が発行されてしまうという性能劣化要因を軽減できる点
である。
【0360】つまり、早い時点で取得したビフォアイメ
ージほど、キャッシュフラッシュ実行部34が処理しよ
うとする時点では、すでにModified状態のキャ
ッシュブロックが実在しない可能性が高く、キャッシュ
フラッシュ実行部34がRead−Lineコマンドを
発行しても、それによってClean−Shared状
態に変化する可能性は小さいためである。
ージほど、キャッシュフラッシュ実行部34が処理しよ
うとする時点では、すでにModified状態のキャ
ッシュブロックが実在しない可能性が高く、キャッシュ
フラッシュ実行部34がRead−Lineコマンドを
発行しても、それによってClean−Shared状
態に変化する可能性は小さいためである。
【0361】第2の長所は、ハードウェアの制御のしや
すさである。まず、ビフォアイメージ取得部32がWポ
インタを使って最初のエントリから順に書き込むのを、
キャッシュフラッシュ実行部34がFポインタを使って
追いかけるため、キャッシュフラッシュ実行部34の終
了の判断が簡単になる。
すさである。まず、ビフォアイメージ取得部32がWポ
インタを使って最初のエントリから順に書き込むのを、
キャッシュフラッシュ実行部34がFポインタを使って
追いかけるため、キャッシュフラッシュ実行部34の終
了の判断が簡単になる。
【0362】また、フラッシュ前倒し方式では、ビフォ
アイメージ取得部32とキャッシュフラッシュ実行部3
4によるビフォアイメージ記憶部35へのアクセス競合
が発生する。ひとつのメモリバンクに対してリードアク
セスとライトアクセスが交互に出ると、リードアクセス
が遅くなるので、そういった状況を避けることが望まし
い。特に、複数プロセッサを備えたマルチプロセッサシ
ステムに適用する場合には、アクセス競合の回避が重要
である。
アイメージ取得部32とキャッシュフラッシュ実行部3
4によるビフォアイメージ記憶部35へのアクセス競合
が発生する。ひとつのメモリバンクに対してリードアク
セスとライトアクセスが交互に出ると、リードアクセス
が遅くなるので、そういった状況を避けることが望まし
い。特に、複数プロセッサを備えたマルチプロセッサシ
ステムに適用する場合には、アクセス競合の回避が重要
である。
【0363】ここでは、第1の実施形態で述べたWポイ
ンタとFポインタを使用することを前提に、アクセス競
合の少ないビフォアイメージ記憶部35のエントリの構
成法とその使用法を示す。
ンタとFポインタを使用することを前提に、アクセス競
合の少ないビフォアイメージ記憶部35のエントリの構
成法とその使用法を示す。
【0364】まず、前半のn個のエントリと、後半のn
個のエントリを、図26に示したように、メモリバンク
AとメモリバンクBとに分けて構成する。ただし、2つ
のバンクメモリに分けるのは、それぞれのバンクメモリ
に同時にアクセス可能とすることと、後で示すように、
ひとつのメモリバンクに対してリードアクセスとライト
アクセスが交互に出るような状況を作らないためであ
る。
個のエントリを、図26に示したように、メモリバンク
AとメモリバンクBとに分けて構成する。ただし、2つ
のバンクメモリに分けるのは、それぞれのバンクメモリ
に同時にアクセス可能とすることと、後で示すように、
ひとつのメモリバンクに対してリードアクセスとライト
アクセスが交互に出るような状況を作らないためであ
る。
【0365】通常のデータ処理の前半、すなわち、ビフ
ォアイメージ取得部32が動作し、キャッシュフラッシ
ュ実行部34が動作しないときは、取得したビフォアイ
メージをメモリバンクAに格納する。このとき、メモリ
バンクAは、ライトアクセスのみとなる。
ォアイメージ取得部32が動作し、キャッシュフラッシ
ュ実行部34が動作しないときは、取得したビフォアイ
メージをメモリバンクAに格納する。このとき、メモリ
バンクAは、ライトアクセスのみとなる。
【0366】次に、プロセッサ10がキャッシュフラッ
シュ実行部34を起動すると、ビフォアイメージ取得部
32は、取得したビフォアイメージをメモリバンクBに
格納する。そして、キャッシュフラッシュ実行部34
は、メモリバンクAからビフォアイメージを取り出す。
このとき、メモリバンクAはリードアクセスのみ、メモ
リバンクBはライトアクセスのみとなる。
シュ実行部34を起動すると、ビフォアイメージ取得部
32は、取得したビフォアイメージをメモリバンクBに
格納する。そして、キャッシュフラッシュ実行部34
は、メモリバンクAからビフォアイメージを取り出す。
このとき、メモリバンクAはリードアクセスのみ、メモ
リバンクBはライトアクセスのみとなる。
【0367】次に、プロセッサ10は、キャッシュフラ
ッシュがメモリバンクA内のビフォアイメージを全部処
理する直前にチェックポイント処理を開始し、間もなく
ビフォアイメージ取得部32を停止する。このとき、メ
モリバンクBは、ほぼライトアクセスのみとなる。
ッシュがメモリバンクA内のビフォアイメージを全部処
理する直前にチェックポイント処理を開始し、間もなく
ビフォアイメージ取得部32を停止する。このとき、メ
モリバンクBは、ほぼライトアクセスのみとなる。
【0368】以上のように、メモリバンクの使用状況と
キャッシュフラッシュ実行部34の起動、およびチェッ
クポイント処理の開始をリンクすることにより、各メモ
リバンクは、ほとんど常時、リードかライトのいずれか
のモードでアクセスされることになり、ビフォアイメー
ジの格納と取り出しとが高速化できる。
キャッシュフラッシュ実行部34の起動、およびチェッ
クポイント処理の開始をリンクすることにより、各メモ
リバンクは、ほとんど常時、リードかライトのいずれか
のモードでアクセスされることになり、ビフォアイメー
ジの格納と取り出しとが高速化できる。
【0369】なお、前述の説明では、キャッシュフラッ
シュ実行部34はプロセッサ10が起動するとしたが、
このように制御するのであれば、ビフォアイメージ取得
部32が、メモリバンクAのすべてのエントリにビフォ
アイメージを格納した時点でキャッシュフラッシュ実行
部34を起動するようにもでき、その場合、プロセッサ
10は、キャッシュフラッシュ実行部34を起動する処
理を省けるほか、メモリバンクAを容量一杯まで使用で
きるという長所がある。
シュ実行部34はプロセッサ10が起動するとしたが、
このように制御するのであれば、ビフォアイメージ取得
部32が、メモリバンクAのすべてのエントリにビフォ
アイメージを格納した時点でキャッシュフラッシュ実行
部34を起動するようにもでき、その場合、プロセッサ
10は、キャッシュフラッシュ実行部34を起動する処
理を省けるほか、メモリバンクAを容量一杯まで使用で
きるという長所がある。
【0370】また、キャッシュフラッシュ実行部34
は、Read−Lineコマンドの発行頻度を制御する
ことができる。元の制御方式のもとでは、キャッシュフ
ラッシュ実行部34は、プロセッサ10がほとんど動作
を停止している状況で動作するので、ビフォアイメージ
記憶部35に格納されている更新アドレスを使って、い
かに高速にRead−Lineコマンドを発行するかの
みが重要であった。
は、Read−Lineコマンドの発行頻度を制御する
ことができる。元の制御方式のもとでは、キャッシュフ
ラッシュ実行部34は、プロセッサ10がほとんど動作
を停止している状況で動作するので、ビフォアイメージ
記憶部35に格納されている更新アドレスを使って、い
かに高速にRead−Lineコマンドを発行するかの
みが重要であった。
【0371】しかし、フラッシュ前倒し方式のもとで
は、データ処理の途中において、キャッシュフラッシュ
実行部34によるRead−Lineコマンドの発行頻
度が過度に高いと、通常のデータ処理がほとんど進まな
いという状況となる。
は、データ処理の途中において、キャッシュフラッシュ
実行部34によるRead−Lineコマンドの発行頻
度が過度に高いと、通常のデータ処理がほとんど進まな
いという状況となる。
【0372】そこで、キャッシュフラッシュ実行部34
は、Read−Lineコマンドの発行頻度を少なくす
るモードと高いモードとを備えるのが望ましい。その実
現方法の例を図27に示すキャッシュフラッシュ実行部
34の処理フローに基づいて説明する。
は、Read−Lineコマンドの発行頻度を少なくす
るモードと高いモードとを備えるのが望ましい。その実
現方法の例を図27に示すキャッシュフラッシュ実行部
34の処理フローに基づいて説明する。
【0373】この処理フローは、第1の実施形態を若干
修正したものである。すなわち、Read−Lineコ
マンドを発行し、Fポインタをインクリメントしたとこ
ろで、ビフォアイメージ取得部32が実行中であればC
サイクル待ち、そうでなければ直ちに次のビフォアイメ
ージを使ったRead−Lineコマンドを発行する。
修正したものである。すなわち、Read−Lineコ
マンドを発行し、Fポインタをインクリメントしたとこ
ろで、ビフォアイメージ取得部32が実行中であればC
サイクル待ち、そうでなければ直ちに次のビフォアイメ
ージを使ったRead−Lineコマンドを発行する。
【0374】この方式の変形としては、たとえばビフォ
アイメージ取得部32が最近の数10サイクルにおい
て、ビフォアイメージを取得したことがある場合には、
Cサイクル待つという方式も可能である。
アイメージ取得部32が最近の数10サイクルにおい
て、ビフォアイメージを取得したことがある場合には、
Cサイクル待つという方式も可能である。
【0375】以上、第4の実施形態について説明した。
【0376】
【発明の効果】以上詳述したように本発明によれば、特
別なキャッシュメモリを備えるなどのことを必要とせず
に、標準的なプロセッサを搭載する計算機システム上に
おいて効率的なチェックポイント/リカバリ機能を実現
することが可能となる。また、従来のように、プロセッ
サがキャッシュフラッシュ用のソフトウェアを実行する
ことによってキャッシュフラッシュを実施することと比
較して、大幅な高速化が期待されるため、チェックポイ
ント/リカバリ方式の計算機全体の性能を向上させるこ
とが可能となる。また、キャッシュメモリ上に確保され
るキャッシュブロックに対応させてフラグメモリを設
け、ビフォアイメージの重複格納を回避する、あるい
は、互いに共通部分をもたないようにアドレス範囲を設
定し、この設定したアドレス範囲それぞれに対応させて
ブロックカウンタを設け、不要なキャッシュフラッシュ
動作を回避するといったことを行なえば、さらなる性能
向上を図れることになる。
別なキャッシュメモリを備えるなどのことを必要とせず
に、標準的なプロセッサを搭載する計算機システム上に
おいて効率的なチェックポイント/リカバリ機能を実現
することが可能となる。また、従来のように、プロセッ
サがキャッシュフラッシュ用のソフトウェアを実行する
ことによってキャッシュフラッシュを実施することと比
較して、大幅な高速化が期待されるため、チェックポイ
ント/リカバリ方式の計算機全体の性能を向上させるこ
とが可能となる。また、キャッシュメモリ上に確保され
るキャッシュブロックに対応させてフラグメモリを設
け、ビフォアイメージの重複格納を回避する、あるい
は、互いに共通部分をもたないようにアドレス範囲を設
定し、この設定したアドレス範囲それぞれに対応させて
ブロックカウンタを設け、不要なキャッシュフラッシュ
動作を回避するといったことを行なえば、さらなる性能
向上を図れることになる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る計算機システム
のシステム構成を示す図。
のシステム構成を示す図。
【図2】同実施形態のビフォアイメージ記憶部の構造を
示す概念図。
示す概念図。
【図3】同実施形態のビフォアイメージ取得部の処理フ
ローを示す図。
ローを示す図。
【図4】同実施形態のキャッシュフラッシュ実行部の処
理フローを示す図。
理フローを示す図。
【図5】同実施形態のメインメモリ状態復元部の処理フ
ローを示す図。
ローを示す図。
【図6】同実施形態のプロセッサによるチェックポイン
ト処理加速装置の制御方式を示す図。
ト処理加速装置の制御方式を示す図。
【図7】同実施形態のプロセッサによるデータ更新に伴
なう動作を説明する図。
なう動作を説明する図。
【図8】同実施形態のキャッシュフラッシュ実行部によ
るRead−Lineコマンドの発行を説明する図。
るRead−Lineコマンドの発行を説明する図。
【図9】同実施形態のチェックポイント処理の開始前に
故障が発生した場合の動作を説明する図。
故障が発生した場合の動作を説明する図。
【図10】本発明の第2の実施形態に係る計算機システ
ムのシステム構成を示す図。
ムのシステム構成を示す図。
【図11】同実施形態のビフォアイメージ取得部の処理
フローを示す図。
フローを示す図。
【図12】同実施形態のキャッシュフラッシュ実行部の
処理フローを示す図。
処理フローを示す図。
【図13】同実施形態のプロセッサによるデータ更新に
伴なう動作を説明する図。
伴なう動作を説明する図。
【図14】同実施形態のキャッシュフラッシュ実行部に
よるRead−Lineコマンドの発行を説明する図。
よるRead−Lineコマンドの発行を説明する図。
【図15】同実施形態のチェックポイント処理の開始前
に故障が発生した場合の動作を説明する図。
に故障が発生した場合の動作を説明する図。
【図16】本発明の第3の実施形態に係る計算機システ
ムのシステム構成を示す図。
ムのシステム構成を示す図。
【図17】同実施形態のキャッシュフラッシュ実行部の
処理フローを示す図。
処理フローを示す図。
【図18】同実施形態のプロセッサによるデータ更新に
伴なう動作を説明する図。
伴なう動作を説明する図。
【図19】同実施形態のキャッシュフラッシュ実行部に
よるRead−Lineコマンドの発行を説明する図。
よるRead−Lineコマンドの発行を説明する図。
【図20】同実施形態のチェックポイント処理の開始前
に故障が発生した場合の動作を説明する図。
に故障が発生した場合の動作を説明する図。
【図21】同実施形態のビフォアイメージを取得するか
否かを判断する機構を示す図。
否かを判断する機構を示す図。
【図22】本発明の第4実施形態のプロセッサ、ビフォ
アイメージ取得部、およびキャッシュフラッシュ実行部
の動作の時間的な関係を説明する図。
アイメージ取得部、およびキャッシュフラッシュ実行部
の動作の時間的な関係を説明する図。
【図23】同実施形態のフラッシュ前倒し方式のプロセ
ッサの処理フローを示す図。
ッサの処理フローを示す図。
【図24】同実施形態のフラッシュ前倒し方式の効果を
元の制御方式と対比させて模式的に表わした図。
元の制御方式と対比させて模式的に表わした図。
【図25】同実施形態のプロセッサ、メインメモリ、ビ
フォアイメージ取得部、およびキャッシュフラッシュ実
行部の動作例を示す図。
フォアイメージ取得部、およびキャッシュフラッシュ実
行部の動作例を示す図。
【図26】同実施形態のビフォアイメージ記憶部のエン
トリの構成法とその使用法を説明する図。
トリの構成法とその使用法を説明する図。
【図27】同実施形態のキャッシュフラッシュ実行部の
処理フローを示す図。
処理フローを示す図。
【図28】従来のチェックポイント/リカバリ方式の動
作手順を説明する図。
作手順を説明する図。
10…プロセッサ、 20…キャッシュメモリ、 30…チェックポイント処理加速装置、 31…バスインタフェース、 32…ビフォアイメージ取得部、 33…メインメモリ状態復元部、 34…キャッシュフラッシュ実行部、 35…ビフォアイメージ記憶部、 36…フラグメモリ、 37…ブロックカウンタ制御部、 38…ブロックカウンタ、 40…システムバス、 50…メモリコントローラ、 51…メインメモリ。
Claims (26)
- 【請求項1】 コピーバック型のキャッシュメモリを備
えた計算機システムに適用されるチェックポイント処理
方法であって、 システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1の処理手段と、 前記第1の処理手段でシステムバス上のアクセスに更新
アドレスおよび更新前データが含まれることを検知した
とき、当該アドレスおよび更新前データを採取し所定の
記憶手段に記憶する第2の処理手段と、 前記第1の処理手段でシステムバス上のアクセスに更新
の発生したアドレスを含むが更新前のデータを含まない
ことを検知したとき、その更新前のデータを読み出すた
めのコマンドを前記コマンドに含まれるアドレスを用い
前記システムバスに発行して前記アドレスおよび読み出
された更新前のデータを採取し前記記憶手段に記憶する
第3の処理手段と、 前記記憶手段に記憶されたすべてのアドレスについて、
そのアドレスで示される更新状態のデータをメインメモ
リに書き戻すことを要求するコマンドを前記システムバ
スに発行する第4の処理手段とを具備してなることを特
徴とするチェックポイント処理方法。 - 【請求項2】 コピーバック型のキャッシュメモリを備
えた計算機システムに適用されるチェックポイント処理
方法であって、 システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理手段と、 前記第1のビフォアイメージ処理手段でシステムバス上
のアクセスに更新アドレスおよび更新前データが含まれ
ることを検知したとき、当該アドレスおよび更新前デー
タを採取してビフォアイメージ記憶手段に記憶し、更新
の発生したアドレスを含むが更新前のデータを含まない
ことを検知したとき、その更新前のデータを読み出すた
めのコマンドを前記コマンドに含まれるアドレスを用い
て前記システムバスに発行し、前記アドレスおよび読み
出された更新前のデータを採取して前記ビフォアイメー
ジ記憶手段に記憶する第2のビフォアイメージ処理手段
と、 前記ビフォアイメージ記憶手段に記憶されたすべてのア
ドレスについて、そのアドレスで示される更新状態のデ
ータをメインメモリに書き戻すことを要求するコマンド
を前記システムバスに発行するキャッシュフラッシュ実
行処理手段とを具備してなることを特徴とするチェック
ポイント処理方法。 - 【請求項3】 コピーバック型のキャッシュメモリを備
えた計算機システムに適用されるチェックポイント処理
方法であって、 システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理手段と、 前記第1のビフォアイメージ処理手段でシステムバス上
のアクセスに更新アドレスおよび更新前データが含まれ
ることを検知したとき、当該アドレスおよび更新前デー
タを採取してビフォアイメージ記憶手段に記憶し、更新
の発生したアドレスを含むが更新前のデータを含まない
ことを検知したとき、その更新前のデータを読み出すた
めのコマンドを前記コマンドに含まれるアドレスを用い
前記システムバスに発行して前記アドレスおよび読み出
された更新前のデータを採取して前記ビフォアイメージ
記憶手段に記憶する第2のビフォアイメージ処理手段
と、 前記ビフォアイメージ記憶手段に記憶されたすべてのア
ドレスについて、そのアドレスで示される更新状態のデ
ータをメインメモリに書き戻すことを要求するコマンド
を前記システムバスに発行するキャッシュフラッシュ実
行処理手段と、 前記ビフォアイメージ記憶手段に記憶されたすべての更
新前データについて、新しく格納したものから順にメイ
ンメモリへ更新書き込みを行なうことを要求するコマン
ドを前記システムバスに発行するメインメモリ状態復元
処理手段とを具備してなることを特徴とするチェックポ
イント処理方法。 - 【請求項4】 バススヌープ機構を有するコピーバック
型のキャッシュメモリを備えた少なくとも一つ以上のプ
ロセッサと、メインメモリと、前記プロセッサと前記メ
インメモリとを接続するシステムバスとを具備してなる
計算機に適用されるチェックポイント処理方法であっ
て、 前記キャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を前記シ
ステムバス上の監視により検知する処理ステップと、 前記システムバス上の検知内容が更新アドレスおよび更
新前データを含む場合に、当該アドレスおよび更新前デ
ータを所定の記憶部に記憶するステップと、 更新の発生したアドレスを含むが更新前のデータを含ま
ない場合に、その更新前のデータを読み出すためのコマ
ンドを前記コマンドに含まれるアドレスを用いて前記シ
ステムバスに発行して前記アドレスおよび読み出された
更新前のデータを前記記憶部に記憶するステップと、 前記プロセッサからの指示に従い前記記憶部に記憶され
たすべてのアドレスについて、そのアドレスで示される
更新状態のデータをメインメモリに書き戻すことを要求
するコマンドを前記システムバスに発行するステップ
と、 前記プロセッサから指示に従い前記記憶部に記憶された
すべての更新前データについて、新しく格納したものか
ら順にメインメモリへの更新書き込みを要求するコマン
ドを前記システムバスに発行するステップとを具備して
なることを特徴とするチェックポイント処理方法。 - 【請求項5】 前記計算機は、前記メインメモリを前記
キャッシュメモリ内に確保されるキャッシュブロックの
大きさで分割し、この分割によって定義される複数の区
画の中の少なくとも一つ以上の区画それぞれに対応させ
て、オンとオフとの二つの状態が割り当てられるフラグ
メモリを有し、 前記更新アドレスおよび更新前データを取得した際、そ
の更新アドレスに対するフラグメモリが設けられ、かつ
オフのときに、前記フラグメモリをオンに設定するとと
もに前記更新アドレスおよび更新前データを記憶するス
テップと、 前記更新アドレスおよび更新前データを取得した際、そ
の更新アドレスに対するフラグメモリが設けられていな
いときに、前記更新アドレスおよび更新前データを記憶
するステップと、 前記記憶した更新アドレスおよび更新前データを取り出
して更新状態にあるキャッシュブロックの内容の前記メ
インメモリへの書き戻しを要求するコマンドを発行する
際、そのアドレスに対応するフラグメモリが設けられて
いるときに、そのフラグメモリをオフに設定するステッ
プとを具備してなることを特徴とする請求項4記載のチ
ェックポイント処理方法。 - 【請求項6】 前記計算機は、互いに共通部分をもたな
いように設定される一つ以上のアドレス範囲それぞれに
対応して設けられ、前記アドレス範囲に属する更新状態
のキャッシュブロック数を保持するブロックカウンタを
有し、 前記システムバス上のコマントおよびその応答を監視し
て、前記キャッシュブロックが更新状態に移行すること
を検知した際、そのアドレスに対応した前記ブロックカ
ウンタが存在するときに、そのブロックカウンタをイン
クリメントし、前記キャッシュブロックが更新状態から
それ以外の状態に移行することを検知した際、そのアド
レスに対応した前記ブロックカウンタがあるときに、そ
のブロックカウンタをデクリメントするステップと、 前記記憶されたすべての更新アドレスについて、その更
新アドレスに対応する前記ブロックカウンタがないか、
またはその値が初期値でないときに、そのアドレスの更
新状態のキャッシュブロックの内容をメインメモリに書
き戻すことを要求するコマンドを前記システムバスに発
行するステップとを具備してなることを特徴とする請求
項4記載のチェックポイント処理方法。 - 【請求項7】 前記キャッシュメモリは、ダイレクトマ
ップで構成され、前記ブロックカウンタは、キャッシュ
ブロックと一対に設けられる請求項6記載のチェックポ
イント処理方法。 - 【請求項8】 前記キャッシュメモリは、nウェイのセ
ットアソシアティブで構成され、前記ブロックカウンタ
は、n個のキャッシュブロックで形成されるグループと
一対に設けられる請求項6記載のチェックポイント処理
方法。 - 【請求項9】 前記計算機は、前記メインメモリを前記
キャッシュメモリ内に確保されるキャッシュブロックの
大きさで分割し、この分割によって定義される複数の区
画の中の少なくとも一つ以上の区画それぞれに対応させ
て、オンとオフとの二つの状態が割り当てられるフラグ
メモリを設けてなり、 前記システムバス上のコマントおよびその応答を監視し
て、前記キャッシュブロックが更新状態に移行すること
を検知した際、そのアドレスに対応した前記フラグメモ
リが設けられているときに、そのフラグメモリをオンに
設定し、前記キャッシュブロックが更新状態からそれ以
外の状態に移行することを検知した際、そのアドレスに
対応した前記フラグメモリが設けられているときに、そ
のフラグメモリをオフに設定するステップと、 前記記憶されたすべての更新アドレスについて、その更
新アドレスに対応する前記フラグメモリが設けられてい
ないか、またはその状態がオンのときに、そのアドレス
の更新状態のキャッシュブロックの内容をメインメモリ
に書き戻すことを要求するコマンドを前記システムバス
に発行するステップとを具備してなる請求項4記載のチ
ェックポイント処理方法。 - 【請求項10】 前記キャッシュメモリ上でデータ更新
が発生したことを示すコマンドまたはそれに対する応答
を検知したときに、その更新アドレスおよび更新前デー
タを記憶するか否かをその更新アドレスにより判断する
ステップを具備してなる請求項4又は5又は6又は7又
は8又は9記載のチェックポイント処理方法。 - 【請求項11】 前記記憶された前記更新アドレスおよ
び更新前データそれぞれについて、前記メインメモリに
書き戻すか否か否かをその更新アドレスにより判断する
ステップを具備してなる請求項4又は5又は6又は7又
は8又は9記載のチェックポイント処理方法。 - 【請求項12】 前記キャッシュメモリ上でのデータ更
新が行なわれた際、その更新対象のデータが他のキャッ
シュメモリ上で更新されて保持されているデータである
ときに、前記更新アドレスおよび更新前データの記憶を
回避するステップを具備してなる請求項4又は5又は6
又は7又は8又は9記載のチェックポイント処理方法。 - 【請求項13】 前記キャッシュブロックに割り当てら
れる複数の管理状態の中に、そのキャッシュブロックが
保持しているデータは他のプロセッサのキャッシュメモ
リには保持されておらず、かつメインメモリ上と同じデ
ータであるといったクリーンエクスクルーシブ状態を含
むときに、いずれかのキャッシュメモリの発行したメイ
ンメモリデータの読み込み要求コマンドに対し、そのデ
ータを保持していると応答するステップを具備し、前記
キャッシュブロックがクリーンエクスクルーシブ状態と
なるのを防ぐことを特徴とする請求項4又は5又は6又
は7又は8又は9記載のチェックポイント処理方法。 - 【請求項14】 前記キャッシュメモリの機構を介さず
に前記メインメモリの内容を更新するコマンドを検知し
たときに、そのコマンドの実行を中止させ、前記コマン
ドに含まれる更新アドレスを用いて前記メインメモリか
ら更新前のデータを読み出すためのコマンドを前記シス
テムバスに発行し、前記アドレスと読み出された更新前
のデータとを記憶するステップと、 前記実行を中止させたコマンドが再度発行されたとき
に、そのコマンドの実行の中止を行なわないように制御
するステップとを具備してなる請求項4又は5又は6又
は7又は8又は9記載のチェックポイント処理方法。 - 【請求項15】 前記プロセッサから指示されたアドレ
ス範囲について、前記メインメモリから更新前のデータ
を読み出すためのコマンドを前記システムバスに発行
し、前記アドレスとその読み出された更新前のデータを
組として記憶するステップを具備してなる請求項4又は
5又は6又は7又は8又は9記載のチェックポイント処
理方法。 - 【請求項16】 前記更新アドレスおよび更新前データ
を記憶するステップと、前記更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するステップとは並行して実行可能である
ことを特徴とする請求項4又は5又は6記載のチェック
ポイント処理方法。 - 【請求項17】 前記更新状態のデータをメインメモリ
に書き戻すことを要求するコマンドを前記システムバス
に発行するステップは、最も早い時点で取得された更新
アドレスおよび更新前データから順に処理する請求項1
6記載のチェックポイント処理加速方法。 - 【請求項18】 前記更新アドレスおよび更新前データ
を記憶する領域の残容量が予め定められた量を下回った
ことを前記プロセッサに通知するステップを具備してな
る請求項4又は5又は6又は7又は8又は9記載のチェ
ックポイント処理方法。 - 【請求項19】 前記更新アドレスおよび更新前データ
を記憶するステップが実行中であるときに、前記更新状
態のデータをメインメモリに書き戻すことを要求するコ
マンドを前記システムバスに発行するステップにより発
行される、前記更新状態のキャッシュブロックの内容を
前記メインメモリへ書き戻すことを要求するコマンドの
発行頻度を予め定められた値以内に抑制するステップ
と、 前記更新アドレスおよび更新前データを記憶するステッ
プが停止したときに、前記更新状態のデータをメインメ
モリに書き戻すことを要求するコマンドを前記システム
バスに発行するステップにより発行される前記更新状態
のキャッシュブロックの内容を前記メインメモリへ書き
戻すことを要求するコマンドの発行頻度を高くするステ
ップとを具備してなる請求項16記載のチェックポイン
ト処理方法。 - 【請求項20】 コピーバック型のキャッシュメモリを
備えた計算機システムのチェックポイント処理機構に適
用されるコンピュータプログラムを記録した記録媒体で
あって、 システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する機能と、前記監視機
能でシステムバス上のアクセスに更新アドレスおよび更
新前データが含まれることを検知したとき、当該アドレ
スおよび更新前データを採取し所定の記憶手段に記憶す
る機能と、 前記監視機能でシステムバス上のアクセスに更新の発生
したアドレスを含むが更新前のデータを含まないことを
検知したとき、その更新前のデータを読み出すためのコ
マンドを前記コマンドに含まれるアドレスを用い前記シ
ステムバスに発行して前記アドレスおよび読み出された
更新前のデータを採取し前記記憶手段に記憶する機能
と、 前記記憶手段に記憶されたすべてのアドレスについて、
そのアドレスで示される更新状態のデータをメインメモ
リに書き戻すことを要求するコマンドを前記システムバ
スに発行する機能とを実現させるためのプログラムを記
録した機械読取り可能な記録媒体。 - 【請求項21】 コピーバック型のキャッシュメモリを
備えた計算機システムのチェックポイント処理機構に適
用されるコンピュータプログラムを記録した記録媒体で
あって、 システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理機能と、 前記第1のビフォアイメージ処理機能でシステムバス上
のアクセスに更新アドレスおよび更新前データが含まれ
ることを検知したとき、当該アドレスおよび更新前デー
タを採取してビフォアイメージ記憶手段に記憶し、更新
の発生したアドレスを含むが更新前のデータを含まない
ことを検知したとき、その更新前のデータを読み出すた
めのコマンドを前記コマンドに含まれるアドレスを用い
前記システムバスに発行して前記アドレスおよび読み出
された更新前のデータを採取して前記ビフォアイメージ
記憶手段に記憶する第2のビフォアイメージ処理機能
と、 前記ビフォアイメージ記憶手段に記憶されたすべてのア
ドレスについて、そのアドレスで示される更新状態のデ
ータをメインメモリに書き戻すことを要求するコマンド
を前記システムバスに発行するキャッシュフラッシュ実
行処理機能とを実現させるためのプログラムを記録した
機械読取り可能な記録媒体。 - 【請求項22】 コピーバック型のキャッシュメモリを
備えた計算機システムのチェックポイント処理機構に適
用されるコンピュータプログラムを記録した記録媒体で
あって、 システムバス上のバススヌープによりキャッシュメモリ
上でデータ更新が発生したことを示すコマンドおよび当
該コマンドに対する応答を監視する第1のビフォアイメ
ージ処理機能と、 前記第1のビフォアイメージ処理機能でシステムバス上
のアクセスに更新アドレスおよび更新前データが含まれ
ることを検知したとき、当該アドレスおよび更新前デー
タを採取してビフォアイメージ記憶手段に記憶し、更新
の発生したアドレスを含むが更新前のデータを含まない
ことを検知したとき、その更新前のデータを読み出すた
めのコマンドを前記コマンドに含まれるアドレスを用い
前記システムバスに発行して前記アドレスおよび読み出
された更新前のデータを採取して前記ビフォアイメージ
記憶手段に記憶する第2のビフォアイメージ処理機能
と、 前記ビフォアイメージ記憶手段に記憶されたすべてのア
ドレスについて、そのアドレスで示される更新状態のデ
ータをメインメモリに書き戻すことを要求するコマンド
を前記システムバスに発行するキャッシュフラッシュ実
行処理機能と、 前記ビフォアイメージ記憶手段に記憶されたすべての更
新前データについて、新しく格納したものから順にメイ
ンメモリへ更新書き込みを行なうことを要求するコマン
ドを前記システムバスに発行するメインメモリ状態復元
処理機能とを実現させるためのプログラムを記録した機
械読取り可能な記録媒体。 - 【請求項23】 バススヌープ機構を有するコピーバッ
ク型のキャッシュメモリを備えた少なくとも一つ以上の
プロセッサと、メインメモリと、前記プロセッサと前記
メインメモリとを接続するシステムバスとを具備してな
る計算機のチェックポイント処理機構に適用されるコン
ピュータプログラムを記録した記録媒体であって、 前記キャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を前記シ
ステムバス上の監視により検知する機能と、 前記システムバス上の検知内容が更新アドレスおよび更
新前データを含む場合に、当該アドレスおよび更新前デ
ータを記憶する機能と、 更新の発生したアドレスを含むが更新前のデータを含ま
ない場合に、その更新前のデータを読み出すためのコマ
ンドを前記コマンドに含まれるアドレスを用いて前記シ
ステムバスに発行して前記アドレスおよび読み出された
更新前のデータを記憶する機能と、 前記プロセッサから指示に従い前記記憶されたすべての
アドレスについて、そのアドレスで示される更新状態の
データをメインメモリに書き戻すことを要求するコマン
ドを前記システムバスに発行する機能とを実現させるた
めのプログラムを記録した機械読取り可能な記録媒体。 - 【請求項24】 バススヌープ機構を有するコピーバッ
ク型のキャッシュメモリを備えた少なくとも一つ以上の
プロセッサと、メインメモリと、前記プロセッサと前記
メインメモリとを接続するシステムバスとを具備してな
る計算機のチェックポイント処理機構に適用されるコン
ピュータプログラムを記録した記録媒体であって、 前記キャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよび当該コマンドに対する応答を前記シ
ステムバス上の監視により検知する機能と、 前記システムバス上の検知内容が更新アドレスおよび更
新前データを含む場合に、当該アドレスおよび更新前デ
ータを記憶する機能と、 更新の発生したアドレスを含むが更新前のデータを含ま
ない場合に、その更新前のデータを読み出すためのコマ
ンドを前記コマンドに含まれるアドレスを用いて前記シ
ステムバスに発行して前記アドレスおよび読み出された
更新前のデータを記憶する機能と、 前記プロセッサから指示に従い前記記憶されたすべての
アドレスについて、そのアドレスで示される更新状態の
データをメインメモリに書き戻すことを要求するコマン
ドを前記システムバスに発行する機能と、 前記プロセッサから指示に従い、前記記憶されたすべて
の更新前データについて、新しく格納したものから順に
メインメモリへの更新書き込みを要求するコマンドを前
記システムバスに発行する機能とを実現させるためのプ
ログラムを記録した機械読取り可能な記録媒体。 - 【請求項25】 前記計算機は、前記メインメモリを前
記キャッシュメモリ内に確保されるキャッシュブロック
の大きさで分割し、この分割によって定義される複数の
区画の中の少なくとも一つ以上の区画それぞれに対応さ
せて、オンとオフとの二つの状態が割り当てられるフラ
グメモリを有し、 前記更新アドレスおよび更新前データを取得した際、そ
の更新アドレスに対するフラグメモリが設けられ、かつ
オフのときに、前記フラグメモリをオンに設定するとと
もに前記更新アドレスおよび更新前データを記憶する機
能と、 前記更新アドレスおよび更新前データを取得した際、そ
の更新アドレスに対するフラグメモリが設けられていな
いときに、前記更新アドレスおよび更新前データを記憶
する機能と、 前記記憶した更新アドレスおよび更新前データを取り出
して更新状態にあるキャッシュブロックの内容の前記メ
インメモリへの書き戻しを要求するコマンドを発行する
際、そのアドレスに対応するフラグメモリが設けられて
いるときに、そのフラグメモリをオフに設定する機能と
を実現させるためのプログラムを記録した請求項23又
は24記載の機械読取り可能な記録媒体。 - 【請求項26】 前記計算機は、互いに共通部分をもた
ないように設定される一つ以上のアドレス範囲それぞれ
に対応して設けられ、前記アドレス範囲に属する更新状
態のキャッシュブロック数を保持するブロックカウンタ
を有し、 前記システムバス上のコマントおよびその応答を監視し
て、前記キャッシュブロックが更新状態に移行すること
を検知した際、そのアドレスに対応した前記ブロックカ
ウンタが存在するときに、そのブロックカウンタをイン
クリメントし、前記キャッシュブロックが更新状態から
それ以外の状態に移行すること検知した際、そのアドレ
スに対応した前記ブロックカウンタがあるときに、その
ブロックカウンタをデクリメントする機能と、 前記記憶されたすべての更新アドレスについて、その更
新アドレスに対応する前記ブロックカウンタがないか、
またはその値が初期値でないときに、そのアドレスの更
新状態のキャッシュブロックの内容をメインメモリに書
き戻すことを要求するコマンドを前記システムバスに発
行する機能とを実現させるためのプログラムを記録した
請求項23又は24記載の機械読取り可能な記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9232936A JPH10149307A (ja) | 1996-09-20 | 1997-08-28 | チェックポイント処理方法及び記録媒体 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25058896 | 1996-09-20 | ||
| JP8-250588 | 1996-09-20 | ||
| JP9232936A JPH10149307A (ja) | 1996-09-20 | 1997-08-28 | チェックポイント処理方法及び記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10149307A true JPH10149307A (ja) | 1998-06-02 |
Family
ID=26530748
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9232936A Pending JPH10149307A (ja) | 1996-09-20 | 1997-08-28 | チェックポイント処理方法及び記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10149307A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10320274A (ja) * | 1997-03-19 | 1998-12-04 | Toshiba Corp | キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体 |
-
1997
- 1997-08-28 JP JP9232936A patent/JPH10149307A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10320274A (ja) * | 1997-03-19 | 1998-12-04 | Toshiba Corp | キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2916420B2 (ja) | チェックポイント処理加速装置およびデータ処理方法 | |
| EP0833248B1 (en) | Computer system with memory update history storage | |
| US7085955B2 (en) | Checkpointing with a write back controller | |
| EP0828217B1 (en) | Cache flush apparatus and computer system having the same | |
| US7472230B2 (en) | Preemptive write back controller | |
| JP3086779B2 (ja) | メモリ状態復元装置 | |
| EP1035476A1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
| JPH10506483A (ja) | フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル | |
| WO2015112148A2 (en) | Atomically committing write requests | |
| JP3236287B2 (ja) | マルチプロセッサシステム | |
| WO2025138722A1 (zh) | 访存失效队列处理方法、装置及电子设备 | |
| JPH05210584A (ja) | 改善されたぺージングを有するディジタルデータプロセッサ | |
| JP3320562B2 (ja) | キャッシュメモリを有する電子計算機 | |
| JP3083786B2 (ja) | メモリ更新履歴保存装置およびメモリ更新履歴保存方法 | |
| JPH10149307A (ja) | チェックポイント処理方法及び記録媒体 | |
| JPH08137748A (ja) | コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法 | |
| JP3833760B2 (ja) | 計算機システム及びメモリ状態復元装置 | |
| JPH08202622A (ja) | 分散型メモリ構成のキャッシュ制御方法 | |
| JPH10320274A (ja) | キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体 | |
| JP2000181790A (ja) | メモリ更新履歴保存装置 | |
| JP2000181738A (ja) | 二重化システム及びメモリ制御方法 | |
| JPS6138504B2 (ja) | ||
| JP3112863B2 (ja) | キャッシュメモリ制御方式 | |
| JPH06187230A (ja) | メモリ監視制御方法 | |
| JPH07271624A (ja) | フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法 |