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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection 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
の一貫性を保証するためにスヌープ機構を有してなるキ
ャッシュメモリを備えた計算機に適用して好適なチェッ
クポイント加速装置およびデータ処理方法に関する。
つとして、通常のデータ処理の途中で定期的にチェック
ポイントをメインメモリ上に作成しておき、計算機に何
らかの障害が発生したときに、直前のチェックポイント
に戻って処理を再開するといったものが存在する。そし
て、このような方式は、チェックポイント/リカバリ方
式と称され、下記の3つの種類に大別される。
で使用され、計算機がダウンしたときに、データ自体の
喪失を防いだり、データ間の論理的な整合性を維持した
り、他の計算機がデータベースを引継いたりするための
もの。
ムをプライマリプロセスとシャドウプロセスとして別の
計算機に配置して実行し、プライマリプロセスを実行中
の計算機がダウンしたときに、シャドウプロセスが整合
性のとれた状態で引継ぐためのもの。ユーザからは、ア
プリケーションプログラムの実行が途中で打ち切られず
に続いているように見える。
きに、その計算機がダウンすることを回避するためのも
の。ユーザおよびアプリケーションプログラムからは、
故障が発生しなかったときと比べてほとんど違いが見え
ない。
カバリ方式では、何らかの故障が発生したときに、直前
のチェックポイントから処理が再開されるので、チェッ
クポイント自身は故障発生によっても破壊されない記憶
装置に格納することが必須である。そのような記憶装置
は安定記憶と呼ばれ、たとえば二重化された主記憶装置
などが使用される。
式の計算機では、図29に示すように、各プロセッサ
は、定期的に通常のデータ処理を一時中断してチェック
ポイント処理を行ない(1)、それが終了すると再び通
常のデータ処理を中断した時点から再開する(2)。そ
して、何らかの故障が発生すると(3)、プロセッサは
リカバリ処理を行なう。このリカバリ処理では、メイン
メモリを(2)の状態に戻した後に、通常のデータ処理
を再開する(4)。すなわち、(4)において(2)と
同じ状態から再開することにより、障害発生の影響を受
けることなくデータ処理を続行することを目指すもので
ある。
式について、キャッシュメモリ、メインメモリおよびチ
ェックポイントの関係を下記に示す。
メモリをチェックポイント時の状態に戻すため、メイン
メモリが書き換えられる場合、何らかの対策をとる必要
がある。
リに保持されている更新されたデータをすべてメインメ
モリに書き戻す。
のチェックポイント処理以後にメインメモリ上で更新の
発生した部分をチェックポイント時点の状態に戻す必要
がある。
たフォールトトレラント計算機は、たとえばPhili
p A Bernstein,“Sequoia:A
Fault−Tolerant Tightly Co
upled Multiprocessor for
Transaction Processing”,I
EEE Computer,Vol.21,No.2,
1988などに開示されている。
常のデータ処理の期間中、プロセッサがデータを更新す
ると、そのデータはキャッシュメモリ上に保持され、決
してメインメモリに書き戻されることはない。そして、
チェックポイント処理を開始すると、キャッシュメモリ
に保持されていた更新されたデータがメインメモリに書
き戻される。そして、計算機に何らかの故障が発生した
場合には、キャッシュメモリを無効化することにより、
直前のチェックポイントの時点のメインメモリの状態か
ら通常のデータ処理を再開することができる。これを前
述したキャッシュメモリ、メインメモリおよびチェック
ポイントの関係に対応させると、下記のように示すこと
ができる。
新されたデータは、チェックポイント処理を始めるまで
はメインメモリに書き戻さない。
リに保持されている更新されたデータは、すべてメイン
メモリに書き戻す。
リを無効化するだけで良い。
ェックポイント/リカバリ方式を実現するために、特別
なキャッシュメモリを備えている。というのは、通常の
ライトスルー型、あるいはコピーバック型のキャッシュ
メモリを使用すると、「通常のデータ処理の期間中にプ
ロセッサにより更新されたデータは、チェックポイント
処理を始めるまではメインメモリに書き戻さない」とい
う制御ができないためである。
thod & Apparatusfor Recov
ering from Hardware Fault
s”には、下記の方式が開示されている。
ャッシュメモリにデータをロードする際、そのアドレス
とデータの内容を保持する。
い。
データとを用いて、メインメモリをチェックポイント時
点の状態に戻す。
oia計算機の場合には、チェックポイント/リカバリ
のために特別なキャッシュメモリを備える必要があり、
プロセッサの急激な技術改革に追従させることが難しい
という問題がある。
れる方式では、通常のデータ処理において取得するデー
タの量が多くなること、およびチェックポイント処理時
にキャッシュフラッシュを実行する手段を設ける必要が
あるという問題がある。
れたものであり、特別なキャッシュメモリを必要とせず
に、標準的なユニプロセッサあるいはマルチプロセッサ
を搭載する計算機でチェックポイント/リカバリ機能を
容易に実現可能とするチェックポイント処理加速装置お
よびデータ処理方法を提供することを目的とする。これ
により、標準的な計算機における性能向上の恩恵を享受
することができ、また、USP4,740,969に開
示される方法と比較して、通常のデータ処理において取
得するデータの量がより少なく、チェックポイント処理
時のキャッシュフラッシュ機能も実現するチェックポイ
ント処理加速装置およびデータ処理方法を提供すること
が可能となる。
は、バススヌープ機構を有するコピーバック型のキャッ
シュメモリを備えた少なくとも一つ以上のプロセッサ
と、メインメモリと、前記プロセッサと前記メインメモ
リとを接続するシステムバスとを具備してなる計算機に
適用されるチェックポイント処理加速装置であって、デ
ータ更新が発生したアドレスおよびその更新前のデータ
を組としたビフォアイメージを複数個記憶するビフォア
イメージ記憶手段と、前記キャッシュメモリ上でデータ
更新が発生したことを示すコマンドおよびそれに対する
応答を前記システムバスの監視によって検知し、前記キ
ャッシュメモリ上でデータ更新が発生したことを示すコ
マンドおよびそれに対する応答が更新アドレスおよび更
新前データを含む場合に、そのアドレスおよび更新前デ
ータを前記ビフォアイメージ記憶手段に格納し、前記キ
ャッシュメモリ上でデータ更新が発生したことを示すコ
マンドおよびそれに対する応答が更新の発生したアドレ
スを含むが更新前のデータを含まない場合に、その更新
前のデータを読み出すためのコマンドを前記キャッシュ
メモリ上でデータ更新が発生したことを示すコマンドお
よびそれに対する応答に含まれるアドレスを用いて前記
システムバスに発行し、前記アドレスおよび読み出され
た更新前のデータを前記ビフォアイメージ記憶手段に格
納するビフォアイメージ取得手段と、前記プロセッサか
ら指示されたときに、前記ビフォアイメージ記憶手段に
格納されたすべてのアドレスについて、そのアドレスで
示される更新状態のデータをメインメモリに書き戻すこ
とを要求するコマンドを前記システムバスに発行するキ
ャッシュフラッシュ実行手段と、前記プロセッサから指
示されたときに、前記ビフォアイメージ記憶手段に格納
されたすべての更新前データについて、新しく格納した
ものから順にメインメモリへの更新書き込みを要求する
コマンドを前記システムバスに発行するメインメモリ状
態復元手段とを具備してなることを特徴とする。
においては、プロセッサがキャッシュメモリ上でデータ
更新を行なうと、ビフォアイメージ取得手段が、その更
新アドレスと更新前データとを取得してビフォアイメー
ジ記憶手段に格納する。キャッシュフラッシュ実行手段
は、プロセッサからの指示に基づき、ビフォアイメージ
記憶手段に格納されているすべてのアドレスを使用し
て、そのアドレスを有する更新状態のキャッシュブロッ
クの内容をメインメモリに書き戻すこと要求するコマン
ドをシステムバスに発行することにより、キャッシュフ
ラッシュを実行する。一方、メインメモリ状態復元手段
は、プロセッサからの指示に基づき、ビフォアイメージ
記憶手段に格納されているすべての更新前データを新し
く格納したものから順にメインメモリの更新書き込みを
要求するコマンドをシステムバスに発行することによ
り、メインメモリをビフォアイメージ記憶手段には何も
記憶されていなかったときの状態にする。
理加速装置を適用すれば、特別なキャッシュメモリを不
要とし、かつ、従来のように、プロセッサがキャッシュ
フラッシュ用のソフトウェアを実行することによってキ
ャッシュフラッシュを実施することと比較して、大幅な
高速化が期待される。したがって、チェックポイント処
理に費やされる作業のほとんどがキャッシュフラッシュ
であることを考慮すれば、チェックポイント/リカバリ
方式の計算機全体の性能を向上させることができる。
ロセッサが同じアドレスのデータを複数回更新すること
も十分考えられる。そこで、メインメモリをキャッシュ
メモリ上に確保されるキャッシュブロックの大きさで分
割し、この分割によって定義される区画に対応させて、
オンとオフとの二つの状態が割り当てられるフラグメモ
リを設けることが好ましい。そして、キャッシュブロッ
ク内のデータが更新された際、そのアドレスに対応した
フラグメモリがオフであった場合には、その更新前のデ
ータをビフォアイメージ記憶手段に格納するとともに、
そのフラグメモリをオンにする。また、プロセッサによ
り再度そのデータが更新された場合には、そのフラグメ
モリはすでにオンとなっているので、更新前のデータは
格納済みであることが認識できるため、更新前のデータ
のビフォアイメージ記憶手段への格納は行なわない。こ
れにより、不要な動作を削減することができるため、そ
の性能をさらに向上させることが可能となる。このフラ
グメモリは、必ずしもすべての区画に対応させて設けな
ければならないものではなく、一部の区画に対応させて
設けた場合であっても有効である。
ドレス範囲を設定し、この設定したアドレス範囲それぞ
れに対応させてブロックカウンタを設けることが好まし
い。この場合、このブロックカウンタを、その対応する
アドレス範囲に含まれるキャッシュブロックの中で更新
状態のキャッシュブロックがいくつあるかを示すように
管理する。したがって、このブロックカウンタが初期値
(たとえば0)を示す場合、このアドレス範囲に関して
は、キャッシュフラッシュが不要であることが即座に認
識できるため、チェックポイント処理の所要時間を大幅
に短縮することが可能となる。
スヌープ機構を有するコピーバック型のキャッシュメモ
リを備えた少なくとも一つ以上のプロセッサと、メイン
メモリと、請求項1乃至19のいずれかに記載のチェッ
クポイント処理加速装置と、前記プロセッサと前記メイ
ンメモリ前記チェックポイント処理加速装置とを接続す
るシステムバスを備える計算機システムにおけるデータ
処理方法であって、前記チェックポイント処理加速装置
のビフォアイメージ取得手段を起動した後、通常のデー
タ処理を実行するデータ処理実行ステップと、前記デー
タ処理実行ステップを一時中断して、すべての前記プロ
セッサが同期して実行する、データ処理中のコンテキス
トをメインメモリに格納して、前記チェックポイント処
理加速装置のキャッシュフラッシュ実行手段を起動し、
前記チェックポイント処理加速装置のキャッシュフラッ
シュ実行手段の実行終了後、前記データ処理実行ステッ
プを再開するチェックポイント作成ステップと、故障が
発生したときに、すべての前記プロセッサが同期して前
記キャッシュメモリのすべてのキャッシュブロックを無
効化した後、前記チェックポイント処理加速装置のメイ
ンメモリ状態復元手段を起動することにより前記メイン
メモリの状態を直前に採取してチェックポイント時点の
状態に復元し、その後前記データ処理実行ステップを再
開するロールバック/リカバリステップとを有すること
を特徴とする。
ポイントを定期的に採取する計算機システムにおいて
は、このチェックポイントの採取に費やす時間をいかに
短縮するかが重要である。すなわち、このような計算機
システムに、前述したようなチェックポイント処理加速
装置を適用すれば、システム全体の性能を向上させるこ
とが可能となる。
実施の形態を説明する。
第1の実施形態に係る計算機システムのシステム構成が
示されている。各プロセッサ10は、キャッシュ一貫性
を備えたコピーバック型のキャッシュメモリ20を有す
る。ただし、キャッシュメモリがプライマリとセカンダ
リとの2階層あるいはそれ以上の階層で構成される場
合、本実施形態でいうキャッシュメモリ20とは、最も
システムバス40に近いキャッシュメモリを指す。ま
た、キャッシュメモリによっては、命令を格納するキャ
ッシュメモリと、データを格納するキャッシュメモリと
が分かれているものもあるが、その場合、本実施形態で
いうキャッシュメモリ20とは、データを格納するため
のキャッシュメモリを指す。また、本システムにおける
システムバス40上でのアドレスは、32ビットとして
説明する。
30の機能について、本装置を制御するソフトウェアと
関連させて説明する。
時点でModified状態(後述)のキャッシュブロ
ックが存在しない状態を作る。
は、通常のデータ処理を開始する時点でビフォアイメー
ジ取得部32を起動する。プロセッサ10が、アプリケ
ーションプログラムなどを実行している間、チェックポ
イント処理加速装置30は、システムバス40を監視
し、プロセッサ10がキャッシュメモリ20上でデータ
を更新したことを検知するごとに、更新アドレスと更新
前のデータとを記憶する。
は、通常のデータ処理を一定時間、たとえば数ミリ秒〜
数10ミリ秒実行すると、チェックポイント処理を行な
う。チェックポイント処理では、直前まで実行していた
アプリケーションプログラムのコンテキスト(プロセッ
サのレジスタ内容など)をメインメモリ51に格納する
とともに、すべてのModified状態のキャッシュ
ブロックの内容をメインメモリ51に格納する(以下、
「キャッシュフラッシュ」という)。このチェックポイ
ント処理加速装置30は、すべてのModified状
態のキャッシュブロックに対し、その内容のメインメモ
リ51への書き戻しを要求するコマンドをシステムバス
40に発行することによってキャッシュフラッシュを実
現する。この処理は、プロセッサ10がキャッシュフラ
ッシュ用のソフトウェアを実行するのと比較して高速で
あることが期待される。チェックポイント処理が終了す
ると、プロセッサ10は通常のデータ処理を再開する。
に何らかの障害が発生した場合、プロセッサ10は、障
害の箇所を同定し、必要であれば障害の発生した装置を
切り離すとともに、すべてのキャッシュブロック20を
無効化する。そして、チェックポイント処理加速装置3
0は、その内部に記憶されているビフォアイメージを使
って、メインメモリ51に更新前のデータを書き戻すコ
マンドを発行することにより、メインメモリ51の状態
を直前のチェックポイント処理時の状態に戻す。その
後、プロセッサ10は通常のデータ処理を再開する。
処理加速装置30は、下記の3つの機能を有する。
そのビフォアイメージを取得して記憶する。
フイメージを使ってModified状態のキャッシュ
ブロックの内容のメインメモリ51への書き戻しを要求
するコマンドを発行する。
アイメージを使ってメインメモリ51に更新前のデータ
を書き戻すコマンドを発行する。
(2)および(3)の機能を実現するためであるから、
必ずしもすべてのデータ更新について、そのビフォアイ
メージを取得する必要はない。たとえば、チェックポイ
ントの後、あるアドレスに対して最初に更新が発生した
場合、ビフォアイメージの取得は必須であるが、2度目
以降の場合には、ビフォアイメージの取得は不要であ
る。
は、システムバス40上のコマンドとその応答とを監視
し、あるいは能動的にコマンドを発行することにより処
理を行なうので、ここでキャッシュメモリ20およびシ
ステムバス40の構造、ならびにコマンドとそれに対す
る応答とについて説明する。ただし、ここで述べるもの
は、本実施形態のメモリ状態復元部33を適用可能な計
算機の一例である。たとえば、下記に示すキャッシュブ
ロックの取り得る状態やシステムバス40上のコマンド
や応答には、それぞれ数種類のバリエーションが存在す
るが、いずれについても本実施形態の主旨にしたがった
チェックポイント処理加速装置30が構成可能である。
は、アドレス/データ線の他、制御用信号線として、コ
マンド信号線、モディファイド応答信号線、およびシェ
アード応答信号線を含む。アドレス/データ信号線は、
コマンドのアドレスおよびデータを送るための信号線で
あり、共通の信号線を時分割で使う方式と、アドレス/
データそれぞれに独立した信号線を設ける方式とがあ
り、いずれであっても構わない。コマンド信号線は、コ
マンドの種類を示す他、コマンドに関する各種情報を送
るための信号線である。シェアード応答信号線は、他の
プロセッサ/キャッシュメモリにより発行されたコマン
ドに対して、ブロックを共有していることを通知するた
めに用いられる。そして、モディファイド応答信号線
は、他のプロセッサ/キャッシュメモリにより発行され
たコマンドに対して、ブロックの更新データを保持して
いることを通知するために用いられる。
ブロックの取り得る状態は、下記の通りである。
い。
る。また、他のプロセッサ10のキャッシュブロックに
は、このデータは存在しない。
容のデータが存在する。また、他のプロセッサ10のキ
ャッシュブロックにも、このデータが存在する可能性が
ある。
態 そのキャッシュブロックにはメインメモリ51と同一内
容のデータが存在する。また、他のキャッシュメモリ2
0のキャッシュブロックには、このデータは存在しな
い。
ス40上のコマンドおよびそれに対するキャッシュメモ
リ20あるいはメインメモリ51からの応答は、次の通
りである。ただし、このうち、Read−Line−N
on−Coherentは、システムバス40ではサポ
ートされているが、キャッシュメモリ20が発行するコ
マンドではない。
ロックデータのリード要求) 発行される状況…プロセッサ10がデータを読込もうと
して、キャッシュメモリ20中にそのデータが無い場
合。
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Lineコマン
ドを発行したキャッシュメモリ20とメインメモリ51
にデータが転送される。両方のキャッシュブロックの状
態は、Clean−Sharedとなる。
のキャッシュブロックを有するキャッシュメモリ20は
ないが、Clean−SharedまたはClean−
Exclusive状態のキャッシュブロックを有する
キャッシュメモリ20があれば、そのキャッシュメモリ
20は、シェアード応答信号線をアサートする。メイン
メモリ51またはそのデータを保持するキャッシュメモ
リ20がRead−Lineコマンドを発行したキャッ
シュメモリ20にデータを転送する。いずれがデータ転
送するかは、計算機に依存する。両方のキャッシュブロ
ックの状態は、Clean−Sharedとなる。
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ineコマンドを発行したキャッシュメモリ20にデー
タが転送される。キャッシュブロックの状態は、Cle
an−Exclusiveとなる。
nvalidate(キャッシュブロックデータのリー
ドと、他のキャッシュブロックの無効化要求) 発行される状況…プロセッサ10がデータを更新しよう
として、キャッシュメモリ20中にそのデータが無い場
合。
のキャッシュブロックを有するキャッシュメモリ20が
あれば、そのキャッシュメモリ20は、モディファイド
応答信号線をアサートして、Read−Line−wi
th−Invelidateコマンドを発行したキャッ
シュメモリ20とメインメモリ51にデータが転送され
る。計算機によっては、Modified状態のキャッ
シュブロックを有するキャッシュメモリ20がRetr
yを応答して、メインメモリ51にデータを書戻し、R
ead−Line−with−Invelidateコ
マンドを発行したキャッシュメモリ20が再度同じコマ
ンドを発行すると、今度はメインメモリ51が応答する
こともある(後述するケース3)。本実施形態では、前
者であるとして説明する。要求を発行した側のキャッシ
ュブロックの状態は、Modifiedとなり、応答し
た側は、Invalid状態となる。
edまたはClean−Exclusive状態のキャ
ッシュブロックを有するキャッシュメモリ20があれ
ば、そのキャッシュメモリ20は、シェアード応答信号
線をアサートする。メインメモリ51またはそのデータ
を保持するキャッシュメモリ20がRead−Line
−with−Invelidateコマンドを発行した
キャッシュメモリ20にデータを転送する。いずれがデ
ータ転送するかは、計算機に依存する。要求を発行した
側のキャッシュブロックの状態は、Modifiedと
なり、応答した側は、Invalid状態となる。
合、モディファイド応答信号線もシェアード応答信号線
もアサートされず、メインメモリ51からRead−L
ine−with−Invelidateコマンドを発
行したキャッシュメモリ20にデータが転送される。キ
ャッシュブロックの状態は、Modifiedとなる。
ブロックデータのメインメモリへの書き込み) 発行される状況…Modified状態のキャッシュブ
ロックに他のアドレスのデータを格納しなければならな
くなったため、Modified状態のキャッシュブロ
ックの内容をメインメモリ51に書き戻す場合。
含まれるデータにより更新される。キャッシュブロック
の内容は、Clean−Sharedとなる。
シュメモリのデータ無効化要求。アドレスの転送のみ) 発行される状況…プロセッサ10がClean−Sha
red状態のキャッシュブロックのデータを更新しよう
とする場合。
ified状態となり、受信した側は、Invalid
状態となる。
herent(メインメモリデータのリード要求) 発行される状況…メインメモリ51からI/O装置への
DMA転送等で使用応答…キャッシュメモリ20の状態
に関わらず、常にメインメモリ51が要求されたアドレ
スの内容を応答として返す。キャッシュブロックの状態
は不変である。
およびシステムバス40などを説明した。
チェックポイント処理加速装置30は、ビフォアイメー
ジ記憶部35、ビフォアイメージ取得部32、キャッシ
ュフラッシュ実行部34およびメインメモリ状態復元部
33で構成される。
すように、更新アドレスおよび更新前データの組(ビフ
ォアイメージ)を記憶する複数のエントリと、キャッシ
ュフラッシュ実行部34が使用するFポインタと、ビフ
ォアイメージ取得部32およびメインメモリ状態復元部
33が使用するWポインタとで構成される。
新前のデータは、キャッシュブロックと同じ大きさ(こ
こでは、Bビットとする)である。これは、キャッシュ
メモリ20間、あるいはキャッシュメモリ20とメイン
メモリ51間のデータ転送の単位と同じにするためであ
る。
2が新たに取得したビフォアイメージを格納するエント
リを示す。プロセッサ10の指示により、ビフォアイメ
ージ取得部32が起動されると、Wポインタは、最初の
エントリを指すように初期化される。そして、ビフォア
イメージ取得部32が新たに取得したビフォアイメージ
をWポインタの指すエントリに格納すると、Wポインタ
がインクリメントされ、その次のエントリを指すように
制御される。また、プロセッサ10の指示によりメイン
メモリ状態復元部33が起動されると、Wポインタが次
々とデクリメントされながら、Wポインタの指すエント
リに格納されている更新アドレスと更新前データの組を
使って、メインメモリ51の内容が更新前の状態に戻さ
れていく。
部34が次に処理対象とするビフォアイメージを格納し
ているエントリを指す。プロセッサ10の指示により、
キャッシュフラッシュ実行部34が起動されると、Fポ
インタは最初のエントリを指すよう初期化される。そし
て、キャッシュフラッシュ実行部34は、Fポインタの
指すエントリに格納されている更新アドレスに対して、
Read−Lineコマンドを発行しては、Fポインタ
が次のエントリを指すよう制御される。そして、Fポイ
ンタの値とWポインタの値が一致すると、キャッシュフ
ラッシュ実行部34は終了する。
バス40上のコマンドおよび応答を監視し、あるいは必
要によりコマンドを発行することにより、プロセッサ1
0がキャッシュメモリ20上でデータを更新した際、そ
のビフォアイメージをビフォアイメージ記憶部35に格
納する。ビフォアイメージ取得部32が前記コマンドを
検知したときの動作を下記に示す。
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスと、キャッシュメモリ20またはメインメモリ5
1からの応答に含まれる更新前データとをビフォアイメ
ージ記憶部35に格納する。
Lint−Non−Conerentコマンドを発行す
る。そして、前記更新アドレスとメインメモリ51から
の応答に含まれる更新前データとをビフォアイメージ記
憶部35に格納する。
2の処理フローが示されている。
サ10がデータを更新するときに発行されるコマンドで
はないので、ビフォアイメージを取得することはない。
しかし、シェアード応答信号線をアサートし、キャッシ
ュブロックがClean−Exclusive状態とな
るのを防ぐ必要がある。というのは、プロセッサ10が
Clean−Exclusive状態のキャッシュブロ
ックのデータを更新する場合、他のキャッシュメモリ2
0はそのデータを保持していないため、システムバス4
0に何のコマンドも発行されることなく、Clean−
Exclusive状態からModified状態に遷
移する。そのため、ビフォアイメージ取得部32は、ビ
フォアイメージを取得できなくなる。そこで、ビフォア
イメージ取得部32がシェアード応答信号線をアサート
することにより、キャッシュブロックはClean−S
hared状態となり、プロセッサ10によるデータの
更新では、システムバス40にInvalidateコ
マンドが発行されることになる。
lidateコマンドの場合、キャッシュメモリ20あ
るいはメインメモリ51から更新前のデータを含む応答
があるので、ビフォアイメージ取得部32は、それらを
抽出すれば良い。ただし、モディファイド応答信号線が
アサートされている場合、他のキャッシュメモリ20が
そのデータをModified状態で保持していたこと
になるので(したがって、そのアドレスに対応するビフ
ォアイメージはすでにビフォアイメージ記憶部35に記
憶されている)、その場合にはビフォアイメージを記憶
しない。これにより、ビフォアイメージ記憶部32の利
用効率の向上、キャッシュフラッシュ時間の短縮などが
期待できる。
コマンドおよび応答はデータを含まないので、ビフォア
イメージ取得部32が、Read−Line−Non−
Coherentコマンドを発行し、メインメモリ51
からの応答に含まれる更新前データを取得する。ここ
で、もしRead−Lineコマンドを発行すると更新
されたデータを保持しているキャッシュブロックが応答
するので、更新前のデータを得ることはできない。すな
わち、Read−Line−Non−Coherent
コマンドを発行することが必須である。
セッサ10の指示により、まずFポインタが最初のエン
トリを指すようにした後、Fポインタの指すエントリ中
の更新アドレスを使って、Read−Lineコマンド
を発行し、Fポインタを進める。Read−Lineコ
マンドを発行するのは、もし、そのアドレスのデータを
Modified状態で保持するキャッシュブロックが
あれば、そのデータをメインメモリ51にも転送し、そ
のキャッシュブロックの状態はModifiedからC
lean−Sharedに変化するというRead−L
ineとその応答の性質を利用するためである。そし
て、FポインタがWポインタと等しくなれば、キャッシ
ュフラッシュ処理を終了する。この時、キャッシュブロ
ックの状態はすべてInvalidもしくはClean
−Sharedとなっている。
ビフォアイメージ記憶部35に格納されているすべての
アドレスについて、Read−Lineコマンドを発行
しているが、これには無駄がある。というのは、通常の
データ処理において、たとえばa番地のデータをMod
ified状態で保持しているキャッシュブロックが、
その後にb番地のデータを格納するため、a番地のデー
タをメインメモリ51に書き戻した場合、a番地のMo
dified状態のキャッシュブロックは実在しないに
もかかわらず、キャッシュフラッシュ実行部34は、a
番地のビフォアイメージが存在するため、a番地に対し
てRead−Lineコマンドを発行することが、少な
からず起こるためである。これを改善する方法について
は、他の実施形態において説明する。図4には、キャッ
シュフラッシュ実行部34の処理フローが示されてい
る。
サ10の指示により、Wポインタをデクリメントし、W
ポインタの指すエントリ中のビフォアイメージをWri
te−Lineコマンドを使って、メインメモリに書き
戻す。ここで、a番地に対するビフォアイメージが2つ
以上存在する場合、チェックポイント時の状態に戻すに
は、より早い時点で取得したビフォアイメージをより遅
い時点でメインメモリ51に書き戻す必要がある。した
がって、Wポインタが現在指すエントリから最初のエン
トリに向かってデクリメントするのは、前記の制約を満
たす最も容易な方法である。図5には、メインメモリ状
態復元部33の処理フローが示されている。
ント処理加速装置30の制御方式を図6に基づいて説明
する。
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになると、通常のデータ処理を中断して、
チェックポイント処理を開始する。
ッサ10を割り込み禁止状態にして、外部機器などから
の割り込みを受けつけないようにする。これは、チェッ
クポイント処理中は、通常のデータ処理を一切実行しな
いようにするためである。ただし、計算機の故障発生を
通知する割り込みについては、通常の割り込みより高い
優先度を設定するなど、前記割り込み禁止状態にあって
も受け付けられるようになっている必要がある。
ッシュ実行部34を起動し、通常のデータ処理を中断し
た時点でのコンテキスト、すなわちレジスタの内容のメ
インメモリ51の然るべきアドレスへの書き込みを行な
う。ただし、本実施形態ではコピーバック型のキャッシ
ュメモリが使用されるので、この時点では通常のデータ
更新と同じように、キャッシュブロックにModifi
ed状態で保持され、ビフォアイメージ記憶部35にそ
のアドレスのビフォアイメージが記憶されている。
ラッシュ実行部34が、ビフォアイメージ記憶部35内
のビフォアイメージを使って、すべてのModifie
d状態のキャッシュブロックのデータがメインメモリ5
1に書き戻されるのを待つ。プロセッサ10のコンテキ
ストも、このとき、メインメモリ51に書き戻される。
キャッシュフラッシュ実行部34が実行を終了すると、
メインメモリ51に保存したコンテキストを対応するレ
ジスタに戻し、割り込み禁止状態を解除することによ
り、通常のデータ処理を再開する。
の動作を説明する。
アを実行することにより、すべてのキャッシュブロック
をModified状態以外の状態にする。
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図7を参照し、
通常のデータ処理として、プロセッサ10が、a番地の
データをA0からA1に、b番地のデータをB0からB
1に、a番地のデータをA1からA2に、この順で更新
する場合について説明する。ただし、a番地、b番地
は、ともにキャッシュブロックBLK0に対応し、BL
K0は、初期状態ではa番地のデータA0をClean
−Shared状態で保持しているとする。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
む応答を返す。この動作例は、初期化直後であるので、
モディファイド応答信号線はアサートされない。このと
き、ビフォアイメージ取得部32は、b番地とデータB
0の組をビフォアイメージ記憶部35に格納する。
番地に対するWrite−Lineコマンドが発行され
る。
がA1に変わる。
をA2に更新しようするが、キャッシュブロックBLK
0がb番地のデータB1をModified状態を保持
しているため、b番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にa番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
含む応答を返す。ビフォアイメージ取得部32は、a番
地とデータA1の組をビフォアイメージ記憶部35に格
納する。
b番地に対するWrite−Lineコマンドが発行さ
れる。
タがB1に変わる。
およびビフォアイメージ取得部32の動作例を示した。
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図8に示す。ただし、ビフォ
アイメージの欄の下線は、Fポインタの指す位置を表わ
す。
は、最初に取得したビフォアイメージa番地とデータA
0の組を使い、a番地に対するRead−Lineコマ
ンドを発行する。
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対してRead−Lineコマンドを発行す
る。
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートし
ない。メインメモリ51がB1を応答する。BLK0の
状態は変化しない。
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対してRead−Lineコマンドを発行す
る。
d状態であるので、シェアード応答信号線をアサートす
る。メインメモリ51がA2を応答する。BLK0の状
態は変化しない。
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。これは、初期化直後
と同じ状態であり、したがって、キャッシュフラッシュ
実行部34が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
シュフラッシュ実行部34の動作例を示した。
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
そして、チェックポイント処理加速装置30のメインメ
モリ状態復元部33が、ビフォアイメージを使って、W
rite−Lineコマンドを発行することにより、メ
インメモリ51の状態を直前のチェックポイント処理時
の状態に戻す。
ト処理の開始前に故障が発生した場合を例に図9を参照
して説明する。
ュブロックの無効化を行なう命令を実行する。
nvalid状態となる。
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
書かれるが、もともとA1であったので変わらない。
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
変わる。
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
変わる。
イント処理終了時点の状態に戻る。
例を示した。
ト処理加速装置30を適用すれば、特別なキャッシュメ
モリなどを必要とせずに、標準的な構成をもつ計算機シ
ステムにおいて効率的なキャッシュフラッシュが実現さ
れ、かつ高性能なチェックポイントリカバリ方式の計算
機システムが構築可能となる。
の実施形態を説明する。図10には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
置30は、ビフォアイメージ記憶部35、フラグメモリ
36、ビフォアイメージ取得部32、キャッシュフラッ
シュ実行部34およびメインメモリ状態復元部33で構
成される。
施形態のビフォアイメージ記憶部35と同一である。
キャッシュブロック単位ごとに1ビットの情報を保持す
る領域である。なお、実装されているメインメモリ51
の一部分についてフラグメモリ36を備えるだけでも良
い。フラグメモリ36は、そのアドレスに対するビフォ
アイメージがビフォアイメージ記憶部35に格納され、
かつキャッシュフラッシュ実行部34が未だそのアドレ
スに対してRead−Lineコマンドを発行していな
いときにだけオンになるように制御される。したがっ
て、あるアドレスに対するフラグメモリ36がオンにな
っているということは、キャッシュフラッシュ実行部3
4が、将来、そのアドレスに対してRead−Line
コマンドを発行することを表わしている。また、初期化
終了時やチェックポイント処理終了時は、すべてのフラ
グメモリ36の値がオフになっている。
イメージを取得する部分に関しては第1の実施形態と同
じである。しかし、前述したフラグメモリ36の参照/
更新の処理が追加され、また、フラグメモリ36の値に
よって、ビフォアイメージを格納しないことがある。ビ
フォアイメージ取得部32の処理フローを図11に示
す。
取得部32は、更新アドレスに対応するフラグメモリ3
6の値を参照し、もしオフであれば、それをオンに変更
するとともに、第1の実施形態と同一の方法でビフォア
イメージを取得する。一方、オンであれば、ビフォアイ
メージを取得・格納する必要はない。それは、下記の理
由による。
は、ビフォアイメージ取得部32がビフォアイメージを
取得して、ビフォアイメージ記憶部35に格納する時だ
けである。したがって、フラグメモリ36がオンである
ということは、そのアドレスに対するビフォアイメージ
が格納されているので、メインメモリ状態復元部33は
正しく動作する。
うことは、キャッシュフラッシュ実行部34が、そのア
ドレスに対して将来Read−Lineコマンドを発行
することを示している。したがって、キャッシュフラッ
シュ実行部34にとっても、フラグメモリ36がオンの
時には、ビフォアイメージを格納する必要はない。
リ36が無い場合には、そのアドレスに対応するビフォ
アイメージを常に採取・格納すれば良い。つまり、その
ようなアドレスに関しては、第1実施形態の場合と同じ
動作となる。
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、フラグメモリ3
6をオフにする機構を追加したものである。なお、ある
アドレスに対応するフラグメモリ36が無い場合には、
図12に示す処理フローにおいて、フラグメモリ36を
オフにする部分だけを実行しないようにすればよい。
施形態と同じである。
0の動作を説明する。
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図13を参照
し、通常のデータ処理として、プロセッサ10が、a番
地のデータをA0からA1に、b番地のデータをB0か
らB1に、a番地のデータをA1からA2に、この順で
更新する場合について説明する。ただし、a番地、b番
地は、ともにキャッシュブロックBLK0に対応し、B
LK0は、初期状態ではa番地のデータA0をClea
n−Shared状態で保持しているとする。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書戻しのためのWrit
e−Lineコマンドがライトバッファに一時的に保持
され、先にb番地に対するRead−Line−wit
h−Invelidateコマンドが発行される。
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
番地に対するWrite−Lineコマンドが発行され
る。
変わる。
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
応答する。ビフォアイメージ取得部32は、a番地に対
応するフラグメモリ36がオンであるため、ビフォアイ
メージを格納しない。
a番地に対するWrite−Lineコマンドが発行さ
れる。
に変わる。
1、およびビフォアイメージ取得部32の動作例を示し
た。
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地の順にRead−Lineコマンドを発行
する。その様子を図14に示す。ただし、ビフォアイメ
ージの欄の下線は、Fポインタが指す位置を表わす。
は、最初に、ビフォアイメージa番地とデータA0の組
を使い、a番地に対応するフラグメモリ36をオフにす
るとともに、a番地に対してRead−Lineコマン
ドを発行する。
odified状態で保持しているので、モディファイ
ド応答信号線がアサートされ、メインメモリ51への書
き戻しが行なわれ、メインメモリ51のa番地がA2に
変わる。BLK0の状態は、Clean−Shared
に変化する。
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
an−Shared状態で保持しているので、モディフ
ァイド応答信号線もシェアード応答信号線もアサートさ
れない。メインメモリ51がB1を応答する。BLK0
の状態は変化しない。
終了すると、Modified状態であったすべてのキ
ャッシュブロックの内容がメインメモリ51に書き戻さ
れるとともに、それらキャッシュブロックの状態がCl
ean−Shared状態になる。また、すべてのフラ
グメモリ36の値がオフとなる。これは、初期化直後と
同じ状態であり、したがって、キャッシュフラッシュ実
行部34の動作が終了すると、プロセッサ10は直ちに
通常のデータ処理を始めることができる。
シュフラッシュ実行部34の動作例を示した。
の障害が発生した場合、プロセッサ10は、障害の箇所
を同定し、必要であれば障害の発生した装置を切り離す
とともに、すべてのキャッシュブロックを無効化する。
そして、チェックポイント処理加速装置30のメインメ
モリ状態復元部33が、ビフォアイメージを使って、W
rite−Lineコマンドを発行することにより、メ
インメモリ51の状態を直前のチェックポイント処理時
の状態に戻す。
ト処理の開始前に故障が発生した場合を例に図15を参
照して説明する。
ュブロックの無効化を行なう命令を実行する。
nvalid状態となる。
後に取得したビフォアイメージb番地とデータB0の組
をもとに、Write−Lineコマンドを発行する。
変わる。
フォアイメージa番地とデータA0の組をもとに、Wr
ite−Lineコマンド発行する。
変わる。
1をすべてオフにする。
イント処理終了時点の状態に戻る。
例を示した。
レスに対して設定する必要は必ずしもない。あるアドレ
スについて、対応するフラグメモリ36がない場合、ビ
フォアイメージ取得部32は、そのアドレスに対するビ
フォアイメージを取得し、ビフォアイメージ記憶部35
に格納するようにすれば良い。
ト処理加速装置30では、フラグメモリ36を設けるこ
とにより、同じアドレスに対するビフォアイメージが2
回以上ビフォアイメージ記憶部35に格納されることを
回避できる。また、キャッシュフラッシュ実行部34が
実行を終了したときには、すべてのフラグメモリ36が
オフになっているため、プロセッサ10は直ちに通常の
データ処理を開始できる。
の実施形態を説明する。図16には、本実施形態に係る
計算機システムのシステム構成が示されている。チェッ
クポイント処理加速装置30が適用される計算機の構成
は第1の実施形態と同じである。
置30は、ビフォアイメージ記憶部35、ブロックカウ
ンタ38、ブロックカウンタ制御部37、ビフォアイメ
ージ取得部32、キャッシュフラッシュ実行部34およ
びメインメモリ状態復元部33で構成される。
施形態のビフォアイメージ記憶部35と同一である。
レス範囲の各々に対して設けられたカウンタの集合であ
り、各アドレス範囲に含まれるModified状態の
キャッシュブロックの個数を保持するのに用いられる。
ただし、各アドレス範囲は、互い共通部分を持たないよ
うに設定する。このアドレス範囲の設定の一例を、キャ
ッシュメモリ20がダイレクトマップ方式の場合につい
て説明する。
ドレスの集合をひとつのアドレス範囲とする。この場
合、ブロックカウンタに属するひとつのカウンタは、対
応するキャッシュブロックでModified状態のも
のの個数を保持することになる。プロセッサ数がPの場
合、カウンタは0〜P+αまでの値を取りうる。ここ
で、αは正の整数であり、最近の高速プロセッサが有す
るライトバッファの効果により、システムバスを監視し
ているチェックポイント処理加速装置からは、一時的に
ではあるが、ひとつのキャッシュブロックに対応して、
複数の番地のデータがModified状態で保持され
ているように見えることに対応するものである。αの値
は、P程度であれば十分である。なお、ブロックカウン
タを構成する各カウンタは、ブロックカウンタ制御部3
7により増減される。また、キャッシュフラッシュ実行
部34によって参照される。
バス40上のコマンドおよびその応答を監視して、キャ
ッシュブロックがModified状態に変わるのを検
知したときに、そのアドレスに対応する前記カウンタが
ある場合は、それをインクリメントする。一方、キャッ
シュブロックがModified状態からそれ以外の状
態に変わるのを検知したときには、そのアドレスに対応
する前記カウンタがある場合は、それをデクリメントす
る。
ス40上のコマンドおよびその応答を検知したときの動
作を下記に示す。
コマンドに含まれるアドレスに対応するカウンタをデク
リメントする。そうでなければ何もしない。
nvalidate もし、モディファイド応答信号線がアサートされれば何
もしない。そうでなければ、コマンドに含まれる更新ア
ドレスに対応するカウンタをインクリメントする。
インクリメントする。
リメントする。
ィファイド応答信号線がアサートされた場合は、Mod
ified状態のキャッシュブロックのデータがメイン
メモリに書き戻され、状態がModifiedからCl
ean−Sharedに変化したことを示すから、カウ
ンタをデクリメントする。また、Read−Line−
with−Invalidateコマンドでモディファ
イド応答信号線がアサートされた場合は、Modifi
ed状態のキャッシュブロックがあるキャッシュメモリ
から他のキャッシュメモリに移動したということである
から、カウンタの値は変えない。
施形態のビフォアイメージ取得部32と同一である。
の実施形態のキャッシュフラッシュ実行部34に、Re
ad−Lineコマンドを発行する際、対応するカウン
タの値を参照し、もし、0であれば、Read−Lin
eコマンドを発行しないようにする機構を追加したもの
である。図17には、キャッシュフラッシュ実行部34
の処理フローが示されている。
施形態と同じである。
0の動作を説明する。
ウンタ38を構成するすべてのカウンタの値を0とす
る。これと同期して、プロセッサ10はソフトウェアを
実行することにより、すべてのキャッシュブロックをM
odified状態以外の状態にする。
は、通常のデータ処理を開始する時点で、ビフォアイメ
ージ取得部32を起動する。ここでは、図18を参照
し、通常のデータ処理として、プロセッサ10が、a番
地のデータをA0からA1に、b番地のデータをB0か
らB1に、a番地のデータをA1からA2に、この順で
更新する場合について説明する。ただし、a番地、b番
地は、ともにキャッシュブロックBLK0に対応し、B
LK0は、初期状態ではa番地のデータA0をClea
n−Shared状態で保持しているとする。また、キ
ャッシュブロックBLK0に対応して、カウンタが1つ
設けられているとする。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。キャッシュメ
モリ20上のデータが、A0からA1へと更新される。
ブロックカウンタ制御部37は、カウンタをインクリメ
ントして1とする。
番地に対してRead−Line−Non−Coher
entコマンドを発行する。
答する。ビフォアイメージ取得部32は、a番地とデー
タA0の組を、ビフォアイメージ記憶部35に格納す
る。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
ti−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
む応答を返す。ブロックカウンタ制御部37は、カウン
タをインクリメントして2とする。ビフォアイメージ取
得部32は、b番地とデータB0の組をビフォアイメー
ジ記憶部35に格納する。
番地に対するWrite−Lineコマンドが発行され
る。
がA1に変わる。ブロックカウンタ制御部37は、カウ
ンタをデクリメントして1とする。
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をModified状態で保
持しているため、b番地のデータ書き戻しのためのWr
ite−Lineコマンドがライトバッファに一時的に
保持され、先にa番地に対するRead−Line−w
ith−Invalidateコマンドが発行される。
含む応答を返す。ブロックカウンタ制御部37は、カウ
ンタをインクリメントして2とする。ビフォアイメージ
取得部32は、a番地とデータA1の組をビフォアイメ
ージ記憶部35に格納する。
b番地に対するWrite−Lineコマンドが発行さ
れる。
タがB1に変わる。このとき、ブロックカウンタ制御部
37は、カウンタをデクリメントして1とする。
1、ブロックカウンタ制御部37、およびビフォアイメ
ージ取得部32の動作例を示した。
で、プロセッサ10がキャッシュフラッシュ実行部34
を起動すると、キャッシュフラッシュ実行部34は、a
番地、b番地、a番地の順にRead−Lineコマン
ドを発行する。その様子を図19に示す。ただし、ビフ
ォアイメージの欄の下線は、Fポインタの指す位置を表
わす。
は、最初に、取得したビフォアイメージa番地とデータ
A0の組を使う。a番地に対応するカウンタが1である
ので、a番地に対してRead−Lineコマンドを発
行する。
odified状態で保持しているので、モディファイ
ド応答信号線をアサートし、メインメモリ51への書き
戻しが行なわれ、メインメモリ51のa番地がA2に変
わる。BLK0の状態は、Clean−Sharedに
変化する。ブロックカウンタ制御部37は、Read−
Lineコマンドに対して、モディファイド応答信号線
がアサートされたので、カウンタをデクリメントして0
とする。
は、ビフォアイメージb番地とデータB0の組を使おう
とするが、b番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
は、ビフォアイメージa番地とデータA1の組を使おう
とするが、a番地に対応するカウンタは0であるので、
Read−Lineコマンドは発行しない。
動作が終了すると、Modified状態であったすべ
てのキャッシュブロックの内容がメインメモリ51に書
き戻されるとともに、それらキャッシュブロックの状態
がClean−Shared状態になる。また、すべて
のカウンタの値は0となる。これは、初期化直後と同じ
状態であり、したがって、キャッシュフラッシュ実行部
34の動作が終了すると、プロセッサ10は直ちに通常
のデータ処理を始めることができる。
シュフラッシュ実行部34の動作例を示した。
ウンタ38を設けることにより、キャッシュフラッシュ
実行部34が発行するRead−Lineコマンドの数
を減らすことができるため、その分、チェックポイント
処理の所要時間を短縮できる。
したチェックポイント処理の開始前に故障が発生した場
合を例に図20を参照して説明する。障害が発生したと
き、プロセッサ10はすべてのキャッシュブロックを無
効化するので、キャッシュブロックBLK0の状態もI
nvalidとなっている。
ュブロックの無効化を行なう命令を実行する。
nvalid状態となる。
後に取得したビフォアイメージa番地とデータA1の組
をもとに、Write−Lineコマンド発行する。
書かれるが、もともとA1であったので変わらない。
の前に取得したビフォアイメージb番地とデータB0の
組をもとに、Write−Lineコマンド発行する。
変わる。
の前に取得したビフォアイメージa番地とデータA0の
組をもとに、Write−Lineコマンド発行する。
変わる。
ンタの値を0にする。
ポイント処理終了の時点の状態に戻る。
例を示した。
アドレスに対して設定する必要は必ずしもない。あるア
ドレスについて、対応するカウンタがない場合、キャッ
シュフラッシュ実行部34は、そのアドレスに対するR
ead−Lineコマンドを常に発行するようにすれば
良い。
ト処理加速装置30では、ブロックカウンタ38を設け
ることにより、キャッシュフラッシュ実行部34がMo
dified状態のキャッシュブロックが実在しないア
ドレスに対して、Read−Lineコマンドを発行す
るという無駄をある程度軽減できる。また、キャッシュ
フラッシュ実行部34が実行中も、ブロックカウンタ制
御部37がブロックカウンタ38のインクリメント/デ
クリメントを適切に行なうことにより、キャッシュフラ
ッシュ実行部34が実行を終了した時、すべてのブロッ
クカウンタの値は0となっている。このため、キャッシ
ュフラッシュ実行部34が実行を終了すると、プロセッ
サは直ちに通常のデータ処理を開始できる。
ウンタ38を、ダイレクトマップ方式のキャッシュメモ
リ20についてキャッシュブロックの各々に対応させて
設ける方式を示した。
イのセットアソシアティブ方式の場合について示す。
ャッシュメモリの場合、あるアドレスのデータは、ひと
つのウェイを形成するn個のキャッシュブロックのいず
れかに格納されるが、そのうちのどのキャッシュブロッ
クに格納されるかは、その都度変わりうる。
キャッシュブロックに対して、ひとつのカウンタを設け
る。すなわち、あるカウンタは、対応するウェイでMo
dified状態のキャッシュブロックの個数を保持す
ることになる。プロセッサ数がPの場合、カウンタは0
〜P×n+αまでの値を取りうる。αはダイレクトマッ
プ方式の場合に説明したように、プロセッサのライトバ
ッファに対応するためのマージンである。
ブロックあるいはひとつのウェイを形成するキャッシュ
ブロックの集合に対応させて設けることに代えて、メイ
ンメモリをキャッシュブロックの大きさに分け、それぞ
れに対してカウンタを設けることも可能である。この場
合、計算機のプロセッサ数に関係なく、ひとつのアドレ
スに対するModified状態のキャッシュブロック
の個数は0か1かであるので、それぞれ1ビットで表現
することができ、ブロックカウンタ制御部37を簡単化
することができる。
クの大きさに分けて、1ビットの情報を持たせるという
点で、第2の実施形態と類似するが、下記の点で異な
る。
タイミング、および、そのオン/オフによって制御する
対象が異なる。具体的には、第2の実施形態では、ビフ
ォアイメージを取得するか否かの判断に使用するのに対
し、キャッシュフラッシュ実行部34がRead−Li
neコマンドを発行するか否かの判断に使用する。
害が発生した場合、すべてのメインメモリを直前のチェ
ックポイントに戻すのではなく、メインメモリの一部の
領域、たとえば障害発生と回復処理の履歴を保持する領
域や、回復処理を実行するプログラムの作業領域など、
戻してはならない領域が存在する。
で、それを実現する方式には下記の2種類の候補があ
る。
フォアイメージを取得するか否かを判断させる機構を設
ける。この方法は、取得するビフォアイメージが少なく
なる長所があるが、その判断を高速に実行しないと、プ
ロセッサ10やシステムバス40の動作に追従できなく
なる危険性がある。
様の判断機構を持たせ、メインメモリ51にビフォアイ
メージを書き込むWrite−Lineコマンドを発行
するか否かを判断する。この方法では、実行速度を余り
気にする必要はない。また、同様の判断機構を、キャッ
シュフラッシュ実行部34に持たせれば、チェックポイ
ント処理の所要時間が若干短縮できる。
は、制御ソフトウェアの方で、物理的に連続な領域で、
かつ、領域の先頭アドレスをある程度自由に設定できる
という前提で、前者にも適用可能な判断が高速でハード
ウェア量も余り必要としない方式を示す。
となる更新アドレスを保持するアドレスレジスタ、アド
レスレジスタの一部ビットをマスクするためのマスクレ
ジスタと32ビットのAND回路、その結果と比較する
ための比較参照レジスタと32ビット比較器で構成され
る。そして、比較器で一致と判断したときは、ビフォア
イメージを採取しないようにする。なお、この機構でも
判断が遅すぎる場合には、たとえばInvalidat
eコマンドに対するRead−Line−Non−Co
herentコマンドを先に発行して、ビフォアイメー
ジを格納する直前にこの機構の結果を使用しても良い。
タ更新が発生した場合に、システムバス40に発行され
るInvalidateコマンド、およびRead−L
ine−with−Invalidateコマンドが観
測されたとき、ビフォアイメージ取得部32が更新アド
レスと更新前データを取得する方法を示してきた。しか
しながら、計算機によっては、I/O機器からメインメ
モリ51へのデータ転送や、プロセッサ10からのキャ
ッシュメモリ20を通さないメインメモリ51への書き
込みが起こる場合があるので、次に、その対策について
説明する。
て、第1の対策について説明する。
は、Write−Lineコマンドとは別のコマンド
(ここでは、それをWrite−Non−Cohere
ntコマンドと呼ぶ)が使われる。
etry応答線という制御信号線があり、Write−
Non−Coherentコマンドがシステムバスに発
行されたとき、Retry信号線をアサートすることに
より、そのコマンドの実行中止を要求できる。この場
合、暫くして、中止させられたコマンドが再度発行され
る。
e−Non−Coherentコマンドを検出すると、
Retry応答線をアサートする。そして、その直後
に、Write−Non−Coherentコマンドに
含まれている更新アドレスを使って、Read−Lin
e−Non−Coherentコマンドを発行する。そ
して、メインメモリ51からの応答に含まれるデータと
前記更新アドレスの組をビフォアイメージとしてビフォ
アイメージ記憶部35に格納する。一方、ビフォアイメ
ージ取得部32は、先程と同じアドレスを含むWrit
e−Non−Coherentコマンドを検出したとき
には、Retry応答線をアサートしない。
1へのデータ転送や、プロセッサ10からのキャッシュ
メモリ20を通さないメインメモリ51への書き込み
は、プロセッサ10の制御下で行なわれる。したがっ
て、Write−Non−Coherentコマンドが
発行される前に、プロセッサ10がそのアドレスに対し
てキャッシュメモリ20を経由したデータ更新を行なう
ことにより、ビフォアイメージ取得部32にビフォアイ
メージを取得させる。次に、プロセッサ10は、更新し
たデータを保持しているキャッシュブロックを無効化
し、その後、I/O機器からメインメモリ51へのデー
タ転送などを起動する。
は、プロセッサ10から指定されたアドレス範囲につい
て、ビフォアイメージの取得と格納を実行する機能を付
加する。通常、I/O機器からメインメモリ51へのデ
ータ転送は、連続したアドレスに対して行なわれるの
で、プロセッサ10からの1回の指示で複数のビフォア
イメージの取得が可能となる。したがって、対策2より
処理が高速である。
の実施形態を説明する。前述した第1乃至第3の実施形
態では、通常のデータ処理時、ビフォアイメージ取得部
32を動作させることによってビフォアイメージを取得
し、チェックポイント処理時には、プロセッサ10がキ
ャッシュフラッシュ実行部34を起動し、その終了を待
って通常のデータ処理を再開する制御方式のもとでの動
作説明をした。ここでは、チェックポイント処理の所要
時間を短縮する、より最適化されたチェックポイント処
理加速装置30の制御方法、およびその制御方法に適合
したチェックポイント処理加速装置の機能および構成法
を示す。なお、この制御方式をフラッシュ前倒し方式と
呼ぶことにする。
適用したチェックポイント/リカバリ方式の計算機で
は、通常のデータ処理を継続する時間は、典型的には数
ミリ秒〜数10ミリ秒である。チェックポイント処理が
終了した時点では、すべてのキャッシュブロックが、I
nvalid状態、またはClean−Shared状
態であり、Modified状態のものはない。そし
て、通常のデータ処理を再開すると、次第にModif
ied状態のキャッシュブロックが増加し、次のチェッ
クポイント処理を始める時には、典型的には、10%〜
50%のキャッシュブロックがModified状態に
なっている。
は、ビフォアイメージ記憶部35に格納されているビフ
ォアイメージのアドレスに対して、Read−Line
コマンドを発行する処理が占める。これを高速化する方
法として、第2の実施形態ではフラグメモリ36を使用
する方法を、また、第3の実施形態ではブロックカウン
タ38を使用する方法を示した。そして、これらは無駄
なRead−Lineコマンドの発行を減らすことを目
的としていた。
4の起動を、チェックポイント処理の開始前、すなわ
ち、通常のデータ処理中に行なう方法を説明する。ま
た、第1乃至第3の実施形態で説明したチェックポイン
ト処理加速装置が、いずれもこの制御方式のもとで正し
く動作すること、および、この制御方式により適合した
チェックポイント処理加速装置の構成法について説明す
る。
0、ビフォアイメージ取得部32、およびキャッシュフ
ラッシュ実行部34の動作の時間的な関係を説明する。
びビフォアイメージ処理の前半は、ビフォアイメージ取
得部32を実行させておく。また、プロセッサ10は、
通常のデータ処理の途中で、キャッシュフラッシュ実行
部34を起動する。すると、その後は、プロセッサ10
が通常のデータ処理にともなって、データの更新を行な
い、それをビフォアイメージ取得部32がビフォアイメ
ージ記憶部35のWポインタ(第1の実施形態で説明)
が指すエントリに格納するという処理と、キャッシュフ
ラッシュ実行部34がビフォアイメージ記憶部35のF
ポインタが指すエントリに格納されているアドレスに対
してRead−Lineコマンドを発行することによ
り、Modified状態のキャッシュブロックの内容
をメインメモリに書き戻すという処理が並行して行なわ
れる。
ト処理を開始すると、まず、通常のデータ処理を中断し
た時のコンテキストのメインメモリ51(実際には、キ
ャッシュメモリ20)への書き込み後、キャッシュフラ
ッシュ実行部34が処理を終了するのを待つ。
の処理フローを図23に基づいて説明する。
取得部32を起動した後、アプリケーションプログラム
やオペレーティングシステムを実行する。そして、適当
なタイミングになるとキャッシュフラッシュ実行部34
を起動する。このキャッシュフラッシュ実行部34を起
動するタイミングについては後述する。そして、さらに
アプリケーションプログラムやオペレーティングシステ
ムの実行を続け、適当なタイミングになると、通常のデ
ータ処理を中断し、チェックポイント処理を開始する。
ッサ10を割り込み禁止状態にして、外部機器などから
の割込みを受けつけないようにする。これは、チェック
ポイント処理中は、通常のデータ処理を一切実行しない
ようにするためである。ただし、計算機の故障発生を通
知する割り込みについては、通常の割込みにより高い優
先度を設定するなど、割込み禁止状態にあっても受け付
けられるようになっている必要がある。
理を中断した時点でのコンテキスト、すなわちレジスタ
の内容のメインメモリ51の然るべきアドレスへの書き
込みを行なう。ただし、本実施形態では、コピーバック
型のキャッシュメモリが使用されるので、この時点では
通常のデータ更新と同じように、キャッシュブロックに
Modified状態で保持され、ビフォアイメージ記
憶部35にそのアドレスのビフォアイメージが記憶され
ている。
ラッシュ実行部34がビフォアイメージ記憶部35内の
ビフォアイメージを使って、すべてのModified
状態のキャッシュブロックのデータがメインメモリ51
に書き戻されるのを待つ。プロセッサ10のコンテキス
トも、このとき、メインメモリ51に書き戻される。キ
ャッシュフラッシュ実行部34が実行を終了すると、メ
インメモリ51に保存したコンテキストを対応するレジ
スタに戻し、割り込み禁止状態を解除することにより、
通常のデータ処理を再開する。
方式と対比させて模式的に表わすと、図24のようにな
る。
式(b)も、通常のデータ処理を開始した直後は、新た
に取得されるビフォアイメージの量が、ほぼ直線的に増
加する。
イント処理の直前まで続くのに対して、フラッシュ前倒
し方式では、通常のデータ処理の途中でキャッシュフラ
ッシュ実行部34を起動することにより、ビフォアイメ
ージ取得部32が新たにビフォアイメージを取得する一
方でキャッシュフラッシュ実行部34がRead−Li
neコマンドを発行し、その結果、キャッシュフラッシ
ュ実行部34が処理すべきビフォアイメージの量(Wポ
インタとFポインタの差)の増加が鈍るもしくは減る。
模式図では減る場合を示した。キャッシュフラッシュ実
行部34が処理すべきビフォアイメージの量を減らすよ
うにするか否かは、キャッシュフラッシュ実行部34の
構成法で制御できるので、後で説明する。
用いた場合のチェックポイント処理の所要時間は、ほ
ぼ、キャッシュフラッシュ実行部34が処理すべきビフ
ォアイメージの量に比例するので、フラッシュ前倒し方
式は、チェックポイント処理の所要時間を大幅に減らす
ことができる。通常のデータ処理の継続時間は、前に述
べた通り、典型的には数ミリ秒〜数10ミリ秒の間であ
り、元の制御方式の場合、チェックポイント処理の所要
時間は、1ミリ秒〜10ミリ秒程度である。その間、外
部機器からの割込みを受け付けないことが、本チェック
ポイント/リカバリ方式の計算機の適用範囲を制限する
要因となりうる。したがって、フラッシュ前倒し方式に
より、チェックポイント処理の所要時間が、たとえば数
分の1になるということは十分に意味がある。
を劣化させる側面もある。それは、将来もModifi
ed状態で使われるキャッシュブロック(メインメモリ
上に設けられたカウンタがその典型である)をClea
n−Shared状態にしてしまい、次にプロセッサが
そのデータを更新しようとするとき、Invalida
teコマンドが発行されてしまう点である。この性能劣
化を軽減する方法については、後で説明する。
の動作を説明する。
第3の実施形態のチェックポイント処理加速装置30は
正しく動作する。動作例は類似するので、ここでは、第
2の実施形態の場合について説明するにとどめる。
ラグメモリ36をオフにする。これと同期して、プロセ
ッサ10はソフトウェアを実行することにより、すべて
のキャッシュブロックをModified状態以外の状
態にする。
ト処理時)プロセッサ10は、通常のデータ処理を開始
する時点で、ビフォアイメージ取得部32を起動する。
ここでは、下記に示した順序で処理が行なわれた場合に
ついて説明する。
をA0からA1に、b番地のデータをB0からB1に、
この順で更新した。
ッシュ実行部34を起動した。
が、a番地に対してRead−Lineコマンドを発行
した。
をA1からA2に更新した。
ュブロックBLK0に対応し、BLK0は、初期状態で
はa番地のデータA0をClean−Shared状態
で保持しているとする。
る。
A1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータをClean−Shared状態で
保持しているため、a番地に対するInvalidat
eコマンドが発行される。
メモリ20は、a番地のキャッシュブロックがあれば無
効化し、終了したことを示す応答を返す。
番地に対応するフラグメモリ36がオフであるため、こ
れをオンにし、a番地に対してRead−Line−N
on−Coherentコマンドを発行する。
答する。ビフォアイメージ取得部32が、a番地とデー
タA0の組をビフォアイメージ記憶部35に格納する。
B1に更新しようとするが、キャッシュブロックBLK
0がa番地のデータA1をModified状態で保持
しているため、a番地のデータ書き戻しのためのWri
te−Lineコマンドがライトバッファに一時的に保
持され、先にb番地に対するRead−Line−wi
th−Invalidateコマンドが発行される。
答する。ビフォアイメージ取得部32は、b番地に対応
するフラグメモリ36がオフであるため、これをオンに
し、b番地とデータB0の組をビフォアイメージ記憶部
35に格納する。
番地に対するWrite−Lineコマンドが発行され
る。
る。
ャッシュフラッシュ実行部34を起動する。
は、ビフォアイメージa番地とデータA0の組を使い、
a番地に対応するフラグメモリ36をオフにするととも
に、a番地に対してRead−Lineコマンドを発行
する。
Modified状態で保持しているので、モディファ
イド応答信号線もシェアード応答信号線もアサートされ
ない。メインメモリ51がA1を応答する。BLK0の
状態は変化しない。
は、ビフォアイメージb番地とデータB0の組を使い、
b番地に対応するフラグメモリ36をオフにするととも
に、b番地に対してRead−Lineコマンドを発行
する。
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のb番地がB1
に変わる。BLK0の状態は、Clean−Share
dに変わる。
をA2に更新しようとするが、キャッシュブロックBL
K0がb番地のデータB1をClean−Shared
状態で保持しているため、a番地に対するRead−L
ine−with−Invalidateコマンドが発
行される。
含む応答を返す。ビフォアイメージ取得部32は、a番
地に対応するフラグメモリ36がオフであるため、これ
をオンにし、a番地とデータA1の組をビフォアイメー
ジ記憶部35に格納する。
は、ビフォアイメージa番地とデータA1の組を使い、
a番地に対応するフラグメモリ36をオフにし、a番地
に対してRead−Lineコマンドを発行する。
Modified状態で保持しているので、モディファ
イド応答信号線がアサートされ、メインメモリ51への
書き戻しが行なわれ、メインメモリ51のa番地はA2
に変わる。BLK0の状態は、Clean−Share
dに変わる。
0、メインメモリ51、ビフォアイメージ取得部32、
およびキャッシュフラッシュ実行部34の動作例を示し
た。
態復元部33の動作は、ビフォアイメージ記憶部35に
記憶されているビフォアイメージを、より後で格納され
たものから順に、Write−Lineコマンドを発行
するだけであるので、動作例に基づいた説明を割愛す
る。
発明の第2の実施形態のチェックポイント処理加速装置
が正しく動作することを説明した。
の機能および構成法を説明する。
フラッシュ実行部34は、ビフォアイメージ記憶部35
に格納されているビフォアイメージをFポインタを使っ
て最初に格納されたものから順に処理する方式を示し
た。元の制御方式の場合には、ビフォアイメージをどの
ような順序で処理しても大して変わりはないが、フラッ
シュ前倒し方式の場合、この処理方式は2つの長所があ
る。
態で使われるキャッシュブロックをClean−Sha
red状態にしてしまい、次にプロセッサがそのデータ
を更新しようとする時、Invalidateコマンド
が発行されてしまうという性能劣化要因を軽減できる点
である。
ージほど、キャッシュフラッシュ実行部34が処理しよ
うとする時点では、すでにModified状態のキャ
ッシュブロックが実在しない可能性が高く、キャッシュ
フラッシュ実行部34がRead−Lineコマンドを
発行しても、それによってClean−Shared状
態に変化する可能性は小さいためである。
すさである。まず、ビフォアイメージ取得部32がWポ
インタを使って最初のエントリから順に書き込むのを、
キャッシュフラッシュ実行部34がFポインタを使って
追いかけるため、キャッシュフラッシュ実行部34の終
了の判断が簡単になる。
アイメージ取得部32とキャッシュフラッシュ実行部3
4によるビフォアイメージ記憶部35へのアクセス競合
が発生する。ひとつのメモリバンクに対してリードアク
セスとライトアクセスが交互に出ると、リードアクセス
が遅くなるので、そういった状況を避けることが望まし
い。特に、複数プロセッサを備えたマルチプロセッサシ
ステムに適用する場合には、アクセス競合の回避が重要
である。
ンタとFポインタを使用することを前提に、アクセス競
合の少ないビフォアイメージ記憶部35のエントリの構
成法とその使用法を示す。
個のエントリを、図26に示したように、メモリバンク
AとメモリバンクBとに分けて構成する。ただし、2つ
のバンクメモリに分けるのは、それぞれのバンクメモリ
に同時にアクセス可能とすることと、後で示すように、
ひとつのメモリバンクに対してリードアクセスとライト
アクセスが交互に出るような状況を作らないためであ
る。
ォアイメージ取得部32が動作し、キャッシュフラッシ
ュ実行部34が動作しないときは、取得したビフォアイ
メージをメモリバンクAに格納する。このとき、メモリ
バンクAは、ライトアクセスのみとなる。
シュ実行部34を起動すると、ビフォアイメージ取得部
32は、取得したビフォアイメージをメモリバンクBに
格納する。そして、キャッシュフラッシュ実行部34
は、メモリバンクAからビフォアイメージを取り出す。
このとき、メモリバンクAはリードアクセスのみ、メモ
リバンクBはライトアクセスのみとなる。
ッシュがメモリバンクA内のビフォアイメージを全部処
理する直前にチェックポイント処理を開始し、間もなく
ビフォアイメージ取得部32を停止する。このとき、メ
モリバンクBは、ほぼライトアクセスのみとなる。
キャッシュフラッシュ実行部34の起動、およびチェッ
クポイント処理の開始をリンクすることにより、各メモ
リバンクは、ほとんど常時、リードかライトのいずれか
のモードでアクセスされることになり、ビフォアイメー
ジの格納と取り出しとが高速化できる。
シュ実行部34はプロセッサ10が起動するとしたが、
このように制御するのであれば、ビフォアイメージ取得
部32が、メモリバンクAのすべてのエントリにビフォ
アイメージを格納した時点でキャッシュフラッシュ実行
部34を起動するようにもでき、その場合、プロセッサ
10は、キャッシュフラッシュ実行部34を起動する処
理を省けるほか、メモリバンクAを容量一杯まで使用で
きるという長所がある。
は、Read−Lineコマンドの発行頻度を制御する
ことができる。元の制御方式のもとでは、キャッシュフ
ラッシュ実行部34は、プロセッサ10がほとんど動作
を停止している状況で動作するので、ビフォアイメージ
記憶部35に格納されている更新アドレスを使って、い
かに高速にRead−Lineコマンドを発行するかだ
けが重要であった。
は、データ処理の途中において、キャッシュフラッシュ
実行部34によるRead−Lineコマンドの発行頻
度が過度に高いと、通常のデータ処理がほとんど進まな
いという状況となる。
は、Read−Lineコマンドの発行頻度を少なくす
るモードと高いモードとを備えるのが望ましい。その実
現方法の例を図27に示すキャッシュフラッシュ実行部
34の処理フローに基づいて説明する。
修正したものである。すなわち、Read−Lineコ
マンドを発行し、Fポインタをインクリメントしたとこ
ろで、ビフォアイメージ取得部32が実行中であればC
サイクル待ち、そうでなければ直ちに次のビフォアイメ
ージを使ったRead−Lineコマンドを発行する。
アイメージ取得部32が最近の数10サイクルにおい
て、ビフォアイメージを取得したことがある場合には、
Cサイクル待つという方式も可能である。
の実施形態を説明する。前述した第4実施形態では、プ
ロセッサ10は、チェックポイント作成時、キャッシュ
フラッシュ実行部34が終了するのを、ただ待つことに
多くの時間を費やしていた。それを改善する方法とし
て、チェックポイント作成時に、プロセッサがmodi
fied状態のキャッシュブロックの内容をメインメモ
リ51に書き戻すキャッシュ命令を実行する方法につい
て説明する。
チェックポイント加速装置30を使ってチェックポイン
ト/ロールバック方式を実現する場合の通常のデータ処
理およびチェックポイント処理における処理フローを示
している。
ラッシュ前倒し方式と全く同一であるので説明は略す
る。
ッサ10を割込み禁止状態にして、外部機器などからの
割り込みを受け付けないようにする。
理を中断した時点でのコンテキスト、すなわちレジスタ
の内容のメインメモリ51の然るべきアドレスへの書き
込みを行なう。次に、プロセッサ10は、ひとつのキャ
ッシュブロックのタグを読み出すキャッシュ命令を実行
し、もし、modified状態であれば、そのキャッ
シュブロックの内容をメインメモリ51に書き戻すキャ
ッシュ命令を実行するという処理をN回繰り返すことに
より、N個のキャッシュブロックについてキャッシュフ
ラッシュ処理を行なう。
るキャッシュフラッシュ処理が終了していれば、キャッ
シュフラッシュ実行部34を停止させた後、メインメモ
リ51に保存したコンテキストを対応するレジスタに戻
し、割り込み禁止状態を解除することにより、通常のデ
ータ処理を再開する。
ュフラッシュ実行部34も実行を継続しているので、プ
ロセッサ10は、次にキャッシュフラッシュ実行部34
が実行を終了したか調べる。もし、実行を終了していれ
ば、メインメモリ51に保存したコンテキストを対応す
るレジスタに戻し、割込み禁止状態を解除することによ
り、通常のデータ処理を再開する。
の所要時間が短縮されることである。特に、キャッシュ
フラッシュ実行部34だけではシステムバスの転送能力
に余裕が生ずる程にシステムバス40の転送能力が非常
に大きい場合、キャッシュ命令によるキャッシュフラッ
シュを併用することで、チェックポイント処理の所要時
間が短縮できる。
イント処理を始めた時点で、チェックポイント実行部3
4を途中で停止させて、キャッシュ命令によるキャッシ
ュフラッシュ処理だけを行なう方法もある。もともと、
キャッシュ命令によるキャッシュフラッシュ処理は、キ
ャッシュフラッシュ実行部34と異なり、システムバス
40に無用なバスコマンドを発行しないという利点があ
る。したがって、プロセッサ数がある程度多く、すべて
のプロセッサが一斉にキャッシュ命令によるキャッシュ
フラッシュ処理したときに、システムバス40の転送能
力を使いきるような場合には、本方式が有効である。
チェックポイント処理をキャッシュ操作命令によるキャ
ッシュフラッシュ処理だけを行なう方法(キャッシュ命
令単独方式と呼ぶ)を前提として、チェックポイント処
理加速装置を次のように改良できる。
ト処理加速装置30では、キャッシュフラッシュ実行部
34は、最初に取得したビフォアイメージから順に使用
するものであった。しかし、キャッシュ命令単独方式の
場合、チェックポイント処理加速装置30のキャッシュ
フラッシュ実行部34は、どのビフォアイメージを使用
しても構わない。そこで、システムの性能を損なわない
ように、何度も繰り返し書き込みが発生するようなキャ
ッシュブロックに対して、その内容をメインメモリへ書
き戻すことのないようにするのが望ましい。
ッシュフラッシュ実行部34は、最初に取得したビフォ
アイメージからではなく、途中で取得したビフォアイメ
ージを使うようにすることが考えられる。というのは、
最初の方で取得したビフォアイメージに含まれるアドレ
スは、その後も頻繁に使われる可能性が、途中で取得し
たビフォアイメージに含まれるアドレスの場合より、高
いことが多いと考えられるからである。
クポイント処理加速装置によれば、プロセッサがキャッ
シュメモリ上でのデータ更新を行なったときに、ビフォ
アイメージ取得部が、その更新アドレスと更新前データ
とを取得して、ビフォアイメージ記憶部に格納する。そ
して、キャッシュフラッシュ実行部は、プロセッサから
指示されたときに、ビフォアイメージ記憶部に格納され
ているすべてのアドレスを使用して、そのアドレスを有
する更新状態のキャッシュブロックの内容をメインメモ
リに書き戻すこと要求するコマンドをシステムバスに発
行することによってキャッシュフラッシュを実行する。
一方、メインメモリ状態復元部は、プロセッサから指示
されたときに、ビフォアイメージ記憶部に格納されてい
るすべての更新前データを新しく格納したものから順
に、メインメモリの更新書き込みを要求するコマンドを
システムバスに発行することによってメインメモリをビ
フォアイメージ記憶部には何も記憶されていなかったと
きの状態に復旧する。
装置を適用すれば、特別なキャッシュメモリを備えるな
どのことを必要とせずに、標準的なプロセッサを搭載す
る計算機システム上において効率的なチェックポイント
/リカバリ機能を実現することが可能となる。また、従
来のように、プロセッサがキャッシュフラッシュ用のソ
フトウェアを実行することによってキャッシュフラッシ
ュを実施することと比較して、大幅な高速化が期待され
るため、チェックポイント/リカバリ方式の計算機全体
の性能を向上させることが可能となる。
ャッシュブロックに対応させてフラグメモリを設け、ビ
フォアイメージの重複格納を回避する、あるいは、互い
に共通部分をもたないようにアドレス範囲を設定し、こ
の設定したアドレス範囲それぞれに対応させてブロック
カウンタを設け、不要なキャッシュフラッシュ動作を回
避するといったことを行なえば、さらなる性能向上を図
れることになる。
ムのシステム構成を示す図。
示す概念図。
ローを示す図。
理フローを示す図。
ローを示す図。
ト処理加速装置の制御方式を示す図。
なう動作を説明する図。
るRead−Lineコマンドの発行を説明する図。
故障が発生した場合の動作を説明する図。
テムのシステム構成を示す図。
フローを示す図。
処理フローを示す図。
伴なう動作を説明する図。
よるRead−Lineコマンドの発行を説明する図。
に故障が発生した場合の動作を説明する図。
テムのシステム構成を示す図。
処理フローを示す図。
伴なう動作を説明する図。
よるRead−Lineコマンドの発行を説明する図。
に故障が発生した場合の動作を説明する図。
否かを判断する機構を示す図。
ォアイメージ取得部、およびキャッシュフラッシュ実行
部の動作の時間的な関係を説明する図。
ッサの処理フローを示す図。
元の制御方式と対比させて模式的に表わした図。
フォアイメージ取得部、およびキャッシュフラッシュ実
行部の動作例を示す図。
トリの構成法とその使用法を説明する図。
処理フローを示す図。
ェックポイント加速装置を使ってチェックポイント/ロ
ールバック方式を実現する場合の通常のデータ処理およ
びチェックポイント処理における処理フローを示す図。
を説明する図。
ェックポイント処理加速装置、31…バスインタフェー
ス、32…ビフォアイメージ取得部、33…メインメモ
リ状態復元部、34…キャッシュフラッシュ実行部、3
5…ビフォアイメージ記憶部、36…フラグメモリ、3
7…ブロックカウンタ制御部、38…ブロックカウン
タ、40…システムバス、50…メモリコントローラ、
51…メインメモリ。
Claims (21)
- 【請求項1】 バススヌープ機構を有するコピーバック
型のキャッシュメモリを備えた少なくとも一つ以上のプ
ロセッサと、メインメモリと、前記プロセッサと前記メ
インメモリとを接続するシステムバスとを具備してなる
計算機に適用されるチェックポイント処理加速装置であ
って、 データ更新が発生したアドレスおよびその更新前のデー
タを組としたビフォアイメージを複数個記憶するビフォ
アイメージ記憶手段と、 前記キャッシュメモリ上でデータ更新が発生したことを
示すコマンドおよびそれに対する応答を前記システムバ
スの監視によって検知し、前記キャッシュメモリ上でデ
ータ更新が発生したことを示すコマンドおよびそれに対
する応答が更新アドレスおよび更新前データを含む場合
に、そのアドレスおよび更新前データを前記ビフォアイ
メージ記憶手段に格納し、前記キャッシュメモリ上でデ
ータ更新が発生したことを示すコマンドおよびそれに対
する応答が更新の発生したアドレスを含むが更新前のデ
ータを含まない場合に、その更新前のデータを読み出す
ためのコマンドを前記キャッシュメモリ上でデータ更新
が発生したことを示すコマンドおよびそれに対する応答
に含まれるアドレスを用いて前記システムバスに発行
し、前記アドレスおよび読み出された更新前のデータを
前記ビフォアイメージ記憶手段に格納するビフォアイメ
ージ取得手段と、 前記プロセッサから指示されたときに、前記ビフォアイ
メージ記憶手段に格納されたすべてのアドレスについ
て、そのアドレスで示される更新状態のデータをメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行するキャッシュフラッシュ実行手段と、 前記プロセッサから指示されたときに、前記ビフォアイ
メージ記憶手段に格納されたすべての更新前データにつ
いて、新しく格納したものから順にメインメモリへの更
新書き込みを要求するコマンドを前記システムバスに発
行するメインメモリ状態復元手段とを具備してなること
を特徴とするチェックポイント処理加速装置。 - 【請求項2】 前記メインメモリを前記キャッシュメモ
リ内に確保されるキャッシュブロックの大きさで分割
し、この分割によって定義される複数の区画の中の少な
くとも一つ以上の区画それぞれに対応させて、オンとオ
フとの二つの状態が割り当てられるフラグメモリをさら
に設け、 前記ビフォアイメージ取得手段は、前記ビフォアイメー
ジを取得した際、その更新アドレスに対するフラグメモ
リが設けられ、かつオフのときには、前記フラグメモリ
をオンに設定するとともに前記ビフォアイメージを前記
ビフォアイメージ記憶手段に格納し、更新アドレスに対
するフラグメモリが設けられ、かつオンのときには、前
記ビフォアイメージの前記ビフォアイメージ記憶手段へ
の格納を行なわず、更新アドレスに対するフラグメモリ
が設けられていないときには、前記ビフォアイメージを
ビフォアイメージ記憶手段に格納する手段を具備し、 前記キャッシュフラッシュ実行手段は、前記ビフォアイ
メージ記憶手段からビフォアイメージを取り出して、更
新状態にあるキャッシュブロックの内容の前記メインメ
モリへの書き戻しを要求するコマンドを発行する際、そ
のアドレスに対応するフラグメモリが設けられていると
きには、そのフラグメモリをオフに設定する手段を具備
してなることを特徴とする請求項1記載のチェックポイ
ント処理加速装置。 - 【請求項3】 互いに共通部分をもたないように設定さ
れる一つ以上のアドレス範囲それぞれに対応して設けら
れ、前記アドレス範囲に属する更新状態のキャッシュブ
ロック数を保持するブロックカウンタと、 前記システムバス上のコマンドおよびその応答を監視し
て、前記キャッシュブロックが更新状態に移行すること
を検知した際、前記システムバス上のコマンドおよびそ
の応答がアクセスするアドレスに対応した前記ブロック
カウンタが存在するときは、そのブロックカウンタをイ
ンクリメントし、前記キャッシュブロックが更新状態か
らそれ以外の状態に移行すること検知した際、前記シス
テムバス上のコマンドおよびその応答がアクセスするア
ドレスに対応した前記ブロックカウンタがあるときは、
そのブロックカウンタをデクリメントするカウンタ制御
手段とをさらに具備し、 前記キャッシュフラッシュ実行手段は、前記ビフォアイ
メージ記憶手段に格納されたすべてのアドレスについ
て、そのアドレスに対応する前記ブロックカウンタがな
いか、またはその値が初期値でないときに、そのアドレ
スの更新状態のキャッシュブロックの内容をメインメモ
リに書き戻すことを要求するコマンドを前記システムバ
スに発行する手段を具備してなることを特徴とする請求
項1記載のチェックポイント処理加速装置。 - 【請求項4】 前記キャッシュメモリは、ダイレクトマ
ップで構成され、前記ブロックカウンタは、キャッシュ
ブロックと一対に設けられることを特徴とする請求項3
記載のチェックポイント処理加速装置。 - 【請求項5】 前記キャッシュメモリは、nウェイのセ
ットアソシアティブで構成され、前記ブロックカウンタ
は、n個のキャッシュブロックで形成されるグループと
一対に設けられることを特徴とする請求項3記載のチェ
ックポイント処理加速装置。 - 【請求項6】 前記メインメモリを前記キャッシュメモ
リ内に確保されるキャッシュブロックの大きさで分割
し、この分割によって定義される複数の区画の中の少な
くとも一つ以上の区画それぞれに対応させて、オンとオ
フとの二つの状態が割り当てられるフラグメモリをさら
に設け、 前記システムバス上のコマンドおよびその応答を監視し
て、前記キャッシュブロックが更新状態に移行すること
を検知した際、前記システムバス上のコマンドおよびそ
の応答がアクセスするアドレスに対応した前記フラグメ
モリが設けられているときは、そのフラグメモリをオン
に設定し、前記キャッシュブロックが更新状態からそれ
以外の状態に移行することを検知した際、前記システム
バス上のコマンドおよびその応答がアクセスするアドレ
スに対応した前記フラグメモリが設けられているとき
は、そのフラグメモリをオフに設定するフラグメモリ制
御手段をさらに具備し、 前記キャッシュフラッシュ実行手段は、前記ビフォアイ
メージ記憶手段に格納されたすべてのアドレスについ
て、そのアドレスに対応する前記フラグメモリが設けら
れていないか、またはその状態がオンのときに、そのア
ドレスの更新状態のキャッシュブロックの内容をメイン
メモリに書き戻すことを要求するコマンドを前記システ
ムバスに発行する手段を具備してなることを特徴とする
請求項1記載のチェックポイント処理加速装置。 - 【請求項7】 前記ビフォアイメージ取得手段が前記キ
ャッシュメモリ上でデータ更新が発生したことを示すコ
マンドまたはそれに対する応答を検知したときに、その
ビフォアイメージを前記ビフォアイメージ記憶手段に格
納するか否かをその更新アドレスにより判断するアドレ
ス判定手段をさらに具備してなることを特徴とする請求
項1、2、3、4、5または6記載のチェックポイント
処理加速装置。 - 【請求項8】 前記ビフォアイメージ記憶手段に格納さ
れた前記ビフォアイメージそれぞれについて、前記メイ
ンメモリ状態復元手段により前記メインメモリに書き戻
すか否かをその更新アドレスにより判断するアドレス判
定手段をさらに具備してなることを特徴とする請求項
1、2、3、4、5または6記載のチェックポイント処
理加速装置。 - 【請求項9】 前記キャッシュメモリ上でのデータ更新
が行なわれた際、その更新対象のデータが他のキャッシ
ュメモリ上で更新されて保持されているデータであると
きに、前記ビフォアイメージ取得手段は、前記ビフォア
イメージを前記ビフォアイメージ記憶手段に格納しない
ことを特徴とする請求項1、2、3、4、5または6記
載のチェックポイント処理加速装置。 - 【請求項10】 前記キャッシュメモリを構成する各キ
ャッシュブロックに割り当てられる複数の管理状態の中
に、そのキャッシュブロックが保持しているデータは他
のプロセッサのキャッシュメモリには保持されておら
ず、かつメインメモリ上と同じデータであるといったク
リーンエクスクルーシブ状態を含むものであり、かつ、
いずれかのキャッシュメモリの発行したメインメモリデ
ータの読み込み要求コマンドに対し、そのデータを保持
していると応答する応答手段をさらに具備することを特
徴とする請求項1、2、3、4、5または6記載のチェ
ックポイント処理加速装置。 - 【請求項11】 前記ビフォアイメージ取得手段は、前
記キャッシュメモリの機構を介さずに前記メインメモリ
の内容を更新するコマンドを検知したときに、そのコマ
ンドの実行を中止させ、前記キャッシュメモリの機構を
介さずに前記メインメモリの内容を更新するコマンドに
含まれる更新アドレスを用いて前記メインメモリから更
新前のデータを読み出すためのコマンドを前記システム
バスに発行し、前記アドレスと読み出された更新前のデ
ータとを前記ビフォアイメージ格納手段に格納する手段
と、前記実行を中止させたコマンドが再度発行されたと
きには、そのコマンドの実行の中止を行なわない手段と
を具備してなることを特徴とする請求項1、2、3、
4、5または6記載のチェックポイント処理加速装置。 - 【請求項12】 前記ビフォアイメージ取得手段は、前
記プロセッサから指示されたアドレス範囲について、前
記メインメモリから更新前のデータを読み出すためのコ
マンドを前記システムバスに発行し、前記アドレスとそ
の読み出された更新前のデータを組としたビフォアイメ
ージを前記ビフォアイメージ格納手段に格納する手段を
具備してなることを特徴とする請求項1、2、3、4、
5または6記載のチェックポイント処理加速装置。 - 【請求項13】 前記ビフォアイメージ取得手段および
キャッシュフラッシュ実行手段は、並行して実行可能で
あることを特徴とする請求項1、2または3記載のチェ
ックポイント処理加速装置。 - 【請求項14】 前記キャッシュフラッシュ実行手段
は、前記ビフォアイメージ記憶手段に格納されたビフォ
アイメージの中の最も早い時点で取得されたものから順
に処理することを特徴とする請求項13記載のチェック
ポイント処理加速装置。 - 【請求項15】 前記ビフォアイメージ記憶手段は、互
いに独立した複数のメモリで構成されることを特徴とす
る請求項13記載のチェックポイント処理加速装置。 - 【請求項16】 前記ビフォアイメージ記憶手段は、互
いに独立した第1および第2のメモリを含んで構成さ
れ、 前記ビフォアイメージ取得手段は、前記キャッシュフラ
ッシュ実行手段が動作していないときには、前記取得し
たビフォアイメージを前記第1のメモリに格納し、前記
キャッシュフラッシュ実行手段が動作を開始したときに
は、前記取得したビフォアイメージを前記第2のメモリ
に格納する手段を具備し、 前記キャッシュフラッシュ実行手段は、前記第1のメモ
リに格納されたビフォアイメージから処理する手段を具
備してなることを特徴とする請求項13記載のチェック
ポイント処理加速装置。 - 【請求項17】 前記キャッシュフラッシュ実行手段
は、前記ビフォアイメージ取得手段によって前記第1の
メモリのすべてに前記ビフォアイメージが格納されたと
きに起動されることを特徴とする請求項16記載のチェ
ックポイント処理加速装置。 - 【請求項18】 前記ビフォアイメージ記憶手段の残容
量が予め定められた量を下回ったことを前記プロセッサ
に通知する通知手段をさらに具備してなることを特徴と
する請求項1、2、3、4、5または6記載のチェック
ポイント処理加速装置。 - 【請求項19】 前記キャッシュフラッシュ実行手段
は、前記ビフォアイメージ取得手段が実行中であるとき
に、更新状態のキャッシュブロックの内容を前記メイン
メモリへ書き戻すことを要求するコマンドの発行頻度を
予め定められた値以内に抑制し、前記ビフォアイメージ
取得手段が停止したときに、前記コマンドの発行頻度を
高くする手段を具備してなることを特徴とする請求項1
3記載のチェックポイント処理加速装置。 - 【請求項20】 バススヌープ機構を有するコピーバッ
ク型のキャッシュメモリを備えた少なくとも一つ以上の
プロセッサと、メインメモリと、請求項1乃至19のい
ずれかに記載のチェックポイント処理加速装置と、前記
プロセッサと前記メインメモリと前記チェックポイント
処理加速装置とを接続するシステムバスを備える計算機
システムにおけるデータ処理方法であって、 前記チェックポイント処理加速装置のビフォアイメージ
取得手段を起動した後、通常のデータ処理を実行するデ
ータ処理実行ステップと、前記データ処理実行ステップを一時中断して、すべての
前記 プロセッサが同期して実行する、データ処理中のコ
ンテキストをメインメモリに格納して、前記チェックポ
イント処理加速装置のキャッシュフラッシュ実行手段を
起動し、前記チェックポイント処理加速装置のキャッシ
ュフラッシュ実行手段の実行終了後、前記データ処理実
行ステップを再開するチェックポイント作成ステップ
と、 故障が発生したときに、すべての前記プロセッサが同期
して前記キャッシュメモリのすべてのキャッシュブロッ
クを無効化した後、前記チェックポイント処理加速装置
のメインメモリ状態復元手段を起動することにより前記
メインメモリの 状態を直前に採取したチェックポイント
時点の状態に復元し、その後前記データ処理実行ステッ
プを再開するロールバック/リカバリステップとを有す
ることを特徴とするデータ処理方法。 - 【請求項21】 バススヌープ機構を有するコピーバッ
ク型のキャッシュメモリを備えた少なくとも一つ以上の
プロセッサと、メインメモリと、請求項1乃至19のい
ずれかに記載のチェックポイント処理加速装置と、前記
プロセッサと前記メインメモリと前記チェックポイント
処理加速装置とを接続するシステムバスとを備える計算
機システムにおけるデータ処理方法であって、 前記チェックポイント処理加速装置のビフォアイメージ
取得手段を起動した後、通常のデータ処理を実行すると
共に、前記チェックポイント処理加速装置のキャッシュ
フラッシュ実行手段の起動も行うデータ処理実行ステッ
プと、 前記データ処理実行ステップを一時中断して、すべての
前記プロセッサが同期して実行する、データ処理中のコ
ンテキストをメインメモリに格納して、前記チェックポ
イント処理加速装置のキャッシュフラッシュ実行手段の
実行終了後、前記データ処理実行ステップを再開するチ
ェックポイント作成ステップと、 故障が発生したときに、すべての前記プロセッサが同期
して前記キャッシュメモリのすべてのキャッシュブロッ
クを無効化した後、前記チェックポイント処理加速装置
のメインメモリ状態復元手段を起動することにより前記
メインメモリの状態を直前に採取したチェックポイント
時点の状態に復元し、その後前記データ処理実行ステッ
プを再開するロールバック/リカバリステップとを有す
ることを特徴とするデータ処理方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100856626B1 (ko) * | 2002-12-24 | 2008-09-03 | 엘지노텔 주식회사 | 캐시 플러시 시스템 및 방법 |
Families Citing this family (44)
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)
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 | 株式会社東芝 | キャッシュフラッシュ装置 |
-
1996
- 1996-09-04 JP JP8234321A patent/JP2916420B2/ja not_active Expired - Fee Related
-
1997
- 1997-03-03 TW TW086102499A patent/TW384427B/zh not_active IP Right Cessation
- 1997-04-18 KR KR1019970014318A patent/KR100233205B1/ko not_active IP Right Cessation
- 1997-05-30 CN CN97113166A patent/CN1111790C/zh not_active Expired - Fee Related
- 1997-08-27 US US08/917,923 patent/US6088773A/en not_active Expired - Lifetime
- 1997-08-29 DE DE69703574T patent/DE69703574T2/de not_active Expired - Fee Related
- 1997-08-29 EP EP97115030A patent/EP0834811B1/en not_active Expired - Lifetime
Cited By (1)
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 |