JPH0812618B2 - 再試行及びチェックポイント設定によるエラー回復装置及び方法 - Google Patents

再試行及びチェックポイント設定によるエラー回復装置及び方法

Info

Publication number
JPH0812618B2
JPH0812618B2 JP4202466A JP20246692A JPH0812618B2 JP H0812618 B2 JPH0812618 B2 JP H0812618B2 JP 4202466 A JP4202466 A JP 4202466A JP 20246692 A JP20246692 A JP 20246692A JP H0812618 B2 JPH0812618 B2 JP H0812618B2
Authority
JP
Japan
Prior art keywords
instruction
error
checkpoint
instructions
recovery
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
Application number
JP4202466A
Other languages
English (en)
Other versions
JPH05210527A (ja
Inventor
クリフォード・オーエン・ハイデン
ロバート・ジョン・ハーバン
ドナルド・ウィリアム・マッコウレイ
ジョン・ステットソン・マードック、ジュニア
スーザン・バーバラ・スティルマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05210527A publication Critical patent/JPH05210527A/ja
Publication of JPH0812618B2 publication Critical patent/JPH0812618B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

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)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、誤り検出及び回復のた
めの機能を有するデータ処理システムに関するものであ
る。更に特定すれば、本発明は、命令の流れの中のチェ
ックポイントに戻り、かつそこから実行することによっ
て、エラーから回復する、データ処理システムに関する
ものである。
【0002】
【従来技術】データ処理システムにおけるランダムエラ
ーの発生は、信頼性及び性能に重大な悪影響を与え得る
ものである。ランダムまたは「ソフト」エラーは、シス
テム内の連続的な故障によるものではない、期待した出
力または結果からのずれである。これらのランダムエラ
ーは、一般的に、電気的雑音、またはその他のランダム
に発生するエラー源によって起こされる、再現不能な故
障群に特徴付けられる。対照的に、「ハード」エラー
は、典型的に、電気的または機械的な構成物の故障によ
って生じたエラーであって、これは再現可能なものであ
る。
【0003】初期のシステムでは、ランダムエラーは、
システムをリセットし、影響を受けたプログラムを始め
から再実行することによって、対処していた。プログラ
ムが長くなるにつれて、この解決法は受け入れられなく
なった。したがって、以降のシステムでは、プログラム
を多数の部分に分割し、エラーが生じた部分の始めから
のみプログラムを再実行することにより、エラーに対処
できるようにした。データ処理システム及びオペレーテ
ィングシステムがより複雑(例えば、マルチタスク処理
に起因して)かつ時間に依存するようになったため、こ
の以降の方法も不適当になってしまった。
【0004】リプテイ(Liptay)の米国特許第4
901233号は、複数の命令を同時にかつシーケンス
を外れて実行できるシステムを開示している。多数の命
令を、いかなる時刻においても、ある実行状態にするこ
とができる。このようなシステムでは命令を、シーケン
スを外して実行することができるが、殆どの命令の結果
は、命令が「構造的に完了」するまで、システムの他の
部分では見ることができないようになっている。命令の
完了は、命令の実行が終り、命令に関連する全ての例外
を試験し、報告し、そして、命令が論理的に完了すべき
次のものである(即ち、命令がそれらの論理的プログラ
ムシーケンスにおいて、完了する)時、完了する。この
ような設計を基にした中央プロセッサ(CP)をエラー
から回復する挑戦は、次のものを含む。
【0005】1)現在処理中の多くの命令のどれがエラ
ーによって影響を受けたかを判断する。
【0006】2)エラーが起こる前の既知の良好な状態
を判断し、その状態にCPを戻す、及び、 3)命令を再試行する一方、機械の状態を、論理プログ
ラムシーケンスと矛盾しないように変更する。
【0007】図1は、種々の実行状態の中の仮定的な6
つの命令を示したものである。この図における各分割部
分は、クロックサイクルまたはマシンサイクルを表す。
1つの機械語の実行には、どの機能を達成すべきか、デ
ータ及び資源の可用性、及びその他の要素によって、1
乃至多くのマシンサイクルがかかることがある。命令に
は、それらがプログラムされた順に番号をふってある。
即ち、命令0の次に命令1が続き、それに命令2が続
く、という具合である。命令0はサイクル1で実行を開
始し、サイクル3で完了する。命令1は、サイクル2で
始まるが、サイクル6まで実行を終了しない。命令2及
び3は命令1の前に終了するが、それらは、プログラム
がその論理的にプログラムされた順に実行するために、
命令1が完了するまでは、完了することができないよう
になっている。
【0008】インターナショナルビジネスマシーン社に
譲渡された、ヒックスら(Hicks et al)
の、「データ処理システム用命令再試行機構」という名
称の、米国特許第4044337号は、機械語の実行の
最初にチェックポイントを設置する、エラー回復機構を
記載している。リプテイの特許に記載されているシステ
ムでは命令をシーケンスを外して実行しているので、こ
のシステムにこの技法を適用するには、ある時刻におい
て未解決のままにしておくことができる命令の最大数ま
でチェックポイントを設け、その命令を再実行する順番
を並べ替えることが必要である。これを達成するための
チェックポイント情報の量は、多く、したがってチェッ
クポイント情報自体がエラーによって損傷する確率が増
加し、エラーから回復するプロセッサの全体的な能力が
低下することになる。
【0009】以前の命令でまだ終了していないものが、
想定していた命令シーケンスを変化させる結果となる場
合、シーケンスを外して実行された命令がキャンセルさ
れる潜在性によって、更に複雑な問題がもたらされる。
これは、期待していたものとは異なって解決した分岐、
または、処理のある時点の間未処理となったりまたは可
能化される例外、即ち非同期割り込み(例えば、I/
O、外部、または抑制可能な機械チェック割り込み、ま
たは操作者の要求)に遭遇した命令によって起こり得る
ものである。これもまた再試行プロセス中に並び変えを
行い、どのチェックポイントをセーブし、どれを破棄す
るかを判断しなくてはならない。
【0010】リプテイのプロセッサの設計において、い
くつかの命令が既に終了しているがまだ完了していない
のであれば、別の方法は、終了した命令の結果をセーブ
し、ヒックスのアルゴリズムを、まだ終了していないも
のにのみ、適用することになろう。
【0011】図1において、サイクル5でエラーが発生
すると、命令4は既に始まっており、命令3は丁度終了
したところであり、命令2は終了しているがまだ完了し
ていない。エラーは処理中の命令の1つ、いくつか、す
べてに潜在的に影響を与えた可能性もあれば、いずれに
も影響を与えなかった可能性もあるので、命令1、3、
及び4を再度実行する必要がある。命令2は終了してい
るが、その結果を保存しようとすると、次の問題が起こ
る。
【0012】1)どの命令が終了しているのかを判断
し、どれを再実行する必要があるのかを選り分けるロジ
ックが、法外に複雑である。
【0013】2)想定した命令シーケンスの変化をも選
り分けなければならず、チェックポイントのみの代り
に、この場合チェックポイントと終了した結果を破棄ま
たはセーブする。及び 3)命令の終了状態の情報は首尾よく再試行するのに必
要であるので、この情報を保持するロジック内のいずれ
かのソフトエラーは、命令の再試行を不可能にする。
【0014】加えて、エンタープライズシステムアーキ
テクチュア/390処理の原理(EAS/390PO
P)(Enterprise System Arch
itecture/390 Principles o
f Operations)に記載された仕様に合致す
るように設計されたプロセッサによって実行されるいく
つかの処理は、それらが完了する前に、それらの実行の
一部として別のシステム機構に結果が見られるように、
そしてそこに反作用を生じさせ得るようにすることを要
求するか、あるいはそのように実施されている。例え
ば、あるコンピュータシステムでは、I/Oサブシステ
ムと中央プロセッサとの間の通信は、制御ブロックとし
て知られている記憶部内のデータ領域へのインターロッ
クされた更新によって、達成される。
【0015】インターロックされた更新は、第1に、ハ
ードウエアによるインターロックされた取り込み(fe
tch)を用いて、ロックバイトと呼ばれる制御ブロッ
クの特定の部分を取り込むことからなるものである。ハ
ードウエアによるインターロックされた取り込みは、
「ハードロックを得る」とも言われ、この取り込みの要
求元がデータへの排他的権利を有し、そのインターロッ
クが解除されるまで他の要求元はそのデータを記憶した
り取り込んだりできないことを保証する機構である。一
旦ハードロックが得られると、ソフトロックとして知ら
れている識別用タグをこのバイト内に配置し、ロックバ
イトを記憶し、そしてハードロックを解除する。このソ
フトロックによって包囲されたデータを使用したい他の
全ての要素は、そのロックバイト内のタグを見て、その
ロックバイトがクリアされるまで、そのデータを使用し
ない。ソフトロックを得るには、及びそれを解除するに
は、命令を完了する前に記憶部を更新する必要がある。
更に、一旦プロセッサがソフトロックの制御を有する
と、制御ブロックの他の領域の更新を進めるので、これ
により所望のI/O動作を開始し、I/Oサブシステム
の状態を変化させる。これらのI/O命令の1つの間に
エラーが発生すると、記憶部は変えられており、ほかの
システム要素は恐らくその効果を見ていることになる。
記憶位置が変化したことが、他のプロセッサ要素におい
ても反応を起こす原因となることもある。したがって、
プロセッサをその動作の前または開始時の状態に単に逆
流させても、命令が完了しなかった場合でも、実行の効
果を無効にすることにはならない。したがって、ソフト
エラーに遭遇した時、このような種類の動作のための特
別な処理が、必要となる。しかしながら、対処すべき特
別な場合の数を最小にして、開発し、維持し、かつ試験
するアルゴリズムの数を減少させることが望まれてい
る。
【0016】処理が完了する前にシステム機構を更新し
た、このような処理の2つの別の例は、拡張記憶部への
ページイン及びページアウトの実施である。これらの命
令の実行中、1ページのデータを、それぞれ、主記憶部
に送入するか、あるいはそこから送出する。実施によっ
ては、ページングは命令が完了する前に発生することも
ある。したがって、移動されるデータは、その命令を実
行した中央プロセッサ以外の処理要素も見ることができ
る。この命令の実行中にエラーが起きると、プロセッサ
にこの命令の実行前のその状態をバックアップさせるこ
とによって、結果を取り消させることはできない。
【0017】エラー回復における付加的な支援として、
当該技術では、コンピュータシステムにチェックポイン
トレジスタを備えることが知られている。このような機
構は、「チェックポイントレジスタ」という題の論文に
記載されている(IBM Technical Dis
closure Bulletin, Vol.27,
No.4A,1984年9月、2231−2232
頁)。チェックポイントレジスタは、中央プロセッサの
命令要素内に配置され、中央プロセッサのマイクロコー
ドによって、発行(emit)フィールドを介して、い
かなる値にも設定することができる。チェックポイント
レジスタは、各命令の開始時(成功した最初のサイク
ル)でリセットするようにしている。また、再試行及び
詳細なエラー報告のために、CPマイクロコードによっ
て、レジスタを試験することができる。
【0018】CP内でエラーが発生すると、CPクロッ
クを停止する。そして、維持及び支援機構(MSSF)
が、チェックポイントレジスタを含む、CP内のレジス
タ及びトリガを走査する。MSSFは、チェックポイン
トレジスタのパリティエラーを示すエラートリガを試験
するものである。このトリガがオンであれば、MSSF
は再試行不可能なエラーであると看做し、システム障害
(SD)指示を設定し、更に、CPをチェック停止状態
に設定する。MSSFは次にチェックポイントレジスタ
をチェックする。64から255までの値がシステムの
障害を示す。MSSFは次にCP内の再試行不可能なト
リガを試験する。もし再試行可能であれば、再試行スレ
ショルドに達して、機械チェック割り込みをかける時、
システムの障害を報告するのみである。
【0019】チェックポイントレジスタ内に含まれる値
は、エラーが発生した時にCP内で進行中であった処理
のタイプは何か、及びCPを論理的に一貫性のある状態
に戻すにはMSSFが特別な動作を必要とするか、或
は、システムリセットを除いてCPを一貫性のある状態
に戻すことはできない(即ち、「システム障害」状態が
存在する)ことを、MSSFに伝える。
【0020】要約すれば、チェックポイントレジスタ
は、エラー回復(チェックポイント再試行)及びプログ
ラムへのエラー報告(機械チェック割り込み)の目的の
ために、MSSFにCPの内部状態を通知する手段であ
る。
【0021】上述の「従来技術」のチェックポイントレ
ジスタはエラー回復に関しては多くの利点を備えている
が、チェックポイントの完了に同期した、明らかな遷移
を与えることがない。上述のレジスタでは、レジスタに
入力されるデータは、直ちにMSSFに使用可能とな
る。リプテイの米国特許第4901233号に記載され
ているようなシステムでは、しかしながら、チェックポ
イントの遷移を命令の完了によってマークしており、現
在レジスタ内にあるデータは不正確または早計なもので
あるかもしれない。したがって、MSSFに与えられる
データがもはや使われなくなったものでも早計なもので
もないことを保証する機構が必要となる。
【0022】
【発明が解決しようとする課題】アーキテクチュアの制
約、多くのチェックポイントをセーブするために必要な
ハードウエア量、及び、どのチェックポイントまたは結
果を保持すべきか、及びエラー検出時にどれを再び行な
うべきか、を選び出そうとすることに関連する問題があ
るので、リプテイの特許に記載されている形式のプロセ
ッサの回復についての全体的な目的は、完了すべき直前
の命令の結果として、CPの状態と同等な回復チェック
ポイントを、可能な時はいつでも、設定することであ
る。この方法は、命令の開始または中間の未完了の結果
にチェックポイントを設定する不利を、なくすものであ
る。
【0023】
【課題を解決するための手段】上述の目的を達成するた
めに、本発明によれば、中央プロセッサが実行する全て
の動作を、複数の回復のタイプの1つに分類する。分類
の判断は、それらがどのようなアーキテクチュアの、か
つ機械に依存する機構をそれらが操作するか、及びその
機構を操作する方法を基に、行なう。このように命令を
タイプに分類すると、チェックポイントデータを最小に
することができ、更に、各動作を独立して処理する代り
に、回復を広いアルゴリズムに一般化することができる
ようになる。更に、この分類技法を、完了する前にシス
テム機構を変更する命令の実行の種々のフェーズ(回復
ウインドウ)に適用することにより、これらの命令を、
最少のハードウエア及びアルゴリズムで、再試行するこ
ともできる。
【0024】
【実施例】次に、本発明を、図2及び3を参照して、説
明する。図2は3つの中央プロセッサ202a−cを備
えた中央電子複合体(CEC)のブロック図である。各
中央プロセッサ(CP)は、それ自身の従来の第1レベ
ル高速バッファ(L1)204a−cを有している。一
方、L1は、全てのCPが共有する第2レベル高速バッ
ファ(L2)206に接続してある。L2 206は、
主記憶部としても知られている中央記憶部208に、シ
ステム制御要素(SCE)218を介して、接続してあ
る。一般的な用語「記憶」は、両レベルの高速バッファ
(204a−cまたは206)または中央記憶部208
自体のいずれかに存在するデータを意味するのに、用い
られるものである。
【0025】図2のCECは、SCE218、拡張記憶
部(ES)212、及びチャンネルサブシステム210
bの間のデータ転送及び通信を制御する、相互接続通信
要素(ICE)210aも備えている。ICE210a
とチャンネルサブシステム210bを、集合的に、I/
Oサブシステムとも呼ぶ。システムの電源投入及び停止
及び構成等のシステム動作及び支援機能は、プロセッサ
コントローラ要素(PCE)216と呼ばれる支援プロ
セッサによって、制御する。PCEは、システム要素を
エラーから回復するのを助けるためにも、用いられるも
のである。ESA/390アーキテクチュアに準拠し
た、マシン−チェックエラー処理、チェックポイント同
期及びシステムの一般的動作は、ESA/390動作原
理に更に記載されている。
【0026】図3は、図2のCEC内の中央プロセッサ
の一例の機能図である。従来のように、各CPの第1レ
ベル高速バッファ(L1)は、命令キャッシュ302と
データキャッシュ310とを備えた分割キャッシュ状の
ものである。命令キャッシュ302からの命令を、命令
取込み制御ロジック(I−FETCH)303によって
取り込み、命令デコードロジック304に供給する。命
令デコードロジック304は、どのタイプの命令を実行
するのか、及びその実行にどのタイプのデータが必要な
のか(汎用レジスタ、浮動小数点レジスタ、記憶部から
のデータ、その他)を判断し、その命令を適切な実行要
素(浮動小数点実行要素322、分岐実行要素324、
汎用実行要素326、またはシステム実行要素32
8)、及び支援ロジック(レジスタ管理システム30
6、アドレス計算要素308、及び完了/割り込み要素
340)に送出する。命令デコードロジックは、制御ロ
ジック304Aを備えており、これは全てのまたは特定
のタイプの命令のデコードの禁止または保留(及び禁止
解除/開始)をCPに行わせるものである(例えば、以
前の直列化命令の実行中は、重複不可能な状態で、或い
は、直列化命令のデコードを禁止するように、ある命令
を実行しなくてはならない時)。
【0027】レジスタ管理システム306は、物理的な
レジスタ(浮動小数点レジスタアレイ312及び汎用レ
ジスタアレイ316)の、命令によって参照された対応
する論理レジスタへの指定を制御するものである。レジ
スタ管理システムの構造及び動作は、米国特許第490
1233号に、より詳細に記載されている。アドレス計
算要素(ACE)308は、オペランドのアドレスを計
算するものである。
【0028】図3のCPは、命令とデータを夫々、命令
デコードロジック304及びデータキャッシュ310か
ら受け取る、多数の特別な実行要素を備えている。従来
技術のシステムにおけるように、I−FETCHロジッ
ク303に関連する従来の分岐履歴テーブル(BHT)
は、分岐がどちらの方向を取るかを予測するものであ
る。このような分岐予測に応答して、予測した方向の後
続の命令を取り込み、そして条件にあわせて実行する。
分岐実行要素(BXE)324は、分岐が実際に決定す
る道、及び予測が正確だったかを判断するのに従事する
ものである。浮動小数点実行要素(FXE)322は、
物理的浮動小数点レジスタアレイ312に接続してあ
り、浮動小数点命令の処理に従事するものである。一般
的実行要素(GXE)326は、物理的汎用レジスタア
レイ316に接続してある。GXEは、汎用レジスタ
(GPR)を変更する或いは用いる単純な命令と、直接
移動(MOVE IMMEDIATE)のようないくつ
かの単純な記憶命令とを、実行するものである。
【0029】システム実行要素(SXE)はマイクロコ
ードで駆動する実行要素である。SXEマイクロコード
は、全て「タイプ3」の命令(後に詳細に説明する)を
実施するもので、CP回復マイクロコードを備えてい
る。システム実行要素328は、1組のレジスタ31
8、即ち、作業用レジスタ318A、制御レジスタ31
8B、及びアクセスレジスタ318Cに接続してある。
SXEの作業用レジスタは、中間結果、記憶部からのデ
ータ、及び容易にアクセス可能に保持しておく必要のあ
るシステムデータのための、一時的記憶場所である。S
XE328は、プログラムステータスワード(PSW)
329のビット0から31までにも、接続してある。ビ
ット32乃至63は異なる扱いで、命令アドレス301
として参照される。SXE328は、記憶部対記憶部タ
イプ(storage to storage typ
e)論理及び十進命令及び、PSWのロード(LOAD
PSW)及び逐一実行開始(START INTER
PRETIVE EXECUTION)のようなシステ
ム制御機能を実行するものである。
【0030】回復制御レジスタ327も、SXE328
によって制御するようにしてある。回復制御レジスタ
(RCR)327は、実行中に組立られ、システムエラ
ーから回復する時に用いられる、回復足跡(footp
rint)を維持する機構を提供するものである。CP
回復マイクロコードは、回復制御レジスタ327を、ロ
ードし、設定し、及び読み出し、そしてCPエラー回復
手順を実行する。
【0031】分岐実行要素324を除く各実行要素は、
1組の関連する記憶バッファ332a−cを有する。こ
れらのバッファは、記憶を実行した命令が完了し、図2
の高速バッファ310及び206にデータを移動できる
ようになるまで、記憶されることになっている実行結果
を保持するものである。ACE308、FXE322、
BXE324、GXE326及びSXE328も、関連
する入力命令キュー(図示せず)を有する。
【0032】データキャッシュ(D−キャッシュ)31
0は、記憶キュー310A、D−キャッシュメモリアレ
イ310B及びチェックポイント制御部310Cを備え
ている。記憶キュー310Aは、記憶バッファ332A
−Cにバッファされているオペランドの記憶データに対
するアドレス及び制御信号を含む。データキャッシュメ
モリアレイ310Bは、従来のランダムアクセスキャッ
シュメモリアレイである。データキャッシュチェックポ
イント制御部310Cは、いつチェックポイントの同期
が完了したかを判断するものである。データキャッシュ
310は、図2のCECのレベル2の高速バッファ20
6に接続してある。
【0033】完了/割り込み要素340は、命令の完了
及び命令の実行が終了した時に命令を論理順に完了する
こと、及び実行中に遭遇し得たいずれかのプログラムの
例外または保留されている非同期割り込みを認識するこ
とによって、命令の完了及び割り込み処理を制御する。
1つの命令を完了することの結果として、状態コード3
14を更新することができる。これは、一方、分岐実行
要素324が予測した分岐を分析するために用いられ
る。
【0034】命令アドレス301は、次に完了すべき命
令のアドレスであり、これは完了すべき直前の命令の結
果としての命令アドレスと同等なものである。これは、
SXE328、完了/割り込みロジック340が発生す
る完了報告341、及び分岐目標アドレスによって、更
新するようにしている。
【0035】アドレス計算要素(ACE)308は、オ
ペランドアドレスを計算し、オペランド取り込み及び記
憶要求を発生し、更にこれらをD−キャッシュ310に
送り、D−キャッシュ310はそれらを命令ストリーム
によって指定された順で処理する。オペランド記憶要求
が出された時、種々のアドレス及びそのオペランド記憶
データについての制御情報を含む、記憶キュー310A
に、エントリを配置する。オペランド記憶データを含む
命令を処理する時、実行ユニット(FXE322、GX
E326、またはSXE328)は、記憶結果を発生
し、その結果を対応する記憶バッファ332(A−C)
に配置する。
【0036】図3の中央プロセッサは、いくつかの異な
る処理要素によって、複数の命令の同時にかつ順序を外
しての実行を可能とするタイプのものである。命令は順
序を外して実行することができるが、殆どの命令の結果
は、その命令を完了/割り込み要素340が「構造的に
完了」するまで、CP以外の他のシステム要素には見え
ないようにされている。命令の実行が終了し、その命令
に関連する全ての例外をテストし終り、更に命令が次に
論理的に完了すべきものである時、命令の完了が起こる
(即ち、順序を外して命令を実行したとしても、その命
令はそれらの論理プログラムの順序で完了するのであ
る)完了/割り込み要素340が発生し1つの命令の完
了を通知する「完了報告」341の結果として、D−キ
ャッシュ310は、その命令に対する記憶キュー310
A内の全てのエントリを完了したものとして、マークす
る。引き続き、D−キャッシュ310は、記憶バッファ
332(A−C)から記憶結果を取りだし、それらをD
−キャッシュアレイ310Bに書き込む。この記憶結果
を更に、同時にレベル2の高速バッファ(L2)206
に送り、そこに記憶する。L2 206は、それに送ら
れた記憶がいつ「なされたか」についての指示を、D−
キャッシュ310に与える。本発明の目的のために、記
憶がL2 206のある点に達し、それ以降エラーが殆
どあり得ないか、あるいはもはや特定のオペランド記憶
には関連し得ない時、記憶は「なされた」と考えるよう
にする。記憶が「なされた」と考えられる点以前のオペ
ランド記憶処理中に起こったいかなるエラーも、現行の
チェックポイント間隔に対して分離されることになる。
1回の記憶処理においてそのポイントを越えたエラー
は、分離されない。
【0037】完了/割り込み要素340からの完了報告
の受信時に、レジスタ管理システム306は、そのポイ
ンタを更新し、この命令で変化したGPR及びFPR値
が、現在構造化された値(architected v
alue)であり、状態コード314を更新し、更に命
令アドレス301を増分即ち変化することを示す。
【0038】記憶バッファ332a−c及びレジスタ管
理システム306は、取り込みだけでなく、いくつもの
未解決の分岐を越えて実行することを、プロセッサに可
能にさせるものである。この機構は、米国特許第490
1233号に詳細に記載されている。分岐の予測が正し
くない場合、論理的にその分岐以降の全ての命令が既に
終了していても、それらの結果をバッファしており、シ
ステムの残りの部分にはまだ見えないので、それらを無
効化することができる。プログラム例外も同様に作用す
る。即ち、プログラム例外を伴う命令が完了した時、そ
れより論理的に後の全ての命令を消滅させる。非同期割
り込みに対してプロセッサを可能化させる場合、1つの
命令が完了した時にそれらの非同期割り込みを処理する
ようにする。ここで再び、その点より論理的に後の命令
を無効化し、そして処理を他の命令ストリームに転換さ
せる。
【0039】したがって、究極的な目的は、不正確に予
測した分岐または割り込みと同様にソフトエラーを処理
し、直前の命令の完了の結果としての状態と同等の状態
にCPを戻すことを可能にすることである。エラーが起
こると、それ以上の命令は完了できなくなり、こうして
チェックポイントを保存し、更に、一般的に、そのポイ
ント以降の命令を破棄し、こうして多数のチェックポイ
ント及び/または中間または最終結果を保持し、どの命
令をどのような順で再び実行すべきかについての懸念を
取り去ることができる。
【0040】この方法は、一般的な回復アルゴリズムを
わかりやすくかつ簡素にするものである。プロセッサ
を、完了する直前の命令の結果として、それがそうであ
った状態に戻す。これは一貫した状態であり、構造的に
割り込み可能なポイントである。この点において、プロ
セッサは、命令が何であるかには係わらず、命令アドレ
ス内のアドレスから取り込みを開始することができる。
加えて、そのためにCPを可能化し、回復プロセス中保
留していたあるいは保留していたかもしれないいかなる
割り込みも、このポイントで処理することができる。全
体の回復プロセスの効果は、CPを一貫したチェックポ
イントに戻すことである。命令の実行及び割り込みの処
理を、次に通常通り再開する。
【0041】CPの境界を越えてシステムの状態を変更
するような動作、またはレジスタ管理のような機構によ
ってハードウエアをカバーできないような動作について
は、不正確に予測した分岐または割り込みからの回復と
同じ技法を用いて、実行の効果を取り消すことは不可能
である。したがって、ある特別なハードエア、チェック
ポイント設定技術、及びエラー回復中の処理によって、
CPを、完了する直前の命令と同等の状態に戻すか、あ
るいはチェックポイントを不良動作を越えて、その完了
の結果としての状態に進めるようにする。
【0042】本発明の好適実施例は、中央プロセッサが
実行する全ての動作を3つの回復タイプの内の1つに区
分することを含むものである。動作と命令という用語
は、相互交換可能に用いられ、ESA/390 POP
で指定された命令並びにプログラムの機械に依存した実
施、及び非同期割り込み、オペレータ機能、及びCPが
実行する他の作業単位を意味する。区分の決定を行う
際、動作が操作する、構造化され機械に依存する機構、
及びこれらの機構をどのように操作するかを基にする。
動作をタイプに分類することにより、各命令を独立して
処理する代りに、回復を3つの広いアルゴリズムに一般
化することができるようになる。
【0043】どの区分にある動作を分類するかを決定す
るシステム機構は、あわせてシステムの状態を定義する
構造化された構造及び機械依存構成の両方を含んでい
る。構造化された機構とは、ESA/390POPで定
義されたデータ構造を意味する。この区分に含まれるの
は、汎用レジスタ、浮動小数点レジスタ、アクセスレジ
スタ、制御レジスタ、PSW、及び命令アドレス、記
憶、サブチャンネル、日付時計の時間、保留中の割り込
み、等である。機械依存機構とは、POP内の一意的構
成では具体的に特定されないアーキテクチュアまたは動
作モードの状態を定義するための、システムの実施によ
って要求される構造である。機械依存機構の例は、CP
がインタープリタ実行モードで実行していること、どん
な機能(feature)がオンラインにあるか、及び
記憶部内の制御ブロックの位置を示す指示を備えること
ができる。
【0044】タイプ1の動作は、記憶部、汎用レジス
タ、浮動小数点レジスタ、アクセスレジスタ、状態コー
ド、及び「レジスタ管理のような」制御を備えている他
のプロセッサ機構のみを変更するものである。これらの
変化は、動作が完了した時のみ、見ることができる。こ
れらの動作を通常互いに同時に、かつシーケンスを外し
て実行するので、したがって、以前の不正確な分岐予測
または割り込みによって消えることができるよう要求さ
れる。これらの命令が完了する前には、それらの実行の
効果は、他のいかなるシステム要素からも見ることはで
きない。1つ以上のこれらの動作が実行中または完了を
待っている間にソフトエラーが発生した場合、用いる回
復チェックポイントは、直前の命令完了の結果としての
CPの状態と同等であり、これは、完了した直前の命令
の後にかけられた割り込みを処理する前の、CPが戻ら
なくてはならなかったであろう状態とも同等である。タ
イプ1の命令の回復は、完了すべき直前の命令の結果と
してCPがそうであった状態にCPを戻すこと、命令の
取り込みの開始、及び割り込みの処理を含む。タイプ1
の命令の例は、GXE326及びFXE322が実行す
る全ての命令、及び、記号移動(Move Chara
cter)、長記号移動(Move Characte
r Long)、及び比較及び交換(Compare
and Swap)である。
【0045】タイプ2の動作は、タイプ1の動作でリス
トしたもの以外の機構を変化させるものである。これら
は、通常、PSW、制御レジスタ及びインタープリタ式
実行指示等のような制御機構である。直前の命令を完了
した時にこれらの機構が持っていた値を保持するバック
アップ機構を、維持する。タイプ2の命令は、一度に1
個、論理的にプログラムされたのと同じ順で実行される
ので、機能的に、不正確に予測された分岐及び論理的に
早い割り込みから回復することを必要としない。これら
のタイプの命令は、完了する直前の命令の結果としてプ
ロセッサがそうであった状態に、プロセッサを戻すこと
によって、ソフトエラーからも回復することができる。
これは、他のシステム要素がそれらの実行のいかなる結
果をも見ていないからである。タイプ2の命令に対して
は、これはレジスタ管理システム306のバックアッ
プ、記憶バッファ332a−cからの未完了記憶の浄化
等のみでなく、バックアップ機構からのバックアップデ
ータまたはチェックポイントデータの取り出し、及びそ
れを実際の機構に配置することも含む。レジスタ管理ス
キームのような、より洗練されたチェックポイント設定
機構を、タイプ2の動作によって変更された機構のため
に、構築することができることに、注意されたい。これ
らの機構は通常のエラーがない動作では用いられないの
で、ハードウエア量及び複雑さを通常正当化することは
ない。
【0046】図4は、タイプ2の動作によって操作する
ことができる、典型的な機構を示すものである。これ
は、レジスタ402とそのバックアップまたはチェック
ポイントレジスタ404として、実施されている。アク
ティブレジスタ402の更新は、実行中、入力410上
のCP202の要素(例えば、SXE328またはAC
E308)からのデータを受け取ることによって、行わ
れる。アクティブレジスタの値を、CPが命令を実行し
ている時にも用い、出力412を用いてCPによって取
り出すようにする。機能的に、アクティブレジスタのみ
が通常のエラーのない動作に必要とされるものである。
1つの完了しつつある命令の結果として、アクティブレ
ジスタ内の値を、入力406を介してバックアップレジ
スタ404に配置する。ソフトエラーから回復する時、
バックアップレジスタ内の値を、入力408を介してア
クティブレジスタに移動することができる。これは、チ
ェックポイント値がアクティブレジスタに戻るための直
接路を設ける(図4にパス408として示す)ことによ
って、実施することができる。或は、実行ユニットのデ
ータ流を操作することによって、チェックポイント値を
アクティブレジスタにロードすることができる。CPの
種々の処理要素内には、このようなタイプ2の機構をい
くつでも備えることができることを、理解すべきであ
る。例えば、バックアップまたはチェックポイント動作
のためにSXE328内にこのような機構を1つ以上設
けて、一方このような機構の別のものをACE308に
設けることができる。
【0047】図5は、一般的なタイプ2の動作の実行の
見本を示したものである。サイクル1では、完了/割り
込みロジック340が完了報告を発生する。これによっ
て、チェックポイントレジスタ404内の値をアクティ
ブレジスタ402内の値Xに等しく設定することにな
る。サイクル2では、タイプ2の命令が実行を開始す
る。この点において、アクティブレジスタ402とチェ
ックポイントレジスタ404の双方は、完了する直前の
命令の結果として、機構の値Xを有する。アクティブレ
ジスタ402をサイクル3で(値Wに)更新する。チェ
ックポイントレジスタ404は、完了する直前の命令の
結果として、値Xを未だ保持していることに注意された
い。サイクル6で、タイプ2の命令に対して完了報告を
発生する。サイクル7で、チェックポイントレジスタは
アクティブレジスタの値(W)を取る。加えて、この命
令によって更新されたいかなるタイプ1の機構も、サイ
クル7の間にこの完了報告によって更新されるようにな
っており、したがって、チェックポイントは一貫性があ
るものとなる。タイプ2の動作の例は、ロード制御(L
oad Control)、PSWロード(Load
PSW)及びシステムマスクのセット(Set Sys
tem Mask)である。
【0048】タイプ3の動作は、次の点でタイプ1及び
2とは異なるものである。
【0049】a.それらがシステム機構を操作する方法
は、命令が完了する前に、他のシステム要素が、いくつ
かあるいは全ての結果を、見ることができるようにして
いる。または、 b.操作される機構のタイプは、命令が始まる前に機構
が持っていた値に機構を回復することが正しい結果を生
ぜず、更に、更新が構造的または実施の制約によって、
命令の完了とは同期することができないような性質のも
のである。
【0050】一般的に、タイプ3の命令は、「ノーリタ
ーンのポイント」を有するものである。即ち、タイプ3
の命令がそれらの結果を他の要素に見せる時まで、また
はそれらがクリチカルな機構を更新するまでは、タイプ
1及びタイプ2の動作を無効化するのに用いたのと同じ
バックアップ手順を用いて、それらを消失させることが
できる。そのポイントの後では、それらを消失させるこ
とができないので、特別なアルゴリズムを用いて回復し
なくてはならない。
【0051】タイプ3の動作のいくつかの例がこのポイ
ントを例示している。ページイン(Page In)及
びページアウト(Page Out)はタイプ3の動作
である。図2のシステムのPage In及びPage
Out命令は、中央プロセッサ202a−cに、4k
ページのデータを中央記憶部208へ或はそこから移動
するように要求する。Page In及びPage O
ut命令は、構造的に同期するように定義してあるの
で、このデータ移動は、動作の完了時に見ることがで
き、更に、図2の拡張記憶部−中央記憶部のデータ転送
経路は、記憶バッファと同等の機構を備えていないの
で、転送は中央プロセッサ内の命令の完了前に生じる。
したがって、移動するデータは、ページング命令を実行
する中央プロセッサ以外の要素によって、見ることがで
きる。この命令を実行している時にエラーが起きた場
合、中央記憶部または拡張記憶部が既に変更されている
ので、データ移動の結果を消失させることはできない。
【0052】タイプ3動作の他の例は、ESA/390
I/Oの命令及び割り込みである。前述のように、図2
の中央プロセッサ202a−bとI/Oサブシステム2
10a−bとの間の通信は、記憶部内の制御ブロックと
呼ばれるデータ領域へのインターロックした更新を用い
て、達成することができる。この実施を用いると、記憶
部にあるロックバイト内の識別用タグを見ている他の要
素はどれでも、記憶部内のデータを用いずにロックのオ
ーナーがそれを開放するのを待つか、或は、オーナーが
割り込みの場合のように要求を処理し、割り込みを得る
ためにその局部イニシアティブ(local init
iative)をリセットすると仮定する。一旦プロセ
ッサが制御ブロックにそのソフトロックを配置したな
ら、制御ブロックの内容の変更を開始し、これによって
I/Oサブシステムの構造化された状態を変更する。し
たがって、タイプ1及びタイプ2の命令に対して、記憶
バッファが直前の命令の完了時に設定したチェックポイ
ントを保護していても、記憶バッファをタイプ3の動作
によって用いる態様が、完了すべき直前の命令に関して
一貫性を失わせることになる。ロッキングプロセスを開
始した後のいずれかのポイントでエラーが発生すると、
完了すべき直前の命令の結果としての状態にCPを戻す
ことは、システムへの変化を取り消すことにはならな
い。
【0053】他の要素が変化を見ていないからではな
く、古い値を回復することが不正確な結果を生じること
になるために、変化した機構を直前の命令完了の結果と
しての値に戻すことによって、取り消すことができない
命令の簡潔な例は、セットクロック(SET CLOC
K)命令である。時間は連続して過ぎて行くので、他の
準備をしなければ、命令の開始時のクロックの値をセー
ブしそれを回復中に元に戻すことは、クロックの値を遅
らせる原因となる。
【0054】タイプ3の命令のための回復アルゴリズム
は、通常3つの風味(flavor)の内の1つを有し
ている。最初の風味は、動作によってなされた変化を浄
化することを含む。CECの構造化された状態を変えな
い限り、命令によって行われた変化を消失させることが
できる。その1例は、I/O回復にある。命令が記憶部
に起こした唯1つの変化が、制御ブロック内にソフトロ
ックを配置することであれば、構造化された機構には変
化がなく、回復アルゴリズムはこの制御ブロックのロッ
クを解除し、I/O動作が始まらなかったなら、システ
ムがそうなっていた状態にシステムを戻すことができ
る。
【0055】タイプ3の動作の第2の風味は、中間チェ
ックポイントの設定することと、動作の実行において、
エラーが発生するまでにプロセッサがどこまで達したか
の足跡を保持することを含む。CPの状態を直前の中間
チェックポイントに戻し、回復制御の下で動作を終了し
完了させる。このステップが完了した後、CPをもう一
度命令完了の結果としての一貫した構造化状態とし、そ
して前述のように実行を再開することができる。
【0056】タイプ3の回復の最後の風味は、回復制御
の下で再び命令全体を再実行することである。これらの
動作を再度取り込まずに動作の再試行を強制するため
に、情報を保持する。この形式の回復を利用する動作が
そのようにできるのは、アーキテクチュアが多数の記憶
部へのアクセスを許可するからであるか(ページング命
令との場合のように)、または、他のシステム要素がな
された変化を見ることができないからである(SET
CLOCKとの場合のように)。
【0057】全てのシステム状態機構は、チェックポイ
ントに戻るための機構を必要とするか、或いは、タイプ
3のアルゴリズムを用いて特別に処理しなくてはならな
い。「レジスタ管理のような」スキーム、記憶−バッフ
ァ状機構及びチェックポイントレジスタに加えて、シス
テム機構のためにチェックポイント値を与える他の技法
が存在する。一例は、図2のCPに対する非同期割り込
みのために開発されたチェックポイント機構である。非
同期割り込みに対するイニシアティブの局部コピーは、
CP内に保持してある。これらは、保留された非同期割
り込みの容易にアクセス可能な指示を与えるものであ
る。しかしながら、割り込みイニシアティブのマスタコ
ピーを、記憶部内の制御ブロックと定義する。割り込み
を保留にするか、或いは処理する時、指示を制御ブロッ
ク内に配置すると共に、局部コピーを更新する。これ
は、記憶バッファの同期能力をチェックポイントの割り
込みイニシアティブに利用することを、CPに許すもの
である。エラーが生じると、CPは記憶部内の情報に基
づいてその局部コピーを元に戻す。
【0058】図3のCPにおいて、完了/割り込み制御
部340が、命令が完了したことを完了報告341によ
って、判断しかつ通知した時、再試行チェックポイント
を設定する。この信号は記憶を解除し、レジスタ管理シ
ステム306を更新し(本質的にはGPRとFPRとを
更新する)、PSWと他のプロセッサ機構を全て1サイ
クル中にバッファする。したがって、1マシンサイクル
で、CPは「1つの命令を完了する前」から「その命令
を完了した後」に変化する。タイプ1及び2について
は、これは命令処理の終端で1度生じるものであり、命
令の完了前にハードウエアの不良が生じた場合、直前に
完了した命令の結果としてCPがそうであった状態に、
CPを戻し、命令ストリーム内のこのポイントから動作
を再開する。しかしながら、タイプ3の動作は、典型的
に、実行中にいくつかの再試行チェックポイントを設定
する。これを行なうために、プロセッサはタイプ1及び
2のチェックポイント設定ハードウエアを利用し、タイ
プ3の動作の実行中に中間チェックポイントを設定す
る。
【0059】中間チェックポイントは、命令完了によっ
て設定されるチェックポイントと同様な方法で、設定す
る。解除信号または変更した終了報告を、完了/割り込
み制御部340に送る。この変更した終了報告を、最終
完了報告を発生する真の即ち「最終」終了報告(完了し
た実行ステップ、テストした全ての割り込み、次に完了
する命令)と同じ規則を用いて、完了/割り込み制御部
で処理し、変更したまたは中間の完了報告を発行する。
この中間完了報告は、レジスタ管理システム306を更
新し、更に記憶バッファ332A−Cを解除することに
よって、中間チェックポイントを設定させる。
【0060】しかしながら、タイプ3の命令は未だ進行
中であるので、全ての機構を中間完了報告によって進ま
せるのではないことに、注意されたい。例えば、中間ポ
イントで命令アドレスを変えることは正しくない。この
機構は、タイプ3の命令を、いくつかの正確なチェック
ポイントまたは回復ウインドウに分割(brokeni
nto)することを可能にする。これらのチェックポイ
ントの設定を必要とするポイントは、異なる回復アルゴ
リズムが必要となるようにシステムの状態がいつ変化す
るかに依存する。しかしながら、全てのチェックポイン
トを完了報告と同期させる必要はない。(図3のCPで
は)クロックの更新を完了報告に結びつけていないの
で、SET CLOCK命令はこのような命令の一例と
なるものである。
【0061】クロック設定機能を実施するための別の代
替方法もあり、それによって結果的に回復がより簡素に
なることもあることを、理解すべきであろう。例えば、
SET CLOCK機能を扱う1つの方法は、2つのク
ロックを備え、1つを現在の命令によって変更し、他の
ものがバックアップコピーを与えるようにするものであ
る。別の代替は、更新を1サイクルで実行し、完了報告
と同期するようにクロックを構築するものである。
【0062】タイプ3の動作には唯一の浄化即ち処理が
必要なので、エラーが起きた場合に、特別な処理が必要
であるか、そしてその必要な処理とは何なのかを判断で
きるようにしなくてはならないため、CPはそれがタイ
プ3の動作を実行していることを思い出す方法を必要と
する。また、これらの回復足跡を、完了報告によってチ
ェックポイントを決めた機構の再試行チェックポイント
の設定と同期させ、プロセッサが1つのチェックポイン
トから別のチェックポイントに移動するにつれて、適切
な回復動作を指定するようにしなくてはならない。加え
て、以前のチェックポイントの動作は首尾よく行なわれ
たという仮定を、回復アルゴリズムのための基準とし
て、用いることができる。
【0063】回復を制御し、足跡を維持するための中心
的構成物は、回復制御レジスタ327(図6により詳細
に示す)である。回復制御レジスタ327を、2つのマ
ルチビットレジスタ、即ち、ステージ型レジスタ(st
aged register)502a−bと直接レジ
スタ504a−bとして具体化してあり、これらのレジ
スタは両方とも、新しいデータを入力しない時またはこ
れらのレジスタを明示的にリセットした時、それらの以
前の値を保持するようなタイプのものである。直接レジ
スタ504a−bは、回復中に用いる情報を含んでい
る。ステージ型レジスタ502a−bは、再試行チェッ
クポイントを変える前に足跡を組み合わせるためのプラ
ットフォームである。本実施例では、CPマイクロコー
ドが全てのタイプ3動作を実行し、したがって、これら
の動作のための回復足跡を組み立てるようにする。マイ
クロコードは、いずれかのレジスタ上で、「SET」、
「AND」及び「OR」機能506を用いることによっ
て、動作することができる。新しいチェックポイント値
を設定する時、これらの演算子の選択、及び示したレジ
スタを分離する決定を行ない、最大の柔軟性をマイクロ
コードに備えるようにした。
【0064】タイプ3のアルゴリズムが、回復足跡が直
ちに変わることを必要とする時、マイクロコードは直接
レジスタ上で動作する。クロックの設定は直接マイクロ
コードの制御の下で行なわれ、完了とは同期しないの
で、マイクロコードは直接RCRとクロックとを同時に
設定する。しかしながら、回復足跡を、変化を必要とす
る事象と同期させる必要がある場合、例えば、記憶の解
除の場合、マイクロコードは適切な足跡をステージ型レ
ジスタ504a−bに入力し、完了/割り込みロジック
341に解除信号を発行する。この解除を処理し、完了
報告として可変サイクル数後に同報通信(broadc
ast)を行なった時、チェックポイントを進め、直接
レジスタ504a−bを同じサイクルで更新することに
より、1つの回復ウインドウから次のものへの明らかな
遷移を可能とする。直前の終了報告の結果生じる直前の
命令の完了時に、両方のレジスタをリセットする。タイ
プ3の動作は完了し、そして足跡はもはや適用されな
い。
【0065】プロセッサにおいてハードウエアの不良が
発生した場合、そのウインドウで操作されているデータ
がエラーによって汚染されている可能性があるので、現
行の回復ウインドウの完了を阻止する。更に、直接レジ
スタ504a−bの更新も阻止し、実際に完了した直前
の再試行チェックポイントと一貫性がある回復足跡を、
直接レジスタが含んでいるようにする。
【0066】全てのソフトエラーに対して、PCE21
6にエラー状態を警報し、この実施例において、CP2
02a−cで回復動作を連続的に動作させる。まず、P
CE216がリセットを開始する。次に、マイクロコー
ド浄化アルゴリズムを実行する。リセットと浄化アルゴ
リズムとの組み合わせにより、データフローをリセット
し、未完了記憶及びレジスタ更新を含む、未完了チェッ
クポイントデータを破棄する。CPマイクロコードは、
次に、CPエラー指示を試験して、RCRを含むチェッ
クポイント機構のいずれかがエラーによって劣化したか
を確かめる。RCRがエラーによって劣化していた場
合、プロセッサをチェック中止状態に切り換える。他の
チェックポイント機構が損傷をうけている場合、ESA
/390POPによって定義されているような、適切な
損傷レベルを指示するマシンチェック割り込み(システ
ム損傷マシンチェックまたは命令処理損傷等)を発生す
る。チェックポイントが有効であれば、再試行スレショ
ルド(例えば、7回の再試行の不成功)に達したかをテ
ストするマシンチェックのみを発生する。次のステップ
もPCE216が開始するものであるが、これは、回復
制御レジスタ内の回復足跡情報を用いて適切な回復動作
を行なう、特別なマイクロコードルーチンを実行するも
のである。
【0067】前述のように、レジスタ502a−b、5
04a−bの各々を2つのビットグループに分割してあ
る。レジスタ502a及び504a内のビットを単一ビ
ットとして用い、CPを論理的に一貫性のある状態に戻
すことを要求される、いかなるタイプの特別な動作で
も、マイクロコードに知らせる特定の意味を、各々のビ
ットに持たせるようにする。これらのビットは同時に設
定でき、通常1つ以上の動作に用いるものである。この
ようなビットの1つは、回復に必要なデータまたはアド
レスをSXEの作業レジスタにセーブしてあることを示
す、「作業レジスタ要求」ビットである。他の例は、C
Pが記憶部内にソフトウエアによるロックアウトを有す
ることを意味する、「制御ブロックロック」である。ス
テージ型及び直接レジスタ双方の後の半分502b、5
04bに含まれるビットは、例えば、「進行中のクロッ
クの設定」のような、特定の命令回復アルゴリズムを実
行する必要があることを(即ち、エラー時に特定の動作
が進行中であったこと)、マイクロコードに示す、エン
コードしたアルゴリズム番号を含んでいる。
【0068】種々のコードポイントを、CPマイクロコ
ードによって、定義し、設定し、そして解釈する。これ
は、いかなるハードウエア依存性をも除去し、CPマイ
クロコードに、新しいコードポイントを付け加えたり、
既にあるコードポイントを変更したりする、柔軟性を与
えるものである。このコードポイント及び定義は、どの
マイクロコードアルゴリズムがそれらを設定するか、及
びどの回復アルゴリズムがそれらを解釈するかに基づい
て、なされるものである。
【0069】回復制御レジスタは、クリチカルな状態変
化と同期してロードされるので、機械の与えられた状態
に対して正しい回復アルゴリズムを常に含んでいる。し
たがって、いつアルゴリズムを設定したか、及び機械の
状態変化が実際に起こったかについての曖昧さはない。
【0070】ESA/390アーキテクチュアは、ある
命令が「チェックポントで同期する」ことを必要とす
る。更に、いくつかの命令を実行前にチェックポイント
で同期するように指定し、他の命令を実行前に、そして
いくつかの命令は実行の前後に、同期するように指定す
る。構造化したチェックポイント同期動作の時に、その
動作に先立つ命令の実行に関連する全てのエラーをチェ
ックし、適切な命令アドレスと共に報告しなくてはなら
ない。これを行なうことによって、どのソフトウエアチ
ェックポイント間隔でエラーが発生したのか、及びどの
命令グループが影響を受けたのかを、ソフトウエアが判
断することができる。そして、適切なソフトウエア回復
動作を行なうことができる。
【0071】図2のCPにおいて、記憶データに生じた
エラーを除いて、いずれかの機構に関連する全てのエラ
ーを、命令が完了する前に、報告する。記憶データに
は、記憶バッファにて、完了したことをマークするが、
まだ高速バッファに書き込まなければならない。このウ
インドウ内のプログラム記憶部への記憶データに起こる
エラーを、ESA/390POPで定義されているよう
に記憶部論理有効性ビットがゼロであるような、マシン
チェック割り込みによって、ソフトウエアに報告しなく
てはならない。加えて、それを正しいソフトウエアチェ
ックポイント間隔と関連付けなければならない。
【0072】チェックポイントの同期化は、動作のタイ
プ分類に、別の要素を付加えることになる。ESA/3
90POPでは、チェックポイント同期化命令は、3つ
の動作タイプ全てに見出される。無条件分岐(BCR
F0)及びアドレス空間制御の設定(SAC)は、チェ
ックポイントを同期させるタイプ1の命令である。PS
Wのロードは、タイプ2のチェックポイント同期命令で
あり、I/O命令の多くは、チェックポイントを同期さ
せるタイプ3の動作である。
【0073】タイプ1の命令は、以前の記憶データ全て
が高速バッファに到達するまで、完了できないようにな
っている。タイプ2及び3の命令は、以前の記憶データ
全てが高速バッファに到達するまで、中間再試行チェッ
クポイントを設定できないようになっており、更に、そ
れら自身の記憶データが高速バッファに入力されるま
で、それら自体も完了することができないようになって
いる。この結果、タイプ2及びタイプ3の命令について
は、その記憶データをクリアするのを待っている時、付
加的な回復ウインドウが各命令の終了時に存在すること
になる。もしエラーが発生すると、回復アルゴリズムが
命令アドレスを調整して、不良となったソフトウエアチ
ェックポイント間隔を指示する。したがって、この回復
アルゴリズムは、タイプ2及び3自体の唯一の回復アル
ゴリズムに加えて、全てのタイプ2及び3のチェックポ
イント同期命令に対する回復動作の一部となる。
【0074】次の章では、タイプ3の命令を二例、チェ
ックポイントをどのように設定するか、回復足跡及びこ
れらの動作を再試行するのに用いるアルゴリズムを保持
するための回復制御レジスタの用法を例示しながら、詳
細に紹介する。
【0075】ESA/390POP命令PAGE−IN
は、4kのデータ1ページ分を、拡張記憶部212から
中央記憶部208に移動させるもので、SXE328が
実行する。これは、同期命令であり、データの移動を、
命令の完了と同時に完了させなくてはならないことを意
味する。ESA/390POPは、この命令が、その実
行前後で、構造的にチェックポイントが同期すること
を、要求する。
【0076】図7は、PAGE−IN命令の実行ステッ
プを示すフローチャートである。PAGE−IN命令の
最初のステップ602は、命令の設定、例外のチェッ
ク、オペランドアドレスの計算等からなるものである。
次に、ステップ604で、オペランドアドレスを、SX
Eの作業レジスタにセーブし、後にエラーが発生した場
合に回復に用いるようにする。この点において、全ての
設定タイプの作業は完了したが、構造化した機構をまだ
変更していない。この動作は、構造的にチェックポイン
トの同期を要求されるので、以前の命令からの記憶デー
タを全て高速バッファに安全に送出するまで、今のとこ
ろ待っていなくてはならない(ステップ606)。この
待機ステップは、ページ命令の実行においてできるだけ
遅く実行し、記憶プロセスを命令の設定と重複させるこ
とができるようにしたことに、注意されたい。ここで、
マイクロコードは、ページ要求を発行する用意ができた
ことになる。
【0077】ステップ607で、「作業用レジスタを回
復のために必要とする」及び「PAGE−IN進行中」
を示す直接回復制御レジスタ内のビットをセットし、ス
テップ608でページ要求を発行する。本実施例ではペ
ージ要求の解除が直ちに起こり、そして命令の完了には
同期しないので、この場合直接回復制御レジスタを用い
ることに注意されたい。すると、マイクロコードは、状
態を示すページ要求への応答を待ち(ステップ61
0)、それに応じて状態コードを設定する(ステップ6
12)。PAGE−IN命令に対する状態コードの設定
は、390/ESAPOPに詳細に記載されている。
【0078】一旦ページ要求への応答が受け取られ、状
態コードを設定したなら、プロセッサは、その動作の実
行フェーズを完了したことになる。マイクロコードは、
次に、アーキテクチュアが要求するようにチェックポイ
ントの同期を行ない(ステップ614において)、その
命令を終了する(ステップ616において)。最後に、
ステップ618で、完了/割り込みロジック618は、
PAGE−INに対して、完了報告を発行する。完了報
告の結果として、直接及びステージ型回復制御レジスタ
の両方をクリアする。
【0079】図8は、PAGE−IN命令の実行ステッ
プを示す時間線、新しいチェックポイントを設定する
点、及び種々の回復ウインドウである。チェックポイン
ト1を、完了すべき直前の命令の結果として設定する。
その点からステップ607を含むところまで、PAGE
−IN命令は依然としてタイプ1の回復ウインドウにあ
る。この時点では、取り消すことができない機構をまだ
更新しておらず、ほかの要素はその結果を全く見ていな
い。このウインドウにてエラーが発生すると、プロセッ
サをチェックポイント1に戻すことになる。RCRは、
この実施のために定義した、特別な処理を必要としない
ことを意味する値0を有している。したがって、デコー
ディング及び実行はチェックポイント1から回復する。
【0080】直接回復制御レジスタをステップ607の
結果として設定する時に、チェックポイント2を設定す
る。そして、ページング要求を発行する。この点から
後、他の要素は、主記憶部にページングされているデー
タを見ることができ、そして、システムの状態を、チェ
ックポイント1のそれに戻すことはできない。しかしな
がら、アーキテクチュアは複数のページング命令に対す
る多数の記憶部のアクセスを許すので、チェックポイン
ト2の設定の後にエラーが発生した場合、回復過程が回
復制御レジスタに質問した時、「作業用レジスタを回復
のために必要とする」ビットがオンであること及び進行
中の「PAGE−IN」アルゴリズムコードを調べるこ
とになる。これは、回復マイクロコードにこの場合を扱
う特別なルーチンを実行させることになる。
【0081】「回復のために必要な作業用レジスタ」
(WRRR)ビットは、アルゴリズムに必要なデータ、
この場合主記憶部のアドレス及び拡張記憶部のブロック
番号が、作業用レジスタ内にあることを示すものであ
る。エラーが発生して作業用レジスタ内のデータを損傷
したような場合、この動作の回復は不可能であろう。W
RRRビットを設定しない時、作業用レジスタ内のデー
タをリフレッシュ即ちリセットして、それらに影響を与
えているエラーからの回復を可能とする。作業用レジス
タ内のデータがエラーの影響を受けていない場合、マイ
クロコード回復ルーチンに移り、ページ命令を回復す
る。この回復の第1のステップは、未処理のいかなるペ
ージング要求をも浄化することである。これは、拡張記
憶部をプロセッサと再同期させることになる。次に、回
復マイクロコードは、拡張記憶部にページング要求を再
発行し、回復制御の下でその動作を完了する。回復の完
了時に、完了報告も発行し、これが回復制御レジスタを
リセットし、そして実行が通常通りに再開する。
【0082】ESA390 POPに定義してあるI/
O命令及び割り込みを、次の4つの種類に分類すること
ができる。
【0083】a.I/Oサブシステムと非同期的に通信
するI/O命令。
【0084】b.I/Oサブシステムと同期的に通信す
るI/O命令。
【0085】c.I/Oサブシステムとは通信しないI
/O命令。
【0086】d.I/O割り込み。
【0087】この文脈では、I/Oサブシステムとの同
期通信とは、中央プロセッサ202a−cがI/Oサブ
システムに、ある機能を実行するように要求し、命令を
完了し命令ストリーム内の次の命令を続ける前に、I/
Oサブシステムがタスクを完了するまで待つことを、意
味する。非同期命令は、一旦中央プロセッサが機能を要
求したら、I/Oサブシステムがその要求した機能を完
了するのを待たずに、中央プロセッサは命令を完了し、
命令ストリーム内の次の命令を続けることを、意味す
る。
【0088】中央プロセッサ202a−cは、制御ブロ
ックと呼ばれる記憶部内のデータ領域を用いて、I/O
サブシステムと通信する。中央プロセッサは、要求が制
御ブロック内で未処理の状態にある時、I/Oサブシス
テムに制御ブロックを取り込み、要求を捜すことを開始
させるように、I/Oサブシステムに指示する。同様
に、I/Oサブシステムは、I/O割り込みが未処理の
状態の時、中央プロセッサに指示を与える。
【0089】I/O回復の基本的戦略は、システムにI
/O動作の実行の前のチェックポイントにバックさせる
ことである。システムの構造化された状態は動作の実行
中に更新されるので、これは常に可能なことではない。
これらの場合の戦略は、中間チェックポイントに戻し、
命令または割り込みの実行を終了させることである。
【0090】図9、11、13及び15は、非同期的に
I/Oサブシステムと通信する命令、I/Oサブシステ
ムとは通信しない命令、同期的にI/Oサブシステムと
通信するI/O割り込み及び命令と、夫々関連する、実
行の流れを示した流れ図である。図10、12、14及
び16は、これらのI/O動作の実行ステップ、新しい
チェックポイントを設定する点、及び種々の回復ウイン
ドウを示す時間線である。同じ番号を付したステップ
は、図9及び10、11及び12、13及び14、及び
15及び16の対応するステップを示す。
【0091】図2のI/Oサブシステムと非同期的に通
信するI/O命令を実行するためには、まず、ロックす
べき制御ブロックのアドレスをセーブするのに用いる作
業用レジスタを、図9のステップ702でクリアする。
中央プロセッサは、次にステップ704で、以前の命令
からの全ての記憶データを高速バッファに書込むまで待
つことによって、チェックポイントの同期を行なう。こ
れは、I/O命令のいかなる記憶をも解放する前、また
はいかなる構造化した機構をも呼戻し不可能に変更する
前に、行わなければならない。次に、ステップ706
は、ステージ型RCR内の「制御ブロックロック」ビッ
ト(CBL)をセットする。この足跡は、完了報告を受
け取るまで、(直接RCRにロードする)有効にはなら
ない。ステップ708で、中央プロセッサは、制御ブロ
ックのアドレスを作業用レジスタに配置し、そして更新
しようとしている制御ブロックに対してソフトロックを
得る。ソフトロックは、前述のインターロックした更新
を用いることによって、得られるものである。多数の制
御ブロックが必要な場合、デッドロックを防止するため
に、ロッキングプロトコルを観察しなくてはならない。
このようなロッキングプロトコルは、当該技術ではよく
知られているものである。
【0092】ソフトロックの記憶は、解除と共に行わ
れ、その結果中間完了報告を出す。この中間完了報告
は、第1のソフトロックの記憶データを、直接RCRを
リセットするのと同時に、可視化する。CPは、次に、
その第1のタイプ3回復ウインドウに入る。
【0093】ステップ710で、中央プロセッサは、制
御ブロック及びプログラム記憶部への変化を記憶バッフ
ァに配置し、状態コードを設定する。この状態コードは
チェックポイント機構で保護してあるので、この回復ウ
インドウが完了する前にエラーが起こった場合、この更
新を取り消すことができる。
【0094】次に、ステージ型RCRを更新して、記憶
バッファにバッファしてある、制御ブロック及びプログ
ラム記憶部への変化を反映するようにする。ステップ7
12で、ステージ型RCR内のCBLビットをリセット
し、「特別浄化の要求」(SPC)及び「命令終了」
(FIN)ビットを設定することによって、必要とする
回復アルゴリズムを変化させる。ステップ714にて発
行した解除の結果得られる完了報告は、同時に記憶バッ
ファ内の変化を可視化し、状態コードを更新し、そして
直接RCRによって、新しいチェックポイントを設定す
る。CPは、次にこのタイプのI/O動作のために、第
2のタイプ3回復ウインドウに、入る。
【0095】機能的に、この命令を実行するのに必要な
変化は、命令アドレスの更新を除いて、この点で既に完
了している。ステップ716で、信号をI/Oサブシス
テムに送り、要求が未処理であることと、制御ブロック
内のロック値をリセットしそれらを記憶バッファに配置
することによって、CPが制御ブロックのロック解除過
程を開始することを、指示する。
【0096】ステップ718でFINビットをリセット
し、及びステージ型RCR内の「チェックポイント同期
進行中」(CKPT)ビットをセットすることによっ
て、必要とする回復アルゴリズムを再び変化させる。S
PCビットは変更せずに、したがってオンのまま残す。
【0097】ステップ720で発行した解除の結果得ら
れた完了報告は、同時に記憶バッファ内の変化を可視化
し、直接RCRを更新することによって、新しいチェッ
クポイントを設定する。そして、ステップ722で、C
Pは、その記憶データすべてが高速バッファに書込まれ
るのを待つことによって、チェックポイントの同期を行
う。
【0098】一旦記憶が完了すると、直接RCR SP
Cをリセットする(ステップ724)。CKPTビット
の変更は行わないので、オンのまま残す。最後に、終了
レポートをステップ726で発行し、ステップ728の
完了報告の発生で、動作は完了する。
【0099】図10は、図9と同じ実行ステップを、回
復ウインドウとステージ型及び直接RCRの値と共に、
時間線上で示したものである。
【0100】チェックポイント1を、直前の動作701
の完了時に、設定する。CPは、完了報告709を発行
するまで、タイプ1の回復ウインドウ(WINDOW
1)に残っている。完了報告709以前は、いずれの変
化もシステムの残りの部分には可視化されていない。エ
ラーの場合の回復動作は、プロセッサの状態をチェック
ポイント1に戻し、処理を開始することである。これ
は、直接RCRの0の値によって、回復マイクロコード
に示すようにしている。
【0101】次のチェックポイント(チェックポイント
2)を、完了報告709の結果として、設定する。この
点において、変更したソフトロックを可視化してあるの
で、記憶データは変更されている。完了報告709の結
果として、CBLビットを直接CRCにて設定する。ス
テップ706の結果として、このビットをステージ型R
CR内に、より早く設定したが、完了報告709まで有
効にはならない。ステップ708は、いくつかのソフト
ロックを得ることで構成することもできる。直接RCR
のCBLビットはこの期間の間、多数の解除にわたっ
て、オンのままである。
【0102】チェックポイント1及び2は、記憶部内の
ソフトロックを除いては、同等である。ソフトロック
は、構造化したシステムの状態を変化させず、または別
の要素に反応を起こさせないので、ソフトロックを解除
することによって、CPはチェックポイント1に戻るこ
とができる。WINDOW2の間にエラーが起きた場
合、直接RCRのCBLビットをオンにすることによっ
て、回復マイクロコードに、制御ブロックをロックした
ことを指示する。回復マイクロコードは、したがって、
制御ブロックのロックを解除する。制御ブロックのアド
レスは作業用レジスタ内にセーブしてあり、これによっ
てCPをチェックポイント1に戻す。
【0103】上記アドレスを作業用レジスタにセーブす
ることによって、制御ブロックのロックを解除する回復
マイクロコード時を、セーブする。他の方法は、制御ブ
ロックがロックされていることの指示のみを保持し、そ
して、回復させるCPのロックの識別のために全ての制
御ブロックを検索することである。この技術は、作業用
レジスタ内のアドレス自体がエラーによって汚染されて
いる場合にも、用いることができるものである。
【0104】CPをチェックポイント1に戻すことがで
きることによって、処理を回復するために、エラー時に
実行されている特別のI/O動作の知識をセーブする必
要がなくなる。
【0105】チェックポイント3を、解除714の結果
として得られる完了報告715によって、設定する。完
了報告715は、制御ブロック及び記憶部に構造化され
た変化を生じさせ、更に、状態コードへの更新を可視化
させる(ステップ710のように)。同時に、直接RC
RのCBLビットをリセットし、直接RCRのSPCと
FINビットをセットする。WINDOW3の間に起き
たエラーの場合、CPをチェックポイント3に戻す。構
造化した機構をチェックポイント3で変化させており、
それを他の要素が見ることができるので、CPはもはや
これらの変化を取り消すこともチェックポイントに戻る
こともできない。したがって、取られる回復動作は、命
令を完了することである。しかしながら、状態コードの
更新を含む、命令を実行するのに必要な命令の特別の変
化の全ては、完了報告715の結果として、同時に起こ
ったことに、注意されたい。したがって、直接RCRの
FINビットは、マイクロコードに、この命令を終了す
るにに必要な全ては制御ブロックのロックを解除し、信
号をI/Oサブシステムに送り、チェックポイントの同
期を取り、そして命令アドレスを更新することであるこ
とを指示する。この動作は、この分類の全ての命令に対
して同一であり、したがって、どの特定の命令を実行し
ているかについての知識は必要でない。
【0106】図2のシステムでは、制御ブロックを要求
のマスタコピーとして用いるように、I/Oサブシステ
ムを設計してある。エラーのためにWINDOW3を再
試行する場合、1つ以上の信号を、1つの要求に対して
I/Oサブシステムに発行することが可能である。I/
Oサブシステムは実際の要求として制御ブロックを用い
ているので、すでに要求に答えているなら、その後に受
け取ったいかなる信号をも破棄する。
【0107】SPCのRCRビットは、エラーが記憶デ
ータに損傷を与える場合、特別な動作が必要であること
を、回復マイクロコードに指示する。この場合、記憶部
内の制御ブロックは、一貫性のない状態になることがあ
る。SPCビットがオンの間に記憶エラーが起こった場
合、回復マイクロコードは、I/O制御ブロックのリセ
ット及び/または再構築を含む、より徹底した動作を行
うことになる。これは、結果的に命令処理損傷及び/ま
たはチャンネル報告ワード未処理のマシンチェック割り
込みを発生し得るが、これはシステムを動作状態に戻す
ために必要なものである。これらのマシンチェック割り
込みの意味は、ESA390POPに記載されている。
【0108】解除720の結果として、チェックポイン
ト4を完了報告721によって設定する。完了報告72
1は、全てのソフトロックを解除させる。命令の完了に
おいて、完了報告721を発行した後に残っているただ
1つのステップは、チェックポイントの同期をとり、必
要であれば、命令アドレスを更新することである。PS
Wの交換または分岐のために命令アドレスをロードして
ある場合、その命令アドレスを増加させない。CKPT
ビットは、この期間にエラーが起こった場合この動作が
必要となることを、示すものである。別個のビットを用
いて、チェックポイントを同期化する全ての動作によっ
て、共通の回復アルゴリズムが使用できるようにするた
めに、この動作が必要であることを示す。SPCビット
は、チェックポイントの同期をクリアするまで、オンの
ままである。その点において、全ての制御ブロックを安
全に高速バッファに送出するので、より厳格な動作への
強化はもはや不要となる。
【0109】I/Oサブシステムと非同期的に通信す
る、I/O命令内の5つの回復ウインドウは、この分類
の全命令に対して、同一であり、4つの独特のRCRビ
ット、即ちCBL、SPC、FIN、CKPTを用い
て、回復マイクロコードに指示される。
【0110】図11は、I/Oサブシステムとは通信し
ないI/O命令の実行ステップを示し、図12は同じ分
類のI/O命令の回復ウインドウを示す時間線である。
ステップ816を除いて、ステップ802−828は、
図9の対応ステップ(702−728)と同一である。
これらの命令の実行は、I/Oサブシステムと通信する
命令と(図9)は、ステップ716に対応するステップ
816において異なるものである。図11から明白なよ
うに、ステップ816ではI/Oサブシステムにメッセ
ージを発行しない。回復ウインドウの全ては、必要な回
復動作を指示するのに用いるRCRビットと同一であ
る。I/Oサブシステムを偽信号を扱うように設計して
いるので、同じFINビットを、I/Oサブシステムと
非同期的に通信する命令及び通信しない命令の双方に、
用いることができる。
【0111】図13は、I/O割り込みの実行ステップ
の流れ図であり、図14は対応する時間線図である。割
り込みの実行は、I/Oサブシステムと非同期的に通信
する命令及びそれとは通信しない命令の実行とは、いく
らか異なっている。したがって、新しいRCRビット
「I/O割り込み進行中」(IRPT)を導入し、これ
をステップ902で設定する。CPは次に、ステップ9
04で、I/O割り込みの所有権を要求する。一実施例
では、何らかの調停の過程によって1つのCPにこの所
有権を付与することができる。1つのCPを選択してあ
る時、他の全てのCPにおいて割り込みをリセットし、
それらが虚偽に割り込まれることから保護する。要求元
CPは、次に、それが作業中のI/Oサブクラスを作業
用レジスタ内にセーブし(ステップ906)、そして他
の作業用レジスタを初期化する(ステップ908)。
【0112】ステップ910において、CPは、それに
割り込みの所有権が付与されたかを判断する。それが割
り込みを扱うように選択されなかったなら(即ち所有権
を付与されない)、割り込み処理を終了し、命令ストリ
ームに戻る。これは、終了レポート911を発行するこ
とによって行われ、この結果完了報告913が発行さ
れ、そして命令処理を再開する。一旦要求元CPが、そ
れに割り込みの所有権が付与されたことを判断したら、
チェックポイントの同期を行う(ステップ912)。こ
れは、構造化機構を取り返し不可能に変更したり、この
割り込みによって記憶部を変更する前に、行うようにす
る。次に、CPはステージ型RCR内のCBLビットを
セットし(ステップ914)、必要な制御ブロックのソ
フトロックを開始する(ステップ916)。
【0113】ステップ918において、プログラム記憶
部及び制御ブロック内の構造化フィールドへの変更を、
記憶バッファに配置する。次に、ステップ920で、I
/O新PSWを取り込み、PSWに配置する。このPS
Wも、そのチェックポイント値を保持するために、チェ
ックポイント機構によって保護される。ステップ922
で、ステージ型RCRのビットSPC及びCKPTをセ
ットし、CBL及びIRPTをリセットする。次に、ス
テップ924で、解除を発行する。この解除に対応する
完了報告は、記憶部、PSW及び直接RCRを同時に更
新させるものである。
【0114】ステップ926にて、CPはチェックポイ
ントの同期を行い、処理を進める前に、全ての制御ブロ
ック及び構造化した記憶部を首尾よく更新することを保
証する。この点において、制御ブロックを既に高速バッ
ファに首尾よく記憶してあり、CPSビットをリセット
してあるので、特別な浄化はもはや必要ではない(ステ
ップ928)。終了報告を次に発行し(ステップ93
0)、その結果完了報告を発行することになる(ステッ
プ932)。
【0115】I/O割り込みが必要とする回復動作の多
くは、非同期的にI/Oサブシステムと通信する命令及
びI/Oサブシステムとは通信しないものが必要とする
回復動作と同一である。したがって、I/O割り込み
は、同じRCRビット及び回復アルゴリズム、即ちSP
C、CBL及びCKPTを利用する。IRPTビット
は、CP回復マイクロコードに、所有権の要求があった
ので、全てのCPにおいて割り込みイニシアティブをリ
セットしたことを、示すものである。I/O割り込みの
WINDOW2または3にてエラーが発生した場合、回
復中のCP上で実行中の回復コードは、制御ブロックか
らいかなる未処理のI/O割り込みをも検索し、全ての
CPに、割り込み未処理指示を再びオンにセットするよ
うに通知し、これによって、割り込みイニシアティブを
再度設定するようにする。したがって、I/O割り込み
を回復するためには、ただ1つRCRビット及び割り込
みアルゴリズムを追加すればよい。回復の時間を節約す
るために、どの割り込みを扱っているのかについての情
報をセーブし、その特定の割り込みのみを再設定するこ
とができる。
【0116】図15は、I/Oサブシステムと同期的に
通信するI/O命令の実行の流れ図であり、図16は、
それに対応する実行時間線である。
【0117】図2のシステムにおいて、I/Oサブシス
テムと同期的に通信する命令は、その機能を実行する資
源が使用可能になるまで、待たなくてはならなかった。
これも、制御ブロックの利用によって、判断するもので
ある。同期的に通信する命令は、したがって、作業用レ
ジスタを初期化し(ステップ1002)、チェックポイ
ントの同期を行い(ステップ1004)、そして制御ブ
ロックに対してソフトロックを得始め(ステップ100
6)、作業用レジスタにロックのアドレスを配置し始め
る(ステップ1008)。一旦機能を実行するのに必要
な資源に対するソフトロックを得たなら、CPは制御ブ
ロックを試験して、資源が使用中であるかを判断する
(ステップ1010)。資源の使用が不可能な場合、ロ
ッキングプロトコルは、資源をロックするためのそれ以
降の試みを行う前に、既に得ている他のソフトロックの
解除を要求することもできる。これは、制御ブロック内
のロックIDをリセットし、制御ブロック内に更新を配
置し(ステップ1011)、これに続いて、記憶データ
を可視化させる信号を送出することによって、行うよう
にする(ステップ1013)。
【0118】資源が使用可能な場合、資源が現在使用中
であることを示す制御ブロックへの更新、及び必要な機
能を、記憶バッファに配置し(ステップ1012)、そ
してその制御ブロックのソフトロックを解除する(記憶
バッファへのバッファも行う)(ステップ1014)。
次に、機能を実行するよう要求するメッセージをI/O
サブシステムに発行する(ステップ1016)。SPC
ステージ型RCRビットを、同期的に通信する命令が進
行中であることを示す新しいステージ型RCRのビット
(SYNC)と共に、セットする。ステージ型RCRの
CBLビットをリセットし(ステップ1018)、そし
て次に解除を発行する(ステップ1020)。結果とし
て得られる完了報告は、制御ブロックを更新させ、直接
RCRをセットさせる。そして、CPはI/Oサブシス
テムがそのタスクを完了するのを待つ(ステップ102
2)。次に、CPは、I/O動作の結果を含んでいる制
御ブロックのソフトロックを行い(ステップ102
4)、そしてその結果をプログラム記憶部に記憶するた
めに、記憶バッファに配置する(ステップ1026)。
次に、CPは、制御ブロックに対して更新を行い、資源
を開放し(ステップ1028)、制御ブロックに対する
リセットロック値を記憶バッファ内に入力する(ステッ
プ1030)。
【0119】次に、CKPTビットをセットし、SYN
Cビットをリセットすることにより、ステージ型RCR
を更新し、新しいチェックポイントを示すようにする
(ステップ1032)。そして、解除を発行する(ステ
ップ1034)。CPは、次にチェックポイントの同期
化を行い(ステップ1036)、SPCビットをリセッ
トし(ステップ1038)、そして終了する(ステップ
1040)。最後に、命令が完了する(ステップ104
2)。
【0120】図16は、I/Oサブシステムと同期的に
通信するI/O命令の実行の異なるフェーズと、各フェ
ーズにおいて起こる誤りに対して必要な回復動作とを示
すタイミング図である。図16の参照番号は、上述の図
15のステップに対応するものである。
【0121】RCRのSPC、CKPT及びCBLビッ
トは、他のI/O動作に対するのと同じ回復動作を有す
る。SYNCビットが直接RCR内でセットされている
間にエラーが発生した場合、CP回復マイクロコード
は、チェックポイント3から命令の実行を回復し、それ
を回復制御の下で完了する。
【0122】したがって、全てのI/O命令及び割り込
みの全てのウインドウを回復するには、6個のRCRビ
ット及び独特の動作のみが必要となる。このようにチェ
ックポイントを設定することにより、アルゴリズムの数
を最少にし、一方、回復の有効性を最大にすることがで
きる。
【0123】以上、本発明を好適実施例を参照して説明
したが、添付の請求の範囲に定義した本発明の真の意図
及び範囲から逸脱せずに種々の変更及び変化が可能なこ
とは、当業者には明白であろう。
【0124】
【発明の効果】以上のように本発明によれば、中央プロ
セッサが実行する全ての命令をタイプに分類することに
より、チェックポイントデータを最小にすることがで
き、更に、各動作を独立して処理する代りに、回復を広
いアルゴリズムに一般化することができるようになる。
更に、本願発明が用いる分類技法を、完了する前にシス
テム機構を変更する命令の実行の種々のフェーズ(回復
ウインドウ)に適用することにより、これらの命令を、
最少のハードウエア及びアルゴリズムで、再試行するこ
ともできる。
【図面の簡単な説明】
【図1】複数の命令をシーケンスを外して実行すること
ができるプロセッサ内の種々の命令の実行状態を示す
図。
【図2】中央電子複合体(CEC)のブロック図。
【図3】図2のCEC内の中央プロセッサ(CP)の例
の機能図。
【図4】一般的なタイプ2プロセッサ機構のブロック図
であって、その実際のコピー及びチェックポイントコピ
ー、並びにどのようにチェックポイントデータを確立し
回復するかを示す図。
【図5】アクティブ及びチェックポイントレジスタが、
タイプ2の命令の実行に関して、どのようにして値を変
化させるかを示すタイミング図。
【図6】図3の回復制御レジスタ(RCR)のブロック
図。
【図7】ページイン命令の実行を示す流れ図。
【図8】ページイン命令の実行の異なるフェーズ(回復
ウインドウ)、及びそのフェーズの各々において生じた
不良に対して必要な回復動作を示すタイミング図。
【図9】I/Oサブシステムと非同期的に通信するI/
O命令の実行を示す流れ図。
【図10】I/Oサブシステムと非同期的に通信するI
/O命令の実行の異なるフェーズ(回復ウインドウ)、
及びそのフェーズの各々において生じた不良に対して必
要な回復動作を示すタイミング図。
【図11】I/Oサブシステムとは通信しないI/O命
令の実行を示す流れ図。
【図12】I/Oサブシステムとは通信しないI/O命
令の実行の異なるフェーズ(回復ウインドウ)、及びそ
のフェーズの各々において生じた不良に対して必要な回
復動作を示すタイミング図。
【図13】I/O割り込みの実行を示す流れ図。
【図14】I/O割り込みの実行の実行の異なるフェー
ズ(回復ウインドウ)、及びそのフェーズの各々におい
て生じた不良に対して必要な回復動作を示すタイミング
図。
【図15】I/Oサブシステムと同期的に通信するI/
O命令の実行を示す流れ図。
【図16】I/Oサブシステムと同期的に通信するI/
O命令の実行の異なるフェーズ(回復ウインドウ)、及
びそのフェーズの各々において生じた不良に対して必要
な回復動作を示すタイミング図。
【符号の説明】
202a−c...中央プロセッサ 204a−c...第1レベル高速バッファ 206...第2レベル高速バッファ 208...中央記憶部208 206...プロセッサコントローラ素子(PCE) 302...命令キャッシュ 303...命令取込み制御ロジック(I−FETC
H) 304...命令デコードロジック 306...レジスタ管理システム 310...データキャッシュ 318...レジスタ 324...分岐実行要素(BXE) 326...汎用実行要素(GXE) 327...回復制御レジスタ 328...システム実行要素(SXE) 332a−c...記憶バッファ 340...完了/割り込み要素
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・ジョン・ハーバン アメリカ合衆国10580、ニューヨーク州 ライ、ウォルナット・ストリート 1番地 ビー03 (72)発明者 ドナルド・ウィリアム・マッコウレイ アメリカ合衆国12569、ニューヨーク州 プレザント・ヴァレイ、オックスフォー ド・ロード 5番地 (72)発明者 ジョン・ステットソン・マードック、ジュ ニア アメリカ合衆国06812、コネチカット州 ニュー・フェアフィールド、クローヴァー リーフ・ドライブ 26番地 (72)発明者 スーザン・バーバラ・スティルマン アメリカ合衆国12601、ニューヨーク州 ポウキープシイ、スタウト・コート 3− 11番地 (56)参考文献 特開 昭57−164343(JP,A) 特開 昭58−154043(JP,A) 特開 昭60−195640(JP,A) 特開 昭64−74635(JP,A)

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】命令ストリームの実行中に発生したエラー
    から回復するための機能を有するコンピュータシステム
    であって、 a)完了まで結果を構造的に見ることができない命令を
    処理するための第1の処理手段と、 b)完了前に、少なくとも一部の結果を見ることができ
    る命令を処理するための第2の処理手段と、 c)前記第1及び第2の処理手段に結合してあり、前記
    命令の実行中のエラー状態を検出し、かつ前記エラー状
    態を表わすエラー信号を発生するためのエラー検出手段
    と、 d)前記第2の処理手段は、完了前に、少なくとも一部
    の結果を見ることができる命令の1つの実行中に前記エ
    ラー検出手段がエラーを検出した時、実行すべきエラー
    回復過程を選択し、更に前記エラー回復過程を指示する
    コードを発生するための選択手段を備えており、そし
    て、 e)前記エラー検出手段と前記選択手段とに結合してあ
    り、前記エラー信号に応答した前記コードが示す前記エ
    ラー回復過程を実行するためのエラー回復手段と、から
    なることを特徴とする、コンピュータシステム。
  2. 【請求項2】請求項1に記載のコンピュータシステムに
    おいて、前記第1の処理手段は、更に、 完了まで結果を構造的に見ることができない前記命令の
    1つの完了時に、チェックポイントを設定し、そして、
    完了前に少なくとも一部の結果を構造的に見ることがで
    きる前記命令の実行中の中間点にチェックポイントを設
    定するための、チェックポイント手段と、 前記エラー検出手段に結合してあり、前記チェックポイ
    ントにおける構造的状態を再度設定し、更に前記エラー
    信号に応答して前記命令を再度実行するための、再試行
    手段とを、含んでいることを特徴とする、コンピュータ
    システム。
  3. 【請求項3】請求項1に記載のコンピュータシステムに
    おいて、前記選択手段は、更に、 前記少なくとも部分的に見ることができる結果を復元す
    ることができるかを更に判断し、そして前記更なる判断
    に基づいて第1の複数の回復アルゴリズムの1つを選択
    するための手段と、 前記少なくとも部分的に見ることができる結果を復元す
    ることができないかを更に判断し、そして前記更なる判
    断に基づいて第2の複数の回復アルゴリズムの1つを選
    択するための手段とを、含んでいることを特徴とする、
    コンピュータシステム。
  4. 【請求項4】請求項1のコンピュータシステムにおい
    て、前記第1の処理手段は、更に、 重複を可能にして実行し、その結果が完了まで構造的に
    見ることができない命令を処理するためのタイプ1の手
    段と、及び重複を不可能にして実行し、その結果が完了
    まで構造的に見ることができない命令を処理するための
    タイプ2の手段とを、含んでいることを特徴とする、コ
    ンピュータシステム。
  5. 【請求項5】請求項1のコンピュータシステムにおい
    て、前記第2の処理手段は、 前記命令の各々の終端に第1のチェックポイントを設定
    し、前記命令の少なくとも1つの実行中の中間点に第2
    のチェックポイントを設定するための手段と、及び前記
    少なくとも一部を見ることができる結果を復元すること
    ができるかを更に判断し、そして、前記第2のチェック
    ポイントで構造的状態を再度設定し、前記エラー信号に
    応答して前記命令を再実行するための手段とを、含んで
    いることを特徴とする、コンピュータシステム。
  6. 【請求項6】エラー回復方法であって、 (a)複数の命令を実行するステップと、 (b)実行中に発生するエラーを検出するために、前記
    命令の前記実行を監視するステップと、 (c)前記複数の前記命令の各々の完了時に、チェック
    ポイントを設定するステップと、 (d)前記命令の各々の実行中に、エラーが発生した時
    開始すべきエラー回復過程を選択するステップと、 (e)前記選択の後、前記エラー回復過程を示すコード
    を一時的に記憶するステップと、 (f)前記コードを、前記チェックポイントの発生と同
    期的に、エラー回復システムに与えるステップと、及び (g)前記複数の中の1つの命令の実行中にエラーが発
    生したことを前記監視ステップが指示した時、前記命令
    の完了を阻止し、前記コードが指示する前記エラー回復
    過程を実行するステップと、からなることを特徴とす
    る、エラー回復方法。
  7. 【請求項7】命令ストリームの実行中に、エラーから回
    復するための方法であって、 (a)命令を複数のタイプの1つに分類するステップで
    あって、前記複数のタイプは、重複を可能にして実行
    し、その結果は完了まで構造的に見ることができない第
    1のタイプと、重複を不可能にして実行し、その結果は
    完了まで構造的に見ることができない第2のタイプと、
    完了前にその結果の少なくとも一部が構造的に見ること
    ができる第3のタイプとに分類するステップと、 (b)前記命令ストリーム内の各命令の完了時と、前記
    第3のタイプの命令の実行中の中間点に、チェックポイ
    ントを設定するステップと、 (c)更新が新しいチェックポイントの設定と同期する
    回復制御レジスタを設置するステップと、 (d)前記命令ストリーム内の命令の実行中にエラー状
    態を検出し、検出された前記エラー状態に応答して前記
    命令の実行を中断するステップと、 (e)前記命令分類した前記複数のタイプのどれに該
    当するかを判断するステップと、 (f)前記命令が前記第3のタイプのものであると判断
    した時、前記少なくとも部分的に見ることができる結果
    を復元することができるかを判断し、前記更なる判断を
    基に、第1の複数の回復アルゴリズムの1つを選択する
    ステップと、 前記命令が前記第3のタイプのものであると判断した
    時、前記少なくとも一部が構造的に見ることができる結
    果を復元することができないかを判断し、前記更なる判
    断を基に、第2の複数の回復アルゴリズムの1つを選択
    するステップと、 及び、 (g)前記命令が前記第1及び第2のタイプの1つであ
    ると判断した時、前記チェックポイントにて構造的状態
    を再度設定し、実行を再開するステップと、からなるこ
    とを特徴とする、エラー回復方法。
JP4202466A 1991-08-29 1992-07-29 再試行及びチェックポイント設定によるエラー回復装置及び方法 Expired - Lifetime JPH0812618B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/751,906 US5269017A (en) 1991-08-29 1991-08-29 Type 1, 2 and 3 retry and checkpointing
US751906 1991-08-29

Publications (2)

Publication Number Publication Date
JPH05210527A JPH05210527A (ja) 1993-08-20
JPH0812618B2 true JPH0812618B2 (ja) 1996-02-07

Family

ID=25024019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4202466A Expired - Lifetime JPH0812618B2 (ja) 1991-08-29 1992-07-29 再試行及びチェックポイント設定によるエラー回復装置及び方法

Country Status (3)

Country Link
US (1) US5269017A (ja)
EP (1) EP0529305A3 (ja)
JP (1) JPH0812618B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076083A (ja) * 1995-02-14 2009-04-09 Fujitsu Ltd 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426783A (en) * 1992-11-02 1995-06-20 Amdahl Corporation System for processing eight bytes or less by the move, pack and unpack instruction of the ESA/390 instruction set
GB2272549B (en) * 1992-11-03 1997-01-29 Tolsys Ltd Memory checkpointing
JP2742375B2 (ja) * 1993-01-08 1998-04-22 インターナショナル・ビジネス・マシーンズ・コーポレイション スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
US5421022A (en) * 1993-06-17 1995-05-30 Digital Equipment Corporation Apparatus and method for speculatively executing instructions in a computer system
US5925125A (en) * 1993-06-24 1999-07-20 International Business Machines Corporation Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions
DE69425311T2 (de) * 1993-10-18 2001-03-15 Nat Semiconductor Corp Mikroprozessor mit spekulativer Befehlsausführung
TW353732B (en) * 1994-03-31 1999-03-01 Ibm Processing system and method of operation
AU2663095A (en) * 1994-06-10 1996-01-05 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5682533A (en) * 1994-09-27 1997-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Updating software within a telecommunications switch without interrupting existing communication and neither moving nor converting data
WO1996025705A1 (en) * 1995-02-14 1996-08-22 Fujitsu Limited Structure and method for high-performance speculative execution processor providing special features
US5692170A (en) * 1995-04-28 1997-11-25 Metaflow Technologies, Inc. Apparatus for detecting and executing traps in a superscalar processor
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
WO1997001842A1 (fr) * 1995-06-29 1997-01-16 International Business Machines Corporation Appareil d'enregistrement/de reproduction de signaux et procede pour changer une sequence d'execution d'une procedure de correction d'erreur
US5987561A (en) 1995-08-31 1999-11-16 Advanced Micro Devices, Inc. Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle
US5860104A (en) * 1995-08-31 1999-01-12 Advanced Micro Devices, Inc. Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates
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
US5745672A (en) * 1995-11-29 1998-04-28 Texas Micro, Inc. Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5838943A (en) * 1996-03-26 1998-11-17 Advanced Micro Devices, Inc. Apparatus for speculatively storing and restoring data to a cache memory
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US6058491A (en) * 1997-09-15 2000-05-02 International Business Machines Corporation Method and system for fault-handling to improve reliability of a data-processing system
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6237073B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US6148396A (en) * 1997-11-26 2000-11-14 Compaq Computer Corporation Apparatus for sampling path history in a processor pipeline
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6175814B1 (en) 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6247118B1 (en) * 1998-06-05 2001-06-12 Mcdonnell Douglas Corporation Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry
US7159005B1 (en) 1998-10-16 2007-01-02 International Business Machines Corporation Methods, systems and computer program products for restartable multiplexed file transfers
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6338147B1 (en) * 1998-10-29 2002-01-08 International Business Machines Corporation Program products for performing checkpoint/restart of a parallel program
US6393583B1 (en) 1998-10-29 2002-05-21 International Business Machines Corporation Method of performing checkpoint/restart of a parallel program
US6279041B1 (en) 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6401136B1 (en) 1998-11-13 2002-06-04 International Business Machines Corporation Methods, systems and computer program products for synchronization of queue-to-queue communications
US6571363B1 (en) * 1998-12-30 2003-05-27 Texas Instruments Incorporated Single event upset tolerant microprocessor architecture
US7634635B1 (en) 1999-06-14 2009-12-15 Brian Holscher Systems and methods for reordering processor instructions
US7089404B1 (en) 1999-06-14 2006-08-08 Transmeta Corporation Method and apparatus for enhancing scheduling in an advanced microprocessor
US6898696B1 (en) * 1999-06-14 2005-05-24 International Business Machines Corporation Method and system for efficiently restoring a processor's execution state following an interrupt caused by an interruptible instruction
US6457119B1 (en) * 1999-07-23 2002-09-24 Intel Corporation Processor instruction pipeline with error detection scheme
US6594774B1 (en) * 1999-09-07 2003-07-15 Microsoft Corporation Method and apparatus for monitoring computer system objects to improve system reliability
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
US6519730B1 (en) * 2000-03-16 2003-02-11 Fujitsu Limited Computer and error recovery method for the same
US6961865B1 (en) * 2001-05-24 2005-11-01 Oracle International Corporation Techniques for resuming a transaction after an error
US6981110B1 (en) 2001-10-23 2005-12-27 Stephen Waller Melvin Hardware enforced virtual sequentiality
US6941489B2 (en) * 2002-02-27 2005-09-06 Hewlett-Packard Development Company, L.P. Checkpointing of register file
JP2004062309A (ja) * 2002-07-25 2004-02-26 Fujitsu Ltd 不当命令処理方法及びプロセッサ
US7389502B2 (en) * 2004-03-31 2008-06-17 Intel Corporation Program phase detection for dynamic optimization
US20060005180A1 (en) * 2004-06-30 2006-01-05 Nefian Ara V Method and system for hot path detection and dynamic optimization
DE102004051966A1 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102004051967A1 (de) * 2004-10-25 2006-04-27 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
US7478278B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Template based parallel checkpointing in a massively parallel computer system
US8301890B2 (en) * 2006-08-10 2012-10-30 Inside Secure Software execution randomization
US7512772B2 (en) * 2007-01-08 2009-03-31 International Business Machines Corporation Soft error handling in microprocessors
US8458403B2 (en) * 2009-11-24 2013-06-04 Honeywell International Inc. Architecture and method for cache-based checkpointing and rollback
US8108721B2 (en) * 2009-11-24 2012-01-31 Honeywell International Inc. Architecture and method for hardware-assisted processor checkpointing and rollback
JP5389741B2 (ja) 2010-06-10 2014-01-15 株式会社ミドリ安全縫技研究所 2本針ミシン及び2本針ミシンの縫い目形成方法
US8578139B2 (en) 2010-08-05 2013-11-05 Arm Limited Checkpointing long latency instruction as fake branch in branch prediction mechanism
US20220269614A1 (en) * 2021-02-22 2022-08-25 Microsoft Technology Licensing, Llc Treating main memory as a collection of tagged cache lines for trace logging

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3618042A (en) * 1968-11-01 1971-11-02 Hitachi Ltd Error detection and instruction reexecution device in a data-processing apparatus
US4044337A (en) * 1975-12-23 1977-08-23 International Business Machines Corporation Instruction retry mechanism for a data processing system
JPS57164343A (en) * 1981-03-31 1982-10-08 Fujitsu Ltd Check point save system
JPS58154043A (ja) * 1982-03-10 1983-09-13 Hitachi Ltd 情報処理装置
US4901232A (en) * 1983-05-19 1990-02-13 Data General Corporation I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor
US4589087A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Condition register architecture for a primitive instruction set machine
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
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076083A (ja) * 1995-02-14 2009-04-09 Fujitsu Ltd 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法

Also Published As

Publication number Publication date
EP0529305A2 (en) 1993-03-03
US5269017A (en) 1993-12-07
JPH05210527A (ja) 1993-08-20
EP0529305A3 (en) 1993-09-15

Similar Documents

Publication Publication Date Title
JPH0812618B2 (ja) 再試行及びチェックポイント設定によるエラー回復装置及び方法
US5293613A (en) Recovery control register
JP3701814B2 (ja) マルチプロセッサ・システム及びそのシステム・シリアル化方法
JP2858140B2 (ja) パイプラインプロセッサ装置および方法
EP0495165B1 (en) Overlapped serialization
US5495587A (en) Method for processing checkpoint instructions to allow concurrent execution of overlapping instructions
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
JPH0820965B2 (ja) プログラムの実行を続行する方法
KR20000076584A (ko) 컴퓨터 프로세싱 시스템에서의 로드 연산을 재순서화하기위한 방법 및 장치
JPH06222936A (ja) 共用変数の値を更新する方法
CN111133418B (zh) 在例外屏蔽更新指令之后允许未中止的事务处理
KR20030019451A (ko) 추측실행의 비순차적 프로세서에서 정확한 예외를전송하는 메카니즘
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
CN108694094B (zh) 用于处理存储器访问操作的装置和方法
CN1099631C (zh) 双执行部件处理器的反回逻辑线路
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
US6810489B1 (en) Checkpoint computer system utilizing a FIFO buffer to re-synchronize and recover the system on the detection of an error
EP0212132A1 (en) Method and digital computer for recovering from errors
TW202036275A (zh) 用於異動式記憶體的設備與資料處理方法
JPH02266457A (ja) 処理の継続実行方法
KR100333580B1 (ko) 개별 프로세서의 초기 해제에 의한 시스템 직렬화 및 그 멀티프로세서 시스템
JPS5868162A (ja) 再試行処理方式
JP2901573B2 (ja) スーパースカラー方式の情報処理装置
JP2793386B2 (ja) 電子計算機の演算エラー情報保持装置
JPH0991159A (ja) 計算機システム