JP4603185B2 - 計算機及びその誤り回復方法 - Google Patents

計算機及びその誤り回復方法 Download PDF

Info

Publication number
JP4603185B2
JP4603185B2 JP2001071488A JP2001071488A JP4603185B2 JP 4603185 B2 JP4603185 B2 JP 4603185B2 JP 2001071488 A JP2001071488 A JP 2001071488A JP 2001071488 A JP2001071488 A JP 2001071488A JP 4603185 B2 JP4603185 B2 JP 4603185B2
Authority
JP
Japan
Prior art keywords
error
instruction
execution
computer
detected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001071488A
Other languages
English (en)
Other versions
JP2001297010A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2001297010A publication Critical patent/JP2001297010A/ja
Application granted granted Critical
Publication of JP4603185B2 publication Critical patent/JP4603185B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Retry When Errors Occur (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、計算機(computer)及びその誤り回復方法(error recovery method) に関する。
【0002】
【従来の技術】
近年、半導体の進歩を背景として計算機の高速化が進んでいる。しかしながら、かかる半導体の進歩によって、演算や記憶に使用されるMOSトランジスタ等の素子が小さくなる結果、放射線や内部又は外部からの電気雑音に対する耐性が減少し、誤りが起こる確率が大きくなっている。
【0003】
誤りが発生した場合に備えるべく、従来より各種の誤り訂正方法が知られている。例えば、メモリにおいては、その他の部分に比較して誤りの確率が大きいため、ECC(Error Correction Code) コードが使用され、安定した動作の保証が図られている。しかし、メモリ以外の部分では、コストや性能の観点からECCコードはあまり使用されていない。
【0004】
従来、高信頼度を要求されるメインフレーム計算機において、メモリ以外の部分に発生した誤りを訂正する方法は、命令実行の完了時に、誤りが無ければ次の命令の処理を進める一方、誤りを検出した場合にはその命令を再実行する、というものである。この方法では、誤りチェックを待たないと次の命令処理を開始することができず、命令実行の並列度を高くすることができないという問題があった。
【0005】
また、より並列度の高い命令実行を行う計算機では、動作中の状態を記憶装置に格納しておき、誤りが検出された場合には、この記憶装置から以前の状態を復元し、その時点に戻って再実行を行うようにしている。この方式では、本来の命令実行には必要の無い、動作中の状態を格納する記憶装置を必要とするため、コストアップになるという問題があった。
【0006】
誤りの原因は、外部からの雑音や放射線等、間欠性(intermittent)(一過性)のものである場合が多いので、上記いずれの方式においても、再実行時には誤りが発生せず、正しく実行される可能性が高い。したがって、論理動作の誤りが検出された場合に、どのようにすれば、命令実行の並列度を低下させることなく、かつ、ハードウェア量を増大させることなく、誤り訂正を行うことができるか、が課題となっている。
【0007】
一方、最近の高性能計算機では、投機的実行(speculative execution) と呼ばれる命令実行方法を行うものが多い。計算機の命令実行において、条件分岐命令の実行効率が性能を大きく左右する。この条件分岐命令を通常のパイプライン計算機で実行すると、条件分岐命令であることを認識し、条件の成立を判定し、それから分岐先の命令を読み出す(fetch) 、という最低3つのステップを経て、次の命令が実行可能となるので、次の命令実行までに時間がかかる。
【0008】
投機的実行方式では、条件分岐命令であることを認識すると同時に、分岐予測機構を利用して、分岐方向を予測(predict) し、その命令の読み出し(fetch) を行うことにより、2ステップで次の命令が実行可能になる。最近の分岐予測機構は90%以上の場合に正しい分岐方向を予測しており、大部分の場合、効率的な実行が可能である。
【0009】
しかし、予測が外れる場合もあり、その場合に備えて、計算機の状態を記憶装置に格納することが行われる。そして、後に予測が外れたことが判明すると、記憶装置から分岐直前の状態を復元し、分岐方向を修正して実行を進める。
【0010】
【発明が解決しようとする課題】
本発明は、上述した背景に鑑みてなされたものであり、その目的は、かかる投機的実行の予測外れに対応するための状態記憶装置を、計算機の論理動作の誤りが検出された際にも使用することにより、電気的雑音や放射線に起因する誤りの発生時にその誤りを訂正することができる経済的な計算機及びその誤り訂正方法を提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成すべく、本発明によれば、分岐命令に対する分岐先を予測し該予測された分岐先の命令の投機的実行を行った後に該分岐予測が外れていたことが判明した場合に回復処理を行う予測外れ回復機構を備えた計算機であって、計算機の論理動作の誤りを検出する誤り検出機構と、前記誤り検出機構によって誤りが検出された場合に、該予測外れ回復機構を使用して誤り発生前の計算機の状態を復元し、誤りが検出された命令から命令列を再実行することにより、間欠故障による誤りを訂正する命令再実行機構と、を具備する計算機が提供される。
【0012】
また、本発明によれば、分岐命令に対する分岐先を予測し該予測された分岐先の命令の投機的実行を行った後に該分岐予測が外れていたことが判明した場合に回復処理を行う予測外れ回復機構を備えた計算機における誤り回復方法であって、計算機の論理動作の誤りを検出するステップと、誤りが検出された場合に、該予測外れ回復機構を使用して誤り発生前の計算機の状態を復元し、誤りが検出された命令を含む命令列を再実行することにより、間欠故障による誤りを訂正するステップと、を具備する方法が提供される。
【0013】
【発明の実施の形態】
図1は、本発明の説明に必要な部分を中心に、命令の投機的実行と論理動作の誤り訂正とを行う計算機の構造を示すブロック図である。計算機の論理動作の誤りを検出する方式として、パリティーチェックによる方式、二重化してその結果を比較する方式、あるいは、乗算器ではモジュロ(modulo)3の剰余をチェックする方式などが知られている。このような方式の何れか、あるいは、これらを適当に組みあわせることにより、誤りを検出することが出来る。
【0014】
本発明は、投機的実行を行う計算機において、上記の誤り検出機構により誤りが検出された場合に、分岐予測外れと同様に、状態記憶装置から以前の状態を復元して再実行を行うことにより、間欠誤りを訂正する。これを可能にするために、通常の投機的実行方式に以下の変更を加える必要がある。
【0015】
投機的実行を行う計算機では、命令の完了(complete)と命令の完結(commit)という概念がある。命令の完了は、その命令が実行され、演算結果などが得られた状態である。しかし、命令は投機的な予測に基づいて実行されている場合があり、その結果により計算機の状態を変化させてしまうと、予測外れの場合は復元ができなくなる。従って、命令の完結という段階があり、これは命令の実行(execute) が完了し、かつ、予測外れがないことが確認された時点で行われる。以上のように、完了段階の命令は取り消しが可能であるが、完結した命令は取り消すことができない。
【0016】
誤りを生じた命令が完結してしまうと取り消しが出来ず、従って、訂正もできなくなるので、本発明を実施するためには、それぞれの命令の通常の完結条件に加えて、誤りが発生しなかったことも確認して完結させる構造とする。
【0017】
そして、誤りが検出された場合には、分岐予測外れと同様に、状態記憶装置から、誤り無く完結した命令だけを含み、誤った命令の結果を含まない最近の状態を読み出して復元し、その時点から再実行を行う。この機構としては、もともとの予測外れに対応するための機構を大部分流用することができる。主要な違いは、分岐方向を修正して異なる命令列を実行するのではなく、同じ命令列を再実行する点にある。
【0018】
以下、図1を用いて具体的に説明する。プロセッサ状態部(processor states)20と記したブロックは、プログラムカウンタ、レジスタ等の、命令の実行に必要な状態を集めて模式的に記したものであり、実際の計算機の実装では、幾つかの部分に分かれて実装されるのが普通である。プロセッサ状態部20に保持された状態に基づいて計算機10全体が制御され、命令が実行されていく。
【0019】
投機的実行では予測により命令の実行を開始するので、予測が外れた場合には、以前の正しかった状態まで戻って実行を再開する必要がある。この状態を格納するのがチェックポイントアレイ(check point array)12である。コミットポインタ(commit pointer)14は、最後の、正しく命令を完結(commit)した状態を格納しているエントリを指している。また、カレントポインタ(current pointer)16は、次に予測を行うに際して、その直前の状態を格納するエントリを指している。
【0020】
バックアップ制御部(backup control)18は、予測外れや誤動作が起こった場合にコミットポインタ14で指された状態をチェックポイントアレイ12から取出しプロセッサ状態部20に格納することにより、その状態から実行を再開させる制御を行う部分である。
【0021】
分岐ユニット(branch unit)22と記した部分は、分岐命令を取り扱う部分であり、分岐先を予測して投機的実行を行い、かつ、後に予測が外れたことが判明した時に通知を行う。また、この部分は、命令の完結を監視し、予測した部分まで命令が完結したことを検出し通知する機能を有している。
【0022】
誤り検出回路(error detection circuits)24は、計算機10の論理動作を監視する部分であり、実際には分散して実装される。誤動作の検出にはパリティーチェックやレジジュー(residue) チェック、あるいは二重化比較などが用いられる。制御及び実行ユニット(control and execution unit)26は、計算機の残りの部分である。
【0023】
分岐ユニット22は、分岐先が決定する前に、方向を予測して投機的実行を行うために、その分岐命令の実行直前の状態(プロセッサ状態部20の内容)をカレントポインタ16が指すチェックポイントアレイ12のエントリに格納する。そして、予測した分岐先の命令実行を開始する。そして、分岐ユニット22は、予測を行いチェックポイントアレイ12のエントリを消費したので、カレントポインタ16を一つ進める。また、分岐ユニット22は、命令の完結を監視し、コミットポインタ14の指すエントリの次のエントリまで命令が完結すると、コミットポインタ14を進め、コミットポインタ14が常に最後の命令完結状態を指すように制御する。
【0024】
分岐方向の予測が間違っていたことが判明すると、分岐ユニット22は、そのことをバックアップ制御部18に通知する。バックアップ制御部18は、コミットポインタ14に従ってチェックポイントアレイ12から正しく完結した最後のエントリを読み出し、プロセッサ状態部20の状態を復元する。これにより、計算機10は、その状態(実行する命令の番地を含む)から命令実行を再開する。このバックアップにより、その後の予測もキャンセルとなるので、カレントポインタ16の値はコミットポインタ14によって指されるエントリの次のエントリを指すように変更される。
【0025】
本発明による、誤動作からの回復は、この予測外れの回復機構を殆どそのまま利用する。ハードウェアの誤動作を検出する誤り検出回路24からバックアップ制御部18へ誤動作の検出が通知されると、バックアップ制御部18は、予測外れと同様に、コミットポインタ14で指される、正しく実行を完結した状態を取出し、プロセッサ状態部20を復元する。計算機10は、この状態から実行を再開するので、誤動作を起こした命令も再度実行されることになる。誤動作の原因が、放射線や外部雑音のような繰り返し発生しないものであれば、再実行時には誤りが発生せず、正しく実行を完了する。また、内部動作に起因する雑音の場合でも、再実行にともない実行の状態が変化し、雑音の発生量が異なることが多い。従って、再実行時には誤動作を引き起こさない場合が多い。
【0026】
図2は、命令完結の手順を示すフローチャートである。なお、フローチャート中の分岐予測、誤り検出及び命令完結は、命令シリアル番号ごとに並列に実行される。ステップ102では、命令シリアル番号を取得(fetch) し、命令を発行(issue) する。次いで、ステップ104では、命令を実行(execute) し、シリアル番号を付して実行結果を送出する。次いで、ステップ106では、分岐予測が外れたか的中したかを判定し、外れた場合には前述のバックアップ処理に移行する一方、的中した場合にはステップ108に進む。
【0027】
ステップ108では、誤りが検出されたか否かを判定し、誤りが検出された場合には誤り回復処理に移行する一方、誤りが検出されなかった場合にはステップ110に進む。ステップ110では、当該命令よりも古い命令が全て完結するまで待機した後、命令完結状態となる。このように、本発明においては、誤りが検出されなかったことが命令完結の条件に加わっている。
【0028】
図3は、誤り検出後の処理の手順を示すフローチャートである。内部発生雑音のレベルは動作状態によって変化し、一般に複数の命令を同時実行し計算機全体の動作率が高い場合には雑音レベルも高くなる。従って、上記の再実行に際して、複数の命令を並列実行するモードではなく、命令を一つづつ実行するようなモードで実行することにより、内部雑音を減少させ、再実行の成功確率を高めることが出来る。そこで、図3の処理では、通常の実行より内部雑音が少なくなる動作モードを備え、誤りが検出された場合にこのモードを選択して再実行を行うようにしている。
【0029】
このような方法により、かなりの間欠故障に起因する誤りを訂正することが出来るが、再実行で回復することができない固定故障が発生した場合や、間欠故障でも、状態記憶自体や復元機構などに誤りが発生した場合には、訂正をすることができない。図3の処理では、再実行の結果においても誤りが検出された場合には、固定故障とみなして実行を中止するようにしている。
【0030】
具体的には、誤り検出後、まず、ステップ202で、誤りが検出された命令を指すプログラムカウンタ(PC)値をEPCとして記憶する。次いで、ステップ204では、命令発行のモードをシングルイシューモードに変更する。通常イシューモードでは、複数の命令がスーパスカラ(superscalar) 方式で並列に発行されるのに対し、シングルイシューモードでは、ノイズを減らすため、命令が一つずつ発行される。
【0031】
次いで、ステップ206では、バックアップ処理として、コミットポインタ14によって指されるエントリから状態が復元される。そして、ステップ208では、その次の命令から実行が再開される。ステップ210では、命令を実行し、プログラムカウンタPCを更新する。ステップ212では、PCがEPCに一致しているか否かが判定され、一致しないときにはステップ210に戻る一方、一致するときにはステップ214に進む。
【0032】
ステップ214では、誤りが検出されたか否かが判定される。誤りが検出された場合には、固定故障であるとみなして、割り込みを発生させる。一方、誤りが検出されなかった場合には、ステップ216に進み、通常イシューモードに復帰し、命令実行を継続する。
【0033】
さらに高信頼度が必要とされる場合には、図4に示されるように、上記の構成の計算機を二重化し、相互の出力を比較する機構を付け加える。すなわち、第1の計算機10Aの出力と第2の計算機10Bの出力とは、一致回路30によって常に比較される。そして、第2の計算機10B内で誤りが検出された場合、又は出力の不一致が検出された場合には、第1の計算機10Aの出力が選択されて、共通キャッシュメモリ32に格納される。換言すれば、第2の計算機10B内で誤りが検出されておらず、かつ、出力が一致している場合には、第2の計算機10Bの出力が選択されて、共通キャッシュメモリ32に格納される。また、第1の計算機10Aの出力が選択される場合で、かつ、第1の計算機10A内で誤りが検出された場合には、回復不能誤り信号が出力される。
【0034】
このように、両計算機の出力が異なる場合には、内部で誤りが検出された計算機を切り離し、誤りが検出されていない計算機を使って実行を継続することにより、正しい実行を継続して維持することができる。但し、これだけでは一方の計算機に間欠故障が起こった場合には、一方だけが状態復元を行うことにより出力に不一致が生じてしまうので、誤りが検出された場合には、両方の計算機で状態復元を同時に行うように構成する必要がある。
【0035】
図4のシステムでの誤り訂正処理を具体的に説明するためのフローチャートが図5に示される。この図に示されるように、第1の計算機10A内で誤りが検出された場合、第1の計算機10Aは、ステップ302において第2の計算機10Bに誤りの発生を通知する。そして、ステップ304及び306に示されるように、両計算機において、図3に示される誤り検出後処理が実行される。その結果、両計算機の状態は、同一の状態に維持される。第2の計算機10B内で誤りが検出された場合も同様である。
【0036】
誤りが検出された一方の計算機を切り離している状態では信頼性が低下しているので、運用を中断することができる適当な時点で診断を行い、固定故障が発生している場合にはハードウェア部品の交換を行う。また、固定故障が検出されず、回復することができない間欠故障であったと考えられる場合は、両方の計算機をもとの二重化比較構成に戻して運用を再開する。
【0037】
パリティーチェックで保護されたキャッシュメモリなどの場合には、誤動作が検出されると、そのときにアクセスしたエントリをハードウェアで無効化してから再実行を行う。このように制御を行うことにより、再実行時には無効化されたエントリがアクセスされる結果、下位のキャッシュメモリや主記憶から正しい内容が読み出されて誤りが回復される。このように単純に再実行を行うのではなく、エントリの無効化のような処理と合わせて回復を図るようにしてもよい。
【0038】
ECCで保護されたキャッシュメモリでは、ECCにより正しいデータが供給されるので、この正しいデータで実行を続け、割り込みによって訂正可能誤りの発生をOS(operating system)に通知して回復を依頼することもでき、必ずしも、本発明を適用する計算機においては、検出された全ての誤動作を再実行によって回復を図らなければならないということではない。ECCのような他の誤動作修正メカニズムと本発明の方式を併用してよい。
【0039】
以上、本発明を特にその好ましい実施の形態を参照して詳細に説明した。本発明の容易な理解のため、本発明の具体的な形態を以下に付記する。
【0040】
(付記1) 分岐命令に対する分岐先を予測し該予測された分岐先の命令の投機的実行を行った後に該分岐予測が外れていたことが判明した場合に回復処理を行う予測外れ回復機構を備えた計算機であって、
計算機の論理動作の誤りを検出する誤り検出機構と、
前記誤り検出機構によって誤りが検出された場合に、該予測外れ回復機構を使用して誤り発生前の計算機の状態を復元し、誤りが検出された命令を含む命令列を再実行することにより、間欠故障による誤りを訂正する命令再実行機構と、
を具備する計算機。(1)
【0041】
(付記2) 前記誤り検出機構は、パリティーチェックを行うものである、付記1に記載の計算機。
【0042】
(付記3) 前記誤り検出機構は、二重化比較を行うものである、付記1に記載の計算機。
【0043】
(付記4) 命令の実行に誤りが無いことが前記誤り検出機構によって確認されたことを条件として命令を完結させる、付記1に記載の計算機。(2)
【0044】
(付記5) 通常の実行より内部雑音が少なくなる動作モードを備え、前記命令再実行機構は、前記誤り検出機構によって誤りが検出された場合に該動作モードを選択して再実行を行う、付記1に記載の計算機。(3)
【0045】
(付記6) 前記命令再実行機構による再実行時にも前記誤り検出機構によって誤りが検出された場合には、固定故障とみなして実行を中止する、付記1に記載の計算機。(4)
【0046】
(付記7) 付記1から付記6までのいずれか1項に記載の計算機を二重化して、それらの出力を比較し、不一致が検出された場合には、内部動作の誤りが検出された計算機を切り離し、誤りが検出されていない他方の計算機で実行を継続させる計算機システム。(5)
【0047】
(付記8) いずれか一方の計算機において内部動作の誤りが検出された場合には、両方の計算機ともに再実行が行われる、付記7に記載の計算機システム。(6)
【0048】
(付記9) 分岐命令に対する分岐先を予測し該予測された分岐先の命令の投機的実行を行った後に該分岐予測が外れていたことが判明した場合に回復処理を行う予測外れ回復機構を備えた計算機における誤り回復方法であって、
計算機の論理動作の誤りを検出するステップと、
誤りが検出された場合に、該予測外れ回復機構を使用して誤り発生前の計算機の状態を復元し、誤りが検出された命令を含む命令列を再実行することにより、間欠故障による誤りを訂正するステップと、
を具備する方法。(7)
【0049】
(付記10) 誤りの検出が、パリティーチェックによって行われる、付記9に記載の方法。
【0050】
(付記11) 誤りの検出が、二重化比較によって行われる、付記9に記載の方法。
【0051】
(付記12) 命令の実行に誤りが無いことが確認されたことを条件として命令を完結させるステップを更に具備する、付記9に記載の方法。(8)
【0052】
(付記13) 前記訂正ステップは、通常の実行より内部雑音が少なくなる動作モードを選択して再実行を行う、付記9に記載の方法。(9)
【0053】
(付記14) 再実行時にも誤りが検出された場合に固定故障とみなして実行を中止するステップを更に具備する、付記9に記載の方法。(10)
【0054】
【発明の効果】
以上、説明したように、本発明によれば、投機的実行の予測外れに対応するための状態記憶装置を、計算機の論理動作の誤りが検出された際にも使用することにより、電気的雑音や放射線に起因する誤りの発生時にその誤りを訂正することができることとなる。
【図面の簡単な説明】
【図1】本発明の説明に必要な部分を中心に、命令の投機的実行と論理動作の誤り訂正とを行う計算機の構造を示すブロック図である。
【図2】命令完結(commit)の手順を示すフローチャートである。
【図3】誤り検出後の処理の手順を示すフローチャートである。
【図4】計算機を2重化したシステムでの本発明の応用例について説明するためのブロック図である。
【図5】図4のシステムでの誤り訂正処理を説明するためのフローチャートである。
【符号の説明】
10…計算機
12…チェックポイントアレイ(check point array)
14…コミットポインタ(commit pointer)
16…カレントポインタ(current pointer)
18…バックアップ制御部(backup control)
20…プロセッサ状態部(processor states)
22…分岐ユニット(branch unit)
24…誤り検出回路(error detection circuits)
26…制御及び実行ユニット(control and execution unit)
10A…第1の計算機
10B…第2の計算機
30…一致回路
32…共通キャッシュメモリ

Claims (8)

  1. 分岐命令に対する分岐先を予測し該予測された分岐先の命令の投機的実行を行った後に該分岐予測が外れていたことが判明した場合に回復処理を行う予測外れ回復機構を備えた計算機であって、
    計算機の論理動作の誤りを検出する誤り検出機構と、
    前記誤り検出機構によって誤りが検出された場合に、該予測外れ回復機構を使用して誤り発生前の計算機の状態を復元し、誤りが検出された命令を含む命令列を再実行することにより、間欠故障による誤りを訂正する命令再実行機構と、
    を具備するとともに、命令を一つずつ実行する動作モードを備え、前記命令再実行機構は、前記誤り検出機構によって誤りが検出された場合に該動作モードを選択して再実行を行う計算機。
  2. 命令の実行に誤りが無いことが前記誤り検出機構によって確認されたことを条件として命令を完結させる、請求項1に記載の計算機。
  3. 前記命令再実行機構による再実行時にも前記誤り検出機構によって誤りが検出された場合には、固定故障とみなして実行を中止する、請求項1に記載の計算機。
  4. 請求項1から請求項までのいずれか1項に記載の計算機を二重化して、それらの出力を比較し、不一致が検出された場合には、内部動作の誤りが検出された計算機を切り離し、誤りが検出されていない他方の計算機で実行を継続させる計算機システム。
  5. いずれか一方の計算機において内部動作の誤りが検出された場合には、該切り離し後に両方の計算機による二重化構成状態の復元を行なうことを可能とするため、両方の計算機ともに再実行が行われる、請求項に記載の計算機システム。
  6. 分岐命令に対する分岐先を予測し該予測された分岐先の命令の投機的実行を行った後に該分岐予測が外れていたことが判明した場合に回復処理を行う予測外れ回復機構を備えた計算機における誤り回復方法であって、
    誤り検出機構が、計算機の論理動作の誤りを検出するステップと、
    該誤り検出機構によって誤りが検出された場合に、命令再実行機構が、該予測外れ回復機構を使用して誤り発生前の計算機の状態を復元し、誤りが検出された命令を含む命令列を再実行することにより、間欠故障による誤りを訂正するステップと、
    を具備し、前記訂正ステップは、命令を一つずつ実行する動作モードを選択して再実行を行う方法。
  7. 該誤り検出機構によって命令の実行に誤りが無いことが確認されたことを条件として制御及び実行ユニットが命令を完結させるステップを更に具備する、請求項に記載の方法。
  8. 該命令再実行機構による再実行時にも誤りが検出された場合に制御及び実行ユニットが固定故障とみなして実行を中止するステップを更に具備する、請求項に記載の方法。
JP2001071488A 2000-03-16 2001-03-14 計算機及びその誤り回復方法 Expired - Fee Related JP4603185B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/527484 2000-03-16
US09/527,484 US6519730B1 (en) 2000-03-16 2000-03-16 Computer and error recovery method for the same

Publications (2)

Publication Number Publication Date
JP2001297010A JP2001297010A (ja) 2001-10-26
JP4603185B2 true JP4603185B2 (ja) 2010-12-22

Family

ID=24101641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001071488A Expired - Fee Related JP4603185B2 (ja) 2000-03-16 2001-03-14 計算機及びその誤り回復方法

Country Status (2)

Country Link
US (1) US6519730B1 (ja)
JP (1) JP4603185B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136817A1 (en) * 2000-12-07 2007-06-14 Igt Wager game license management in a peer gaming network
US7515718B2 (en) * 2000-12-07 2009-04-07 Igt Secured virtual network in a gaming environment
US20080214300A1 (en) * 2000-12-07 2008-09-04 Igt Methods for electronic data security and program authentication
US8083585B2 (en) 2002-09-10 2011-12-27 Igt Apparatus and method for copying gaming machine configuration settings
JP3802038B2 (ja) * 2003-01-30 2006-07-26 富士通株式会社 情報処理装置
US7793233B1 (en) 2003-03-12 2010-09-07 Microsoft Corporation System and method for customizing note flags
US7243262B2 (en) * 2003-08-29 2007-07-10 Intel Corporation Incremental checkpointing in a multi-threaded architecture
US7308607B2 (en) * 2003-08-29 2007-12-11 Intel Corporation Periodic checkpointing in a redundantly multi-threaded architecture
US7373548B2 (en) * 2003-08-29 2008-05-13 Intel Corporation Hardware recovery in a multi-threaded architecture
US7555692B1 (en) * 2004-11-15 2009-06-30 Sun Microsystems, Inc. End-to-end residue based protection of an execution pipeline
DE102004058288A1 (de) * 2004-12-02 2006-06-08 Robert Bosch Gmbh Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten
WO2006119030A2 (en) * 2005-04-29 2006-11-09 Fat Spaniel Technologies, Inc. Improving renewable energy systems performance guarantees
US7769795B1 (en) * 2005-06-03 2010-08-03 Oracle America, Inc. End-to-end residue-based protection of an execution pipeline that supports floating point operations
JP2007018454A (ja) * 2005-07-11 2007-01-25 Toshiba Corp マイクロプロセッサ
KR100990591B1 (ko) * 2006-03-31 2010-10-29 인텔 코오퍼레이션 새로운 선택적 구현에 의한 일시적 에러의 검출
US20070245313A1 (en) * 2006-04-14 2007-10-18 Microsoft Corporation Failure tagging
JP4461135B2 (ja) * 2006-12-25 2010-05-12 富士通株式会社 演算回路及び演算方法並びに情報処理装置
US7673178B2 (en) * 2007-01-31 2010-03-02 Microsoft Corporation Break and optional hold on failure
US7788540B2 (en) * 2007-01-31 2010-08-31 Microsoft Corporation Tracking down elusive intermittent failures
US8631419B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation System and methods for disruption detection, management, and recovery
US8533441B2 (en) * 2008-08-12 2013-09-10 Freescale Semiconductor, Inc. Method for managing branch instructions and a device having branch instruction management capabilities
JP5035299B2 (ja) * 2009-06-15 2012-09-26 株式会社日立製作所 マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム
US8713294B2 (en) * 2009-11-13 2014-04-29 International Business Machines Corporation Heap/stack guard pages using a wakeup unit
JP2011128709A (ja) * 2009-12-15 2011-06-30 Nec Corp 情報処理装置およびプロセッサの処理方法
US9798623B2 (en) * 2012-05-11 2017-10-24 Seagate Technology Llc Using cache to manage errors in primary storage
US10303566B2 (en) * 2017-07-10 2019-05-28 Arm Limited Apparatus and method for checking output data during redundant execution of instructions
US11995922B2 (en) 2020-07-30 2024-05-28 Ge Aviation Systems Llc Flight management system and method for reporting an intermitted error

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50115942A (ja) * 1974-02-22 1975-09-10
JPS50116155A (ja) * 1974-02-26 1975-09-11
JPS5729159A (en) * 1980-07-29 1982-02-17 Fujitsu Ltd Instruction feeding control system
JPH05210527A (ja) * 1991-08-29 1993-08-20 Internatl Business Mach Corp <Ibm> 再試行及びチェックポイント設定によるエラー回復装置及び方法
JPH05216700A (ja) * 1991-08-29 1993-08-27 Internatl Business Mach Corp <Ibm> リカバリ制御レジスタ及びリカバリ制御システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751985A (en) * 1995-02-14 1998-05-12 Hal Computer Systems, Inc. Processor structure and method for tracking instruction status to maintain precise state
US5963893A (en) * 1996-06-28 1999-10-05 Microsoft Corporation Identification of words in Japanese text by a computer system
US5915110A (en) * 1996-07-26 1999-06-22 Advanced Micro Devices, Inc. Branch misprediction recovery in a reorder buffer having a future file
US6157998A (en) * 1998-04-03 2000-12-05 Motorola Inc. Method for performing branch prediction and resolution of two or more branch instructions within two or more branch prediction buffers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50115942A (ja) * 1974-02-22 1975-09-10
JPS50116155A (ja) * 1974-02-26 1975-09-11
JPS5729159A (en) * 1980-07-29 1982-02-17 Fujitsu Ltd Instruction feeding control system
JPH05210527A (ja) * 1991-08-29 1993-08-20 Internatl Business Mach Corp <Ibm> 再試行及びチェックポイント設定によるエラー回復装置及び方法
JPH05216700A (ja) * 1991-08-29 1993-08-27 Internatl Business Mach Corp <Ibm> リカバリ制御レジスタ及びリカバリ制御システム

Also Published As

Publication number Publication date
JP2001297010A (ja) 2001-10-26
US6519730B1 (en) 2003-02-11

Similar Documents

Publication Publication Date Title
JP4603185B2 (ja) 計算機及びその誤り回復方法
US8635492B2 (en) State recovery and lockstep execution restart in a system with multiprocessor pairing
US6785842B2 (en) Systems and methods for use in reduced instruction set computer processors for retrying execution of instructions resulting in errors
US6058491A (en) Method and system for fault-handling to improve reliability of a data-processing system
CN100489801C (zh) 纠正软错误的固件机制
US6751749B2 (en) Method and apparatus for computer system reliability
US8185786B2 (en) Error recovery within processing stages of an integrated circuit
US6615366B1 (en) Microprocessor with dual execution core operable in high reliability mode
US7320091B2 (en) Error recovery within processing stages of an integrated circuit
US6851074B2 (en) System and method for recovering from memory failures in computer systems
US10909006B2 (en) Main processor error detection using checker processors
US20060190702A1 (en) Device and method for correcting errors in a processor having two execution units
US20020073357A1 (en) Multiprocessor with pair-wise high reliability mode, and method therefore
CN108694094B (zh) 用于处理存储器访问操作的装置和方法
US10817369B2 (en) Apparatus and method for increasing resilience to faults
US20200272533A1 (en) Detecting memory mismatch between lockstep systems using a memory signature
US20080229134A1 (en) Reliability morph for a dual-core transaction-processing system
CN115080315B (zh) 故障检测及处理方法、装置、处理器及电子设备
US10289332B2 (en) Apparatus and method for increasing resilience to faults
Tamir et al. The UCLA mirror processor: A building block for self-checking self-repairing computing nodes
JP2004252525A (ja) エミュレータおよびプログラム
US11847457B1 (en) System for error detection and correction in a multi-thread processor
El Salloum et al. Recovery mechanisms for dual core architectures
Yao et al. [2009] A stage-level recovery scheme in scalable pipeline modules for high dependability
Yao et al. A stage-level recovery scheme in scalable pipeline modules for high dependability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101001

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees