JPH02503122A - 耐障害多重ノード処理装置用動作制御装置 - Google Patents

耐障害多重ノード処理装置用動作制御装置

Info

Publication number
JPH02503122A
JPH02503122A JP63504242A JP50424288A JPH02503122A JP H02503122 A JPH02503122 A JP H02503122A JP 63504242 A JP63504242 A JP 63504242A JP 50424288 A JP50424288 A JP 50424288A JP H02503122 A JPH02503122 A JP H02503122A
Authority
JP
Japan
Prior art keywords
task
node
message
error
messages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP63504242A
Other languages
English (en)
Inventor
フイン,アラン・エム
キークハフアー,ロジヤー・エム
ワルター,クリス・ジエイ
ストーカー,マリオ・デイ
イー,ヘンリー・シイ
キーテイング,パトリツク・エヌ
ローダン,トーマス・ジイ,ザ サード
Original Assignee
アライド・コーポレーシヨン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アライド・コーポレーシヨン filed Critical アライド・コーポレーシヨン
Publication of JPH02503122A publication Critical patent/JPH02503122A/ja
Pending 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • G06F11/188Voting techniques where exact match is not required
    • 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/0721Error 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 within a central processing unit [CPU]
    • G06F11/0724Error 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 within a central processing unit [CPU] in a multiprocessor or a multi-core 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between 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/187Voting techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 耐障害多重ノード処理装置用動作制御装置相互参照 本発明は本願と同時に出願され、同様に譲渡された、同時係属特許出願(処理番 号ATC−102−A。
ATC−104−A、ATC−105−A、ATC−105−B。
ATC−106−A、ATC−107−A、ATC−109−A)に関連するも のである。
発明の背景 1、発明の分野 本発明は多重ノード処理装置の分野に関するものであり、とくに、多重ノード処 理装置の各ノードの動作を障害に耐えるやシ方で制御する動作制御装置に関する ものである。
2、先行技術の説明 障害に耐えるコンピュータ装置用動作制御装置を製造する最も初期の試みは、制 御動作のために要求されるあらゆるタスクを各コンピュータが同時に実行する冗 長コンピュータを設けたものであった。多数のコンピュータの出力をモニタする 投票回路は、装置用動作制御装置の正しい出力であると仮定された多くの出力を 決定した。この種の装置においては、障害を起したコンピュータを検出でき、ま たは検出できず、かつ障害を起したコンピュータの動作を停止でき、または停止 できない。
冗長コンピュータの概念は、非常に成功しているが等しい性能のコンピュータを 多数必要とするから高くつく。あるいは、何台かのコンピュータの動作を主コン ピユータによシ制御および統合するマスタースレーブ概念が導入された。マスク 制御はどのタスクを個々のコンピュータが実行すべきかを指定した。こうするこ とによシ、全てのコンピュータはあらゆるタスクを実行することをもはや要求さ れず、タスクの多くを並列に実行できるから、制御動作の実行時間が短縮される 。この種の装置においては、コンピュータが障害を起したことが検出されると、 その障害を起したコンピュータに通常割当てられていたタスクをマスクが他のコ ンピュータへ割当てることにより、マスクは積極的な関与から除去できる。
マスタースレーブ概念において遭遇する問題はマスクの状態と、マスクに障害が 起きた時に装置が障害を起すかどうかに全面的に依存することである。この効果 は冗長マスク制御器を用いることにょシ直すことができるが、冗長マスクの費用 が増大するために、使用者が信頼度の向上のために進んで支払うような状況にそ れらの装置用動作制御装置の応用性が制限される。そのような状況の典型的なも のは原子力発電所、宇宙探査および制御装置の障害が生命の危険にかかわるよう なその他の状況の制御である。
上記のようなマスタースレーブおよび冗長実行耐障害コンピュータ装置の最近の 改良の例が、耐障害コンピュータ装置の特集である、プロシーディンゲス・サブ ・ジ・アイイーイーイー(Proceedings ofthe IEEE)6 6巻、10号、1978年10月、に示されている。とくに興味のおるのは、1 14.6〜1159ベージのディー会カツキ(D、 Katsuki)他による 「プルリバス:アンオペレーショナル・フォールト―トーレラント番マイクロプ ロセッサ(Pluribus:An 0per−ational Fault  Tolerant Micropreisor)Jと題する論文、および124 0〜1255ページのディー・エイチ畢クエンスレイ(D、 H,Wensle y)他による「エスアイエフテイー:ザ・デザイン拳アンド・アナリシスOオブ ーア参フォールト拳トレラント・コンピュータ・7オー拳エアクラフト−コント ロール(SIFT: Thepesign and Analysis of  a Fault TolerantComputer for Airclaf t Control)Jと題する論文である。5IFT装置用装置制動装置は各 装置用動作制御装置タスクの冗長実行とスレーブ制御機能の冗長実行を用いる。
プルリバス(Pluribus) 装置用動作制御装置のタスクは、ある種の障 害が起きた時に失われることがある最新の情報のマスタコピーを有する。
最近、ホワイトサイド(Whiteside)  他によシ米国特許第4,25 6,527号において新しい耐障害多重コンピュータアーキテクチャが開示され ている。その耐障害多重コンピュータアーキテクチャにおいては、個々の各タス ク実行ノードが動作プロセッサと、それ自身のノードとして機能する動作制御器 とを有する。
本発明はホワイトサイド(Whiteside)他による米国特許第4,256 ,527号に開示され、改良された耐障害性能および制御性能を有する装置を基 にした耐障害多重ノード処理装置用動作制御装置である。この動作制御装置の前 身が、1985年12月3〜6日にサン・デイエゴ(San Diego)にお いて開催されたプロシーディンゲス・オプ・ザ・リアル−タイム・システム管シ ンポジウム(Proceedings of  theReal−Tirne  System Symposium)において出版された、シー・ジエーーウオ ルター(C,J、Walter)他による論文(エムエーエフテイー:アーマル チコンピュータeアーキテクチャ・フォー・フォールトート−ランス拳インーリ アルタイム・コントロール・システムズ(MAFT:A Multicompu ter Architec −ture for Fault−Toleran ce in Real−Time con−trol Systems)Jによ シ記述されている。
発明の概要 本発明は、耐障害多重ノード処理装置用動作制御装置である。各ノードは、所定 のタスクセットを実行するための動作プロセッサと、装置内の1つおきの7−ド と同期してそれ自身のノードを設定および維持し、それ自身のノードの動作を制 御し、ノード。
間メツセージを交換することによシ装置内の他の全てのノードと統合してそれ自 身の動作プロセッサにより実行すべきタスクを選択するための動作制御器とを有 する。
オペレーションズ制御器は、それ自身の動作制御器によシ発生されたノード間メ ツセージの全てを送信する送信器を有する。送信器は2つまたはそれ以上のメツ セージを送信する用意ができた時に、ノード間メツセージを送信する順序を決定 する仲裁器を有する。複数の受信器、各受信器はそれぞれ1つの7−ド、および そのノードからのメツセージt 受Mするだけである。メツセージ検査器が、受 信した各メツセージの物理的誤シと論理的誤シを点検して、検出した各誤シを識 別する誤り状態バイトを含むノード間誤シレポートを発生する。メンセージ検査 器は受信したノンセージをそれぞれの順序でアノロードするために各受信器を票 決する。票決器サブシステムは、同じ情報を含んでいる誤シのない全てのメツセ ージの内容について票決して、票決された値を有する票決器を有し、かつ票決さ れた値とは所定の置板上に異なる内容を有する票決された値の発生に用いられる メツセージを送った各ノードを識別するメート間誤シレポートを発生する異常検 査器を有する。
耐障害器が、メツセージ検査器から受信した誤シのない全てのメツセージを票決 器サブシステムへ送り、それ自身の動作制御器の全てのサブシステムによシ累積 された全ての誤シレポートを含んでいるノード間誤シメッセージを発生し、検出 した誤シの数と、そのノード間誤シレポートにおいて識別された検出された誤シ の厳しさとを基にして装置内の各ノードに対するベースペナルティカウントを発 生し、ノード間ベースペナルティカウントメツセージを交換することによシ各ノ ードに対する基礎ペナルティカウントを全体的に確認し、所定の実行しきい値を コニたベースペナルティカウントを有する各ノードを識別する装置状態ベクトル を発生する。タスクスケジューラ−が、それ自身の動作プロセッサによシ次に実 行すべきタスクをアクティブタスクリストから選択し、タスク完了メツセージ/ タスク開始メツセージを交換することによシ各ノードのスケジュール作成と実行 において全体的なデータベースを維持し、そのノードに対して複製されたスケジ ュール作成法とは異なるスケジュール作成法を有する誤シレポートを発生する。
動作制御器は′データメモリと、票決された値をそのデータメモリに格納するタ スクコミュニケータとを有する。そのタスクコミュニケータは、スケジューラ− によシ選択されたタスクの同一性を動作プロセッサへ送る手゛段と、選択された タスクを実行するために要求された票決された値を取出し、それらを動作プロセ ッサへ送る手段と、ちょうど完了したタスクと動作プロセッサにより開始された 新しいメツセージ分識別するタスク完了メツセージ/タスク開始メツセージを発 生し、かつ選択されたタスクの実行中に動作プロセッサによシ発生されたデータ 値を含むノード間データ値メツセージを発生する手段とをも有する。
オペレーションズ制御器は、ノード間の時間に依存するメツセージを交換するこ とにより、それ自身のノードの動作を装置内の障害を起していない他の全てのノ ードに同期させる同期器も含む。
の機能的および物理的な分割を基にした多重ノード耐障害多重処理装置用のアー キテクチャである。
本発明の別の目的は、動作タスクのあらゆるタスクを実行するために1つのノー ドを要求されず、1つまたは複数のノードの障害がどの動作タスクの実行も阻止 しないような分布多重ノード処理装置である。
本発明の別の目的は、タスク選択と障害検出が全体的に確認されるような多重ノ ードコンピュータアーキテクチャである。
本発明の別の目的は、活動ノードセント内へノードを包含することおよび再び入 れることが全体的な基礎に対して行われるような耐障害コンピュータアーキテク チャである。
本発明のそれらの目的およびその他の目的は、図面とともに明細書を読むことか ら一層明らかになることであろう。
図面の簡単な説明 第1図は多重コンピュータアーキテクチャのブロック図、第2図は動作制御器の ブロック図、第3図はマスタ/アトミック期間タイミング図、第4図はアトミッ ク/サブアトミック期間タイミング図、第5図は送信器のブロック図、第6図は 1つのインターフェイスの回路図、第7図は仲裁器のブロック図、第8図は自己 試験仲裁論理の波形を示し、第9図は縦冗長符号発生器のブロック図、第10図 は受信器のブロック図、第11図はメツセージ点検器のブロック図、第12図は 限度間検査器のだめの判定論文のブロック図、第13図はメツセージ検査器によ シ発生された誤シ状態バイトのだめのフォーマット、第14図は耐障害器のブロ ック図、第15図は耐障害器RAMの分割を示し、第16図は耐障害器RAMの メツセージ分割のフォーマットを示し、第17図は耐障害器RAMの誤シ符号フ ァイル分割のフォーマントを示し、第18図は耐障害器RAMの群マツピング分 割のフォーマットを示し、第19図は耐障害器RAMの誤シ符夛ファイル分割の フォーマントを示し、第20図は耐障害器RAMのペナルティ重み分割のフォー マットを示し、第21図は耐障害器のメツセージ検査インターフェイスのブロッ ク図、第22図は耐障害器の誤り取扱い器のブロック図、第23図は誤シ取扱い 器の誤シー貫性検査器のブロック図、第24図は誤シ取扱い器の妥当性検査器の ブロック図、第25図は誤りメツセージ中の誤りバイトのフォーマットを示し、 第26図は再構成シーケンスのタイミング図、第27図は票決器サブシステムの ブロック図、第28図は上側と下側の中間値ソータのブロック図、第29図は下 側中間値ソータの回路図、第30図は平均回路の流れ図、第31図は平均回路の 回路図、第32図は異常検査器の流れ図、第33図は異常検査器の回路図、第3 4図はスケジューラ−のブロック図、第35図はスケジューラ−RAMのデータ ーマットを示し、第36図はスケジューラ−ROMのデータフォーマットを示し 、第37図はスケジューラ−のタスク選択器モジュールのブロック図、第38図 はウエイクアンプシーケンサの動作の流れ図、第39図は実行タイマの動作の流 れ図、第40図はTIC取扱い器の動作の流れ図、第41図はTIC取扱い器の 選択料更新サブプロセスの流れ図、第42図はTIC取扱い器の完了/終了サブ プロセスの流れ図、第43図はTIC取扱い器の実行タイマリセットサブプロセ スの流れ図、第44図はTIC取扱い器の優先走査リスト更新サブプロセスの流 れ図、第45図は優先走査器の動作の流れ図、第46図は次のタスク選択器の動 作の流れ図、第47図は再構成モジュールのブロック図、第48図は動作してい るセントから除外されているノードに応答するタスク交換器の動作の流れ図、第 49図は動作しているセットに再び加えられているノードに応答するタスク再割 当器の動作の流れ図、第50図は動作しているセットから除外されているノード に応答するタスク再割当器の動作の流れ図、第51図はタスク状態一致器の動作 の流れ図、第52図はタスクコミュニケータのブロック図、第53図は格納デー タ制御器の動作に関連する素子を示すタスクコミュニケータの部分ブロック図、 第54図は格納データ制御器の動作の流れ図、第55図はDID要求取扱い器の 動作に関連する素子を示すタスクコミュニケータの部分ブロック図、第56図は DID要求取扱い器の動作の流れ図、第57図はタスク完了記録器の動作に関連 する素子を示すタスクコミュニケータの部分ブロック図、第58図はタスク完了 記録器の動作の流れ図、第59図はタスク開始記録器の動作に関連する素子を示 すタスクコミュニケータの部分ブロック図、第60図はタスク開始記録器の動作 の流れ図、第61図はAP入力取扱い器の動作に関連する素子を示すタスクコミ ュニケータ、の部分ブロック図、第62図はAPP力取扱い器の動作の流れ図、 第63図はAP出カ取い器の動作に関連する素子を示すタスクコミュニケータの 部分ブロック図、第64図はAP出出城取扱器の動作の流れ図、第65図はDI DIJストに格納されているDID情報のフォーマットを示し、第66図はNU DATビットが付属されているDID情報のフォーマントを示し、第67図は「 再構成」に含まれてbるサブシステムを示すタスクコミュニケータの部分ブロッ ク図、第68図は再構成中の再構成制御器の動作を示す流れ図、第69図は「リ セット」中に含まれているサブシステムを示すタスクコミュニケータの部分ブロ ック図、第70図はリセット中のリセット制御器の流れ図、第71図は同期器の ブロック図、第72図は同期器メモリのフォーマットを示し、第73図はメツセ ージメモリのフォーマントラ示L、第74図は時刻スタンプメモリのフォーマツ トラ示し、第75図はスクラッチバドメモリのフォーマントを示し、第76図は タイミング信号発生器により発生された信号の波形を示し、第77図は同期器メ モリのブロック図、第78図はデータ取扱い器の動作と予測されたメツセージ検 査器の動作を示す流れ図、第79図はハード誤シウィンドゥ内の動作とンフト誤 シウインドウ検査器の動作および時間スタンパの動作の流れ図、第80図は「警 報カウントに対するHEW Jの動作の流れ図、第81図はメツセージ発生器の 動作に関連する素子を示す同期器の部分ブロック図、第82図はメンセージ発生 器の動作と送信器インターフェイスの動作の流れ図、第83図はTICメツセー ジを発生するタイミング信号の波形を示し、第84図は同期装置状態メツセージ を発生するタイミング信号の波形を示し、第85図は「コールドスタート」前同 期メツセージのフォーマントを示し、第86図は「コールドスタート」中の同期 器の動作を示す流れ図、第87図と87a図は「コールドスタート」中の警報信 号に対するHEWの発生を示す流れ図、第88図は「コールドスタート」中のデ ータの格納を示す流れ図、第89図は「コールドスター1中の動作条件検出器の 動作を示す流れ図、第90図は「コールドスタート」の説明に用いられるタイミ ング図、第91図は「ウオームスタート」中の同期器の動作を示す流れ図、第9 2図は「ウオームスタート」の説明に用いられるタイミング図、第93図はピザ ンチン票決されたタスク完了ベクトルを発生するため、およびスケジューラ−の ためのピザンチン票決された分岐条件ビットを発生するためのビザンチン票決器 の動作の流れ図、第94図はビザンチン票決器の三次元メモリの透視、第95図 は三次元メモリISWマトリックスについての票決の結果得られたISWベクト ルの二次元メモリフォーマツトラ示し、第96図はビザンチン票決器の機能的回 路図である。
好適な実施例の詳細な説明 障害に耐えるための多重コンピュータアーキテクチャは、アプリケーションタス クの機能分割および物理的分割と、障害に耐える動作および装置状態メツセージ の動作のようなオーバヘッド機能とを基にした分布多重コンピュータ装置である 。第1図に示すように、多重コンピュータアーキテクチャは複数のノード10A 〜1ONで構成される。各ノードはオーバヘッド機能を実行する動作制御器12 と、アプリケーションタスクを実行するアプリケーションプロセッサ14とを有 する。
各アプリケーションに対して、多重コンピュータアーキテクチャは所定のタスク セント、まとめてアプリケーションタスクと呼ばれる、を実行することを求めら れる。各ノードに、アプリケーションタスクのサブセットでちるアクティブタス クが割当てられる。各ノードは、他の全てのノードと整合して、それのアクティ ブタスクからタスクを選択でき、かつそれらを適切な順序で実行できる。各ノー ドのためのアクティブタスクセットは他のノードへ割当てられたアクティブタス クセントとは異なることがあシ、アプリケーションタスク内の各タスクを、装置 内にどれ位の数のノードがあるかということ、および特定のアプリケーションに 対するタスクの重要性とに依存して、2つまたはそれ以上のノードのアクティブ タスク内に含ませることができる。このようにして、多重コンピュータアーキテ クチャは、アプリケーションタスクのそれぞれ1つを実行するために1つのノー ド10が要求されることなく、シかも1つのノードまたは複数のノードに障害が 起きてもどのアプリケーションタスクの実行も阻止する必要はないような分布多 重コンピュータ装置を構成する。
後で詳しく説明するように、各ノードにおけるアクティブタスクセットは任意に 与えられたシステム構成またはシステム状態に対して静的であシ、アクティブノ ードの増加または減少によるシステム状態が変化するとともにそのアクティブタ スクセントが変化する。「再構成」と呼ばれるアクティブタスクセットのこの変 化は自動的に起シ、重要なアプリケーションタスクのどれでも装置内に残ってい る少くとも1つのアクティブノードのアクティブタスクセットに含まれるように する。
各ノード10A〜1ONはそれの動作制御器12を介して専用通信回線16によ シ多重コンピュータ内の他の全てのノードへ接続される。たとえば、動作制御器 「A」は通信回線16&に送信できる唯一の動作制御器である。他の全てのノー ドは通信回線16aへ接続され、動作制御器「A」にょシ通信回線161Lを介 して送られたあらゆるメンセージを受ける。同様にして、ノードIOBの動作制 御器rBJは通信回線16bにメツセージを送信できる唯一の動作制御器であシ 、メート1ONの動作制御器Nが通信回線16nに送信できる唯一の動作制御器 である。
センナおよび入力装置状態メツセージ20としてまとめて示されている手動操作 される装置からの外部情報は入力線18を介してアプリケーションプロセッサ1 4へ直接送られる。あらゆるアプリケーションプロセッサがあらゆるセンサと入 力装置の少くとも一方から情報を受けることは必ずしも必要ではないが、各アプ リケーションプロセッサ14はアプリケーションタスクの実行にそれが必要とす る情報をあらゆるセンサと入力装置の少くとも一方から受ける。
同様にして、各ノード内のアプリケーションプロセッサ14は、アプリケーショ ンタスクの実行の結果得られたデータと制御信号を、1つまたは複数のアクチュ エータと、出力装置22としてまとめて示されている表示装置との少くとも一方 へ送る。個々のノード10A〜1ON中のアプリケーションプロセッサ14によ シ発生されたデータと制御信号の少くとも一方を組合わせM法器24にょシ組合 わせてから出力装置22へ送る。更に、同じデータと同じ制御信号の少くとも一 方の多数の値が2つまたはそれ以上のノードによシ発生されると、票決された1 つの値を発生するために組合わせ器/票決器ネットワーク24を用いることもで きる。その票決された1つの値は出力装置22へ送られる。組合わせ器/票決器 24を用いるか、省くかは随意である。あらゆるアクチュエータまたはあらゆる 表示装置が装置内のあらゆるノードによシ発生された出力を受ける必要はない。
特定の7クチユエータまたは表示器は、それが必要とするデータまたは指令信号 を発生できるアプリケーションプロセッサ14を有するノードまたはノード(複 数)へ接続する必要があるだけである。
動作制御器12のネットワークはこの装置の心臓部であって、ノード間通信と、 システムの同期と、データの投票と、誤シ検出と、誤シ取扱いと、タスクスケジ ューリングと、再構成とに責任を負う。アプリケーションプロセッサ14はアプ リケーションタスクの実行と、入力装置20と出力装置22の通信とに責任を負 う。多重コンピュータアーキテクチャにおいては、動作制御器12によシ実行さ れるオーバヘン)” 機能triアプリケーションプロセッサ14の動作にとっ ては明らかである。したがって、アプリケーションプロセッサ14の構造はアプ リケーション要求のみに基礎を置くことができる。そのためニ、多重コンピュー タアーキテクチャの対称性を壊すことなしに、種々のノードに非類似のアプリケ ーションプロセッサ14を使用できる。
各ノード10A〜1ONの動作制御器12の構造の詳細が第2図に示されている 。各動作制御器12は、ノードの専用通信回線16にメツセージを直列に送信す るための送信器30を有する。説明のために、第2マイクロプロセツサ動作制御 器12は第1図に示されている動作制御器Aであると仮定する。この場合には、 送信器30はメツセージを専用通信回線16mへ送る。各動作制御器は複数の受 信器32a〜32nも有する。各受信器は種々の通信回線へ接続される。
好適な実施例においては、受信器32a〜32nの数は多重コンピュータアーキ テクチャ内のノードの数に等しい。このようにして、各動作制御器は、それ自身 を含んでいる装置内のあらゆるノードによシ送られた全てのメツセージを受ける 。各受信器32a〜32nは、それが接続されている専用通信回線を介して受け た各メツセージを、直列フォーマットから並列フォーマットへ変換し、それから それをメツセージ検査器34へ送る。各受信器328〜32nは垂直パリティと 、各受信に付属している縦冗長符号の検査も行って、検出されたどの誤シも識別 する誤り信号を発生する。
メツセージ検査器34は受信器32a〜32nをモニタし、各受信メツセージに 対して各種の物理的検査と論理的検査を行う。それらの物理的検査と論理的検査 を行った後で、メツセージは耐障害器36へ送られる。任意のメツセージ中にど のような誤りでも検出されると、メンセージ検査器34は誤り状態バイトを発生 する。その誤シ状態バイトは耐障害器36へも送られる。
耐障害器36は5つの基本的な機能を行う。第1に、耐障害器はメツセージ検査 器34から受けたメツセージに対して更に論理的検査を行って、メツセージ検査 器34によシ検出できない他のある種の誤シを検出する。第2に、耐障害器は誤 シのないメツセージを票決器38へ送る。その票決器は同じ情報を含んでいる全 てのメツセージの内容について票決して票決された値を発生する。第3に、耐障 害器は誤シのないメツセージから選択されたフィールドを要求に応じて他のサブ システムへ送る。第4に、耐障害器は動作制御器内の各種の誤シ検出機構からの 内部誤シレポートを集めて誤シメッセージを発する。
それらの誤シメッセージは送信器30によシ装置内の他の全てのノードへ送られ る。最後に、耐障害器36は装置内の各ノードの健康状態を監視し、ノードが現 在の数の動作ノードへ付加され、または現在の数の動作ノードから除去された時 にローカル再構成を開始する。耐障害器36は、装置内の各ノードに対して累積 された現在のベースペナルティヵウントを格納するペースペナルティカウント表 を維持する。誤りを含んでいるメツセージをノードが送るたびに、そのメツセー ジを発生したノードを含めた、装置内のあらゆるノードがこの誤シを検出し、か つ誤シと、検出された誤りの種類と、検出された誤シまたは誤り(複数)に対す るペナルティカウントとを含んでいるメツセージを送ったノードを識別する誤) メツセージを発生せねばならない。各耐障害器36は他の全てのノードからそれ らの誤りメツセージを受け、大多数のノードから受けた誤りメツセージにニジ誤 シの検出が支持されるならば、ベースペナルティカウント表に現在格納されてい る、そのノードのためのベースペナルティカウントを増加する。
ペナルティカウント増加の大きさは予め定められ、誤シの厳格さに比例する。後 で説明するように、増加させられたベースペナルティカウントが排除しきい値を こえたとすると、耐障害器はノードの排除と再構成過程を開始する。そのノード の排除と再構成過程においては、障害を起したノードが装置内の積極的な関与か ら排除され、アクティブノードの数の減少を受は容れるために、残シのノードに 対するアクティブタスクセットが変更される。
以前に排除されたノードをアクティブ装置に再び加えることができるように、耐 障害器36はベースペナルティカウントを定期的に減少させることも行う。以前 に排除されたノードが誤りのない・やわ方で十分な期間にわたって動作を続ける と、それのペースペナルティカウントは、以前に排除されたノードがアクティブ 装置に再び加入させられる過程である、ノードの再加入と再構成の過程を開始さ せる再加入しきい値以下に減少させられる。以前に排除されたノードが装置に再 び加入させられると、装置内のアクティブノードの数の増加を行えるようにする ために各ノードのためのアクティブタスクセットが再び調節される。
票決器38は、耐障害器36から受けたデータ値の現在のコピーの全てを用いて 「高速の(on thef 1 y ]票決を行う。票決されたデータ値と、受 けられたデータの全てのコピーはタスクコミュニケータ44へ送られる。そのタ スクコミュニケータはそれらをデータメモリ42に格納する。票決器は、票決器 34自体に対して説明するような適切なアルゴリズムを用いて、票決されたデー タ値を選択する。データ値の新しいコピーが受けられるたびに、新に票決された データ値が発生される。そのデータ値はデータメモリ42に格納されている以前 のデータ値の上に書込まれる。このようにして、データメモリ42は最も現在の 票決された値を常に格納して、発生に失敗するすなわち「宙に浮いて」到達を遅 らせるデータ値の1つまたは複数のコピーとは独立に、票決されたデータ値を以 後の処理のために常に利用できるようにする。票決器38は票決されたデータ値 と受けたデータ値の各コピーの間の異常検査も行って、票決されたデータ値から 所定の置板上だけ異なるデータ値を発生した各ノードを識別する耐障害器に対す る誤シベクトルを発生する。この構成によシ各データ値のコピーの間の正確な一 致と近似的な一致を支持する。票決器38はパックブール値と、固定小数点フォ ーマットと、IBEE標準32ピント浮動小数点フォーマットとを含んでいるい くつかのデータの種類を支持する。
スケジューラ40はシ1常と再構成の2つの動作モードを有する。通常動作モー ドにおいては、スケジューラ40は事象により駆動され、優先権を基にした、全 体的に確認されるスケジューリング装置であって、それのアクティブタスクセッ トからそれに関連するアプリケーションズプロセッサ14によシ次に実行するタ スクを選択する。少くともシステム構成(アクティブノードのセント)に対して 、各ノードに割当てられたアクティブタスクセットは静的である。関連するアプ リケーションプロセッサがタスクを開始するたびに、スケジューラ40は次に実 行すべきタスクと選択する。アプリケーションズプロセッサが選択されたタスク の実行を直ちに開始し、タスクコミュニケータ44は選択されたタスクの実体ト 、アプリケーションズプロセッサ14によシ完了された以前のタスクの実体と、 以前のタスクの分岐条件とを他の全てのノードへ知らせるメツセージの発生を直 ちに開始する。条件付き分岐がアプリケーションズプロセッサ14によ多制御さ れ、アプリケーションズ猿境内の諸条件によシ決定される。
あるタスクと、そのタスクに先行するタスクとの間の優先関係は条件付き分岐、 同時に存在する分岐と、タスクの境界において実現される連結動作を含むことが ある。
条件付き分岐によシ、動作モードを切換えて、現在の諸条件によシ要求されない タスクをスケジューリングする必要を避ける効率的な手段が得られる。
相互作用一貫性票決プロセスが、同じタスクを実行した他のノードによシ発生さ れる分岐条件についての一致を保障する。
各ノード内のスケジューラ40は装置内の他のあらゆるノードのためのスケジュ ーリングを模し、各ノードによるタスクのスケジューリングと実行についての全 体的なデータベースを維持する。完了されたタスクと開始されたタスクを識別す る別のノードからメツセージを受けると、スケジューラ40はその完了されたタ スクを、開始されたと以前に報告されたタスクと比較し、それらが同じでなけれ ばスケジューリング誤り信号を発生する。スケジューラ40は開始されたと報告 されたタスクをそのノードにより開始されるものと計画されているタスクと比較 することも行う。それらのタスクが異なると、スケジューラはスケジューリング 誤シ信号の発生も行う。
スケジューラ40は全てのスケジューリング誤シ信号を耐障害器36へ送る。ス ケジューラの誤シ検出機構の全ては全体的に確認され、タスクの1つまたは複数 のコピーが失敗してもスケジューリングをめちゃめちゃにしないように構成され ている。
再構成動作モードにおいては、障害のあるノードが動作している装置から排除さ れるから、可逆経路とは独立の再構成アルゴリズムが動作負荷の優雅な劣化を行 う。そのアルゴリズムは可逆であるから、以前に排除されたノードが誤シのない 動作の延長された期間に続いて再び加えられるために、動作負荷の優雅な回復も 支持する。
再構成においては、各ノードに割当てられたアクティブタスクは変更されて、ア クティブノードの数の変化を補償する。再構成中に、障害のあるノードが除去さ れた後で、アクティブタスクセット、または少くとも、障害のおるノードのアク ティブタスクセットの重要なタスク、を他のノードのアクティブタスクセットに 割当て、含ませることができる。他の場合には、個々のタスクを全体的に不能状 態にし、よシ簡単なタスクで置換でき、および重要でないタスクを置換なしで不 能にできる。装置の能力に適応するために、再構成プロセスはアクティブノード のためのアクティブタスクセットを再調節する。アルゴリズムは、冗長ノードに 単一プロセッサタスク負荷を複製するのではなくて、真の分布された処理をサポ ートする。
タスクコミュニケータ44は動作制御器12とアプリケーションズプロセッサ1 4の間の入力/出力(Ilo)インターフェイスとして機能する。次のタスクの ための用意ができた時に、アプリケーションズプロセッサ14はタスクコミュニ ケータ44に合図する。アプリケーションズプロセッサ14とタスクコ。
ミュニケータ′44の間の通信を同期させるために、簡単なハンドシエイキング プロトコルが用いられる。
この信号を受けたタスクコミュニケータ44はスケジューラ40から選択された タスクを読出し、それをアプリケーションズプロセッサ14へ転送スる。
それと同時に、アプリケーションズプロセッサ14によシ完了されたタスクと、 アプリケーションズプロセッサにより開始されているタスクと、完了されたタス クの分岐条件とを識別するタスク完了/タスク開始メツセージの送信を開始する 。次に、タスクコミュニケータ44は、開始されたタスクの実行に求められるデ ータをデータメモリ42から7エツチし、開始されたタスクの実行のために求め られる順序でそのデータをバッファに一時的に格納する。それらのデータ値が求 められると、タスクコミュニケータはそれらのデータ値をアプリケーションズプ ロセッサへ送る。現に、タスクコミュニケータ44はアプリケーションズプロセ ッサ14にとっては入力ファイルのようにみえる。
タスクコミュニケータ44は、選択されたタスクの実行中にアプリケーションズ プロセッサ14により発生されたデータ値を受けること、およびデータ値メツセ ージを発生することも行う。それらのデータ値メツセージは送信器30によシ装 置内の他のノードの全てへ放送される。また、タスクコミュニケータは、データ 識別(DID)符号と、メツセージをデータ値メツセージとして独自に識別する メツセージの種類(MT)  符号とをデータ値メツセージに付属させる。
同期器は多重コンピュータアーキテクチャの動作に2つの独立した機能を持たせ る。第1の機能は、定常状態動作の同期化に関連するもので1)、第2の機能は スタート時におけるノードの同期化に関連するものである。定常状態動作中に、 同期器46は、ローカルタロツク時間を暗に示すメツセージの交換によシ、ノー ドのルーズなフレームベース同期化を行う。各ノード中の同期器は、「公称同期 カウント」まで、それ自身のクロット速度でカウントし、それから同期前装置状 態メツセージを生ずる。そのメツセージは送信器30によp装置内の全ての他の ノードへ放送される。それ自身を含む、装置内の全てのノードからの同期前装置 状態メツセージが各ノードにおいて受けられると、それらのメツセージは、メツ セージ検査器34からのメツセージの到達時刻について同期器内で時刻がスタン プされる。時刻スタンプは、全てのノードからの同期前装置状態メッセめに、票 決される。票決された時刻スタンプ値と、ノードの自身の同期前装置状態メツセ ージとの間の違いは、修正された同期カウントを計算するために用いられる誤シ 見積り高である。誤り見積り高は以前の同期化範囲の8積された任意のスキュと 、クロックドリフトの効果とを含む。それから同期器46は修正された同期カウ ントまでカウントし、同期化装置状態メツセージを発生する。そのメツセージは 送信器30によシ装置内の他の全てのノードへ直ちに送られる。同期状装置状態 メツセージも、装置内の各ノードにおける同期器におけるそれらのメツセージの 到達について時刻スタンプされる。
前同期装置状態メツセージと同期装置状態メツセージとは全て票決された時刻ス タンプ値と比較されて、どのノードがそれ自身のメートに同期され、どのノード が同期されていないかを判定する。時刻スタンプにおける差が第iの大きさをこ えると、潜在的な同期の誤pを意味するンフト誤シ信号が発生される。しかし、 時刻スタンプの差が第1の大きさより大きい第2の大きさをこえたとすると、同 期器pが確かに起きたことを示す/・−ド誤シ信号が発生される。ンフト誤p信 号と7)−ド誤9信号が耐障害器へ送られ、検出された他の誤りと同様にして取 扱われる。スタートというのは、「動作セット」と呼ばれるノードの機能的な構 成を作成するプロセスとして定義される。動作セットが存在するものとし、かつ 1つまたは複数のノードの加入または再加入により機能的な構成が変更されたと すると、プロセスは「ウオームスタート」と呼ばれる。「動作セット」が存在し ないとすると、それは「コールドスタート」と呼ばれる。ウオームスタートにお いては、同期器46は動作セットの存在を認め、その動作セットとの同期をとろ うと試みる。装置へ電力が初めて供給されたのに応じて発生された電力供給リセ ツ)(POREST )信号によシコールドスタートは開始される。
動作セットが形成されるまで、各同期器46は全てのノードとの点間同期をとろ うと試みる。動作セットがひとたび形成されると、動作セットに含まれていない ノードはウオームスタートプロセスへ切換わり、動作セットと同期をとろうと試 みる。
ノード間メッセージ 多重コンピュータアーキテクチャの動作は、ノード間メツセージの交換によるデ ータと動作情報の交換に依存する。それらのノード間メツセージは、それをどの ように処理すべきかを個々の各動作開制御器に指示するデータ流メツセージであ る。
種々のノード間メツセージおよびそれらの情報内容が第1表に示されている。
第1表 ノード間メツセージフォーマット 第  1  表 ノード間メツセージフォーマット 受信モiドにおいてノード間メツセージの取扱いを簡単にするように、ノード間 メツセージは全て同じ基本的なフォーマットを有する。各ノード間メツセージの 第1のバイトは、それからメツセージが発生されるようなノードのノード識別( NID)符号と、メツセージの種類を識別するメツセージ種類(MT)符号とを 含む。各ノード間メツセージ中の最後のバイトは常にブロック検査バイトである 。そのバイトは、送信誤シを検出するために受信器32&〜32Hにより検査さ れる。
1バイトデータ値メツセージから4バイトデータ値メツセージまでの4種類のデ ータ値メツセージがある。それらのデー、夕値メツセージはメツセージ種類MT O〜MT4として識別される。データ値メツセージの第2のバイトはデータ識別 (DID)符号である。
このデータ識別符号はメツセージ検査器34によシ用いられて、実行すべき検査 の種類を定める。MT/DID符号は、どの限界がメツセージ検査器34によシ 使用されるかを識別し、および票決された値からの実際の各データ値の許容逸脱 を定めるために票決器38によシ用いられ、かつ現在のタスクの実行中にアプリ ケーションズプロセッサ14へ供給されるデータ値を定めるためにタスクコミュ ニケータ44により用いられる逸脱を識別するために用いられる。
データ識別バイトに続くバイトはデータ自体であって、最後のバイトは前記した ようにブロック検査ノくイ  ト で あ る 。
タスク相互作用一貫性(TIC)メツセージは、ゼロ(0)にセットされている DIDにより識別される2バイトデータ値メツセージの特殊なケースである。
タスク相互作用一貫性メツセージ、メツセージ種類MTI、はタスク完了ベクト ルと、他のノードから受けたタスク完了/開始(C3)  メツセージ中に含ま れている分岐条件データの再放送であって、タイミング順序の説明において述べ るように、各サブアトミック周期(SAP)に終シに送信される。タスク相互作 用一貫性メツセージの情報内容は各ノードにより票決され、票決された値は、タ スク選択およびスケジューリングプロセスにおいてスケジューラ−40によシ用 いられる。
ベースペナルティカウント(RPC)メツセージ、メツセージ種類MT4、はそ れ自身を含んでいる装置内の各ノードに対して個々のノードが格納するベースペ ナルティカウントを含む。装置内の各ノードに対して票決されたベースペナルテ ィカウントを発生するために各ノードはその情報を用いる。その後で、各ノード は票決されたベースペナルティカウントを、各ノードに対する現在のベースペナ ルティカウントとして格納する。これにより、各マスタ期間の初めに、装置内の 他のあらゆるノードに対する同数のベースペナルティカウントを確実に格納する ようにする。ベースペナルティカウントメツセージは、各マスク期間タイミング 間隔の初めに各ノードによシ送られる。
装置状態(SS)  メツセージ、メツセージの種類MT5、が各アトミック期 間タイミング間隔の終シに送られ、ノードの点間同期のために用いられ、再構成 が求められていることを大多数のノードが結論した時に、再構成を全体的に肯定 する。装置状態メツセージの送信の終シが、先行するアトミック期間の終シおよ び次のアトミック期間の始シに一致するように、それの送信の時期が計られる。
装置状態メツセージの第1のバイトは初めのノードのノード識別(NID)符号 と、メツセージ種類(MT)符号を含む。
第2のバイトは3つの機能ビットを含む。初めの2ビツトは同期ビットと前同期 ビットであって、上記同期プロセスにおいて用いられる。第3のビットはノード が動作中または排除されているか否かを識別する。装置状態メツセージの第3と 第4のバイトはそれぞれタスク完了ベクトルと分岐条件ベクトルである。バイト 5は現在の装置状態ベクトルを含み、バイト6は新しい装置状態ベクトルを含む 。再構成を必要とすると送9ノードが結論すると、新しい装置状態ベクトルは現 在の状態ベクトルとは異なる。
バイト7と8はノード自体の期間カウンタの上位ビットと下位ビットを含む。バ イト9は、特定のノードが同期されることをどのノードが決定するかを定める「 に同期しているJ (ISW)ベクトルを含み、バイト10は従来の使用のため に留保される。バイト11はメツセージの終シにおける通常のブロック検査バイ トである一同期器は前同期装置状態メツセージの時刻スタンプを用いる。それら の前同期装置状態メツセージは、第2のバイト中の前同期ビットにより識別され る。その第2のバイトは、最後のサブアトミック期間の持続時間の修正を計算す るために用いられる誤シ評価値を発生するためにセットされる。この修正は、そ のノードにおける次のアトミック期間の初めを、他のノードによシ発生されてい るアトミック期間に同期させる。期間カウンタバイトは装置内の全てのノードの マスク期間を整列させるために用いられる。期間カウンタは、各期間の初めから のアトミック期間の数をカウントし、各マスク期間内の固定された数のアトミッ ク期間までカウントした時にリセットされる。同期器46についての説明におい て詳しく説明するように、バイト9は自動コールドスタート中だけ用いられる。
タスク完了/開始(TC/S )メツセージ、メツセージ種類MT6、はアプリ ケーションズプロセッサ14によシ新しいタスクが開始される几びにタスクコミ ュケータ44によシ発生される。タスク完了/開始メツセージの第2と第3のバ イトは、完了したタスクのタスク識別(TID)符号と、ノードのアプリケーシ ョンズプロセッサ14によp開始された新しいタスクのタスク識別(TID)符 号とを含む。このメツセージの第4のバイトは完了したタスクの分岐条件と、誤 シ修正符号(FCC)とを含む。
最後の符号間メツセージは誤シメッセージ、メツセージの種類MT?、であって 、アトミック期間中に送信器30が動作していない時は常に送られる。特定のノ ードに帰因する誤シを知らせるただ1つの誤りメツセージをアトミック期間中に 送ることができる。誤pメツセージの第2のバイトは、障害を起しているとされ ているノードのノード識別(NID)符号である。次の4つのバイトは、検出さ れた各誤シを識別する誤シフラッグを含む。誤シメッセージの7番目と8番目の バイトは、識別されたノードのベースペナルティカウントと、他のノードから受 けた誤シメッセージによυ誤シが支持されるならばベースペナルティカウントに 加える増加ペナルティカウントとを含む。増加ペナルティカウントは検出された 誤pの数と、それらの誤シの厳しさとを基にしている。誤りメツセージ中で識別 されるノードに対する新に票決されたベースペナルティカウントを発生するため に、その情報は他のノードによシ用いられる。
検出された誤りを有するメツセージを発生する各ノードに対して別々の誤シメッ セージが送られる。
タイミング期間 多重アーキテクチャの全体の制御装置は、時間サイクルが異なる同時に動作する 制御ループをいくつか含む。この装置は、各サイクル時間が、2の整数べきに、 アトミック期間と呼ばれる基本的な時間間隔を乗じたものであること、という制 約を課する。
これは動作制御器12の実現を大幅に簡単にし、正しいタスクスケジューリング の確認を容易にする。
アトミック期間の長さは、特定の各用途ごとに、装置の設計者によシ広い限界内 で選択される。同期のために用いられる装置状態メツセージは各アトミック期間 の終シに送られる。
装置によシ用いられる最長の制御ループはマスク期間である。第3図に示すよう に、各マスク期間は固定数のアトミック期間を含む。どのスケジューリング誤シ も伝えられることを阻止するために、各マスク期間の終シに全てのタスクスケジ ューリングパラメータが再び初期化される。各マスク期間の始シのすぐ後でノー ドはベースペナルティカウントメツセージの交換も行う。
装置で用いられる最短の時間期間は第4図に示すようにサブアトミック(SAP )期間である。そのSAP期間は、どのタスクに対しても動作制御器12によシ 認められる最短の実行時間を定める。たとえば、あるタスクの実行時間がザブア トミック期間よシ短いとすると、次のサブアトミック期間が始るまで、動作制御 器12は次のスケジュールされたタスクをアプリケーションズプロセッサ14へ 送らない。しかし、あるタスクの実行時間がサブアトミック期間よシ長いとする と、動作制御器14は、用意ができしだい、次のスケジュールされたタスクをア プリケーションズプロセッサへ送る。各アトミック期間中Kld、多重コンピュ ータアーキテクチャを特定の用途に合わせるために、装置の設計者によシ選択で きる整数個のサブアトミック期間が存在する。第4図に示すように、各サブアト ミック期間は前記のようにタスク相互作用一貫性メツセージにより記述される。
送  信  器 第5図は、各動作制御器12により具体化される送信器30のブロック図である 。この送信器30は、タスク相互作用一貫性メツセージと同期器46によ多発生 された装置状態メツセージを受ける同期器インターフェイス50と、耐障害器3 6によ多発生された誤シメッセージとベースペナルティカウントメツセージを受 ける耐障害器インターフェイス52と、タスクコミュニケータ44により発生さ れたデータ値と完了/開始メツセージを受けるタスクコミュニケータインターフ ェイス54との3つのインターフェイスを有する。3つのインターフェイスはメ ツセージ仲裁器56と縦冗長符号発生器58へ接続される。メツセージ仲裁器5 6は、送信できるようになっているメツセージを送る順序を定める。縦冗長符号 発生器58は縦冗長符号バイトを発生する。このバイトは最後のバイトとして、 送信された各メツセージに付される。メツセージバイトは並列−直列変換器60 へ個々に送られ、その変換器においてはそれらのメツセージバイトは、スタート ピットと2つのストップビットの間でフレーム化され、それから直列フォーマッ トで通信回線16へ送られる。
送信器30は自己試験インターフェイス62も含む。このインターフェイスは、 指令を受けた時に外部ROM (図示せず)から所定の自己試験メツセージを検 索する。そのメツセージは縦冗長符号発生器58へ入力され、並列−直列変換器 60により通信回線へ送られる。送信器30は初期パラメータロードモジュール 64も有する。このモジュールは、メツセージの間の最短同期期間の長さ、相互 作用一貫性のための警報期間の長さ、装置状態メツセージおよび自己試験メツセ ージを格納するROM内の開始アドレスのような各種の所定パラメータを送信器 内にロードする。
第6図に示すように、3つの各インターフェイスは、関連するメツセージ源から マルチプレクサ68を介して送るメツセージを受ける8ビツト入力レジスタ66 を有する。マルチプレクサ68は、メツセージを発生しているノードを識別する 3ビツトノード繊別(NID)符号も受ける。
関連するメツセージ源が送るメツセージを有する時は、入力レジスタ66が空い ていることを意味するバッファが利用可能な信号が存在するまで、そのメツセー ジ源はそのメツセージを常に保持する。それから、メツセージ源はメツセージの 第1のバイトを入力レジスタ66へ送る。ビットカウンタ70は入力レジスタ6 6にメツセージをクロック制御して入力するストローブパルスをカウントし、フ リップフロップT2およびアンドゲート74とともにマルチプレクサ68を作動 させて、3ビツトノ一ド識別符号を、第1のバイトの最後の上位3ビツトとして 入力レジスタ66にクロック制御しつつ入力する。
フリップフロップ72は、それに先行するメツセージが終った時に発生された信 号「送信静止期間」(TQP)に応答して、アンドゲート74と76を開く第1 のバイト信号をそれのQ出力端子に発生する。
アンドゲート14は、第1のバイトを入力レジスタ66にロードするストローブ 信号に応答してビットカウンタ70によシ発生された上位3ビツトを送り、マル チプレクサ68を作動させて3ビツトノ一ド識別符号を入力レジスタ66の上位 3ビツトの場所にロードする。
アンドゲート76は入力レジスタへの8ビツトのローディングに応答して、7リ ツプフロツプ78をセット状態に作動させる出力を生ずる。セット状態において は、クリップフロップ78はメツセージ利用可能な信号をそれのQ出力端子に発 生し、それの4出力端子におけるバッファ利用可能な信号を終らせる。メツセー ジ利用可能な(MA)信号はフリップフロップ72をリセットし、第1のバイト 信号を終らせる。その第1のバイト信号はアンドゲート74と76を閉じる。メ ツセージ利用可能な(MA)信号はメツセージ仲裁器56へも送って、メツセー ジを送る用意ができたことを意味する。
フリップフロップI8がセット状態にされた時にバッファ利用可能な(BA)信 号が終ると、メツセージ源がメツセージの残りのバイトを送信器30へ送ること を禁止する。メツセージの種類符号である、第1のバイトの初めの下位3ビツト はメツセージ仲裁器56へ直接送られ、送信のために2つ以上のメツセージを利 用できるならば、またはメツセージの送信が同期器46によシ発生された時間的 に厳しいメツセージの送信を妨害しないとすると、どのメツセージを送るかを判 定するために仲裁プロセスにおいて用いられる。メツセージ仲裁器56は、送信 の用意ができているメツセージが2つ以上ある時に次に送るメツセージを識別す る送信(TXXりを発生する。
このメツセージは縦冗長符号発生器58を作動させて、送信のために選択された メツセージを並列−直列変換器へ送る。送信信号は適切な)(ソファ利用可能な (BA)信号を再アサートするインターフェイス内のフリップフロップのリセッ トも行って、関連するメツセージ源を作動させ、メツセージの残シのバイトをイ ンターフェイスへ送る。それから、残っているバイトが受けられた時に、それら のバイトは縦冗長符号発生器58へ直接送られる。メツセージの全てのバイトが 送られると、メツセージ仲裁器56は送信静止期間(TQP)信号を発生する。
その信号は並列−直列変換器を作動させて、各メツセージの送信に続く所定時間 中に零(同期)信号を送らせる。
好適な実施例においては、静止期間は24ビツトすなわち2零バイトの送信に要 する時間である。送信静止期間(TQP)  信号はフリップフロップγ2のセ ットも行って、先行するメツセージが送られたこと、および関連するメツセージ 源から受けた次のバイトが次のメツセージの第1のバイトであることを示す。
メツセージ仲裁器56の詳細が第7図に示されている。タスク相互作用一貫性( TIC)および装置状態(SS)のメツセージのような重要な時間メツセージを 送る正常な動作の下においては、耐障害器(FLT)タスクコミュニケータ(T SC)仲裁論理82がRFLTポーリング信号とPTSCポーリング信号を交互 に発生する。それらの信号はアンドゲート84と86の入力端子にそれぞれ受け られる。アンドゲート84は、耐障害器インターフェイス52により発生された 耐障害器メツセージ利用可能(FLTMA)信号も受け、アンドゲート86は、 送信用意ができているメツセージの最初のローディングをタスクコミュニケータ 44が完了した後で、タスクコミ;ニケータインターフエイス54により発生さ れたタスクコミュニケータメツセージ利用可能(TSCMA)信号も受ける。ア ンドゲート84と86の出力は送信耐障害器(TFLT)信号と送信タスクコミ ュニケータ(TSC)信号であって、アンドゲート88,90へそれぞれ加えら れる。アンドゲート88,90への別の入力は残り時間メツセージの長さ比較器 92から受けられる。その比較器は、後で説明するように、選択されたメツセー ジの送信が時間に依存するメツセージの送信を妨害しない時にイネイブル信号を 常に発生する。アンドゲート88が開かれると、そのアンドゲートは送信耐障害 器(TFLT)信号を耐障害器インターフェイス52へ送ってバッファ利用可能 信号を再アサートし、それが耐障害器36からのメツセージの残りのバイトを受 けることができるようにする。
また、アンドゲート88は、TFLT信号を縦冗長符号発生器58へ送って、耐 障害器インターフェイス52からのメツセージをバイトごとに並列−直列変換器 60へそれが送ることを可能にして、通信回線16へ送る。同様にして、アンド ゲート90が開かれ、送信用意ができているメツセージをタスクコミュニケータ 44が有することをタスクコミュニケータインターフェイス54のポーリングが 示すと、アンドゲート86は送信タスクコミュニケータ(TTSC)信号を発生 する。その信号は、アントゲ−)90を通されたとすると、タスクコミュニケー タのメツセージを送信する結果をもたらす。発生された信号T F L TとT TSCはFLT −TSC仲裁論理82へ帰還されて、メツセージが送られる後 までその論理をそれの現在の状態に固定する。
耐障害器のメツセージとタスクコミュニケータのメツセージの間のメツセージ仲 裁は、現在送られているメツセージの種類に主として依存する。FLT −TS C仲裁論理82にょシ実行される論理が第■表に要約されている。
第  ■  表 FLT−TSC仲載論理表 通常はFLT−TSC仲裁論理82は耐障害器インターフェイス52とタスクコ ミュニケータインターフェイス54を交互にボールする。しかし、各アトミック 期間の初めに、FLT−TSC仲裁論理82は、そのノードによシ開始されてい るタスクを識別するタスク完了/開始メツセージに対してタスクコミュニケータ インターフェイス54を初めにボールする。
タスク完了/開始メツセージを利用できないとすると、それは耐障害器インター フェイス52をボールする。
マスク期間の初めに、装置内の各ノードの健康を全体的に確認するために用いら れベースペナルティカウントメツセージを全てのノードは送らなければならない 。したがって、マスク期間の初めに一致する各装置状態メツセージの後で、FL T−TSC仲i1論理が耐障害器インターフェイス52をまずボールし、耐障害 器36からベースペナルティカウントメツセージをそれが受けるまで待つ。ベー スペナルティカウントメツセージの送信の後で、それはタスクコミュニケータイ ンターフェイス54iボールし、アプリケーションプロセッサにょシ開始するよ うにスケジュールをaすれているタスクを識別するタスク完了/開始メツセージ を送る。耐障害器36が所定の期間内にベースペナルティカウントメツセージを 発生しないとすると、FLT−TSC仲裁論理82は耐障害器インターフェイス 52とタスクコミュニケータインターフェイス54のポーリングを交互の順序で 再開する。同様にして、自己試験メツセージの後で、FLT−TSC仲裁論理8 2はタスクコミュニケータインターフェイス54をボールシ、タスク完了/開始 メツセージを待つ。
同期器46は、次のサブアトミック期間またはアトミック期間の始まる所定の期 間前に、タスク相互作用−買性メッセージまたは装置状態メツセージの最初のバ イトを同期器インターフェイス5oにロードする。タスク相互作用一貫性メツセ ージまたは装置状態メツセージを送信する前に送信できるビットの数に対応する 数を、警報期間発生器94が警報期間カウンタにロードする。前記したように、 それらのメツセージのいずれかに含まれている最後のビットの送信が以前のサブ アトミック期間またはアトミック期間の終シを記すから、それらのビットの送信 により、期間の終シの前に所定時刻(ビットカウント)を開始する。タスク相互 作用一貫性メツセージと装置状態メツセージのビット長は異なるから、警報期間 カウンタにロードされる数は異なる。警報期間カウンタ94は、同期器インター フェイス50に格納されているメツセージの初めのバイトに含まれているメツセ ージの種類符号を復号し、その特定の種類の時間的に重要なメツセージに対する 警報期間の長さを示す数を警報期間カウンタにロードする。
警報期間カウンタは並列−直列変換器60のビット伝送速度でカウントダウンさ せて、時間的に重要なメツセージを送るために残っている時間を示す数を発生す る。警報期間カウンタに残っているカウント数は同期器送信制御器96と残シ時 間メツセージ長さ比較器92へ通信される。警報期間カウンタが零までカウント ダウンされると、同期器メツセージ制御器96は送信同期器(TSYN)信号を 発生する。
その信号は、同期器インターフェイス50を作動させてバッファ利用可能信号を 再アサートし、かつ縦冗長符号発生器58を作動させて同期器インターフェイス 50からのメツセージを並列−直列変換器i。
へ送り、ノード自身の通信回線16へ送信する。
残υ時間メツセージ長比較器92は、FLT−TSC仲裁論理によシ送るために 選択されたメツセージのメツセージ種類を復号し、そのメツセージのために送る べきピットの数を決定する。この数に残υ時間メツセージ長比較器92は、メツ セージの間の静止期間に対応するビット数に等しい数を加え、メツセージと静止 期間の和を警報期間カウンタに残っているカウントと比較し、選択されたメツセ ージの送信が、同期器インターフェイス50からの時間的に重要なメツセージの 送信を妨害するか否かを判定する。
選択されたメツセージの送信が同期器46からの時間的に重要々メツセージの送 信を妨害しないとすると、残シ時間メツセージ長比較器92はアンドゲート88 と90を開かせる信号を発生する。それらのアンドゲートが開くと信号TFLT またはTT SCがそれらのアンドゲートを通る。また、選択されたメツセージ の送信が時間的に重要なメツセージの送信を妨害する場合には、残シ時間メツセ ージ長比較器92はアンドゲート88と90を閉じる信号を発生し、耐障害器イ ンターフェイス52またはタスクコミュニケータインターフェイス54からの選 択されたメツセージの送信を禁止する。この信号はFLT−TSC仲裁論理92 のトグルも行って、選択されないインターフェイスが送信するメツセージを有す るかどうかを判定するためにそのインターフェイスをポールする。選択されない インターフェイスが送信する用意のできたメツセージを有するものとすると、残 シ時間メツセージ長比較器92は、同期器インターフェイス50からの時間的に 重要なメツセージの送信前に、選択されないインターフェイスからのメツセージ を送信するために十分な時間があるかどうかを判定する。十分な時間があれば、 選択されないインターフェイスからのメツセージが送られ、さもないとアンドゲ ート88.90は閉じられたままである。
メツセージ仲裁器56は、並列−直列変換器60によシ送られるバイトの数をカ ウントするバイトカウンタ100も有する。バイトカウンタ100の出力はメツ セージバイト論理102によシ受けられる。
メツセージバイト論理102は送信されるメツセージのメツセージ種類符号を復 号し、そのメツセージ中のバイトの数を決定する。メツセージの最後のバイトが 送られた後で、メツセージバイト論理102は、縦冗長符号発生器58を動作さ せて、発生された縦冗長符号をメツセージの最後のバイトとして送信させる送信 縦冗長符号(、TLRC)信号を発生する。
それから、メツセージバイト論理102は、メツセージの同期のために用いられ る所定のバイト数に対して零信号を並列−直列変換器60に送信可能とする送信 静止期間(TQP )  信号f発生する。送信静止期間(TQP)信号は同期 器送信制御器96へも送られ、そこで送信同期器(TSYN )  信号を終ら せるために用いられる。静止期間が終ると、メツセージバイト論理102は静止 期間の終?) (、EQR)信号を発生する。その信号はバイトカウンタ100 をリセットし、次に送るメツセージを選択するためにFLT−TSC仲裁論理8 2をアンラッチする。
その中においてはタスク識別(TID)符号がノード識別(NID)符号と同じ であるような送信されたタスク完了/開始メツセージに応じて、自己試験仲裁論 理104は自己試験のための要求を認識する。自己試験要求メツセージの送信の 後で、自己試験仲裁論理104は、第8図に示すように、タスクコミュニケータ イネイブル(TSCE )  信号と耐障害器イネイブル(FLTE)信号を禁 止する。それらの信号は、アンドゲート84と86へそれぞれ加えられると、耐 障害器インターフェイス52またはタスクコミュニケータインターフェイス54 からの全ての送信を禁止する。次のタスク相互作用一貫性メツセージまたは装置 状態メツセージに続いて、自己試験仲裁論理104は送信自己試験(TSLT) 信号を直ちに発生する。その信号は自己試験インターフェイス62を作動させて 、関連するオフボード(読出し専用メモリ)ROMから自己試験メツセージを読 出す。(TSLT )  信号は縦冗長符号発生器58もイネイブル状態にして 、自己試験メツセージを自己試験インターフェイス62から送信のために並列− 直列変換器60へ送る。自己試験メツセージの送信後に、自己試験仲裁論理10 4はタスクコミュニケータイネイブル(TSCE )信号を回復して、自己試験 の完了を意味するタスク完了/開始メツセージの送信を許す。第■表に示すよう に、FLT−TSC仲裁論理82は、自己試験メツセージの送信に続いて送るべ き次のメツセージとしてタスクコミュニケータインターフェイス54からメツセ ージを自動的に選択する。タスク完了/開始メツセージの送信後に、第8図に示 すように、次のタスク相互作用一貫性メツセージまたは装置状態メツセージが送 られた後まで、自己試験仲裁論理104はタスクコミュニケータイネイブル(T SCE )  信号を終らせる。
自己試験インター7エイス62はオフボードROM(図示せず)からの自己試験 メツセージを縦冗長符号発生器58へ転送する。オフボードROMは複数の自己 試験メツセージを格納する。それらのメツセージは、自己試験が求められるたび にそれに応答して1度に1つずつ送られる。各自己試験メッセージの最初のバイ トは、自己試験の完了を識別するためにメツセージバイト論理102へ戻される 自己試験メツセージ中のバイト数を示す数である。オフボードROMに格納され ている各自己試験メツセージ中の最後のバイト次の自己試験メツセージのための スタートアドレスである。スタートアドレスは送られス、自己試験インターフェ イス62に格納されて、次に送るべき自己試験メツセージをオフボードROM内 で探す。オフボードROMに格納されている自己試験メツセージの最後のバイト は第1の自己試験メツセージの開始アドレスを含むから、自己試験メツセージシ ーケンスが繰返えされる。第1の自己試験メツセージのための開始アドレスは、 電力投入に応じて同期器46によシ発生された最初の負荷指令に応答して、最初 のパラメータ負荷モジ、ニール64によって自己試験インターフェイス62にロ ードされる。
第9図に示すように、縦冗長符号発生器58は、同期器インターフェイス50と 、耐障害器インタフェイス52.!:、タスクコミ/ユニケータインターフェイ ス54と、自己試験インターフェイス62とからメツセージバイトを受ける4対 1人カマルチブレクサ110を有する。入力マルチプレクサ110は、先に述べ たように、メツセージ仲裁器56によシ発生された送信(TFLT、TTSC, TSYN、  およびTSLT ’)  信号に応じて、どのメツセージが並列 −直列変換器60へ送られるかを制御する。メツセージ仲裁器56によシ送るた めに選択されたメツセージの各バイトは9本の並列線によシ出力マルチプレクサ 112へ送られる。それら9本の並列線の1本に受けたバイトの各ビットと、関 連するインターフェイスにより発生されたパリティビットとが割当てられる。縦 冗長(LR)ビット発生器114が9本の各並列ビット線へ接続され、9ビット 縦冗長符号をまとめて発生する。縦冗長符号中の各ビットは、先行するバイト中 の同じビット場所内のビット値の関数である。全てのLRビット発生器114の 出力は出力マルチプレクサ112によっても受けられる。
出力マルチプレクサ112 は、メツセージ仲裁器56により発生された送信縦 冗長符号(TLRC)信号に応答して、各LRビット発生器114により発生さ れた最後のビットを、送信されるメツセージの最後のバイトとして出力する。出 力マルチプレクサ112の出力端子は並列−直列変換器60へ直結される。
その並列−直列変換器は、所定のスタートビットと所定のストップビットの間で 受けた各バイトをフレームしてから、ノードの通信回線へ送る。
受    信   器 受信器32a〜32n の構造は同じであるから、受信器32aの構造だけを詳 しく説明する。第10図を参照して、通信回線16aへ送られるノードAからの メツセージはノイズフィルタ及び同期検出器116により受けられる。ノイズフ ィルタ及び同期検出器116の同期部は、メツセージの受信前に適切な同期間隔 が存在することを要する。送信器30について述べたように、同期間隔は、送ら れた各メツセージの後で元金な2個の零バイトを送るために送信器30に対して 求められる時間であることが好ましい。
ノイズフィルタ及び同期検出器116の低域部は、通信回線16m に存在する ことがあるノイズのために、「スタート」ビットと「ストップ」ビットが受信器 32aによシ誤って検出されることを阻止する。
低域フィルタ部は、通信回線16a上の信号がスタートビットまたはストップビ ットとして解されるまでに、その信号が連続する4つの装置クロックサイクルの 間存在することを要する。ノイズフィルタ及び同期検出器116は、適切な同期 間隔の後でスタートビットを受けたのに応じて新しいメツセージ信号を発生する 。
ノイズおよび同期検出器116を通った後で、メツセージは直列−並列変換器1 18 で直列フォーマットから並列フォーマットへバイトごとに変換される。直 列−並列変換器118は、完全ガニ2ビツトバイトが受けられた時の決定も行う 。12ピツ) /Cイトが「スタート」ビットおよび2つの「ストップ」ビット によシ正しくフレームされないとすると、新しいビットが付加される。初めに受 けられたビットは捨てられ、フレーミングは再検査される。フレーミングの誤シ は受信器32aによりフラッグされない。その理由は、この障害は垂直パリティ 検査の間に自然に示されるからである。並列フォーマットへの変換の後で、スタ ートビットとストップビットは各バイトから除去され、残シの9ビツトバイトが 、パリティ誤シの検査のために、縦冗長符号および垂直パリティ符号(LRCお よびvpc )検査器122へ転送される。誤シ検査論理は垂直パリティ符号と 縦冗長符号の現在の組合わせ値を出力する。垂直パリティ検査部は受けたメツセ ージを垂直に横切ってパリティを検査し、縦冗長符号検査器部は直列−並列変換 器118から受けた各バイトに対して縦冗長符号検査を行う。メツセージ検査器 34はメツセージの第1のバイトに含まれているメツセージの種類情報を復号し 、どのバイトがメツセージの最後のバイトであるかを判定し、したがって、どの バイトに対して縦冗長符号検査が有効であるかを判定する。
メツセージ検査器34は、LRCおよびvpc符号検査器122によシ発生され た他の全てのLRC誤シ信号を無視する。
垂直パリティ検査および縦冗長検査と並列に、8ビットメツセージバイトがバッ ファ120へ転送される。そのバッファはメツセージ検査器とインターフェイス する。メツセージ検査器34が各8ビツトメツセージバイトを検査できるように なるまで、バッファ120はそれを一時的に格納する。メツセージバイトを受け ると、バッファはバイトレディフラッグをセットして、転送できるようになった メツセージバイトを有することをメツセージ検査器34へ知らせる。直列−並列 変換器118による新しいメツセージのローディングとは独立に、メツセージ検 査器34はバッファ120からメツセージバイトをアンロードする。8ビツトメ ツセージバイトは、動作制御器12内の受信器32a〜32n  の全てに共用 されている共通バス124を介して、メツセージ検査器34へ転送される。受信 器32とメツセージ検査器340間のメツセージの転送は、メツセージ検査器に よ多発生されたポーリング信号に応じてバイトごとに行われる。メツセージ検査 器34は各受信器を繰返えし順序で1度に1つずつ系統的にポーメツセージ検査 器34が第11図に詳しく示されている。メツセージ検査器34は受信器32a 〜32nによシ受けられたメツセージを処理し、それらのメツセージの論理内容 を確認し、検出された誤シを記録し、メツセージを耐障害器36へ送る。メツセ ージ検査器34の動作はシーケンサ126により制御される。各受信器内のバッ ファ120のオーバーランを阻止するために、コンテキストが多数の受信器32 a〜32nの間で切換える。各受信器32a〜32nが処理する用意のできてい るメツセージバイトを有するかどうかを判定するために、各受信器はトークンの ようにしてポールされる。メツセージバイトがシーケンサ126によシボールさ れた時にメツセージバイトを処理する用意ができたとすると、バイトはメツセー ジ検査器34によシ直ちに処理さレル。さもないと、シーケンサ126は進み、 次の受信器をポーリング順序でポールする。シーケンサ126は各受信器に関連 するノード10のノード識別(NID)符号を格納する。シーケンサ126は各 受信器32a〜32n  に関連するバイトカウンタも有する。シーケンサ12 6がその特定の受信器からバイトをアンロードするたびにバイトカウンタはイン デックスされる。バイトカウン上1吐、メツセージ検査器34によシ処理されて いる特定のバイトを独自に識別する。
耐障害器36へ転送される時にメツセージバイトをタグするために、シーケンサ 126はノード識別符号とバイトカウントをデータマルチプレクサ128へ転送 する。ノード識別符号とバイトカウントは誤シ検査論理130とコンテキスト記 憶装置132へも転送される。誤シ検査論理130 はシーケンサ126によシ 予測されるノード識別符号を検査する。
そのノード識別符号はメツセージの第1のバイトに含まれ、それらが同じである かどうかを判定するためにそれらは検査される。それらが異なると、誤シ検査器 論理130は誤シ信号を発生する。その誤シ信号は、発生されている誤9状態バ イトでコンテキスト記憶装置132に記憶される。ノード識別符号はコンテキス ト記憶装置132内へのアドレスとしても用いられる。その記憶装置には、メツ セージに属する関連する情報が格納される。コンテキスト記憶装置132 は装 置内の各ノード10に対する別々の記憶場所を有する。その記憶場所はメツセー ジに含まれているノード識別符号によシアドレスされる。
コンテキスト記憶装置132は、処理される各メツセージに対して、メツセージ の種類(MT)符号と、データ識別(DID)符号と、バイトカウントと、誤9 状態バイトと、データ値マスクと、中間誤り信号とを格納する。各バイトが受信 器からアンロードされると、コンテキスト記憶装置132内の情報がアドレス発 生器134により用いられる。そのアドレス発生器134はメツセージの種類( MT)符号と、データ識別(DID)符号と、処理すべき特定のバイトを識別す るバイトカウントを有する。この情報に応答して、アドレス発生器134は、メ ツセージ検査器ROM136  内の要求されている処理情報が格納されるアド レスを出力する。メツセージ検査iROM136はメツセージに含まれているデ ータに対する最大値および最小値と、各メツセージ種類に対する有効なデータ識 別番号と、処理されているメツセージ中に含まれているデータ値の数と各データ 値内のバイトの数を識別するデータマスクとを格納する。
最大と最小のデータ値は、それらの最大値と最小値に対して各データバイトに含 まれているデータを検査する限度量検査器138へ転送される。限度量検査器1 38は、限度量検査の結果として4種類の誤シ信号を発生する。初めの2つは、 最大値をこえたデータ値を意味する最大値(MXER)誤シ信号と、最小値よシ 小さいことを意味する最小値(MNER)誤シ信号とである。他の2つの誤シ信 号は最大値(MXEQ)信号に等しく、最小値(MNEQ)信号に等しい。それ ら後者の誤シ信号は誤シ検査論理130へ送られる。その誤シ検査論理はそれら の誤シ信号を中間誤り信号としてコンテキスト記憶装置に格納する。
誤シ検査論理130は、受信器により発生された垂直パリティ符号と縦冗長符号 誤シ信号の論理和をとり、パリティ誤シ信号を発生する。そのバリテイ誤シ信号 はコンテキスト記憶装置132で発生された誤シ状態バイトに記録される。前記 のように、誤)検査論理130は、メツセージの第1のバイトに含まれているノ ード識別符号に対して予測されるノード識別(NID)符号を検査し、第1のバ イトのビット位置1,3.4内のビットが同一であるがどうかを調べるために検 査することにょシメッセージの種類(MT)符号を検査する。送信器30の詳し い説明において先に説明するように、メツセージの種類誤シ検出のために、3ビ ツトメツセージ種類符号の中間ビットがピット位置3と4において繰返えされる 。誤シ検査論理130は、メツセージの第2のバイトに含まれているデータ識別 (DID)符号の有効性を、メツセージ検査器ROM 136 から受けた(D ID)符号に対して検査も行い、データ識別符号が最大値よシ大きい値を有する ならば誤シ信号を発生する。誤シ検査論理130は、適切なデータバイトの2の 補数範囲も検査して、2の補数誤シ信号が検出された時に範囲誤り (RNGE R) 信号を発生する。
それは、限度量検査器138によ多発生された最大(MXER)誤シ信号と最小 (MNER)誤シ信号をコンテキスト記憶装置132に記録もする。
限度検査器13Bに関しては、メツセージ検査器ROM 136から受けた最大 値または最小値内または外にあるかどうかを多バイトデータ値の第1のバイトか ら決定で、き、残シのバイトの検査はもはや不要である。しかし、検査されてい るバイトのデータ値が最大限度値または最小限度値に等しいことを示すMXEQ 信号またはMNEQ信号を限度量検査器138が発生すると、受けたデータ値が 所定の限度内にあるか否かを実際に判定するために、次のバイトを最大値または 最小値に対して検査する必要がある。誤シ検査論理130 は、限度量検査器1 38からのM X E Q信号またはMNEQ 信号に応答して、そのデータ値 を含んでいる次のバイトに対して限度量検査を継続するべきことをコンテキスト 記憶装置132に昶らせる中間値信号をコンテキスト記憶装置に格納する。最終 的な判定を行うために必要があれば、このプロセスは次のバイトに対して繰返え される。特定のデータ値の次のバイトの検査中に、どの限度、最大または最小、 に先行するデータバイトのデータ値が等しいかを示す格納されている中間値を、 コンテキスト記憶装置132が誤シ検査論理130へ供給、する。この情報から 、限度間誤りの存在の有無を、第12図に示されているような比較的簡単な論理 によシ容易に決定できる。デコーダ140が、コンテキスト記憶装置132に格 納されている中間値に応答して、先行する限度量検査が、先行するノ(イトに含 まれているデータ値が最大値に等しいことを意味する信号を発生するな・らば、 アンドゲート142と144を開く。あるいは、中間値はアシドゲート146と 148 を開いて、先行するバイトに含まれているデータ値が最小値に等しいこ とを示す。限度量検査器138が第2のバイトについて最大限度誤差(MXER )  を検出し、アンドゲート142が開かれたとすると、コンテキスト記憶装 置132で発生された誤シ状態バイトに最大限度誤差MXBRが記録される。同 様に、第2のバイトについて最小限度誤り (MNER)が検出され、アンドゲ ート146が開かれると、最小限度誤り (MNER)が誤シ状態バイトに格納 される。最大に等しい(MXEQ)信号または最小に等しい(MNEQ) 信号 を第2のバイトがアンドゲート144.148の入力端子へそれぞれ加えると、 中間値がコンテキスト記憶装置132に再び格納され、最終判定が次のバイトま で遅らされる。メツセージ検査器ROM136からコンテキスト記憶装置132 によシ受けられたデータ値マスクは、データバイトが各データに属しているよう な、処理されているデータ値メツセージ内にある個々のデータ値の数を識別する 。各データ値内の最後のバイトを識別するために、そのアスクは誤シ検査論理1 30によp用いられる。任意のデータ値の最後のバイトにおいては、最大限度誤 りまたは最小限度誤りだけがコンテキスト記憶装置誤シバイトに記録される。M XEQ信号とM N E Q信号は無視される。
誤シ検査論理130−は、メツセージが正しい数のバイトを含んでいるかどうか も検出する。コンテキスト記憶装置は、処理されている各メツセージに対してメ ツセージの種類(MT)符号を格納する。特定の受信器からメツセージバイトで 受けたメツセージ信号に応答して、誤シ検査論理130はコンテキスト記憶装置 132に格納されているメツセージの種類符号を復号し、その種類のメツセージ が有しなければならないバイト数に対応する数を発生する。
それから、それはこの数を、受信器32から新しいメツセージ信号を受ける前に 、シーケンサ126によ多発生されたバイトカウントと比較し、それらが同じで ない時にメツセージ長さ誤り(LENER)信号を発生する。誤シ状態バイトが 耐障害器36へ送られた後までは長さ誤#)(LENER)信号を発生できない ことがあるから、メツセージ長さ誤シ信号は、そのノードから受けた次のメツセ ージに対する誤シ状態バイトで、耐障害器36へ送られる。
コンテキスト記憶装置132において形成される誤シ状態バイトのフォーマット が第13図に示されている。最下位すなわち零ビツト位置から始って昇順のピッ ト位置で、誤シ状態バイトは、パリティ誤す(PARER)のためのフラッグと 、先行メツセージに対する長さ誤り(LENER)のためのフラッグと、ノード 識別(DID )誤りのための7ラッグビットと、メツセージの種類(MT)   誤シのためのフラッグビットと、2の補数の範囲誤、9 (RNG’ER)の ためのフラッグビットと、最大および最小の限度(MXERおよびMNER)誤 シのためのフラッグビットとを含む。
第11図へ戻って、データマルチプレクサ128は、メツセージ検査器34によ シ処理された各メツセージバイトを耐障害器3Gへ直接送る。データマルチプレ クサは記述子バイトを各メツセージバイトに付加する。その記述子バイトは、そ の特定のメツセージバイトに対して、シーケンサ126から受けたノード識別符 号(NID)  とバイトカウント(BYTC)を含む。メツセージが終ると、 そのメツセージの長さとは無関係に、データマルチプレクサ128はコンテキス ト記憶装置132に格納されている誤シ状態バイトを最後のバイトとして送る。
その最後のバイトを障害分析のために耐障害器36によって容易に識別できるよ うに、最後のバイトはバイトカウント「15」によシ識別される。
耐  障  害  器 耐障害器36の詳細が第14図に示されている。
耐障害器36は、メツセージ検査器34によシ検査された後でメツセージをバイ トごとに受けるメツセージ検査器インターフェイス150を有する。誤シのない タスク完了/開始メツセージを受けると、メツセージ検査器インターフェイス1 50は、メツセージに含まれているメツセージ条件を同期器インターフェイス1 52へ送シ、開始された新しいタスクの実体(TID)とメツセージに含まれて いる分岐条件とをスケジューラ−インターフェイス154へ送ったノードの実体 (NID)を送る。メツセージ検査器インターフェイス150は、ノード識別( NID)符号とメツセージの種類(MT)符号を票決器インターフェイス158 へ送シ、データをパーティションビットとともに耐障害器RAMインターフェイ ス160へ送る。また、メツセージ検査器インターフェイス150は、メツセー ジ検査器34により発生された誤シ状態バイト(バイ)=15))処理のために 誤シ取扱い器164へ送る。
同期器46は、タスク相互作用一貫性(TID)メツセージと装置状態(SS) メツセージ中でそれが検出した任意の誤シを、同期器インターフェイス152を 介して誤り取扱い器164へ知らせる。スケジューラ−インターフェイス154 は、開始されたタスクのタスク識別(TID)符号をスケジューラ−40へ送り 、かつ受けた各タスク完了/開始メツセージのノード実体(NID)をスケジュ ーラ−40へ送る。
そうすると、スケジューラ−40は、それが検出した任意の誤シを、スケジュー ラ−インターフェイス154を介して、誤シ取扱い器164へ送る。
送信器インク・−フェイス156は、誤シ取扱い器164によシ発生されたベー スペナルティカウントと誤シメッセージを送信器30へ送る。前記したように、 送信器インターフェイス156は、転送すべきメツセージの第1のバイトを送信 器の入力レジスタにロードし、送信できるようになっているメツセージを有する ことを示す。それから、送信器インターフェイスは、残りのメツセージを送信の ために送信器30へ送る前に、送信器30によるバッファ利用可能(BAB)信 号の再アサーションを待つ。
リセット発生器157が、誤シ取扱い器164の自身のノードに障害が起きてい ることをその誤シ取扱い器が判断した時にその誤シ取扱い器により発生されたリ セット信号と、ノードへ電力が最初に加えられた時に発生される電力投入りセラ ) (FOR)信号とに応答して、動作制御器リセット(OCRES)信号と最 初のパラメータロード(IPL)信号を発生する。それらの信号は他のサブシス テムへ送られ動作制御器12をリセットする。
メツセージバイトがメツセージ検査器インターフェイス150から受けられたメ ツセージバイト中に含まれているデータを、耐障害器RAMインターフェイス1 60は耐障害器RAM162に格納する。耐障害器RAM162は、第15図に 示すように区画されたランダムアクセスメモリである。第15図に示すように、 メツセージ区画部166は各7−ドから受けたメツセージを所定場所に格納する 。メツセージ区画部166においては、メツセージ検査器34によシメッセージ バイトに付属している識別子バイトを用いて、メツセージは元のフォーマットに 再び組立てられる。票決器38によシ依然として用いられているデータの重ね書 きを阻止するために、二重バッファ計画または二重パーティショア計画が用いら れる。メツセージ検査器インターフェイス150によシ発生されたコンテキスト ビットは、2つの区画のどれに新しいデータを書込むかを決定する。別々のコン テキストビットが各ノードのために保たれ、誤シ状態バイトが現在のメツセージ に誤シがないことを示した時にのみトグルされる。メツセージ検査器について先 に述べたように、先行するメツセージがメツセージの長さ誤シを有すること、し たがって現在のメツセージについての誤りのない状態の判定において無視される ことを、誤シ状態バイトのメッセージ長(LENER)バイトが意味する。
〉ツセージ区画部166内の1つのメツセージのフォーマットが第16図に示さ れている。図示のように、ノード識別(N、ID)符号と、メツセージ検査器内 の各メツセージバイトにアドレスの一部として付属されているバイトカウントと を用いて、メツセージは耐障害器RAM162においてそれの元のフオ−マット に再構成される。メツセージ検査器インターフェイス150によシ発生されたコ ンテキストビットは、耐障害器RAM インターフェイス160によシ発生され たメツセージパーティション符号(ビット8〜11)とともに、メツセージ区画 166内の2つの場所のどれに各ノードからのメツセージを格納するかを識別す る。
耐障賓器RAM 162は、ベースペナルティカウントと誤シメッセージを発生 するために誤シ取扱い器164により用いられる3つの部分を有する。
誤シ符号ファイル部170は、各アトミック期間の開始直後に送られる誤シメッ セージの発生と、誤υメツセージに含まれる増加ペナルティカウントの発生とに 用いられる誤シ符号を格納する。
各動作制御器12には35種類の誤シ検出機構があるから、装置内で送られる各 メツセージから2乗から35乗までの誤シの組合わせの可能性がある。
誤シの組合わせの数を耐障害器RAM162の現在の記憶性能状態に適合する妥 当な数まで減少するために、種々のサブシステムからの誤りレポートが受けられ るにつれて、それらの誤りレポートは特殊な誤シ符号にフォーマットされる。フ ォーマットされた誤り符号は、第17図に示すように、誤りを知らせたサブシス テムの識別と、検出された誤シのフラッグ指示とを含む。たとえば、メツセージ 検査器34から受けた誤り状態バイトが別々の誤り符号にフォーマットされる。
第1の誤9符号は、誤シを知らせたサブシステム符号0000と、誤り状態バイ トの下位4ビツトからの誤9フラツグとを含む。第2の誤シ符号はサブシステム 符号0001と、誤シフアイルの下位4ビツトからの誤シフラッグとを含む。そ れらの誤り符号は誤り符号ファイル部170の、第19図に示されているように 障害ノード識別(NID)符号とレポート数によシ定められるアドレスに格納さ れる。誤シ符号ファイル部170は、メツセージ区画部166と同様に区画され て、2つの誤シフアイルが各ノードに対して格納されるようにする。メツセージ 検査器インターフェイス150は、そのノードに対する2つの誤りファイルのど れに誤り符号が知らされるかを識別する。
各誤シ符号は耐障害器RAM1620群マツピング部168をアドレスするため に用いられる。誤り符号は、第18図に示されているペナルティ重みポインタを アドレスする。そのポインタは耐障害器RAMのペナルティ重み部172をアド レスする。第20図に示すように、ペナルティ重みポインは、フォーマットされ た誤シ符号に含まれている知らされた誤υの特定の組合わせへ割当てられる特定 のペナルティ重ミをアドレスする。そのノードに対する誤シフアイルに格納され ている各誤シ符号から生じたペナルティ重みは、誤り取扱い器164 において 加え合わされて、そのノードに対する増加ペナルティカウント(バイト8)とし て誤シメッセージに付属される。前記のように、誤シを含んでいたメツセージを 送った各ノードに対して、各アトミック期間中にただ1つの誤シメッセージを発 生する。
耐障害器RAM162は、1バイト(MTI)、2バイ)(MTI)、および4 バイト(MT3とMT4)のデータ値メツセージに対する逸脱限度も4つの別々 の部分174.176、178.180に格納する。票決器について後で説明す るように、それらの部分は票決器38によp用いられる。
メツセージ検査器インターフェイス1soo詳細が第21図に示されている。格 納メツセージモジュール182がメツセージバイトをメツセージ検査器34から 直接受け、それらを耐障害器162のメツセージ区画部166に格納する。格納 メツセージモジュール182は、メツセージ検査器インターフェイスコンテキス ト記憶装置190に格納されているコンテキストビットを、メツセージ検査器3 4によシメッセージバイトに付されている記述子(NIDプラスバイトカウント )に加えて、区画アドレス(PID)を発生する。その区画アドレスは、メツセ ージ区画部分166内の、特定のメツセージバイトを格納する場所を識別する。
前記のように、各マスク期間が始った時に、各ノードはベースペナルティカウン トメツセージをまず送シ、それにタスク完了/開始メツセージが続く。格納メツ セージモジュール182は、各ノードに対して、ベースペナルティカウントメツ セージを受けたことを意味する第1のフラッグと、その後のタスク完了/開始メ ツセージを受けたことを意味する第2のフラッグとを格納する。
それらのフラッグは、各マスク期間の初めに偽にセットサレ、ベースペナルティ カウントとタスク完了/開始メツセージがそのノードに対して受けられた時に真 にリセットされる。それらのフラッグがともに真にセットされなければ、格納メ ツセージモジュール182は、票決器インターフェイスバッファ184内のその ノードからその後で受けた任意のメツセージのアドレスの書込みを不能にする。
その結果として、その後でそのノードから受けられたデータは票決器38によυ 処理されず、その後のどの処理の間も無視される。票決器インターフェイスバッ ファは8×7の先入れ先出しバッファであって、そのバッファにおいては、耐障 害器RAM162のメツセージ区画部166内の受信メツセージに対する区画ア ドレスの上位4ビツト(コンテキストビットプラスNID)が上位4ビツトであ る。残シの3ビツトはメツセージの第1のバイトに含まれているメツセージの種 類符号である。
誤シ状態バイト検出器186は、メツセージ検査器34から耐障害器36へ送ら れるメツセージを聴き、メツセージ検出器34によシ発生された各誤シ状態バイ ト(バイト15)の受信を検出する。誤り状態バイトの内容が、各長さ誤p ( LENER)  ビットを除き、全て零でちるとすると、誤シ状態バイト検出器 186は、メツセージ検出器インター7エイスコンテキスト記憶装置190が、 格納メツセージモジュール182を介して票決器インターフェイスバッファ18 4にロードすること、または要求に応じてタスク完了レジスタ202にロードす ること(:あるいは分岐条件レジスタ200にロードすることを可能にする。さ もないと、誤シ取扱い器164によシ次に処理するために、誤り状態バイト検出 器186は各非零誤シ状態バイトを誤シ状態バッファ188にロードする。メツ セージが自己試験メツセージ(TID = NID )セットであるならば、誤 シ状態バイト検出器186は誤シ状態バッファ188内の自己試験フラッグも検 出する。誤シ状態バッファ188は8×12の先入れ先出しバッファであって、 そのバッファにおいては最上位ビットは自己試験フラッグであシ、次の3ビツト はノード識別(NID)符号であシ、残シの8ビツトは受けた誤シ状態ノ(イト でちる。
メツセージ検査器インターフェイスコンテキスト記憶装置190 は、各ノード に対して第■表に含まれている情報を一時的に格納する。この情報が一時的に格 納する理由は、誤シ状態バイトが受けられるまでメツセージに誤シが々いか知ら ないからである。
第  ■  表 メツセージ検査器インターフェイスコンテキスト記憶装置ビット  適 要          書かれた時13   TICフラッグ   MTI、バイトカウ ント=2(DID=O)12  区画コンテキストビット     バイトカウ ント=1511〜9 メツセージの種類符号     バイトカウント=18    分岐条件ビット   MT6.バイトカウント=47〜0 開始されたTI D   MT6;バイトカウント=3最上位ビット、ビット13は、受けたメツ セージがタスク相互作用メツセージ−貫性(TIC)メツセージであることを意 味する。そのメツセージは同期器46によシ処理される。このフラッグは、全部 零であるデータ識別符号(DID=O)を肴するメツセージの種類MTI に応 答したタスク相互作用一貫性メツセージ検出器192によってセットされ、この メツセージのアドレスの票決器インター7エイスノζツファ184へのロードを 禁止する。というのは、それは同期器によって用いられるだけであって、動作制 御器の他のサブシステムにより用いられないからである。12番目のビットは、 メツセージ区画部166のどの区画にメツセージが格納されるかを識別する区画 コンテキストビットである。先のメツセージに誤シがなかったことを誤シ状態バ イト検出器186が示した時にコンテキストビットはトグルサれる。メツセージ に誤りがなければコンテキストビットはトグルされず、そのノードから受けた次 のメツセージが耐障害器RAM162内の先のメツセージに書き重ねられる。
メツセージ種類符号ビットがメツセージの第1のバイトから直接受けられる。分 岐条件ビット、ビット8、が分岐条件検出器194から直接受けられる。
この分岐条件検出器はタスク完了/開始(MT6)メツセージの4番目のバイト に含まれている分岐条件開始されたタスクのTIDをメツセージ検出器インター フェイスコンテキスト記憶装置190の下位7ビツト目の場所にロードするタス ク開始検出器196から得られる。
受けたメツセージに誤シがないことを意味する誤シ状態バイトを受けた時に、メ ツセージがタスク相互作用一貫性メツセージでないとすると、メツセージ検査器 インターフェイスコンテキスト記憶装置190はコンテキストビットとメツセー ジの種類を格納メツセージモジュール182へ転送する。格納メツセージモジュ ール182においては、耐障害器RAM162内のそのメツセージの開始区画( PID )アドレスを形成するために、コンテキストビットがノード識別(NI D)符号に加えられる。メツセージ種類符号は区画アドレスに付属され、票決プ ロセスのために必要なデータを取出すために後で票決器38が使用するように、 それらは票決器インターフェイスバッファ184へ転送される。
誤シのないタスク完了/開始(MT6)メツセージを受けたことを意味する誤シ 状態バイトを受けると、メツセージ検査器インターフェイスコンテキスト記憶装 置190 は開始されたタスクの識別(TID)符号とノード識別符号(NID )  をスケジューラ−インターフェイスバッファ198へ転送し、そこでそれ は要求があるとスケジューラ−40へ転送される。
スケジューラ−インターフェイスバッファ198は8Xllビツトの先入れ先出 しバッファであって、ソフト誤りウィンドウの終D(sgw)が終った時にリセ ットされる。ソフト誤シウインドウは同期器46により発生され、他のノードか らの時間的に重要なメツセージが互いに同期しているとするとそれらのメツセー ジを受けなければならない期間である各サブアトミック期間の終シをまとめる期 間を定める。
メツセージ検査器インターフェイスコンテキスト記憶装置190 は格納されて いる分岐条件(BC)ビットを並列に分岐条件レジスタ200へ転送し、メツセ ージをタスク完了レジスタ202ヘメツセージを送るノードのノード識別(NI D)符号を転送する。
それらのレジスタは、同期器46にょシ求められた時に同期インターフェイス1 52によって読出される。分岐条件レジスタ200 とタスク完了レジスタ20 2は、各ハード誤シウインドウ(HEW)信号が終った時にリセットされている レジスタの異なるセットで二重にバッファされる。ハード誤シウィンドウ信号が 同期器46によシ発生され、各サブアトミック期間が終った時にソフト誤シウイ ンドウ(SEW)をまとめ、他のノードからの時間的に重要なメツセージの到達 時刻の最大逸脱を定める。ハード誤シウインドウ(HEW)とソフト誤シウィン ドウ(SEW)の機能を同期器46の詳しい説明において詳しく説明する。
第22図に示すように、誤シ取扱い器は誤97アイラ204 と、誤シー貫性検 査器206  と、誤シメッセージ発生器208 と、誤シ取扱い器コンテキス ト記憶装置210とを含む。誤97アイラ204は、動作制御器内の各種のサブ システムからの誤シレポートに対して、メツセージ検査語インターフェイス15 0 と、同期器インターフェイス152と、スケジューラ−インターフェイス1 54と、票決器インターフェイス158 とをボールする。誤97アイラは受け た誤シレポートをフォーマットされた誤シ符号(第17図)にフォーマットし、 第19図に示すようにそれらの符号を誤りファイルアドレスでタグする。誤シフ ァイラアドレスは3ビット誤りファイル識別符号と、メツセージを耐障害器RA M162 のメツセージ区画内にファイリングするためにメツセージ検査語イン ターフェイス150によシ発生されるものでおるコンテキストビットと、ノード 識別(NID)符号と、レポート番号とである。前記のように、フォーマットさ れた誤シ符号は、誤シを検出したサブシステムを識別する4ビット符号と、検出 された誤シを識別する4フラツグビツトとを含む。
誤シファイラ204はフォーマットされたそれらの誤シ符号を耐障害器RAMイ ンターフェイス160へ送る。その′インターフェイス160はそれらの符号を 耐障害器RAM162の誤シ符号ファイル部170に格納する。誤シフアイ>2 04は、誤シメッセージ発生器208がどれだけの数の誤シレポートを耐障害器 RAM162から処理するために決定できるように、誤シ取扱い器コンテキスト 記憶装置210 に書込まれた誤シレポートの数も送る。誤シファイラ204は メツセージ検査器34によシ発生された自己試験フラッグも検出し、そのフラッ グを誤りメツセージ発生器208へ送る。自己試験フラッグは1つの群符号の一 部であって、それらの符号のペナルティ重みは零または非常に小さい値になるよ うにプログラムされる。自己試験誤シメッセージは検出された全ての誤りを識別 し、増加ペナルティカウントとベースペナルティカウントを含む。
誤り一貫性検査器206は誤シレポートと、装置内の各ノードに対するベースペ ナルティカウントの一貫した取扱いに責任を持つ。このゴールに達するためにあ る種の暗黙の相互作用−買性が用いられる。
各マスク期間の初めに、誤シー貫性検査器206は、装置内のそれ自身を含めた 全てのノードから受けたベースペナルティカウントメツセージに応じて票決器3 8によシ発生される票決されたベースペナルティカラン) (VBPC)を票決 器インターフェイス158を通じて受ける。第23図を参照して、それらの票決 されたベースペナルティカウントは、先行するマスク期間の間格納されているベ ース値ペナルティカウントの値とは独立に、各ノードに対するベースペナルティ カウントとしてベースペナルティカウント記憶装置212に格納される。このよ うにして、装置内の全てのノードは、装置内の各ノードに対シて、同じベースペ ナルティカウントで各マスク期間を開始する。ベースペナルティカウント記憶装 置212は、それ自身を含めて装置の全てのノードから受けた誤りメツセージか ら票決器38により発生された、票決された増加ペナルティカラン)(VIPC )も受ける。誤りが妥当性検査器218 によシ確認された時に、票決された増 加ペナルティカラン) (VIPC)  は責任を問われたノードのベースペナ ルティカウントに加えられる。妥当性検査器218は票決器38において実現す ることが好ましいが、第23図に示すように誤シー貫性検査器206 の一部と するLともできる。
誤シー貫性検査器206 は、票決された現在の装置状態(CSS)ベクトルを 格納する現在の装置状態レジスタ214 と、次の装置状態(NSS )ベクト ルを格納する次の装置状態レジスタ216 も含む。現在の装置状態ベクトルは どのノードが装置内で動作しておシ、どのノードが除外されるかを識別し、次の 装置状態ベクトルは、装置の次の装置状態において、どのノードを含ませるかと いうことと、どのノードを除外するかということの少くとも一方を行う。
票決された次の装置状態ベクトルが現在の装置状態ベクトルと異っているとする と、次のマスク期間の初めに装置はそれの状態を変える。現在および次の装置状 態ベクトルは8フラツグビツト、各ノードに1つのフラッグビット、を有する。
それらのフラッグビットは、ノードが除外された時にセットされ、ノードがノー ドの動作セットに再び加入させられた時にリセットされる。
妥当性検査器218 の説明の前に、各ノードで検出される各種の誤シについて 簡単に説明する。第■表は装置に用いられる25個の障害検出機構の表である。
障害検出機構 メツセージ垂直パリティ     MSCAメツセージ縦冗長       M SCA同期−ハード        MSCA同期−ソフト        M SCAノードID送り         MSCS無効メツセージ種類       MSCS無効データID         MSCSタスクIDシーケンス      FLT      SデータIDシーケンス     FLT       Sデータ限度           MSCSデータ逸脱           FLT      Sタスク実行時間         SCHS現在の 装置状態        FLT      8次の装置状態           FLT      Sペナルティカウントベース逸脱  FLT       Sペナルティカウント増加逸脱   FLT      S失われたRPCメ ツセージ    FLT      S支持されない誤シレポー)       FLT      S失われた誤りレポート     FLT       S 自己検出モニタ        FLT       SM、P、不整列         SYN       S同期シーケンス誤シ      SYN        S同期失われたメツセージ    SYN       S多すぎる データメツセージ   VTRSAP報告された誤シ      TSOS送ら れる最後のDI[7TSO5 SEW中の悪いメツセージ   FLT       A多すぎる誤シレポー)       VTR,S多すぎるBPCVTRS 誤シの超過した最大数     VTRAこの表は誤シと、誤シを検出するサブ システムと、誤シの検出が対称的(S)か、非対称的(A)であるかを示すもの である。装置の構造は対称的であるから、相互に送られるメツセージに含まれる ほとんどの誤シは他の全てのノードで検出できねばならない。したがって、あら ゆるノードは、検出された誤シを識別する誤シメッセージと、その誤りを生じた ノードに対して請求すべき増加ペナルティカウントt−識別する誤シメッセージ を発生せねばならない。したがって、対称誤シの存在は、装置内の少くとも大多 数のアクティブノードによシ確認せねばならない。また、受信ノードの間で誤シ が自身で異ったように表明するように、チャネルノイズが生ずるような場合があ る。この場合には、大多数のノードはどのノードに障害があるかについて一致す る。しかし、検出される誤シはノードごとに異なり、種々の誤りメツセージにお いてレポートされる増加ぺ、ナルティカウントは同様に異なることがある。増加 ペナルティカウントについての中央票決が、そのノードに対するベースペナルテ ィカウントを増加するために用いられる。しかし、妥当性検査器218 は誤シ ファイラ204 への逸脱v4bレポートを発生しない。その誤シファイラは、 許されている置板上だけ票決された増加ペナルティカウントから異なる増加ペナ ルティカウントを有するノードを識別する。これは健康なノードの不当な処罰を 阻止する。
次に第24図を参照して、妥当性検査器218 は、それが票決器38または耐 障害器36のいずれで具体化されようが、大多数一致検出器224と、非対称誤 シ検出器226と、誤シ報告器230とを有する。
れなかったことを示す「失われたベクトル」を票決器38から受け、かつ、票決 された値を中心とする許容された逸脱の外側のベースペナルティカウントまたは 増加ペナルティカウントを有するベースペナルティカウントまたは誤シメッセー ジをどのノードが発生したかを示す「逸脱ベクトル」を受ける。大多数一致検出 器224 は現在の装置状態ベクトルも現在の装置状態レジスタ214 から受 ける。大多数一致検出器224 は「逸脱ベクトル」と「失われたベクトル」を 現在の装置状態ベクトルから差し引いて、票決された値に一致するノードの数に 対応する数を発生する。次に、その数は、現在の装置状態ベクトルによシ識別さ れた、装置内で現在アクティブであるノードの数と比較される。タイ(ti e  )すなわち大多数のノードが、票決された値に一致する値を有するメツセージ を送ったとすると、そのメツセージがベースペナルティカウントメツセージであ るならば、票決されたベースペナルティカウントがベースペナルティカウント記 憶装置212 に格納される。
さもないと、メツセージが誤りメツセージであるとすると、ベースペナルティカ ウント記憶装置212に格納されているベースペナルティカウントが票決された 増加ペナルティカウントによシ増加させられる。
他のノードから受けたメツセージが大多数を表さないものとすると、大多数一致 検出器は書込み禁止信号を発生する。その信号はアンドゲート234を介してベ ースペナルティカウント記憶装置212に加えられる。この書込み禁止信号は、 報告された誤りが非対称誤シでなければ、ベースペナルティカウント記憶装置2 12 への票決された値の書込みを禁止する。
非対称誤り検出器226 は、逸脱ベクトルと、失われたベクトルと、現在の装 置状態ベクトルとを受け、特定のノードが障害を起していると識別する誤シメッ セージを大多数のノードが送る時に逸脱レポート禁止信号を発生する。しかし、 それらの誤シメッセージは、増加ペナルティカウントが、障害を起したノードに 対して責任があるということについては一致しない。非対称誤シ検出器は誤シ取 扱い器コンテキスト記憶装置210 に質関し、検出された誤シが第■表に示さ れている種類の非対称誤シであると判定された時に逸脱レポート禁止信号を発生 する。逸脱レポート禁止信号は誤シ報告器230 が誤シファイラ204へ、票 決された増加ペナルティカウントから許容誤差以上だけ逸脱している増加ペナル ティカウントを含んでいる誤りメツセージを送った任意のノードについての逸脱 誤りを知らせることを禁止する。逸脱レポート禁止信号はアンドゲート234  の反転(負)入力端子へも加えられる。逸脱レポート禁止信号はアンドゲート2 34を閉じ、大多数一致検出器234 によp発生された書込み禁止信号を阻止 する。これは票決された増加ペナルティカウントを、ベースペナルティカウント 記憶装置212 に格納されているベースペナルティカウントに加えることを可 能にする。
誤シ報告器230 は、票決器38から失われているベクトルと逸脱ベクトルを 受け、現在の装置状態レジスタ214 から現在の装置状態(CSS)ベクトル を受け、誤シレポート禁止信号を非対称検出器226 から受け、書込み禁止信 号をアンドゲート234 の出力端子から受ける。書込み禁止信号の非存在に応 答して、誤シ報告器230 は、逸脱レポートを有するものとして逸脱ベクトル において識別されているノードを誤シ7アイラ204 へ卸らせ、かつ失われた ベクトルに応答して、要求に応じてベースペナルティカウントまたは誤シメッセ ージを送らなかった各ノードに知らせる。書込み禁止信号と非対称誤り検出器2 26からの誤9レポート禁止信号の非存在に応答して、誤シ報告器230 は、 支持されていない誤シを知らせた各ノードに仰らせる。逸脱誤シがそれらの支持 されていない誤シメッセージに対して知らせられない。最後に、非対称誤シ検出 器226 からの誤りレポート禁止信号に応答して、誤シ報告器230 は、失 われたベクトルによF)R別されたものとして非対称誤りを知らせることに失敗 した任意のノードを誤シファイラ204 に知らせる。
前記したように、誤シ報告器230 は、非対称誤シ検出器からの逸脱レポート 禁止信号の存在する中における任意の逸脱誤シを知らせない。
第23図へ戻って、誤シー貫性検査器206 は除外/再加入しきい値比較器2 20も含む。この比較器は、票決された増加ペナルティカウントによるベースペ ナルティカウント記憶装置212内のベースペナルティカウントの増加に応答す る。除外/再加入しきい値比較器220は増加されたベースペナルティカウント を所定の除外しきい値と比較し、増加サレタベースペナルティカウントが除外し きい値をこえた時に、除外/再加入しきい値比較器220 は次の装置状態レジ スタ216 内の除外されたフラッグを、障害のあるノードに対応するビット位 置にセットする。除外されたフラッグのセットは、次の装置状態において、セッ トされた除外フラッグを有するノードを動作しているセットから除外すべきこと を耐障害器が決定したことを意味する。各アトミック期間が終ると、現在の装置 状態(CSS)ベクトルと次の装置状態(NSS )ベクトルは同期器46へ転 送され、それぞれ現在の装置状態ベクトルおよび新しい装置状態ベクトルとして 次の装置状態(M’j5)メツセージに含まれる。装置内の関与する全てのノー ドから装置状態メツセージを受けた時に、新しい装置状態が票決器38によシ全 体的に確認される。新しい装置状態が何であるかという大多数の見解(view )  は票決プロセスにより発生された中位値である。したがって、ノードを除 外または包含するというローカルな決定における誤シは逸脱誤シであると自身で 表明する。
票決された新しい装置状態への動作負荷の実際の再構成はスケジューラ−40に ょシ行われ、シーケンスが開始される時刻はアプリケーションの設計者が選択可 能なパラメータを基にしている。再構成は、その後で新しい装置状態が全体的に 確認されるような次のアトミック期間に行うことができ、または次のマスク期間 まで待つことができる。任意のアトミック期間に再構成が起きたとすると、耐障 害器とスケジューラ−40の間の正常な転送動作中に、票決された新しい装置状 態ベクトルが装置状態ベクトルとしてスケジューラ−40へ送られる。しかし、 マスク期間の境界において再構成が行われたとすると、マスク期間中の最後のサ ブアトミック期間(LSAP)を意味するフラッグが真である時だけ、票決され た新しい装置状態ベクトルがスケジューラ−40へ送られる。
誤シのない動作の延期された期間に続いて、除外されているノードの再加入を許 すために、誤シー貫性検査器206 は、各ノードに対するベースペナルティカ ウントを各マスク期間の終シに、所定の量だけ減少させるベースペナルティカウ ント減少器222を有する。各ノードに対するベースペナルティカウントを減少 した後で、ベースペナルティカウント減少器222は除外/再加入しきい値比較 器220が、除外された各ノードの減少させられたベースペナルティカウントを 所定の再加入値と比較できるようにする。除外/再加入しきい値比較器220  は、再加入しきい値よシ小さい減少させられたベースペナルティカウントを有す る以前に除外された各ノードに対して、次の装置状態レジスタ216内のフラッ グをリセットする。これは、装置の動作が延期された期間にわたって誤りなしに 動作して以来、次に装置が再構成される時にノードを動作セットに再び加入する ことを許す。この誤シのない動作は、元の障害が過渡的なものであるか、修正さ れた(修理または交換)ものであるかを示す。ノードのベースペナルティカウン トを除外しきい値を中心として変動させる断続的な障害をノードが有するものと すると、2つの装置状態の間で装置が振動することを阻止するために、再加入し きい値は除外しきい値よシ小さいことが好ましい。ベースペナルティカウント記 憶装置212 と、現在の装置状態レジスタ214 と、次の装置状態レジスタ 216 とは誤シ取扱い器コンテキスト記憶装置に含ませることが好ましいが、 第23図に示すように、誤シー貫性検査器206内の独立した素子にできる。
除外/再加入比較器220はそれ自身のノードの除去の検出も行い、リセット信 号を発生する。このリセット信号はリセット発生器157(第22図)を起動さ せて1.動作信号制御器リセット信号(0CRES )と最初のパラメータ負荷 信号(工pL)を発生する。前記のように、それらの信号は動作制御器をリセッ トさせ、かつ最初のパラメータを再ロードさせる。リセット発生器157 は電 源投入リセット(FOR)信号にも応答して、動作制御器へ電力が供給されるた びに0CRES信号とIPL信号を発生させる。
誤シメッセージ発生器208は、各アトミック期間中に、それ自身の動作制御器 により検出された誤フを含むメツセージを発生した各ノードに対する誤シメッセ ージを発生する。誤シメッセージ発生器208 は各マスク期間の初めにベース ペナルティカウントメツセージも発生する。それらのメツセージは送信器インタ ーフェイス156 を介して送信器30へ送られる。
各アトミック期間の初めに、誤りメツセージ発生器208 は各ノードに対する 増加ペナルティカウントを零(0)にセットする。それから、それは任意の誤シ レポートに対する耐障害器RAM162 の誤シ符号ファイル部170 を検査 する。各誤りレポートの誤シ符号は、耐障害器RAM 162のペナルティ重み 部172 に対するポインタを得てペナルティ重みを取出すために、群マツピン グ部168 をアドレスするために用いられる。このペナルティ重みは障害のあ るノードに対する増加ペナルティ重みとして誤シ取扱い器コンテキスト記憶装置 210  に格納されて、そのノードに対して現在格納されているベースペナル ティカウントを増加するために用いられる。このプロセスは、耐障害器が、個々 の各ノードに対するアトミック期間が終ったことを意味する装置状態メツセージ を受けるまで、各ノードに対する報告された各誤シに対して反復される。特定の ノードからの装置状態メツセージの受信に応答して、そのノードに対する増加ペ ナルティカウントとベースペf k fイカラントが凍結される。それから、メ ツセージ発生器は、耐障害器RAM162 の誤シ符号ファイル部170 の内 容と、格納されている増加ペナルティカウントと、誤シ取扱い器コンテキスト記 憶装置210に格納されているベースペナルティ汝つントとを用いて、障害が検 出された各ノードに対する誤シメッセージを構成する。装置状態メツセージが障 害のあるノードから受けられない場合には、ノード自身の同期器46によシ発生 されて、全ての有効な装置状態メツセージが必ず受けられたことを意味するファ ジーの高い端部(HEDF)信号を検出することにょシ、ベースペナルティカウ ントと増加ペナルティカウントが凍結される。これは、誤りとベースペナルティ カウントメツセージとの送信が、失われた装置状態メツセージを待っている間に 延期されることを阻止する。
誤りメツセージの4つの誤シバイト(バイト3〜7)のフォーマットが第25図 に示されている。第1のバイトの最上位ビットは、知らせられた誤シが自己試験 メツセージ中で検出されたことを識別する自己試験フラッグである。自己試験誤 シメッセージにおいては、増加ペナルティバイト8は小さい値を有し、または零 である。
各マスク期間の初めに、誤)メツセージ発生器208 は各ノードに対して現在 格納されているベースペナルティカウントを検索し、各マスク期間の最後のアト ミック期間が終った時に同期器46にょシ送られる装置状態メツセージの後で送 られる最初のメツセージであるベースペナルティカウントメツセージを発生する 。送信器3oについて述べたように、送信器のメツセージ仲裁器56は、マスク 期間の終シに装置状態メツセージを送った後で耐障害器インターフェイス52を ボールし、それから、耐障害器36により発生されたベースペナルティカウント メツセージを待つ。
第26図は動作制御器の動作ジ−タンスを示す。
これによシ装置が再構成される結果となシ、かつ耐障害器36によシ演じられる 役割となる。第26図を参照して、マスク期間の初めに、(a)は各ノードがそ れのベースペナルティカウントメツセージを放送し、それの誤シ取扱い器コンテ キスト記憶装置内の全ての増加ペナルティカウントを零リセットすることを意味 する。それから、誤シ増扱い器164は、それ自身の動作制御器の誤シ検出機構 によシ検出された任意の誤りの処理を始める。第1のアトミック期間またはそれ 以後の任意のアトミック期間(b ’)の終シに、各ノードは、そのための誤シ が検出されたメツセージと、そのノードに対する増加ペナルティカウントおよび ベースペナルティカウントを送ったノードを識別する誤シメッセージを放送する 。そのアトミック期間(b)においては誤シを含んでいるメツセージが生ずる。
次のアトミック期間(C)が終るまでに全てのノードからの誤シメッセージが受 けられなければならない。次のアトミック期間(d)の間には、耐障害器は受け た誤シメッセージを処理し、他のノードからの支持されていない誤シメッセージ を検出し、大多数のノードにょシ支持される知らされた誤りを有する責任を問わ れるノードに対する増加ペナルティカウントについての中間票決を行う。
次に、その中間増加ペナルティカウントが責任を問われたノードのベースペナル ティカウントに加えられる。それから、増加されたベースペナルティカウントは 除外しきい値と比較される。増加されたベースペナルティカウントが除外しきい 値より大きいとすると、そのノードに対する除外ビットが、同期器46へ送られ た次の装置状態ベクトルにセットされる。アトミック期間(e)が終ると、同期 器4台は装置状態メツセージ中に次の装置状態ベクトルを含゛む。
それは他の全てのノードへ放送される。次のアトミック期間(f)の初めに、耐 障害器36は、健康なノードの中間票決を用いて次の装置状態の正しさを確認し 、この情報を同期器46とスケジューラ−40へ送られる。この情報を受けると (g)、同期器46とスケジューラ−40は再構成プロセスを開始する。
そのプロセスにおいては、票決された次の装置状態ベクトル内で識別された装置 状態は装置に対する現在の装置状態になる。再構成が終った後で(h)、装置は 新しい装置状態において新しいマスク期間を始める。上の例は1つのノードによ る1つの障害についてのものであるが、任意の1つのノードについて2つ以上の 障害が検出されたとしても耐障害器の動作は異なることはなく、受けた誤シメッ セージにおいて2つ以上のノードが障害であるとされる。種々のアトミック期間 中に障害が連続して生じたとすると、このシーケンスはオーバーレイできる。
データの処理中に票決器38は2つの主な機能を行う。第1に、それはデータの 利用可能4全てのコピーについて票決された値を発生し、第2に、データの各コ ピーのデータ値が所定の許容差すなわち許容逸脱値内にbるかどうかについて判 定する逸脱検査を行う。第27図を参照して、票決器38はローダ−236を有 する。このローダ−は耐障害器236からメツセージ種類(MT)符号と、ノー ド識別(NID)符号と、データ識別(DID)符号とを、それに対して票決値 を発生すべき各メツセージに対して受ける。そのメツセージが受けられると、ロ ーダ−236は現在利用できるデータの各コピーを検索して、そのコピーを耐障 害器RAM162 に一時的に格納する。それは受けたメツセージと同じデータ 識別(DID)符号を有する。また、ローダー236は、メツセージ種類符号を 用いて、耐障害器RAM162の逸脱部174〜180からその特定のメツセー ジに対する所定の逸脱を検索する。
ローダ−236はデータの各コピーの最上位ビットを並列に上側中位値ンータ2 38 と下側中位値ソータ240へ初めに送る。それらのンータ238  と2 40 は受けたビットを分類して上側(Un)中間ビット値と下側(Ln)中間 ビット値をそれぞれ発生する。それらの上側と下側の中間ビット値(UnとLn )は発生されるにつれて平均回路242 と逸脱検査器244へ転送される。ハ ード誤シウインドウ(REV)が終ると、タスク相互作用一貫性メツセージまた は装置状態メツセージを送らなかった各ノードを識別する失われたベクトル(t V)をローダ236 が発生する。
平均回路242は上側と下側の中間ビット値を加え合わせ、その和を2で除して 票決された平均を生ずる。
逸脱検査器244は上側(Un)および下側(Ln)の中間ビット値を受け、か つ、耐障害器RAM162から検索された逸脱値を受け、更に処理されているデ ータの各コピーから対応するデータビットを受け、データ値の各コピー内の各ビ ットに対して、それが許容逸脱内にあるか否かを判定する。このプロセスは、各 コピーの最上位ビットから始って最下位ビットまで、各コピーの各ビットについ て反復される。
が耐障害器36へ送られて、逸脱誤シを含んでいるメツセージを有する各ノード を識別する。
データ値メツセージ(MTO、MTI 、 MT2 、 MT3 ’)について 平均回路によシ発生された票決されたデータ値は票決値−タスクコミュニケータ インターフェイス246 へ送られる。そのインターフェイスはそれ・らのデー タ値を、データ値に対するデータ識別(DID)符号とともにタスクコミュニケ ータ44へ送る。ベースペナルティカウントメツセージ中に含まれているベース ペナルティカウントに対する票決された値と、装置状態メツセージに含まれてい る現在および新しい装置状態ベクトルに対する票決された値と、誤勺メツセージ 中の増加ペナルティカウントおよびベースペナルティカウントに対する票決され た値とが票決器−耐障害器インター2エイス248へ送られ、そこから、前記し たように、逸脱誤シ(DERR)および失われたベクトルとともに耐障害器36 へ送られる。
票決された値を発生することを求めるメツセージが受けられるたびに、票決プロ セスと逸脱検査が反復される。これによシ、タスクコミュニケータ44と耐障害 器36は、それらが必要とするデータ値に対して最良で、最近の票決された値を 常に有するようにされる。この種の高速票決を用いると、受けたメツセージ中の 検出された障害のためにデータの1つまたは複数のコピーを利用できないか、障 害のあるノードが求められているメツセージを発生するのに失敗したとしても、 装置は引き留められることはない。
上側中間値ソータ238  と下側中間値ソータ240は処理されているデータ 値から2つの値をとシ出す。
選択される値は、中間選択(MS )と、中間極値の中位数(median o f  the medial extremes)(MME)票決のいずれが実 現されるかに依存する。
混乱をさけるために、上側と下側の中央値を取出すことだけを説明する。中間極 値の平均(MME)分類を行うための小さい変更について後で簡単に説明する。
上側中間値ソータ238 と下側中間値ソータ240によシ用いられるプロセス が第28図に示されている流れ図に示され、下側中間値ソータ240 の回路の 詳細が第29図に示されている。上側中間値ソータ238は下側中間値ソータ2 40 の鏡像であるから、詳しい図示および詳しい説明は不要である。
まず第28図を参照して、プロセスはブロック250に示すようにビットカウン ト(n)を零に初期化し、初めの中間値S =Sn=(m−1)/2 を発生す ることによシ始まる。初めの中間値Snの計算において、mは、ローダ236か ら得た処理されるデータのコピーの実際の数である。次に、ブロック252に示 すように、上側中間値ソータ23Bは、全てのコピーの最上位ビット位置に含ま れている1の数 (I’s)をカウントして、カウントされた1ビツトの数であ る数nlを生ずる。次に、上側中間値ソータ238はnx−8nが0に等しいか 、Oより小さいかを判定する(ブロック254)。1の数がSnよシ小さいと上 側中間ビット値はブロック256 で示すようKOビットである。上側中間値U nがOビットであれば、同じビット位置に1ビツトを有する全てのコピーは以後 の処理から除外されて、残っている上側中間値ビットの値を決定する。データ値 のいくりかのコピーがいまは除外されるから、ブロック258 に示すように、 Snから除外されたコピーの数(nl)を引くことによυ次の最高ビットの分析 のための新しい値を発生することにより、新しい値陥が計算される。
1ビツトの数がSnよシ大きいと、ブロック260に示すように上側中間値Un は1ビツトであシ、同じビット位置にOビットを有する全てのコピーが後の処理 から外される。最上位ビットの上側中間値Unが決定された後で、このプロセス は最上位の次のビットへ進み(ブロック272) 、データ値内の全てのビット (n=nmax)が判定ブロック274 に示されているように全て処理される まで繰返えされる。
同様にして、下側中間値ソータ240はブロック262 に示すように0の数を かぞえて、かぞえられたOの数に等しい数noを発生する。判定ブロック264  に示すように、0の数(no )がSnよシ小さいとすると(n o  S  n=0)、下側中間値ピッ)(Ln)は1ビツトでアシ、同じビット位置にOビ ットを有する全てのデータコピーは後の下側中間値の処理から外される。また、 外されたコピーの数(no)を、ブロック268 に示すように、sn に対す る以前の値から引くことによシ中間値Sn が修正される。ブロック270 に 示すように、0ビツトの数(no)  が Sn よシ大きいと、そのビット位 置の下側中間値は0ビツトでアシ、同じビット位置に1ビツトを有するデータコ ピーは除外される。
全ての下側中間値ビットが決定されるまでこのプロセスは反復される。
下側中間値ソータ240 の回路の詳細が第29図に示きれている。零カウンタ 280 の1代シに等しい1カウンタが用いられていることを除き、上側中間値 ソータ238の回路の詳細は第29図に示されている回路の鏡像である。第29 図を参照して、ローダ236によシ検索されたデータ値の各コピーからのデータ 値が、複数のオアゲー)276−0〜216−N、およびまとめてブロック27 8により示されている同じ複数の排他的7′アゲートによシ、最上位値から最下 位置までビットごとに受けられる。オアゲ−) 276−0〜276−Nは受け たビットを零カウンタ280へ通す。零カウンタ280は実際には受けた1ビツ トの数をカウントし、処理されているコピーの数(m)からその数を引いてOの 数(no)を生する。ローダ236 は、それが耐障害器RAM162から検索 したデータのコピーの数をカウントし、その数を零カウンタ280  と Sn 発生器282 へ供給する。Sn発生器282はmから1を引き、残シを2で除 してSnの初期値を生ずる。
Sn発生器282 の出力が2対1マルチグレクサ284によシ受けられる。そ のマルチプレクサはSnの初期値をレジスタ286へ通す。零カウンタ280の 出力(n、)とレジスタ286の内容が、n0=S とno<Snの二重比較を 行う二重比較器288 により受けられる。二重比較器288の出力は、下側中 間値Lnを出力するオアゲート290の入力端子へ加えられる。n0=snまた はno<Snであれば、第28図の判定ブロック264 とブロック266に示 すように、下側中間値Lnは1ビツトである。
同じビット位置にOビットを有するコピーの除外は排他的ノアゲート278とレ ジスタ294により行われる。オアゲート290によシ発生された1ビツト値は 各排他的ノアゲートの入力端子へ加えられる。
同じビット位置にOビットを有するデータ値の各コピーに対して排他的ノアゲー ) 27Bは論理1信号を発生する。この論理1は除外レジスタ294に格納さ れる。それの出力端子はオアゲー)276−0〜276−Nの別の入力端子へ接 続される。その結果、同じビット位置にOビットを持つデータを有するそれぞれ のオアゲー) 276−0〜276−Nの入力は1ビツトであって、その1ビツ トは零カウンタへ送られ、それによシ下側中間ビット値の決定にそれらのデータ がそれ以上関与することから外される。下側中間ビット値Lnが0であると、排 他的ノアゲート278へ論理O信号が加えられる。それは、処理のために1ビツ トを提供したデータ値の各コピーに対して論理1を除外レジスタ294に格納さ せる。
零カウンタ2,80からの出力noと下側中間ビット値Lnはゲート回路296  の入力端子へ加えられる。
下側中間ビット値Lnが1に等しい時に、ゲート回路はnOO値を減算回路29 8へ送る。減算回路298はレジスタ286 に格納されているSnの現在の値 も受けて、第28図のブロック268に示されている減算5n=Sn−noを行 う。Snのこの新しい値はマルチプレクサ284の第2の入力端子へ加えられ、 次の下側中間ビット値の処理に用いるためにレジスタ286へ送られる。シーケ ンサ回路(図示せず)が処理されたビットの数をモニタし、次のデータ値セット の処理の準備のために、最後の下側中間ピッ)Lnが現在のデータ値セットのた めに発生された後で、除外レジスタ294  とSnレジスタ286をクリヤす る。
中間極値(MME)票決された値の平均を生ずるために上側中間値(Un)   と下側中間値(Ln )を発生するための上側中間値ソータ238と下側中間値 ソータ240  との動作は、中間値SnとSnが、SnとSnのそれぞれの最 小値である、または固定された値である値TnとTn で置き換えられているこ とを除き、上で述べたのと同一である。その結果として、それらの値を用いて平 均回路242 によシ発生された票決された値は中間極値の平均である。
第30図に示されている流れ図と第31図に示されている回路図を参照して平均 回路242゛の動作を説明する。平均化プロセスは、平均値Mの2つの値を保ち 、それらの値の間で後のビットの到達を選択することKよシ、上側の値と下側の 値の平均を形成する。このプロセスは下記の2つの事実を基にしている。
a)特定の任意のビット位置においてUnとLnが同一であるとすると、下記の G))で述べる場合を除き、平均ピッ)Mは同じである。
b)数列 /2.  /2.  /2.  ・・・ 1/2は、数列に沿って初 めての同一の対に遺した時だけ2進フオーマツトに分解できる。たとえば、数列 1/2゜”/2.  /2.・・・”/2,0、ここに、0は0値を有するU、 Lnの到達を表す、は011・・・11  に分解し、数列 /2 、 ”/2  、 ”/2 、・・・’/2 、1、ここに1は1値を有するUnとLnの到 達を表す、は1o。
・・・00 に分解する。
第30図を参照して、このプロセスは、ブロック300に示すように、値Aを0 に、ビット数nをOに初期化することによシ始められる。値Aはr、n とUn の先行値の排他的論理和であシ、プロセスの初めに0にセットされる。それから 、判定ブロック302 において、LnとUnの排他的論理和が0(LnUn= 、O)に等しいかどうか質問する。LnとUnの排他的論理和がOに等しければ 、判定ブロック310に示すように、プロセスはAが0に等しいかどうか質問す る。AがOに等しいと、ブロック312に示すように、Ln の値が両方のレジ スタMlとM2に挿入される。(b)において述べた問題を解決するためにレジ スタM1とM2は平均Mの2つの値を保持する。判定ブロック310 において AがOに等しくなければ、ブロック314に示すように、平均回路242はUn の補数(Un)をレジスタMlとM2に入れる。それから、プロセスはLnが0 に等しいかどうか質問する、判定ブロック316゜これは、数列が存在するなら ば、上のω)で述べた数列の分解である。この実施例では、Mlは上記数列(1 ,0,0゜・・・0,0)を格納し、M2は第2の数列(0゜1.1.・・・1 ,1)を格納する。Ln=0であれば、数列はM2に格納されている数列に分解 されるから、ブロック320  に示すようにMlはM2に等しくされる。ある いは、LnがOに等しくないとLITIは1でアシ、数列はM、に格納されてい る数列に分解され、ブロック318に示すようにM2はMlに等しくされる。
判定ブロック302 においてLnとUn の排他的論理和が1に等しくて、L nとUn  が異なることを示したとすると、判定ブロック304 において、 プロセスはこれが起きたのは初めてであるか(A=O)どうか質問する。A=O であれば、1がレジスタM1の対応するビット位置に挿入さ゛れて数列(1,0 ,0゜・・・0,0)を開始し、0がレジスタM2に挿入されて数列(0,1, 1,・・・1,1)を開始させる。
A=1であって、LnとUnが異なることが初めて起きたことでないことが示さ れると、レジスタM1の対応するビット位置に0が挿入され、レジスタM2の対 応するビット位置に1が挿入される。それから、ブロック322 に示すように 、プロセスはUnとLnの現在の値の排他的論理和に応じてAに対する新しい値 を発生する。次にプロセスはビットカウントをn = n + 1にインデック スし、ブロック324、それから、最後のビット(nrnax)が処理されたか どうか質問する、判定ブロック326゜ もしそうでなければ、上側中間値ソー タ238と下側中間値ソータ240 によりそれぞれ発生されたUnとLnの次 の値の処理を平均回路242は続ける。
第31図を参照して、中間値Unとr、n は排他的オアゲート328により受 けられる。その排他的オアゲートは、UnとLnが異なる時は、それの出力端子 に1を生じ、UnとLn  が同じ時は、それの出力端子に0ビツトを生ずる。
排他的オアゲート328の出力は2ビツトシフトレジスタ330 の入力端子と 、アンドゲート332の反転入力端子と、アン、ドゲート348 の入力端子と へ送られる。シフトレジスタ330 は、上側中間値ソータ238と下側中間値 ソータ240から受けた次のUnビットとLnビットの処理に用いるために、排 他的オアゲート328の出力を一時的に格納する。シフトレジスタ330 の遅 延された出力は第30図を参照して述べた値Aである。上側の中間ピッ)Unは 一対の8対1マルチプレクサ334.336の入力端子0と3へも加えられる。
マルチプレクサ334  と336への他の入力は図示のようにプリセットされ る。値Uniたはプリセット値の1つを出力させるために、A、Un、Lnの値 はマルチプレクサ334 と 336をアドレスするために用いられる。たとえ ば、A=Ln=U几=Oであるとすると、マルチプレクサ334と 336は、 第30図のブロック312に示すように、Unの値であるO入力を共に出力する 。同様に、A=0でLn=Un=1 であれば、マルチプレクサ334 と33 6はそれの第3の入力端子に加えられたUnO値を共に出力する。第1の例にお いては、Unは0に等しく、第2の例においてはUnは1に等しかった。Aが0 で、LnとUnが異っているとすると、マルチプレクサ334は1を出力し、マ ルチプレクサ336はOを出力する、ブロック306、ことに注目されたい。し かし、A=1で、LnとUnが異っていると、マルチプレクサ334 と 33 6の出力は、第30図のブロック308によシ示されるように、逆にされる。
図示のように1、マルチプレクサ334と 336の出力は3対1マルチプレク サ338.340  によシ受けられる。マルチプレクサ33Bと 340はイ ンバータ342の出力も受ける。それは上側中間ビット値Unの補数(Un)で ある。3対1マルチプレクサ338と340の出力はM!lレジスタ344とM zレジスタ346によシそれぞれ受けられる。3対1マルチプレクサ338 と 340の出力はナントゲート332とアンドゲート348 によシ制御される。
ナントゲート332は、排他的オアゲート328の出力がOで、値^:が1の時 に論理1出力を生ずる。これは3対1マルチプレクサ338  と 340を起 動して、第30図のブロック314に示すように、Mlレジスタ344 とM2 レジスタ346における上側中間ビット値の補数Unを格納させる。排他的オア ゲート328 の出力が1で、Aが1である時に論理l出力を生ずる。それは、 第30図のブロック308に示すように、・マルチプレクサ334の出力をM2 レジスタ346 に格納させ、マルチプレクサ336の出力をMlレジスタ34 6に格納させる。
ナントゲート332 の出力は、Mlレジスタ344とM2レジスタ346を起 動し、第30図のブロック316に示すように、Lnの値に応じて、Mlレジス タ344の内容をM2レジスタ346にコピーさせ、またはM2レジスタ346  の、内容をMlレジスタ344にコピーさせる。ナントゲート332の出力と 下側中間ピッ)Lnがアンドゲート350の入力へ加えられ、そのアンドゲート 350 の出力は、第30図のブロック318と320に示すように、Mlレジ スタ344 の内容がM、レジスタ346へ転送されるか、あるいはその逆であ るかを決定する。
第32図に示す流れ図と第33図に示されている回路実現を参照して逸脱検査器 244の動作を説明する。検査される全てのデータ値に対して逸脱検査を並列に 行うことができるように、第33図に示されている回路は、装置内の各ノードに 対して1つの回路というように、逸脱検査器244において複製される。
逸脱の検査を大幅に遅らせないようにするために、逸脱検査器244は、上側中 間値ノータ238と下側中間値ソータ240から上側中間値Unと下側中間値L nを利用できるようになるにつれて、データを最上位ビットから最下位ビットま でビットごとに検査されるデータを処理する。逸脱検査プロセスは、BをAの2 の補数に加えることにより、かつ最上位ピッ)(MSB)におけるあぶれを調べ るztとによp、A>BをA≦Bから区別できるという条件を基にしている。こ の応用においては、逸脱検査器は次式の関係を実際に検査する。
M−D≦V≦M + o       (1)ことに、Mは中間値/2 (Ln  +Un )、Dは、検査される特定のデータ値に対して耐障害器RAM162 から検索された所定の逸脱限度、 ■は検査されるデータ値 である。M−D≦Vの解はV;5M+Dの解にほぼ等しいから、後者についてだ け詳しく説明することにする。2つの解の差は当業者にとっては簡単に対処でき る範囲である。
このプロセスは利用できる4つの入力Ln 、 Un。
D、Vを加え、下記の式を用いて最上位ビット位置におけるあぶれを調べる。
M+D−V=”/2(L+U)+D−V≦o   (2)このプロセスは、平均 Mのビット値を利用できないために、3ビツトではなくて4ビツトを加えるとい う事実により複雑にされる。4ビツトの付加においては、4ビツトの全てが1で 、第2の以前のビットに二重けた上げを起させる可能性が存在する。これの解は 次の通シである。
a)・・・110xxのような数列はあふれることができない。たとえば、最悪 の場合(X=Y=1)には2つの二重けた上げでも結果・・・111000   を与える。したがって、おふれが既に生じなかったとすると、第2の以前のビッ ト位置中の(0)が、後のビットに何が起きても、最上位ビット位置にあぶれが 起らないことを無条件で示す。
b)6ふれや、上の(a)における条件がいずれも起らなければ、第2の以前の ビットの前の数列は常に111・・・111 である。したがって、第2の以前 のビットを通るけた上げは常におふれをひき起す。
第2の以前のビットBからのけた上げがそれに付加されるから、そのビットの値 の検査に成功することによシプロセスが続けられる。第2の以前のビットをこえ てけた上げが起きたとすると、おふれが生じてV5M+Dでおる。しかし、以前 のあふれまたは現在のらふれなしに、第2の以前のピッ)BがOであるとすると 、v>M十〇である。最後に、上記のいずれの条件も起ることなしに全てのビッ トがノくスするものとすると、和M+D−Vは0よシ小さく、したがってV>M +Dである。
次に、第32図に示されている流れ図を参照する。
ブロック352に示すように、ビット数n=0、初めの和ピッ)S’ =1、お よび第2の先行ビットの中間和ビットB’l=Oとセットすることにより回路は 初期化される。それから、プロセスは、ブロック354に示すように、2vとl )’+L+Uを加える。ココに、2vは2vの2の補数、D”は2D +1であ る。2D+1は耐障害RAM 162 に実際に格納される逸脱値であり、Un とLnはそれぞれ、上側中間値ソータ238 と下側中間値ソータ240から受 けた上側中間値および下側中間値である。ブロック354に示すように、この加 算過程の結果は、先行するデータ値ビットの処理中に得た和値と、けた上げCと 、現在のデータビット値の処理中に得た二重けた上げビットCIとである。
次に、ブロック356 に示すように、先行するデータ値ビットの処理中−発生 された第1の以前の和ビットS−0に現在のけた上げピッ)Cを加えて、第2の 以前の和ビツト中間値B#−2を生ずる。その値は次のデータ値ビットの処理に おいて用いられる。
この加算によシ、現在のビットと第1の以前のビットの処理から生ずる付加けた 上げを示す第3のけた上げビットC“も生ずる。ブロック356から、けた上げ ビットC#は、処理されている現在のデータ値の二重けた上げビットC′ と中 間値B−2へ加えられる。和ビットとけた上げビットは、cc’ c’ )十B −2と、第2の以前のビットのためのけた上げビットAと、全てのけた上げに対 する修正の後の第2の以前のビットの最後のビット値でちるビット値Bとの加算 から生ずる。次に、判定ブロック360に示されているように、プロセスは、け た上げピッ)Aが1に等しいかどうかを質問し、もしA=1であるならば前記の ようにV≦M+Dであって、ブロック362 に示すように「パス」フラッグが セットされる。しかし、A=0であれば、プロセスはB=Oであるかどうかを質 問する、判定ブロック364゜第2の以前のピッ)Bが零に等しいとすると、最 上位ビット位置にはあふれは存在しない。したがって、V>M+Dで、「障害」 フラッグがセットされて、ブロック366に示すように、データ値が逸脱試験を 失敗したことを示す。Bが零に等しくないとすると、ブロック368 に示すよ うに、プロセスは進んでデータ値の次のビットを検査する。最後に、全てのデー タ値ビットを検査し、「バス」フラッグも「障害」フラッグもセットされない後 で、プロセスは示されているように「障害」フラッグを自動的にセットしてプロ セスを終らせる。
次に第33図を参照して、加算器372は第1の3ビツト” l L 71 、  D#を加えて中間和ビットS″と第1のけた上げピッ)CIを生ずる。中間和 ビットS′は、(3)式に示すように、アンドゲート374と排他的オアゲート 316によシ受けられる。アントゲ−) 374 は第2のけた上げピッ)C2 を出力する。その第2のけた上はピッ)Czはアンドゲート378の1つの入力 端子と排他的オアゲート3800Å力端子へ加えられる。アンドゲート378は それの別の入力端子に加算器372 からけた上げピッ)C1を受ける。排他的 オアゲート380はそれの別の入力端子に加算器372 からけた上げピッ)C Iも受ける。
排他的オアゲート376 の出力は和ビットSである。その和ビットは、次のデ ータ値ビットの処理まで2ビツトシフトレジスタ382に一時に格納される。排 他的オアゲート380の出力は1つのけた上げビットCであって、アンドゲート 384の入力端子と排他的オアゲート386 の入力端子に受けられる。アンド ゲート38とと排他的オアゲート386は別の入力端子にシフトレジスタ382  から和ビットS−1を受ける。その和ピットS−1は以前のデータ値ビットの 処理中に発生される和ビットSである。
排他的オアゲート386の出力は和ビットS−1と、前置ビット値Bt−1であ る現在のデータビットの処理中に発生されるけた上げビットとの和である。前置 ビットB#−8は第2のシフトレジスタ392に格納される。前置値B′−0は 、けた上げビットを修正する前の第2の先行するビット値の中間値である。アン ドゲート384 の出力はけた上げビットC1であって、排他的オアゲート39 0への入力端子に受けられる。その排他的オアゲート390 は別の入力端子に アンドゲート37Bから二重けた上げ出力C′も受ける。
排他的オアゲート390の出力はアンドゲート388への入力端子と排他的オア ゲート394への入力端子に受けられる。シフトレジスタ392の出力はアンド ゲート388と排他的オアゲート394との別の入力端子に受けられる。アンド ゲート388 の出力は第2の先行ビットのためのけた上げビット信号「A」で あって、S−Rフリップフロップ398のセット入力端子に加えられる。S−R フリップフロップ398のQ出力はD形フリップ70ツブ400のD入力端子へ 加えられる。D形フリップ70ツブ400の出力は逸脱検査のためのパス−フェ イルフラッグである。第32図の判定ブロック360に示されているようにA= 1であれば、S−Rフリップ70ツブ398 とD形りリップ70ツブ400と のQ出力は1であって、データ値(V)が中間値(M)と逸脱(D)の和より小 さいことを意味する。5−R7リップフロップ398 のQ出力とD形フリップ フロップ400 のQ出力がOであるとすると、データ値は逸脱検査をパスしな い。
排他的オアゲート394の出力は、1つのけた上げおよび二重けた上げのための 修正後の第2の先行するデータ値の最後のビット値Bである。その最後のビット 値Bはインバータ402 によシ反転される。
そのインバータの出力端子は第2の5−R7リップ70ツブ404のセット入力 端子へ接続される。S−Rフリップ70ツブ404 のQ出力がアンドゲート4 06の1つの入力端子へ加えられる。そのアンドゲート406の出力端子はオア ゲート408を介してD形フリップ70ツブ400のクロック入力端子へ接続さ れる。アンドゲート406の別の入力端子へクロックパルス(CLK)が加えら れる。S−Rフリップフロップ404 のQ出力によシフアゲート406が開か れると、クロックパルスはD形フリップフロップ400 の入力端子へ加えられ る。
ビットカウンタ410 は処理されたビットの数をカウントし、全てのビットが 処理された後であふれパルスを生ずる。あふれパルスはアンドゲート412とオ アゲート408を介してD形フリツプフセツプ400のクロック入力端子へ加え られる。アントゲ−) 412への別の入力がS−Rフリップフロップ398  のQ出力端子から受けられる。5−R7リップフロップ398 が1であるけた 上げ信号Aによってそれのセット状態に置かれた時に、アンドゲート412は閉 じられる。
動作時には、加算器372 は中間和ビットS′ と、Un、LnおよびD′の 加算から生じたけた上げビットCIとを生ずる。アンドゲート374はけた上げ 加えることから生じたもの、である。けた上げビットC2はアンドゲート378 において加算器372からのけた上げビットC1に組合わされて、CIと02が 1の時に二重けた上げビットC′を生ずる。排他的オアゲート380の出力は加 算器372またはアンドゲート3T4 からの1つのけた上げピッ)Cを示す。
和信号81 は排他的オアゲート376からの和S出力であって、次の以後のデ ータビットの処理中にシフトレジスタ382 からの出力である。それらは第3 2図のブロック354に示されている動作である。ブロック356の動作はアン ドゲート384と、排他的オアゲート386  と、シフトレジスタ392トに よシ行われる。排他的オアゲート386は、シフアゲート380からのけた上げ ピッ)Cとからの中間和値ビットB′−1である。和ピッ) B’ 2は、第2 の以後のデータ値ビットの処理中のシフトレジスタ392からの信号B′−1出 力である。けた上げビットC#はアンドゲート384の出力でちって、先行する データ値ビットの処理中に発生された和ビットsl が1である時はけた上げビ ットCの継続したものである。次のデータ値ビットの処理中に、排他的オアゲー ト390  とアンドゲート388は値A を生じ、排他的オアゲート394  は、ブロック358に示すように、ビット値Bを生ずる。Aの値は、第2の先行 する和ビットの中間値By2 がOの時に0であシ、またはC′とC#が0の時 にOであって、現在のデータ値ビットの処理からけた上げビットC1またはC2 が生じないことを示す。C′またはC1が1で、第2の先行する和ピッ)B’2 の中間値が1の時にへの値は1である。Be2が1であって CIとC“が0の 時、またはB′−2が0で、C′とC1が1の時にBの値は1である。
Aが1であるとS−Rクリップフロップ398がセットされて、それのQ出力は 1である。そのQ出力がD形フリップフロップ400のD入力端子へ加えられる と、そのフリップフロップのQ出力が1にさせられる。ブロック362 に示す ように、D形フリップフロップ400のQ出力はバスフラッグである。
S−Rフリップ70ツブ398 のQ出力がアンドゲート412を閉じて、最後 のビットの処理の後は、ビットカウンタ410からのあふれビットがD形フリッ プフロップ400をトグルすることを阻止する。
S−Rフリップフロップ398のQ出力によシアンドゲート412が閉じられな いとすると、 ビットカウンタ410からのあふれビットがD形フリップフロッ プ400をトグルすることを阻止する。S−Rフリップフロップ398のQ出力 によりアンドゲート412が閉じられないとすると、ビットカウンタ410 か らのあふれビットがD形7リツプフロツプ400をトグルしてそれのQ出力を1 から0へ変える。ブロック366 に示すように、D形フリップフロップ400 のOであるQ出力はフェイルフラッグである。
判定ブロック3640機能はインバータ402と、5−R7リップフロップ40 4と、アンドゲート4o6とによシ行われる。BがOであるとすると、インバー タ462はS−Rフリップフロップ404をセット状態に置いて、それのQ出力 を1にする。5−R7リップフロップ404からのQ出力端子からの1がアント ゲ−)406fii!!いてクロック(CLK)パルスを通させる。そのクロッ クパルスはオアゲート408を介してD形フリップフロップ400をトグルする 。
そうすると、S−Rフリップ70ツブ398  のQ出力がない時は1であるD 形フリップフロップ400のQ出力は低い信号すなわちO信号になる。D形フリ ップフロップ400の低いすなわち0のQ出力は、前記のように、ブロック36 6 に示されているフェイルフラッグである。バスフラッグまたはフェイルフラ ッグは逸脱誤、9 (DERR)として票決器財障害器インターフェイス248  を介して耐障害器36ヘスケジユーラーは正常モードと再構成モードの2つの 動作モードを有する。正常モードにおいては、スケジューラ−40は、装置内の 、それ自身を含む各動作ノードに対するアプリケーションタスクをスケジュール し、それらのタスクの実行をモニタする。
1つまたは複数のノードを動作セットから除外し、または動作セットに再加入さ せることを耐障害器36が決定した時に再構成モードに常に入る。各ノードによ シ実行するためにどのタスクが適当であるかを定める起動状態を介して2つのモ ードは相互作用する。再構成モードは起動状態を修正し、正常モードはタスクを スケジュールするために起動状態を利用する。
正常モード動作中は、スケジューラ−40はダイナミックで、優先順位を基にし た、非先制的なタスクスケジューリングプロセスを実現する。タスクの間の境界 においては、同時プログラミングのプラクテイスとタスク間依存性の解消が支持 される。任意に与えられた装置状態(構成)に対してはノードに対するタスクの 割当ては静的であるが、タスクの順序づけと依存性の解消は動的に行を る。各 ノードのスケジューラ−40は装置内のアクティブなあらゆるノードに対するス ケジューリングプロセスを模する。障害検出機構によシ、各ノードは任意のノー ドによシ実行されるタスクのシーケンシングすなわちタイミングにおける誤った 挙動を認識できるようにされる。
再構成中にタスクを動作しているノードの間に再び割当てることができる。装置 の全体の性能の変化に適合するために、アクティブタスクセットにタスクを付加 でき、またはそのタスクセットからタスクを除外できる。
動作制御器12のスタートまたはリセット中にスケジューラ−40は、どのノー ドも動作していないという仮定で再構成モードに入る。耐障害器36が「動作し ているセット」を認識すると、その情報は新しい装置状態ベクトルとしてスケジ ューラ−40へ送られる。それから、スケジューラ−は受けた新しい装置状態ベ クトルに従ってタスクを再構成する。
この方法を用いることによシスヶジューラ−40の動作は自己ブートストラップ する。
スケジューラ−40のブロック図が第34図に示されている。タスク選択器モジ ュール414が情報を、耐障害器36から耐障害器インターフェイス416 を 介して、タスクコミュニケータ44がらタスクコミュニケータインターフェイス 420 を介して受ける。タスク選択器モジュール414はメモリインターフェ イス426 を介してスケジューラ−RAM422およびスケジューラ−ROM 424とも通信する。
再構成モジュール428が耐障害器36からの新しい装置状態ベクトルの受信に 応答して、新しい動作ノードセットによシ選択および実行すべきタスクを再割当 てする。再構成モジュール428 は、スヶジユーラーROM424  に格納 されている所定の情報を用いて、スケジューラ−RAM422 に格納されてい るタスクの起動状態を変える。
スケジューラ−RAM422  のマツプが第35図に示されている。古いTI Dのエントリイが装置内の各ノードのためのエントリイを含み、そのノードによ シ以前に開始させられたTID を格納する。スワップ表エントリイが各タスク (TID)のためのエントリイを含み、その特定のタスクの直前に起動していた タスクの総数である前に起動していたタスクのカウントを格納する。特定のノー ドにおけるタスクのアクティブ状態を交換または変更に用いられる2けの数のア トミック期間が経過せねばならないかとに対応する周期性を再構成について説明 する時に説明する。
割当て表が装置内の各タスク−ノード対に対する割当てカウントを格納する。こ の割当てカウントは、ノード0間でのアクティブタスクの分布を決定するために 、再構成プロセスにおいて用いられる。
選択列4i、SOは次、以前および検査の3ページを有スる。各ページは、各ノ ードによシ現在実行される用意ができている蓼つの最高優先順位のタスクに対応 する、そのノードのための3つのエントリイを含む。「使用ずみ」はエントリイ 内のタスクの現在の反復がそのノードにより開始させられるかどうかを示すプー ル値で4fi、ITERはエントリイ内のそのタスクの反復数、TIDはそのタ スクのタスク識別符号である。次ページは、各ノードに対して次に実行すべきタ スクが選択されるエントリイであシ、以前ページは先行するサブアトミック期間 中に選択されたタスクを表で示し、検査ページはそのノードに対する第2の先行 するサブアトミック期間中に選選択されたタスクが次ページに格納される。
完成状態表は、各タスクに対して、完成されたタスクのコピーの数に対応する完 成カウントと、受けたタスク完了/開始メツセージの数に対応する数を格納する 分岐条件カウントと、各種のノードの間でそのタスクの割当てを含む割当てエン トリイとを含む。前記メツセージにおいて分岐条件は1の値を有する。
優先走査衣は、タスクを実行できる前に終了すべきである先行するタスクの数で ある先行タスクのカウントと、そのタスクの反復数と、それの割当てとを各タス クについて格納する。タスク活動表エントリイは、先行するタスクのカウントと 、タスクの周期性と、それの割当てとを各タスクについて格納する。
スケジューラ−ROM424  のマツプが第36図に示されている。第1の工 ントリイは、終了した各タスクの後に続くタスクを示す後継表である。この表は 、後で説明するように、後継オフセットのアドレスによシアクセスされる。2つ の可能な分岐条件のおのおのに1つずつの合計2つの後継表がある。次の4つの エントリイは各タスクに対する選択ベクトルであって、そのタスクの実行のため に選択されるノードを識別する。関連ベクトルは2つのエントリイと関連ベクト ルを含む。第1のエントリイ包含/除外は、動作セットに含まれているノードに よレジスタを実行するのか、または動作セットから除外されているノードによレ ジスタを実行するのかを識別し、関連ベクトルはどのノードにタスクが関連する かを示す。最初のSw a 9表エン) IJイは最初の先行タスクカウントと 、周期性と、後で説明するようにリセツ)tたは再構成中にスケジューラ−RA M422のタスク活動リストにロードされる、各タスクのための最初のスワップ カウントとを各タスクごとに含む。
次の2つのエントリイは各タスクに対する最初の割当てカウンタであって、タス ク−ノードの各組合わせのための最初の割当てカウントまたはトグル点を示すも のである。それらの値は、リセットまたは電源投入後にスケジューラ−RAM4 22内の割当て表にロードされる。エントリイ最長実行時間表は各タスクに対す る最長実行時間の2の補数を格納し、タスクが開始された時に、そのノードのた めの実行°タイマニロードされる。エントリイ最短実行時間表が各タスクに対す る最短実行時間の2の補数を格納し、タスクが終ったことが知らされた時にその タスクの実行時間を検査するためにそれが用いられる。後継オフセットエントリ イは、後継タスクが格納される後継リスト内のスタートアドレスを各タスクに対 して含む。最後に、初期比表エントリイが装置で用いられる最大ノード識別符号 (NID)と最大タスク識別符号(TID)を格納する。それらの符号は特定の 動作が完了した時を識別するために用いられる。
第37図はタスク選択器モジュール414の詳細を示す。タスク完了/開始メツ セージのNID フィールドおよびTID フィールドが耐障害器インターフェ イス416からタスクコミュニケータインターフェイス420へ直接転送され、 かつオンボードRAM430 に一時的に格納される。完了/開始取扱い器43 2が、タスク完了/開始メツセージ内で識別された各タスクのTID とNID を、各サブアトミック期間の終シにソフト誤シウインドウ(SEW)開始された TID レジスタ434へ直接転送する。
これは、障害のない全ての動作制御器がそれらの動作制御器のタ、スク相互作用 一貫性メッセージまたは装置状態メツセージを送9、先行するサブアトミック期 間からタスク完了/開始メツセージを受けるべきでおった期間である。各ノード に対する開始されたTIDレジスタ434 は深さが3の列であって、その列に おいては新しいNIDとTID が列の後尾に付加され、先頭から除去される。
タスク選択器モジュール414はTIC取扱い器436 も有する。それはタス ク完了ベクトルのビザンチン票決値と、タスク相互作用一貫性(TIC)メツセ ージの分岐条件ビットとに応答する。同期器46内のビザンテンベクトルから受 けたこのデータは、選択列450 および完了状態リスト438と、期間カウン タ442により発生された各種の期間信号に応答してタスク活動リスト444  からのアクティブタスクを優先走査リスト446 と完了状態リスト438へ転 送するウェイクアップシーケンサ440と、選択列450に置かれる、優先走査 リスト446内のタスクを選択し、それを次のタスクレジスタ454の中に置く 優先走査器448  と、装置内の個々のノードによシ実行される各タスクの実 行時間をモニタする実行タイマ45Gと、選択列450内の最高優先度のタスク を選択して、そのタスクを次のタスクレジスタ454 の中に置く次のタスク選 択器452と、各ノードにより実行されている現在のタスクを格納する古いTI D’Jスト458  とを更新するため°に用いられる。次のタスクレジスタ4 54に置かれた最高優先度のタスクをアプリケーションズプロセッサにより実行 するために、そのタスクは次のタスクレジスタ454 からタスクコミュニケー タ44へ転送される。タスク活動リスト444 と、優先走査リスト446と、 完了状態リスト438と、選択列450と、古いTIDリスト458  とは、 第35図について説明したようにスケジューラ−RAM422において具体化さ れる。
ウェイクアップシーケンサ440と、実行タイマ456と、TIC取扱い器43 6と、優先走査器44Bと、次のタスク選択器452 との動作を第38〜46 図に示されている流れ図について説明する。完了/開始取扱い器432の動作は 比較的簡単であって、各サブアトミック期間が始った時に、オンボードRAM4 30  の内容を開始TIDレジスタ434 へ転送することである。
第38図に示す流れ図はウェイクアップシーケンサの動作を述べたものである。
プロセスは、サブアトミック期間が最後のサブアトミック期間(LSAP)か、 第3のサブアトミック期間(5AP)であるかについて、質問ブロック460と  462に示すように、繰返えし質問することによシ開始される。それが最後の サブアトミック期間であるとすると、プロセスはタスク活動リスト444に対す るTIDポインタを、ブロック464で示すようにOに初期化する。それから、 プロセスは判定ブロック468において、タスクTIDの期間が期間カウンタ4 42によシ示されている期間よシ短いかどうか判定する。もし短いと、ブロック 470に示すように、優先走査リストが初期化される。優先走査リスト反復セッ トはそのタスクに対する現在の反復に等しい。先行タスクのカウントはタスク活 動リストに含まれている先行タスクカウントに等しくセットされ、割当てがタス ク活動リストに含まれている割当てに等しくセットされる。
それから、プロセスは判定ブロック472へ進み、処理したタスクが最後のタス クかどうか判定する。
もしそうであればウェイクアップシーケンサ440の動作は終る。そうでなけれ ば、プロセスはブロック480へ進み、タスク活動リスト444の次のタスクに ついての期間が期間カウンタの期間よシ短いかどうかを再び調べる。TID期間 が期間カウンタより長いと、タスクは優先走査リスト446には入れられず、ブ ロック480で示されるように、タスクポインタはタスク活動リスト中の次のタ スクについて調べられる。タスク活動リスト444中の最後のタスクは周期性が 0である零タスクである。したがって、期間カウンタ442の期間よシ短い期間 を有する他のタスクがない時は、最後のタスクは優先走査リスト446 に常に 入れられる。
期間カウンタ442によシ指示される期間が第3のサブアトミック期間でおると 、ウェイクアップシーケンサ440は、ブロック482に示すように、タスク活 動リストに対するポインタを第1のタスクに再び初期化する。それから、ウェイ クアップシーケンサは、判定ブロック484、タスクの周期性が期間カウンタ4 42により指示されている期間よシ短いかどうかを質問する。もし短いと、ウェ イクアップシーケンサは、ブロック486により示されているように、完了状態 リスト438を初期化する。
次に、ウェイクアップシーケンサは完了状態リスト内の反復を0にセットし、分 岐条件リストをOにセットし、タスク活動リストに示されている割当てに割当て をセットする。次に、ウェイクアップシーケンサ440 はそのタスクがタスク 活動リスト中の最後のタスクでおるかどうか質問する、判定ブロック488゜も しそうであれば、ウェイクアップシーケンサ440の動作は終らされる。また、 そうでなければ、タスク活動リスト内のTIDポインタはブロック490によシ 示されているように次のタスクに向けられる。期間カウンタ442によシ示され ている期間よレジスタの周期性が長いとすると、完了状態リスト438は更新さ れず、タスク活動リスト内のタスクは次にタスクされる。タスク活動リスト内の ポインタが最後のタスクに向けられると、そのタスクの周期性はOであるから、 そのタスクは完成開始リストに常に入れられる。
ウェイクアッププロセスが終ると、第39図の流れ図に示すように、実行タイマ 456が各ノードに対する実行タイマを検査する。前記したように、各ノードに より実行されるタスクの実行時間は最長実行時間の2の補数である。これが行わ れる理由は、現在の技術では時間を短くするよシ長くすることが容易だからであ る。実行タイマ456 は、ブロック492に示すようにタイマポインタを第1 のノードに初期化することによって動作を開始する。それから、ブロック494  によシ示されているように、実行タイマは各ノードによシ格納されている時間 を1だけ長くする。それから、実行タイマ456 は、判定ブロック496に示 すように、タスクの実行のために残っている時間について各タイマを検査する。
特定の任意のノードに対するタイマがOに等しいとすると、タイマはそのノード に対する誤シフラッグを真にセットする。次のこの情報は、後述する理由で、耐 障害器インターフェイス416へ送られる前に、TIC取扱い器436へ送られ る。現在の時間が0に等しくないとすると、判定ブロック500に示すように、 実行タイマ456は最後のノードを調べたかどうかを質問し、もしそうであれば 、それは実行タイマプロセスを出る。また、もしそうでなければ、ブロック50 2に示すように、それはノードポインタを次のノードへ増加して次のノードの現 在の時刻を調べる。
TIC取扱い器436 の動作を第40〜44図を参照して説明する。そのTI C取扱い器はタスク相互作用一貫性メツセージの票決値の到達に応答し、そのデ ータを基にして主なデータ構造を修正する。それは、タスクの停止された、また は永遠に延期されたコピーが残シの動作負荷を遅延させないように、時間誤差の 発生を確認された終了に等しいものとして取扱う。TIC取扱い器436は、確 認された終了または超過時間誤シが報告されるノードを選択する。
確認された終了が報告されたとすると、タイマが時間切れしたのと同じサブアト ミック期間中に終了が確認されたのであるから、TIC取扱い器はそのノードに 関連するタイマ誤差ビットをクリヤする。それからTIC取扱い器は、タスクを 完了したことを報じられたノードに対して遭遇した第1の未使用タスクのTID に対する選択列450の検査ページを探す。これは、ノードが開始せねばならな かったタスクのTIDである。このTIDがそのノードに対する開始されたTI Dレジスタ434に現在格納されているTIDに一致しないとすると、シーケン ス誤りが記録される。最後に、’TIC取扱い器はそれの副プロセスである選択 列更新、完了終止、実行タイマリセット、および優先走査更新の各々を呼出し、 選択されたノードに対するデータ構造を順次更新する。TIC取扱い器プロセス は各ノードに対して反復される。
第40図に示すように、TIC取扱い器は、判定ブロック504に示すように、 ビザンチンデータを利用できるかどうかを質問することにより動作を開始する。
もし利用できないと、それを利用できるようになるまでTIC取扱い器436は 待つ。利用できるならば、TIC取扱い器は、選択列450の検査ページに対す るポインダを第1のノード位置に初期化する、ブロック506゜次に、プロセス は、判定ブロック508 に示すように、ビザンチンデータで示すようにノード がタスクを完了したかどうかを質問する。それと並列に、そのノードによシタス フが完了されたことをとザンチンデータが示さないとすると、判定ブロック52 4に示すように、時間誤差が生じたかどうかをプロセスは調べる。ノードがタス クを完了せず、時間誤差がないことをビザンチンデータが示したとすると、ブロ ック526 に示すように、プロセスはノードポインタを次のノードへ増加する 。それから、ブロック528に示すように、最後のノードまたは最大のノードを 調べたかどうかをプロセスは調べる。それが最後の7−ドであるとすると、それ はプログラムを出る。最後のノードでなければ、プロセスは、次のノードがタス クを完了したか、または時間誤差が生じたかを次のノードについて調べる。
ノードがタスクを完了し、そのノードについての時間誤差が記録されたとすると 、ブロック510に示すように、TIC取扱い器は時間誤差を偽にセットする。
その理由は、時間誤差が生じたサブアトミック期間と同じ期間内でタスクが完了 されたからである。したがって時間誤差は無効であシ、打ち消される。ノードが タスクを完了したか、時間誤差が生じたとすると、ブロック512に示すように 、選択列の検査ページで見出されるそのノードについての第1の未使用エントリ イを使用するものとしてプロセスはマークする。それから、プロセスは、ブロッ ク514 に示すように、使用するものとしてマークしたばかシのエントリイの TIDを現在のTIDとして格納し、その同じエントリイの反復として現在の反 復を格納する。次に、プロセスは、第37図に示すように、開始されたTIDレ ジスタ434に格納されたそれの最後のタスク完了/開始メツセージ内のそのノ ードによシ報告されたマスクと現在のマスクが同じであるかどうかを判定する。
現在のタスクとそのノードに対する最後のタスク完了/開始メツセージにおいて 完了したと報じられたタスクとが同じでないとすると、ブロック436 に示す ように、TIC取扱い器436はシーケンス誤りフラッグを「真」にセットする 。次に、プロセスは、ブロック518に示すように、選択列(SQ)更新サブプ ロセスを呼出し、ブロック522に示すように、優先走査リスト(PSL) 更 新サブプロセスを待つ。優先走査リストの更新が終ると、ブロック526に示す ように、プロセスはノードポインタを次のノードへ向け、判定ブロック528  に示すように、最後のノードを処理したかどうかを調べる。
TIC取扱い器のためのサブプロセス選択料更新は、TIC取扱い器によシ選択 されたノードに対する選択列450の次のページと前のページを探す。
エントリイが現在のタスクと現在の反復を含んでいることが判明すると、そのエ ントリイは「使用ずみ」とマークされる。現在のタスクよシ高い優先度を持つタ スクが検査ページの発生と前のページまたは次のページの発生との間で利用でき るようになるから、それらのエントリイは見出せたシ、見出せなかったシする。
検査ページェントリイがりフレッシュされる前はそのエントリイは再びはアクセ スされないから、検査ページェントリイをマークする必要はない。
ブロック530 に示すように、前のページに対するポインタを0エントリイに 初期化することによシ、選択列更新サブプロセスは始まる。それから、ブロック 532に、示すように、プロセスは第1、のエントリイに対するエントリイを探 し、判定ブロック534に示すように、現在のTIDと反復がエントリイのTI D と反復に等しいかどうか調べる。それらが同じであると、「使用された」工 ントリイに「真」とマークされる、ブロック536゜もし同じでないとすると、 判定ブロック538 に示すように、前のページの3つのエントリイの全てをプ ロセスが調べたかどうかをプロセスは調べる。選択列450の前のページの全て のエントリイを調べなかったとすると、プロセスは、前のページの3つのエント リイが全て調べるまで、エントリイを第2のエントリイに向け、等々というよう に動作する。前のページのエントリイの1つにTIDを見つけるか、前のページ の検査を完了し、しかもエントリイを見つけなかった後で、プログラムは選択列 450の次のページへ進み、ブロック540 に示すように、ポインタをOエン トリイに再びセットする。ブロック542に示すように、それはエントリイを索 引し、それから、判定ブロック542 に示すように、現在のTIDと反復がエ ントリイのTIDおよび反復に等しいかどうか判定する。もし同じであれば、ブ ロック546 に示すように、それは「使用ずみ」エントリイを「真」とマーク する。同じでなければ、判定ブロック548に示すように、3つのエントリイを 全て検査したかどうか質問する。もししなかったとすると、ズントリイ中に現在 のTIDと反復を見つけるか、3つのエントリイを全て調べるまでプロセスはボ イ/りを次のエントリイへ移し、検査を続行する。それから、ブロック550に 示すように、プロセスは完了した終了(CT )  サブプロセスを呼出す。
TIC取扱い器サブプロセス完了/終了は、完了状態リスト内のタスクの各コピ ーの完了を記録する。
最後のコピーが完了する(または時間切れする)と、タスクは「終了させられる 」。終了されたタスクに関連する後継リストエンドリイと大多数分岐条件が、第 36図に示すように、後継オフセットリスト内のペースアドレスを介してアクセ スされる。終了したタスクの各後継タスクに対する先行タスクカウントが次に減 少させられる。種々のコピーによシ発生された分岐条件が結合される結果になる と、分岐条件0がデフオールドによシ選択される。
TIC取扱い器436は、第35図に示すように、スケジューラ−RAM422 の古いTID部分内に表にされているTIDが有効な古いTIDであるか否かを 示す古い有効ビットを各ノードについて保持する。古い有効の全てのビットは装 置の再構成中に偽にセットされて、各ノードによシ次に実行するタスクが最初の タスクであって、処理する以前のタスクはないことを指示する。古い有効は、ノ ードの第1のタスクの確認された開始の後、およびノードの第2のタスクの確認 された開始の前に真にセットされる。
古い有効が偽であれば、開始されたタスクは、再構成に続いてそのノードに対し て実行される第1のタスクである。したがって、処理するための完了タスクはな く、完了/終了サブプロセスは実行する必要はない。同様に、完了タスクが零タ スクであれば、そのタスクを終らせる必要はない。第41図に示す流れ図におい ては、タスクを最大タスクと比較する点は、零タスクの終了を潜在的に知らせる ことなしに比較できる最新の点であり、これにより完了状態リストにおける最大 タスクエントリイの内容が無関係にされる。
次に第42図を参照すると、ブロック552で示すように、そのノードに対する 旧有効フラグをチェックすることによシ完了・終結サブプロセスが始まる。
先に示したとおシ、旧有効フラグが真でなければ、プロセスは後に説明する次の サブプロセス、実行タイマー・リセットに進む。しかし、旧有効フラグが真であ れば、プロセスは、プロセスsstテ示tように、完了したタスクのTIDが完 了状態リスト438 にアクセスし、そのTID−NID割当てに対して割当を 設定しながら旧TIDに格納されているTIDを用いてタスクの完了を記録する ことになる。
次にプロセスは、判断ブロック556 に示すように、分岐条件が1に等しいか 質問する。1に等しければ、ブロック558 で示すように、完了状態リスト4 38の分岐条件のエントリを歩進させる。しかし、分岐条件がOであれば、プロ セスは、判断ブロック560で示すように、そのタスクのすべてのコピーが完了 しているかの質問に進む。これは完了状態リストの割当て区画のすべてのエント リが偽に設定されていることによシ示される。
タスクのすべてのコピーが完了していれば、サブプロセスは、ブロック562  で示すように、タスク・コミュニケータに終結タスクのアイデンティティを報告 する。タスクの終結をタスク・コミュニケータ44に報告してから、プロセスは 、ブロック564で示すように、最初の後継タスクのアドレスをスケジューラR OM424 に含まれているサクセッサ・オフセット・エントリから手に入れる 。次にプロセスは、判断ブロック566 に示すように、後継タスクが終結タス クの後継タスク拳リストの終りに対応する最大後継タスクに等しいか質問する。
それが後継タスク・リストの終シであれば、プログラムは、ブロック572 で 示すように、実行タイマー・リセット・サブプロセスを呼出す。後継タスクが終 結タスクに対する後継タスク・リストに載っている最大TIDでなければ、プロ セスは、ブロック568 で示すように、各後継タスクの前任タスクのカウント を1だけ減することにより完了状態テーブルの更新を続ケる。次にプロセスは、 ブロック570 で示すように、後継リストのアドレスを増加して後継リストに 載っている次のタスクの分析に進む。
TICハンドラ436の実行タイマー−リセット・サブプロセスは各ノードの実 行タイマーに最小時間誤差があるかチェックし、タイマーに新しく開始したタス クをロードしなおす。そのノードに対する旧有効フラグが偽であれば、完了タス クは存在せず、誤差は記録されない。実行タイマー・リセットはスケジューラR AM422の旧TIDエントリにアクセスする最後のプロセスである。それ故、 それは現在のTIDをコピーしたシ、旧有効フラグを真に設定するのに便利な場 所である。
第43図は実行タイマー・サブプロセスによシ実行されるプロセスを示す流れ図 である。プロセスはブロック574 に示すように、TID をその特定のノー ドに対する旧TIDに等しく設定することから始まる。次にプロセスは、判断ブ ロック576 で示すように、そのTIDに対する現在の実行時間を最小時間と 比較する。現在の実行時間が最小実行時間よシ大きければ、ブロック518で示 すように、旧有効フラグが真であるか質問する。旧有効フラグが真であれば、実 行タイマー・リセット・サブプロセスは、ブロック580 で示すように、その ノードに対する時間誤差フラグを「真」に設定する。現在の実行時間が最小時間 よシ大きくないか、または旧有効フラグが真でないか、または時間誤差が記録さ れていれば、プロセスは、ブロック582 で示すように、そのノードに対する 現在時間を、第36図に示すように、スケジューラROM424の最大実行時間 テーブルと名付けたエントリに含まれている現在のタスクの最大時間に等しく設 定することによシ実行タイマーをリセットする。次にプロセスは、ブロック58 4で示すように、スケジューラRAM422の旧TIDエントリを、そのノード に対する旧TIDを現在のTIDに等しく設定してから、ブロック586 で示 すように、そのノードに対する旧有効フラグを真に設定することによシ更新する 。プロセスは次に、ブロック58B で示すように、優先権走査リスト更新サブ プロセスを呼出ス。
TICハンドラ436の優先権走査リスト更新サブプロセスはそのノードに対す る優先権走査リストの現在のTID割当てをクリアすることによりそのノードに 関する現在のタスクの開始を記録する。このプロセスによシ現在のタスクがその 次の反復までそのノードによる再実行に対して不適格になる。その次の反復時に 、目覚ましシーケンサ440 が優先権走査リストのそのタスクに対するエント リを初期設定しなおす。更新を行う前に二つの条件を満足しなければならない。
1)開始したタスクはヌル・タスクはヌル・タスクであってはならない。ヌル・ タスクは必らず利用可能でなければならず、優先権走査リストから決して取シ除 くことができないからである。2)開始したタスクの反復数は優先権走査リスト 内の反復数と同じでなければならない。二つの反復数は、タスクが前の原子期間 の最後の3亜原子期間中実行した場合には、原子期間の最初の3亜原子期間以内 で相違することができる。
第44図は優先権走査リスト更新の実行時にTICハンドラ436 によシ実行 される手順の流れ図を示す。プロセスは、ブロック590 で示すように、エン トリが現行のものであるか質問することによシ始まる。エントリが現在のもので あれば、プロセスは、ブロック592 で示すように、現在のタスクがヌル・タ スク(最大TID)であるか質問するJ・現在のタスクがヌル・タスクでなけれ ば、ブロック594で示すように、そのノードがその特定のタスクを開始したこ とを記録することによシ優先権走査リストを更新する。効果的に、プロセスはそ の特定のノードに対する優先権走査リストの割当て二ントリ内ノフラグを偽に設 定する。エントリが現在のものでなければ、またはタスクがヌル・タスクでなけ れば、プロセスは、ブロック596で示すように、第40図に示すTICハンド ラ・プロセスに戻ル。
優先権スキャナ448 はアプリケーション作業ロードの進展に関して最近確認 したデータに基き次のサブ原子期間に対する候補タスクを選択する。優先権スキ ャナ448の動作はTICハンドラ436による優先権走査リストの更新に従う 。優先権スキャナ448 は先づ選択待ち行列450のページポインタを回転し 、次に優先権走査リストをTIDが増加する順序に走査することによシ各ノード に対する三つのタスクを選択する。優先権走査リストでは最高優先権のタスクは 低い方のTIC番号を備えておシ、最低優先権のタスクは高い方のTID番号を 備えている。選択されたタスクはそのそれぞれのノードに対する選択待ち行列の 次のページに書込まれる。
優先スキャナ448の動作は、ブロック598で示すように、選択待ち行列45 0 のポインタを回転することによシ始まる。次に優先権スキャナはノード−エ ントリ・ポインタのすべてをブロック600で示すように第1エントリに設定す る。優先権スキャナは、ブロック602に示すように、第1タスクに対するTI D リストの先頭から開始する。こうして優先権スキャナ408は、ブロック6 04 に示すように、そのタスクに対する前のカウントが0に等しく前任タスク のすべてが完了していることを示しているか質問する。前の条件がすべて満足さ れていれば、優先権スキャナ448 は、判断ブロック606で示すように、タ スクがその特定のノードに関して前に開始されているか調査する。タスクがその ノードに関して前に開始されていなければ、優先権スキャナは、ブロック608  で示すように、その特定のノードが既に三つのエントリを備えているか質問す る。三つのエントリを備えていなければ、ブロック610で示すように、そのノ ードが最後のノードであったか検査する。最後のノードでなければ、ブロック6 12で示すように、次のノードを指示して次のノードに対するエントリのチェッ クに進む。評価しているノードが最後のノードであれば、優先権スキャナ44“ 4、は、ブロック618 で示すように、各ノードが四つ以上のエントリを備え ているかのチェックに進む。
各ノードが四つ以上のエントリを備えていれば、優先権スキャナの動作は完了し て、そこを出る。しかし、すべてのノードが三つのエントリを備えていなければ 、優先権スキャナ448は、ブロック620で示すように、最後のタスクを処理 してしまったか質問する。最後のタスクを処理してしまっていれば、優先権スキ ャナは、ブロック622で示すように、残シのすべてのエントリを最大TIDで あるヌル・タスクで埋める。しかし、TIDが最大でないかまたはリストの最後 のタスクでなければ、プロセスはTID番号を増して反復する。
判断ブロック608 に戻って、特定のノードに対するエントリが3以下であれ ば、プロセス゛は、ブロック614 で示すように、TIDおよび反復を優先権 走査リストからそのノードに対する選択待ち行列450の次のページにコピーす る。次にブロック616で示すように、そのノードに対するエントリを増加し、 判断ブロック610  で示すように、そのノードが最後のノードであったか質 問する。最後のノードでなければ、プロセスは、ブロック612で示すように、 次のノードに進むか、または判断ブロック618 で示すように、すべてのノー ドのエントリが一杯になっているかチェックする。
次のタスク・セレクタ452 はそれ自身のノード(NID)に対する選択待ち 行列450の次のページの最初のエントリを調べる。そのタスクがそれ自身のノ ードによυ前に開始されていなければ、その次のタスク・レジスタ454 の中 のタスクを記録する。
このタスクはアプリケーション・プロセッサニょシ要求されるとタスク・コミュ ニケータ・インターフェース420 を通してタスク・コミュニケータ44に伝 えられる。タスクが前に開始されていれば、選択待ち行列450 の次のページ の次のエントリが同じ判断基準について調査される。プロセスは実行されていな いエントリが見つかるまで、または第3のエントリを調べ終るまで、継続する。
選択待ち行4J450 はタスクが開始されてから第3の亜原子期間まで更新さ れないので、次回タスク・セレクタはそれ自身のノードに関して開始されたタス クの局部記録を維持しなければならない。開始した前のタスクのTIDは深さ2 エントリのスタックに保持されてノードのタスク・コミュニケータ44によシ実 際に開始された前の二つのタスクを記録する。スケジューラ42はタスクが開始 されると必らずタスク・コミュニケータから即時通告を受取る。
次にスケジューラは現在選択されているタスクを前のTIDスタックに押し込み 、最も古いエントリをス′タックの最下部まで落す。次回タスク・セレクタ45 2 の動作はソフトエラー・ウィンドウの始まシによ、9 ) IJガされ、一 方送信機はタスク対話整合性またはシステム状態メツセージの伝達によシ占有さ れる。したがって、タスク・コミュニケータは、次回タスク・セレクタが選択さ れたタスクを修正している間に完了・開始メツセージ・タスクを伝達するかまた は選択されたタスクを開始することができない。次回タスク・セレクタ452  はそれ自身のノード識別(NID)コードにアクセスしているスケジューラ内の ただ一つのモジュールである。
次回タスク・セレクタ452の動作については第46図に示す流れ図を参照して 説明することにする。
次回タスク・セレクタの動作は、ブロック626で示したように、次のページに 対するエントリ・ポインタをそれ自身のNIDおよびエントリOに設定すること から始まる。次回タスク・セレクタは次に、ブロック62B で示すように、エ ントリ・ポインタを第1のタスクまで歩進させ、ブロック630 で示したよう に、選択されたタスクとしてそれ自身のノードに対して選択待ち行列450 の エントリに入れられているタスクを記録する。次回タスク・セレクタは次に、判 断ブロック632 で、これが次のページのそれ自身のエントリの第3のエント リであるか質問する。第3のエントリであれば、選択されたタスクを次回タスク ・レジスタ454 に格納する。しかし、第3のエントリでなければ、次回タス ク・セレクタは、判断ブロック636 で示すように、選択されたタスクおよび 反復が前に選択された第1または第2の選択されたタスクおよび反復と同じであ るか質問する。選択されたタスクおよび反復が前に選択された第1および第2の 選択されたタスクおよび反復と同じであれば、次回タスク・セレクタは、ブロッ ク628 で示すように、エントリの歩道および選択待ち行列内の次のタスクの 検査に進む。しかし、選択されたタスクおよび反復が前に選択されていなかった 場合には、次回タスク・セレクタは、ブロック634 で示すように、選択され たタスクを次回タスク・レジスタ454 に格納し、選択プロセスを完了する。
上の流れ図から、選択待ち行列450 の最初の二つのエン) IJがこのノー ドによシ前に実行されていれば、次のタスク・セレクタ452 はその前の選択 状態に関係表く第3のエントリを選択することがわかる。この特徴によシすぐ実 行できる状態にある他のタスクが存在しない場合にヌル・タスクの複数のエン)  IJを選択待ち行列に同時に置くことができる。
したがって、他のタスクが直ぐ実行できる状態にないとき、ノードは他のタスク を利用できるようになるまで亜原子期間ごとにヌル・タスクを開始する。
タスク・セレクターモジュールの動作はソフトエラー・ウィンドウ(sgw)の 終シと共に始まるが、このSEWの終りにタスク完了・開始メツセージは無欠陥 ノードから到着していないはずである。第1に、完了・開始ハンドラはオンボー ドRAM430に格納されているタスク完了・開始メツセージを、次の亜原子期 間に対するタスク完了・開始メツセージの可能な最も早い到着前に開始TIDレ ジスタ434に転送スる。サブモジュールにより実行されたすべての他のプロセ スは次回タスク・セレクタ452を例外として次のソフトエラー・ウィンドウが 始まる前に完了しなければならない。次回タスク・セレクタ452の動作はソフ トエラー・ウィンドウの始まりでトリガされ、送信機がそのタスク対話整合性ま たはシステム状態メツセージの送出を完了し、タスク完了・開始メツセージの送 出のためタスク・コミュニケータに利用できるようになる時までに完了しなけれ ばならない。目覚ましシーケンサの動作は完了・開始ハンドラ432 の動作の 終シによシトリガされる。目覚ましシーケンサ440 の動作が完了したら実行 タイマー456 がその実行タイマー・チェックを行う。TICハンドラ436 は次に選択待ち行列450 および完了状態リスト458 の更新、実行タイマ ーのリセット、および優先権走査リスト446の更新に進む。優先権走査リスト が更新されたら、優先権走査リスト446 から優先権が選択待ち行列450  に与えられる。最後に、次のタスク・セレクタ452は選択待ち行列450 か ら次のタスクを選択し、これを次のタスク・レジスタ454 に置く。
再構成モジュール428 の詳細を第47図に関連して説明することにする。λ ステム状態がノードの除外または再採用によシ修正されると、タスクの残シの動 作ノードへの割当てを再構成する必要がある。
Nノード・システムには2Nの可能な状態がある。
したがって、8ノード・システムには256の可能な状態がある。これら各状態 に対する別々の割当てリストを格納するには余分な量の記憶装置が必要である。
それ故、再構成は新しい状態を直接には取扱わない遷移基準アルゴリズムで行わ れる。それよシは、タスク・ロードを新旧状態間の変化に基いて再構成する。遷 移基準の方法は状態基準の方法より本来的に簡単である。というのはNノードの それぞれの除外または再採用を表わす可能な遷移が2Nしかないからである。
ノードに対して設定される活動的タスクはそのノードに関する実行について有効 な一組のタスクとして規定される。所定のタスクおよびノードについて、所定の タスクか所定のノードに関する実行について有効であるか否かを表わすのにプー ル値「作動−状態」を使用することができる。再構成の目的はシステム状態がノ ードの除外または再採用によシ修正されるとき各タスク・ノード対に対する作動 −状態を修正することである。作動−状態の値を正しく管理するには三つの独立 した動作が必要である。
1)個々のタスクをシステム内のすべてのノードに対して有効または無効として システム能力全体の変化に対処することができる。たとえば、動作ノードの全数 が成る所定値よシ下がると、タスクを活動的タスク・セットから完全に排除する か、または機能的に同等なもつと簡単なタスクで置き換えることができる。タス クの作動または作動解除の動作をスワツピングと言う。実行に対して有効となる ことができるタスクはスワップ・インされると言うが、無効トサれるタスクはス ワップ・アウトされると言う。
2)活動的タスクはシステムの動作ノードの間に割当てなおすことができる。た とえば、ノードが除外されると、そのノードで実行される各タスクの一つのコピ ーが失われることになる。各タスクの所要冗長度を維持するためには、影響を受 ける各タスクの一つのコピーを成る他のノードによシ実行しなければならない。
スケジューラはこれらすべてのタスクを一つのノードに割当てなおすことを必要 とせず、これらタスクを必要に応じて残シのノードの間に分配することができる 。割当てなおしの側面効果は、残りのノードを非常に良く利用する場合、よシ低 い優先度のタスクをスワップ・アウトするように要求することができるというこ とである。
3)タスクはその動作状態に基いて個々のノードに関する実行を禁ぜられること がある。たとえば、ノードが状態遷移によシ除外されるとき、アプリケーション ・タスクがそのノードに関する実行を禁止されるのが一般的に望ましい。しかし 、除外されたノードが診断タスクの包括的シーケンスを開始するのが望ましい。
システム内のすべてのタスクから成る組合せは二つの互いに排他的なサブセット 、すなわち包含タスク・サブセットおよび除外タスク・セット、に分けられる。
包含タスク・セットのメンバーは包含ノードによって実行されることができるだ けであり、除外タスク・セットは除外ノードによって実行されることができるだ けである。
以下の説明は状態遷移に応じてタスクを再構成するに必要な動作を規定している 。システム状態に対する複数の変化が必要な場合には、複数の再構成に際し一度 に1ノードずつ順次に行われ、除外が処理される前にすべての再採用が処理され る。
次に第47図を参照すると、再構成モジュールがタスク・スワツパ638、タス ク・リアロケータ640、およびタスク状態マツチャ642 を備えている。現 在および次回システム状態比較器644 は、第34図に示すように、システム 状態ベクトルを障害寛容器インターフェースから受取シ、そのシステム状態が次 のシステム状態と現在のシステム状態との間で変化しているノードだけを識別す るデルタ・システム状態ベクトルを発生する。デルタ・システム状態ベクトルは 現在の動作セットに再採用されているノードがあるか否かを示すフラグをも備え ている。タスク書スワツパ638 はタスクが活動的タスク・セットのスワップ ・インであるかスワップ・アウトであるかを示すプール・スワップ状態値を発生 する。
このプロセスは前に述べたようにスケジューラRAM422 に備えられている スワップ・テーブルを使用する。タスク・リロケータ640 はシステム内の各 タースフ・ノード対に対して一つのプール割当て状態値を発生する。タスク・リ ロケータ640 は、第35図に示すように、スケジューラRAM422に備え られている割当てテーブル648 を使用する。状態マツチャ642 は各タス ク・ノード対に対してプール整合状態値を発生する。タスク状態マツチャ642 は、第36図を参照して先に説明したように、スケジューラROM424  に 格納されているテーブルの一つである関連ベクトル・テーブル650を使用する 。スワップ状態値、割当て状態値、卦よび整合状態値はANDゲート652 に よシ記号的に示されているように共に処理され、第37図に示したタスク拳アク ティビティーリスト444 に格納されている。
タスク・スワツパ638 によシ行われる動作は各ノードと各タスクとの関連を 決定する大きなものである。アプリケーション設計者は各タスクの性能と関連す るノードのどんなサブセットをも規定することができる。各タスクのスワップ状 態は動作セットに含まれている関連ノードの数によってのみ決まる。
状態遷移が生ずると、新しいシステム状態が調べられ、動作セット内の関連ノー ドの数が各タスクのスワップ状態を変えることになるか否かを確認する。
変化が必要な関連ノードの数はそのタスクに対する「トグル値」と規定される。
システムの好適実施例においては、システム再構成の柔軟さを高めるのに二つの トグル値が設けられている。タスク・スワツパ638 の動作を第48図の流れ 図に関して説明する。
タスク・スワツパ638 の動作は、ブロック653で示すように、ポインタを スケジューラROM424にある関連ベクトルに設定すること、およびポインタ をスケジューラRAM422にちるスワップ・テーブルの最初のタスクに設定す ることから始まる。次にタスク・スワツパは、判断ブロック654 で示すよう に、タスクが動作セットから除外されたノードに関連しているか質問する。タス クが除外されたノードに関連していなければ、タスク・スワツパは、ブロック6 62 で示すように、次のタスクの評価に進む。しかし、タスクが除外されたノ ードに関連していれば、タスク・スワツパは、ブロック656に示すように、シ ステム状態内の関連ノードの数がトグル点に等しい(スワップ・カウント=0) か質問する。関連ノードの数がトグル点と等しければ、タスク・スワツパ638 は、ブロック658で示すように、スワップ状態を補足し、ブロック660 で 示すように、スワップ・テーブル646 のそのタスクに対するスワップ・カウ ントを減らす。しかし、スワップ・カウントがOに等しくなければ、タスク・ス ワツパ638 はそのタスクのスワップ状態を補足せず、スワップφテーブル6 46 に格納されているスワップ・カウントを単に減らすだけである。スワップ ・テーブル646 を減らしてから、タスク・スワツパハブロック662で示す ようにTIDポインタを次のタスクまで進め、判断ブロック664 で示すよう にこのタスクがシステム内の最後のタスクでおるか質問する。それが最後のタス クであれば、タスク・スワツパの動作は完了するが、そうでなければ、タスク・ スワツパはすべてのタスクが評価されてしまうまで上記のプロセスを反復する。
デルタ・システム状態ベクトルがノードがシステムに再採用されていることを示 しているときのタスク・スワツパ638 の動作を第49図の流れ図に示す。除 外ノードに対するタスク・スワツパの動作を参照して示したように、ノードが動 作セットに再採用されると、タスク・スワツパ638は、ブロック666で示す ように、先ずポインタをROM424の優先ベクトル・エントリに設定し、スワ ップ・テーブル646 を最初のタスク(zxo=i)に設定する。
スワップ・テーブル646 は第34図に示すようにスケジューラRAM422 の一部である。タスク―スワツハハ次に、判断ブロック668 で、タスクが動 作セットに再採用されたノードに関連しているか質問する。タスクが再採用ノー ドに関連していなければ、タスク・スワツパは、ブロック676 および判断ブ ロック678 に示すように、次のタスクの評価に進む。しかし、タスクが再採 用ノードに関連していレバ、タスク・スワツパはブロック670 で示すように スワン、ブーテーブル646 のスワップ・カウントを増し、判断ブロック67 2 で示すように、関連ノードの数がトグル点に等しいか質問する。関連ノード の数がトグル点に等しければ、タスク・スワツパ638 は、ブロック674に 示すように、そのタスクのスワップ状態を補足し、ブロック676で示すように 、次のタスクに進む。関連ノードの数がトグル点に等しくなければ(スワップ・ カラン)?O)、タスクのスワップ状態は補足されず、タスク・スワツパは、ブ ロック676 で示すように、次のタスクの評価に進む。タスク・スワツパは次 に、判断ブロック678 で示すように、そのタスクが評価すべき最後のタスク であったか質問する。最後のタスクが処理されていれば、タスク−スワツパ63 8 はその動作で終了するが、そうでなければ、プロセスは最後のタスクが処理 されてし壕うまで各タスクに対して反復される。
スワツピング・プロセスには次の性質がある。
1)すべてのタスクおよびトグル点は独立に処理される。
2)スワップ状態は、利用可能な関連ノードの数によって変シ、それらノードの アイデンテイによって変るものではない。
3)プロセスは可逆的であシ、径路に無関係である。タスクのスワップ状態はシ ステム状態にヨッてのみ変シ、その状態の前に存在した遷移の順序によって変る ものではない。
タスク・リアロケータ640 の動作はタスク・スワツパのプロセスに非常に似 ている。しかし、スワツピングとリアロケーションの間には二つの大きな相違が ある。
1)リアロケーションでは、必らずしもすべてのノードが特定の状態変化に全く 同様に応答することはない。たとえば1.所定のノードが除外されていれば、第 2のノードを除外したノードのタスクを行うのに要求することができるが、残シ のノードはどんな場合でも行動を起さない。それ故、各ノードを独立に処理する 必要がある。
2)活動的タスクを再割当てするためには、所定ノードと各タスクとの関連に注 目するだけでは不充分である。どの動作ノードが遷移に応じてタスクを行いまた は中断するかを決めるには一つの方法が必要である。これは各タスクを優先権の 所定の順序で各ノードに割当てることによシ行われる。
所定のタスク・ノード対に対する「好適セット」は所定のタスクの実行に対して 他よシも好適なノードの組合せと定義される。アプリケーション設計者は各タス ク・ノード対に対して好適な組合せであるシステム・ノードのサブセットを規定 することができる。各タスク拳ノード対の割当て状態は現在のシステム状態にあ る好適ノードの数によってのみ決まる。状態遷移が発生すると、新しいシステム 状態を調べて動作セット内の好適ノードの数が各タスクの割当て状態を変化させ ることになるか確認する。変化を必要とする好適ノードの数はそのタスクおよび ノードに対するトグル値と規定される。一般に、どんな数のトグル値をもタスク 対に対して規定することができる。ただし、システム再構成に必要な柔軟性を与 えるには各タスク・ノード対に対して必要なトグル値はたソ一つである。
再割当てプロセスは、第50図のブロック680で示すように、最初のタスクか ら始まる。タスク・リアロケータ640は、ブロック682で示すように、第1 のロード(NID =O)で始動する。タスク・リアロケータ640 は、判断 ブロック684で示すように、除外されたノード(i)が評価中のノード(ロ) よシそのタスクに対して好適なノードであるか質問する。除外されたノード(i )がそのタスクに対して評価中のノード(n)よシ好適なノードでなければ、タ スク・リアロケータは、ブロック692および判断ブロック694 で示すよう に、このノードが次のノードよシ好適なノードであるかの決定に進む。除外され たノードがそのタスクの実行に対して好適なノードであれば、タスク・リアロケ ータは、ブロック686 で示すように、その状態にある好適ノードの数がトグ ル点に等しい(割当てカラン)=O)か質問する。好適ノードの数がトグル点に 等しければ、ブロック688 で示すように、ノード(n)に対する割当て状態 が補足され、等しくなければ、ブロック690 で示すように、割当て状態が補 足されず、そのタスク識別−ド組合せに対する割当てカウントが減らされる。割 当てカウントを減らしてから、タスク・リアロケータは、ブロック692で示す ように、ポインタを次のノードに進め、判断ブロック694で示すように、ノー ドがシステム内の最後のノードであるか質問する。最後のノードでなければ、タ スク・リアロケータは、最後のノードが評価されるまで各ノードに対するプロセ スを反復し、次いでタスク・リアロケータは、ブロック696 で示すように、 次のタスクに向い、判断ブロック698で示すように、すべてのタスク・ノード 組合せが評価されてしまうまでこのプロセスを反復する。
タスク・リアロケータの動作はすべてのタスク、ノード、およびトグル点を独立 に処理する。割当て状態は利用可能な好適ノードの数によって決まシ、これらノ ードのアイデンテイによって決まるのではない。また、タスク・リアロケータの 動作は可逆的であって径路に無関係である。たとえば、デルタ・システム状態ベ クトルがノードが動作セットに再採用されていることを示していれば、タスク・ アロケータの動作はオスク・スワツパの動作と並行し、ブロック680で示すよ うに、割当てカウントを減らすのではなく増加させ、割当てカウントの増加は、 判断ブロック676で示す、その状態にある好適ノードの数がトグル点に等しい か否かを質問して確認する前に行われる。タスク・ノード対の割当て状態はシス テム状態によってのみ決まシ、そのタスクの前に存在した遷移の状態によって決 まるのではない。
タスク状態マツチャ642の動作について第51図を参照して説明することにす る。ノードが欠陥挙動のため動作セットから除外されると、アプリケーション・ タスクのそのノードに関する実行を禁止するのが望ましい。しかし、除外したノ ードに関する診断タスクの包括的セットを設けるのが望ましい。
上述のスワツピングおよび割当てのプロセスはこの機能を支援することができな い。それ故、タスク・セット全体を二つの互いに排他的なセット、すなわち包含 タスク会セットおよび除外タスク・セットに分割する。包含タスク・セットのタ スクは動作セットに含まれているノードに関してのみ活動することができる。同 様に、除外タスク会セットのタスクは動作セットから除外されたノードにおいて のみ活動することができる。
所定のタスクの包含・除外の状態が所定のノードの包含・除外の状態に適合、す れば、そのノードに関するその作動状態はスワツピングおよび割当てのプロセス によって決まる。逆に、タスクの状態がノードの状態に適合しなければ、そのタ スクはスワツピングおよび再割当てのプロセスの結果とは無関係にそのノードに 関する実行を禁止される。
今度は第51図を参照すると、タスク適合プロセスは、ブロック700 で示す ように、タスク・ポインタを第1のタスクに設定することにょシ始まる。
タスク状態マツチャ642は次に、ブロック702で示すように、ポインタを第 1ノード(NID=O)に設定する。タスク状態マツチャは次に、システム状態 ベクトルで示したように、タスクの包含・除外状態がノードの包含、除外状態と 適合しているか確認する。これはブロック704に示しであるが、このブロック ではrTID−NIDの適合はROM 424に含まれている関連ベクトル七シ ステム状態ベクトルのピッ) rnJとの排他的ORに等しい」と言っている。
タスク状態マツチャは次に、ブロック7−06および判断ブロック708 に示 すように、すべてのノードが所定のタスクに関して評価されてしまうまで次のノ ードを処理する。タスク状態マツチャ642は次に、ブロック710 で示すよ うに、タスク・ポインタを次のタスクに向け、判断ブロック712 で示すよう に、最後のタスクが評価されてしまうまですべてのタスクを反復して評価する。
すべてのタスク・ノード組合せが評価されてしまったら、タスク状態マツチャの 動作は完了する。
タスク拳コミュニケータ タスク・コミュニケータ44の詳細を第52図に示す。しかし、タスク・コミュ ニケータの動作を第53図から第70図までに示すサブシステム図および流れ図 を参照して詳細に説明することにする。
タスク拳コミュニケータ44は動作コントローラ12とその関連のアプリケーシ ョン・プロセッサ14との間のすべての通信を統合し、支援する。要求があると 、タスク・コミュニケータ44はアプリケーション争プロセッサ14に実行すべ き次のタスクのタスク識別コード(TID)を与え、所要人力データ値を供給す る。タスク・コミュニケータはアプリケーション・プロセッサ14から発生され たすべての出力データを受取シ、これを送信機30を経由してシステム内の他の すべてのノードに放送する。アプリケーション・プロセッサ14がエラー状態を 報告スルト、タスク・コミュニケータ44はエラー状態をボータ38を通して障 害寛容器36に報告する。
タスクがアプリケーション・プロセッサ14にょシ完了すると、タスク・コミュ ニケータはアプリケーション・プロセッサ14が発生した分岐条件(BC)の値 を受取り、これを次のタスク完了・開始メツセージで他のすべてのノードに放送 する。
タスク・コミュニケータ44はスケジューラ40、ボータ38、送信機30、お よびアプリケーション・プロセッサ14と直接通信する。タスク・コミュニケー タは、アプリケーション・プロセッサ14が使用する入力データの予想順序およ びアプリケーション・プロセッサが発生する出力データの予想順序をタスク別に 掲げたテーブルを備えている。スケジューラ40からのメツセージを使用して、 タスク・コミュニケータはすべてのノードによシ現在実行されている現在のタス クのトラックを確保し、この情報を使用して現在処理されているメツセージに関 係しているボータに情報を供給する。
第52図を参照すると、タスク・コミュニケータはボータ・インターフェース7 14、スケジューラ−インターフェース716、および送信機インターフェース 718を備えている。ボータ争インターフェース714はボータ38との接続を 行い、選出されたデータおよび異常ベクトルおよびメツセージ形式コード(MT )、および選出されたデータのデータ識別コード(DID)  を受取る。ボー タはまたそこからデータを受取ったノードのノード識別コード(NID)を送出 し、タスク・コミュニケータが受取ったデータのDIDを識別することを要求す る。ボータ番インターフェース714はまたボータ・インターフェース714  と通信しているエラー・レボータからエラー報告を受取る。
ボータ・インター7エース714 はボータ38からデータ、および関連するM TコードおよびDIDコードを受取る。格納データ・コントロール720はデー タをデータ記憶装置に伝え、ここにデータがMTコードおよびDID コード、 および文脈ビット記憶装置732 からアドレスとして取った文脈ビットの補数 を使用して格納される。データ記憶装置は障害寛容RAMを参照して前に説明し 且つ第16図に示したものと同じ方法で分割されている。文脈ビット記憶装置か ら取った文脈ビットはデータをデータ記憶装置42の適切な区画に格納するのに 使用される。DID要求ハンドラ724はボータeインターフェース714 を 通してボータ38からDID要求をノード識別コード(NID)  の形で受取 る。DID要求ハンドラ724 はポインタ・テーブル726にアクセスし、ボ ータ38にボータが現在処理しているはずである予想データのアイデンティティ (DID)を送シ返す。ボータが予想DIDと現在処理されているデータ値のD IDとの間の不一致を検出すると、エラー・フラグを設定する。
スケジューラ716 はスケジューラ40から終結したタスクの識別子、開始し たタスクの識別子、ノードの識別子、およびスケジューラによシ選択された次の タスクを受取る。タスク終結レコーダ730は文脈ビット記憶装置732の文脈 ビットをはじき出して終結したと報告されたタスクのDIDを出力する。タスク 終結レコーダ730 はまたNudatビット記憶装置722 にNUDATビ ットを設定し、ボータにそれを発生したタスクが終結してからのそのDIDに対 する最初の要求となる同じDIDを要求する次の時間を示す。タスク終結レコー ダ130 はまた終結したタスクの出力DIDに対するデータ記憶装置42に格 納されているすべての異常のORを取シこれらを異常エラー・レジスタ734  に格納する。
タスク開始レコーダ736 は、スケジューラ・インターフェース716  か らシステム内のノードによる新しいタスクの開始を示すメツセージを受取ると直 ちに、ポインタ・テーブル726 にアクセスし、ポインタΦテーブルに格納さ れているアドレスがそのノードが先行タスクを完了していることを示すヌルDI Dを指しているか確認する。ポインタ・テーブル726 に格納されているアド レスがヌルDIDを指していなければ、タスク開始レコーダはシーケンス・エラ ー・レジスタに格納されているノードに対してシーケンス・エラー・フラグを設 定することになる。このチェックを完了してから、タスク開始レコーダ736  は開始したタスクのタスク識別コード(TID)を備えているDIDリストア2 8 のポインタにアクセスし、ポインタ・テーブル726にあるそのタスクの最 初のDIDに対するア・ドレスを格納する。次回タスク・レコーダ740は次回 タスク・レジスタ742 の中のスケジューラから受取った次のタスクを格納す る。
AP入カバンドラ744 は次回タスク・レジスタ742 に格納されている次 のタスクの識別子をAP入力PIFO746に転送する。AP入力I・ンドラは 次にポインタ、およびタスク識別コード(TID)を備えているDIDリストア 28 にアクセスし、そのタスクの実行に必要なデータ記憶装置42に格納され ているデータのアドレスを得る。このデータをAP入力PIF0746 に格納 する。アプリケーション・プロセッサ14が次のタスクの実行を始める準備が整 っていると、タスク識別コードおよびタスクの実行に必要なデータについてAP 入力PIFO746にアクセスする。AP入力ノ−ンドラ744はまた送信機イ ンターフェース718 を通して送信機30に送られるタスク完了・開始メツセ ージを発生するが、このメツセージはシステム内の他のすべてのノードに伝達さ れる。アプリケーション・プロセッサ14が所定のタスクを実行すると、タスク の実行によシ得られるデータがAP出力PIF0748  に格納される。アプ リケーション出力ノーンドラ750はポインタおよびDIDリストア28にアク セスし、アプリケーション・プロセッサによシ発生された各データ値に対するメ ツセージ形式コード(MT)  およびデータ識別コード(DID)を得る。各 メツセージ形式コード、およびデータ識別コードはデータと共に送信機インター フェース718 に伝達され、送信機3゜によシステム状態他のナベてのノード に伝達される。アプリケーション・プロセッサ14が発生する最後の語はアプリ ケーションのプロセッサ報告エラー (API4g)ベクトルを含んでいるが、 このベクトルはAPREレジスタ752に格納される。アプリケーション・プロ セッサ14が発生する最後の語は分岐条件ビットをも含んでいるが、これはAP 入カバンドラ744 が発生する次のタスク完了・開始メツセージに含まれるこ とになっている。この分岐条件は送信機インターフェース718 がAP入カバ ンドラ744 からタスク完了・開始メツセージの残シを受取るまで送信機イン ターフェース118 に格納されている。
エラー・レボ−タフ54 は異常エラー・ベクトルを異常エラm−レジスタ73 4 から、シーケンス・エラー〇ベクトルをシーケンス・エラー・レジスタ73 B から、およびアプリケーション・プロセッサ報告エラー・ベクトルをAPR Eエラー・レジスタ752  から、受取ってこれらエラー・ベクトルをボータ ・インターフェース714 を介してボータ38に伝達する。調停器756はタ スク・;ミュニケータ内の各種モジュールの動作を調停する。
格納データ・コントロールの動作について第53図、および第54図に示す流れ 図に関連して説明することにする。第53図に一層明瞭に示しであるとおり、格 納データ・コントロールは選出データおよび異常をボータから受取る。この情報 と共に、メツセージ形式コード(MT)およびデータR別コード(DID)をも 受取る。第53図を参照すれば、格納データ・コントロールの動作は、判断ブロ ック760で示すように、ボータ・インター7エース714から受取った最初の バイトを評価することにょシ始まる。
ブロック760 に示すように、最初のバイトが全部0から成るものであると、 利用できるデータが存在せず、格納データ・コントロール720 はOでない最 初のバイトを受取るまで待つ。0でない最初のバイトを受取ったら、格納データ ・コントロールγ2゜は、判断ブロック762に示すように、データがシステム 状態ベクトルであるか質問する。データがシステム状態ベクトルでなければ、格 納データ・コントロール720は、ブロック764で示すように、MTおよびD IDのコードを使用して、文脈ビットの状態について文脈ビット記憶装置732 にアクセスする。格納データ・コントロール720は次に、ブロック766 に 示すように、文脈ビットを補足し、ブロック768 で、補足された文脈ビット およびOに等しく設定された異常ピッ)(DEV=0)を使用シテ、アドレスを 発生する。しかし、データがシステム状態ベクトルであれば、格納データ・コン トロール720は、ブロック770で示すように、TOCビットについてTOC ビット・スリップ70ツブ758にアクセスし、ブロック772で示すように、 TOCビットを文脈ビットとして使用し且つ異常ビットを0に設定してアドレス を発生する。TOCビットはシステム状態ベクトルが発生された原子期間を標示 する。TOCビット・7リツプフロツフ758は原子期間(AP) 信号の立上 シ縁に応じて新しい各原子期間の始まシを標示するように補足される。
いずれの場合でも、アドレスが発生してから、格納データ・コントロール720   ハ、ブロック774テ示すように、選出データをデータ記憶装置42の発生 されたアドレスに格納する。格納データ・コントロール720  は次に、ブロ ック776に示すように1異常ヒツトを1に等設定し、文脈ビットを0に等しく 設定するととによシ異常ベクトルに対するアトブロック778 で示すように、 異常ベクトルをデータ記憶装置42に格納する。
先に示したとおり、システム状態の変化は原子期間の境界でのみ発生する。それ 故、現在のシステム状態ベクトルを必要とするタスクの場合、このベクトルはデ ータ記憶装置42に格納され、TOCビットは現在のシステム状態が格納されて いる場所を滝川される各DID に対する文脈ビットを格納し、文脈ビットはデ ータ・異常RAMに格納されているどのデータが現在のデータであシ、マたその データのすべてのデータが受取られているのではないのでどのデータが未決定ま たは不完全であるかを識別する。
終結した各タスクの出力DID に対する文脈ビット記憶装置732 に入って いる文脈ビットは特定のタスクを終結するスケジューラからのメツセージに応じ てタスク終結レコーダ730  によシ補足される。
タスク終結レコーダは、今後説明するように終結したタスクから生ずるすべての DIDを補足する。
DID要求ハンドラ724 はボータ・インターフェース714 から、そのデ ータがボータ38により処理されておシ、ボータが現在処理されているデータの データ識別(DID)コードを要求していることを示している、ノードの識別子 すなわちNIDを受取シ、このDID コードに埋込まれているNUDATビッ トはボータ38にボータがそのデータを発生したタスクの終結以来この特定のD IDを要求した最初のときであるか否かを告げる。
第55図に示すとおり、DID 要求ハンドラはNIDを備えているポインタ・ テーブル726にアドレスしてポインタの一部であるDIDリス) 830およ び第52図に示すDIDリストア28 を指すポインタを得る。DID 要求ハ ンドラは次にDIDリス) 830にアドレスしてDID  リス) 830か らデータ識別コードDIDを得る。DID要求ハンドラは次にNudatビット 記憶装置722にアクセスし、DIDを持つnud a t ビットをボータ・ インターフェース714 を通してボータ38に伝達して戻す。
今度は第56図を参照すると、DID 要求ハンドラの動作は、ブロック780   で示すように、NIDを備えているポインタ・テーブルにアクセスしてDI Dリスト830 を指すポインタを得ることから始まる。DID要求ハンドラは 次に、ブロック782に示すように、DID リス) 830  にアクセスし てボークによシ現在処理されているデータのDIDを得る。DID要求ハンドラ 724 は次に、 ブロック784に示すように、Nudatビット記憶装置7 22にアクセスしてNUDAT  ビットを得る。DID要求ハンドラは次にブ ロック786で示すようにNUDAT ビットをDID に付加し、DID   およびNUDAT  ビットをボータ・インター7エース714に伝える。DI D 要求ハンドラは次に、ブロック788に示すように、NUDAT ビットを Oに設定し、判断ブロック790 に示すように、DID  がヌル・タスクで あったか質問する。ヌル・タスクでなかったならば、DID要求ハンドラは、ブ ロック792 で示すように、ポインタ番テーブルγ26 の中ノボインタをそ のノードに対する次のDIDまで進める。
しかし、DIDがヌルDIDであった場合には、DID要求ハンドラはポインタ ・テーブル726 のポインタを進めずにそのタスクに対するすべてのDIDが 既に伝達されていることを示すヌルDIDのままにしておく。
DID’lストに格納されているデータは第65図に示すように二つの8ビット −バイトを備えている。
最初のバイトは3つのフィールド、データ値マスク、データ形式、およびメツセ ージ形式、から構成されている。第2のバイトはデータの実際のデータ識別コー ド(DID)である。この情報はAP出カバンドラ750によシアプリケーショ ン・プロセッサ14が発生した伝達されたデータ値メツセージ内のデータに名札 を付けるのに使用される6DID i求ハンドラ724は、第66図に示すよう に、NUDATビットをデータ・リスト830 から得た最初のバイトの最上位 ビットの位置(MSB)に付加する。データ値マスクの最上位ビットはボータ3 8には不必要だからである。
タスク終結レコーダ730  の動作を第57図に示すブロック図および第58 図に示す流れ図に関連して説明する。最初に第57図に示す流れ図を参照して、 タスク終結、レコーダ730 が終結したタスクのタスク識別コード(TID)   をスケジューラ・インターフェース716 から受取る。タスク終結レコー ダ730 は次にポインタの一部であ′る出力ポインタ・リストア94 および 第52図に示すDIDリストア28にアクセスする。出力ポインタ・リストア9 4 およびDIDリスト830は図示しない共通のオフボードROM で実現さ れている。タスク終結レコーダ730は次に文脈ビット記憶装置732およびN udatビット記憶装置722にアクセスし、文脈ビットを補足し、終結タスク から生じたすべてのDIDに対するNUDATビットを設定する。タスク終結レ コーダ730は次に、DID リスト830から得られたアドレスを使用して、 終結タスクのDIDに関連するあらゆる異常ベクトルについてデータ記憶装置4 2に格納されている異常ベクトルにアクセスする。次いでこれらすべての異常ベ クトルと異常エラー・レジスタ734 の内容とのORを取る。
タスク終結レコーダ730の動作を第58図に示す流れ図を参照して説明するこ とにする。
タスク終結レコーダ730の動作は、ブロック796に示すように、終結すべき タスクが存在するか質問することにより始まる。示したように、状態語の2ビツ トが0であることによシ、終結すべきタスクが存在しなければ、タスク終結レコ ーダ730は何もしない。しかし、状態語のいずれかのピントが1であれば、タ スク終結レコーダは、判断ブロック798で示すように、状態語が10であるが 質問する。この状態語の最下位ビットはタスクがヌル・タスクであるか否かを示 すものであり、ヌル・タスクならばタスク終結レコーダ730はそれ以上処置を 行う必要はない。ヌル・タスクでなければ、タスク終結レコーダ730は出力ポ インタ・リストア94にアクセスして、ブロック800に示すように、DIDリ スト830を指すポインタを得る。タスク終結レコーダは次に、ブロック802 で示すように、状態語の最下位ビットを1に設定する。タスク終結レコーダ73 0は次にポインタでDIDリスト830 にアクセスし、ブロック804で示す ように、DIDが、そのタスクの最後のDID であることを示す、ヌルDID であるか質問する。ヌルDIDであれば、タスク終結レコーダ730は、ブロッ ク814 で示すように、状態語の最下位ビットを0に設定し、終結タスクの処 理を終る。しかし、DIDがヌルDIDでなければ、タスク終結レコーダは、ブ ロック806で示すように、そのDIDに対するnudatビットを1に設定し 、ブロック808で示すように、文脈ビット記憶装置に入っているそのDIDに 対する文脈ビットを補足する。タスク終結コントロール736は次に、ブロック 810で示すように、データ記憶装置42に格納されている異常のORを取り、 ORの値全異常エラー・レジスタ734 に格納して異常を発生し、これはエラ ー・レボ−タフ54にょシボータ・インターフェース714 に伝達される。ポ インタ・テーブル726のタスク終結ポインタをブロック812 で示すように 歩進させる。
タスク開始レコーダ736  の動作を第59図に示すブロック図および第60 図の流れ図を参照して説明することにする。最初に第59図のブロック図を参照 すると、タスク開始レコーダ736  は開始したタスクのTIDおよびNID t−受取るが、これらはスケジューラ40から受取るタスク開始メツセージに入 っている。タスク開始レコーダ736  は先ずポインターテーブル726 を チェックして現在のDIDがスルDIDであるか否か確認する。ヌルDIDでな ければ、シーケンス・エラーを識別されたノードに対してシーケンス・エラー・ レジスタ738 に記録する。このチェックは新しいタスクを先行タスクからの すべてのデータを受取ってしまうまでは開始すべきでないため行われる。タスク 開始レコーダ736 は次にTIDを用いて出力ポインタ・リストア94にアク セスすることによシボインタ・テーブル726を更新し、そのタスクの実行から 生ずる最初のDIDに対するDIDリスト830を指すポインタを得る。タスク 開始レコーダ736は次に出力ポインタ・リストア94 から得たポインタをポ インタ・テーブル726に格納する。
今度は第60図を参照すると、タスク開始レコーダ736の動作は、ブロック8 16で示すように、ポインターテーブル726 にアクセス、してDIDリスト 830 を指すポインタを得ることから始まる。
タスク開始レコーダは次に、ブロック818で示すように、ポインタを用いてD IDリスト830にアクセスし、そのノードに対して現在格納されているDID を得る。こうして、判断ブロック820 で示すように、DID がヌルDID であるか質問する。
スルDIDでなければ、タスク開始レコーダは、ブロック826 で示すように 、スケジューリング・エラーをシーケンス−エラー・レジスタ738 に記録す る。しかし、DIDタスクがヌルDIDであれば、タスク開始レコーダは、ブロ ック822 で示すように、開始したタスクのTIDを用いて出力ポインタ・リ ストア94  にアクセスし、DIDリスト830のそのタスクの最初のDID を指すポインタを得る。
次に、ブロック824 で示すように、最初のDIDをそのノードに対するポイ ンタ・テーブル726 に書込み、開始したタスクの記録を完了する。
AP入カバンドラ744の詳細を第61図に示すブロック図および第62図に示 す流れ図に関連して説明することにする。AP入カバンドラ744は次のタスク の実行のためアプリケーション・プロセッサ14が必要とする入力データ値を識 別し、呼出す。
アプリケーション・プロセッサ14の観点から、タスク・コミュニケータ44は 入力ファイルを備えた記憶装置のように動作する。数値は現在のTIDに対して 入力TID−DIDマツピング・リストにより指定される所定の順序で提供され る。前述のように、各入力データ・マツピング語のDIDはデータ値マスク(D VM)、データ形式(、DT)、メツセージ形式(MT)、およびデータ記憶装 置42の中のデータ値の開始アドレスである実際のデータ識別コード(DID)   から構成されている。アドレスは各アドレスがデータ記憶装置本2の二つの 異なる場所を指すので不確定である。特定のDIDに対する文脈ビットは現在の 入力データを持っている場所を規定する。
APP力データ・ハンドラ744 はデータ記憶装置42から現在の各データ値 を呼出し、これをAP入力PIF0746にロードする。アプリケーション・プ ロセッサ14からの要求があると直ちに、AP入力FIFO746からのデータ 値はアプリケーション争プロセッサに転送される。このサイクルはすべての入力 データ値が転送されてしまうまで反復される。今度は第61図を参照すると、A P入カバンドラ744 は入力ポインタ、リスト82B 、DIDリス)830 、KP入カポインタ拳テーブル832、およびAP入力PIF0746と対話す る。入力ポインタ・リスト828 およびDID リスト830は第52図に示 すポインタ・DID リストア28 の一部であシ、オフボードROM (図示 せず)内に実現されている。AP入カバンドラ744は次のタスクを次回タスク ・レジスタ742から受取シ、入力ポインタ・リスト828、DID リスト8 30、およびAP入入水ポインタテーブル832 を用いて、データ記憶装置4 2からタスクの実行に必要なデータを抜き出す。この情報はAP入力PIFO7 46に格納され、アプリケーション・プロセッサ14が利用できるようにされる 。AP入カッ・ンドラ744はまだ完了したタスクおよびそれ自身のアプリケー ション・プロセッサ14によシ開始されることになっている次のタスクを識別す るタスク完了・開始メツセージを発生する。AP入カバンドラ744はまたスケ ジューラ拳インターフェース716 を通してスケジューラ40に送られるタス ク解放メツセージを発生する。
TOCビット・7リツプ70ツブ758の内容はAP入カポインタΦテーブル8 32に格納されているアドレスに付加され、現在のシステム状態を識別する。文 脈ビット記憶装置732  の内容はアドレスに付加されてデータ記憶装置42 に格納されている現在のデータ値を識別する。入力ポインタ・リスト828 に 入っている各タスクのマツピング・リストはヌルDID  によシ終結したDI Dの隣接゛グループから構成されている。各マツピング・リストノ始メを指すポ インタは入力ポインタ・リスト828 に格納され、タスクのTIDによシアド レスされる。ヌルDID  は DIDリスト830の中のDID(D隣接グル ープの終シを識別するのに使用される。
第62図の流れ図を参照して、AP入カバンドラ744は最初に、判断ブロック 834で示すように、これがこの亜原子期間に実行すべき最初のタスクであるか 質問する。これは所定の亜原子期間内には一つのタスクしか開始することができ ないからである。
これが最初のタスクでなければ、AP入カバンドラ744 は次の亜原子期間が 始まるまで待つ。それが最初のタスクでおる場合には、AP入カバンドラ744 は、判断ブロック836 で示すように、次のタスクが最後のCSメツセージま たはリセット命令または再構成命令以後受取った新しいタスクであるか質問する 。タスクが新しいタスクでなければ、AP入カバンドラ744 は新しいタスク を受取るまで待つ。しかし、タスクが新しいタスクでオシ、シかも亜原子期間の 最初のタスクであれば、AP入カバンドラ744は、ブロック838で示すよう に、タスク完了・開始メツセージを送信機インターフェース718 に送る。こ のタスク完了・開始メツセージは続いて送信機30によシシステム内の他のすべ てのノードに伝達される。AP入カバンドラ744 は次に、判断ブロック84 0 で示すように、タスク完了・開始メツセージの伝達が開始されたか質問する 。
タスク完了・開始メツセージの伝達が、システム状態メツセージまたはタスク対 話整合性メツセージのよう々時間依存メツセージの伝達のため、遅れる場合には 、AP入カバンドラはタスク完了・開始メツセージの伝達が始まるまで待つ。タ スク完了・開始メツセージの伝達が始まってから、AP人力/・ンドラ744  は、ブロック842で示すように、タスク解放メツセージをスケジューラ・イン ター7エース716 を通してスケジューラ40に送シ、タスク争コミュニケー タが次の所定のタスクを開始タスクとして識別するタスク完了・開始メツセージ を伝達してしまったことを知らせる。AP人人力/Sトドラフ44次に、ブロッ ク844 で示すように、次回タスク・レジスタ742  からの次のタスクを 転送してこれを現在のタスクとしてアプリケーション入力ポインタ・テーブルに 格納する。AP大入力1ンドラは次に、ブロック846で示すように、現在のタ スクのTIDをAP大入力IF0746 に書き込み、アプリケーション・プロ セッサ14にタスクのアイデンティティを知らせる。次に現在のタスクを使用し て、AP入カバンドラ744 は、ブロック848 で示すように、DID ポ インタを入カポインタ奉リスト828から得てこれをAP入入水ポインタテーブ ル832 に格納する。DID ポインタを使用して、AP入カバンドラは次に 、ブロック850 で示すように、データ・異常RAM に入っているDIDの ゛′アドレスを得、このアドレスをAP入入水ポインタテーブルに格納する。A P入カバンドラ744 は次に、判断ブロック852で示すように、DIDがヌ ルDIDであるか質問する。DIDがタスクの最後のDIDであることを示すヌ ルDID であれば、AP入カバンドラの動作は完了する。その他の場合には、 AP入カバンドラ744は、判断ブロック854で示すように、DIDがシステ ム状態ベクトルであるか質問する。
DIDがシステム状態ベクトルであれば、AP入カバンドラ744  は、ブロ ック866 で示すように、TOCビット・スリップ70ツブにアクセスし、デ ータ記憶装置42にアドレスする文脈ビットの代シに使用するTOCビットを得 る。DIDがヌルDIDテモなくシステム状態ベクトルでもない場合には、AP 入カバンドラはブロック856 で示すように文脈ビットについて文脈ビット記 憶装置にアクセスし、この文脈ビットをAP入入水ポインタテーブル内のアドレ スに付加する。DIDリスト830の中のアドレスおよび文脈ビットまたはTO Cビット・フリップ70ツブからのTOCビットを使用して、AP入カバンドラ は、ブロック858 で示すように、データ記憶装置42にアクセスし、最初の 二つのデータ・バイトをAP大入力IFOに書き込む。AP入カバンドラは次に 、ブロック860 で示すように、メツセージ形式が、2バイトではなく4バイ トを備えているメツセージ形式2またはメツセージ形式3のいずれであるか質問 する。メツセージ形式がメツセージ形式2または3のいずれでもなければ、AP 入カバンドラ744は、ブロック864で示すように、DIDポインタを求め、 求めたDIDポインタ′t−AP入入水ポインタテーブルに格納する。メツセー ジ形式がメツセージ形式2またはメツセージ形式3のいずれかであれば、AP入 カバンドラ744は、ブロック862で示すように、データ記憶装置42に再び アドレスし、最後の2データーバイトをAP大入力IFO746に書込み、ブロ ック864に示すようにDIDポインタを進める。AP入カバ/ドラ744はこ のプロセスを反復してアプリケーション・プロセッサ14がタスクを実行するの に必要なすべてのデータ値を得る。前に説明したとおシ、タスクの最後のDID はヌルDIDである。このヌルDID は、判断ブロック852 で示すように 、AP入カバンドラ744によ#)認識され、AP大入力IFO746のローデ ィングを終結する。
AP出カバンドラ750について第63図に示すブロック図および第64図に示 す流れ図に関連して説明する。AP出カバンドラ750 はアプリケーション・ プロセッサ14が発生した出力データ値を受取シ、処理してこれをシステム内の すべてのノードに伝達する。入力値の場合のように、出力値は現在のタスクに対 して出力TID−DIDマツピング・リストによシ指定された所定の順序で期待 される。
データ値をアプリケーション・プロセッサ14から受取ると、AP出カバンドラ 750はこれをそのMTコードおよびDIDコードと共に出力データ・レジスタ にロードし、データ値メツセージの放送を開始する。各タスクに対する最後の値 を出力してから、アプリケーション・プロセッサはアプリケーション−プロセッ サ報告エラー−ベクトル(APRE)および分岐条件(BC)を組合せて発生す る。アプリケーション・プロセッサ報告エラーの部分は前のアプリケーション・ プロセッサ報告エラー・データi−にエラー・レボ−タフ54 を通してボータ 38に報告するのに使用される。分岐条件(BC)はAP入カバンドラ744  によシ発生された次のタスク完了・開始メツセージの一部として使用される。
今度は第63図を参照すると、AP出カバンドラ750 はAP入カバンドラが その動作を完了するのに応答する。AP出カバンドラ750は先ずポインターテ ーブル726にアクセスし、DIDリスト830に格納されている現在のタスク を識別するポインタを得る。このポインタはDIDリスト830にアドレスして データ識別コード(DID) 、メツセージ形式(MT)、およびデータ値−タ スク(DVM)  ′i+″得るのに使用される。AP出カバンドラ750 は 次にメツセージ形式ビットおよびデータ識別コードを出力データ・レジスタ87 0 に格納する。データがアプリケーション・プロセッサ14によシ発生される につれて、データはAP出力PIF0748に格納される。データはAP出力P IF074Bから出力データ・レジスタ870に転送される。AP出カバンドラ 750 は次に最初の2バイトを送信機インター7エース718 に伝達し、ア プリケーション・プロセッサ報告エラー・ベクトルをAPREPジスタ752に 伝達する。
AP出カバンドラ750 の動作の詳細を第64図。
に示す流れ図を参照して説明することにする。AP入カバンドラ744 が初期 データ値をAP大入PIFO746にロードし終ったら、AP出カッ1ンドラ7 50は、ブロック872 で示すように、現在のDIDポインタをポインターテ ーブル726 から読出し、これをAP出出水ポインタテーブル868 に格納 する。AP出カバンドラは次に、ブロック874で示すように、ポインタ・テー ブル726  に格納されているポインタを使用してDIDリストにアクセスし 、メツセージ形式およびDIDを出力データ◆レジスタ810に格納する。メツ セージ形式およびDIDバイトをデータ出力レジスタ870に格納したら、AP 出カバンドラ750は、判断ブロック876で示すように、アプリケージヨシ・ プロセッサがデータ値をAP出力PIF074Bに入れ、たか否か質問する。A P出力PIF0748 にデータが入れられていなければ、AP出カバンドラ7 50は、判断ブロック876 で示すように、データがアプリケーション・プロ セッサ14によシ発生されるまで待つ。アプリケーション・プロセッサ14が発 生したデータ値をAP出力PIF0748に格納してしまったら、AP出カバン ドラ750 は、ブロック878 で示すように、データ値を出力データ・レジ スタ870に転送する。AP出カバンドラ750 は次に、判断ブロック880 に示すように、メツセージ形式がメツセージ形式2であるかまたはメツセージ形 式3であるかを質問する。メツセージ形式がメツセージ形式2または3であれば 、AP出カバンドラ750は、判断ブロック882 で示すように、データの最 終の二つのデータ・バイトが発生し、AP出力PIF0748 に入れられるま で待つ。アプリケーション・プロセッサが第2の二つのデータφバイトをAP出 力PIF0748に書き込んでから、AP出カバンドラ750は、ブロック88 4で示すように、AP出力PIF0748  の内容を出力データ・レジスタ8 70に転送する。メツセージ形式がメツセージ形式otたは1であれば、または 第2の二つのデータ・バイトが出力データ・レジスタ870  に書込まれたら 、AP出カバンドラは、判断ブロック886 で示すように、このデータのDI D  がヌルDIDであるか質問する。DID  がヌルDIDでなければ、A P出カバンドラ750は、ブロック888で示すように、メツセージ形式および データ識別コードのバイト(DID)を送信機インターフェース718に送る。
AP出カバンドラは次に、ブロック890で示すように、データ・バイトを送信 機インターフェース718に送ってデータ値メツセージを完成する。AP出カバ ンドラ750は次に、ブロック892で示すように、APitlPポインタ・テ ーブル868の中の現在のDIDポインタを歩進させ、アプリケーション・プロ セッサ14が発生した次のデータ値の処理を反復する。先に示したとおシ、その 特定のタスクに対するDIDリスト830の最後のDIDは、判断ブロック88 6に示すように、AP出カバンドラ750によって検出されることになるヌルD IDでちる。DIDがアプリケーション・プロセッサ14がそのタスクに対する すべてのデータ値を発生してしまったことを示スヌルDIDであれば、アプリケ ーション・プロセッサはアプリケーション・プロセッサ報告エラーおよび後続タ スクへの分岐条件(BC)ビットを備えている最後の、データ語を発生する。A P出カバンドラ750は、ブロック894で示すように、アプリケーション−プ ロセッサ報告エラー赤ベクトルi APREレジスタ752に格納し、判断ブロ ック896で示すように、分岐条件の処理に進む。AP出カバンドラは先ず分数 条件ビットの大部分が0に等しいか質問する。分岐条件ビットの大部分がOであ れば、AP出カバンドラは、ブロック898で示すように、すべて0から成る分 岐条件バイトラ発生するが、その他の場合、分岐条件バイトの大部分が1であれ ば、AP出カバンドラ750は、ブロック900で示すように、連続する1から 成る分岐条件バイトを発生する。最後に、AP出カバンドラ750は、ブロック 902で示すように、分岐条件バイトを送信機インターフェース718に格納す る。このバイトは完了タスクの分岐条件としてAP入カバンドラ744が発生し た次のタスク完了・開始メツセージが付加される。
タスク・コミュニケータ44は、第67図に示すように、再構成コントロール9 04、および第69図に示すようにリセット−コントロール902を備えている 。最初に第67図を参照して、再構成コントロール904はアプリケーション・ プロセッサ14に割込みを伝達し、承認を待つ。承認後、再構成コントロール9 04 は出カバンドラ750およびその出力データ争レジスタ870、AP大入 PIF0746、AP出力HIF0748、およびポインタ・ テーブル726 を初期設定する。再構成コントロール904の動作を第68図に示す流れ図に関 し7て説明する。スケジューラ40からの再構成要求に応じて、再構成コントロ ール904は、ブロック906で示したように、アプリケーション・プロセッサ 14に再構成割込みを行う。次に、ブロック908で示すように、出力データ争 レジスタ870 をクリアすることによシ、送信機インターフェース718   へのすべてのメツセージを中断する。再構成コントローラ904 は次に、判断 ブロック910 で示すように、アプリケーション昏プロセッサ14からの割込 信号の承認を待つ。アプリケーション・プロセッサが割込みを承認してから、再 構成コントロールは、ブロック912で示すように、AP大入FIFO746お よびAP出力F)FO74Bをクリアし、ブロック914 で示すように、ポイ ンタ・テーブル126 のすべてのポインタをヌルDIDに設定する。入力およ び出力のFIFOがクリアされてから、再構成コントロールは、ブロック916  で示すように、AP入カバンドラ764を再始動し、ブロック918 で示す ように、タスク・コミュニケータ準備完了(TSCRDY)信号をスケジューラ 40に送シ、タスク−コミュニケータ44が新しい再構成されたシステム状態で データの処理を始める準備が完了していることを示す。
タスク・コミュニケータは、第69図に示すように、動作コントローラ・リセッ )(OCRES)信号に応するリセット・コントロール9′20 をも備えてい る。リセットΦコントロール920はアプリケーション・プロセッサ14、AP 準備完了フラグ922、リセット・7ラグ924、AP大入FIFO7=46、 AP出力PIF0748、ポインタ・テーブル726、およびAP入カバンドラ 744とのインターフェースと々る。第70図を参照すると、リセット・コント ロール920の動作は、ブロック926で示すように、リセット要求をアプリケ ーション・プロセッサ14に送ることによシ始まる。リセット・コントロール9 20 は次にブロック928で示すようにリセットやフラグ924 を「ON」   に設定してタスク・コミュニケータ44の他のサブシステムに動作コントロ ーラがリセットされて埴ることを知らせる。リセット・コントロール920は、 次に、ブロック930で示すように、AP準備完了フラグ922をrOFFJ  に設定し、スケジューラ40にアプリケーション・プロセッサがまだタスクの処 理を始める準備が整ってイナいことを知らせる。リセット・コントロール920 は次に、ブロック932で示すとおり、AP大入FIFO746およびAP出力 PIF0748 ′ft:クリアし、ブロック934 で示すように、ポインタ ・テーブル726のすべてのポインタをヌルDIDに設定する。リセット・コン トロールは次に、ブロック936で示すように、AP入カバンドラ744を始動 させ、判断ブロック938で示すように、アプリケーション・プロセッサが準備 完了を通知するのを待つ。アプリケーション・プロセッサ14がデータの処理を 開始する準備が整ったことを知らせたら、リセット番コントロール920 は、 ブロック940で示すように、リセット・フラグ924を「OFF」に、AP準 備完了フラグを「ON」に戻して、タスク・コミュニケータが今やデータの処理 を開始する準備が整っていることを矧らせる。
同  期  装  置 同期装置46はシステム内のすべての動作コントローラの間の同期を確立し、維 持する。多重コンピュータ構造はシステム内の各ノードによるメツセージ伝達の 同期過程によって行われるゆるい同期を用いている。この方法では、各同期装置 46はそれ自身のノードにより受取った各時間依存メツセージを検出し、時間刻 印する。これら時間依存メツセージはシステム内の一つおきのノードにより所定 の時間間隔で伝達され、システム内の他のすべてのノードによシ受取られる。第 1図に示す巻き込み接続の結果、ノードはそれ自身の時間依存メツセージを他の ノードから送られた他の時間依存メツセージと共に受取る。ノード自身の時間依 存メツセージの時間刻印と他のすべての時間依存メツセージの時間刻印と同期は 二つの時間メツセージ期間にわたシ行われる。これらの期間は交互に伝達される 同期前メツセージおよび同期メツセージによシ範囲が決まる。ノードはそれ自身 の同期および同期前メツセージを他のノードがそれ自身の同期および同期前メツ セージを送るのと同時に送るとき他のノードと各点ごとに同期するように規定さ れる。同期は正確には乏シ得ないから、互いに同期していると考えられるノード からメツセージを受取る時間内に許容誤差を規定するウィンドウがユーザによシ 規定される。
基本的に、ノードを互いに同期するようにする機構には各ノードによシ行われる 計算が含まれるが、これは時間的にどこで同期前メツセージの最後の集団の中心 が発生するかを決定するものである。各ノードは次にそれ自身の同期前時間刻印 とその中心の同期前時間刻印との間の差を求める。次に各ノードはその差を使用 してその同期前メツセージを送った時刻からその同期メツセージの伝達までの時 間間隔を調節する。これら計算には障害寛容が必要であシ、近似一致アルゴリズ ムを用いて行われる。システムの収束はすべてのノードにこれらの処置を連続し て反復させることにより行われる。同期から同期前までの各期間にわたりすべて のノードがそれ自身を含むすべてのノードから受取る時間依存メツセージに聴き 入り、補正を決定し、次の同期前から同期までの区間にわたシ補正を施す。パタ ーンは反復的である。形態測定誤差を取り、補正を行い、誤差を測定し、補正を 行い、・・・等々。同期メツセージから同期前メツセージまでの時間間隔はユー ザ規定の公称値である。
上に述べた同期手順の説明は正確である。しかし、実施される実際の機構は、あ らゆる条件下で障害寛容でもなければならず、システムのタイミング誤差を検出 し、特徴づけることができなければならず、システムの他の時間依存機能を支援 しなければならないから、前述の定常状態のシステムよシ複雑である。
実施された同期論理は三つの範ちゅうの動作、すなわち冷間始動、温間始動、お よび定常状態動作、を支援する。冷間始動同期論理はシステムが丁度パワーアッ プされ、一つのノードも必らずしも他のノードと同期状態に無い状況を取扱う。
特に、冷間始動はノードの動作セットが存在しないとき実行される。この場合に は、システム内の各良好ノードが他の各良好ノードと同期しようとし、同時に且 つ一貫して共にどのノードが同期しておシ、同期している数がユーザ規定の始動 サイズよシ大きいか否かを決定する。最初の同期化および始動を行うために、各 ノードは「イン・シンク・ウィズJ(ISW)ベクトルと呼ばれる情報のバイト を保持している。「イン・シンク・クイズ」ベクトルの内容は局部ノードが同期 していると信じているシステム内の他のノードを規定する。システム内のすべて の良好ノードのISWベクトルに関するビザンチン合意が初期動作セットを規定 するのに使用される。ビザンチン合意は冷間始動を障害寛容にするためこの「イ ン・シンク・クイズ」データに関して必要である。一旦充分なノードが可能性の ある動作セラ) (PO3)に関するビザンチン合意に達したら、そのセットに 入っているすべてのノードが動作を始める。可能性のある動作セットに入ってい ない他のすべての健全ノードは、動作セットが形成されているという同じ結論に 到達するが、それらノードはまた動作セットに入っていないということを認識す ると共に温間始動の動作モードに切換える。
温間始動動作モードでは各良好ノードが現存する動作セットと同期しようとする 努力を続ける。温間始動動作モードになっているノードが動作セットと同期して いると信すると、そのノードは正常動作を始める。温間始動ノードが適格に充分 長く挙動した後、他のノードはそのノードに動作セットに入ることを許可する。
最後の状況は定常状態動作モードであって、各動作ノードがシステム内の内の良 好ノードとの同期と整合とを単に維持する。実際上は定常状態収束アルゴリズム は、局部ノードを他のすべての良好ノードを障害寛容にして共通の同期点に収束 することができるから、あらゆる条件下で動作する。温間始動と冷間始動との間 の真の差異は動作セットが何時形成されたかおよび動作セット内のノードがその アプリケーション・プロセッサによシ実行されるヘキタスクのスケジューリング を開始する準備が何時整うかを決めるのに使用される論理の周シに集中している 。
同期装置46の詳細を第71図に示す。同期装置はメツセージ・チェッカ・イン ターフェース942を介してメツセージ・チェッカからタスク対話整合性(TI C)メツセージおよびシステム状態(SS)メツセージを受取る同期装置コント ロール952を備えている。システム状態メツセージは前述した同期および同期 前のメツセージでアシ、システム状態メツセージを同期または同期前メツセージ として識別する機能ビットによシ区別される。タイミング信号発生器950は同 期装置コントローラ952 に伝達されるタイミング信号を発生する。タイミン グ信号発生器から発生する信号は亜原子期間(SAP)信号、原子期間(A’P )信号、マスター期間(MP)信号、最終並原子期間(LSAP)信号、最終原 子期間(LAP)信号、ソフトエラー・ウィンドウ(SEW)信号、およびハー ドエラー・ウィンドウ(HEW)信号である。同期装置コントロール952はク ロック信号およびリセット信号をシステム母線か、ら受取る。
リセット信号はパワーオン争リセット(RESET)または内部動作コントロー ラ・リセット(OCRESET)  信号のいずれかとすることができる。これ らの信号については前に説明してありここに繰返す必要はない。同期装置コント ロール952 はそれ自身の3ビツトのノード識別(NID)コードをも受取る 。
ビザンチン・ボータ954 は冷間始動動作モードの期間中に自分自身および他 のモードから受取った「イン−シンク・クイズ」マトリックスに関し、およびタ スク対話整合性メツセージの内容に関しビザンチン投票を行う。タスク対話整合 性(TIC)メツセージの内容に関するビザンテン投票は直接スケジューラ・イ ンターフェース944 に伝達されるが、「イン・シンク・クイズ」マトリック スに関するビザンチン投票の結果は障害寛容器インターフェース946に伝えら れる。時間刻印ボータ956 はすべてのノードから受取ったシステム状態メツ セージの時間刻印に関して投票し、選出時間刻印値を発生する。同期装置記憶装 置948 はメツセージ・チェッカ・インターフェースから受取ったデータ、お よび同期装置コントロール952 がそれ自身のノードとシステム内の他のノー ドとの間に同期を確立し維持するのに必要なデータを格納する。同期装置記憶装 置948 は、第72図に示すように、スクラッチ・パッド記憶装置962、メ ツセージ記憶装置964、および時間刻印記憶装置966を備えている。エラm −しボータ958は同期装置コントロール952によシ検出されたエラーを受取 シ、これらを障害寛容器インターフェース946に伝達する。同期装置コントロ ール952は時間依存タスク対話整合性(TIC) メツセージおよびシステム 状態(SS)メツセージを発生するが、これらは、前に述べたように、送信機イ ンターフェース960を通してシステム内の他のノードに伝達される。
第76図はタイミング信号発生器950 によシ発生された各種信号の波形を示 す。マスク期間(MP)は動作コントローラの各マスク期間区間の長さを反映す るタイミング信号でちる。この区間は同期化クロックの中で最長であシ、アプリ ケーションについて実行している最低反復タスクの周期性を反映している。マス ク期間はアプリケーションの「フレーム・サイズ」と考えることができる。マス ク期間の期間中、タスクの全パターンが反復される。原子期間(AP)は各原子 期間区間の始tシと終シを反映するタイミング信号でおる。この区間はアプリケ ーションについて実行している最も速い反復タスクを表わしている。上述のマス タ期間は原子期間の整数としてユーザが指定するものである。亜原子期間(SA P)は各亜原子期間区間の始ま゛りと終シとを反映するタイミング信号である。
原子期間は亜 原子期間の整数としてユーザが指定する。最終原子期間(LAP )は各マスク期間中に発生する最終原子期間を区切るアクチブ高信号である。最 終並原子期間(LSAP)は各原子期間中に発生する最終並原子期間を区切るア クチブ高信号である。ソフトエラー・ウィンドウ(SEW)はシステム同期メツ セージの到着に対しソフトエラー・ウィンドウを規定する事象時間標識の周シに 時間区間を限るアクチブ高信号である。最後に、ハードエラー・ウィンドウ(H EW)はシステム同期メツセージの到着に対しハードエラー・ウィンドウを規定 する事象時間標識の周りに時間区間を限るアクチブ高信号である。
メツ(!−シ記tJ!装置964のフォーマツトラ第73図に示す。メツセージ 記憶装置964は各ノードについて分岐条件バイト、タスク完了ベクトル、次の システム状態ベクトル、現在のシステム状態ベクトル、原子期間カウンタの内容 、および一つは冷間始動用に、他は温間始動用に留保しておく二つのバイト、を 格納する。このフォーマットはシステム内の各ノードに対して反復される。
時間刻印記憶装置966 のフォーマットを第74図に示す。時間刻印記憶装置 は粗時間カウントおよび精時間カウントから構成され、更新(u)フラグおよび 時間刻印(TS)7ラグを備えている。更新フラグは格納されている時間刻印が 現在の時間刻印期間中に受取ったシステム状態メツセージ用であることを知らせ る。時間刻印フラグは時間刻印が同期機能ビットが設定されているシステム状態 メツセージ用であるか、または同期前機能ビットが設定されているシステム状態 6メツセージ用でちるかを示す。時間刻印の粗カウントは先行システム状態メツ セージが発生してから経過した亜原子期間の数を表わす。
精時間刻印カウントは原子期間の最後の亜原子期間の期間中に受取った同期クロ ック・パルスの数に対応する。粗カウントすなわち亜原子期間カウントは主とし て冷間始動および温間始動の期間中に局部ノードとシステム内の他のノードとの 間の同期化を迅速に収束させるのに使用される。精時間刻印カウントすなわち同 期クロック時間刻印カウントは主として定常状態動作の期間中にノード間の同期 を維持するのに使用される。時間刻印記憶装置966 はシステム内の各ノード に対する時間刻印を格納しておシ、それ自身のノードから伝達されたシステム状 態メツセージの時間刻印を格納する特別なエントリを備えている。
スクラッチ・パッド記憶装置962 の7’オー ビットを第75図に示す。ス クラッチ・パッド記憶装置962 はシステム内の各ノードに対する「イン・シ ンク・ウィズJ(ISW)  ベクトルを格納する。この「イン・シンク・ウィ ズ」ベクトルは同期および同期前システム状態メツセージに入っている。スクラ ッチ・パッド記憶装置962 はまた二つのメツセージ警告カウントを格納して おシ、一つは警告期間の終りからタスク対話整合性メツセージの送信までの時間 を表わし、他は警告期間の終りからシステム状態メツセージの送信までの時間を 表わす。スクラッチ・パッド記憶装置はまた受取ったメツセージに時間刻印する のに使用される亜原子期間カウントをモ格納する。スクラッチ・パッド記憶装置 はまた原子期間あたシの亜原子期間の数、原子期間のカウント、およびマスク期 間あたりの原子期間の数を格納するエントリをも備えている。スクラッチ・パッ ド記憶装置はまた実際のハードエラー・ウィンドウ(Hgw)  対警告期間の カウントおよび公称ハードエラー・ウィンドウ(HEW)対警告期間のカウント をも格納する。実際のハードエラー・ウィンドウ対警告期間は選出時間刻印値と それ自身の刻印値との差から計算される同期前メツセージと同期メツセージとの 間の原子期間の補正後の長さを反映している。
スクラッチ・バット記憶装置内の次のエントリはエラー・ウィンドウ・パラメー タである。エラー書ウィンドウ・パラメータはハードエラー・ウィンドウ・カウ ントおよびソフトエラー・ウィンドウ・カウントを備えている。スクラッチ・パ ッド記憶装置内の次の二つのエントリは亜原子期間デルタの計算補正値および亜 原子期間カウントの計算補正値である。
次のエントリは亜原子期間デルタに対する最大許容補正値である。スクラッチ・ パッド記憶装置内の最終二ントリは可能な動作セットの有無を決定する最小始動 サイズである。
同期装置コントロール952の詳細を第77図に示ス。メツセージ・チェッカ・ インターフェース942が受取ったデータは直接データ・ハンドラ968および 時間刻印器972 に伝えられる。データ・ハンドラ968はメツセージ記憶装 置964、スクラッチ瞭パッド記憶装置962、またはビザンチン・ポータ記憶 装置970に必要に応じてデータを格納する。時間刻印器972がメツセージの 時間刻印を時間刻印記憶装置966に格納する前に、受取られたメツセージは予 想メツセージ・チェッカ974および内部ハードエラー・ウィンドウ・ソフトエ ラー・ウィンドウ・チェッカ974 によシチェックされる。メツセージが予想 メツセージでなければ、後に説明するように、予想メツセージ書チェッカ974 がシーケンス・エラー信号を発生し、これはエラm−しポータ97Bおよび時間 刻印器972に伝達される。同様にして、受取られたメツセージがハードエラm −ウィンドウまたはソフトエラー・ウィンドウの外側にあれば、内部ハードエラ ー・ウィンドウ・ソフトエラー・ウィンドウ・チェッカがハードエラーまたはソ フトエラーを発生し、これもエラー・レボータ978および時間刻印器972に 伝達される。
時間刻印器9γ2は、シーケンス・エラーマタハハードエラーが検出されれば、 時間刻印を時間刻印記憶装置に記録しない。ハードエラー・ウィンドウの外側で 受取られるメツセージまたは全く受取られないメツセージは同期装置にょシ実買 上無視される。
しかし、受取られたベクトルは発生され、ハードエラー・ウィンドウ期間中に報 告することができなかった各ノードに対する欠落メツセージ・エラーを示す。同 期化プロセスはハードエラー・ウィンドウ内部で報告することができなかったノ ードと関連する時間刻印値を使用することはない。これにょシ良好ノードが恐ら く欠陥であるであろうひどく同期のずれたノードの方に動こうとすることが無く なる。しかし、時間刻印器972はソフトエラーだけが検出された場合には時間 刻印を時間刻印記憶装置に記録する。
時間刻印器972 は亜原子期間(SAP)カウンタでカウントされた亜原子期 間の数を粗時間刻印カウントとして、同期クロック969 からの同期クロック ・ビットの数を精時間刻印として記録する時間刻印器972 は時間刻印記憶装 置内に更新フラグを設定し、時間刻印フラグを設定して受取ったメツセージがr 期システム状態メツセージであるか同期前システム状態メツセージであるかを示 す。
同期前メツセージ・カウンタ980 および同期メツセージ・カウンタ982は 、それぞれ、特定の時間刻印期間中に受取った同期メツセージまたは同期前メツ セージの数をカウントする。比較器984は同期前メツセージの数が同期メツセ ージの数よシ大きかったか否かを確認する。この情報は時間刻印ボータ956  に伝えられる。時間刻印ボータは時間開に多数の同期前メツセージまたは同期メ ツセージが存在したかに対応する時間刻印を抜き取る。時間刻印データ956  は受取った時間刻印に関して投票を行い、受取ったメツセージの時間刻印に対す る平均値または選出値を発生する。この情報は同期装置の自身のシステム状態メ ツセージと時間刻印ボータ956 が発生した平均値または選出値とを比較し、 補正デルタを発生する同期補正発生機990 に送られる。この補正デルタは加 算器992 でシステム状態メツセージ間の公称時間間隔に加えられ検出された 差を補正する。公称時間間隔と補正デルタの和は、第75図に示す、スクラッチ ・パッド記憶装置のフォーマットに示すように、補正並原子期間カウント計算値 および実際のHEW対警告期間カウントとしてスクラッチ・パッド記憶装置96 2 に格納される。
補正並原子期間カウント計算値および実際のHEW対警告期間カウントは、第8 4図に示すように、同期前システム状態メツセージから同期システム状態メツセ ージまでの時間間隔の持続期間のタイミングに使用される。
ビザンチン・ボータ954 はタスク完了ベクトル、およびスケジューラ拳イン ターフェース944 を通してスケジューラ40に戻し伝えられるタスク対話整 合性メツセージに含まれている分岐条件ビットに関してビザンテン投票を行う。
冷間始動の期間中ビザンチン・ボータ954 はまた同期前システム状態メツセ ージで伝達された「イン・シンク・クイズ」マトリックスに関してビザンチン投 票を行い、選出「イン・シンク・クイズ」ベクトルを発生する。この「イン・シ ンク・クイズ」ベクトルは選出「イン舎シンク・クイズ」ベクトルに含まれてい る「イン・シンク・クイズ」ビットの数を加算しこの和と7−ドの可能な動作セ ラ) (PO3)に対する最小始動サイズとを比較する動作条件検出器1000 に伝達さレル。とザンチン投票された「イン・シンク・クイズ」ベクトル中のビ ットの和が最小始動サイズよシ大きければ、動作条件検出器1000はそれ自身 のメートが「イン・タンク・クイズ」ベクトルに含まれているか確認する。それ 自身のノードが「イン・シンクφウィズ」ベクトルに含まれていれば、動作条件 検出器は動作を開始する準備が整っていることを示す動作フラグ1004を設定 する。しかし、動作セットが検出され、動作条件検出器1000がそれ自身のノ ードが動作セット内に無いことを確認すれば、動作セットの存在およびそれがそ のセットと同期していないことを示す温間始動7ラグ1002を設定する。これ によシ同期装置46が前に説明した温間始動動作モードに入る。動作セットが検 出され且つそれ自身のノードが動作セット内にあれば、動作条件検出器1000 は「イン・シンク・ウィズJ(ISW)ベクトルおよび動作フラグ・ビットを障 害寛容器インターフェース946 を通して障害寛容器36に伝達する。
イン舎シンク・クイズ検出器(ISW)944  はそれ自身のシステム状態メ ツセージの時間刻印を時間刻印記憶装置に格納されている各時間刻印と比較し、 「イン・シンク・クイズ」ベクトルを発生する。このベクトルはイン・シンク・ ウィズ(tSW)レジスタ996に格納される。
イン・シンク・クイズ・レジスタ966に格納されている「イン・シンク・ウィ ズ」ベクトルおよび動作フラグ1o04はメツセージ発生器998に伝達され、 次のシステム状態メツセージの発生に使用される。メツセージ発生器998 の 出力は送信機インターフェース960  を通して送信機に伝達される。
同期装置の定常状態動作を第78図乃至第82図に示す流れ図および第83図お よび第84図に示す波形を参照して説明する。第78図に示す流れ図はデータ・ ハンドラ968、予想メツセージ・チェッカ974、および内部ハードエラー・ ウィンドウ・ソフトエラー・ウィンドウ・チェッカ976 の動作を示している 。ブロック1006で示すように、メツセージ拳チェッカ・インターフェース9 42 から受取ったすべてのデータはメツセージ記憶装置964に格納される。
次にシステムは、生新ブロック1008で示すように、動作フラグが真であるが 質問する。
動作フラグが真でなければ、システムはこの後で説明するように冷間始動または 温間始動にデフォルトする。動作フラグが真であれば、予想メツセージ・チェッ カは判断ブロック1010で示すように、それがタスク対話整合性(TIC)メ ツセージであるか質問する。タスク対話整合性メツセージでなければ、メツセー ジはシステム状態メツセージであシ、予想メツセージ・チェッカ974 が、ブ ロック1o12で示すように、時間刻印記憶装置内の亜原子期間カウントが0に 等しいか質問する。時間刻印記憶装置に格納されている亜原子期間カウントは原 子期間内の亜原子期間の数の2の補数である。この亜原子期間カウントはタイミ ング信号発生器950  が亜原子期間信号を発生するごとに増加する。時間刻 印記憶装置の亜原子期間カウントがOに等しいときは、システム状態メツセージ は予想メツセージである。亜原子期間カウントがOに等しければ、予想メツセー ジ・チェッカは、ブロック1014で示すように、そこからメツセージを受取っ たノードに対する時間刻印カウンタに再ロードし、次いでメツセージに含まれて いる同期−同期前(S/P )機能が時間刻印記憶装置に格納されている(TS )7ラグの補数に等しかったか質問する。正常動作では同期および同期前のシス テム状態メツセージは交互に送られ、したがって、受取られるメツセージの機能 ビットは時間刻印記憶装置966のTSフラグによシ現在格納されている前のメ ツセージの機能ビットの補数であるはずである。同期−同期前機能ビットが時間 刻印記憶装置に格納されている時間刻印フラグの補数であれば、そこからメツセ ージを受取ったノー′ド(ノードj)に対するシーケンス・エラー・フラグが、 ブロック1020 で示すように、偽に設定される。逆に、同期−同期前ビット が時間刻印フラグの補数でなければ、そこからメツセージを受取ったノードに対 するシーケンス・エラー・フラグが、ブロック1022で示すように、真に設定 される。判断ブロック1012の亜原子期間カウントが0に等しくなければ、予 想メツセージ・チェッカはそこからメツセージを受取ったノードに対するシーケ ンス・エラー・フラグをブロック1024に示すように真に設定し、ブロック1 026で示すように、ノードjに対する時間刻印カウンタに再ロードする。
受取ったメツセージが、判断ブロック1010で決定するように、タスク対話整 合性(TIC)メツセージであれば、予想メツセージ・チェッカ974 は、判 断ブロック1028で示すように、時間刻印記憶装置の亜原子期間カウントが0 以上であるか質問する。
亜原子期間時間刻印カウントが0以上であれば、システム状態メツセージが受取 られているはずであシ、したがって、シーケンス・エラーがある。予想メツセー ジ瞭チェッカ974 は次に、ブロック1034で示すように、そこからメツセ ージを受取ったノードに対スるシーケンス・エラー・フラグを真に設定する。し かし、時間刻印記憶装置の亜原子期間カウントがOよシ小さければ、予想メツセ ージ−チェッカ974は、ブロック1032で示すように、そのノード(ノード j)に対して時間刻印記憶装置に格納されている時間刻印カウントを増加する。
内部ハードエラ−9ウィンドウ・ソフトエラ一拳ウィンドウ・チェッカ976  および時間刻印器972の動作を第79図に示す流れ図を参照して説明すること にする。内部ハードエラー・ウィンドウ・ソフトエラー・ウィンドウ・チェッカ 976 の動作は、判断ブロック1036 で示すように、シーケンス・エラー が検出されているかチェックし確認することによシ始まる。シーケンス・エラー が予想メツセージ・チェッカによシ検出されていれば、内部ノ・−ドエラー脅つ ィンドウ会ソフトエラー・ウィンドウ916は、ブロック1054で示すように 、時間刻印記憶装置966の中の更新フラグを偽に設定する。その他の場合には 、内部ハードエラー・ウィンドウ・ソフトエラー・ウィンドウ・チェッカ976 は、判断ブロック1040で示すように、メツセージが/S−ドエラー・ウィン ドウの中で受取られたか質問する。メツセージがハードエラー・ウィンドウ(H EW )の中で受取られなかった場合には、内部ノ・−ドエラー・ウィンドウ・ ソフトエラm−ウィンドウ・チェッカ976は、ブロック1042 で示すよう に、ノヘードエラー・ウィンドウ・フラグを真に設定し、ブロック1054で示 すように、時間刻印記憶装置の中の更新フラグを偽に設定する。メツセージがノ ・−ドエラー・ウィンドウの中で受取られた場合には、内部ノ\−ドエラー・ウ ィンドウ・ソフトエラー・ウィンドウ・チェッカ976は、判断ブロック104 4で示すように、メツセージがソフト、エラー・ウィンドウの中で受取られたか 質問する。メツセージがタフトエラー・ウィンドウの中で受取られなかった場合 には、チェッカは、ブロック1o46で示すように、ソフトエラー・ウィンドウ ・フラグを真に設定し、チェッカは、判断ブロック1048で示すように、受取 ったメツセージがタスク対話整合性(TIC)メツセージであったかの質問に進 む。メツセージがTICメツセージでなければ、チェッカは、判断ブロック1o 49で示すように、メツセージが同期前システム状態メツセージであったかの質 問に進む。
メツセージが同期前システム状態メツセージでなかった場合には、時間刻印器が 受取ったメツセージに時間刻印することができるようになる。時間刻印はSAP カウンタ971で受取られたSAPカウントおよび同期クロック969から受取 った同期クロック・カウントに等しい。時間刻印器972は次に、ブロック10 50に示すように、TSフラグ・ビットを同期前に、更新フラグを真に、設定す る。しかし、メツセージがシステム状態同期メツセージであれば、時間刻印器9 72 は、ブロック1052で示すように、受取ったメツセージに時間刻印し、 時間刻印フラグを同期に、更新フラグを真に1設定する。メツセージに時間刻印 し終ったら、メツセージを、ブロック1038で示すように、時間刻印記憶装置 966に格納する。判断ブロック1049で示すように、タスク対話整合性(T IC)メツセージは時間刻印されない。
実際のHEW対警告期間カウントの発生について第80図に示す流れ図を参照し て説明する。実際のHEW対警告期間カウントの発生は、ブロック1056で示 すように、時間刻印記憶装置のノード(NID)ポインタを最初のノードに設定 する(NID=0)ことによシ始まる。時間刻印ボータは、判断ブロック105 8で示すように、更新フラグが真であるか質問する。更新フラグが真でなく、時 間刻印値が現在の原子期間中に更新されなかったことを示せば、時間刻印ボータ は時間刻印記憶装置のノード・ポインタを次のノードに進め、そのノードの更新 フラグが真であるか質問する。更新フラグが真であれば、ブロック1060で示 すように、時間刻印値を時間刻印ボータにロードし、ブロック1062で示すよ うに、時間刻印記憶装置を指すノード・ポインタを歩進させる。時間刻印ボータ 956は次に、判断ブロック1064で示すように、ポインタが指しているノー ドがボールすべき最大のすなわち最後のノードであるか質問する。そのノードが 最後のノード(MAX MID)でなければ、時間刻印ボータにロードするプロ セスが最後のノードからの時間刻印値が時間刻印ボータ956 にロードされる まで続く。時間刻印ボータに現在の時間刻印値すべてがロードされたら、ブロッ ク1066で示すように、ボータはロードされている時間刻印値に関して投票し 、選出時間刻印値(TSv)を発生する。同期補正発生器990  が、次にブ ロック1068で示すように、ノードの自身の時間刻印値を選出時間刻印値から 差引いて同期化デルタを発生する。実際のHEW対警告期間が、ブロック107 0で示すように、加算器992 で同期化デルタをスクラッチ・パッド記憶装置 に格納されている公称HEW対警告期間に加算することにょ多発生される。この 実際のHEW対警告カウントは、ブロック1o71で示すように、スクラッチ争 パッド記憶装置に格納される。
メツセージ発生器998 の動作を第81図に示すブロック図および第82図に 示す流れ図に関連して説明する。最初に第81図に示すブロック図を参照すると 、メツセージ発生器がタイミング信号発生器950からクロック(CLK)、最 終歪原子期間(LSAP)、およびHEW信号を受取る。またイン・シンク・ウ ィズ(rsw)レジスタ996から温間始動フラグ1002、動作フラグ100 4、および「イン・タンク・クイズ」ベクトルを受取る。メツセージ発生器99 B で発生したメツセージに使用されるデータは、スクラッチ・パッド記憶装置 962、メツセージ記憶装置964、および時間刻印記憶装置966を備えてい る、同期化記憶装置948 から得られる。
メツセージ発生器が発生したメツセージは送信機インターフェース960に伝え られ、このインターフェースはこのメツセージを究極的には送信機30に伝える 。
今度は第82図に示す流れ図を参照すると、メツセージ発生器998 は先ず、 判断ブロック1074で示すように、ハードエラー・ウィンドウの終シを待つ。
HEWの終シにメツセージ発生器は、判断ブロック1076で示すように、亜原 子期間が最終歪原子期間であるか質問する。亜原子期間が最終歪原子期間でなけ れば、発生すべきメツセージはタスク対話整合性(TIC)メツセージであって 、これでは、ブロック1078で示すように、データ識別コード(DID) が Oに等しく設定される。現在の亜原子期間はシステム状態メツセージであって、 これでは、ブロック1094に示すように、同期・同期前ビットが時間刻印記憶 装置に現在格納されているTS7ラグの補数に等しく設定される。
メツセージ形式がタスク対話整合性メツセージであれば、メツセージ発生器は、 判断ブロック1080で示すように、動作フラグが真であるか質問する。
動作フラグが真でなければ、TICメツセージは送られない。しかし、動作フラ グが真であれば、メツセージ発生器998は、ブロック1082 で示すように 、事象カウンタ1072にスクラッチ・パッド記憶装置962に格、納されてい る公称HEW対警告カウントをロードし、ブロック1083に示すように、通常 のタスク対話整合性メツセージを組立てる。第1表に示すように、通常のタスク 対話整合性メツセージはタスク完了ベクトル、およびメツセージ記憶装置964  から得られる分岐条件ビットを備えている。
メツセージ発生器は次に、判断ブロック1084で示すように、事象カウンタ1 0T2がクロック信号にょシ0まで増加するまで待つ。事象カウンタがOに等し くなると、メツセージ発生器998は、ブロック1086で示すように、メツセ ージの最初のバイトを送信機インターフェース960 を通して送信機に送シ、 フロック1088で示すように、メツセージの残シのバイトを送信機インターフ ェース96o に送る。
送信機インターフェース960は次に、判断ブロック1090で示すように、送 信機30からのバッファ利用可能(BA )信号を待ち、ブロック1092で示 すように、メツセージの残シのバイトを送信機に送る。
送信機30の動作に関連して前に述べたように、同期装置からのメツセージの最 初のバイトの送出によシ時間依存タスク対話整合性メツセージおよびシステム状 態メツセージに対する警告期間が始まる。
警告期間の終シに、送信機は時間依存メツセージの送信を開始し、バッファ利用 可能信号を送信機インターフェースに伝送する。この信号は送信機インターフェ ースに格納されている残シのバイトの送信機への転送をトリガする。
メツセージ形式が、ブロック1o94で示すように、システム状態メツセージで あれば、メツセージ発生器は、ブロック1o96で示すように、伝達すべきシス テム状態メツセージが同期メツセージであるが同期前メツセージであるか質問す る。メツセージが同期メツセージであれば、メツセージ発生器は、ブロック10 98で示すように、事象カウンタ1o72  にスクラッチ・パッド記憶装置か ら実際のHEW対警告カウントをロードし、ブロック1099で示すように、通 常システム状態メツセージを発生する。しかし、メツセージが同期前システム状 態メツセージであれば、メツセージ発生器は、ブロック1o97で示すように、 事象カウンタ1072に通常HEW対警告カウントをロードし、判断ブロック1 077で示すように、温間始動フラグおよび動作フラグに質問してシステムが冷 間始動モードになっているか決定する。冷間始動は温間始動フラグおよび動作フ ラグが共に偽であることによって示される。システムが冷間始動モードになって いなければ、メツセージ発生器は、ブロック1099で示すように、通常システ ム状態メツセージを発生する。しかし、同期装置が冷間始動モードになっていれ ば、メツセージ発生器は、プロッり1081  で示すように、冷間始動同期前  メツセージを発生する。冷間始動同期前メツセージは第85図に示すようなフ ォーマットを備えており、これは第工表に示す通常同期前システム状態メツセー ジとは異なる。この冷間始動同期前メツセージはシステム内のすべての動作ノー ドから受取った同期化ベクトルを備えている「イン・シンク・ウィズ」マトリッ クスを備えている。メツセージ発生器998 は次に、判断ブロック1084で 示すように、事象カウンタを監視することによF)HEW対警告期間の終シを待 つ。メツセージ発生器は次に、ブロック1086で示すように、メツセージの最 初のバイトを送信機30に送り、ブロック1088で示すように、メツセージの 残シのバイトを送信機インターフェースに転送する。送信機が、判断ブロック1 090で示すようK。
バッファ利用可能信号を発生すると、送信機インターフェース960は、ブロッ ク1092で示すように、システム状態メツセージの残シのバイトを送信機に送 る。
タスク対話整合性メツセージおよびシステム状態メツセージの夕・イミノジ・シ ーケンスをそれぞれ第83図および第84図に示す。最初に第83図に示す波形 を参照すると、第82図の流れ図のブロック1082で示すように、メツセージ 発生器の事象カウンタ10T2がハードエラー・ウィンドウの終シに公称HEW 対警告カウントをロードされる。メツセージ発生器998 は次にHEW対警告 期間の終シまで待ち、波形同期化datで示すように、タスク対話整合性メツセ ージの最初のバイトを送信機に伝達する。送信器30を参照して先に説明し・た とおシ、タスク対話整合性メツセージのこの最初のバイトを受取るとタスク対話 整合性警告期間が始まシ、第83図でバッファ利用可能(BA)波形により示す ように、バッファ利用可能(BA)波形が終る。タスク対話整合性警告期間の終 シに、送信機はシステムの他のすべてに最初のバイトの伝達を開始する。送信機 はまたバッファ利用可能信号を再表明し、同期化aatおよびバッファ利用可能 波形で示すように、送信機インターフェース960に残シのデータ・バイトを送 信機に向けて送出させる。図示のとおり、送信機で伝達される最後のバイトは長 手方向冗長コード・チェック・バイトでアシ、その終りの時間は亜原子期間の終 シと一致するように調節されている。
第82図と関連して説明したように、送るべき次のメツセージが同期前システム 状態メツセージであるときは、HEW対警告期間はタスク対話整合性メツセージ の場合と同じであるが、送信機はシステム状態警告期間をタスク・対話整合性警 告期間の代りに用い、第84図に示すように、タスク対話整合性メツセージを伝 達し始めるよシ早い時点でシステム状態メツセージの伝達を始める。
今度は第84図を参照すると、同期化システム状態メツセージの伝達に対するタ イミング・シーケンスが示されている。同期化システム状態メツセージの伝達に 際し、メツセージ発生器998 の事象カウンタ1072に、第82図のブロッ ク1098で示すように1実際HEW対警告カウントがロードされる。
先に説明したとおシ、実際HEW対警告カウントは公称HEW対警告カウントと 同期化デルタ計算値との和である。実際HEW対警告カウントの終シに、メツセ ージ発生器は同期システム状態メツセージの最初のバイトを送信機インターフェ ース960 を介して直接送信機30に伝達する。送信機は次に、システム状態 メツセージ警告期間の終シに、システム状態メツセージの伝達を開始し、図示の とおシ、バッファ利用可能信号を復権して送信機インターフェースに残シの同期 システム状態メツセージを送信機30に伝達させる。システム状態メツセージの 最後のバイトの伝達によシ原子期間の終シが規定される。
同期化デルタを公称I(EV対警告期間に加えると原子期間の長さが、その終シ がシステム内の他のノードにより発生された原子期間と一致するように、修正さ れ、したがって、他のすべてのノードとの逐次同期が確定する。
冷間始動モードでの同期装置の動作を第86図乃至第89図に示す流れ図および 第90図に示すタイミング図に関連して説明する。
最初に第86図を参照すると、冷間始動手順は、判断ブロック1100で示すよ うに、同期装置が冷間始動モードになっているか質問することから始まる。
冷間始動は温間始動フラグおよび動作フラグが存在しないことによシ示される。
同期装置が冷間始動動作モードになっていなければ、判断ブロック11o2で示 すように、温間始動動作モードになっているか質問する。同期装置が、温間始動 フラグが真であることによシ示されるように、温間始動動作モードになっておれ ば、同期装置は、ブロック11o5で示すように、温間始動手順を呼出す。そう でなければ、同期装置は、ブロック1103で示すように、冷間始動ルーチンを 出て定常状態動作モードにデフォルトする。
同期装置が冷間始動動作モードになっていれば、同期装置は第90図に示す聴取 期間にわたり他のノードからのメツセージに聴き入る。同期装置は次に、判断ブ ロック1104で示すように、受取ったメツセージが、メツセージに含まれてい る機能ビットから決まるように、同期メツセージであるかまたは同期前メツセー ジであるか質問する。メツセージが同期前メツセージであれば、ブロック110 6で示すように、メツセージが時間刻印され、ブロック1108で示すように、 同期前メツセージ・カウンダ980  が歩進する。イン・シンク・クイズ検出 器が次に、判断ブロック1110で示すように、受取ったメッセーのがハードエ ラー・ウィンドウよシ小さいか質問する。受取ったメツセージの時間刻印とそれ 自身のメツセージの時間刻印との差がハードエラー・ウィンドウよシ小さければ 、そこからメツセージを受取ったノードに対応する「イン・シンク−ウィズ」フ ラグが、ブロック1112で示すように、真に設定される。そうでなくて受取っ たメツセージの時間刻印からそれ自身のメツセージの時間刻印を差引いたものが ハードエラー・ウィンドウよシ大きければ、ブロック1114で示すように、イ ン・シンク・クイズ・レジスタ996  の「イン・タンク・クイズ」フラグが 偽に設定される。
判断ブロック1104に戻って、受取ったメツセージに含まれている同期・同期 前機能ビットが同期ビットであれば、ブロック1116で示すように、時間刻印 器が受取ったメツセージに時間刻印し、TSフラグを同期に設定し、更新フラグ を真に設定する。
同期装置は次に、ブロック1118で示すように、同期メツセージ・カウンタ9 82を歩進させる。
同期修正発生器990および加算器992の動作を第87図に示す流れ図を参照 して説明しよう。同期修正器990は、最初、判断ブロック1120 で示すよ うに、聴取期間が行われているか質問する。冷間始動中の聴取期間は、第90図 に示すように、全原子期間にハードエラー・ウィンドウを加えたものに等しい。
この動作段階中に、内部ハードエラーφウィンドウ・ンフトエラー・ウィンドウ ・チェッカ976はこの期間中傷に設定されている温間始動フラグおよび動作フ ラグに応じてエラー信号を発生することはない。
聴取期間が過ぎると、同期修正発生器990 は同期前メツセージ−カウンタ9 80 に格納されている同期前カウントの数が同期メツセージ・カウンタ982  に格納されている同期カウントの数に等しいか質問する。同期前カウントが同 期カウントに等しければ、同期修正発生器は、ブロック1148で示すように、 亜原子期間デルタを0に、同期デルタをOに、設定する。同期前カウントが同期 カウントに等しくなければ、同期修正発生器990は、ブロック1124で示す ように、同期前カウントが同期カウントより大きいか質問する。同期前カウント が同期カウントよシ大きければ、時間刻印ボーク95.6 は時間刻印記憶装置 からTSフラグが同期前に設定され更新フラグが真に設定されているすべての時 間刻印を抜き取る。時間刻印ボータ956 は次にその抜取った値を使用して選 出並原子期間カウントおよび選出同期クロック・カウントを発生する。同期修正 発生器990は、次にブロック1126で示すように、それ自身の亜原子期間カ ウントを選出並原子期間カウントから差引いてSAPデルタを発生すると共にそ れ自身の同期クロック−カウントを選出同期クロックから差引いて同期デルタを 発生する。
代υに、同期カウントが同期前カウントよシ大きければ、時間刻印ボータ956 は、ブロック1146で示すように、そのTS7ラグが同期に設定され更新フラ グが真に設定されている時間刻印を使用してSAPデルタおよび同期デルタを発 生する。
亜原子期間デルタが、判断ブロック1127で示すように、0に等しければ、同 期修正発生器990は、ブロック1129で示すように、亜原子期間デルタを0 に等しく、同期デルタを同期デルタの計算値に等しく設定する。同期修正発生器 990は次に、判断ブロック1132で示すように、同期デルタが最大同期デル タより大きいか質問する。大きければ、同期修正発生器は、第75図に示すよう に、同期デルタをスクラッチ・パッド記憶装置962 に格納されている最大同 期デルタに等しく設定する。同期デルタが、判断ブロック1132で決まるよう に、最大同期デルタよシ大きくなければ、同期修正発生器は、判断ブロック11 36で示すように、同期デルタが最大同期デルタの2の補数よp大きいか質問す る。同期デルタが最大同期デルタの2の補数よシ大きければ、同期修正発生器9 90は、ブロック1138で示すように、同期デルタを最大同期デルタの2の補 数に等しく設定する。そうでない場合は、同期デルタは同期デルタ計算値のまま である。
次に判断ブロック1127に戻って、亜原子期間デルタがOに等しくなければ、 同期修正発生器990は、判断ブロック1128で示すように亜原子期間デルタ がOよシ大きいか質問する。亜原子期間デルタが0より大きければ、同期修正発 生器は、ブロック1130で示すように、亜原子期間デルタを亜原子期間デルタ −1に等しく、同期デルタを最大同期デルタに等しく設定する。そうでない場合 は、同期修正発生器は、ブロック1144で示すように、亜原子期間デルタを亜 原子期間デルタ+1に等しく、同期デルタを最大同期デルタの2の補数に等しく 、設定する。
亜原子期間デルタおよび同期デルタが決まると、原子期間カウントアたシの実際 の亜原子期間が、ブロック1140で示すように、亜原子期間デルタを原子期間 カラン)6たシの公称並原子期間に加えることによシ発生される。実際のHEW 対警告期間は、ブロック1141で示すように、同期デルタを加算器992で、 公称HEW対警告期間に加えることによシ発生される。原子期間カラン)6たシ の実際の亜原子期間および実際のHEW対警告期間カウントはスクラッチ・パッ ド記憶装置960 の、第75図に示す場所に格納される。同期修正発生器99 0の最終動作は、ブロック1142で示すように、同期前メツセージ拳カウンタ 980 および同期メツセージ・カウンタ982を0に設定することである。
冷間始動動作モード中のデータ・ハンドラ968の動作を第88図の流れ図に示 す。各メツセージがメツセージ・チェッカ・インターフェース942カラ受取ら れるにつれて、データ・ハンドラは、判断ブロック1150で示すように、同期 ・同期前ビットが同期ビットでおるか質問する。ノードjからのメツセージに含 まれている同期・同期前機能ビットが同期ビットであれば、データ・ハンドラは 、ブロック1152で示すように、受取ったメツセージの「イン・シンク・クイ ズ」ベクトルを、第75図に示すように、スクラッチ・パッド記憶装置内のイン ・シンク・クイズ・マトリックス(行j)に格納する。しかし、メツセージに含 まれている同期・同期前機能ビットが同期前ビットであれば、同期前メツセージ に含まれているイン・、シンク・ウィズ・マトリックスが、ブロック1154で 示すように、ビザンチン・ボータ記憶装置970 に格納される。
ノードの可能な動作セットの決定および動作フラグおよび温間始動フラグの設定 について第89図に示す流れ図に関連して説明する。ビザンチン・ボータ954 は、判断ブロック1156 で示すように、聴取期間が過ぎ去るまで待ち、ブロ ック1157で示すように、ビザンチン・ボータ記憶装置920  に格納され ているインΦシンクφウィズ・マトリックスを使用してとザンチン投票を実行す る。各ノードがビザンチン・ボータ記憶装置に格納されているイン・シンク・ク イズ・マトリックスを送出するので、これらイン・シンク・クイズ・マトリック スは、第94図に示すように、「イン・シンク・クイズ」ベクトルの三次元立方 体を形成する。ビザンチン・ボータは、第94図に矢印1204で示したように 、イン−シンク・ウィズ・マトリックスを通して最初の投票を行うが、これによ シ三次元マトリックスが、第95図に示すように、二次元マトリックスに縮小す る。
ビザンチン・ボータ954は次に第95図に示す矢印1206の方向に第2の投 票を行い、どのノードが互いに同期しているかに関してビザンチン合意を発生す る。ビザンチン合意は、ブロック1158で示すように、可能性ある動作セラ)  (POS)として動作状態検出器1000に送られる。動作状態検出器は次に 、判断ブロック1160で示すように、可能な動作セット内のノードの数を始動 に必要なノードの最小数と比較する。可能な動作セット内のノードの数が最小始 動数よシ少ければ、動作状態検出器は、ブロック1161で示すように、温間始 動フラグ1002 および動作フラグ1004を偽に設定する。しかし、可能な 動作セット内のノードの数が始動数よシ大きければ、動作状態検出器1000は 、ブロック1162で示すように、それ自身のノードが可能な動作セット内にあ るか決定する。そのノードが可能な動作セット内にあれば、動作状態検出器は、 ブロック1164で示すように、動作フラグを真に設定し、ブロック1166で 示すように、可能な動作セットを動作フラグと共に障害寛容器に送る。ノードが 可能な動作セット内になければ、動作状態検出器は、ブロック1168で示すよ うに、温間始動フラグ1002を真に設定する。温間始動フラグを真に設定する と同期装置の動作が、第86図のブロック1105で示すように、冷間始動モー ドから温間始動モードに切換わる。
障害寛容器に伝達された可能な動作セットおよび動作フラグはスケジューラ40 に転送され、動作コントローラの動作を開始する。
第90図は冷間始動中の同期装置の動作を示す。
冷間始動の始めに各同期装置は「イン・シンク・クイズ」ベクトルがすべて0か ら成る初期システム状態メツセージを伝達する。時間刻印器972  が次に、 示したとおシ、時間刻印聴取期間中にシステム内の他のすべてのノードから受取 った、原子期間+ハードエラー・ウィンドウ期間に等しい、システム状態メツセ ージに時間刻印する。この期間中に、同期装置は初期同期システム状態メツセー ジから経過した亜原子期間の数をカウントし、適切な時刻に同期前システム状態 メツセージを送る。この最初の同期前メツセージでは、この時点で他のノードか らイン・シンク・ウィズ・ベクトルを受取っていないので、イン・シンク・ウィ ズ・マトリックスがすべて0である。同期前システム状態メツセージの伝達に続 くハードエラー・ウィンドウの終シに、同期装置は受取った時間刻印を処理し、 必要なSAPデルタおよび同期デルタを発生し、同期前メツセージと次の同期メ ツセージとの間の時間間隔を調節する。同期装置はまたその時間刻印を選出時間 刻印と比較しどのノードがそれと同期しているかを決定する。調節時間間隔の終 シに、同期装置は発生した「イン・シンク・クイズ」ベクトルを備えている同期 メツセージを再び伝達する。先行の同期前メツセージから次の同期前メツセージ までの期間中に、同期装置は他のノードから受取った「イン・シンク・クイズ」 ベクトルを集めてスクラッチ・パッド記憶装置に格納し、スクラッチ・パッド記 憶装置内に「イン・タンク・ウィズ」マトリックスに組立てる。
同期装置は次に原子期間あたシの亜原子期間の公称数をカウントし、スクラッチ ・パッド記憶装置で組立てられた「イン・タンク・クイズ」マトリックスを含ん でいる特別な「冷間始動」同期前システム状態メツセージ・を発生する。第2の 同期前システム状態メツセージを送る前の聴取期間中に同期装置は他のノードか ら受取ったすべての同期メツセージに時間刻印する。ハードエラー・ウィンドウ の時間区間内に第2の同期前システム状態メツセージを伝達するいずれかの側で 、同期装置は他のノードにより伝達されたイン・シンク・ウィズ・マトリックス を集めてこれをビザンチン・ボータ記憶装置970 に格納する。ハードエラー ・ウィンドウが終ってから、同期装置は同期前メツセージと次の同期メツセージ との間の時間区間に対する同期補正を計算し、ノード間の同期を行う。同期装置 は次にそれ自身の「イン・シンク・クイズ」ベクトルを決定し、ビザンチン・ボ ータ記憶装置に格納されているイン・シンク・クイズ・マトリックスに関してビ ザンチン投票を行う。HEW期間の終υに直ちに続くこの処理の期間中に、同期 装置はまた可能性のおる動作セットが存在するか、およびそれ自身のノードが可 能性ある動作セットに含まれているか否かを試験して確認する。
調節した同期化期間の終りに、同期装置はそれ自身の[イン・シンク・ウィズ」 ベクトルを備えている同期システム状態メツセージをもう一度伝達する。
同期装置はまた他のノードによシ発生された「イン・シンク・クイズ」ベクトル から新しい「イン・シンク・クイズ」マトリックスを第2と第3との同期前シス テム状態メツセージの間に組立てる。この処理は可能な動作セットがビザンチン ・ボータ記憶装置に格納されているイン・シンク・ウィズ拳マトリックスに関す るビザンチン投票の結果によって決まるまで反復される。
温間始動中の同期装置の動作を第91図に示す流れ図および第92図に示すタイ ミング図に関連して説明することにする。温間始動中、同期装置は可能な動作セ ットの存在、およびその主要機能がこのセットの動作と同期させることであるこ とを認識する。
第91図を参照すると、温間始動は、判断ブロック1170で示すように、温間 始動フラグを検出することから始まる。温間始動フラグが真であれば、時間刻印 器は、ブロック11T2で示すように、受取った各メツセージに時間刻印する。
イン・シンク・クイズ検出器は次に、判断ブロック1174で示すように、他の ノードと「イン・シンク・クイズ」しているか決めるが、これはノード自身の時 間刻印と受取った各メツセージの始間刻印との差を71−ドエラー・ウィンドウ と比較しあ行う。ノード自身の時間刻印と受取ったメツセージの時間刻印との差 がI・−ドエラー・ウィンドウ期間より少ければ、ISWレジスタ996の中の [イン・シ/り・ウィズ」フラグを、ブロック1176で示すように、これが発 生する各)−ドに対して真に設定する。それ自身の時間刻印と受取ったメツセー ジの時間刻印との差が7・−ドエラー・ウィンドウ期間より大きければ、ISW 検出器994は、ブロック117Bで示す″ように、ISWレジスタ996に格 納されているその特定のノードに対する[イン・シンク・ウィズ」ビットを偽に 設定する。
温間始動中、同期装置は聴取期間中に受取った、1原子期間+ハードエラー・ウ ィンドウ期間に等しい、システム状態メツセージのすべてに時間刻印する。これ は冷間始動中に使用される聴取期間と同じである。判断ブロック1180で示す ように、聴取期間が行われると、同期装置は、ブロック1184で示すように、 同期前システム状態メツセージと次の同期システム状態メツセージとの間の原子 期間の長さを調節する同期修正を計算する。この修正の計算は冷間始動中に行わ れる計算と同じである。動作状態検出器1000がそれ自身のノードがノードの 現存fる動作セットと同期していると結論すれば、動作状態検出器は、ブロック 1188で示すように、動作フラグを真に、ウオームアツプ・フラグを偽に設定 し、ブロック1190で示すように、「イン・シンク・クイズ」ベクトルおよび 動作フラグを障害寛容器36に送る。障害寛容器36はこのイン・シンク・ウィ ズ・ベクトルを後続の始動動作中にその初期システム状態ベクトルとして使用す る。
今度は第92図に示すタイミング図を参照すると、温間始動期間中、同期装置は 同期および同期前のシステム状態メツセージを交互に伝達するだけである。
各同期および同期前のシステム状態メツセージと関連するハードエラー・ウィン ドウに続く処理期間に、同期装置は同期修正を計算して同期前メツセージに続く 原子期間の長さを調節し、現存する動作セットと同期させる。同期装置はまた同 じ処理期間中にそれ自身の局部[イン・シンク・ウィズ」ベクトルを発生し、こ の「イン・シンク・クイズ」ベクトルを試験してそれ自身のノードが動作セット と同期しているか確認する。それ自身のノードが現存する動作セットと同期して いれば、同期装置は動作状態に進み、ウオームアツプ状態を抜は出る。第92図 に示すように、この処理は同期装置が現存する動作セットと同期するまで反復さ れる。
同期装置はまた、スケジューラ40を参照して前に述べたように、タスク完了ベ クトルおよび分岐条件(ットに関してとザンチン投票を行う。タスク完了ベクト ルおよび分岐条件ビットはタスク対話整合性メツセージおよびシステム状態メツ セージの中に別々のバイトとして実現され、メツセージ記憶装置964に格納さ れる。
第93図を参照すると、ブロック1192で示すように、各ハードエラー・ウィ ンドウの終りに、同期装置は、ブロック1194で示すように、タスク完了ベク トルをメツセージ記憶装置964 からビザンチン・ボータ記憶装置970 に 転送する。タスク完了ベクトルをすべてビザンチン・ボータ記憶装置に転送して から、ビザンチン・ボータ954は、ブロック1196で示すように、転送され たすべてのタスク完了ベクトルに関してビザンチン投票を実行し、選出タスク完 了(TC)  ベクトルを発生する。同期装置は次に、ブロック1198で示す ように、分岐条件ビットをビザンチン・ボータ記憶装置970 に転送し、ブロ ック1200で示すように、ビザンチン投票を実行して選出分岐条件ビットを発 生する。ビザンチン・ボータ954は次に、ブロック1202で示すように、選 出タスク完了ベクトルおよび選出分岐条件ビットをスケジューラに送る。これに よシ各ノードのスケジューラがタスク完了を一貫して障害寛容的に確実に記録す ることになる。
ビザンチン・ボータ ビザンチン・ボータの機能は一定の重大な事項に関し合意に達する際にノード間 の整合性を保証することである。分布障害寛容システムの信頼性はすべての無障 害ノードが一つ以上の障害ノードが存在するにかかわらず矛盾の無い合意に達す る能力によって決まる。障害ノードの故障モードはすべてを数え上げることはズ きないので、合意を達成する機構は任意の故障の存在時に証明可能に正しくなけ ればな5hostak 、 R,、およびPease、 M、がACMTOPL AS 、第4巻、第3号(1982年7月19日)の「ビザンチンの司令官の問 題」に、およびJACM第27巻、第2号(1980年4月)の「欠陥の存在時 の合意到達」に、述べているように、敵の都市の周シに野営したビザンチンの軍 隊の数師団との類似によシ元々説明されたものである。ビザンチンの軍隊との類 似においては、各師団はメツセンジャ(通信リンク)を介して他の司令官と通信 することができる司令官(ノード)によって命令される。司令官は攻撃すべきか 退却すべきかについて矛盾のない決定に到達しなければならない。焼入かの司令 官は他の司令言違を困惑させようとする裏切シ者となることがある。あらゆる可 能な故障モードを考えなければならないから、裏切シ司令官は嘘をつくこと、異 なるメツセージを異なる司令官に送ること、中継したメツセージを勝手に変更す ること、他の裏切シ者と結んで行動すること、ちるいは有害な方法で行動するよ うに見せることが許容される。
システムの整合性を保証するシステム状態をビザンチン合意と言い、二つの条件 によシ規定される。
1、合意:忠実な司令官はすべて送られた各メツセージの内容に同意する。
2、 妥当性:発信元司令官が忠実であれば忠実な受信側司令官はそのメツセー ジの内容に元々送られたものとして合意する。
これら合意条件は三つの重要な概念を具現している。第1に、発信元司令官が裏 切シ者であれば、忠実な司令官によシ行われる特定の意志決定は彼等がすべて同 じ意志決定をするとすれば実体が無い。第2に、合意に到達するには裏切り者を 識別する必要がない。第3に、裏切シ者の挙動を制限する仮定がなされていない 。
所定のメツセージに関するとザンチン合意を保証するためには、伝達の同期の過 程が一つ以上必要である。各過程中に、各司令官は前の過程中に受取った各メツ セージのコピーを放送する。少くとも4人の司令官が居シ、且つ2過程のメツセ ージが伝達されれば1人の裏切シ者が存在するとき合意を保証することができる 。
数値データについて、二つの同様な条件を満たす近似的合意の状態を規定するこ とも可能である。
1、 合意:無障害ノードはすべて互いの差が成る小さな範囲内にある数値に関 して究極的に合意に達する。
2、 妥当性:各無障害ノードにより得られる選出値は無障害ノードによシ発生 された初期値の範囲内になければならない。
ピザンチン・ボータの細部を第96図に示してあシ、第94図および第95図に それぞれ示す「イン・シンク・ウィズ」マトリックスおよびベクトルを参照して 説明することにする。ここに説明するビザンチン・ボータは「イン・シンク・ク イズ」ベクトル、タスク完了ベクトル、または瞬時用途に適用される2進ビツト に関する投票に限定されるものではないことを認識すべきである。
前に述べたとおり、各同期装置はそれ自身の「イン拳シンク・クイズ」ベクトル を発生し、これがシステム内の他のすべてのノードに伝達される。各ノー)”ハ 他のすべてのノードから受取った「イン・シンク・クイズ」ベクトルを第75図 に示すようにスクラッチ・パッド記憶装置962に格納して「イン・タンク・ク イズ」マトリックスを形成する。冷間始動動作モード中、この「イン・シンク・ クイズ」マトリックスは、第85図に示すように、各同期前システム状態メツセ ージと共にシステム内の他のすべてのノードに伝達される。各同期装置は次にこ れら各「イン・シンク・クイズ」マトリックスを、第94図に示すように、ビザ ンチン・ボータ記憶装置に格納して三次元立方体を形成する。これはビザンチン 合意に必要な2ラウンドの伝達を構成するものである。
ビザンチン・ボータは先ず、第94図に矢印12o4の方向によシ示すように、 マトリックスを通して長手方向にマトリックスの各「イン・シ/り・クイズ」ビ ットの値に関して投票する。最初の投票によシ、三次元立方体が、第95図に示 すように、二次元マトリックスに縮小する。この二次元マトリックスでは各「イ ン・シンク・クイズ」ビットが最初の投票による選出値である。ビザンチン・ボ ータ954 は次に、第95図に示す「イン・シンク・クイズ」マトリックスの 各列の「イン・シンク・クイズ」ビットの値について投票する。ビザンテンーボ ーIVcよる第2の投票の方向を矢印1206によシ示しである。
第2の投票の結果はシステム内の各ノードに対する個々の「イン・シンク拳ウィ ズ」ビットのビザンテン合意でアシ、これは、第77図に示すように、動作状態 検出器1000に伝達される。ビザンチン・ボータの回路の詳細を第96図に示 す。
第96図を参照して、データ・ハンドラ968 はビザンチン・ボータにより投 票されることになっているデータをビザンテンφボータ記憶装置970 にロー ドする。ビザンテン・ボータ制御論理123oはメツセージ形式および動作フラ グに応じてアドレス発生器1210を作動させる。先に説明したとおシ、ビザン チンーボータはタスク対話整合性メツセージに含まれているタスク完了メツセー ジお二び分岐条件ベクトル、および冷間始動動作モード中の同期前システム状態 メツセージに含まれている「イン・シンク・クイズ」マトリックスに関して投票 する。アドレス発生器1210は適切な仕方でビザンチン・ボータ記憶装置にア ドレスし、アドレスしたデータをデータφレジスタ1208に格納する。データ ・レジスタ1208の中の各ビットは複数のANDゲート1212乃至1226   の一つの入力に加えられる。各ANDゲートはデータ・レジスタ1208に 格納されているそれぞれの一つのデータ・ビットを受取る。
デコーダ1228は、アドレス発生器によシ発生されているアドレスに応じて、 第95図に示すブロックのXによシ示したように、各ノードによシそれ自身に対 して発生された「イン・シンク・クイズ」ビットに対応するANDゲートの一つ を選択的に作動解除する。
メツセージ・カウンタ1284はビザンチン記憶装置970 にロードされてい るベクトルまたはマトリックスの数を監視し、ビザンチン・ボーク記憶装置97 0 にロードされているベクトルまたはマトリックスの数の半分に対応する2の 補数値を発生する。
この値は同様な複数の2:1乗算器1232乃至1246、および加算器124 8乃至1262  を介して複数のアキュムレータ1264乃至1278にロー ドされる。
ビザンチン・ボーク制御論理の制御のもとにデータ・レジスタは次に2:1乗算 器1232乃至1246をANDゲート1212乃至1226の出力に切換え、 データ・レジスタに格納されている内容をアキュムレータに格納されている量に 加算する。ピザンチン制御論理は次にメツセージ形式および動作フラグにしたが ってデータをビザンチ/・ボータ記憶装置からデータ・レジスタ1208にロー ドする。たとえば、ビザンチン投票が冷間格納中に発生された「イン・シンク− ウィズ」マトリックスの間で行われているとすると、−アドレス発生器1210 はノード0からのイン−シンク・ウィズ・ベクトルをノードOによシ伝達された マトリックスから順次ロードし、次に順次にノード1からノード7までのマトリ ックスをロードする。加算器1248乃至1262の各々においてビット値をア キュムレータ1264 乃至12T7に格納されている量に加算する期間中に、 和が0よシ大きければ、あふれビットが発生する。加算プロセス中に発生するあ ふれビットはビザンチン選出値レジスタ1280に格納される。ノード7からの マトリックスからのデータが処理されてから、ビザンチン選出値レジスタの内容 が、このデータをビザンチン・ボータ記憶装置970に格納して二次元マトリッ クスを形成する、第95図に示すような、に3乗算器に送られる。
アドレス発生器は次にノード1からの「イン・シンク・クイズ」ベクトルをノー ドOからノード7までからのマトリックスからノードOの「イン・シンク・ウィ ズ」ベクトルに関して前に行ったように取出して処理する。最初にメツセージ・ カウンタ1284がアキュムレータに処理されるマトリックスの数の半分に対応 にする2の補数値をロードする。アドレス発生器は次に、前に説明したように、 ノードO乃至ノード7から受取ったマトリックスから取った、ノード1によシ発 生された「イン・シンク・ウィズ」ベクトルをロードする。再び、加算の結果が Oを超過したことを示すあふれビットは、乗算器1282を通してやはシビザン チン・ボータ記憶装置970に格納されているビザンチン選出値レジスタ128 0に格納される。このプロセスは各ノードによシ発生された「イン・シンク・ク イズ」ベクトルに対して反復され、ノード7からのベクトルが完全に処理されて すべてのとザンチン選出値がとザンチン書ボーク記憶装置に格納し戻され、第9 5図に示す二次元マトリックスが形成されたとき終結する。
最初の投票がすべてのノードからの「イン・シンク・クイズ」マトリックスに格 納されているすべての「イン・シンク・クイズ」マトリックスに関して完了した ら、ビザンチン・ボータ制御論理は第2の投票を開始するが、これでは投票は、 第95図の矢印1206で示すように、列を下って行われる。第2の投票期間中 に、アドレス発生器1210はノードOに対する列をデータ・レジスタ1208 にロードする。
メツセージ・カウンタは再びビザンチン拳ポータで処理されるべきビット数の半 分の値に対応する2の補数をアキュムレータ1264乃至1278  にロード する。加算器は次にデータ・レジスタに格納されているビットをアキュムレータ 1264乃至1278に格納されている値に加算する。このプロセスはすべての ノードに対する列が処理されてしまうまで反復される。再び、加算器1248乃 至1262で生じたあふれビットはビザンチン選出値レジスタ1280に格納さ れる。ビザンチン・ポータ制御論理は次に、前に説明したように、1:3乗算器 を作動させ、とザンチン選出値レジスタに格納されている「イン・シンク・クイ ズ」ベクトルを動作状態検出器1000に送る。
この「イン・シンク・クイズ」ベクトルはどのノードが互いに同期しているかに 関するビザンチン合意を表わしている。
ビザンチン・ボータがタスク対話整合性メツセージおよびシステム状態メツセー ジに含まれているタスク完了ベクトルおよび分岐条件ビットに関して投票してい るとき、データ・ハンドラはこれらの値をビザンチン・ボータ記憶装置970   にロードする。
ビザンチン・ボータ制御論理は1230が次に、「イン・シンク・ウィズ」ベク トルに関する第2の投票を参照して前に説明したとおシ、アドレス発生器121 0を作動させてタスク完了ベクトルの列をデータ・レジスタ1208にロードす る。投票プロセスは「イン・シンク・クイズ」ベクトルに関する第2の投票の投 票プロセスと同じであシ、選出値は加算器1248乃至1262のあふれ出力か らビザンチン選出値レジスタにロードされる。ビザンチン・ポータ制御論理は次 に、先に説明したように、1:3乗算器1282を作動させて選出されたタスク 完了ベクトルおよび選出された分岐条件ビットをスケジューラ・インターフェー ス944 に送る。
ここに説明した動作コントローラおよびサブシステムはアプリケーション・タス クおよびオーバヘッド機能の機能的および物理的分配に基く分布型多重コンピュ ータ障害寛容構造を表わしている。本発明をここに例示し説明した構造に限定す るつもシはない。当業者が前に述べ且つ特許請求の範囲に示した本発明の精神を 逸脱することなく変更および改良を行うことができるということがわかっている 。
浄書(内容に変更なし) SYN インク−“フー、イスヘ 意灸り パλトフ才一マット スフラッヂハ゛ド°メモリ ヤ2つ穿快の間芝 平成   年   月   日 特許庁長官殿           2.7,182、発明の名称 耐障害多重ノード処理装置用動作制御装置3、補正をする者 事件との関係     特  許 出願人名称(氏名)  アライド・コーポレ ーションこ     、            “国際調査報告

Claims (1)

  1. 【特許請求の範囲】 1.各ノードが所定のタスクセツトを実行するためのアプリケーシヨンプロセツ サと、装置内の他の全てのノードと同期してそれ自身のノードを設定および維持 するため、それ自身のノードの動作を制御するため、および装置内の他の全ての ノードとのノード間メツセージ交換により装置内の他の全てのノードと調整して それ自身のアプリケーシヨンプロセツサにより実行すべきタスクを選択するため の動作制御器とを有する耐障害多重ノード処理装置内において、 それ自身の動作制御器により発生されたノード間メツセージを、それ自身のノー ドを含めた装置内の全てのノードへ、専用通信回線を通じて送る送信器にして、 この送信器は、2つまたはそれ以上のメツセージが同時に送る用意ができている 時に前記ノード間メツセージを送る順序を決定する仲裁器を有する前記送信器と 、 前記複数のノードのそれぞれ1つにおのおの組合わされ、そのノードからのメツ セージを受けるだけである複数の受信器と、 受けた各メツセージの物理的誤りと論理的誤りを検査して、検出された各誤りを 識別する誤り状態バイトを含む内部誤りレポートを発生し、かつ各前記受信器を ポーリングして、受信メツセージを繰返えし順序でアンロードするメツセージ検 査器と、同じ情報を含んでいる誤りのない全てのメツセージの内容について票決 して票決された値を発生する票決器と、所定の逸脱値以上だけ票決値とは異たる 内容を有する前記票決値の発生に用いられるメツセージを送つた各ノードを識別 する逸脱ベクトルを含む内部誤りレポートを発生する逸脱検査器とを有する票決 器サプシステムと、 前記メツセージ検査器から受けた誤りのない全てのメツセージを前記票決器サプ システムへ送り、全てのサプシステムにより累積された前記誤りレポートの全て を含むノード間誤りメツセージを発生し、検出された誤りの数と前記内部誤りレ ポート内て識別された検出された誤りの厳しさとを基にして、装置内の各ノード に対するベースペナルテイカウントを発生し、ノード間ベースペナルテイカウン トの交換により各ノードに対するベースペナルテイカウントを全体的に確認し、 かつ所定の除外しきい値をこえるベースペナルテイカウントを有する各ノードを 識別する装置状態ベクトルを発生するための耐障害器と、 ノード自身のアプリケーシヨンズプロセツサにより実行する次のタスクをアクテ イプタスクリストから選択し、装置内の他のノードのスケジユーリングを複製し 、タスク完了/開始メツセージの交換により各ノードによるスケジユーリングと 実行において全体的なデータベースを維持し、スケジユーリングプロセスがその ノードに対して複製されたスケジユーリングプロセスとは異なるような各ノード を識別する誤りレポートを発生するためのタスクスケジユーラーにして、耐障害 器により発生されて除外されないノードの数を変化を示す前記装置状態ベクトル に応答して前記アクテイプタスクリストを再構成する手段を更に有する前記タス クスケジユーラーと、データメモリと、 前記票決値を前記データメモリに格納し、スケジユーラーにより選択されたタス クの実体をアプリケーシヨンプロセツサへ送り、選択されたタスクの実行のため に求められる票決値を取出し、それらの票決値をアプリケーシヨンプロセツサへ 送り、完了したばかりのタスクとアプリケーシヨンプロセツサにより開始された 新しいタスクを識別するタスク完了/開始メツセージを発生し、選択されたタス クの実行中にアプリケーシヨンプロセツサにより発生されたデータ値を含むノー ド間データ値メツセージを発生するためのタスクコミユニケータと、それ自身の ノードの動作を、ノード間の時間依存メツセージの交換により、装置内の障害の ない他のノードの全てと同期させ、ローカルな時刻を示す時刻スタンプを格納す る同期器と、 を備え、各前記時間依存メツセージは受信され、それ自身の時間依存メツセージ の時刻スタンプと、所定の時間ウインドウ内で受けた全ての時間依存メツセージ に対する時刻スタンプから取出した票決時刻スタンプとの間の差を基にしてそれ 自身の同期を修正する動作制御器。 2.請求項1記載の動作制御器において、前記送信器は、 前記耐障害器により発生されたメツセージを受ける第1のインターフエイスと、 前記タスクコミユニケータにより発生されたメツセージを受ける第2のインター フエイスと、前記同期器により発生された前記ノード間時間依存メツセージを受 ける同期器インターフエイスと、送信すべきメツセージを受ける前記第1のイン ターフエイスと前記第2のインターフエイスおよび前記同期器インターフエイス に応答して、それらのメツセージの優先順位を仲裁し、どのメツセージを送信す るかを示す送信信号を発生し、前記第1のインターフエイスと前記第2のインタ ーフエイスにより受けられたノード間メツセージの送信が前記時間依存メツセー ジの送信とインターフエイスするならば、それらのノード間メツセージの送信を 遅らせる仲裁器と、 前記ノード間メツセージを、専用通信回線を介して前記処理装置内の全てのノー ドへ送るために、直列フオーマツトに変換する並列−直列変換器と、前記第1の インターフエイスと、前記第2のインターフエイスと、前記同期器インターフエ イスとに格納されているノード間メツセージを、前記仲裁器により発生された送 信信号に応答して、前記並列−直列変換器へ送る第1のマルチプレクサと、を備 える動作制御器。 3.請求項2記載の動作制御器において、各前記ノード間メツセージは、メツセ ージに含まれている情報の種類を識別するメツセージ種類符号と、メツセージに 含まれている特定のデータ値を独自に識別するデータ識別符号とを有し、前記メ ツセージ検査器は、 前記複数の受信器の間でコンテキスト切換えを所定の順序で行つて、受信したノ ード間メツセージを受信器からアンロードするシーケンサ手段と、各ノードに対 して1つのエントリイを有し、処理されるメツセージに属する関連する情報を格 納するコンテキスト記憶装置と、 メツセージに含まれているノード識別符号を、メツセージを受けた受信器に関連 する予測されるノード識別符号を参照して検査し、メツセージ種類符号を検査し 、データ識別符号を最大データ識別符号に対して検査し、メツセージに含まれて いるバイトの数を検査し、前記誤り状態バイト内の記録された全ての誤りを記録 する誤り検査論理手段と、メツセージ中に含まれている値を所定の最大限度値お よび所定の最小限度値に対して検討して、メツセージに含まれているデータ値が 前記最大限度値と前記最小限度値内にない時は、超えた限度誤りを前記誤り検査 論理手段へ常に知らせる限度間検査器手段と、 受けた各メツセージを更に処理するために前記耐障害器へ送るマルチプレクサ手 段と、 を備え、各前記エントリイは少くとも、メツセージ種類符号と、データ識別符号 と、処理される特定のバイトを識別するバイトカウントと、誤り状態バイトとを 格納し、前記誤り検査論理手段は前記誤り状態バイト内の前記超えた限度誤りを 記録し、前記マルチプレクサ手段は、各メツセージが通された時に、前記コンテ キスト記憶装置に現在含まれている前記誤り状態バイトを含んでいる誤りレポー トをその各メツセージに付す動作制御器。 4.請求項3記載の動作制御器において、前記耐障害器は、 前記メツセージ検査器から受けた誤りのない全てのノード間メツセージの内容を 格納するデータメモリと、 受けた全ての誤りレポートの内容を格納する誤りフアイルと、 どのノードに障害が起きているかを判定し、装置内の他の全てのノードと一致し て、その障害を起しているノードを、前記ノード間メツセージの交換により、前 記多重ノード処理装置の動作に関与することから除外する手段を更に有し、前記 複数のサプシステムから受けた誤りレポートを前記誤りフアイルに格納し、前記 誤りフアイルの内容から各ノードに対するベースペナルテイカウントであつて、 その特定のノードの動作状態を示す前記ベースペナルテイカウントを格納する誤 り取扱い器手段と、前記メツセージ検査器を通つた誤りのない全てのメツセージ を前記データメモリに格納し、障害を起しているノードの識別を前記スケジユー ラーを送り、かつ全ての誤りレポートを前記誤り取扱い器へ送るための手段と、 を更に備え、前記ノード間メツセージは誤りメツセージを含み、各誤りメツセー ジは特定のノードに対する前記誤りフアイルの内容と、各ノードのベースペナル テイカウントを含むベースペナルテイカウントメツセージとを含む動作制御器。 5.請求項4記載の動作制御器において、前記票決器サプシステムは、 前記障害器から受けたデータ値を分類して上側中間値を発生する上側中間値ソー タと、 前記耐障害器から受けたデータ値を分類して下側中間値ソータと、 前記上側中間値と前記下側中間値の平均を求めて、前記票決値を発生する平均手 段と、 受けた各メツセージの内容を前記上側中間値および前記下側中間値と比較して前 記逸脱ベクトルを発生する逸脱検査器手段と、 前記耐障害器から受けたメツセージの内容を前記上側中間値ン−タと前記下側中 間値ソータおよび前記逸脱検査器手段にロードするローダ手段と、を備える動作 制御器。 6.請求項5記載の動作制御器において、前記タスクスケジユーラーは、 前記多重ノード処理装置内の各アクテイプタスクにエントリイを含むタスクアク テイビテイリストと、実行のために利用できる、前記タスクアクテイビテイリス ト内のアクテイプなタスクの選択された部分を含む優先走査リストと、 前記優先走査リスト内に格納されている前記アクテイプタスクの同じ選択された 部分を格納する完了状態リストと、 各ノードに対して、選択する用意がてきているアクテイプタスクをそれらの好適 な実行順序で格納する選択列と、 前記基本的なタイミング期間をカウントして、新しいマスタ期間が過ぎた基本的 な期間の数に対応する期間カウントを発生する期間カウントと、前記タスクアク テイビテイリストを質問して前記優先走査リストと前記期間カウントより長い周 期性を有する全てのアクテイプタスクの前記完了状態リストとを転送するウエイ クアツプシーケンサ手段と、各ノードエントリイに対して、前記優先走査リスト 内の、そのノードにより実行する用意ができている最高の3つの優先アクテイプ タスクを各ノードエントリイに対する前記選択列へ転送する優先走査手段と、 それ自身のノードのための前記選択列に現在格納されている最高優先アクテイプ タスクを、それ自身のアプリケーシヨンズプロセツサにより実行することを予定 されている次のタスクとして選択するタスク選択器手段と、 前記タスクアクテイプテイリストと、前記優先走査リストと、前記完了状態リス トと、タスクの完了を知らせるノード間メツセージにおいて識別される前記選択 列とにおける各タスクの状態を更新するタスク相互作用一貫性取扱い器手段と、 を備え、前記各エントリイはそのタスクのための実行周期性とノード割当てとを 含み、 前記アクテイプタスクの前記選択された部分はそれらの好適な動作順序で格納さ れる動作制御器。 7.請求項6記載の動作制御器において、前記タスクコミユニケータは、 票決値を格納する複数のエントリイをおのおの有し、コンテキストビツトにより 識別される少くとも2つの区画をおのおの有し、前記票決値を格納するデータメ モリと、 各データ識別符号のためのコンテキストビツトを格納するコンテキストビツトメ モリと、前記タスクスケジユーラーにより発生された前記タスク終了信号に応答 して、前記ビツトメモリ内のコンテキストビツトの補数をとる終了記録器と、前 記メモリ内メツセージ種類符号と、前記データ識別符号と、票決値に関連する前 記コンテキストビツトの補数とを前記データメモリ内に適切にエントリイするた めのアドレスとして用いて前記票決値を前記データメモリに格納する記憶装置デ ータ制御器と、 アプリケーシヨンズプロセツサにより実行するためにタスクスケジユーラーによ り選択されたタスクのタスク識別符号を格納する次のタスクレジスタと、アプリ ケーシヨンズプロセツサにより実行すべき次のタスクの実体と、前記次のタスク の実行のために求められる票決値とを格納するためにアプリケーシヨンズプロセ ツサによりアクセスできる入力FIFOと、 処理装置内の全てのノードへ送られる前記タスク完了/開始メツセージを発生す ることを前記先行するタスクに完了させるアプリケーシヨンズプロセツサに応答 して、前記次のタスクのタスク識別符号を前記入力FIFOレジスタへ転送させ 、かつ前記次のタスクの実行のために求められる票決値のための前記データメモ リをアクセスする入力取扱い器と、端タスクの実行の結果として得たデータ値を 前記アプリケーシヨンズプロセツサから受ける出力FIFOレジスタと、 前記多重処理装置内の全てのノードへ送られるデータ値メツセージを発生する出 力取扱い器と、を備え、前記コンテキストビツトは、アプリケーシヨンズプロセ ツサによるタスクの実行に用いる用意ができている、前記データメモリに格納さ れている前記票決値を識別し、 前記入力取扱い器は前記コンテキストビツトを用いて、前記データメモリ内のど の票決値を前記次のタスクの実行に使用するかを識別し、前記データ値メツセー ジは、前記出力FIFOレジスタに格納されているデータ値と、そのデータ値の ための識別符号とを含む動作制御器。 8.請求項7記載の動作制御器において、前記時間依存メツセージは交番する同 期時間依存メツセージおよび前同期時間依存メツセージを含み、前記同期器は、 前記同期時間依存メツセージおよび前同期時間依存メツセージを受けるメツセー ジインターフエイスと、 ローカル時間を発生するカウンタ手段と、装置内の各ノードに対して1つのエン トリイを有する時刻スタンプメモリと、 各ノードからの時間依存メツセージの受信に応答して、前記時間依存メツセージ が受けられるローカル時間に対応する時刻スタンプを発生し、それから時間依存 メツセージが受けられたノードに関連するエントリイ内の前記時刻スタンプメモ リに前記時刻スタンプを格納する時刻スタンバと、 前記前同期時間依存メツセージのための前記時刻スタンプメモリに格納されてい る時刻スタンプの中間値に対応する票決された時刻スタンプを発生する時刻スタ ンプ票決器と、 前記票決された時刻スタンプとそれ自身の前同期時間依存メツセージの間の差に 対応する値を有する同期デルタを発生する同期修正発生器と、前記同期デルタを 公称送信時間間隔に加える手段と、 前記同期時間依存メツセージと前記前同期時間依存メツセージを発生するメツセ ージ発生器手段と、を備え、前記公称送信時間間隔は、同期時間依存メツセージ の送信の終りと前同期時間依存メツセージが前記送信器へ通る時との間の最短タ イミング間隔に対応し、前記メツセージ発生器手段は、前記最短送信タイミング 間隔の終りに前記前同期時間依存メツセージ送信器へ送り、前記実際の送信タイ ミング間隔の終りに前記同期時間依存メツセージを送信器へ送る動作制御器。 9.所定のタスクセツトを処理するアプリケーシヨンズプロセツサ(14)と、 それ自身のノードの動作を制御する動作制御器(12)とを有し、動作制御器( 12)は処理装置内の他の全てのノード(10)へメツセージを送信する送信器 (30)と、公称タイミング間隔だけ時間的に分離されている交番する前同期メ ツセージと同期メツセージを含むノード間時間依存メツセージの交換により、そ れ自身のノード(10)の動作を装置内の他の全てのノード(10)の動作に同 期させる同期器(46)とを有する、多重ノード処理装置において、 同期時間依存メツセージと前同期時間依存メツセージを受けるメツセージインタ ーフエイス(942)と、ローカル時間を発生するカウンタ手段(969,97 1)と、 装置内の各ノード(10)に対して、関連するノードから受けた最近の時間依存 メツセージに対する時刻スタンプをおのおの格納する1つのエントリイを各ノー ド(10)に対して有する時刻スタンプメモリ(966)と、 各ノード(10)からの時間依存メツセージの受信に応答して、その時に前記時 間依存メツセージが受けられるローカル時刻に対応する時刻スタンプを発生し、 かつ、それから時間依存メツセージが受けられたノード(10)に関連するエン トリイ内の前記時刻スタンプメモリ(966)に前記時刻スタンプを格納する時 刻スタンバ(972)と、 前記前同期時間依存メツセージのための前記時刻スタンプメモリ(966)に格 納されている時刻スタンプの中間値に対応する票決された時刻スタンプを発生す る時刻スタンプ票決器(956)と、前記票決された時刻スタンプとそれ自身の 前同期時間依存メツセージの間の差に対応する値を有する同期デルタを発生する 同期修正発生器(990)と、前記同期デルタを公称送信時間間隔に加えて実際 の送信タイミング間隔を発生する手段と、前記同期時間依存メツセージと前記前 同期時間依存メツセージを発生するメツセージ発生器手段(998)と、 を備え、前記公称送信時間間隔は、同期時間依存メツセージの送信の終りと、前 同期時間依存メツセージの送信器(30)への送信との間の公称タイミング間隔 に対応し、前記メツセージ発生器手段(998)は、前記公称送信タイミング間 隔が過ぎた時に前記前同期時間依存メツセージを送信器(30)へ送り、かつ、 前記実際の送信タイミング間隔が過ぎた時に前記同期時間依存メツセージを送信 器へ送る多重ノード処理装置。 10請求項1記載の同期器において、前記同期時間依存メツセージと前記前同期 時間依存メツセージの送信の終りに一致する少くとも第1の信号と、その間にそ れ自身のノードに同期しているノードから前記同期時間依存メツセージと前記前 同期時間依存メツセージの全てを受けなければならないような、前記第1の信号 を囲む時間間隔を定めるハード誤り信号とを発生するタイミング信号発生器(9 50)を有し、前記同期器(46)は前記ハード誤りウインドウ内て受けられな かつた時間依存メツセージを有する各ノード(10)に対して前記時刻スタンプ メモリ(966)内に時刻スタンプを記録することを前記時刻スタンバ(972 )に対して禁止し、前記ハード誤りウインドウ内て受けられなかつた時間依存メ ツセージを有する各ノードに対するハード誤りを記録するためのハード誤りウイ ンドウ検出器(976)を有する同期器(46)。 11.請求項2記載の同期器(46)において、前記タイミング信号発生器(9 50)は、前記第1の信号を複数のサプ間隔に分割する第2のタイミング信号を 発生し、前記カウンタ手段(969,971)は、前記第1のタイミング信号の 間で前記第2のタイミング信号をカウントしてサプ間隔カウントを発生する第1 のカウンタ手段(971)と、前記第2のタイミング信号の間でクロックパルス をカウントしてクロツクカウントを発生する第2のカウンタ手段と、 を備え、前記時刻スタンプは前記サプ間隔カウントを含む粗時刻スタンプ部と、 前記クロツクカウントを含む精密スタンプ部分とを含む同期器(46)。 12.請求項3記載の同期器(46)において、前記時刻スタンプ票決器(95 6)は、前器タイミングスタンプメモリ(966)に格納されている前記サプ間 隔カウントの中間値に対応する票決された粗時間間隔と、前記時間メモリ(96 6)に格納されている前記クロツクカウントの中間値に対応する票決された精密 時刻スタンプとを発生し、前記同期修正発生器(990)は、前記票決された粗 時刻スタンプと、それ自身の粗時刻スタンプの間の差に等しい粗デルタと、前記 票決された精密時刻スケジユーラーと、それ自身の時刻スタンプ中のクロツクカ ウントの数との間の差に等しい精密デルタとを発生する同期器(46)。 13.請求項4記載の同期器(4)において、前記同期時間依存メツセージと前 記前同期時間依存メツセージは同じメツセージ種類符号を有し、かつそれに含ま れている機能ビツトにより識別され、前記同期器(46)は、わるいメツセージ 種類符号を有するハード誤りウインドウ内でメツセージを送る各ノード(10) に対してシーケンス誤りを記録し、かつ、その中においては前記同期時間依存メ ツセージと前記前同期時間依存メツセージが交互に受けられないような各ノード (10)に対するシーケンス誤りを記録する予測されるメツセージ検出器(97 4)を更に有し、前記予測されるメツセージ検出器(974)は、検出された誤 りシーケンスを有するメツセージを送つた各ノード(10)に対する前記時刻ス タンバ(972)が前記時刻スタンプメモリ(966)に時刻スタンプを記録す ることを禁止する動作制御器。 14.各ノード(10)が1組のアプリケーシヨンズタスクの所定のサプセツト を実行できるアプリケーシヨンズプロセツサ(14)と、ノード(10)の動作 を制御し、前記タスクの所定のサプセツト内の個々のタスクを、データと動作情 報を含むノード間メツセージを処理装置内の他の全てのノード(10)と交換す ることにより、アプリケーシヨンズプロセツサ(14)により実行する順序をス ケジユーリングし、動作制御器(12)は少くとも2つのタイミング期間間隔と 、基本タイミング期間と、この基本クイミング間隔の整数倍であるマスタ期間と を発生し、そのマスタ期間は、その間で前記所定のタスクサプセツト内のあらゆ るタスクがアプリケーシヨンズプロセツサにより少くとも1回実行するためにス ケジユールをたてられたタイミング期間を定める多重ノード耐障害処理装置にお いて、 前記多重ノード処理装置内の各アクテイプタスクのためのエントリイを含むタス クアクテイビテイリスト(444)と、 実行のために利用できる、前記タスクアクテイビテイリスト(444)内のアク テイプタスクの選択された部分を含む優先走査リスト(446)と、前記優先走 査リスト(446)内に格納された前記アクテイプタスクの同じ選択された部分 を格納する完了状態リスト(438)と、 各ノードに対して、それの好適な実行順序で選択する用意ができているアクテイ プタスクを格納する選択列(450)と、 新しいマスタ期間の初めから切れている前記基本タイミング期間の数に対応する 期間カウンタ(442)と、 前記タスクアクテイビテイリスト(444)を質問して、前記期間カウントより 長い周期性を有する全てのアクテイプタスクを前記優先走査リスト(446)と 前記完了状態リスト(438)へ転送するウエイクアツプシーケンサ手段(44 0)と、 各ノードエントリイに対して、そのノードにより実行される用意ができている最 高3つの優先走アクテイプタスクを前記選択列(450)へ転送する優先走査手 順(448)と、 それ自身のノードのために、それ自身のアプリケーシヨンズプロセツサにより実 行するためにスケジユールされている次のタスクとして、前記選択列中に現在格 納されている最高優先度のアクテイプタスクを選択するタスク選択器手段と、 前記タスクアクテイビテイリスト(444)内と、前記優先走査リスト(446 )と、前記完了状態リスト(438)と、前記選択列(450)とにおける各タ スクの状態を更新するタスク相互作用一貫性取扱い器(436)と、 を備え、前記各エントリイは実行周期性とそのタスクに対するノード割当とを含 み、前記アクテイプタスクの前記選択された部分はそれらの好ましい実行順序で 格納されるタスクスケジユーラー(40)。 15.請求項1記載のタスクスケジユーラー(40)において、前記完了状態リ スト(438)の各タスクエントリイは、そのタスクを実行することをスケジユ ールに組まれているノードの数の2の補数を格納する完了カウントエントリイを 有し、前記タスク相互作用一貫性取扱い器(436)は、そのタスクをどのノー ドが完了したかを識別するノード間メツセージに応答して前記完了カウントを増 加し、前記完了カウントが零まで減少させられて、そのタスクを実行することが スケジユールに組まれている全てのノード(10)によりタスクが実行されたこ とを示す時に、終了されたフラツグをセツトする手段を有するタスクスケジユー ラー(40)。 16.請求項1記載のタスクスケジユーラー(40)において、前記タスクアク テイビテイリスト(444)の各タスクエントリイと前記優先走査リスト(44 6)は、それを実行できる前に終了させねばならない先行カウントを有し、前記 タスク相互作用一貫性取扱い器(436)は、それに対しては終了されたタスク が先行するような全てのタスクの実体を格納する後継リストと、タスクの終了に 応答して前記後継リストをアクセスし、それに対しては終了させられたタスクが 先行するような各タスクを識別し、かつ前記各識別されたタスクのための前記タ スクアクテイビテイリスト(444)および前記優先走査リスト(448)の内 部の先行カウントを減少させるための手段とを有するタスクスケジユーラー(4 0)。 17.請求項3記載のタスクスケジユーラー(40)において、各ノード(10 )に対して、そのノードにより現在実行されているタスクを格納する「古いタス ク」リスト(458)を更に有し、前記タスク相互作用一貫性取扱い器(436 )は、新じいタスクを開始したことを知らせた各ノード(10)のための現在格 納されている最高優先度のタスクを前記選択列(450)内で「使用ずみ」とし て記録し、かつ前記最高優先度のタスクの実体を前記「古いタスク」リスト(4 58)内に記録する手段を有するタスクスケジユーラー(40)。 18.請求項1記載のタスクスケジユーラー(40)において、ノード(10) の間で交換されるノード間メツセージはタスク完了/開始メツセージとタスク相 互作用一貫性メツセージを含み、前記タスク完了/開始メツセージは、ノードが 新しいタスクを開始した時は常に他の全てのノード(10)へ送られ、前記タス ク完了/開始メツセージは少くとも開始されたタスクの実体とそのノードにより 完了されたタスクの実体を含み、前記タスク相互作用一貫性メツセージは所定の タイミング間隔で送られ、かつ、タスク完了/開始メツセージを送つた各ノード (10)を識別するタスク完了ベクトルを含み、前記タスク完了ベクトルは前記 所定のタイミング間隔で全てのノード(10)から受けたタスク完了/開始メツ セージの票決された複合物であり、前記タスクスケジユーラー(40)は、その ノード(10)から受けた前記タスク完了/開始メツセージ中に開始したと報じ られたタスクの実体を格納し、前記タスク相互作用一貫性取扱い器(436)は 前記タスク相互作用一貫性メツセージに含まれているタスク完了ベクトルに応答 して、前記タスク完了ベクトルにおいてタスクを完了したとして識別された各ノ ード(10)に対して格納された最高優先度のタスクの実体を、前記タスク開始 レジスタ(434)に格納されているタスクの実体と比較し、それらが同じでな い時はシーケンス誤りを発生するタスクスケジユーラー(40)。 19.各ノードが所定のタスクセツトを実行するためのアプリケーシヨンズプロ セツサと、ノード間メツセージを交換することにより、それ自身のノードの動作 を処理装置内の他の全てのノードと一致して制御するための動作制御器とを有し 、動作制御器はノード間メツセージを発生する少くとも3つのサプシステムを含 み、それらのサプシステムは、多数のノードの相互の同期をとるのに用いられる 所定の時間間隔をマークする時間依存ノード間メツセージを発生して、アプリケ ーシヨンズプロセツサにより実行するタスクのスケジユーリングを統合されたや り方で行う同期器と、動作制御器のための送信器とを有する多重ノード処理装置 において、 第1のサプシステムにより発生されたメツセージを受けるインターフエイスと、 第2のサプシステムにより発生されたメツセージを受ける第2のインターフエイ スと、 前記同期器により発生された前記時間依存ノード間メツセージを受ける同期器イ ンターフエイスと、送るべきメツセージを受けている前記第1のインターフエイ スと、前記第2のインターフエイスと、前記同期器インターフエイスとに応答し てそれらのメツセージの優先順位を仲裁し、どのメツセージを送るかを識別する 送信信号を発生し、前記第1のインターフエイスと前記第2のインターフエイス により受けられたメツセージの送信が前記時間依存ノード間メツセージの送信を 妨害するならば、前記第1のインターフエイスと前記第2のインターフエイスに より受けられたメツセージの送信を遅らせる仲裁器と、 前記ノード間メツセージを専用通信回線を介して前記処理装置内の全てのノード へ送信するための直列フオーマツトに変換する並列−直列変換器と、前記第1の インターフエイスと、前記第2のインターフエイスと、前記同期器インターフエ イスとの1つに格納されているメツセージを、前記仲裁器により発生された前記 送信信号に応答して前記並列−直列変換器へ送る第1のマルチプレクサと、を備 える多重ノード処理装置。 20.多重ノード処理装置内の各ノードが所定のタスクセツトを実行するための アプリケーシヨンズプロセツサと、データと動作情報を含んでいるノード間メツ セージを交換することにより、処理装置内の他のノードと一致してノードの動作 を制御するための動作制御器とを有し、各動作制御器は複数の受信器を有し、各 受信器は前記多数のノードのうちの選択された1つにより送られたメツセージの みを受け、各ノード間メツセージは、メツセージを送つたノードを識別する識別 符号と、メツセージの種類を識別するメツセージ種類符号と、メツセージに含ま れているデータを更に識別するデータ識別符号とを含む多重ノード処理装置にお いて、 受けたメツセージを受信器からアンロードするために、複数の受信器の間で所定 の順序でコンテキスト切換えを行うシーケンサ手段と、 少くともメツセージ種類符号と、データ識別符号と、処理される特定のバイトと 誤り状態バイトを識別するバイトカウントとをおのおの格納する、各ノードに対 して1つのエントリイを有し、処理されるメツセージに属する関連する情報を格 納するコンテキスト記憶装置と、 メツセージに含まれているノード識別符号を、そのメツセージを受けた受信器に 関連する予測されるノード識別符号を参照して検査し、メツセージ種類符号を検 査し、データ識別符号を最大データ識別符号に対して検査し、かつメツセージに 含まれているバイトの数を検査して、前記誤り状態バイト中の検出された全ての 誤りを記録する誤り検査論理手段と、メツセージに含まれているデータ値を所定 の最大限度値と所定の最小限度値とに対して検査し、メツセージに含まれている データ値が前記最大限度値と前記最小限度値内にない時は限度を超えた誤りを前 記誤り検査論理手段へ常に知らせる限度間検査器手段と、 受けた各メツセージを動作制御器で更に処理するためにそのメツセージを送るマ ルチプレクサ手段と、を備え、知らせを受けた前記誤り検査論理手段は前記超過 限度誤りを前記誤り状態バイトに記録し、前記マルチプレクサ手段は送られる各 メツセージに、コンテキスト記憶装置に現在格納されている誤り状態バイトを附 する動作制御器のメツセージ検査器。 21.各ノードがアプリケーシヨンズタスクを実行するためのアプリケーシヨン ズプロセツサと、ノード間メツセージを交換することにより、ノードの動作を処 理装置内の他の全てのノードと一致して制御し、かつアプリクーシヨンズプロセ ツサにより実行すべきタスクを選択するための動作制御器とを有し、動作制御器 はメツセージ検査器と、スケジユーラーと、同期器と、票決器を含む複数のサプ システムを有し、各サプシステムは誤りを検出して、検出された各誤りを識別す る内部誤りレポートを発生し、各動作制御器は少くとも2つの動作している装置 の状態を含み、処理装置内で動作する障害の無いノードの数を変えることになる 、障害を起したノードの除外または障害の無いノードの再加入に応答して、1つ の動作装置状態から別の動作装置状態へ切換わる、多重ノード耐障害処理装置に おいて、 受けた、誤りのない全てのノード間メツセージの内容を格納するメツセージメモ リと、 受けた誤りレポートの内容を格納する誤りフアイルと、 前記複数のサプシステムから受けた誤りレポートを前記誤りフアイルに格納し、 各ノードに対してベースペナルテイカウントを前記誤りフアイルの内容から発生 する誤り取扱い器手段と、 メツセージ検査器をパスした誤りのない全てのメツセージを前記メツセージメモ リに格納し、障害のあるノードの実体をスケジユーラーと同期器へ送り、かつ全 ての誤りレポートを前記誤り取扱い器へ送るインターフエイス手段と、 を備え、前記ベースペナルテイカウントは特定のノードの動作状態を示し、前記 誤り取扱い器手段は、装置内の他の全てのノードと一致して、どのノードに障害 が起きているか、およびその障害が起きているノードを前記多重ノード処理装置 の動作に関与することから除外することを、ノード間メツセージの交換により決 定する手段を含み、前記ノード間メツセージは、特定のノードに対する誤りフア イルの内容を含んでいる誤りメツセージを含む誤りメツセージと、各ノードの前 記ベースペナルテイカウントを含むベースペナルテイカウントメツセージを含む 動作制御器の耐障害器。 22.多重ノード処理装置内の各ノードがアプリケーシヨンズタスクの所定のセ ツトを実行するためのアプリケーシヨンズプロセツサと、データと動作情報を含 んでいるノード間メツセージを交換することにより、処理装置内の他の全てのノ ードと一致してノードの動作を制御し、かつアプリケーシヨンズプロセツサによ り実行すべきタスクを選択するための動作制御器とを有する多重ノード処理装置 の票決サプシステムにおいて、 前記ノード間メツセージ内て受けた複数の値を並列に処理して票決された値を発 生する票決器手段と、前記ノード間メツセージにおいて受けた前記複数の値のお のおのを並列に前記票決値と比較し、所定の逸脱値より以上に前記票決値から異 なる前記複数の値の各受けた値を識別する逸脱ベクトルを発生する逸脱検査器手 段と、 前記ノード間メツセージにおいて受けた前記値を前記票決器手段と前記逸脱検査 器手段にロードするローダ手段と、 を備える多重ノード耐障害処理装置の票決器サプシステム。 23.複数の受けた値を分類して上側中間値と下側中間値を取出す分類器手段と 、 前記上側中間値と前記下側中間値を平均して前記票決値を発生する平均手段と、 前記分類器手段に前記複数の受けた値を、最上位位置から始つて最下位ビツト位 置までビツトごとにロードするローダ手段と、 を備える高速票決装置。
JP63504242A 1987-04-15 1988-04-15 耐障害多重ノード処理装置用動作制御装置 Pending JPH02503122A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US07/038,818 US4816989A (en) 1987-04-15 1987-04-15 Synchronizer for a fault tolerant multiple node processing system
US07/038,813 US4914657A (en) 1987-04-15 1987-04-15 Operations controller for a fault tolerant multiple node processing system
US07/039,190 US4805107A (en) 1987-04-15 1987-04-15 Task scheduler for a fault tolerant multiple node processing system
US038,818 1987-04-15
US039,190 1987-04-15
US038,813 1987-04-15

Publications (1)

Publication Number Publication Date
JPH02503122A true JPH02503122A (ja) 1990-09-27

Family

ID=27365455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63504242A Pending JPH02503122A (ja) 1987-04-15 1988-04-15 耐障害多重ノード処理装置用動作制御装置

Country Status (5)

Country Link
US (6) US4914657A (ja)
EP (1) EP0356460A4 (ja)
JP (1) JPH02503122A (ja)
CA (1) CA1301938C (ja)
WO (1) WO1988008161A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011243216A (ja) * 2002-03-29 2011-12-01 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
WO2016067420A1 (ja) * 2014-10-30 2016-05-06 三菱電機株式会社 計算機及びデータ処理方法及びプログラム

Families Citing this family (403)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914657A (en) * 1987-04-15 1990-04-03 Allied-Signal Inc. Operations controller for a fault tolerant multiple node processing system
US5136708A (en) * 1987-06-09 1992-08-04 Oce-Nederland B.V. Distributed office automation system with specific task assignment among workstations
DE3719283A1 (de) * 1987-06-10 1988-12-22 Bosch Gmbh Robert Verfahren zur lokalisierung defekter stationen in lokalen netzwerken und dazugehoeriger schnittstellencontroller
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
US5204865A (en) * 1988-02-29 1993-04-20 Kabushiki Kaisha Komatsu Seisakusho Data extracting circuit for serial control apparatus
US5091870A (en) * 1988-05-27 1992-02-25 Ncr Corporation Apparatus for measuring the speed of transmission of digital characters
US5025369A (en) * 1988-08-25 1991-06-18 David Schwartz Enterprises, Inc. Computer system
US4985831A (en) * 1988-10-31 1991-01-15 Evans & Sutherland Computer Corp. Multiprocessor task scheduling system
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US5594866A (en) * 1989-01-18 1997-01-14 Intel Corporation Message routing in a multi-processor computer system with alternate edge strobe regeneration
US5057997A (en) * 1989-02-13 1991-10-15 International Business Machines Corp. Interruption systems for externally changing a context of program execution of a programmed processor
JPH02245864A (ja) * 1989-03-20 1990-10-01 Hitachi Ltd 多重プロセッサシステム
JPH02287858A (ja) * 1989-04-28 1990-11-27 Toshiba Corp 分散処理システムのリスタート方式
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
US5261085A (en) * 1989-06-23 1993-11-09 Digital Equipment Corporation Fault-tolerant system and method for implementing a distributed state machine
US5138708A (en) * 1989-08-03 1992-08-11 Unisys Corporation Digital processor using current state comparison for providing fault tolerance
US5247650A (en) * 1989-08-30 1993-09-21 Industrial Technology Institute System for combining originally software incompatible control, kinematic, and discrete event simulation systems into a single integrated simulation system
JPH03130842A (ja) * 1989-10-17 1991-06-04 Toshiba Corp データベースシステムの同時実行制御装置
US6038584A (en) * 1989-11-17 2000-03-14 Texas Instruments Incorporated Synchronized MIMD multi-processing system and method of operation
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5208914A (en) * 1989-12-29 1993-05-04 Superconductor Systems Limited Partnership Method and apparatus for non-sequential resource access
US5381536A (en) * 1989-12-29 1995-01-10 Cray Research, Inc. Method and apparatus for separate mark and wait instructions for processors having multiple memory ports
US5218676A (en) * 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
US5203004A (en) * 1990-01-08 1993-04-13 Tandem Computers Incorporated Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5150367A (en) * 1990-03-02 1992-09-22 General Electric Company Composite range constraint propagation control
US5214780A (en) * 1990-03-23 1993-05-25 Sun Microsystems, Inc. Synchronized journaling system
JP2793993B2 (ja) * 1990-04-05 1998-09-03 株式会社ゼクセル マイクロコンピュータにおけるプログラム暴走検出方法
DE69121973T2 (de) * 1990-05-30 1997-01-30 Fujitsu Ltd Verarbeitungssystem zur Ausgabe vom Verwendungsrecht vom Betriebsmittel
US5202988A (en) * 1990-06-11 1993-04-13 Supercomputer Systems Limited Partnership System for communicating among processors having different speeds
US5440730A (en) * 1990-08-09 1995-08-08 Bell Communications Research, Inc. Time index access structure for temporal databases having concurrent multiple versions
WO1992003784A1 (en) * 1990-08-23 1992-03-05 Supercomputer Systems Limited Partnership Scheduling method for a multiprocessing operating system
US5448731A (en) * 1990-11-20 1995-09-05 International Business Machines Corporation Method and apparatus for controlling the deferred execution of user requests in a data processing system
US5386555A (en) * 1991-01-29 1995-01-31 Casio Computer Co., Ltd. Data processing system having a plurality of units in which design of the system can be changed by simple definition
US5235602A (en) * 1991-06-11 1993-08-10 International Business Machines Corporation Synchronous/asynchronous i/o channel check and parity check detector
GB2259797B (en) * 1991-09-19 1995-08-16 Rockwell International Corp Fault tolerant multi-drop communications system
US6295615B1 (en) 1991-12-09 2001-09-25 Sprint Communications Company, L. P. Automatic restoration of communication channels
EP0548381B1 (de) * 1991-12-18 1997-11-26 Siemens Aktiengesellschaft Verfahren zur Uhrzeitführung in Computernetzen
GB2263988B (en) * 1992-02-04 1996-05-22 Digital Equipment Corp Work flow management system and method
US5428769A (en) * 1992-03-31 1995-06-27 The Dow Chemical Company Process control interface system having triply redundant remote field units
US5287508A (en) * 1992-04-07 1994-02-15 Sun Microsystems, Inc. Method and apparatus for efficient scheduling in a multiprocessor system
JP2534430B2 (ja) * 1992-04-15 1996-09-18 インターナショナル・ビジネス・マシーンズ・コーポレイション フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法
JP3268338B2 (ja) * 1992-04-22 2002-03-25 株式会社日立製作所 計算機システム
US5325526A (en) * 1992-05-12 1994-06-28 Intel Corporation Task scheduling in a multicomputer system
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
JPH0683652A (ja) * 1992-08-31 1994-03-25 Sharp Corp マイクロコンピュ−タシステム
US5903757A (en) * 1992-09-10 1999-05-11 International Business Machines Corporation Monitoring and handling of exception conditions in computer system
EP0592080A2 (en) * 1992-09-24 1994-04-13 International Business Machines Corporation Method and apparatus for interprocess communication in a multicomputer system
US5421004A (en) * 1992-09-24 1995-05-30 International Business Machines Corporation Hierarchical testing environment
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
US6951019B1 (en) * 1992-09-30 2005-09-27 Apple Computer, Inc. Execution control for processor tasks
US5715386A (en) * 1992-09-30 1998-02-03 Lucent Technologies Inc. Apparatus and methods for software rejuvenation
CA2100540A1 (en) * 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
US5471631A (en) * 1992-10-19 1995-11-28 International Business Machines Corporation Using time stamps to correlate data processing event times in connected data processing units
AU5343794A (en) * 1992-11-06 1994-06-08 University Of Newcastle-Upon-Tyne Efficient schemes for constructing reliable computing nodes in distributed systems
US6151689A (en) * 1992-12-17 2000-11-21 Tandem Computers Incorporated Detecting and isolating errors occurring in data communication in a multiple processor system
US5513354A (en) * 1992-12-18 1996-04-30 International Business Machines Corporation Fault tolerant load management system and method
JPH06188909A (ja) * 1992-12-18 1994-07-08 Fujitsu Ltd 異常パケット処理方式
US5507002A (en) * 1992-12-24 1996-04-09 At&T Global Information Solutions Company Peripheral component interconnect special cycle protocol using soft message IDS
FR2700401B1 (fr) * 1993-01-08 1995-02-24 Cegelec Système de synchronisation de tâches répondantes.
US5426774A (en) * 1993-04-06 1995-06-20 Honeywell Inc. Method for maintaining a sequence of events function during failover in a redundant multiple layer system
US5577196A (en) * 1993-04-07 1996-11-19 Sprint Communications Co. L.P. Intelligent digital signal hitless protection switch
US5506956A (en) * 1993-04-07 1996-04-09 Sprint Communications Company L.P. Error correction and channel restoration apparatus for T1 digital links
JPH06332710A (ja) * 1993-05-21 1994-12-02 Fujitsu Ltd オブジェクト指向データ処理システム
JPH0721135A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 二重化監視機能を持つデータ処理システム
US5600786A (en) * 1993-07-30 1997-02-04 Honeywell Inc. FIFO fail-safe bus
US5473771A (en) * 1993-09-01 1995-12-05 At&T Corp. Fault-tolerant processing system architecture
US5440741A (en) * 1993-09-20 1995-08-08 Motorola, Inc. Software overload control method
US5812757A (en) * 1993-10-08 1998-09-22 Mitsubishi Denki Kabushiki Kaisha Processing board, a computer, and a fault recovery method for the computer
US5604863A (en) * 1993-11-01 1997-02-18 International Business Machines Corporation Method for coordinating executing programs in a data processing system
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
EP0731945B1 (en) * 1993-12-01 2000-05-17 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5640504A (en) * 1994-01-24 1997-06-17 Advanced Computer Applications, Inc. Distributed computing network
US5600822A (en) * 1994-04-05 1997-02-04 International Business Machines Corporation Resource allocation synchronization in a parallel processing system
US5577211A (en) * 1994-05-11 1996-11-19 Ibm Corporation System and method using chained structure queues for ordering of message delivery between connected nodes wherein unsuccessful message portion is skipped and retried
JPH07312616A (ja) * 1994-05-18 1995-11-28 Fujitsu Ltd 受信選択方式の通信システムの二重受信防止方法
US5586252A (en) * 1994-05-24 1996-12-17 International Business Machines Corporation System for failure mode and effects analysis
JP3636744B2 (ja) * 1994-06-14 2005-04-06 株式会社日立製作所 分散システムおよび分散システムの自動運転スケジュールの作成方法
JPH0863365A (ja) * 1994-08-23 1996-03-08 Fujitsu Ltd データ処理装置
US5644700A (en) * 1994-10-05 1997-07-01 Unisys Corporation Method for operating redundant master I/O controllers
US5586305A (en) * 1994-10-21 1996-12-17 Hewlett-Packard Company Smart distributed measurement and control system with a flexible architecture
US5657245A (en) * 1994-11-09 1997-08-12 Westinghouse Electric Corporation Component maintenance system
US8588729B2 (en) 1994-11-21 2013-11-19 Bgc Partners, Inc. Method for retrieving data stored in a database
US6876309B1 (en) * 1994-11-21 2005-04-05 Espeed, Inc. Bond trading system
US5734817A (en) * 1995-03-01 1998-03-31 Unisys Corporation Method for making a data base available to a user program during data base recovery
US5596716A (en) * 1995-03-01 1997-01-21 Unisys Corporation Method and apparatus for indicating the severity of a fault within a computer system
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5666486A (en) * 1995-06-23 1997-09-09 Data General Corporation Multiprocessor cluster membership manager framework
US5796935A (en) * 1995-07-20 1998-08-18 Raytheon Company Voting node for a distributed control system
US5802340A (en) * 1995-08-22 1998-09-01 International Business Machines Corporation Method and system of executing speculative store instructions in a parallel processing computer system
US5682470A (en) * 1995-09-01 1997-10-28 International Business Machines Corporation Method and system for achieving collective consistency in detecting failures in a distributed computing system
US5832262A (en) * 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
US5887143A (en) * 1995-10-26 1999-03-23 Hitachi, Ltd. Apparatus and method for synchronizing execution of programs in a distributed real-time computing system
US6141769A (en) 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US5742753A (en) * 1996-06-06 1998-04-21 The Boeing Company Mesh interconnected array in a fault-tolerant computer system
EP0825506B1 (en) * 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US6275844B1 (en) * 1997-02-03 2001-08-14 Electronic Data Systems Corporation Automatically maintaining applications in a computer system using a check-in time
CA2228574A1 (en) * 1997-06-05 1999-08-02 Attention Control Systems, Inc. An automatic planning and cueing system and method
DE19742918A1 (de) * 1997-09-29 1999-04-01 Cit Alcatel Verfahren zum Austausch von Datenpaketen innerhalb eines sicheren Mehrrechnersystems
US5978928A (en) * 1997-10-17 1999-11-02 Hewlett-Packard Company Relative logarithmic time stamps for reduced memory map size
US6151620A (en) * 1997-10-22 2000-11-21 Novell, Inc. Conference messaging system
CA2309926A1 (en) 1997-11-14 1999-05-27 Erik Muench Method for maintaining the synchronized execution in fault resilient/fault tolerant computer systems
US6098179A (en) * 1998-01-22 2000-08-01 Digital Equipment Corporation Method and apparatus for performing error detection
JP3609599B2 (ja) * 1998-01-30 2005-01-12 富士通株式会社 ノード代理システム、ノード監視システム、それらの方法、及び記録媒体
US6601107B1 (en) * 1998-02-02 2003-07-29 Hughes Electronics Corporation Adaptive fuzzy control of data acquisition and broadcasting
US6263496B1 (en) 1998-02-03 2001-07-17 Amazing Media, Inc. Self modifying scene graph
US6272650B1 (en) * 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6243856B1 (en) 1998-02-03 2001-06-05 Amazing Media, Inc. System and method for encoding a scene graph
US6347253B1 (en) * 1998-04-30 2002-02-12 Kabushiki Kaisha Toshiba Control system for executing a task instruction by performing distributed processing via a number of modules
US6691183B1 (en) 1998-05-20 2004-02-10 Invensys Systems, Inc. Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation
US6748451B2 (en) * 1998-05-26 2004-06-08 Dow Global Technologies Inc. Distributed computing environment using real-time scheduling logic and time deterministic architecture
US6178522B1 (en) 1998-06-02 2001-01-23 Alliedsignal Inc. Method and apparatus for managing redundant computer-based systems for fault tolerant computing
JP4086372B2 (ja) * 1998-08-28 2008-05-14 キヤノン株式会社 通信システム、情報処理装置、出力装置、制御方法、及び、記憶媒体
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6389551B1 (en) 1998-12-17 2002-05-14 Steeleye Technology, Inc. Method of preventing false or unnecessary failovers in a high availability cluster by using a quorum service
GB2345161A (en) * 1998-12-23 2000-06-28 Motorola Ltd Microprocessor module and method
US6363496B1 (en) * 1999-01-29 2002-03-26 The United States Of America As Represented By The Secretary Of The Air Force Apparatus and method for reducing duration of timeout periods in fault-tolerant distributed computer systems
DE19910863A1 (de) * 1999-03-11 2000-09-21 Siemens Ag Vorrichtung und Verfahren zum Verarbeiten von Aufträgen
DE60041470D1 (de) * 1999-05-11 2009-03-19 Canon Kk Verfahren und Vorrichtung zur Synchronisierung zwischen zwei Netzwerken
AU5025600A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6754885B1 (en) 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
US7096465B1 (en) 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
US7272815B1 (en) 1999-05-17 2007-09-18 Invensys Systems, Inc. Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US7043728B1 (en) 1999-06-08 2006-05-09 Invensys Systems, Inc. Methods and apparatus for fault-detecting and fault-tolerant process control
US6501995B1 (en) 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6393126B1 (en) 1999-06-23 2002-05-21 Datum, Inc. System and methods for generating trusted and authenticatable time stamps for electronic documents
US6381712B1 (en) * 1999-06-30 2002-04-30 Sun Microsystems, Inc. Method and apparatus for providing an error messaging system
AU6615600A (en) 1999-07-29 2001-02-19 Foxboro Company, The Methods and apparatus for object-based process control
US6516404B1 (en) 1999-07-30 2003-02-04 International Business Machines Corporation Data processing system having hashed architected processor facilities
US6658556B1 (en) 1999-07-30 2003-12-02 International Business Machines Corporation Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction
US6449691B1 (en) 1999-07-30 2002-09-10 International Business Machines Corporation Asymmetrical cache properties within a hashed storage subsystem
US6598118B1 (en) 1999-07-30 2003-07-22 International Business Machines Corporation Data processing system with HSA (hashed storage architecture)
US6823471B1 (en) * 1999-07-30 2004-11-23 International Business Machines Corporation Method for providing high availability within a data processing system via a reconfigurable hashed storage subsystem
US6470442B1 (en) 1999-07-30 2002-10-22 International Business Machines Corporation Processor assigning data to hardware partition based on selectable hash of data address
US6446165B1 (en) 1999-07-30 2002-09-03 International Business Machines Corporation Address dependent caching behavior within a data processing system having HSA (hashed storage architecture)
US6801951B1 (en) * 1999-10-08 2004-10-05 Honeywell International Inc. System and method for fault-tolerant clock synchronization using interactive convergence
JP5220974B2 (ja) * 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6502141B1 (en) * 1999-12-14 2002-12-31 International Business Machines Corporation Method and system for approximate, monotonic time synchronization for a multiple node NUMA system
US6694362B1 (en) * 2000-01-03 2004-02-17 Micromuse Inc. Method and system for network event impact analysis and correlation with network administrators, management policies and procedures
US7099855B1 (en) 2000-01-13 2006-08-29 International Business Machines Corporation System and method for electronic communication management
US6779128B1 (en) 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
US8290768B1 (en) 2000-06-21 2012-10-16 International Business Machines Corporation System and method for determining a set of attributes based on content of communications
US6408277B1 (en) 2000-06-21 2002-06-18 Banter Limited System and method for automatic task prioritization
US9699129B1 (en) 2000-06-21 2017-07-04 International Business Machines Corporation System and method for increasing email productivity
US6801202B2 (en) * 2000-06-29 2004-10-05 Sun Microsystems, Inc. Graphics system configured to parallel-process graphics data using multiple pipelines
JP2002082815A (ja) * 2000-09-07 2002-03-22 Oki Electric Ind Co Ltd タスクプログラム制御システム
US6963887B2 (en) * 2000-09-22 2005-11-08 Sarnoff Corporation Method and device for performing data pattern matching
US20050157654A1 (en) * 2000-10-12 2005-07-21 Farrell Craig A. Apparatus and method for automated discovery and monitoring of relationships between network elements
US7383191B1 (en) 2000-11-28 2008-06-03 International Business Machines Corporation Method and system for predicting causes of network service outages using time domain correlation
US20030084020A1 (en) * 2000-12-22 2003-05-01 Li Shu Distributed fault tolerant and secure storage
DE10065117A1 (de) * 2000-12-28 2002-07-04 Bosch Gmbh Robert Verfahren und Kommunikationssystem zum Austausch von Daten zwischen mindestens zwei Teilnehmern über ein Bussystem
US7644057B2 (en) 2001-01-03 2010-01-05 International Business Machines Corporation System and method for electronic communication management
GB0102220D0 (en) * 2001-01-27 2001-03-14 Galleria Software Developement Databases
DE10109558C1 (de) * 2001-02-28 2003-01-30 Siemens Ag Empfängerseitige Zusatzschaltung für den Boundary Scan bei der Datenübertragung mit differentiellen Signalen
US6966015B2 (en) * 2001-03-22 2005-11-15 Micromuse, Ltd. Method and system for reducing false alarms in network fault management systems
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6744739B2 (en) * 2001-05-18 2004-06-01 Micromuse Inc. Method and system for determining network characteristics using routing protocols
US7043727B2 (en) * 2001-06-08 2006-05-09 Micromuse Ltd. Method and system for efficient distribution of network event data
US7673223B2 (en) * 2001-06-15 2010-03-02 Qualcomm Incorporated Node processors for use in parity check decoders
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7516208B1 (en) 2001-07-20 2009-04-07 International Business Machines Corporation Event database management method and system for network event reporting system
US20030023922A1 (en) * 2001-07-25 2003-01-30 Davis James A. Fault tolerant magnetoresistive solid-state storage device
US7036068B2 (en) * 2001-07-25 2006-04-25 Hewlett-Packard Development Company, L.P. Error correction coding and decoding in a solid-state storage device
US6981196B2 (en) 2001-07-25 2005-12-27 Hewlett-Packard Development Company, L.P. Data storage method for use in a magnetoresistive solid-state storage device
US20050286685A1 (en) * 2001-08-10 2005-12-29 Nikola Vukovljak System and method for testing multiple dial-up points in a communications network
JP3823044B2 (ja) * 2001-10-31 2006-09-20 パナソニック モバイルコミュニケーションズ株式会社 タイムスタンプ値制御装置
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US7512931B2 (en) * 2001-11-13 2009-03-31 National Instruments Corporation Graphical program nodes for implementing a measurement state model
US7171493B2 (en) * 2001-12-19 2007-01-30 The Charles Stark Draper Laboratory Camouflage of network traffic to resist attack
US7363368B2 (en) 2001-12-24 2008-04-22 International Business Machines Corporation System and method for transaction recording and playback
US6560512B1 (en) * 2002-01-04 2003-05-06 Machine Consciousness, Inc. Relational robotic controller
US6996443B2 (en) * 2002-01-11 2006-02-07 Bae Systems Information And Electronic Systems Integration Inc. Reconfigurable digital processing system for space
US7168008B2 (en) * 2002-01-18 2007-01-23 Mobitv, Inc. Method and system for isolating and protecting software components
US7171605B2 (en) * 2002-02-01 2007-01-30 International Business Machines Corporation Check bit free error correction for sleep mode data retention
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US6973604B2 (en) 2002-03-08 2005-12-06 Hewlett-Packard Development Company, L.P. Allocation of sparing resources in a magnetoresistive solid-state storage device
EP1502218A4 (en) * 2002-04-15 2005-08-17 Invensys Sys Inc METHOD AND DEVICES FOR A PROCESS-, FACTORY-, ENVIRONMENT-, ENVIRONMENT- AND COMPUTER AIDED MANUFACTURING-BASED OR OTHERWISE CONTROL SYSTEM WITH REAL-TIME DATA DISTRIBUTION
GB2387683B (en) * 2002-04-19 2007-03-28 Hewlett Packard Co Workflow processing scheduler
US7668899B2 (en) * 2002-05-07 2010-02-23 Alcatel-Lucent Usa Inc. Decoupled routing network method and system
US7174551B2 (en) * 2002-05-20 2007-02-06 International Business Machines Corporation Multiple task wait system for use in a data warehouse environment
US7440462B2 (en) * 2002-05-23 2008-10-21 Motorola, Inc. Quality of service (QOS) control mechanisms using mediation devices in an asynchronous network
US7492773B2 (en) * 2002-05-23 2009-02-17 Motorola, Inc. Media access control and distributed data processing using mediation devices in an asynchronous network
US7107283B2 (en) * 2002-05-28 2006-09-12 Kabushiki Kaisha Toshiba Relational job queue
US7154886B2 (en) 2002-07-22 2006-12-26 Qlogic Corporation Method and system for primary blade selection in a multi-module fiber channel switch
US20040133642A1 (en) * 2002-07-23 2004-07-08 Vazquez Pedro A. Server and application programming interface for distributed rendezvous
US20040024954A1 (en) * 2002-07-30 2004-02-05 Rust Robert A. Time stamp management system for disk arrays
US7334046B1 (en) 2002-08-05 2008-02-19 Qlogic, Corporation System and method for optimizing frame routing in a network
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7362717B1 (en) 2002-10-03 2008-04-22 Qlogic, Corporation Method and system for using distributed name servers in multi-module fibre channel switches
US7089484B2 (en) * 2002-10-21 2006-08-08 International Business Machines Corporation Dynamic sparing during normal computer system operation
US7127446B1 (en) * 2002-10-30 2006-10-24 Advanced Micro Devices, Inc. File system based task queue management
US7533382B2 (en) * 2002-10-30 2009-05-12 Stmicroelectronics, Inc. Hyperprocessor
US7415565B2 (en) * 2002-10-31 2008-08-19 Ring Technology Enterprises, Llc Methods and systems for a storage system with a program-controlled switch for routing data
US7707351B2 (en) * 2002-10-31 2010-04-27 Ring Technology Enterprises Of Texas, Llc Methods and systems for an identifier-based memory section
US6879526B2 (en) * 2002-10-31 2005-04-12 Ring Technology Enterprises Llc Methods and apparatus for improved memory access
ATE557349T1 (de) * 2002-10-31 2012-05-15 Parallel Iron Llc Speichersystem und verfahren für ein speichersystem
US7197662B2 (en) * 2002-10-31 2007-03-27 Ring Technology Enterprises, Llc Methods and systems for a storage system
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7243264B2 (en) * 2002-11-01 2007-07-10 Sonics, Inc. Method and apparatus for error handling in networks
US7319669B1 (en) 2002-11-22 2008-01-15 Qlogic, Corporation Method and system for controlling packet flow in networks
US7149923B1 (en) * 2003-01-17 2006-12-12 Unisys Corporation Software control using the controller as a component to achieve resiliency in a computer system utilizing separate servers for redundancy
US7389507B2 (en) * 2003-02-10 2008-06-17 Tandberg Data Corporation Operating-system-independent modular programming method for robust just-in-time response to multiple asynchronous data streams
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
JP2004280558A (ja) * 2003-03-17 2004-10-07 Ricoh Co Ltd インタフェース回路及びインタフェース回路を有する光ディスク装置
US7389230B1 (en) 2003-04-22 2008-06-17 International Business Machines Corporation System and method for classification of voice signals
US8495002B2 (en) * 2003-05-06 2013-07-23 International Business Machines Corporation Software tool for training and testing a knowledge base
US20050187913A1 (en) 2003-05-06 2005-08-25 Yoram Nelken Web-based customer service interface
US20040237089A1 (en) * 2003-05-20 2004-11-25 Teh Jin Teik Separation of data and instruction for improving system performance in a multiple process environment
JP4296050B2 (ja) * 2003-07-14 2009-07-15 三菱電機株式会社 電子制御装置
US7406628B2 (en) * 2003-07-15 2008-07-29 Seagate Technology Llc Simulated error injection system in target device for testing host system
US7463646B2 (en) 2003-07-16 2008-12-09 Qlogic Corporation Method and system for fibre channel arbitrated loop acceleration
US7620059B2 (en) 2003-07-16 2009-11-17 Qlogic, Corporation Method and apparatus for accelerating receive-modify-send frames in a fibre channel network
US7453802B2 (en) 2003-07-16 2008-11-18 Qlogic, Corporation Method and apparatus for detecting and removing orphaned primitives in a fibre channel network
US7355966B2 (en) 2003-07-16 2008-04-08 Qlogic, Corporation Method and system for minimizing disruption in common-access networks
US7471635B2 (en) 2003-07-16 2008-12-30 Qlogic, Corporation Method and apparatus for test pattern generation
US7525910B2 (en) 2003-07-16 2009-04-28 Qlogic, Corporation Method and system for non-disruptive data capture in networks
US7388843B2 (en) 2003-07-16 2008-06-17 Qlogic, Corporation Method and apparatus for testing loop pathway integrity in a fibre channel arbitrated loop
US7580354B2 (en) 2003-07-21 2009-08-25 Qlogic, Corporation Multi-speed cut through operation in fibre channel switches
US7477655B2 (en) 2003-07-21 2009-01-13 Qlogic, Corporation Method and system for power control of fibre channel switches
US7894348B2 (en) 2003-07-21 2011-02-22 Qlogic, Corporation Method and system for congestion control in a fibre channel switch
US7406092B2 (en) 2003-07-21 2008-07-29 Qlogic, Corporation Programmable pseudo virtual lanes for fibre channel systems
US7522529B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for detecting congestion and over subscription in a fibre channel network
US7792115B2 (en) 2003-07-21 2010-09-07 Qlogic, Corporation Method and system for routing and filtering network data packets in fibre channel systems
US7522522B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for reducing latency and congestion in fibre channel switches
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7420982B2 (en) 2003-07-21 2008-09-02 Qlogic, Corporation Method and system for keeping a fibre channel arbitrated loop open during frame gaps
US7430175B2 (en) * 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7630384B2 (en) 2003-07-21 2009-12-08 Qlogic, Corporation Method and system for distributing credit in fibre channel systems
US7573909B2 (en) 2003-07-21 2009-08-11 Qlogic, Corporation Method and system for programmable data dependant network routing
US7447224B2 (en) 2003-07-21 2008-11-04 Qlogic, Corporation Method and system for routing fibre channel frames
US7525983B2 (en) 2003-07-21 2009-04-28 Qlogic, Corporation Method and system for selecting virtual lanes in fibre channel switches
US7466700B2 (en) 2003-07-21 2008-12-16 Qlogic, Corporation LUN based hard zoning in fibre channel switches
US7583597B2 (en) 2003-07-21 2009-09-01 Qlogic Corporation Method and system for improving bandwidth and reducing idles in fibre channel switches
US7558281B2 (en) 2003-07-21 2009-07-07 Qlogic, Corporation Method and system for configuring fibre channel ports
US7512067B2 (en) 2003-07-21 2009-03-31 Qlogic, Corporation Method and system for congestion control based on optimum bandwidth allocation in a fibre channel switch
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US9207905B2 (en) 2003-07-28 2015-12-08 Sonos, Inc. Method and apparatus for providing synchrony group status information
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US20050033625A1 (en) * 2003-08-06 2005-02-10 International Business Machines Corporation Method, apparatus and program storage device for scheduling the performance of maintenance tasks to maintain a system environment
US7852856B2 (en) * 2003-08-29 2010-12-14 Broadcom Corp. System and method for providing pooling or dynamic allocation of connection context data
US7352701B1 (en) 2003-09-19 2008-04-01 Qlogic, Corporation Buffer to buffer credit recovery for in-line fibre channel credit extension devices
US20050120272A1 (en) * 2003-11-13 2005-06-02 Smith Zachary S. Systems and methods for determining bug ownership
US7500152B2 (en) * 2003-12-05 2009-03-03 Freescale Semiconductor, Inc. Apparatus and method for time ordering events in a system having multiple time domains
JP2005184335A (ja) * 2003-12-18 2005-07-07 Oki Electric Ind Co Ltd 無線通信装置における誤同期防止装置
US7039661B1 (en) * 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
US7480293B2 (en) 2004-02-05 2009-01-20 Qlogic, Corporation Method and system for preventing deadlock in fibre channel fabrics using frame priorities
US7564789B2 (en) 2004-02-05 2009-07-21 Qlogic, Corporation Method and system for reducing deadlock in fibre channel fabrics using virtual lanes
US7761923B2 (en) * 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US20050228967A1 (en) * 2004-03-16 2005-10-13 Sony Computer Entertainment Inc. Methods and apparatus for reducing power dissipation in a multi-processor system
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
GB2412755A (en) * 2004-03-30 2005-10-05 Hewlett Packard Development Co Coordination of lifecycle state changes in software components
US9374607B2 (en) 2012-06-26 2016-06-21 Sonos, Inc. Media playback system with guest access
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
US20050273657A1 (en) * 2004-04-01 2005-12-08 Hiroshi Ichiki Information processing apparatus and method, and recording medium and program for controlling the same
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7340167B2 (en) 2004-04-23 2008-03-04 Qlogic, Corporation Fibre channel transparent switch for mixed switch fabrics
GB0411054D0 (en) * 2004-05-18 2004-06-23 Ricardo Uk Ltd Fault tolerant data processing
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US7404020B2 (en) 2004-07-20 2008-07-22 Qlogic, Corporation Integrated fibre channel fabric controller
US7411958B2 (en) 2004-10-01 2008-08-12 Qlogic, Corporation Method and system for transferring data directly between storage devices in a storage area network
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US7593997B2 (en) 2004-10-01 2009-09-22 Qlogic, Corporation Method and system for LUN remapping in fibre channel networks
US8295299B2 (en) 2004-10-01 2012-10-23 Qlogic, Corporation High speed fibre channel switch element
US7623552B2 (en) 2004-10-14 2009-11-24 Temic Automotive Of North America, Inc. System and method for time synchronizing nodes in an automotive network using input capture
US20060083172A1 (en) * 2004-10-14 2006-04-20 Jordan Patrick D System and method for evaluating the performance of an automotive switch fabric network
US7593429B2 (en) * 2004-10-14 2009-09-22 Temic Automotive Of North America, Inc. System and method for time synchronizing nodes in an automotive network using input capture
WO2006044140A2 (en) * 2004-10-14 2006-04-27 Motorola, Inc. System and method for time synchronizing nodes in an automotive network
US7593344B2 (en) * 2004-10-14 2009-09-22 Temic Automotive Of North America, Inc. System and method for reprogramming nodes in an automotive switch fabric network
US7599377B2 (en) * 2004-10-15 2009-10-06 Temic Automotive Of North America, Inc. System and method for tunneling standard bus protocol messages through an automotive switch fabric network
US7613190B2 (en) * 2004-10-18 2009-11-03 Temic Automotive Of North America, Inc. System and method for streaming sequential data through an automotive switch fabric
FR2877169B1 (fr) * 2004-10-27 2007-01-26 France Telecom Procede de synchronisation d'un recepteur radio, et recepteur adapte pour mettre en oeuvre un tel procede
US20060123098A1 (en) * 2004-11-11 2006-06-08 Ipdev Multi-system auto-failure web-based system with dynamic session recovery
US20060155770A1 (en) * 2004-11-11 2006-07-13 Ipdev Co. System and method for time-based allocation of unique transaction identifiers in a multi-server system
US20060155753A1 (en) * 2004-11-11 2006-07-13 Marc Asher Global asynchronous serialized transaction identifier
US7519058B2 (en) 2005-01-18 2009-04-14 Qlogic, Corporation Address translation in fibre channel switches
JP4626322B2 (ja) * 2005-02-03 2011-02-09 富士ゼロックス株式会社 プログラム
US8589944B2 (en) * 2005-03-16 2013-11-19 Ricoh Production Print Solutions Method and system for task mapping to iteratively improve task assignment in a heterogeneous computing system
US7539931B2 (en) * 2005-04-08 2009-05-26 Hewlett-Packard Development Company, L.P. Storage element for mitigating soft errors in logic
US20060236158A1 (en) * 2005-04-15 2006-10-19 Thayer Larry J Memory element for mitigating soft errors in logic
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US20070033247A1 (en) * 2005-08-02 2007-02-08 The Mathworks, Inc. Methods and system for distributing data to technical computing workers
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment
TWI297237B (en) * 2005-10-28 2008-05-21 Hon Hai Prec Ind Co Ltd Power switching circuit and power supply system using the same
US7676604B2 (en) * 2005-11-22 2010-03-09 Intel Corporation Task context direct indexing in a protocol engine
EP1796000A1 (en) * 2005-12-06 2007-06-13 International Business Machines Corporation Method, system and computer program for distributing software products in trial mode
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US8438572B2 (en) * 2006-03-15 2013-05-07 Freescale Semiconductor, Inc. Task scheduling method and apparatus
US8315274B2 (en) * 2006-03-29 2012-11-20 Honeywell International Inc. System and method for supporting synchronous system communications and operations
WO2007123753A2 (en) 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
TW200743028A (en) * 2006-05-12 2007-11-16 Benq Corp State synchronization apparatuses and methods
ES2436609T3 (es) * 2006-05-16 2014-01-03 Saab Ab Nodo de bus de datos de tolerancia de fallos en un sistema distribuido
US8352805B2 (en) * 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US7925791B2 (en) * 2006-07-17 2011-04-12 The Math Works, Inc. Recoverable error detection for concurrent computing programs
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US7730029B2 (en) * 2006-09-15 2010-06-01 Alcatel Lucent System and method of fault tolerant reconciliation for control card redundancy
EP2104930A2 (en) 2006-12-12 2009-09-30 Evans & Sutherland Computer Corporation System and method for aligning rgb light in a single modulator projector
US7925626B2 (en) * 2006-12-20 2011-04-12 International Business Machines Corporation Immediate copy target pull of volume data
US8019723B2 (en) * 2006-12-20 2011-09-13 International Business Machines Corporation Deferred copy target pull of volume data
WO2009024884A2 (en) * 2007-08-17 2009-02-26 Nxp B.V. System for providing fault tolerance for at least one micro controller unit
US8397236B2 (en) * 2007-08-24 2013-03-12 Virtualmetrix, Inc. Credit based performance managment of computer systems
CN101377746A (zh) * 2007-08-31 2009-03-04 鸿富锦精密工业(深圳)有限公司 排程任务更新系统及方法
US7743274B2 (en) * 2007-09-12 2010-06-22 International Business Machines Corporation Administering correlated error logs in a computer system
US7453910B1 (en) 2007-12-18 2008-11-18 International Business Machines Corporation Synchronization of independent clocks
US8117512B2 (en) * 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
US7925742B2 (en) * 2008-02-28 2011-04-12 Microsoft Corporation Correlating performance data of multiple computing devices
WO2009118731A2 (en) 2008-03-27 2009-10-01 Rocketick Technologies Ltd Design simulation using parallel processors
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
WO2009155483A1 (en) 2008-06-20 2009-12-23 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
JP2010011093A (ja) * 2008-06-27 2010-01-14 Hitachi Ltd 分散システム
US9032377B2 (en) * 2008-07-10 2015-05-12 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
US7983175B2 (en) * 2008-09-19 2011-07-19 International Business Machines Corporation System and method for detecting a network failure
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
IT1391785B1 (it) * 2008-11-21 2012-01-27 St Microelectronics Srl Sistema elettronico per il rilevamento di un guasto
US8266477B2 (en) * 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US8463964B2 (en) * 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) * 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8463865B2 (en) * 2010-03-09 2013-06-11 Texas Instruments Incorporated Video synchronization with distributed modules
US8677071B2 (en) * 2010-03-26 2014-03-18 Virtualmetrix, Inc. Control of processor cache memory occupancy
US8782653B2 (en) * 2010-03-26 2014-07-15 Virtualmetrix, Inc. Fine grain performance resource management of computer systems
US8626927B2 (en) * 2010-05-06 2014-01-07 Verizon Patent And Licensing Inc. System for and method of distributing files
US8930896B1 (en) * 2010-07-23 2015-01-06 Amazon Technologies, Inc. Data anonymity and separation for user computation
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
JP5648544B2 (ja) * 2011-03-15 2015-01-07 富士通株式会社 スケジューリングプログラム、および情報処理装置
US9128748B2 (en) 2011-04-12 2015-09-08 Rocketick Technologies Ltd. Parallel simulation using multiple co-simulators
JP5932242B2 (ja) * 2011-05-20 2016-06-08 キヤノン株式会社 情報処理装置、通信方法、及びプログラム
US20130074088A1 (en) * 2011-09-19 2013-03-21 Timothy John Purcell Scheduling and management of compute tasks with different execution priority levels
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
KR20140071688A (ko) * 2012-12-04 2014-06-12 삼성디스플레이 주식회사 표시장치 및 그의 구동방법
RU2543316C2 (ru) 2012-12-25 2015-02-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ отказоустойчивого выполнения задач по расписанию в распределенных средах
US9510055B2 (en) 2013-01-23 2016-11-29 Sonos, Inc. System and method for a media experience social interface
US9092313B2 (en) * 2013-01-25 2015-07-28 Honeywell International Inc. System and method for three input voting
US9573277B2 (en) * 2013-04-15 2017-02-21 Alan Rosen Intelligent visual humanoid robot and computer vision system programmed to perform visual artificial intelligence processes
US9307508B2 (en) 2013-04-29 2016-04-05 Google Technology Holdings LLC Systems and methods for syncronizing multiple electronic devices
US9256461B2 (en) * 2013-09-18 2016-02-09 International Business Machines Corporation Handling interrupt actions for inter-thread communication
US9654545B2 (en) 2013-09-30 2017-05-16 Sonos, Inc. Group coordinator device selection
US20150095679A1 (en) 2013-09-30 2015-04-02 Sonos, Inc. Transitioning A Networked Playback Device Between Operating Modes
US9720576B2 (en) 2013-09-30 2017-08-01 Sonos, Inc. Controlling and displaying zones in a multi-zone system
US9288596B2 (en) 2013-09-30 2016-03-15 Sonos, Inc. Coordinator device for paired or consolidated players
US9300647B2 (en) 2014-01-15 2016-03-29 Sonos, Inc. Software application and zones
US9313591B2 (en) 2014-01-27 2016-04-12 Sonos, Inc. Audio synchronization among playback devices using offset information
US20150220498A1 (en) 2014-02-05 2015-08-06 Sonos, Inc. Remote Creation of a Playback Queue for a Future Event
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9679054B2 (en) 2014-03-05 2017-06-13 Sonos, Inc. Webpage media playback
US10587693B2 (en) 2014-04-01 2020-03-10 Sonos, Inc. Mirrored queues
US9302393B1 (en) * 2014-04-15 2016-04-05 Alan Rosen Intelligent auditory humanoid robot and computerized verbalization system programmed to perform auditory and verbal artificial intelligence processes
US20150324552A1 (en) 2014-05-12 2015-11-12 Sonos, Inc. Share Restriction for Media Items
US20150356084A1 (en) 2014-06-05 2015-12-10 Sonos, Inc. Social Queue
US9874997B2 (en) 2014-08-08 2018-01-23 Sonos, Inc. Social playback queues
US9667679B2 (en) 2014-09-24 2017-05-30 Sonos, Inc. Indicating an association between a social-media account and a media playback system
WO2016049342A1 (en) 2014-09-24 2016-03-31 Sonos, Inc. Social media connection recommendations based on playback information
US9723038B2 (en) 2014-09-24 2017-08-01 Sonos, Inc. Social media connection recommendations based on playback information
US9860286B2 (en) 2014-09-24 2018-01-02 Sonos, Inc. Associating a captured image with a media item
US9959087B2 (en) 2014-09-24 2018-05-01 Sonos, Inc. Media item context from social media
US10645130B2 (en) 2014-09-24 2020-05-05 Sonos, Inc. Playback updates
US9690540B2 (en) 2014-09-24 2017-06-27 Sonos, Inc. Social media queue
DE102014114883A1 (de) * 2014-10-14 2016-04-14 Beckhoff Automation Gmbh Verfahren und System zum Überwachen eines ersten Teilnehmers eines Kommunikationsnetzwerks
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US9886234B2 (en) 2016-01-28 2018-02-06 Sonos, Inc. Systems and methods of distributing audio to one or more playback devices
US10101941B2 (en) * 2016-09-20 2018-10-16 International Business Machines Corporation Data mirror invalid timestamped write handling
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
US11108698B2 (en) * 2017-02-03 2021-08-31 Microsoft Technology Licensing, Llc Systems and methods for client-side throttling after server handling in a trusted client component
US10802878B2 (en) * 2017-03-31 2020-10-13 Bmc Software, Inc. Phased start and stop of resources in a mainframe environment
DE102017208484A1 (de) * 2017-05-19 2018-11-22 Robert Bosch Gmbh Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren
JP6934754B2 (ja) * 2017-06-15 2021-09-15 株式会社日立製作所 分散処理システム、分散処理システムの管理方法、及び分散処理システム管理プログラム
CN107943567B (zh) * 2017-10-20 2021-12-28 北京知道未来信息技术有限公司 一种基于amqp协议的高可靠性任务调度方法和系统
TWI639921B (zh) * 2017-11-22 2018-11-01 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
US10802929B2 (en) * 2018-01-03 2020-10-13 Tesla, Inc. Parallel processing system runtime state reload
EP3776207B1 (en) 2018-03-26 2023-08-09 Rambus Inc. Command/address channel error detection
CN112368208A (zh) 2018-05-31 2021-02-12 杰欧比飞行有限公司 电动动力系统架构和使用该架构的容错vtol飞行器
US10666565B2 (en) * 2018-06-08 2020-05-26 Citrix Systems, Inc. Method to measure relative QOS gains and to reduce the variance in QOS for similar connections for during bandwidth contention
US10710741B2 (en) 2018-07-02 2020-07-14 Joby Aero, Inc. System and method for airspeed determination
EP3853736A4 (en) 2018-09-17 2022-11-16 Joby Aero, Inc. AIRCRAFT CONTROL SYSTEM
US20200331602A1 (en) 2018-12-07 2020-10-22 Joby Aero, Inc. Rotary airfoil and design method therefor
US10983534B2 (en) 2018-12-07 2021-04-20 Joby Aero, Inc. Aircraft control system and method
US10845823B2 (en) 2018-12-19 2020-11-24 Joby Aero, Inc. Vehicle navigation system
US11230384B2 (en) 2019-04-23 2022-01-25 Joby Aero, Inc. Vehicle cabin thermal management system and method
CN116646641A (zh) 2019-04-23 2023-08-25 杰欧比飞行有限公司 电池热管理系统及方法
EP3959127A4 (en) 2019-04-25 2023-01-11 Joby Aero, Inc. VTOL AIRCRAFT
US10951475B2 (en) * 2019-06-28 2021-03-16 Intel Corporation Technologies for transmit scheduler dynamic configurations
US11673649B2 (en) 2020-06-05 2023-06-13 Joby Aero, Inc. Aircraft control system and method
CN113254177B (zh) * 2021-05-31 2023-06-27 广州虎牙科技有限公司 基于集群的任务提交方法、计算机程序产品及电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544778A (en) * 1967-11-29 1970-12-01 Westinghouse Electric Corp Decision network
US3667057A (en) * 1970-05-22 1972-05-30 Bendix Corp Method and means for providing an output corresponding to the average of acceptable input signals
US3748449A (en) * 1971-12-02 1973-07-24 Litton Systems Inc Device for determining the median number in a series of numbers
US3805235A (en) * 1972-12-26 1974-04-16 Collins Radio Co Equalization means for multi-channel redundant control system
CH601874A5 (ja) * 1976-07-07 1978-07-14 Bbc Brown Boveri & Cie
US4183087A (en) * 1978-03-07 1980-01-08 Hughes Aircraft Company Peak deviation sampling
DE2939487A1 (de) * 1979-09-28 1981-04-16 Siemens AG, 1000 Berlin und 8000 München Rechnerarchitektur auf der basis einer multi-mikrocomputerstruktur als fehlertolerantes system
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
US4323966A (en) * 1980-02-05 1982-04-06 The Bendix Corporation Operations controller for a fault-tolerant multiple computer system
US4334223A (en) * 1980-06-18 1982-06-08 Sperry Corporation Median detector
US4375683A (en) * 1980-11-12 1983-03-01 August Systems Fault tolerant computational system and voter circuit
US4438494A (en) * 1981-08-25 1984-03-20 Intel Corporation Apparatus of fault-handling in a multiprocessing system
DE3268099D1 (en) * 1982-06-15 1986-02-06 Ibm Method and apparatus for controlling access to a communication network
US4513440A (en) * 1982-06-29 1985-04-23 Harris Corporation Hardware median filter
US4503535A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for recovery from failures in a multiprocessing system
US4503534A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for redundant operation of modules in a multiprocessing system
EP0111277B1 (en) * 1982-12-03 1991-06-12 Nec Corporation Loop network system controlled by a simple clock station
US4523273A (en) * 1982-12-23 1985-06-11 Purdue Research Foundation Extra stage cube
US4630196A (en) * 1983-04-13 1986-12-16 At&T Information Systems, Inc. Store and forward facility for use in multiprocessing environment
US4626843A (en) * 1983-09-27 1986-12-02 Trw Inc. Multi-master communication bus system with parallel bus request arbitration
US4554661A (en) * 1983-10-31 1985-11-19 Burroughs Corporation Generalized fault reporting system
US4642756A (en) * 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
US4914657A (en) * 1987-04-15 1990-04-03 Allied-Signal Inc. Operations controller for a fault tolerant multiple node processing system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011243216A (ja) * 2002-03-29 2011-12-01 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
JP2012155746A (ja) * 2002-03-29 2012-08-16 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
US9990208B2 (en) 2002-03-29 2018-06-05 Intel Corporation System and method for execution of a secured environment initialization instruction
US10031759B2 (en) 2002-03-29 2018-07-24 Intel Corporation System and method for execution of a secured environment initialization instruction
US10042649B2 (en) 2002-03-29 2018-08-07 Intel Corporation System and method for execution of a secured environment initialization instruction
US10175994B2 (en) 2002-03-29 2019-01-08 Intel Corporation System and method for execution of a secured environment initialization instruction
WO2016067420A1 (ja) * 2014-10-30 2016-05-06 三菱電機株式会社 計算機及びデータ処理方法及びプログラム

Also Published As

Publication number Publication date
US4980857A (en) 1990-12-25
US4816989A (en) 1989-03-28
EP0356460A4 (en) 1992-06-24
US4933940A (en) 1990-06-12
US4914657A (en) 1990-04-03
CA1301938C (en) 1992-05-26
WO1988008161A1 (en) 1988-10-20
US4972415A (en) 1990-11-20
EP0356460A1 (en) 1990-03-07
US4805107A (en) 1989-02-14

Similar Documents

Publication Publication Date Title
JPH02503122A (ja) 耐障害多重ノード処理装置用動作制御装置
Keichafer et al. The MAFT architecture for distributed fault tolerance
US4937741A (en) Synchronization of fault-tolerant parallel processing systems
US4333144A (en) Task communicator for multiple computer system
US4321666A (en) Fault handler for a multiple computer system
CN1192309C (zh) 管理冗余的基于计算机的系统用于容错计算的方法和设备
EP0357768B1 (en) Record lock processor for multiprocessing data system
Harper et al. Fault tolerant parallel processor architecture overview
JPS5935057B2 (ja) マルチ構成可能なモジユ−ル処理装置
GB2175421A (en) Computing system
Goldberg Development and analysis of the software implemented fault-tolerance (SIFT) computer
Miner et al. A conceptual design for a reliable optical bus (ROBUS)
KR20190058288A (ko) 명령 처리 정렬 시스템
Weinstock SIFT: System design and implementation
Albini et al. A generalized model for distributed comparison-based system-level diagnosis
Abler A network element based fault tolerant processor
JPH05101015A (ja) シミユレーシヨン装置及びシミユレーシヨン方法
CN109815023A (zh) 消息同步系统
Paulitsch Fault-tolerant clock synchronization for embedded distributed multi-cluster systems
Robinson et al. Software fault-tolerance in the Pluribus
Deans et al. Development of a new hardware reliability simulator
Meyer et al. Seamless Simulation-Based Verification and Validation of Event-Driven Software Systems
Mancini et al. The Join algorithm: ordering messages in replicated systems
Yoon An approach to design of fault-tolerant real-time tightly coupled networks and its experimental validation
Lundkvist et al. Implementation of Fault-Tolerance Techniques for Real-Time Multiprocessor Scheduling