JPH06324941A - 再開処理方法 - Google Patents

再開処理方法

Info

Publication number
JPH06324941A
JPH06324941A JP5113042A JP11304293A JPH06324941A JP H06324941 A JPH06324941 A JP H06324941A JP 5113042 A JP5113042 A JP 5113042A JP 11304293 A JP11304293 A JP 11304293A JP H06324941 A JPH06324941 A JP H06324941A
Authority
JP
Japan
Prior art keywords
entry
intermediate state
processor
cache memory
display means
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
JP5113042A
Other languages
English (en)
Inventor
Yoshiyuki Imada
美幸 今田
Tsunemichi Shiozawa
恒道 塩澤
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP5113042A priority Critical patent/JPH06324941A/ja
Publication of JPH06324941A publication Critical patent/JPH06324941A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 本発明の目的は、障害を確実に検出し、再開
処理単位でメインメモリからの再開処理が可能で、障害
時の再開時間が短縮できる再開処理方法を提供すること
である。 【構成】 本発明は、障害検出手段150 により処理の障
害が検出された場合は、キャッシュメモリ120 内の中間
状態表示手段132 にエントリに格納されているメインメ
モリのブロックを書き換えたことを示す中間状態情報が
設定されているエントリのバリッド表示手段133 を無効
化する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、再開処理方法に係り、
特に、ソフトウェア障害発生時にメインメモリの内容を
汚染することなく、高速にソフト再開処理を実現する再
開処理方法に関する。
【0002】
【従来の技術】従来、システムの一部に障害が発生して
もシステム全体に影響を与えないフォールトトレラント
システムを実現する上で、ハードウェアの故障に対して
は、二重照合等が用いられ、高信頼化が図られている。
しかし、二重照合等で検出されるハードウェアの断線
や、短絡故障の割合の一桁以上あるソフトウェアバグ、
ハードウェアの設計バグに対する高信頼化の実用的で有
効な手段は実現されていない。
【0003】さらに、上記のソフトウェアのバグや検出
洩れによる障害の検出は、ウオッチドックタイマ(WD
T)が一般に用いられている(川島:「交換制御プログ
ラムの基本技術(III)−耐故障制御−」、電気情報通信
学会誌、Vol.75,No.10,pp.1072-1079,1992) 。この方法
は、定期的にソフトウェアがリセットするタイマを設
け、ソフトウェアが暴走した場合、タイマがオーバーフ
ローすることによりソフトウェアの障害を検出するもの
である。
【0004】また、再開処理時点でメモリへの再開条件
の設定を高速化する回路構成として、“塩澤、平野:
「コピーバックキャッシュメモリを用いたメモリリカバ
リ方式に関する一考察」(1992年電子情報通信学会秋期
大会、D56)”で示されている。このメモリ回復装置
は、キャッシュメモリ上で再開処理を行うと、再開のた
めのソフトのオーバヘッドが少なくなり、障害が発生し
た地点の処理に戻すためのソフトウェア処理の性能が向
上することが示されている。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来のWDTを用いてソフトウェアの障害を検出する方法
は、タイマがオーバフローすることにより障害を検出す
るため、障害が早期に検出されず、WDTがオーバフロ
ーした地点では再開処理に使用するメインメモリのデー
タが汚染され、再開処理が不可能となる場合がある。
【0006】また、上記従来のメモリ回復装置は、リカ
バリを行う契機について明確な条件が設定されていない
ので、再開処理時はソフトウェアが指定したチェックポ
イントの間隔でしか状態を戻せないため、障害時の直前
の状態で再開処理ができないという問題がある。
【0007】このように、従来の方法による再開処理
は、メインメモリのデータが汚染される場合があること
から基本的にファイルロードを伴うため、システムを再
起動するまでに時間がかかるという問題がある。
【0008】本発明は、上記の点に鑑みなされたもの
で、上記従来の問題を解決し、処理の開始から終了ま
で、処理実行中に書換えがあった事を示すエントリをメ
インメモリに反映せず、処理が正常終了した時点でメイ
ンメモリに反映可能なエントリとし、処理実行中に障害
検出手段として設置したWDTのリセット周期などを再
開処理単位とし、WDT等により障害が検出された場
合、再開処理単位内で書込みが行われたエントリを無効
化し、再開処理単位の処理の開始地点から障害時の影響
のないメインメモリを利用して再開処理を行うことによ
り、高速なメモリ再開が可能な再開処理方法を提供する
ことを目的とする。
【0009】
【課題を解決するための手段】図1は本発明の原理を説
明するための図(その1)である。
【0010】本発明の再開処理方法は、プロセッサ11
0、キャッシュメモリ120及びメインメモリ140を
含む情報処理装置100において、メインメモリ140
のアドレス空間は複数のブロックに分割され、キャッシ
ュメモリ120は複数のエントリ1301 〜130n
含み、各エントリ1301 〜130n はメインメモリ1
40のブロック内容を格納するブロック内容表示手段1
31と、プロセッサ110で実行される処理がエントリ
120に格納しているブロックを書き換えたことを示す
中間状態情報を格納する中間状態表示手段132と、エ
ントリ120に格納しているブロックの情報が有効であ
るか無効であるかを示す情報を格納するバリッド表示手
段133とを具備し、情報処理装置100は、プロセッ
サ110で実行中の処理の障害を検出する障害検出手段
150を含み、プロセッサ110がエントリ120のブ
ロック内容表示手段131の内容を書き換える場合は、
キャッシュメモリ120は、当該エントリの中間状態表
示手段132に中間状態情報を設定し、障害検出手段1
50で処理の障害が検出されない場合は、プロセッサ1
10は予め設定したタイミングでキャッシュメモリ12
0のエントリ130の中間状態表示手段132の情報を
解除し、障害検出手段150により処理の障害が検出さ
れた場合は、キャッシュメモリ120内の中間状態表示
手段132に中間状態情報が設定されているエントリの
バリッド表示手段133を無効化する。
【0011】図2は本発明の原理を説明するための図
(その2)である。
【0012】また、本発明の再開処理方法は、プロセッ
サ110、キャッシュメモリ120及びメインメモリ1
40を含む情報処理装置100において、メインメモリ
140のアドレス空間は複数のブロックに分割され、キ
ャッシュメモリ120は、複数のエントリ1301 〜1
30n を含み、各エントリ1301 〜130n は、メイ
ンメモリ140のブロック内容を格納するブロック内容
表示手段131、プロセッサ110で実行される処理が
エントリに格納しているブロックを書き換えたことを示
す中間状態情報を格納する中間状態表示手段132及
び、エントリ130に格納しているブロックの情報が有
効であるか無効であるかを示す情報を格納するバリッド
表示手段133を具備し、情報処理装置100は、プロ
セッサで実行中の処理の障害を検出する方法が異なる障
害検出手段250、260を2種類以上具備し、プロセ
ッッサ110がエントリ130のブロック内容表示手段
131を書き換える場合に、キャッシュメモリ120
は、当該エントリの中間状態表示手段132に中間状態
情報を設定し、障害検出手段250、260のいずれに
おいても処理の障害が検出されない場合に、プロセッサ
110は予め設定したタイミングでキャッシュメモリ1
20のエントリの中間状態表示手段132の中間状態情
報を解除し、障害検出手段250、260のいずれかで
処理の障害が検出された場合に、キャッシュメモリ12
0内の中間状態表示手段132に中間状態情報が設定さ
れているエントリのバリッド手段133を無効化する。
【0013】図3は本発明の原理を説明するための図
(その3)である。
【0014】また、本発明の再開処理方法は、プロセッ
サ300、キャッシュメモリ120、メインメモリ14
0で構成され、プロセッサ300のソフトウェア310
の構成がアプリケーション部311と個別部312から
なる情報処理装置100において、メインメモリ140
のアドレス空間は複数のブロックに分割され、キャッシ
ュメモリ120は複数のエントリ1301 〜130n
含み、各エントリ1301 〜130n はメインメモリ1
40のブロック内容を格納するブロック内容表示手段1
31と、プロセッサ300で実行される処理がエントリ
130に格納しているブロックを書き換えたことを示す
中間状態情報を格納する中間状態表示手段132と、エ
ントリに格納しているブロックの情報が有効であるか無
効であるかを示す中間状態情報を格納するバリッド表示
手段133を具備し、プロセッサ300で実行中のソフ
トウェア310の個別部312は、プロセッサ300で
実行中のアプリケーション部311の障害を検出する障
害検出手段313を含み、プロセッサ300がエントリ
のブロック内容表示手段131を書き換える場合に、キ
ャッシュメモリ120は、当該エントリの中間状態表示
手段132に中間状態情報を設定し、障害検出手段31
3で処理の障害が検出されない場合に、プロセッサ30
0は予め設定したタイミングでキャッシュメモリ120
のエントリ130の中間状態表示手段132の中間状態
情報を解除し、障害検出手段313で処理の障害が検出
された場合、キャッシュメモリ120内の中間状態表示
手段132に中間状態情報が設定されているエントリの
バリッド表示手段133を無効化する。
【0015】
【作用】本発明は、キャッシュメモリのエントリで処理
実行中の状態を管理し、処理実行中に障害を検出した場
合に、キャッシュメモリ内の書換えがあったエントリを
無効化し、処理開始時点からメインメモリを使用して処
理を再開する。
【0016】これにより、再開処理単位での障害影響は
キャッシュメモリにのみ閉じることができ、障害検出後
もメインメモリから再開処理ができる。
【0017】また、リセットタイミングの異なる複数の
障害検出機能をもつことにより単一のソフトウェア障害
に対処できる。
【0018】また、ソフトウェアによる障害検出機能を
オペレーティングシステムで持つことにより再開処理の
チェックポイント情報の収集が容易になる。
【0019】
【実施例】以下、図面を用いて本発明の実施例を説明す
る。
【0020】〈第1の実施例〉最初に、本発明の第1の
実施例について説明する。本実施例は、情報処理装置に
1つのソフトウェア障害を検出するための機能を設け、
障害を検出した場合にキャッシュメモリ内の書換えがあ
ったキャッシュメモリ内のエントリを無効化するもので
ある。
【0021】図4は本発明の第1の情報処理装置の構成
を示す。同図に示す情報処理装置は、プロセッサ11、
キャッシュメモリ12、メインメモリ13、プロセッサ
バス31、及びメモリバス32により構成される。キャ
ッシュメモリ12は複数のエントリが構成され、メイン
メモリは同じ大きさの複数のブロックに分割されてい
る。
【0022】プロセッサ11は、プロセッサ11自身が
書き換えたキャッシュメモリ12のデータを随時メイン
メモリ13に書き戻さず、データがキャッシュメモリ1
2上で更新されたことを表す制御ビットを“オン”に
し、キャッシュメモリ12からこのデータが追い出され
るときに、まとめてメインメモリ13に書き込まれるキ
ャッシュメモリ12を介してメインメモリ13にアクセ
スする。
【0023】メインメモリ13は同じ大きさの複数のブ
ロックに分割され、キャッシュメモリ12とメインメモ
リ13の間においてブロック単位でメモリ内容の転送を
行う。
【0024】図5は本発明の第1の実施例のキャッシュ
メモリのエントリと障害検出機能の構成の例を示す。キ
ャッシュメモリ12のエントリ21は、ブロックアドレ
ス部22、ブロックデータ部23からなるブロック内容
表示部30、中間状態表示部24、バリッド表示部2
5、書換え表示部26、ANDゲート27及び信号線3
4、36、39により構成される。
【0025】また、障害検出機能はORゲート28、W
DT29から構成され、WDT29は、ソフトウェアか
らのリセット指示信号38とプロセッサ11からの確定
指示信号33が入力され、ORゲート28の結果により
リセットされる。また、WDT29からはソフトウェア
への割り込み信号37が出力される。
【0026】エントリ21のブロック内容表示部30
は、メインメモリ13の1つのブロックの内容を格納し
ており、そのうち、ブロックアドレス部22は、メイン
メモリ13の1つのブロックのアドレスを格納し、ブロ
ックデータ部23は、メインメモリ13の当該アドレス
のブロックのデータを格納する。
【0027】中間状態表示部24は、プロセッサ11で
実行される処理がエントリ21のブロック内容表示部3
0に格納しているブロックを再開処理単位で書換えがあ
ったか否かを示す。本実施例では、エントリ21内のブ
ロックの書換えがあり確定している状態を“0”とし、
まだ確定状態に至らない、即ち、メモリリカバリ単位の
処理中に書換えがあったことを示す状態を中間状態
“1”とする。
【0028】バリッド表示部25は、エントリ21に格
納されている内容が有効であるか無効であるかを示す。
本実施例では、エントリに格納されている内容が無効の
場合を“0”、有効の場合を“1”とする。
【0029】書換え表示部26は、キャッシュメモリ1
2のみを書き換えたことを示す。本実施例では、書換え
がない場合には“0”とし、書換えがある場合には
“1”とする。
【0030】キャッシュメモリ12のエントリ21は、
プロセッサ11から再開処理単位でブロック内容表示部
30のメモリリカバリ処理が終了し、データの書き換え
が確定したことを示す確定指示信号33(確定指示信号
“オン”)により確定が指示されると、中間状態表示部
24の値は“0”(確定状態)となる。ANDゲート2
7には、信号線34を介して中間状態表示部24の内
容、信号線36を介して書換え表示部2の内容及び、プ
ロセッサ11から無効化指示信号35により無効化指示
が入力される。ANDゲート27は、中間状態表示部2
4の値が“1(中間状態)”かつ書換え表示部26の内
容が“1(書換えあり)”である場合に信号線39を介
してバリッド表示部25を“0(無効)”とする。
【0031】以下に上記の構成のキャッシュメモリ12
について説明する。
【0032】図6は本発明の第1の実施例のキャッシュ
メモリの動作のフローチャートを示す。
【0033】ここで、メインメモリ13のa番地のブロ
ックBにアクセスし、このブロックをBaとする(ステ
ップ310)。
【0034】まず、ブロック内容表示部30のブロック
アドレス部22にブロックアドレスBaを格納し、か
つ、バリッド表示部25が“1(有効)”であるエント
リがキャッシュメモリ12に存在し(ステップ320,
Yes )、かつ中間状態表示部24が“0(確定状態)”
であり(ステップ330、No)、かつ書換え表示部26
が“1(ブロックデータ部23のBaとメインメモリの
Baが不一致)”の場合には(ステップ340、Yes
)、メインメモリ13のa番地のデータ内容をブロッ
クデータBaで書換え、プロセッサ11からのアクセス
が読みだしアクセスであれば、書換え表示部26を“0
(ブロックデータ部23のBaとメインメモリBaが一
致)”とする(ステップ350)。次に、中間状態表示
部24が“1(中間状態)”とするとともに(ステップ
360)、プロセッサ11からのアクセスが読みだしア
クセスであるので(ステップ370、No) 、ブロックB
a内のアドレスaで指定されるデータをプロセッサ11
に転送し( ステップ390)、プロセッサ11からのア
クセスが書換えアクセスであれば(ステップ370,N
o)、中間状態表示部を“1(中間状態)”とする(ステ
ップ380)とともに、ブロックBa内のアドレスaで
指定されるデータをプロセッサ11から出力されたデー
タで書き換える(ステップ390)。
【0035】また、ブロックアドレス部22にブロック
アドレスBaを格納し、かつバリッド表示部25が“1
(有効)”であるエントリがキャシュメモリ12に存在
し(ステップ320,Yes) 、かつ中間状態表示部24が
“0(確定状態)”であり(ステップ330,No )かつ
書換え表示部26が“0(ブロックデータ部23のBa
とメインメモリ13のBaが一致)”の場合には(ステ
ップ340、No)、プロセッサ11からのアクセスが読
み出しアクセスであれば、中間状態表示部24“1(中
間状態)”とするとともに(ステップ360)、ブロッ
クBa内のアドレスaで指定されるデータをプロセッサ
11に転送する(ステップ370、No,390)。ま
た、プロセッサ11からのアクセスが書換えアクセスで
ある場合には(ステップ370、Yes)エントリの書換え
表示部を“1(ブロックデータ部23のBaとメインメ
モリのBaが不一致)”とし(ステップ380)、中間
状態表示部24を“1(中間状態)とし、ブロックBa
内のアドレスaで指定されるデータをプロセッサ11か
ら出力されたデータで書き換える(ステップ390)。
【0036】また、ブロックアドレス部22にブロック
アドレスBaを格納し、かつバリッド表示部25が“1
(有効)”であるエントリがキャッシュメモリ12に存
在し(ステップ320,Yes)、かつ中間状態表示部24
が“1(中間状態)”の場合には(ステップ330,Ye
s )、プロセッサ11からのアクセスが読み出しアクセ
スであれば(ステップ370、No) 、ブロックBa内の
アドレスaで指定されるデータをプロセッサ11に転送
し(ステップ390)、プロセッサ11からのアクセス
が書換えアクセスであれば(ステップ370、Yes )、
書換え表示部26を“1(ブロックデータ部23のBa
とメインメモリのBaが不一致)”とするとともに(ス
テップ380)、エントリ21のブロックBa内のアド
レスaで指定されるデータをプロセッサ11から出力さ
れたデータで書き換える(ステップ390)。
【0037】さらに、ブロックアドレス部22にブロッ
クアドレスBaを格納し(ステップ310)、かつバリ
ッド表示部25が“1(有効)”であるエントリがキャ
ッシュメモリ12に存在しない場合(ステップ320,N
o )、予め定められた手続きに従って、中間状態表示部
24に“0(中間状態でない)”がセットされているエ
ントリが選択され、選択したエントリの書換え表示部2
4に“1(ブロックデータ部23のBaとメインメモリ
13のBaが不一致)”がセットされている場合には、
ブロックアドレス部23で指定される内容をブロックデ
ータ部23の内容で書換え、書換え表示部26を“0
(ブロックデータ部23のBaとメインメモリ13のB
aが一致)”とし、メインメモリ13からのブロックB
aのアドレスをブロック内容表示部30のブロックアド
レス部22に格納し、バリッド表示部25を“1(有
効)”とし(ステップ410、420)、中間状態表示
部24を“1(中間状態)”とし(ステップ360)、
プロセッサ11からのアクセスが読み出しアクセスであ
れば(ステップ370、No)、書換え表示部26を“0
(ブロックデータ部23のBaとメインメモリのBaが
一致)”とするとともにブロックBa内のアドレスaで
指定されるデータをプロセッサ11に転送し(ステップ
390)、一方、プロセッサ11からのアクセスが書換
えアクセスであれば(ステップ370、Yes )、書換え
表示部26を“1(ブロックデータ部23のBaとメイ
ンメモリBaが不一致)”とするとともに(ステップ3
80)、エントリ21のブロックBa内のアドレスaで
指定されるデータをプロセッサ11から出力されたデー
タで書き換える(ステップ390)。
【0038】プロセッサ11で実行中の処理が正常に終
了し、処理中に行った書換えの無効化が不要となった場
合、プロセッサ11は、図5に示す確定指示信号33を
“オン”とし、キャッシュメモリ12の全てのエントリ
の中間状態表示部24を“0(確定状態)”とする。
【0039】また、プロセッサ11で処理を中止し、中
止した処理の実行中に行った書換えの無効化を行いたい
場合は、プロセッサ11は、図5に示す無効化指示信号
35を“オン”とし、キャッシュメモリ12の中間状態
表示部24の値に“1(中間状態)”がセットされ、か
つ書換え表示部26に“1(有効)”がセットされてい
る全てのバリッド表示部25を“0(無効)”とし、そ
の後に確定指示信号33を“オン”とし、キャッシュメ
モリ12の全てのエントリの中間状態表示部24を“0
(確定状態)”とする。
【0040】次に、上記の動作を行うキャッシュメモリ
12を用いた再開処理方法を説明する。
【0041】プロセッサ11が書き換えたメインメモリ
13の内容を処理の開始時点に戻す処理の単位を再開処
理単位とする。
【0042】図7は本発明の第1の実施例の再開処理の
フローチャートである。
【0043】同図において、再開処理単位をWDTの監
視時間とした場合について説明する。ここでは、再開処
理単位での処理実行中はI/O等の外部からの割り込み
を受け付けないものとする。
【0044】まず、メインメモリ13やキャッシュメモ
リ12に保持している以外の再開処理に必要な情報は、
チェックポイント処理の情報として個別にレジスタの退
避等をハードウェアやソフトウェアで行い、保持してお
き(ステップ41)、処理を開始する(ステップ4
2)。再開処理単位(ステップ40)での処理の終了時
点で、上記で示したように、プロセッサ11が図5に示
すキャッシュメモリ12の中間状態表示部24が中間状
態にあるエントリ21へ中間状態を示す情報“1”の解
除のための確定指示信号33を“オン”として確定を指
示する(ステップ45)。同時にORゲート28を介し
てWDT29をリセットする(ステップ46)。実行中
の処理が再開処理対象ではない場合、ソフトウェアから
のリセット指示信号38でORゲート28を介してWD
T29をリセットする(ステップ46)。
【0045】キャッシュメモリ12のエントリに対して
新たに書き換えるためのブロックが登録不能の場合と、
ソフトウェアからのリセット指示信号38によるWDT
29に対するリセットがされず、オーバーフローした場
合(ステップ47)に、プロセッサ11で実行中の処理
に障害が発生したとみなす。実行中の処理が再開処理対
象であれば(ステップ48、Yes)、プロセッサ11は図
5に示す無効化指示信号35を“オン”とし、キャッシ
ュメモリ12の中間状態表示部24の値に“1(中間状
態)”がセットされ、かつ書換え表示部26に“1(書
換えあり)”がセットされている全てのバリッド表示部
25を“0(無効)”とし、この後、確定指示信号33
を“オン”とし、キャッシュメモリ12の全てのエント
リの中間状態表示手段24を“0”とする(ステップ5
1)。この後、処理を再開処理単位の最初に戻すリカバ
リ処理実行後(ステップ52)、メインメモリ13を利
用した処理を再開する(ステップ42以降の処理)。
【0046】実行中の処理が再開処理対象でなければ
(ステップ48、No)、プロセッサ11の図5に示す確
定指示信号33を“オン”とし(ステップ49)、ソフ
トウェアで規定した再開処理を行う(ステップ50)。
【0047】上記より、再開処理単位での障害影響はキ
ャッシュメモリ11にのみ閉じることができ、障害検出
後もメインメモリ13から再開処理ができるため、シス
テムとして高速な再開処理が実現できる。
【0048】〈第2の実施例〉次に、本発明の第2の実
施例について説明する。本実施例は、プロセッサで実行
中の処理の障害を検出するための方法が異なる機能を複
数用いるものである。
【0049】これは、第1の実施例のWDT等の障害検
出を行うための機能に障害が発生すると、第1の実施例
の方法では、再開ができない場合が生じる。本実施例
は、第1の実施例のこの欠点を改善する方法であり、新
たに障害検出するための機能を追加したことにより格段
に再開処理の信頼度を向上できる方法である。
【0050】図8は、本発明の第2の実施例のキャッシ
ュメモリのエントリと障害検出機能の構成を示す。同図
中、図5と同一構成部分には同一符号を付し、その説明
を省略する。同図に示すエントリ21は、図5に示す第
1の実施例の構成に加えて、中間状態表示部L501、
バリッド表示部L502,書換え表示部L503、信号
線509及びANDゲート510により構成される。障
害検出機能は図5の構成にWDTL504とORゲート
506が加えられている。
【0051】キャッシュメモリ12のエントリ21のA
NDゲート510には、中間状態表示L501の情報、
書換え表示部L503の情報、及びプロセッサ11から
入力される無効化指示信号507が入力される。
【0052】中間状態表示L501は確定状態を“0”
とし、メモリリカバリ単位の処理中に書換えがあった事
を示す中間状態を“1”とする。
【0053】バリッド表示部L502は、無効である場
合が“0”、有効である場合が“1”とする。
【0054】書換え表示部L503は、書換えなしの状
態を“0”とし、書換えありの状態を“1”とする。
【0055】WDTL504のリセットタイミングは第
1の実施例より大きく設定し、これを再開処理単位(以
下、再開処理単位Lと呼ぶ)とする。
【0056】図9は、本発明の第2の実施例の再開処理
単位の例を示す。再開処理単位Lにおける処理は、第1
の実施例の図7と同様である。チェックポイント処理L
は、再開処理単位L毎に行う。プロセッサ11で実行中
の処理が障害であるにもかかわらず、WDT29がリセ
ットされるような単一の障害に対しては、WDTL50
4が再開処理単位Lに関するソフトウェアからのリセッ
ト指示信号505により、リセットされないことにより
障害を検出する。障害検出後は、第1の実施例と同様に
再開処理対象であれば、プロセッサ11は図9の無効化
指示信号L507を“オン”とし、キャッシュメモリ1
2の中間状態表示部L501の値に“1”が設定され、
かつ書換え表示手段26に“1”がセットされている全
てのバリッド表示部L502を“0(無効)”とし、そ
の後に確定指示信号L508を“オン”とし、キャッシ
ュメモリ12の全てのエントリ21の中間状態表示部L
501を“0(確定状態)”とし、その後に確定指示信
号L508を“オン”とし、キャッシュメモリ12の全
てのエントリの中間状態表示部L501を“0(確定状
態)”とする。この後、リカバリ処理実行後、メインメ
モリ13を利用した処理を再開する。
【0057】再開処理対象でなければ、プロセッサ11
は図8の確定指示信号L508を“オン”とし、ソフト
ウェアで規定した再開処理を行う。実行中の処理が再開
処理対象でない場合、ソフトウェアからのリセット指示
信号38でORゲート28を介してWDT29をリセッ
トし、必要に応じて再開処理単位に関するソフトウェア
からのリセット指示信号505でORゲート506を介
してWDTL506をリセットする。
【0058】処理が正常終了した場合には、プロセッサ
11は、図8に示すキャッシュメモリ12の中間状態表
示部L501が中間状態にあるエントリ21へ中間状態
を示す情報の解除を行う確定指示信号L508を“オ
ン”とし、中間状態表示部L501を確定状態とし、同
時にORゲート506を介してWDTL504へのリセ
ット信号を“オン”する。
【0059】上記のように、リセットタイミングの異な
る2つのWDT29、WDTL504を用意する等、多
重に障害検出手段を持つことで、単一のソフトウェア障
害に対してより高信頼なシステムを実現することができ
る。
【0060】〈第3の実施例〉次に、本発明の第3の実
施例を説明する。
【0061】本実施例は、障害検出を行うための機能を
第1の実施例のようにWDTとした場合には、ハードウ
ェアがソフトウェアとは独立にタイミング要求すること
になるので、ソフトウェア再開処理しやすいところでの
状態設定を要求することができない。本実施例では、こ
れを実現する方法を提供するものであって、WDTが実
現する障害検出機能をソフトウェアで持ち、再開処理に
連動した制御手順を行う方法である。
【0062】図10は本発明の第3の実施例の再開処理
のフローチャートである。
【0063】同図は、再開処理単位をオペレーティング
システムで管理しているタイマ値で規定した場合につい
て示すものである。
【0064】まず、再開処理単位はオペレーティングシ
ステムが設定し(ステップ900)、オペレーティング
システムの監視対象は、アプリケーションとする。ここ
では、再開処理単位での処理実行中は、外部のソフトか
らの割り込みを受け付けないものとする。
【0065】第1の実施例と同様に、メインメモリ13
やキャッシュメモリ12に保持している以外の再開処理
に必要な情報は、チェックポイント処理の情報としてレ
ジスタの退避等を個別にオペレーティングシステムで保
持しておき(ステップ901)、オペレーティングシス
テムのタイマをスタートして(ステップ902)、処理
を開始する(ステップ903)。再開処理単位(ステッ
プ900)での処理の終了時点で、第1の実施例で示し
たように、プロセッサ11が図5に示すキャッシュメモ
リ12の中間状態表示部24が“1(中間状態)”にあ
るエントリ21へ中間状態を示す情報の解除のための確
定指示信号33を“オン”とし、中間状態表示部24を
“0(確定状態)”とし、(ステップ905)、同時に
ORゲート28を介してオペレーティングシステムのタ
イマをリセットする。
【0066】処理時点において(ステップ904)、キ
ャッシュメモリ12のエントリに対して新たに書き換え
るためのブロックが登録不能の場合と、オペレーティン
グシステムのタイマがオーバーフローした場合、アプリ
ケーションで実行中の処理に障害が発生したとみなす。
実行中の処理が再開処理対象であれば(ステップ90
9、Yes )、プロセッサ11は図5の無効化指示信号3
5を“オン”とし、キャッシュメモリ12の中間状態表
示手段24の値に“1(中間状態)”がセットされ、か
つ書換え表示手段26に“1(書換えあり)”がセット
されている全てのバリッド表示部25を“0(無効)”
とし、その後に確定指示信号33を“オン”とし、キャ
ッシュメモリ12の全てのエントリの中間状態表示部2
4を“0(確定状態)”とし、その後に確定指示信号3
3を“オン”とし、キャッシュメモリ12の全てのエン
トリの中間状態表示部24を“0”とする(ステップ9
10)。この後、処理を再開処理単位の最初に戻すリカ
バリ処理実行後(ステップ911)、処理を再開する
(ステップ902以降の処理)。実行中の処理が再開処
理対象でなければ(ステップ909、No) 、プロセッサ
11は図5に示す確定指示信号33を“オン”とし(ス
テップ907)、アプリケーションバグに対する再開処
理を行う(ステップ908)。
【0067】このように、ソフトウェアによる障害検出
機能をオペレーティングシステムが持つことにより、再
開処理のチェックポイント情報の収集が容易になり、安
定した再開処理が実現できる。
【0068】〈第4の実施例〉次に、本発明の第4の実
施例について説明する。
【0069】障害が重なったりした場合に、第1の実施
例、第2の実施例及び第3の実施例で再開できない場合
も考えられる。本実施例はその場合の対処方法を示す。
【0070】本実施例は、メインメモリ13からの再開
処理が不可能な場合にハードディスク等に格納されてい
るシステムを立ち上げるための保証ファイルから再開を
行う方法である。
【0071】図11は本発明の第4の実施例の情報処理
装置の構成を示す。同図中、図5と同一構成部分には同
一符号を付し、その説明を省略する。
【0072】同図に示す構成は、図5の構成にI/Oバ
ス701、ハードディスク702を加えた構成である。
ハードディスク702は、システムを立ち上げるための
保証ファイルを格納している。なお、ハードディスク7
02の代わりに、光磁気ディスクや半導体ファイル(S
F)などを使用してもよい。
【0073】図12は本発明の第4の実施例のキャッシ
ュメモリのエントリと再開処理不要検出機能の構成を示
す。同図に示す構成のうち、キャッシュメモリ12は、
第1の実施例の図5の構成と同様である。
【0074】同図に示す例は、メインメモリ13からの
再開処理を行った回数をハードディスク702でカウン
トする場合の例を示す。
【0075】前述の第1の実施例で行ったメインメモリ
13からの再開処理の回数はメインメモリ再開回数カウ
ンタ801でカウントされる。監視タイマ802に予め
定めた時間内に、メインメモリ再開回数カウンタ801
に予め定めた回数より多くメインメモリ13からの再開
処理を行った(カウンタがオーバフローした)場合、メ
インメモリ13からの再開処理不可能と見なし、システ
ムを立ち上げるためにハードディスク702の保証的な
ファイルからの再開処理を行うための指示信号であるフ
ァイルロード再開指示信号803を“オン”とし、ハー
ドディスク702内の保証ファイルを利用して再開処理
を行う。
【0076】また、監視タイマ802に予め定めた時間
内に行ったメインメモリ13からの再開処理の回数がメ
インメモリ再開回数カウンタ801に予め定めた回数よ
り少ない(カウンタがオーバーフローしない)場合は、
監視タイマ802は、メインメモリ再開回数カウンタ8
01にカウンタリセット指示信号を“オン”として入力
する。
【0077】上記により、本実施例では、第1の実施例
で述べた手順でメインメモリ13からの再開処理が不可
能な場合、予めメインメモリ再開回数カウンタ801に
メインメモリ13からの再開処理回数をカウントする機
能を設けることで、メインメモリ13からの再開処理の
回数が予め設定した値を越えた場合には、メインメモリ
13からの再開処理を中断し、システムを立ち上げるた
めに保証的なファイルから再開処理を行うことが可能と
なる。
【0078】
【発明の効果】上述のように本発明によれば、処理実行
中に、障害検出機能で障害が検出されれば、障害の影響
はキャッシュメモリ内に閉じているので、WDTのリセ
ット周期などで管理している再開処理単位でメインメモ
リからの再開が可能となる。そのため、ソフトウェアバ
グ、ハードウェアの設計バグ、ハードウェア故障の発生
直後に検出されず、障害となって検出されても高速な再
開処理が可能となる。
【0079】また、本発明は、障害原因のほどんどであ
るソフトウェアバグや設計バグ原因の障害時に短時間で
再開が行えるので、障害時の平均的な再開時間が短縮で
きる効果がある。
【図面の簡単な説明】
【図1】本発明の原理を説明するための図(その1)で
ある。
【図2】本発明の原理を説明するための図(その2)で
ある。
【図3】本発明の原理を説明するための図(その3)で
ある。
【図4】本発明の基本的な情報処理装置の構成図であ
る。
【図5】本発明の第1の実施例のキャッシュメモリのエ
ントリと障害検出機能の構成図である。
【図6】本発明の第1の実施例のキャッシュメモリの動
作のフローチャートである。
【図7】本発明の第1の実施例の再開処理のフローチャ
ートである。
【図8】本発明の第2の実施例のキャッシュメモリのエ
ントリの例を示す図である。
【図9】本発明の第2の実施例の再開処理単位の例を示
す図である。
【図10】本発明の第3の実施例の再開処理のフローチ
ャートである。
【図11】本発明の第4の実施例の情報処理装置の構成
図である。
【図12】本発明の第4の実施例の本発明の第4の実施
例のメインメモリからの再開処理を行った回数をハード
ディスクでカウントする場合の例を示す図である。
【符号の説明】
11 プロセッサ 12 キャッシュメモリ 13 メインメモリ 21 エントリ 22 ブロックアドレス部 23 ブロックデータ部 24 中間状態表示部 25 バリッド表示部 26 書換え表示部 27 ANDゲート 28 ORゲート 29 WDT 30 ブロック内容表示部 31 プロセッサバス 32 メモリバス 33 確定指示信号 34,36,39 信号線 35 無効化指示信号 37 ソフトウェアへの割り込み信号 38 ソフトウェアからのリセット指示信号 100 情報処理装置 110 プロセッサ 120 キャッシュメモリ 130 エントリ 131 ブロック内容表示手段 132 中間状態表示手段 133 バリッド表示手段 140 メインメモリ 150 障害検出手段 250、260 障害検出手段 300 プロセッサ 310 ソフトウェア 311 アプリケーション部 312 個別部 313 障害検出手段 501 中間状態表示部L 502 バリッド表示部L 503 書換え表示部L 504 WDTL 505 再開処理単位Lに関するソフトウェアからのリ
セット指示信号 506 ORゲート 507 無効化指示信号L 508 確定指示信号L 509 信号線 510 ANDゲート 701 I/Oバス 702 ハードディスク 801 メインメモリ再開回数カウンタ 802 監視タイマ 803 ファイルロード再開指示信号

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサ、キャッシュメモリ及びメイ
    ンメモリを含む情報処理装置において、 該メインメモリのアドレス空間は複数のブロックに分割
    され、 該キャッシュメモリは複数のエントリを含み、該各エン
    トリは該メインメモリのブロック内容を格納するブロッ
    ク内容表示手段と、該プロセッサで実行される処理が該
    エントリに格納しているブロックを書き換えたことを示
    す中間状態情報を格納する中間状態表示手段と、該エン
    トリに格納しているブロックの情報が有効であるか無効
    であるかを示す情報を格納するバリッド表示手段とを具
    備し、 該情報処理装置は、該プロセッサで実行中の処理の障害
    を検出する障害検出手段を含み、 該プロセッサがエントリの該ブロック内容表示手段の内
    容を書き換える場合に、該キャッシュメモリは、当該エ
    ントリの中間状態表示手段に該中間状態情報を設定し、 該障害検出手段で処理の障害が検出されない場合は、該
    プロセッサは予め設定したタイミングで該キャッシュメ
    モリのエントリの中間状態表示手段の該中間状態情報を
    解除し、 該障害検出手段により処理の障害が検出された場合は、
    キャッシュメモリ内の中間状態表示手段に該中間状態情
    報が設定されているエントリのバリッド表示手段を無効
    化することを特徴とする再開処理方法。
  2. 【請求項2】 プロセッサ、キャッシュメモリ及びメイ
    ンメモリを含む情報処理装置において、 該メインメモリのアドレス空間は複数のブロックに分割
    され、 該キャッシュメモリは、複数のエントリを含み、該各エ
    ントリは、該メインメモリのブロック内容を格納するブ
    ロック内容表示手段、該プロセッサで実行される処理が
    エントリに格納しているブロックを書き換えたことを示
    す中間状態情報を格納する中間状態表示手段及び、該エ
    ントリに格納しているブロックの情報が有効であるか無
    効であるかを示す情報を格納するバリッド表示手段を具
    備し、 該情報処理装置は、該プロセッサで実行中の処理の障害
    を検出する方法が異なる障害検出手段を2種類以上具備
    し、 該プロセッッサがエントリのブロック内容表示手段を書
    き換える場合に、該キャッシュメモリは、当該エントリ
    の中間状態表示手段に該中間状態情報を設定し、 該障害検出手段のいずれにおいても処理の障害が検出さ
    れない場合に、該プロセッサは予め設定したタイミング
    で該キャッシュメモリのエントリの中間状態表示手段の
    該中間状態情報を解除し、 該障害検出手段のいずれかで処理の障害が検出された場
    合に、キャッシュメモリ内の中間状態表示手段に該中間
    状態情報が設定されているエントリのバリッド手段を無
    効化することを特徴とする再開処理方法。
  3. 【請求項3】 プロセッサ、キャッシュメモリ、メイン
    メモリで構成され、ソフトウェアの構成がアプリケーシ
    ョン部と個別部からなる情報処理装置において、 該メインメモリのアドレス空間は複数のブロックに分割
    され、 該キャッシュメモリは複数のエントリを含み、該各エン
    トリは該メインメモリのブロック内容を格納するブロッ
    ク内容表示手段と、該プロセッサで実行される処理が該
    エントリに格納しているブロックを書き換えたことを示
    す中間状態情報を格納する中間状態表示手段と、該エン
    トリに格納しているブロックの情報が有効であるか無効
    であるかを示す情報を格納するバリッド表示手段を具備
    し、 該プロセッサで実行中のソフトウェアの個別部は、該プ
    ロセッサで実行中のソフトウェアのアプリケーション部
    の障害を検出する障害検出手段を含み、 該プロセッサがエントリのブロック内容表示手段を書き
    換える場合に、該キャッシュメモリは、当該エントリの
    中間状態表示手段に該中間状態情報を設定し、 該障害検出手段で処理の障害が検出されない場合に、該
    プロセッサは予め設定したタイミングで該キャッシュメ
    モリのエントリの中間状態表示手段の該中間状態情報を
    解除し、 該障害検出手段で処理の障害が検出された場合、キャッ
    シュメモリ内の中間状態表示手段に該中間状態情報が設
    定されているエントリのバリッド表示手段を無効化する
    ことを特徴とする再開処理方法。
JP5113042A 1993-05-14 1993-05-14 再開処理方法 Pending JPH06324941A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5113042A JPH06324941A (ja) 1993-05-14 1993-05-14 再開処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5113042A JPH06324941A (ja) 1993-05-14 1993-05-14 再開処理方法

Publications (1)

Publication Number Publication Date
JPH06324941A true JPH06324941A (ja) 1994-11-25

Family

ID=14602018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5113042A Pending JPH06324941A (ja) 1993-05-14 1993-05-14 再開処理方法

Country Status (1)

Country Link
JP (1) JPH06324941A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH096546A (ja) * 1995-06-19 1997-01-10 Toshiba Corp ディスク制御システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH096546A (ja) * 1995-06-19 1997-01-10 Toshiba Corp ディスク制御システム

Similar Documents

Publication Publication Date Title
KR100233207B1 (ko) 캐시 플러시 장치 및 이 장치를 구비한 계산기 시스템
US6965989B1 (en) System and method for fast reboot of a file server
US8327188B2 (en) Hardware transactional memory acceleration through multiple failure recovery
US6076183A (en) Method of memory error correction by scrubbing
JPH1078918A (ja) チェックポイント処理加速装置および同装置を適用した計算機システム
EP3177993B1 (en) Write operations to non-volatile memory
CN108694094B (zh) 用于处理存储器访问操作的装置和方法
CN107003897B (zh) 监控事务处理资源的利用率
JP4181500B2 (ja) ブロッキングなく、キャッシュ参照間に直面するビットエラーを修正する方法および装置
CN109284176B (zh) 中断响应方法、装置及计算机可读存储介质
JP3723243B2 (ja) プロセッサ装置及びその制御方法
CN115576734B (zh) 一种多核异构日志存储方法和系统
JP3070453B2 (ja) 計算機システムのメモリ障害回復方法および回復システム
JPH07120292B2 (ja) 情報処理システム
US20130055017A1 (en) Device and method for restoring information in a main storage unit
JP2968484B2 (ja) マルチプロセッサ計算機及びマルチプロセッサ計算機における障害復旧方法
JP3555847B2 (ja) キャッシュメモリの障害処理装置、キャッシュメモリの障害処理方法、マルチプロセッサシステム
US20200371929A1 (en) Method and apparatus for architectural cache transaction logging
KR101629411B1 (ko) 레벨0 캐시 제어 장치 및 방법
JP3427901B2 (ja) メモリ内容回復装置
JP2973425B2 (ja) 障害処理方法およびそのための装置
JPH08137748A (ja) コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法
JPH04125753A (ja) メモリのオンライン診断方式
EP0128353A2 (en) Error recovery of non-store-through cache
JPH0135373B2 (ja)