JPH0812619B2 - リカバリ制御システム及びエラー回復方法 - Google Patents
リカバリ制御システム及びエラー回復方法Info
- Publication number
- JPH0812619B2 JPH0812619B2 JP4214504A JP21450492A JPH0812619B2 JP H0812619 B2 JPH0812619 B2 JP H0812619B2 JP 4214504 A JP4214504 A JP 4214504A JP 21450492 A JP21450492 A JP 21450492A JP H0812619 B2 JPH0812619 B2 JP H0812619B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- recovery
- error
- checkpoint
- instruction
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Retry When Errors Occur (AREA)
Description
【0001】
【産業上の利用分野】本発明はエラー検出およびリカバ
リのための手段を有するデータ処理システムに関し、更
に詳細には、命令ストリーム内のチェックポイントとエ
ラーをもどし、そこから実行を行うことによりエラーか
らリカバリを行うリカバリ制御レジスタを用いたリカバ
リ制御システムに関する。
リのための手段を有するデータ処理システムに関し、更
に詳細には、命令ストリーム内のチェックポイントとエ
ラーをもどし、そこから実行を行うことによりエラーか
らリカバリを行うリカバリ制御レジスタを用いたリカバ
リ制御システムに関する。
【0002】
【従来の技術】データシ処理システム内でのランダムエ
ラーの発生は信頼性と性能に大きな悪影響を生じさせう
る。ランダム、すなわち「ソフト」エラーは期待される
出力すなわち結果からの、システム内の連続する障害に
よるものではないずれである。これらランダムエラーは
一般に電気的ノイズまたは他のランダムに発生するソー
スにより生じる非再生性の障害シンドロームを特徴とす
る。他方、「ハード」エラーは一般に電気的または機械
的要素の故障に関連するものであって再生可能である。
ラーの発生は信頼性と性能に大きな悪影響を生じさせう
る。ランダム、すなわち「ソフト」エラーは期待される
出力すなわち結果からの、システム内の連続する障害に
よるものではないずれである。これらランダムエラーは
一般に電気的ノイズまたは他のランダムに発生するソー
スにより生じる非再生性の障害シンドロームを特徴とす
る。他方、「ハード」エラーは一般に電気的または機械
的要素の故障に関連するものであって再生可能である。
【0003】初期のシステムにおいては、ランダムエラ
ーはシステムをリセットし、はじめからそのプログラム
を再実行することによって処置されていた。プログラム
が長いものになるにつれ、この方法は使用不能となって
いる。このように、その後のシステムではプログラムを
セグメント化してエラーがエラーの生じたその内の一つ
のセグメントのはじめからそのプログラムを再走行させ
ることにより処理出来るようにしている。データ処理シ
ステムとオペレーティングシステムはそのため(例えば
多重タスクのため)より複雑になり、時間に対する依存
性が高くなり、この方法も不適当なものとなっている。
ーはシステムをリセットし、はじめからそのプログラム
を再実行することによって処置されていた。プログラム
が長いものになるにつれ、この方法は使用不能となって
いる。このように、その後のシステムではプログラムを
セグメント化してエラーがエラーの生じたその内の一つ
のセグメントのはじめからそのプログラムを再走行させ
ることにより処理出来るようにしている。データ処理シ
ステムとオペレーティングシステムはそのため(例えば
多重タスクのため)より複雑になり、時間に対する依存
性が高くなり、この方法も不適当なものとなっている。
【0004】米国特許第4901233号明細書に開示
されているシステムは複数の命令を同時に且つ非シーケ
ンスで実行出来る。多数の命令が任意の与えられた時点
で或る実行状態となることが出来る。そのようなシステ
ムでは命令がシーケンスではなく実行出来るが、ほとん
どの命令の結果は一つの命令が「アーキテクチャ的に完
了」するまでそのシステムの他の部分には可視的とはな
らない。その命令の完了は、その命令の実行が終了した
とき生じるのであり、その命令に関連するすべての例外
がテストされてリポートされ、そしてその命令が論理的
に完了する次のものとなる(すなわち命令はそれらの論
理的プログラムシーケンスで完了する)。そのような設
計にもとづき中央プロセッサ(CP)をエラーからリカ
バリする試みは次の事項を含んでいる。
されているシステムは複数の命令を同時に且つ非シーケ
ンスで実行出来る。多数の命令が任意の与えられた時点
で或る実行状態となることが出来る。そのようなシステ
ムでは命令がシーケンスではなく実行出来るが、ほとん
どの命令の結果は一つの命令が「アーキテクチャ的に完
了」するまでそのシステムの他の部分には可視的とはな
らない。その命令の完了は、その命令の実行が終了した
とき生じるのであり、その命令に関連するすべての例外
がテストされてリポートされ、そしてその命令が論理的
に完了する次のものとなる(すなわち命令はそれらの論
理的プログラムシーケンスで完了する)。そのような設
計にもとづき中央プロセッサ(CP)をエラーからリカ
バリする試みは次の事項を含んでいる。
【0005】1) 現在処理中の多くの命令の内のどれ
がエラーの影響を受けたかを決定すること、 2) そのエラーが生じる前の既知の良好な状態を決定
してCPをその状態にもどすこと、及び 3) それら命令を再試行しつつ論理プログラムシーケ
ンスに一致するように機械の状態を変更すること。
がエラーの影響を受けたかを決定すること、 2) そのエラーが生じる前の既知の良好な状態を決定
してCPをその状態にもどすこと、及び 3) それら命令を再試行しつつ論理プログラムシーケ
ンスに一致するように機械の状態を変更すること。
【0006】図1は種々な実行状態にある6個の仮定的
な命令を示すものである。このチャート上の各区分はク
ロックサイクルまたはマシンサイクルを示す。一つのマ
シン命令の実行は行なわれるべき機能、データおよび資
源の使用の可能性、その他により多くのマシンサイクル
に対する一つをとる。これら命令はプログラムされた順
に番号をつけられる。すなわち命令0の次に命令1があ
り、その次に命令2となり、以下同様である。命令0は
サイクル1で実行を開始し、サイクル6まで実行を完了
しない。命令2と3は命令1の前に終了するが、これら
は命令1がプログラムをその論理的にプログラムされた
順に実行するために完了するまで完了できない。
な命令を示すものである。このチャート上の各区分はク
ロックサイクルまたはマシンサイクルを示す。一つのマ
シン命令の実行は行なわれるべき機能、データおよび資
源の使用の可能性、その他により多くのマシンサイクル
に対する一つをとる。これら命令はプログラムされた順
に番号をつけられる。すなわち命令0の次に命令1があ
り、その次に命令2となり、以下同様である。命令0は
サイクル1で実行を開始し、サイクル6まで実行を完了
しない。命令2と3は命令1の前に終了するが、これら
は命令1がプログラムをその論理的にプログラムされた
順に実行するために完了するまで完了できない。
【0007】米国特許第4044337号明細書に示さ
れるエラーリカバリ機構は機械命令の実行の開始時にチ
ェックポイントを設けている。命令は米国特許第490
1233号明細書のシステムでは非シーケンスで実行さ
れるから、この技術のこのシステムへの適用には一時に
存在しうる命令の最大数までのチェックポイントをつく
り、それら命令を再実行する順序を分ける必要がある。
これを行なうためのチェックポイント情報の量は大きく
なり、チェックポイント情報自体がエラーにより損傷を
受ける可能性がそれ故増大し、このプロセッサのエラー
からのリカバリの全体としての能力は低下する。
れるエラーリカバリ機構は機械命令の実行の開始時にチ
ェックポイントを設けている。命令は米国特許第490
1233号明細書のシステムでは非シーケンスで実行さ
れるから、この技術のこのシステムへの適用には一時に
存在しうる命令の最大数までのチェックポイントをつく
り、それら命令を再実行する順序を分ける必要がある。
これを行なうためのチェックポイント情報の量は大きく
なり、チェックポイント情報自体がエラーにより損傷を
受ける可能性がそれ故増大し、このプロセッサのエラー
からのリカバリの全体としての能力は低下する。
【0008】まだ終了していない前の命令が仮定した命
令シーケンスに変化を生じるならば、非シーケンスで実
行される命令のポテンシャルがキャンセルされねばなら
ないことにより、更に複雑となる。これは処理のある時
点で係属となる、あるいはイネーブルとなった期待され
たところとは異なるように解決する分岐または例外また
は非同期中断(例えばI/O、外部または押え込み可能
な機械チェックの中断またはオペレータ要求)によるも
のと考えられる。これはまた、保存されるべきチェック
ポイントおよび捨てるべきチェックポイントを決定する
ために再試行プロセス中に区分けされねばならない。
令シーケンスに変化を生じるならば、非シーケンスで実
行される命令のポテンシャルがキャンセルされねばなら
ないことにより、更に複雑となる。これは処理のある時
点で係属となる、あるいはイネーブルとなった期待され
たところとは異なるように解決する分岐または例外また
は非同期中断(例えばI/O、外部または押え込み可能
な機械チェックの中断またはオペレータ要求)によるも
のと考えられる。これはまた、保存されるべきチェック
ポイントおよび捨てるべきチェックポイントを決定する
ために再試行プロセス中に区分けされねばならない。
【0009】米国特許第4901233号明細書のプロ
セッサにおいていくつかの命令がすでに終了しているが
まだ完了していないとすれば、他の方法は終了した命令
の結果を保存し、米国特許第4044337号明細書の
アルゴリズムをまだ終了していない命令にのみ適用する
ことである。
セッサにおいていくつかの命令がすでに終了しているが
まだ完了していないとすれば、他の方法は終了した命令
の結果を保存し、米国特許第4044337号明細書の
アルゴリズムをまだ終了していない命令にのみ適用する
ことである。
【0010】図1において、サイクル5にエラーが生じ
たとすると、命令4は開始しており、命令3はそのとき
終了しつつあり、命令2はまだ完了していないが終了し
ている。このエラーはプロセス中の命令の内の1つ、い
くつか、すべてに影響するか、あるいは全く影響しない
ことになるから、命令1,3,4は再実行しなくてはな
らない。命令2は終了しているが、その結果の保存には
次の問題がある。
たとすると、命令4は開始しており、命令3はそのとき
終了しつつあり、命令2はまだ完了していないが終了し
ている。このエラーはプロセス中の命令の内の1つ、い
くつか、すべてに影響するか、あるいは全く影響しない
ことになるから、命令1,3,4は再実行しなくてはな
らない。命令2は終了しているが、その結果の保存には
次の問題がある。
【0011】1) どの命令が終了しているかを決定
し、次にどれが再実行されるべきかを区分するためのロ
ジックは実行不能な程複雑である。
し、次にどれが再実行されるべきかを区分するためのロ
ジックは実行不能な程複雑である。
【0012】2) 仮想した命令シーケンスの変化はチ
ェックポイントの取捨およびこの場合にはチェックポイ
ントだけでなく終了した結果もまだ区分けしなければな
らない。
ェックポイントの取捨およびこの場合にはチェックポイ
ントだけでなく終了した結果もまだ区分けしなければな
らない。
【0013】3) 一つの命令の終了状態を保持するロ
ジックのソフトエラーはその情報が再試行を要求するか
らその命令をとり出し不能にする。
ジックのソフトエラーはその情報が再試行を要求するか
らその命令をとり出し不能にする。
【0014】更に、エンタープライズ・システム・アー
キテクチャ/390プリンシプルズ・オブ・オペレーシ
ョン(ESA/390 POP)に示される仕様に合う
ように設計されたプロセッサにより実行されるいくつか
のオペレーションは、結果が可視化され、あるいは他の
システムファシリティ内の反応をそれらの実行の部分と
して、それらの完了の前に生じさせるように要求しある
いは行なわれる。例えばいくつかのコンピュータシステ
ムではI/Oサブシステムと中央プロセッサ間の通信は
制御ブロックとして知られる記憶手段内のデータエリア
にインターロックされたインターロック更新を介して行
なわれる。
キテクチャ/390プリンシプルズ・オブ・オペレーシ
ョン(ESA/390 POP)に示される仕様に合う
ように設計されたプロセッサにより実行されるいくつか
のオペレーションは、結果が可視化され、あるいは他の
システムファシリティ内の反応をそれらの実行の部分と
して、それらの完了の前に生じさせるように要求しある
いは行なわれる。例えばいくつかのコンピュータシステ
ムではI/Oサブシステムと中央プロセッサ間の通信は
制御ブロックとして知られる記憶手段内のデータエリア
にインターロックされたインターロック更新を介して行
なわれる。
【0015】インターロック更新はまずハードウェア・
インタロックフェッチを用いてロックバイトと呼ばれる
制御ブロックの特別の部分をとり出すことからなる。ハ
ードロック獲得とも呼ばれるハードウェア・インターロ
ック・フェッチは、そのようなフェッチのリクエスタが
データに対する排他的な権利を有し、他のリクエスタは
インタロックが解かれるまでそのデータを記憶したり取
り出したりしないようにする機構である。ハードロック
が得られると、ソフトロックと呼ばれる識別タグがこの
バイトに置かれ、このロックバイトが記憶され、ハード
ロックが解放される。このソフトロックでカバーされる
データを使用したい他のエレメントはロックバイトのこ
のタグを見てロックバイトがクリアされるまでそのデー
タを使用しないことになる。ソフトロックを得るにもそ
れを解放するにも命令が完了する前に記憶手段を更新す
る必要がある。更に、プロセッサがソフトロックの制御
を行なうときには制御ブロック内の他のエリアを更新し
て所望のI/Oオペレーションを開始し、I/Oサブシ
ステムの状態を変化させる。これらI/O命令の一つの
実行中にエラーが生じると、記憶手段が変更されてその
効果が潜在的に他のシステムエレメントにより見られ
る。変更された記憶位置も他の処理エレメントに反応を
生じさせている。このように、そのオペレーションのス
タート時またはその前にプロセッサをその状態にバック
アップするだけでは命令が完了していなくても実行の効
果をなくすことは出来ない。従ってソフトエラーが生じ
たときそのようなタイプのオペレーションの特殊な取扱
いが必要となる。しかしながら、処理されるべき特殊な
ケースの数は、開発され、維持され、そしてテストされ
るべきアルゴリズムの数を減らすために最少とすべきで
ある。
インタロックフェッチを用いてロックバイトと呼ばれる
制御ブロックの特別の部分をとり出すことからなる。ハ
ードロック獲得とも呼ばれるハードウェア・インターロ
ック・フェッチは、そのようなフェッチのリクエスタが
データに対する排他的な権利を有し、他のリクエスタは
インタロックが解かれるまでそのデータを記憶したり取
り出したりしないようにする機構である。ハードロック
が得られると、ソフトロックと呼ばれる識別タグがこの
バイトに置かれ、このロックバイトが記憶され、ハード
ロックが解放される。このソフトロックでカバーされる
データを使用したい他のエレメントはロックバイトのこ
のタグを見てロックバイトがクリアされるまでそのデー
タを使用しないことになる。ソフトロックを得るにもそ
れを解放するにも命令が完了する前に記憶手段を更新す
る必要がある。更に、プロセッサがソフトロックの制御
を行なうときには制御ブロック内の他のエリアを更新し
て所望のI/Oオペレーションを開始し、I/Oサブシ
ステムの状態を変化させる。これらI/O命令の一つの
実行中にエラーが生じると、記憶手段が変更されてその
効果が潜在的に他のシステムエレメントにより見られ
る。変更された記憶位置も他の処理エレメントに反応を
生じさせている。このように、そのオペレーションのス
タート時またはその前にプロセッサをその状態にバック
アップするだけでは命令が完了していなくても実行の効
果をなくすことは出来ない。従ってソフトエラーが生じ
たときそのようなタイプのオペレーションの特殊な取扱
いが必要となる。しかしながら、処理されるべき特殊な
ケースの数は、開発され、維持され、そしてテストされ
るべきアルゴリズムの数を減らすために最少とすべきで
ある。
【0016】システムファシリティが完了する前にそれ
らを更新するそのようなオペレーションの二つの他の例
は拡張記憶機構に対するページインおよびページアウト
の実行である。これら命令の実行中、一つのデータペー
ジが主記憶手段に、あるいはそこから移動される。いく
つかの実行についてはその命令が完了する前にページン
グが生じる。動かされたデータはこのようにして、その
命令を実行する中央プロセッサではない処理エレメント
により見ることが出来る。この命令の実行中にエラーが
生じると、その結果はその命令の実行前にプロセッサを
その状態にバックアップすることによってはもとのよう
にすることは出来ない。
らを更新するそのようなオペレーションの二つの他の例
は拡張記憶機構に対するページインおよびページアウト
の実行である。これら命令の実行中、一つのデータペー
ジが主記憶手段に、あるいはそこから移動される。いく
つかの実行についてはその命令が完了する前にページン
グが生じる。動かされたデータはこのようにして、その
命令を実行する中央プロセッサではない処理エレメント
により見ることが出来る。この命令の実行中にエラーが
生じると、その結果はその命令の実行前にプロセッサを
その状態にバックアップすることによってはもとのよう
にすることは出来ない。
【0017】エラーリカバリでの付加的な援助として、
コンピューターシステムにチェックポイントレジスタを
設けることは知られている。そのようなファシリティは
文献“CHECKPOINT REGISTER ”(IBM Technical Disclos
ure Bulletin, Vol. 27, No.4A September 1984, pp.22
31〜2232)に示されている。中央プロセッサの命令エレ
メントに置かれるこのチェックポイントレジスタはエミ
ットフィールドを介して、中央プロセッサのマイクロコ
ードにより任意の値にセット出来る。このチェックポイ
ントレジスタは各命令の開始時(有効な第1サイクル)
にリセットされる。このレジスタは再試行および詳細な
エラーリポートについてCPマイクロコードにより検査
することができる。
コンピューターシステムにチェックポイントレジスタを
設けることは知られている。そのようなファシリティは
文献“CHECKPOINT REGISTER ”(IBM Technical Disclos
ure Bulletin, Vol. 27, No.4A September 1984, pp.22
31〜2232)に示されている。中央プロセッサの命令エレ
メントに置かれるこのチェックポイントレジスタはエミ
ットフィールドを介して、中央プロセッサのマイクロコ
ードにより任意の値にセット出来る。このチェックポイ
ントレジスタは各命令の開始時(有効な第1サイクル)
にリセットされる。このレジスタは再試行および詳細な
エラーリポートについてCPマイクロコードにより検査
することができる。
【0018】エラーがCP内に生じると、そのCPクロ
ックが停止する。保守および支援サービスファシリティ
(MSSF)がこのときCP内のチェックポイントレジ
スタを含むレジスタとトリガを走査する。MSSFはチ
ェックポイントレジスタのパリティエラーを示すエラー
トリガを検査する。このトリガがオンであれば、MSS
Fはそのエラーを再試行不能と判断し、システムダメー
ジ(SD)インジケーションがセットされ、CPがチェ
ックストップ状態にセットされる。このときMSSFは
チェックポイントレジスタを検査する。64〜255の
数値はシステムダメージを示す。このときMSSFはC
P内の非再試行可能なトリガを検査する。再試行可能で
あればシステムダメージは再試行しきい値となり、機械
チェック中断が採られるときにのみリポートされる。
ックが停止する。保守および支援サービスファシリティ
(MSSF)がこのときCP内のチェックポイントレジ
スタを含むレジスタとトリガを走査する。MSSFはチ
ェックポイントレジスタのパリティエラーを示すエラー
トリガを検査する。このトリガがオンであれば、MSS
Fはそのエラーを再試行不能と判断し、システムダメー
ジ(SD)インジケーションがセットされ、CPがチェ
ックストップ状態にセットされる。このときMSSFは
チェックポイントレジスタを検査する。64〜255の
数値はシステムダメージを示す。このときMSSFはC
P内の非再試行可能なトリガを検査する。再試行可能で
あればシステムダメージは再試行しきい値となり、機械
チェック中断が採られるときにのみリポートされる。
【0019】チェックポイントレジスタに含まれる値は
MSSFに、エラーが生じたときCP内でどのタイプの
オペレーションが進行中であったか、並びにCPを論理
的に一致する状態にもどすためにMSSFに特殊なアク
ションが必要かどうか、あるいはCPがシステムリセッ
トによる以外では(すなわち「システムダメージ」条件
が存在する)一致状態にもどし得ないこと、を知らせ
る。
MSSFに、エラーが生じたときCP内でどのタイプの
オペレーションが進行中であったか、並びにCPを論理
的に一致する状態にもどすためにMSSFに特殊なアク
ションが必要かどうか、あるいはCPがシステムリセッ
トによる以外では(すなわち「システムダメージ」条件
が存在する)一致状態にもどし得ないこと、を知らせ
る。
【0020】要約すると、チェックポイントレジスタは
MSSFにCPの内部状態を知らせてエラーリカバリ
(チェックポイント再試行)およびプログラムへのエラ
ーリポート(機械チェック割込み)を行なわせる手段で
ある。
MSSFにCPの内部状態を知らせてエラーリカバリ
(チェックポイント再試行)およびプログラムへのエラ
ーリポート(機械チェック割込み)を行なわせる手段で
ある。
【0021】
【発明が解決しようとする課題】以上述べた従来のチェ
ックポイントレジスタはエラーリカバリについて多くの
利点を有するが、チェックポイントの完了と同期したク
リスプ遷移を与えるものではない。上述したレジスタで
はそれに入るデータは直ちにMSSFに対して使用可能
である。米国特許第4901233号明細書に開示され
ているシステムでは、チェックポイント遷移が命令完了
でマークされるが、そのレジスタ内に現在あるデータは
正しくないかあるいは過早でありうる。このように、M
SSFに与えられたデータが古くも過早でもないように
する機構が必要である。
ックポイントレジスタはエラーリカバリについて多くの
利点を有するが、チェックポイントの完了と同期したク
リスプ遷移を与えるものではない。上述したレジスタで
はそれに入るデータは直ちにMSSFに対して使用可能
である。米国特許第4901233号明細書に開示され
ているシステムでは、チェックポイント遷移が命令完了
でマークされるが、そのレジスタ内に現在あるデータは
正しくないかあるいは過早でありうる。このように、M
SSFに与えられたデータが古くも過早でもないように
する機構が必要である。
【0022】従って本発明の目的は命令処理の経過を維
持し、チェックポイントの完了と同期してエラーリカバ
リ処理ファシリティに正しくタイミングよくエラーリカ
バリ情報を与えるための手段を含むリカバリ制御システ
ムを提供することである。
持し、チェックポイントの完了と同期してエラーリカバ
リ処理ファシリティに正しくタイミングよくエラーリカ
バリ情報を与えるための手段を含むリカバリ制御システ
ムを提供することである。
【0023】
【課題を解決するための手段】本発明のリカバリ制御シ
ステムで使用されるリカバリ制御レジスタは、マイクロ
コード用のものであり、2個の多ビットレジスタ、1個
のステージ型レジスタおよび1個の即時型レジスタとし
て具体化される。これらレジスタは新しいデータがイン
ゲートされないか、あるいは新しいデータがインゲート
された後に明示的に直前の値にリセットされるならば、
前の値を保持するようなタイプのものである。即時型レ
ジスタは情報を含み、これがCPマイクロコードで読ま
れてリカバリ中に使用される。ステージ型レジスタはプ
ラットフォームであり、そこで経過すなわちフットプリ
ント(進行中のオペレーションおよび命令実行中の種々
のシステムファシリティの状態を示す)が再試行チェッ
クポイントの変化前にCPマイクロコードで組立てられ
る。CPマイクロコードは“SET”、“AND”およ
び“OR”機能を用いていずれかのレジスタを通して動
作しうる。これらオペレータの選択およびそれらレジス
タをビットレジスタに分けるための決定はマイクロコー
ドに、新チェックポイント値の設定時に最大のフレキシ
ビリティを与える。
ステムで使用されるリカバリ制御レジスタは、マイクロ
コード用のものであり、2個の多ビットレジスタ、1個
のステージ型レジスタおよび1個の即時型レジスタとし
て具体化される。これらレジスタは新しいデータがイン
ゲートされないか、あるいは新しいデータがインゲート
された後に明示的に直前の値にリセットされるならば、
前の値を保持するようなタイプのものである。即時型レ
ジスタは情報を含み、これがCPマイクロコードで読ま
れてリカバリ中に使用される。ステージ型レジスタはプ
ラットフォームであり、そこで経過すなわちフットプリ
ント(進行中のオペレーションおよび命令実行中の種々
のシステムファシリティの状態を示す)が再試行チェッ
クポイントの変化前にCPマイクロコードで組立てられ
る。CPマイクロコードは“SET”、“AND”およ
び“OR”機能を用いていずれかのレジスタを通して動
作しうる。これらオペレータの選択およびそれらレジス
タをビットレジスタに分けるための決定はマイクロコー
ドに、新チェックポイント値の設定時に最大のフレキシ
ビリティを与える。
【0024】
【作用】リカバリアルゴリズムにより、リカバリの経過
が直ちに変化することを要求されるとき、マイクロコー
ドは即時型レジスタで動作する。しかしながら、リカバ
リの経過は、例えば記憶手段の解放のような変化を要求
する事象と同期する必要があれば、マイクロコードが適
正な経過をステージ型レジスタに入れ、CP内の完了/
割込みロジックにリリース信号を出す。このリリースが
処理され、後に完了リポートとして可変数のサイクルを
同報通信するときチェックポイントは進められて即時型
レジスタがそのサイクルで更新され、それにより一つの
リカバリ窓が次の窓へのクリスプ遷移を許す。
が直ちに変化することを要求されるとき、マイクロコー
ドは即時型レジスタで動作する。しかしながら、リカバ
リの経過は、例えば記憶手段の解放のような変化を要求
する事象と同期する必要があれば、マイクロコードが適
正な経過をステージ型レジスタに入れ、CP内の完了/
割込みロジックにリリース信号を出す。このリリースが
処理され、後に完了リポートとして可変数のサイクルを
同報通信するときチェックポイントは進められて即時型
レジスタがそのサイクルで更新され、それにより一つの
リカバリ窓が次の窓へのクリスプ遷移を許す。
【0025】
【実施例】本発明を図2および3を参照して説明する。
図2は3個の中央プロセッサ202A〜202Cを含む
中央電子複合体(CEC)のブロック図である。各中央
プロセッサ(CP)は本来の第1レベル高速バッファ
(L1)204A〜204Cを有する。これらL1は第
2レベル高速バッファ(L2)206に接続されてい
る。このバッファL2はすべてのCPにより共用され
る。L2 206は主記憶機構である中央記憶機構20
8にシステム制御エレメント(SCE)218を介して
接続される。ここで用いる「記憶」はいずれかのレベル
の高速バッファ(204A〜204Cまたは206)ま
たは中央記憶機構208自体に存在するデータを参照す
るために用いられる。
図2は3個の中央プロセッサ202A〜202Cを含む
中央電子複合体(CEC)のブロック図である。各中央
プロセッサ(CP)は本来の第1レベル高速バッファ
(L1)204A〜204Cを有する。これらL1は第
2レベル高速バッファ(L2)206に接続されてい
る。このバッファL2はすべてのCPにより共用され
る。L2 206は主記憶機構である中央記憶機構20
8にシステム制御エレメント(SCE)218を介して
接続される。ここで用いる「記憶」はいずれかのレベル
の高速バッファ(204A〜204Cまたは206)ま
たは中央記憶機構208自体に存在するデータを参照す
るために用いられる。
【0026】図2のCECは相互接続通信エレメント
(ICE)210Aを含んでいる。これはSCE21
8、拡張記憶機構(ES)212、チャンネルサブシス
テム210B間のデータ転送および通信を制御する。I
CE210Aとチャンネルサブシステム210Bは全体
としてI/Oサブシステムと呼ばれる。電源のオンオフ
およびシステム構成のようなシステムオペレーションお
よび支援機能はプロセッサコントローラエレメント(P
CE)216と呼ばれる支援プロセッサにより制御され
る。このPCE216はエラーからの回復に際しシステ
ムエレメントを援助するためにも用いられる。ESA/
390アーキテクチャに適合する機能チェックエラー処
理、チェックポイント同期化およびシステムの一般動作
はESA/390オペレーション原理(ESA/390
Principles of Operation )に示されている。
(ICE)210Aを含んでいる。これはSCE21
8、拡張記憶機構(ES)212、チャンネルサブシス
テム210B間のデータ転送および通信を制御する。I
CE210Aとチャンネルサブシステム210Bは全体
としてI/Oサブシステムと呼ばれる。電源のオンオフ
およびシステム構成のようなシステムオペレーションお
よび支援機能はプロセッサコントローラエレメント(P
CE)216と呼ばれる支援プロセッサにより制御され
る。このPCE216はエラーからの回復に際しシステ
ムエレメントを援助するためにも用いられる。ESA/
390アーキテクチャに適合する機能チェックエラー処
理、チェックポイント同期化およびシステムの一般動作
はESA/390オペレーション原理(ESA/390
Principles of Operation )に示されている。
【0027】図3は図2のCEC内の中央プロセッサの
一例の機能図である。周知のごとく、各CPへの第1レ
ベル高速バッファ(L1)は命令キャッシュ302とデ
ータキャッシュ310を含むスプリットキャッシュ形で
ある。命令キャッシュ302からの命令は命令フェッチ
制御ロジック(I−FETCH)303によりとり出さ
れて命令デコードロジック304に送られる。命令デコ
ードロジック304はどのタイプの命令を実行すべき
か、およびどのタイプのデータがその実行(汎用レジス
タ、浮動小数点レジスタ、記憶手段他からのデータ)に
必要かを決定し、その命令を適正な実行エレメント(浮
動小数点実行エレメント(FXE)322、分岐実行エ
レメント(BXE)324、汎用実行エレメント(GX
E)326またはシステム実行エレメント(SXE)3
28)および支援ロジック(レジスタ管理システム(R
MS)306、アドレス計算エレメント308および完
了/割込エレメント340)に送る。命令デコードロジ
ック304は制御ロジック304Aを含む。これはCP
がすべてまたは特定のタイプの命令(例えば前の直列命
令の実行中に直列化命令のデコードを不能または防止と
するために一つの命令を重ねて実行しなければならない
とき)のデコードを阻止または割込(そして割込解除/
再開)しうるようにする。
一例の機能図である。周知のごとく、各CPへの第1レ
ベル高速バッファ(L1)は命令キャッシュ302とデ
ータキャッシュ310を含むスプリットキャッシュ形で
ある。命令キャッシュ302からの命令は命令フェッチ
制御ロジック(I−FETCH)303によりとり出さ
れて命令デコードロジック304に送られる。命令デコ
ードロジック304はどのタイプの命令を実行すべき
か、およびどのタイプのデータがその実行(汎用レジス
タ、浮動小数点レジスタ、記憶手段他からのデータ)に
必要かを決定し、その命令を適正な実行エレメント(浮
動小数点実行エレメント(FXE)322、分岐実行エ
レメント(BXE)324、汎用実行エレメント(GX
E)326またはシステム実行エレメント(SXE)3
28)および支援ロジック(レジスタ管理システム(R
MS)306、アドレス計算エレメント308および完
了/割込エレメント340)に送る。命令デコードロジ
ック304は制御ロジック304Aを含む。これはCP
がすべてまたは特定のタイプの命令(例えば前の直列命
令の実行中に直列化命令のデコードを不能または防止と
するために一つの命令を重ねて実行しなければならない
とき)のデコードを阻止または割込(そして割込解除/
再開)しうるようにする。
【0028】レジスタ管理システム306は命令により
参照される対応する論理レジスタへの物理的レジスタ
(浮動小数点レジスタ(FPR)アレイ312と汎用レ
ジスタ(GPR)アレイ316)の割当てを制御する。
このレジスタ管理システムの構造と動作は米国特許第4
901233号明細書に詳細に開示されている。アドレ
ス計算エレメント(ACE)308はオペランドアドレ
スを計算する。
参照される対応する論理レジスタへの物理的レジスタ
(浮動小数点レジスタ(FPR)アレイ312と汎用レ
ジスタ(GPR)アレイ316)の割当てを制御する。
このレジスタ管理システムの構造と動作は米国特許第4
901233号明細書に詳細に開示されている。アドレ
ス計算エレメント(ACE)308はオペランドアドレ
スを計算する。
【0029】図3のCPは多数の特殊な実行エレメント
を含んでいる。それらのエレメントは夫々命令デコード
ロジック304とデータキャッシュ310から命令およ
びデータを受ける。周知のシステムと同様に、I−FE
TCHロジック303に関連する周知の分岐ヒストリテ
ーブル(BHT)はどの方向の分岐をとるかを予測す
る。そのような分岐予測に応じて次の命令が予測された
方向にとり出されて条件づきで実行される。分岐実行エ
レメント(BXE)324は予測が実際に解決する方法
およびその予測の正否の決定に用いられる。浮動小数点
実行エレメント(FXE)322が物理的な浮動小数点
レジスタアレイ312に接続されて、浮動小数点命令の
処理に用いられる。汎用実行エレメント(GXE)32
6が物理的な汎用レジスタアレイ316に接続される。
GXEは汎用レジスタ(GPR)を変更または用いる単
純な命令およびMOVE IMMEDIATEのような単純な記憶命令
のいくつかを実行する。
を含んでいる。それらのエレメントは夫々命令デコード
ロジック304とデータキャッシュ310から命令およ
びデータを受ける。周知のシステムと同様に、I−FE
TCHロジック303に関連する周知の分岐ヒストリテ
ーブル(BHT)はどの方向の分岐をとるかを予測す
る。そのような分岐予測に応じて次の命令が予測された
方向にとり出されて条件づきで実行される。分岐実行エ
レメント(BXE)324は予測が実際に解決する方法
およびその予測の正否の決定に用いられる。浮動小数点
実行エレメント(FXE)322が物理的な浮動小数点
レジスタアレイ312に接続されて、浮動小数点命令の
処理に用いられる。汎用実行エレメント(GXE)32
6が物理的な汎用レジスタアレイ316に接続される。
GXEは汎用レジスタ(GPR)を変更または用いる単
純な命令およびMOVE IMMEDIATEのような単純な記憶命令
のいくつかを実行する。
【0030】システム実行エレメント(SXE)はマイ
クロコードで駆動される実行エレメントである。SXE
マイクロコードはすべての「タイプ3」の命令(後述す
る)を行ない、CPリカバリマイクロコードを含む。シ
ステム実行エレメント328は一群のレジスタ318す
なわちワーキングレジスタ318A、制御レジスタ31
8B、アクセスレジスタ318Cに接続される。SXE
のワーキングレジスタは中間結果、記憶手段からのデー
タおよび容易にアクセス可能とされていなければならな
いシステムデータについての一時的記憶位置である。S
XE328もプログラム状態ワード(PSW)329の
ビット0〜31に接続される。ビット32〜63は別に
扱われているものであり、命令アドレス301である。
SXE328は記憶手段相互間形の論理、10進命令お
よびLOAD PSWとSTART INTERPRETIVE EXECUTIONのような
システム制御機能を実行する。
クロコードで駆動される実行エレメントである。SXE
マイクロコードはすべての「タイプ3」の命令(後述す
る)を行ない、CPリカバリマイクロコードを含む。シ
ステム実行エレメント328は一群のレジスタ318す
なわちワーキングレジスタ318A、制御レジスタ31
8B、アクセスレジスタ318Cに接続される。SXE
のワーキングレジスタは中間結果、記憶手段からのデー
タおよび容易にアクセス可能とされていなければならな
いシステムデータについての一時的記憶位置である。S
XE328もプログラム状態ワード(PSW)329の
ビット0〜31に接続される。ビット32〜63は別に
扱われているものであり、命令アドレス301である。
SXE328は記憶手段相互間形の論理、10進命令お
よびLOAD PSWとSTART INTERPRETIVE EXECUTIONのような
システム制御機能を実行する。
【0031】リカバリ制御レジスタ(RCR)327も
SXE328で制御される。リカバリ制御レジスタ32
7は実行中に組立てられてシステムエラーからの回復に
用いられるリカバリ経過(フットプリント)を維持する
ための機構を与える。CPリカバリマイクロコードはリ
カバリ制御レジスタ327をロードし、セットし、そし
て読取り、CPエラーリカバリ手順を実行する。
SXE328で制御される。リカバリ制御レジスタ32
7は実行中に組立てられてシステムエラーからの回復に
用いられるリカバリ経過(フットプリント)を維持する
ための機構を与える。CPリカバリマイクロコードはリ
カバリ制御レジスタ327をロードし、セットし、そし
て読取り、CPエラーリカバリ手順を実行する。
【0032】分岐実行エレメント324を除く各実行エ
レメントは関連する一群の記憶バッファ332A〜33
2Cを有する。これらバッファはその記憶を実行する命
令が完了しデータが図2の高速バッファ310と206
に動かすことが出来るようになるまで実行の結果を記憶
すべきものとして保持する。ACE308、FXE32
2、BXE324、GXE326、SXE328の夫々
も関連した入力命令待ち行列(図示せず)を有する。
レメントは関連する一群の記憶バッファ332A〜33
2Cを有する。これらバッファはその記憶を実行する命
令が完了しデータが図2の高速バッファ310と206
に動かすことが出来るようになるまで実行の結果を記憶
すべきものとして保持する。ACE308、FXE32
2、BXE324、GXE326、SXE328の夫々
も関連した入力命令待ち行列(図示せず)を有する。
【0033】データキャッシュ(D-Cache )310は記
憶待ち行列310A、D−キャッシュメモリアレイ31
0B、チェックポイントコントロール310Cを含む。
記憶待ち行列310Aは記憶バッファ332A〜332
Cで緩衝されたオペランド記憶手段についてのアドレス
と制御情報を含む。データキャッシュメモリアレイ31
0Bは周知のランダムアクセスキャッシュメモリアレイ
である。データキャッシュチェックポイントコントロー
ル310Cはいつチェックポイントの同期化が完了した
かを決定する。データキャッシュ310は図2のCEC
のレベル2高速バッファ206に接続される。
憶待ち行列310A、D−キャッシュメモリアレイ31
0B、チェックポイントコントロール310Cを含む。
記憶待ち行列310Aは記憶バッファ332A〜332
Cで緩衝されたオペランド記憶手段についてのアドレス
と制御情報を含む。データキャッシュメモリアレイ31
0Bは周知のランダムアクセスキャッシュメモリアレイ
である。データキャッシュチェックポイントコントロー
ル310Cはいつチェックポイントの同期化が完了した
かを決定する。データキャッシュ310は図2のCEC
のレベル2高速バッファ206に接続される。
【0034】完了/割込エレメント340は命令の実行
が終了したとき論理的な順でその命令を完了して実行中
に生じたプログラムの例外または係属中の非同期の割込
みを認識することにより命令完了および割込み処理を制
御する。命令完了の結果、条件コード314が更新され
る。これは他方において予測された分岐を解決するため
に分岐実行エレメント324により用いられる。
が終了したとき論理的な順でその命令を完了して実行中
に生じたプログラムの例外または係属中の非同期の割込
みを認識することにより命令完了および割込み処理を制
御する。命令完了の結果、条件コード314が更新され
る。これは他方において予測された分岐を解決するため
に分岐実行エレメント324により用いられる。
【0035】命令アドレス301は完了すべき次の命令
のアドレスであって、完了する最後の命令の結果として
の命令アドレスと等価である。これはSXE328、完
了/割込ロジック340により発生される完了リポート
341および分岐ターゲットアドレスにより更新され
る。
のアドレスであって、完了する最後の命令の結果として
の命令アドレスと等価である。これはSXE328、完
了/割込ロジック340により発生される完了リポート
341および分岐ターゲットアドレスにより更新され
る。
【0036】アドレス計算エレメント(ACE)308
はオペランドアドレスを計算し、オペランドフェッチお
よび記憶要求を発生し、それらをD−キャッシュ310
に送り、これがそれらを命令ストリームで特定される順
に処理する。オペランド記憶要求がなされると、オペラ
ンド記憶についての種々のアドレスと制御情報を含むエ
ントリを記憶待ち行列310Aに入れる。オペランド記
憶を含む命令が処理されるとき、実行ユニット(FXE
322、GXE326またはSXE328)が記憶の結
果を発生し、それを対応する記憶バッファ332(A〜
C)に置く。
はオペランドアドレスを計算し、オペランドフェッチお
よび記憶要求を発生し、それらをD−キャッシュ310
に送り、これがそれらを命令ストリームで特定される順
に処理する。オペランド記憶要求がなされると、オペラ
ンド記憶についての種々のアドレスと制御情報を含むエ
ントリを記憶待ち行列310Aに入れる。オペランド記
憶を含む命令が処理されるとき、実行ユニット(FXE
322、GXE326またはSXE328)が記憶の結
果を発生し、それを対応する記憶バッファ332(A〜
C)に置く。
【0037】図3の中央プロセッサは数個の異なる処理
エレメントによる命令の同時、無順序実行を許可する形
式のものである。命令は無順序で実行出来るが、ほとん
どの命令の結果はその命令が完了/割込エレメント34
0により「アーキテクチャ的に完了」されるまでCP以
外の他のシステムエレメントには可視とはされない。命
令の完了は命令の実行が終了し、その命令に関連するす
べての例外が検査されており、またその命令が論理的に
完了すべき次のものである(すなわち複数の命令が無順
序で実行されたとしてもそれらの論理プログラムシーケ
ンスをもって完了する)ときに生じる。
エレメントによる命令の同時、無順序実行を許可する形
式のものである。命令は無順序で実行出来るが、ほとん
どの命令の結果はその命令が完了/割込エレメント34
0により「アーキテクチャ的に完了」されるまでCP以
外の他のシステムエレメントには可視とはされない。命
令の完了は命令の実行が終了し、その命令に関連するす
べての例外が検査されており、またその命令が論理的に
完了すべき次のものである(すなわち複数の命令が無順
序で実行されたとしてもそれらの論理プログラムシーケ
ンスをもって完了する)ときに生じる。
【0038】一つの命令の完了を信号で知らせるために
完了/割込エレメント340で発生される「完了リポー
ト」341の結果、D−キャッシュ310はその命令が
完了したものとしてそれについてのすべてのエントリを
記憶待ち行列310Aにマークする。次に、D−キャッ
シュ310は記憶バッファ332(A〜C)から記憶結
果をとり出してそれらをD−キャッシュアレイ310B
に書込む。これら記憶結果はこのときレベル2高速バッ
ファ(L2)206にも送られて記憶される。L2 2
06はそれに送られる記憶が「行なわれた」時について
のインジケーションをD−キャッシュ310に与える。
本発明においては、記憶は、それらがエラーがほとんど
生じない、あるいは特定のオペランド記憶にはもはや関
連しないL2 206内の一点に達したとき「行なわれ
た」とする。記憶が「行なわれた」とされるその点の前
のオペランド記憶の処理におけるエラーは現在のチェッ
クポイントインターバルに対し分離される一つの記憶の
処理中のその点を越えるエラーはそのようには分離され
ない。
完了/割込エレメント340で発生される「完了リポー
ト」341の結果、D−キャッシュ310はその命令が
完了したものとしてそれについてのすべてのエントリを
記憶待ち行列310Aにマークする。次に、D−キャッ
シュ310は記憶バッファ332(A〜C)から記憶結
果をとり出してそれらをD−キャッシュアレイ310B
に書込む。これら記憶結果はこのときレベル2高速バッ
ファ(L2)206にも送られて記憶される。L2 2
06はそれに送られる記憶が「行なわれた」時について
のインジケーションをD−キャッシュ310に与える。
本発明においては、記憶は、それらがエラーがほとんど
生じない、あるいは特定のオペランド記憶にはもはや関
連しないL2 206内の一点に達したとき「行なわれ
た」とする。記憶が「行なわれた」とされるその点の前
のオペランド記憶の処理におけるエラーは現在のチェッ
クポイントインターバルに対し分離される一つの記憶の
処理中のその点を越えるエラーはそのようには分離され
ない。
【0039】完了/割込エレメント340からの完了リ
ポートが入ると、レジスタ管理システム306はそのポ
インタを、その命令により変更されたGPRとFPR値
が現在アーキテクチャにより決められた値であることを
示すように更新し、条件コード314が更新され、命令
アドレス301がインクリメントされ、あるいは変更さ
れる。
ポートが入ると、レジスタ管理システム306はそのポ
インタを、その命令により変更されたGPRとFPR値
が現在アーキテクチャにより決められた値であることを
示すように更新し、条件コード314が更新され、命令
アドレス301がインクリメントされ、あるいは変更さ
れる。
【0040】記憶バッファ332A〜332Cとレジス
タ管理システム306はプロセッサが多数の解決されな
い分岐をフェッチするのみならず実行しうるようにす
る。この機構は米国特許第4901233号明細書に開
示されている。一つの分岐が不正確に予測されるとする
と、その分岐から論理的に後のすべての命令は終了して
いても空とされることがある。すなわちそれらの結果が
緩衝されてそのシステムの他の部分にはまだ見えないか
らである。プログラム例外は同様に作用する。プログラ
ム例外を有する命令が完了すると、論理的にそれより後
のすべての命令が消される。プロセスが動作可能とされ
る非同期割込みは一つの命令が完了するとき処理され
る。ここでも論理的にその点より後の命令は空とされ、
処理は他の命令ストリームに向けられる。
タ管理システム306はプロセッサが多数の解決されな
い分岐をフェッチするのみならず実行しうるようにす
る。この機構は米国特許第4901233号明細書に開
示されている。一つの分岐が不正確に予測されるとする
と、その分岐から論理的に後のすべての命令は終了して
いても空とされることがある。すなわちそれらの結果が
緩衝されてそのシステムの他の部分にはまだ見えないか
らである。プログラム例外は同様に作用する。プログラ
ム例外を有する命令が完了すると、論理的にそれより後
のすべての命令が消される。プロセスが動作可能とされ
る非同期割込みは一つの命令が完了するとき処理され
る。ここでも論理的にその点より後の命令は空とされ、
処理は他の命令ストリームに向けられる。
【0041】それ故、究極の目的は、正しくなく予測さ
れた分岐または割込みと同様にソフトエラーを処理して
CPを最後の命令の完了の結果に等しい状態にもどすこ
とが出来るようにすることである。エラーが生じると、
それ以降の命令の完了を許さず、それによりチェックポ
イントを保存し、そして広義にはその点を越える命令を
捨てて多数のチェックポイントないし中間または最終結
果の維持を行なうための重要性を除き、また再実行され
るべき命令およびその順序を区分けする。
れた分岐または割込みと同様にソフトエラーを処理して
CPを最後の命令の完了の結果に等しい状態にもどすこ
とが出来るようにすることである。エラーが生じると、
それ以降の命令の完了を許さず、それによりチェックポ
イントを保存し、そして広義にはその点を越える命令を
捨てて多数のチェックポイントないし中間または最終結
果の維持を行なうための重要性を除き、また再実行され
るべき命令およびその順序を区分けする。
【0042】この方法によれば総合リカバリアルゴリズ
ムは直線的で簡単になる。このプロセッサは最終命令の
完了の結果としてその元の状態にもどされる。これは一
致状態であり、アーキテクチャ的に割込み可能なポイン
トである。この点において、プロセッサはその命令が何
であるかにかかわらず命令アドレス内のアドレスからフ
ェッチを開始することができる。更に、リカバリプロセ
ス中に保留中であった、あるいは保留となった、そのC
Pをイネーブルとする任意の割込みもこの点で処理しう
る。この全体としてのリカバリプロセスの効果はCPを
一致チェックポイントにもどすことである。命令の実行
と割込みの処理はこのとき通常のものとなる。
ムは直線的で簡単になる。このプロセッサは最終命令の
完了の結果としてその元の状態にもどされる。これは一
致状態であり、アーキテクチャ的に割込み可能なポイン
トである。この点において、プロセッサはその命令が何
であるかにかかわらず命令アドレス内のアドレスからフ
ェッチを開始することができる。更に、リカバリプロセ
ス中に保留中であった、あるいは保留となった、そのC
Pをイネーブルとする任意の割込みもこの点で処理しう
る。この全体としてのリカバリプロセスの効果はCPを
一致チェックポイントにもどすことである。命令の実行
と割込みの処理はこのとき通常のものとなる。
【0043】CPの限界を越えるシステムの状態を変更
する、あるいはハードウェアがレジスタ管理型の機構に
よりカバーされ得なくするいくつかのオペレーションに
ついて、不正確に予測された分岐または割込みからの回
復と同じ技術を用いての実行の効果を無にすることは出
来ない。それ故、或る特殊なハードウェア、チェックポ
イント技術およびエラーリカバリ中の処理によりCPを
最後命令の完了に等しい状態にもどすかあるいは障害の
あるオペレーションを越えたチェックポイントをその完
了の結果としての状態に進めることが可能になる。
する、あるいはハードウェアがレジスタ管理型の機構に
よりカバーされ得なくするいくつかのオペレーションに
ついて、不正確に予測された分岐または割込みからの回
復と同じ技術を用いての実行の効果を無にすることは出
来ない。それ故、或る特殊なハードウェア、チェックポ
イント技術およびエラーリカバリ中の処理によりCPを
最後命令の完了に等しい状態にもどすかあるいは障害の
あるオペレーションを越えたチェックポイントをその完
了の結果としての状態に進めることが可能になる。
【0044】本発明のこの実施例は中央プロセッサの実
行を三つのリカバリのタイプの一つにカテゴリ化するす
べてのオペレーションの分類を含む。用語オペレーショ
ンと命令は同じ意味であり、ESA/390 POPで
特定される命令、並びにプログラムの機械的実行、非同
期割込、オペレータ機能および他のCPにより行なわれ
るワークユニットを指す。カテゴリの決定はアーキテク
チャ型および機械型のファシリティ、操作オペレーショ
ンおよびいかにそれらファシリティが操作されるか、に
もとづいてなされる。オペレーションのタイプへの分類
によりリカバリが夫々の命令を独立的に処理するのでは
なく、三つの広いアルゴリズムに一般化しうるようにな
る。
行を三つのリカバリのタイプの一つにカテゴリ化するす
べてのオペレーションの分類を含む。用語オペレーショ
ンと命令は同じ意味であり、ESA/390 POPで
特定される命令、並びにプログラムの機械的実行、非同
期割込、オペレータ機能および他のCPにより行なわれ
るワークユニットを指す。カテゴリの決定はアーキテク
チャ型および機械型のファシリティ、操作オペレーショ
ンおよびいかにそれらファシリティが操作されるか、に
もとづいてなされる。オペレーションのタイプへの分類
によりリカバリが夫々の命令を独立的に処理するのでは
なく、三つの広いアルゴリズムに一般化しうるようにな
る。
【0045】一つのオペレーションをどのカテゴリ分類
するかを決定するシステムファシリティはアーキテクチ
ャ型および機械型の構成を含み、これが共にシステムの
状態を限定する。アキテクチャファシリティはESA/
390 POPで定義されるデータ構造を参照する。こ
のカテゴリに含まれるのは汎用レジスタ、浮動小数点レ
ジスタ、アクセスレジスタ、制御レジスタ、PSWおよ
び命令アドレス、記憶手段、サブチャンネル、時計機
構、保留割込、等である。機械型ファシリティはPOP
では固有の構成により特に指定されないアーキテクチャ
またはオペレーティングモードの状態を限定するために
システムの実行に必要な構造である。機械型ファシリテ
ィの例は解釈実行モードでCPが実行中のインジケー
タ、オンラインとなっている機構、記憶手段内の制御ブ
ロックの位置を含む。
するかを決定するシステムファシリティはアーキテクチ
ャ型および機械型の構成を含み、これが共にシステムの
状態を限定する。アキテクチャファシリティはESA/
390 POPで定義されるデータ構造を参照する。こ
のカテゴリに含まれるのは汎用レジスタ、浮動小数点レ
ジスタ、アクセスレジスタ、制御レジスタ、PSWおよ
び命令アドレス、記憶手段、サブチャンネル、時計機
構、保留割込、等である。機械型ファシリティはPOP
では固有の構成により特に指定されないアーキテクチャ
またはオペレーティングモードの状態を限定するために
システムの実行に必要な構造である。機械型ファシリテ
ィの例は解釈実行モードでCPが実行中のインジケー
タ、オンラインとなっている機構、記憶手段内の制御ブ
ロックの位置を含む。
【0046】タイプ1のオペレーションは記憶手段、汎
用レジスタ、浮動小数点レジスタ、アクセスレジスタ、
条件コード、および「レジスタ管理型」の制御を有する
他のプロセッサファシリティを変更するのみである。こ
れら変更はそのオペレーションが完了したときにのみ見
ることが出来る。これらオペレーションは一般に互いに
同時に非シーケンスで実行され、それ故初期の正しくな
い分岐予測または割込みにより消えることが出来なくて
はならない。これらオペレーションが完了する前に、他
のシステムエレメントはそれらの実行の効果を見ること
が出来ない。それらオペレーションの内の一つ以上が実
行されており、あるいは完了を待っている間にソフトエ
ラーが生ずれば、使用されるべきリカバリチェックポイ
ントは最終の命令の完了の結果としてCPの状態と同じ
である。これはまた完了した最終命令後に行なわれる割
込みを処理する前にCPがもどされていなければならな
い状態に等しい。タイプ1命令のリカバリは最終命令の
完了の結果としてとった状態にプロセッサをもどし、命
令フェッチを開始し、割込みを処理することを含む。タ
イプ1命令の例はGXE326とFXE322により実
行されるすべての命令、並びにMOVE CHARACTER, MOVE C
HARACTER LONG,およびCOMPARE AND SWAPである。
用レジスタ、浮動小数点レジスタ、アクセスレジスタ、
条件コード、および「レジスタ管理型」の制御を有する
他のプロセッサファシリティを変更するのみである。こ
れら変更はそのオペレーションが完了したときにのみ見
ることが出来る。これらオペレーションは一般に互いに
同時に非シーケンスで実行され、それ故初期の正しくな
い分岐予測または割込みにより消えることが出来なくて
はならない。これらオペレーションが完了する前に、他
のシステムエレメントはそれらの実行の効果を見ること
が出来ない。それらオペレーションの内の一つ以上が実
行されており、あるいは完了を待っている間にソフトエ
ラーが生ずれば、使用されるべきリカバリチェックポイ
ントは最終の命令の完了の結果としてCPの状態と同じ
である。これはまた完了した最終命令後に行なわれる割
込みを処理する前にCPがもどされていなければならな
い状態に等しい。タイプ1命令のリカバリは最終命令の
完了の結果としてとった状態にプロセッサをもどし、命
令フェッチを開始し、割込みを処理することを含む。タ
イプ1命令の例はGXE326とFXE322により実
行されるすべての命令、並びにMOVE CHARACTER, MOVE C
HARACTER LONG,およびCOMPARE AND SWAPである。
【0047】タイプ2のオペレーションはタイプ1のオ
ペレーションについて述べた以外のファシリティを変更
する。これらは一般にPSW、制御レジスタおよび解釈
実行インジケータのような制御ファシリティである。最
終命令が完了する時点でそれらファシリティが有してい
た値を保持するバックアップファシリティが維持され
る。タイプ2のオペレーションは一時に一つずつ、そし
て論理的にプログラムされた順に実行され、それらが機
能的には不正確に予測された分岐および論理的に初期の
割込みから回復することを必要としない。これらのタイ
プの命令も、それらの実行の結果を他のシステムエレメ
ントが見ていないから、プロセッサをそれが最終命令の
完了の結果、元の状態にもどすことによりソフトエラー
から回復出来る。タイプ2の命令についてはそれはレジ
スタ管理システム306をバックアップし、記憶バッフ
ァ332A〜332Cからの不完全な記憶を除去するこ
とのみならず、バックアップファシリティからバックア
ップまたはチェックポイントデータをとり、それを活性
のファシリティに置くことを含む。レジスタ管理法のよ
うなタイプ2オペレーションにより変更されるファシリ
ティ用のより複雑なチェックポイント機構をつくること
も出来るが、それらの機構は通常のエラーなし動作には
用いられないから、ハードウェアの量と複雑性は一般に
受け入れられない。
ペレーションについて述べた以外のファシリティを変更
する。これらは一般にPSW、制御レジスタおよび解釈
実行インジケータのような制御ファシリティである。最
終命令が完了する時点でそれらファシリティが有してい
た値を保持するバックアップファシリティが維持され
る。タイプ2のオペレーションは一時に一つずつ、そし
て論理的にプログラムされた順に実行され、それらが機
能的には不正確に予測された分岐および論理的に初期の
割込みから回復することを必要としない。これらのタイ
プの命令も、それらの実行の結果を他のシステムエレメ
ントが見ていないから、プロセッサをそれが最終命令の
完了の結果、元の状態にもどすことによりソフトエラー
から回復出来る。タイプ2の命令についてはそれはレジ
スタ管理システム306をバックアップし、記憶バッフ
ァ332A〜332Cからの不完全な記憶を除去するこ
とのみならず、バックアップファシリティからバックア
ップまたはチェックポイントデータをとり、それを活性
のファシリティに置くことを含む。レジスタ管理法のよ
うなタイプ2オペレーションにより変更されるファシリ
ティ用のより複雑なチェックポイント機構をつくること
も出来るが、それらの機構は通常のエラーなし動作には
用いられないから、ハードウェアの量と複雑性は一般に
受け入れられない。
【0048】図4(A)はタイプ2オペレーションで処
理される代表的なファシリティを示すものである。これ
はレジスタ402とそのバックアップすなわちチェック
ポイント用のレジスタ404としてつくられている。活
性レジスタ402は入力バス410上でCP202のエ
レメント(例えばSXE328またはACE308)か
らデータを受けることにより実行中に更新される。この
活性レジスタの値も、命令実行中にCPにより用いら
れ、出力バス412を介してCPによりとり出される。
機能的にはこの活性レジスタのみが通常のエラーのない
オペレーションに必要である。命令の完了の結果、この
活性レジスタ内の値がバス406を介してチェックポイ
ントレジスタ404に入力される。ソフトエラーからの
回復時に、チェックポイントレジスタ内の値は入力ライ
ン408により活性レジスタに移すことが出来る。これ
は活性レジスタにもどされるべきチェックポイント値用
の直接パス(図4(A)のパス408)を与えることに
より行うことが出来、あるいはチェックポイント値が実
行ユニットのデータフローを処理することにより活性レ
ジスタにロードすることが出来る。CPの種々の処理エ
レメントには任意の数のそのようなタイプの2個のファ
シリティを設けることが出来る。例えば、1個以上のそ
のようなファシリティをSXE328内のバックアップ
またはチェックポイントオペレーションに設け、そのよ
うなファシリティの他のものをACE308内に設ける
ことが出来る。
理される代表的なファシリティを示すものである。これ
はレジスタ402とそのバックアップすなわちチェック
ポイント用のレジスタ404としてつくられている。活
性レジスタ402は入力バス410上でCP202のエ
レメント(例えばSXE328またはACE308)か
らデータを受けることにより実行中に更新される。この
活性レジスタの値も、命令実行中にCPにより用いら
れ、出力バス412を介してCPによりとり出される。
機能的にはこの活性レジスタのみが通常のエラーのない
オペレーションに必要である。命令の完了の結果、この
活性レジスタ内の値がバス406を介してチェックポイ
ントレジスタ404に入力される。ソフトエラーからの
回復時に、チェックポイントレジスタ内の値は入力ライ
ン408により活性レジスタに移すことが出来る。これ
は活性レジスタにもどされるべきチェックポイント値用
の直接パス(図4(A)のパス408)を与えることに
より行うことが出来、あるいはチェックポイント値が実
行ユニットのデータフローを処理することにより活性レ
ジスタにロードすることが出来る。CPの種々の処理エ
レメントには任意の数のそのようなタイプの2個のファ
シリティを設けることが出来る。例えば、1個以上のそ
のようなファシリティをSXE328内のバックアップ
またはチェックポイントオペレーションに設け、そのよ
うなファシリティの他のものをACE308内に設ける
ことが出来る。
【0049】図4(B)は総称タイプ2オペレーション
のサンプル実行を示す。サイクル1において完了リポー
トが完了/割込ロジック340により発生される。これ
により、チェックポイントレジスタ404内の値が活性
レジスタ402内の値Xに等しくセットされる。サイク
ル2において、タイプ2の命令の実行が開始する。この
時点で活性レジスタ402とチェックポイントレジスタ
404は最終命令の完了の結果ファシリティの値Xを有
する。活性ファシリティ402はサイクル3で更新され
る(値Wに)。チェックポイントレジスタ404は最終
命令の完了の結果値Xをまだ維持している。サイクル6
において、完了リポートがタイプ2の命令について発生
される。サイクル7においてチェックポイントレジスタ
は活性レジスタの値(W)をとる。更に、この命令によ
り更新された任意のタイプ1のファシリティもサイクル
7においてこの完了リポートで更新され、チェックポイ
ントが一致する。タイプ2のオペレーションの例はLOAD
CONTROL, LOAD PSWおよびSET SYSTEM MASK である。
のサンプル実行を示す。サイクル1において完了リポー
トが完了/割込ロジック340により発生される。これ
により、チェックポイントレジスタ404内の値が活性
レジスタ402内の値Xに等しくセットされる。サイク
ル2において、タイプ2の命令の実行が開始する。この
時点で活性レジスタ402とチェックポイントレジスタ
404は最終命令の完了の結果ファシリティの値Xを有
する。活性ファシリティ402はサイクル3で更新され
る(値Wに)。チェックポイントレジスタ404は最終
命令の完了の結果値Xをまだ維持している。サイクル6
において、完了リポートがタイプ2の命令について発生
される。サイクル7においてチェックポイントレジスタ
は活性レジスタの値(W)をとる。更に、この命令によ
り更新された任意のタイプ1のファシリティもサイクル
7においてこの完了リポートで更新され、チェックポイ
ントが一致する。タイプ2のオペレーションの例はLOAD
CONTROL, LOAD PSWおよびSET SYSTEM MASK である。
【0050】タイプ3のオペレーションは下記の点でタ
イプ1および2とは異なる。
イプ1および2とは異なる。
【0051】a) それらオペレーションがシステムフ
ァシリティを操作する方法は命令が完了する前に他のシ
ステムが結果のいくつか、あるいはすべてを見ることが
出来るようにする。
ァシリティを操作する方法は命令が完了する前に他のシ
ステムが結果のいくつか、あるいはすべてを見ることが
出来るようにする。
【0052】b) 操作されるファシリティのタイプ
は、命令が開始する前にファシリティが有した値にその
ファシリティを回復させることにより正しい結果が得ら
れず、そして更新がアーキテクチャ的あるいは実行の制
約により、命令の完了とは同期し得ないような性質のも
のである。
は、命令が開始する前にファシリティが有した値にその
ファシリティを回復させることにより正しい結果が得ら
れず、そして更新がアーキテクチャ的あるいは実行の制
約により、命令の完了とは同期し得ないような性質のも
のである。
【0053】一般に、タイプ3のオペレーションは「不
帰点(ポイントオブノーリターン)」を有する。すなわ
ち、それらオペレーションがその結果を他のエレメント
に見させる、あるいは限界的なファシリティを更新する
時までそれらはタイプ1と2のオペレーションを空にす
るために用いられたと同一のバックアップ手順を用いて
消えることが出来る。この点の後にそれらは消えること
が出来ず、そして特別なアルゴリズムを用いて回復しな
ければならない。
帰点(ポイントオブノーリターン)」を有する。すなわ
ち、それらオペレーションがその結果を他のエレメント
に見させる、あるいは限界的なファシリティを更新する
時までそれらはタイプ1と2のオペレーションを空にす
るために用いられたと同一のバックアップ手順を用いて
消えることが出来る。この点の後にそれらは消えること
が出来ず、そして特別なアルゴリズムを用いて回復しな
ければならない。
【0054】タイプ3のオペレーションのいくつかの例
がこの点を例示する。ページインおよびページアウトは
タイプ3のオペレーションである。図2のシステムでの
ページインおよびページアウト命令の実行は中央プロセ
ッサ202A〜202Cを呼び出して拡張記憶機構21
2に中央記憶手段208へ、またはそれから4kページ
のデータを動かすように要求させる。ページインおよび
ページアウト命令はアーキテクチャ的には同期形として
定義されるから、このデータの動きはオペレーションの
完了時に可視でなければならず、また図2の拡張記憶機
構と中央記憶機構間のデータ転送パスは記憶バッファに
相当するファシリティを有していないから、中央プロセ
ッサでの命令の完了前にその転送が生じる。それ故、動
かされるデータはページング命令の実行中の中央プロセ
ッサ以外のエレメントにより見ることが出来る。この命
令の実行中にエラーが生じると、そのデータ移動の結果
は中央記憶機構または拡張記憶機構がすでに変更されて
いるため消すことが出来ない。
がこの点を例示する。ページインおよびページアウトは
タイプ3のオペレーションである。図2のシステムでの
ページインおよびページアウト命令の実行は中央プロセ
ッサ202A〜202Cを呼び出して拡張記憶機構21
2に中央記憶手段208へ、またはそれから4kページ
のデータを動かすように要求させる。ページインおよび
ページアウト命令はアーキテクチャ的には同期形として
定義されるから、このデータの動きはオペレーションの
完了時に可視でなければならず、また図2の拡張記憶機
構と中央記憶機構間のデータ転送パスは記憶バッファに
相当するファシリティを有していないから、中央プロセ
ッサでの命令の完了前にその転送が生じる。それ故、動
かされるデータはページング命令の実行中の中央プロセ
ッサ以外のエレメントにより見ることが出来る。この命
令の実行中にエラーが生じると、そのデータ移動の結果
は中央記憶機構または拡張記憶機構がすでに変更されて
いるため消すことが出来ない。
【0055】タイプ3のオペレーションの他の例はES
A/390 I/O命令および割込みである。前述した
ように、図2の中央プロセッサ202A〜202BとI
/Oサブシステム210A〜210Bの間の通信は記憶
機構内の制御ブロックと呼ばれるデータエリアに対する
インタロックした更新を用いて行なうことが出来る。こ
れにより、記憶機構内のロックバイト内の識別タグを見
る他のエレメントは記憶機構内のデータを用いないか、
あるいはロックのオーナーがそれを解放するのを待つ
か、あるいはオーナーが割込みの場合のように要求の処
理中であり、割込みを得るためにその局所的イニシアチ
ブをリセットすると仮定する。プロセッサがそのソフト
ロックを制御ブロック内に置くと、それが制御ブロック
の内容の変更を開始し、それによりI/Oサブシステム
のアーキテクトされた状態を変更する。それ故、記憶バ
ッファはタイプ1およびタイプ2の命令について最後の
命令の完了時につくられたチェックポイントを保護して
も、タイプ3のオペレーションにより用いられる様式に
よりそのチェックポイントは最後の命令の完了に対し一
致しなくなる。このロッキングプロセスがはじめられた
後の任意の点でエラーが生じるとすれば、最後の命令の
完了の結果としての状態へのCPのもどりはシステムに
対する変化を無にはしない。
A/390 I/O命令および割込みである。前述した
ように、図2の中央プロセッサ202A〜202BとI
/Oサブシステム210A〜210Bの間の通信は記憶
機構内の制御ブロックと呼ばれるデータエリアに対する
インタロックした更新を用いて行なうことが出来る。こ
れにより、記憶機構内のロックバイト内の識別タグを見
る他のエレメントは記憶機構内のデータを用いないか、
あるいはロックのオーナーがそれを解放するのを待つ
か、あるいはオーナーが割込みの場合のように要求の処
理中であり、割込みを得るためにその局所的イニシアチ
ブをリセットすると仮定する。プロセッサがそのソフト
ロックを制御ブロック内に置くと、それが制御ブロック
の内容の変更を開始し、それによりI/Oサブシステム
のアーキテクトされた状態を変更する。それ故、記憶バ
ッファはタイプ1およびタイプ2の命令について最後の
命令の完了時につくられたチェックポイントを保護して
も、タイプ3のオペレーションにより用いられる様式に
よりそのチェックポイントは最後の命令の完了に対し一
致しなくなる。このロッキングプロセスがはじめられた
後の任意の点でエラーが生じるとすれば、最後の命令の
完了の結果としての状態へのCPのもどりはシステムに
対する変化を無にはしない。
【0056】それらの変化を他のエレメントが見たから
ではなく古い値を回復することにより不正確な結果が生
じることにより、変化したファシリティを最後の命令の
完了の結果としての値に回復することにより無にはされ
得ない命令の例はSET CLOCK命令である。時間の経過の
ためその命令のスタート時のクロックの値を保存してリ
カバリ中にそれを回復することにより、他の何らかの手
段を用いない限りクロック値は追い越されてしまう。
ではなく古い値を回復することにより不正確な結果が生
じることにより、変化したファシリティを最後の命令の
完了の結果としての値に回復することにより無にはされ
得ない命令の例はSET CLOCK命令である。時間の経過の
ためその命令のスタート時のクロックの値を保存してリ
カバリ中にそれを回復することにより、他の何らかの手
段を用いない限りクロック値は追い越されてしまう。
【0057】タイプ3の命令についてのリカバリアルゴ
リズムは一般に三つの態様の内の一つを有する。第1の
態様はオペレーションにより行なわれるクリーニングア
ップ変化である。CECの設計された状態が変化されて
いない限り、命令により行なわれる変化は消滅させう
る。これの一例はI/Oリカバリにある。命令が記憶し
た変化が制御ブロック内のソフトロックに置くことであ
り、設計されたファシリティは変化せず、そしてリカバ
リアルゴリズムはこの制御ブロックのロックを解き、シ
ステムを元の状態にもどしうるとすれば、I/Oオペレ
ーションはスタートしない。
リズムは一般に三つの態様の内の一つを有する。第1の
態様はオペレーションにより行なわれるクリーニングア
ップ変化である。CECの設計された状態が変化されて
いない限り、命令により行なわれる変化は消滅させう
る。これの一例はI/Oリカバリにある。命令が記憶し
た変化が制御ブロック内のソフトロックに置くことであ
り、設計されたファシリティは変化せず、そしてリカバ
リアルゴリズムはこの制御ブロックのロックを解き、シ
ステムを元の状態にもどしうるとすれば、I/Oオペレ
ーションはスタートしない。
【0058】タイプ3のオペレーションの第2の態様は
中間チェックポイントをつくり、エラー発生前にプロセ
ッサが得たオペレーションの実行におけるフットポイン
トの長さを保存することを含む。CPの状態はこのとき
最後の中間チェックポイントにもどされ、そしてオペレ
ーションが終了し、リカバリ制御下で完了する。この段
階が完了した後にCPは再び命令完了の結果として一致
設計状態になり、実行が前述したように回復出来る。
中間チェックポイントをつくり、エラー発生前にプロセ
ッサが得たオペレーションの実行におけるフットポイン
トの長さを保存することを含む。CPの状態はこのとき
最後の中間チェックポイントにもどされ、そしてオペレ
ーションが終了し、リカバリ制御下で完了する。この段
階が完了した後にCPは再び命令完了の結果として一致
設計状態になり、実行が前述したように回復出来る。
【0059】タイプ3リカバリの最後の態様はリカバリ
制御のもとで再び再命令を再実行することである。情報
はこれらオペレーションを再フェッチすることなく再試
行しうるようにさせるために維持される。このタイプの
リカバリの利点を用いることの出来るオペレーション
は、アーキテクチャが多重記憶アクセスを許す(ページ
ング命令の場合のように)から、あるいは他のシステム
エレメントが行なわれた変化を見ることが出来ない(SE
T CLOCK の場合のように)から、そうすることが出来る
のである。
制御のもとで再び再命令を再実行することである。情報
はこれらオペレーションを再フェッチすることなく再試
行しうるようにさせるために維持される。このタイプの
リカバリの利点を用いることの出来るオペレーション
は、アーキテクチャが多重記憶アクセスを許す(ページ
ング命令の場合のように)から、あるいは他のシステム
エレメントが行なわれた変化を見ることが出来ない(SE
T CLOCK の場合のように)から、そうすることが出来る
のである。
【0060】すべてのシステム状態ファシリティはチェ
ックポイントにもどるための機構を必要とし、あるいは
タイプ3のアルゴリズムで特に処理されねばならない。
「レジスタ管理型」の方式に加えて、記憶バッファ型機
構およびチェックポイントレジスタ、システムファシリ
ティ用のチェックポイント値を与える他の技術も存在す
る。その一例は図2のCP用の非同期割込み用に開発さ
れたチェックポイントファシリティである。非同期割込
み用のイニシァチブの局所コピーがCPに保存される。
これらは保留の非同期割込みの容易にアクセス可能なイ
ンジケーションを与える。しかしながら割込イニシアチ
ブのマスタコピーは記憶機構内の制御ブロックとして限
定される。割込みが保留とされ、あるいは処理されると
き、インジケータが制御ブロック並びに更新中の局所コ
ピーに置かれる。これによりCPは記憶バッファのチェ
ックポイント割込イニシアチブに対する同期化能力を用
いることが出来る。エラーが生じるとき、CPは記憶機
構内の情報にもとづきその局所コピーを回復出来る。
ックポイントにもどるための機構を必要とし、あるいは
タイプ3のアルゴリズムで特に処理されねばならない。
「レジスタ管理型」の方式に加えて、記憶バッファ型機
構およびチェックポイントレジスタ、システムファシリ
ティ用のチェックポイント値を与える他の技術も存在す
る。その一例は図2のCP用の非同期割込み用に開発さ
れたチェックポイントファシリティである。非同期割込
み用のイニシァチブの局所コピーがCPに保存される。
これらは保留の非同期割込みの容易にアクセス可能なイ
ンジケーションを与える。しかしながら割込イニシアチ
ブのマスタコピーは記憶機構内の制御ブロックとして限
定される。割込みが保留とされ、あるいは処理されると
き、インジケータが制御ブロック並びに更新中の局所コ
ピーに置かれる。これによりCPは記憶バッファのチェ
ックポイント割込イニシアチブに対する同期化能力を用
いることが出来る。エラーが生じるとき、CPは記憶機
構内の情報にもとづきその局所コピーを回復出来る。
【0061】図3のCPにおいて、再試行チェックポイ
ントは完了/割込コントロール340が一つの命令の完
了を完了リポート341により決定し知らせるときにつ
くられる。このための信号は記憶装置を解放し、レジス
タ管理システム306を更新し(特にGPRとFPRを
更新する)、PSWと他のプロセッサファシリティをす
べて一サイクルで緩衝する。それ故、一つの機械サイク
ルにおいて、CPは「命令完了前」から「命令完了後」
に変化する。タイプ1およびこの命令についてはこれは
命令処理終了時に1回生じ、また、ハードウェア障害が
命令完了前に生じるとすればCPは最後の命令完了の結
果その元の状態にもどされて命令ストリーム内のこの点
からオペレーションを回復する。しかしながらタイプ3
のオペレーションは一般に実行中数個の再試行チェック
ポイントをつくる。これを行なうために、プロセッサは
タイプ1と2のチェックポイントハードウェアの利点を
用いてタイプ3のオペレーションの実行中中間チェック
ポイントをつくる。
ントは完了/割込コントロール340が一つの命令の完
了を完了リポート341により決定し知らせるときにつ
くられる。このための信号は記憶装置を解放し、レジス
タ管理システム306を更新し(特にGPRとFPRを
更新する)、PSWと他のプロセッサファシリティをす
べて一サイクルで緩衝する。それ故、一つの機械サイク
ルにおいて、CPは「命令完了前」から「命令完了後」
に変化する。タイプ1およびこの命令についてはこれは
命令処理終了時に1回生じ、また、ハードウェア障害が
命令完了前に生じるとすればCPは最後の命令完了の結
果その元の状態にもどされて命令ストリーム内のこの点
からオペレーションを回復する。しかしながらタイプ3
のオペレーションは一般に実行中数個の再試行チェック
ポイントをつくる。これを行なうために、プロセッサは
タイプ1と2のチェックポイントハードウェアの利点を
用いてタイプ3のオペレーションの実行中中間チェック
ポイントをつくる。
【0062】中間チェックポイントは命令完了によりつ
くられるチェックポイントと同様にしてつくられる。リ
リース信号または変更終了リポートが完了/割込コント
ロール340に送られる。この変更終了リポートは真す
なわち、最終完了リポート(実行段階完了、全割込検査
終了、完了直前命令)を発生する「最終」終了リポート
と同じルールを用いて完了/割込コントロールにより処
理され、変更または中間完了リポートが出される。この
中間完了リポートにより中間チェックポイントがレジス
タ管理システム306を更新して記憶バッファ332A
〜332Bをリリースすることによりつくられる。
くられるチェックポイントと同様にしてつくられる。リ
リース信号または変更終了リポートが完了/割込コント
ロール340に送られる。この変更終了リポートは真す
なわち、最終完了リポート(実行段階完了、全割込検査
終了、完了直前命令)を発生する「最終」終了リポート
と同じルールを用いて完了/割込コントロールにより処
理され、変更または中間完了リポートが出される。この
中間完了リポートにより中間チェックポイントがレジス
タ管理システム306を更新して記憶バッファ332A
〜332Bをリリースすることによりつくられる。
【0063】しかしながら、タイプ3の命令がまだ処理
中であるから中間完了リポートによりすべてのファシリ
ティが進められるわけではない。例えば、中間ポイント
で命令アドレスを変更することは正しくない。この機構
はタイプ3の命令を数個の正確なチェックポイントまた
はリカバリ窓に分けうるようにする。これらチェックポ
イントをつくる必要のあるポイントは、異なるリカバリ
アルゴリズムを必要とするようにシステムの状態が変化
する時に依存する。しかしながら、すべてのチェックポ
イントを完了リポートと同期化させる必要はない。SET
CLOCK 命令は、クロックの更新(図3のCPにおける)
が完了リポートに関連づけられていないからこの例であ
る。
中であるから中間完了リポートによりすべてのファシリ
ティが進められるわけではない。例えば、中間ポイント
で命令アドレスを変更することは正しくない。この機構
はタイプ3の命令を数個の正確なチェックポイントまた
はリカバリ窓に分けうるようにする。これらチェックポ
イントをつくる必要のあるポイントは、異なるリカバリ
アルゴリズムを必要とするようにシステムの状態が変化
する時に依存する。しかしながら、すべてのチェックポ
イントを完了リポートと同期化させる必要はない。SET
CLOCK 命令は、クロックの更新(図3のCPにおける)
が完了リポートに関連づけられていないからこの例であ
る。
【0064】より簡単なリカバリを生じさせるようなセ
ットクロック機能を行なう他の方法がある。例えばSET
CLOCK 命令を扱う一つの方法は現在の命令により変更さ
れるべき1個のクロックと、バックアップコピーを与え
るための1個のクロックの、2個のクロックを用いるも
のである。他の方法は、更新が一サイクルで実行され、
完了リポートと同期化されるようにクロックをつくるこ
とである。
ットクロック機能を行なう他の方法がある。例えばSET
CLOCK 命令を扱う一つの方法は現在の命令により変更さ
れるべき1個のクロックと、バックアップコピーを与え
るための1個のクロックの、2個のクロックを用いるも
のである。他の方法は、更新が一サイクルで実行され、
完了リポートと同期化されるようにクロックをつくるこ
とである。
【0065】特殊なクリーンアップまたは処理がタイプ
3のオペレーションに必要であるため、CPは、エラー
が生じたとき特殊な処理が必要であるか、また、どのよ
うな特殊な処理かを決定出来るようにタイプ3のオペレ
ーションを実行中であることを思い出す方法を必要とす
る。また、これらリカバリのフットポイントは、適正な
リカバリアクションがプロセッサの一つのチェックポイ
ントから他への移動のとき特定されるように完了リポー
トによりチェックポイントを与えられたファシリティの
再試行チェックポイントの発生と同期していなくてはな
らない。更に、リカバリアルゴリズムの基礎として、前
のチェックポイントのアクションが生じたものとする仮
定を用いることが出来る。
3のオペレーションに必要であるため、CPは、エラー
が生じたとき特殊な処理が必要であるか、また、どのよ
うな特殊な処理かを決定出来るようにタイプ3のオペレ
ーションを実行中であることを思い出す方法を必要とす
る。また、これらリカバリのフットポイントは、適正な
リカバリアクションがプロセッサの一つのチェックポイ
ントから他への移動のとき特定されるように完了リポー
トによりチェックポイントを与えられたファシリティの
再試行チェックポイントの発生と同期していなくてはな
らない。更に、リカバリアルゴリズムの基礎として、前
のチェックポイントのアクションが生じたものとする仮
定を用いることが出来る。
【0066】ここでエラー処理プロセスを示すコードに
ついて説明する。エラー処理プロセスを示すコードと
は、中央プロセッサ202A,202B、及び202C
の中のフットプリント動作、特にマイクロコードクリー
ンアップアルゴリズムを示す。マイクロコードクリーン
アップアルゴリズムは、ソフトエラーが発生した時に適
当なリカバリ動作を行うリカバリ制御レジスタ327に
保存されているリカバリフットプリント情報を使用する
特別のマイクロコードルーチンとして実行される。即時
型レジスタ504A〜504Bは、エラー処理システム
にデータを提供するために接続されており、ステージ型
レジスタ502A〜502Bと即時型レジスタ504A
〜504Bの内の一方が、“SET”,“AND”,
“OR”機能506によって選択される。別言すれば、
マイクロコードがエラー処理プロセスを示すコード(リ
カバリフットプリント)を生成する時に、このエラー処
理プロセスを示すコードはステージ型レジスタと即時型
レジスタと“SET”,“AND”,“OR”機能ファ
ンクション506により成される選択とから構成される
リカバリ制御によって有効になる。以下にエラー処理プ
ロセスを示すコードが生成される動作について詳述す
る。リカバリを制御しフットポイントを維持する中央要
素はリカバリ制御レジスタ327(図5に示す)であ
る。リカバリ制御レジスタ327は2個の多ビットレジ
スタ、ステージ型レジスタ502A〜502Bおよび即
時型レジスタ504A〜504Bとして与えられる。こ
れらレジスタは、新しいデータがインゲートされない
か、あるいは新しいデータがインゲートされた後に明示
的に直前の値にリセットされるならば、前の値を保持す
るような形式のものである。即時型レジスタ504A〜
504Bはリカバリ中に用いられる情報を含む。ステー
ジ型レジスタ502A〜502Bはフットポイントを再
試行チェックポイントの変更前に組立てることの出来る
プラットフォームである。この実施例ではCPマイクロ
コードがすべてのタイプ3のオペレーションを実行し、
それ故それらオペレーション用のリカバリフットポイン
トをセットアップする。マイクロコードは“SET”,
“AND”,“OR”機能506を用いていずれかのレ
ジスタを通して動作させることが出来る。これらオペレ
ータの選択並びに図示のようにレジスタを分離する決定
は新しいチェックポイント値のセットアップ時に最大の
フレキシビリティをもってマイクロコードを与えるため
に行なわれる。
ついて説明する。エラー処理プロセスを示すコードと
は、中央プロセッサ202A,202B、及び202C
の中のフットプリント動作、特にマイクロコードクリー
ンアップアルゴリズムを示す。マイクロコードクリーン
アップアルゴリズムは、ソフトエラーが発生した時に適
当なリカバリ動作を行うリカバリ制御レジスタ327に
保存されているリカバリフットプリント情報を使用する
特別のマイクロコードルーチンとして実行される。即時
型レジスタ504A〜504Bは、エラー処理システム
にデータを提供するために接続されており、ステージ型
レジスタ502A〜502Bと即時型レジスタ504A
〜504Bの内の一方が、“SET”,“AND”,
“OR”機能506によって選択される。別言すれば、
マイクロコードがエラー処理プロセスを示すコード(リ
カバリフットプリント)を生成する時に、このエラー処
理プロセスを示すコードはステージ型レジスタと即時型
レジスタと“SET”,“AND”,“OR”機能ファ
ンクション506により成される選択とから構成される
リカバリ制御によって有効になる。以下にエラー処理プ
ロセスを示すコードが生成される動作について詳述す
る。リカバリを制御しフットポイントを維持する中央要
素はリカバリ制御レジスタ327(図5に示す)であ
る。リカバリ制御レジスタ327は2個の多ビットレジ
スタ、ステージ型レジスタ502A〜502Bおよび即
時型レジスタ504A〜504Bとして与えられる。こ
れらレジスタは、新しいデータがインゲートされない
か、あるいは新しいデータがインゲートされた後に明示
的に直前の値にリセットされるならば、前の値を保持す
るような形式のものである。即時型レジスタ504A〜
504Bはリカバリ中に用いられる情報を含む。ステー
ジ型レジスタ502A〜502Bはフットポイントを再
試行チェックポイントの変更前に組立てることの出来る
プラットフォームである。この実施例ではCPマイクロ
コードがすべてのタイプ3のオペレーションを実行し、
それ故それらオペレーション用のリカバリフットポイン
トをセットアップする。マイクロコードは“SET”,
“AND”,“OR”機能506を用いていずれかのレ
ジスタを通して動作させることが出来る。これらオペレ
ータの選択並びに図示のようにレジスタを分離する決定
は新しいチェックポイント値のセットアップ時に最大の
フレキシビリティをもってマイクロコードを与えるため
に行なわれる。
【0067】タイプ3のアルゴリズムにリカバリフット
ポイントの即時変化が必要なときにはマイクロコードは
即時型レジスタを動作させる。クロックのセットは直接
マイクロコードの制御を受けるものであって完了とは同
期化されないから、マイクロコードが即時型RCRとク
ロックを同時にセットする。しかしながら、例えば記憶
がリリースされるような変化を必要とする事象とリカバ
リフットポイントを同期化する必要があれば、マイクロ
コードはステージレジスタ504A〜504Bに適正な
フットポイントを置きリリース信号を完了/割込ロジッ
ク341に出す。リリースが処理されて可変であるサイ
クル数後に完了リポートとして同報通信される時、チェ
ックポイントが進められ、即時型レジスタ504A〜5
04Bが同じサイクル中に更新されて一つのリカバリ窓
から次へのクリスプ遷移を許可する。両レジスタは最終
終了リポートから生じる最終命令完了でリセットされ
る。タイプ3のオペレーションは完了してもはやフット
ポイントは適用しない。
ポイントの即時変化が必要なときにはマイクロコードは
即時型レジスタを動作させる。クロックのセットは直接
マイクロコードの制御を受けるものであって完了とは同
期化されないから、マイクロコードが即時型RCRとク
ロックを同時にセットする。しかしながら、例えば記憶
がリリースされるような変化を必要とする事象とリカバ
リフットポイントを同期化する必要があれば、マイクロ
コードはステージレジスタ504A〜504Bに適正な
フットポイントを置きリリース信号を完了/割込ロジッ
ク341に出す。リリースが処理されて可変であるサイ
クル数後に完了リポートとして同報通信される時、チェ
ックポイントが進められ、即時型レジスタ504A〜5
04Bが同じサイクル中に更新されて一つのリカバリ窓
から次へのクリスプ遷移を許可する。両レジスタは最終
終了リポートから生じる最終命令完了でリセットされ
る。タイプ3のオペレーションは完了してもはやフット
ポイントは適用しない。
【0068】プロセッサ内でハードウェア障害が生じた
とすれば、現在のリカバリ窓の完了は、その窓で操作さ
れるデータがエラーで汚染されていることがあるから阻
止される。更に、即時型レジスタ504A〜504Bの
更新も阻止されて、実際に完了した最後の再試行チェッ
クポイントと一致するリカバリフットポイントを含むよ
うにされる。
とすれば、現在のリカバリ窓の完了は、その窓で操作さ
れるデータがエラーで汚染されていることがあるから阻
止される。更に、即時型レジスタ504A〜504Bの
更新も阻止されて、実際に完了した最後の再試行チェッ
クポイントと一致するリカバリフットポイントを含むよ
うにされる。
【0069】すべてのソフトエラーについてPCE21
6はエラー条件に対する注意を行ない、この実行におけ
るCP202A〜202Cでのリカバリアクションをシ
ーケンスづける。まず、PCE216によりリセットが
開始される。次にマイクロコードクリーンアップアルゴ
リズムが実行される。リセットおよびクリーンアップア
ルゴリズムの組合せによりデータフローがリセットさ
れ、未完了記憶およびレジスタ更新を含む未完了のチェ
ックポイントデータが捨てられる。次にCPマイクロコ
ードがRCRを含むチェックポイントファシリティがエ
ラーにより損なわれたかどうかを知るためにCPエラー
インジケータを検査する。RCRがエラーにより損なわ
れていたとすれば、プロセッサはチェックストップ状態
とされる。他のチェックポイントファシリティが損傷し
たとすれば、ESA/390 POP(例えばシステム
損傷機械チェックまたは命令処理損傷)により定義され
る適正な損傷レベルを示す機械チェック割込みが与えら
れる。チェックポイントが有効であれば、再試行しきい
値となったとき(例えば7回の再試行が不成功のとき)
に機械チェックが発生されるだけである。次の、同じく
PCE216で開始される段階は適正なリカバリアクシ
ョンを行なうためのリカバリ制御レジスタ内のリカバリ
フットポイント情報を用いる特殊なマイクロコードルー
チンを走行させることである。
6はエラー条件に対する注意を行ない、この実行におけ
るCP202A〜202Cでのリカバリアクションをシ
ーケンスづける。まず、PCE216によりリセットが
開始される。次にマイクロコードクリーンアップアルゴ
リズムが実行される。リセットおよびクリーンアップア
ルゴリズムの組合せによりデータフローがリセットさ
れ、未完了記憶およびレジスタ更新を含む未完了のチェ
ックポイントデータが捨てられる。次にCPマイクロコ
ードがRCRを含むチェックポイントファシリティがエ
ラーにより損なわれたかどうかを知るためにCPエラー
インジケータを検査する。RCRがエラーにより損なわ
れていたとすれば、プロセッサはチェックストップ状態
とされる。他のチェックポイントファシリティが損傷し
たとすれば、ESA/390 POP(例えばシステム
損傷機械チェックまたは命令処理損傷)により定義され
る適正な損傷レベルを示す機械チェック割込みが与えら
れる。チェックポイントが有効であれば、再試行しきい
値となったとき(例えば7回の再試行が不成功のとき)
に機械チェックが発生されるだけである。次の、同じく
PCE216で開始される段階は適正なリカバリアクシ
ョンを行なうためのリカバリ制御レジスタ内のリカバリ
フットポイント情報を用いる特殊なマイクロコードルー
チンを走行させることである。
【0070】前述のようにレジスタ502A〜502B
および504A〜504Bの夫々は2つのビット群に分
割される。レジスタ502Aと504A内のビットは、
夫々がCPを論理的に一致する状態にもどすのに必要な
任意のタイプの特別のアクションをリカバリマイクロコ
ードに知らせる特別の意味をもつ単一ビットとして用い
られる。これらビットは同時にセットされて2以上のオ
ペレーションで通常使用される。そのようなビットの一
つは「要ワーキングレジスタ」ビットであり、リカバリ
に必要なデータまたはアドレスがSXE内のワーキング
レジスタに保存されていることを示す。他の例は「制御
ブロックロック」ビットであり、これはCPが記憶機構
にソフトロックアウトを有することを意味する。レジス
タ502Bと504Bの後半に含まれるビットは、例え
ば「SET CLOCK 中」のような特別な命令リカバリアルゴ
リズムの実行の必要性(すなわち、特別なオペレーショ
ンがエラー時に進行中であったこと)をマイクロコード
に示すエンコードアルゴリズム番号を含む。
および504A〜504Bの夫々は2つのビット群に分
割される。レジスタ502Aと504A内のビットは、
夫々がCPを論理的に一致する状態にもどすのに必要な
任意のタイプの特別のアクションをリカバリマイクロコ
ードに知らせる特別の意味をもつ単一ビットとして用い
られる。これらビットは同時にセットされて2以上のオ
ペレーションで通常使用される。そのようなビットの一
つは「要ワーキングレジスタ」ビットであり、リカバリ
に必要なデータまたはアドレスがSXE内のワーキング
レジスタに保存されていることを示す。他の例は「制御
ブロックロック」ビットであり、これはCPが記憶機構
にソフトロックアウトを有することを意味する。レジス
タ502Bと504Bの後半に含まれるビットは、例え
ば「SET CLOCK 中」のような特別な命令リカバリアルゴ
リズムの実行の必要性(すなわち、特別なオペレーショ
ンがエラー時に進行中であったこと)をマイクロコード
に示すエンコードアルゴリズム番号を含む。
【0071】種々のコードポイントが限定され、セット
され、そしてCPマイクロコードにより解釈される。こ
れはハードウェアへの依存性を除いてCPマイクロコー
ドに新しいコードポイントの付加と現存するものの変更
についてのフレキシビリティを与える。コードポイント
と限定はどのマイクロコードアルゴリズムがそれをセッ
トするか、およびどのリカバリアルゴリズムがそれらを
解釈するかにもとづきつくられる。
され、そしてCPマイクロコードにより解釈される。こ
れはハードウェアへの依存性を除いてCPマイクロコー
ドに新しいコードポイントの付加と現存するものの変更
についてのフレキシビリティを与える。コードポイント
と限定はどのマイクロコードアルゴリズムがそれをセッ
トするか、およびどのリカバリアルゴリズムがそれらを
解釈するかにもとづきつくられる。
【0072】リカバリ制御レジスタは、臨界的な状態変
化と同期してロードされるから、機械の与えられた状態
について正してリカバリアルゴリズムを常に含む。それ
故、いつアルゴリズムがセットされたか、および機械状
態変化が実際に生じたかとうかについて、あいまい性は
ない。
化と同期してロードされるから、機械の与えられた状態
について正してリカバリアルゴリズムを常に含む。それ
故、いつアルゴリズムがセットされたか、および機械状
態変化が実際に生じたかとうかについて、あいまい性は
ない。
【0073】ESA/390アーキテクチャでは或る命
令は「チェックポイント同期化」が必要である。更に、
或る命令は実行前に、他は実行後に、あるものはその前
後にチェックポイント同期化のために特定される。設計
されたチェックポイント同期化アクション時にそのアク
ション前の命令の実行に関連するすべてのエラーを検査
し、適正な命令アドレスでリポートする必要がある。こ
れを行うことにより、ソフトウェアはエラーの生じたソ
フトウェアチェックポイントインターバルおよび影響さ
れる命令群を決定することが出来る。このとき、ソフト
ウェアは適正なソフトウェアリカバリアクションを行な
うことが出来る。
令は「チェックポイント同期化」が必要である。更に、
或る命令は実行前に、他は実行後に、あるものはその前
後にチェックポイント同期化のために特定される。設計
されたチェックポイント同期化アクション時にそのアク
ション前の命令の実行に関連するすべてのエラーを検査
し、適正な命令アドレスでリポートする必要がある。こ
れを行うことにより、ソフトウェアはエラーの生じたソ
フトウェアチェックポイントインターバルおよび影響さ
れる命令群を決定することが出来る。このとき、ソフト
ウェアは適正なソフトウェアリカバリアクションを行な
うことが出来る。
【0074】図2のCPにおいて、任意のファシリティ
に関連するすべてのエラーが記憶に対して生じるものを
除き命令の完了前にリポートされる。記憶は記憶バッフ
ァにおいて完了とマークされるが高速バッファには書込
まねばならない。この窓内のプログラム記憶機構への記
憶に生じるエラーは、ESA/390 POPで定義さ
れるように記憶機構論理有効性ビットがゼロである機械
チェック割込みによりソフトウェアにリポートされねば
ならない。更に、それは正しいソフトウェアチェックポ
イントインターバルに関連づけられねばならない。
に関連するすべてのエラーが記憶に対して生じるものを
除き命令の完了前にリポートされる。記憶は記憶バッフ
ァにおいて完了とマークされるが高速バッファには書込
まねばならない。この窓内のプログラム記憶機構への記
憶に生じるエラーは、ESA/390 POPで定義さ
れるように記憶機構論理有効性ビットがゼロである機械
チェック割込みによりソフトウェアにリポートされねば
ならない。更に、それは正しいソフトウェアチェックポ
イントインターバルに関連づけられねばならない。
【0075】チェックポイントの同期化はオペレーショ
ンのタイプのカテゴリ化にもう一つのディメンションを
付加する。ESA/390 POPではチェックポイン
ト同期化命令は三つのオペレーションタイプのすべてに
ある。無条件分岐(BCRFO)およびセットアドレス
スペース制御(SAC)はチェックポイントを同期化す
るタイプ1の命令である。ロードPSWはタイプ2のチ
ェックポイントシンクロナイザであり、I/O命令の多
くはチェックポイントを同期化するタイプ3のオペレー
ションである。
ンのタイプのカテゴリ化にもう一つのディメンションを
付加する。ESA/390 POPではチェックポイン
ト同期化命令は三つのオペレーションタイプのすべてに
ある。無条件分岐(BCRFO)およびセットアドレス
スペース制御(SAC)はチェックポイントを同期化す
るタイプ1の命令である。ロードPSWはタイプ2のチ
ェックポイントシンクロナイザであり、I/O命令の多
くはチェックポイントを同期化するタイプ3のオペレー
ションである。
【0076】タイプ1の命令はすべての前の記憶が高速
バッファに入るまで完了しない。タイプ2と3の命令は
前のすべての記憶が高速バッファに入るまで中間再試行
チェックポイントをつくらず、その記憶が高速バッファ
内となるまで完了しない。その結果、タイプ2と3の命
令についてはその記憶のクリアを待つ間に各命令の終了
時に付加的なリカバリ窓が存在する。エラーが生じる
と、リカバリアルゴリズムが障害のあるソフトウェアチ
ェックポイントインターバルを示すために命令アドレス
を調整する。それ故このリカバリアルゴリズムはタイプ
2と3のチェックポイントシンクロナイザについてそれ
ら自体の固有のリカバリアルゴリズムに加えてリカバリ
アクションの一部分となる。
バッファに入るまで完了しない。タイプ2と3の命令は
前のすべての記憶が高速バッファに入るまで中間再試行
チェックポイントをつくらず、その記憶が高速バッファ
内となるまで完了しない。その結果、タイプ2と3の命
令についてはその記憶のクリアを待つ間に各命令の終了
時に付加的なリカバリ窓が存在する。エラーが生じる
と、リカバリアルゴリズムが障害のあるソフトウェアチ
ェックポイントインターバルを示すために命令アドレス
を調整する。それ故このリカバリアルゴリズムはタイプ
2と3のチェックポイントシンクロナイザについてそれ
ら自体の固有のリカバリアルゴリズムに加えてリカバリ
アクションの一部分となる。
【0077】次にタイプ3の命令の二つの例を用いて、
いかにしてチェックポイントをつくるか、リカバリフッ
トポイントの維持と同期化に対してのリカバリ制御レジ
スタの使用、およびそれらオペレーションを再試行する
ために用いられるアルゴリズムを示す。
いかにしてチェックポイントをつくるか、リカバリフッ
トポイントの維持と同期化に対してのリカバリ制御レジ
スタの使用、およびそれらオペレーションを再試行する
ために用いられるアルゴリズムを示す。
【0078】ESA/390 POP命令PAGE-IN は4
kページのデータを拡張記憶機構212から中央記憶機
構208に移し、SXE328で実行される。これはデ
ータ移動が命令の完了時に完了しなければならないこと
を意味する同期命令である。ESA/390 POPで
は、この命令は実行の前後にアーキテクチャ的にチェッ
クポイントの同期化を行なわねばならない。
kページのデータを拡張記憶機構212から中央記憶機
構208に移し、SXE328で実行される。これはデ
ータ移動が命令の完了時に完了しなければならないこと
を意味する同期命令である。ESA/390 POPで
は、この命令は実行の前後にアーキテクチャ的にチェッ
クポイントの同期化を行なわねばならない。
【0079】図6はPAGE-IN 命令についての実行段階を
示すフローチャートである。PAGE-IN 命令の第1段階す
なわちステップ602は命令セットアップ、例外チェッ
ク、オペランドアドレスの計算等からなる。次にステッ
プ604においてもオペランドアドレスは、エラーが生
じたときのリカバリにより後に使用するためにSXEの
ワーキングレジスタに保存される。この時点で、セット
アップ型ワークのすべてが完了しているが、設計された
ファシリティは変更されていない。このオペレーション
にはアーキテクチャによるチェックポイントの同期化が
必要であるから、これは前の命令からのすべての記憶が
高速バッファに安全に入れられるまで待機しなければな
らない(ステップ606)。この待機ステップは、記憶
プロセスが命令セットアップと重なるようにページ命令
の実行中、出来るだけ遅い時点で実行される。マイクロ
コードがこのときページ要求を出しうる状態となる。
示すフローチャートである。PAGE-IN 命令の第1段階す
なわちステップ602は命令セットアップ、例外チェッ
ク、オペランドアドレスの計算等からなる。次にステッ
プ604においてもオペランドアドレスは、エラーが生
じたときのリカバリにより後に使用するためにSXEの
ワーキングレジスタに保存される。この時点で、セット
アップ型ワークのすべてが完了しているが、設計された
ファシリティは変更されていない。このオペレーション
にはアーキテクチャによるチェックポイントの同期化が
必要であるから、これは前の命令からのすべての記憶が
高速バッファに安全に入れられるまで待機しなければな
らない(ステップ606)。この待機ステップは、記憶
プロセスが命令セットアップと重なるようにページ命令
の実行中、出来るだけ遅い時点で実行される。マイクロ
コードがこのときページ要求を出しうる状態となる。
【0080】ステップ607で即時型リカバリ制御レジ
スタ内のビットは「リカバリにワーキングレジスタが必
要と「ページーイン進行中」がセットされたことを示
し、そしてページイン要求がステップ608で出され
る。即時型リカバリ制御レジスタは、この実施例ではペ
ージ要求のリリースが直ちに生じて命令完了とは同期化
されないために使用される。このときマイクロコードは
状態を示すページ要求に対する応答を待ち(ステップ6
10)、それにより条件コードがセットされる(ステッ
プ610)。PAGE IN 命令についての条件コードの設定
は390/ESAPOPに詳述されている。
スタ内のビットは「リカバリにワーキングレジスタが必
要と「ページーイン進行中」がセットされたことを示
し、そしてページイン要求がステップ608で出され
る。即時型リカバリ制御レジスタは、この実施例ではペ
ージ要求のリリースが直ちに生じて命令完了とは同期化
されないために使用される。このときマイクロコードは
状態を示すページ要求に対する応答を待ち(ステップ6
10)、それにより条件コードがセットされる(ステッ
プ610)。PAGE IN 命令についての条件コードの設定
は390/ESAPOPに詳述されている。
【0081】ページ要求に対するこの応答が入り、そし
て条件コードがセットされると、プロセッサはそのオペ
レーションの実行過程を完了する。そしてマイクロコー
ドはアーキテクチャが要求するようにチェックポイント
を同期化(ステップ614)し、その命令を終了する
(ステップ616)。最後にステップ618で完了/割
込ロジック340がPAGE IN についての完了リポートを
出す。このリポートの結果、即時型およびステージ型の
リカバリ制御レジスタはクリアされる。
て条件コードがセットされると、プロセッサはそのオペ
レーションの実行過程を完了する。そしてマイクロコー
ドはアーキテクチャが要求するようにチェックポイント
を同期化(ステップ614)し、その命令を終了する
(ステップ616)。最後にステップ618で完了/割
込ロジック340がPAGE IN についての完了リポートを
出す。このリポートの結果、即時型およびステージ型の
リカバリ制御レジスタはクリアされる。
【0082】図7はPAGE IN 命令の実行段階、新しいチ
ェックポイントがつくられる点および種々のリカバリ窓
を示す時系列図である。チェックポイント1は最終命令
の完了の結果つくられる。そのポイントからステップ6
07までにおいて、PAGE IN命令はまだタイプ1のリカ
バリ窓内にある。もどすことの出来ない更新がなされた
ファシリティはなく、その結果を見た他のエレメントは
ない。この窓に生じるエラーにより、プロセッサはチェ
ックポイント1にもどる。RCRは特別の処理を必要と
しないことを意味するため、この実行についてはゼロと
いう値を有する。それ故、デコーディングおよび実行が
チェックポイント1からとり出される。
ェックポイントがつくられる点および種々のリカバリ窓
を示す時系列図である。チェックポイント1は最終命令
の完了の結果つくられる。そのポイントからステップ6
07までにおいて、PAGE IN命令はまだタイプ1のリカ
バリ窓内にある。もどすことの出来ない更新がなされた
ファシリティはなく、その結果を見た他のエレメントは
ない。この窓に生じるエラーにより、プロセッサはチェ
ックポイント1にもどる。RCRは特別の処理を必要と
しないことを意味するため、この実行についてはゼロと
いう値を有する。それ故、デコーディングおよび実行が
チェックポイント1からとり出される。
【0083】チェックポイント2は即時型リカバリ制御
レジスタがステップ607によりセットされるときにつ
くられる。このときページング要求が出される。この点
以降に他のエレメントは主記憶機構にページングされた
データを見ることが出来、システムの状態はチェックポ
イント1のそれにはもどることが出来ない。しかしなが
ら、このアーキテクチャはページング命令について複数
の記憶機構のアクセスを可能にし、それ故チェックポイ
ント2がつくられた後にエラーが生じるとすればリカバ
リプロセスがリカバリ制御レジスタを呼出すとき、「リ
カバリに必要なワーキングレジスタ」ビットおよび進行
アルゴリズムコード内の「ページイン(PAGE IN )」を
見ることになる。これによりリカバリマイクロコードは
このケースを処理するための特殊なルーチンを走行させ
る。
レジスタがステップ607によりセットされるときにつ
くられる。このときページング要求が出される。この点
以降に他のエレメントは主記憶機構にページングされた
データを見ることが出来、システムの状態はチェックポ
イント1のそれにはもどることが出来ない。しかしなが
ら、このアーキテクチャはページング命令について複数
の記憶機構のアクセスを可能にし、それ故チェックポイ
ント2がつくられた後にエラーが生じるとすればリカバ
リプロセスがリカバリ制御レジスタを呼出すとき、「リ
カバリに必要なワーキングレジスタ」ビットおよび進行
アルゴリズムコード内の「ページイン(PAGE IN )」を
見ることになる。これによりリカバリマイクロコードは
このケースを処理するための特殊なルーチンを走行させ
る。
【0084】「リカバリに必要なワーキングレジスタ」
(WRRR)ビットはこのアルゴリズムに必要なデー
タ、この場合には主記憶機構のアドレスと拡張記憶機構
のブロック番号、がワーキングレジスタ内にあることを
示す。ワーキングレジスタ内のデータが損なわれるよう
なエラーが生じたとすると、このオペレーションのリカ
バリは不可能となる。WRRRビットがセットされない
とき、ワーキングレジスタ内のデータはそれらに影響す
るエラーからのリカバリを可能にするために更新または
リセットされうる。ワーキングレジスタ内のデータがそ
のエラーによっては損なわれなかった場合には、マイク
ロコードリカバリルーチンがページ命令の回復のために
進められる。このリカバリの第1ステップは現在あるペ
ージング要求を排除することである。これは拡張記憶機
構とプロセッサを再び同期化させる。次にリカバリマイ
クロコードは拡張記憶機構にページング要求を再び出
し、リカバリ制御のもとでオペレーションを完了する。
リカバリの完了時点で完了リポートも発生され、これが
リカバリ制御レジスタをリセットして正常な実行を回復
する。
(WRRR)ビットはこのアルゴリズムに必要なデー
タ、この場合には主記憶機構のアドレスと拡張記憶機構
のブロック番号、がワーキングレジスタ内にあることを
示す。ワーキングレジスタ内のデータが損なわれるよう
なエラーが生じたとすると、このオペレーションのリカ
バリは不可能となる。WRRRビットがセットされない
とき、ワーキングレジスタ内のデータはそれらに影響す
るエラーからのリカバリを可能にするために更新または
リセットされうる。ワーキングレジスタ内のデータがそ
のエラーによっては損なわれなかった場合には、マイク
ロコードリカバリルーチンがページ命令の回復のために
進められる。このリカバリの第1ステップは現在あるペ
ージング要求を排除することである。これは拡張記憶機
構とプロセッサを再び同期化させる。次にリカバリマイ
クロコードは拡張記憶機構にページング要求を再び出
し、リカバリ制御のもとでオペレーションを完了する。
リカバリの完了時点で完了リポートも発生され、これが
リカバリ制御レジスタをリセットして正常な実行を回復
する。
【0085】I/O命令および割込みはESA/390
POPでは次の四つのカテゴリに分類される。
POPでは次の四つのカテゴリに分類される。
【0086】a. I/Oサブシステムと非同期で通信
を行なうI/O命令、 b. I/Oサブシステムと同期して通信を行なうI/
O命令、 c. I/Oサブシステムとは通信を行なわないI/O
命令、および d. I/O割込。
を行なうI/O命令、 b. I/Oサブシステムと同期して通信を行なうI/
O命令、 c. I/Oサブシステムとは通信を行なわないI/O
命令、および d. I/O割込。
【0087】この明細書では、I/Oサブシステムとの
同期通信は、中央プロセッサ202A〜202Cが一つ
の機能を行なうためにI/Oサブシステムを要求し、命
令を完了し、命令ストリーム内の次の命令に続く前にI
/Oサブシステムがタスクを完了するまで待機すること
を意味する。非同期通信は、中央プロセッサにより一つ
の機能が要求されると中央プロセッサがその命令を完了
し、要求された機能をI/Oサブシステムが完了するの
を待たずに命令ストリーム内の次の命令で続行すること
を意味する。
同期通信は、中央プロセッサ202A〜202Cが一つ
の機能を行なうためにI/Oサブシステムを要求し、命
令を完了し、命令ストリーム内の次の命令に続く前にI
/Oサブシステムがタスクを完了するまで待機すること
を意味する。非同期通信は、中央プロセッサにより一つ
の機能が要求されると中央プロセッサがその命令を完了
し、要求された機能をI/Oサブシステムが完了するの
を待たずに命令ストリーム内の次の命令で続行すること
を意味する。
【0088】中央プロセッサ202A〜202Cは制御
ブロックと呼ぶ記憶機構内のデータエリアを用いてI/
Oサブシステムと通信を行なう。中央プロセッサは制御
ブロックをフェッチして要求をさがすについてのイニシ
アチブをI/Oサブシステムに与えるために要求が制御
ブロック内で保留されるときI/Oサブシステムに信号
を送る。同様に、I/OサブシステムはI/O割込みが
保留されるとき中央プロセッサに信号を送る。
ブロックと呼ぶ記憶機構内のデータエリアを用いてI/
Oサブシステムと通信を行なう。中央プロセッサは制御
ブロックをフェッチして要求をさがすについてのイニシ
アチブをI/Oサブシステムに与えるために要求が制御
ブロック内で保留されるときI/Oサブシステムに信号
を送る。同様に、I/OサブシステムはI/O割込みが
保留されるとき中央プロセッサに信号を送る。
【0089】I/Oリカバリの基本構想はI/Oオペレ
ーションの実行前の一つのチェックポイントまでシステ
ムをもどすことである。これはシステムの設計された状
態がオペレーションの実行中更新されるから常に可能で
あるわけではない。そのような場合の構想は中間チェッ
クポイントにもどしてその命令または割込みの実行を終
了させることである。
ーションの実行前の一つのチェックポイントまでシステ
ムをもどすことである。これはシステムの設計された状
態がオペレーションの実行中更新されるから常に可能で
あるわけではない。そのような場合の構想は中間チェッ
クポイントにもどしてその命令または割込みの実行を終
了させることである。
【0090】図8,10,12および14はそれぞれI
/Oサブシステムと非同期通信を行なう命令、I/Oサ
ブシステムとは通信を行なわない命令、I/O割込、お
よびI/Oサブシステムと同期通信を行なう命令につい
てのリカバリに関する実行の流れを示すものである。図
9,11,13および15はそれらI/Oオペレーショ
ンの実行ステップ、新しいチェックポイントをつくる
点、および種々のリカバリ窓を示す時系列図である。同
じ参照数字を付したステップは図8と9、10と11、
12と13、14と15における対応するステップを示
す。
/Oサブシステムと非同期通信を行なう命令、I/Oサ
ブシステムとは通信を行なわない命令、I/O割込、お
よびI/Oサブシステムと同期通信を行なう命令につい
てのリカバリに関する実行の流れを示すものである。図
9,11,13および15はそれらI/Oオペレーショ
ンの実行ステップ、新しいチェックポイントをつくる
点、および種々のリカバリ窓を示す時系列図である。同
じ参照数字を付したステップは図8と9、10と11、
12と13、14と15における対応するステップを示
す。
【0091】図2のI/Oサブシステムと非同期通信を
行なうI/O命令を実行するために、まず、ロックされ
る制御ブロックのアドレスを保存するために用いられた
ワーキングレジスタを図8のステップ702でクリアす
る。このとき中央プロセッサは高速バッファに書込まれ
るべき前の命令からのすべての記憶を待つことによりス
テップ704でチェックポイントの同期化を行なう。こ
れはI/O命令についての任意の記憶がリリースされ、
あるいは任意の設計されたファシリティが回復不能なよ
うに変更される前に行なわねばならない。次にステップ
706でステージ型RCR内の「制御ブロックロック
ド」ビット(CBL)をセットする。このフットポイン
トは完了リポートが入るまで有効にはならない(即時型
RCRにロードされる)。ステップ708で中央プロセ
ッサは制御ブロックのアドレスをワーキングレジスタに
入れ、更新しつつある制御ブロックについてのソフトロ
ックを得る。これらソフトロックは前述したインタロッ
ク更新を用いて得られる。複数の制御ブロックが要求さ
れれば、デッドロックを防止するためにロッキングプロ
トコルをみなければならない。そのようなプロトコルは
周知である。
行なうI/O命令を実行するために、まず、ロックされ
る制御ブロックのアドレスを保存するために用いられた
ワーキングレジスタを図8のステップ702でクリアす
る。このとき中央プロセッサは高速バッファに書込まれ
るべき前の命令からのすべての記憶を待つことによりス
テップ704でチェックポイントの同期化を行なう。こ
れはI/O命令についての任意の記憶がリリースされ、
あるいは任意の設計されたファシリティが回復不能なよ
うに変更される前に行なわねばならない。次にステップ
706でステージ型RCR内の「制御ブロックロック
ド」ビット(CBL)をセットする。このフットポイン
トは完了リポートが入るまで有効にはならない(即時型
RCRにロードされる)。ステップ708で中央プロセ
ッサは制御ブロックのアドレスをワーキングレジスタに
入れ、更新しつつある制御ブロックについてのソフトロ
ックを得る。これらソフトロックは前述したインタロッ
ク更新を用いて得られる。複数の制御ブロックが要求さ
れれば、デッドロックを防止するためにロッキングプロ
トコルをみなければならない。そのようなプロトコルは
周知である。
【0092】ソフトロックの記憶は中間完了リポートか
ら生じるリリースで行なわれる。中間完了リポートによ
り第1ソフトロックの記憶は即時型RCRがセットされ
ると同時に可視となる。このときCPはその第1のタイ
プ3のリカバリ窓に入る。
ら生じるリリースで行なわれる。中間完了リポートによ
り第1ソフトロックの記憶は即時型RCRがセットされ
ると同時に可視となる。このときCPはその第1のタイ
プ3のリカバリ窓に入る。
【0093】ステップ710で中央プロセッサは制御ブ
ロックおよびプログラム記憶手段へのそれらの変更を記
憶バッファに入れ、条件コードをセットする。条件コー
ドは、この更新がこのリカバリ窓が完了する前に生じる
エラーの場合にもとにもどしうるようにチェックポイン
トファシリティで保護される。
ロックおよびプログラム記憶手段へのそれらの変更を記
憶バッファに入れ、条件コードをセットする。条件コー
ドは、この更新がこのリカバリ窓が完了する前に生じる
エラーの場合にもとにもどしうるようにチェックポイン
トファシリティで保護される。
【0094】ステージ型RCRはこのとき記憶バッファ
内で緩衝される制御ブロックとプログラム記憶機構への
変更を反映すべく更新される。所要のリカバリアルゴリ
ズムはステップ712でCBLビットをリセットし、ス
テージ型RCR内の特殊クリーンアップ要求(SPC)
ビットと終了命令(FIN)ビットをセットすることに
よって変更される。
内で緩衝される制御ブロックとプログラム記憶機構への
変更を反映すべく更新される。所要のリカバリアルゴリ
ズムはステップ712でCBLビットをリセットし、ス
テージ型RCR内の特殊クリーンアップ要求(SPC)
ビットと終了命令(FIN)ビットをセットすることに
よって変更される。
【0095】ステップ714で出されたリリースから生
じる完了リポートは同時的に記憶バッファ内の変更を可
視とし、条件コードと即時型RCRを更新することによ
り新しいチェックポイントをつくる。ここでCPはこの
タイプのI/Oオペレーションについての第2のタイプ
3のリカバリ窓に入る。
じる完了リポートは同時的に記憶バッファ内の変更を可
視とし、条件コードと即時型RCRを更新することによ
り新しいチェックポイントをつくる。ここでCPはこの
タイプのI/Oオペレーションについての第2のタイプ
3のリカバリ窓に入る。
【0096】この命令を実行するために必要なすべての
変更は機能的には命令アドレスの更新を除きこの点で完
了する。ステップ716で要求が保留中であることを示
す信号がI/Oサブシステムに送られ、CPが制御ブロ
ックのロック値をリセットし、それらを記憶バッファに
入れることにより制御ブロックのロックをはずすプロセ
スを始める。
変更は機能的には命令アドレスの更新を除きこの点で完
了する。ステップ716で要求が保留中であることを示
す信号がI/Oサブシステムに送られ、CPが制御ブロ
ックのロック値をリセットし、それらを記憶バッファに
入れることにより制御ブロックのロックをはずすプロセ
スを始める。
【0097】所要のリカバリアルゴリズムはステップ7
18でFINビットをリセットし、ステージ型RCR内
の「チェックポイントシンクロナイザ進行中」(CKP
T)ビットをセットすることにより再び変更される。S
PCビットは変更されず、従ってそのままである。
18でFINビットをリセットし、ステージ型RCR内
の「チェックポイントシンクロナイザ進行中」(CKP
T)ビットをセットすることにより再び変更される。S
PCビットは変更されず、従ってそのままである。
【0098】ステップ720で出されるリリースによる
完了リポートは同時的に記憶バッファ内の変更を可視と
して即時型RCRを更新することにより新しいチェック
ポイントをつくる。次にステップ722でCPはその記
憶のすべてが高速バッファに書込まれるのを待つことに
よりチェックポイントの同期化を行なう。
完了リポートは同時的に記憶バッファ内の変更を可視と
して即時型RCRを更新することにより新しいチェック
ポイントをつくる。次にステップ722でCPはその記
憶のすべてが高速バッファに書込まれるのを待つことに
よりチェックポイントの同期化を行なう。
【0099】これら記憶が完了してしまうと、即時型R
CR SPCはリセットされる(ステップ724)。C
KPTビットは変更されず、従ってセットされたままで
ある。最後にステップ726で終了リポートが出され、
ステップ728で完了リポートを発生することによりこ
のオペレーションは完了する。
CR SPCはリセットされる(ステップ724)。C
KPTビットは変更されず、従ってセットされたままで
ある。最後にステップ726で終了リポートが出され、
ステップ728で完了リポートを発生することによりこ
のオペレーションは完了する。
【0100】図9は図8と同じ実行ステップをリカバリ
窓とステージ型および即時型RCRの値と共に時系列で
示したものである。
窓とステージ型および即時型RCRの値と共に時系列で
示したものである。
【0101】チェックポイント1は最後のオペレーショ
ン701の完了時につくられる。CPは完了リポート7
09が出るまでタイプ1のリカバリ窓(WINDOW
1)にとどまる。完了リポート709の前にはシステム
の他の部分に対し変更は可視化されない。エラー時のリ
カバリアクションはプロセッサの状態をチェックポイン
ト1にもどし処理を開始することである。これは即時型
RCRの値をゼロにすることによってリカバリマイクロ
コードに示される。
ン701の完了時につくられる。CPは完了リポート7
09が出るまでタイプ1のリカバリ窓(WINDOW
1)にとどまる。完了リポート709の前にはシステム
の他の部分に対し変更は可視化されない。エラー時のリ
カバリアクションはプロセッサの状態をチェックポイン
ト1にもどし処理を開始することである。これは即時型
RCRの値をゼロにすることによってリカバリマイクロ
コードに示される。
【0102】次のチェックポイント(チェックポイント
2)は完了リポート709の結果としてつくられる。こ
の点で、更新されたソフトロックが可視とされているか
ら記憶機構は変更されている。CBLビットが完了リポ
ート709の結果として即時型RCRにセットされる。
このビットはステップ706の結果としてステージ型R
CR内に早い時期にセットアップされたが、完了リポー
ト709までは有効とならなかったものである。ステッ
プ708は数個のソフトロックを獲得することからな
る。即時型RCR CBLビットは複数のリリースにま
たがるこの周期中オンのままである。
2)は完了リポート709の結果としてつくられる。こ
の点で、更新されたソフトロックが可視とされているか
ら記憶機構は変更されている。CBLビットが完了リポ
ート709の結果として即時型RCRにセットされる。
このビットはステップ706の結果としてステージ型R
CR内に早い時期にセットアップされたが、完了リポー
ト709までは有効とならなかったものである。ステッ
プ708は数個のソフトロックを獲得することからな
る。即時型RCR CBLビットは複数のリリースにま
たがるこの周期中オンのままである。
【0103】チェックポイント1と2は記憶機構内のソ
フトロックについて以外は等しい。ソフトロックはシス
テムの設計された状態を変えない、あるいは他のエレメ
ントにおける反応を生じさせないから、CPはソフトロ
ックをアンロックすることによりチェックポイントにも
どることが出来る。WINDOW 2内でエラーが生ず
れば即時型RCR CBLビットはオンとなってリカバ
リマイクロコードに制御ブロックがロックされることを
示す。リカバリマイクロコードはそれ故、ワーキングレ
ジスタ内にそのアドレスを保存してあるこの制御ブロッ
クをアンロックし、それによりCPをチェックポイント
1にもどす。
フトロックについて以外は等しい。ソフトロックはシス
テムの設計された状態を変えない、あるいは他のエレメ
ントにおける反応を生じさせないから、CPはソフトロ
ックをアンロックすることによりチェックポイントにも
どることが出来る。WINDOW 2内でエラーが生ず
れば即時型RCR CBLビットはオンとなってリカバ
リマイクロコードに制御ブロックがロックされることを
示す。リカバリマイクロコードはそれ故、ワーキングレ
ジスタ内にそのアドレスを保存してあるこの制御ブロッ
クをアンロックし、それによりCPをチェックポイント
1にもどす。
【0104】ワーキングレジスタ内にアドレスを保存す
ることにより制御ブロックをアンロックするときのリカ
バリマイクロコードの時間が節約される。他の方法は一
つの制御ブロックがロックされたことの表示のみを維持
し、次に回復中のCPのロックのIDについてすべての
制御ブロックを検索することである。この技術も、ワー
キングレジスタ内のアドレスがエラーで汚染されたとき
に使用することが出来る。
ることにより制御ブロックをアンロックするときのリカ
バリマイクロコードの時間が節約される。他の方法は一
つの制御ブロックがロックされたことの表示のみを維持
し、次に回復中のCPのロックのIDについてすべての
制御ブロックを検索することである。この技術も、ワー
キングレジスタ内のアドレスがエラーで汚染されたとき
に使用することが出来る。
【0105】CPをチェックポイント1にもどしうるよ
うにすることにより、エラー時に実行中の固有のI/O
オペレーションの知識を回復処理のために保存する必要
はない。
うにすることにより、エラー時に実行中の固有のI/O
オペレーションの知識を回復処理のために保存する必要
はない。
【0106】チェックポイント3はリリース714によ
り生じる完了リポート715でつくられる。完了リポー
ト715により、制御ブロックおよび記憶機構への設計
された変更および条件コードに対する更新(ステップ7
10におけるような)が可視とされる。同時に、即時型
RCR CBLビットはリセットされ、即時型RCRS
PCとFINビットはセットされる。WINDOW 3
中のエラーの場合にはCPはチェックポイント3にもど
される。設計されたファシリティはチェックポイント3
で変更されており、他のシステムエレメントにより見る
ことが出来るから、CPはそれら変更をもとにもどして
チェックポイントにもどることはもはや出来ない。それ
故、行なわれるリカバリアクションは命令を完了するこ
とである。しかしながら、条件コードの更新を含む、命
令の実行に必要な命令の固有の変更のすべてが完了リポ
ート715の結果として同時に生じる。それ故、即時型
RCR FINビットはマイクロコードに、この命令を
終了するのに必要なすべてが制御ブロックをアンロック
し、I/Oサブシステムに信号を送り、チェックポイン
トを同期化して命令アドレスを更新することであること
を知らせる。このアクションはこのカテゴリにおけるす
べての命令についても同じであり、それ故どの特別の命
令が実行中であるかを知る必要はない。
り生じる完了リポート715でつくられる。完了リポー
ト715により、制御ブロックおよび記憶機構への設計
された変更および条件コードに対する更新(ステップ7
10におけるような)が可視とされる。同時に、即時型
RCR CBLビットはリセットされ、即時型RCRS
PCとFINビットはセットされる。WINDOW 3
中のエラーの場合にはCPはチェックポイント3にもど
される。設計されたファシリティはチェックポイント3
で変更されており、他のシステムエレメントにより見る
ことが出来るから、CPはそれら変更をもとにもどして
チェックポイントにもどることはもはや出来ない。それ
故、行なわれるリカバリアクションは命令を完了するこ
とである。しかしながら、条件コードの更新を含む、命
令の実行に必要な命令の固有の変更のすべてが完了リポ
ート715の結果として同時に生じる。それ故、即時型
RCR FINビットはマイクロコードに、この命令を
終了するのに必要なすべてが制御ブロックをアンロック
し、I/Oサブシステムに信号を送り、チェックポイン
トを同期化して命令アドレスを更新することであること
を知らせる。このアクションはこのカテゴリにおけるす
べての命令についても同じであり、それ故どの特別の命
令が実行中であるかを知る必要はない。
【0107】図2のシステムにおいてI/Oサブシステ
ムは要求のマスタコピーとして制御ブロックを使用する
ように設計されている。WINDOW 3がエラーのた
め再試行されるとすれば、2以上の信号が一つの要求に
対しI/Oサブシステムに出されることになる。I/O
サブシステムは実際の要求として制御ブロックを用いる
から、その要求についてもすでにサービスを行なってし
まっていれば、以降の受信信号を捨てることになる。
ムは要求のマスタコピーとして制御ブロックを使用する
ように設計されている。WINDOW 3がエラーのた
め再試行されるとすれば、2以上の信号が一つの要求に
対しI/Oサブシステムに出されることになる。I/O
サブシステムは実際の要求として制御ブロックを用いる
から、その要求についてもすでにサービスを行なってし
まっていれば、以降の受信信号を捨てることになる。
【0108】SPC RCRビットはリカバリマイクロ
コードに、エラーが記憶を損なわせた場合には特殊なア
クションが必要であることを示す。この場合、記憶機構
内の制御ブロックは不一致状態に入る。SPCビットが
オンである間に記憶エラーが生ずれば、リカバリマイク
ロコードはI/O制御ブロックのリセットや再構成を含
む、より極端なアクションを採ることになる。これは命
令処理の損傷ないしチャンネルリポートワード保留機械
チェック割込みを生じさせるからシステムをオペレーシ
ョナルな状態にもどすのに必要である。これら機械チェ
ック割込みの意味はESA/390 POPに示されて
いる。
コードに、エラーが記憶を損なわせた場合には特殊なア
クションが必要であることを示す。この場合、記憶機構
内の制御ブロックは不一致状態に入る。SPCビットが
オンである間に記憶エラーが生ずれば、リカバリマイク
ロコードはI/O制御ブロックのリセットや再構成を含
む、より極端なアクションを採ることになる。これは命
令処理の損傷ないしチャンネルリポートワード保留機械
チェック割込みを生じさせるからシステムをオペレーシ
ョナルな状態にもどすのに必要である。これら機械チェ
ック割込みの意味はESA/390 POPに示されて
いる。
【0109】チェックポイント4はリリース720の結
果としての完了リポート721によりつくられる。完了
リポート721によりすべてのソフトロックはアンロッ
クされる。完了リポート721が出た後、命令の完了に
おいて残されたステップはチェックポイントの同期化
と、必要であれば命令アドレスの更新である。命令アド
レスがPSWステップまたは分岐によりロードされたな
らば、その命令アドレスは増加されない。CKPTビッ
トはこの期間にエラーが生じたならこのアクションが必
要であることを示す。チェックポイントが同期化するす
べてのオペレーションによる一つの共通のリカバリアル
ゴリズムの使用を可能にするためにこのアクションが必
要なことを示すために用いられる。SPCビットは、チ
ェックポイントの同期化がクリアされてしまうまでオン
である。その点で、制御ブロックのすべては安全に高速
バッファに入れられており、より厳しいアクションへの
エスカレーションはもはや必要でない。
果としての完了リポート721によりつくられる。完了
リポート721によりすべてのソフトロックはアンロッ
クされる。完了リポート721が出た後、命令の完了に
おいて残されたステップはチェックポイントの同期化
と、必要であれば命令アドレスの更新である。命令アド
レスがPSWステップまたは分岐によりロードされたな
らば、その命令アドレスは増加されない。CKPTビッ
トはこの期間にエラーが生じたならこのアクションが必
要であることを示す。チェックポイントが同期化するす
べてのオペレーションによる一つの共通のリカバリアル
ゴリズムの使用を可能にするためにこのアクションが必
要なことを示すために用いられる。SPCビットは、チ
ェックポイントの同期化がクリアされてしまうまでオン
である。その点で、制御ブロックのすべては安全に高速
バッファに入れられており、より厳しいアクションへの
エスカレーションはもはや必要でない。
【0110】I/Oサブシステムと非同期通信を行なう
I/O命令内の5個のリカバリ窓はこのカテゴリのすべ
ての命令について同じであり、4個の固有のRCRビッ
ト、すなわちCBL、SPC、FIN、CKPT、を用
いてリカバリマイクロコードに示される。
I/O命令内の5個のリカバリ窓はこのカテゴリのすべ
ての命令について同じであり、4個の固有のRCRビッ
ト、すなわちCBL、SPC、FIN、CKPT、を用
いてリカバリマイクロコードに示される。
【0111】図10はI/Oサブシステムとは通信を行
わないI/O命令についての実行ステップを示すフロー
図であり、図11は同一カテゴリのI/O命令について
のリカバリ窓を示す時系列図である。ステップ816を
除きステップ802〜828は図8の対応部分(702
〜728)と同じである。ステップ716に対応するス
テップ816においてこれら命令の実行はI/Oサブシ
ステム(図8)と通信する命令とは異なる。図10から
明らかなようにステップ816ではI/Oサブシステム
はメッセージは出されない。リカバリ窓のすべては要求
されるリカバリアクションを示すために用いられるRC
Rビットと同じである。I/Oサブシステムは擬似信号
を処理するように設計されるから、同一のFINビット
を非同期通信を行なう命令とI/Oサブシステムと通信
を行なわないものの両方に用いることが出来る。
わないI/O命令についての実行ステップを示すフロー
図であり、図11は同一カテゴリのI/O命令について
のリカバリ窓を示す時系列図である。ステップ816を
除きステップ802〜828は図8の対応部分(702
〜728)と同じである。ステップ716に対応するス
テップ816においてこれら命令の実行はI/Oサブシ
ステム(図8)と通信する命令とは異なる。図10から
明らかなようにステップ816ではI/Oサブシステム
はメッセージは出されない。リカバリ窓のすべては要求
されるリカバリアクションを示すために用いられるRC
Rビットと同じである。I/Oサブシステムは擬似信号
を処理するように設計されるから、同一のFINビット
を非同期通信を行なう命令とI/Oサブシステムと通信
を行なわないものの両方に用いることが出来る。
【0112】図12はI/O割込みの実行ステップのフ
ローチャート、図13は対応する時系列図である。割込
みの実行はI/Oサブシステムと非同期通信を行なう命
令および通信を行なわない命令のそれとはいく分異な
る。それ故、新しいRCRビットが導入され、すなわち
「I/O割込進行中」(IRPT)が導入され、これが
ステップ902でセットされる。CPはこのときステッ
プ904でI/O割込みの所有権を要求する。一実施例
では所有権は或種の仲裁プロセスにより一つのCPに許
可される。一つのCPが選択されると、すべての他のC
Pにおいて割込みがリセットされてそれらが誤って割込
まれることのないようにする。要求するCPはワーキン
グレジスタにそれがワーキングしているI/Oサブクラ
スを保存し(ステップ906)、他のワーキングレジス
タを初期化する(ステップ908)。
ローチャート、図13は対応する時系列図である。割込
みの実行はI/Oサブシステムと非同期通信を行なう命
令および通信を行なわない命令のそれとはいく分異な
る。それ故、新しいRCRビットが導入され、すなわち
「I/O割込進行中」(IRPT)が導入され、これが
ステップ902でセットされる。CPはこのときステッ
プ904でI/O割込みの所有権を要求する。一実施例
では所有権は或種の仲裁プロセスにより一つのCPに許
可される。一つのCPが選択されると、すべての他のC
Pにおいて割込みがリセットされてそれらが誤って割込
まれることのないようにする。要求するCPはワーキン
グレジスタにそれがワーキングしているI/Oサブクラ
スを保存し(ステップ906)、他のワーキングレジス
タを初期化する(ステップ908)。
【0113】ステップ910でCPは割込所有権につい
て許可されたかどうかを決定する。割込み処理に選ばれ
ていなければ、すなわち所有権が与えられなければ、割
込処理を終り、命令ストリームにもどる。これは終了リ
ポート911を出すことによって行なわれ、それにより
完了リポート913が生じ、命令処理が回復する。要求
CPが割込み所有権を与えられれば、それがチェックポ
イントを同期化する(ステップ912)。これは設計さ
れたファシリティが回復不能に変更される前に行なわ
れ、記憶機構がこの割込みで更新される。このときCP
はステージ型RCRにCBLビットをセットし(ステッ
プ914)、要求された制御ブロックのソフトロッキン
グをはじめる(ステップ916)。
て許可されたかどうかを決定する。割込み処理に選ばれ
ていなければ、すなわち所有権が与えられなければ、割
込処理を終り、命令ストリームにもどる。これは終了リ
ポート911を出すことによって行なわれ、それにより
完了リポート913が生じ、命令処理が回復する。要求
CPが割込み所有権を与えられれば、それがチェックポ
イントを同期化する(ステップ912)。これは設計さ
れたファシリティが回復不能に変更される前に行なわ
れ、記憶機構がこの割込みで更新される。このときCP
はステージ型RCRにCBLビットをセットし(ステッ
プ914)、要求された制御ブロックのソフトロッキン
グをはじめる(ステップ916)。
【0114】ステップ918において、プログラム記憶
機構と制御ブロック内の設計されたフィールドへの更新
が記憶バッファ内に置かれる。次にステップ920にお
いてI/Oの新しいPSWがフェッチされてPSWに置
かれる。このPSWはまたそのチェックポイント値を保
持するためのチェックポイントファシリティで保護され
る。ステップ922で、ステージRCRのビットSPC
とCKPTがセットされ、CBLとIRPTがリセット
される。次にステップ924でリリースが出され、その
対応する完了リポートにより記憶機構、PSWおよび即
時型RCRが同時に更新される。
機構と制御ブロック内の設計されたフィールドへの更新
が記憶バッファ内に置かれる。次にステップ920にお
いてI/Oの新しいPSWがフェッチされてPSWに置
かれる。このPSWはまたそのチェックポイント値を保
持するためのチェックポイントファシリティで保護され
る。ステップ922で、ステージRCRのビットSPC
とCKPTがセットされ、CBLとIRPTがリセット
される。次にステップ924でリリースが出され、その
対応する完了リポートにより記憶機構、PSWおよび即
時型RCRが同時に更新される。
【0115】ステップ926でCPはチェックポイント
を同期化してすべての制御ブロックおよび設計された記
憶機構が進行の前に更新されるようにする。この時点で
は制御ブロックが高速バッファに記憶されるから、もは
や特殊なクリーンアップは不要であり、SPCビットが
リセットされる(ステップ928)。このとき終了リポ
ートが出される(ステップ930)。これは最終の完了
リポートを生じさせる(ステップ932)。
を同期化してすべての制御ブロックおよび設計された記
憶機構が進行の前に更新されるようにする。この時点で
は制御ブロックが高速バッファに記憶されるから、もは
や特殊なクリーンアップは不要であり、SPCビットが
リセットされる(ステップ928)。このとき終了リポ
ートが出される(ステップ930)。これは最終の完了
リポートを生じさせる(ステップ932)。
【0116】I/O割込みに必要なリカバリアクション
の多くはI/Oサブシステムと非同期通信を行なう命令
およびI/Oサブシステムとは通信を行なわない命令に
より必要とされるものと同じである。それ故、I/O割
込みは同じRCRビット、SPC、CBL、CKPTと
リカバリアルゴリズムを使用する。IRPTビットはC
Pリカバリマイクロコードに、所有権が要求されている
ため割込みのイニシアチブがすべてのCP内でリセット
されうることを示す。I/O割込みのWINDOW 2
または3にエラーが生ずれば、回復するCPで走行する
リカバリコードが保留されているI/O割込みについて
制御ブロックを検索し、すべてのCPに、再び割込み保
留インジケータのセットを知らせて割込みイニシアチブ
を再成させる。それ故I/O割込みを回復するためには
1個の付加的RCRビットとリカバリアルゴリズムしか
必要としない。リカバリの時間を短くするために、どの
割込みが処理されたかについての情報が保存出来、その
特定の割込みのみが再成される。
の多くはI/Oサブシステムと非同期通信を行なう命令
およびI/Oサブシステムとは通信を行なわない命令に
より必要とされるものと同じである。それ故、I/O割
込みは同じRCRビット、SPC、CBL、CKPTと
リカバリアルゴリズムを使用する。IRPTビットはC
Pリカバリマイクロコードに、所有権が要求されている
ため割込みのイニシアチブがすべてのCP内でリセット
されうることを示す。I/O割込みのWINDOW 2
または3にエラーが生ずれば、回復するCPで走行する
リカバリコードが保留されているI/O割込みについて
制御ブロックを検索し、すべてのCPに、再び割込み保
留インジケータのセットを知らせて割込みイニシアチブ
を再成させる。それ故I/O割込みを回復するためには
1個の付加的RCRビットとリカバリアルゴリズムしか
必要としない。リカバリの時間を短くするために、どの
割込みが処理されたかについての情報が保存出来、その
特定の割込みのみが再成される。
【0117】図14はI/Oサブシステムと同期的に通
信を行なうI/O命令の実行を示すフローチャートであ
り、図15はそれに対応する実行時系列図である。
信を行なうI/O命令の実行を示すフローチャートであ
り、図15はそれに対応する実行時系列図である。
【0118】図2のシステムではI/Oサブシステムと
同期通信を行なう命令はその機能を行なう資源が使用可
能となるまで待機しなければならない。これも制御ブロ
ックを用いて決定される。それ故、同期通信を行なう命
令はワーキングレジスタを初期化し(ステップ100
2)、チェックポイントを同期化し(ステップ100
4)、さらに制御ブロックについてのソフトロック獲得
を開始し(ステップ1006)、ワーキングレジスタに
それらロックのアドレスを入れる(ステップ100
8)。この機能を実行することを要求される資源につい
てのソフトロックが得られると、CPは制御ブロックを
検査してその資源が使用中であるかどうかを決定する
(ステップ1010)。その資源が使用出来なければ、
ロックプロトコルは、前に得た他のソフトロックをその
資源のロック時に以降の試みがなされる前にリリースす
ることを要求する。これは制御ブロック内のロックID
をリセットし、制御ブロックに更新を置き(ステップ1
011)、記憶が可視化されるようにリリース信号を出
す(ステップ1013)。
同期通信を行なう命令はその機能を行なう資源が使用可
能となるまで待機しなければならない。これも制御ブロ
ックを用いて決定される。それ故、同期通信を行なう命
令はワーキングレジスタを初期化し(ステップ100
2)、チェックポイントを同期化し(ステップ100
4)、さらに制御ブロックについてのソフトロック獲得
を開始し(ステップ1006)、ワーキングレジスタに
それらロックのアドレスを入れる(ステップ100
8)。この機能を実行することを要求される資源につい
てのソフトロックが得られると、CPは制御ブロックを
検査してその資源が使用中であるかどうかを決定する
(ステップ1010)。その資源が使用出来なければ、
ロックプロトコルは、前に得た他のソフトロックをその
資源のロック時に以降の試みがなされる前にリリースす
ることを要求する。これは制御ブロック内のロックID
をリセットし、制御ブロックに更新を置き(ステップ1
011)、記憶が可視化されるようにリリース信号を出
す(ステップ1013)。
【0119】資源が使用可能であれば、制御ブロックに
対する更新は資源がそのとき使用中であることを示し、
所要の機能が記憶バッファに置かれ(ステップ101
2)、制御ブロックのソフトロックが解除される(記憶
バッファにおいて緩衝される)(ステップ1014)。
次にその機能の実行を要求するメッセージがI/Oサブ
システムに出される(ステップ1016)。SPCステ
ージ型RCRビットは、同期通信を行なう命令が進行中
(SYNC)であることを示す新しいステージ型RCR
ビットと共にセットされる。ステージ型RCR CBL
ビットはリセットされ(ステップ1018)、リリース
が出される(ステップ1020)。この結果として完了
リポートにより制御ブロックは更新され、即時型RCR
はセットされる。このときCPはI/Oサブシステムが
そのタスクを完了するのを待つ(ステップ1022)。
次にCPはI/Oオペレーションの結果を含む制御ブロ
ックをソフトロックし(ステップ1024)、その結果
をプログラム記憶機構に記憶されるべきものとして記憶
バッファに置く(ステップ1026)。そして、それが
制御ブロックに更新を置き、資源を解放し(ステップ1
028)、さらに制御ブロックについてのリセットロッ
ク値を記憶バッファに置く(ステップ1030)。
対する更新は資源がそのとき使用中であることを示し、
所要の機能が記憶バッファに置かれ(ステップ101
2)、制御ブロックのソフトロックが解除される(記憶
バッファにおいて緩衝される)(ステップ1014)。
次にその機能の実行を要求するメッセージがI/Oサブ
システムに出される(ステップ1016)。SPCステ
ージ型RCRビットは、同期通信を行なう命令が進行中
(SYNC)であることを示す新しいステージ型RCR
ビットと共にセットされる。ステージ型RCR CBL
ビットはリセットされ(ステップ1018)、リリース
が出される(ステップ1020)。この結果として完了
リポートにより制御ブロックは更新され、即時型RCR
はセットされる。このときCPはI/Oサブシステムが
そのタスクを完了するのを待つ(ステップ1022)。
次にCPはI/Oオペレーションの結果を含む制御ブロ
ックをソフトロックし(ステップ1024)、その結果
をプログラム記憶機構に記憶されるべきものとして記憶
バッファに置く(ステップ1026)。そして、それが
制御ブロックに更新を置き、資源を解放し(ステップ1
028)、さらに制御ブロックについてのリセットロッ
ク値を記憶バッファに置く(ステップ1030)。
【0120】次にステージ型RCRはCKPTビットを
セットし、SYNCビットをリセットすることにより新
しいチェックポイントを示すために更新される(ステッ
プ1032)。次いでリリースが出される(ステップ1
034)。CPはチェックポイントの同期化を行ない
(ステップ1036)、SPCビットをリセットし(ス
テップ1038)て終了する(ステップ1040)。最
後に命令が完了する(ステップ1042)。
セットし、SYNCビットをリセットすることにより新
しいチェックポイントを示すために更新される(ステッ
プ1032)。次いでリリースが出される(ステップ1
034)。CPはチェックポイントの同期化を行ない
(ステップ1036)、SPCビットをリセットし(ス
テップ1038)て終了する(ステップ1040)。最
後に命令が完了する(ステップ1042)。
【0121】図15はI/Oサブシステムと同期的に通
信するI/O命令の実行の異なる過程(リカバリ窓)お
よび各過程で生じる障害についての所要のリカバリアク
ションを示すタイミング図である。図15内の参照数字
は図15に示す前述のステップに対応する。
信するI/O命令の実行の異なる過程(リカバリ窓)お
よび各過程で生じる障害についての所要のリカバリアク
ションを示すタイミング図である。図15内の参照数字
は図15に示す前述のステップに対応する。
【0122】SPC、CKPTおよびCBL RCRビ
ットは他方のI/Oオペレーションについてのものと同
じリカバリアクションを有する。SYNCビットが即時
型RCRにセットされている間にエラーが生じると、C
Pリカバリマイクロコードはチェックポイント3から命
令の実行をとり出してそれをリカバリ制御のもとで完了
する。
ットは他方のI/Oオペレーションについてのものと同
じリカバリアクションを有する。SYNCビットが即時
型RCRにセットされている間にエラーが生じると、C
Pリカバリマイクロコードはチェックポイント3から命
令の実行をとり出してそれをリカバリ制御のもとで完了
する。
【0123】このように、6個のRCRビットと固有の
アクションのみがすべてのI/O命令および割込のすべ
ての窓を回復するのに必要である。このようにチェック
ポイントをつくることにより、リカバリの有効性を最大
にしつつ、アルゴリズムの数を最少とすることが出来
る。
アクションのみがすべてのI/O命令および割込のすべ
ての窓を回復するのに必要である。このようにチェック
ポイントをつくることにより、リカバリの有効性を最大
にしつつ、アルゴリズムの数を最少とすることが出来
る。
【0124】
【発明の効果】本発明によるリカバリ制御システムは、
命令処理の経過を維持し、チェックポイントの完了と同
期してエラーリカバリ処理ファシリティに正しくタイミ
ングよくエラーリカバリ情報を与えることができる。
命令処理の経過を維持し、チェックポイントの完了と同
期してエラーリカバリ処理ファシリティに正しくタイミ
ングよくエラーリカバリ情報を与えることができる。
【図1】無シーケンスで命令を実行出来るプロセッサに
おける種々の命令の実行の状態を示す図。
おける種々の命令の実行の状態を示す図。
【図2】中央電子複合体(CEC)のブロック図。
【図3】図2のCEC内の中央プロセッサ(CP)の機
能図。
能図。
【図4】(A)はタイプ2のプロセッサのブロック図で
あって、その活性コピーとチェックポイントコピーおよ
びチェックポイントデータのつくり方および回復のし方
を示す図。(B)はタイプ2の命令の実行に関して、い
かに活性およびチェックポイントレジスタの値が変化す
るかを示すタイミング図。
あって、その活性コピーとチェックポイントコピーおよ
びチェックポイントデータのつくり方および回復のし方
を示す図。(B)はタイプ2の命令の実行に関して、い
かに活性およびチェックポイントレジスタの値が変化す
るかを示すタイミング図。
【図5】図3のリカバリ制御レジスタ(RCR)のブロ
ック図。
ック図。
【図6】PAGE IN命令の実行を示すフローチャー
ト。
ト。
【図7】PAGE IN命令の異なる実行過程(リカバ
リ窓)および各過程に生じる障害についての所要のリカ
バリアクションを示すタイミング図。
リ窓)および各過程に生じる障害についての所要のリカ
バリアクションを示すタイミング図。
【図8】I/Oサブシステムと非同期通信を行なうI/
O命令の実行を示すフローチャート。
O命令の実行を示すフローチャート。
【図9】I/Oサブシステムと非同期通信を行なうI/
O命令の異なる実行過程(リカバリ窓)および各過程に
生じる障害についての所要のリカバリアクションを示す
タイミング図。
O命令の異なる実行過程(リカバリ窓)および各過程に
生じる障害についての所要のリカバリアクションを示す
タイミング図。
【図10】I/Oサブシステムと通信を行なわないI/
O命令の実行を示すフローチャート。
O命令の実行を示すフローチャート。
【図11】I/Oサブシステムと通信を行なわないI/
O命令の異なる実行過程(リカバリ窓)と各過程に生じ
る障害についての所要のリカバリアクションを示すタイ
ミング図。
O命令の異なる実行過程(リカバリ窓)と各過程に生じ
る障害についての所要のリカバリアクションを示すタイ
ミング図。
【図12】I/O割込の実行を示すフローチャート。
【図13】I/O割込の異なる実行過程(リカバリ窓)
および各過程に生じる障害についての所要のリカバリア
クションを示すタイミング図。
および各過程に生じる障害についての所要のリカバリア
クションを示すタイミング図。
【図14】I/Oサブシステムと同期的に通信するI/
O命令の実行を示すフローチャート。
O命令の実行を示すフローチャート。
【図15】I/Oサブシステムと同期的に通信を行なう
I/O命令の異なる実行過程(リカバリ窓)および各過
程に生じる障害についての所要のリカバリアクションを
示すタイミング図。
I/O命令の異なる実行過程(リカバリ窓)および各過
程に生じる障害についての所要のリカバリアクションを
示すタイミング図。
202A〜202C 中央プロセッサ 204A〜204C レベル1高速バッファ 206 レベル2高速バッファ 208 中央記憶機構 210A 相互接続通信エレメント 210B チャンネルサブシステム 212 拡張記憶機構 216 プロセッサコントローラエレメント 218 システム制御エレメント
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート、ジョン、ハーバン アメリカ合衆国ニューヨーク州、ライ、ウ ォルナット、ストリート、ビー03、1 (72)発明者 スーザン、バーバラ、スティルマン アメリカ合衆国ニューヨーク州、ポーキプ シー、スタウト、コート、3−11
Claims (5)
- 【請求項1】プロセッサによる命令ストリームの実行中
に生じるエラーから回復するためのリカバリ制御システ
ムであって、 上記命令の夫々の完了時にチェックポイントをつくるた
めのチェックポイント手段と、 上記エラーを検出するためのエラー検出手段と、 上記エラー検出手段がエラーを検出したときに実行され
るべきエラーリカバリプロセスを選択し、そのエラー処
理プロセスを示すコードを発生するための決定手段と、 第1レジスタ、この第1レジスタに接続されて上記エラ
ーリカバリシステムに直接にデータを与えるように接続
された第2レジスタ、上記決定手段に接続されて上記第
1レジスタと第2レジスタの内の一方を上記エラー処理
コードを受けるものとして選択するための選択手段、及
び、上記チェックポイトン手段に接続されて上記チェッ
クポイントの発生と同期的に上記第1レジスタから第2
レジスタに上記データを転送するための転送手段を備え
たリカバリ制御レジスタと、 上記第2レジスタに接続されてその中の上記コードによ
り示される上記リカバリプロセスを実行するためのリカ
バリ手段とを備えたリカバリ制御システム。 - 【請求項2】前記チェックポイント手段は前記チェック
ポイントの夫々について中間完了リポートと最終完了リ
ポートを発生する手段を含み、前記転送手段は上記中間
完了リポートに応じて前記データを前記第1レジスタか
ら第2レジスタに転送するものである請求項1のリカバ
リ制御システム。 - 【請求項3】プロセッサによる命令ストリームの実行中
に生じるエラーから回復するためのリカバリ制御システ
ムであって、 a) 上記命令の夫々の完了時にチェックポイントをつ
くるためのチェックポイント手段および上記チェックポ
イントの夫々について中間完了リポートと最終完了リポ
ートを発生する手段と、 b) 上記エラーを検出するためのエラー検出手段と、 c) 上記プロセッサで進行中のオペレーションをモニ
タのために決定し、上記エラー検出手段がエラーを検出
したときに実行されるべきエラーリカバリプロセスを選
択し、上記エラー処理プロセスを示すコードを発生する
ためのリカバリ制御手段と、 d) i)第1レジスタ、及びii)この第1レジスタ
に接続され上記エラーリカバリシステムに直接データを
与えるように接続される第2レジスタを有し、iii)
上記第1レジスタ及び第2レジスタは、それぞれ、エラ
ー時に一つの命令の実行状況を示す状態情報を記憶する
ための第1部分とリカバリ制御アルゴリズムを示すエン
コードデータを記憶する第2部分を有するものであり、
更に、iv)上記決定手段に接続されて上記第1および
第2レジスタの一方を上記エラー処理コードを受けるも
のとして選択する選択手段、v)上記チェックポイント
手段に接続されて上記中間完了リポートに応じて上記第
1レジスタから第2レジスタに上記データを転送するた
めの転送手段、vi)上記リカバリ制御手段と上記第1
レジスタに接続されて上記リカバリ制御手段からの信号
に応じて上記第1レジスタの上記第1部分のデータを論
理的に演算するための変更手段、及びvii)上記チェ
ックポイント手段、上記第1レジスタ及び上記第2レジ
スタに接続されて、上記最終完了リポートに応じて上記
第1及び第2レジスタをリセットするためのレジスタリ
セット手段を有するリカバリ制御レジスタと、 e) 上記第2レジスタに接続されてその中の上記コー
ドにより示される上記リカバリプロセスを実行するため
のリカバリ手段とを備えたリカバリ制御システム。 - 【請求項4】プロセッサによる命令ストリームの実行中
に生じるエラーから回復するためのエラー回復方法であ
って、 上記命令の夫々の完了時にチェックポイントをつくるス
テップと、 上記実行中に進行中のオペレーションを決定するステッ
プと、 上記の決定に応じてエラーが検出されたときに実行され
るべきエラーリカバリプロセスを選択するステップと、 上記エラー処理プロセスを示すコードを発生するステッ
プと、 上記コードを一時的に記憶するステップと、 上記エラーを検出するステップと、 上記チェックポイントの発生と同期して上記コードをエ
ラーリカバリシステムに与えるステップと、 上記エラーが検出された後に上記コードにより示される
リカバリアクションを開始するステップとを有するエラ
ー回復方法。 - 【請求項5】シーケンス命令をデコードするためのデコ
ード手段と、 このデコード手段に接続されて上記シーケンスをはずし
て上記命令を実行すると共に、エラーが上記命令の内の
少なくとも一つの実行中に検出されるとき実行されるべ
きエラーリカバリプロセスを選択してそのエラーリカバ
リプロセスを示すコードを発生するための決定手段を含
む実行手段と、 上記実行手段に接続されて上記シーケンスをもって上記
命令を完了すると共に上記命令の夫々が完了したときリ
カバリチェックポイントをつくるための完了手段と、 上記実行手段に接続されて上記エラーを検出するための
エラー検出手段と、 上記実行手段と上記完了手段に接続され、かつ、第1レ
ジスタ、上記第1レジスタに接続される第2レジスタ、
上記決定手段に接続されて上記第1および第2レジスタ
の一方を上記エラー処理コードを受けるものとして選択
する選択手段、及び、上記チェックポイント手段に接続
されて上記チェックポイントの発生と同期して上記第1
レジスタから第2レジスタに上記エラー処理コードを転
送する転送手段を含むリカバリ制御レジスタと、 上記実行手段と上記第2レジスタに接続されて上記エラ
ーが上記命令の内の少なくとも一つの実行中に検出され
たとき、上記コードで示されるエラーリカバリアクショ
ンを開始するためのリカバリ制御手段とを備えたプロセ
ッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/751,461 US5293613A (en) | 1991-08-29 | 1991-08-29 | Recovery control register |
| US751461 | 1991-08-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05216700A JPH05216700A (ja) | 1993-08-27 |
| JPH0812619B2 true JPH0812619B2 (ja) | 1996-02-07 |
Family
ID=25022073
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4214504A Expired - Lifetime JPH0812619B2 (ja) | 1991-08-29 | 1992-07-20 | リカバリ制御システム及びエラー回復方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5293613A (ja) |
| EP (1) | EP0529536A2 (ja) |
| JP (1) | JPH0812619B2 (ja) |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5398330A (en) * | 1992-03-05 | 1995-03-14 | Seiko Epson Corporation | Register file backup queue |
| GB9214198D0 (en) * | 1992-07-03 | 1992-08-12 | Texas Instruments Ltd | Method of resetting coupled modules and a system using the method |
| GB2272549B (en) * | 1992-11-03 | 1997-01-29 | Tolsys Ltd | Memory checkpointing |
| US5386549A (en) * | 1992-11-19 | 1995-01-31 | Amdahl Corporation | Error recovery system for recovering errors that occur in control store in a computer system employing pipeline architecture |
| JPH06236289A (ja) * | 1993-02-08 | 1994-08-23 | Kofu Nippon Denki Kk | 情報処理装置 |
| US5644769A (en) * | 1993-06-14 | 1997-07-01 | Matsushita Electric Industrial Co., Ltd. | System for optimizing program by virtually executing the instruction prior to actual execution of the program to invalidate unnecessary instructions |
| US5666507A (en) * | 1993-12-29 | 1997-09-09 | Unisys Corporation | Pipelined microinstruction apparatus and methods with branch prediction and speculative state changing |
| DE69506404T2 (de) * | 1994-06-10 | 1999-05-27 | Texas Micro Inc., Houston, Tex. | Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem |
| US5673391A (en) * | 1995-03-31 | 1997-09-30 | International Business Machines Corporation | Hardware retry trap for millicoded processor |
| KR100264631B1 (ko) * | 1995-06-29 | 2000-10-02 | 포만 제프리 엘 | 신호 기록 재생 장치 및 에러 회복 처리 실행 순서 변경 방법 |
| US5802340A (en) * | 1995-08-22 | 1998-09-01 | International Business Machines Corporation | Method and system of executing speculative store instructions in a parallel processing computer system |
| US5630047A (en) * | 1995-09-12 | 1997-05-13 | Lucent Technologies Inc. | Method for software error recovery using consistent global checkpoints |
| US5898864A (en) * | 1995-09-25 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors |
| US5864657A (en) * | 1995-11-29 | 1999-01-26 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system |
| US5931954A (en) * | 1996-01-31 | 1999-08-03 | Kabushiki Kaisha Toshiba | I/O control apparatus having check recovery function |
| JP3258228B2 (ja) * | 1996-03-15 | 2002-02-18 | 株式会社東芝 | チェックポイント生成方法 |
| TW379298B (en) * | 1996-09-30 | 2000-01-11 | Toshiba Corp | Memory updating history saving device and memory updating history saving method |
| US5794254A (en) * | 1996-12-03 | 1998-08-11 | Fairbanks Systems Group | Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets |
| US6038665A (en) * | 1996-12-03 | 2000-03-14 | Fairbanks Systems Group | System and method for backing up computer files over a wide area computer network |
| US6282637B1 (en) * | 1998-12-02 | 2001-08-28 | Sun Microsystems, Inc. | Partially executing a pending atomic instruction to unlock resources when cancellation of the instruction occurs |
| US6571363B1 (en) * | 1998-12-30 | 2003-05-27 | Texas Instruments Incorporated | Single event upset tolerant microprocessor architecture |
| DE19957594B4 (de) * | 1999-11-30 | 2004-08-26 | OCé PRINTING SYSTEMS GMBH | Verfahren zum Synchronisieren von threads eines Computerprogramms |
| US6519730B1 (en) * | 2000-03-16 | 2003-02-11 | Fujitsu Limited | Computer and error recovery method for the same |
| GB0012352D0 (en) * | 2000-05-22 | 2000-07-12 | Northern Telecom Ltd | Reliable hardware support for the use of formal languages in high assurance systems |
| US6820251B1 (en) * | 2000-11-06 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method for a software recovery mechanism |
| US7134959B2 (en) | 2003-06-25 | 2006-11-14 | Scientific Games Royalty Corporation | Methods and apparatus for providing a lottery game |
| US20070083867A1 (en) * | 2005-09-09 | 2007-04-12 | International Business Machines Corporation | Method and system to recover from control block hangs in a heterogenous multiprocessor environment |
| US7640278B2 (en) * | 2006-06-28 | 2009-12-29 | International Business Machines Corporation | System and method for implementing a partial-blocking consistency point in a database |
| US7512772B2 (en) * | 2007-01-08 | 2009-03-31 | International Business Machines Corporation | Soft error handling in microprocessors |
| US20080288807A1 (en) * | 2007-05-18 | 2008-11-20 | Michael Edward Lyons | System, method, and computer program for presenting and utilizing footprint data as a diagnostic tool |
| US7913067B2 (en) * | 2008-02-20 | 2011-03-22 | International Business Machines Corporation | Method and system for overlapping execution of instructions through non-uniform execution pipelines in an in-order processor |
| TWI806581B (zh) * | 2022-04-29 | 2023-06-21 | 瑞昱半導體股份有限公司 | 用來在管線化架構中檢查並更新程式計數器數值的邏輯電路以及方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4044337A (en) * | 1975-12-23 | 1977-08-23 | International Business Machines Corporation | Instruction retry mechanism for a data processing system |
| US4589087A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Condition register architecture for a primitive instruction set machine |
| JPS623347A (ja) * | 1985-06-28 | 1987-01-09 | Yokogawa Hewlett Packard Ltd | エラ−回復情報退避方式 |
| US4703481A (en) * | 1985-08-16 | 1987-10-27 | Hewlett-Packard Company | Method and apparatus for fault recovery within a computing system |
| US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
| US4912707A (en) * | 1988-08-23 | 1990-03-27 | International Business Machines Corporation | Checkpoint retry mechanism |
-
1991
- 1991-08-29 US US07/751,461 patent/US5293613A/en not_active Expired - Fee Related
-
1992
- 1992-07-20 JP JP4214504A patent/JPH0812619B2/ja not_active Expired - Lifetime
- 1992-08-21 EP EP92114320A patent/EP0529536A2/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| US5293613A (en) | 1994-03-08 |
| EP0529536A3 (ja) | 1994-08-31 |
| JPH05216700A (ja) | 1993-08-27 |
| EP0529536A2 (en) | 1993-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0812619B2 (ja) | リカバリ制御システム及びエラー回復方法 | |
| US5269017A (en) | Type 1, 2 and 3 retry and checkpointing | |
| US10909006B2 (en) | Main processor error detection using checker processors | |
| EP0495165B1 (en) | Overlapped serialization | |
| JP2916420B2 (ja) | チェックポイント処理加速装置およびデータ処理方法 | |
| JP3701814B2 (ja) | マルチプロセッサ・システム及びそのシステム・シリアル化方法 | |
| US5193158A (en) | Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths | |
| EP0304556B1 (en) | High availability multiprocessing | |
| JP2597811B2 (ja) | データ処理システム | |
| KR100758367B1 (ko) | 향상된 마이크로프로세서에서의 스케줄링을 강화시키는 방법 및 장치 | |
| US5590309A (en) | Storage protection cache and backing storage having system control element data cache pipeline and storage protection bits in a stack array with a stack directory for the stack array | |
| EP0529303A2 (en) | Checkpoint synchronization with instruction overlap enabled | |
| JPH0677233B2 (ja) | データ処理システム | |
| US20090044044A1 (en) | Device and method for correcting errors in a system having at least two execution units having registers | |
| EP0348994A2 (en) | Directed hardware error identification method and apparatus for error recovery in piplined processing areas of a computer system | |
| JPS6353571B2 (ja) | ||
| JPH0227440A (ja) | 記憶システム | |
| JPH06222936A (ja) | 共用変数の値を更新する方法 | |
| JPH02232737A (ja) | パイプライン方式コンピューターシステムにおいてエラーを検出し訂正する方法及び装置 | |
| US5003458A (en) | Suspended instruction restart processing system based on a checkpoint microprogram address | |
| US5146569A (en) | System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension | |
| US20020133745A1 (en) | Self-checking multi-threaded processor | |
| JPH0574101B2 (ja) | ||
| JPH08137751A (ja) | プロセッサ装置及びその制御方法 | |
| EP0212132A1 (en) | Method and digital computer for recovering from errors |