JPH09509270A - 故障から立直りが速い/故障に対する耐性がある計算処理 - Google Patents

故障から立直りが速い/故障に対する耐性がある計算処理

Info

Publication number
JPH09509270A
JPH09509270A JP7515658A JP51565895A JPH09509270A JP H09509270 A JPH09509270 A JP H09509270A JP 7515658 A JP7515658 A JP 7515658A JP 51565895 A JP51565895 A JP 51565895A JP H09509270 A JPH09509270 A JP H09509270A
Authority
JP
Japan
Prior art keywords
controller
computing
computing element
elements
input
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.)
Granted
Application number
JP7515658A
Other languages
English (en)
Other versions
JP3679412B6 (ja
JP3679412B2 (ja
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 JPH09509270A publication Critical patent/JPH09509270A/ja
Application granted granted Critical
Publication of JP3679412B2 publication Critical patent/JP3679412B2/ja
Publication of JP3679412B6 publication Critical patent/JP3679412B6/ja
Expired - Lifetime legal-status Critical Current

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • 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
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2005Error 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 interconnections or communication control functionality are redundant using redundant communication controllers
    • 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/2017Error 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 memory access, memory control or I/O control functionality is redundant
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • G06F11/185Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality and the voting is itself performed redundantly

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 他の計算素子のクロックに対して非同期的に作動するクロックを備えた計算素子少なくとも二つ(CE1、CE2)を同期させる方法は、計算素子(CE1、CE2)によって生成された信号組の中からメタ時刻信号として指定された信号を一つ以上選択することと、計算素子(CE1、CE2)を監視して計算素子の一方(CE1)による選択信号の生成を検出することと、等しい値の時間更新を計算素子各々へ送信することと、時間更新に基づいて計算素子(CE1、CE2)のクロックを更新することとから成る。本発明の第二の側面によれば、故障からの立直りが速いか故障に対する耐性があるコンピュータ(200)は、第一プロセッサを計算素子(204)として指定し、第二プロセッサ(202)をコントローラとして指定し、モジュール対を作成するために計算素子(204)とコントローラ(202)とを接続して、故障からの立直りが速いか故障に対する耐性があるコンピュータ(200)を作成するために少なくとも二つのモジュール対を接続することによって作成される。コンピュータ(200)の各計算素子(202、204)は、他の計算素子(202、204)と同じ周期数単位で全部の命令を実行する。コンピュータシステムは一つ以上のコントローラ(202)と少なくとも二つの計算素子(204)とから成る。

Description

【発明の詳細な説明】 故障から立直りが速い/故障に対する耐性がある計算処理 発明の背景 本発明は故障からの立直りが速くしかも故障に対する耐性がある計算方法と装 置とに係わる。 故障からの立直りの速いコンピュータシステムはハードウェア傷害が存在して も機能し続けられる。これらのシステムは、可用性モードと保全性モードのどち らかで作動するが両方ででは作動しない。システムは、ハードウェア傷害がユー ザのアクセスに容認できない遅延を引起こさなければ、「使用可能」である。ま た、可用性モードで作動するシステムは、ハードウェア傷害に直面したときにも 可能な限りオンラインのままであるように構成される。システムは、ハードウェ ア障害がデータの損失や変造を何も引起こさなければ、データ保全性を持ってい る。また、保全性モードで作動するシステムは、そのためにオフラインにならな ければならないとしてもデータの損失や変造を回避するように構成される。 故障に対する耐性があるシステムは可用性と保全性の両方に重点を置いている 。耐故障システムは、単一のハードウェア障害に直面したときには使用可能のま までありデータ保全性を維持する。また、状況によっては、多重のハードウェア 障害に直面したときにもそうである。 災害に対する耐性があるシステムは耐故障システムの一歩先を行くものである 。また、このシステムによれば、自然の災害あるいは人災による計算処理現場の 損失によって、システムの可用性が中断されたりデータが変造されたり失われた りしないことになっている。 故障に対する耐性の先行例の方法には、ソフトウェアチェックポイント/再始 動、三重モジュール冗長およびペア/スペアなどがある。 チェックポイント/再始動システムは、非同期的に作動し異なるアプリケーシ ョンを実行する二つ以上の計算素子を用いる。各アプリケーションは、自身が走 行する計算素子の状態の画像を定期的に格納する(チェックポイント)。計算素 子における故障が検出されると、チェックポイント用いて別の計算素子上(ある いは、故障が修正されてた後ならば同じ計算素子上)のアプリケーションを再始 動させる。チェックポイント/再始動システムを実現するためには、そのシステ ム上で走行させるアプリケーションおよび/あるいはオペレーティングシステム 各々を、システムの画像を定期的に格納するように変更しなければならない。加 えて、システムは「後戻り」ができなければならない(すなわち、再始動させら れたチェックポイントに続いて発生した動作の効果を取消すことができなければ ならない)。 三重モジュール冗長の場合、三つの計算素子が同一のアプリケーションで走行 し周期毎に作動される。計算素子全部が、三つの計算素子の出力(すなわち、メ モリインターフェイス)を比較して、出力全部が同じものであれば、通常動作を 継続するという票決ロジックブロックに接続されている。出力の一つが異なる場 合、票決ロジックは、異なる出力を生成した計算素子をダウンさせる。票決ロジ ックは、計算素子とメモリとの間に配置されるがシステム速度に強い影響を及ぼ す。 ペア/スペアシステムは、同一のアプリケーションを走行させて周期毎に作動 させられる二つ以上の計算素子対から成る。コントローラは対になった計算素子 各々の出力(すなわち、メモリインターフェイス)を監視する。出力が異なる場 合、対になった計算素子が両方ともダウンさせられる。 発明の概要 本発明によれば、故障からの立直りが速くしかも/あるいは故障に対する耐性 があるシステムは、実時間で非同期的に作動し(すなわち、周期毎に)いわゆる 「メタ時刻」に同期的に作動する少なくとも二つの計算素子(CE)を使用するこ とによって達成される。これらのCEは、CE上で走行しているアプリケーションを 分岐させることなくメタ時刻間に非同期的に走行させるのに充分頻繁に発生する メタ時刻に同期させられる。例えば、CEは、毎秒一回同期させられ、あとは非同 期的に走行する。CEはメタ時刻毎に再度同期させられるので、CEはメタ時刻単位 に作動すると言える。 具体的な実施例においては、メタ時刻は、CEが入出力動作を要求する時刻と定 義される。これらの実施例においては、CEは、入出力動作の終了の度に同期させ られ入出力動作間に非同期的に走行する。この方法は、同一のアプリケーション を走行させる少なくとも二つの非同期計算素子が常に同一の順序で入出力要求を 発生させるというシステムに適用可能である。この方法は、更に、処理環境(す なわち、書込み要求)を変更するための入出力要求の後のみの再同期に限定され る。 本発明に係わるメタ時刻同期は、アプリケーションとオペレーティングシステ ムソフトウェアとには見えない対モジュール冗長アーキテクチャを使用すること によって達成される。このアーキテクチャによれば、各CEは、コントローラそう でなければ入出力プロセッサ(IOP)として知られるものと組合わされる。IOP は 、CEによって要求されCEへ向けられる入出力動作を実行し、ハードウェア故障を 検出し、入出力動作の終了の度にCE同士を同期させる。入出力要求が充分な頻度 で発行されないシステムにおいては、IOP は、CEに接続されたプロセッサ間相互 接続(IPI)モジュールによって発生させられるいわゆる「量子割込み」に応じて 定期的にCE同士を同期させる。 本発明の別の具体的な実施例においては、具体的な入出力動作に基づいてCEを 同期させる代わりに、入出力動作ウィンドウに基づいてCEを同期させる。この方 法では、入出力動作リストがCE毎に保持され、共通の入力がリスト全部に出現す る度にCEが同期させられる。この方法は、入出力要求が発生させられる順序につ いては柔軟性を与える。 本発明の更に別の具体的実施例においては、CEは、オペレーティングシステム によって定期的に発生させられる信号かハードウェアで発生させられる割込みか に基づいて同期させられる。例えば、ハードウェア割込み法の場合、各CEのプロ セッサを変更してN周期毎に割込みを発生させるようにし、その割込みに応じて CEを同期させる。 対モジュール冗長システムの主な構成要素は、ソフトウェア、規格品のIOP、 規格品のCEおよびIOP とCEの拡張スロットへ差込まれケーブルによって相互に接 続された特注のIPI モジュール対から成る。冗長入出力装置は、一つ以上のCEか IOP かに接続されて冗長入出力を提供し、重要な大容量記憶装置のボリューム陰 影処理機構などの機構を提供する。対モジュール冗長システムは、システムの IOP を実現する際に用いるプロセッサに対する互換性がある入出力装置ならどれ でも収容可能である。 対モジュール冗長アーキテクチャは、特注のソフトウェアとハードウェアを最 長限使用して少なくとも二つの規格品の計算素子を、ウィンドウズNT、DOS、OS/ 2、UNIXなどの業界標準のオペレーティングシステムと未変更アプリケーション とを走行させる故障からの立直りが速いか故障に対する耐性があるシステムに組 み込ませることができるようにする。このアーキテクチャは、コスト高および先 行技術で用いられる登録商標のオペレーティングシステムやアプリケーションや プロセッサの設計の非柔軟性の両方を回避できる。 本発明の対モジュール冗長アーキテクチャの別の優位性は、ある程度のソフト ウェア故障に対する耐性を提供できる点である。ソフトウェアエラーの大半はア ルゴリズムに関するものではない。そうではなく、エラーはたいてい入出力競争 状態の原因となる計算素子と入出力装置との間の非同期性に起因する。入出力要 求を計算素子から切離すことによって、対モジュール冗長アーキテクチャは、そ のような非同期性に由来するいわゆる「Heisenbug」ソフトウェアエラーの個数 を実質的に削減できる。 一つの側面によれば、通常、本発明は、少なくとも一つのコントローラを使用 して、他の計算素子のクロックに対して非同期的に作動するクロックを備えた計 算素子少なくとも二つを同期させることによって、故障からの立直りが速いか故 障に対する耐性があるコンピュータを形成することを特徴とする。メタ時刻信号 として指定された一つ以上の信号が、計算素子によって生成された信号組の中か ら選択される。その後、計算素子を監視して一方の計算素子による選択信号の生 成を検出する。選択信号が検出されると、システムは、他の計算素子による選択 信号の生成を待合わせる。そして、選択信号を受信すると同時に、計算素子各々 へ等時間更新を送信する。その後、計算素子のクロックが時間更新に基づいて更 新される。 本発明の優先的実施例は以下の特徴を有する。第一に、入出力要求は選択信号 である。入出力要求を処理して、時間更新で送信される入出力応答を生成する。 入出力要求の他にあるいは代わりに、量子割込みを選択信号にできる。計算素子 は、実行命令か、システムクロック、バスクロックあるいは入出力クロックなど のクロックの周期かのどちらかを計数して、予め規定された個数の命令か周期か が発生する度に量子割込みを発生させる。入出力要求と量子割込みの両方を選択 信号として用いる場合、計算素子は入出力要求なしに発生する命令か周期かの個 数を計数する。例えば、入出力要求を発生させずに100周期分の処理を行う度 に量子割込みを発生させるように計算素子をプログラムしてもよい。 一つの実施例では、予め決定された値を計数器にロードし、入出力要求でその 計算器をイネーブルにし、計算器の値を減分させ、計算器の値がゼロに達したと きに量子割込み信号を送ることによって、命令が計数される。別の方法では、プ ロセッサのデバッグ機構を用いて量子割込みを発生させる。 故障検出のために、計算素子各々からの選択信号と付随のデータがあればその データとを比較する。それらが一致すれば、故障が発生したことを知らせるため の信号が発生される。 ある実施例においては、計算素子は、選択信号を生成した後休止して時間更新 を待合わせる。計算素子は時間更新を受信すると同時に作用を再開する。他の実 施例においては、計算素子は選択信号を生成した後も動作し続ける。 計算素子の非同期アクティビティによって引起こされる問題点を回避するため に、非同期アクティビティをディスエーブルにする。例えば、通常のメモリリフ レッシュ機能をディスエーブルにして、その代わりに、バーストメモリリフレッ シュを入出力要求や量子割込みなどの選択信号が生成される度に実行する。 本発明は、また、計算素子として第一プロセッサを指定し、コントローラとし て第二プロセッサを指定し、計算素子とコントローラとを接続してモジュール対 を作成することによって、故障からの立直りが速いか故障に対する耐性があるコ ンピュータを作成する方法を特徴とする。その後、少なくとも二つのモジュール 対を接続して故障からの立直りが速いか故障に対する耐性があるコンピュータを 作成する。計算素子用のプロセッサは互いに全く同じである必要はないが、命令 セット中の各命令を別のプロセッサと同じ周期数単位で実行することが好ましい 。一般的には、業界標準プロセッサを用して計算素子とコントローラとを実現す る。災害に対する耐性のために、少なくとも一つのモジュール対を他のモジュー ル対 から遠く離して配置させる。コントローラと計算素子とは各々未変更の業界標準 オペレーティングシステムとアプリケーションとを走行させることができる。更 に、コントローラは、計算素子が同時に第二オペレーティングシステムを走行さ せるのに対し、第一オペレーティングシステムを走行させることができる。 入出力故障からの立直りの速さは、冗長入出力装置を少なくとも二つのモジュ ール対に接続して少なくとも同一の入出力書込み要求とデータとを冗長入出力装 置へ送信することによって達成される。入出力読取り要求は入出力装置のどれか 一つに送信されるだけなのに、同一の入出力読取り要求はデータ保全性を検証す るために入出力装置の内の一つ以上の装置へ送信される。冗長入出力装置を三つ 以上のモジュール対に接続すると、同一の入出力要求の送信で故障した入出力装 置の同定ができる。 別の側面によれば、一般的に、本発明は、入出力リダイレクト処理を使用する ことによってコンピュータ内で計算処理動作から入出力要求を隔離することを特 徴とする。通常、入出力装置は、低レベル入出力要求を用いるか入出力装置を直 接アドレス指定することによってアクセスされる。低レベル入出力要求には、シ ステムの基本入出力システム(BIOS)へ要求とブートファームウェア要求とブー トソフトウェア要求とシステムの物理的な装置のドライバソフトウェアへの要求 とが含まれる。計算素子が低レベル入出力要求を発行する場合、本発明は、入出 力プロセッサへ入出力要求をリダイレクトするソフトウェアを使用することを特 徴とする。直接にアドレス指定された入出力要求は中途妨害され仮想入出力装置 へ供給される。定期的に、仮想入出力装置の内容が入出力要求として入出力プロ セッサへ送信される。入出力プロセッサでは、送信された仮想入出力装置の内容 が物理的入出力装置へ供給される。要求された入出力動作が実行された後に、動 作の結果があればそれが入出力要求に対する応答として計算素子へ返送される。 一般的に、仮想入出力装置は仮想キーボードと仮想表示器とから成る。 本発明は、また、互いに接続され少なくとも二つの計算素子に接続された少な くとも二つのコントローラと、コントローラの少なくとも二つに接続された計算 素子少なくとも二つとから成るコンピュータシステムにおける故障を検出し診断 することを特徴とする。各計算素子は、データを生成しそのデータに関連するエ ラー検査コードなどの値を発生させる。その後、各計算素子は、その計算素子が 接続された少なくとも二つのコントローラへデータを対応する値と供に送信する 。データと付随の値とを受信すると、コントローラはその値を他のコントローラ へ送信する。各コントローラは、各計算素子に対応する値と各コントローラに対 応する値とに対して計算を実行する。各コントローラに対応する値に対する計算 の結果が互いに等しく、各計算素子に対応する値に対する計算の結果が互いに等 しいならば、故障は何も存在しない。その他の場合は故障が存在する。場合によ っては、計算とは単純なビット毎の比較でもよい。 故障が存在する場合、一つの計算素子に対応する値全部を計算素子毎に比較す ることによって故障診断を試みる。各計算素子に対応する値が計算素子毎に一致 し計算素子間で不一致であれば、計算素子のどれか一つが故障している。計算素 子のどれか一つだけに対応する値が互いに不一致ならば、その計算素子への経路 が故障している。多数の計算素子に対応する値が互いに不一致ならば、その不一 致の計算素子に接続されたコントローラが故障している。同定されると、故障素 子はディスエーブルにされる。 本発明に係わるシステムは、故障素子(すなわち、CE、IOP、記憶装置など) が修復された後完全機能状態へ復旧する。システムは、滑動素子の状態を修復さ れた素子へ転送してから、修復された素子を再度イネーブルにすることによって そうなる。滑動プロセッサー個あるいは複数個の作動状態を非滑動プロセッサへ コントローラを介して転送することによって、非滑動プロセッサあるいは修復さ れたプロセッサを起動する。非滑動プロセッサが計算素子である場合、滑動計算 素子一個(あるいは複数個)の作動状態がコントローラを介して転送される。非 滑動プロセッサがコントローラである場合、滑動コントローラの作動状態が直接 転送される。この転送は、システム運用が休止したときあるいは背景プロセスと して発生する。 この回復機能は、オフにするなどしてシステムのプロセッサが働かなくなるよ うにすることによって、ハードウェアかソフトウェアあるいはそれら両方のオン ライン格上げを提供するためにも使用される。格上げは、ディスエーブルにされ たプロセッサを交換あるいは変更することによって実行される。格上げされたプ ロセッサをオンにして先に考察したように再起動させる。 本発明は、また、コントローラが二つの計算素子に接続された単一コントロー ラ二重計算素子システムを特徴とする。このコンピュータシステムでは、計算素 子による入出力動作が中途妨害されコントローラへリダイレクトされる。一般的 には、コントローラと二つの計算素子とは、各々、業界標準のマザーボードを備 えており、未変更の業界標準オペレーティングシステムとアプリケーションとを 走行させることができる。コントローラは、計算素子同士が同時に第二オペレー ティングシステムを走行させるのに対し、第一オペレーティングシステムを走行 させることができる。 単一コントローラシステムは、第一コントローラと二つの計算素子の両方に接 続された第二コントローラを有するように拡張させることができる。制限された 災害からの立直りの速さのために、第一コントローラと計算素子の一方とを第二 コントローラと他方の計算素子から遠く離れた位置に設置することができる。ま た、通信リンクによって第二コントローラと他方の計算素子とに接続することも できる。 可用性と性能との向上のために、二重コントローラ二重計算素子システムを全 く同じ第二システムに接続することができる。二つのシステムは、一方のシステ ムが第一アプリケーションの第一部分を走行させ他方のシステムが第二アプリケ ーションか第一アプリケーションの第二部分かを走行させるという分散型計算環 境を走行させる。 別の実施例においては、本発明は、互いに接続された三つのコントローラとそ れら三つのコントローラの異なる一対に接続される計算素子三つとから成るコン ピュータシステムを特徴とする。このシステムは、他のシステムと同様に、計算 素子によって入出力動作を中途妨害してコントローラへリダイレクトして処理さ せる。災害からの立直りの速さのために、第一コントローラと計算素子の一方と を残りのコントローラと計算素子とから遠く離れた位置に設置する。あるいは、 各コントローラ/計算素子対を異なる位置に設置する。 耐災害システムは、上記の三つのコントローラシステムのうちの少なくとも二 つを接続することによって作成される。三つのコントローラシステムは、遠く離 れた位置に設置され通信リンクによって接続される。 図面の簡単な説明 図1は部分的に故障からの立直りの速いシステムのブロック図である。 図2は図1のシステムのシステムソフトウェアのブロック図である。 図3は図2のシステムソフトウェアのIOP モニタによって使用される手順の流 れ図である。 図4は図1のシステムのIPI モジュールのブロック図である。 図5は図1のシステムの状態遷移表である。 図6は故障からの立直りの速いシステムのブロック図である。 図7は故障からの立直りの速い分散型システムのブロック図である。 図8は耐故障システムのブロック図である。 図9は図8のシステムのIOP によって使用てされる故障診断手順の流れ図であ る。 図10は耐災害システムのブロック図である。 優先的実施例の説明 図1に示すように、故障からの立直りの速いシステム10は、入出力プロセッ サ(IOP 12と二つの計算素子(CE)14aと14b(集合的にCE14で示す) とから成る。システム10は単一IOP 12のみを備えているのでIOP 12の障害 から回復できないため、システム10は全然故障に対する耐性がない。 IOP 12は、ケーブル20aと20bによってCE14の対応するIPI モジュー ル18aと18bに接続された二つのプロセッサ間相互接続(IPI)モジュール1 6aと16bを備えている。IOP 12は更に、プロセッサ22とメモリシステム 24と二つのハードディスク駆動機構26と28と電源30とを備えている。同 様に、各CE14は、プロセッサ32とメモリシステム34と電源36とを備えて いる。別々の電源36を使用することで電源障害という事態における故障からの 立直りの速さを保証している。プロセッサ32aと32bは、プロセッサ32a が一つの命令を実行するのに必要な周期数が、全ての命令に対して、プロセッサ 32bが同一の命令を実行するのに必要な周期数が、全ての命令に対して、プロ セッサ32bが同一の命令を実行するのに必要な周期数と同じであるという点 で、互いに「全く同じ」である。図示の実施例においては、システム10は、標 準のインテル486基盤マザーボードがプロセッサ22と32およびメモリシス テム24と35各々のメモリの4メガバイト分として用いることで実現されたも のである。 システム10のIOP 12とCE14とは、IOP 用のブートディスクとして用いら れるハード駆動機構26とCE14用のブートディスクとして用いられるハード駆 動機構28とによって、未変更のオペレーティングシステムとアプリケーション ソフトウェアとを走行させる。少なくとも二つのIOP を備えた眞に故障からの立 直りが速いか故障に対する耐性があるシステムにおいては、各ハード駆動機構も 二重化される。 図示の実施例においては、IOP 12とCE14とのオペレーティングシステムは DOS である。しかし、他のオペレーティングシステムを使用することもできる。 また、IOP 12は、CE14によって走行させられたものとは異なるオペレーティ ングシステムを走行させる。例えば、IOP 12は、CE14がDOS を走行させてい るのに対し、UNIXを走行させられる。この方法は、周辺機器を支援していないオ ペレーティングシステムからCE14が周辺機器にアクセスできるので好都合であ る。例えば、CE14がCD-ROM駆動機構を支援していないオペレーティングシステ ムを走行させ、IOP 12がそれを支援しているものを走行させる場合、CE14は 、ハード駆動機構にアクセスするなどのために使用されるものと全く同じ入出力 要求を発行することによってCD-ROM駆動機構にアクセスできる。その後、IOP 1 2は、その入出力要求のCD-ROM駆動機能をアクセスするのに適したものへの変換 を実行する。 図2を参照すると、システム10は、CE14のプート処理と初期化とを制御し 、CE14内の地域時間をディスエーブルにし、CE14からの入出力要求全部をIO P 12へリヂレクトして実行させ、入出力要求の結果があればそれをIOP 12か らCE14へと返送するための専門化されたシステムソフトウェア40を備えてい る。 システムソフトウェア40は、ROM 基盤のものであり各々がCE14のIPI モジ ュール18に位置する二組のIPI BIOS42から成る。IPI BIOS42は、ブートア ップアクティビティと初期化アクティビティとに使用される。CE14がブートさ れると、IPI BIOS42は、システムBIOS割込み表内の入出力割込みアドレスをCE ドライバ44によって制御されたアドレスに交換する。交換される割込みアドレ スとは、ビデオサービスと固定ディスクサービスと直列通信サービスとキーボー ドサービスと日内時刻サービスなどに対応するものである。 IPI BIOS42は、また、通常メモリリフレッシュ処理をディスエーブルにして 、CE14が実際に処理を行っている周期数に影響を与えるメモリリフレッシュ処 理がシステムソフトウェア40によって制御されることを保証する。メモリリフ レッシュ処理はメモリ保全性を維持するために必要である。従来のリフレッシュ 処理方法においては、メモリは、メモリ内の一つのブロックがリフレッシュ期間 の終了の度にリフレッシュされるという具合いに定期的にリフレッシュてされる 。リフレッシュ期間の継続時間は、メモリ全体がメモリのリフレッシュ限界内に リフレッシュされるように選択される。このように、例えば、メモリにブロック が256個ありリフレッシュ限界が8ミリ秒である場合、リフレッシュ期間は3 1,25マイクロ秒(8ms/256)となる。 上記の実施例においては、IPI BIOS42は、インテル486マザーボードに用 いられてメモリリフレッシュ処理を制御するための計数器を、計数器へのゲート 入力を増分させるために変化させるものとするモードに設定することによって、 メモリリフレッシュ処理をディスエーブルにする。ゲート入力は普通電源に接続 てされるので、ゲート入力は決して変化しない。従って、計数器は効果的にディ スエーブルにされる。 システムソフトウェア40のCEドライバ44は、入出力要求あるいは量子割込 みが発生させられる度にメモリの多数のブロックをバーストリフレッシュするこ とによってメモリリフレッシュ処理を取行う。CEドライバ44は、CEブートディ スク28に格納されCE14によって走行させられる。バーストメモリリフレッシ ュを実行するばかりでなく、CEドライバ44は、システムBIOSへの入出力要求を 中途妨害してIPI モジュール18経由でIOP 12へとリダイレクトし実行させる 。CEドライバ44は、また、IPI モジュール18からの割込み要求に応答してシ ステムクロックをディスエーブルにしたり、IOP モニタ48から供給される情報 に基づいてCE14の日内時刻を制御したりする。 IOP ブートディスク26に配置されIOP 12によって走行させられるIOP ドラ イバ46は、CE14からの入出力要求をIOP モニタ48へリダイレクトして処理 させて、その結果をIOP モニタ48からCE14へと送信することによって、CE14 からの入出力要求を処理する。IOP ドライバ46はパケット通信規約を用いてCE ドライバ44と交信する。 IOP モニタ48はIOP ブートディスク26に配置されIOP 12によって走行さ せられる。IOP モニタ48は、システム10を制御し実際の入出力要求を実行し てIOP ドライバ46によってCE14へ送信てされる結果を作成する。 システムソフトウェア40は、更に、IOP 12上で走行しシステム10のユー ザ制御を提供する操作ソフトウェア49を備えている。操作卓ソフトウェア49 を使用すれば、ユーザはCE14をリセットさせたりブートさせたり同期させたり できる。ユーザは、リセット後あるいは立ち上げ後すぐにCE14の一方あるいは 両方を自動的にブートさせたり(自動ブート)しかも/あるいは自動的に同期さ せたり(自動同期)するように設定することもできる。各CE14を制御する機能 は、通常動作時とテスト時の両方の時に有用である。操作卓ソフトウェア49を 使用すれば、ユーザは、IOP モニタ48が比較間違いエラーに直面したときに両 方のCE14をダウンさせるという保全性モードか、IOP モニタ48が比較間違い エラーに直面したときにCE14aをディスエーブルにするという第一可用性モー ドか、IOP モニタ48が比較間違いエラーに直面したときにCE14bをディスエ ーブルにするという第二可用性モードかにシステム10を設定することもできる 。最後に、操作卓ソフトウェア49によってユーザはシステム10の状態を要求 できる。代替の実施例においては、操作卓ソフトウェア49はIOP 12と交信す る別のプロセッサで実現される。 各CE14は、他のCE14によって走行させられるのと同じアプリケーションと 同じオペレーティングシステムのコピーを走行させる。また、メモリシステム3 4aと34bの内容は同じであり、CE14の動作情況は各同期時刻において同じ である。このように、IOP モニタ48はCE14から全く同じ順序の入出力要求を 受け取る。 図3に示すように、IOP モニタ48は手順100に従って入出力要求を処理し 監視する。初めに、IOP モニタ48はCE14の一方からの入出力要求を待合わせ る(ステップ102)。例えばCE14bwy入出力要求バケットを受取ると、IO P モニタ48はCE14aからの入出力要求かタイムアウト期間の満了かを待合わ せる(ステップ104)。システム10は、入出力要求が処理されている間にア プリケーションの実行を停止させるDOS オペレーティングシステムを使用するの で、IOP モニタ48がCE14aからの入出力要求を待合わせている(ステップ1 04)間にCE14bから入出力要求を受取ることはないことが保証される。 次に、IOP モニタ48はタイムアウト期間が満了したかどうかを確認し判定す る(ステップ106)。満了していなければ(すなわち、CE14aからの入出力 要求が到着した)、IOP モニタ48はパケットの検査合計を比較する(ステップ 108)。検査合計が互いに等しければ、その入出力要求を処理する(ステップ 110)。入出力要求を処理し終えたと、IOP モニタ48は現在の日内時刻を求 める要求をIOP 12のシステムBIOSへ発行する(ステップ112)。 日内時刻を受け取ると、IOP モニタ48は、日内時刻と入出力要求の結果があ ればその結果とから成るIPI パケットを組立てて(ステップ114)、そのIPI パケットをIOP ドライバ送り(ステップ116)CE14へ送信させる。IPI パケ ットを受取ると、CE14は、送信された日内時刻を使って前述のように他の場合 にはディスエーブルにされる地域クロックを更新する。 DOS からの要求通りに、CE14での実行は、IOP モニタ48が入出力要求の結 果をIOP ドライバ46を介して返送するまで中断される。なぜなら、実行が再開 される前に、両方のCE14の日内時刻が共通の値(IPI パケットから送信てされ た日内時刻)に更新されて、CE14はメタ時間が指定される送信日内時刻と時間 的に同期し続けるからである。多量タスクオペレーティングシステムが用いられ る場合、CE14での実行は、IOP モニタ48が入出力要求が実行している間も中 断されない。その代わりに、CE14での処理が、IOP モニタ48が入出力要求を 処理し始めたことを示す肯定応答を受信するまで中断される(ステップ110) 。この肯定応答は、日内時刻を含んでおりCE14によって地域クロックの更新に 使用される。 IPI パケットをIOP ドライバ46へ送ってしまうと、IOP モニタ48は、CE14 が両方ともオンラインであることを検証する(ステップ118)。そうならば、 CE14の一方からの別の入出力要求を待合わせる(ステップ102)。 タイムアウト期間が満了した場合(ステップ106)、IOP モニタ48は、応 答できなかったCE14をディスエーブルにし(ステップ119)入出力要求を処 理する(ステップ110)。 CE14からパケットの検査合計間に比較間違いがあれば(ステップ108)、 IOP モニタ48は、システム10が可用性モードで作動しているか保全性モード で作動しているかを確認する(ステップ120)。 システム10が可用性モードで作用している場合、IOP モニタ48は、選択さ れた可用性モードに基づいて適宜のCE14をディスエーブルにし(ステップ12 2)、入出力要求を処理する(ステップ110)。その後、IOP モニタ48がCE 14が両方ともオンラインかどうかを確認する(ステップ118)。ディスエー ブルにされたCE14が修復も再起動もされていない場合、IOP モニタ48はオン ラインCE14からの入出力要求を待合わせる(ステップ124)。システム10 はもはや故障からの立直りが速いとは言えないので、入出力要求が受信されると 、IOP モニタ48は即座にその入出力要求を処理する(ステップ110)。 システム10が、比較間違いが検出されたときに保全性モードで作動していれ ば、IOP モニタ48は、両方のCE14をディスエーブルにし(ステップ126) 処理を停止する(ステップ128)。 図1と2を再度参照すると、例えばCE14aのアプリケーションかオペレーテ ィングシステムがシステムBIOSへ非入出力呼出しを行った場合、システムBIOSは 、要求を実行しその結果をシステムソフトウェア40を呼出さすことなくアプリ ケーションへ返送する。しかし、アプリケーションかオペレーティングシステム かが入出力BIOS呼出しを行う場合、CEドライバ44aはその入出力要求を中途妨 害する。入出力要求を中途妨害した後、CEドライバ44aは、その入出力要求を IPI パケットへ入れそのIPI パケットをIOP 12へ送信する。 IPI パケットのCE14aからの送信を検出すると、IOP 12のIPI モジュール 16aはIOP ドライバ16への割込みを発生させる。IOP ドライバ46はIPI パ ケットを読取る。 以上考察したように、IOP モニタ48は、手順100に従ってCE14aからの IPI パケットに応答する。やはり考察したように、ハードウェア故障がない場合 、IOP ドライバ46は、最終的に、CE14への入出力要求の結果と日内時刻とを 含んだIPI パケットを送信する。 CE14のIPI モジュール18はIOP 12からIPI パケットを受信する。CEドラ イバ44は、IPI パケットを元の形に復元しCE14の日内時刻を更新して、CE1 4の制御をCE14上で走行しているアプリケーションかオペレーティングシステ ムかへ戻す。 所定時間内に入出力要求が何も発行されなかった場合、CE14のIPI モジュー ル18は、CE14のCEドライバ44を呼出すためのいわゆる量子割込みを発生さ せる。これに応じて、CEドライバ44は、量子割込みIPI パケットを作成してそ れをIOP 12へ送信する。IOP モニタ48は、量子割込みIPI パケットを入出力 要求を持たないIPI パケットとして処理する。このように、IOP モニタ48は、 着信量子割込みIPI パケットを検出し(図3のステップ102)、一致する量子 割込みIPI パケットが別のCE14から受信されれば(図3のステップ104、1 06および108)、現在の日内時刻をもとめる要求をIOP 12のシステムBIOS へ発行する(図3のステップ112)。その後、IOP モニタ48は、IOP ドライ バ46がCE14へ送った(図3のステップ116)量子応答IPI パケットへ現在 の日内時刻を入れる(図3のステップ114)。CEドライバ44は、日内時刻を 更新してCE14の制御をCE14上で走行しているアプリケーションかオペレーテ ィングシステムへ戻すことによって、量子応答IPI パケットに応答する。 IOP モニタ48は、予め規定されたタイムアウト期間内に別のCE14から量子 割込みIPI パッケージを受信しない場合(図3のステップ106)、応答しない CE14をディスエーブルにすることによって応答する。。 図1に示すように、IPI モジュール16と18およびケーブル20で、プロセ ッサ22と23を実現するために用いられる標準インテル486基盤マザーボー ドから故障からの立直りの速いシステムを作成するのに必要なハードウェア全部 が提供される。IPI モジュール16とIPI モジュール18とは、全く基板を使っ て実現され互いに同様の機能を果たす。 図4に示すように、IPI モジュール18は、入出力要求と応答とをCE14のプ ロセッサ32のシステムバスとIPI モジュール18の並列インターフェイスとの 間で通信させるための制御ロジック50を備えている。並列インターフェイス5 2の方は、ケーブル20を介してIPI モジュール16の並列インターフェイスと 交信する。並列インターフェイス52は、16ビットデータ出力ポート54と1 6ビットデータ入力ポート56と制御ポート58とから成る。ケーブル20は、 データ出力ポート54がIPI モジュール16のデータ入力ポートに接続され、デ ータ入力ポート56がIPI モジュールのデータ出力ポートに接続され、制御ポー ト58がIPI モジュール16の制御ポートに接続されるように構成される。制御 ポート58は、IPI モジュール18とIPI モジュール16との間にハンドシェイ ク方式の通信規約を実現する。 制御ロジック50はIPI BIOS ROM60にも接続されている。立上がり時、制御 ロジック50は、IPI BIOS ROM60の内容であるIPI BIOS42(図2)をプロセ ッサ32のシステムバスを介してプロセッサ32へ転送する。 やはりIPI モジュール18に配置されるQI計数器62は先に考察したように量 子割込みを発生させる。QI計数器62は、プロセッサ32のシステムクロックに 接続されたクロック入力端子64と制御ロジック50に接続されたゲート入力端 子66とを備えている。ゲート入力端子66は、QI計数器62を起動し計数値を リセットするために用いられる。起動されると、QI計数器62は、プロセッサ3 2のシステムクロックの各周期中に計数値を1だけ減分させる。計数値がゼロに 達すると、QI計数器62は、先に考察したようにCEドライバ44(図2)を起動 させるための量子割込みを発生させる。 CEドライバ44は入出力取引の開始の度にQI計数器62を非活動にする。CEド ライバ44は、QI非活動アドレスとして知られる第一アドレスでの入出力書込み を要求することによってQI計数器62を非活動にする。制御ロジック50は、入 出力書込み要求を検出してゲート入力端子66を介してQI計数器62を非活動に する。特にこの入出力書込みは制御目的のものなので、制御ロジック50は並列 インターフェイス52へ入出力書込みを渡すことはしない。入出力取引の終結度 に、CEドライバ44は、QI起動アドレスとして知られる第二アドレスへの入出力 書込みを要求することによってQI計数器62を起動する。制御ロジック50は、 QI計数器62をリセットし起動することによって応答する。 代替の方法においては、量子割込みは、プロセッサ32において実現可能なデ バック処理機構などの機構を使用することによって発生させられる。一般に入手 可能なプロセッサの中には、デバッグ命令や、トラップ命令に続く選択された個 数の命令の完了後に指定されたプログラムへプロセッサの制御を転送することに よってエラーを捕らえるためのトラップ命令に対応しているものもある。この方 法では、CEドライバ44は、プロセッサ32の制御をアプリケーションかオペレ ーティングシステムかへ戻す度に、トラップ命令を発行してプロセッサ32の制 御が例えば300個の命令の完了と同時にCEドライバ44へ与えられることを示 す。プロセッサ32が示された300個の命令を完了すると、トラップ命令によ ってプロセッサ32の制御がCEドライバ44へ戻される。入出力要求が指定され た個数の命令の完了の前にCEドライバ44を起動させるという事態に際して、CE ドライバ44はトラップ命令を取消すための命令を発行する。 IPI モジュール18はオフラインCE14を起動する際にも使用される。次に考 察するように、オフラインCE14が起動される前に、活動CE14のメモリシステ ム34の内容が、オフラインCE14のメモリシステム34へコピーされる。この 活動CE14へのコピーの効果を低減させるために、活動CE14のプロセッサ32 に処理を継続させ、活動CE14のプロセッサ32のシステムバスが使用されてな い周期の間中のみメモリをコピーする。 メモリがコピーされている間プロセッサ32が処理を継続できるように、IPI モジュール18は、既にオフラインCE14にコピーされたアドレスに対するプロ セッサ32によるメモリ書込みを不具にする。そうするために、制御ロッジ50 はシステムバスを監視する。プロセッサ32が既にコピーされたメモリアドレス に書込みを行うと、制御ロジック50はそのアドレスをFIFO68に格納する。メ モリ転送が終了すると、あるいは、FIFO68が満杯になると、FIFO68に格納さ れたメモリアドレスに対応するメモリ位置の内容がオフラインCE14にコピーさ れ、FIFO68は空になる。別の方法では、FIFO68は、メモリアドレスとそのア ドレスに対応するメモリ位置の内容の両方を格納するかあるいはメモリアドレス の書込みが行われているメモリブロックのブロックアドレスを格納するように変 更される。 IPI モジュール18は非BIOS入出力要求も処理する。コンピュータシステムに よっては、BIOSはとてものろいので映像表示などの入出力演算を効果的に実行で きない。その結果、DOS やUNIXなど組織化や統制があまり進んでいないオペレー ティングシステムは、アプリケーションが入出力装置に対応するアドレスから直 接に読取ったりそのアドレスに直接書込んだりすることによってBIOSを迂回した り非BIOS入出力要求を行ったりすることを許してしまう。非BIOS入出力要求は、 例えば入出力ディスク読取りと書込みで中途妨害されるようにシステム割込み表 を変更することによって中途妨害されうるものではないが、同期が入出力インタ ーフェイスの強い制御を必要とするシステムにおいては問題のある要求である。 この問題を軽減するために、しかも、非BIOS入出力要求でさえもIOP 12によ って隔離され管理されることを保証するために、IPI モジュール18は、物理的 入出力装置のハードウェアインターフェイスのまねをする仮想入出力装置を備え ている。仮想入出力装置は仮想表示器70と仮想キーボード72とから成る。必 要に応じて、仮想マウスあるいは仮想直列ポートと仮想並列ポートなどの別の仮 想入出力装置を使用することもできる。 実際には、制御ロジック50が、システム入出力装置への非BIOS入出力要求に 対応するアドレスに向けられた読取り動作か書込み動作かを調べるためにシステ ムバスを監視する。制御ロジック50は、その様な動作を検出すると、適宜の仮 想装置において動作を再構築するために必要な情報を格納する。このように、例 えば、制御ロジック50は、表示器に対応するアドレスに向けられた書込みを検 出すると、その動作を仮想表示器70にて再構築するために必要な情報を格納す る。BIOS入出力要求あるいは量子割込みが発生する度に、CEドライバ44は、仮 想入出力装置を走査して、仮想装置が空でなければ、仮想装置内に格納てされた 情報を組立ててIPI パケットを作りIOP 12へ送信する。IOP 12は、先に考察 した手順100を用いて当該パケットをBIOS入出力要求と同様に処理する。制御 ロジック50が仮想入出力装置へ向けられた読取りを検出すると、制御ロジック 50は、その読取り要求を組立ててIPI パケットを作りIOP 12によって処理さ せる。IOP 12はIPI パケットを標準BIOS入出力要求と同様に処理する。 図5を参照すると、各CE14は常に八つの状態のどれか一つで作動する。また 、許容状態の組合せの個数は限られているので、システム10は常に14つの状 態のどれか一つで作動する。主なCE作動状態は、オフライン、RTB(ブート準備完 了)、ブート処理、活動中、RTS(同期準備完了)、待合わせ、M SYNC(マスタとし ての同期)およびS SYNC(スレーブとしての同期)である。IOP モニタ48は、 システム10の状態と操作卓ソフトウェア49からのユーザ指令とに基づいてCE 14の作動状態を変化させる。操作卓ソフトウェア49によって、ユーザはいつ でもCE14をリセットできる。ユーザがCE14をリセットする度、あるいは、故 障がCE14に発生する度に、IOP モニタ48はCE14の状態をオフラインへ変化 させる。 立上がり時、システム10は両方のCE14をオフライン(150状態)にさせ て作動する。システム10は、CE14aがCE14bの前に作動状態になったとき は図5の上側の状態(152〜162状態)で作動し、CE14bが先に作動状態 になったときは下側の状態(166〜176状態)で作動する。CE14が同時に 作動状態になった場合、IOP モニタ48によって最初に作動状態になったと認識 されたCE14が、最初に作動状態になったものとして取扱われる。 CE14が、ブート要求を発行することによってブートの準備が完了しているこ とを示すとき、CE14の状態は、CE14が自動ブートに設定されていなければRT B へ変わり、CE14が自動ブートに設定されていればブート処理へ変わる。例え ば、両方のCE14がオフライン状態のときにCE14aがブート要求を発行し、し かも、CE14aが自動ブートに設定されていなければ、CE14aの状態はRTB( 152状態)へ変わる。その後、IOP モニタ48は、ユーザが操作卓ソフトウェ ア49を介してCE14aをブートするのを待合わせる。ユーザがCE14aの状態は ブート処理(154状態)へ変わる。ユーザがCE14aをリセットすれば、CE1 4aの状態はオフライン(150状態)へ変わる。 CE14aがブート要求を発行ししかもCE14aが自動ブートに設定されている 時に、両方のCE14がオフラインならば、CE14aの状態はブート処理(154 状態)へ変わる。CE14aのブートが成功すれば、CE14aの状態は活動中 (156状態)へ変わる。 CE14aが活動中でCE14bがブート要求を発行したか、あるいは、CE14b が、CE14aの状態がオフラインから活動中(152〜156状態)へ遷移しつ つあるときに、ブート要求を発行したならば、CE14bの状態は、CE14bが自 動同期に設定されているか、さもなければ、待合わせ(160状態)に設定され ていれば、RTS(158状態)へ変わる。CE14bの状態がRTS(158状態)へ変 われば、IOP モニタは、ユーザがCE14bへ同期指令を発行するのを待合わせる 。ユーザがそのような指令を発行すると、CE14bの状態は待合わせ(160状 態)へ変わる。 CE14bが待合わせ状態になると、IOP モニタ48は、CE14aのメモリシス テム34aの内容をCE14bのメモリシステム34bへコピーする。メモリ転送 が終了すると、IOP モニタ48は、CE14aが量子割込みか入出力要求IPI パケ ットを送信するのを待合わせる。そのようなパケットを受取ると、IOP モニタ4 8は、CE14aの状態をM SYNCへ変えCE14bの状態をS SYNC(162状態)へ 変えて、CE14同士を同期させる。この同期化には、IOP モニタ48がCE14a が量子割込みが入出力要求IPI パケットかを送信するのを待合わせている間に発 生したメモリ変化に対する応答処理が含まれる。同期化が終了し次第、CE14の 状態は両方とも活動中(164状態)へ変わり、システム10は完全に使用可能 状態であると考えられる。 代替の実現形態においては、IOP モニタ48は、CE14aの状態をM SYNCへ変 えCE14bの状態をS SYNC(162状態)へ変える前にメモリ転送が終了するの を待合わせることはしない。その代わりに、IOP モニタ48は、IPI パケットの CE14aからの受信と同時にこの状態変化を行って、同期化プロセスの一部とし てメモリ転送を実行する。 CE14bが最初にブート要求を発行したCE14であることにも同様の状態遷移 が起こる。このように、CE14bが自動ブートに設定されていない場合、CE14 bは、オフライン(150状態)からRTC(166状態)、ブート処理(168状 態)そして活動中(170状態)へと遷移する。同様に、CE14bが活動中に入 り、CE14aが自動同期に設定されていない場合、CE14aは、オフライン (170状態)からRTS(172状態)、待合わせ(174状態)、S SYNC(1 76状態)そして活動中(164状態)へと遷移する。 本発明の他の実施例においては、例えば、図6を参照すると、故障からの立直 りの速いシステム200は二つのIOP 202と二つのCE204とから成る。各CE 204は、IPI カード206とケーブル208とを介して各IOP 202るIPI カ ード210に接続される。IPO 202は、IPI カード210とケーブル212と を介して冗長的に接続される。システム200の構成要素は全て冗長バックアッ プ構成要素を備えているので、システム200は全体的に故障からの立ち直りが 速い。代替の方法では、ケーブル208と210が、IOP 202とCE204とが 接続される一対の構内通信網によって置換えられる。実際、構内通信網がいつも ケーブル配線の代わりに用いられる。 システム200は、オペレーティングシステムやアプリケーションソフトウェ アの改良品が作動しなければならないとはしていないから、オペレーティングシ ステムとアプリケーションソフトウェアとには依存していない。たった1個のハ ードウェアを、サービスを中断させることなくシステム200内で格上げしたり 修復したりできる。従って、ハードウェア一つ一つを順次交換してシステム20 0を交換の終了の度に再同期させることによって、システム200のハードウェ アをそっくりそのままサービスを中断させることなく交換できる。同様に、シス テム200上のソフトウェアをサービスの中断を最長限に抑えて格上げできる( すなわち、ソフトウェア格上げの最中、アプリケーションは2秒くらいの許容で きる時間の間使用不能になる)。また、可用性を目的とした災害に対する耐性は 、別の位置に各IOP/CE対を設置し全部のIOP/CE対を通信リングを介して接続する ことによって達成される。 図7を参照すると、分散型で高性能の故障からの立直りの速いシステム220 は、二つのシステム200から成る。システム200のIOP 202は、ケーブル 222によってIPI モジュールを介して互いに接続される。システム220は、 分散型計算環境ソフトウェアを使用して各システム200上のアプリケーション の別々の部分を走行させることによって高性能を達成している。システム220 は、故障に対する耐性がありサービスを中断させることなくハードウェア格上げ とソフトウェア格上げの両方を実行する機能を提供する。 図8を参照すると、耐故障システム230は、三つのIOP(232、234およ び236)と三つのCE238、240および242)とから成る。IPI モジュー ル244とケーブル245とを介して、各IOP は他のIOP の各々のIPI モジュー ル244に接続される。IPI モジュール248とケーブル250とを介して、各 CEは、CE238がIOP 232と234に接続されCE240がIOP 232と236 に接続されCE242がIOP 234と236に接続された状態で、IOP のうちの二 つのIPI モジュール244に接続される。システム200と同様に、システム2 30は、サービスを中断させることのないハードウェア格上げとサービスの中断 を最小限に抑えたソフトウェア格上げとを考慮に入れる。 図7と8との比較から分かるように、システム200と230のCEとIOP とは 全く同じ構成をしている。その結果、故障からの立直りの速いシステム200か ら耐故障システム230への格上げは、現存のハードウェアの交換を何も必要と しないが、別のCE/IOP 対を追加しケーブルを接続しシステムソフトウェアに適 宜の変更を加えるという簡単な手順を必要とする。このモジュール方式は、本発 明の対モジュール方式冗長アーキテクチャの重要な特徴である。 システム230の構成要素は三重に冗長であるので、システム230は、シス テム10よりもハードウェア故障を同定する能力に優れている。このように、シ ステム10がただ単にエラーが検出されたときにCE14の一方あるいは両方をデ ィスエーブルにするのに対して、システム230はより高度な故障診断を提供す る。 図9を参照すると、システム230の各IOP(232、234、236)は手 順300に従って故障診断を行う。初めに、各IOP(232、234、236) は、電力検知やケーブル検知や通信規約タイムアウトなどの周知の方法を用いて 電力損失やケーブル破壊やCE機能不全やIOP 機能不全などの重大な故障について 検査する(ステップ302)。このような故障が検出されると、各IOP は、故障 の装置をディスエーブルにし、必要に応じて、システム全体をディスエーブルに する。 重大な故障について検査した後、各IOP は、IOP が接続された二つのCEから IPI パケット(すなわち、量子割込みか入出力要求)を受信するために待合わせ る(ステップ304)。このように、例えば、IOP 232は、CE238と240 からIPI パケットを受信するために待合わせる。接続されたCEからIPI パケット を受信した後、各IOP は、IPI パケットの検査合計(CRC)を他の二つのIOP へ送 信して、その他の二つのIOP からのCRC の受信のために待合わせる(ステップ3 06)。 他の二つのIOP からCRC を受信した後、各IOP は、各縦列がCEに対応し各横列 がIOP に対応し各入力が横列のIOP によって縦列のCEから受信されたCRC であり とした3×3行列を発生させる。このように、例えば、IOP 232は次の行列を 発生させる。 この行列を発生させた後、IOP 232は、行列の横列毎および縦列毎に入力を合 計する。三つの横列合計が等しく三つの縦列合計が等しければ(ステップ310 )、故障はないので、IOP 232は再度重大な故障について検査する(ステップ 302)。 三つの横列合計か三つの縦列合計かが等しくなければ(ステップ310)、IO P 232は、行列の縦列毎にCRC 入力を比較する。各縦列の二つのCRC 入力が一 致すれば(ステップ312)、IOP 232は、CE障害が発生したと診断し、合計 が他の縦列の合計と等しくなかった縦列に対応するCEをディスエーブルにする( ステップ314)。 一つ以上の行列の縦列のCRC 入力が一致しなければ(ステップ312)、IOP 232は、縦列のうちいくつが不一致入力を持っているかを判定する。行列の中 に不一致入力を持つ縦列が一つしかない場合(ステップ315)、IOP 232は 、他の行列の横列合計に等しくない行列の横列合計に対応するIOP と不一致入力 を 持つ縦列に対応するCEとの間の経路が働かなくなったと診断してその経路をディ スエーブルにする(ステップ316)。この診断のために、経路に、IOP のIPI モジュール244とCEのIPI モジュール248とケーブル250とを含める。 行列には不一致入力をもつ縦列が一つ以上あるので(ステップ314)、IOP 232は、一つの行列横列合計が他の行列横列合計に等しくないことを確認して 、他の行列横列合計に等しくない行列横列合計に対応するIOP をディスエーブル にする(ステップ318)。 CE障害(ステップ314)、経路障害(ステップ316)あるいはIOP 障害( ステップ318)を診断し不具にした後、IOP 232が、システム300はいつ でも作動可能になっている非故障ハードウェアを依然充分に備えていると判定す ると、IOP 232は再度重大な故障について検査する(ステップ302)。シス テム230は三重に冗長なので、システム230は、構成要素が数個働かなくな ったとしても作動し続けられる。例えば、可用性モードで作動したままでいるに は、システム230は、単一の機能しうるCEと単一の機能しうるIOP とこれらの 間の経路とを備えてさえいればいい。 手順300を用いると、各IOP(232、234、236)は、完璧にいつで も作動可能なシステム230あるいは一つの要素(すなわち、CE、IOP あるいは 経路)が以前にディスエーブルにされたことのあるシステム230におけるどの 様な障害一つも正しく診断できる。要素がディスエーブルにされたことのあるシ ステム203においては、各IOP は、実際に受信したCRC との比較から正しく見 える値を使うことによって、その要素がディスエーブルにされたために受信され ていないCRC を不具にする。 手順300は、CEはIOP との間の特定な相互接続構成に依存するものではない 。適切に作動させるために、手順300によれば、各CEの出力が少なくとも二つ のIOP によって直接に監視されるべきであるとするだけである。この様に、手順 300は、どの様な相互接続機序を翔いたシステムにおいても実現でき、CEとIO P との間に対して二地点間接続を必要とするものではない。例えば、CEとIOP と を少なくとも二つの構内通信網に接続させることもできる。代替の方法において は、行列の横列と縦列とのCRC 値を合計する代わりに、これらの値を比較して、 入力が一致しない横列か縦列かに一致/不一致標識で印をつけることもできる。 手順300の単純化バージョンについては、システム200での使用に合わせ て実現できる。この手順では、システム200の各IOP 202は、各縦列がCE2 04に対応し各横列がIOP 202に対応する2×2行列を発生させる。 この行列を発生させた後、各IOP 202は、二つの入力が不一致となった横列あ るいは縦列毎に不一致標識を添付する。 不一致標識が何もなければ、システム200は正しく作動する。 どちらの横列にも不一致標識がなく両方の縦列に不一致標識がある場合、CE2 04は故障している。システム200の作動モード次第で、IOP 202は、別の IOP 202をディスエーブルにするかシステム200をダウンさせるかする。デ ィスエーブル対象のIOP 202は、システム10で使用された二つの可用性モー ドに類似したユーザ供給パラメータに基づいて選択される。 両方の横列に不一致標識がありどちらの縦列にも不一致標識がない場合、CE2 04は故障している。この場合、IOP 202は、システム200が可用性モード で作動しているならばCE204をディスエーブルにすることによって、あるいは 、システム200が保全性モードで作動しているならばシステム200をダウン することによって応答する。両方の横列に不一致標識があり一方の縦列に不一致 標識がある場合、IOP 202と不一致縦列に対応するCE204との間の経路の一 つが働かなくなっている。システム200の作動モード次第で、IOP 202は、 働かなくなった経路を持つCE204をディスエーブルにするかシステム200を ダウンさせるかする。両方の横列に不一致標識があり両方の縦列に不一致標識が ある場合、多数の故障が存在する。IOP 202はシステム200をダウンさせる 。 一方の横列に不一致標識があり両方の縦列に不一致標識がある場合、不一致横 列に対応するIOP 202は故障している。システム200の作動モード次第で、 別のIOP 202が、その故障のIOP 202をディスエーブルにするかシステム2 00をダウンさせるかする。一方の横列に不一致標識があり一方の縦列に不一致 標識がある場合、不一致横列に対応するIOP 202と不一致縦列に対応するCE2 04との間の経路が働かなくなっている。システム200の作動モード次第で、 IOP 202は、働かなくなった経路を将来の処理において不具にしシステム20 0をダウンさせる。 図10を参照すると、耐災害システム260の一つの実施例は、遠く離れた位 置に配置され、イーサネットやファイバなどの通信リンク262で接続され、互 いにメタ時刻方式で作動する二つの耐故障システム230から成る。メタ時刻方 式を達成するために、IPI パケット全部を耐故障システム230間で送信させる 。システム220と同様、システム260はサービスを中断させることのないハ ードウェア格上げとソフトウェア格上げとを考慮に入れる。 図示のように、本発明の対モジュール方式冗長アーキテクチャによれば、実時 間で非同期的に作動しIOP によってメタ時刻に同期的に作動するように制御され るCEを使用することによって故障からの立直りの速さのレベルと故障に対する耐 性のレベルとを変化させることができる。このアーキテクチャは簡単で費用効率 がよい。また、拡張も格上げも容易である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フィオレンティノ リチャード ディー アメリカ合衆国 マサチューセッツ州 01741 カーライル アーロン ウェイ 43 (72)発明者 グローリオソ ロバート エム アメリカ合衆国 マサチューセッツ州 01775 ストウ バーチ ヒル ロード 70 (72)発明者 マッコーリー ダイアン ティー アメリカ合衆国 マサチューセッツ州 01748 ホプキントン エルム ストリー ト 190 (72)発明者 マッコーラム ジェームズ ディー アメリカ合衆国 マサチューセッツ州 01588 ホワイティンズヴィル スウィフ ト ロード 275 (72)発明者 トレンブレイ グレン エイ アメリカ合衆国 マサチューセッツ州 01568 アプトン サウス ストリート 139 (72)発明者 トロイアニ マリオ アメリカ合衆国 マサチューセッツ州 02160 ニュートン ウォルナット スト リート 57 【要約の続き】 (202、204)と同じ周期数単位で全部の命令を実 行する。コンピュータシステムは一つ以上のコントロー ラ(202)と少なくとも二つの計算素子(204)と から成る。

Claims (1)

  1. 【特許請求の範囲】 1.少なくとも二つの計算素子と少なくとも一つのコントローラとから成るコ ンピュータシステムであって、計算素子各々は他の計算素子のクロックに対して 非同期的に作動するクロックを備えているコンピュータシステムにおける少なく とも二つの計算素子を同期させる方法であって、 計算素子によって生成された信号組から一つ以上の信号を選択する段階と、 計算素子を監視して計算素子の一方による選択信号の生成を検出する段階と、 計算素子の一方による選択信号の検出の後他方の計算素子による選択信号の生 成を待合わせる段階と、 計算素子全部からの選択信号の受信後少なくとも一つのコントローラからの等 時間更新を計算素子各々へ送信する段階と、 時間更新に基づいて計算素子のクロックを更新する段階と、 で構成される方法。 2.更に、少なくとも二つの計算素子と少なくとも一つのコントローラとから 故障からの立直りの速いコンピュータを形成する段階で構成されることを特徴と する請求の範囲第1項に記載の方法。 3.前記選択段階は、入出力要求を選択信号として選択する段階で構成される ことを特徴とする請求の範囲第1項に記載の方法。 4.更に、 少なくとも一つのコントローラで入出力要求を処理して入出力応答を生成する 段階と、 少なくとも一つのコントローラからの入出力応答をもつ時間更新を少なくとも 二つの計算素子へ送信する段階と、 で構成されることを特徴とする請求の範囲第3項に記載の方法。 5.前記選択段階は、量子割込みと入出力要求とを選択信号として選択する段 階で構成されることを特徴とする請求の範囲第1項に記載の方法。 6.前記選択段階は、量子割込みを選択信号として選択する段階で構成される ことを特徴とするひ請求の範囲第1項に記載の方法。 7.更に、計算素子におけるクロック周期を計数することによって各計算素子 において量子割込みを発生させる段階で構成されることを特徴とする請求の範囲 第6項に記載の方法。 8.クロック周期を計数する段階は、システムクロックと入出力クロックとバ スクロックとの中の選択された一つのクロックの周期を計数することを含むこと を特徴とする請求の範囲第7項に記載の方法。 9.更に、 予め決定された値を計算素子各々の計数器にロードする段階と、 入出力要求で計算素子各々の計数器をイネーブルにする段階と、 計算素子各々のクロック周期の間中計数器の値を減分する段階と、 計算素子の計数器の値がゼロに達したときに計算素子からの量子割込み信号を 送る段階と、 で構成されることを特徴とする請求の範囲第7項に記載の方法。 10.更に、各計算素子における実行された命令を計数することによって量子割 込みを発生させる段階で構成されることを特徴とする請求の範囲第6項に記載の 方法。 11.更に、各計算素子のデバッグ機構を使用して量子割込みを発生させる段階 で構成されることを特徴とする請求の範囲第6項に記載の方法。 12.更に、計算素子によって生成された選択信号のリストを計算素子毎に維持 する段階で構成され、等時間更新は、各計算素子のリストに共通の入力があると きに送信されることを特徴とする請求の範囲第1項に記載の方法。 13.更に、 計算素子によって発生させられた選択信号同士およびその選択信号に付随する データがあればそのデータ同士を比較する段階と、 選択信号同士か付随のデータ同士かが不一致の場合故障が発生したことを示す 信号を送る段階と、 で構成されることを特徴とする請求の範囲第1項に記載の方法。 14.更に、 計算素子が選択信号を生成した後に各計算素子の動作を停止させる段階と、 時間更新の計算素子による受信と同時に計算素子の動作を再開させる段階と、 で構成されることを特徴とする請求の範囲第1項に記載の方法。 15.更に、選択信号を生成した後に計算素子の動作を継続させる段階で構成さ れることを特徴とする請求の範囲第1項に記載の方法。 16.更に、 計算素子の非同期的アクティビティをディスエーブルにする段階と、 計算素子が選択信号を生成したときに計算素子における非同期的アクティビテ ィの機能を実行する段階と、 で構成されることを特徴とする請求の範囲第1項に記載の方法。 17.前記ディスエーブルにする段階は通常のメモリリフレッシュ機能をディス エーブルにする段階で構成され、前記実行する段階は、前記選択信号が生成され たときにバーストメモリリフレッシュを実行する段階で構成されることを特徴と する請求の範囲第16項に記載の方法。 18.前記ディスエーブルにする段階は、更に、 ゲートの入力値が変化するものとするモードへ通常のメモリリフレッシュ機能 に用いられる計数機を設定する段階と、 固定電圧にゲートを接続する段階と、 で構成されることを特徴とする請求の範囲第17項に記載の方法。 19.故障からの立直りが速いか故障に対する耐性があるコンピュータを作成す る方法であって、 第一プロセッサを計算素子として指定する段階と、 第二プロセッサをコントローラとして指定する段階と、 計算素子とコントローラとを接続してモジュール対を作成する段階と、 少なくとも二つのモジュール対同士を接続して故障からの立直りが速いか故障 に対する耐性があるコンピュータを作成する段階と、 で構成され、 各計算素子は、他の計算素子と同じ周期数単位で全部の命令を実行する、 ことを特徴とする方法。 20.第一と第二のプロセッサは業界標準のプロセッサであることを特徴とする 請求の範囲第19項に記載の方法。 21.更に、少なくとも二つのコントローラと少なくとも二つの計算素子との上 で業界標準のオペレーティングシステムとアプリケーションとを走行させる段階 で構成されることを特徴とする請求の範囲第19項に記載の方法。 22.更に、 少なくとも二つのコントローラの上で第一オペレーティングシステムを走行さ せる段階と、 少なくとも二つの計算素子の上で第二オペレーティングシステムを走行させる 段階と、 で構成されることを特徴とする請求の範囲第19項に記載の方法。 23.更に、一つ以上のモジュール対から遠く離してモジュール対を配置して災 害に対する耐性を提供する段階で構成されることを特徴とする請求の範囲第19項 に記載の方法。 24.更に、 第一入出力装置を第一モジュール対に接続する段階と、 第二入出力装置を第二モジュール対に接続する段階であって、前記第二入出力 装置は第一入出力装置の冗長分である段階と、 少なくとも同じ入出力書込み要求とデータとを第一と第二の入出力装置へ送信 する段階と、 で構成されることを特徴とする請求の範囲第19項に記載の方法。 25.更に、 第三入出力装置を第三モジュール対に接続する段階であって、前記第三入出力 装置は第一と第二の入出力装置の冗長分である段階と、 少なくとも同じ入出力書込み要求とデータとを第一、第二および第三の入出力 装置へ送信する段階と、 で構成されることを特徴とする請求の範囲第24項に記載の方法。 26.更に、コントローラを介して活動プロセッサの作動状態を非活動プロセッ サへ転送することによって非活動プロセッサを起動させる段階で構成されること を特徴とする請求の範囲第19項に記載の方法。 27.更に、前記転送段階の最中に前記計算素子による処理を休止させる段階で 構成されること特徴とする請求の範囲第26項に記載の方法。 28.更に、前記計算素子による処理を休止させることなく前記転送段階を背景 プロセスとして実行する段階で構成されること特徴とする請求の範囲第26項に記 載の方法。 29.更に、 格上げ対象のプロセッサをディスエーブルにし、 ディスエーブルにされたプロセッサを格上げし、 コントローラを介して格上げされたプロセッサへ活動プロセッサの作動状態を 転送することによって格上げされたプロセッサを再起動することによって、 前記計算素子が処理を行っている間にプロセッサを格上げする段階で構成され ることを特徴とする請求の範囲第19項に記載の方法。 30.更に、 修復対象のプロセッサをディスエーブルにし、 ディスエーブルにされたプロセッサを修復し、 コントローラを介して修復されたプロセッサへ活動プロセッサの作動状態を転 送することによって修復されたプロセッサを再起動することによって、 前記計算素子が処理を行っている間にプロセッサを修復する段階で構成される ことを特徴とする請求の範囲第19項に記載の方法。 31.コンピュータにおける計算動作から入出力要求を隔離する方法であって、 物理的入出力装置のインターフェイスをシミュサートするための仮想入出力装置 を提供する段階と、 物理的入出力装置へ向けられた計算素子からの入出力要求を中途妨害する段階 と、 中途妨害された入出力要求を仮想入出力装置へ供給する段階と、 仮想入出力装置の内容を入出力プロセッサへ送信する段階と、 入出力プロセッサで、送信された仮想入出力装置の内容を物理的入出力装置へ 供給する段階と、 で構成される方法。 32.前記供給する段階は仮想キーボードを供給すること含むことを特徴とする 請求の範囲第31項に記載の方法。 33.前記供給する段階は仮想表示器を供給すること含むことを特徴とする請求 の範囲第31項に記載の方法。 34.更に、仮想入出力装置を使用して、入出力競争状態の原因となるソフトウ ェア非同期によって引起こされたソフトウェアエラーをあらわにする段階で構成 されること特徴とする請求の範囲第31項に記載の方法。 35.更に、 計算素子からの低レベル入出力要求を中途妨害する段階と、 中途妨害された低レベル入出力要求を入出力プロセッサへリダイレクトする段 階と、 入出力プロセッサで、要求された入出力動作を実行して入出力結果を生成する 段階と、 入出力結果を計算素子へ返送する段階と、 で構成されること特徴とする請求の範囲第31項に記載の方法。 36.少なくとも二つの計算素子と少なくとも二つのコントローラとから成るコ ンピュータシステムであって、計算素子各々はコントローラのうちの少なくとも 二つに接続され、各コントローラは少なくとも二つの計算素子と他のコントロー ラとに接続されているコンピュータシステムにおける故障を検出し診断する方法 であって、 計算素子各々でデータを生成する段階と、 生成されたデータに係わる計算素子各々で値を発生させる段階と、 各計算素子から少なくとも二つの接続されたコントローラへデータを対応する 値と供に返送する段階と、 各コントローラによって受信された値を他のコントローラへ送信する段階と、 各計算素子に対応する値と各コントローラに対応する値とに対して計算を実行 する段階と、 で構成され、 各コントローラに対応する値に対して実行された計算の結果が等しく、各計算 素子に対応する値に対して実行された計算の結果が等しければ、故障は何も存在 しないとする、 ことを特徴とする方法。 37.更に、各計算素子に対応する値に対して実行された計算の結果と各コント ローラに対応する値に対して実行された計算の結果とが等しくないとき、 一方の計算素子に対応する値全部を計算素子毎に比較する段階と、 各計算素子に対応する値が計算素子毎に一致するが異なる計算素子間で不一致 標識であるならば計算素子の一方を故障しているものとして指定する段階と、 で構成されることを特徴とする請求の範囲第36項に記載の方法。 38.更に、各計算素子に対応する値に対して実行された計算の結果と各コント ローラに対応する値に対して実行された計算の結果とが等しくないとき、 一方の計算素子に対応する値全部を計算素子毎に比較する段階と、 一方の計算素子のみに対応する値が不一致であるならば計算素子の一方の接続 線を故障したものとして指定する段階と、 で構成されることを特徴とする請求の範囲第36項に記載の方法。 39.更に、各計算素子に対応する値に対して実行された計算の結果と各コント ローラに対応する値に対して実行された計算の結果とが等しくないとき、 一方の計算素子に対応する値全部を計算素子毎に比較する段階と、 二つ以上の計算素子に対応する値が不一致であれば、二つ以上の計算素子に接 続されたコントローラを故障したものとして指定する段階と、 で構成されることを特徴とする請求の範囲第36項に記載の方法。 40.コントローラと、 コントローラに接続された第一計算素子と、 コントローラに接続された第二計算素子と、 第一と第二の計算素子による入出力動作を中途妨害するための手段と、 中途妨害された入出力動作をコントローラへ送信するための手段と、 で構成され、 第一計算素子は、第二計算素子が実行するときと同じ周期数単位で命令セット の各命令を実行する、 ことを特徴とするコンピュータシステム。 41.コントローラと第一と第二の計算素子とは各々業界標準のマザーボードを 備えていることを特徴とする請求の範囲第40項に記載のコンピュータシステム。 42.更に、第一コントローラと第一と第二の計算素子とに接続された第二コン トローラで構成されることを特徴とする請求の範囲第 項に記載のコンピュータ システム。 43.第一コントローラと第一計算素子とは第一位置に配置され、第二コントロ ーラと第二計算素子とは第二位置に配置され、更に、第一コントローラを第二コ ントローラに、第一コントローラを第二計算素子に、および第二コントローラを 第一計算素子に接続する通信リンクで構成されることを特徴とする請求の範囲第 42項に記載のコンピュータシステム。 44.更に、 第三コントローラと、 第三コントローラに接続された第四コントローラと、 第三コントローラと第四コントローラとに接続された第四計算素子と、 第三と第四のコントローラを第一と第二のコントローラに接続するための手段 と、 計算素子間に計算タスクを分散するための手段と、 で構成され、 第一と第二の計算素子は第一の計算タスク組を実行し、第三と第四の計算素子 は第二の計算タスク組を実行し、 第三と第四の計算素子は、第一と第二の計算素子が命令を実行する場合と同じ 周期数単位で命令セット中の各命令を実行する、 ことを特徴とする請求の範囲第42項に記載のコンピュータシステム。 45.第一コントローラと第一計算素子とを第二コントローラと第二計算素子と から遠く離して配置して災害に対する耐性を提供することを特徴とする請求の範 囲第42項に記載のコンピュータシステム。 46.前記第一と第二の計算素子各々は更に量子割込みを発生させるための手段 で構成されることを特徴とする請求の範囲第40項に記載のコンピュータシステム 。 47.第一コントローラと、 第一コントローラに接続された第二コントローラと、 第一と第二コントローラに接続された第三コントローラと、 第一と第二コントローラに接続された第一計算素子と、 第二と第三コントローラに接続された第二計算素子と、 第一と第三コントローラに接続された第三計算素子と、 で構成されるコンピュータシステム。 48.第一コントローラと第一計算素子とを他のコントローラと計算素子とから 遠く離して配置して災害に対する耐性を提供することを特徴とする請求の範囲第 47項に記載のコンピュータシステム。 49.更に、 第一計算素子による入出力動作を中途妨害するための手段と、 中途妨害された入出力を第一計算素子から第一と第二のコントローラへ送信す るための手段と、 第二計算素子による入出力動作を中途妨害するための手段と、 中途妨害された入出力を第二計算素子から第二と第三のコントローラへ送信す るための手段と、 第三計算素子による入出力動作を中途妨害するための手段と、 中途妨害された入出力を第三計算素子から第一と第三のコントローラへ送信す るための手段と、 で構成されることを特徴とする請求の範囲第47項に記載のコンピュータシステ ム。 50.更に、 第四コントローラと、 第四コントローラに接続された第五コントローラと、 第四と第五のコントローラに接続された第六コントローラと、 第四と第五のコントローラに接続された第四計算素子と、 第五と第六のコントローラに接続された第五計算素子と、 第四と第六のコントローラに接続された第六計算素子と、 第一と第二と第三のコントローラを第四と第五と第六のコントローラに接続す るための通信リンクと、 で構成され、 第一と第二と第三のコントローラおよび第一と第二と第三の計算素子は第一位 置にあり、第四と第五と第六のコントローラ及び第四と第五と第六の計算素子は 第二位置にある、 ことを特徴とする請求の範囲第47項に記載のコンピュータシステム。
JP1995515658A 1993-12-01 1994-11-15 故障から立直りが速い/故障に対する耐性がある計算処理 Expired - Lifetime JP3679412B6 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15978393A 1993-12-01 1993-12-01
US08/159,783 1993-12-01
PCT/US1994/013350 WO1995015529A1 (en) 1993-12-01 1994-11-15 Fault resilient/fault tolerant computing

Publications (3)

Publication Number Publication Date
JPH09509270A true JPH09509270A (ja) 1997-09-16
JP3679412B2 JP3679412B2 (ja) 2005-08-03
JP3679412B6 JP3679412B6 (ja) 2006-01-11

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011523814A (ja) * 2008-06-02 2011-08-18 ティティーテフ コンピュータテクニーク アクティエンゲゼルシャフト 分散形コンピュータネットワーク内のローカルクロックに同期させるための方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01232027A (ja) * 1988-03-14 1989-09-18 Mitsui Eng & Shipbuild Co Ltd 熱溶融性粉末を用いた造形方法
JPH0278531A (ja) * 1987-12-23 1990-03-19 Cubital Ltd 三次元モデル自動形成システムと方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0278531A (ja) * 1987-12-23 1990-03-19 Cubital Ltd 三次元モデル自動形成システムと方法
JPH01232027A (ja) * 1988-03-14 1989-09-18 Mitsui Eng & Shipbuild Co Ltd 熱溶融性粉末を用いた造形方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011523814A (ja) * 2008-06-02 2011-08-18 ティティーテフ コンピュータテクニーク アクティエンゲゼルシャフト 分散形コンピュータネットワーク内のローカルクロックに同期させるための方法

Also Published As

Publication number Publication date
US5600784A (en) 1997-02-04
EP0974912B1 (en) 2008-11-05
EP0974912A3 (en) 2000-07-19
AU1182095A (en) 1995-06-19
AU4286697A (en) 1998-01-15
EP0986008A3 (en) 2000-07-19
DE69435090T2 (de) 2009-06-10
CA2177850A1 (en) 1995-06-08
DE69435090D1 (de) 2008-05-29
EP0986008A2 (en) 2000-03-15
AU711419B2 (en) 1999-10-14
DE69424565T2 (de) 2001-01-18
US5956474A (en) 1999-09-21
EP0731945A1 (en) 1996-09-18
AU4286497A (en) 1998-01-15
US5615403A (en) 1997-03-25
EP0731945A4 (en) 1997-02-12
EP0986008B1 (en) 2008-04-16
EP0986007A3 (en) 2001-11-07
EP0986007A2 (en) 2000-03-15
AU4286597A (en) 1998-01-15
EP0731945B1 (en) 2000-05-17
AU680974B2 (en) 1997-08-14
US6038685A (en) 2000-03-14
EP0974912A2 (en) 2000-01-26
DE69424565D1 (de) 2000-06-21
WO1995015529A1 (en) 1995-06-08
JP3679412B2 (ja) 2005-08-03
AU711456B2 (en) 1999-10-14
AU711435B2 (en) 1999-10-14
DE69435165D1 (de) 2008-12-18

Similar Documents

Publication Publication Date Title
EP0974912B1 (en) Fault resilient/fault tolerant computing
JP2532317B2 (ja) プロセス制御システムにおける汎用入出力冗長方式のバックアップ方法
EP1125201B1 (en) Method and apparatus for maintaining consistency of data stored in a group of mirroring devices
JP2505928B2 (ja) フォ―ルト・トレラント・システムのためのチェックポイント機構
US5398331A (en) Shared storage controller for dual copy shared data
US6205565B1 (en) Fault resilient/fault tolerant computing
US6145066A (en) Computer system with transparent data migration between storage volumes
CA2530913A1 (en) Fault tolerant computer system and interrupt control method for the same
US8095828B1 (en) Using a data storage system for cluster I/O failure determination
KR101038464B1 (ko) 정보 처리 장치 및 제어 방법
JP3679412B6 (ja) 故障から立直りが速い/故障に対する耐性がある計算処理
JPH06230995A (ja) 二重化プロセッサ装置
JP2876676B2 (ja) プロセッサ間通信制御方法
AU7167300A (en) Fault handling/fault tolerant computing

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040316

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040616

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040916

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: 20050419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050513

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090520

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100520

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110520

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120520

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130520

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130520

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term