JP2916420B2 - チェックポイント処理加速装置およびデータ処理方法 - Google Patents

チェックポイント処理加速装置およびデータ処理方法

Info

Publication number
JP2916420B2
JP2916420B2 JP8234321A JP23432196A JP2916420B2 JP 2916420 B2 JP2916420 B2 JP 2916420B2 JP 8234321 A JP8234321 A JP 8234321A JP 23432196 A JP23432196 A JP 23432196A JP 2916420 B2 JP2916420 B2 JP 2916420B2
Authority
JP
Japan
Prior art keywords
cache
data
address
memory
main memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP8234321A
Other languages
English (en)
Other versions
JPH1078918A (ja
Inventor
卓也 加納
浩 酒井
宏雄 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP8234321A priority Critical patent/JP2916420B2/ja
Priority to TW086102499A priority patent/TW384427B/zh
Priority to KR1019970014318A priority patent/KR100233205B1/ko
Priority to CN97113166A priority patent/CN1111790C/zh
Priority to US08/917,923 priority patent/US6088773A/en
Priority to DE69703574T priority patent/DE69703574T2/de
Priority to EP97115030A priority patent/EP0834811B1/en
Publication of JPH1078918A publication Critical patent/JPH1078918A/ja
Application granted granted Critical
Publication of JP2916420B2 publication Critical patent/JP2916420B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、たとえばデータ
の一貫性を保証するためにスヌープ機構を有してなるキ
ャッシュメモリを備えた計算機に適用して好適なチェッ
クポイント加速装置およびデータ処理方法に関する。
【0002】
【従来の技術】計算機システムを高信頼化する方式の一
つとして、通常のデータ処理の途中で定期的にチェック
ポイントをメインメモリ上に作成しておき、計算機に何
らかの障害が発生したときに、直前のチェックポイント
に戻って処理を再開するといったものが存在する。そし
て、このような方式は、チェックポイント/リカバリ方
式と称され、下記の3つの種類に大別される。
【0003】(1)主にデータベース管理システムなど
で使用され、計算機がダウンしたときに、データ自体の
喪失を防いだり、データ間の論理的な整合性を維持した
り、他の計算機がデータベースを引継いたりするための
もの。
【0004】(2)ひとつのアプリケーションプログラ
ムをプライマリプロセスとシャドウプロセスとして別の
計算機に配置して実行し、プライマリプロセスを実行中
の計算機がダウンしたときに、シャドウプロセスが整合
性のとれた状態で引継ぐためのもの。ユーザからは、ア
プリケーションプログラムの実行が途中で打ち切られず
に続いているように見える。
【0005】(3)計算機に何らかの故障が発生したと
きに、その計算機がダウンすることを回避するためのも
の。ユーザおよびアプリケーションプログラムからは、
故障が発生しなかったときと比べてほとんど違いが見え
ない。
【0006】このうち、(3)のチェックポイント/リ
カバリ方式では、何らかの故障が発生したときに、直前
のチェックポイントから処理が再開されるので、チェッ
クポイント自身は故障発生によっても破壊されない記憶
装置に格納することが必須である。そのような記憶装置
は安定記憶と呼ばれ、たとえば二重化された主記憶装置
などが使用される。
【0007】このようなチェックポイント/リカバリ方
式の計算機では、図29に示すように、各プロセッサ
は、定期的に通常のデータ処理を一時中断してチェック
ポイント処理を行ない(1)、それが終了すると再び通
常のデータ処理を中断した時点から再開する(2)。そ
して、何らかの故障が発生すると(3)、プロセッサは
リカバリ処理を行なう。このリカバリ処理では、メイン
メモリを(2)の状態に戻した後に、通常のデータ処理
を再開する(4)。すなわち、(4)において(2)と
同じ状態から再開することにより、障害発生の影響を受
けることなくデータ処理を続行することを目指すもので
ある。
【0008】次に、このチェックポイント/リカバリ方
式について、キャッシュメモリ、メインメモリおよびチ
ェックポイントの関係を下記に示す。
【0009】(通常のデータ処理)障害発生時にメイン
メモリをチェックポイント時の状態に戻すため、メイン
メモリが書き換えられる場合、何らかの対策をとる必要
がある。
【0010】(チェックポイント処理)キャッシュメモ
リに保持されている更新されたデータをすべてメインメ
モリに書き戻す。
【0011】(障害発生時の復旧処理)少なくとも直前
のチェックポイント処理以後にメインメモリ上で更新の
発生した部分をチェックポイント時点の状態に戻す必要
がある。
【0012】チェックポイント/リカバリ方式を採用し
たフォールトトレラント計算機は、たとえばPhili
p A Bernstein,“Sequoia:A
Fault−Tolerant Tightly Co
upled Multiprocessor for
Transaction Processing”,I
EEE Computer,Vol.21,No.2,
1988などに開示されている。
【0013】このSequoia計算機においては、通
常のデータ処理の期間中、プロセッサがデータを更新す
ると、そのデータはキャッシュメモリ上に保持され、決
してメインメモリに書き戻されることはない。そして、
チェックポイント処理を開始すると、キャッシュメモリ
に保持されていた更新されたデータがメインメモリに書
き戻される。そして、計算機に何らかの故障が発生した
場合には、キャッシュメモリを無効化することにより、
直前のチェックポイントの時点のメインメモリの状態か
ら通常のデータ処理を再開することができる。これを前
述したキャッシュメモリ、メインメモリおよびチェック
ポイントの関係に対応させると、下記のように示すこと
ができる。
【0014】(通常のデータ処理)プロセッサにより更
新されたデータは、チェックポイント処理を始めるまで
はメインメモリに書き戻さない。
【0015】(チェックポイント処理)キャッシュメモ
リに保持されている更新されたデータは、すべてメイン
メモリに書き戻す。
【0016】(障害発生時の復旧処理)キャッシュメモ
リを無効化するだけで良い。
【0017】また、このSequoia計算機では、チ
ェックポイント/リカバリ方式を実現するために、特別
なキャッシュメモリを備えている。というのは、通常の
ライトスルー型、あるいはコピーバック型のキャッシュ
メモリを使用すると、「通常のデータ処理の期間中にプ
ロセッサにより更新されたデータは、チェックポイント
処理を始めるまではメインメモリに書き戻さない」とい
う制御ができないためである。
【0018】また、USP 4,740,969“Me
thod & Apparatusfor Recov
ering from Hardware Fault
s”には、下記の方式が開示されている。
【0019】(通常のデータ処理)メインメモリからキ
ャッシュメモリにデータをロードする際、そのアドレス
とデータの内容を保持する。
【0020】(チェックポイント処理)言及されていな
い。
【0021】(障害発生時の復旧処理)前記アドレスと
データとを用いて、メインメモリをチェックポイント時
点の状態に戻す。
【0022】
【発明が解決しようとする課題】このように、Sequ
oia計算機の場合には、チェックポイント/リカバリ
のために特別なキャッシュメモリを備える必要があり、
プロセッサの急激な技術改革に追従させることが難しい
という問題がある。
【0023】また、USP4,740,969に開示さ
れる方式では、通常のデータ処理において取得するデー
タの量が多くなること、およびチェックポイント処理時
にキャッシュフラッシュを実行する手段を設ける必要が
あるという問題がある。
【0024】この発明は、このような実情に鑑みてなさ
れたものであり、特別なキャッシュメモリを必要とせず
に、標準的なユニプロセッサあるいはマルチプロセッサ
を搭載する計算機でチェックポイント/リカバリ機能を
容易に実現可能とするチェックポイント処理加速装置お
よびデータ処理方法を提供することを目的とする。これ
により、標準的な計算機における性能向上の恩恵を享受
することができ、また、USP4,740,969に開
示される方法と比較して、通常のデータ処理において取
得するデータの量がより少なく、チェックポイント処理
時のキャッシュフラッシュ機能も実現するチェックポイ
ント処理加速装置およびデータ処理方法を提供すること
が可能となる。
【0025】この発明のチェックポイント処理加速装置
は、バススヌープ機構を有するコピーバック型のキャッ
シュメモリを備えた少なくとも一つ以上のプロセッサ
と、メインメモリと、前記プロセッサと前記メインメモ
リとを接続するシステムバスとを具備してなる計算機に
適用されるチェックポイント処理加速装置であって、デ
ータ更新が発生したアドレスおよびその更新前のデータ
を組としたビフォアイメージを複数個記憶するビフォア
イメージ記憶手段と、前記キャッシュメモリ上でデータ
更新が発生したことを示すコマンドおよびそれに対する
応答を前記システムバスの監視によって検知し、前記キ
ャッシュメモリ上でデータ更新が発生したことを示すコ
マンドおよびそれに対する応答が更新アドレスおよび更
新前データを含む場合に、そのアドレスおよび更新前デ
ータを前記ビフォアイメージ記憶手段に格納し、前記キ
ャッシュメモリ上でデータ更新が発生したことを示すコ
マンドおよびそれに対する応答が更新の発生したアドレ
スを含むが更新前のデータを含まない場合に、その更新
前のデータを読み出すためのコマンドを前記キャッシュ
メモリ上でデータ更新が発生したことを示すコマンド
よびそれに対する応答に含まれるアドレスを用いて前記
システムバスに発行し、前記アドレスおよび読み出され
た更新前のデータを前記ビフォアイメージ記憶手段に格
納するビフォアイメージ取得手段と、前記プロセッサか
ら指示されたときに、前記ビフォアイメージ記憶手段に
格納されたすべてのアドレスについて、そのアドレスで
示される更新状態のデータをメインメモリに書き戻すこ
とを要求するコマンドを前記システムバスに発行するキ
ャッシュフラッシュ実行手段と、前記プロセッサから指
示されたときに、前記ビフォアイメージ記憶手段に格納
されたすべての更新前データについて、新しく格納した
ものから順にメインメモリへの更新書き込みを要求する
コマンドを前記システムバスに発行するメインメモリ状
態復元手段とを具備してなることを特徴とする。
【0026】この発明のチェックポイント処理加速装置
においては、プロセッサがキャッシュメモリ上でデータ
更新を行なうと、ビフォアイメージ取得手段が、その更
新アドレスと更新前データとを取得してビフォアイメー
ジ記憶手段に格納する。キャッシュフラッシュ実行手段
は、プロセッサからの指示に基づき、ビフォアイメージ
記憶手段に格納されているすべてのアドレスを使用し
て、そのアドレスを有する更新状態のキャッシュブロッ
クの内容をメインメモリに書き戻すこと要求するコマン
ドをシステムバスに発行することにより、キャッシュフ
ラッシュを実行する。一方、メインメモリ状態復元手段
は、プロセッサからの指示に基づき、ビフォアイメージ
記憶手段に格納されているすべての更新前データを新し
く格納したものから順にメインメモリの更新書き込みを
要求するコマンドをシステムバスに発行することによ
り、メインメモリをビフォアイメージ記憶手段には何も
記憶されていなかったときの状態にする。
【0027】すなわち、この発明のチェックポイント処
理加速装置を適用すれば、特別なキャッシュメモリを不
要とし、かつ、従来のように、プロセッサがキャッシュ
フラッシュ用のソフトウェアを実行することによってキ
ャッシュフラッシュを実施することと比較して、大幅な
高速化が期待される。したがって、チェックポイント処
理に費やされる作業のほとんどがキャッシュフラッシュ
であることを考慮すれば、チェックポイント/リカバリ
方式の計算機全体の性能を向上させることができる。
【0028】また、連続するチェックポイントの間でプ
ロセッサが同じアドレスのデータを複数回更新すること
も十分考えられる。そこで、メインメモリをキャッシュ
メモリ上に確保されるキャッシュブロックの大きさで分
割し、この分割によって定義される区画に対応させて、
オンとオフとの二つの状態が割り当てられるフラグメモ
リを設けることが好ましい。そして、キャッシュブロッ
ク内のデータが更新された際、そのアドレスに対応した
フラグメモリがオフであった場合には、その更新前のデ
ータをビフォアイメージ記憶手段に格納するとともに、
そのフラグメモリをオンにする。また、プロセッサによ
り再度そのデータが更新された場合には、そのフラグメ
モリはすでにオンとなっているので、更新前のデータは
格納済みであることが認識できるため、更新前のデータ
のビフォアイメージ記憶手段への格納は行なわない。こ
れにより、不要な動作を削減することができるため、そ
の性能をさらに向上させることが可能となる。このフラ
グメモリは、必ずしもすべての区画に対応させて設けな
ければならないものではなく、一部の区画に対応させて
設けた場合であっても有効である。
【0029】また、互いに共通部分をもたないようにア
ドレス範囲を設定し、この設定したアドレス範囲それぞ
れに対応させてブロックカウンタを設けることが好まし
い。この場合、このブロックカウンタを、その対応する
アドレス範囲に含まれるキャッシュブロックの中で更新
状態のキャッシュブロックがいくつあるかを示すように
管理する。したがって、このブロックカウンタが初期値
(たとえば0)を示す場合、このアドレス範囲に関して
は、キャッシュフラッシュが不要であることが即座に認
識できるため、チェックポイント処理の所要時間を大幅
に短縮することが可能となる。
【0030】また、この発明のデータ処理方法は、バス
スヌープ機構を有するコピーバック型のキャッシュメモ
リを備えた少なくとも一つ以上のプロセッサと、メイン
メモリと、請求項1乃至19のいずれかに記載のチェッ
クポイント処理加速装置と、前記プロセッサと前記メイ
ンメモリ前記チェックポイント処理加速装置とを接続す
るシステムバスを備える計算機システムにおけるデータ
処理方法であって、前記チェックポイント処理加速装置
のビフォアイメージ取得手段を起動した後、通常のデー
タ処理を実行するデータ処理実行ステップと、前記デー
タ処理実行ステップを一時中断して、すべての前記プロ
セッサが同期して実行するデータ処理中のコンテキス
メインメモリ格納して、前記チェックポイント処
理加速装置のキャッシュフラッシュ実行手段を起動し、
前記チェックポイント処理加速装置のキャッシュフラッ
シュ実行手段の実行終了後、前記データ処理実行ステッ
プを再開するチェックポイント作成ステップと、故障が
発生したときに、すべての前記プロセッサが同期して前
記キャッシュメモリのすべてのキャッシュブロックを無
効化した後、前記チェックポイント処理加速装置のメイ
ンメモリ状態復元手段を起動することにより前記メイン
メモリの状態を直前に採取してチェックポイント時点の
状態に復元し、その後前記データ処理実行ステップを再
開するロールバック/リカバリステップとを有すること
を特徴とする。
【0031】中断した処理を再開始するためのチェック
ポイントを定期的に採取する計算機システムにおいて
は、このチェックポイントの採取に費やす時間をいかに
短縮するかが重要である。すなわち、このような計算機
システムに、前述したようなチェックポイント処理加速
装置を適用すれば、システム全体の性能を向上させるこ
とが可能となる。
【0032】
【発明の実施の形態】以下、図面を参照してこの発明の
実施の形態を説明する。
【0033】(第1の実施形態)図1には、この発明の
第1の実施形態に係る計算機システムのシステム構成が
示されている。各プロセッサ10は、キャッシュ一貫性
を備えたコピーバック型のキャッシュメモリ20を有す
る。ただし、キャッシュメモリがプライマリとセカンダ
リとの2階層あるいはそれ以上の階層で構成される場
合、本実施形態でいうキャッシュメモリ20とは、最も
システムバス40に近いキャッシュメモリを指す。ま
た、キャッシュメモリによっては、命令を格納するキャ
ッシュメモリと、データを格納するキャッシュメモリと
が分かれているものもあるが、その場合、本実施形態で
いうキャッシュメモリ20とは、データを格納するため
のキャッシュメモリを指す。また、本システムにおける
システムバス40上でのアドレスは、32ビットとして
説明する。
【0034】まず、このチェックポイント処理加速装置
30の機能について、本装置を制御するソフトウェアと
関連させて説明する。
【0035】(初期化)プロセッサ10は、ある適当な
時点でModified状態(後述)のキャッシュブロ
ックが存在しない状態を作る。
【0036】(通常のデータ処理時)プロセッサ10
は、通常のデータ処理を開始する時点でビフォアイメー
ジ取得部32を起動する。プロセッサ10が、アプリケ
ーションプログラムなどを実行している間、チェックポ
イント処理加速装置30は、システムバス40を監視
し、プロセッサ10がキャッシュメモリ20上でデータ
を更新したことを検知するごとに、更新アドレスと更新
前のデータとを記憶する。
【0037】(チェックポイント処理)プロセッサ10
は、通常のデータ処理を一定時間、たとえば数ミリ秒〜
数10ミリ秒実行すると、チェックポイント処理を行な
う。チェックポイント処理では、直前まで実行していた
アプリケーションプログラムのコンテキスト(プロセッ
サのレジスタ内容など)をメインメモリ51に格納する
とともに、すべてのModified状態のキャッシュ
ブロックの内容をメインメモリ51に格納する(以下、
「キャッシュフラッシュ」という)。このチェックポイ
ント処理加速装置30は、すべてのModified状
態のキャッシュブロックに対し、その内容のメインメモ
リ51への書き戻しを要求するコマンドをシステムバス
40に発行することによってキャッシュフラッシュを実
現する。この処理は、プロセッサ10がキャッシュフラ
ッシュ用のソフトウェアを実行するのと比較して高速で
あることが期待される。チェックポイント処理が終了す
ると、プロセッサ10は通常のデータ処理を再開する。
【0038】(障害発生時の復旧処理)計算機システム
に何らかの障害が発生した場合、プロセッサ10は、障
害の箇所を同定し、必要であれば障害の発生した装置を
切り離すとともに、すべてのキャッシュブロック20を
無効化する。そして、チェックポイント処理加速装置3
0は、その内部に記憶されているビフォアイメージを使
って、メインメモリ51に更新前のデータを書き戻すコ
マンドを発行することにより、メインメモリ51の状態
を直前のチェックポイント処理時の状態に戻す。その
後、プロセッサ10は通常のデータ処理を再開する。
【0039】すなわち、本実施形態のチェックポイント
処理加速装置30は、下記の3つの機能を有する。
【0040】(1)通常のデータ処理時 プロセッサ10がデータ更新を行なったことを検知し、
そのビフォアイメージを取得して記憶する。
【0041】(2)チェックポイント処理 プロセッサ10からの指示により、記憶していたビフォ
フイメージを使ってModified状態のキャッシュ
ブロックの内容のメインメモリ51への書き戻しを要求
するコマンドを発行する。
【0042】(3)障害発生時の復旧処理 プロセッサ10からの指示により、記憶していたビフォ
アイメージを使ってメインメモリ51に更新前のデータ
を書き戻すコマンドを発行する。
【0043】なお、ビフォアイメージを記憶するのは、
(2)および(3)の機能を実現するためであるから、
必ずしもすべてのデータ更新について、そのビフォアイ
メージを取得する必要はない。たとえば、チェックポイ
ントの後、あるアドレスに対して最初に更新が発生した
場合、ビフォアイメージの取得は必須であるが、2度目
以降の場合には、ビフォアイメージの取得は不要であ
る。
【0044】このチェックポイント処理加速装置30
は、システムバス40上のコマンドとその応答とを監視
し、あるいは能動的にコマンドを発行することにより処
理を行なうので、ここでキャッシュメモリ20およびシ
ステムバス40の構造、ならびにコマンドとそれに対す
る応答とについて説明する。ただし、ここで述べるもの
は、本実施形態のメモリ状態復元部33を適用可能な計
算機の一例である。たとえば、下記に示すキャッシュブ
ロックの取り得る状態やシステムバス40上のコマンド
や応答には、それぞれ数種類のバリエーションが存在す
るが、いずれについても本実施形態の主旨にしたがった
チェックポイント処理加速装置30が構成可能である。
【0045】(システムバスの構造)システムバス40
は、アドレス/データ線の他、制御用信号線として、コ
マンド信号線、モディファイド応答信号線、およびシェ
アード応答信号線を含む。アドレス/データ信号線は、
コマンドのアドレスおよびデータを送るための信号線で
あり、共通の信号線を時分割で使う方式と、アドレス/
データそれぞれに独立した信号線を設ける方式とがあ
り、いずれであっても構わない。コマンド信号線は、コ
マンドの種類を示す他、コマンドに関する各種情報を送
るための信号線である。シェアード応答信号線は、他の
プロセッサ/キャッシュメモリにより発行されたコマン
ドに対して、ブロックを共有していることを通知するた
めに用いられる。そして、モディファイド応答信号線
は、他のプロセッサ/キャッシュメモリにより発行され
たコマンドに対して、ブロックの更新データを保持して
いることを通知するために用いられる。
【0046】(キャッシュブロックの状態)キャッシュ
ブロックの取り得る状態は、下記の通りである。
【0047】(1)Invalid状態 そのキャッシュブロックには有効なデータが存在しな
い。
【0048】(2)Modified状態 そのキャッシュブロックには更新されたデータが存在す
る。また、他のプロセッサ10のキャッシュブロックに
は、このデータは存在しない。
【0049】(3)Clean−Shared状態 そのキャッシュブロックにはメインメモリ51と同一内
容のデータが存在する。また、他のプロセッサ10のキ
ャッシュブロックにも、このデータが存在する可能性が
ある。
【0050】(4)Clean−Exclusive状
態 そのキャッシュブロックにはメインメモリ51と同一内
容のデータが存在する。また、他のキャッシュメモリ2
0のキャッシュブロックには、このデータは存在しな
い。
【0051】(コマンドおよび応答の仕様)システムバ
ス40上のコマンドおよびそれに対するキャッシュメモ
リ20あるいはメインメモリ51からの応答は、次の通
りである。ただし、このうち、Read−Line−N
on−Coherentは、システムバス40ではサポ
ートされているが、キャッシュメモリ20が発行するコ
マンドではない。
【0052】(1)Read−Line(キャッシュブ
ロックデータのリード要求) 発行される状況…プロセッサ10がデータを読込もうと
して、キャッシュメモリ20中にそのデータが無い場
合。
【0053】応答(ケース1)…Modified状態
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Lineコマン
ドを発行したキャッシュメモリ20とメインメモリ51
にデータが転送される。両方のキャッシュブロックの状
態は、Clean−Sharedとなる。
【0054】応答(ケース2)…Modified状態
のキャッシュブロックを有するキャッシュメモリ20は
ないが、Clean−SharedまたはClean−
Exclusive状態のキャッシュブロックを有する
キャッシュメモリ20があれば、そのキャッシュメモリ
20は、シェアード応答信号線をアサートする。メイン
メモリ51またはそのデータを保持するキャッシュメモ
リ20がRead−Lineコマンドを発行したキャッ
シュメモリ20にデータを転送する。いずれがデータ転
送するかは、計算機に依存する。両方のキャッシュブロ
ックの状態は、Clean−Sharedとなる。
【0055】応答(ケース3)…前記いずれでもない場
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ineコマンドを発行したキャッシュメモリ20にデー
タが転送される。キャッシュブロックの状態は、Cle
an−Exclusiveとなる。
【0056】(2)Read−Line−with−I
nvalidate(キャッシュブロックデータのリー
ドと、他のキャッシュブロックの無効化要求) 発行される状況…プロセッサ10がデータを更新しよう
として、キャッシュメモリ20中にそのデータが無い場
合。
【0057】応答(ケース1)…Modified状態
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Line−wi
th−Invelidateコマンドを発行したキャッ
シュメモリ20とメインメモリ51にデータが転送され
る。計算機によっては、Modified状態のキャッ
シュブロックを有するキャッシュメモリ20がRetr
yを応答して、メインメモリ51にデータを書戻し、R
ead−Line−with−Invelidateコ
マンドを発行したキャッシュメモリ20が再度同じコマ
ンドを発行すると、今度はメインメモリ51が応答する
こともある(後述するケース3)。本実施形態では、前
者であるとして説明する。要求を発行した側のキャッシ
ュブロックの状態は、Modifiedとなり、応答し
た側は、Invalid状態となる。
【0058】応答(ケース2)…Clean−Shar
edまたはClean−Exclusive状態のキャ
ッシュブロックを有するキャッシュメモリ20があれ
ば、そのキャッシュメモリ20は、シェアード応答信号
線をアサートする。メインメモリ51またはそのデータ
を保持するキャッシュメモリ20がRead−Line
−with−Invelidateコマンドを発行した
キャッシュメモリ20にデータを転送する。いずれがデ
ータ転送するかは、計算機に依存する。要求を発行した
側のキャッシュブロックの状態は、Modifiedと
なり、応答した側は、Invalid状態となる。
【0059】応答(ケース3)…前記いずれでもない場
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ine−with−Invelidateコマンドを発
行したキャッシュメモリ20にデータが転送される。キ
ャッシュブロックの状態は、Modifiedとなる。
【0060】(3)Write−Line(キャッシュ
ブロックデータのメインメモリへの書き込み) 発行される状況…Modified状態のキャッシュブ
ロックに他のアドレスのデータを格納しなければならな
くなったため、Modified状態のキャッシュブロ
ックの内容をメインメモリ51に書き戻す場合。
【0061】応答…メインメモリ51がこのコマンドに
含まれるデータにより更新される。キャッシュブロック
の内容は、Clean−Sharedとなる。
【0062】(4)Invalidate(他のキャッ
シュメモリのデータ無効化要求。アドレスの転送のみ) 発行される状況…プロセッサ10がClean−Sha
red状態のキャッシュブロックのデータを更新しよう
とする場合。
【0063】応答…本コマンドを発行した側は、Mod
ified状態となり、受信した側は、Invalid
状態となる。
【0064】(5)Read−Line−Non−Co
herent(メインメモリデータのリード要求) 発行される状況…メインメモリ51からI/O装置への
DMA転送等で使用応答…キャッシュメモリ20の状態
に関わらず、常にメインメモリ51が要求されたアドレ
スの内容を応答として返す。キャッシュブロックの状態
は不変である。
【0065】以上、本実施形態のキャッシュメモリ20
およびシステムバス40などを説明した。
【0066】(チェックポイント処理加速装置の構成)
チェックポイント処理加速装置30は、ビフォアイメー
ジ記憶部35、ビフォアイメージ取得部32、キャッシ
ュフラッシュ実行部34およびメインメモリ状態復元部
33で構成される。
【0067】ビフォアイメージ記憶部35は、図2に示
すように、更新アドレスおよび更新前データの組(ビフ
ォアイメージ)を記憶する複数のエントリと、キャッシ
ュフラッシュ実行部34が使用するFポインタと、ビフ
ォアイメージ取得部32およびメインメモリ状態復元部
33が使用するWポインタとで構成される。
【0068】ビフォアイメージ記憶部35に記憶する更
新前のデータは、キャッシュブロックと同じ大きさ(こ
こでは、Bビットとする)である。これは、キャッシュ
メモリ20間、あるいはキャッシュメモリ20とメイン
メモリ51間のデータ転送の単位と同じにするためであ
る。
【0069】Wポインタは、ビフォアイメージ取得部3
2が新たに取得したビフォアイメージを格納するエント
リを示す。プロセッサ10の指示により、ビフォアイメ
ージ取得部32が起動されると、Wポインタは、最初の
エントリを指すように初期化される。そして、ビフォア
イメージ取得部32が新たに取得したビフォアイメージ
をWポインタの指すエントリに格納すると、Wポインタ
がインクリメントされ、その次のエントリを指すように
制御される。また、プロセッサ10の指示によりメイン
メモリ状態復元部33が起動されると、Wポインタが次
々とデクリメントされながら、Wポインタの指すエント
リに格納されている更新アドレスと更新前データの組を
使って、メインメモリ51の内容が更新前の状態に戻さ
れていく。
【0070】Fポインタは、キャッシュフラッシュ実行
部34が次に処理対象とするビフォアイメージを格納し
ているエントリを指す。プロセッサ10の指示により、
キャッシュフラッシュ実行部34が起動されると、Fポ
インタは最初のエントリを指すよう初期化される。そし
て、キャッシュフラッシュ実行部34は、Fポインタの
指すエントリに格納されている更新アドレスに対して、
Read−Lineコマンドを発行しては、Fポインタ
が次のエントリを指すよう制御される。そして、Fポイ
ンタの値とWポインタの値が一致すると、キャッシュフ
ラッシュ実行部34は終了する。
【0071】ビフォアイメージ取得部32は、システム
バス40上のコマンドおよび応答を監視し、あるいは必
要によりコマンドを発行することにより、プロセッサ1
0がキャッシュメモリ20上でデータを更新した際、そ
のビフォアイメージをビフォアイメージ記憶部35に格
納する。ビフォアイメージ取得部32が前記コマンドを
検知したときの動作を下記に示す。
【0072】(1)Read−Line シェアード応答信号線をアサートする。
【0073】(2)Read−Line−with−I
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスと、キャッシュメモリ20またはメインメモリ5
1からの応答に含まれる更新前データとをビフォアイメ
ージ記憶部35に格納する。
【0074】(3)Invalidate コマンドに含まれる更新アドレスを使って、Read−
Lint−Non−Conerentコマンドを発行す
る。そして、前記更新アドレスとメインメモリ51から
の応答に含まれる更新前データとをビフォアイメージ記
憶部35に格納する。
【0075】図3には、このビフォアイメージ取得部3
2の処理フローが示されている。
【0076】Read−Lineコマンドは、プロセッ
サ10がデータを更新するときに発行されるコマンドで
はないので、ビフォアイメージを取得することはない。
しかし、シェアード応答信号線をアサートし、キャッシ
ュブロックがClean−Exclusive状態とな
るのを防ぐ必要がある。というのは、プロセッサ10が
Clean−Exclusive状態のキャッシュブロ
ックのデータを更新する場合、他のキャッシュメモリ2
0はそのデータを保持していないため、システムバス4
0に何のコマンドも発行されることなく、Clean−
Exclusive状態からModified状態に遷
移する。そのため、ビフォアイメージ取得部32は、ビ
フォアイメージを取得できなくなる。そこで、ビフォア
イメージ取得部32がシェアード応答信号線をアサート
することにより、キャッシュブロックはClean−S
hared状態となり、プロセッサ10によるデータの
更新では、システムバス40にInvalidateコ
マンドが発行されることになる。
【0077】Read−Line−with−Inva
lidateコマンドの場合、キャッシュメモリ20あ
るいはメインメモリ51から更新前のデータを含む応答
があるので、ビフォアイメージ取得部32は、それらを
抽出すれば良い。ただし、モディファイド応答信号線が
アサートされている場合、他のキャッシュメモリ20が
そのデータをModified状態で保持していたこと
になるので(したがって、そのアドレスに対応するビフ
ォアイメージはすでにビフォアイメージ記憶部35に記
憶されている)、その場合にはビフォアイメージを記憶
しない。これにより、ビフォアイメージ記憶部32の利
用効率の向上、キャッシュフラッシュ時間の短縮などが
期待できる。
【0078】Invalidateコマンドの場合、本
コマンドおよび応答はデータを含まないので、ビフォア
イメージ取得部32が、Read−Line−Non−
Coherentコマンドを発行し、メインメモリ51
からの応答に含まれる更新前データを取得する。ここ
で、もしRead−Lineコマンドを発行すると更新
されたデータを保持しているキャッシュブロックが応答
するので、更新前のデータを得ることはできない。すな
わち、Read−Line−Non−Coherent
コマンドを発行することが必須である。
【0079】キャッシュフラッシュ実行部34は、プロ
セッサ10の指示により、まずFポインタが最初のエン
トリを指すようにした後、Fポインタの指すエントリ中
の更新アドレスを使って、Read−Lineコマンド
を発行し、Fポインタを進める。Read−Lineコ
マンドを発行するのは、もし、そのアドレスのデータを
Modified状態で保持するキャッシュブロックが
あれば、そのデータをメインメモリ51にも転送し、そ
のキャッシュブロックの状態はModifiedからC
lean−Sharedに変化するというRead−L
ineとその応答の性質を利用するためである。そし
て、FポインタがWポインタと等しくなれば、キャッシ
ュフラッシュ処理を終了する。この時、キャッシュブロ
ックの状態はすべてInvalidもしくはClean
−Sharedとなっている。
【0080】このキャッシュフラッシュ実行部34は、
ビフォアイメージ記憶部35に格納されているすべての
アドレスについて、Read−Lineコマンドを発行
しているが、これには無駄がある。というのは、通常の
データ処理において、たとえばa番地のデータをMod
ified状態で保持しているキャッシュブロックが、
その後にb番地のデータを格納するため、a番地のデー
タをメインメモリ51に書き戻した場合、a番地のMo
dified状態のキャッシュブロックは実在しないに
もかかわらず、キャッシュフラッシュ実行部34は、a
番地のビフォアイメージが存在するため、a番地に対し
てRead−Lineコマンドを発行することが、少な
からず起こるためである。これを改善する方法について
は、他の実施形態において説明する。図4には、キャッ
シュフラッシュ実行部34の処理フローが示されてい
る。
【0081】メインメモリ状態復元部33は、プロセッ
サ10の指示により、Wポインタをデクリメントし、W
ポインタの指すエントリ中のビフォアイメージをWri
te−Lineコマンドを使って、メインメモリに書き
戻す。ここで、a番地に対するビフォアイメージが2つ
以上存在する場合、チェックポイント時の状態に戻すに
は、より早い時点で取得したビフォアイメージをより遅
い時点でメインメモリ51に書き戻す必要がある。した
がって、Wポインタが現在指すエントリから最初のエン
トリに向かってデクリメントするのは、前記の制約を満
たす最も容易な方法である。図5には、メインメモリ状
態復元部33の処理フローが示されている。
【0082】次に、プロセッサ10によるチェックポイ
ント処理加速装置30の制御方式を図6に基づいて説明
する。
【0083】通常のデータ処理では、ビフォアイメージ
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになると、通常のデータ処理を中断して、
チェックポイント処理を開始する。
【0084】チェックポイント処理では、まず、プロセ
ッサ10を割り込み禁止状態にして、外部機器などから
の割り込みを受けつけないようにする。これは、チェッ
クポイント処理中は、通常のデータ処理を一切実行しな
いようにするためである。ただし、計算機の故障発生を
通知する割り込みについては、通常の割り込みより高い
優先度を設定するなど、前記割り込み禁止状態にあって
も受け付けられるようになっている必要がある。
【0085】次に、プロセッサ10は、キャッシュフラ
ッシュ実行部34を起動し、通常のデータ処理を中断し
た時点でのコンテキスト、すなわちレジスタの内容のメ
インメモリ51の然るべきアドレスへの書き込みを行な
う。ただし、本実施形態ではコピーバック型のキャッシ
ュメモリが使用されるので、この時点では通常のデータ
更新と同じように、キャッシュブロックにModifi
ed状態で保持され、ビフォアイメージ記憶部35にそ
のアドレスのビフォアイメージが記憶されている。
【0086】その後、プロセッサ10は、キャッシュフ
ラッシュ実行部34が、ビフォアイメージ記憶部35内
のビフォアイメージを使って、すべてのModifie
d状態のキャッシュブロックのデータがメインメモリ5
1に書き戻されるのを待つ。プロセッサ10のコンテキ
ストも、このとき、メインメモリ51に書き戻される。
キャッシュフラッシュ実行部34が実行を終了すると、
メインメモリ51に保存したコンテキストを対応するレ
ジスタに戻し、割り込み禁止状態を解除することによ
り、通常のデータ処理を再開する。
【0087】次に、チェックポイント処理加速装置30
の動作を説明する。
【0088】(初期化)プロセッサ10は、ソフトウェ
アを実行することにより、すべてのキャッシュブロック
をModified状態以外の状態にする。
【0089】(通常のデータ処理時)プロセッサ10
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図7を参照し、
通常のデータ処理として、プロセッサ10が、a番地の
データをA0からA1に、b番地のデータをB0からB
1に、a番地のデータをA1からA2に、この順で更新
する場合について説明する。ただし、a番地、b番地
は、ともにキャッシュブロックBLK0に対応し、BL
K0は、初期状態ではa番地のデータA0をClean
−Shared状態で保持しているとする。
【0090】(1)初期状態を示す。
【0091】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0092】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
【0093】(4)ビフォアイメージ取得部32は、a
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
【0094】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
【0095】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0096】(7)メインメモリ51がデータB0を含
む応答を返す。この動作例は、初期化直後であるので、
モディファイド応答信号線はアサートされない。このと
き、ビフォアイメージ取得部32は、b番地とデータB
0の組をビフォアイメージ記憶部35に格納する。
【0097】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
【0098】(9)メインメモリ51のa番地のデータ
がA1に変わる。
【0099】(10)プロセッサ10がa番地のデータ
をA2に更新しようするが、キャッシュブロックBLK
0がb番地のデータB1をModified状態を保持
しているため、b番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にa番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0100】(11)メインメモリ51がデータA1を
含む応答を返す。ビフォアイメージ取得部32は、a番
地とデータA1の組をビフォアイメージ記憶部35に格
納する。
【0101】(12)ライトバッファに保持されていた
b番地に対するWrite−Lineコマンドが発行さ
れる。
【0102】(13)メインメモリ51のb番地のデー
タがB1に変わる。
【0103】以上、プロセッサ10、メインメモリ51
およびビフォアイメージ取得部32の動作例を示した。
【0104】(チェックポイント処理時)前述した状態
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図8に示す。ただし、ビフォ
アイメージの欄の下線は、Fポインタの指す位置を表わ
す。
【0105】(1)初期状態を示す。
【0106】(2)キャッシュフラッシュ実行部34
は、最初に取得したビフォアイメージa番地とデータA
0の組を使い、a番地に対するRead−Lineコマ
ンドを発行する。
【0107】(3)BLK0はa番地のデータA2をM
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。
【0108】(4)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対してRead−Lineコマンドを発行す
る。
【0109】(5)BLK0はa番地のデータをCle
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートし
ない。メインメモリ51がB1を応答する。BLK0の
状態は変化しない。
【0110】(6)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対してRead−Lineコマンドを発行す
る。
【0111】(7)BLK0はClean−Share
d状態であるので、シェアード応答信号線をアサートす
る。メインメモリ51がA2を応答する。BLK0の状
態は変化しない。
【0112】キャッシュフラッシュ実行部34の動作が
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。これは、初期化直後
と同じ状態であり、したがって、キャッシュフラッシュ
実行部34が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
【0113】以上、ビフォアイメージを使った、キャッ
シュフラッシュ実行部34の動作例を示した。
【0114】(障害発生時の復旧処理)計算機に何らか
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
そして、チェックポイント処理加速装置30のメインメ
モリ状態復元部33が、ビフォアイメージを使って、W
rite−Lineコマンドを発行することにより、メ
インメモリ51の状態を直前のチェックポイント処理時
の状態に戻す。
【0115】この様子を、先に説明したチェックポイン
ト処理の開始前に故障が発生した場合を例に図9を参照
して説明する。
【0116】(1)初期状態を示す。
【0117】(2)プロセッサ10がすべてのキャッシ
ュブロックの無効化を行なう命令を実行する。
【0118】(3)この命令実行の結果、BLK0はI
nvalid状態となる。
【0119】(4)メインメモリ状態復元部33が、最
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
【0120】(5)メインメモリ51のa番地にA1が
書かれるが、もともとA1であったので変わらない。
【0121】(6)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
【0122】(7)メインメモリ51のb番地がB0に
変わる。
【0123】(8)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
【0124】(9)メインメモリ51のa番地がA0に
変わる。
【0125】この結果、メインメモリ51はチェックポ
イント処理終了時点の状態に戻る。
【0126】以上、メインメモリ状態復元部33の動作
例を示した。
【0127】このように、本実施形態のチェックポイン
ト処理加速装置30を適用すれば、特別なキャッシュメ
モリなどを必要とせずに、標準的な構成をもつ計算機シ
ステムにおいて効率的なキャッシュフラッシュが実現さ
れ、かつ高性能なチェックポイントリカバリ方式の計算
機システムが構築可能となる。
【0128】(第2の実施形態)次に、この発明の第2
の実施形態を説明する。図10には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
【0129】本実施形態のチェックポイント処理加速装
置30は、ビフォアイメージ記憶部35、フラグメモリ
36、ビフォアイメージ取得部32、キャッシュフラッ
シュ実行部34およびメインメモリ状態復元部33で構
成される。
【0130】ビフォアイメージ記憶部35は、第1の実
施形態のビフォアイメージ記憶部35と同一である。
【0131】フラグメモリ36は、メインメモリ51を
キャッシュブロック単位ごとに1ビットの情報を保持す
る領域である。なお、実装されているメインメモリ51
の一部分についてフラグメモリ36を備えるだけでも良
い。フラグメモリ36は、そのアドレスに対するビフォ
アイメージがビフォアイメージ記憶部35に格納され、
かつキャッシュフラッシュ実行部34が未だそのアドレ
スに対してRead−Lineコマンドを発行していな
いときにだけオンになるように制御される。したがっ
て、あるアドレスに対するフラグメモリ36がオンにな
っているということは、キャッシュフラッシュ実行部3
4が、将来、そのアドレスに対してRead−Line
コマンドを発行することを表わしている。また、初期化
終了時やチェックポイント処理終了時は、すべてのフラ
グメモリ36の値がオフになっている。
【0132】ビフォアイメージ取得部32は、ビフォア
イメージを取得する部分に関しては第1の実施形態と同
じである。しかし、前述したフラグメモリ36の参照/
更新の処理が追加され、また、フラグメモリ36の値に
よって、ビフォアイメージを格納しないことがある。ビ
フォアイメージ取得部32の処理フローを図11に示
す。
【0133】図11に示したように、ビフォアイメージ
取得部32は、更新アドレスに対応するフラグメモリ3
6の値を参照し、もしオフであれば、それをオンに変更
するとともに、第1の実施形態と同一の方法でビフォア
イメージを取得する。一方、オンであれば、ビフォアイ
メージを取得・格納する必要はない。それは、下記の理
由による。
【0134】(1)フラグメモリ36をオンにするの
は、ビフォアイメージ取得部32がビフォアイメージを
取得して、ビフォアイメージ記憶部35に格納する時だ
けである。したがって、フラグメモリ36がオンである
ということは、そのアドレスに対するビフォアイメージ
が格納されているので、メインメモリ状態復元部33は
正しく動作する。
【0135】(2)また、フラグメモリ36がオンとい
うことは、キャッシュフラッシュ実行部34が、そのア
ドレスに対して将来Read−Lineコマンドを発行
することを示している。したがって、キャッシュフラッ
シュ実行部34にとっても、フラグメモリ36がオンの
時には、ビフォアイメージを格納する必要はない。
【0136】なお、あるアドレスに対応するフラグメモ
リ36が無い場合には、そのアドレスに対応するビフォ
アイメージを常に採取・格納すれば良い。つまり、その
ようなアドレスに関しては、第1実施形態の場合と同じ
動作となる。
【0137】キャッシュフラッシュ実行部34は、第1
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、フラグメモリ3
6をオフにする機構を追加したものである。なお、ある
アドレスに対応するフラグメモリ36が無い場合には、
図12に示す処理フローにおいて、フラグメモリ36を
オフにする部分だけを実行しないようにすればよい。
【0138】メインメモリ状態復元部33は、第1の実
施形態と同じである。
【0139】ここで、チェックポイント処理加速装置3
0の動作を説明する。
【0140】(初期化)プロセッサ10は、すべてのフ
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
【0141】(通常のデータ処理時)プロセッサ10
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図13を参照
し、通常のデータ処理として、プロセッサ10が、a番
地のデータをA0からA1に、b番地のデータをB0か
らB1に、a番地のデータをA1からA2に、この順で
更新する場合について説明する。ただし、a番地、b番
地は、ともにキャッシュブロックBLK0に対応し、B
LK0は、初期状態ではa番地のデータA0をClea
n−Shared状態で保持しているとする。
【0142】(1)初期状態を示す。
【0143】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0144】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
【0145】(4)ビフォアイメージ取得部32は、a
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
【0146】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
【0147】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書戻しのためのWrit
e−Lineコマンドがライトバッファに一時的に保持
され、先にb番地に対するRead−Line−wit
h−Invelidateコマンドが発行される。
【0148】(7)メインメモリ51がデータB0を応
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
【0149】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
【0150】(9)メインメモリ51のa番地がA1に
変わる。
【0151】(10)プロセッサ10がa番地のデータ
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
【0152】(11)メインメモリ51がデータA1を
応答する。ビフォアイメージ取得部32は、a番地に対
応するフラグメモリ36がオンであるため、ビフォアイ
メージを格納しない。
【0153】(12)ライトバッファに保持されていた
a番地に対するWrite−Lineコマンドが発行さ
れる。
【0154】(13)メインメモリ51のa番地がA1
に変わる。
【0155】以上、プロセッサ10、メインメモリ5
1、およびビフォアイメージ取得部32の動作例を示し
た。
【0156】(チェックポイント処理時)前述した状態
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地の順にRead−Lineコマンドを発行
する。その様子を図14に示す。ただし、ビフォアイメ
ージの欄の下線は、Fポインタが指す位置を表わす。
【0157】(1)初期状態を示す。
【0158】(2)キャッシュフラッシュ実行部34
は、最初に、ビフォアイメージa番地とデータA0の組
を使い、a番地に対応するフラグメモリ36をオフにす
るとともに、a番地に対してRead−Lineコマン
ドを発行する。
【0159】(3)BLK0はa番地のデータA2をM
odified状態で保持しているので、モディファイ
ド応答信号線がアサートされ、メインメモリ51への書
き戻しが行なわれ、メインメモリ51のa番地がA2に
変わる。BLK0の状態は、Clean−Shared
に変化する。
【0160】(4)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
【0161】(5)BLK0はa番地のデータをCle
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートさ
れない。メインメモリ51がB1を応答する。BLK0
の状態は変化しない。
【0162】キャッシュフラッシュ実行部34の動作が
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。また、すべてのフラ
グメモリ36の値がオフとなる。これは、初期化直後と
同じ状態であり、したがって、キャッシュフラッシュ実
行部34の動作が終了すると、プロセッサ10は直ちに
通常のデータ処理を始めることができる。
【0163】以上、ビフォアイメージを使った、キャッ
シュフラッシュ実行部34の動作例を示した。
【0164】(障害発生時の復旧処理)計算機に何らか
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
そして、チェックポイント処理加速装置30のメインメ
モリ状態復元部33が、ビフォアイメージを使って、W
rite−Lineコマンドを発行することにより、メ
インメモリ51の状態を直前のチェックポイント処理時
の状態に戻す。
【0165】この様子を、先に説明したチェックポイン
ト処理の開始前に故障が発生した場合を例に図15を参
照して説明する。
【0166】(1)初期状態を示す。
【0167】(2)プロセッサ10がすべてのキャッシ
ュブロックの無効化を行なう命令を実行する。
【0168】(3)この命令実行の結果、BLK0はI
nvalid状態となる。
【0169】(4)メインメモリ状態復元部33が、最
後に取得したビフォアイメージb番地とデータB0の組
をもとに、Write−Lineコマンドを発行する。
【0170】(5)メインメモリ51のb番地がB0に
変わる。
【0171】(6)メインメモリ状態復元部33が、ビ
フォアイメージa番地とデータA0の組をもとに、Wr
ite−Lineコマンド発行する。
【0172】(7)メインメモリ51のa番地がA0に
変わる。
【0173】(8)プロセッサ10は、フラグメモリ5
1をすべてオフにする。
【0174】この結果、メインメモリ51はチェックポ
イント処理終了時点の状態に戻る。
【0175】以上、メインメモリ状態復元部33の動作
例を示した。
【0176】なお、フラグメモリ36は、すべてのアド
レスに対して設定する必要は必ずしもない。あるアドレ
スについて、対応するフラグメモリ36がない場合、ビ
フォアイメージ取得部32は、そのアドレスに対するビ
フォアイメージを取得し、ビフォアイメージ記憶部35
に格納するようにすれば良い。
【0177】このように、本実施形態のチェックポイン
ト処理加速装置30では、フラグメモリ36を設けるこ
とにより、同じアドレスに対するビフォアイメージが2
回以上ビフォアイメージ記憶部35に格納されることを
回避できる。また、キャッシュフラッシュ実行部34が
実行を終了したときには、すべてのフラグメモリ36が
オフになっているため、プロセッサ10は直ちに通常の
データ処理を開始できる。
【0178】(第3の実施形態)次に、この発明の第3
の実施形態を説明する。図16には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
【0179】本実施形態のチェックポイント処理加速装
置30は、ビフォアイメージ記憶部35、ブロックカウ
ンタ38、ブロックカウンタ制御部37、ビフォアイメ
ージ取得部32、キャッシュフラッシュ実行部34およ
びメインメモリ状態復元部33で構成される。
【0180】ビフォアイメージ記憶部35は、第1の実
施形態のビフォアイメージ記憶部35と同一である。
【0181】ブロックカウンタ38は、1つ以上のアド
レス範囲の各々に対して設けられたカウンタの集合であ
り、各アドレス範囲に含まれるModified状態の
キャッシュブロックの個数を保持するのに用いられる。
ただし、各アドレス範囲は、互い共通部分を持たないよ
うに設定する。このアドレス範囲の設定の一例を、キャ
ッシュメモリ20がダイレクトマップ方式の場合につい
て説明する。
【0182】ひとつのキャッシュブロックに対応するア
ドレスの集合をひとつのアドレス範囲とする。この場
合、ブロックカウンタに属するひとつのカウンタは、対
応するキャッシュブロックでModified状態のも
のの個数を保持することになる。プロセッサ数がPの場
合、カウンタは0〜P+αまでの値を取りうる。ここ
で、αは正の整数であり、最近の高速プロセッサが有す
るライトバッファの効果により、システムバスを監視し
ているチェックポイント処理加速装置からは、一時的に
ではあるが、ひとつのキャッシュブロックに対応して、
複数の番地のデータがModified状態で保持され
ているように見えることに対応するものである。αの値
は、P程度であれば十分である。なお、ブロックカウン
タを構成する各カウンタは、ブロックカウンタ制御部3
7により増減される。また、キャッシュフラッシュ実行
部34によって参照される。
【0183】ブロックカウンタ制御部37は、システム
バス40上のコマンドおよびその応答を監視して、キャ
ッシュブロックがModified状態に変わるのを検
知したときに、そのアドレスに対応する前記カウンタが
ある場合は、それをインクリメントする。一方、キャッ
シュブロックがModified状態からそれ以外の状
態に変わるのを検知したときには、そのアドレスに対応
する前記カウンタがある場合は、それをデクリメントす
る。
【0184】ブロックカウンタ制御部37がシステムバ
ス40上のコマンドおよびその応答を検知したときの動
作を下記に示す。
【0185】(1)Read−Line もし、モディファイド応答信号線がアサートされれば、
コマンドに含まれるアドレスに対応するカウンタをデク
リメントする。そうでなければ何もしない。
【0186】(2)Read−Line−with−I
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスに対応するカウンタをインクリメントする。
【0187】(3)Invalidate コマンドに含まれる更新アドレスに対応するカウンタを
インクリメントする。
【0188】(4)Write−Line コマンドに含まれるアドレスに対応するカウンタをデク
リメントする。
【0189】なお、Read−Lineコマンドでモデ
ィファイド応答信号線がアサートされた場合は、Mod
ified状態のキャッシュブロックのデータがメイン
メモリに書き戻され、状態がModifiedからCl
ean−Sharedに変化したことを示すから、カウ
ンタをデクリメントする。また、Read−Line−
with−Invalidateコマンドでモディファ
イド応答信号線がアサートされた場合は、Modifi
ed状態のキャッシュブロックがあるキャッシュメモリ
から他のキャッシュメモリに移動したということである
から、カウンタの値は変えない。
【0190】ビフォアイメージ取得部32は、第1の実
施形態のビフォアイメージ取得部32と同一である。
【0191】キャッシュフラッシュ実行部34は、第1
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、対応するカウン
タの値を参照し、もし、0であれば、Read−Lin
eコマンドを発行しないようにする機構を追加したもの
である。図17には、キャッシュフラッシュ実行部34
の処理フローが示されている。
【0192】メインメモリ状態復元部33は、第1の実
施形態と同じである。
【0193】ここで、チェックポイント処理加速装置3
0の動作を説明する。
【0194】(初期化)プロセッサ10は、ブロックカ
ウンタ38を構成するすべてのカウンタの値を0とす
る。これと同期して、プロセッサ10はソフトウェアを
実行することにより、すべてのキャッシュブロックをM
odified状態以外の状態にする。
【0195】(通常のデータ処理時)プロセッサ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つ
設けられているとする。
【0196】(1)初期状態を示す。
【0197】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0198】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
ブロックカウンタ制御部37は、カウンタをインクリメ
ントして1とする。
【0199】(4)ビフォアイメージ取得部32は、a
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
【0200】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
【0201】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
ti−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0202】(7)メインメモリ51がデータB0を含
む応答を返す。ブロックカウンタ制御部37は、カウン
タをインクリメントして2とする。ビフォアイメージ取
得部32は、b番地とデータB0の組をビフォアイメー
ジ記憶部35に格納する。
【0203】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
【0204】(9)メインメモリ51のa番地のデータ
がA1に変わる。ブロックカウンタ制御部37は、カウ
ンタをデクリメントして1とする。
【0205】(10)プロセッサ10がa番地のデータ
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
【0206】(11)メインメモリ51がデータA1を
含む応答を返す。ブロックカウンタ制御部37は、カウ
ンタをインクリメントして2とする。ビフォアイメージ
取得部32は、a番地とデータA1の組をビフォアイメ
ージ記憶部35に格納する。
【0207】(12)ライトバッファに保持されていた
b番地に対するWrite−Lineコマンドが発行さ
れる。
【0208】(13)メインメモリ51のb番地のデー
タがB1に変わる。このとき、ブロックカウンタ制御部
37は、カウンタをデクリメントして1とする。
【0209】以上、プロセッサ10、メインメモリ5
1、ブロックカウンタ制御部37、およびビフォアイメ
ージ取得部32の動作例を示した。
【0210】(チェックポイント処理時)前述した状態
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図19に示す。ただし、ビフ
ォアイメージの欄の下線は、Fポインタの指す位置を表
わす。
【0211】(1)初期状態を示す。
【0212】(2)キャッシュフラッシュ実行部34
は、最初に、取得したビフォアイメージa番地とデータ
A0の組を使う。a番地に対応するカウンタが1である
ので、a番地に対してRead−Lineコマンドを発
行する。
【0213】(3)BLK0はa番地のデータA2をM
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。ブロックカウンタ制御部37は、Read−
Lineコマンドに対して、モディファイド応答信号線
がアサートされたので、カウンタをデクリメントして0
とする。
【0214】(4)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使おう
とするが、b番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
【0215】(5)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA1の組を使おう
とするが、a番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
【0216】(6)キャッシュフラッシュ実行部34の
動作が終了すると、Modified状態であったすべ
てのキャッシュブロックの内容がメインメモリ51に書
き戻されるとともに、それらキャッシュブロックの状態
がClean−Shared状態になる。また、すべて
のカウンタの値は0となる。これは、初期化直後と同じ
状態であり、したがって、キャッシュフラッシュ実行部
34の動作が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
【0217】以上、ビフォアイメージを使った、キャッ
シュフラッシュ実行部34の動作例を示した。
【0218】このように、本実施形態では、ブロックカ
ウンタ38を設けることにより、キャッシュフラッシュ
実行部34が発行するRead−Lineコマンドの数
を減らすことができるため、その分、チェックポイント
処理の所要時間を短縮できる。
【0219】(障害発生時の復旧処理)次に、先に説明
したチェックポイント処理の開始前に故障が発生した場
合を例に図20を参照して説明する。障害が発生したと
き、プロセッサ10はすべてのキャッシュブロックを無
効化するので、キャッシュブロックBLK0の状態もI
nvalidとなっている。
【0220】(1)初期状態を示す。
【0221】(2)プロセッサ10がすべてのキャッシ
ュブロックの無効化を行なう命令を実行する。
【0222】(3)この命令実行の結果、BLK0はI
nvalid状態となる。
【0223】(4)メインメモリ状態復元部33が、最
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
【0224】(5)メインメモリ51のa番地にA1が
書かれるが、もともとA1であったので変わらない。
【0225】(6)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
【0226】(7)メインメモリ51のb番地がB0に
変わる。
【0227】(8)メインメモリ状態復元部33が、そ
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
【0228】(9)メインメモリ51のa番地がA0に
変わる。
【0229】(10)プロセッサ10が、すべてのカウ
ンタの値を0にする。
【0230】この結果、メインメモリ51は、チェック
ポイント処理終了の時点の状態に戻る。
【0231】以上、メインメモリ状態復元部33の動作
例を示した。
【0232】なお、ブロックカウンタ38は、すべての
アドレスに対して設定する必要は必ずしもない。あるア
ドレスについて、対応するカウンタがない場合、キャッ
シュフラッシュ実行部34は、そのアドレスに対するR
ead−Lineコマンドを常に発行するようにすれば
良い。
【0233】このように、本実施形態のチェックポイン
ト処理加速装置30では、ブロックカウンタ38を設け
ることにより、キャッシュフラッシュ実行部34がMo
dified状態のキャッシュブロックが実在しないア
ドレスに対して、Read−Lineコマンドを発行す
るという無駄をある程度軽減できる。また、キャッシュ
フラッシュ実行部34が実行中も、ブロックカウンタ制
御部37がブロックカウンタ38のインクリメント/デ
クリメントを適切に行なうことにより、キャッシュフラ
ッシュ実行部34が実行を終了した時、すべてのブロッ
クカウンタの値は0となっている。このため、キャッシ
ュフラッシュ実行部34が実行を終了すると、プロセッ
サは直ちに通常のデータ処理を開始できる。
【0234】なお、前述した実施形態では、ブロックカ
ウンタ38を、ダイレクトマップ方式のキャッシュメモ
リ20についてキャッシュブロックの各々に対応させて
設ける方式を示した。
【0235】ここでは、キャッシュメモリ20がnウェ
イのセットアソシアティブ方式の場合について示す。
【0236】nウェイのセットアソシアティブ方式のキ
ャッシュメモリの場合、あるアドレスのデータは、ひと
つのウェイを形成するn個のキャッシュブロックのいず
れかに格納されるが、そのうちのどのキャッシュブロッ
クに格納されるかは、その都度変わりうる。
【0237】そこで、ひとつのウェイを形成するn個の
キャッシュブロックに対して、ひとつのカウンタを設け
る。すなわち、あるカウンタは、対応するウェイでMo
dified状態のキャッシュブロックの個数を保持す
ることになる。プロセッサ数がPの場合、カウンタは0
〜P×n+αまでの値を取りうる。αはダイレクトマッ
プ方式の場合に説明したように、プロセッサのライトバ
ッファに対応するためのマージンである。
【0238】また、ブロックカウンタ38をキャッシュ
ブロックあるいはひとつのウェイを形成するキャッシュ
ブロックの集合に対応させて設けることに代えて、メイ
ンメモリをキャッシュブロックの大きさに分け、それぞ
れに対してカウンタを設けることも可能である。この場
合、計算機のプロセッサ数に関係なく、ひとつのアドレ
スに対するModified状態のキャッシュブロック
の個数は0か1かであるので、それぞれ1ビットで表現
することができ、ブロックカウンタ制御部37を簡単化
することができる。
【0239】これは、メインメモリをキャッシュブロッ
クの大きさに分けて、1ビットの情報を持たせるという
点で、第2の実施形態と類似するが、下記の点で異な
る。
【0240】すなわち、1ビット情報のオン/オフする
タイミング、および、そのオン/オフによって制御する
対象が異なる。具体的には、第2の実施形態では、ビフ
ォアイメージを取得するか否かの判断に使用するのに対
し、キャッシュフラッシュ実行部34がRead−Li
neコマンドを発行するか否かの判断に使用する。
【0241】また、チェックポイント方式の計算機の障
害が発生した場合、すべてのメインメモリを直前のチェ
ックポイントに戻すのではなく、メインメモリの一部の
領域、たとえば障害発生と回復処理の履歴を保持する領
域や、回復処理を実行するプログラムの作業領域など、
戻してはならない領域が存在する。
【0242】このチェックポイント処理加速装置30
で、それを実現する方式には下記の2種類の候補があ
る。
【0243】(1)ビフォアイメージ取得部32に、ビ
フォアイメージを取得するか否かを判断させる機構を設
ける。この方法は、取得するビフォアイメージが少なく
なる長所があるが、その判断を高速に実行しないと、プ
ロセッサ10やシステムバス40の動作に追従できなく
なる危険性がある。
【0244】(2)メインメモリ状態復元部33に、同
様の判断機構を持たせ、メインメモリ51にビフォアイ
メージを書き込むWrite−Lineコマンドを発行
するか否かを判断する。この方法では、実行速度を余り
気にする必要はない。また、同様の判断機構を、キャッ
シュフラッシュ実行部34に持たせれば、チェックポイ
ント処理の所要時間が若干短縮できる。
【0245】ここでは、状態を復元してはならない領域
は、制御ソフトウェアの方で、物理的に連続な領域で、
かつ、領域の先頭アドレスをある程度自由に設定できる
という前提で、前者にも適用可能な判断が高速でハード
ウェア量も余り必要としない方式を示す。
【0246】図21のように、この機構は、判断の対象
となる更新アドレスを保持するアドレスレジスタ、アド
レスレジスタの一部ビットをマスクするためのマスクレ
ジスタと32ビットのAND回路、その結果と比較する
ための比較参照レジスタと32ビット比較器で構成され
る。そして、比較器で一致と判断したときは、ビフォア
イメージを採取しないようにする。なお、この機構でも
判断が遅すぎる場合には、たとえばInvalidat
eコマンドに対するRead−Line−Non−Co
herentコマンドを先に発行して、ビフォアイメー
ジを格納する直前にこの機構の結果を使用しても良い。
【0247】これまで、キャッシュメモリ20上でデー
タ更新が発生した場合に、システムバス40に発行され
るInvalidateコマンド、およびRead−L
ine−with−Invalidateコマンドが観
測されたとき、ビフォアイメージ取得部32が更新アド
レスと更新前データを取得する方法を示してきた。しか
しながら、計算機によっては、I/O機器からメインメ
モリ51へのデータ転送や、プロセッサ10からのキャ
ッシュメモリ20を通さないメインメモリ51への書き
込みが起こる場合があるので、次に、その対策について
説明する。
【0248】(対策1)ここでは、下記の前提に基づい
て、第1の対策について説明する。
【0249】(1)メインメモリ51への書き込みに
は、Write−Lineコマンドとは別のコマンド
(ここでは、それをWrite−Non−Cohere
ntコマンドと呼ぶ)が使われる。
【0250】(2)システムバス40の仕様として、R
etry応答線という制御信号線があり、Write−
Non−Coherentコマンドがシステムバスに発
行されたとき、Retry信号線をアサートすることに
より、そのコマンドの実行中止を要求できる。この場
合、暫くして、中止させられたコマンドが再度発行され
る。
【0251】ビフォアイメージ取得部32は、Writ
e−Non−Coherentコマンドを検出すると、
Retry応答線をアサートする。そして、その直後
に、Write−Non−Coherentコマンドに
含まれている更新アドレスを使って、Read−Lin
e−Non−Coherentコマンドを発行する。そ
して、メインメモリ51からの応答に含まれるデータと
前記更新アドレスの組をビフォアイメージとしてビフォ
アイメージ記憶部35に格納する。一方、ビフォアイメ
ージ取得部32は、先程と同じアドレスを含むWrit
e−Non−Coherentコマンドを検出したとき
には、Retry応答線をアサートしない。
【0252】(対策2)I/O機器からメインメモリ5
1へのデータ転送や、プロセッサ10からのキャッシュ
メモリ20を通さないメインメモリ51への書き込み
は、プロセッサ10の制御下で行なわれる。したがっ
て、Write−Non−Coherentコマンドが
発行される前に、プロセッサ10がそのアドレスに対し
てキャッシュメモリ20を経由したデータ更新を行なう
ことにより、ビフォアイメージ取得部32にビフォアイ
メージを取得させる。次に、プロセッサ10は、更新し
たデータを保持しているキャッシュブロックを無効化
し、その後、I/O機器からメインメモリ51へのデー
タ転送などを起動する。
【0253】(対策3)ビフォアイメージ取得部32
は、プロセッサ10から指定されたアドレス範囲につい
て、ビフォアイメージの取得と格納を実行する機能を付
加する。通常、I/O機器からメインメモリ51へのデ
ータ転送は、連続したアドレスに対して行なわれるの
で、プロセッサ10からの1回の指示で複数のビフォア
イメージの取得が可能となる。したがって、対策2より
処理が高速である。
【0254】以上、第3の実施形態について説明した。
【0255】(第4の実施形態)次に、この発明の第4
の実施形態を説明する。前述した第1乃至第3の実施形
態では、通常のデータ処理時、ビフォアイメージ取得部
32を動作させることによってビフォアイメージを取得
し、チェックポイント処理時には、プロセッサ10がキ
ャッシュフラッシュ実行部34を起動し、その終了を待
って通常のデータ処理を再開する制御方式のもとでの動
作説明をした。ここでは、チェックポイント処理の所要
時間を短縮する、より最適化されたチェックポイント処
理加速装置30の制御方法、およびその制御方法に適合
したチェックポイント処理加速装置の機能および構成法
を示す。なお、この制御方式をフラッシュ前倒し方式と
呼ぶことにする。
【0256】このチェックポイント処理加速装置30を
適用したチェックポイント/リカバリ方式の計算機で
は、通常のデータ処理を継続する時間は、典型的には数
ミリ秒〜数10ミリ秒である。チェックポイント処理が
終了した時点では、すべてのキャッシュブロックが、I
nvalid状態、またはClean−Shared状
態であり、Modified状態のものはない。そし
て、通常のデータ処理を再開すると、次第にModif
ied状態のキャッシュブロックが増加し、次のチェッ
クポイント処理を始める時には、典型的には、10%〜
50%のキャッシュブロックがModified状態に
なっている。
【0257】チェックポイント処理の所要時間の大部分
は、ビフォアイメージ記憶部35に格納されているビフ
ォアイメージのアドレスに対して、Read−Line
コマンドを発行する処理が占める。これを高速化する方
法として、第2の実施形態ではフラグメモリ36を使用
する方法を、また、第3の実施形態ではブロックカウン
タ38を使用する方法を示した。そして、これらは無駄
なRead−Lineコマンドの発行を減らすことを目
的としていた。
【0258】ここでは、キャッシュフラッシュ実行部3
4の起動を、チェックポイント処理の開始前、すなわ
ち、通常のデータ処理中に行なう方法を説明する。ま
た、第1乃至第3の実施形態で説明したチェックポイン
ト処理加速装置が、いずれもこの制御方式のもとで正し
く動作すること、および、この制御方式により適合した
チェックポイント処理加速装置の構成法について説明す
る。
【0259】最初に、図22に基づいて、プロセッサ1
0、ビフォアイメージ取得部32、およびキャッシュフ
ラッシュ実行部34の動作の時間的な関係を説明する。
【0260】プロセッサ10は、通常のデータ処理およ
びビフォアイメージ処理の前半は、ビフォアイメージ取
得部32を実行させておく。また、プロセッサ10は、
通常のデータ処理の途中で、キャッシュフラッシュ実行
部34を起動する。すると、その後は、プロセッサ10
が通常のデータ処理にともなって、データの更新を行な
い、それをビフォアイメージ取得部32がビフォアイメ
ージ記憶部35のWポインタ(第1の実施形態で説明)
が指すエントリに格納するという処理と、キャッシュフ
ラッシュ実行部34がビフォアイメージ記憶部35のF
ポインタが指すエントリに格納されているアドレスに対
してRead−Lineコマンドを発行することによ
り、Modified状態のキャッシュブロックの内容
をメインメモリに書き戻すという処理が並行して行なわ
れる。
【0261】そして、プロセッサ10がチェックポイン
ト処理を開始すると、まず、通常のデータ処理を中断し
た時のコンテキストのメインメモリ51(実際には、キ
ャッシュメモリ20)への書き込み後、キャッシュフラ
ッシュ実行部34が処理を終了するのを待つ。
【0262】次に、フラッシュ前倒し方式のプロセッサ
の処理フローを図23に基づいて説明する。
【0263】通常のデータ処理では、ビフォアイメージ
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになるとキャッシュフラッシュ実行部34
を起動する。このキャッシュフラッシュ実行部34を起
動するタイミングについては後述する。そして、さらに
アプリケーションプログラムやオペレーティングシステ
ムの実行を続け、適当なタイミングになると、通常のデ
ータ処理を中断し、チェックポイント処理を開始する。
【0264】チェックポイント処理では、まず、プロセ
ッサ10を割り込み禁止状態にして、外部機器などから
の割込みを受けつけないようにする。これは、チェック
ポイント処理中は、通常のデータ処理を一切実行しない
ようにするためである。ただし、計算機の故障発生を通
知する割り込みについては、通常の割込みにより高い優
先度を設定するなど、割込み禁止状態にあっても受け付
けられるようになっている必要がある。
【0265】次に、プロセッサ10は、通常のデータ処
理を中断した時点でのコンテキスト、すなわちレジスタ
の内容のメインメモリ51の然るべきアドレスへの書き
込みを行なう。ただし、本実施形態では、コピーバック
型のキャッシュメモリが使用されるので、この時点では
通常のデータ更新と同じように、キャッシュブロックに
Modified状態で保持され、ビフォアイメージ記
憶部35にそのアドレスのビフォアイメージが記憶され
ている。
【0266】その後、プロセッサ10は、キャッシュフ
ラッシュ実行部34がビフォアイメージ記憶部35内の
ビフォアイメージを使って、すべてのModified
状態のキャッシュブロックのデータがメインメモリ51
に書き戻されるのを待つ。プロセッサ10のコンテキス
トも、このとき、メインメモリ51に書き戻される。キ
ャッシュフラッシュ実行部34が実行を終了すると、メ
インメモリ51に保存したコンテキストを対応するレジ
スタに戻し、割り込み禁止状態を解除することにより、
通常のデータ処理を再開する。
【0267】フラッシュ前倒し方式の効果を、元の制御
方式と対比させて模式的に表わすと、図24のようにな
る。
【0268】元の制御方式(a)もフラッシュ前倒し方
式(b)も、通常のデータ処理を開始した直後は、新た
に取得されるビフォアイメージの量が、ほぼ直線的に増
加する。
【0269】元の制御方式では、この状態がチェックポ
イント処理の直前まで続くのに対して、フラッシュ前倒
し方式では、通常のデータ処理の途中でキャッシュフラ
ッシュ実行部34を起動することにより、ビフォアイメ
ージ取得部32が新たにビフォアイメージを取得する一
方でキャッシュフラッシュ実行部34がRead−Li
neコマンドを発行し、その結果、キャッシュフラッシ
ュ実行部34が処理すべきビフォアイメージの量(Wポ
インタとFポインタの差)の増加が鈍るもしくは減る。
模式図では減る場合を示した。キャッシュフラッシュ実
行部34が処理すべきビフォアイメージの量を減らすよ
うにするか否かは、キャッシュフラッシュ実行部34の
構成法で制御できるので、後で説明する。
【0270】このチェックポイント処理加速装置30を
用いた場合のチェックポイント処理の所要時間は、ほ
ぼ、キャッシュフラッシュ実行部34が処理すべきビフ
ォアイメージの量に比例するので、フラッシュ前倒し方
式は、チェックポイント処理の所要時間を大幅に減らす
ことができる。通常のデータ処理の継続時間は、前に述
べた通り、典型的には数ミリ秒〜数10ミリ秒の間であ
り、元の制御方式の場合、チェックポイント処理の所要
時間は、1ミリ秒〜10ミリ秒程度である。その間、外
部機器からの割込みを受け付けないことが、本チェック
ポイント/リカバリ方式の計算機の適用範囲を制限する
要因となりうる。したがって、フラッシュ前倒し方式に
より、チェックポイント処理の所要時間が、たとえば数
分の1になるということは十分に意味がある。
【0271】ただし、フラッシュ前倒し方式には、性能
を劣化させる側面もある。それは、将来もModifi
ed状態で使われるキャッシュブロック(メインメモリ
上に設けられたカウンタがその典型である)をClea
n−Shared状態にしてしまい、次にプロセッサが
そのデータを更新しようとするとき、Invalida
teコマンドが発行されてしまう点である。この性能劣
化を軽減する方法については、後で説明する。
【0272】ここでチェックポイント処理加速装置30
の動作を説明する。
【0273】フラッシュ前倒し方式のもとで、第1乃至
第3の実施形態のチェックポイント処理加速装置30は
正しく動作する。動作例は類似するので、ここでは、第
2の実施形態の場合について説明するにとどめる。
【0274】(初期化)プロセッサ10は、すべてのフ
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
【0275】(通常のデータ処理およびチェックポイン
ト処理時)プロセッサ10は、通常のデータ処理を開始
する時点で、ビフォアイメージ取得部32を起動する。
ここでは、下記に示した順序で処理が行なわれた場合に
ついて説明する。
【0276】(1)プロセッサ10が、a番地のデータ
をA0からA1に、b番地のデータをB0からB1に、
この順で更新した。
【0277】(2)プロセッサ10が、キャッシュフラ
ッシュ実行部34を起動した。
【0278】(3)キャッシュフラッシュ実行部34
が、a番地に対してRead−Lineコマンドを発行
した。
【0279】(4)プロセッサ10が、a番地のデータ
をA1からA2に更新した。
【0280】ただし、a番地、b番地、ともにキャッシ
ュブロックBLK0に対応し、BLK0は、初期状態で
はa番地のデータA0をClean−Shared状態
で保持しているとする。
【0281】この場合の動作を図25を参照して説明す
る。
【0282】(1)初期状態を示す。
【0283】(2)プロセッサ10がa番地のデータを
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
【0284】(3)そのデータを有する他のキャッシュ
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
【0285】(4)ビフォアイメージ取得部32は、a
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
【0286】(5)メインメモリ51がデータA0を応
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
【0287】(6)プロセッサ10がb番地のデータを
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
【0288】(7)メインメモリ51がデータB0を応
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
【0289】(8)ライトバッファに保持されていたa
番地に対するWrite−Lineコマンドが発行され
る。
【0290】(9)メインメモリのa番地がA1に変わ
る。
【0291】(10)プロセッサ10は、この時点でキ
ャッシュフラッシュ実行部34を起動する。
【0292】(11)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA0の組を使い、
a番地に対応するフラグメモリ36をオフにするととも
に、a番地に対してRead−Lineコマンドを発行
する。
【0293】(12)BLK0はb番地のデータB1を
Modified状態で保持しているので、モディファ
イド応答信号線もシェアード応答信号線もアサートされ
ない。メインメモリ51がA1を応答する。BLK0の
状態は変化しない。
【0294】(13)キャッシュフラッシュ実行部34
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
【0295】(14)BLK0はb番地のデータB1を
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のb番地がB1
に変わる。BLK0の状態は、Clean−Share
dに変わる。
【0296】(15)プロセッサ10がa番地のデータ
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をClean−Shared
状態で保持しているため、a番地に対するRead−L
ine−with−Invalidateコマンドが発
行される。
【0297】(16)メインメモリ51がデータA1を
含む応答を返す。ビフォアイメージ取得部32は、a番
地に対応するフラグメモリ36がオフであるため、これ
をオンにし、a番地とデータA1の組をビフォアイメー
ジ記憶部35に格納する。
【0298】(17)キャッシュフラッシュ実行部34
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対応するフラグメモリ36をオフにし、a番地
に対してRead−Lineコマンドを発行する。
【0299】(18)BLK0はa番地のデータA2を
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のa番地はA2
に変わる。BLK0の状態は、Clean−Share
dに変わる。
【0300】以上、本制御方法における、プロセッサ1
0、メインメモリ51、ビフォアイメージ取得部32、
およびキャッシュフラッシュ実行部34の動作例を示し
た。
【0301】(障害発生時の復旧処理)メインメモリ状
態復元部33の動作は、ビフォアイメージ記憶部35に
記憶されているビフォアイメージを、より後で格納され
たものから順に、Write−Lineコマンドを発行
するだけであるので、動作例に基づいた説明を割愛す
る。
【0302】以上、フラッシュ前倒し方式のもとで、本
発明の第2の実施形態のチェックポイント処理加速装置
が正しく動作することを説明した。
【0303】次に、チェックポイント処理加速装置30
の機能および構成法を説明する。
【0304】第1乃至第3の実施形態では、キャッシュ
フラッシュ実行部34は、ビフォアイメージ記憶部35
に格納されているビフォアイメージをFポインタを使っ
て最初に格納されたものから順に処理する方式を示し
た。元の制御方式の場合には、ビフォアイメージをどの
ような順序で処理しても大して変わりはないが、フラッ
シュ前倒し方式の場合、この処理方式は2つの長所があ
る。
【0305】第1の長所は、将来もModified状
態で使われるキャッシュブロックをClean−Sha
red状態にしてしまい、次にプロセッサがそのデータ
を更新しようとする時、Invalidateコマンド
が発行されてしまうという性能劣化要因を軽減できる点
である。
【0306】つまり、早い時点で取得したビフォアイメ
ージほど、キャッシュフラッシュ実行部34が処理しよ
うとする時点では、すでにModified状態のキャ
ッシュブロックが実在しない可能性が高く、キャッシュ
フラッシュ実行部34がRead−Lineコマンドを
発行しても、それによってClean−Shared状
態に変化する可能性は小さいためである。
【0307】第2の長所は、ハードウェアの制御のしや
すさである。まず、ビフォアイメージ取得部32がWポ
インタを使って最初のエントリから順に書き込むのを、
キャッシュフラッシュ実行部34がFポインタを使って
追いかけるため、キャッシュフラッシュ実行部34の終
了の判断が簡単になる。
【0308】また、フラッシュ前倒し方式では、ビフォ
アイメージ取得部32とキャッシュフラッシュ実行部3
4によるビフォアイメージ記憶部35へのアクセス競合
が発生する。ひとつのメモリバンクに対してリードアク
セスとライトアクセスが交互に出ると、リードアクセス
が遅くなるので、そういった状況を避けることが望まし
い。特に、複数プロセッサを備えたマルチプロセッサシ
ステムに適用する場合には、アクセス競合の回避が重要
である。
【0309】ここでは、第1の実施形態で述べたWポイ
ンタとFポインタを使用することを前提に、アクセス競
合の少ないビフォアイメージ記憶部35のエントリの構
成法とその使用法を示す。
【0310】まず、前半のn個のエントリと、後半のn
個のエントリを、図26に示したように、メモリバンク
AとメモリバンクBとに分けて構成する。ただし、2つ
のバンクメモリに分けるのは、それぞれのバンクメモリ
に同時にアクセス可能とすることと、後で示すように、
ひとつのメモリバンクに対してリードアクセスとライト
アクセスが交互に出るような状況を作らないためであ
る。
【0311】通常のデータ処理の前半、すなわち、ビフ
ォアイメージ取得部32が動作し、キャッシュフラッシ
ュ実行部34が動作しないときは、取得したビフォアイ
メージをメモリバンクAに格納する。このとき、メモリ
バンクAは、ライトアクセスのみとなる。
【0312】次に、プロセッサ10がキャッシュフラッ
シュ実行部34を起動すると、ビフォアイメージ取得部
32は、取得したビフォアイメージをメモリバンクBに
格納する。そして、キャッシュフラッシュ実行部34
は、メモリバンクAからビフォアイメージを取り出す。
このとき、メモリバンクAはリードアクセスのみ、メモ
リバンクBはライトアクセスのみとなる。
【0313】次に、プロセッサ10は、キャッシュフラ
ッシュがメモリバンクA内のビフォアイメージを全部処
理する直前にチェックポイント処理を開始し、間もなく
ビフォアイメージ取得部32を停止する。このとき、メ
モリバンクBは、ほぼライトアクセスのみとなる。
【0314】以上のように、メモリバンクの使用状況と
キャッシュフラッシュ実行部34の起動、およびチェッ
クポイント処理の開始をリンクすることにより、各メモ
リバンクは、ほとんど常時、リードかライトのいずれか
のモードでアクセスされることになり、ビフォアイメー
ジの格納と取り出しとが高速化できる。
【0315】なお、前述の説明では、キャッシュフラッ
シュ実行部34はプロセッサ10が起動するとしたが、
このように制御するのであれば、ビフォアイメージ取得
部32が、メモリバンクAのすべてのエントリにビフォ
アイメージを格納した時点でキャッシュフラッシュ実行
部34を起動するようにもでき、その場合、プロセッサ
10は、キャッシュフラッシュ実行部34を起動する処
理を省けるほか、メモリバンクAを容量一杯まで使用で
きるという長所がある。
【0316】また、キャッシュフラッシュ実行部34
は、Read−Lineコマンドの発行頻度を制御する
ことができる。元の制御方式のもとでは、キャッシュフ
ラッシュ実行部34は、プロセッサ10がほとんど動作
を停止している状況で動作するので、ビフォアイメージ
記憶部35に格納されている更新アドレスを使って、い
かに高速にRead−Lineコマンドを発行するかだ
けが重要であった。
【0317】しかし、フラッシュ前倒し方式のもとで
は、データ処理の途中において、キャッシュフラッシュ
実行部34によるRead−Lineコマンドの発行頻
度が過度に高いと、通常のデータ処理がほとんど進まな
いという状況となる。
【0318】そこで、キャッシュフラッシュ実行部34
は、Read−Lineコマンドの発行頻度を少なくす
るモードと高いモードとを備えるのが望ましい。その実
現方法の例を図27に示すキャッシュフラッシュ実行部
34の処理フローに基づいて説明する。
【0319】この処理フローは、第1の実施形態を若干
修正したものである。すなわち、Read−Lineコ
マンドを発行し、Fポインタをインクリメントしたとこ
ろで、ビフォアイメージ取得部32が実行中であればC
サイクル待ち、そうでなければ直ちに次のビフォアイメ
ージを使ったRead−Lineコマンドを発行する。
【0320】この方式の変形としては、たとえばビフォ
アイメージ取得部32が最近の数10サイクルにおい
て、ビフォアイメージを取得したことがある場合には、
Cサイクル待つという方式も可能である。
【0321】以上、第4の実施形態について説明した。
【0322】(第5の実施形態)次に、この発明の第5
の実施形態を説明する。前述した第4実施形態では、プ
ロセッサ10は、チェックポイント作成時、キャッシュ
フラッシュ実行部34が終了するのを、ただ待つことに
多くの時間を費やしていた。それを改善する方法とし
て、チェックポイント作成時に、プロセッサがmodi
fied状態のキャッシュブロックの内容をメインメモ
リ51に書き戻すキャッシュ命令を実行する方法につい
て説明する。
【0323】図28は、本実施形態のプロセッサ10が
チェックポイント加速装置30を使ってチェックポイン
ト/ロールバック方式を実現する場合の通常のデータ処
理およびチェックポイント処理における処理フローを示
している。
【0324】通常のデータ処理は、第4の実施形態のフ
ラッシュ前倒し方式と全く同一であるので説明は略す
る。
【0325】チェックポイント処理では、まず、プロセ
ッサ10を割込み禁止状態にして、外部機器などからの
割り込みを受け付けないようにする。
【0326】次に、プロセッサ10は、通常のデータ処
理を中断した時点でのコンテキスト、すなわちレジスタ
の内容のメインメモリ51の然るべきアドレスへの書き
込みを行なう。次に、プロセッサ10は、ひとつのキャ
ッシュブロックのタグを読み出すキャッシュ命令を実行
し、もし、modified状態であれば、そのキャッ
シュブロックの内容をメインメモリ51に書き戻すキャ
ッシュ命令を実行するという処理をN回繰り返すことに
より、N個のキャッシュブロックについてキャッシュフ
ラッシュ処理を行なう。
【0327】そして、この時点で、キャッシュ命令によ
るキャッシュフラッシュ処理が終了していれば、キャッ
シュフラッシュ実行部34を停止させた後、メインメモ
リ51に保存したコンテキストを対応するレジスタに戻
し、割り込み禁止状態を解除することにより、通常のデ
ータ処理を再開する。
【0328】そうでなければ、この処理の間、キャッシ
ュフラッシュ実行部34も実行を継続しているので、プ
ロセッサ10は、次にキャッシュフラッシュ実行部34
が実行を終了したか調べる。もし、実行を終了していれ
ば、メインメモリ51に保存したコンテキストを対応す
るレジスタに戻し、割込み禁止状態を解除することによ
り、通常のデータ処理を再開する。
【0329】この方式の効果は、チェックポイント処理
の所要時間が短縮されることである。特に、キャッシュ
フラッシュ実行部34だけではシステムバスの転送能力
に余裕が生ずる程にシステムバス40の転送能力が非常
に大きい場合、キャッシュ命令によるキャッシュフラッ
シュを併用することで、チェックポイント処理の所要時
間が短縮できる。
【0330】また、この方式の変形として、チェックポ
イント処理を始めた時点で、チェックポイント実行部3
4を途中で停止させて、キャッシュ命令によるキャッシ
ュフラッシュ処理だけを行なう方法もある。もともと、
キャッシュ命令によるキャッシュフラッシュ処理は、キ
ャッシュフラッシュ実行部34と異なり、システムバス
40に無用なバスコマンドを発行しないという利点があ
る。したがって、プロセッサ数がある程度多く、すべて
のプロセッサが一斉にキャッシュ命令によるキャッシュ
フラッシュ処理したときに、システムバス40の転送能
力を使いきるような場合には、本方式が有効である。
【0331】さらに、フラッシュ前倒し方式のもとで、
チェックポイント処理をキャッシュ操作命令によるキャ
ッシュフラッシュ処理だけを行なう方法(キャッシュ命
令単独方式と呼ぶ)を前提として、チェックポイント処
理加速装置を次のように改良できる。
【0332】第4の実施形態で説明したチェックポイン
ト処理加速装置30では、キャッシュフラッシュ実行部
34は、最初に取得したビフォアイメージから順に使用
するものであった。しかし、キャッシュ命令単独方式の
場合、チェックポイント処理加速装置30のキャッシュ
フラッシュ実行部34は、どのビフォアイメージを使用
しても構わない。そこで、システムの性能を損なわない
ように、何度も繰り返し書き込みが発生するようなキャ
ッシュブロックに対して、その内容をメインメモリへ書
き戻すことのないようにするのが望ましい。
【0333】それをある程度実現する手段として、キャ
ッシュフラッシュ実行部34は、最初に取得したビフォ
アイメージからではなく、途中で取得したビフォアイメ
ージを使うようにすることが考えられる。というのは、
最初の方で取得したビフォアイメージに含まれるアドレ
スは、その後も頻繁に使われる可能性が、途中で取得し
たビフォアイメージに含まれるアドレスの場合より、高
いことが多いと考えられるからである。
【0334】
【発明の効果】以上詳述したように、この発明のチェッ
クポイント処理加速装置によれば、プロセッサがキャッ
シュメモリ上でのデータ更新を行なったときに、ビフォ
アイメージ取得部が、その更新アドレスと更新前データ
とを取得して、ビフォアイメージ記憶部に格納する。そ
して、キャッシュフラッシュ実行部は、プロセッサから
指示されたときに、ビフォアイメージ記憶部に格納され
ているすべてのアドレスを使用して、そのアドレスを有
する更新状態のキャッシュブロックの内容をメインメモ
リに書き戻すこと要求するコマンドをシステムバスに発
行することによってキャッシュフラッシュを実行する。
一方、メインメモリ状態復元部は、プロセッサから指示
されたときに、ビフォアイメージ記憶部に格納されてい
るすべての更新前データを新しく格納したものから順
に、メインメモリの更新書き込みを要求するコマンドを
システムバスに発行することによってメインメモリをビ
フォアイメージ記憶部には何も記憶されていなかったと
きの状態に復旧する。
【0335】すなわち、このチェックポイント処理加速
装置を適用すれば、特別なキャッシュメモリを備えるな
どのことを必要とせずに、標準的なプロセッサを搭載す
る計算機システム上において効率的なチェックポイント
/リカバリ機能を実現することが可能となる。また、従
来のように、プロセッサがキャッシュフラッシュ用のソ
フトウェアを実行することによってキャッシュフラッシ
ュを実施することと比較して、大幅な高速化が期待され
るため、チェックポイント/リカバリ方式の計算機全体
の性能を向上させることが可能となる。
【0336】また、キャッシュメモリ上に確保されるキ
ャッシュブロックに対応させてフラグメモリを設け、ビ
フォアイメージの重複格納を回避する、あるいは、互い
に共通部分をもたないようにアドレス範囲を設定し、こ
の設定したアドレス範囲それぞれに対応させてブロック
カウンタを設け、不要なキャッシュフラッシュ動作を回
避するといったことを行なえば、さらなる性能向上を図
れることになる。
【図面の簡単な説明】
【図1】この発明の第1の実施形態に係る計算機システ
ムのシステム構成を示す図。
【図2】同実施形態のビフォアイメージ記憶部の構造を
示す概念図。
【図3】同実施形態のビフォアイメージ取得部の処理フ
ローを示す図。
【図4】同実施形態のキャッシュフラッシュ実行部の処
理フローを示す図。
【図5】同実施形態のメインメモリ状態復元部の処理フ
ローを示す図。
【図6】同実施形態のプロセッサによるチェックポイン
ト処理加速装置の制御方式を示す図。
【図7】同実施形態のプロセッサによるデータ更新に伴
なう動作を説明する図。
【図8】同実施形態のキャッシュフラッシュ実行部によ
るRead−Lineコマンドの発行を説明する図。
【図9】同実施形態のチェックポイント処理の開始前に
故障が発生した場合の動作を説明する図。
【図10】この発明の第2の実施形態に係る計算機シス
テムのシステム構成を示す図。
【図11】同実施形態のビフォアイメージ取得部の処理
フローを示す図。
【図12】同実施形態のキャッシュフラッシュ実行部の
処理フローを示す図。
【図13】同実施形態のプロセッサによるデータ更新に
伴なう動作を説明する図。
【図14】同実施形態のキャッシュフラッシュ実行部に
よるRead−Lineコマンドの発行を説明する図。
【図15】同実施形態のチェックポイント処理の開始前
に故障が発生した場合の動作を説明する図。
【図16】この発明の第3の実施形態に係る計算機シス
テムのシステム構成を示す図。
【図17】同実施形態のキャッシュフラッシュ実行部の
処理フローを示す図。
【図18】同実施形態のプロセッサによるデータ更新に
伴なう動作を説明する図。
【図19】同実施形態のキャッシュフラッシュ実行部に
よるRead−Lineコマンドの発行を説明する図。
【図20】同実施形態のチェックポイント処理の開始前
に故障が発生した場合の動作を説明する図。
【図21】同実施形態のビフォアイメージを取得するか
否かを判断する機構を示す図。
【図22】この発明の第4実施形態のプロセッサ、ビフ
ォアイメージ取得部、およびキャッシュフラッシュ実行
部の動作の時間的な関係を説明する図。
【図23】同実施形態のフラッシュ前倒し方式のプロセ
ッサの処理フローを示す図。
【図24】同実施形態のフラッシュ前倒し方式の効果を
元の制御方式と対比させて模式的に表わした図。
【図25】同実施形態のプロセッサ、メインメモリ、ビ
フォアイメージ取得部、およびキャッシュフラッシュ実
行部の動作例を示す図。
【図26】同実施形態のビフォアイメージ記憶部のエン
トリの構成法とその使用法を説明する図。
【図27】同実施形態のキャッシュフラッシュ実行部の
処理フローを示す図。
【図28】この発明の第5の実施形態のプロセッサがチ
ェックポイント加速装置を使ってチェックポイント/ロ
ールバック方式を実現する場合の通常のデータ処理およ
びチェックポイント処理における処理フローを示す図。
【図29】チェックポイント/リカバリ方式の動作手順
を説明する図。
【符号の説明】
10…プロセッサ、20…キャッシュメモリ、30…チ
ェックポイント処理加速装置、31…バスインタフェー
ス、32…ビフォアイメージ取得部、33…メインメモ
リ状態復元部、34…キャッシュフラッシュ実行部、3
5…ビフォアイメージ記憶部、36…フラグメモリ、3
7…ブロックカウンタ制御部、38…ブロックカウン
タ、40…システムバス、50…メモリコントローラ、
51…メインメモリ。
フロントページの続き (56)参考文献 特開 平2−217943(JP,A) 特開 平4−245350(JP,A) 特開 平5−6308(JP,A) 特開 平5−108481(JP,A) 特開 平6−44136(JP,A) 特開 平7−311712(JP,A) 特開 昭63−8835(JP,A) 特開 平8−185359(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 - 12/12 G06F 11/14 G06F 11/00 - 11/00 350 G06F 12/00 - 12/00 549

Claims (21)

    (57)【特許請求の範囲】
  1. 【請求項1】 バススヌープ機構を有するコピーバック
    型のキャッシュメモリを備えた少なくとも一つ以上のプ
    ロセッサと、メインメモリと、前記プロセッサと前記メ
    インメモリとを接続するシステムバスとを具備してなる
    計算機に適用されるチェックポイント処理加速装置であ
    って、 データ更新が発生したアドレスおよびその更新前のデー
    タを組としたビフォアイメージを複数個記憶するビフォ
    アイメージ記憶手段と、 前記キャッシュメモリ上でデータ更新が発生したことを
    示すコマンドおよびそれに対する応答を前記システムバ
    スの監視によって検知し、前記キャッシュメモリ上でデ
    ータ更新が発生したことを示すコマンドおよびそれに対
    する応答が更新アドレスおよび更新前データを含む場合
    に、そのアドレスおよび更新前データを前記ビフォアイ
    メージ記憶手段に格納し、前記キャッシュメモリ上でデ
    ータ更新が発生したことを示すコマンドおよびそれに対
    する応答が更新の発生したアドレスを含むが更新前のデ
    ータを含まない場合に、その更新前のデータを読み出す
    ためのコマンドを前記キャッシュメモリ上でデータ更新
    が発生したことを示すコマンドおよびそれに対する応答
    に含まれるアドレスを用いて前記システムバスに発行
    し、前記アドレスおよび読み出された更新前のデータを
    前記ビフォアイメージ記憶手段に格納するビフォアイメ
    ージ取得手段と、 前記プロセッサから指示されたときに、前記ビフォアイ
    メージ記憶手段に格納されたすべてのアドレスについ
    て、そのアドレスで示される更新状態のデータをメイン
    メモリに書き戻すことを要求するコマンドを前記システ
    ムバスに発行するキャッシュフラッシュ実行手段と、 前記プロセッサから指示されたときに、前記ビフォアイ
    メージ記憶手段に格納されたすべての更新前データにつ
    いて、新しく格納したものから順にメインメモリへの更
    新書き込みを要求するコマンドを前記システムバスに発
    行するメインメモリ状態復元手段とを具備してなること
    を特徴とするチェックポイント処理加速装置。
  2. 【請求項2】 前記メインメモリを前記キャッシュメモ
    リ内に確保されるキャッシュブロックの大きさで分割
    し、この分割によって定義される複数の区画の中の少な
    くとも一つ以上の区画それぞれに対応させて、オンとオ
    フとの二つの状態が割り当てられるフラグメモリをさら
    に設け、 前記ビフォアイメージ取得手段は、前記ビフォアイメー
    ジを取得した際、その更新アドレスに対するフラグメモ
    リが設けられ、かつオフのときには、前記フラグメモリ
    をオンに設定するとともに前記ビフォアイメージを前記
    ビフォアイメージ記憶手段に格納し、更新アドレスに対
    するフラグメモリが設けられ、かつオンのときには、前
    記ビフォアイメージの前記ビフォアイメージ記憶手段へ
    の格納を行なわず、更新アドレスに対するフラグメモリ
    が設けられていないときには、前記ビフォアイメージを
    ビフォアイメージ記憶手段に格納する手段を具備し、 前記キャッシュフラッシュ実行手段は、前記ビフォアイ
    メージ記憶手段からビフォアイメージを取り出して、更
    新状態にあるキャッシュブロックの内容の前記メインメ
    モリへの書き戻しを要求するコマンドを発行する際、そ
    のアドレスに対応するフラグメモリが設けられていると
    きには、そのフラグメモリをオフに設定する手段を具備
    してなることを特徴とする請求項1記載のチェックポイ
    ント処理加速装置。
  3. 【請求項3】 互いに共通部分をもたないように設定さ
    れる一つ以上のアドレス範囲それぞれに対応して設けら
    れ、前記アドレス範囲に属する更新状態のキャッシュブ
    ロック数を保持するブロックカウンタと、 前記システムバス上のコマンおよびその応答を監視し
    て、前記キャッシュブロックが更新状態に移行すること
    を検知した際、前記システムバス上のコマンドおよびそ
    の応答がアクセスするアドレスに対応した前記ブロック
    カウンタが存在するときは、そのブロックカウンタをイ
    ンクリメントし、前記キャッシュブロックが更新状態か
    らそれ以外の状態に移行すること検知した際、前記シス
    テムバス上のコマンドおよびその応答がアクセスするア
    ドレスに対応した前記ブロックカウンタがあるときは、
    そのブロックカウンタをデクリメントするカウンタ制御
    手段とをさらに具備し、 前記キャッシュフラッシュ実行手段は、前記ビフォアイ
    メージ記憶手段に格納されたすべてのアドレスについ
    て、そのアドレスに対応する前記ブロックカウンタがな
    いか、またはその値が初期値でないときに、そのアドレ
    スの更新状態のキャッシュブロックの内容をメインメモ
    リに書き戻すことを要求するコマンドを前記システムバ
    スに発行する手段を具備してなることを特徴とする請求
    項1記載のチェックポイント処理加速装置。
  4. 【請求項4】 前記キャッシュメモリは、ダイレクトマ
    ップで構成され、前記ブロックカウンタは、キャッシュ
    ブロックと一対に設けられることを特徴とする請求項3
    記載のチェックポイント処理加速装置。
  5. 【請求項5】 前記キャッシュメモリは、nウェイのセ
    ットアソシアティブで構成され、前記ブロックカウンタ
    は、n個のキャッシュブロックで形成されるグループと
    一対に設けられることを特徴とする請求項3記載のチェ
    ックポイント処理加速装置。
  6. 【請求項6】 前記メインメモリを前記キャッシュメモ
    リ内に確保されるキャッシュブロックの大きさで分割
    し、この分割によって定義される複数の区画の中の少な
    くとも一つ以上の区画それぞれに対応させて、オンとオ
    フとの二つの状態が割り当てられるフラグメモリをさら
    に設け、 前記システムバス上のコマンおよびその応答を監視し
    て、前記キャッシュブロックが更新状態に移行すること
    を検知した際、前記システムバス上のコマンドおよびそ
    の応答がアクセスするアドレスに対応した前記フラグメ
    モリが設けられているときは、そのフラグメモリをオン
    に設定し、前記キャッシュブロックが更新状態からそれ
    以外の状態に移行することを検知した際、前記システム
    バス上のコマンドおよびその応答がアクセスするアドレ
    スに対応した前記フラグメモリが設けられているとき
    は、そのフラグメモリをオフに設定するフラグメモリ制
    御手段をさらに具備し、 前記キャッシュフラッシュ実行手段は、前記ビフォアイ
    メージ記憶手段に格納されたすべてのアドレスについ
    て、そのアドレスに対応する前記フラグメモリが設けら
    れていないか、またはその状態がオンのときに、そのア
    ドレスの更新状態のキャッシュブロックの内容をメイン
    メモリに書き戻すことを要求するコマンドを前記システ
    ムバスに発行する手段を具備してなることを特徴とする
    請求項1記載のチェックポイント処理加速装置。
  7. 【請求項7】 前記ビフォアイメージ取得手段が前記キ
    ャッシュメモリ上でデータ更新が発生したことを示すコ
    マンドまたはそれに対する応答を検知したときに、その
    ビフォアイメージを前記ビフォアイメージ記憶手段
    納するか否かその更新アドレスにより判断するアドレ
    ス判定手段をさらに具備してなることを特徴とする請求
    項1、2、3、4、5または6記載のチェックポイント
    処理加速装置。
  8. 【請求項8】 前記ビフォアイメージ記憶手段に格納さ
    れた前記ビフォアイメージそれぞれについて、前記メイ
    ンメモリ状態復元手段により前記メインメモリに書き戻
    すか否かその更新アドレスにより判断するアドレス判
    定手段をさらに具備してなることを特徴とする請求項
    1、2、3、4、5または6記載のチェックポイント処
    理加速装置。
  9. 【請求項9】 前記キャッシュメモリ上でのデータ更新
    が行なわれた際、その更新対象のデータが他のキャッシ
    ュメモリ上で更新されて保持されているデータであると
    きに、前記ビフォアイメージ取得手段は、前記ビフォア
    イメージを前記ビフォアイメージ記憶手段に格納しない
    ことを特徴とする請求項1、2、3、4、5または6記
    載のチェックポイント処理加速装置。
  10. 【請求項10】 前記キャッシュメモリを構成する各
    ャッシュブロックに割り当てられる複数の管理状態の中
    に、そのキャッシュブロックが保持しているデータは他
    のプロセッサのキャッシュメモリには保持されておら
    ず、かつメインメモリ上と同じデータであるといったク
    リーンエクスクルーシブ状態を含むものであり、かつ、
    いずれかのキャッシュメモリの発行したメインメモリデ
    ータの読み込み要求コマンドに対し、そのデータを保持
    していると応答する応答手段をさらに具備することを特
    徴とする請求項1、2、3、4、5または6記載のチェ
    ックポイント処理加速装置。
  11. 【請求項11】 前記ビフォアイメージ取得手段は、前
    記キャッシュメモリの機構を介さずに前記メインメモリ
    の内容を更新するコマンドを検知したときに、そのコマ
    ンドの実行を中止させ、前記キャッシュメモリの機構を
    介さずに前記メインメモリの内容を更新するコマンドに
    含まれる更新アドレスを用いて前記メインメモリから更
    新前のデータを読み出すためのコマンドを前記システム
    バスに発行し、前記アドレスと読み出され更新前のデ
    ータとを前記ビフォアイメージ格納手段に格納する手段
    と、前記実行を中止させたコマンドが再度発行されたと
    きには、そのコマンドの実行の中止を行なわない手段と
    を具備してなることを特徴とする請求項1、2、3、
    4、5または6記載のチェックポイント処理加速装置。
  12. 【請求項12】 前記ビフォアイメージ取得手段は、前
    記プロセッサから指示されたアドレス範囲について、前
    記メインメモリから更新前のデータを読み出すためのコ
    マンドを前記システムバスに発行し、前記アドレスとそ
    の読み出された更新前のデータを組としたビフォアイメ
    ージを前記ビフォアイメージ格納手段に格納する手段を
    具備してなることを特徴とする請求項1、2、3、4、
    5または6記載のチェックポイント処理加速装置。
  13. 【請求項13】 前記ビフォアイメージ取得手段および
    キャッシュフラッシュ実行手段は、並行して実行可能で
    あることを特徴とする請求項1、2または3記載のチェ
    ックポイント処理加速装置。
  14. 【請求項14】 前記キャッシュフラッシュ実行手段
    は、前記ビフォアイメージ記憶手段に格納されたビフォ
    アイメージの中の最も早い時点で取得されたものから順
    に処理することを特徴とする請求項13記載のチェック
    ポイント処理加速装置。
  15. 【請求項15】 前記ビフォアイメージ記憶手段は、互
    いに独立した複数のメモリで構成されることを特徴とす
    る請求項13記載のチェックポイント処理加速装置。
  16. 【請求項16】 前記ビフォアイメージ記憶手段は、互
    いに独立した第1および第2のメモリを含んで構成さ
    れ、 前記ビフォアイメージ取得手段は、前記キャッシュフラ
    ッシュ実行手段が動作していないときには、前記取得し
    たビフォアイメージを前記第1のメモリに格納し、前記
    キャッシュフラッシュ実行手段が動作を開始したときに
    は、前記取得したビフォアイメージを前記第2のメモリ
    に格納する手段を具備し、 前記キャッシュフラッシュ実行手段は、前記第1のメモ
    リに格納されたビフォアイメージから処理する手段を具
    備してなることを特徴とする請求項13記載のチェック
    ポイント処理加速装置。
  17. 【請求項17】 前記キャッシュフラッシュ実行手段
    は、前記ビフォアイメージ取得手段によって前記第1の
    メモリのすべてに前記ビフォアイメージが格納されたと
    きに起動されることを特徴とする請求項16記載のチェ
    ックポイント処理加速装置。
  18. 【請求項18】 前記ビフォアイメージ記憶手段の残容
    量が予め定められた量を下回ったことを前記プロセッサ
    に通知する通知手段をさらに具備してなることを特徴と
    する請求項1、2、3、4、5または6記載のチェック
    ポイント処理加速装置。
  19. 【請求項19】 前記キャッシュフラッシュ実行手段
    は、前記ビフォアイメージ取得手段が実行中であるとき
    に、更新状態のキャッシュブロックの内容を前記メイン
    メモリへ書き戻すことを要求するコマンドの発行頻度を
    予め定められた値以内に抑制し、前記ビフォアイメージ
    取得手段が停止したときに、前記コマンドの発行頻度を
    高くする手段を具備してなることを特徴とする請求項1
    3記載のチェックポイント処理加速装置。
  20. 【請求項20】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも一つ以上の
    プロセッサと、メインメモリと、請求項1乃至19のい
    ずれかに記載のチェックポイント処理加速装置と、前記
    プロセッサと前記メインメモリと前記チェックポイント
    処理加速装置とを接続するシステムバスを備える計算機
    システムにおけるデータ処理方法であって、 前記チェックポイント処理加速装置のビフォアイメージ
    取得手段を起動した後、通常のデータ処理を実行するデ
    ータ処理実行ステップと、前記データ処理実行ステップを一時中断して、すべての
    前記 プロセッサが同期して実行するデータ処理中のコ
    ンテキストメインメモリ格納して、前記チェックポ
    イント処理加速装置のキャッシュフラッシュ実行手段
    起動し、前記チェックポイント処理加速装置のキャッシ
    ュフラッシュ実行手段の実行終了後、前記データ処理実
    行ステップを再開するチェックポイント作成ステップ
    と、 故障が発生したときに、すべての前記プロセッサが同期
    して前記キャッシュメモリのすべてのキャッシュブロッ
    クを無効化した後、前記チェックポイント処理加速装置
    のメインメモリ状態復元手段を起動することにより前記
    メインメモリの 状態を直前に採取したチェックポイント
    時点の状態に復元し、その後前記データ処理実行ステッ
    を再開するロールバック/リカバリステップとを有す
    ことを特徴とするデータ処理方法
  21. 【請求項21】 バススヌープ機構を有するコピーバッ
    ク型のキャッシュメモリを備えた少なくとも一つ以上の
    プロセッサと、メインメモリと、請求項1乃至19のい
    ずれかに記載のチェックポイント処理加速装置と、前記
    プロセッサと前記メインメモリと前記チェックポイント
    処理加速装置とを接続するシステムバスとを備える計算
    機システムにおけるデータ処理方法であって、 前記チェックポイント処理加速装置のビフォアイメージ
    取得手段を起動した後、通常のデータ処理を実行すると
    共に、前記チェックポイント処理加速装置のキャッシュ
    フラッシュ実行手段の起動も行うデータ処理実行ステッ
    プと、 前記データ処理実行ステップを一時中断して、すべての
    前記プロセッサが同期して実行する、データ処理中のコ
    ンテキストをメインメモリに格納して、前記チェックポ
    イント処理加速装置のキャッシュフラッシュ実行手段の
    実行終了後、前記データ処理実行ステップを再開するチ
    ェックポイント作成ステップと、 故障が発生したときに、すべての前記プロセッサが同期
    して前記キャッシュメモリのすべてのキャッシュブロッ
    クを無効化した後、前記チェックポイント処理加速装置
    のメインメモリ状態復元手段を起動することにより前記
    メインメモリの状態を直前に採取したチェックポイント
    時点の状態に復元し、その後前記データ処理実行ステッ
    プを再開するロールバック/リカバリステップとを有す
    ることを特徴とするデータ処理方法。
JP8234321A 1996-09-04 1996-09-04 チェックポイント処理加速装置およびデータ処理方法 Expired - Fee Related JP2916420B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP8234321A JP2916420B2 (ja) 1996-09-04 1996-09-04 チェックポイント処理加速装置およびデータ処理方法
TW086102499A TW384427B (en) 1996-09-04 1997-03-03 Checkpoint acquisition accelerating apparatus
KR1019970014318A KR100233205B1 (ko) 1996-09-04 1997-04-18 체크 포인트 처리 가속 장치
CN97113166A CN1111790C (zh) 1996-09-04 1997-05-30 检查点处理加速装置及具有该装置的计算机
US08/917,923 US6088773A (en) 1996-09-04 1997-08-27 Checkpoint acquisition accelerating apparatus
DE69703574T DE69703574T2 (de) 1996-09-04 1997-08-29 Vorrichtung zur Prüfpunkterfassungsbeschleunigung
EP97115030A EP0834811B1 (en) 1996-09-04 1997-08-29 Checkpoint acquisition accelerating apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8234321A JP2916420B2 (ja) 1996-09-04 1996-09-04 チェックポイント処理加速装置およびデータ処理方法

Publications (2)

Publication Number Publication Date
JPH1078918A JPH1078918A (ja) 1998-03-24
JP2916420B2 true JP2916420B2 (ja) 1999-07-05

Family

ID=16969185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8234321A Expired - Fee Related JP2916420B2 (ja) 1996-09-04 1996-09-04 チェックポイント処理加速装置およびデータ処理方法

Country Status (7)

Country Link
US (1) US6088773A (ja)
EP (1) EP0834811B1 (ja)
JP (1) JP2916420B2 (ja)
KR (1) KR100233205B1 (ja)
CN (1) CN1111790C (ja)
DE (1) DE69703574T2 (ja)
TW (1) TW384427B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100856626B1 (ko) * 2002-12-24 2008-09-03 엘지노텔 주식회사 캐시 플러시 시스템 및 방법

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
FR2778254B1 (fr) * 1998-04-29 2002-02-15 Texas Instruments France Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache
US6332199B1 (en) * 1998-10-29 2001-12-18 International Business Machines Corporation Restoring checkpointed processes including adjusting environment variables of the processes
JP2002123479A (ja) 2000-10-17 2002-04-26 Hitachi Ltd ディスク制御装置およびそのキャッシュ制御方法
US6779087B2 (en) * 2001-04-06 2004-08-17 Sun Microsystems, Inc. Method and apparatus for checkpointing to facilitate reliable execution
US6766428B2 (en) * 2001-04-06 2004-07-20 Sun Microsystems, Inc. Method and apparatus for storing prior versions of modified values to facilitate reliable execution
JP3804823B2 (ja) * 2001-07-03 2006-08-02 日本電気株式会社 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法
US7472230B2 (en) * 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
GB2381088B (en) * 2001-10-15 2006-02-08 Jacobs Rimell Ltd State recovery
US6976128B1 (en) * 2002-09-26 2005-12-13 Unisys Corporation Cache flush system and method
US6973541B1 (en) * 2002-09-26 2005-12-06 Unisys Corporation System and method for initializing memory within a data processing system
US6993630B1 (en) * 2002-09-26 2006-01-31 Unisys Corporation Data pre-fetch system and method for a cache memory
US6934810B1 (en) * 2002-09-26 2005-08-23 Unisys Corporation Delayed leaky write system and method for a cache memory
US7440884B2 (en) * 2003-01-23 2008-10-21 Quickturn Design Systems, Inc. Memory rewind and reconstruction for hardware emulator
CA2435148A1 (en) * 2003-07-15 2005-01-15 Robert J. Blainey System and method for lock caching for compound atomic operations on shared memory
US9213609B2 (en) * 2003-12-16 2015-12-15 Hewlett-Packard Development Company, L.P. Persistent memory device for backup process checkpoint states
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
JP4892812B2 (ja) * 2004-04-28 2012-03-07 株式会社日立製作所 キャッシュ制御およびデータ処理システム並びにその処理プログラム
US7290166B2 (en) * 2004-07-28 2007-10-30 Intel Corporation Rollback of data
US7496787B2 (en) * 2004-12-27 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US7526583B2 (en) * 2005-06-23 2009-04-28 International Business Machines Corporation Method and apparatus to launch write queue read data in a microprocessor recovery unit
US7506132B2 (en) * 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations
US7555424B2 (en) * 2006-03-16 2009-06-30 Quickturn Design Systems, Inc. Method and apparatus for rewinding emulated memory circuits
US8001342B2 (en) * 2006-03-29 2011-08-16 International Business Machines Corporation Method for storing and restoring persistent memory content and virtual machine state information
JP4479743B2 (ja) * 2007-04-24 2010-06-09 株式会社デンソー ロールバック方法及び情報処理装置
JP5251002B2 (ja) * 2007-05-25 2013-07-31 富士通株式会社 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム
US9131240B2 (en) * 2007-08-23 2015-09-08 Samsung Electronics Co., Ltd. Video decoding method and apparatus which uses double buffering
US8615678B1 (en) 2008-06-30 2013-12-24 Emc Corporation Auto-adapting multi-tier cache
JP5300407B2 (ja) 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JP2010097557A (ja) * 2008-10-20 2010-04-30 Toshiba Corp セットアソシアティブ方式のキャッシュ装置及びキャッシュ方法
JP2011198091A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
WO2013101201A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Home agent multi-level nvm memory architecture
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
US9251003B1 (en) * 2013-08-14 2016-02-02 Amazon Technologies, Inc. Database cache survivability across database failures
CN104699574B (zh) * 2013-12-09 2018-04-20 华为技术有限公司 一种建立处理器Cache检查点的方法、装置及系统
WO2015102875A1 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods of using data forwarding
US9652338B2 (en) 2013-12-30 2017-05-16 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
ES2652262T3 (es) 2013-12-30 2018-02-01 Stratus Technologies Bermuda Ltd. Método de retardar puntos de comprobación inspeccionando paquetes de red
CN104657229A (zh) * 2015-03-19 2015-05-27 哈尔滨工业大学 基于高可用性硬件检查点的多核处理器卷回恢复系统及其卷回恢复方法
US10394641B2 (en) * 2017-04-10 2019-08-27 Arm Limited Apparatus and method for handling memory access operations
US11550485B2 (en) * 2018-04-23 2023-01-10 Sap Se Paging and disk storage for document store
US20220269614A1 (en) * 2021-02-22 2022-08-25 Microsoft Technology Licensing, Llc Treating main memory as a collection of tagged cache lines for trace logging

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4740969A (en) * 1986-06-27 1988-04-26 Hewlett-Packard Company Method and apparatus for recovering from hardware faults
JPH0752399B2 (ja) * 1988-06-30 1995-06-05 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 記憶システム
US5408651A (en) * 1993-09-27 1995-04-18 Bull Hn Information Systems Inc. Store "undo" for cache store error recovery
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
JP2902976B2 (ja) * 1995-06-19 1999-06-07 株式会社東芝 キャッシュフラッシュ装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100856626B1 (ko) * 2002-12-24 2008-09-03 엘지노텔 주식회사 캐시 플러시 시스템 및 방법

Also Published As

Publication number Publication date
EP0834811A1 (en) 1998-04-08
EP0834811B1 (en) 2000-11-22
KR19980024007A (ko) 1998-07-06
TW384427B (en) 2000-03-11
KR100233205B1 (ko) 1999-12-01
US6088773A (en) 2000-07-11
DE69703574T2 (de) 2001-06-13
CN1175732A (zh) 1998-03-11
JPH1078918A (ja) 1998-03-24
DE69703574D1 (de) 2000-12-28
CN1111790C (zh) 2003-06-18

Similar Documents

Publication Publication Date Title
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
JP2916421B2 (ja) キャッシュフラッシュ装置およびデータ処理方法
US7085955B2 (en) Checkpointing with a write back controller
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JP3086779B2 (ja) メモリ状態復元装置
JPH10506483A (ja) フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
JPH04237349A (ja) キャッシュメモリシステムおよびキャッシュメモリコントローラ
JP3320562B2 (ja) キャッシュメモリを有する電子計算機
JP3083786B2 (ja) メモリ更新履歴保存装置およびメモリ更新履歴保存方法
JPH10149307A (ja) チェックポイント処理方法及び記録媒体
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
JPH08137748A (ja) コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法
JP3833760B2 (ja) 計算機システム及びメモリ状態復元装置
JPH08202622A (ja) 分散型メモリ構成のキャッシュ制御方法
JP2008171058A (ja) システムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラム
JP3804823B2 (ja) 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法
JPH10320274A (ja) キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP2000181790A (ja) メモリ更新履歴保存装置
JP2000010809A (ja) データバックアップ制御装置、及びデータバックアップ制御方法
JPH06187230A (ja) メモリ監視制御方法
JP2000181738A (ja) 二重化システム及びメモリ制御方法
JPH10240630A (ja) コンピュータシステム及び同システムに適用するメモリ制御方法
JPH07271624A (ja) フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法
JPH1097508A (ja) 並列処理システムの処理引き継ぎ方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080416

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees