JP2001526809A - コンピュータ・システム用非割り込み電力制御 - Google Patents

コンピュータ・システム用非割り込み電力制御

Info

Publication number
JP2001526809A
JP2001526809A JP54806698A JP54806698A JP2001526809A JP 2001526809 A JP2001526809 A JP 2001526809A JP 54806698 A JP54806698 A JP 54806698A JP 54806698 A JP54806698 A JP 54806698A JP 2001526809 A JP2001526809 A JP 2001526809A
Authority
JP
Japan
Prior art keywords
cpu
voting
cpus
computer
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP54806698A
Other languages
English (en)
Inventor
フックス,スティーヴン
ワードロップ,アンドリュー・ジェイ
Original Assignee
ゼネラル・ダイナミックス・インフォメーション・システムズ・インコーポレーテッド
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 ゼネラル・ダイナミックス・インフォメーション・システムズ・インコーポレーテッド filed Critical ゼネラル・ダイナミックス・インフォメーション・システムズ・インコーポレーテッド
Publication of JP2001526809A publication Critical patent/JP2001526809A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 ハードウエア・クロック・レベルにおける冗長投票を用いた、フォールト・トレラント・コンピュータ・システム用非割り込み電力制御を開示する。コンピュータ(11a)は、同期して動作する3つ、4つまたはそれ以上の市販の中央演算装置(CPU)(32)を含む。放射線耐性ゲート・アレイ(50)によって、システム・メモリ(46)およびシステム・バス(12)への出力(33)を投票する。ゲート・アレイ(50)は、特注の集積回路(34)で実施することができる。投票器(34)に結合されたインターフェース制御部(28)は、CPU(32)への電力を除去または接続し、CPU入力(33i)を調節し、動作中のプログラムを終了させることなく、構成部品への損傷を防止することができる。各CPUクロック・サイクル毎に、システム・メモリ(46)への各書き込み時およびシステム・メモリ(46)からの読み出し時の入力および出力(35)の投票を行う。投票ステータスおよび制御回路(38)は、投票のステータスを「読み取り」、ハードウエアおよびソフトウエアを用いてCPUの状態を制御する。システム・ロジックは、全てのCPU(32)を再同期させるか、故障したCPU(32)の電力を停止するか、または予備のコンピュータ(11b)に切り替え、リセットして代わりのCPU(32)を再ブートすることによって、検出した障害から回復する最良の機会を選択する。

Description

【発明の詳細な説明】 コンピュータ・システム用非割り込み電力制御 発明の分野 本発明は、高性能フォールト・トレラント・コンピュータ・システムの分野に 関する。更に特定すれば、この発明は、ハードウエア・クロック・レベルにおけ る冗長投票(redundant voting)を採用したコンピュータにおいて用いられるプロ セッサに対する動的な非割り込み電力制御(non-intrusive control of power)を 提供する。本発明は、コンピュータ、特に、軌道上にある宇宙船上に搭載したコ ンピュータのような、遠隔装備コンピュータにおいて、エラーを検出し訂正する ために用いることができる。 発明の背景 地球上および宇宙における自然放射線環境は、コンピュータ内に用いられてい る半導体素子の短期劣化および長期劣化の原因となり得ることが多い。この害は 、無障害動作が要求されるコンピュータにとっては問題である。これらの放射線 効果に加えて、コンピュータ・チップは、時が経つに連れて徐々に現れる、未検 出の欠陥や弱点による不規則な故障(failure)の可能性もある。半導体パッケー ジ内の微量放射性物質(trace radioactive material)も、障害の原因となり得る 。コンピュータが遠隔環境において長期間にわたって動作しなければならない場 合、またはこれらの素子が長時間期間障害なく動作しなければならない場合、障 害や故障から保護されたシステムに対する必要性が、重大となる。遠く隔った環 境または被害に合いやすい環境には、遠隔石油基地(oil platform)、海底、航空 機、および南極大陸のような隔離された場所が含まれる。地球軌道上およびそれ を越えて動作するシステムは、特にこの放射線の害を受けやすい。 ヴァン・アレン放射線帯付近の空間における宇宙線、特に高エネルギ粒子の存 在により、単一事象効果(SEE:single event effect)または単一事象不調 (SEU:single event upset)と呼ばれる乱れを生ずる可能性がある。地球の 磁場は 、粒子を偏向させ、それらのエネルギ・レベルや属性を変化させる。また、地球 の磁場は、太陽およびその他の星から地球に向かって移動する荷電粒子も捕獲す る。 地球の磁場によって捕獲されない粒子の中には、その磁場によって極付近の大 気に導かれるものもある。これらの粒子は、衛星に搭載されている電子素子を貫 通する虞れがある。 高エネルギ粒子およびガンマ線が半導体素子を貫通すると、これらは電荷をコ ンピュータ回路内に残し、過渡現象および/またはノイズを生ずる。これは、メ モリ回路を不調(upset)にし、チップ上の回路に「ラッチアップ」を誘発する 可能性がある。不調とは、一般に構成部品の誤状態出力(mis-stated output)と して定義することができる。この出力は、1つ以上の信号ビットを含む場合があ る。ラッチアップとは、半導体の電気的状態の1つであり、高エネルギ粒子によ る半導体回路内の電荷の堆積のために、素子の出力が駆動され飽和状態に保持さ れることを言う。相補金属酸化物半導体アーキテクチャ(CMOS)を基本とす る素子は、最も影響を受けやすいものの一部である。CMOS素子は、同一基板 上に2つのNPN素子を備え、これらが同じPチャネルを共有する。ラッチアッ プは、浮遊電荷が第1のNPN素子内に電流を発生するときに起こる。この電流 は、他方のNPN素子にフィードバックされる。フィードバック・ループの結果 として、回路の利得が1よりも大きい場合、素子は一方の状態に連続的に移動し 、これがラッチアップ状態にあると言われるものである。この状態は、電源と接 地との間の短絡、局所的な発熱、半導体物質の移動を生ずる可能性があり、最終 的に素子を破壊する虞れがある。素子のラッチアップに起因するエラーを補正す るには、通常演算装置またはその他の構成部品への電力を削減または除去するこ とにより、ラッチ状態から発展する破壊的損傷を防止しなければならない。ラッ チ状態の原因は、ほんの一時的な不調の場合もある。電力を除去し次いで再度印 加すれば、構成部品は正常に機能することができる。 構成部品の不調率は、チップのサイズや内部回路の設計を含む、チップの構造 的特徴に左右される。特定の部分の不調率は、市販の1メガビット・ランダム・ アクセス・メモリ・チップ(RAM)の1日当たり10回から、放射線強化した 1メガビットRAM(radiation-hardened one megabit RAM)の2800年に1回 まで様々である。放射線強化構成部品とは、放射線の害を受けないように特別に 設計し構築した素子のことである。これらの素子は、従来のチップよりも遥かに 高価でしかも遅い傾向がある。これらは、典型的に、数年先端技術からる傾向が ある。 地上における従来の用途に利用されている現在のコンピュータ・チップは、通 常、宇宙放射線には脅かされない。この耐性は、地球の大気が与える保護のため である。しかしながら、コンピュータ・チップを地球上で使用していても、放射 線不調の虞れがある。診断または治療用医療機器から放射される放射線も同様に 、半導体構成部品に影響を与える可能性がある。素子が複雑になるに連れて、大 気の宇宙線突入による二次および三次粒子が、これらに不調を発生させる原因と なる。 Catherine Barillot et al.(キャサリン・バリロットその他)は、そのRevie w of Commercial Spacecraft Anomalies and Single-Event-Effect Occurrences (商用宇宙船の異常および単一事象効果の発生に関する再考)と題する論文にお いて、1975年以来宇宙において観察された不調事象について記載している。 これらの事象およびその起源について、追跡し分析している。提示されたデータ は、TDRS衛星上で遭遇する不調の数は、太陽周期による宇宙線の変調に追従 することを示す。 コロラド大学のL.D.Akers(L.D.エイカーズ)は、Microprocessor Tech nology and Single Event Upset Susceptibility(マイクロプロセッサ技術と単 一事象不調の感受率)と題する論文を発表した。著者は、強力な微小回路を採用 して宇宙船のあらゆる面を制御する現在の衛星は、増々重イオンが誘発するSE Uの攻撃を受け易くなっていることを指摘した。彼は、省電力化および高速化を もたらす微小素子の出現は、巨大な太陽フレアからの予期される粒子増大と相ま って、SEUの率の著しい上昇を招くことを予測している。彼は、未来の衛星派 遣の成功を確保するために、小型衛星の設計者はSEU緩和技術を実施する必要 があると確信する。 NASAが後援し、Allan Johnston(アレン・ジョンストン)が著し たSingle Event Criticality Analysis(単一事象タリテイカリテイ分析)(1 996年2月15日)は、SEU、および高エネルギ粒子の通過によって生ずる 、電子素子内の「ラッチアップ」のような関連する影響について記載している。 彼は、ラッチアップのテルテール痕跡(telltale signature)である過剰電流を検 知することにより、システムまたはサブシステム・レベルにおいてラッチアップ を克服することの困難を指摘した。この困難が生ずるのは、ミリ秒以内に、影響 を受けた構成部品から電力を除去しなければならないからである。複雑な回路の 中には、多くの異なるラッチアップ経路や電流の痕跡(current signature)が存 在する。 Johnstonは、地球上および宇宙における放射線環境で発見される高エネルギ陽 子および重イオンは、物質を通過する際にエネルギを失うことを報告する。この 効果は、主にイオン化プロセスが原因で発生する。粒子は、電子構成部品のP− N接合を通過する際に密度の濃い電荷を残す。この電荷の一部が、接合部のコン タクトに集められる。また、電荷は接合部の外側からも集められる。正にその影 響のため、内部回路のノードにおいて、非常に短期間の電流パルスが粒子と衝突 する。回路ノードによって収集される全電荷の大部分は約200ピコ秒以内に発 生する。粒子衝突によって集められた電荷が構成部品が状態を切り替える最小電 荷、例えば、非導通から導通に切り替えるのに要する最小電荷を超過した場合、 粒子の通過が不調を発生したり、あるいはそれ以外の影響を回路に与えることに なる。最小即ち「臨界電荷(critical charge)」は、衝突を受ける具体的な素子 の設計によって異なる。集積回路では、高エネルギ・イオンの衝突によって、次 のような数種類の影響を誘発する可能性がある。 (1)単一事象不調や多ビット不調のような遷移性効果であり、内部記憶素子 の状態を変化させるが、簡単に正常動作にリセットすることができる。 (2)単一事象ラッチアップのように、潜在的に破壊的な事象であり、素早く 補正しなければ、構成部品の破壊を招く虞れがある。 (3)単一事象ハード・エラーであり、複雑な回路内では単一の内部トランジ スタの破壊的故障の原因となる。 接合分離集積回路(junction-isolated integrated circuit)の殆どは、寄生バ イポ ーラ・トランジスタを含み、シリコン制御整流器と同様の四層領域を形成する。 これらのバイポーラ構造は、CMOS素子の正常な動作には関与しない。これら は、遷移性電流によってトリガされる可能性がある。全てのCMOS設計は、入 出力(I/O)端子において特殊なガードバンドおよびタランプ回路を用い、標 準的な用途におけるラッチアップを防止している。しかしながら、放射線環境で は、遷移性信号はもはやI/O端子には拘束されない。重イオンまたは陽子から の電流パルスは、I/O回路だけでなくCMOS素子の内部領域においてもラッ チアップを誘発する可能性がある。一旦ラッチアップが発生すると、四層領域は 導通状態に切り替えられる。ラッチされた領域における電圧が非常に低い値に減 少するまで、この状態に留まる。ラッチアップの間、電流が非常に高くなる虞れ がある。これは、宇宙システムにとっては重大な問題である。Johnstonは、ラッ チアップの痕跡である過剰電流を検知することによってシステムまたはサブシス テム・レベルにおいてラッチアップを克服するのは、困難であることを指摘した 。何故なら、破壊的な損傷の可能性を回避するためには、影響を受けた構成部品 から電力をミリ秒以内に除去しなければならないからである。複雑な回路には、 多くの異なるラッチアップ経路や電流の痕跡が存在する。 コンピュータ・チップに影響を及ぼす放射線の害を緩和する以前の試みでは、 混同した結果が見られた。フォールト・トレラント・コンピュータに関する研究 は、高レベル、例えば、レジスタ・レベルにおけるエラー検出を主に扱っていた 。Synchronization and Fault-Masking in Redundant Real-Time Systems(冗長 リアル・タイム・システムにおける同期および故障隠蔽)と題するC.M.Krishna e t al.(C.M.クリシュナその他)の論文(IEEE,1984,pp.152-157)において 、彼らは、「悪意の」故障がある場合の多数の位相ロック・クロックのハードウ エア同期およびソフトウエア同期について記載している。著者は、クロックの出 力値を、基準クロックの入来信号と比較する単純なハードウエア投票構造(hardw are voting strategy)について記載している。障害のないクロックは、同相にロ ックされる。プロセッサが障害を発生した場合、予備品が入手可能であれば、こ れらを交換する。この方法は、密接に同期して動作する多数のクロックを有する 多くの冗長コンピュータに適用される。Krishna et al.は、ソフトウエア・ア ルゴリズムの使用によって、多元プロセッサ・システムを、それら自体のクロッ クによって、密接に同期して動作可能とすることも記載している。 Krishna et al.が利用したようなソフトウエアの解決策は、ソフトウエア・ブ ロック・レベルで投票手順を採用する。これらの解決策は、一般に、高レベルに おけるコンピュータ出力を比較し、別個のコンピュータが各々他のコンピュータ と一致するか否か確かめる必要がある。かかるシステムは、高レベルの冗長性を 得るために、重量、体積、コストおよび消費電力に大きな代償を払っている。 Krishna et al.は、システムの一時的な不調の問題を取り上げていない。また 、これらの著者は、プロセッサのいずれの一構成部品内に限定した障害の問題も 取り上げていない。Krishna et al.が記載するようなシステム内における障害の 認識は、素子全体が故障したことを意味する。しかし、放射線不調は、必ずしも 素子の故障には至らない。不調状態は一時的の可能性がある。 ジョンズ・ホプキンス大学応用物理学研究室のRichard M.Maurer(リチャード M.モーラ)およびJames D.Kinnison(ジェームスD.キニソン)が発表した 、Single Event Upset and Latchup Sensitive Devices in Satellite Systems (衛星システムにおける単一事象不調およびラッチアップ感応素子)と題する論 文において、彼らは単一事象不調およびラッチアップの害を認識している。彼ら は、単一事象効果に感応する部分を設計から除外する際の補助として、判断ツリ ーを提案する。即ち、SEE感応部分をそのまま用いて、これらの部分が機能す る回路の設計における何らかの保護対策を与えようとした。MaurerおよびKinnis onは、ラッチ状態が正常な動作状態とは明らかに異なる何らかの特性を有するの で、ラッチアップ保護回路を設計することができると想定する。放射線強化素子 の使用は避けるものの、彼らのハードウエア保護方法では、重量、体積および電 力の不利が伴う。また、特に動作速度に関して、素子自体にも性能上の影響が生 ずる場合もある。 IEEE Transactions on Reliability(IEEE信頼性に関する論文誌)Vol.R -24,No.5,1975年12月に発表された、Francis Mather(フランシス・マザ ー)およびPaulo T.de Sousa(パウロT.デ・ソーサ)は、Reliability Model ing and Analysis of General Modular Redundant Systems(汎用モジュール型冗長システムの信頼性モデリン グおよび分析)に関する彼らの論文において、フォールト・トレラント・ディジ タル・システムを設計するために、ハードウエアの冗長性を使用していたことを 説明した。彼らは、冗長モジュールの多数決投票および重信ロジック(quadded l ogic)(4つのゲートによるあらゆるハードウエア・ゲートの置換)を、ハードウ エア冗長構造として記載している。 E.J.McClusky(E.J.マタルースキ)は、1986年8月25日、サンタ・ クルスのカリフォルニア大学における第16回コンピュータ・サイエンス年次学 会(Sixteenth Annual Institute in Computer Science at University of Calif ornia at Santa Cruz,25 August 1986)において、Hardware Fault Tolerance( ハードウエア・フォールト・トレランス)と題する論文を発表した。McCluskyは 、ハードウエア・フォールト・トレランス法の基本概念および技法について記載 した。かかる技法の1つに、「エラー隠蔽」がある。即ち、エラーがシステムの 出力から発生するのを防止する機能である。エラー隠蔽は、McCluskyによれば、 「高い冗長性」によって達成する。システム出力は、障害がないときには等しい 信号の投票によって判定する。高い冗長性の通常の形態は、三重モジュラー冗長 性、四重構成部品、重信および投票ロジックである。McCluskyは、投票ロジック は、モジュールのコピー全てを投票器(voter)に接続する必要があると報 告している。各モジュールの出力は、投票器を通過した後に、システムの他の部 分に伝送される。投票は、システム全体における高いレベルで行われる。重信ロ ジックは、あらゆる論理ゲートを4つのゲートで置換することと説明されている 。障害は、ゲートの相互接続パターンによって、自動的に補正される。かかるシ ステムは、放射線の害から保護する対象のシステムに、重量、電力およびコスト 上の不利を招くことは明白である。 McCluskyは、三重モジュラー冗長性は、コンピュータ全体だけでなく、小さい 複製ユニットにも適用可能であると示唆するが、かかる方式をどのように実施す るかについては、エラー訂正コードおよびある種のソフトウエア・プログラムの 使用を除いては、記載していない。エラー訂正コードによる方法では、障害情 報ビットを変更するためには、エラー訂正回路が不可欠であり、したがって、エ ラー訂正回路に障害がない場合にのみ有効である。McCluskyが引用するソフトウ エア方法では、1つのプログラムをいくつかのバージョンで独立して書く必要が ある。各プログラムは、同じデータ上で実行し、投票によって出力が得られる。 かかる技法は、一時的な障害には有効であり得るが、大量の時間およびシステム ・オーバーヘッドが必要となる。 H.Schmidt et al.(H.シュミットその他)は、Critical issues in the Desig n of a Reconfigurable Control Computer(再構成可能な制御コンピュータの設 計における重大問題)(IEEE,1984,pp.36-44)において、リアル・タイム制御シス テムに用いられるコンピュータのような、再構成可能なコンピュータの詳細設計 の前に、解決しなければならない多数の重大な間題について論じている。 IEEE Transactions on Computers(コンピュータに関するIEEE論文誌)、 Vol.34,No.1,1985年1月、pp 33-45に発表した、Fault Tolerant Multip rocessor Link and Bus Network Architectures(フォールト・トレラント・マ ルチプロセッサ・リンクおよびバス・ネットワーク・アーキテクチャ)と題する 論文において、Dhiraj K.Pardha(ダイラーK.パードハ)は、統合化システム において相互接続されている多数の計算機要素に、最適なまたはほぼ最適なフォ ールト・トレランスを提供する、汎用クラスの常用ネットワークを紹介した。 以前の高性能プロセッサは、多数の論理チップ、即ち、浮動小数点チップおよ びローカル・キャッシュとして用いられる多くのメモリ・チップで構成されてい た。現在のプロセッサは、これらの機能全てを単一のチップに内蔵している。こ の単一チップ内の機能集中化によって、チップ・ハードウエア・レベルで、プロ セッサ・システム内のいくつかのチップのみにフォールト・トレラント方法を適 用することも可能になった。1枚の基板に収容される素子が更に増大するに連れ て、プロセッサ・チップは増々密度が濃くなる。したがって、これらの素子、特 に、相補金属酸化物、ガリウム砒素、およびバイポーラ半導体素子ならびにその 他は、放射線によって受ける影響が増々大きくなる。 1992年Digital Press(ディジタル・プレス社)が出版した 、Reliable Computer System(高信頼性コンピュータ・システム)、第2版にお いて、Daniel P.Siewiorek(ダニエルP.シーウオレック)およびRobert S.Swarz (ロベルトS.シュヴァルツ)は、信頼性技術に伴う、エラー検出、保護用冗長 性、フォールト・トレラント・ソフトウエア、および評価基準について論じてい る。この本の第3章は、システム・レベル、レジスタまたは転送レベル、バス・ レベル、モジュール・レベルおよびゲート・レベルにおけるコンピュータ出力の 比較を紹介している。著者は、モジュールの出力に到達する前に、障害の影響を 隔離し訂正する、三重冗長モジュールおよび投票機構について記載している。ま た、彼らは、混成冗長システムにおけるバックアップ予備の使用についても論じ ている。即ち、並列に動作するN個のモジュールのコア、システム出力を決定す る投票器、およびコア内の故障したモジュールを交換するために切り替えること ができる1組のバックアップ・スペア・モジュールについて論じている。この本 の図3−31は、3つのモジュールおよび/または3つの投票器の出力における 多数決投票を示す。Siewiorek et al.は、この技法は、信号遅延および性能低下 を招くと断言している。図3−57は、Hopkins(ホプキンス)、Smith(スミス )およびLala(ララ)のフォールト・トレラント・コンピュータ(1978)を 示す。これは、1組のプロセッサ/キャッシュ、メモリおよび入出力モジュール で実施され、これら全てが冗長な共通シリアル・バスで相互接続されている。コ ンピュータの計算は、三重に行われる。即ち、3組のプロセッサ/キャッシュお よび3つのメモリが、投票モードで同じ処理を実行し、クロック・レベルで同期 を取っている。殆どの処理はキャッシュを利用するので、投票は各クロック・サ イクル毎に行われるのではなく、データがバス上に転送されたときにのみ行われ る。著者は、個々のバスによって投票器に結合された多数のプロセッサを含み、 投票器出力が単一のメモリに接続されているシステムについて記載していない。 SiewiorekおよびSwarzは、プロセッサ出力および入力を各クロック・サイクル毎 に投票するシステムについて記載していない。これらの著者は、機能不全プロセ ッサへの電力を制御する手段を、かかるシステムの一部として論じていない。 市販の部品を基本とし、軍用および商用宇宙飛行体に使用するために開発され るフォールト・トレラント・コンピュータにおいて、ラッチアップからの永続的 な損傷が防止されれば、処理上およびコスト上多大な利点が得られよう。かかる 発明が行われれば、性能レベルの向上をもたらし、放射線強化チップを基本とす る既存の手法よりも少ないコストで製造可能となるであろう。この発明は、ラン ダムな障害や、容認できない程高い率で単一事象不調を生ずる放射線環境に晒さ れる、遠隔装備コンピュータ・システムおよびその他のプロセッサに用いること ができよう。かかる放射線不調に対する保護は、エラーを発見しこれを訂正する であろう。この障害保護システムがあれば、実行中のソフトウエア・アプリケー ションを損なうことなく、不良化したプロセッサへの給電を停止したり、あるい は給電を中止する手段を提供することができよう。フォールト・トレラント方法 が、コンピュータ・レジスタまたはコンピュータ・モジュールの出力の代わりに 、例えば、プロセッサ・チップ内部において、非常に低いハードウエア・レベル で適用可能であれば、非常に効果的であろう。かかるシステムは、特殊コンピュ ータおよび衛星業界において、長年感じられていた要望を満たすであろう。 発明の概要 本発明は、冗長フォールト・トレラント・コンピュータに用いられるコンピュ ータ・プロセッサの停止(shutdown)または給電中止(power down)に備える、改良 された電力制御システムから成る。本発明は、「ラッチアップ」の問題、および 計算機システムにおいて、故障したシステム全体を停止せずに、素子から電力を 除去する必要があるその他の問題を解決するものである。この電力制御システム は非割り込み性である。即ち、実行中のソフトウエア・アプリケーションには影 響を及ぼすことなく、ハードウエアまたはソフトウエアによって素子への給電を 開始または中止することができる。本発明の好適な実施形態は、ハードウエア・ クロック・レベルにおける冗長投票(redundant voting)を用いて、放射線が誘発 する単一事象不調(SEU)やその他のランダムな障害によって発生するエラー を検出し訂正する。ハードウエアのクロック・レベルにおける投票とは、各クロ ック・サイクル毎に、複数の中央演算装置のデータおよびアドレス信号を比較し 、一致か否か調べることである。素子の「ラッチアップ」に起因するエラーの訂 正では、通常、演算装置またはその他の構成部品への電力を削減または除去する ことにより、ラッチ状熊から発展する破壊的損傷を防止しなければならない。ラ ッチ状態の原因は、ほんの一時的な不調の場合もあり、電力を除去し次いで再度 印加すれば、構成部品は予想通りに機能する。「停止」させるための信号は、エ ラー状態の構成部品出力または容認できない電流の上昇の検出によって発生する 。 単一事象不調(SEU)は、高エネルギ宇宙線、および半導体回路内に電荷を 残す粒子によって生ずる。地上に設置される機器は、大気によって宇宙線から遮 蔽されているが、半導体パッケージ内の微量放射性物質(アルファ粒子)によっ て発生するSEUに多少の注意が払われて来た。不調とは、1つ以上の信号ビッ トの成分の誤状態出力のことである。不調は、構成部品が永続的に障害状態にあ ることを必ずしも示すものではない。 従来、投票技法は、寿命が長い宇宙関連用途において、より高いシステム・レ ベルにおいて用いられてきた。近年の半導体技術における進歩によって、ハード ウエア・クロック・レベルにおいて、放射線強化されていない市販の構成部品に も、冗長投票を用いることが可能となった。今日の集積レベル向上のため、わず か数個の素子を用いれば、システム全体のために電力制御機能を備えた冗長構成 部品を実現することが可能となる。冗長機能および電力制御は、数個のプロセッ サ・チップおよび少数のその他のチップのみを用いて、1つのモジュールに実現 することが可能である。 本発明を実施するコンピュータ・アーキテクチャの好適な実施形態の1つは、 4つの市販の単一チップ中央演算装置(CPU)、投票器、メモリ・コントロー ラ、システム・メモリおよびPower StrobeTM電力制御システムを内蔵した中央プ ロセッサ・モジュールから成る。代替実施形態は、3つの市販のCPUを利用す る。他の実施形態には、4つ以上のCPUを利用するものもある。これらのCP Uは、厳格な「ロックステップ」(lockstep)で動作する。即ち、各CPUの各動作 ステップは並列に、しかも他のCPUと実質的に同時に行われる。位相ロック・ ループがこの動作を制御する。全てのCPUの出力は、「四重投票」(quad-voted) システムと呼ぶ、放射線耐性投票器において「投票」される。投票プロセスでは 、投票器によって各クロック・サイクル毎にCPU信号出力の各々を互いに比較 する。プロセッサは、単一のシステム・メモリおよびメモリ・バスを共用する。 プロセッサがロックステップ状態にあるので、これらは全て同時に同じメモリ・ アクセスを要求するはずである。投票したアドレスを、メモリへのアクセスに用 い、投票したデータをメモリおよびシステム・コンピュータの(I/O)バスに 、放射線耐性メモリ・コントローラを介して書き込む。投票器、メモリ・コント ローラおよび電力コントローラは、特定用途集積回路(ASIC:application specific integrated circuit)を用いれば容易に実現することができる。放射 線強化構成部品を用いることによって、または冗長設計を利用することによって 、システムを放射線耐性にすることも可能である。 メモリおよびシステムI/Oバスから読み出したデータは、同時に4つのプロ セッサ・チップ全てに供給される。メモリからの「読み出し」は、従来の技法を 用いてチェックされる。例えば、公知の「ハミング・コード」をメモリ・チップ ・ハードウエアに実装し、単一ビット・エラーのチェックおよび訂正を行うこと ができる。 各CPUからの出力は、各クロック・サイクル毎に、他の全てのCPUからの 出力との一致について比較される。投票器に供給されたCPU出力信号の過半数 が一致すると、投票出力信号は過半数の値を有する。過半数と一致しないCPU 出力信号は、投票器によって検出され、エラー信号が生成される。エラー信号は 、メモリ・コントローラに送られ、次のように反応する。 1.過半数の投票信号が、一致するCPUによって用いられ、中断なくCPU の処理動作を続ける。CPUの不一致がなおも続く場合、ラッチアップ状態を指 示することができ、不一致のCPUの給電を一旦停止し、ついで再度開始する。 2.不一致のCPUは、以降の投票参加を禁止される。 3.システム管理割込(SMI)が他のCPUに発生する。 4.後の時点において、ソフトウエアが再同期プロセスを開始し、禁止された CPUを回復させる。 コンピュータ障害の場合、エラーのない予備のコンピュータに交換する。しか しながら、本発明において具体化される方法および装置を使用すれば、予備のコ ンピュータとの交換に頼る必要なく、前述の故障を正すことが期待される。動作 不能のシステム(disabled system)の給電を停止する。 典型的なCMOS構成部品は、そのインターフェース構成部品に給電されてい る間、給電を停止することができない。本発明の特定用途集積回路(ASIC) は、CPUへのインターフェース電圧を非応力状態(non-stressed condition)に 駆動することを確保することによって、給電停止したCPUを支援する。各CP U毎に、ASIC内にインターフェース制御部を備える。インターフェース制御 は、素子から電源電圧(Vcc)を除去したときに、入力信号が接地電位に駆動さ れるように動作する。あるいは、素子から帰路/接地接続を除去することによっ て電力を中断した場合、入力信号を電源電圧(Vcc)に駆動する。別の代替案で は、信号を高インイーダンスに切り替えることができる。このように、信号入力 と接地との間、または信号入力と電源電圧(Vcc)バスとの間の電流の流れは最 小となる。電力を中断したときの素子上の応力を制御することにより、その信頼 性低下を防止する。 任務中、CPUおよびその他の素子を停電状態に切り替えれば電力を保存する ことができる。宇宙搭載用途では、単一事象不調の可能性が少ない軌道または飛 翔軌道(trajectory)上にある場合、またはバス電力が低い場合には、電力停止を 頻繁に行うことができる。 本発明のその他の目標および目的の認知ならびに本発明のより完全かつ総合的 な理解は、以下の好適な実施形態の説明を検討し、添付図面を参照することによ り得ることができよう。 図面の簡単な説明 図1は、システム(I/O)バスに接続された冗長コンピュータを示す、コン ピュータ・システムの概略図である。 図2aは、信号電圧および電源電圧(Vcc)が印加される、典型的なCMOS 素子の概略図である。この図は、素子から電力を除去する場合の信号入力を調整 する必要性を示す。 図2bは、コンピュータ・システムの構成部品への給電をオンおよびオフに切 り替える際、電力の中断を構成部品の電源側で行う好適な実施形態を示す概略図 である。 図2cは、コンピュータ・システムの構成部品への給電をオンおよびオフに切 り替える際、構成部品から帰路/接地を除去する、代替実施形態を示す概略図で ある。 図3は、並列「ロックステップ」で動作し、その出力がシステム・メモリ「投 票」に用いられる、市販の放射線強化されていない中央演算装置(CPU)を4 つ有するコンピュータを示す、本発明の好適な実施形態の概略図である。電力制 御「スイッチ」がCPUへの電力を中断し、素子インターフェース制御によって CPUバス上の信号を調整し、電力を中断したときにCPUに過剰な応力がかか るのを防止する。 図4は、1年当たりのシステム不調の回数対1日当たりの個々の部品の不調の 回数との関係を、出力が投票されない構成部品、出力が2対3の投票で比較され る構成部品、および出力が2対4の投票で比較される構成部品について示すグラ フである。このグラフは、構成部品の出力を投票する場合は、しない場合に対し てシステムの不調が何桁も減少することを示す。 図5は、CPUからの数個の信号の1つを投票し、図3に示した「四重投票」 方法を実施する、典型的な回路の概略図である。 図6は、故障検出に対するシステムの反応およびその訂正を示す、本発明の状 態図である。 図7は、個々のプロセッサが、電力除去および回復によって個々のCPUのエ ラー訂正を実現する、種々の電力制御状態を示すCPU制御状態図である。 図8は、CPUを再同期させ、エラーから回復させるハードウエアおよびソフ トウエア動作を、フロー・チャート形態で示す。 図9は、電源電圧を制御し、CPUへの入力信号を調整するために用いられる 投票回路のブロック図である。 図10は、不一致のCPUへの電力を除去しそして回復する一連の動作を示す フロー図である。好適な実施形態および代替実施形態の詳細な説明 基本アーキテクチャ 図1は、第1コンピュータ11a内部にある中央演算装置(CPU)の構成部 品の不調に耐え、管理するように設計されたコンピュータ・システム10の最上 位ブロック図である。第1コンピュータ11aは、他の素子の動作および記録の ために、システム(I/O)バス12にデータおよび制御信号を供給する。本発 明は、放射線に起因する単一事象不調(SEU)によって生ずるコンピュータ・ エラーを「隠蔽」する。また、本設計は、半導体パッケージ内の微量放射線物質 (アルファ粒子)、X線を用いる診断または治療用医療機器への露出のような、 その他の事象によって発生する故障に起因する一時的な故障または永続的な故障 にも耐久性がある。SEUは、1つ以上の信号ビットの成分の誤状態出力である 。不調は、必ずしも構成部品が故障していることを示す訳ではない。故障の構成 部品を示すのは間欠的な障害または重い障害であり、これはディスエーブル(d isable:使用禁止)するかまたは交換しなければならない。第1コンピュ ータ11aが動作不能となった場合の代用として待機している、第2コンピュー タ11bが備えられている。この明細書および請求の範囲で用いる場合、「故障 」という用語は、異常、障害またはラッチアップを含む、異常なチップのあらゆ る状態を意味することにする。破壊的な故障とは、直ちに矯正しなければ、1つ 以上の回路構成部品の破壊を招き得る故障のことである。非割り込み電力制御 本発明は、冗長フォールト・トレラント・コンピュータ・システムにおいて、 用いられているコンピュータ・プロセッサの運転停止または電力停止を行い、シ ステム全体の故障を未然に防止するものである。電力制御システムは、非割り込 み性である。即ち、実行中のソフトウエア・アプリケーションには影響を及ぼす ことなく、ハードウエアまたはソフトウエアによって素子の給電を開始または中 止することができる。好適な実施形態では、ハードウエア・クロック・レベルに おける冗長投票を用いて、放射線によって誘発される単一事象不調(SEU)が 原因で発生するエラーを検出し訂正する。ハードウエアのクロック・レベルにお ける投票とは、複数の中央演算装置のデータおよびアドレス信号が一致するかに ついて、各クロック・サイクル毎に比較することである。SEUは、電子素子の 「ラッチアップ」の原因となり得る。素子のラッチアップに起因するエラーの訂 正では、通常、演算装置またはその他の構成部品への電力を削減または除去する ことにより、ラッチ状態から発展する破壊的損傷を防止しなければならない。ラ ッチ状態の原因は、ほんの一時的な不調の場合もあり、電力を除去し次いで再度 印加すれば、構成部品は予想通りに機能する。 典型的なCMOS構成部品は、そのインターフェース構成部品に給電されてい る間、給電を停止することができない。図2aは、信号電圧16および電源電圧 Vcc20が印加される、典型的なCMOS素子14の概略図を示す。信号出力1 7が得られる。この図を調べることにより、CMOS素子14から電力を除去す る場合に何故信号入力16を調整する必要があるのかが明らかとなる。信号入力 16において電圧が過剰であると、信号入力16間に保護用「ブレークダウン」 ダイオード18があっても、薄いゲート酸化物19を破壊する。信号入力16と Vcc20との間の第1ダイオード18は、信号入力16の最大電圧を、ダイオー ド18間の電圧降下とVcc20の和にクランプする。ダイオード18間の電圧降 下は、典型的に、約0.7ボルトである。Vccを接地電位に設定すると、信号入 力は約0.7ボルトに抑えられる。信号入力16と帰路/接地23との間のダイ オード18は、信号が約−0.7ボルトよりも負側になるのを許さない。過剰電 流が素子14に過剰応力をかけるのを防止するためには、Vccを除去した場合に 、信号入力16を接地電位に駆動しなければならない。代わりに帰路/接地23 を除去した場合、信号入力16はVccに向けて駆動しなければならない。このよ うにして、信号入力と接地との間、または信号入力と電源電圧(Vcc)バス20 との間の電流の流れを最小にする。電力を中断したときに、信号入力16の電圧 を調整することによって構成部品21にかかる応力を制御して、構成部品の信頼 性低下を防止する。 図2bおよび図2cは、構成部品への電力を中断する2つの方法を示す。図2 Bは、構成部品21の前に電力バス20に挿入した電力スイッチ22を示し、活 性化されると、素子からVccを除去する。電力スイッチ22は、制御信号26に よって開閉される。図2cは、構成部品21と帰路/接地23との間に配した電 力スイッチ22を示す。制御信号26は、帰路/接地23の除去および置換を行 う。本発明の一実施形態 図3は、本発明の好適な実施形態の更なる詳細を示す。好適な実施形態の1つ では、コンピュータ11aは、複数、即ち、4つの同期して動作する市販のCP U32を有する。しかしながら、利用するCPU32の数は、ユーザが容認可能 と考えるフォールト・トレランス(fault tolerance)に応じて 、少なくとも3つからそれ以上に変更可能である。図3に示すCPU32は、縮 小命令セット・コンピュータ・チップ(RISC)である。RISCチップは、 高速メモリを内蔵しており、他の使用可能なCPUチップよりもオーバーヘッド が少なくて済むので、好ましい。コンピュータ11aは、投票器34を含む。投 票器34は、特定用途集積回路(ASIC)として実施したものとして示されて いる。代替実施形態では、投票器34は、現場プログラム可能なゲート・アレイ で構成してもよい。投票器34は、CPU32の各々に結合されている。投票器 34は、投票ステータスおよび制御回路38を内蔵する、メモリ・コントローラ 36に結合されている。メモリ・コントローラ36は、投票器34とは別個のA SICに実施したものとして示されている。ピン数の制限のために、投票器34 およびメモリ・コントローラ36に2つ以上のICを要する結果となることもあ るが、双方を単一構造としてもよい。 また、図3は、メモリ・インターフェース40を介して、投票CPU信号35 を受け取るシステム・メモリ46も示す。投票CPU信号35は、バス・インタ ーフェース42を介して、システム・コンピュータ(I/O)バス12にも送ら れる。メモリ46は、メモリ出力信号37aを、メモリ・インターフェース40 を介して、メモリ・コントローラ36に供給する。メモリ出力信号37aは、メ モリ・コントローラ36を介して、入力信号33aとしてCPU32の各々に等 しく分配され、更にCPUバス35aを介して投票器34に分配される。従来の 技法を用いて、メモリ46からの「読み取り」をチェックする。公知の「ハミン グ・コード」をメモリ・チップ・ハードウエアに実施すれば、単一ビット・エラ ーのチェックならびに訂正および2ビット・エラーの検出を行うことができる。 過半数のCPU出力信号33oと一致しないいずれのCPU出力信号33oも 、投票器34によって検出される。次いで、投票器34によってエラー信号39 bが生成され、投票ステータスおよび制御回路38に送られる。過半数の投票信 号35は、中断なく処理動作を継続するために、一致したCPU32によって用 いられる。投票ステータスおよび制御回路38は、エラー信号39bに反応して 、システム管理割込を発生する。後の時点で、このシステム管理割込に反応して 、単一事象不調によってエラーが発生した場合、ソフトウエアが複数のCPU3 2の再同期を開始する。投票ステータスおよび制御回路38は、動作可能なCP U32が3つ未満であり、複数のCPU32の内一致するのが2つ未満の場合、 あるCPU32が過半数と一致しなかった場合に発生するエラー信号39bに反 応し、エラーのないコンピュータ11bと交換する。機能不全コンピュータ(dys functional computer)11aの給電は停止される。「リコンフィギュレーション ・ユニット」と呼ばれる従来の制御回路が、この切り替え手順を実行する。尚、 簡略化の目的のために、この回路は図3には示されていない。 各CPUクロック・サイクル毎に、各CPU32からの出力33oは、投票器 34において、他の全CPU32からの出力33との一致について比較される。 投票器34に供給されたCPU出力信号33oの過半数が一致した場合、投票出 力信号35は過半数の値を有する。メモリ・コントローラ36内の投票ステータ スおよび制御回路38に送られるエラー信号39bは、次のような何種類かの反 応を示す。 1.一時的な不調の結果CPU出力信号33oが一致しない場合、最後に投票 されたCPUの内部状態を等しく全てのCPU32に分配することによって、C PU32の全てを再同期させる。 2.CPU出力信号33oの不一致が永続し、ラッチアップ状態の可能性を示 す場合、不良化CPU(affected CPU)32から電力を除去する。 3.動作状態にあるCPU32が2つのみである場合に、CPU出力信号33 oの不一致によって、一方のCPU32の一時的不調または永続的な故障が示さ れた場合、エラーがない予備のコンピュータ11bと交換し、システムをリセッ トし(通常、全てのレジスタを0にリセットすることによって)、再ブートする 。 本発明に具休化する方法および装置を使用すれば、予備のコンピュータとの交 換に頼る必要なく、前述の障害を訂正することが期待できる。 全ての信号33iが同じクロック・サイクル上で全てのCPU32に提示され ることを確証するために、システムの別の部分から発した全ての信号35を、投 票器34においてシステム・クロックに同期させ、別個に各CPU32に送り込 む。かかる信号は、例えば、リセットや割込を含む。 各CPUに対するCPUインターフェース制御28は、投票器34のASIC 内において実施される。各CPUインターフェース制御部28は、CPU出力信 号33oを搬送するバスに接続されている。ラッチアップによる出力信号33o の永続的なエラーが検出された場合、インターフェース制御部28は制御信号2 6を電力スイッチ22に供給し、電力スイッチ22によって電力バス20からの 電源電圧24をCPU32から除去する。前述のように電源電圧24を除去する 際、インターフェース制御部28はCPUへの信号入力33を非応力状態に駆動 する。また、保存の目的のため、または障害の疑いがある場合、必要に応じて、 インターフェース制御部28に電源電圧24を除去するように命令することも可 能である。 図4は、1年当たり発生するシステム不調の数45対1日当たりの個々の部品 の不調の数47の関係を、出力を投票しない構成部品48a、2対3の投票で比 較する構成部品48b、および2対4の投票で比較する構成部品48cについて 示す。1日当たり所与の回数の不調、例えば、10回に対して、図は、1年当た りのシステム不調45が、2対4の投票を行う構成部品48cでは、構成部品4 8aの出力の投票を行わない場合よりも、約3桁(103)減少することを示す 。1日当たり各部品毎に10回の不調がある場合、2対4投票システムでは、約 500年に1回システム不調が発生するに過ぎない。2対3投票システムでさえ も、同じ部品の不調率に対して、1年当たり数回システム不調を呈するに過ぎな い。本実施形態では、4つのCPU22の1つが永続的に故障しなければ、4つ の投票構成部品が使用可能である。2対4投票セットは、4つのメンバーで開始 するが、いずれかのメンバが故障すると直ぐに2対3セットに劣化する。衛星制 御ソフトウエア・システムの主サイクル時間を1秒として、その半分以内での回 復に合わせて、不調の計算に用いる再同期までの平均時間は0.5秒としている 。故障検出 故障検出は、投票器34において行われる。図5は、投票を行う投票器34内 の典型的な回路を示す。CPU出力信号33oから得られるデータ信号54の投 票器が示されている。同様の投票器34を用いて、投票アドレス信号およびハン ドシェーク(制御)信号を得る。これらもCPU出力信号33oから得られる。 ゲート・アレイ50は、第1ANDゲート・アレイ53,第2ANDゲート・ アレイ57,第1ORアレイ63および排他的ORゲート65のアレイを含む。 これらのゲート・アレイ53,57,63,65は、CPU出力信号33oを比 較し、投票出力をメモリ・バスおよびI/Oバスに提示し、CPU32からのエ ラー出力を検出する。また、投票器34は、ANDゲート51およびORゲート 62から成る、バイパス・ゲート・アレイ55も含んでもよい。バイパス・ゲー ト・アレイ55は、システムを検査するために用いられ、機能するCPU32が 1つのみ動作状態に残ったがシステム10を動作させることが望ましい場合、投 票器34のオーバーライドとしても用いられる。 第1ANDゲート・アレイ53の各第1ANDゲート58は、第1入力52a 〜dとして、データ信号52であるCPU出力信号33oを有する。第2入力と して、イネーブル信号54である投票ステータスおよび制御信号39aを有する 。各第1ANDゲート58は、出力60を有する。 第2ANDゲート・アレイ57の各ゲート59は、第1入力として、第1AN Dゲート・アレイ53の1つのゲート58からの出力60を有し、第2入力とし て、第1ANDゲート・アレイ53の他のゲート58からの出力60を有する。 各第2ANDゲート59は、出力61を有する。 第1ORゲート63は、入力として、第2ANDゲート・アレイ57の各ゲー ト59の出力61を有し、更にバイパス・ゲート・アレイ55の出力61を有す る。これは出力66を有する。 排他的ORゲート・アレイ65の各ゲート64は、第1ORゲート63の出力 66に結合されている。アレイ65内の排他的ORゲート64の各1つは、それ ぞれ、データ信号52の各々に結合され、更に出力68を有する。 第1ANDゲート・アレイ53の第1端子に入力されるデータ信号52は、各 イネーブル信号54をアレイ53の対応するゲートの第2入力端子に印加するこ とによって、アレイ53から出力60として現れる。出力60は、第2ANDゲ ート・アレイ57において、互いに比較される。第2ANDゲート・アレイ57 からの出力の61の各々は、データ信号52の値を有し、それらは一致する。第 1ORゲート63からの出力66は、第2ANDゲート・アレイ57からの出力 61として現れる、データ信号52の値を有する。 第1ORゲート63からの出力66は、排他的ORゲート・アレイ65の各ゲ ート64の第1入力に印加される。データ信号52は、排他的ORゲート・アレ イ65の各ゲート64の第2入力に印加される。印加されたデータ信号52およ び第1ORゲート63から印加された出力66が一致しない場合、排他的ORゲ ート・アレイ65の各ゲート64は不調または故障を示すエラー信号68を発生 する。 図5が示すように、データ信号52として現れる各CPU出力信号33oは、 バイパス・ゲート・アレイ55内のゲート51の一端子にバイパス信号56を印 加することによって、投票プロセスを迂回することができる。データ信号は、入 力ライン54a〜dからそれぞれのゲートへのイネーブル信号54を除去するこ とによって、投票から除外する、即ち、ディスエーブルすることができる。イネ ーブル状態(enable:可能状態)のCPU32が1つのみであり、残りは ディスエーブルされている場合、投票器データ出力66は、その迂回されたCP U出力33bに追従する。イネーブルされているCPU32が1つよりも多い場 合、データ出力66は、全ての迂回されたCPU出力33bの論理ORとなる。 1つのCPU32が迂回されかつディスエーブルされている場合、その出力33 bはORゲート63に提示される。同様の迂回は、アドレス信号にも同時に発生 する。故障補正 「無投票」部分即ち構成部品と比較して、投票集合(voting set)の3つのCP U32は、これらメンバーの内1つが不調で正しく動作しない場合でも、正しい 出力を与えることができる。3つのCPU32の内1つが動作しない状態におい て、他の2つのCPU32の内1つが不調になると、システムの不調が生ずる。 何故なら、有効な投票が2つしかない場合、過半数の投票は全て一致でなければ ならないからである。一旦CPU32が不調となると、内部機械状態の複雑性の ために、他のCPU32とは異なる挙動を続ける可能性がある。故障を発生した CPU32を投票集合に回復させるためには、再同期が必要である。システムの 不調レベルは、個々のCPU32の不調率、および再同期を開始する前の平均時 間長に左右される。図6の図は、システム・ロジックを示す。CPUの状態は閉 じたボックスで示されている。ある状態から他の状態への遷移は、線で示されて おり、矢頭が遷移の方向を示す。コンピュータ11aは、「4CPU一致」状態 102において開始する。1つのCPU出力33bが他の3つのCPU32と不 一致となった場合、前述のように、投票器34が不一致を示すエラー信号を発生 する。コンピュータ11aは、「3CPU一致」108に遷移する(104)。 コンピュータ11aが状態108に遷移した場合(104)、CPU32に割 込が発生し、再同期を実行するように要求する。「3CPU一致状態」108か ら、コンピュータ11aは、「再同期状態」114を通って遷移する(110) 。次に、CPU32の内永続的に故障しているもの、または給電されておらず「 再同期状態」114の間に一致に持っていくことができないものがいくつあるか に応じて、コンピュータ11aは、状態102に遷移するか(116)、状態1 08に遷移する(124)か、あるいは状態126に遷移する(128)。 コンピュータ11aが「3CPU一致状態」108にある間、3つの投票CP U32間で不一致が検出された場合、不一致のCPU32をディスエーブルし、 コンピュータは「2CPU一致状態」126に遷移する(122)。状態126 への遷移122において、システム管理割込がCPU32に発生し、再同期を行 うように要求する。「2CPU一致」状態126から再同期114を通る遷移1 30によって、コンピュータ11を状態102,108,または126に戻す。 戻す状態は、CPU32の内永続的に故障したものの数、または給電されず「再 同期状態」114の問に一致に移ることができないものの数によって決定される 。 コンピュータが「2CPU一致状態」126にある間、2つの投票CPU32 間で不一致が検出された場合、コンピュータ11aは「障害コンピュータ状態」 136に遷移する(134)。「障害コンピュータ状態」136に達した場合、 コンピュータ11aは、リコンフィギュレーション・ユニットに障害状態を示し 、「エラーのない冗長コンピュータ状態へ切り替え」140に遷移する(138 )。この切り替えが行われると、エラーのない冗長コンピュータ11bはリセッ トされ(通常、全てのレジスタがゼロになる)、システム10は再ブートされる 。次いで、代わりのコンピュータ11bが「4CPU一致」状態102に遷移す る(148)。 CPU状態制御 個々のCPU32は、以下の状態のいずれか1つにあるはずである。 1.イネーブルおよび投票、 2.強制ディスエーブル、 3.不一致、ディスエーブル、 4.迂回、 5.再同期、または 6.電力停止 特定用途集積回路(ASIC)の投票器34が、CPU32へのインターフエ ース・ピンを確実に非応力状態(non-stressed condition)に駆動することによっ て、電力停止したCPU32を支援する。投票ステータスおよび制御回路38は 、停止状態から離れる場合、CPU32を常に不一致、ディスエーブル状態に置 くことによって、停止状態からイネーブルおよび投票状態156への直接的な移 動を禁止する。 コンピュータ11aの動作の間に発生するCPU制御およびステータス信号3 9a,39bは、次の通りである。 1.各CPU32毎に1つずつ、投票器34からエラー信号68。 2.イネーブル信号54およびバイパス信号56。各CPU毎に1つずつ、投 票ステータスおよび制御回路38から投票器34へのCPU入力「三状熊」信号 (全ての入力は接地に駆動されている)。 3.投票ステータスおよび制御回路38から各CPU32へのシステム管理割 込およびリセット信号。 4.インターフェース制御部28からの電力制御信号(オン/オフ)信号26 。 割込およびリセット信号の双方は、クロック同期のために、投票器34を通過 する。各CPU32状態毎に、制御信号の静的状態を表1に示す。 表1 CPU状態制御信号 図7は、電力投入、強制ディスエーブルまたは不調によるディスエーブル、お よびある状態から他の状態への遷移の場合の、個々のCPU32の種々の状態を 示すCPU状態制御図150である。この図では、CPU状態は、閉じたボック スで示されており、ある状態から他の状態への遷移は線として表されている。遷 移の方向は、矢頭で示されている。サイクルは、電力投入コマンド152から開 始する。すると、コンピュータ11a内にある各CPU32は、「投票およびイ ネーブル状態」156に遷移する(154)。コンピュータ11a内にある各C PU32は、遷移158によって、ソフトウエアからのコマンドでディスエーブ ルされる場合がある。ディスエーブル・コマンドを実行し、エラーを発生したC PUが投票動作には絶対に参加しないようにする。「強制ディスエーブル状態」 160は、遷移162によって逆行することも可能である。「強制ディスエーブ ル状態」160から、CPUを再同期させて、遷移166,164によって示さ れるように、「再同期状態」168へおよび「再同期状態」168から「強制デ ィスエーブル状態」160に戻すことも可能である。 CPUは、遷移170を通じて、「投票およびイネーブル状態」156から「 停止状態」174へ、または遷移172を通じて「強制ディスエーブル状態」1 60に移動することができる。CPU32は、「不一致、ディスエーブル状態」 186から、遷移184によって停止させることができる。電力停止状態は、長 いミッションまたは低バス電力のために電力を保存することも可能である。この 状態は、太陽フレア活動が比較的弱く、遭遇する不調の数が減少する場合に、衛 星上で電力を保存するためにも有用な場合がある。電力が貴重な場合、完全なフ ォールト・トレランスには、電力削減も好ましい場合もあり得る。また、永続的 な障害が認識されたかあるいは疑わしい場合、コンピュータ11aをディスエー ブルしてもよい。「不一致、ディスエーブル状態」186には、不調の結果発生 するエラー信号68によって、「動作/投票イネーブル状態」156から遷移1 90を通じて到達する。不調なCPU32が動作に復帰できる場合、「再同期移 行状態」(re-synchronization transient state)194への遷移188を行う。 CPU32は、遷移196において、再同期し、「動作/投票イネーブル状態 」156に戻る。不一致およびその後の再同期の後、CPU32が再同期し損ね た場合、ラッチアップを疑う。次いで、CPU32から電力を除去し、再度供給 して、ラッチアップをクリアする。「電力停止」状態174から、CPU32は 、「不一致、ディスエーブル状態」186を通り、電力供給遷移182によって 再起動することができる。再同期動作 再同期動作194は、CPU32内で走るソフトウエアによって命令される。 このコマンドが受信されると、全てのCPU32は一時的に「リセット」状態に 置かれる。「不一致、ディスエーブル状態」186(投票に関して)にあるCP U32はいずれも、「動作/投票イネーブル状態」156に戻される。CPU3 2が「強制ディスエーブル」160(または迂回状態)にあった場合、「再同期 移行状態」168の後、その状態に留まる。このプロセスについては、図8の検 討において以下で更に詳細に説明する。CPUリセット 最初にコンピュータ11aに電力を供給する際(152)、全てのCPU32 に給電し、動作および投票イネーブル156にする。CPUが「不一致、ディス エーブル状態」186に遷移した場合(190)、システム管理割込(SMI) が投票ステータスおよび制御回路38内で発生し、CPU32に送られる。SM Iは再同期シーケンスを開始する。割込サービス・ソフトウエア・プログラムが 、再同期動作194への遷移188を開始する。CPU再同期によるエラー訂正 図8は、CPU32を再同期させるハードウエアおよびソフトウエアの動作を 表すフロー・チャート200である。このプロセスの一部はハードウエア201 において、主に、CPU32、投票器34ならびに投票ステータスおよび制御回 路38において行われる。他の動作は、CPU32内で走るソフトウエア205 によって制御する。エラー訂正プロセスが開始するのは、過半数の他のCPU3 2に対して不一致のCPU32が、投票器34によって検出されたときである。 2つの動作中のCPU32が一致していない場合(204)、システムは、障害 を発生したと見なされる(206)。このような場合、予備コンピュータ11b と交換することによって、システムの再起動を試みる。全てのソフトウエアは再 起動するが、コンピュータ機能の大きな破壊が発生する。 エラーが検出されても2つ以上のCPU32が未だ一致する場合(204)、 不一致のCPU32が投票に参加するのを禁止する(208)。ハードウエアに よって、システム管理割込(SMI)が発生する(210)。SMIは、直ちに ではないが、もうすぐ再同期が必要になることを示すフラグを発生する。アプリ ケーション・ソフトウエア・プログラムは、中断なく継続する。不一致のCPU 32をディスエーブルすることによって、投票プロセスの転化(corruption)を回 避し、残りのCPU32における別のいずれかの不調または障害の検出を可能に する。その後すぐに、CPU32の割込イネーブルおよび優先度設定によって決 定されるように、システムはシステム管理割込210に応答する(212)。こ の応答212の一部として、現在実行中のプログラムが割り込まれた時点を含む 、ソフトウエア・ステータスをメモリ46にセーブする。この情報は、後に、割 り込まれたプログラムが停止した正確な時点から再開するために用いられる。 割込サービス・ソフトウエア・プログラム203は、CPUレジスタの全てを 、投票器34を介して、メモリ46に書き込む(214)。少なくとも2つのC PU32は一致しているので、レジスタは正しい値を収容しており、セーブされ た値にはエラーはない。再同期プロセスの間、これらの値は、全てのCPU32 にロードし直され、不一致のCPU32におけるあらゆるエラー値と置換する。 割込サービス・ソフトウエア・プログラム203は、CPU32によって変更さ れたが投票器34を介して末だメモリ46に書き込まれていない、データ・キャ ッシュ内のあらゆる位置を、投票器34を介してメモリに書き込ませる(216 )。種々のCPU32がそれらのキャッシュ内に異なる値を有する場合、投票プ ロセスによって、メモリ46が正しい値だけを有することを確保する。 次に、割込サービス・ソフトウエア・プログラム203は、再同期218を開 始し、ハードウエア・シーケンスを始める。最初に、図8に示すように、リセッ ト・タイプをセットし(220)、再同期およびリセット・タイプ情報を専用レ ジスタに保持する。他のリセット・タイプには、過半数故障(majority fail)、 電力供給(power up)および外部信号が含まれる。第2に、リセット・パルスを発 生し(222)、全てのCPU32に送る。各CPU32内部において、リセッ ト・パルスは、全CPU32内のレジスタに、同じ値、通常ゼロをセットさせる 。また、リセット・パルスは、全てのCPUキャッシュの内容を破棄させる。C PUのキャッシュが使用可能となる前に、新たなデータをメモリ46から読み込 まなければならない。次いで、ディスエーブルされた(208)全てのCPU3 2に、投票を許可する(224)。最後に、全てのリセット機能が完了した後、 全てのCPU32は同じ機械状態を有し、再度同じように動作する。CPU32 は、 リセット・ベクトルと呼ばれる特別なアドレスから、プログラムの実行を開始す る(226)。 リセット・ベクトル・アドレスに位置するリセット・サービス・ソフトウエア 229は、リセット・タイプ・レジスタを見て、発生したリセット・タイプを判 定する(228)。本例では、リセット・タイプはCPU32の再同期232を 示すようにセットされた(220)ので、ソフトウエア229は、メモリ46に 以前に書き込まれたCPUレジスタのデータを、CPUレジスタに再度ロードす る。投票プロセスは1組の値のみをメモリ46にセーブさせるので、全てのCP U32は同じ値を受け取る。システムが割り込まれたときの機械状態を特徴付け る情報を、レジスタに復元する(234)。リセット・サービス・ソフトウエア 229は、「割込からのリターン」プロセスを実行し、元のアプリケーション・ プログラムが停止した地点に、これを戻す(236)。 CPUのキャッシュは、その内容がリセット・パルスによって破棄されており 、プログラムが進むに連れて、新たなデータで満たされる。その動的な特性のた めに、キャッシュの内容は、例え不一致がなかったとしても同一でないこともあ り得るが、CPU32内では、その全てのキャッシュは同一である。 再同期プロセスに必要な時間遅延の以外には、元のアプリケーション・プログ ラムは、不一致およびそれに続く再同期プロセスによる影響を、その動作または 結果には受けない。CPUへの給電を巡回させることによるエラー訂正 図9は、電力制御システムのブロック図を示す。図示する回路は、電源電圧( Vcc)を制御し、CPU32への入力信号33iを調整するために用いるもので ある。図9は、投票器34ならびに投票状態および制御回路38を更に詳細に示 す。それ以外の構成要素としては、複数のゲート・アレイ50から成る投票ロジ ック252、投票器制御回路256、および投票器ステータス回路254が図示 されている。明確化のために図9に示すCPU32および電力スイッチ22は各 々1つのみであるが、好適な実施形態では、少なくとも4つのCPUおよび電力 スイッチ22が、図3に示すように結合されることを、読者は理解して当然であ ろう。インターフェース制御部28は、好適な実施形態では、投票器34のチッ プ上に位置し、リセット制御部258および連動するタイマ260、アドレス・ デコーダおよびバス・サイクル・コントローラ259、コマンド・デコーダおよ びコントローラ262、システム管理割込ゲート266およびそのイネーブル・ フリップ・フロップ264を含む。CPU入力33iおよびCPU出力33oは 、双方向データ、アドレスおよびハンドシェーク(制御としても知られる)バス 33a,b,c上を搬送される。投票出力は、バス35a,b,c上を搬送され る。先に説明したように、これらのバス33a,b,c上を搬送されるCPU出 力33oおよびCPU入力33iは、各CPUクロック・サイクル毎に投票され る。 コマンド・デコーダおよびコントローラ262は、インターフェース制御部2 8の主要要素である。これは、メモリ・インターフェース40を介して投票ロジ ック252からシステム・メモリ46までの経路上に配置されている。投票デー タ66は、システム・メモリ46に書き込まれ、コマンド・デコーダおよびコン トローラ262にも達する。コマンド・デコーダおよびコントローラ262は、 投票データ信号66、投票アドレス信号270および投票ハンドシェーク信号2 72から得られるコマンドを分配する。動作の間、少なくとも2つのCPUが一 致する場合、投票データ66は投票器ステータス回路254を介して、メモリ4 6に書き込まれる。投票器エラー信号68は、投票器制御回路256に達する。 投票器制御回路256は、投票ロジック252において投票器イネーブル信号5 4をオフに切り替えるバイパス/イネーブル/三状態信号280を、不一致のC PU32に供給する。すると、不一致のCPU32は、投票への参加から締め出 される。前述のように、投票器エラー信号68が投票器制御部256によって受 け取られ、SMIゲート266を介してシステム管理割込(SMI)267が発 生すると、再同期プロセスが開始される。SMIゲート266は、SMIイネー ブル・フリップ・フロップ264からのパルスによってイネーブルされる。SM Iイネーブル・フィリップ・フリップ264は、ソフトウエアによって、そして コマンド・デコーダおよびコントローラ262からのコマンドをイネーブルする ことによってトリガされる。リセット制御部258は、リセット・パルス (H_Reset)257を発行する。タイマ260によって、リセット・コントローラ 258は、リセット・パルス257の後、リセットされたCPU32が投票器ロ ジック252に対する制御を放棄する前に、ハード・リセット動作を実行するた めの適切な時間だけ必ず待機する。 再同期が成功し、不調のCPU32が他のCPU32との同期に復帰した場合 、システム10は、現行のアプリケーションを実行し続ける。しかしながら、シ ステム10が再同期に成功しなかった場合、ソフトウエアはPower StrobeTM機能 を開始する。代替実施形態では、タイミング・シーケンスはソフトウエアによっ て制御する場合もある。 図10は、不一致のCPU332に対する電力を停止し、復元するソフトウエ アおよびハードウエア・シーケンスを示すフロー図である。このシーケンスは、 CPU32の不一致検出202から開始する。勿論、エラーが検出されない場合 、現在実行中のソフトウエア・アプリケーションは、中断なく継続する(302 )。不一致が検出された場合(202)、図8においてステップ208ないし2 34に示すように再同期シーケンス304が開始される。再同期の成功が検証さ れた場合(304)、システム10は現行のアプリケーションに戻る。このよう にならない場合、CPU32の不一致の継続によって示されるように、Power St robeTMのシーケンス206が開始する。最初に、不一致のCPU32が投票を禁 止される(308)。次に、投票器コントローラ256は、三状態信号280を 送り、CPU入力/出力30o,30iを接地電位に設定し、CPU構成部品へ の損傷を防止するように動作する(310)。このステップの直後に、コマンド ・デコーダおよびコントローラ262からの信号が電力スイッチ22を動作させ 、不一致のCPU32から電源電圧24を除去する(312)。少なくとも5ミ リ秒の時間遅延がこれに続き(313)、その後CPU32への電源電圧24を 回復させる(314)。すると、投票器34は、投票器制御部256によってイ ネーブルされる(315)。投票器制御部256は、投票器ゲート・アレイ50 の適切なゲート53にイネーブル信号54を供給するように動作する。タイマ2 60は、リセット・パルスの後CPU32に位相ロック315を再開させる。最 後に、位相ロックが検証されると(315)、再同期サイクル(図8参 照)が開始され(218)、成功であれば、現行のアプリケーションが動作を再 開する。 前述のように、この段階において再同期が失敗し、アクティブのままのCPU 32が2つのみになった場合、第1コンピュータ11aは、故障したと見なされ 、冗長コンピュータ11bを起動し、代わりに用いる。 結論 以上特定の好適な実施形態を参照しながら、本発明について詳しく説明したが 、以下に続く請求項の精神および範囲から逸脱することなく、種々の変更や改善 も可能であることを、本発明に関連する技術における当業者は認めよう。先に開 示した種々の回路および構成部品は、読者を好適な実施形態について教育するこ とを意図したものであって、本発明または請求項の範囲を限定することを意図し たのではない。以下に続く参照符号のリストは、読者に明細書および図面におけ る本発明の要素を識別する便利な手段を提供しようとするものである。このリス トは、請求項の範囲を規定したり、狭めることを意図するものではない。 参照符号のリスト 図1 10 コンピュータ・システム用非割り込み性電力制御部 11a 第1フォールト・トレラント・コンピュータ 11b 第2の予備フォールト・トレラント・コンピュータ 12 システム・コンピュータ(I/O)バス 図2a,図2b,図2c 14 CMOS素子 16 CMOS素子への信号入力 17 CMOS素子からの信号出力 18 保護ダイオード 19 ゲート酸化物層 20 電力バス(+Vcc) 21 給電されている構成部品 22 電力スイッチ 23 帰路/接地 24 電力バスからの電源電圧 26 電力制御信号 図3 11a フォールト・トレラント・コンピュータ 12 システム(I/O)バス 20 電力(Vcc)バス 22 電力スイッチ 24 電力バスからの電源電圧 26 電力制御信号 28 インターフェース制御部 32 中央演算装置(CPU) 33i CPU入力信号 33o CPU出力信号 34 投票器−特定用途集積回路(ASIC) 35 メモリおよびシステム・バス・インターフェースへの入出力信号 35a CPUバス 36 メモリ・コントローラ−ASIC 37a システム・メモリからの出力信号 37b システムメモリへの入力信号 38 投票ステータスおよび制御回路 39a 投票ステータスおよび制御回路出力信号 39b 投票ステータスおよび制御回路入力信号 40 メモリ・インターフェース回路 41 システム・バスへの入出力信号 42 システム(I/O)バス・インターフェース回路 46 システム・メモリ 図4 45 1年当たりのシステム不調軸 47 1日当たりの部品不調軸 48a 無投票構成部品の不調率 48b 2対3投票構成部品の不調率 48c 2対4投票構成部品の不調率 図5 50 ゲート・アレイ 51 バイパスANDゲート 52 CPUデータ信号 52a〜d データ・ライン 53 第1ANDゲート・アレイ 54 投票ステータス&制御回路からのイネーブル信号 54a〜d イネーブル信号ライン 55 バイパス・ゲート・アレイ 56 バイパス信号 56a〜d バイパス信号ライン 57 第2ANDゲート・アレイ 58 第1ANDゲート 59 第2ANDゲート 60 第1ANDゲート出力 61 第2ANDゲート出力 61a バイパス・ゲート・アレイ出力 62 第2ORゲート 63 第1ORゲート 64 排他的ORゲート 65 排他的ORゲート・アレイ 66 メモリおよびバス・インターフェースへの投票データ信号 68 投票ステータスおよび制御回路への投票エラー信号 図6 100 故障検出および反応状態図 102 「4CPU一致」状態 104 1CPU信号不一致 108 「3CPU一致」状態 110 再同期開始 114 CPU再同期 116 全CPU信号一致(故障CPUなし) 122 1CPU不一致 124 1CPU故障 126 「2CPU一致」状態 128 2CPU故障 130 再同期開始 134 CPU信号不一致 136 「故障コンピュータ」状態 138 「故障コンピュータ」状態宣言 140 「冗長コンピュータへ切り替え」状態 142 冗長コンピュータ・イネーブル信号 146 CPUリセットおよびシステム再ブート 148 4CPU信号一致 図7 150 プロセッサ電力制御状態図 152 「システム電力投入」状態 154 システム・イネーブル信号 156 「CPU動作/投票イネーブル」状態 158 CPUディスエーブル・コマンド 160 「CPU強制ディスエーブル」状態 162 イネーブル動作信号 164 CPU再同期信号 166 CPU再同期信号コマンド 168 「CPU再同期」移行状態 170 電力停止コマンド(外部) 172 電力停止信号コマンド(外部) 174 「CPU停止」状態 182 電力供給CPU信号 184 電力停止CPUコンアンド(内部) 186 CPU不一致、エラーCPUディスエーブル 188 CPU再同期コマンド 192 CPU再同期コマンド 194 「CPU再同期」移行状態 196 CPU再同期信号 図8 200 ハードウエアおよびソフトウエアの再同期シーケンスのフロー図 201 再同期に用いるハードウエア 202 CPU不一致検出 203 割込サービス・ソフトウエア・プログラム 204 「未だ2つのCPUが一致しているか?」 205 再同期に用いるソフトウエア 206 システム障害 208 不一致CPUに投票を禁止する 210 システム管理割込(SMI)発生 212 SMIに応答 214 投票器を介して、全てのレジスタをメモリに書き込む。 216 投票器を介して、変更したデータ・キャッシュ・ラインをメモリ に書き込む。 218 再同期シーケンス開始 220 再同期タイプを「再同期」にセットする。 222 リセット・パルスを発生し、レジスタを既知の値にセットし、キ ャッシュの内容を破棄する。 224 全CPUに投票を許可する。 226 リセット・ベクトルにおいて実行開始 228 「リセット・タイプ?」 229 リセット・サービス・ソフトウエア 230 他のシーケンスの開始(例えば、Power StrobeTM) 232 CPU再同期 234 レジスタ復元 236 現アプリケーション・プログラムに戻る。 図9 22 電力スイッチ 24 電力バスからの電源電圧 26 電力制御信号 28 インターフェース制御部 32 CPU 33 CPU入力/出力 33a データ・バス 33b アドレス・バス 33c ハンドシェーク(制御)バス 34 投票器 35a 投票データ・バス 35b 投票アドレス・バス 35c 投票ハンドシェーク(制御)バス) 38 投票ステータスおよび制御回路 40 メモリ・インターフェース回路 66 投票データ 68 投票エラー 250 電力制御システムのブロック図 252 投票ロジック 254 投票器ステータス回路 255 投票器ステータス信号 256 投票器コントローラ 257 ハード・リセット信号 258 リセット・コントローラ 259 アドレス・デコーダおよびバス・サイクル・コントローラ 260 タイマ 262 コマンド・デコーダおよびコントローラ 264 システム管理割込(SMI)イネーブル・フリップ・フロップ 266 SMIゲート 267 CPUへのSMI信号 270 投票アドレス信号 272 投票ハンドシェーク信号 280 バイパス/イネーブル/三状態信号 図10 202 CPU不一致検出 218 再同期ソフトウエア起動 236 アプリケーション・ソフトウエア・プログラムに戻る 300 電力制御フロー図 302 アプリケーション・ソフトウエア継続 304 再同期開始/成功検証 306 Power StrobeTMシーケンス起動 308 不一致のCPUの投票禁止 310 投票器制御インターフェースはCPU I/Oを接地電位に設定す る 312 CPU電力停止 313 少なくとも5ms遅らせる 314 CPU電力投入 315 投票制御部イネーブル、CPU位相ロック待機、CPU一致検証
───────────────────────────────────────────────────── 【要約の続き】 ステム・ロジックは、全てのCPU(32)を再同期さ せるか、故障したCPU(32)の電力を停止するか、 または予備のコンピュータ(11b)に切り替え、リセ ットして代わりのCPU(32)を再ブートすることに よって、検出した障害から回復する最良の機会を選択す る。

Claims (1)

  1. 【特許請求の範囲】 1.非割り込み電力制御装置であって、 同期的にソフトウエア・アプリケーションを実行する複数の中央演算装置(C PU)(32)であって、該複数のCPU(32)の各々の各動作ステップが、 前記CPU(32)の各クロック・サイクル毎に、前記複数のCPU(32)の 残りの各々と並列にかつ実質的に同時に行われ、各1つが入力(33i)および 出力(33o)を有する、該複数のCPU(32)と、 投票出力(35)を有する投票器(34)であって、該投票器(34)は、前 記複数のCPU(32)の各々に結合され、前記CPU出力(33o)を受け取 り、前記CPU出力(33o)の冗長投票を用いて、前記複数のCPU(32) の過半数とはCPU出力(33o)が一致しない出力(33o)を有する前記複 数のCPU(32)のいずれにおける故障をも検出し、各前記クロック・サイク ル毎に各前記CPU出力(33o)を互いに比較する、該投票器(34)と、 電源電圧(24)を前記複数のCPU(32)の各々に供給する電力バス(2 0)であって、前記電力バス(20)は、前記複数のCPU(32)の各々に接 続されており、潜在的に破壊的可能性のある故障が不良化CPU(32)におい て前記投票器(34)によって検出された場合、前記実行中のソフトウエア・ア プリケーションを終了することなく、前記不良化CPU(32)から前記電源電 圧(24)を除去し、前記CPU入力(33i)を前記不良化CPU(32)に 制限する、該電力バス(20)と、 を備えることを特徴とする非割り込み電力制御装置。 2.請求項1記載の装置において、前記CPU入力(33i)を接地電位に置く ことによって制限し、前記電源電圧(24)を前記CPU(32)から除去する 場合に、前記CPU(32)への損傷を防止することを特徴とする装置。 3.請求項1記載の装置において、前記不良化CPU(32)から帰路/接地( 23)を除去し、前記CPU(33i)を前記電源電圧に置くことによって、前 記CPU入力(33i)を制限することを特徴とする装置。 4.請求項1記載の装置において、前記複数のCPU(32)の数が少なくとも 3つであることを特徴とする装置。 5.請求項1記載の装置において、前記複数のCPU(32)が、縮小命令セッ トCPU(RISC)であることを特徴とする装置。 6.請求項1記載の装置であって、更に、 前記電力バス(20)と前記複数のCPU(32)の各1つとの間に電気的に 介挿されている電力スイッチ(22)であって、前記インターフェース制御部( 28)に結合され、そこから信号(26)を受け取る、該電力スイッチ(22) を備え、 前記電力スイッチ(22)が、前記インターフェース制御部(28)から前記 信号(26)を受け取ったとき、前記複数のCPU(32)の各1つへの前記電 源電圧(24)を接続しかつ除去することが可能であり、 前記インターフェース制御部(28)が、前記信号(26)を前記電力スイッ チ(22)に供給することにより、前記CPU(32)の1つにおける前記故障 に反応し、前記電源電圧(24)がこれによって除去され、同時に前記CPU入 力(33i)を調節して前記CPU(32)への損傷を防止し、前記実行中のソ フトウエア・アプリケーションが動作を継続可能とする、 ことを特徴とする装置。 7.請求項6記載の装置であって、更に、 システム・バス(12)と、 第1コンピュータ(11a)であって、前記複数のCPU(32)と、前記投 票器(34)と、前記インターフェース回路(28)と、前記電力スイッチ(2 2)と前記結合とを含み、前記システム・バス(12)に結合されている該第1 コンピュータ(11a)と、 を備え、 前記第1コンピュータ(11a)が、更に、 システム・メモリ(46)と、 前記投票器(34)と、前記メモリ(46)と、前記システム・コンピュータ ・バス(12)とに結合されているメモリ・コントローラ(36)とを含み、 前記装置が、更に、第2コンピュータ(11b)であって、前記第1コンピュ ータ(11a)と実質的に同一である前記第2コンピュータを備え、 前記第2コンピュータ(11b)が前記システム・バス(12)に結合され、 前記第1コンピュータ(11a)のために、エラーのない予備として維持され、 前記メモリ・システム(46)がメモリ出力信号(37a)を前記メモリ・コ ントローラ(36)に供給し、前記メモリ出力信号(37a)が、前記メモリ・ コントローラ(36)および前記投票器(34)を介して、前記複数のCPU( 32)の各々への前記CPU入力(33i)として等しく分配され、 前記投票器(34)において前記CPU出力(33o)の過半数が一致した場 合、前記投票出力信号(35)は、前記過半数の前記CPU出力(33o)の値 を有し、 前記CPU出力(33o)の過半数と一致しないいずれの前記CPU出力(3 3o)も前記投票器(34)によって検出され、これによってエラー信号が生成 され、前記エラー信号が、前記コンピュータ(11a)において、前記複数のC PU(32)の再同期(130)を促進する、 ことを特徴とする装置。 8.請求項7記載の装置において、前記複数のCPU32の内エラーのないもの が2つ未満である場合に、前記投票器(34)に供給されるCPU出力(33o )が不一致の場合、前記第1コンピュータ(11a)を前記第2コンピュータ( 11b)と交換することを特徴とする装置。 9.請求項7記載の装置において、前記再同期(130)、前記電源電圧(24 )の除去、および前記CPU入力(33i)の制限が、前記複数のCPU(32 )によって実行されるソフトウエア(205)によって制御されることを特徴と する装置。 10.請求項7記載の装置において、前記CPU(32)の内一致するものが2 つ未満である場合、前記第1コンピュータ(11a)を前記第2コンピュータ( 11b)と交換することを特徴とする装置。 11.請求項7記載の装置において、前記複数のCPU(32)の2つが故障を 発生した場合、前記第1コンピュータ(11a)を前記第2コンピュータ(11 b)と交換することを特徴とする装置。 12.請求項10記載の装置において、前記複数のCPU(32)の各1つが、 イネーブルおよび投票、強制ディスエーブル、不一致およびディスエーブル、迂 回、ならびに電力停止から成る安定状態の1つにあることを特徴とする装置。 13.非割り込み電力制御装置であって、 同期的にソフトウエア・アプリケーションを実行する複数の中央演算装置(C PU)(32)を有する第1コンピュータ(11a)であって、該複数のCPU (32)の各々の各動作ステップが、前記CPU(32)のCPUクロック・サ イクル毎に、前記複数のCPU(32)の残りの各々と並列にかつ実質的に同時 に行われ、前記複数のCPU(32)の各1つが入力(33i)および出力(3 3o)を有する、該第1コンピュータ(11a)と、 双方向システム・バス(12)と、 を備え、 前記コンピュータ(11a)が更に、 投票器(34)であって、インターフェース制御回路(28)を有し、かつ投 票出力(35)を有する、該投票器(34)を含み、 前記投票器(34)には放射線耐性があり、 メモリ(46)と、 投票ステータスおよび制御回路(38)と、メモリ・インターフェース(40 )と、システム・バス・インターフェース(42)とを有するメモリ・コントロ ーラ(36)と、 を備え、 前記投票器(36)が、前記システム・バス・インターフェース(42)を介 して前記双方向システム・バス(12)に結合されており、 前記メモリ・コントローラ(36)が、前記システム・バス・インターフェー ス(42)を介して前記システム・バス(12)に結合された前記投票器(34 )に結合され、更に、前記メモリ・インターフェース(40)を介して前記メモ リ(46)に結合されており、 前記メモリ(46)が、メモリ出力信号(37a)を前記メモリ・コントロー ラ(36)に供給し、前記メモリ出力信号(37a)が、前記メモリ・コントロ ーラ(36)および前記投票器(34)を介して、前記複数のCPU(32)の 各々への前記CPU入力(33i)として等しく分配され、 前記複数のCPU(32)の各々が、前記CPU出力(33o)を、比較のた めに前記投票器(34)に入力として供給し、前記投票器(34)が前記CPU 出力(33o)を比較し、前記投票器(34)が前記投票出力(35)を前記シ ステム・メモリ(46)、前記投票ステータスおよび制御回路(38)ならびに 前記システム双方向バス(12)への入力(37b)として供給し、 前記第1コンピュータ(11a)と実質的に同等な第2のエラーのないコンピ ュータ(11b)を備え、 前記投票器(34)に供給された前記CPU出力(33o)の過半数が一致し た場合、前記投票出力(35)は、前記過半数の前記CPU出力信号(33o) の値を有し、 前記CPU出力(33o)の過半数と一致しない前記CPU出力(33o)が 前記投票器(34)によって検出され、これによってエラー信号(68)が生成 され、該エラー信号(68)が、前記投票ステータスおよび制御回路(38)へ の入力(39b)として送られ、 前記投票ステータスおよび制御回路(38)が、前記エラー信号(68)に反 応して、前記複数のCPU(32)の再同期を促進し、 前記不一致が永続的であり、不良化CPU(32)において潜在的に破壊的な 可能性がある故障状態を示す場合、前記投票ステータスおよび制御回路(38) が前記エラー信号(68)に反応し、前記インターフェース制御回路(28)に 、前記実行中のソフトウエア・アプリケーションを終了することなく、前記CP U(32)の異常なものから前記電源電圧(24)を除去し、前記CPU入力( 33i)をほぼ接地電位に制限するように促進し、 前記複数のCPU(32)の内、エラーのないものが2つ未満となった場合、 前記投票ステータスおよび制御回路(38)が前記エラー信号(68)に反応し 、機能不全となった前記第1コンピュータ(11a)を前記エラーのない第2コ ンピュータ(11b)と交換する、 ことを特徴とする非割り込み電力制御装置。 14.請求項13記載の装置において、前記複数のCPU(32)の数が少なく とも3つであることを特徴とする装置。 15.請求項13記載の装置において、前記複数のCPU(22)が、市販の放 射線強化されていないチップであることを特徴とする装置。 16.請求項13記載の装置において、前記複数のCPU(32)が、縮小命令 セットCPU(RISC)であることを特徴とする装置。 17.請求項13記載の装置において、前記複数のCPU(32)の各1つが、 イネーブルおよび投票、強制ディスエーブル、不一致およびディスエーブル、迂 回、ならびに電力停止から成る安定状態の1つにあることを特徴とする装置。 18.非割り込み電力制御方法であって、 同期的にソフトウエア・アプリケーションを実行する複数の中央演算装置(C PU)(32)を動作させるステップであって、該複数のCPU(32)の各々 の各動作ステップを、前記CPU(32)の各クロック・サイクル毎に、前記複 数のCPU(32)の残りの各々と並列にかつ実質的に同時に行い、前記複数の CPU(32)の各1つが入力(33i)および出力(33o)を有する、ステ ップと、 前記複数のCPU(32)の各1つに電力バス(20)を接続し、該電力バス (20)から前記複数のCPU(32)の各々に電源電圧(24)を供給するス テップと、 前記複数のCPU(32)および前記電力バス(20)にインターフェース制 御回路(281を結合し、前記インターフェース制御回路(28)が前記CPU 出力(33o)を受け取り、前記CPU入力(33i)を供給するステップと、 前記複数のインターフェース制御回路(28)の各々に投票ロジック(252 )を結合し、前記CPU出力(33o)を受け取り、前記CPU入力(33i) に前記投票ロジック(252)を供給するステップと、 各前記クロック・サイクル毎に前記投票ロジック(252)において前記CP U出力(33o)の各々を互いに比較し、前記投票ロジック(252)から投票 出力(35)を得るステップと、 前記複数のCPU(32)の過半数とはCPU出力(33o)が一致しない出 力(33o)を有する前記複数のCPU(32)の各々において故障を検出し、 前記投票ロジック(252)内において冗長投票を用いるステップと、 前記投票ロジック(252)によって潜在的に破壊的可能性のある前記故障が 前記複数のCPU(32)の1つにおいて検出された場合、前記インターフェー ス制御回路(28)によって、不一致の前記複数のCPU(32)の前記1つか ら前記電源電圧(24)を除去し、かつ前記不一致のCPU(32)の前記CP U入力(33i)を接地電位に調節するステップと、 前記実行中のソフトウエア・アプリケーションを終了させずに前記電源電圧( 24)を前記CPU(32)から除去する場合、前記インターフェース制御部( 28)によって前記CPU入力(33)を制限し、前記CPU(32)への損傷 を防止するステップと、 から成ることを特徴とする方法。 19.請求項18記載の方法であって、更に、 前記電力バスと前記複数のCPU(32)の各1つとの間に電力スイッチ(2 2)を電気的に介挿し、前記電力スイッチ(22)を前記インターフェース制御 部(28)に接続し、そこから信号(26)を受け取るステップと、 前記電力スイッチ(22)が前記インターフェース制御部(28)から前記信 号(26)を受け取ったときに、前記電源電圧(24)を前記複数のCPU(3 2)の各1つに接続および除去するステップと、 前記複数のCPU(32)の各々における前記故障に反応して、前記インター フェース回路(28)から前記電力スイッチ(22)に前記信号(26)を供給 し、前記電源電圧(24)を除去し、同時に前記CPU入力(33i)を調節し て前記複数のCPUの各々への損傷を防止し、前記複数のCPUの前記無故障C PUに、実行中のソフトウエア・アプリケーションに影響を及ぼすことなく、動 作を継続させるステップと、 を含むことを特徴とする方法。 20.請求項19記載の方法において、複数のCPU(32)を動作させる前記 ステップが、少なくとも3つのCPU(32)を動作させるステップを含むこと を特徴とする方法。 21.請求項19記載の方法において、複数のCPU(32)を動作させる前記 ステップが、市販の放射線強化されていないチップである前記CPU(32)を 動作させるステップを含むことを特徴とする方法。 22.請求項19記載の方法において、複数のCPU(32)を動作させる前記 ステップが、縮小命令セットCPU(RISC)(32)である前記CPU(32 )を動作させるステップを含むことを特徴とする方法。 23.請求項19記載の方法であって、更に、 システム・バス(12)を用意するステップと、 第1コンピュータ(11a)を用意するステップであって、該第1コンピュー タ(11a)が、前記複数のCPU(32)と、前記投票ロジック(252)と 、前記インターフェース制御部(28)と、前記電力スイッチ(22)と、前記 結合部とを含む、ステップと、 前記第1コンピュータ(11a)を前記システム・バス(12)に結合するス テップと、 前記第1コンピュータ(11a)内に、 システム・メモリ(46)と、 メモリ・コントローラ(36)と、 を更に備えるステップと、 前記メモリ・コントローラ(36)を前記投票ロジック(252)、前記シス テム・メモリ(46)および前記システム・バス(12)に結合するステップと 、 前記第1コンピュータ(11a)と実質的に同一の第2コンピュータ(11b )を用意するステップと、 前記第2コンピュータ(11b)を前記システム・バス(12)に結合し、前 記第2コンピュータ(11b)を、前記第1コンピュータ(11a)のための、 エラーのない予備として維持するステップと、 前記システム・メモリ(46)によって前記メモリ・コントローラ(36)に メモリ出力(37a)を供給し、前記メモリ・コントローラ(36)および前記 投票ロジック(252)を介して、前記メモリ出力(37a)を前記複数のCP U(32)の各々に等しく、前記CPU入力(33i)として分配するステップ と、 前記投票ロジック(252)における前記CPU出力(33o)の過半数の一 致により、前記CPU出力(33o)の過半数の値を有する投票出力信号(35 )を得るステップと、 前記投票ロジック(252)において、前記CPU出力(33o)の過半数と は不一致のあらゆる前記CPU出力(33o)を検出し、これによりエラー信号 (68)を生成するステップと、 前記エラー信号(68)による促進時に、前記第1コンピュータ(11a)に おいて前記複数のCPU(32)を再同期するステップ(130)と、 前記不一致の永続によりラッチアップ状態が示された場合、前記電源電圧(2 4)を前記CPU(32)の内不一致のものから除去し、同時に前記不一致のC PU(32)への前記CPU入力(33i)を調節し、損傷を防止するステップ と、 を含むことを特徴とする方法。 24.請求項23記載の方法であって、更に、前記CPU(32)の内エラーの ないものが2つ未満である場合、前記投票ロジック(252)に前記CPU出力 (33o)の不一致が供給されたときに、前記第1コンピュータ(11a)を前 記第2コンピュータ(11b)と交換するステップを含むことを特徴とする方法 。 25.請求項24記載の方法において、前記CPU(32)を再同期する前記ス テップ、前記電源電圧(24)を除去するステップと、および前記第1コンピュ ータ(11a)を前記第2コンピュータ(11b)と交換するステップが、前記 複数のCPU(32)によって実行されるソフトウエアによって制御されること を特徴とする方法。 26.請求項24記載の方法であって、更に、前記複数のCPU(32)の少な くとも2つが故障を発生した場合、前記前記第1コンピュータ(11a)を前記 第2コンピュータ(11b)と交換するステップを含むことを特徴とする方法。 27.請求項26記載の方法において、前記複数のCPU(32)の各1つが、 イネーブルおよび投票、強制ディスエーブル、不一致およびディスエーブル、迂 回、ならびに電力停止から成る安定状態の1つにあることを特徴とする方法。 28.コンピュータ・システム用非割り込み電力管理方法であって、 システム・バス(12)を用意するステップと、 複数の中央演算装置(CPU)(32)を有するコンピュータ(11a)を用 意するステップであって、前記複数の中央演算装置(32)がCPU入力(33 i)およびCPU出力(33o)を有する、ステップと、 同期的にソフトウエア・アプリケーションを走らせる複数の中央演算装置(C PU)(32)を動作させるステップであって、該複数のCPU(32)の各々 の各動作ステップを、前記CPU(32)の各CPUクロック・サイクル毎に、 前記複数のCPU(32)の残りの各々と並列にかつ実質的に同時に行うステッ プと、 前記コンピュータ(11a)において、投票出力(35)を有する投票器(3 4)を用意するステップであって、 該投票器(34)が放射線耐性であり、 前記投票器(34)を前記CPU出力(33o)の各々に結合するステップと 、 メモリ(46)を用意するステップと、 投票ステータスおよび制御回路(38)、メモリ・インターフェース(40) およびシステム・バス・インターフェース(42)を有するメモリ・コントロー ラ(36)を用意するステップと、 前記メモリ・コントローラ(36)を、前記投票器(34)に、前記バス・イ ンターフェース(42)を介して前記システム・バス(12)に、および前記メ モリ・インターフェース(40)を介して前記メモリ(46)に結合するステッ プと、 前記メモリ(46)から前記メモリ・コントローラ(36)にメモリ出力(3 7a)を供給し、前記メモリ・コントローラ(36)および前記投票器(34) を介して前記メモリ出力(37a)を前記複数のCPU(32)の各々に等しく 、入力(33i)として分配するステップと、 前記複数のCPU(32)の各々からのCPU出力(33o)を比較のために 前記投票器(34)に入力として供給するステップと、 前記投票器(34)において前記CPU出力(33o)を比較するステップと 、 前記投票器(34)からの前記投票出力(35)を前記システム・メモリ(4 6)、前記投票ステータスおよび制御回路(38)および前記システム・コンピ ュータ・バス(32)に入力(37b)として供給するステップと、 前記投票器(34)に供給した前記CPU出力(33o)の過半数が一致する 場合、前記投票出力(35)が前記CPU出力(33o)の前記過半数の値を有 するステップと、 前記投票器(34)によって、前記CPU出力(33o)の過半数とは不一致 の前記CPU出力(33o)を検出し、これによりエラー信号(68)を生成す るステップと、 前記エラー信号(68)を前記投票ステータスおよび制御回路(38)に送る ステップと、 前記CPU出力(33o)の不一致が検出された場合、前記複数のCPU(3 2)を前記投票ステータスおよび制御回路(36)と再同期させるステップと、 前記不一致がラッチアップ状態を示す場合、前記CPU(32)の不一致のも のから前記電源電圧(24)を除去し、前記実行中のソフトウエア・アプリケー ションを終了することなく、同時に前記不一致のCPU(32)において前記C PU入力(33i)を接地電位に調節するステップと、 から成ることを特徴とする方法。 29.請求項28記載の方法であって、更に、前記CPU(32)の内エラーの ないものが2つ未満である場合、前記投票ステータスおよび制御回路(36)の 作用によって、故障した前記第1コンピュータ(11a)をエラーのないコンピ ュータ(11b)と交換するステップを含むことを特徴とする方法。 30.請求項29記載の方法であって、更に、少なくとも2つの前記RIS C PU(32)が故障した場合、故障した前記コンピュータ(11a)を、エラー のないコンピュータ(11b)と交換するステップを含むことを特徴とする方法 。 31.請求項1記載のシステム(10)において、前記複数のCPU(32)が 、市販の放射線強化されていないチップであることを特徴とするシステム。
JP54806698A 1997-05-07 1998-03-31 コンピュータ・システム用非割り込み電力制御 Pending JP2001526809A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/852,487 1997-05-07
US08/852,487 US5923830A (en) 1997-05-07 1997-05-07 Non-interrupting power control for fault tolerant computer systems
PCT/US1998/006341 WO1998050856A1 (en) 1997-05-07 1998-03-31 Non-intrusive power control for computer systems

Publications (1)

Publication Number Publication Date
JP2001526809A true JP2001526809A (ja) 2001-12-18

Family

ID=25313474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54806698A Pending JP2001526809A (ja) 1997-05-07 1998-03-31 コンピュータ・システム用非割り込み電力制御

Country Status (8)

Country Link
US (2) US5923830A (ja)
EP (1) EP0980546A4 (ja)
JP (1) JP2001526809A (ja)
KR (1) KR20010012310A (ja)
CN (1) CN1255211A (ja)
IL (1) IL132724A0 (ja)
TW (1) TW432278B (ja)
WO (1) WO1998050856A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1615134A2 (en) 2004-07-05 2006-01-11 Sony Corporation System and method for distributing processing among a plurality of processors based on information regarding the temperature of each processor
JP2006040063A (ja) * 2004-07-28 2006-02-09 Toshiba Corp 情報処理装置および情報処理装置のsmi処理方法
JP2014109453A (ja) * 2012-11-30 2014-06-12 Renesas Electronics Corp 半導体装置
WO2017042894A1 (ja) * 2015-09-08 2017-03-16 株式会社東芝 多重化処理システム、多重化処理方法及びプログラム

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141769A (en) * 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US5923830A (en) * 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
US6122747A (en) * 1997-09-05 2000-09-19 First Pass Inc. Intelligent subsystem interface for modular hardware system
US6112315A (en) * 1997-09-24 2000-08-29 Nortel Networks Corporation Process and apparatus for reducing software failures using sparing in distributed systems
US6088329A (en) * 1997-12-11 2000-07-11 Telefonaktiebolaget Lm Ericsson Fault tolerant subrate switching
US6173351B1 (en) * 1998-06-15 2001-01-09 Sun Microsystems, Inc. Multi-processor system bridge
US6973560B1 (en) 1999-07-16 2005-12-06 Lamarck, Inc. Fault tolerant and combinatorial software environment system, method and medium
US6634019B1 (en) 1999-07-16 2003-10-14 Lamarck, Inc. Toggling software characteristics in a fault tolerant and combinatorial software environment system, method and medium
US6675324B2 (en) * 1999-09-27 2004-01-06 Intel Corporation Rendezvous of processors with OS coordination
US6191499B1 (en) * 1999-10-13 2001-02-20 International Business Machines Corporation System and method for providing voltage regulation to a multiple processor
US6732300B1 (en) 2000-02-18 2004-05-04 Lev Freydel Hybrid triple redundant computer system
US6550018B1 (en) * 2000-02-18 2003-04-15 The University Of Akron Hybrid multiple redundant computer system
CN1129867C (zh) * 2000-03-17 2003-12-03 杭州中正生物认证技术有限公司 指纹硬盘
US6661631B1 (en) * 2000-09-09 2003-12-09 Stmicroelectronics, Inc. Automatic latchup recovery circuit for fingerprint sensor
US6504411B2 (en) 2000-11-02 2003-01-07 Intersil Americas Inc. Redundant latch circuit and associated methods
US6563347B2 (en) 2000-11-20 2003-05-13 Intersil Americas Inc. Redundant comparator design for improved offset voltage and single event effects hardness
US6545481B1 (en) 2000-11-20 2003-04-08 International Business Machines Corporation Power interruption detection
US6525590B2 (en) 2001-02-01 2003-02-25 Intersil Americas Inc. Spatially redundant and complementary semiconductor device-based, single event transient-resistant linear amplifier circuit architecture
US6704887B2 (en) * 2001-03-08 2004-03-09 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for improved security in distributed-environment voting
US6799285B2 (en) * 2001-03-19 2004-09-28 Sun Microsystems, Inc. Self-checking multi-threaded processor
US6950893B2 (en) * 2001-03-22 2005-09-27 I-Bus Corporation Hybrid switching architecture
US7065672B2 (en) * 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
US6839866B2 (en) * 2001-05-31 2005-01-04 Sycamore Networks, Inc. System and method for the use of reset logic in high availability systems
US6993677B1 (en) * 2001-06-14 2006-01-31 Lsi Logic Corporation System and method for data verification in a RAID system
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
US6931576B2 (en) * 2002-01-07 2005-08-16 Sun Microsystems, Inc. Data integrity device providing heightened error protection in a data processing system
US6687791B2 (en) * 2002-01-07 2004-02-03 Sun Microsystems, Inc. Shared cache for data integrity operations
JP2003316599A (ja) * 2002-02-22 2003-11-07 Seiko Epson Corp 集積回路
JP3982353B2 (ja) * 2002-07-12 2007-09-26 日本電気株式会社 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US6667520B1 (en) * 2002-11-21 2003-12-23 Honeywell International Inc. SEU hard majority voter for triple redundancy
DE10328059A1 (de) * 2003-06-23 2005-01-13 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung eines verteilten Systems
US7209809B2 (en) * 2003-10-15 2007-04-24 The Boeing Company Method and apparatus for obtaining high integrity and availability in multi-channel systems
US7134104B2 (en) * 2003-12-05 2006-11-07 International Business Machines Corporation Method of selectively building redundant logic structures to improve fault tolerance
CN1294488C (zh) * 2003-12-31 2007-01-10 英业达股份有限公司 多处理器计算机系统的开机切换方法
JP4318211B2 (ja) * 2004-03-08 2009-08-19 富士通株式会社 高信頼システム、冗長構成制御方法及びプログラム
US20050216131A1 (en) * 2004-03-24 2005-09-29 Sodemann Wesley C Residential load power management system
US8050176B2 (en) * 2004-03-30 2011-11-01 The Boeing Company Methods and systems for a data processing system having radiation tolerant bus
US7392426B2 (en) * 2004-06-15 2008-06-24 Honeywell International Inc. Redundant processing architecture for single fault tolerance
US7356384B2 (en) * 2004-07-15 2008-04-08 Briggs & Stratton Corporation Load management system
US7404105B2 (en) * 2004-08-16 2008-07-22 International Business Machines Corporation High availability multi-processor system
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
US7516359B2 (en) * 2004-10-25 2009-04-07 Hewlett-Packard Development Company, L.P. System and method for using information relating to a detected loss of lockstep for determining a responsive action
US7624302B2 (en) * 2004-10-25 2009-11-24 Hewlett-Packard Development Company, L.P. System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
US7627781B2 (en) * 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
US7971095B2 (en) * 2005-02-16 2011-06-28 Honeywell International Inc. Fault recovery for real-time, multi-tasking computer system
US7397395B2 (en) * 2005-02-16 2008-07-08 Intel Corporation Representative majority voter for bus invert coding
JP2006228121A (ja) * 2005-02-21 2006-08-31 Toshiba Corp 演算処理装置
US20060236168A1 (en) * 2005-04-01 2006-10-19 Honeywell International Inc. System and method for dynamically optimizing performance and reliability of redundant processing systems
JP2008537265A (ja) * 2005-04-21 2008-09-11 ヴァイオリン メモリー インコーポレイテッド 相互接続システム
US8112655B2 (en) * 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9384818B2 (en) * 2005-04-21 2016-07-05 Violin Memory Memory power management
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
WO2007018651A1 (en) * 2005-08-05 2007-02-15 Honeywell International, Inc. Method for redunancy management of distributed and recoverable digital control system
WO2007018652A1 (en) * 2005-08-05 2007-02-15 Honeywell International, Inc. Distributed and recoverable digital control system
US7765427B2 (en) * 2005-08-05 2010-07-27 Honeywell International Inc. Monitoring system and methods for a distributed and recoverable digital control system
US7907378B2 (en) * 2005-10-20 2011-03-15 Microchip Technology Incorporated Automatic detection of a CMOS device in latch-up and cycling of power thereto
JP4602246B2 (ja) * 2005-12-28 2010-12-22 株式会社東芝 半導体集積回路
US7421601B2 (en) * 2006-02-17 2008-09-02 International Business Machines Corporation Method and system for controlling power in a chip through a power-performance monitor and control unit
US20070220369A1 (en) * 2006-02-21 2007-09-20 International Business Machines Corporation Fault isolation and availability mechanism for multi-processor system
US7788205B2 (en) * 2006-05-12 2010-08-31 International Business Machines Corporation Using stochastic models to diagnose and predict complex system problems
US7349826B2 (en) * 2006-05-23 2008-03-25 International Business Machines Corporation Causal ladder mechanism for proactive problem determination, avoidance and recovery
US7793147B2 (en) * 2006-07-18 2010-09-07 Honeywell International Inc. Methods and systems for providing reconfigurable and recoverable computing resources
JP5087884B2 (ja) * 2006-08-11 2012-12-05 富士通セミコンダクター株式会社 データ処理ユニット、およびこれを使用したデータ処理装置
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
DE102006055867A1 (de) * 2006-11-23 2008-06-05 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Integrierte Schaltung mit Strahlungsschutz
US8112597B2 (en) * 2006-12-08 2012-02-07 Microsoft Corporation Critical memory
US7949841B2 (en) * 2006-12-08 2011-05-24 Microsoft Corporation Protection of critical memory using replication
JP4822000B2 (ja) * 2006-12-12 2011-11-24 日本電気株式会社 フォールトトレラントコンピュータ
US7428473B2 (en) * 2007-02-07 2008-09-23 Honeywell International Inc. Health monitoring in a system of circumvention and recovery
US7657785B2 (en) * 2007-02-07 2010-02-02 Honeywell International Inc. System of circumvention and recovery in a multi-function system
US7694187B2 (en) * 2007-02-07 2010-04-06 Honeywell International Inc. Method of peripheral type identification in a system of circumvention and recovery
US7805545B2 (en) * 2007-02-07 2010-09-28 Honeywell International Inc. Method for implementing a control channel in a system of circumvention and recovery
US7761721B2 (en) * 2007-04-12 2010-07-20 Honeywell International Inc. System of integrated environmentally hardened architecture for space application
JP4491479B2 (ja) * 2007-09-27 2010-06-30 株式会社日立製作所 分散制御システム
US20110099421A1 (en) * 2009-09-30 2011-04-28 Alessandro Geist Radiation-hardened hybrid processor
US20110078498A1 (en) * 2009-09-30 2011-03-31 United States Of America As Represented By The Administrator Of The National Aeronautics And Spac Radiation-hardened hybrid processor
EP2442229A1 (en) * 2010-07-28 2012-04-18 Siemens Aktiengesellschaft High reliability method of data processing, and controller unit
CN103154670B (zh) * 2010-10-20 2016-02-24 皇家飞利浦电子股份有限公司 用于识别电气网络中的耗电器的分解装置和分解方法
US8635492B2 (en) 2011-02-15 2014-01-21 International Business Machines Corporation State recovery and lockstep execution restart in a system with multiprocessor pairing
US8930752B2 (en) 2011-02-15 2015-01-06 International Business Machines Corporation Scheduler for multiprocessor system switch with selective pairing
US8671311B2 (en) 2011-02-15 2014-03-11 International Business Machines Corporation Multiprocessor switch with selective pairing
US9058291B2 (en) 2011-02-28 2015-06-16 International Business Machines Corporation Multiple erasure correcting codes for storage arrays
US8433979B2 (en) 2011-02-28 2013-04-30 International Business Machines Corporation Nested multiple erasure correcting codes for storage arrays
CN102193835B (zh) * 2011-03-25 2013-01-30 上海磁浮交通发展有限公司 基于3取2计算机系统的预执行方法
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
US8874995B2 (en) 2012-02-02 2014-10-28 International Business Machines Corporation Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
WO2013130106A1 (en) * 2012-03-02 2013-09-06 Hewlett-Packard Development Company, L.P. Versioned memories using a multi-level cell
US9104639B2 (en) 2012-05-01 2015-08-11 SEAKR Engineering, Inc. Distributed mesh-based memory and computing architecture
US9135126B2 (en) * 2013-02-07 2015-09-15 International Business Machines Corporation Multi-core re-initialization failure control system
DE102013202253A1 (de) * 2013-02-12 2014-08-14 Paravan Gmbh Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs
KR101978984B1 (ko) * 2013-05-14 2019-05-17 한국전자통신연구원 프로세서의 오류를 검출하는 장치 및 방법
US9529058B2 (en) 2014-04-18 2016-12-27 International Business Machines Corporation Testing a multi-phase voltage regulator module
CN106033365A (zh) * 2015-03-18 2016-10-19 中兴通讯股份有限公司 电子设备的启动方法和装置
JP6494368B2 (ja) * 2015-03-30 2019-04-03 キヤノン株式会社 固体撮像装置およびカメラ
US10886723B2 (en) 2015-07-31 2021-01-05 Harris Corporation Adaptive single event latchup (SEL) current surge mitigation
US9960593B2 (en) 2015-07-31 2018-05-01 Harris Corporation Single event latchup (SEL) current surge mitigation
CN105183506A (zh) * 2015-08-17 2015-12-23 山东超越数控电子有限公司 一种解决s3唤醒时pci设备寄存器掉电重置的方法
CN109419533B (zh) * 2017-08-28 2022-01-28 深圳市理邦精密仪器股份有限公司 监护仪及其界面切换方法、装置
CN108153648B (zh) * 2017-12-27 2021-04-20 西安奇维科技有限公司 一种实现灵活调度的多冗余计算机的方法
US10713118B2 (en) * 2018-03-09 2020-07-14 Hamilton Sundstand Corporation Single event latchup recovery with state protection
CN108519891B (zh) * 2018-03-15 2021-01-19 中广核工程有限公司 一种核电站设备结构优选装置及处理方法
US10628277B2 (en) * 2018-03-29 2020-04-21 Arm Ltd. Device, system and process for redundant processor error detection
US11205031B2 (en) * 2019-02-25 2021-12-21 Qiang Huang System and method for facilitating use of commercial off-the-shelf (COTS) components in radiation-tolerant electronic systems
US10990727B1 (en) * 2020-09-10 2021-04-27 Bae Systems Information And Electronic Systems Integration Inc. Method for radiation hardening of integrated circuits
CA3136322A1 (en) * 2020-12-02 2022-06-02 The Boeing Company Debug trace streams for core synchronization
LU102471B1 (en) * 2021-01-29 2022-08-09 Univ Luxembourg Radiation induced fault self-protecting circuits and architectures
CN113485391B (zh) * 2021-06-08 2024-02-23 北京控制工程研究所 一种基于优先级序列的敏感器自主管理方法
CN113741250B (zh) * 2021-08-16 2024-03-26 辽宁荣信电力电子技术有限公司 一种用于svg的冗余控制系统及方法
TWI795991B (zh) * 2021-11-10 2023-03-11 神雲科技股份有限公司 資料同步方法
CN114978874B (zh) * 2022-07-22 2022-10-21 浙江中控技术股份有限公司 一种多重化热备冗余系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4015246A (en) * 1975-04-14 1977-03-29 The Charles Stark Draper Laboratory, Inc. Synchronous fault tolerant multi-processor system
US4751639A (en) * 1985-06-24 1988-06-14 Ncr Corporation Virtual command rollback in a fault tolerant data processing system
US4799140A (en) * 1986-03-06 1989-01-17 Orbital Sciences Corporation Ii Majority vote sequencer
US4967347A (en) * 1986-04-03 1990-10-30 Bh-F (Triplex) Inc. Multiple-redundant fault detection system and related method for its use
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US4926281A (en) * 1989-02-27 1990-05-15 Triplex Fail-safe and fault-tolerant alternating current output circuit
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
CA2059143C (en) * 1991-01-25 2000-05-16 Takeshi Miyao Processing unit for a computer and a computer system incorporating such a processing unit
CA2068048A1 (en) * 1991-05-06 1992-11-07 Douglas D. Cheung Fault tolerant processing section with dynamically reconfigurable voting
US5233615A (en) * 1991-06-06 1993-08-03 Honeywell Inc. Interrupt driven, separately clocked, fault tolerant processor synchronization
US5572620A (en) * 1993-07-29 1996-11-05 Honeywell Inc. Fault-tolerant voter system for output data from a plurality of non-synchronized redundant processors
US5596756A (en) * 1994-07-13 1997-01-21 Advanced Micro Devices, Inc. Sub-bus activity detection technique for power management within a computer system
US5666483A (en) * 1995-09-22 1997-09-09 Honeywell Inc. Redundant processing system architecture
US5799022A (en) * 1996-07-01 1998-08-25 Sun Microsystems, Inc. Faulty module location in a fault tolerant computer system
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US5923830A (en) * 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1615134A2 (en) 2004-07-05 2006-01-11 Sony Corporation System and method for distributing processing among a plurality of processors based on information regarding the temperature of each processor
JP2006040063A (ja) * 2004-07-28 2006-02-09 Toshiba Corp 情報処理装置および情報処理装置のsmi処理方法
JP4585249B2 (ja) * 2004-07-28 2010-11-24 株式会社東芝 情報処理装置
US7886100B2 (en) 2004-07-28 2011-02-08 Kabushiki Kaisha Toshiba Information processing apparatus and SMI processing method thereof
JP2014109453A (ja) * 2012-11-30 2014-06-12 Renesas Electronics Corp 半導体装置
WO2017042894A1 (ja) * 2015-09-08 2017-03-16 株式会社東芝 多重化処理システム、多重化処理方法及びプログラム
JPWO2017042894A1 (ja) * 2015-09-08 2018-02-15 株式会社東芝 多重化処理システム、多重化処理方法及びプログラム
CN107949831A (zh) * 2015-09-08 2018-04-20 株式会社东芝 多重化处理系统、多重化处理方法以及程序
US10489239B2 (en) 2015-09-08 2019-11-26 Kabushiki Kaisha Toshiba Multiplexing system, multiplexing method, and computer program product
CN107949831B (zh) * 2015-09-08 2021-03-16 株式会社东芝 多重化处理系统、多重化处理方法以及程序

Also Published As

Publication number Publication date
KR20010012310A (ko) 2001-02-15
EP0980546A4 (en) 2000-11-15
TW432278B (en) 2001-05-01
US5923830A (en) 1999-07-13
IL132724A0 (en) 2001-03-19
US6141770A (en) 2000-10-31
CN1255211A (zh) 2000-05-31
EP0980546A1 (en) 2000-02-23
WO1998050856A1 (en) 1998-11-12

Similar Documents

Publication Publication Date Title
JP2001526809A (ja) コンピュータ・システム用非割り込み電力制御
US5903717A (en) Fault tolerant computer system
US6938183B2 (en) Fault tolerant processing architecture
US7613948B2 (en) Cache coherency during resynchronization of self-correcting computer
US10078565B1 (en) Error recovery for redundant processing circuits
Avižienis Design of fault-tolerant computers
Siewiorek Architecture of fault-tolerant computers: An historical perspective
Villalpando et al. Reliable multicore processors for NASA space missions
US20100318746A1 (en) Memory change track logging
US20020162050A1 (en) System and method for recovering from memory failures in computer systems
EP1146423B1 (en) Voted processing system
de Oliveira et al. Applying lockstep in dual-core ARM Cortex-A9 to mitigate radiation-induced soft errors
Shernta et al. Using triple modular redundant (tmr) technique in critical systems operation
Shinghal et al. Design and analysis of a fault tolerant microprocessor based on triple modular redundancy using VHDL
Gkiokas et al. A fault-tolerant time-predictable processor
Beningo A review of watchdog architectures and their application to Cubesats
Pouponnot Strategic use of SEE mitigation techniques for the development of the ESA microprocessors: past, present, and future
Li et al. Transient fault tolerance on multicore processor in amp mode
Fay et al. An adaptive fault-tolerant memory system for FPGA-based architectures in the space environment
Santos et al. Hybrid Hardening Approach for a Fault-Tolerant RISC-V System-on-Chip
Alena Radiation and Fault Tolerance for Neuromorphic Computing
Strobel et al. Radiation Hardened High-Performance Image Processing System for new responsive space missions
El Salloum et al. Recovery mechanisms for dual core architectures
Al-Asaad Real time scheduling of multiple executions of tasks to achieve fault tolerance in multiprocessor systems
Czajkowski et al. Single Event Effects (SEE) Mitigation of Reconfigurable FPGAs