JPH07271624A - フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法 - Google Patents

フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法

Info

Publication number
JPH07271624A
JPH07271624A JP6060524A JP6052494A JPH07271624A JP H07271624 A JPH07271624 A JP H07271624A JP 6060524 A JP6060524 A JP 6060524A JP 6052494 A JP6052494 A JP 6052494A JP H07271624 A JPH07271624 A JP H07271624A
Authority
JP
Japan
Prior art keywords
memory
processor
cache
checkpoint
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6060524A
Other languages
English (en)
Inventor
Shigeo Kamiya
茂雄 神谷
Takahiro Fujii
高広 藤井
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 JP6060524A priority Critical patent/JPH07271624A/ja
Publication of JPH07271624A publication Critical patent/JPH07271624A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】チェックポイント処理でのオーバヘッドの改善
を図り、フォールトトレラント性を損なわずに効率良く
キャッシュ内容を2重化メモリに反映する。 【構成】フォールトトレラント計算機システムにおい
て、プロセッサエレメント内のキャッシュの更新時に
は、その更新の都度、その更新内容をライトスルー方式
で一方のメモリエレメント(M0 )に反映させる逐次書
き出し処理wM0 を行い、もう一方のメモリエレメント
(M1 )に対しては、チェックポイント処理時に、当該
キャッシュのすべての更新内容を一括して書き出す一括
書き出し処理(キャッシュフラッシュ処理)WM1 を行
う構成とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、フォールトトレラント
計算機システムにおける2重化メモリへのキャッシュフ
ラッシュ方法に関する。
【0002】
【従来の技術】フォールトトレラント計算機システムを
実現する方式の一つにチェックポイントリスタート方式
がある。チェックポイントリスタート方式とは、プロセ
ッサで処理を行うときに、処理の実行中に適宜チェック
ポイント(CP)をとり、処理中のプロセッサで故障が
起こると、直前のチェックポイントの時点から、他のプ
ロセッサで処理を再開することである。このチェックポ
イントリスタート方式での処理の流れを図12に示す。
【0003】図12において、プロセッサ#1は、CP
1→CP2→CP3のように、適宜チェックポイントを
とりながら動作している。チェックポイントとは、後述
するように、他のプロセッサが処理を引き継ぐことので
きる十分な情報をメモリに残すことである。図12で
は、プロセッサ#1がCP3をとった後に、当該プロセ
ッサ#1に故障が発生し、プロセッサ#2が、そのCP
3でプロセッサ#1によって残された引き継ぎ情報を得
て、処理を継続している状態が示されている。
【0004】この処理の継続を可能とするために、プロ
セッサは、正常動作中にチェックポイントをとって、デ
ータやプロセッサの内部状態などの一貫性のとれた情報
をメモリに保持しておくチェックポイント処理を行う必
要がある。
【0005】以下、チェックポイント処理を、図13を
参照して説明する。図13において、キャッシュ(キャ
ッシュメモリ)Cを持つプロセッサMPUにより構成さ
れているプロセッサエレメントPは、2重化された2つ
のメモリMEM1 ,MEM2 とバスBにより接続されて
いる。
【0006】プロセッサMPUは、データ処理を行うと
き、直接メモリMEM1 ,MEM2の内容を操作せず、
当該メモリMEM1 ,MEM2 (のうちのいずれか一
方)の内容をプロセッサエレメントP内のキャッシュC
に読み込み、そのキャッシュC内のデータに対して操作
(データ処理)を行う。このため、キャッシュC内に
は、データ処理により値が更新された結果、メモリME
M1 ,MEM2 上の対応するデータと異なった内容とな
っている領域(これを、ダーティ領域と呼ぶ)が発生す
る。図13(a)は、この状態を示すもので、キャッシ
ュC内のダーティ領域には、斜線を施してある。
【0007】プロセッサMPUは、キャッシュCの上記
ダーティ領域が一定の閾値を越えたなどの条件が成立し
たことをもって、ソフトウェアの指示により、このキャ
ッシュC内のダーティ領域の全データ、即ちキャッシュ
C内の更新された全データを、一括してメモリMEM1
,MEM2 に反映させる。これをキャッシュフラッシ
ュと呼ぶ。
【0008】プロセッサMPUは、このキャッシュフラ
ッシュと同時に、当該プロセッサMPUの内部状態もメ
モリMEM1 ,MEM2 に保存して、当該プロセッサM
PUが故障した場合に、このメモリMEM1 ,MEM2
の内容をもとに、他のプロセッサで処理を継続できるよ
うにしておく。
【0009】以上がチェックポイント処理である。プロ
セッサMPUは、上記のチェックポイント処理では、図
13(b)に示すように、まず2重化したメモリMEM
1 ,MEM2 の一方、例えばメモリMEM1 にキャッシ
ュCの(ダーティ領域の)内容をすべて書き出す。そし
てプロセッサMPUは、メモリMEM1 への書き出しが
正常に終了した後に、図13(c)に示すように、もう
一方のメモリMEM2 に対して書き出すという操作を行
う。
【0010】この方式では、メモリを2重化しているた
めに、どちらかのメモリに故障が起こっても、もう一方
のメモリは正常であると期待できる。また、チェックポ
イント時には、キャッシュCの内容及びプロセッサMP
Uの内部状態を、プロセッサPから2重化したメモリM
EM1 ,MEM2 に順次書き出すことによって、その書
き出し中に当該プロセッサに故障が起こったとしても、
処理を継続するすることが可能となる。即ち、図14
(a)に示すように、プロセッサMPUからメモリME
M1 への書き出し中に当該プロセッサMPUに故障が起
きても、或いはメモリMEM1 への書き出しが正常終了
した後、図14(b)に示すように、もう一方のメモリ
MEM2 への書き出し中に当該プロセッサMPUに故障
が起きても、そのときの書き出し先であったメモリ内容
は途中まで更新されているものの、書き出しが未だ行わ
れていないメモリMEM2 (図14(a)参照)、或い
は書き出しが正常終了したメモリMEM1 (図14
(b)参照)は完全な状態で残っているため、バスBに
つながる他のプロセッサ(図示せず)によって処理を継
続することが可能となる。但し、図14(a)の場合に
は、プロセッサ故障が発生したチェックポイントの更に
1つ前のチェックポイント時点から処理が再開されるこ
とになる。
【0011】
【発明が解決しようとする課題】上記したように従来の
フォールトトレラント計算機システムでは、プロセッサ
エレメント内のキャッシュのダーティ領域が一定の閾値
を越えたなどの条件が成立したことをもって、ソフトウ
ェアの指示によりチェックポイント処理を開始し、プロ
セッサエレメントからメモリエレメントへキャッシュ内
容をフラッシュするときに、2重化された2つのメモリ
に対して順次書き出しを行う方法を適用していた。
【0012】この従来方法によれば、プロセッサエレメ
ントからメモリへの書き出し中に当該プロセッサエレメ
ントが故障しても、もう一方のメモリが完全な状態で残
っているため、そのメモリ内容をもとに、他のプロセッ
サエレメントによって処理が継続できる。
【0013】しかしながら、チェックポイント処理で、
プロセッサエレメントから2重化された2つのメモリへ
の順次書き出しを行っている期間中、当該プロセッサは
他の処理は行えず、したがってチェックポイント処理で
のオーバヘッドが大きくなり、システムの性能に悪影響
を与えるという問題があった。
【0014】本発明は上記事情を考慮してなされたもの
でその目的は、2重化メモリを持つフォールトトレラン
ト計算機システムにおけるチェックポイント処理でのオ
ーバヘッドが改善でき、フォールトトレラント性を損な
わずに効率良くキャッシュ内容を2重化メモリに反映さ
せることができる2重化メモリへのキャッシュフラッシ
ュ方法を提供することにある。
【0015】
【課題を解決するための手段及び作用】本発明は、フォ
ールトトレラント計算機システムにおいて、処理中のプ
ロセッサエレメントから自エレメント内のキャッシュの
更新を行う際に、その更新内容を同時に2重化したメモ
リの一方に反映させ、他方のメモリに対しては、チェッ
クポイント処理時に、当該キャッシュのすべての更新内
容を一括して書き出すキャッシュフラッシュを行うこと
を特徴とするものである。
【0016】このような構成においては、チェックポイ
ント処理期間以外、即ち通常の動作期間では、処理中の
プロセッサエレメントから自エレメント内のキャッシュ
の更新を行う際に、その更新内容を同時に2重化したメ
モリの一方に反映させるライトスルー方式による更新処
理(逐次書き出し)が行われる。このため、チェックポ
イント処理時には、この2重化メモリの一方へのキャッ
シュフラッシュ処理は不要となり、2重化メモリの他方
に対してのみキャッシュフラッシュを行うだけで済む。
【0017】したがって、チェックポイント処理時に、
従来のように2重化メモリの両方にキャッシュフラッシ
ュを行うものに比べて、チェックポイント処理でのオー
バヘッドを少なくできる。しかも、例えば処理中のプロ
セッサエレメントに故障が発生したとしても、チェック
ポイント処理時以外であれば、直前のチェックポイント
処理で行われた上記他方のメモリに対するキャッシュフ
ラッシュ処理で、当該他方のメモリの内容はそのチェッ
クポイントの時点の状態に保持されているため、そのチ
ェックポイントの時点から、他のプロセッサエレメント
により処理を継続することができる。同様に、チェック
ポイント処理中であれば、上記一方のメモリに対する逐
次書き出しにより、当該一方のメモリの内容はそのチェ
ックポイントの時点の状態に保持されているため、その
チェックポイントの時点から、他のプロセッサエレメン
トにより処理を継続することができる。なお、2重化メ
モリの両方に対して逐次書き出しを行うことにより、チ
ェックポイント処理のオーバヘッドを軽減することが可
能であるが、処理中のプロセッサエレメントに例えばチ
ェックポイント処理時以外で故障が発生した場合には、
直前のチェックポイントの時点の状態を保持している2
重化メモリが存在しなくなるため、処理の継続ができな
くなる。
【0018】このように、上記の構成においては、チェ
ックポイント処理でのオーバヘッドが改善でき、フォー
ルトトレラント性を損なわずに効率良くキャッシュ内容
を2重化メモリに反映させることができる。
【0019】また、本発明は、2重化メモリのいずれか
一方の側のメモリエレメントに故障が発生した場合に、
その故障を検出した処理中のプロセッサエレメントによ
り、もう一方の正常なメモリエレメントをアクセス禁止
状態に設定することによって、当該正常なメモリエレメ
ントに対するすべてのプロセッサエレメントからのメモ
リアクセスを禁止するようにしたことをも特徴とする。
【0020】このような構成においては、正常なメモリ
エレメントのメモリ内容を保護することができるため、
メモリの交換等によって故障したメモリエレメントが使
用可能状態となった場合には、正常なメモリエレメント
のアクセス禁止状態を解除して、そのメモリ内容を故障
回復後のメモリエレメント側のメモリにコピーすること
により、正しい2重化メモリ構成に復旧して処理を再開
できる。
【0021】また、本発明は、2重化メモリのいずれか
一方の側のメモリエレメントに故障が発生した場合に、
その故障を検出した処理中のプロセッサエレメントから
他のすべてのプロセッサエレメントに対して、その故障
メモリエレメントの情報を通知し、以後各プロセッサエ
レメントから故障した2重化メモリへの書き出しは、正
常な2重化メモリに対して行わせることを特徴とする。
【0022】このような構成においては、故障メモリエ
レメントの回復が図られるまでの間、2重化メモリ構造
はとれないものの、正常なメモリエレメントを用いた運
転、即ち縮退運転が可能となる。
【0023】
【実施例】以下、本発明を、プロセッサエレメント数
2、メモリエレメント数2のフォールトトレラント計算
機システムに適用した実施例につき、図面を参照して説
明する。 [第1の実施例]図1は本発明の2重化メモリへのキャ
ッシュフラッシュ方法を適用するフォールトトレラント
計算機システムの第1の実施例を示すブロック構成図で
ある。
【0024】図1において、P0 ,P1 はプロセッサエ
レメントである。プロセッサエレメントP0 ,P1 は、
同エレメントP0 ,P1 の中枢をなすプロセッサMPU
0 ,MPU1 と、キャッシュ(キャッシュメモリ)C0
,C1 とを有する。プロセッサエレメントP0 ,P1
は、それぞれがシステムバスBに独立にアクセスできる
ようになっている。
【0025】M0 ,M1 は各プロセッサエレメントP0
,P1 からシステムバスBを介してアクセス可能なメ
モリエレメントである。メモリエレメントM0 にはメモ
リ領域A0 が設けられ、メモリエレメントM1 にはメモ
リエレメントM0 内のメモリ領域A0 と同じ内容を保持
するメモリ領域A1 が設けられる。メモリ領域A0 は2
重化メモリの一方をなし、メモリ領域A1 は当該2重化
メモリの他方をなしている。メモリエレメントM0 ,M
1 には、当該エレメントM0 ,M1 (のメモリ領域A0
,A1 )がアクセス禁止状態にあることを示す情報
(アクセス禁止情報)を設定するためのアクセス禁止情
報記憶部R0 ,R1 が置かれる。このアクセス禁止情報
記憶部R0 ,R1 は、レジスタなどの記憶素子で構成さ
れる。
【0026】次に、図1の構成における動作を説明す
る。 (a)正常時におけるプロセッサエレメントの動作 まず、正常時におけるプロセッサエレメントの動作を、
プロセッサエレメントP0 を例に、(a1)データ読み
出し時、(a2)データ更新時、(a3)チェックポイ
ント処理時のそれぞれについて説明する。
【0027】(a1)データ読み出し時 プロセッサエレメントP0 (内のプロセッサMPU0 )
は、処理を行う際に、目的とするアドレスのメモリデー
タが自エレメントP0 内のキャッシュC0 上に存在する
(キャッシュヒット時)ならば、当該キャッシュC0 か
ら目的データを取り出して利用する。
【0028】これに対し、目的データがキャッシュC0
上に存在しない(ミスヒット時)ならば、プロセッサエ
レメントP0 (内のプロセッサMPU0 )は、例えばメ
モリエレメントM0 のメモリ領域A0 から自エレメント
P0 内のキャッシュC0 に目的とするアドレスのメモリ
データ(を含む1ライン分のデータ)をシステムバスB
を介して読み込み、そのデータを利用する。
【0029】以上のデータ読み出し時の動作は、従来と
同様である。 (a2)データ更新時 次に、データ更新時の動作を図2のフローチャートを参
照して説明する。
【0030】プロセッサエレメントP0 (内のプロセッ
サMPU0 )は、メモリデータの更新時には、メモリエ
レメントM0 に対して、ライトスルー方式でメモリ領域
A0上の対応するデータ内容を更新する。即ちプロセッ
サエレメントP0 は、自エレメントP0 内のキャッシュ
C0 のデータを更新する際(ステップS1)、同時にメ
モリエレメントM0 をアクセスして同エレメントM0 の
メモリ領域A0 にデータの更新を反映させる逐次書き出
しを行う(ステップS2)。これが、ライトスルー方式
である。
【0031】一方、メモリエレメントM1 に対しては、
プロセッサエレメントP0 は何もしない。上記したメモ
リエレメントM0 に対してライトスルー方式を適用した
場合、キャッシュC0 の内容とメモリエレメントM0 の
メモリ領域A0 の対応する内容とは常に一貫性が維持さ
れる。しかし、メモリエレメントM1 に対してはライト
スルー方式を適用しないため、キャッシュC0 の内容と
メモリエレメントM1 のメモリ領域A1 の対応する内容
との一貫性は保証されない。
【0032】そこでプロセッサエレメントP0 は、上記
ステップS1においてキャッシュC0 のデータを更新す
る際には、(メモリエレメントM0 に対してはライトス
ルー方式を適用しながらも)従来と同様に、同データ
(を含む1ライン分)を(メモリへの書き戻しが必要
な)ダーティ扱いとする(通常は、その旨を示すフラグ
を付す)。
【0033】(a3)チェックポイント処理時 次に、チェックポイント処理時の動作を図3のフローチ
ャートを参照して説明する。
【0034】プロセッサエレメントP0 (内のプロセッ
サMPU0 )は、キャッシュC0 のダーティ領域が一定
の閾値を越えた場合、従来と同様にチェックポイント処
理を開始する。但し、その処理内容は、以下に述べるよ
うに従来とは異なる。
【0035】まずプロセッサエレメントP0 は、自エレ
メントP0 内のプロセッサMPU0の内部状態を、メモ
リエレメントM0 のメモリ領域A0 に書き出す(ステッ
プS11)。この内部状態の書き出し終了時に、プロセ
ッサエレメントP0 は、メモリ領域A0 中の所定位置に
設定されている特定フラグf0 (図示せず)をONし、
書き出した内部状態とメモリ領域A0 の内容との間に一
貫性があることを示す。
【0036】次にプロセッサエレメントP0 は、メモリ
エレメントM1 に対し、ノンライトスルー方式で、一括
して当該エレメントM1 のメモリ領域A1 の内容を更新
する(ステップS12)。即ちプロセッサエレメントP
0 は、自エレメントP0 内のキャッシュC0 のダーティ
領域の内容をメモリエレメントM1 のメモリ領域A1に
すべて書き戻し、キャッシュC0 の内容とメモリ領域
A1 の対応する内容とに一貫性を持たせる。この一括更
新(キャッシュフラッシュ)に際し、プロセッサエレメ
ントP0 は、メモリ領域A1 中の所定位置に設定されて
いる(先のメモリ領域A0 中のフラグf0 に対応する)
特定フラグf1 (図示せず)をOFFしておく。
【0037】次にプロセッサエレメントP0 は、プロセ
ッサMPU0 の内部状態を、今度はメモリエレメントM
1 のメモリ領域A1 に書き出す(ステップS13)。こ
の内部状態の書き出し終了時に、プロセッサエレメント
P1 は、メモリエレメントM1 のメモリ領域A1 中の上
記フラグf1 をONすると共に、メモリエレメントM0
のメモリ領域A0 中の上記フラグf0 をOFFする。
【0038】このように本実施例では、メモリエレメン
トM0 に対しては、前記したようにライトスルー方式を
適用し、キャッシュC0 のデータを更新する都度、その
データの更新をメモリエレメントM0 のメモリ領域A0
に反映させているため、上記ステップS12に相当する
操作を行っていない。
【0039】以上の(a2),(a3)の動作からなる
キャッシュフラッシュ処理を、従来方法と比較して、図
4に示す。図中、T1 は従来方法でプロセッサがデータ
を処理している時間、T2 は本実施例方法でプロセッサ
がデータを処理している時間を示す。また、WM0 はプ
ロセッサからメモリエレメントM0 への一括書き出し処
理(キャッシュフラッシュ処理)、WM1 はプロセッサ
からメモリエレメントM1 への一括書き出し処理、wM
0 はプロセッサからメモリエレメントM0 への逐次書き
出し処理を示す。なお、プロセッサからメモリエレメン
トM0 ,M1 へのプロセッサ内部状態の書き出し処理は
省略されている。
【0040】図4(及び[従来の技術]の欄の記載内
容)から明らかなように、従来は、2つのメモリに対し
て、チェックポイント時に、ノンライトスルーで一括し
て書き出しを行っていた。このチェックポイント処理の
期間中は、プロセッサは他の処理を行えない。その理由
は、キャッシュフラッシュが完了する前にキャッシュ内
容が更新された場合、キャッシュとメモリとの間の一貫
性が維持できなくなるためである。
【0041】一方、本実施例方法では、メモリエレメン
トM0 に対するメモリ内容の更新をライトスルー方式で
行っているため、メモリエレメントM0 に対する書き出
しが逐次行われる。一般に、この書き出しに際しては、
その対象データがプロセッサエレメント(P0)内の図示
せぬバッファに一時記憶され、メモリエレメントM0に
対する実際の書き出しは、専用の入出力機構(図示せ
ず)によってプロセッサ(MPU1 )から独立に行われ
る。したがって、実際のメモリエレメントM0 へのデー
タ書き出し中も、プロセッサ(MPU1 )は並列して処
理を続けることができる。
【0042】このため、プロセッサにおいて同一処理を
行う場合の、本実施例方法におけるプロセッサの処理時
間T2 は、従来方法における処理時間T1 とほぼ同等で
ある。
【0043】一方、チェックポイント処理については、
従来方法では、キャッシュ(のダーティ領域)の内容
を、メモリエレメントM0 とメモリエレメントM1 へ書
き出すというように、2回の一括書き出しが必要となる
のに対し、本実施例方法では、メモリエレメントM1 へ
の1回の書き出しで済むため、チェックポイント処理に
よるオーバヘッドが改善される。
【0044】次に、故障発生時における動作を、(b)
プロセッサエレメント故障時、(c)メモリエレメント
故障時のそれぞれについて説明する。 (b)プロセッサエレメント故障時 まず、プロセッサエレメント故障時の動作を図5のフロ
ーチャートを参照して説明する。
【0045】今、プロセッサエレメントP0 が故障した
ものとする。プロセッサエレメントP0 は、自身の故障
を内部の故障検出機構により検出してプロセッサエレメ
ントP1 に通知(3台以上のプロセッサエレメントを備
えたシステムであれば、例えば自プロセッサエレメント
の次のエレメント番号のプロセッサエレメントに通知)
する。このプロセッサエレメントP0 の故障検出は、例
えばプロセッサエレメントP0 内のプロセッサMPU0
を2重化して同一処理を行わせ、その処理結果を比較す
るとか、プロセッサエレメントP0 内でエラー処理ルー
チンが動いたことを検出するといった、周知の方法によ
り実現される。また、プロセッサエレメントP0 ,P1
間で適宜通信を行うことにより、相手プロセッサエレメ
ントの故障を検出するようにしても良い。
【0046】プロセッサエレメントP1 は、プロセッサ
エレメントP0 が故障したことを検出すると、その故障
が、(b1)チェックポイント処理時以外(チェックポ
イント処理でのメモリエレメントM0 へのプロセッサ内
部状態の書き出し時を含む)か、(b2)チェックポイ
ント処理時(におけるメモリエレメントM1 への書き出
し時)のときかを判断する(ステップS21)。この判
断は、メモリエレメントM0 ,M1 のメモリ領域A0 ,
A1 中のフラグf0 ,f1 の状態をもとに行われ、f0
=OFF,f1 =ONであれば、上記(b1)の状態で
のプロセッサエレメントの故障が、f0 =ON,f1 =
OFFであれば、上記(b2)の状態でのプロセッサエ
レメントの故障が、それぞれ判断される。
【0047】プロセッサエレメントP1 は、上記の判断
結果に応じて、以下に述べるように処理を引き継ぐ。 (b1)チェックポイント処理時以外のときのプロセッ
サエレメント故障 この場合、メモリエレメントM0 では、故障したプロセ
ッサエレメントP0 によって既に一部データが更新され
ており、直前のチェックポイント(CPi-1 とする)で
メモリエレメントM0 に格納されたプロセッサエレメン
トP0 の内部状態とメモリ内容との一貫性がない状態に
なっている。一方、メモリエレメントM1 では、チェッ
クポイントCPi-1 でメモリエレメントM1 に格納され
たプロセッサエレメントP0 の内部状態とメモリ内容と
の一貫性がとれている。
【0048】そこでプロセッサエレメントP1 は、メモ
リエレメントM0 の内容をすべて捨て、メモリエレメン
トM1 (のメモリ領域A1 )の内容を当該メモリエレメ
ントM0 (のメモリ領域A0 )にコピーした後(ステッ
プS22)、プロセッサエレメントP0 のプロセッサM
PU0 の内部状態を読み込み、直前のチェックポイント
CPi-1 の時点から処理を継続する(ステップS2
3)。
【0049】(b2)チェックポイント処理時のときの
プロセッサエレメント故障 この場合、メモリエレメントM1 ではデータ更新中のた
め、当該メモリエレメントM1 に完全なデータを書き出
すことができなくなる。
【0050】そこでプロセッサエレメントP1 は、メモ
リエレメントM1 の内容をすべて捨て、メモリエレメン
トM0 (のメモリ領域A0 )の内容を当該メモリエレメ
ントM1 (のメモリ領域A1 )にコピーした後(ステッ
プS24)、プロセッサエレメントP0 のプロセッサM
PU0 の内部状態を読み込み、プロセッサエレメントP
0 の故障が発生したチェックポイント(CPi とする)
の時点から処理を継続する(ステップS25)。
【0051】(c)メモリエレメント故障時 次に、メモリエレメント故障時の動作を、(c1)チェ
ックポイント処理時以外のときのメモリエレメント故障
と、(c2)チェックポイント処理時のときのメモリエ
レメント故障とに大別して、図6乃至図9を参照して説
明する。
【0052】(c1)チェックポイント処理時以外のと
き チェックポイント処理時以外でメモリエレメント故障が
発生した場合、その故障メモリエレメントがM0 である
かM1 であるかによって動作が異なる。
【0053】今、チェックポイント処理時以外のときに
メモリエレメントがM0 が故障したことを、プロセッサ
エレメントP0 が検出したものとする。この場合、プロ
セッサエレメントP0 は、当該プロセッサエレメントM
0 に対する逐次書き出し処理中であれば、図6(a)に
示すように、その処理を直ちに中止する。そしてプロセ
ッサエレメントP0 は、図6(b)に示すように、メモ
リエレメントM1 のアクセス禁止状態記憶部R1 にアク
セス禁止情報を書き込み、当該メモリエレメントM1 に
対するアクセスを禁止してメモリ内容を保護する。
【0054】次に、チェックポイント処理時以外のとき
にメモリエレメントがM1 が故障したことを、プロセッ
サエレメントP0 が検出したものとする。この場合、プ
ロセッサエレメントP0 は、自エレメントP0 内のプロ
セッサMPU0 の内部状態をメモリエレメントM0 のメ
モリ領域A0 に書き出して処理を中止する。もし、メモ
リエレメントM0 に対する逐次書き出し処理中であれ
ば、図7(a)に示すように、その逐次書き出しが終了
した後、上記したプロセッサ内部状態のメモリエレメン
トM0 への書き出しを行い、しかる後に処理を中止す
る。そしてプロセッサエレメントP0 は、図7(b)に
示すように、メモリエレメントM0 のアクセス禁止状態
記憶部R0 にアクセス禁止情報を書き込み、当該メモリ
エレメントM0 に対するアクセスを禁止してメモリ内容
を保護する。
【0055】上記のアクセス禁止状態は、故障メモリの
交換などによって2重化のためのメモリ領域Ai (iは
0又は1)が確保できたときに、保護していたメモリエ
レメントMj (jは1又は0)のアクセス禁止状態記憶
部Rj の内容(アクセス禁止情報)をクリアすることに
より解除される。そして、保護しておいたメモリ領域A
j の内容をメモリ領域Ai にコピーし、メモリの2重化
をして処理を再開する。
【0056】(c2)チェックポイント処理時のとき チェックポイント処理中にメモリエレメント故障が発生
した場合も、前記したチェックポイント処理時以外のメ
モリエレメント故障の場合と同様に、その故障メモリエ
レメントがM0 であるかM1 であるかによって動作が異
なる。
【0057】今、チェックポイント処理中にメモリエレ
メントがM0 が故障したことを、プロセッサエレメント
P0 が検出したものとする。この場合、プロセッサエレ
メントP0 は、プロセッサエレメントM1 に対するキャ
ッシュフラッシュ処理(及びプロセッサ内部状態の書き
出し処理)が正常に終了した時点で、図8(a)に示す
ように、その処理を中止する。そしてプロセッサエレメ
ントP0 は、図8(b)に示すように、メモリエレメン
トM1 のアクセス禁止状態記憶部R1 にアクセス禁止情
報を書き込み、当該メモリエレメントM1 に対するアク
セスを禁止してメモリ内容を保護する。
【0058】次に、チェックポイント処理中にメモリエ
レメントがM1 が故障したことを、プロセッサエレメン
トP0 が検出したものとする。この場合、プロセッサエ
レメントP0 は、図9(a)に示すように、プロセッサ
エレメントM1 に対するキャッシュフラッシュ処理を直
ちに中止する。そしてプロセッサエレメントP0 は、図
9(b)に示すように、メモリエレメントM0 のアクセ
ス禁止状態記憶部R1にアクセス禁止情報を書き込み、
当該メモリエレメントM0 に対するアクセスを禁止して
メモリ内容を保護する。
【0059】上記のアクセス禁止状態の解除は、前記し
た(c1)チェックポイント処理時以外のときと同様で
ある。以上は、メモリエレメントが故障した場合に、2
重化したメモリ内容を持つもう一方のメモリエレメント
をアクセス禁止状態にして、そのメモリ内容を保護する
ようにしたが、これに限るものではなく、2重化メモリ
構造をとらない状態で縮退運転することも可能である。 [第2の実施例]そこで、このメモリエレメント故障時
の縮退運転方式を、前記第1の実施例と同様のシステム
構成のフォールトトレラント計算機システムに適用した
第2の実施例につき、図面を参照して説明する。
【0060】図10は本発明の2重化メモリへのキャッ
シュフラッシュ方法を適用するフォールトトレラント計
算機システムの第2の実施例を示すブロック構成図であ
る。なお、図1と同一部分には同一符号を付してある。
【0061】図10において、プロセッサエレメントP
10,P11は、プロセッサMPU10,MPU11と、キャッ
シュC0 ,C1 とを有する他、システム内の故障メモリ
エレメントを示す情報を格納するための故障情報記憶部
F0 ,F1 を有する。一方、メモリエレメントM10,M
11は、2重化されたメモリ領域A0 ,A1 を有する。こ
のメモリエレメントM10,M11には、前記第1の実施例
におけるメモリエレメントM0 ,M1 とは異なって、ア
クセス禁止情報記憶部R0 ,R1 が含まれていない。
【0062】この図10の構成における動作が、図1の
構成(第1の実施例)における動作と異なる点は、メモ
リエレメント故障時の動作であり、正常時におけるプロ
セッサエレメントの動作、及びプロセッサエレメント故
障時の動作については、図1の構成と同様である。そこ
で、図10の構成におけるメモリエレメント故障時の動
作について、図11のフローチャートを参照して説明す
る。
【0063】まず、メモリエレメントM10,M11のうち
のいずれか一方、例えばメモリエレメントM10に故障が
発生し、それをプロセッサエレメントP10が検出したも
のとする。この場合、プロセッサエレメントP10は、自
エレメントP10内の故障情報記憶部F0 に故障したメモ
リエレメントの情報を格納する(ステップS31)。
【0064】次にプロセッサエレメントP10は、他のす
べてのプロセッサエレメント(図11の例ではプロセッ
サエレメントP11)に、メモリエレメントM10の故障を
通知する(ステップS32)。
【0065】この故障通知を受けたプロセッサエレメン
トP11は、自エレメントP11内の故障情報記憶部F1 に
故障したメモリエレメントの情報を格納する。このよう
にして、メモリエレメントの故障時には、システム内の
すべてのプロセッサエレメントP10,P11の故障情報記
憶部F0 ,F1 に、故障したメモリエレメント(ここで
はM10)の情報が書き込まれる。
【0066】それ以降、各プロセッサエレメントP10,
P11は、メモリエレメントへの書き出し時には故障情報
記憶部F0 ,F1 をチェックする。もし、データの書き
出し先に故障したメモリエレメント(M10)が含まれて
いる場合には、プロセッサエレメントP10,P11は、こ
の故障したメモリエレメント(M10)への書き出し動作
は行わず、もう一方の正常なメモリエレメント(M11)
に対してのみデータの書き出しを行う。
【0067】これにより本実施例では、正常なメモリエ
レメント(M11)に対し、チェックポイント処理時以外
には、逐次書き出しが行われ、チェックポイント処理時
には、一括書き出しが行われることになる。なお、正常
なメモリエレメント(M11)に対し、いずれか一方の書
き出し、例えばチェックポイント時における一括書き出
しだけが行われるものであっても構わない。
【0068】以上の運転状態(縮退運転状態)は、メモ
リ交換などによって故障したメモリエレメントが取り除
かれ、正常なメモリエレメント上でメモリ内容の2重化
が行われた段階で、各プロセッサエレメントP10,P11
の故障情報記憶部F0 ,F1の内容をクリアすることに
より解除される。
【0069】
【発明の効果】以上詳述したように本発明によれば、フ
ォールトトレラント計算機システムにおいて、処理中の
プロセッサエレメントから自エレメント内のキャッシュ
の更新を行う際に、その更新内容を同時に2重化メモリ
の一方に反映させ、他方のメモリに対しては、チェック
ポイント処理時に、当該キャッシュのすべての更新内容
を一括して書き出すキャッシュフラッシュを行う構成と
したので、従来のようにチェックポイント処理時に2重
化メモリの両方に対してキャッシュフラッシュを行う場
合に比べて、チェックポイント処理時のオーバヘッドが
軽減し、しかも、チェックポイント処理時以外であれ
ば、上記他方のメモリの内容が直前のチェックポイント
の時点の状態に保持され、チェックポイント処理時であ
れば、上記一方のメモリの内容がそのチェックポイント
の時点の状態に保持されるため、プロセッサエレメント
に故障が発生しても、他のプロセッサエレメントによ
り、2重化メモリのいずれか一方の内容を用いて正しく
処理を継続できる。
【0070】即ち本発明によれば、チェックポイント処
理でのオーバヘッドが改善でき、フォールトトレラント
性を損なわずに効率良くキャッシュ内容を2重化メモリ
に反映させることができる。
【0071】また本発明によれば、2重化メモリのいず
れか一方の側のメモリエレメントに故障が発生した場合
に、もう一方の正常なメモリエレメントをアクセス禁止
状態にしてそのメモリ内容を保護する構成とすることに
より、故障メモリエレメントの回復が図られた際には、
その保護しておいたメモリ内容を利用して、正しい2重
化メモリ構成に復旧して処理を再開できる。
【0072】また本発明によれば、メモリエレメントの
故障を検出したプロセッサエレメントから他のすべての
プロセッサエレメントに故障したメモリエレメントの情
報を通知し、プロセッサエレメントにおいて故障したメ
モリエレメントへの書き出しが発生した場合には、もう
一方の正常なメモリエレメントに対してのみ行う構成と
することにより、故障メモリエレメントの回復が図られ
るまでの間、正常なメモリエレメントを用いた縮退運転
が行える。
【図面の簡単な説明】
【図1】本発明の2重化メモリへのキャッシュフラッシ
ュ方法を適用するフォールトトレラント計算機システム
の第1の実施例を示すブロック構成図。
【図2】図1のシステムが正常な場合におけるプロセッ
サエレメントのデータ更新時の動作を説明するためのフ
ローチャート。
【図3】図1のシステムが正常な場合におけるプロセッ
サエレメントのチェックポイント処理時の動作を説明す
るためのフローチャート。
【図4】図1のシステムにおけるキャッシュフラッシュ
処理を、従来方法と比較して示す図。
【図5】図1のシステムにおけるプロエレメント故障時
の引継処理を説明するためのフローチャート。
【図6】図1のシステムにおいてチェックポイント処理
時以外のときにメモリエレメントM0 が故障した場合の
動作説明図。
【図7】図1のシステムにおいてチェックポイント処理
時以外のときにメモリエレメントM1 が故障した場合の
動作説明図。
【図8】図1のシステムにおいてチェックポイント処理
時のときにメモリエレメントM0 が故障した場合の動作
説明図。
【図9】図1のシステムにおいてチェックポイント処理
時のときにメモリエレメントM1 が故障した場合の動作
説明図。
【図10】本発明の2重化メモリへのキャッシュフラッ
シュ方法を適用するフォールトトレラント計算機システ
ムの第2の実施例を示すブロック構成図。
【図11】図10のシステムにおけるメモリエレメント
故障検出時の動作を説明するためのフローチャート。
【図12】フォールトトレラント計算機システムにおけ
る一般的なチェックポイントリスタート方式を説明する
ための図。
【図13】上記チェックポイントリスタート方式で適用
される従来のチェックポイント処理を説明するための
図。
【図14】図13に示すチェックポイント処理により、
プロセッサ故障時に他のプロセッサにより処理の引継ぎ
が可能なことを説明するための図。
【符号の説明】
P0 ,P1 .P10,P11…プロセッサエレメント、MP
U0 ,MPU1 ,MPU10,MPU11…プロセッサ、C
0 ,C1 …キャッシュ、M0 ,M1 ,M10,M11…メモ
リエレメント、A0 ,A1 …メモリ領域、R0 ,R1 …
アクセス禁止情報記憶部、F0 ,F1 …故障情報記憶
部、WM0 ,WM1 …一括書き出し処理(キャッシュフ
ラッシュ処理)、wM0 …逐次書き出し処理。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】キャッシュを持つ複数のプロセッサエレメ
    ントと、2重化したメモリを持つ複数のメモリエレメン
    トとを備え、処理の実行中に適宜チェックポイントをと
    り、処理中のプロセッサエレメントで故障が発生した場
    合には、その故障以前のチェックポイントの時点から他
    のプロセッサエレメントが処理を引き継ぐフォールトト
    レラント計算機システムに適用される、2重化メモリへ
    のキャッシュフラッシュ方法において、 処理中の前記プロセッサエレメントから自エレメント内
    の前記キャッシュの更新を行う際に、その更新内容を同
    時に前記2重化したメモリの一方に反映させ、他方のメ
    モリに対しては、チェックポイント処理時に、当該キャ
    ッシュのすべての更新内容を一括して書き出すキャッシ
    ュフラッシュを行うことを特徴とする2重化メモリへの
    キャッシュフラッシュ方法。
  2. 【請求項2】前記処理中のプロセッサエレメントに故障
    が発生した場合には、前記チェックポイント処理時以外
    であれば、他の前記プロセッサエレメントにより前記他
    方のメモリの内容を利用して直前のチェックポイントの
    時点から処理を継続させ、前記チェックポイント処理時
    であれば、他の前記プロセッサエレメントにより前記一
    方のメモリの内容を利用して当該チェックポイントの時
    点から処理を継続させることを特徴とする請求項1記載
    の2重化メモリへのキャッシュフラッシュ方法。
  3. 【請求項3】前記一方のメモリ側のメモリエレメントに
    故障が発生した場合には、前記チェックポイント処理時
    以外であれば、直ちに前記処理中のプロセッサエレメン
    トにより前記他方のメモリ側のメモリエレメントをアク
    セス禁止状態に設定し、前記チェックポイント処理時で
    あれば、前記他方のメモリへの一括書き出しが終了して
    当該チェックポイント処理が終了した時点で前記処理中
    のプロセッサエレメントにより前記他方のメモリ側のメ
    モリエレメントをアクセス禁止状態に設定し、 前記他方のメモリ側のメモリエレメントに故障が発生し
    た場合には、前記チェックポイント処理時以外であれ
    ば、前記一方のメモリへの書き出し終了を確認した時点
    で前記処理中のプロセッサエレメントにより前記一方の
    メモリ側のメモリエレメントをアクセス禁止状態に設定
    し、前記チェックポイント処理時であれば、直ちに前記
    処理中のプロセッサエレメントにより前記一方のメモリ
    側のメモリエレメントをアクセス禁止状態に設定するこ
    とを特徴とする請求項1記載の2重化メモリへのキャッ
    シュフラッシュ方法。
  4. 【請求項4】前記2重化メモリを持つメモリエレメント
    のいずれか1つが故障した場合、その故障を検出したプ
    ロセッサエレメントから他のすべてのプロセッサエレメ
    ントに対して、その故障メモリエレメントの情報を通知
    し、以後各プロセッサエレメントにより当該情報の示す
    故障メモリエレメントの2重化メモリへの書き出しが発
    生した場合には、その書き出しを正常なメモリエレメン
    トの2重化メモリに対して行わせることを特徴とする請
    求項1記載の2重化メモリへのキャッシュフラッシュ方
    法。
JP6060524A 1994-03-30 1994-03-30 フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法 Pending JPH07271624A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6060524A JPH07271624A (ja) 1994-03-30 1994-03-30 フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6060524A JPH07271624A (ja) 1994-03-30 1994-03-30 フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法

Publications (1)

Publication Number Publication Date
JPH07271624A true JPH07271624A (ja) 1995-10-20

Family

ID=13144794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6060524A Pending JPH07271624A (ja) 1994-03-30 1994-03-30 フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法

Country Status (1)

Country Link
JP (1) JPH07271624A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009175879A (ja) * 2008-01-22 2009-08-06 Nec Corp 二重化システム及びメモリコピー方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009175879A (ja) * 2008-01-22 2009-08-06 Nec Corp 二重化システム及びメモリコピー方法

Similar Documents

Publication Publication Date Title
EP0788052B1 (en) I/O control apparatus having check recovery function
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
JP4073464B2 (ja) リード・バッファを用いたフォールト・トレラント・コンピュータ・システム用主メモリ・システムおよびチェックポインティング・プロトコル
US7085955B2 (en) Checkpointing with a write back controller
US6622263B1 (en) Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
US5751939A (en) Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
EP0889409B1 (en) Mirrored write-back cache module warmswap
US5958070A (en) Remote checkpoint memory system and protocol for fault-tolerant computer system
US7840768B2 (en) Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support
US5864657A (en) Main memory system and checkpointing protocol for fault-tolerant computer system
US6779087B2 (en) Method and apparatus for checkpointing to facilitate reliable execution
US6766428B2 (en) Method and apparatus for storing prior versions of modified values to facilitate reliable execution
JPH10506483A (ja) フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
EP0833248A2 (en) Memory update history storing apparatus and method
JPS638835A (ja) 障害回復方法
JP3192664B2 (ja) キャッシュメモリシステムおよびキャッシュメモリコントローラ
CN113722052A (zh) 一种基于数据双版本的非易失内存更新方法
JPH0887424A (ja) 電子計算機
JP3070453B2 (ja) 計算機システムのメモリ障害回復方法および回復システム
JPH07271624A (ja) フォールトトレラント計算機システムにおける2重化メモリへのキャッシュフラッシュ方法
JP2000293391A (ja) 大規模メモリシステム管理方法および装置
JPH10240620A (ja) コンピュータシステムおよび同システムにおけるチェックポイントイメージ保存方法
JP2000222232A (ja) 電子計算機及び電子計算機のメモリ障害回避方法
JPH03265951A (ja) 故障回復型計算機
USRE45632E1 (en) Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support