JP2001502449A - フォールト回復/フォールト許容計算 - Google Patents

フォールト回復/フォールト許容計算

Info

Publication number
JP2001502449A
JP2001502449A JP10514775A JP51477598A JP2001502449A JP 2001502449 A JP2001502449 A JP 2001502449A JP 10514775 A JP10514775 A JP 10514775A JP 51477598 A JP51477598 A JP 51477598A JP 2001502449 A JP2001502449 A JP 2001502449A
Authority
JP
Japan
Prior art keywords
request
controller
error
message
data
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
JP10514775A
Other languages
English (en)
Other versions
JP4544651B2 (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 JP2001502449A publication Critical patent/JP2001502449A/ja
Application granted granted Critical
Publication of JP4544651B2 publication Critical patent/JP4544651B2/ja
Anticipated expiration legal-status Critical
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/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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/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
    • 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/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/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Abstract

(57)【要約】 計算エレメント(14a、14b)と、データソースから計算エレメントにデータを提供するコントローラ(12)を含むコンピュータシステム(10)において、計算エレメントへのデータ転送が同期化される。計算エレメント(14a、14b)からのデータ要求は遮断されコントローラに送信される。少なくとも第一コントローラが、要求データを計算エレメントに送信し遮断された要求に第二コントローラがどう対応するかを示すことにより応答する。

Description

【発明の詳細な説明】 フォールト回復/フォールト許容計算 発明分野 本発明は、フォールト回復及びフォールト許容計算に関する。 フォールト回復するコンピュータシステムはハードウェア故障があっても継続 して機能する。このシステムはアベイラビリティ又はインテグリティのいずれか のモードでのみ作動する。システムが「アベイラブル」なのは、ハードウェア故 障が許容不可能な遅延をユーザーアクセス中に生じさせない時である。従って、 アベイラビリティモードで作動するシステムは、ハードウェアエラーに遭遇した 時にもし可能ならば、オンラインのままであるように構成される。ハードウェア 故障がデータの喪失又は汚損を生じさせない時、システムはデータのインテグリ ティを保つことになる。従ってインテグリティモードで作動するシステムはデー タの喪失又は汚損を避けるよう構成されており、たとえシステムがデータの喪失 又は汚損を回避するためオフラインにならねばならない場合でも当然そうした回 避がなされる。 フォールト許容システムでは、アベイラビリティとインテグリティが強調され る。フォールト許容システムは単一のハードウェア故障に遭遇した時は勿論、状 況によっては複数のハードウェア故障に遭遇し時でもデータインテグリティを維 持する。 災害許容システムはフォールト許容システムの一歩先を行くもので、自然又は 人工的な災害を原因とする計算機能が失われても、システムのアベイラビリティ を妨害したり、データを汚損・喪失させたりしないことを要求する。 通常、フォールト回復/フォールト許容システムは幾つかのプロセッサを含ん でおり、このプロセッサは計算エレメント又はコントローラとして機能するか又 は他の役割を果たしてもよい。多くの事例において、プロセッサの作動又はプロ セッサ間のデータ送信を同期化することが重要である。 発明の背景 ある態様で一般に本発明の特徴は、計算エレメントとデータソースから前記計 算エレメントにデータを提供する複数コントローラとを含むコンピュータシステ ムにおいて、前記計算エレメントへデータを同期転送することである。計算エレ メントからのデータ要求が、遮断されて複数のコントローラに送信される。コン トローラは要求に応答し、少なくとも1つのコントローラが、要求データを計算 エレメントに送信しかつ遮断された要求に別のコントローラがどう応答するかを 表示することで対応をする。 本発明の実施例には、以下の特徴が少なくとも1つ含まれていてもよい。或る コントローラは、前記遮断された要求に対応するデータを自分が有していない旨 と、別のコントローラが計算エレメントにデータを送信することで遮断された要 求に応じる旨を表示し、遮断された要求に応答してもよい。遮断された要求に対 し或るコントローラがなす各応答には、他の各コントローラが前記遮断された要 求にどう対応するかについての表示を含んでいてよい。 計算エレメントは、遮断された要求に対する応答の一貫性を比較してもよい。 他の各コントローラが遮断された要求にどう対応するかについての表示を各応答 が含んでいる場合、比較することの中に、表示の一貫性を比較することが含まれ ていてもよい。2つ以上のコントローラの応答が要求データを含んでいる場合、 比較することの中に、データの一貫性を比較することが含まれていてもよい。計 算エレメントは、比較の結果と全コントローラから応答を受信した旨をコントロ ーラに知らせてもよい。 応答に一貫性がない場合、或るコントローラを作動不能状態にしてもよい。更 には、全コントローラからの応答を計算エレメントが所定の時間内に受信しない 場合、エラー条件が生成されてもよい。 或るデータソースは或るコントローラと関連していてもよく、前記コントロー ラは、前記データソースから要求データを遮断された要求に応じて得てもよい。 或るコントローラは、別のコントローラの状態の記録を維持し、前記別のコン トローラが前記遮断された要求に対してどう対応するかを表示する際に、前記記 録を使用してもよい。あるデータソースが前記他のコントローラと関連している 場合、前記記録が前記データソースの状態を含んでいてもよい。各コントローラ は他の全てのコントローラの状態の記録を維持してもよく、前記他のコントロー ラが前記遮断された要求に対してどう対応するかを表示するため、前記記録を使 用してもよい。各コントローラがあるデータソースと関連している場合、各コン トローラは、他の全てのコントローラに関連するデータソースの状態の記録を維 持してもよい。 あるコントローラと関連するあるデータソースが変化した場合、コントローラ は、遮断された要求に対する他のコントローラからの応答を棄却する指示を計算 エレメントに送信してもよい。計算エレメントは、遮断された要求に対する他の コントローラからの応答を棄却しかつ応答を棄却した旨の知らせをコントローラ に送信することにより、前記指示に応答してもよい。あるコントローラは、デー タソースの状態の記録を更新することで、前記知らせに対し応答してもよい。記 録更新後、前記コントローラは、要求データを計算エレメントに再送信し、他の コントローラが遮断された要求に対しどう対応するかを表示してもよい。 あるデータソースが各コントローラと関連する場合、各コントローラは、ある 関連したデータソースが要求を処理すると期待されるか否かを決定し、前記関連 したデータソースが要求を処理すると期待される場合には、要求を前記関連した データソースに送信し、前記関連したデータソースからの要求の結果を受信し、 前記要求に関する前記結果を送ることで、遮断された要求に応答してもよい。前 記関連したデータソースが要求を処理すると期待されない場合は、コントローラ は、要求に対しデータが提供されない旨計算エレメントに知らせることで応答し てもよい。 別の態様では一般に本発明は、計算エレメントとデータソースから計算エレメ ントにデータを提供するコントローラを有するコンピュータシステムにおいて、 コントローラを計算機に対し非同期的に作動させながら、同一インストラクショ ンストリームを処理する計算処理エレメント間に同期を維持するという特徴を有 している。同一インストラクションストリームを処理する各計算処理エレメント は、インストラクションストリーム中の共通点でインストラクションストリーム の処理を停止する。各計算処理エレメントは次に、フリーズ要求メッセージを生 成してコントローラに送信する。或るコントローラが或る計算処理エレメントか らのフリーズ要求メッセージを受信し、他の計算処理エレメントからのフリーズ 要求メッセージを待ち受け、同一インストラクションストリームを処理する各計 算処理エレメントからフリーズ要求メッセージを受信すると、フリーズ応答メッ セージを生成し前記フリーズ応答メッセージを計算処理エレメントに送信する。 各計算処理エレメントは、或るコントローラからフリーズ応答メッセージを受信 すると、フリーズ要求メッセージが送信された他のコントローラからのフリーズ 応答メッセージを待ち受け、各コントローラからフリーズ応答メッセージを受信 すると、フリーズリリースメッセージを生成してコントローラへ送信し、インス トラクションストリームの処理を再開する。 本発明の実施例は以下の特徴を少なくとも1つ含んでいてもよい。インストラ クションストリーム中の或る共通点はI/O操作、所定数のインストラクション の発生のいずれか又は両者に対応してもよい。或るコントローラはフリーズ応答 メッセージ中に時間更新を含んでもよく、フリーズ要求メッセージが送信され各 コントローラからのフリーズ応答メッセージを受信時に、或るフリーズ応答メッ セージからの時間更新を使ってシステム時間を更新してもよい。計算エレメント は、特定のコントローラが生成したフリーズ応答メッセージからの時間更新を使 ってもよい。 フリーズ要求メッセージが送信された各コントローラからのフリーズ応答メッ セージを受信した時、計算エレメントは、コントローラからのフリーズ応答メッ セージを受信する前に或るコントローラから受信したデータを処理してもよい。 別の態様の場合、一般的に本発明は、エラー報告エレメントとエラー処理エレ メントを有するコンピュータシステム中でフォールトを扱う特徴を有する。或る エラー報告エレメントはエラー条件を検出し、エラー条件に関する情報をエラー メッセージとして、前記エラー報告エレメントに接続されたエラー処理エレメン トへ送信する。少なくとも1つのエラー処理エレメントはエラーメッセージを、 前記エラー報告エレメントに接続されたエラー処理エレメントへ再送信する。 別の態様の場合一般的に本発明は、エラー報告エレメントとエラー処理エレメ ントを有するコンピュータシステム中でフォールトを扱う特徴を有する。複数エ ラー報告エレメントはエラー条件を検出し、エラー条件に関する情報をエラーメ ッセージとして、前記エラー報告エレメントに接続されたエラー処理エレメント へ送信してもよい。少なくとも1つのエラー処理エレメントは、複数のエラー報 告エレメントから来る関係エラーメッセージからの情報を組合せ、エラー条件の ソースを特定する際に前記組み合わせ情報を使う。 エラー処理エレメントは関係するエラーメッセージからの情報を組み合わせる のに状態表を使ってもよい。エラー処理エレメントは、特定のエラーを識別する 識別子と、エラーメッセージによって表されるエラーを生じさせたサブコンポー ネントを識別するエラーターゲットと、エラーメッセージを生成したエラー報告 エレメントとエラーメッセージを受信したパスを識別するエラー報告エレメント を使って、エラーメッセージを表してもよい。エラー処理エレメントは、以前に 受信したエラーメッセージが表す状態に対して受信したエラーメッセージを比較 することによって、エラーメッセージが関係あるか否かを決定してもよい。 本発明の特徴と利点は、図面を含む以下の説明と請求項から明らかとなろう。 図面の簡単な説明 図1は、部分的にフォールト回復するシステムのブロック線図である。 図2は、図1のシステムのシステムソフトウェアのブロック線図である。 図3は、図2のシステムソフトウェアのIOPモニターが用いる手順のフロー チャートである。 図4は、図1のシステムのIPIモジュールのブロック線図である。 図5は、図1のシステムの状態移行表である。 図6は、フォールト回復システムのブロック線図である。 図7は、分散型のフォールト回復システムのブロック線図である。 図8は、フォールト許容システムのブロック線図である。 図9は、フォールト図8のシステムのIOPが用いるフォールト診断手順のフ ローチャートである。 図10は、災害許容システムのブロック線図である。 図11は、コンピュータシステムのソフトウェアコンポーネントのブロック線 図である。 図12A、12Bは、CEとIOPの間で転送される情報を示すフロー線図で ある。 図13は、CEトランスポートが実行するフラッシュ手順のフローチャートで ある。 図14A、14Bは、物理的システム構成と論理的システム構成のブロック線 図である。 図15は、フラッシュ手順のフローチャートである。 図16は、マイクロコードの状態移行表である。 図17は、システムのブロック線図である。 図18は、エラー処理手順のフローチャートである。 図19Aは、シンドロームソース表である。 図19Bは、図19Aのシンドロームソース表に対応する状態移行表である。 図20は、コールアウト階層線図である。 図21A、21B、22は、コールアウトエレメントをリストした表である。 図23は、欠陥コンポーネントを特定する手順のフローチャートである。 好適実施例の説明 図1に示すフォールト回復システム10は、I/Oプロッセサ(IOP)12 と、2個の計算エレメント(CEs)14a、14b(CEs14と集合的に表 す)を有する。システム10はIOP12を1個しか持たないから、IOP12 で起きた故障から回復することはできない。従ってシステム10は完全にフォー ルト回復する訳ではない。 IOP12は2個の相互プロッセサ相互接続モジュール(IPI)16a、1 6bを有し、それぞれは対応するIPIモジュール18a、18bにケーブル2 0a、20bにより接続される。IOP12は更にプロッセサ12、メモリシス テム24、2個のハードディスクドライブ26、28、電源供給装置30を有す る。同様に各CE14は、プロッセサ32、メモリシステム34、電源供給装置 36を有する。独立した電源供給装置36を使用し、電源供給装置故障時でもフ ォールト回復を確保する。プロッセサ32a、32bは各指示に関し、プロッセ サ32aがある指示を実行するのに要するサイクル数と、プロッセサ32bが同 一指示を実行するのに要するサイクル数とが等しいという点で互いに同一である 。図示の実施例の場合、システム10を満たすには、プロッセサ22、32に対 し標準インテル486ベースのマザーボードが、メモリシステム24、34に対 し4メガバイトのメモリが使われてきた。 システム10のIOP12とCEs14a、14bは変化しないOSとアプリ ケーションソフトウェアを実行させるが、これにはハードドライブ26がIOP 12用のブートディスクとして、ハードドライブ28がCEs14用のブートデ ィスクとして使われる。少なくとも2個のIOPを持つ真にフォールト回復/フ ォールト許容するシステムの場合、各ハードドライブも二重にされることになろ う。 図示実施例の場合、IOP12とCEs14のためのOSはDOSである。し かし、他のOSも使える。IOP12は更に、CEs14が作動させたOSから 異なるOSを作動させることができる。例えば、CEs14がDOSを作動させ ている最中にIOP12はUnixを作動させることができる。この手法は、周 辺装置を支援しないOSから前記周辺装置にCEs14をアクセスできるように するので有利である。例えば、CD−ROMドライバを支援しないOSをCEs 14が作動させ、CD−ROMドライバを支援するOSをIOP12が作動させ ることを想定した場合、CEs14は例えばハードドライブにアクセスするため に使われたのと同一のI/O要求を発することにより、CD−ROMドライブに アクセスできよう。IOP12は次に、I/O要求をCD−ROMドライブにア クセスするのに適したI/O要求に翻訳するであろう。 図2はシステム10がCEs14の立ち上げと同期化を制御し、CEs14中 のローカル時間を作動不能にし、CEs14からIOP12への全てのI/O実 行要求を向け直し、I/O要求に関する結果を、もしあるなら、IOP12から CEs14へ返却するために用いている特殊化されたシステムソフトウェア40 の全体を示している。 システムソフトウェア40は2組のIPI−BIOS42を有し、各BIOS は各CE14のIPIモジュール18中に置かれ、ROMをベースとしている。 IPI−BIOS42は立ち上げと同期化の際に使われる。CE14が立ち上げ られると、IPI−BIOS42は、システムBIOS割込表のI/O割込アド レスをCEドライバ44で制御されるアドレスに置き換える。置き換えられた割 込アドレスは、ビデオ、固定ディスク、シリアルコミュニケーション、キーボー ド、日時に関する諸サービスに対応するアドレスを含んでいる。CEドライバ4 4はCEブートディスク28に記憶されCEs14で作動される。CEドライバ 44はシステムBIOSへのI/O要求を遮断し、この要求をIPIモジュール 18を通じてIOP12に実行するよう向け直す。CEドライバ44は更にIP Iモジュール18からの割込要求に応答し、システム時計を作動不能にし、IO Pモニタ48から供給される情報に基づいてCEs14の日時を制御する。 IOPブートディスク26上に置かれIOP12によって作動されるIOPド ライバ46は、CEs14からのI/O要求をIOPモニタ48が処理するよう 向け直す。その後モニタ48は要求結果をIOPモニタ48からCEs14へと 送信する。IOPドライバ46はパケットプロトコルを使いCEドライバ44と コミュニケートする。 IOPモニタ48はIOPブートディスク26上に置かれIOP12によって 作動される。IOPモニタ48はシステム10を制御し実際のI/O要求を実行 し結果を作り出し、その結果をIOPドライバ46がCEs14に送信する。 システムソフトウェア40は更に、IOP12上で作動するコンソールソフト ウェア49を有し、システム10をユーザーが制御できるようにする。コンソー ルソフトウェア49を使ってユーザーは、CE14のリセット、立ち上げ、同期 をさせることができる。ユーザーは更に、CEs14の一方又は両方をリセット 後又は起動時に、自動的に立ち上げたり(autoboot)、自動的に同期させ たり(autosync)ようにセットすることができる。CE14をそれぞれ に制御できることは正常作動中、テスト目的の両方に役立つ。コンソールソフト ウェア49を使えばユーザーは、IOPモニタ48がミス比較エラーに遭遇した 際にシステム10を、IOPモニタ48が両CEs14を停止させるインテグリ ティモード、IOPモニタ48がCE14aを作動不能にする第一アベイラビ リティモード、IOPモニタ48がCE14bを作動不能にする第二アベイラビ リティモード、のいずれかの状態にすることができる。代替実施例のコンソール ソフトウェア49はIOP12とコミュニケイトする独立したプロセッサを使っ て実行される。 各CE14は他方のCE14が作動させる同一アプリケーション/同一OSの コピーを作動させる。更に、メモリシステム34a、34bは同一であり、CE 14のオペレーティングコンテキストは同期時毎に同じである。従ってIOPモ ニタ48はCEs14から同一シークエンスのI/O要求を受信すべきである。 図3に示すようにIOPモニタ48は手順100に従ってI/O要求を処理・ 監視する。最初にIOPモニタ48はCEs14の内の一方からのI/O要求を 待っている(ステップ102)。例えばCE14bからのI/O要求パケットを受 信したとき、IOPモニタ48はCE14aからのI/O要求、タイムアウト期 間満了のいずれかに対し待機する(ステップ104)。何故ならシステム10で使 われるDOSは、I/O要求を処理する間にアプリケーションの実行を停止する ので、IOPモニタ48はCE14aからのI/O要求を待つ間(ステップ10 4)に、CE14bからのI/O要求を受信しないことが保証されている。 次にIOPモニタ48は、タイムアウト期間が満了したか否かをチェックする (ステップ106)。満了してない(即ち、CE14aからのI/O要求パケット が届いた)場合、IOPモニタ48はパケットのチェックサムを比較する(ステ ップ108)。チェックサムが等しい場合、IOPモニタ48はI/O要求を処 理する(ステップ110)。I/O要求を処理後、IOPモニタ48は現在の日時 を求めIOP12のシステムBIOSに要求を発する(ステップ112)。日時を 受信後IOPモニタ48は、日時とI/O要求に関する結果を含んだIPIパケ ットを組み立て(ステップ114)、CEs14に送信すべく本パケットをIOP ドライバ46に送信する(ステップ116)。パケットを受信したCEs14は、 送信された日時を使って自分のローカル時間を更新するが、このローカル時間は 更新が行われない場合は記述のように作動不能になる。 DOSの要求通り、IOPモニタ48がI/O要求に関する結果をIOPドラ イバ46経由で返却するまではCEs14中における実行は一時中断される。実 行再開まで両CEs14の日時は、IPIパケットから送信される日時に対応す る共通の値に更新される。従ってCEs14では時間同期が保たれる。送信され る日時はメタ時間と呼ばれる。マルチタスキングOSを使う場合、IOPモニタ 48でI/O要求が実行されていてもCEs14での実行は中断されない。代わ りにCEs14での処理が中止されるのは、IOPモニタ48がI/O要求の処 理を開始した(ステップ110)ことを示すアクノレッジメントを受信するまで のみであろう。このアクノレッジメントは日時を含むことになろうし、ローカル 時計を更新するのに使われることになろう。 IPIパケットをIOPドライバ46に送がオンライン状態あることを確認し (ステップ118)、オンライン状態なら、CEs14の一方からのI/O要求に 対し待機する(ステップ102)。 タイムアウト期間が満了した場合(ステップ106)、IOPモニタ48は応答 し損なったCE14を作動不能にし(ステップ119)、I/O要求の処理を開始 する(ステップ110)。 CEs14から来るパケットのチェックサムにミス比較がある場合(ステップ 108)、IOPモニタ48はシステム10がインテグリティモード又はアベイ ラビリティモードの作動状態にあるか否か見極めるチェックを行う(ステップ1 20)。システム10がアベイラビリティモードの作動状態にある場合、IOP モニタ48は選択されたアベイラビリティモードに基づき適当なCE14を作動 不能にし(ステップ122)、I/O要求を処理する(ステップ110−116)。 その後作動不能にされたCE14が修復されて再起動されているかを決定する( ステップ118)。修復・再起動されてない場合、IOPモニタ48はオンライ ン中にあるCE14からのI/O要求を待ち受ける(ステップ124)。CEs1 4の一方が作動不能の場合、システム10はもはやフォールト回復の状態ではな く、IOPモニタ48は直ちに受信したI/O要求を処理する(ステップ110) 。 システム10がインテグリティモードで作動中にミス比較を検出すると、IO Pモニタ48は両CEs14を作動不能にし(ステップ126)、処理を止める( ステップ128)。 再度図1、2に戻ると、例えばCE14のアプリケーション又はOSがシステ ムBIOSに非I/O呼びかけをすると、システムBIOSは要求を実行して、 システムソフトウェア40を呼び起こすことなく結果をアプリケーションに返却 する。しかしアプリケーション又はOSがSI/O−BIOS呼びかけをすると 、CEドライバ44aはI/O要求を遮断する。I/O要求を遮断後のCEドラ イバ44aはI/O要求をIPIパケットに包み込み、そのIPIパケットをI OP12に送信する。 IOP12のIPIモジュール16aがSCE14aからのIPIパケットの 送信を受信すると、IPIモジュール16aはIOPドライバ46への割込を生 成する。IOPドライバ46は次にIPIパケットを読み取る。 前記のようにIOPモニタ48は、CE14aからのIPIパケットに対し手 順100従って応答する。やはり前記のようにハードウェアに欠陥がないものと して、IOPドライバ46は、I/O要求に関する結果とCEs14に対する日 時を含んだIPIパケットを送信することになる。 CEs14のIPIモジュール18はIOP12からIPIパケットを受信す る。CEドライバ44はIPIパケットを開いてCEs14の日時を更新し、C Es14上で作動するアプリケーション又はOSにCEs14に関する制御を返 却する。 所定時間内にI/O要求が発せられない場合、CE14のIPIモジュール1 8は、CE14のCEドライバ44を呼び起こすいわゆる量子割込を生成する。 これに応じてCEドライバ44は、量子割込IPIパケットを生成しIOP12 に送信する。IOPモニタ48はその量子割込IPIパケットを、I/O要求を 伴わないIPIパケットとして処理する。従ってIOPモニタ48は、入ってく る量子割込IPIパケットを検出し(図3のステップ102)、合致する量子割込 IPIパケットを他方のCE14から受信した場合(図3のステップ104、1 06、108)、現在の日時に関する要求をIOP12のシステムBIOSに対 して発する(図3のステップ112)。次にIOPモニタ48は現在の日時を量子 応答IPIパケットに包み込み(図3のステップ114)、そのパケットにをIO Pドライバ46はCEs14に送る(図3のステップ116)。CEドラ イバ44は日時を更新することと、CEs14上で作動するアプリケーション又 はOSにCEs14に関する制御を返却することで、量子応答IPIパケットに 応答する。 IOPモニタ48が所定タイムアウト期間内に量子割込IPIパッケージを他 のCE14から受信しない場合(図3のステップ106)、IOPモニタ48は応 答のないCE14を作動不能にすることで応答する。 図1に示すように、IPIモジュール16、18とケーブル20は、プロセッ サ22、32を提供するのに使われる標準インテル486ベースのマザーボード から、フォールト回復システムを作るのに必要なハードウェア全てを提供する。 IPIモジュール16、18には同一のボードを使われるが、各モジュールは同 じ様な機能を実行する。 図4に示すようにIPIモジュール18は、CE14のプロセッサのシステム バス間のI/O要求と応答に対し又IPIモジュール18のパラレルインタフェ イス52に対してコミュニケートする制御論理50を有している。パラレルイン タフェイス52は次に、IPIモジュール16のパラレルインタフェイス52と ケーブル20を通してコミュニケートする。パラレルインタフェイス52は16 ビットデータ出力ポート54、16ビットデータ入力ポート56、制御ポート5 8を有している。ケーブル20の構成は、データ出力ポート54がIPIモジュ ール16のデータ入力ポートに、データ入力ポート56がIPIモジュール16 のデータ出力ポートに、制御ポート58がIPIモジュール16の制御ポートに 接続されるようになされる。制御ポート58は、IPIモジュール18とIPI モジュール16の間でハンドシェーキングプロトコルを実行する。 制御論理50はIPI−BIOSのROM60にも接続される。起動時、制御 論理50はIPI−BIOS42、即ちIPI−BIOSのROM60の内容を プロセッサ32のシステムバスを通しプロセッサ32へ転送する(図2)。 IPIモジュール18上に置かれるQIカウンタ62は上述の量子割込を生成 する。QIカウンタ62はプロセッサ22、32のシステム時計に接続される時 計入力64と、制御論理50に接続されるゲート入力66を有している。ゲート 入力66を使い、QIカウンタ62のカウンタ値を起動・リセットする。起動さ れたQIカウンタ62は、プロセッサ32のシステム時計の各サイクル毎にカウ ンタ値を1つずつ段階的に減らす。カウンタ値が零に達するとQIカウンタ62 は、CEドライバ44を上述のように起動させる量子割込を生成する(図2)。 CEドライバ44は、各I/Oトランザクションの開始時にQIカウンタ62 を止める。CEドライバ44は、QIデアクチベーションアドレスとして知られ ている第1アドレスにI/O書込を要求することにより、QIカウンタ62を止 める。制御論理50はI/O書込要求を検出し、ゲート入力66を通じてQIカ ウンタ62を止める。この特殊なI/O書込は制御のみを目的としており、制御 論理50はI/O書込をパラレルインタフェイス52へは回さない。各I/Oト ランザクションの終了時CEドライバ44は、QIアクチベーションアドレスと して知られている第2アドレスにI/O書込を要求することにより、QIカウン タ62をリセットし起動させる。制御論理50はQIカウンタ62をリセット・ 起動させることで応答する。 代替手法の場合、量子割込はデバッギング又はプロセッサ32中で利用可能な 他の特徴を使って生成される。普通利用されるプロセッサはデバッギング又は、 トラップインストラクションの以後に続いて選定された数だけのインストラクシ ョンが完了した後に、プロセッサ制御を指定されたプログラムに転送することで エラーを捕まえるトラップインストラクションを有している。本手法の場合、C Eドライバ44がプロセッサ32の制御をアプリケーション又はOSに返却する 度にCEドライバ44はトラップインストラクションを発し、プロセッサ32の 制御を例えば300個のインストラクションを完了した時点でCEドライバ44 に与えるよう指示する。プロセッサ32が指示された300個のインストラクシ ョンを完了すると、トラップインストラクションはプロセッサ32の制御をCE ドライバ44に返却させる。指示された数だけのインストラクションが完了する 以前にI/O要求がCEドライバ44を起動させた場合、CEドライバ44はト ラップインストラクションをキャンセルさせるインストラクションを発する。 オフライン状態にあるCE14を起動させるのにも使われる。以下に示すよう に、オフライン状態のCE14を起動させる前に、作動しているCE14のメモ リシステム34の内容はオフライン状態のCE14中にコピーされる。作動中の CE14に対するコピーの影響を最小に抑えるため、作動中のCE14のプロセ ッサ32は処理を継続することを許され、メモリのコピーは、作動中のCE14 のプロセッサ32のシステムバスが使われていないサイクル中だけとされる。 メモリがコピーされている最中にプロセッサ32が処理を継続できるようにす るため、IPIモジュール18は、オフライン状態のCE14へ既にコピーされ たアドレスにプロセッサ32がメモリ書込をするのを明らかにする。そうするた めに、制御論理50はシステムバスを監視し、既にコピーされたアドレスにプロ セッサ32が書込をすると、そのアドレスをFIFO68に記憶する。メモリの 転送が完了又はFIFO68が一杯になると、FIFO68中に記憶されたメモ リアドレスに関連するメモリロケーションの内容は、オフライン状態のCE14 中にコピーされ、FIFO68は空になる。他の手法の場合、FIFO68はメ モリアドレスとメモリアドレスに関連するメモリロケーションの内容との両者を 記憶する、又は現に書かれているメモリアドレスが属するメモリブロックのブロ ックアドレスを記憶するように変更される。 IPIモジュール18は、非BIOS−I/O要求も扱う。コンピュータシス テムの中には、BIOSが遅すぎてビデオ表示のようなI/Oオペレーションを 有効に実行できないものがある。結果として、構造化や洗練度の進んでないOS 例えばDOSやUNIXの場合、アプリケーションはBIOSを巧みに回避し、 I/O装置に関連するアドレスに対して直接の読み取り又は書込を行うことで、 非BIOS−I/O要求できる。こうした非BIOS−I/O要求は、例えばI /Oのディスク読み取り・書込に連動してなされているようなシステム割込表を 変更することでは遮断できないので、同期化がI/Oインタフェイスを厳しく制 御を要求するシステムでは問題である。 この問題を解決し非BIOS−I/O要求をも分離させIOP12で管理させ るため、IPIモジュール18は、物理的I/O装置のハードウェアインタフェ イスを真似した仮想I/O装置を有する。この仮想I/O装置は仮想ディスプレ イ70、仮想キーボード72を有する。必要に応じ、仮想マウス、仮想シリアル ポート、仮想パラレルポートのような仮想I/O装置を使うこともできる。 制御論理50は実際、システムI/O装置への非BIOS−I/O要求に関連 してアドレスに向けられる読み取り・書込オペレーションについて、システムバ スを監視する。制御論理50はこうしたオペレーションを検知すると、オペレー ションを再構築するのに必要な情報を適当な仮想装置に記憶する。従って、例え ば制御論理50は表示に関連するアドレスに向けられた書込オペレーションを検 知すると、オペレーションを再構築するのに必要な情報を仮想ディスプレイ70 に記憶する。BIOS−I/O要求又は量子割込が起こる毎にCEドライバ44 は、仮想I/O装置をスキャンし、仮想装置が空でない場合は仮想装置に記憶さ れた情報をIPIパケットに組立て、IPIパケットをIOP12に送信する。 IOP12は、上記手順100を使ってパケットをBIOS−I/O要求のよう に処理する。制御論理50は仮想装置に向けられた読み取りを検出すると、この 読み取り要求をIOP12が処理するためのIPIパケットに組立てる。IOP 12はIPIパケットを標準的なBIOS−I/O要求のように処理する。 図5を参照すれば分かるように、各CE14は8つの状態内のどれか1つで必 ず作動している。許容可能状態の組合せは限られた数しかないので、システム1 0は必ず14個の状態の内のどれかで作動している。CEの主な作動状態はOF FLINE、RTB(ready to boot)、BOOTING、ACTI VE、RTS(ready to sync)、WAITING、M_SYNC( synchronizing as master)、S_SYNC(sync hronizing as slave)である。IOPモニタ48は、システ ム10の状態とコンソールソフトウェア49からのユーザーコマンドに基づきC Es14の作動状態を変える。コンソールソフトウェア49を通し、ユーザーは CE14をいつでもリセットできる。ユーザーがCE14をリセットするか、フ ォールトがCE14に起きた時は必ず、IOPモニタ48はCE14の状態をO FFLINEに変える。 起動時のシステム10は、両CEs14をOFFLINEの状態にして作動す る(状態150)。システム10は、CE14aがCE14bよりも先に作動状態 になる場合、図5に示された上側の状態で作動し(状態152−162)、CE1 4bが最初に作動状態になる場合、下側の状態で作動する(状態166−176) 。CEs14同時に作動状態となる場合、先に作動状態にあるとIOPモ ニタ48が認識したCE14が、作動状態に入る。あるCE14が立ち上げ要求 を発して準備できていることを表示すると、CE14の状態は、自分が自動ブー トにセットされていないならRTBに、又はCE14が自動ブートにセットされ ていればBOOTINGに変化する。例えば、両CEs14をOFFLINEの 状態にある時に、CE14aが立ち上げ要求を発しかつCE14aが自動ブート にセットされていないなら、CE14aの状態はRTB状態に変わる(状態15 2)。従って、IOPモニタ48は、ユーザーがコンソールソフトウェア49を 通しCE14aを立ち上げるのを待ち構える。ユーザーがCE14aを立ち上げ ると、CE14aの状態はBOOTINGに変化する(状態154)。ユーザーが CE14aをリセットすると、CE14aの状態はOFFLINEに変化する( 状態150)。 CE14aが立ち上げ要求を発した時に両CEs14がOFFLINEにある と、CE14aは自動立ち上げにセットされ、CE14aの状態はBOOTIN Gに変化する(状態154)。CE14aが上手く立ち上がると、CE14aの状 態はACTIVEに変わる(状態156)。 CE14aがACTIVEにありCE14bが立ち上げ要求を発した時、又は CE14aがOFFLINEからACTIVEに移行しつつある(状態152− 156)最中にCE14bが立ち上げ要求を発した時、CE14bの状態は、C E14bがautosyncにセットされていればRTS(状態158)に、そ うでなければWAITING(状態160)に変わる。CE14bの状態がRT S(状態158)に変化すると、IOPモニタは、ユーザーが同期化コマンドを CE14bに発するのを待ち構える。ユーザーが同期化コマンドを発すると、C E14bの状態はWAITING(状態160)に変わる。 CE14bの状態が一度WAITING(状態160)なると、IOPモニタ 48はCE14aのシステムメモリ34aの内容を、CE14bのシステムメモ リ34bにコピーする。メモリ転送が一度完了するとIOPモニタ48は、CE 14aが量子割込又はI/O要求IPIパケットを転送するのを待ち構える。パ ケットを受信時、IOPモニタ48は、CE14aの状態をM_SYNに、CE 14bの状態をS_SYN(状態162)に変える。この同期化には、IOPモ ニタ48がCE14aが量子割込又はI/O要求IPIパケットを転送するのを 待ち構えている最中に生じた如何なるメモリ変更にも応答することが含まれてい る。同期化完了すると、両CEs14の状態はACTIVE(状態164)変化 し、システム10は完全に作動状態にあるとみなされる。 代替実施例のIOPモニタ48は、CE14aの状態をM_SYNに、CE1 4bの状態をS_SYN(状態162)に変える以前に、メモリ転送が完了する のを待たない。代わりに、IOPモニタ48は、CE14aからIPIパケット を受信したときにこの状態変更を行い、同期化プロセスの一部としてメモリ転送 を実施する。 CE14bが立ち上げ要求を発する最初のCE14となる場合、同様の状態移 動が起こる。従ってCE14bが自動立ち上げにセットされてないとすると、C E14bはOFFLINE(状態150)からRTC(状態166)へ、次いで BOOTING(状態168)へ、次いでACTIVE(状態170)へ移行す る。同様に、CE14bが一度ACTIVEになり、CE14aがautosy ncにセットされてないとすると、CE14aはOFFLINE(状態170) からRTS(状態172)へ、次いでWAITING(状態174)へ、次いで S_SYNC(状態176)へ次いでACTIVE(状態164)へ移行する。 本発明の他の実施例例えば図6を見ると分かるように、フォールト回復システ ムは、2つのIOP202と、2つのCEs204を有する。各CE204はI PIカード206とケーブル208を経由し、各IOP202のIPIカード2 10に接続される。IOPs202はIPIカード210とケーブル212を経 由し互いに冗長系として接続される。システム200の各コンポーネントは冗長 なバックアップコンポーネントであるので、システム200完全になフォールト 回復の状態にある。代替的な手法ではケーブル208、210は、一対のLAN に置き換えることができ、LANには各IOP202とCE204が接続される る。実際LANはいつでもケーブル接続に置き換えることができる。 システム200はOSであり、アプリケーションソフトウェアサービス割込を することなくどのハードウェアでもアップグレードないし修繕することができる 。従って、各ハードウェアを順番に置換し、置換する度にシステ ム200を同期化することにより、システム200のハードウェア全体をサービ ス割込な置き換えることができる。同様にシステム200上のソフトウェアを最 小限のサービス割込(即ち、ソフトウェアをアップグレードする最中、アプリケ ーションは許容可能な期間、例えば2秒間、利用できなくなる。)でアップグレ ードできる。更にアベイラビリティを目的とする災害許容性を、各IOP/CE のペアを別の位置に置きコミュニケーションリンクを経由して当該ペアを接続す ることにより、得ることができる。 図7の分散型高性能のフォールト回復システム220は2つのシステム200 を有しており、各システムのIOPs202はケーブル222経由でを相互に接 続される。システム220は分散型の計算環境ソフトウェアを使い、アプリケー ションの独立した部分を各システム200上で作動させることで、高性能を達成 する。システム220はフォールト許容であり、サービス割込なしにハードウェ ア・ソフトウェアの両方のソフトウェアを実行する能力を有している。 図8のフォールト回復システム230は3つのIOPs(232、234、2 36)と3つのCEs(238、240、242)を有する。IPIモジュール 244とケーブル246経由で、各IOPは他のIOPのIPIモジュール24 4に接続される。各CEは、IPIモジュール248とケーブル250経由で2 つの10PsのIPIモジュール244に接続され、CE238はIOPs23 2、234に、CE240はIOPs232、236に、CE242はIOPs 234、236に接続される。システム200と同様にシステム230は、サー ビス割込なしにハードウェアのアップグレードを、最小限のサービス割込でソフ トウエアのアップグレードを可能にする。 図7、8から分かるように、システム200、230のCE、IOPsは同一 の構成である。結果的にフォールト回復システム200をフォールト回復システ ム230にアップグレードするのに、既存のハードウェアを交換することは一切 必要でなく、CE/IOPペアの追加、ケーブルの接続、システムソフトウェア の適切な変更という単純な手続きのみが伴うだけである。このモジュラリティは 本発明の対モジュラー冗長構造の重要な特徴である。 システム230のコンポーネントは3重の冗長系であるので、システム230 はハードウェアフォールトの原因を特定する能力がシステム200より高い。従 ってシステム10がエラーが検出されると両CEsの一方又は両方を単純に作動 不能にする一方で、システム230はより高度なフォールト診断を提供する。 フォールト診断の一手法として図9に示すように、システム230の各IOP (232、234、236)は手順300に基づきフォールト診断を実行する(ス テップ302)。まず各IOP(232、234、236)は、パワーセンシン グ、ケーブルセンシング、プロトコルタイムアウトというようなよく知られてい るテクニックを使って、電源落ち、ケーブル破損、CEs又はIOPsの機能不 作動のような主たるフォールトの有無を調べる。こうしたフォールトが発見され ると、各IOPはフォールトを抱える装置を、必要ならばシステム全体を作動不 能にする。 主なフォールトのチェックが済むと、各IOPはIOPが接続されている2つ のCEsからのIPIパケット(量子割込又はI/O要求)を受信するのを待ち 構える(ステップ304)。従って例えば、IOP232はCE238、240か らのIPIパケットの受信を待つことになる。CEsに接続されている両者から のIPIパケットを受信後、各IOPはIPIパケットのチェックサム(“CR Cs”)を他の2つのIOPsに送信し、他の2つのIOPsからのCRCsを 受信するのを待ち構える(ステップ306)。 他の2つのIOPsからのCRCsを受信した各IOPは、各列がCEに各行 がIOPに対応する3x3のマトリックスを生成することができ、各要素は列を CE、行をIOPとして受信したCRC値となる(ステップ306)。従って例え ば、IOP232は下記のマトリックスを生成する。 CE238 CE240 CE242 IOP232 CRC CRC X IOP234 CRC X CRC IOP236 X CRC CRC マトリックスを生成したIOP232は、マトリックスの行の値の合計値、列 の値の合計値を計算する。行の合計値が3つ共等しく、列の合計値が3つ共等し ければ(ステップ308)、誤りがないことになりIOP232は再度主たるフ ォールトの有無をチェックする(ステップ302)。 行の合計値が3つ、列の合計値が3つのいずれかに等しくないものがあれば( ステップ310)、次にIOP232はマトリックスの各列のCRC記入値を比 較する。各列のCRC記入値が一致していれば(ステップ312)、次にIOP2 32はCEが故障したと診断し、合計値が他の列の合計値に一致しない列に対応 するCEを作動不能にする(ステップ314)。 マトリックスの少なくとも一つの列の記入値が一致しない場合(ステップ31 2)、次にIOP232はどれだけの数の列が不一致の記入値を有しているかを 決定する。不一致の記入値を有する列がマトリックスに一つしかない場合、次に IOP232は、他のマトリックス行合計値に等しくないマトリックス行合計値 に対応するIOPと不一致の記入値を有する列に対応するCEとの間のパスが故 障したと診断し、そのパスを作動不能にする(ステップ316)。診断上の目的か ら、パスはIOP中にIPIモジュール244を、CE中にIPIモジュール2 48を、そしてケーブル250を有している。 マトリックスに2つ以上の列で不一致の記入値があれば(ステップ314)、次 にIOP232は、一つのマトリックス列合計値が他のマトリックス列合計値と 等しくないと診断し、IOP故障と診断し、他のマトリックス行合計値に等しく ないマトリックス行合計値に対応するIOPを作動不能にする(ステップ318) 。 或るCE故障、パス故障、IOP故障が診断されて明らかになった後、IOP 232がシステム300は依然としてフォールトでない作動可能状態に留まるに 十分なハードウェアを有していると決定した場合、IOP232は再度主たるフ ォールトの有無をチェックする(ステップ302)。システム230は3重の冗長 系となっているので、システム230は幾つかのコンポーネントが故障した後で も作動継続可能である。例えばアベイラビリティモードで作動状態に留まるには 、システム230が必要とするのは1つの機能するCE、1つの機能する10P 、両者間を繋ぐ1つの機能するパスだけである。 手順300を使えば各IOP(232、234、236)は、完全に作動する システム230、又は1つのエレメント(1つのCE、1つのIOP、1つのパ ス)が以前に作動不能となったシステム230中におけるどんな単一故障でも診 断できる。あるエレメントが作動不能にされたシステム230の場合、各IOP は、エレメントが作動不能のために受信されないCRCsを、実際に受信された CRCsと比較して正しいと思われる値を使うことにより、明らかにする。 手順300はCEsとIOPs間の相互接続の特定な配置に依存することがな い。適切な作動をさせるため手順300が必要とするのは、各CEの出力が少な くとも2つのIOPsで直接監視することだけである。従って手順300をシス テム中で実行させることはどんな相互接続機構を使っても可能であり、CEsと IOPs間でポイント同志の接続を要求しない。例えばCEsとIOPsを少な くとも2つのLANに接続することができる。代替手法では、マトリックスの行 列のCRC値を合計する代わりに、これらの値を比べることができ、記入値が一 致しない行又は列に一致/不一致の指標を付けることができる。 手順300の簡素化したものをシステム200で実行させることができる。こ の手順の場合、システム200の各IOP202は、各列がCE204に各行が IOP202に対応する2x2のマトリックスを生成する。 CE204 CE204 IOP202 CRC CRC IOP202 CRC CRC マトリックスを生成した後の各IOP202は、2つの記入値が一致しない各行 又は各列に不一致指標を付ける。 不一致指標がない場合、システム200は正常に作動している。 不一致指標が行にはないが両列にある場合、IOPがフォールトしたことにな る。システム200の作動モードに依存して、片方のIOP202が別のIOP 202を作動不能にするか又はシステム200を停止させる。作動不能にされる IOP202は、システム10で使われた2つのアベイラビリティモードに類似 のユーザー供給したパラメータに基づいて選ばれる。 不一致指標が列にはないが両行にある場合、CE204がフォールトしたこと になる。この場合IOP202は、システム200がアベイラビリティモードで 作動中ならばCE204を作動不能にして、又はシステム200がインテグリテ ィモードで作動中ならばシステム200を停止させることで応答する。不一致指 標が一つの列と両行にある場合、IOP202間のパスの1つと不一致列に対応 するCE204が故障したことになる。システム200の作動モードに依存して 、IOPs202は故障したパスを有するCE204を作動不能にするか又はシ ステム200を停止させる。不一致指標が両列と両行にある場合、複数のフォー ルトがあることになり、IOPs202はシステム200を停止させる。 不一致指標が一つの行と両列にある場合、不一致行に対応するIOP202が フォールトしたことになる。システム200の作動モードに依存して、他方のI OP202が間違いを起こしたIOP202を作動不能にするかシステム200 を停止させる。不一致指標が一つの行と一つの列にある場合、不一致行に対応す るIOP202間のパスと、不一致列に対応するCE204が故障したことにな る。システム200の作動モードに依存して、IOPs202は故障したパスを 将来の処理で明らかにするか又はシステム200を停止させる。 図10に示す災害許容システム260は、離れた場所に置かれコミュニケーシ ョンリンク262、例えばイーサネット又はファイバーで、接続され互いにメタ タイムロックステップで作動する2つのフォールト許容システム230を有して いる。メタタイムロックステップを得るため、全IPIパケットがフォールト許 容システム230間で送信される。システム220同様、システム260ではハ ードウェア・ソフトウェアのグレードアップがサービス割込無しでできる。 本発明の対モジュラー冗長系構造では、リアルタイムで非同期に作動しIOP sで制御されるCEsを使うことにより、様々なレベルのフォールト回復・フォ ールト許容がメタ時間で同期的に作動できるようになる。この構造は単純でコス ト有効性があるので、難しさを最低限に抑えて拡張・グレードアップすることが できる。 図11は本発明の別の代替実施例のシステムソフトウェア構造のコンポーネン トを示しているが、これには複数のCEsと複数のIOPsが含まれている。各 CE1100は、少なくとも一つの物理的デバイスリディレクタからなるセット 1105、CEトランスポート層1110、IPIドライバ1115を有してい る。物理的デバイスリディレクタ1105は周辺装置に向けられるI/O要求を 遮断し、包み込み、CEトランスポート層1110に送る。物理的デバイスリデ ィレクタ1105は更に、CEトランスポート層1110からの要求に対する応 答を受信し、前記応答を開き、周辺装置に最初にI/O要求を行ったOS又はア プリケーションソフトウェアに前記応答を返却する。 図11に示すシステムソフトウェア構造はマルチスレデッド処理環境を支援す る。この環境の場合、各スレッドは計算エレメントで処理される独立したストリ ームのインストラクションである。物理的デバイスリディレクタ1105は特定 のスレッドによるI/O要求を遮断し、物理的デバイスリディレクタ1105が 前記I/O要求に対する応答を戻すまで、前記スレッドの処理が停止する。 CEトランスポート1110はCEsとIOPsの間のI/O要求とコミュニ ケートする。CEトランスポートは、要求毎にIOPsから来ると予想され又受 信される応答を追跡し続ける。CEトランスポートは、向け直された要求に対す るIOP応答が受信された時に完了した要求(全IOPsが応答した要求)を探 し求め、結果のデータを物理的デバイスリディレクタ1105に送る。 各IOP1150はIPIドライバ1155、状態制御プログラム(SCP) 1160、デバイス同期層(DSL)1180、少なくとも1つの物理的デバイ スプロバイダのセット1180を有する。CEsとIOPsのIPIドライバ1 115、1155は、CEsとIOPsの間の相互接続パス1185に沿ったデ ータの実際の送受信を制御する。状態制御プログラム(SCP)1160はCE SとIOPsに関する状態移動を開始し応答する。フォールトハンドラー116 5は、検出されたフォールトに関するレポートに対し、適当なハードウェアコン ポーネントをデコンフィギュレーションすることにより応答する。IOPトラン スポート1170は、IPIドライバとIOPsの他のソフトウェアコンポーネ ント間のデータを輸送する。デバイス同期層(DSL)1175は向け直された 要求と応答全てをIOPベースの周辺装置の間で同期させることに対し責任を負 っている。この同期化にはCEs、IOPs、周辺装置に関する状態移動による 要求と応答を再処理し再構築することが含まれている。物理的デバイスプロバイ ダのセット1180は、DSL1175から受信した要求を開き、要求を処理し 、応答を包み込み、応答をDSL1175に送る。更に各IOPはイーサネット ド ライバ1190又はIOPs間の直接コミュニケーションを可能にする他の機構 を有してもよい。 上述のように、記述実施例の構造はCEsからIOPsへの全要求の向け直し を必要としている。この向け直された要求に対する応答を同期化させる必要があ る。従って向け直された要求に対し応答するIOPsは全て、既知の方法で要求 に応答し、他の全IOPsがどのように応答しているかを記述せねばならない。 更に、IOPは向け直された要求に対し、要求を処理できる装置を持っていなく とも応答する必要がある。この要件により、CEs上で作動するソフトウェアは IOPsの応答を一貫性に関して比較することができるようになる。 図12A、12Bは、CEの要求(図12A)に対しIOPの適切な応答(図 12B)を図示した例である。2枚ディスクシャドウセットの各ディスクは異な るIOPに関係しており、ディスク1200は普通に働く第1ディスク1205 に、ディスク1210はオフライン状態の第2IOP1215に関連する。CE 1100からシャドウセットへのデータ要求はIOPsに向け直され、両IOP sが応答する。(第二IOP1215は、関係するディスク1210がオフライ ン状態にあるが、シャドウセットに寄せられた全要求を受信する。)各IOPは 第1のIOP1205が予想されるデータで応答している旨と、更に第2のIO P1215がデータを持ち合わせていないと応答している旨を表示する。 CEトランスポート1110(図11)は、IOPsが提供する応答を監視す る。全IOPsが要求に応答を一旦済ませると、CEトランスポートは応答の一 貫性を比べる。応答はどのIOPsが要求に実際のデータで応答しどのIOPs が要求に応答しなかったかを示す点において一貫性がなければならない。更に複 数のIOPがデータで応答する場合、IOPが提供するデータに一貫性がなけれ ばならない。応答の一貫性チェックがよければ、次にCEトランスポートは、実 際のデータを含む応答を、CE1100中の適切な物理的デバイスリディレクタ 1105に提供し、データを含まない応答を棄却する。その後CEトランスポー トは、全IOPsが要求に応答した旨をIOPsに知らせ、比較結果もIOPs に知らせる。一貫性チェックに応答がパスしない場合、次にIOPsの内の1つ が、作動不能にされ構造から事実上取り除かれる。 CEトランスポート1110は、図13に示された手順1300を使い、図1 1のシステムに用いられている要求−応答構造を実行する。CEトランスポート はまずIPIドライバ1115に物理的デバイスリディレクタ1105から全I OPs1150に要求を送るように指示する(ステップ1305)。同時にCEト ランスポート1110はタイマを初期化する。全応答を受信する(ステップ13 15)以前にタイマが満了していないなら(ステップ1310)、次にCEトラン スポートは応答を比較し、応答が一貫しているか否かを決定する(ステップ13 20)。応答が一貫していれば(ステップ1325)、次にCEトランスポートは データの応答を比較する(ステップ1330)。データの応答が一貫している又は データ応答が1つしかないならば、次にCEトランスポートはそのデータを適切 な物理的デバイスリディレクタ1105に送る(ステップ1335)。最終的にC EトランスポートはIPIドライバに応答完了メッセージを全IOPs1150 に送るように指示する(ステップ1340)。 全応答を受信する又は一貫しない応答を受信している(ステップ1320、1 330)以前にタイマが満了しているなら(ステップ1310)、次にCEトラン スポートは、エラー発生を報告し(ステップ1345)、IPIドライバに応答完 了メッセージを全IOPs1150に送るように指示する(ステップ1340)。 IPOsの中では、デバイス同期層(DSL)1175はIOPベースの物理 的装置全てを論理装置又は仮想装置に見えるようにする。更にDSLは装置と全 IOPsからの情報を組み合わせて、この情報を使い単一の論理IOPをCEs の物理的デバイスリディレクタにプロジェクトする。従って、図14Aのように 構成されたシステムは図14Bに示す論理形式を有するCEベースの物理的デバ イスリディレクタに見えることになろう。 DSL1175は、CEベースリディレクタがロケーションの知識も物理特性 も持たないような形で装置を論理的に表現する。例えばSCSIリディレクタは ディスクC(1400、1405)とディスクD(1410、1415)が実体 のないドライブであることを知ることがないであろうし、それらのドライブを単 一のドライブ(1420、1425)であるかのように扱うであろう。又、イー サネットリディレクタは、複数のイーサネットコントローラが第一コントローラ (1430)と第二コントローラ(1435)を提供していることを知らないで あろうし、単一のイーサネットコントローラ(1440)としてのみ認識するで あろう。 DSL1175は、IOPトランスポート1170からの向け直された要求全 てを受信する。次にDSLは物理的デバイスプロバイダ1180に対する応答を 送るべきか又はデータのない応答を送るべきかを決定する。DSLの重要な機能 はデバイスプロバイダに要求を送ることだけであり、しかも当該デバイスプロバ イダが要求の処理を期待されている時に送ることである。例えば2つのIOPs が1組のシャドウディスクを制御している、即ち第1のIOPはオフライン状態 のディスクを制御し、第二のIOPが作動状態のディスクを制御している場合、 第1のIOPのDSLは要求をディスクに送らず代わりにデータのない応答をす るであろう。第二のIOPのDSLは要求をディスクに送り、結果的にディスク からのデータで応答し、第1のIOPがデータのない応答をする旨の表示も併せ て行うであろう。 応答毎にDSL1175は他のIOPがどのように応答するかを表示する。こ れを達成するためDSLは、他のIOPと関連する装置の状態の記録を、内部の 装置状態表中に維持する。 DSL1175は、CEs、IOPs、又は周辺装置の状態変化の影響を明ら かにする。例えばDSLは、他のIOPが要求に対してどのように応答するかを あるIOPが表示した後でしかも他のIOPが要求に対して実際に応答する以前 に、ある周辺装置の状態が変化した時に生ずる状況を明らかにする。状態が変化 した後に他のIOP応答したとすれば、その応答は、最初のIOPで予想される 応答とは異なることがあり得よう。DSLは、影響を受ける装置からの全応答送 信を作動不能にし、特定の装置に関して以前に受信した未完了の応答を棄却する フラッシュシークエンスを開始することで、この問題を解決する。(先述のよう にCEトランスポートは、要求に対する応答が全IOPsから受信されるまで要 求が完了したとは見なさない)。 CEトランスポート1110からフラッシュ完了表示を受信すると、各IOP 1150のDSL1175は、内部の装置状態表を更新し特定装置の応答送信を 作動可能にする。最終的にDSLはフラッシュ以前にCEトランスポートへ提出 された未完の全応答を再処理する。 上記のようにCEトランスポート1110は、各応答が完了した時点で各IO pのDSL1175に表示を送る。従ってDSLはどの応答が完了しているかを 常に知っている。これにより、DSL未完の応答を追跡することができる。デバ イス状態が変わりこれに続くフラッシュが発せられ、フラッシュ完了表示を受信 したDSLは、デバイス状態に関する内部知識をリセットし影響を受けた未完の 要求を再発行できる。この機能が例えば、スタンバイプライマリ処理の実行に重 要であるが、理由としてはDSLがスタンバイ装置のために特定の要求に対して データのない応答をしたかも知れないからである。プライマリ装置が故障し要求 を処理できなかったとすると、DSLはフラッシュシークエンスを開始し要求を 再発行するであろう。この時スタンバイ装置はプライマリ装置と見なされ(プラ イマリ装置が故障しているため)要求を受信することになろう。 DSL1175の内部状態表はI/O装置とIOPsに影響し得る全フラッシ ュを追跡し続ける。状態表を使用することでDSLは、複数のフラッシュを複数 の装置に影響させ、複数の状態移動を一度に起こさせることができる。これによ り、複数の関係ある又は無関係のコンポーネントの状態変化を一様に処理するこ とができる。 DSL1175は更に、装置を所有するIOP1150から装置の全状態変化 が出るよう命ずる。これにより、一貫性のなさの問題をCEトランスポート11 10に起こさせる危険を伴わずに、異なるIOPsのDSLsは装置の状態に関 して異なる考えを同時に持てるようになる。これにより、定常的なオペレーショ ンが達成されたか否かをマスターソフトウェアエンティティが決定している間に 要求や応答待ち行列をフリーズする必要がないので、DSLを全体に分散させる ことができるようになる。 多くの状況の場合、物理的デバイスプロバイダ1180は周辺装置又はIOP の状態を考える必要がなく、その理由はDSL1175は、デバイスプロバイダ が要求を処理するよう期待されている時のみ前記デバイスプロバイダに要求を送 るだけだからである。同様にDSLは特定の装置に関連するI/Oポリシーを考 慮することがない。例えばDSLはあるディスク装置が実体のないI/Oポリシ ーを有しているのか単一目的のI/Oポリシーを有しているのかを考えない。し かしDSLはI/Oポリシー使いどのIOPs上のどのプロバイダが特定の要求 を受信して処理するかを決定する。これによりDSLは、実体のない、単一目的 の、仮想の、第一の/スタンバイの、あるいはこれら全てを組み合わせたI/O ポリシーと装置タイプが必ずしも意味をなさなくとも、どんな装置でも任意に処 理できるようになる。 DSL1175は、装置故障、装置起動、装置の合体、マニュアル操作による 作動可能/作動不能を始めとする装置の全移行状態を処理する。更にDSLはユ ーザーに気付かれずに、IOPジョイニング、IOP起動、IOP除去、IOP 優雅停止等、装置の状態に関係するIOPの全状態移行を処理する。DSLは更 に、装置プロバイダのために満足させることのできない要求に対し自動的に応答 する。DSLはプロバイダ開発者が使用できるアプリケーションプログラムイン タフェイス(API)セットを提供する。 DSL1175は、自動要求タイムアウト支援を提供する。この点に関し、D SLはCE発信の要求が指定した時間内に完了しない場合回復プロセスを開始さ せる。回復プロセスの間、DSLはどのIOPが駄目になったかを決定しフォー ルトハンドラーに知らせる。 DSL1175は、どんなI/Oポリシーをどんな物理的装置に適用すること ができる。例えばDSLは、実体のない装置の代わりに単一目的装置としてのハ ードディスクを構成することができる。同様にDSLは例えば、単一目的装置の 代わりに、スタンバイ/作動の装置としてのCD−ROMプレーヤー又はシリア ルポートを構成できる。 上記のようにDSL1175は、周辺装置又はIOP1150中の状態変化に 応じて、複数のCEs1100から成るCEトランスポート1110中に、フラ ッシュシークエンスを開始することができる。フラッシュシークエンスによりC Eトランスポートは、表示された装置又は物理的デバイスプロバイダ1180に 関連する未処理の活動全てを、CEのメッセージパイプライン中に流してしまい 、 流した結果として要求が完了したという知らせを提供する。 フラッシュ機構はDSLが要求する要求−応答の同期化を様々なレベルで提供 する。従って、全装置(又は物理的デバイスプロバイダ)に対して系全体に及ぶ フラッシュを実行することもできれば、あるクラスの装置又は特定の装置に対し てフラッシュを実行することもできる。 フラッシュシークエンスが完了すると、各IOPのDSLは要求−応答のどの ペアが処理・完了したかを精確に知ることになる。DSLはこの知識を使って、 必要とされるどんな要求−応答のペアをも再発行、再実行、再送信し、複数の装 置の定常状態の作動を中断させたシステム内の移行状態(刺激)から回復を可能 にする。これにより、DSLは装置の定常状態の作動に影響するシステム内の変 化に反応することができる。フラッシュシークエンスが一旦開始・完了すると、 DSLはどの要求又は応答を完了させるために、再処理又は他の装置に向け直さ れねばならないかを精確に決めることができる。 各CEトランスポート1110は未完の要求に関しデータベースを維持する。 データベースはシステム中で全部の未完I/O要求のリストを有しており、各要 求はXRN(トランスポート参照番号)と呼ばれる固有の識別子で識別される。 フラッシュシークエンスは図15に示す手順1500に従って実行される。まず 各10P1150のDSL1175は、フラッシュ要求を全CEs1100に送 りフラッシュシークエンスを開始する(ステップ1505)。DSLは次に、フラ ッシュシークエンスに関与する装置に関する全ての要求/応答処理活動を、フラ ツシュシークエンスが完了するまで中断させる(ステップ1510)。各CEはフ ラッシュ要求を受信し、システムの各IOPからの一致するフラッシュ要求を待 ち構える(ステップ1515)。CEはフラッシュ要求をデータベースに記入し、 OSの要求を追跡するのと同じ方法でフラッシュ要求を追跡する。フラッシュ要 求が全IOPから受信されると、CEはフラッシュシークエンスの最初の部分が 完了したことを表示する。フラッシュシークエンスのこの部分が完了したことは 、IOP−to−CEのメッセージパイプライン中の全活動がCEsによってフ ラッシュアウトされ処理済みであることを意味する。 フラッシュシークエンスの完了を認識するに先だって、まずCEはどの未完の 要求が完了したかについての認識をIOPsに送る(ステップ1520)。ケース によっては、I/O要求をIOP−to−CEのパイプラインを通じて応答をフ ラッシュさせて完了させてもよい。CE完了した要求毎にSWTACK(ソフト ウェアトランザクションアクノレッジメント)を送り、完了済み要求をデータベ ースから取り除く。各SWTACKには要求の元のXRNが含まれている。XR Nにより、IOPsはSWTACKを適当な完了要求と関連付けることができる 。 完了した各要求にSWTACKを送った後、CEはフラッシュシークエンスに 関するSWTACKを送る(ステップ1530)。メッセージはCE−to−IO Pメッセージパイプラインを通じて順番に送られる(又は送信シークエンスを反 映するよう記録される)。従って、フラッシュSWTACKは要求完了の知らせ のSWTACKをCE−to−IOPメッセージパイプラインを通してフラッシ ュする役目を果たす。従ってDSLがフラッシュシークエンスに関するSWTA CKを受信した時(ステップ1535)、DSLはメッセージパイプラインに元来 存在していた要求に関する全SWTACKを既に受信・処理済みである(ステッ プ1525)。フラッシュシークエンスのSWTACKを受信すると、DSLは システム中の要求/応答処理活動全ての状態を知ることになる。DSLはこの情 報に対しシステムの状態を更新することで応答する(ステップ1540)。その後 、DSLは影響を受けた装置の要求/応答処理活動を再開し、影響を受けた未完 の全要求に対して応答する(ステップ1550)。これは新たな状態に対し装置を 再同期させ、フラッシュシークエンスに関与する装置に定常的な作動状態を達成 させる。 各フラッシュシークエンスには固有のXRNの目印が付いているので、複数の フラッシュを同時に進行させることができる。CEトランスポートとDSL中の フラッシュ処理ソフトウェアは、未処理のフラッシュシークエンスがどのように 処理されるか、それらがどんな順番で認識されるかに関して、ある種ルールに従 う。これによりDSLは、システム内で起こるかも知れない以後又は二次的な移 行状態を原因とした、先に出されるフラッシュシークエンスを回避又は無効にす ることができる。 システムソフトウェアはフリーズプロトコルを実行し、IOP−to−CEの コミュニケーションがCEsのメタ時間同期化に影響しないよう保証する。先に 述べたようにIOPsは、I/O装置中に元来備わっている非同時性のため、C Esや他のIOPsとは非同期的に作動する。このためCEsとIOPs間のコ ミュニケーションは、CEsのメタ時間同期化に混乱させないように、行われね ばならない。CE−to−IOPのコミュニケーションはCEのインストラクシ ョンストリームに同期しており、十分なバッファリングが提供される限りCEの ロックステップには影響しない。しかし、IOP−to−CEのコミュニケーシ ョンは性質上、各CEのインストラクションストリームに非同期である。従って IOP−to−CEのコミュニケーションは不適切に処理されると、各CEに異 なる影響を与えてCEのインストラクションストリームが発散してしまう。フリ ーズプロトコルはIOPから来る非同期データの処理を、全てのCEsがデータ を同期的に処理できるようになるまで、遅らせる役目を果たす。特にフリーズプ ロトコルは、全CEトランスポート1110が手順1300を実行する準備を整 えるまで、手順1300の実行を遅らせる役目を果たす。 フリーズプロトコルは4つの主な特徴を有する。即ち、非同期IOPsから緩 く同期化されたCEsを越えて来た入力データストリームを同期処理すること、 CEsに対する同期時間の更新、ある延長された時間の間全CEsをキャプティ ブ状態に同期させて保持するディープフリーズ機構、CEsとIOPs間のコミ ュニケーションパスに関するフォールト検出/診断である。 フリーズプロトコルはいわゆるフリーズサイクルを使ってCEの同期化を提供 する。CEのCEトランスポート1110は、物理的デバイスリディレクタ11 05がトランスポート1110をリダイレクトI/O作動を提供するよう起動す る度にフリーズサイクルを開始する。しかしフリーズサイクル実行に際し過剰な 帯域使用を防ぐため、ある数のI/O要求が起こる度毎又はある数のインストラ クションがI/O要求なしで処理される度毎に、ソフトウェアの実行させてフリ ーズサイクルを開始するようにしてもよい。例えばCEトランスポート1110 は、5つ目のI/O要求毎又は1万個のインストラクション毎にフリーズサイク ルを実行してもよい。 CEトランスポート1110は、優先度の高いフリーズ要求メッセージを作動 中の全IOPsに送信し作動中の全IOPsからのフリーズ応答メッセージを待 ち構えることで、フリーズサイクルを開始する。CEs全てが同じインストラク ションストリームを処理しているので、作動中の各CEのCEトランスポート1 110はフリーズ要求メッセージを作動中の全IOPsに送信する。各IOPは CEsからフリーズ要求メッセージを受信する。あるIOPが作動中の全IOP sからフリーズ要求メッセージを受信し終えると、このIOPは、CEsがイン ストラクションストリーム中の同一点(即ち、同期化されている)にあること、 又CEsは手順1300を使って受信データを処理してよいことを表示する。従 ってIOPはフリーズ応答メッセージを作動中の全IOPsに送ることで応答す る。 CEはIOPsからのフリーズ応答メッセージを受信し、IPIドライバ11 15の正常優先メッセージ待ち行列中に置きCEトランスポート1110に対し て相互CE同期ポイントを提供する。最終的に、作動中の全IOPsからフリー ズ応答メッセージを受信した後、CEsはフリーズリリースメッセージをIOP sに送信することにより、フリーズサイクルを終結する。 CEトランスポート1110はフリーズサイクルをIPIドライバ1115を 通して呼び起こす。IPIドライバはフリーズサイクルを開始(即ち、フリーズ 要求メッセージを送る)し、制御をCEトランスポート1110に返却すること で応答する。これによりCEトランスポート1110は、IPIドライバにフリ ーズプロトコルメッセージを扱わせながら処理を継続できる。CEトランスポー トは、例えば正常優先メッセージの送信、CE1100の受信待ち行列からのメ ッセージの抜き取りと処理等役立つ仕事で可能なものを全て実行する。CEトラ ンスポート1110は、作動中の各IOPに対応する正常優先メッセージ待ち行 列中のフリーズ応答メッセージに遭遇するまで、制御をOSに返却しない。 IPIドライバ1115はフリーズサイクルをできるだけ速く完了させようと する。この目的のためIPIドライバは、優先メッセージを作り作動中の全IO Ps1150に送る。メッセージはIOPsに対するデータを伴っておらず、フ リーズサイクルが始まった旨の表示をする役目のみを果す。優先メッセージを送 った後IPIドライバはフリーズ応答タイムアウトカウンタをスタートさせ応答 し損なったIOPを検出する。通常このカウンタの長さは最悪ケースでのメッセ ージ送信時間の2倍程度である。これにより、IOPのフリーズ応答メッセージ 送信以前に各IOPがフリーズ要求メッセージを受信した時に送信した可能性の ある正常優先メッセージの送信を完了させるのに十分な時間が各IOPに提供さ れることになる。通常正常優先メッセージは例えば64キロバイトというサイズ 限界を有し、最悪ケースでのメッセージ送信時間が正当な値となることを保証し ている。 各IOPのIPIドライバ1155はフリーズ応答メッセージ中に時間スタン プ更新を置く。この時間スタンプはIOPにより最新のフリーズ応答メッセージ が送信されてからの時計時間に対応する。従ってCE1100は異なるIOPs から異なる時間スタンプ更新を受信する可能性がある。従ってCEsは1つのI OP1150をメタ時間サーバとして指定し、CEs全てがローカル時間時計を 同じに更新するよう保証する。 フリーズ要求メッセージを作動中の全IOPsから受信後、IOP1150の IPIドライバ1155はフリーズ応答メッセージをマイクロコード化優先メッ セージとして送る。メッセージを送る際、IOPはフリーズリリースタイムアウ トカウンタをスタートさせ、フリーズ応答に対して応答し損なったIOPを検出 する。 各CEのIPIドライバ1155は、入ってくるフリーズ応答メッセージを満 たすよう割込がなされ、前記メッセージを正常優先メッセージにフォーマットし 直して正常優先メッセージ待ち行列の最後尾に置くことで対応する。メッセージ 待ち行列中に置くことで、CEトランスポート1110はOSに制御を返却でき るようになり、フリーズサイクルの時間クリティカルな部分が完了する。 CEのIPIドライバ1155が作動中の最新IOPからフリーズ応答を一旦 受信して処理を済ませると、IPIドライバ1155はフリーズリリースメッセ ージを作動中のIOPsにブロードカストする。これでCE1100のフリーズ サイクルが完了する。IOP1150はリリースメッセージを受信し、作動中の 全CE1100からリリースメッセージを受信するとフリーズリリースタイマー をキャンセルする。 上記のようにフリーズ応答パケットに時間増分を加えることで、時間更新をO Sに提供する。IOPのIPIドライバ1155は内部の100マイクロ秒タイ マー割込を使って時間増分を維持する。1つのIOPsのみが時間プロバイダに 指定され、このIOPからの時間増分を全CEsが使う。IOPのIPIドライ バ1155は、最後のフリーズ応答パケットが送信されてからの微少時間を時間 増分として送信する。全ての受信待ち行列に対してフリーズ応答パケットが処理 されて後、CEトランスポート1110はこの値を使いOSの時計時間を更新す る。 ディープフリーズプロトコルは正常フリーズプロトコルのバリエーションであ り、CEsとIOPs間の正常な活動を中断する役割を果たし、主要なシステム 状態移行が起こるのを可能にする。ディープフリーズ状態はIOPソフトウェア によって呼び起こされるが、このソフトウェアはIOPトランスポート1170 を使いIOPのIPIドライバ1155が次のフリーズ応答メッセージをディー プフリーズメッセージで置き換えるよう命令する。ディープフリーズ応答メッセ ージのフォーマットは正常フリーズ応答メッセージの場合と、2つのタイプのメ ッセージ指定するのに異なるオプコードを使う点を除き同じである。ディープフ リーズ応答は、正常フリーズ応答同様にメタ時間更新を伴っている。ディープフ リーズ応答では更に、最初に開始するIOPがタイムアウトカウンタを開始させ ることなく送信機を作動不能にする。 IOPのIPIドライバ1155はディープフリーズ応答を作動中の全CEs に送り、ディープフリーズ状態が要求されている旨を知らせる。CEsはディー プフリーズ応答を正常優先応答メッセージに変換し、メッセージを正常優先メッ セージ待ち行列加え、メッセージが正常フリーズ応答の代わりにディープフリー ズ応答である旨の表示をすることで応答する。CEsは他のIOPsからの正常 フリーズ応答メッセージを正常なやり方で処理し続ける。 正常フリーズ応答又はディープフリーズ応答を作動中のIOps全てから受信 後、CEのIPIドライバー1115はディープフリーズ要求メッセージを未だ ディープフリーズ状態にないIOPsに送り、フリーズ応答タイマーを再始動さ せる。 ディープフリーズ要求を受信は、現在のフリーズサイクルにディープフリーズ サイクルを別のIOPが注入したことをIOPsに知らせることを意味する。( 正常な場合、IOPのIPIsはフリーズリリースメッセージを受信する筈であ った。)各IOPはフリーズリリースタイムアウトカウンタをキャンセルし、I OPのトランスミッタパスを切り、以前のフリーズ応答からのメタ時間更新を有 するディープフリーズ応答メッセージを作動中の全CEsに送り、フリーズリリ ースタイムアウトカウンタを再始動させることで、フリーズ要求に対して応答す る。 CEsのIPIドライバー1115はディープフリーズ応答を受信し、応答を 適当な受信待ち行列中に挿入する。作動中の各IOPからディープフリーズ応答 を受信すると、CEトランスポート1110は応答タイマーをキャンセルし正常 フリーズリリースメッセージをIOPsに対し発行する。 CEトランスポート1110は、その間、様々な受信待ち行列中で正常フリー ズ応答メッセージとディープフリーズ応答メッセージが組み合わされたものに遭 遇している。単一のディープフリーズ応答を検出すると、CEトランスポートに 正常フリーズ応答を越えてディープフリーズ応答を処理させる。従ってCEのI PIドライバー1115はフリーズ応答とディープフリーズ応答が受信待ち行列 中に適切な順番で入ることを保証せねばならない。 システムがディープフリーズ状態にある場合、優先メッセージのみがコンポー ネント間で交換できる。更にシステムがディープフリーズ状態にある場合、CE トランスポートが新たなフリーズサイクルを開始することはないであろう。 ディープフリーズサイクルを要求する大きな状態移行が一旦完了すると、ディ ープフリーズ状態はディープフリーズ終結要求の発行を伴うディープフリーズ終 結サイクルを開始することで終わりとなる。ディープフリーズ終結サイクルは通 常、ディープフリーズサイクルを呼び起こしたIOPトランスポート1170に よって引き起こされるが、どんなIOPトランスポート1170でも同じ結果を 伴うディープフリーズ終結サイクルを呼び起こせる。 ディープフリーズ終結要求サイクルはIPIドライバ1155に対するレジス タレベルの要求であり、作動中の全CEsへのディープフリーズ終結優先メッセ ージをドライバーにブロードカストさせる。各CEのIPIドライバ1155は このメッセージを受信し作動中の全IOPsに伝える。ディープフリーズ終結メ ッセージを受信したIOPsは送信パスを起動させディープフリーズ状態を抜け 出す。 フリーズ応答タイマーとフリーズリリースタイマーはフリーズプロトコル中に エラーの発生を説明する。CEのフリーズ応答タイマーが満了すると、CEのフ リーズ状態仮想レジスタを含んだ高度優先システムエラー(SYSERR)パケ ットを生成し、作動中の全IOPsに送る。IOPsは自分自身の関係した状態 情報をSYSERRパケットに対して補足し、そのSYSERRをフォールトハ ンドラ1165に送る。 IOPのフリーズリリースタイマーが満了するとIOPは、探知用IOPから の状態情報だけを含んだローカルSYSERRパケットを生成し、このSYSE RRパケットをフォールトハンドラ1165に送る。探知用IOPは次に同様の SYSERRパケットを作動中の全CEsに送る。CEsは自分自身の状態情報 をSYSERRパケットに対して補足し、作動中の全IOPsに送る。IOPs は追加状態情報をSYSERR中に記憶し、メッセージをフォールトハンドラ1 165に送る。 SYSERRパケットを生成後、CE1110又はIOP1150のIPIド ライバ1115、1155は、IOP1150上に常駐するフォールトハンドラ 1165がエラー条件を解き明かすのを待機する。フォールトハンドラはどのパ スがフォールト状態にあるかを決定し、フォールトパスを作動不能にするようI OPのIPIドライバ1155に命令する。フォールトパスを作動不能にした後 IOPのIPIドライバは、フリーズプロトコルの状態を評価し、処理要件が満 足されると正常な処理を再開する。 IOPsは、作動中の全CEsからのフリーズ要求の受信に対しタイムアウト を適用しない。1つ又は複数のCEsがフリーズ要求メッセージを送り損ねるか 又はフリーズ要求メッセージが何かの理由で受信されない場合、他のCEsが結 果的にフリーズ応答タイムアウトSYSERRパケットを生成する。 ディープフリーズ拡張を始めとするフリーズプロトコルを提供するのに必要な CEのIPIドライバ1115の状態移行を図16Aに示す。ディープフリーズ 拡張を始めとするフリーズプロトコルを提供するのに必要なIOPのIPIドラ イバ1155の状態移行を図16Bに示す。 システムは、フォールトの知らせと報告環境に基づいたメッセージをフォール トハンドラ1165を使って実行する。エラー処理の点からすればシステムは、 エラー報告エレメントとエラー処理エレメントを持つと見なし得る。エラー報告 エレメントはシステム中のコンポネントで、エラー条件を検出するか又は状態の 条件を決定し、その情報をエラー処理エレメントに送信するもの全てがこれに当 たる。エラー処理エレメント又はフォールトハンドラはエラー報告エレメントか らエラー情報を受信する。 単一のフォールトから生ずるエラーメッセージを集積したものをフォールトイ ベントと呼ぶ。フォールトハンドラはフォールトイベントに関連したエラーメッ セージを使い、故障しフォールトイベントを生じさせた特定のシステムコンポー ネントを特定する。特定されたコンポーネントをコールアウトと呼ぶ。フォール トハンドラはフォールトを解明し、たとえグレードが落ちたにせよ正常なシステ ム作動を回復させる行動を取るか又は開始してもよい。 エラー報告エレメントはハードウェア又はソフトウェアのいずれの構成要素で もよい。唯一の要件は、エラー情報をエラー処理エレメントに送信する又はそう した情報が送信せしめることが可能なことである。 システムエラーを検出するエラー報告エレメントは、SYSERRと呼ばれる 均一にフォーマット化されたパケット中にシステムエラーを包み込む。エラー報 告エレメント次に、エラー報告エレメントと接続されている全エラー処理エレメ ントにSYSERRを送る(送られるようにせしめる)。物理的システムの構造は 、エラー条件によって少なくとも1つのエラーパケットを生成されるようにの構 成される。物理的システムは更に、理想を言えば、各エラー報告エレメントが全 エラー処理エレメントに接続されるように構成される。これは、診断情報として 使われると期待されていたエラー表示が欠けることを許すことになる。 単一のSYSERRパケットは多くの事例において、フォールトイベントのソ ースを曖昧でない形で特定しなくてもよい。こうした状況が生じた場合、フォー ルトハンドラーは複数のソースから提供される診断情報に頼ってフォールトのソ ースを曖昧でない形で特定する。 エラー報告エレメントとフォールトハンドラーの間の接続するため、トランス コンポーネントの中には、あるエラー報告エレメントが生成したSYSERRs をシステム中の前記トランスコンポーネントに直接接続された他のフォールトハ ンドラーにエコーさせることのできるものがある。従ってトランスコンポーネン トに直接接続されてないフォールトハンドラーでもエラー情報を前記エレメント から得ることができる。例えば図17に示すようにIOP1705上のフォール トハンドラー1700は、IOP1710が生成したSYSERRパケットを直 接受信することができない。これを説明すると、CE1720上のIPIアダプ タ1715はSYSERRリフレクタとして働き、IOP1710が生成したS YSERRをIOP1700にエコーさせるということになる。 フォールトハンドラー1165は、エラー情報を得るために他のシステムコン ポーネントを詳しく調べることができる。更に、独立したフォールトハンドラー は、自分が常駐するシステムコンポーネントの実行可能性を調べ、システムコン ポーネント間のコミュニケーションパスをテストし、コミュニケーションパスが 損なわれていないとの仮定の下に、あるフォールトイベントに応じて各フォール トハンドラーが同じ診断を下すことを確かめるため、互いにコミュニケートして もよい。 フォールトハンドラー1165は遭遇したエラーを、シンドロームとよばれる 相互に関連させたエラーのセットにグループ分けする。シンドロームは一般にフ ォールトコンポーネント又は疑わしいコンポーネントのリストを、シンドローム 中の個別エラーよりも高い特殊性を添えて表示する。 各フォールトハンドラーは状態表を使って入ってくるエラーを特定のシンドロ ームに構文解析する。各シンドロームは表中のある状態を代表している。可能な らばフォールトハンドラーは入ってくるエラーを使って状態表を新たな状態に移 行させる。 フォールトハンドラーは図18に示す手順1800によりエラーを処理する。 まずフォールトハンドラーは、エラーを固有に特定する正常な形式に変換し、各 エラーを容認されたエラーとして表す(ステップ1805)。例えばフォールトハ ンドラーはエラーを、特定のエラーを識別するエラー識別子と、エラーが訴えを 起こしているサブコンポーネントを識別するエラーターゲットと、エラーを報告 したサブコンポーネントとエラーが受信されたパスを識別する報告ソースから成 る三つ揃いに変換してもよい。 フォールトハンドラーは次に、容認されたエラーを処理する。フォールトハン ドラーはまず既に確立されているシンドロームが表す状態に対してエラーを比較 し(ステップ1810)、前記エラーが以前に確立されたエラーに移行するか否か を見極める(ステップ1815)。こうした移行が実行されうる場合、フォールト ハンドラーは次に移行を実行し(ステップ1820)、エラーに対する状態処理を 終える(ステップ1825)。エラーが既存のシンドロームに移行できない場合、 フォールトハンドラーは初期状態に於ける新たなシンドロームを作成し(ステッ プ1830)、前記エラーが前記シンドロームをシンドロームの開始状態に移行 できるか否かを決定する。移行できるのなら、フォールトハンドラーはその移行 を実行し(ステップ1820)、エラーに対する状態処理を終える(ステップ18 25)。前記エラーがシンドロームの開始状態に予想されない場合、フォールト ハンドラーはエラーを非シンドロームエラーに変換し(ステップ1840)、エラ ーに対する状態処理を終える(ステップ1845)。非シンドロームエラーは、予 想されない、誤報告された、送信又は受信が未完了エラーとなったがらくたであ る。例えば容認されたエラーが上記の三つ揃いの形式となっている場合、容認さ れた非シンドロームエラーは“UNSYNDROMED”という識別子と、ボー ガスエラーの報告ソースに対応するエラーターゲットと、フォールトハンドラー を含むコンポーネントの報告ソースから成っていてもよい。 潜在的コールアウトのセットは状態表の各状態に関連している。あるシンドロ ームが特定の状態に移行する場合、コールアウトのセットはシンドロームのコー ルアウトリストと呼ばれる。 状態表は容認されたエラーをツリー構造のリストにしたものである。ツリーの 各ノード上の目印は容認されたエラーの識別子である。各ノードは、他のエラー のリスト、コールアウトリスト、又は両リストへの方向を指し示している。 状態表はエラーグループ(シンドローム)から成るソースドキュメントから作 成できる。シンドロームテキストは、1つのエラーがシンドローム中の別のエラ ーに先立って起こるべきか否かを統語的に表示する。この表示がない場合、エラ ーには順番がないと見なされる。コールアウトのリストは各シンドロームに関連 している。 状態表はシンドロームの各エラーを並べ替え、各エラーを容認された形に変換 し、シンドロームを表にマッピングすることにより作成される。各置換のターミ ナルノードはシンドロームのコールアウトリストを指している。例えばソース表 が図19Aに示すコールアウトに関連するシンドロームを含み、システムのトポ ロジーを図17のようになっていると仮定する。図19Aの「エラー」の欄はS YSERRメッセージ中のフォールトハンドラーに報告された異なるエラーを特 定している。特にNAKエラーは送信パス上での何度もの再試行を、EDCエラ ーは受信パス上の低レベルのプロトコル故障を、NAK(echoed)エラー はあるコンポーネントによって送信され他のコンポーネントでエコーされたNA Kエラーを表示する。「パス」の欄はエラーが検出されたパスを特定しており、 「受信源」の欄はSYSERRを報告したマシンを特定している(M1はIOP 1705(マシン1)、M1はCE1720(マシン2))。最後の「コールアウト 」の欄は、「エラー」の欄に挙げられたエラーを生じさせ得る可能なシステム故 障を挙げている。 フォールトハンドラーで検出されたシンドローム#1に対し図19Aのソース 表を使うと、M1がパスM1−M2に関し報告したNAKエラー、M2からエコ ーされたM1がパスM1−M2に関し報告したNAKエラー、M2がパスM1− M2に関し報告したEDCエラーが全て起こる筈である。この時に結果的に生ず るコールアウトは、シンドローム#1の「コールアウト」欄に記入されたもの全 てとなる。 上記ソースから生ずる状態移行表は図19Bのようになり、容認された形のエ ラー指示が三重の形、error(error_path,received_ from)となる。上記状態移行表は実際にはツリー構造となっている。ルート は「初期状態」である。初期状態から出発すると、シンドローム#1のコールア ウトに到達するには6通りがある。シンドローム#1のコールアウトに達するに は3つのエラーメッセージが必要であり、そのエラーメッセージは可能ないずれ の順ででも到達できる(3の階乗=6つの可能なオーダリング)。シンドローム# 2のコールアウトは2つのエラーメッセージを必要とし、順番を問わない(2の 階乗=2つの可能なオーダリング)。従ってNAK(M1→M2、M1v.M2 )とEDC(M1→M2、M2)がどの順で来ても、第3のエラーNAK(M1 →M2、M1)なしでシンドローム#2のコールアウトが生じる。この場合、N AK(M1→M2、M1)の存在がシンドローム#1を固有に識別する。 状態表はエラーのセットを並べることで構成されるので、非常に大きなものと なり得る。これは、表を構成するシンドロームが特に複雑な場合又はエラーを生 成するシステムコンポーネント数が大きい場合に特に当てはまる。表の大きさを 論理マッピングを物理的マッピングにすることで小さくしてもよい。冗長コンポ ーネントを有するシステム場合、一コンポーネントに対して報告されるエラーは 、そのコンポーネントを含む冗長セットに対して報告されるエラーに比べれば識 別しがたいくらい小さい。従って表の大きさは、論理形式のエラーとコールアウ トを、冗長セットの1コンポーネントだけに対応するエラーを反映するよう識別 することにより、小さくすることができる。この手法により、シンドロームが構 成されたときの各シンドロームに対し、物理的識別子から論理的識別子へのマッ ピングが維持される。容認されたエラーをシンドローム状態のエラーに対して比 べる時、エラーはシンドロームに対して論理的に容認された形に変換されねばな らない。論理的形式から物理的形式へのマッピングはシンドロームにより異なる 。 状態表の大きさはサブツリー折り重ねによって小さくしてもよい。ツリー構造 をした状態表の下部構造の多くの部分は他の部分と同じである。同じサブツリー は、たとえ別のシンドロームから発生したにせよ、コピーされたものとして折り 畳み可能である。こうした最適化を行えば、シンドロームの複雑さが増した時に 表が爆発的に大きくなるのを緩和できる傾向にある。大きなシンドローム程、サ ブツリー折り重ねで消滅できる二重のサブツリーを生成する。 各シンドロームはシステムにおける、零、1つ、又はそれ以上の潜在的な故障 コンポーネント又はコールアウトを表示している。フォールトハンドラーはこう した表示をイベントコールアウトリストの形に組合せて、単一の診断を下す。コ ールアウトリストは理想を言えば、故障してエラーイベントを引き起こしたシス テムコンポーネント又は機能を、曖昧でない形で識別する1エレメントだけを含 む。しかし、コールアウトリストは複数のエレメントを含んでいてもよい。 最終的コールアウトリストは、各シンドロームに関係する最も可能性のあるコ ールアウトの交点を取ることで形成される。或るシンドロームが表示する故障の 幾つかは他のものよりも可能性が高い。例えば送信エラーは過渡的な二点間のエ ラー、送受信機の普通の欠陥、ケーブルの完全さの問題、一端に於ける初期の電 源故障で生ずるかも知れない。初期の電源故障は殆どの誤った挙動を説明できよ う。しかし確証的証拠がない場合、過渡的なフォールトは初期の電源故障という よりも、送信故障で説明できる可能性が高い。更にフォールトの中には、コンポ ーネントをあまり識別せず、その中にあるより特定のコンポーネントを識別する と想定できるものもある。例えばあるシンドロームに関するコールアウトは10 P1705とCE1720間の相互接続をしていしてもよい。このコールアウト には例えば両者間のケーブル1725と同様、相互接続の両端のアダプタ171 5を含んでいるであろう。別のシンドロームはCE1720上の不特定のエラー (CE1720のIPIアダプタ1715を始めとするCE1720のハードウ ェアとソフトウェアの全コンポーネント)を表示してもよい。こうしたシンドロ ームのコールアウトリストの組合せは明らかに、CE1720のIPIアダプタ 1715が故障していることを表示している。 2つのコールアウトリストは、2つのコールアウトリストに共通であるが最小 包括部分となるコンポーネントを選択することで組合せられる。任意の2つのコ ールアウトリストに関し、最初の2つのコールアウトリストでカバーされるシス テムコンポーネントの交点を含む少なくとももう1つ他のコールアウトが存在す る。コールアウトを組み合わせたプロダクトが、システムの最小部分をカバーす るコンポーネントである。例えば、図17のシステムのように緩やかに接続され たシステム中に、IOP1705とCE1720の相互接続に対してコールアウ トがあり、IOP1710とCE1720の相互接続に対してコールアウトがあ ると仮定する。これらの相互接続はCE1720中のIPIアダプタ1715で 交差する。それらはCE1720で交差すると一般に考えられる。しかしながら アダプタは、故障した相互接続の交点として識別しうる最小包括コンポーネント であるが故に選択されたコールアウトである コールアウトを組み合わせる上記手法は、2つの他のコールアウトの各組み合 わせに対して1つのプロダクトコールアウトがあるという結果になる。従って任 意の異なる2つから新たなコールアウトをフォールトハンドラーが素早く確立す るために使う「マルチプリケーション表」を確立することができよう。マルチプ リケーション表は図20に示すようにコールアウト階層線図を作ることで形成さ れる。図中の各ボックスはコールアウトを表し、2つのコールアウトのプロダク トは両者間の(階層構造中の)最下位のコールアウトとして定義される。この規 則の例外は、自分自身と組み合わせたコールアウトは自分自身(即ち、全てのエ ントリは最下位のエントリに代わって返却される)であるという点である。従っ て例えば以下の通りになる。 CXUux*CXUvx=RX(CEx)、 RX(CEx)*TX(CEx)=IPI(CEx) RX(IOPu)*Capability(IOPu)=POWER(IOPu)、 and Device(IOPu)*Capability(CEx)=Tup1e(IOPu)、 while CXUux*CXUux=CXUux 注記;以下の説明で、略号の意味は下記の通りである。 CNuxは、マシンuとマシンx間の単方向相互接続 CBuxは、マシンuとマシンx間の双方向相互接続 本方法で形成されたマルチプリケーション表は、特に多数の冗長コンポーネント を有するシステムの場合、非常に大きくなり得る。幸運なことに、このマルチプ リケーション表を実際に形成することは必ずしも必要ない。むしろ表を計算する 際に必要な2つのコールアウトに関し同じルールに従うことにより、マルチプリ ケーションは実行できる。必要なのは、コールアウト階層線図を含む方向グラフ を具体的に示すことである。更にシステム中の冗長コールアウトを論理的形式で 表すことにより削除してもよい。(但し、マルチプリケーションを実行時、論理 コールアウトは物理コールアウトに移されてなければならない。) フォールトハンドラーはリスト内のコールアウトを組み合わせることがない。 代わりにフォールトハンドラーは、2つのコールアウトリストを「クロスマルテ ィプライ」することにより、元のリストの固有な善組合せを含んだ第3のリスト を形成する。例えば図21Aの両リスト1、リスト2のたすき掛けすると、図2 1Bに示すプロダクトエレメントの結果となる。二重コールアウトを削除すると 、共通マシン1/2電源供給、マシン1電源、マシン2電源、マシン1アダプタ 、マシン2アダプタ、1⇔2双方向相互接続から成るプロダクトリストの結果と なる。 独立ソースからのコールアウトリストを同様の方法で組み合わせることができ る。例えばフォールトハンドラー1700が図17のシステム中の各IOP17 05、1710上に存在すると仮定する。2つのフォールトハンドラー間にコミ ュニケーションが存在する場合、2つのフォールトハンドラーからのコールアウ トリストを、システム全体の1つのコールアウトリストに組み合わせることがで きる。組み合わせたこのリストの有する特殊性は、各フォールトハンドラーがリ ストを独立として扱った場合の特殊性に対し、等しいか又はそれ以上になる。 全てのシンドロームコールアウトリストが組合せられると、無意味なコールア ウトはリストから除かれる。除去は、各コールアウトをシステムの作動に対して 妥協の範囲に従って順位付けすることでなされる。最終的なコールアウトリスト (即ち、診断)を、最下位ランク(下位ランクは、より狭い範囲のコールアウト に適用するよう任意に選ばれる)のコールアウトを選択して、形成する。例えば 図22のコールアウトの順位付けの場合、図21Bのコールアウトリストを単一 コールアウト:マシン1⇔マシン2双方向相互接続にまで縮小できる。 順位付け手順は確率的仮定を含んでいる。他が全て等しい場合、順位が低いコ ールアウトは順位が高いコールアウトより、フォールトイベントの原因となり易 い。上記の例では、IOP1700(マシン1)とCE1710(マシン2)の 間の共通電源の初期電源故障がシンドロームを起こさせた可能性があるが、確証 がない(別のシンドロームの形又は既存のシンドロームを変化させる別のエラ ー)場合、これをコールアウトとして報告すると誤りを招くことになろう。 コールアウトはフォールトハンドラーが生成し得る最善の精度の診断を表して いる。一般にコールアウトは余りに特殊なのでサービス技術者は使うことができ ない。しかしそれらはシステムのサブコンポーネントを表すフィールド交換可能 装置(FRUs)の形にマッピングでき、このサブコンポーネントでサービス又 は交換を識別できる。例えばフォールトハンドラーは、相互接続アダプタ上の共 通受信ポートを識別できてもよい。このコールアウトに対応するFRUはアダプ タカードとなるであろう。 要約するとフォールトハンドラー1165は、図23に示す手順2300に従 って故障FRUを特定する。第1シンドロームのコールアウトリストから始まり (ステップ2305)、フォールトハンドラー1165は論理的コールアウトリス トを物理的リストに移し換える(ステップ2310)。フォールトハンドラー11 65は次にこの物理的リストを名称CURRENTで特定する(ステップ231 5)。 処理すべきシンドロームが更にある場合(ステップ2320)、フォールトハン ドラー1165は新たなコールアウトに関する論理的コールアウトリストを物理 的コールアウトリストに変換し(ステップ2325)、このリストをCURREN Tに対してクロスマルティプライし(ステップ2330)、結果のプロダクトをC URRENTとして記憶する(ステップ2335)。 シンドロームが一旦処理される(ステップ2320)と、フォールトハンドラ ー1165はCURRENTを最も特殊なコールアウトにまとめ上げ(ステップ 2340)、前記コールアウトをFRUsに移し(ステップ2345)、手順を終 える(ステップ2350)。 他の実施例も以下の請求項の範囲内にある。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フィッツジェラルド マーティン ジェイ ヴィー アメリカ合衆国 マサチューセッツ州 02053 メドウェイ ホルブルック スト リート 5 (72)発明者 レヴェイル ポール エイ アメリカ合衆国 マサチューセッツ州 01519 グラフトン ストラットン ロー ド 12 (72)発明者 マッコーラム ジェームズ ディー アメリカ合衆国 マサチューセッツ州 01588 ウィッティンスヴィル スウィフ ト ロード 275 (72)発明者 メンチ エリック アメリカ合衆国 マサチューセッツ州 01834 グローヴランド セイラム スト リート 677 (72)発明者 トランブレイ グレン エイ アメリカ合衆国 マサチューセッツ州 01568 アプトン サウス ストリート 139

Claims (1)

  1. 【特許請求の範囲】 1.計算エレメントと、データソースから前記計算エレメントへデータを提供す る複数のコントローラを有するコンピュータシステム中で、前記計算エレメン トへのデータ転送を同期化する方法において、計算エレメントがなすデータ要 求を遮断する段階と、前記遮断された要求をコントローラに送信する段階と、 前記遮断された要求に前記コントローラを通して応答する段階であって、少な くとも第一コントローラが、要求されたデータを前記計算エレメントへ送信す ることと、前記遮断された要求に第二コントローラがどのように応答するかを 表示することとで応答する、そのような応答する段階とから成ることを特徴と する方法。 2.前記第二コントローラを通じて、前記遮断された要求に対応するデータを前 記第二コントローラが持たない旨を表示することと、前記遮断された要求に対 して前記第一コントローラがデータを計算エレメントに送信することで応答す る旨を表示することにより、前記遮断された要求に応答する段階を更に含むこ とを特徴とする上記請求項1に記載の方法。 3.前記遮断された要求に対してあるコントローラがなす各応答において、他の 各コントローラが前記遮断された要求に対しどのように応答するかに関する表 示を含ませる段階を更に含むことを特徴とする上記請求項1に記載の方法。 4.前記遮断された要求に対する応答の一貫性を比較する段階を更に含むことを 特徴とする上記請求項1に記載の方法。 5.前記遮断された要求に対し他の各コントローラがどのように応答するかに関 する表示を各応答に含ませる段階を更に含み、前記比較する段階が前記の表示 の一貫性を比較することを含むことを特徴とする上記請求項4に記載の方法。 6.複数のコントローラの応答が要求データを含む場合、前記比較する段階がデ ータの一貫性を比較することを更に含むことを特徴とする上記請求項5に記載 の方法。 7.計算エレメントが全コントローラから応答を受信した後に、計算エレメント を通して応答の一貫性を比較する段階と、比較結果と全コントローラから応答 を受信したことを計算エレメントを通して知らせる段階とを更に含むことを特 徴とする上記請求項4に記載の方法。 8.応答が一貫してない場合、コントローラの一つを作動不能にする段階を更に 含むことを特徴とする上記請求項4に記載の方法。 9.計算エレメントが所定時間内に全コントローラから応答を受信しない場合、 エラー条件を生成する段階を更に含むことを特徴とする上記請求項1に記載の 方法。 10.データソースが前記第1コントローラに関連し、前記データソースから要 求データを、遮断された要求に応じ又前記第1コントローラを通して、獲得す る段階を更に含むことを特徴とする上記請求項1に記載の方法。 11.第2コントローラの状態の記録を第1コントローラを通して維持する段階 と、第2コントローラが遮断された要求に対してどのように応答するかを表示 する時に前記記録を使う段階とを更に含むことを特徴とする上記請求項1に記 載の方法。 12.データソースが前記第2コントローラに関連し、前記データソースの状態 の記録を第1コントローラを通して維持する段階と、第2コントローラが遮断 された要求に対してどのように応答するかを表示する時に前記記録を使う段階 とを更に含むことを特徴とする上記請求項11に記載の方法。 13.他の全てのコントローラの状態の記録を各コントローラを通して維持する 段階を更に含み、前記他のコントローラが遮断された要求に対してどのように 応答するかを表示する時に前記記録をコントローラに使わせることを特徴とす る上記請求項11に記載の方法。 14.各コントローラをデータソースに関連させる段階と、他の全てのコントロ ーラに関連したデータソースの状態の記録を各コントローラを通して維持する 段階と、前記他のコントローラが遮断された要求に対してどのように応答する かを表示する時に前記記録をコントローラに使わせる段階を更に含むことを特 徴とする上記請求項13に記載の方法。 15.データソースの状態が第2コントローラの変化に関連している時、遮断さ れた要求に対する他のコントローラからの応答を棄却する指示を、第2コント ローラを通して計算エレメントに送信する段階を更に含むことを特徴とする上 記請求項12に記載の方法。 16.遮断された要求に対する他のコントローラからの応答を棄却することと、 前記応答が棄却された旨の知らせをコントローラに送信することで、前記指示 に対して計算エレメントを通して応答する段階を更に含むことを特徴とする上 記請求項15に記載の方法。 17.第2コントローラに関連するデータソースの記録を更新することにより、 前記知らせに対して第1コントローラを通して応答する段階を更に含むことを 特徴とする上記請求項16に記載の方法。 18.前記記録を更新後、要求データを計算エレメントに第1コントローラを通 して再送信する段階と、第2コントローラが遮断された要求に対してどのよう に応答するかを第1コントローラを通して表示する段階を更に含むことを特徴 とする上記請求項17に記載の方法。 19.データソースが各コントローラに関係しており、各コントローラは、関連 するデータソースが要求を処理すると予想されるか否かを決定することと、前 記関連するデータソースが要求を処理すると予想される場合、関連するデータ ソースに対する要求を送信し、要求に関する結果を関連するデータソースから 受信し、要求に関する結果を計算エレメントに送ることと、前記関連するデー タソースが要求を処理すると予想されない場合、要求に対してデータが提供さ れない旨を計算エレメントに知らせることによって遮断された要求に対して応 答することを特徴とする上記請求項1に記載の方法。 20.計算エレメントと、データソースと、前記データソースから前記計算エレ メントへデータを提供する複数のコントローラを有するコンピュータシステム 中で、前記計算エレメントへのデータ転送を同期化する方法において、計算エ レメントがなすデータ要求を遮断する段階と、前記遮断された要求をコントロ ーラに送信する段階と、前記遮断された要求に前記各コントローラを通して応 答する段階とから成り、この応答する段階は、関連するデータソースが要求を 処理すると期待されるか否かを決定することと、前記関連するデータソースが 要求を処理すると予想される場合、関連するデータソースに対する要求を送信 し、要求に関する結果を関連するデータソースから受信し、要求に関する結果 を計算エレメントに送ることと、前記関連するデータソースが要求を処理する と予想されない場合、要求に対してデータが提供されない旨を計算エレメント に知らせることによって遮断された要求に対して応答することとで成ることを 特徴とする方法。 21.計算エレメントと、データソースから前記計算エレメントへデータを提供 しかつ前記計算エレメントに対し非同期的に作動する複数のコントローラを有 するコンピュータシステム中で、同一インストラクションストリームを処理す る計算エレメント間において同期を維持する方法において、同一インストラク ションストリームを処理する計算エレメントにおいては、各計算エレメントが インストラクションストリーム中の共通点でインストラクションストリームの 処理を停止する段階と、フリーズ要求メッセージを生成する段階と、前記フリ ーズ要求メッセージをコントローラに送信する段階とを含み、或るコントロー ラにおいては、或る計算エレメントからフリーズ要求メッセージを受信する段 階と、他の計算エレメントからのフリーズ要求メッセージを待ち受ける段階と 、同一インストラクションストリームを処理する各計算エレメントからフリー ズ要求メッセージを受信した時に、フリーズ応答メッセージを生成し、前記フ リーズ応答メッセージを計算エレメントに送信する段階とを含み、同一インス トラクションストリームを処理する計算エレメントにおいては、前記計算エレ メントが、或るコントローラからのフリーズ応答メッセージを受信時に、フリ ーズ要求メッセージが送信された他のコントローラからのフリーズ要求メッセ ージを待ち受ける段階と、前記各コントローラからのフリーズ応答メッセージ を受信した時に、フリーズリリースメッセージを生成する段階と、フリーズリ リースメッセージをコントローラに送信する段階と、インストラクションスト リームの処理を再開する段階を含むことを特徴とする方法。 22.インストラクションストリーム中の前記共通点がI/O操作に対応するこ とを特徴とする上記請求項21に記載の方法。 23.前記インストラクションストリーム中の共通点がI/O操作なしで所定数 のインストラクションが発生することに対応することを特徴とする上記請求項 21に記載の方法。 24.フリーズ応答メッセージを生成する段階が、前記フリーズ応答メッセージ 中に時間更新を含ませることを含んでおり、更に計算エレメントを所有するこ とと、フリーズ要求メッセージが送信された各コントローラからのフリーズ応 答メッセージを受信する時に、フリーズ応答メッセージからの時間更新を使っ てシステム時間を更新することを含むことを特徴とする上記請求項21に記載 の方法。 25.システム時間を更新する段階が、ある特定のコントローラが生成するフリ ーズ応答メッセージからの時間更新を使うことを含むことを特徴とする上記請 求項24に記載の方法。 26.計算エレメントを所有することと、フリーズ要求メッセージが送信された 各コントローラからのフリーズ応答メッセージを受信する時に、フリーズ応答 メッセージを受信する以前にコントローラから受信したデータを処理すること を更に含むことを特徴とする上記請求項21に記載の方法。 27.エラー報告エレメントと、エラー処理エレメントを有するコンピュータシ ステム中でフォールトを扱う方法において、或るエラー報告エレメントを通し てエラー条件を検出し、前記エラー条件に関する情報をエラーメッセージとし てエラー報告エレメントに接続されたエラー処理エレメントに送信する段階と 、少なくとも1つのエラー処理エレメントを通して、前記少なくとも1つのエ ラー処理エレメントに接続される他のエラー処理エレメントへ前記エラーメッ セージを再送信することを特徴とする方法。 28.エラー報告エレメントと、エラー処理エレメントを有するコンピュータシ ステム中でフォールトを扱う方法において、複数のエラー報告エレメントを通 してエラー条件を検出し、前記エラー条件に関する情報をエラーメッセージと して、エラー報告エレメントに接続されたエラー処理エレメントに送信するこ とと、少なくとも1つのエラー処理エレメントを通して、複数のエラー報告エ レメントから関係エラーメッセージの情報を組合せ、エラー条件のソースを特 定する際に前記組合せ情報を使うことから成ることを特徴とする方法。 29.前記少なくとも1つのエラー処理エレメントが、関係エラーメッセージの 情報を組合せるために状態表を使うことを特徴とする上記請求項28に記載の 方法。 30.前記少なくとも1つのエラー処理エレメントが、特定のエラーを識別する エラー識別子と、エラーメッセージが表すエラーを生じさせたサブコンポーネ ントを識別するエラーターゲットと、エラーメッセージを生成したエラー報告 エレメントとエラーメッセージが受信されたパスを特定する報告ソースとを使 って、エラーメッセージを表すことを特徴とする上記請求項29に記載の方法 。 31.エラー処理エレメントが、以前に受信されたエラーメッセージを表す状態 に対して受信したエラーメッセージを比較することにより、エラーメッセージ が関係あるか否かを決定することを特徴とする上記請求項29に記載の方法。 32.計算エレメントと、データソースと、前記データソースから前記計算エレ メントへデータを提供するコントローラとを有し、前記計算エレメントは、前 記計算エレメント上で作動するソフトウェアがなすデータ要求を遮断しかつ遮 断された要求をコントローラに送信するするように構成され、少なくとも第1 コントローラは、要求されたデータを計算エレメントへ送信することと、第2 コントローラが遮断された要求に対してどのように応答するかを表示すること で、遮断された要求に対し応答するよう構成されていることを特徴とするシス テム。 33.前記第2コントローラは、2コントローラが遮断された要求に対応するデ ータを持っていない旨表示することと、第1コントローラが遮断された要求に 対して応答するデータを計算エレメントに送信することによって応答する旨表 示することで、遮断された要求に対し応答するよう構成されていることを特徴 とする上記請求項32に記載のシステム。 34.各コントローラが遮断された要求に応じて、他の各コントローラが遮断さ れた要求に対してどのように応答するかに関する表示を含むよう構成されてい ることを特徴とする上記請求項32に記載のシステム。 35.計算エレメントが遮断された要求に対する応答の一貫性を比較するよう構 成されていることを特徴とする上記請求項32に記載のシステム。 36.計算エレメントが全コントローラからの応答を受信した後に応答の一貫性 を比較し、応答が全コントローラから受信された旨と比較結果をコントローラ に知らせるよう構成されていることを特徴とする上記請求項35に記載のシス テム。 37.計算エレメントが全コントローラからの応答を所定時間内に受信しなかっ た場合エラー条件を生成するよう構成されていることを特徴とする上記請求項 32に記載のシステム。 38.第1データソースが第1コントローラと関連しており、第1コントローラ は遮断された要求中に要求されているデータを第1データソースから得るよう 構成されていることを特徴とする上記請求項32に記載のシステム。 39.第1コントローラは第2コントローラの状態の記録を維持しかつ第2コン トローラが遮断された要求にどのように応答するかを表示する時に前記記録を 使うよう構成されていることを特徴とする上記請求項32に記載のシステム。 40.第1データソースは第2コントローラと関連しており、第1コントローラ は第1データソースの状態の記録を維持しかつ第2コントローラが遮断された 要求にどのように応答するかを表示する時に前記記録をつかうよう構成されて いることを特徴とする上記請求項39に記載のシステム。 41.第1コントローラは、第1データソースの状態が変化した時、計算エレメ ントに他のコントローラからの応答を棄却する指示を送信するよう構成されて いることを特徴とする上記請求項40に記載のシステム。 42.前記計算エレメントが指示に対して、遮断された要求に対する他のコント ローラからの応答を棄却することと、応答が棄却された旨の知らせをコントロ ーラに送信することにより、応答するよう構成されていることを特徴とする上 記請求項41に記載のシステム。 43.第1コントローラが、第1データソースの状態の記録を更新することで、 前記知らせに応答するよう構成されていることを特徴とする上記請求項42に 記載のシステム。 44.第1コントローラが、記録更新後に要求データを計算エレメントへ再送信 し、第2コントローラが遮断された要求に対しどのように応答するかを表示す るよう構成されていることを特徴とする上記請求項43に記載のシステム。 45.データソースが各コントローラに関連しており、各コントローラが、関連 するあるデータソースに要求の処理を期待されるか否かを決定することと、前 記データソースが要求を処理するよう期待される場合、前記関連するデータソ ースに要求を送信し、要求の結果をデータソースから受信し、前記要求の結果 を計算エレメントに送ることと、前記データソースが要求を処理すると期待さ れない場合、要求に対しデータが提供されない旨計算エレメントに知らせるこ とで、遮断された要求に対し応答するよう構成されていることを特徴とする上 記請求項32に記載のシステム。 46.計算エレメントと、データソースと、前記データソースから前記計算エレ メントにデータを提供するコントローラを有するコンピュータシステムにおい て、前記計算エレメントは、計算エレメント上で作動するソフトウェアがなす データ要求を遮断しかつ遮断されたデータ要求をコントローラに送信するよう 構成され、各コントローラは、関連するあるデータソースに要求の処理を期待 されるか否かを決定することと、前記データソースが要求を処理するよう期待 される場合、前記関連するデータソースに要求を送信し、要求の結果をデータ ソースから受信し、前記要求の結果を計算エレメントに送ることと、前記デー タソースが要求を処理すると期待されない場合、要求に対しデータが提供され ない旨計算エレメントに知らせることで、遮断されたデータ要求に応答するよ う構成されていることを特徴とするコンピュータシステム。 47.同一のインストラクションストリームを処理するよう構成された計算エレ メントと、データソースと、前記データソースから前記計算エレメントにデー タを提供しかつ前記計算エレメントに対して非同期的に作動するよう構成され たコントローラを有するコンピュータシステムにおいて、前記計算エレメント の各々は更に、インストラクションストリーム中の或る共通点でインストラク ションストリームの処理を停止し、フリーズ要求メッセージを生成し、フリー ズ要求メッセージをコントローラに送信するよう構成され、或るコントローラ は更に、計算エレメントからのフリーズ要求メッセージを受信し、他の計算エ レメントからのフリーズ要求メッセージを待ち受け、各計算エレメントからの フリーズ要求メッセージを受信した時、フリーズ応答メッセージを生成してか つ計算エレメントに送信するよう構成され、前記計算エレメントの各々は、更 に、或るコントローラからのフリーズ応答メッセージを受信した時、フリーズ 要求メッセージが送信された他のコントローラからのフリーズ応答メッセージ を待ち受け、前記各コントローラからのフリーズ応答メッセージを受信したと き、フリーズリリースメッセージを生成し、フリーズリリースメッセージをコ ントローラに送信し、インストラクションストリームの処理を再開するよう構 成されていることを特徴とするコンピュータシステム。 48.エラー報告エレメントとエラー処理エレメントを有し、或るエラー報告エ レメントはエラー条件を検出し、前記エラー条件についての情報をエラーメッ セージとしてエラー報告エレメントに接続されているエラー処理エレメントに 送信するよう構成され、少なくとも1つのエラー処理エレメントは、エラーメ ッセージを前記エラー処理エレメントに接続されたエラー処理エレメントに送 信するよう構成されていることを特徴とするコンピュータシステム。 49.複数のエラー報告エレメントと複数のエラー処理エレメントとを有し、前 記複数のエラー報告エレメントは、エラー条件を検出しかつ前記エラー条件に ついての情報をエラーメッセージとしてエラー報告エレメントに接続されてい る前記複数のエラー処理エレメントに送信するよう構成され、少なくとも1つ のエラー処理エレメントは、多数のエラー報告エレメントから来る関係したエ ラーメッセージからの情報を組合せ、エラー条件のソースを特定する際に組み 合わせた情報を使うよう構成されていることを特徴とするコンピュータシステ ム。
JP51477598A 1996-09-17 1997-09-16 フォールト回復/フォールト許容計算 Expired - Lifetime JP4544651B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/710,404 US5790397A (en) 1996-09-17 1996-09-17 Fault resilient/fault tolerant computing
US08/710,404 1996-09-17
PCT/US1997/016218 WO1998012657A1 (en) 1996-09-17 1997-09-16 Fault resilient/fault tolerant computing

Publications (2)

Publication Number Publication Date
JP2001502449A true JP2001502449A (ja) 2001-02-20
JP4544651B2 JP4544651B2 (ja) 2010-09-15

Family

ID=24853895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51477598A Expired - Lifetime JP4544651B2 (ja) 1996-09-17 1997-09-16 フォールト回復/フォールト許容計算

Country Status (7)

Country Link
US (2) US5790397A (ja)
EP (1) EP1000404B1 (ja)
JP (1) JP4544651B2 (ja)
AU (1) AU723208B2 (ja)
CA (1) CA2264599A1 (ja)
DE (1) DE69739883D1 (ja)
WO (1) WO1998012657A1 (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
TW355762B (en) * 1996-12-26 1999-04-11 Toshiba Co Ltd Checkpoint rollback I/O control device and I/O control method
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
DE19815263C2 (de) * 1998-04-04 2002-03-28 Astrium Gmbh Vorrichtung zur fehlertoleranten Ausführung von Programmen
US6178522B1 (en) 1998-06-02 2001-01-23 Alliedsignal Inc. Method and apparatus for managing redundant computer-based systems for fault tolerant computing
US6321279B1 (en) * 1998-09-14 2001-11-20 Compaq Computer Corporation System for implementing intelligent I/O processing in a multi-processor system by redirecting I/O messages to a target central processor selected from the multi-processor system
US6351829B1 (en) * 1998-10-28 2002-02-26 Honeywell Inc System and method for distinguishing a device failure from an inter-device communication failure
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
FR2803057B1 (fr) * 1999-12-22 2002-11-29 Centre Nat Etd Spatiales Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme
US6961765B2 (en) 2000-04-06 2005-11-01 Bbx Technologies, Inc. System and method for real time monitoring and control of networked computers
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6735715B1 (en) 2000-04-13 2004-05-11 Stratus Technologies Bermuda Ltd. System and method for operating a SCSI bus with redundant SCSI adaptors
US6708283B1 (en) 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
US6691225B1 (en) 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US6665822B1 (en) * 2000-06-09 2003-12-16 Cisco Technology, Inc. Field availability monitoring
EP1239369A1 (de) * 2001-03-07 2002-09-11 Siemens Aktiengesellschaft Fehlertolerante Rechneranordnung und Verfahren zum Betrieb einer derartigen Anordnung
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
DE60112405T2 (de) * 2001-05-10 2006-07-06 Hewlett-Packard Development Co., L.P., Houston Computer mit einem Urladesequenz enthaltendem Hauptverarbeitungssubsystem
US7177267B2 (en) * 2001-11-09 2007-02-13 Adc Dsl Systems, Inc. Hardware monitoring and configuration management
US7203865B2 (en) * 2002-04-23 2007-04-10 Gateway Inc. Application level and BIOS level disaster recovery
US20030236826A1 (en) * 2002-06-24 2003-12-25 Nayeem Islam System and method for making mobile applications fault tolerant
US7266607B2 (en) * 2002-08-27 2007-09-04 International Business Machines Corporation Quasi-high availability hosted applications
US7197664B2 (en) * 2002-10-28 2007-03-27 Intel Corporation Stateless redundancy in a network device
US7149919B2 (en) * 2003-05-15 2006-12-12 Hewlett-Packard Development Company, L.P. Disaster recovery system with cascaded resynchronization
SG146665A1 (en) * 2003-09-19 2008-10-30 Research In Motion Ltd Handheld electronic device and associated method providing time data in a messaging environment
US7426656B2 (en) * 2004-03-30 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system executing user programs on non-deterministic processors
US8799706B2 (en) 2004-03-30 2014-08-05 Hewlett-Packard Development Company, L.P. Method and system of exchanging information between processors
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7272745B2 (en) * 2004-06-30 2007-09-18 Intel Corporation Data protection system
JP4165499B2 (ja) * 2004-12-13 2008-10-15 日本電気株式会社 コンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法
US7418604B2 (en) * 2004-12-22 2008-08-26 Hewlett-Packard Development Company, L.P. System and method for powering on after verifying proper operation of a charge pump and voltage regulator
US7496787B2 (en) * 2004-12-27 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US7469375B2 (en) * 2005-01-18 2008-12-23 International Business Machines Corporation Systems and methods for managing error dependencies
US7328331B2 (en) * 2005-01-25 2008-02-05 Hewlett-Packard Development Company, L.P. Method and system of aligning execution point of duplicate copies of a user program by copying memory stores
US7467327B2 (en) * 2005-01-25 2008-12-16 Hewlett-Packard Development Company, L.P. Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed
US20060222125A1 (en) * 2005-03-31 2006-10-05 Edwards John W Jr Systems and methods for maintaining synchronicity during signal transmission
US20060222126A1 (en) * 2005-03-31 2006-10-05 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining synchronicity during signal transmission
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
US7933966B2 (en) * 2005-04-26 2011-04-26 Hewlett-Packard Development Company, L.P. Method and system of copying a memory area between processor elements for lock-step execution
US20070011499A1 (en) * 2005-06-07 2007-01-11 Stratus Technologies Bermuda Ltd. Methods for ensuring safe component removal
US20070006166A1 (en) * 2005-06-20 2007-01-04 Seagate Technology Llc Code coverage for an embedded processor system
US20070028144A1 (en) * 2005-07-29 2007-02-01 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US20070038891A1 (en) * 2005-08-12 2007-02-15 Stratus Technologies Bermuda Ltd. Hardware checkpointing system
US7669073B2 (en) * 2005-08-19 2010-02-23 Stratus Technologies Bermuda Ltd. Systems and methods for split mode operation of fault-tolerant computer systems
US7516246B2 (en) 2005-10-27 2009-04-07 International Business Machines Corporation Communications channel method for verifying integrity of untrusted subsystem responses to a request
US20070180312A1 (en) * 2006-02-01 2007-08-02 Avaya Technology Llc Software duplication
US8121029B2 (en) * 2006-02-06 2012-02-21 At&T Intellectual Property I, L.P. Methods and systems for providing supported DSL communications features as selections
US20070192381A1 (en) * 2006-02-15 2007-08-16 Padmanabhan Arun K Recalling website customer information across multiple servers located at different sites not directly connected to each other without requiring customer registration
US20070209032A1 (en) * 2006-02-23 2007-09-06 Microsoft Corporation Driver verifier
US7676694B2 (en) * 2006-03-31 2010-03-09 Emc Corporation Managing system components
DE102006048173A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren zum Umschalten eines Systems mit mehreren Ausführungseinheiten
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.
US7949905B2 (en) * 2007-10-09 2011-05-24 Honeywell International Inc. Apparatus and method for dynamically detecting improper configuration data provided in a network
EP2372556A4 (en) * 2008-12-01 2012-07-11 Fujitsu Ltd CONTROL UNIT, INFORMATION PROCESSING DEVICE AND METHOD FOR CONTROLLING INFORMATION PROCESSING DEVICE
JP6122135B2 (ja) * 2012-11-21 2017-04-26 コーヒレント・ロジックス・インコーポレーテッド 分散型プロセッサを有する処理システム
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
WO2015102875A1 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods of using data forwarding
EP3090345B1 (en) 2013-12-30 2017-11-08 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
WO2015102873A2 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
WO2016077570A1 (en) 2014-11-13 2016-05-19 Virtual Software Systems, Inc. System for cross-host, multi-thread session alignment
DE102017208484A1 (de) * 2017-05-19 2018-11-22 Robert Bosch Gmbh Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren
US10592359B2 (en) 2017-11-02 2020-03-17 Cognizant Technology Solutions India Pvt. Ltd. System and a method for providing on-demand resiliency services
US10902166B2 (en) * 2017-12-31 2021-01-26 Arteris, Inc. System and method for isolating faults in a resilient system
US10838815B2 (en) 2018-09-19 2020-11-17 Dell Products L.P. Fault tolerant and diagnostic boot
US10891068B2 (en) 2019-06-03 2021-01-12 International Business Machines Corporation Temporary relocation of data within local storage of a dispersed storage network

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4123794A (en) * 1974-02-15 1978-10-31 Tokyo Shibaura Electric Co., Limited Multi-computer system
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
US4270168A (en) * 1978-08-31 1981-05-26 United Technologies Corporation Selective disablement in fail-operational, fail-safe multi-computer control system
US4356546A (en) * 1980-02-05 1982-10-26 The Bendix Corporation Fault-tolerant multi-computer system
US4438494A (en) * 1981-08-25 1984-03-20 Intel Corporation Apparatus of fault-handling in a multiprocessing system
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4503535A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for recovery from failures in a multiprocessing system
US4634110A (en) * 1983-07-28 1987-01-06 Harris Corporation Fault detection and redundancy management system
US4531185A (en) * 1983-08-31 1985-07-23 International Business Machines Corporation Centralized synchronization of clocks
US4823256A (en) * 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
US4622667A (en) * 1984-11-27 1986-11-11 Sperry Corporation Digital fail operational automatic flight control system utilizing redundant dissimilar data processing
US4695945A (en) * 1985-02-28 1987-09-22 International Business Machines Corporation Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor
US5062042A (en) * 1986-04-28 1991-10-29 Xerox Corporation System for managing data which is accessible by file address or disk address via a disk track map
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US4812968A (en) * 1986-11-12 1989-03-14 International Business Machines Corp. Method for controlling processor access to input/output devices
US4805107A (en) * 1987-04-15 1989-02-14 Allied-Signal Inc. Task scheduler for a fault tolerant multiple node processing system
US4910663A (en) * 1987-07-10 1990-03-20 Tandem Computers Incorporated System for measuring program execution by replacing an executable instruction with interrupt causing instruction
EP0306211A3 (en) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
US4907228A (en) * 1987-09-04 1990-03-06 Digital Equipment Corporation Dual-rail processor with error checking at single rail interfaces
US4916704A (en) * 1987-09-04 1990-04-10 Digital Equipment Corporation Interface of non-fault tolerant components to fault tolerant system
EP0306244B1 (en) * 1987-09-04 1995-06-21 Digital Equipment Corporation Fault tolerant computer system with fault isolation
CA1320276C (en) * 1987-09-04 1993-07-13 William F. Bruckert Dual rail processors with error checking on i/o reads
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US4847830A (en) * 1987-12-02 1989-07-11 Network Equipment Technologies, Inc. Method and apparatus for automatic loading of a data set in a node of a communication network
DE3803525C2 (de) * 1988-02-05 1993-12-02 Licentia Gmbh Vorrichtung zum Betrieb von absoluten Echtzeituhren in einem eine Zentraluhr und Teilnehmer enthaltenden Prozeßsteuersystem
US4937741A (en) * 1988-04-28 1990-06-26 The Charles Stark Draper Laboratory, Inc. Synchronization of fault-tolerant parallel processing systems
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5048022A (en) * 1989-08-01 1991-09-10 Digital Equipment Corporation Memory device with transfer of ECC signals on time division multiplexed bidirectional lines
US5088021A (en) * 1989-09-07 1992-02-11 Honeywell, Inc. Apparatus and method for guaranteed data store in redundant controllers of a process control system
US5091847A (en) * 1989-10-03 1992-02-25 Grumman Aerospace Corporation Fault tolerant interface station
US5327553A (en) * 1989-12-22 1994-07-05 Tandem Computers Incorporated Fault-tolerant computer system with /CONFIG filesystem
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5280621A (en) * 1989-12-29 1994-01-18 Zenith Data Systems Corporation Personal computer having dedicated processors for peripheral devices interconnected to the CPU by way of a system control processor
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
US5095423A (en) * 1990-03-27 1992-03-10 Sun Microsystems, Inc. Locking mechanism for the prevention of race conditions
US5157667A (en) * 1990-04-30 1992-10-20 International Business Machines Corporation Methods and apparatus for performing fault isolation and failure analysis in link-connected systems
US5142470A (en) * 1990-09-26 1992-08-25 Honeywell Inc. Method of maintaining synchronization of a free-running secondary processor
US5261092A (en) * 1990-09-26 1993-11-09 Honeywell Inc. Synchronizing slave processors through eavesdrop by one on periodic sync-verify messages directed to another followed by comparison of individual status
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
US5339404A (en) * 1991-05-28 1994-08-16 International Business Machines Corporation Asynchronous TMR processing system
US5222215A (en) * 1991-08-29 1993-06-22 International Business Machines Corporation Cpu expansive gradation of i/o interruption subclass recognition
US5367639A (en) * 1991-12-30 1994-11-22 Sun Microsystems, Inc. Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
US5251312A (en) * 1991-12-30 1993-10-05 Sun Microsystems, Inc. Method and apparatus for the prevention of race conditions during dynamic chaining operations
US5398331A (en) * 1992-07-08 1995-03-14 International Business Machines Corporation Shared storage controller for dual copy shared data
US5423025A (en) * 1992-09-29 1995-06-06 Amdahl Corporation Error handling mechanism for a controller having a plurality of servers
US5448722A (en) * 1993-03-10 1995-09-05 International Business Machines Corporation Method and system for data processing system error diagnosis utilizing hierarchical blackboard diagnostic sessions
US5390326A (en) * 1993-04-30 1995-02-14 The Foxboro Company Local area network with fault detection and recovery
EP0974912B1 (en) * 1993-12-01 2008-11-05 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5491625A (en) * 1993-12-23 1996-02-13 The Dow Chemical Company Information display system for actively redundant computerized process control
US5555372A (en) * 1994-12-21 1996-09-10 Stratus Computer, Inc. Fault-tolerant computer system employing an improved error-broadcast mechanism
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5923840A (en) * 1997-04-08 1999-07-13 International Business Machines Corporation Method of reporting errors by a hardware element of a distributed computer system
US5968189A (en) * 1997-04-08 1999-10-19 International Business Machines Corporation System of reporting errors by a hardware element of a distributed computer system

Also Published As

Publication number Publication date
EP1000404A1 (en) 2000-05-17
CA2264599A1 (en) 1998-03-26
US6205565B1 (en) 2001-03-20
AU4345697A (en) 1998-04-14
EP1000404A4 (en) 2000-11-08
WO1998012657A1 (en) 1998-03-26
EP1000404B1 (en) 2010-05-19
JP4544651B2 (ja) 2010-09-15
AU723208B2 (en) 2000-08-17
DE69739883D1 (de) 2010-07-01
US5790397A (en) 1998-08-04

Similar Documents

Publication Publication Date Title
JP2001502449A (ja) フォールト回復/フォールト許容計算
US7788524B2 (en) Fault-tolerant networks
CA2659395C (en) Match server for a financial exchange having fault tolerant operation
US7975173B2 (en) Fault tolerance and failover using active copy-cat
US8041985B2 (en) Match server for a financial exchange having fault tolerant operation
US6898735B2 (en) Test tool and methods for testing a computer structure employing a computer simulation of the computer structure
JPH10207849A (ja) 分散システムにおける高信頼化と負荷分散方法
JPH06175788A (ja) バックアップ装置及びその方法
AU7167300A (en) Fault handling/fault tolerant computing
Yoo A fail-slow tolerant Raft implementation
CN117785568A (zh) 一种双主双机热备方法及装置
JP3679412B2 (ja) 故障から立直りが速い/故障に対する耐性がある計算処理
JP3679412B6 (ja) 故障から立直りが速い/故障に対する耐性がある計算処理

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070416

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100510

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100629

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

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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