JPH05197582A - 動的再構成が可能な多数決システムを有するフォールト・トレラント処理装置 - Google Patents
動的再構成が可能な多数決システムを有するフォールト・トレラント処理装置Info
- Publication number
- JPH05197582A JPH05197582A JP4142228A JP14222892A JPH05197582A JP H05197582 A JPH05197582 A JP H05197582A JP 4142228 A JP4142228 A JP 4142228A JP 14222892 A JP14222892 A JP 14222892A JP H05197582 A JPH05197582 A JP H05197582A
- Authority
- JP
- Japan
- Prior art keywords
- state
- processing unit
- slave
- signal
- board
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/181—Eliminating the failing redundant component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/187—Voting techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1637—Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1654—Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 新しいフォールト・トレラント・コンピュー
タを提供する。 【構成】 マスターボードAは、スレーブボードに対し
て信号を出力し、スレーブボード上で、対応する信号の
比較が行われ、その結果に基づき選択するボードの組合
せを定める。スレーブボードの何れかとマスターボード
Aとの間の不一致が検出される一方、他のスレーブボー
ドとマスターボードAが等しい場合にも、マスターボー
ドAをマスターとして用いる。不一致が検出された方の
スレーブボードに対して、再び同様な不一致が生じた場
合には、このスレーブボードを除外する。マスターボー
ドAとスレーブボード全部との間で不一致が検出された
場合には、同じ比較サイクルをもう一度実施する。その
結果、マスターボードAの故障が確認できた場合には、
スレーブボードの内一つをマスターボードとし、再び同
様な不一致が生じた場合には、前のマスターボードAを
除外する。
タを提供する。 【構成】 マスターボードAは、スレーブボードに対し
て信号を出力し、スレーブボード上で、対応する信号の
比較が行われ、その結果に基づき選択するボードの組合
せを定める。スレーブボードの何れかとマスターボード
Aとの間の不一致が検出される一方、他のスレーブボー
ドとマスターボードAが等しい場合にも、マスターボー
ドAをマスターとして用いる。不一致が検出された方の
スレーブボードに対して、再び同様な不一致が生じた場
合には、このスレーブボードを除外する。マスターボー
ドAとスレーブボード全部との間で不一致が検出された
場合には、同じ比較サイクルをもう一度実施する。その
結果、マスターボードAの故障が確認できた場合には、
スレーブボードの内一つをマスターボードとし、再び同
様な不一致が生じた場合には、前のマスターボードAを
除外する。
Description
【0001】
【産業上の利用分野】本発明は、フォールト・トレラン
ト・コンピューターシステム、更に詳しくは、動的に再
構成可能な多数決システムに関する。
ト・コンピューターシステム、更に詳しくは、動的に再
構成可能な多数決システムに関する。
【0002】
【従来の技術】コンピュータが社会生活に果たす役割が
増大し、重要なものになるにつれて、各構成部品の品質
を高めるとか、設計を改良するとかいうような小手先の
手段では、様々な要求に答えるだけの信頼度をコンピュ
ータに与えることが難しくなっている。何らかの故障や
誤り(エラー)が起きたときでも、コンピュータが機能
し続けることが求められており、これが、今日のコンピ
ュータ用語で言うところの、フォールト・トレラント機
能である。フォールト・トレラント機能は、銀行業界、
金融、電気通信、航空管制、軍事、小売等オンラインで
の連続処理に対する支援体制が求められるような環境下
では、必要不可欠な機能である。1980年代初頭か
ら、フォールト・トレラント機能を開発、改良するため
に、様々な設計変更が行われてきた。マイクロプロセッ
サーの登場以来、それまで、コンピュータ専用のクリー
ンルーム内という人工的に清浄な環境下に置かれてきた
コンピュータシステムは、産業現場の自然環境下へとそ
の活躍の場を移してきた。自然のより厳しい環境下に置
かれたことにより、コンピュータシステムの環境変数は
大きく変動することとなった。例えば、温度及び湿度レ
ベルの変化、主要電源の変動、電磁波障害等に曝される
ことになり、これらの要因によりコンピュータの故障が
引き起こされる可能性が高くなった。コンピュータ業界
の専門家が共通して挙げるコンピュータの故障増大の第
二の要因は、コンピュータを使用するユーザー層が飛躍
的に広がり、ユーザーのコンピュータに関する知識の平
均レベルが低下したことにより、ユーザーの不注意によ
る誤用が増加したことである。三番目の要因としては、
コンピュータシステムが大きくなり、多くの構成部品が
使われるようになったため、構成部品の故障に伴うシス
テム故障の可能性が高くなったことが挙げられる。故障
は、ディジタルコンピュータの様々なレベルで発生す
る。第一レベルは、抵抗器、コンデンサ、誘導子、電源
等の部品を含む回路レベルである。第二レベルには、論
理ゲート及びゲートから構成されるデータ・オペレータ
が含まれる。論理ゲートは、更に、組み合せ論理ゲート
と、逐次論理ゲートの2つのカテゴリーに分類される。
第三レベルは、ディジタルコンピュータに特徴的なプロ
グラムレベルである。このレベルにおいて、装置に与え
られた一連の命令が解釈され、データ構造に対して様々
な処理が行われる。これが、命令セットプロセッサー
(ISP)によるサブレベルであり、ISPサブレベル
により、次に、プログラマーにより簡単に操作されるソ
フトウェア要素、即ち、高レベル言語によるサブレベル
が創出される。この結果作られたものが、OS(オペレ
ーティング・システム)、ランタイム・システム、アプ
リケーションプログラム、アプリケーションシステム等
のソフトウェアである。最後の第四レベルは、プログラ
ミング・メモリー・スイッチ(PMS)レベルであり、
これには、入出力装置、メモリー、マス・ストレージ、
通信装置、処理装置(プロセッサー)が含まれる。これ
ら全ての構成要素が互いに連絡・接続されることによ
り、コンピュータシステムが形成されている。コンピュ
ータの異常、誤作動は、以下のように分類される。 1.故障 :ハードウェアの物理的変化。 2.フォールト :システムの構成要素の故障、環境
に起因する物理的な障害、オペレータの操作ミス、ある
いは、設計ミスに起因する誤りをハードウェアあるいは
ソフトウェアが有している状態。 3.誤り(エラー):プログラムあるいはデータ構造内
におけるフォールトの発生。フォールト部位から離れた
ところで、誤りが発生することもある。 4.固定 :連続的で、安定した状態の故障、
フォールト、あるいは、エラーを説明する言葉である。
ハードウェアにおける「固定した」故障とは、元に戻す
ことのできない物理的な変化を意味する。「固定」とい
う言葉の代わりに、「修復不能」という単語が用いられ
ることもある。 5.間欠 :不安定な状態のハードウェア、あ
るいは、ハードウェアまたはソフトウェアの変動により
時々起こる、フォールトあるいは誤りを意味する。 6.過渡 :一時的な環境条件により引き起こ
されるフォールトあるいは誤りを意味する。「過渡」と
いう言葉の代わりに、「修復可能」という単語が用いら
れることもある。 図1に、これら様々なレベルにおけるコンピュータの故
障、誤り等の関係を示す。コンピュータシステムにおけ
るフォールト・トレラント能力は、次の2つの物差しを
用いて測定される。第一の物差しは、「アベィラビリテ
ィ(稼働率)」である。これは、時間の関数であり、あ
る時刻にシステムが機能を遂行することが可能である確
率を示す。第二の物差しは、「信頼度」である。これ
は、例えば、システムが時刻t=0に操作可能であった
という前提の下で、所定の時間間隔[0,t]の間ずっ
とその状態を保ち続ける条件付き確率を示すものであ
る。この「信頼度」という物差しは、衛星コンピュータ
のように修理不可能なシステム、飛行機のフライトコン
ピュータのように、コンピュータが非常に重要な役割を
果たし、たとえ、修理の間でさえも止めることが不可能
なシステム、あるいは、修理費用が途方もなく高くつく
システム等を評価する場合に特に重要である。コンピュ
ータに故障が生じた場合でも、妨害されることなく機能
し続けるフォールト・トレラント・コンピュータシステ
ムは、機能面で多くの利点を有するが、経済的な面でも
ユーザーに多くのメリットをもたらす。コンピュータシ
ステムに掛かる費用は、最初の購入時に限られるわけで
はなく、システムの使用過程で非常に多くの費用が生じ
る。フォールト・トレラント・コンピュータシステム
は、保守費用を削減するのみではなく、ダウンタイムに
より生じる費用も大きく削減することができる。ソフト
ウェア・フォールト・トレラント機能と、ハードウェア
・フォールト・トレラント機能は、対象こそ異なるもの
の、冗長検査、自己検査機能等、多くの共通する特徴を
有している。ソフトウェア・フォールト・トレラント機
能は、ソフトウェアの設計ミス及びプログラミングミス
に起因するコンピュータの誤りを排除することを目的と
したものであり、ハードウェア・フォールト・トレラン
ト機能は、ハードウェアの故障に起因するコンピュータ
の誤りを排除することにある。近年、ソフトウェアのフ
ォールトを許容する、様々な実験的及び実際的なフォー
ルト・トレラント・システムの設計が行われている。こ
のようなシステムは、主に設計フォールトを対象とする
ものである。ここで、「設計」という言葉は、システム
要件から、初期運転及び将来の修正を実現するものま
で、全ての要素を網羅している。設計フォールトは、通
常モードの故障要因となるものであり、厳密な多重化に
基づくフォールト・トレラント戦略を無効にし、多くの
場合、取り返しのつかない事態を招く。共通のサービス
仕様から作られる異なったシステムを、ヴァリアントと
呼ぶ。多様化設計とは、少なくとも2つのヴァリアント
と、一定した初期条件及び入力が行われた場合のヴァリ
アントの実行結果を監視する1つのディサイダーとを含
む。共通仕様は、判定を行うべき時、どのデータに基づ
いて行うべきかを決める判定ポイントを明確にアドレス
するものでなければならない。ソフトウェアの設計フォ
ールトを許容する周知の技法の中で優れたものは、リカ
バリ・ブロック(RB)アプローチとNバージョン・プ
ログラミング(NVP)である。最初のアプローチ法で
は、オルタネート(選択枝)がヴァリアントに該当し、
オルタネートの結果に順に適用される許容テストがディ
サイダーに該当する。第一オルタネートの結果が許容テ
ストを満足させなければ、第二オルタネートが実行され
る。二番目のアプローチ法では、バージョンがヴァリア
ントに該当し、全てのバージョンの結果に基づく多数決
がディサイダーに該当する。実際的なシステムの大部分
は、リカバリ・ブロック・アプローチもNバージョン・
プログラミングも実行せず、1つのヴァリアントと許容
テストあるいは2つのヴァリアントと比較アルゴリズム
からなる自己検査ソフトウェアに基づいて、作動する。
設計の多様性を実現するために、主に2つのことを考慮
する必要がある。1つめは、ヴァリアントの数である。
経済的な側面以外にも、所定のソフトウェア・フォール
ト・トレランス法におけるヴァリアントの数は、許容で
きるフォールトの数と直接的に相関する。2つ以上のフ
ォールトを許容する必要がある場合に限り、ソフトウェ
ア・フォールトが修復可能なものであるか、あるいは、
固定したものであるかが、システムのアーキテクチャに
大きく影響する。2つ以上のフォールトが同時に起こら
なければ、固定フォールトを許容できるアーキテクチャ
は、無限に連続する修復可能なフォールトをも許容する
ことができる。2つめは、フォールト・トレランスの適
用水準(レベル)である。この適用レベルに関しては、
次の2つの問題が生じる。 (1)多様化を行うために、システムをどの程度までの
部品に分解するべきか? (2)どの層(アプリケーション・ソフトウェア、エグ
ゼキューティブ、ハードウェア)を多様化するべきか? 第一の問題に対する解答は、部品をより小さくすれば、
判定アルゴリズムをよりよく制御することができるし、
部品をより大きくすれば、多様性を増加させることがで
きる、という相反する事項をどの様に調整するかに、掛
かっている。更に、判定ポイントは、「非多様」ポイン
ト(または、N自己検査プログラミングに関しては同期
ポイント、NSCP及びNVP)であり、そのように限
定される必要がある。判定ポイントは、(センサーデー
タ獲得、アクチュエータへの命令伝達、オペレータとの
相互作用等)、外部環境との相互作用に関して必要とさ
れる。しかし、性能を考慮することにより、更に妥協点
を見いだすことができる。ソフトウェア・フォールト・
トレランスは、主に、ソフトウェア設計及びプログラミ
ングにおける誤り(エラー)に起因するフォールトを対
象とするものである。一方、ハードウェア・フォールト
・トレランスは、ハードウェア設計に起因するエラーあ
るいは回路エラーを対象にするものである。フォールト
・トレランス機能は、ハードウェア、ソフトウェア、情
報、及び/あるいは計算に冗長性を持たせることにより
達成される。フォールト・トレランス戦略は、以下の要
素を一つ以上含む。 *誤り(エラー)検出、マスキング及び補正:冗長ハー
ドウェア部品からのデータを比較し、誤りを検出し、誤
りを含むデータは、動的に補正する。更に、限定された
境界を越して誤りを含むデータが伝播しないように、シ
ステムを構成する必要がある。 *診断:コンピューターシステムが誤りを含むハードウ
ェア部品(例えば、モジュール、データパス、論理ボー
ドの一部等)を特定するプロセスである。 *修復/再構成:故障したモジュールをスペアと交換す
ることにより、あるいはシステム構成または作業負荷分
配を再構成して、モジュールを迂回することにより、シ
ステムの修復が行われる。モジュールの交換には、「ホ
ット(熱)」交換と「コールド(冷)」交換の2種類が
ある。ホットスペアは、交換されるモジュールと同じ仕
事を同時に行っており、システム内で移し変えられた時
に初期化の必要がない。一方、コールドスペアは、起動
されていないか、他の仕事に用いられていたもので、シ
ステム内で移し変えられたときに初期化する必要があ
る。 *リカバリ:コンピュータシステム内でフォールトが発
生した場合、オペレーションを継続する初期状態にシス
テムを戻すために、補正を行う必要がある。スペア・ア
ンド・ペア方式は、ハードウェア冗長により、フォール
ト・トレランスを達成するものである。即ち、2つの同
一構成のハードウェア部品からの臨界信号を比較するこ
とにより、エラー(誤り)を検出し、誤りを含む部品を
システムから排除する。図2に、ペア・アンド・スペア
方式を実行した代表例を示す。ストラタス・オンライン
連続処理システムにおいて、全てのハードウェア部品
は、ミラー化している。即ち、2つの部品が同一構成
で、且つ、同一の機能を実行する。図2に示すように、
2つのCPUボード、CPU1及びCPU2が用いられ
ている。各ボード上には、2本の相等しいデータパスが
あり、各パスは、サイドA及びサイドBと呼ばれるプロ
セッサーを備える。各サイドは自分のバスからの入力を
受け、自分のバスを駆動する。各バスは、各ボードの半
分のORに接続している。各ボード上の2つのサイド
は、恒常的に、互いに比較を行っている。不一致が生じ
た場合には、赤いランプが点灯し、そのボードはシステ
ムから排除される。このような場合には、もう一枚のボ
ードが、システムの唯一のCPUボードとなる。
増大し、重要なものになるにつれて、各構成部品の品質
を高めるとか、設計を改良するとかいうような小手先の
手段では、様々な要求に答えるだけの信頼度をコンピュ
ータに与えることが難しくなっている。何らかの故障や
誤り(エラー)が起きたときでも、コンピュータが機能
し続けることが求められており、これが、今日のコンピ
ュータ用語で言うところの、フォールト・トレラント機
能である。フォールト・トレラント機能は、銀行業界、
金融、電気通信、航空管制、軍事、小売等オンラインで
の連続処理に対する支援体制が求められるような環境下
では、必要不可欠な機能である。1980年代初頭か
ら、フォールト・トレラント機能を開発、改良するため
に、様々な設計変更が行われてきた。マイクロプロセッ
サーの登場以来、それまで、コンピュータ専用のクリー
ンルーム内という人工的に清浄な環境下に置かれてきた
コンピュータシステムは、産業現場の自然環境下へとそ
の活躍の場を移してきた。自然のより厳しい環境下に置
かれたことにより、コンピュータシステムの環境変数は
大きく変動することとなった。例えば、温度及び湿度レ
ベルの変化、主要電源の変動、電磁波障害等に曝される
ことになり、これらの要因によりコンピュータの故障が
引き起こされる可能性が高くなった。コンピュータ業界
の専門家が共通して挙げるコンピュータの故障増大の第
二の要因は、コンピュータを使用するユーザー層が飛躍
的に広がり、ユーザーのコンピュータに関する知識の平
均レベルが低下したことにより、ユーザーの不注意によ
る誤用が増加したことである。三番目の要因としては、
コンピュータシステムが大きくなり、多くの構成部品が
使われるようになったため、構成部品の故障に伴うシス
テム故障の可能性が高くなったことが挙げられる。故障
は、ディジタルコンピュータの様々なレベルで発生す
る。第一レベルは、抵抗器、コンデンサ、誘導子、電源
等の部品を含む回路レベルである。第二レベルには、論
理ゲート及びゲートから構成されるデータ・オペレータ
が含まれる。論理ゲートは、更に、組み合せ論理ゲート
と、逐次論理ゲートの2つのカテゴリーに分類される。
第三レベルは、ディジタルコンピュータに特徴的なプロ
グラムレベルである。このレベルにおいて、装置に与え
られた一連の命令が解釈され、データ構造に対して様々
な処理が行われる。これが、命令セットプロセッサー
(ISP)によるサブレベルであり、ISPサブレベル
により、次に、プログラマーにより簡単に操作されるソ
フトウェア要素、即ち、高レベル言語によるサブレベル
が創出される。この結果作られたものが、OS(オペレ
ーティング・システム)、ランタイム・システム、アプ
リケーションプログラム、アプリケーションシステム等
のソフトウェアである。最後の第四レベルは、プログラ
ミング・メモリー・スイッチ(PMS)レベルであり、
これには、入出力装置、メモリー、マス・ストレージ、
通信装置、処理装置(プロセッサー)が含まれる。これ
ら全ての構成要素が互いに連絡・接続されることによ
り、コンピュータシステムが形成されている。コンピュ
ータの異常、誤作動は、以下のように分類される。 1.故障 :ハードウェアの物理的変化。 2.フォールト :システムの構成要素の故障、環境
に起因する物理的な障害、オペレータの操作ミス、ある
いは、設計ミスに起因する誤りをハードウェアあるいは
ソフトウェアが有している状態。 3.誤り(エラー):プログラムあるいはデータ構造内
におけるフォールトの発生。フォールト部位から離れた
ところで、誤りが発生することもある。 4.固定 :連続的で、安定した状態の故障、
フォールト、あるいは、エラーを説明する言葉である。
ハードウェアにおける「固定した」故障とは、元に戻す
ことのできない物理的な変化を意味する。「固定」とい
う言葉の代わりに、「修復不能」という単語が用いられ
ることもある。 5.間欠 :不安定な状態のハードウェア、あ
るいは、ハードウェアまたはソフトウェアの変動により
時々起こる、フォールトあるいは誤りを意味する。 6.過渡 :一時的な環境条件により引き起こ
されるフォールトあるいは誤りを意味する。「過渡」と
いう言葉の代わりに、「修復可能」という単語が用いら
れることもある。 図1に、これら様々なレベルにおけるコンピュータの故
障、誤り等の関係を示す。コンピュータシステムにおけ
るフォールト・トレラント能力は、次の2つの物差しを
用いて測定される。第一の物差しは、「アベィラビリテ
ィ(稼働率)」である。これは、時間の関数であり、あ
る時刻にシステムが機能を遂行することが可能である確
率を示す。第二の物差しは、「信頼度」である。これ
は、例えば、システムが時刻t=0に操作可能であった
という前提の下で、所定の時間間隔[0,t]の間ずっ
とその状態を保ち続ける条件付き確率を示すものであ
る。この「信頼度」という物差しは、衛星コンピュータ
のように修理不可能なシステム、飛行機のフライトコン
ピュータのように、コンピュータが非常に重要な役割を
果たし、たとえ、修理の間でさえも止めることが不可能
なシステム、あるいは、修理費用が途方もなく高くつく
システム等を評価する場合に特に重要である。コンピュ
ータに故障が生じた場合でも、妨害されることなく機能
し続けるフォールト・トレラント・コンピュータシステ
ムは、機能面で多くの利点を有するが、経済的な面でも
ユーザーに多くのメリットをもたらす。コンピュータシ
ステムに掛かる費用は、最初の購入時に限られるわけで
はなく、システムの使用過程で非常に多くの費用が生じ
る。フォールト・トレラント・コンピュータシステム
は、保守費用を削減するのみではなく、ダウンタイムに
より生じる費用も大きく削減することができる。ソフト
ウェア・フォールト・トレラント機能と、ハードウェア
・フォールト・トレラント機能は、対象こそ異なるもの
の、冗長検査、自己検査機能等、多くの共通する特徴を
有している。ソフトウェア・フォールト・トレラント機
能は、ソフトウェアの設計ミス及びプログラミングミス
に起因するコンピュータの誤りを排除することを目的と
したものであり、ハードウェア・フォールト・トレラン
ト機能は、ハードウェアの故障に起因するコンピュータ
の誤りを排除することにある。近年、ソフトウェアのフ
ォールトを許容する、様々な実験的及び実際的なフォー
ルト・トレラント・システムの設計が行われている。こ
のようなシステムは、主に設計フォールトを対象とする
ものである。ここで、「設計」という言葉は、システム
要件から、初期運転及び将来の修正を実現するものま
で、全ての要素を網羅している。設計フォールトは、通
常モードの故障要因となるものであり、厳密な多重化に
基づくフォールト・トレラント戦略を無効にし、多くの
場合、取り返しのつかない事態を招く。共通のサービス
仕様から作られる異なったシステムを、ヴァリアントと
呼ぶ。多様化設計とは、少なくとも2つのヴァリアント
と、一定した初期条件及び入力が行われた場合のヴァリ
アントの実行結果を監視する1つのディサイダーとを含
む。共通仕様は、判定を行うべき時、どのデータに基づ
いて行うべきかを決める判定ポイントを明確にアドレス
するものでなければならない。ソフトウェアの設計フォ
ールトを許容する周知の技法の中で優れたものは、リカ
バリ・ブロック(RB)アプローチとNバージョン・プ
ログラミング(NVP)である。最初のアプローチ法で
は、オルタネート(選択枝)がヴァリアントに該当し、
オルタネートの結果に順に適用される許容テストがディ
サイダーに該当する。第一オルタネートの結果が許容テ
ストを満足させなければ、第二オルタネートが実行され
る。二番目のアプローチ法では、バージョンがヴァリア
ントに該当し、全てのバージョンの結果に基づく多数決
がディサイダーに該当する。実際的なシステムの大部分
は、リカバリ・ブロック・アプローチもNバージョン・
プログラミングも実行せず、1つのヴァリアントと許容
テストあるいは2つのヴァリアントと比較アルゴリズム
からなる自己検査ソフトウェアに基づいて、作動する。
設計の多様性を実現するために、主に2つのことを考慮
する必要がある。1つめは、ヴァリアントの数である。
経済的な側面以外にも、所定のソフトウェア・フォール
ト・トレランス法におけるヴァリアントの数は、許容で
きるフォールトの数と直接的に相関する。2つ以上のフ
ォールトを許容する必要がある場合に限り、ソフトウェ
ア・フォールトが修復可能なものであるか、あるいは、
固定したものであるかが、システムのアーキテクチャに
大きく影響する。2つ以上のフォールトが同時に起こら
なければ、固定フォールトを許容できるアーキテクチャ
は、無限に連続する修復可能なフォールトをも許容する
ことができる。2つめは、フォールト・トレランスの適
用水準(レベル)である。この適用レベルに関しては、
次の2つの問題が生じる。 (1)多様化を行うために、システムをどの程度までの
部品に分解するべきか? (2)どの層(アプリケーション・ソフトウェア、エグ
ゼキューティブ、ハードウェア)を多様化するべきか? 第一の問題に対する解答は、部品をより小さくすれば、
判定アルゴリズムをよりよく制御することができるし、
部品をより大きくすれば、多様性を増加させることがで
きる、という相反する事項をどの様に調整するかに、掛
かっている。更に、判定ポイントは、「非多様」ポイン
ト(または、N自己検査プログラミングに関しては同期
ポイント、NSCP及びNVP)であり、そのように限
定される必要がある。判定ポイントは、(センサーデー
タ獲得、アクチュエータへの命令伝達、オペレータとの
相互作用等)、外部環境との相互作用に関して必要とさ
れる。しかし、性能を考慮することにより、更に妥協点
を見いだすことができる。ソフトウェア・フォールト・
トレランスは、主に、ソフトウェア設計及びプログラミ
ングにおける誤り(エラー)に起因するフォールトを対
象とするものである。一方、ハードウェア・フォールト
・トレランスは、ハードウェア設計に起因するエラーあ
るいは回路エラーを対象にするものである。フォールト
・トレランス機能は、ハードウェア、ソフトウェア、情
報、及び/あるいは計算に冗長性を持たせることにより
達成される。フォールト・トレランス戦略は、以下の要
素を一つ以上含む。 *誤り(エラー)検出、マスキング及び補正:冗長ハー
ドウェア部品からのデータを比較し、誤りを検出し、誤
りを含むデータは、動的に補正する。更に、限定された
境界を越して誤りを含むデータが伝播しないように、シ
ステムを構成する必要がある。 *診断:コンピューターシステムが誤りを含むハードウ
ェア部品(例えば、モジュール、データパス、論理ボー
ドの一部等)を特定するプロセスである。 *修復/再構成:故障したモジュールをスペアと交換す
ることにより、あるいはシステム構成または作業負荷分
配を再構成して、モジュールを迂回することにより、シ
ステムの修復が行われる。モジュールの交換には、「ホ
ット(熱)」交換と「コールド(冷)」交換の2種類が
ある。ホットスペアは、交換されるモジュールと同じ仕
事を同時に行っており、システム内で移し変えられた時
に初期化の必要がない。一方、コールドスペアは、起動
されていないか、他の仕事に用いられていたもので、シ
ステム内で移し変えられたときに初期化する必要があ
る。 *リカバリ:コンピュータシステム内でフォールトが発
生した場合、オペレーションを継続する初期状態にシス
テムを戻すために、補正を行う必要がある。スペア・ア
ンド・ペア方式は、ハードウェア冗長により、フォール
ト・トレランスを達成するものである。即ち、2つの同
一構成のハードウェア部品からの臨界信号を比較するこ
とにより、エラー(誤り)を検出し、誤りを含む部品を
システムから排除する。図2に、ペア・アンド・スペア
方式を実行した代表例を示す。ストラタス・オンライン
連続処理システムにおいて、全てのハードウェア部品
は、ミラー化している。即ち、2つの部品が同一構成
で、且つ、同一の機能を実行する。図2に示すように、
2つのCPUボード、CPU1及びCPU2が用いられ
ている。各ボード上には、2本の相等しいデータパスが
あり、各パスは、サイドA及びサイドBと呼ばれるプロ
セッサーを備える。各サイドは自分のバスからの入力を
受け、自分のバスを駆動する。各バスは、各ボードの半
分のORに接続している。各ボード上の2つのサイド
は、恒常的に、互いに比較を行っている。不一致が生じ
た場合には、赤いランプが点灯し、そのボードはシステ
ムから排除される。このような場合には、もう一枚のボ
ードが、システムの唯一のCPUボードとなる。
【0003】
【発明が解決しようとする課題】本発明は、上記課題を
解決するためになされたものであり、新しいフォールト
・トレラント・コンピュータを提供することを目的とす
る。
解決するためになされたものであり、新しいフォールト
・トレラント・コンピュータを提供することを目的とす
る。
【0004】
【課題を解決するための手段】上記目的を達成するため
に、本発明のフォールト・トレラント・ディジタルデー
タプロセッサーは、信号を伝達するシステムバス手段に
沿って互いに連結する複数の機能装置を備え、第一の機
能装置が、一つあるいは複数の他の機能装置から前記シ
ステムバス手段を介して伝達される入力信号に応じて、
第一の処理を行い、出力信号を発生し、更に、前記出力
信号を、前記システムバス手段を介して、一つあるいは
複数の他の機能装置に伝達するように構成される、こと
を特徴とする。前記第一の機能装置は、信号を伝達する
ヴォータバス手段に沿って互いに連結され、且つ、前記
システムバス手段に接続されて、前記入力信号のうち対
応するものを受信する、n個の処理部を備える。また、
前記処理部は、それぞれ、 A.前記入力信号に応じて、前記第一の処理を行い、前
記出力信号を発生する処理手段と、 B.マスター状態(MASTER STATE)信号に
より起動し、少なくとも前記バス手段の何れか一つに、
少なくとも所定の入力信号に応じて出力された出力信号
を供給する、マスター手段と、 C.スレーブ状態(SLAVE STATE)信号によ
り起動し、(1)前記所定の入力信号に対応して、前記
処理部の処理手段から出力された出力信号と、(2)マ
スター手段あるいは他の処理部から出力された出力信号
と、を比較する比較信号を発生し、前記比較信号を前記
ヴォータバス手段に伝達するスレーブ手段と、 D.前記ヴォータバス手段と、前記マスター手段と、前
記スレーブ手段とに接続されて、所定の処理部の状態を
維持し、前記状態を表す信号を出力する状態手段と、を
備える。前記状態手段は、更に、マスター状態と、一つ
あるいは複数のスレーブ状態とを含む複数の状態の中か
ら前記状態を選択する選択手段と、前記状態信号並びに
前記ヴォータバス手段を介して伝達される一つあるいは
複数のマッチ信号の組み合せに応じて、前記所定の処理
部の状態を選択的に変化させるヴォータ手段と、を備え
る。本発明のフォールト・トレラント・ディジタルデー
タプロセッサは、更に、各処理部の前記状態手段に接続
され、所定の時点で、前記処理部の何れか一つを前記マ
スター状態にし、且つ、残りの処理部をスレーブ状態に
するための、同期手段を備える。また、前記状態手段
は、更に、何れの時点においても、前記処理部の内一つ
だけを前記マスター状態に保持する手段を備える。前記
n個の処理部は、例えば、3個であり、前記状態手段
が、更に、一つのマスター状態と、(n−1)のスレー
ブ状態とを含む複数の状態の中から前記状態を選択する
手段を備えるように構成されることが望ましい。また、
前記ヴォータ手段は、更に、所定の処理部の現在の状態
と前記ヴォータバス手段を介して伝達される前記一つあ
るいは複数のマッチ信号の組み合せとの関数に従い、前
記所定の処理部の状態を変化させる手段を備え、前記ス
レーブ手段は、各マッチ信号のORを前記ヴォータバス
手段に伝達する手段を備える。好ましくは、前記第一機
能装置が、中央処理装置(CPU)であり、前記マスタ
ー手段が、更に、データ、アドレス、制御情報の内少な
くとも一つを含む前記出力信号を発生させる手段を備え
る。前記ヴォータ手段は、更に、前記ヴォータバス手段
を介して伝達される前記一つあるいは複数のマッチ信号
の組み合せに応じて、各処理部から出力される出力信号
がすべて等しく、各処理部の状態を変化させる必要がな
いことを示す手段を備える。また、前記マスター状態に
ある所定の処理部と連絡する前記ヴォータ手段が、更
に、前記マスター状態信号と前記ヴォータバス手段を介
して伝達される前記一つあるいは複数のマッチ信号の組
み合せとに応じて、前記所定の処理部から出力される出
力信号が少なくとも一つの他の処理部から出力される信
号と等しく、前記所定の処理部の状態を変化させる必要
がないことを示す手段を備える、ように構成されること
が望ましい。更に好ましくは、前記スレーブ状態にある
所定の処理部と連絡する前記ヴォータ手段が、(1)前
記スレーブ状態信号と、前記ヴォータバス手段を介して
伝達される前記一つあるいは複数のマッチ信号の組み合
せとに応じて、前記所定の処理部から出力された出力信
号が、前記マスター状態にある処理部から出力された出
力信号と等しくないこと、また、(2)前記スレーブ状
態信号と、前記ヴォータバス手段を介して伝達される前
記一つあるいは複数のマッチ信号の組み合せとに応じ
て、前記スレーブ状態にある他の処理部から出力された
出力信号が、前記マスター状態にある処理部から出力さ
れた出力信号と等しいこと、を示し、前記所定の処理部
の状態を第一スレーブ状態から第二スレーブ状態に変化
させる手段を備える。この手段は、あるいは、(1)前
記スレーブ状態信号と、前記ヴォータバス手段を介して
伝達される前記一つあるいは複数のマッチ信号の組み合
せとに応じて、前記所定の処理部から出力された出力信
号が、前記マスター状態にある処理部から出力された出
力信号と等しいこと、また、(2)前記スレーブ状態信
号と、前記ヴォータバス手段を介して伝達される前記一
つあるいは複数のマッチ信号の組み合せとに応じて、前
記スレーブ状態にある他の処理部から出力された出力信
号が、前記マスター状態にある処理部から出力された出
力信号と等しくないこと、を示し、前記他の処理部の状
態を第一スレーブ状態から第二スレーブ状態に変化させ
る。また、各処理部の前記ヴォータ手段が、更に、前記
ヴォータバス手段を介して伝達される前記一つあるいは
複数のマッチ信号の組み合せに応じて、前記マスター状
態にある所定の処理部から出力された出力信号が、前記
スレーブ状態にある所定数の他の処理部から出力された
出力信号と等しくないことを示し、(1)前記所定の処
理部の状態を変化させ、(2)前記所定の入力信号に応
じて前記第一の処理を再び行い、前記出力信号を発生さ
せる、手段を備える、ように構成されることが望まし
い。更に望ましくは、前記マスター手段が、前記出力信
号を前記ヴォータバス手段に伝達するための手段を備
え、前記スレーブ手段が、所定の尻部の処理手段から出
力された出力信号と、前記システムバス手段を介して伝
達される出力信号とを比較する手段を備える。
に、本発明のフォールト・トレラント・ディジタルデー
タプロセッサーは、信号を伝達するシステムバス手段に
沿って互いに連結する複数の機能装置を備え、第一の機
能装置が、一つあるいは複数の他の機能装置から前記シ
ステムバス手段を介して伝達される入力信号に応じて、
第一の処理を行い、出力信号を発生し、更に、前記出力
信号を、前記システムバス手段を介して、一つあるいは
複数の他の機能装置に伝達するように構成される、こと
を特徴とする。前記第一の機能装置は、信号を伝達する
ヴォータバス手段に沿って互いに連結され、且つ、前記
システムバス手段に接続されて、前記入力信号のうち対
応するものを受信する、n個の処理部を備える。また、
前記処理部は、それぞれ、 A.前記入力信号に応じて、前記第一の処理を行い、前
記出力信号を発生する処理手段と、 B.マスター状態(MASTER STATE)信号に
より起動し、少なくとも前記バス手段の何れか一つに、
少なくとも所定の入力信号に応じて出力された出力信号
を供給する、マスター手段と、 C.スレーブ状態(SLAVE STATE)信号によ
り起動し、(1)前記所定の入力信号に対応して、前記
処理部の処理手段から出力された出力信号と、(2)マ
スター手段あるいは他の処理部から出力された出力信号
と、を比較する比較信号を発生し、前記比較信号を前記
ヴォータバス手段に伝達するスレーブ手段と、 D.前記ヴォータバス手段と、前記マスター手段と、前
記スレーブ手段とに接続されて、所定の処理部の状態を
維持し、前記状態を表す信号を出力する状態手段と、を
備える。前記状態手段は、更に、マスター状態と、一つ
あるいは複数のスレーブ状態とを含む複数の状態の中か
ら前記状態を選択する選択手段と、前記状態信号並びに
前記ヴォータバス手段を介して伝達される一つあるいは
複数のマッチ信号の組み合せに応じて、前記所定の処理
部の状態を選択的に変化させるヴォータ手段と、を備え
る。本発明のフォールト・トレラント・ディジタルデー
タプロセッサは、更に、各処理部の前記状態手段に接続
され、所定の時点で、前記処理部の何れか一つを前記マ
スター状態にし、且つ、残りの処理部をスレーブ状態に
するための、同期手段を備える。また、前記状態手段
は、更に、何れの時点においても、前記処理部の内一つ
だけを前記マスター状態に保持する手段を備える。前記
n個の処理部は、例えば、3個であり、前記状態手段
が、更に、一つのマスター状態と、(n−1)のスレー
ブ状態とを含む複数の状態の中から前記状態を選択する
手段を備えるように構成されることが望ましい。また、
前記ヴォータ手段は、更に、所定の処理部の現在の状態
と前記ヴォータバス手段を介して伝達される前記一つあ
るいは複数のマッチ信号の組み合せとの関数に従い、前
記所定の処理部の状態を変化させる手段を備え、前記ス
レーブ手段は、各マッチ信号のORを前記ヴォータバス
手段に伝達する手段を備える。好ましくは、前記第一機
能装置が、中央処理装置(CPU)であり、前記マスタ
ー手段が、更に、データ、アドレス、制御情報の内少な
くとも一つを含む前記出力信号を発生させる手段を備え
る。前記ヴォータ手段は、更に、前記ヴォータバス手段
を介して伝達される前記一つあるいは複数のマッチ信号
の組み合せに応じて、各処理部から出力される出力信号
がすべて等しく、各処理部の状態を変化させる必要がな
いことを示す手段を備える。また、前記マスター状態に
ある所定の処理部と連絡する前記ヴォータ手段が、更
に、前記マスター状態信号と前記ヴォータバス手段を介
して伝達される前記一つあるいは複数のマッチ信号の組
み合せとに応じて、前記所定の処理部から出力される出
力信号が少なくとも一つの他の処理部から出力される信
号と等しく、前記所定の処理部の状態を変化させる必要
がないことを示す手段を備える、ように構成されること
が望ましい。更に好ましくは、前記スレーブ状態にある
所定の処理部と連絡する前記ヴォータ手段が、(1)前
記スレーブ状態信号と、前記ヴォータバス手段を介して
伝達される前記一つあるいは複数のマッチ信号の組み合
せとに応じて、前記所定の処理部から出力された出力信
号が、前記マスター状態にある処理部から出力された出
力信号と等しくないこと、また、(2)前記スレーブ状
態信号と、前記ヴォータバス手段を介して伝達される前
記一つあるいは複数のマッチ信号の組み合せとに応じ
て、前記スレーブ状態にある他の処理部から出力された
出力信号が、前記マスター状態にある処理部から出力さ
れた出力信号と等しいこと、を示し、前記所定の処理部
の状態を第一スレーブ状態から第二スレーブ状態に変化
させる手段を備える。この手段は、あるいは、(1)前
記スレーブ状態信号と、前記ヴォータバス手段を介して
伝達される前記一つあるいは複数のマッチ信号の組み合
せとに応じて、前記所定の処理部から出力された出力信
号が、前記マスター状態にある処理部から出力された出
力信号と等しいこと、また、(2)前記スレーブ状態信
号と、前記ヴォータバス手段を介して伝達される前記一
つあるいは複数のマッチ信号の組み合せとに応じて、前
記スレーブ状態にある他の処理部から出力された出力信
号が、前記マスター状態にある処理部から出力された出
力信号と等しくないこと、を示し、前記他の処理部の状
態を第一スレーブ状態から第二スレーブ状態に変化させ
る。また、各処理部の前記ヴォータ手段が、更に、前記
ヴォータバス手段を介して伝達される前記一つあるいは
複数のマッチ信号の組み合せに応じて、前記マスター状
態にある所定の処理部から出力された出力信号が、前記
スレーブ状態にある所定数の他の処理部から出力された
出力信号と等しくないことを示し、(1)前記所定の処
理部の状態を変化させ、(2)前記所定の入力信号に応
じて前記第一の処理を再び行い、前記出力信号を発生さ
せる、手段を備える、ように構成されることが望まし
い。更に望ましくは、前記マスター手段が、前記出力信
号を前記ヴォータバス手段に伝達するための手段を備
え、前記スレーブ手段が、所定の尻部の処理手段から出
力された出力信号と、前記システムバス手段を介して伝
達される出力信号とを比較する手段を備える。
【0005】
【作用】本発明のフォールト・トレラント・ディジタル
データプロセッサーは、ミラー化された複数の処理部か
ら出力された臨界信号を比較することにより、複数のフ
ォールト、複数箇所の故障を許容することができる。ま
た、本発明のシステムでは、複数の処理部の内一つをマ
スター状態、残りをスレーブ状態とし、マスター−スレ
ーブアルゴリズムを用いて、これらの処理部から出力さ
れた信号を比較し、異常のある処理部を、システム全体
の性能を低下させることなく、効率的にシステムから排
除している。更に、経済的な側面からみても、複数(好
ましくは3つ)のミラー部品を用いることにより、シス
テムの費用効果が高められている。
データプロセッサーは、ミラー化された複数の処理部か
ら出力された臨界信号を比較することにより、複数のフ
ォールト、複数箇所の故障を許容することができる。ま
た、本発明のシステムでは、複数の処理部の内一つをマ
スター状態、残りをスレーブ状態とし、マスター−スレ
ーブアルゴリズムを用いて、これらの処理部から出力さ
れた信号を比較し、異常のある処理部を、システム全体
の性能を低下させることなく、効率的にシステムから排
除している。更に、経済的な側面からみても、複数(好
ましくは3つ)のミラー部品を用いることにより、シス
テムの費用効果が高められている。
【0006】
【実施例】本発明を体現化した実施例を、図面に従い、
説明する。好適な実施例であるコンピュータシステム
は、2つの独立したバス、即ち、システムバスとヴォー
ティングバスとを備える。システムバスには、データ、
アドレス及び制御信号ラインがすべて含まれており、こ
れは、メモリーボードを備えるCPUボードに接続され
る。通常、フォールト・トレラント・コンピュータシス
テムにおいて、全ての信号は、ハードウェア冗長及びソ
フトウェア冗長により保護されている。このため、本実
施例のコンピュータシステムで用いられるシステムバス
には、システムバスのフォールトが生じた場合にコンピ
ュータシステムを保護する目的で、冗長性を付加するこ
とが望ましい。但し、設計を簡略化するために、システ
ムバスに冗長性を付加せず、フォールト・トレランスを
バスに与えないように構成することもできる。ヴォーテ
ィングバスは、3つの同一な構成を有する論理CPUボ
ードに接続され、比較及び多数決に関係する信号が伝達
される。ヴォーティングバスの詳細に関しては、後に説
明する。フォールト・トレランスは、ハードウェア冗長
及びソフトウェア冗長により、達成される。冗長の実行
結果を比較することにより、誤り及び/あるいはフォー
ルトを検出することができる。このためには、シンプレ
ックス信号及び/あるいはシンプレックス論理回路、即
ち、比較装置が必要であり、比較結果はこの比較装置か
ら出力される。多重化率は、市販コンピュータの設計に
より異なっているが、コンパレータ(比較装置)は、一
点障害の部位あるいは保護されていないデータパスに配
置される。比較回路があまり複雑な構成になっていなけ
れば、比較回路の信頼度を充分に高いものとすることが
できる。本実施例のコンピュータシステムに採用されて
いる3方向多数決機能は、コンパレータが信頼度の高い
装置であり、これを多重化する必要がないという前提に
基づいて構成されている。具体的にいえば、ボードAと
ボードBの各々から出力される信号をボードA上で比較
すれば、ボードB上で比較を行う必要がないということ
である。本実施例のコンピュータシステムでは、3枚の
ボード、即ち、ボードA、B、Cが用いられている。各
ボードは、互いにミラー化、即ち、同一構成を有してい
る。正常な場合には、3枚のボードから出力される信号
は、すべて、同一である。このため、システムバスの駆
動には、1枚のボードしか必要とされない。システム内
の3枚のボードは、それぞれ、マスターボード、スレー
ブボード0、スレーブボード1として用いられる。マス
ターボードがシステムバスを駆動し、他の2枚のスレー
ブボードはマスターボードが故障した場合のバックアッ
プとして用いられる。下の表は、マスターボードとスレ
ーブボードの割当の例を示すものである。 マスター スレーブ0 スレーブ1 A B C B C A C A B 図3で、Aはマスターボード、B及びCはスレーブボー
ドを示す。ボードAは、マルチプレクサ支援の下、様々
な状況下で、スレーブボードであるボードB、ボードC
に信号を送る。ボードB及びC上で、対応する信号の比
較が行われ、比較結果は、3枚のボード全てに伝達され
る。図3(a)に示すように、ボードA、B、Cの信号
がすべて等しい場合には、比較の一致を示す論理レベ
ル’1’が結果として出力される。この場合には、ボー
ドAをマスターボードとして使い続ける。図3(b)に
示すように、ボードAとボードCとの間に不一致が検出
される一方、ボードAとボードBが等しいという場合に
は、ヴォーティング(多数決)装置により、ボードCが
少数ボードとして認識される。この場合には、ボードA
がマスターボードであり続け、ボードAとボードBにお
ける実行には何ら影響を及ぼさない。即ち、前のサイク
ルを再実行する必要はない。不一致がもう一度生じた場
合には、ボードCを使用不能にする。図3(c)は、ボ
ードAとボードB、並びに、ボードAとボードCの間に
不一致が生じた場合を示す。これは、ボードAが少数で
ある、あるいは、3枚のボードがすべて等しくない、こ
とを示している。異常のあるボードがマスターボードで
あることが考えにくい図3(b)の状況とは異なり、こ
の場合には、前のサイクルの再実行が要求される。ボー
ドAの故障を確認した後、ボードBをマスターボードに
昇格させる。これにより、ボードAのシステムバスに対
する制御は失われる。次に、3枚のボード全てで、前の
サイクルが再実行される。図3(d)に示すように、ボ
ードBとボードC、ボードBとボードAとの間で、比較
を行う。二回目の不一致が生じた場合には、ボードAを
使用不能とする。以上のように、本実施例のシステムで
は、マスターボードから出力される一組の信号のみがバ
スに伝達され、2枚のスレーブボードは、それぞれ、マ
スターボードから出力された信号を自分自身の対応信号
と比較する。このシステムは、スレーブボード上のコン
パレータ(比較装置)が充分信頼できるものであり、多
重化の必要がないという過程の下に設計されている。即
ち、スレーブボードから出力された信号をマスターボー
ド上で比較することはない。更に、1本のバス上でアド
レス、データ及び制御信号を多重送信することにより、
バスのバンド幅を増加させる代わりに、バスのビット数
を大幅に減少させることができる。システム内のフォー
ルトを隔離することにより、システムにおける1サイク
ルの過渡的誤りを許容することができる。この場合、許
容可能な過渡的誤りの数は、任意に設定される。即ち、
比較結果の不一致が生じた場合でも、マスターボードが
正しく設定されている限り、故障している可能性のある
ボードを直ちに使用不能にする必要はない。先に述べた
ように、このシステムの設計は、コンパレータの論理が
正確であるという前提の下に行われている。このため、
コンパレータの論理回路をできるだけ単純な構成にする
必要がある。上述のように、このシステムでは、2つの
独立バスが用いられている。1つめは、システム内の全
ての論理ボードを接続するシステムバスである。ここ
で、同一の機能を遂行する複数の冗長ボードを、集合的
に、論理ボードと呼ぶ。例えば、このシステムで用いら
れる同一構成を有する3枚のCPUボードを、集合的
に、論理CPUボードと総称する。もう1つのバスは、
先に説明したヴォーティングバスである。このシステム
で用いられるマイクロプロセッサーとしては、モトロー
ラ68000が望ましい。これには、16ビットのデー
タバス(DO−D15)、23ビットのアドレスバス
(マイクロプロセッサー内部のA1−A23及びA
0)、3ビットのファンクション・コード、及び、その
他の制御信号が含まれる。1本のバスサイクルは、8つ
の状態から構成され、READ(読み取り)サイクルあ
るいはWRITE(書き込み)サイクルの所定の状態の
間に、様々な信号が、出力される。この特徴を利用し
て、異なった信号を、同一のバス上で多重送信し、異な
った時刻に受信することが可能である。このため、シス
テムの設計に必要な最大ビット数は、23ビットとな
る。次に、ヴォーティングバス上での信号の比較処理に
関して、説明する。SLV_COMP_DATA
[0..22]:これは、現在のマスターボードからヴ
ォーティングバスに与えられるデータである。ヴォーテ
ィングバスに伝達された後、2枚のスレーブボードから
出力された対応信号と比較される。比較結果は、ヴォー
ティングバスに伝えられる。SLV_MISCOMP_
L[0..1]:この2ビットは、2枚のスレーブボー
ドにより駆動される。この2ビットの値により、各ボー
ドの次のサイクルの動作が決定される。A_INDEX
[0..1]、B_INDEX[0..1]、C_IN
DEX[0..1]:以下に示すように、この2ビット
標識により、各ボードのシステム内における位置が特定
される。各ビットは、次の表に従い、設定される。物理
的には、この標識は、システムバス上に位置する。 INDEX マスター 0 0 A 0 1 B 1 0 C 1 1 使用されない システムバスは、24ビットのアドレスバス、16ビッ
トのデータバス、並びに、多くの信号から構成される制
御論理バスを備える。BUS_ADR[0..23]:
これは、CPUボードが出力するアドレスを保持する2
4ビットのアドレスバスラインである。BUS_DAT
A[0..15]:これは、CPUボードとメモリーボ
ードを連結させる、双方向16ビットデータバスであ
る。8ビットの書き込みあるいは読み取りが行われた場
合、データは、ビット0に並べられる。FC[0..
1]:この2ビットのファンクション・コードは、CP
Uボードから出力され、下記の表に示すように、16ビ
ット及び8ビットの動作を規定する。 FC[0..1] 動作 0 0 16ビット作動 0 1 下位8ビット作動 1 0 上位8ビット作動 1 1 使用されない FC[2]:これは、以下のように、READ(読み取
り)あるいはWRITE(書き込み)動作を規定する。 FC[2] 動作 1 読み取り 0 書き込み 表を見やすくするために、FC[0..1]とFC
[2]は別々に表示されているが、実際のバス動作にお
いては、これらのファンクション・コードは、同時に出
力される。FC[0..2]を用いることにより、バス
の作動なし、8ビットの読み込み/かきこみ、及び、1
6ビットの読み込み/書き込みを規定することができ
る。図4は、本実施例のフォールト・トレラント・コン
ピュータシステムの全体を表す状態図である。以下に、
状態変遷の流れの一部を示す。 開始 ボードAをマスターボード(MST)、ボードBをスレ
ーブボード0(SL0)、ボードCをスレーブボード1
(SL1)とする。1回目の比較を行う。 ケース[1,1] 変化なし [1,0] ボードBの1回目の不一致を記録。 2回目の比較を行う。 ケース[1,0] ボードBを使用不能にする。 [1,1] 最初の状態に戻る。 [0,1] ボードBはOK。ボードCの1回目の不一
致。 [0,0] ボードCをMSTに。ボードAの1回目の
不一致。 エンドケース 3回目の比較を行う。 [0,1] ボードCの1回目の不一致記録。 *以下、上記ケース[1,0]の場合と同様。 [0,0] ボードBをMSTに。 *いかなる不一致も記録されない。 2回目の比較開始。 図中、各状態は、以下の規則に従い、表記される。 Tx:Xがマスターボード。現在のところ、不一致は検
出されていない。 Txy:Xがマスターボード。ボードYに関して、1回
目の不一致検出。 Tx/y_:Xがマスターボード。ボードYに関して、
2回目の不一致が検出されたため、システムから排除さ
れた。図5は、ヴォーティングバスの動作を示すタイミ
ングチャートである。マスターボードは、異なった2つ
の時刻に、ヴォーティングバスのCOMP_DATAラ
インにアドレス及びデータ信号を送る。3枚のCPUボ
ードの働きにより、各ボード上の状態を保持するため
に、一組の信号が出力される。STATE1(状態1)
の立ち上がりでは、ヴォーティングバス上においてアド
レスが有効となる。この時点で、スレーブボードは、ヴ
ォーティングバスからアドレス信号を受け取る。STA
TE2(状態2)の立ち上がりでは、ヴォーティングバ
ス上においてデータが有効となる。この時点で、スレー
ブボードは、ヴォーティングバスからデータ信号を受け
取る。STATE3(状態3)の立ち上がりでは、スレ
ーブボード上で比較を行うために必要な全てのデータが
有効となる。SLV_MISCOMP[1:0]が、比
較の結果として、出力される。STATE4(状態4)
の立ち上がりでは、3枚のボードの次のサイクルにおけ
る状態(MST、SL0、SL1)が決定される。M6
8000のCPUボードの設計に関する詳細は、ここ
で、全く議論されていない。図5で参照される状態は、
M68000のREAD/WRITE(読み取り/書き
込み)動作の状態とは、異なる。上記の説明は、M68
000マイクロプロセッサーの機能を示すものではな
い。説明を分かりやすくするために、ヴォーティングバ
ス動作に関する状態は、マイクロプロセッサーと関係な
く、設定されている。以上、ヴォーティングバスのプロ
トコル並びにタイミングを説明した。次に、ヴォーティ
ングバスをインターフェースするCPUボード上の論理
回路に関して、次のプロトロルに従い説明する。 (1)M68000マイクロプロセッサーの読み取り及
び書き込み動作を説明する。マイクロプロセッサーの動
作タイミングにより、論理回路の以下の2つの部分の設
計が規定される。 (2)ヴォーティングバス・インターフェースを説明す
る。3枚のボードで多数決判定を行うことにより、上述
の3方向多数決アルゴリズムを実行する。3枚のCPU
ボードにより、ヴォーティングバス上の2つのスレーブ
不一致信号をモニターし、各ボードの次のサイクルにお
ける機能的役割を決定する。 (3)誤り検出機構を説明する。ボード上でこの機能を
果たす論理回路は、2組のデータを比較して、不一致信
号を出力する。ボードの機能的役割に応じて、不一致信
号により、2つのスレーブ不一致ビットの内1つが駆動
される。本実施例で用いられるMC68000プロセッ
サーは、読み取り(READ)サイクルの間に、システ
ムを介してメモリーボードから送られる1あるいは2バ
イトのデータを受信する。ワードあるいは長ワード・オ
ペレーションを指定する命令が出されると、MC680
00プロセッサーは、上位及び下位データストロボ(L
DS、UDS)の両方を出力することにより、上位バイ
トと下位バイトを同時に読み取る。一方、バイト・オペ
レーションを指定する命令が出された場合には、内部A
0ビットを用いて、どのバイトを読み取るかを判定し、
適切なデータストロボを出力する。即ち、A0=0の場
合には、上位データストロボを出力し、A0=1の場合
には、下位データストロボを出力する。データを受信し
た後、プロセッサーは、バイトの内部位置を決定する。
BUS_ADR[0]は、LDS及びUDSの値により
決まり、FC[0..2]は、LDS、UDS、及び、
R/W_の値により決定される。書き込み(WRIT
E)サイクルの間に、プロセッサーは、バイトデータを
メモリーに送る。ワード・オペレーションを指定する命
令が出された場合には、UDS並びにLDSを出力し、
両方のバイトを書き込む。バイト・オペレーションを指
定する命令が出されると、内部A0ビットを用いて、ど
のバイトを書き込むかを判定し、適切なデータストロボ
を出力する。即ち、A0=0の場合には、UDS_を出
力し、A0=1の場合には、LDS_を出力する。図6
に、READ及びWRITEサイクルを示す。読み取り
(READ)サイクルの詳細を以下に説明する。*ST
ATE0(状態0):読み取りサイクルは、STATE
0(S0)から始まる。プロセッサーは、まず、R/W
_をハイに起動し、読み取りサイクルを確認する。 *STATE1:STATE1(S1)に入ると、CP
Uボード上のアドレスバス上で有効アドレスが起動され
る。 *STATE2:STATE2(S2)の立ち上がり
で、AS_L、UDS_、及び、LDS_を出力する。
S2の間に、FC[0..2]をシステムバスに伝達す
る。 *STATE3:STATE3(S3)では、S3の立
ち上がりからS6の立ち下がりまでの間に、メモリーボ
ードからデータを呼び戻す。 *STATE4:STATE4(S4)では、サイクル
終了信号(DTACK_あるいはBERP_)またはV
PA(本実施例のシステムでは用いられていない)を待
つ。S4の立ち下がりまでの間に終了信号が出力されな
かった場合には、DTACK_あるいはBERP_が出
力されるまで、待機信号(フル・クロック・サイクル)
を割り込ませる。 *STATE5:STATE5(S5)では、バス信号
の変更は行われない。 *STATE6:STATE6(S6)では、装置から
送られたデータをデータバスに伝える。 *STATE7:クロック入力STATE7(S7)の
立ち下がりで、データをアドレス指定された装置から読
み込み、AS_、UDS_、LDS_を否定する。FC
[0..2]を高インピーダンス状態に駆動する。S7
の立ち上がりで、アドレスバスを高インピーダンス状態
にし、DTACK_を否定する。書き込み(WRIT
E)サイクルの詳細を以下に説明する。 *STATE0(状態0):書き込みサイクルは、S0
から始まる。(前回の書き込みサイクルでR/W_がロ
ーに設定されている場合には)まず、プロセッサーは、
R/W_をハイに起動する。 *STATE1:S1に入ると、アドレスバス上で有効
アドレスが起動される。 *STATE2:S2の立ち上がりで、AS_を出力
し、R/Wをローに起動する。 *STATE3:S3では、書き込むべきデータがデー
タバス上に位置するように、CPUボード上のデータバ
スを駆動し、高インピーダンスの状態から外す。 *STATE4:S4の立ち上がりで、UDS_、LD
S_を出力し、サイクル終了信号(DTACK_あるい
はBERP_)またはVPA(本実施例のシステムでは
用いられていない)を待つ。S4の立ち下がりまでの間
に何れの終了信号も出力されなかった場合には、DTA
CK_あるいはBERP_が出力されるまで、待機信号
(フル・クロック・サイクル)を割り込ませる。 *STATE5:S5では、バス信号が出力されない。 *STATE6:S6では、バス信号が出力されない。 *STATE7:クロック入力S7の立ち下がりで、A
S_、UDS_、LDS_を否定する。CPUボードを
用いて、FC[0..2]を高インピーダンス状態に駆
動する。S7の終了時にクロックが立ち上がると、プロ
セッサーは、アドレスバス及びデータバスを高インピー
ダンス状態にし、R/Wをハイに起動した後、DTAC
K_を否定する。3つのCPUボードの状態を一台の中
央装置で管理する代わりに、図4に示す状態(STAT
E)装置を、各CPUボード上に位置する3つのPAL
(プログラム可能論理アレイ)でプログラムされた3つ
の同一構成のサブステート装置に分割してもよい。この
場合、各装置は、BRD_INDEX[1:0]、SL
V_MISCOMP_L[1:0]の4つの信号をモニ
ターする。各装置の出力は、個々のボードのみで用いら
れ、この出力信号には、IM、MST、IM_SL0が
ある。状態多数決(VOTING STATE)装置に
関する信号を、図7に示すヴォーティングバス・インタ
ーフェースに関するタイミングチャートと共に、以下に
説明する。BRD_INDEX[1:0]:この2つの
信号は、ヴォーティングバスから出力される。スロット
A、B、Cにおいて、この信号は、それぞれ、A_BR
D_INDEX[1:0]、B_BRD_INDEX
[1:0]、C_BRD_INDEX[1:0]であ
る。SLV_MISCOMP_L[1:0]:この2つ
の信号は、ヴォーティングバスから出力される。この2
つの信号の値は、どの瞬間をとってみても、3枚のボー
ド全てで等しい。IM_MST:この信号が論理ハイの
状態にある場合には、そのボードがシステムのマスター
・ボードであることを示している。IM_SL0:この
信号が論理ハイの状態にある場合には、そのボードがシ
ステムのスレーブ0・ボードであることを示している。
IM_SL1:この信号が論理ハイの状態にある場合に
は、そのボードがシステムのスレーブ1・ボードである
ことを示している。PALプログラミングをできるだけ
簡素化するために、この信号は、STATE装置から出
力されない。この設計システムでは、PALの出力がす
べて登録されるため、IM_SL0及びIM_MSTが
出力されれば、IM_SL1を出力する必要がない。B
US_ADRS_VALID:この信号の立ち上がり
で、ヴォーティングバス上のアドレスが有効となり、ロ
ーカルCPUボードに登録される。このアドレスは、信
号の立ち下がりまで、ずっと有効である。BUS_DA
TA_VALID:この信号の立ち上がりで、ヴォーテ
ィングバス上のデータが有効となり、ローカルCPUボ
ードの登録される。このデータは、信号の立ち下がりま
で、ずっと有効である。COMP_CYC:この信号の
立ち上がりで、ヴォーティングバス上のSLV_MIS
COMP[1:0]が有効となり、ローカルボードに登
録される。この時、前のサイクルの再実行あるいはデー
タ・アクノレジを必要とするバスエラーを示す信号が出
力される。図8に、分配多数決機構の状態(STAT
E)図を示す。以下に主要な特徴を挙げる。*循環特
性:どのボードも、現在の状態並びにSLV_MISC
OMP_L[1]の値により、マスター・ボード、スレ
ーブ0・ボード、スレーブ1・ボードとして用いること
ができる。以下に、そのパターンの例を示す。 開始 *** 私はスレーブ0。 ケース[x,1]私は正常。変化なし。 [1,0]私は一回目の比較で異常。 2回目の不一致検出開始。 ケース[x,0]2回目の比較結果も異常。排除。 [x,1]1回目の異常記録消去。私はスレーブ0のま
ま。 エンドケース。 次の不一致検出開始。 [0,0]私は異常。もう一枚のボードも異常。私がマ
スターになる。 2回目の比較開始。 ケース[0,0]2回目の比較結果も異常。排除。 [1,x]&[0,1]私は1枚あるいは両方のスレー
ブと一致。 私がマスター。 次の不一致検出開始。 [0,0]の時に、両方のスレーブが不一致。 私がスレーブ1になる。 それ以外の場合は変化なし。 *ライブ挿入アベィラビリティ:ボードの内1枚がシス
テムから除かれた場合、そのシステムは、フォールトに
対して保護されていない状態になる。システムのフォー
ルト・トレランスを回復するためには、第三ボードをオ
ンライン上で他のボードと同期させる必要がある。以下
に、分配多数決装置がボードの機能を選択する過程を示
す。 開始 不一致検出。 ケース[0,0]初期設定開始。/*システム内のボー
ド数が3枚に満たない場合、[0,0]は有り得ない。 ケース スロットA マスター スロットB スレーブ0 スロットC スレーブ1 エンドケース [1,0]スレーブ0へ。 [0,1]スレーブ1へ。 [1,1]不可能。/*SLV_MISCOMP_Lが
スレーブにより出力されない場合、ローに駆動。 エンドケース。 *STATE装置フォールト保護:PALエラーの場合
には、システムは、部分的に保護される。 *回復不能:多数決機構が3枚のボードに分配されてい
るため、システムは、PALエラーに対して、一つの例
外を除き保護されている。2枚のボードがマスターの役
割を果たし、残りの1枚がスレーブ1の機能を果たす時
には、スレーブは1枚しか存在しない。ここで、このス
レーブに不一致が生じた場合、SLV_MISCOMP
_L[1:0]が[0,0]と等しくなる。結果とし
て、マスターがスレーブ1になり、先のスレーブ1がス
レーブ0になる。この場合、データをヴォーティングバ
スに送るマスターボードが存在しないため、2回目の比
較は当然不一致という結果になり、3枚のボード全てが
システムから排除される。これが、いわゆる「ダブル・
エラー」である。本実施例のシステムでは、2種類の論
理ボード、即ち、CPUボード及びメモリーボードが用
いられている。図9に示すように、3枚のCPUボード
は、互いに同一の構成を有するボードA、ボードB、ボ
ードCである。これら3枚のボードは、それぞれ、RE
AD(読み取り)サイクルの間、同一の機能を果たす。
一方、WRITE(書き込み)サイクルの間は、マスタ
ーボードのみがシステム並びにヴォーティングバスにア
クセスする。メモリーボードは、シンプレックス論理ボ
ードであり、システムバスを介して、CPUに連絡す
る。メモリーボード内には、ユニバーサル非同期レシー
バー/トランシーバー(UART)を用いて、V102
ターミナルと連絡する部分が備えられている。システム
バスの信号は、以下の通りである。 *アドレスバス(SYS_ADRS<1..23>):
この23ビットの一方向3ステートバスは、16メガバ
イトまでのデータをアドレスすることができる。メモリ
ーボードの読み取り及び書き込み細工づのあいだに、バ
ス動作のアドレスを決定する。 *データバス(SYSDATA<0..15>):この
二方向3ステートバスは、一般的なデータパスである。
このバスは16ビットの幅で、8ビット及び16ビット
の幅のデータを移送可能である。 *同期制御(SYS_CODE1,SYS_CODE
2,SYS_CODE3,SYS_CODE4):この
3つの信号は、システムバスサイクルの間だけ有効であ
る。これらの信号は、読み取り及び書き込みサイクルの
間、メモリーボードのタイミング制御を行う。SYS_
CODE1がローの場合には、CPUボードにより、有
効アドレスがシステムバス上に置かれる。SYS_CO
DE2がローの場合には、メモリーボードが、自分自身
にアドレスを登録する。SYS_CODE3がローの場
合には、バス読み取りサイクルの間に、メモリーボード
がデータをシステムバス上に送り、逆に、バス書き込み
サイクルの間には、CPUボードがデータをシステムバ
ス上に送る。SYS_CODE4がローの場合には、シ
ステムバス上のデータがシステムの書き込みサイクルの
間にはメモリーボード上に、読み取りサイクルの間には
CPUボード上に、登録される。SYS_CODE1が
ハイになると、バスサイクルが終了する。 *システム・ファンクション・コード(FC<0..2
>):これは、CPUボードにより出力される3ビット
のファンクション・コードであり、16ビットあるいは
8ビットの読み取りあるいは書き込み動作を規定する。 FC<0..2> 動作 000 16ビット書き込み 001 上位8ビット書き込み 010 下位8ビット書き込み 011 使用されない 100 16ビット読み取り 101 上位8ビット読み取り 110 下位8ビット読み取り 111 使用されない *システムメモリー・インターフェース制御(SYS_
MEM_SEL_L):システムバスサイクルの間、メ
モリーボードは、この信号をローにすることによりメモ
リーを選択したことを示す信号をCPUボードに出力す
る。 *クロック(SYS_CLK):これは、システムバス
の背面パネル上に搭載された8MHzのクロックカード
から出力される8MHzのクロック信号である。 *ボード指示器(SYS_MSTR_INDEX<
0..1>):この2ビット信号は、CPUボードの一
を決定する。背面パネル上の所定のスロットにおいて、
このビットをハイあるいはローにすることにより、これ
らのスロットに挿入したCPUボードをボードA、ボー
ドB、ボードCとして割り当てる。 INDEX<0..1> BRD 0 0 A 0 1 B 1 0 C 1 1 使用されない 図10は、システムバス上の書き込み動作を、また、図
11は、システムバス上の読み取り動作を示す。図12
に示すように、CPUボードは、4つの主要部分、即
ち、マイクロプロセッサー並びにそれと関連する論理回
路、ローカルメモリー、システムバス・インターフェー
ス、及び、ヴォーティングバス・インターフェースを備
える。ヴォーティングバス・インターフェースは、一組
のコンパレータ(比較器)及び多数決装置を含む。CP
Uボード上のローカルメモリーは、32Kx8 Xic
or Electrically Erasable
(電気的に消去可能な)Prom(EEprom)であ
る。このメモリーは、ワードサイズで、CPUメモリー
のスペースに直接マッピングされ、14のアドレスライ
ンにより、アドレスされる。LOW_BYTE_DTS
_Lにより、上位バイトまたは下位バイトを読み取るべ
きかあるいは書き込むべきかを判定する。EEprom
にアクセスする場合には、8ビットの動作のみが許され
る。ローカルメモリーのアドレススペースは、0000
00HEX −007FFFHEX である。EEpromの書
き込みサイクルは、EEprom上のチップ選択(CS
_L)ビットにより制御される。3組の信号、即ち、ア
ドレスライン、データライン、制御信号がシステムバス
に送られる。CPUボード上のシステムバスインターフ
ェースにより、ボード上の信号とバスライン上の信号と
の間の「ゲート」が制御される。ボードがシステムのマ
スターボードであり、且つ、システムメモリーのスペー
スをアドレスする場合に限り、全ての信号は、バス上に
送られる。それ以外の場合には、ゲートは、トリステー
トに保持される。本実施例のコンピュータシステムで
は、3枚のCPUボード全てが、ヴォーティングバスか
らCOMP_DATA信号を受け取る。この信号は、適
当な時点で、各ボード上のアドレス及びデータ信号と比
較される。各ボードの次の状態が決定され、マスターボ
ードからのデータがシステムバス上に書き込まれるCO
MP_CYCサイクルの前に、信号の相当性が解析され
る。次に、システムで用いられるメモリーボードについ
て、以下の4つの部分に分けて説明する。最初の部分で
は、静的ラムの動作、次に、メモリーボードのブロック
図、三番目に、メモリーボードの読み取り/書き込み動
作タイミング、最後に、SIO動作に関して、説明す
る。CY7C128は、8ビット2048ワーズで構成
される高性能CMOS静的RAMである。アクティブL
OW書き込み可能信号(WE_L)により、メモリーの
書き込み及び読み込み動作の制御が行われる。チップ可
能信号(CE_L)及び書き込み可能信号(WE_L)
の入力が両方ともLOWの場合には、8個のデータ入出
力ピン(I/O0 ないしI/O7 )上のデータを、アド
レスピン(A0 ないしA10)上に存在するアドレスによ
り決定されたメモリー位置に書き込まれる。装置を選択
して、WE_Lを不活性あるいはHIGHの状態に保持
したまま、出力CE_L及びOE_LをアクティブLO
Wにすることにより、装置の読み込みを行う。このよう
な条件下で、アドレスピン上の情報によりアドレスされ
た位置の中身が、8個のデータ入出力ピン上に記憶され
る。図13に、メモリーボードのブロック図を示す。メ
モリーボードは、システムバスにのみアクセスする。シ
ステムのオペレーション・サイクルの間に、メモリーボ
ードは、システムバス上にアドレス並びに制御信号を登
録する。メモリーボード上のアドレス・デコーダーによ
り、ボードを2つのアドレススペース、即ち、SRAM
スペースとUARTスペースに分割する。UARTは下
位バイト・オペレーションを行うことしかできないが、
SRAMは上位バイト・オペレーション、下位バイト・
オペレーション及びワード・オペレーションを行うこと
ができる。 メモリー及びUARTのアドレススペース
は、以下の通りである。 メモリー:010000−07BFFFHEX UART:800000−FFFFFFHEX 図14及び図15に、メモリーボードの読み取り及び書
き込み操作のタイミングチャートを示す。タイミング抑
制により、メモリーデータを駆動するバッファは、SR
AMからのデータが有効になると同時に、使用可能にな
る。この結果、わずかな時間の間、システムバス上のデ
ータが有効でなくなるが、SYS_DATAが有効にな
ると同時にCPUボードのSYS_DATA取り込み体
制が完了しているし、読み取りサイクルの間は比較が行
われないため、システム操作を妨害することはない。メ
モリー上の直列I/Oポートは、独立デバッギングを行
うターミナルI/O能力を与える。この設計は、2基の
直列I/Oポート、8本の平行I/Oライン、並びに二
方向データバスをCPUに与える、モトローラ6868
1二重非同期レシーバー/トランスミッター(DUAR
T)に基づくものである。MC68681DUART
は、非同期バス構造を介してプロセッサーにつながるM
C68000の周辺機器の一つである。SIOアプリケ
ーションで用いられるDUARTの主な機能を以下に説
明する。内部制御論理回路は、CPUから操作命令(オ
ペレーション・コマンド)を受け取り、内部装置に適切
な信号を出力し、装置の動作を制御する。また、DUA
RT内部のレジスター(抵抗器)にアクセスし、4本の
レジスター選択ライン(RS1ないしRS4)を解読
(デコード)することにより、様々な命令を実行する。
4本のレジスター選択ラインに加えて、CPUから内部
制御論理回路へ、read/write_1、chip
select(CS_L)、reset(RESET
_L)の3つの信号が入力される。タイミング論理回路
は、クリスタル発振器、ボー速度ジェネレータ(BR
G)、プログラム可能カウンター/タイマー、4つのク
ロックセレクターから成る。クリスタル発振器は、3.
68684MHzのクリスタルにより直接作動し、クロ
ックは、BRG、カウンター/タイマー等他の内部回路
に対する、基本対照タイミングを与えるものとして作用
する。BRGは、発振器により作動し、実際のボー速度
の16倍の内部クロックを出力することにより、50な
いし38.4Kの範囲の、通常用いられている18のデ
ータ通信ボー速度を発生させることができる。SIOア
プリケーションに対するボー速度は、9,600に設定
されている。各通信チャンネルは、フル・デュプレック
ス非同期レシーバー/トランスミッター(UART)を
備える。各レシーバー及びトランスミッターの操作周波
数は、ボー速度ジェネレータとは独立に選択することが
できる。トランスミッターは、CPUから並列データを
受け取り、これを直列ビットストリームに変換し、適当
なスタートビット、ストップビット、並びに任意のパリ
ティビットを挿入し、TxD出力ピンに、複合並列デー
タを出力する。レシーバーは、RxDピン上で直列デー
タを受け取り、この直列入力データを並列フォーマット
に変換し、スタートビット、ストップビット、パリティ
ビットあるいはブレイク条件をチェックし、読み取り動
作の間に、集められたキャラクターをCPUに転送す
る。SIO規定ストップビットで用いられるパラメー
タ、語長、パリティ及びボー速度は、以下の通りであ
る。 ボー(BAUD) :9600 ワード(WORD) :7ビット パリティ(PRTY) :奇数 ストップ(STOP) :1 COMM :FDX HAND :X−ON キャラクター出力ルーチンが開始されると、まず、Tx
RDY及びTxEMTビットが設定されているかどうか
に関してUARTステータス・レジスターがチェックさ
れる。これらのビットは、トランスミッター・バッファ
ーが空で、現在トランスミッターがキャラクターを送っ
ていないことを示す。各キャラクターを送る前にこれら
のビットをチェックすることにより、RTS/CTSプ
ロトコールを用いることなく、トランスミッターのオー
バーランを防止することができる。キャラクター出力
は、CPUにより開始されるため、データ伝達の間にデ
ータが失われるという危険性はない。以下に、本実施例
のシステムを実行する場合に用いられる、3方向状態多
数決装置PAL(プログラム可能な論理アレイ)の式の
一例を示す。
説明する。好適な実施例であるコンピュータシステム
は、2つの独立したバス、即ち、システムバスとヴォー
ティングバスとを備える。システムバスには、データ、
アドレス及び制御信号ラインがすべて含まれており、こ
れは、メモリーボードを備えるCPUボードに接続され
る。通常、フォールト・トレラント・コンピュータシス
テムにおいて、全ての信号は、ハードウェア冗長及びソ
フトウェア冗長により保護されている。このため、本実
施例のコンピュータシステムで用いられるシステムバス
には、システムバスのフォールトが生じた場合にコンピ
ュータシステムを保護する目的で、冗長性を付加するこ
とが望ましい。但し、設計を簡略化するために、システ
ムバスに冗長性を付加せず、フォールト・トレランスを
バスに与えないように構成することもできる。ヴォーテ
ィングバスは、3つの同一な構成を有する論理CPUボ
ードに接続され、比較及び多数決に関係する信号が伝達
される。ヴォーティングバスの詳細に関しては、後に説
明する。フォールト・トレランスは、ハードウェア冗長
及びソフトウェア冗長により、達成される。冗長の実行
結果を比較することにより、誤り及び/あるいはフォー
ルトを検出することができる。このためには、シンプレ
ックス信号及び/あるいはシンプレックス論理回路、即
ち、比較装置が必要であり、比較結果はこの比較装置か
ら出力される。多重化率は、市販コンピュータの設計に
より異なっているが、コンパレータ(比較装置)は、一
点障害の部位あるいは保護されていないデータパスに配
置される。比較回路があまり複雑な構成になっていなけ
れば、比較回路の信頼度を充分に高いものとすることが
できる。本実施例のコンピュータシステムに採用されて
いる3方向多数決機能は、コンパレータが信頼度の高い
装置であり、これを多重化する必要がないという前提に
基づいて構成されている。具体的にいえば、ボードAと
ボードBの各々から出力される信号をボードA上で比較
すれば、ボードB上で比較を行う必要がないということ
である。本実施例のコンピュータシステムでは、3枚の
ボード、即ち、ボードA、B、Cが用いられている。各
ボードは、互いにミラー化、即ち、同一構成を有してい
る。正常な場合には、3枚のボードから出力される信号
は、すべて、同一である。このため、システムバスの駆
動には、1枚のボードしか必要とされない。システム内
の3枚のボードは、それぞれ、マスターボード、スレー
ブボード0、スレーブボード1として用いられる。マス
ターボードがシステムバスを駆動し、他の2枚のスレー
ブボードはマスターボードが故障した場合のバックアッ
プとして用いられる。下の表は、マスターボードとスレ
ーブボードの割当の例を示すものである。 マスター スレーブ0 スレーブ1 A B C B C A C A B 図3で、Aはマスターボード、B及びCはスレーブボー
ドを示す。ボードAは、マルチプレクサ支援の下、様々
な状況下で、スレーブボードであるボードB、ボードC
に信号を送る。ボードB及びC上で、対応する信号の比
較が行われ、比較結果は、3枚のボード全てに伝達され
る。図3(a)に示すように、ボードA、B、Cの信号
がすべて等しい場合には、比較の一致を示す論理レベ
ル’1’が結果として出力される。この場合には、ボー
ドAをマスターボードとして使い続ける。図3(b)に
示すように、ボードAとボードCとの間に不一致が検出
される一方、ボードAとボードBが等しいという場合に
は、ヴォーティング(多数決)装置により、ボードCが
少数ボードとして認識される。この場合には、ボードA
がマスターボードであり続け、ボードAとボードBにお
ける実行には何ら影響を及ぼさない。即ち、前のサイク
ルを再実行する必要はない。不一致がもう一度生じた場
合には、ボードCを使用不能にする。図3(c)は、ボ
ードAとボードB、並びに、ボードAとボードCの間に
不一致が生じた場合を示す。これは、ボードAが少数で
ある、あるいは、3枚のボードがすべて等しくない、こ
とを示している。異常のあるボードがマスターボードで
あることが考えにくい図3(b)の状況とは異なり、こ
の場合には、前のサイクルの再実行が要求される。ボー
ドAの故障を確認した後、ボードBをマスターボードに
昇格させる。これにより、ボードAのシステムバスに対
する制御は失われる。次に、3枚のボード全てで、前の
サイクルが再実行される。図3(d)に示すように、ボ
ードBとボードC、ボードBとボードAとの間で、比較
を行う。二回目の不一致が生じた場合には、ボードAを
使用不能とする。以上のように、本実施例のシステムで
は、マスターボードから出力される一組の信号のみがバ
スに伝達され、2枚のスレーブボードは、それぞれ、マ
スターボードから出力された信号を自分自身の対応信号
と比較する。このシステムは、スレーブボード上のコン
パレータ(比較装置)が充分信頼できるものであり、多
重化の必要がないという過程の下に設計されている。即
ち、スレーブボードから出力された信号をマスターボー
ド上で比較することはない。更に、1本のバス上でアド
レス、データ及び制御信号を多重送信することにより、
バスのバンド幅を増加させる代わりに、バスのビット数
を大幅に減少させることができる。システム内のフォー
ルトを隔離することにより、システムにおける1サイク
ルの過渡的誤りを許容することができる。この場合、許
容可能な過渡的誤りの数は、任意に設定される。即ち、
比較結果の不一致が生じた場合でも、マスターボードが
正しく設定されている限り、故障している可能性のある
ボードを直ちに使用不能にする必要はない。先に述べた
ように、このシステムの設計は、コンパレータの論理が
正確であるという前提の下に行われている。このため、
コンパレータの論理回路をできるだけ単純な構成にする
必要がある。上述のように、このシステムでは、2つの
独立バスが用いられている。1つめは、システム内の全
ての論理ボードを接続するシステムバスである。ここ
で、同一の機能を遂行する複数の冗長ボードを、集合的
に、論理ボードと呼ぶ。例えば、このシステムで用いら
れる同一構成を有する3枚のCPUボードを、集合的
に、論理CPUボードと総称する。もう1つのバスは、
先に説明したヴォーティングバスである。このシステム
で用いられるマイクロプロセッサーとしては、モトロー
ラ68000が望ましい。これには、16ビットのデー
タバス(DO−D15)、23ビットのアドレスバス
(マイクロプロセッサー内部のA1−A23及びA
0)、3ビットのファンクション・コード、及び、その
他の制御信号が含まれる。1本のバスサイクルは、8つ
の状態から構成され、READ(読み取り)サイクルあ
るいはWRITE(書き込み)サイクルの所定の状態の
間に、様々な信号が、出力される。この特徴を利用し
て、異なった信号を、同一のバス上で多重送信し、異な
った時刻に受信することが可能である。このため、シス
テムの設計に必要な最大ビット数は、23ビットとな
る。次に、ヴォーティングバス上での信号の比較処理に
関して、説明する。SLV_COMP_DATA
[0..22]:これは、現在のマスターボードからヴ
ォーティングバスに与えられるデータである。ヴォーテ
ィングバスに伝達された後、2枚のスレーブボードから
出力された対応信号と比較される。比較結果は、ヴォー
ティングバスに伝えられる。SLV_MISCOMP_
L[0..1]:この2ビットは、2枚のスレーブボー
ドにより駆動される。この2ビットの値により、各ボー
ドの次のサイクルの動作が決定される。A_INDEX
[0..1]、B_INDEX[0..1]、C_IN
DEX[0..1]:以下に示すように、この2ビット
標識により、各ボードのシステム内における位置が特定
される。各ビットは、次の表に従い、設定される。物理
的には、この標識は、システムバス上に位置する。 INDEX マスター 0 0 A 0 1 B 1 0 C 1 1 使用されない システムバスは、24ビットのアドレスバス、16ビッ
トのデータバス、並びに、多くの信号から構成される制
御論理バスを備える。BUS_ADR[0..23]:
これは、CPUボードが出力するアドレスを保持する2
4ビットのアドレスバスラインである。BUS_DAT
A[0..15]:これは、CPUボードとメモリーボ
ードを連結させる、双方向16ビットデータバスであ
る。8ビットの書き込みあるいは読み取りが行われた場
合、データは、ビット0に並べられる。FC[0..
1]:この2ビットのファンクション・コードは、CP
Uボードから出力され、下記の表に示すように、16ビ
ット及び8ビットの動作を規定する。 FC[0..1] 動作 0 0 16ビット作動 0 1 下位8ビット作動 1 0 上位8ビット作動 1 1 使用されない FC[2]:これは、以下のように、READ(読み取
り)あるいはWRITE(書き込み)動作を規定する。 FC[2] 動作 1 読み取り 0 書き込み 表を見やすくするために、FC[0..1]とFC
[2]は別々に表示されているが、実際のバス動作にお
いては、これらのファンクション・コードは、同時に出
力される。FC[0..2]を用いることにより、バス
の作動なし、8ビットの読み込み/かきこみ、及び、1
6ビットの読み込み/書き込みを規定することができ
る。図4は、本実施例のフォールト・トレラント・コン
ピュータシステムの全体を表す状態図である。以下に、
状態変遷の流れの一部を示す。 開始 ボードAをマスターボード(MST)、ボードBをスレ
ーブボード0(SL0)、ボードCをスレーブボード1
(SL1)とする。1回目の比較を行う。 ケース[1,1] 変化なし [1,0] ボードBの1回目の不一致を記録。 2回目の比較を行う。 ケース[1,0] ボードBを使用不能にする。 [1,1] 最初の状態に戻る。 [0,1] ボードBはOK。ボードCの1回目の不一
致。 [0,0] ボードCをMSTに。ボードAの1回目の
不一致。 エンドケース 3回目の比較を行う。 [0,1] ボードCの1回目の不一致記録。 *以下、上記ケース[1,0]の場合と同様。 [0,0] ボードBをMSTに。 *いかなる不一致も記録されない。 2回目の比較開始。 図中、各状態は、以下の規則に従い、表記される。 Tx:Xがマスターボード。現在のところ、不一致は検
出されていない。 Txy:Xがマスターボード。ボードYに関して、1回
目の不一致検出。 Tx/y_:Xがマスターボード。ボードYに関して、
2回目の不一致が検出されたため、システムから排除さ
れた。図5は、ヴォーティングバスの動作を示すタイミ
ングチャートである。マスターボードは、異なった2つ
の時刻に、ヴォーティングバスのCOMP_DATAラ
インにアドレス及びデータ信号を送る。3枚のCPUボ
ードの働きにより、各ボード上の状態を保持するため
に、一組の信号が出力される。STATE1(状態1)
の立ち上がりでは、ヴォーティングバス上においてアド
レスが有効となる。この時点で、スレーブボードは、ヴ
ォーティングバスからアドレス信号を受け取る。STA
TE2(状態2)の立ち上がりでは、ヴォーティングバ
ス上においてデータが有効となる。この時点で、スレー
ブボードは、ヴォーティングバスからデータ信号を受け
取る。STATE3(状態3)の立ち上がりでは、スレ
ーブボード上で比較を行うために必要な全てのデータが
有効となる。SLV_MISCOMP[1:0]が、比
較の結果として、出力される。STATE4(状態4)
の立ち上がりでは、3枚のボードの次のサイクルにおけ
る状態(MST、SL0、SL1)が決定される。M6
8000のCPUボードの設計に関する詳細は、ここ
で、全く議論されていない。図5で参照される状態は、
M68000のREAD/WRITE(読み取り/書き
込み)動作の状態とは、異なる。上記の説明は、M68
000マイクロプロセッサーの機能を示すものではな
い。説明を分かりやすくするために、ヴォーティングバ
ス動作に関する状態は、マイクロプロセッサーと関係な
く、設定されている。以上、ヴォーティングバスのプロ
トコル並びにタイミングを説明した。次に、ヴォーティ
ングバスをインターフェースするCPUボード上の論理
回路に関して、次のプロトロルに従い説明する。 (1)M68000マイクロプロセッサーの読み取り及
び書き込み動作を説明する。マイクロプロセッサーの動
作タイミングにより、論理回路の以下の2つの部分の設
計が規定される。 (2)ヴォーティングバス・インターフェースを説明す
る。3枚のボードで多数決判定を行うことにより、上述
の3方向多数決アルゴリズムを実行する。3枚のCPU
ボードにより、ヴォーティングバス上の2つのスレーブ
不一致信号をモニターし、各ボードの次のサイクルにお
ける機能的役割を決定する。 (3)誤り検出機構を説明する。ボード上でこの機能を
果たす論理回路は、2組のデータを比較して、不一致信
号を出力する。ボードの機能的役割に応じて、不一致信
号により、2つのスレーブ不一致ビットの内1つが駆動
される。本実施例で用いられるMC68000プロセッ
サーは、読み取り(READ)サイクルの間に、システ
ムを介してメモリーボードから送られる1あるいは2バ
イトのデータを受信する。ワードあるいは長ワード・オ
ペレーションを指定する命令が出されると、MC680
00プロセッサーは、上位及び下位データストロボ(L
DS、UDS)の両方を出力することにより、上位バイ
トと下位バイトを同時に読み取る。一方、バイト・オペ
レーションを指定する命令が出された場合には、内部A
0ビットを用いて、どのバイトを読み取るかを判定し、
適切なデータストロボを出力する。即ち、A0=0の場
合には、上位データストロボを出力し、A0=1の場合
には、下位データストロボを出力する。データを受信し
た後、プロセッサーは、バイトの内部位置を決定する。
BUS_ADR[0]は、LDS及びUDSの値により
決まり、FC[0..2]は、LDS、UDS、及び、
R/W_の値により決定される。書き込み(WRIT
E)サイクルの間に、プロセッサーは、バイトデータを
メモリーに送る。ワード・オペレーションを指定する命
令が出された場合には、UDS並びにLDSを出力し、
両方のバイトを書き込む。バイト・オペレーションを指
定する命令が出されると、内部A0ビットを用いて、ど
のバイトを書き込むかを判定し、適切なデータストロボ
を出力する。即ち、A0=0の場合には、UDS_を出
力し、A0=1の場合には、LDS_を出力する。図6
に、READ及びWRITEサイクルを示す。読み取り
(READ)サイクルの詳細を以下に説明する。*ST
ATE0(状態0):読み取りサイクルは、STATE
0(S0)から始まる。プロセッサーは、まず、R/W
_をハイに起動し、読み取りサイクルを確認する。 *STATE1:STATE1(S1)に入ると、CP
Uボード上のアドレスバス上で有効アドレスが起動され
る。 *STATE2:STATE2(S2)の立ち上がり
で、AS_L、UDS_、及び、LDS_を出力する。
S2の間に、FC[0..2]をシステムバスに伝達す
る。 *STATE3:STATE3(S3)では、S3の立
ち上がりからS6の立ち下がりまでの間に、メモリーボ
ードからデータを呼び戻す。 *STATE4:STATE4(S4)では、サイクル
終了信号(DTACK_あるいはBERP_)またはV
PA(本実施例のシステムでは用いられていない)を待
つ。S4の立ち下がりまでの間に終了信号が出力されな
かった場合には、DTACK_あるいはBERP_が出
力されるまで、待機信号(フル・クロック・サイクル)
を割り込ませる。 *STATE5:STATE5(S5)では、バス信号
の変更は行われない。 *STATE6:STATE6(S6)では、装置から
送られたデータをデータバスに伝える。 *STATE7:クロック入力STATE7(S7)の
立ち下がりで、データをアドレス指定された装置から読
み込み、AS_、UDS_、LDS_を否定する。FC
[0..2]を高インピーダンス状態に駆動する。S7
の立ち上がりで、アドレスバスを高インピーダンス状態
にし、DTACK_を否定する。書き込み(WRIT
E)サイクルの詳細を以下に説明する。 *STATE0(状態0):書き込みサイクルは、S0
から始まる。(前回の書き込みサイクルでR/W_がロ
ーに設定されている場合には)まず、プロセッサーは、
R/W_をハイに起動する。 *STATE1:S1に入ると、アドレスバス上で有効
アドレスが起動される。 *STATE2:S2の立ち上がりで、AS_を出力
し、R/Wをローに起動する。 *STATE3:S3では、書き込むべきデータがデー
タバス上に位置するように、CPUボード上のデータバ
スを駆動し、高インピーダンスの状態から外す。 *STATE4:S4の立ち上がりで、UDS_、LD
S_を出力し、サイクル終了信号(DTACK_あるい
はBERP_)またはVPA(本実施例のシステムでは
用いられていない)を待つ。S4の立ち下がりまでの間
に何れの終了信号も出力されなかった場合には、DTA
CK_あるいはBERP_が出力されるまで、待機信号
(フル・クロック・サイクル)を割り込ませる。 *STATE5:S5では、バス信号が出力されない。 *STATE6:S6では、バス信号が出力されない。 *STATE7:クロック入力S7の立ち下がりで、A
S_、UDS_、LDS_を否定する。CPUボードを
用いて、FC[0..2]を高インピーダンス状態に駆
動する。S7の終了時にクロックが立ち上がると、プロ
セッサーは、アドレスバス及びデータバスを高インピー
ダンス状態にし、R/Wをハイに起動した後、DTAC
K_を否定する。3つのCPUボードの状態を一台の中
央装置で管理する代わりに、図4に示す状態(STAT
E)装置を、各CPUボード上に位置する3つのPAL
(プログラム可能論理アレイ)でプログラムされた3つ
の同一構成のサブステート装置に分割してもよい。この
場合、各装置は、BRD_INDEX[1:0]、SL
V_MISCOMP_L[1:0]の4つの信号をモニ
ターする。各装置の出力は、個々のボードのみで用いら
れ、この出力信号には、IM、MST、IM_SL0が
ある。状態多数決(VOTING STATE)装置に
関する信号を、図7に示すヴォーティングバス・インタ
ーフェースに関するタイミングチャートと共に、以下に
説明する。BRD_INDEX[1:0]:この2つの
信号は、ヴォーティングバスから出力される。スロット
A、B、Cにおいて、この信号は、それぞれ、A_BR
D_INDEX[1:0]、B_BRD_INDEX
[1:0]、C_BRD_INDEX[1:0]であ
る。SLV_MISCOMP_L[1:0]:この2つ
の信号は、ヴォーティングバスから出力される。この2
つの信号の値は、どの瞬間をとってみても、3枚のボー
ド全てで等しい。IM_MST:この信号が論理ハイの
状態にある場合には、そのボードがシステムのマスター
・ボードであることを示している。IM_SL0:この
信号が論理ハイの状態にある場合には、そのボードがシ
ステムのスレーブ0・ボードであることを示している。
IM_SL1:この信号が論理ハイの状態にある場合に
は、そのボードがシステムのスレーブ1・ボードである
ことを示している。PALプログラミングをできるだけ
簡素化するために、この信号は、STATE装置から出
力されない。この設計システムでは、PALの出力がす
べて登録されるため、IM_SL0及びIM_MSTが
出力されれば、IM_SL1を出力する必要がない。B
US_ADRS_VALID:この信号の立ち上がり
で、ヴォーティングバス上のアドレスが有効となり、ロ
ーカルCPUボードに登録される。このアドレスは、信
号の立ち下がりまで、ずっと有効である。BUS_DA
TA_VALID:この信号の立ち上がりで、ヴォーテ
ィングバス上のデータが有効となり、ローカルCPUボ
ードの登録される。このデータは、信号の立ち下がりま
で、ずっと有効である。COMP_CYC:この信号の
立ち上がりで、ヴォーティングバス上のSLV_MIS
COMP[1:0]が有効となり、ローカルボードに登
録される。この時、前のサイクルの再実行あるいはデー
タ・アクノレジを必要とするバスエラーを示す信号が出
力される。図8に、分配多数決機構の状態(STAT
E)図を示す。以下に主要な特徴を挙げる。*循環特
性:どのボードも、現在の状態並びにSLV_MISC
OMP_L[1]の値により、マスター・ボード、スレ
ーブ0・ボード、スレーブ1・ボードとして用いること
ができる。以下に、そのパターンの例を示す。 開始 *** 私はスレーブ0。 ケース[x,1]私は正常。変化なし。 [1,0]私は一回目の比較で異常。 2回目の不一致検出開始。 ケース[x,0]2回目の比較結果も異常。排除。 [x,1]1回目の異常記録消去。私はスレーブ0のま
ま。 エンドケース。 次の不一致検出開始。 [0,0]私は異常。もう一枚のボードも異常。私がマ
スターになる。 2回目の比較開始。 ケース[0,0]2回目の比較結果も異常。排除。 [1,x]&[0,1]私は1枚あるいは両方のスレー
ブと一致。 私がマスター。 次の不一致検出開始。 [0,0]の時に、両方のスレーブが不一致。 私がスレーブ1になる。 それ以外の場合は変化なし。 *ライブ挿入アベィラビリティ:ボードの内1枚がシス
テムから除かれた場合、そのシステムは、フォールトに
対して保護されていない状態になる。システムのフォー
ルト・トレランスを回復するためには、第三ボードをオ
ンライン上で他のボードと同期させる必要がある。以下
に、分配多数決装置がボードの機能を選択する過程を示
す。 開始 不一致検出。 ケース[0,0]初期設定開始。/*システム内のボー
ド数が3枚に満たない場合、[0,0]は有り得ない。 ケース スロットA マスター スロットB スレーブ0 スロットC スレーブ1 エンドケース [1,0]スレーブ0へ。 [0,1]スレーブ1へ。 [1,1]不可能。/*SLV_MISCOMP_Lが
スレーブにより出力されない場合、ローに駆動。 エンドケース。 *STATE装置フォールト保護:PALエラーの場合
には、システムは、部分的に保護される。 *回復不能:多数決機構が3枚のボードに分配されてい
るため、システムは、PALエラーに対して、一つの例
外を除き保護されている。2枚のボードがマスターの役
割を果たし、残りの1枚がスレーブ1の機能を果たす時
には、スレーブは1枚しか存在しない。ここで、このス
レーブに不一致が生じた場合、SLV_MISCOMP
_L[1:0]が[0,0]と等しくなる。結果とし
て、マスターがスレーブ1になり、先のスレーブ1がス
レーブ0になる。この場合、データをヴォーティングバ
スに送るマスターボードが存在しないため、2回目の比
較は当然不一致という結果になり、3枚のボード全てが
システムから排除される。これが、いわゆる「ダブル・
エラー」である。本実施例のシステムでは、2種類の論
理ボード、即ち、CPUボード及びメモリーボードが用
いられている。図9に示すように、3枚のCPUボード
は、互いに同一の構成を有するボードA、ボードB、ボ
ードCである。これら3枚のボードは、それぞれ、RE
AD(読み取り)サイクルの間、同一の機能を果たす。
一方、WRITE(書き込み)サイクルの間は、マスタ
ーボードのみがシステム並びにヴォーティングバスにア
クセスする。メモリーボードは、シンプレックス論理ボ
ードであり、システムバスを介して、CPUに連絡す
る。メモリーボード内には、ユニバーサル非同期レシー
バー/トランシーバー(UART)を用いて、V102
ターミナルと連絡する部分が備えられている。システム
バスの信号は、以下の通りである。 *アドレスバス(SYS_ADRS<1..23>):
この23ビットの一方向3ステートバスは、16メガバ
イトまでのデータをアドレスすることができる。メモリ
ーボードの読み取り及び書き込み細工づのあいだに、バ
ス動作のアドレスを決定する。 *データバス(SYSDATA<0..15>):この
二方向3ステートバスは、一般的なデータパスである。
このバスは16ビットの幅で、8ビット及び16ビット
の幅のデータを移送可能である。 *同期制御(SYS_CODE1,SYS_CODE
2,SYS_CODE3,SYS_CODE4):この
3つの信号は、システムバスサイクルの間だけ有効であ
る。これらの信号は、読み取り及び書き込みサイクルの
間、メモリーボードのタイミング制御を行う。SYS_
CODE1がローの場合には、CPUボードにより、有
効アドレスがシステムバス上に置かれる。SYS_CO
DE2がローの場合には、メモリーボードが、自分自身
にアドレスを登録する。SYS_CODE3がローの場
合には、バス読み取りサイクルの間に、メモリーボード
がデータをシステムバス上に送り、逆に、バス書き込み
サイクルの間には、CPUボードがデータをシステムバ
ス上に送る。SYS_CODE4がローの場合には、シ
ステムバス上のデータがシステムの書き込みサイクルの
間にはメモリーボード上に、読み取りサイクルの間には
CPUボード上に、登録される。SYS_CODE1が
ハイになると、バスサイクルが終了する。 *システム・ファンクション・コード(FC<0..2
>):これは、CPUボードにより出力される3ビット
のファンクション・コードであり、16ビットあるいは
8ビットの読み取りあるいは書き込み動作を規定する。 FC<0..2> 動作 000 16ビット書き込み 001 上位8ビット書き込み 010 下位8ビット書き込み 011 使用されない 100 16ビット読み取り 101 上位8ビット読み取り 110 下位8ビット読み取り 111 使用されない *システムメモリー・インターフェース制御(SYS_
MEM_SEL_L):システムバスサイクルの間、メ
モリーボードは、この信号をローにすることによりメモ
リーを選択したことを示す信号をCPUボードに出力す
る。 *クロック(SYS_CLK):これは、システムバス
の背面パネル上に搭載された8MHzのクロックカード
から出力される8MHzのクロック信号である。 *ボード指示器(SYS_MSTR_INDEX<
0..1>):この2ビット信号は、CPUボードの一
を決定する。背面パネル上の所定のスロットにおいて、
このビットをハイあるいはローにすることにより、これ
らのスロットに挿入したCPUボードをボードA、ボー
ドB、ボードCとして割り当てる。 INDEX<0..1> BRD 0 0 A 0 1 B 1 0 C 1 1 使用されない 図10は、システムバス上の書き込み動作を、また、図
11は、システムバス上の読み取り動作を示す。図12
に示すように、CPUボードは、4つの主要部分、即
ち、マイクロプロセッサー並びにそれと関連する論理回
路、ローカルメモリー、システムバス・インターフェー
ス、及び、ヴォーティングバス・インターフェースを備
える。ヴォーティングバス・インターフェースは、一組
のコンパレータ(比較器)及び多数決装置を含む。CP
Uボード上のローカルメモリーは、32Kx8 Xic
or Electrically Erasable
(電気的に消去可能な)Prom(EEprom)であ
る。このメモリーは、ワードサイズで、CPUメモリー
のスペースに直接マッピングされ、14のアドレスライ
ンにより、アドレスされる。LOW_BYTE_DTS
_Lにより、上位バイトまたは下位バイトを読み取るべ
きかあるいは書き込むべきかを判定する。EEprom
にアクセスする場合には、8ビットの動作のみが許され
る。ローカルメモリーのアドレススペースは、0000
00HEX −007FFFHEX である。EEpromの書
き込みサイクルは、EEprom上のチップ選択(CS
_L)ビットにより制御される。3組の信号、即ち、ア
ドレスライン、データライン、制御信号がシステムバス
に送られる。CPUボード上のシステムバスインターフ
ェースにより、ボード上の信号とバスライン上の信号と
の間の「ゲート」が制御される。ボードがシステムのマ
スターボードであり、且つ、システムメモリーのスペー
スをアドレスする場合に限り、全ての信号は、バス上に
送られる。それ以外の場合には、ゲートは、トリステー
トに保持される。本実施例のコンピュータシステムで
は、3枚のCPUボード全てが、ヴォーティングバスか
らCOMP_DATA信号を受け取る。この信号は、適
当な時点で、各ボード上のアドレス及びデータ信号と比
較される。各ボードの次の状態が決定され、マスターボ
ードからのデータがシステムバス上に書き込まれるCO
MP_CYCサイクルの前に、信号の相当性が解析され
る。次に、システムで用いられるメモリーボードについ
て、以下の4つの部分に分けて説明する。最初の部分で
は、静的ラムの動作、次に、メモリーボードのブロック
図、三番目に、メモリーボードの読み取り/書き込み動
作タイミング、最後に、SIO動作に関して、説明す
る。CY7C128は、8ビット2048ワーズで構成
される高性能CMOS静的RAMである。アクティブL
OW書き込み可能信号(WE_L)により、メモリーの
書き込み及び読み込み動作の制御が行われる。チップ可
能信号(CE_L)及び書き込み可能信号(WE_L)
の入力が両方ともLOWの場合には、8個のデータ入出
力ピン(I/O0 ないしI/O7 )上のデータを、アド
レスピン(A0 ないしA10)上に存在するアドレスによ
り決定されたメモリー位置に書き込まれる。装置を選択
して、WE_Lを不活性あるいはHIGHの状態に保持
したまま、出力CE_L及びOE_LをアクティブLO
Wにすることにより、装置の読み込みを行う。このよう
な条件下で、アドレスピン上の情報によりアドレスされ
た位置の中身が、8個のデータ入出力ピン上に記憶され
る。図13に、メモリーボードのブロック図を示す。メ
モリーボードは、システムバスにのみアクセスする。シ
ステムのオペレーション・サイクルの間に、メモリーボ
ードは、システムバス上にアドレス並びに制御信号を登
録する。メモリーボード上のアドレス・デコーダーによ
り、ボードを2つのアドレススペース、即ち、SRAM
スペースとUARTスペースに分割する。UARTは下
位バイト・オペレーションを行うことしかできないが、
SRAMは上位バイト・オペレーション、下位バイト・
オペレーション及びワード・オペレーションを行うこと
ができる。 メモリー及びUARTのアドレススペース
は、以下の通りである。 メモリー:010000−07BFFFHEX UART:800000−FFFFFFHEX 図14及び図15に、メモリーボードの読み取り及び書
き込み操作のタイミングチャートを示す。タイミング抑
制により、メモリーデータを駆動するバッファは、SR
AMからのデータが有効になると同時に、使用可能にな
る。この結果、わずかな時間の間、システムバス上のデ
ータが有効でなくなるが、SYS_DATAが有効にな
ると同時にCPUボードのSYS_DATA取り込み体
制が完了しているし、読み取りサイクルの間は比較が行
われないため、システム操作を妨害することはない。メ
モリー上の直列I/Oポートは、独立デバッギングを行
うターミナルI/O能力を与える。この設計は、2基の
直列I/Oポート、8本の平行I/Oライン、並びに二
方向データバスをCPUに与える、モトローラ6868
1二重非同期レシーバー/トランスミッター(DUAR
T)に基づくものである。MC68681DUART
は、非同期バス構造を介してプロセッサーにつながるM
C68000の周辺機器の一つである。SIOアプリケ
ーションで用いられるDUARTの主な機能を以下に説
明する。内部制御論理回路は、CPUから操作命令(オ
ペレーション・コマンド)を受け取り、内部装置に適切
な信号を出力し、装置の動作を制御する。また、DUA
RT内部のレジスター(抵抗器)にアクセスし、4本の
レジスター選択ライン(RS1ないしRS4)を解読
(デコード)することにより、様々な命令を実行する。
4本のレジスター選択ラインに加えて、CPUから内部
制御論理回路へ、read/write_1、chip
select(CS_L)、reset(RESET
_L)の3つの信号が入力される。タイミング論理回路
は、クリスタル発振器、ボー速度ジェネレータ(BR
G)、プログラム可能カウンター/タイマー、4つのク
ロックセレクターから成る。クリスタル発振器は、3.
68684MHzのクリスタルにより直接作動し、クロ
ックは、BRG、カウンター/タイマー等他の内部回路
に対する、基本対照タイミングを与えるものとして作用
する。BRGは、発振器により作動し、実際のボー速度
の16倍の内部クロックを出力することにより、50な
いし38.4Kの範囲の、通常用いられている18のデ
ータ通信ボー速度を発生させることができる。SIOア
プリケーションに対するボー速度は、9,600に設定
されている。各通信チャンネルは、フル・デュプレック
ス非同期レシーバー/トランスミッター(UART)を
備える。各レシーバー及びトランスミッターの操作周波
数は、ボー速度ジェネレータとは独立に選択することが
できる。トランスミッターは、CPUから並列データを
受け取り、これを直列ビットストリームに変換し、適当
なスタートビット、ストップビット、並びに任意のパリ
ティビットを挿入し、TxD出力ピンに、複合並列デー
タを出力する。レシーバーは、RxDピン上で直列デー
タを受け取り、この直列入力データを並列フォーマット
に変換し、スタートビット、ストップビット、パリティ
ビットあるいはブレイク条件をチェックし、読み取り動
作の間に、集められたキャラクターをCPUに転送す
る。SIO規定ストップビットで用いられるパラメー
タ、語長、パリティ及びボー速度は、以下の通りであ
る。 ボー(BAUD) :9600 ワード(WORD) :7ビット パリティ(PRTY) :奇数 ストップ(STOP) :1 COMM :FDX HAND :X−ON キャラクター出力ルーチンが開始されると、まず、Tx
RDY及びTxEMTビットが設定されているかどうか
に関してUARTステータス・レジスターがチェックさ
れる。これらのビットは、トランスミッター・バッファ
ーが空で、現在トランスミッターがキャラクターを送っ
ていないことを示す。各キャラクターを送る前にこれら
のビットをチェックすることにより、RTS/CTSプ
ロトコールを用いることなく、トランスミッターのオー
バーランを防止することができる。キャラクター出力
は、CPUにより開始されるため、データ伝達の間にデ
ータが失われるという危険性はない。以下に、本実施例
のシステムを実行する場合に用いられる、3方向状態多
数決装置PAL(プログラム可能な論理アレイ)の式の
一例を示す。
【0007】
【表1】
【0008】
【表2】
【0009】
【表3】
【0010】
【表4】
【0011】
【表5】
【0012】以上、本発明の好適な実施例を説明した
が、本発明は、何ら上記実施例に限定されるものではな
く、発明の要旨を変えない範囲で、様々な態様で実施で
きることはもちろんである。
が、本発明は、何ら上記実施例に限定されるものではな
く、発明の要旨を変えない範囲で、様々な態様で実施で
きることはもちろんである。
【0013】
【発明の効果】以上詳述したように、本発明の3方向多
数決機能を有するフォールト・トレラント・コンピュー
タシステムは、システム内のミラー化された部品から出
力された臨界信号を比較することにより、複数のフォー
ルト、複数箇所の故障を許容することができる。本発明
の構成を採用することにより、ハードウェアフォールト
・トレランスを有した既存システムを改良することが可
能である。また、本発明のシステムは、マスター−スレ
ーブアルゴリズムを採用することにより、コモンバス上
の信号を1組に限定している。これにより、コモンバス
上に3組の信号が同時に存在し、バスバンドの幅を制御
不能なほど広くしてしまうという問題を排除することが
できる。システムの構成が複雑になればなるぼど、より
進んだマイクロプロセッサー、及び、より広いアドレス
及びデータラインの使用等、バスバンドの幅は重要な問
題となってくる。更に、マスター−スレーブアルゴリズ
ムを用いることにより、システムの性能を低下させるこ
となく、壊れたボードをシステムから除去することがで
きる。また、経済的な側面からみても、従来の四重化構
造と比較して、3つのミラー部品を用いる本発明の構成
の方が、システムの費用効果を高めることができる。
数決機能を有するフォールト・トレラント・コンピュー
タシステムは、システム内のミラー化された部品から出
力された臨界信号を比較することにより、複数のフォー
ルト、複数箇所の故障を許容することができる。本発明
の構成を採用することにより、ハードウェアフォールト
・トレランスを有した既存システムを改良することが可
能である。また、本発明のシステムは、マスター−スレ
ーブアルゴリズムを採用することにより、コモンバス上
の信号を1組に限定している。これにより、コモンバス
上に3組の信号が同時に存在し、バスバンドの幅を制御
不能なほど広くしてしまうという問題を排除することが
できる。システムの構成が複雑になればなるぼど、より
進んだマイクロプロセッサー、及び、より広いアドレス
及びデータラインの使用等、バスバンドの幅は重要な問
題となってくる。更に、マスター−スレーブアルゴリズ
ムを用いることにより、システムの性能を低下させるこ
となく、壊れたボードをシステムから除去することがで
きる。また、経済的な側面からみても、従来の四重化構
造と比較して、3つのミラー部品を用いる本発明の構成
の方が、システムの費用効果を高めることができる。
【図1】図1は、通常見られるコンピュータの故障、誤
り等の関係を示す説明図である。
り等の関係を示す説明図である。
【図2】図2は、ペア・アンド・スペア型のフォールト
・トレラント・システムの代表的な例を示す説明図であ
る。
・トレラント・システムの代表的な例を示す説明図であ
る。
【図3】図3(a)(b)(c)(d)は、本発明の好
適な実施例であるシステムで用いられる3つのボードの
可能な関係を示す模式図である。
適な実施例であるシステムで用いられる3つのボードの
可能な関係を示す模式図である。
【図4】図4は、システム内の全ての状態(STAT
E)を示す模式図である。
E)を示す模式図である。
【図5】図5は、ヴォーティングバスの作動を示すタイ
ミングチャートである。
ミングチャートである。
【図6】図6は、実施例のシステムで用いられるCPU
のREAD(読みとり)及びWRITE(書き込み)動
作を示すタイミングチャートである。
のREAD(読みとり)及びWRITE(書き込み)動
作を示すタイミングチャートである。
【図7】図7は、ヴォーティングバスのインターフェー
スを示すタイミングチャートである。
スを示すタイミングチャートである。
【図8】図8は、分配された多数決機構を示す状態(S
TATE)図である。
TATE)図である。
【図9】図9は、実施例のシステムで用いられるCP
U、メモリー及びバスの配置を示すブロック図である。
U、メモリー及びバスの配置を示すブロック図である。
【図10】図10は、システムバスのWRITEサイク
ルを示すタイミングチャートである。
ルを示すタイミングチャートである。
【図11】図11は、システムバスのREADサイクル
を示すタイミングチャートである。
を示すタイミングチャートである。
【図12】図12は、実施例のシステムのCPUを示す
ブロック図である。
ブロック図である。
【図13】図13は、実施例のシステムのメモリーボー
ドを示すブロック図である。
ドを示すブロック図である。
【図14】図14は、メモリーボードのWRITEサイ
クルを示すタイミングチャートである。
クルを示すタイミングチャートである。
【図15】図15は、メモリーボードのREADサイク
ルを示すタイミングチャートである。
ルを示すタイミングチャートである。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成4年6月9日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図5】
【図6】
【図9】
【図4】
【図7】
【図8】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
Claims (12)
- 【請求項1】 信号を伝達するシステムバス手段に沿っ
て互いに連結する複数の機能装置を備える、フォールト
・トレラント・ディジタルデータプロセッサーで、 第一の機能装置が、一つあるいは複数の他の機能装置か
ら前記システムバス手段を介して伝達される入力信号に
応じて、第一の処理を行い、出力信号を発生し、更に、
前記出力信号を、前記システムバス手段を介して、一つ
あるいは複数の他の機能装置に伝達するように構成さ
れ、 前記第一の機能装置が、信号を伝達するヴォータバス手
段に沿って互いに連結され、且つ、前記システムバス手
段に接続されて、前記入力信号のうち対応するものを受
信する、n個の処理部を備え、 前記処理部が、それぞれ、 A.前記入力信号に応じて、前記第一の処理を行い、前
記出力信号を発生する処理手段と、 B.MASTER STATE(マスター状態)信号に
より起動し、少なくとも前記バス手段の何れか一つに、
少なくとも所定の入力信号に応じて出力された出力信号
を供給する、マスター手段と、 C.SLAVE STATE(スレーブ状態)信号によ
り起動し、 (1)前記所定の入力信号に対応して、前記処理部の処
理手段から出力された出力信号と、 (2)マスター手段あるいは他の処理部から出力された
出力信号と、を比較する比較信号を発生し、前記比較信
号を前記ヴォータバス手段に伝達するスレーブ手段と、 D.前記ヴォータバス手段と、前記マスター手段と、前
記スレーブ手段とに接続されて、所定の処理部の状態を
維持し、前記状態を表す信号を出力する状態手段で、更
に、 D1.マスター状態と、一つあるいは複数のスレーブ状
態とを含む複数の状態の中から前記状態を選択する選択
手段と、 D2.前記状態信号並びに前記ヴォータバス手段を介し
て伝達される一つあるいは複数のマッチ信号の組み合せ
に応じて、前記所定の処理部の状態を選択的に変化させ
るヴォータ手段と、を含む状態手段と、 を備えることを特徴とするフォールト・トレラント・デ
ィジタルデータプロセッサ。 - 【請求項2】 各処理部の前記状態手段に接続され、所
定の時点で、前記処理部の何れか一つを前記マスター状
態にし、且つ、残りの処理部をスレーブ状態にするため
の、同期手段を備える、ことを特徴とする請求項1記載
のフォールト・トレラント・ディジタルデータプロセッ
サ。 - 【請求項3】 前記状態手段が、更に、何れの時点にお
いても、前記処理部の内一つだけを前記マスター状態に
保持する手段を備える、ことを特徴とする請求項2記載
のフォールト・トレラント・ディジタルデータプロセッ
サ。 - 【請求項4】 前記ヴォータ手段が、更に、所定の処理
部の現在の状態と前記ヴォータバス手段を介して伝達さ
れる前記一つあるいは複数のマッチ信号の組み合せとの
関数に従い、前記所定の処理部の状態を変化させる手段
を備える、ことを特徴とする請求項1記載のフォールト
・トレラント・ディジタルデータプロセッサ。 - 【請求項5】 前記スレーブ手段が、更に、各マッチ信
号のORを前記ヴォータバス手段に伝達する手段を備え
る、ことを特徴とする請求項1記載のフォールト・トレ
ラント・ディジタルデータプロセッサ。 - 【請求項6】 前記第一機能装置が、中央処理装置(C
PU)であり、前記マスター手段が、更に、データ、ア
ドレス、制御情報の内少なくとも一つを含む前記出力信
号を発生させる手段を備える、ことを特徴とする請求項
1記載のフォールト・トレラント・ディジタルデータプ
ロセッサ。 - 【請求項7】 前記ヴォータ手段が、更に、前記ヴォー
タバス手段を介して伝達される前記一つあるいは複数の
マッチ信号の組み合せに応じて、各処理部から出力され
る出力信号がすべて等しく、各処理部の状態を変化させ
る必要がないことを示す手段を備える、ことを特徴とす
る請求項1記載のフォールト・トレラント・ディジタル
データプロセッサ。 - 【請求項8】 前記マスター状態にある所定の処理部と
連絡する前記ヴォータ手段が、更に、前記マスター状態
信号と前記ヴォータバス手段を介して伝達される前記一
つあるいは複数のマッチ信号の組み合せとに応じて、前
記所定の処理部から出力される出力信号が少なくとも一
つの他の処理部から出力される信号と等しく、前記所定
の処理部の状態を変化させる必要がないことを示す手段
を備える、ことを特徴とする請求項1記載のフォールト
・トレラント・ディジタルデータプロセッサ。 - 【請求項9】 前記スレーブ状態にある所定の処理部と
連絡する前記ヴォータ手段が、更に、 (1)前記スレーブ状態信号と、前記ヴォータバス手段
を介して伝達される前記一つあるいは複数のマッチ信号
の組み合せとに応じて、前記所定の処理部から出力され
た出力信号が、前記マスター状態にある処理部から出力
された出力信号と等しくないこと、また、 (2)前記スレーブ状態信号と、前記ヴォータバス手段
を介して伝達される前記一つあるいは複数のマッチ信号
の組み合せとに応じて、前記スレーブ状態にある他の処
理部から出力された出力信号が、前記マスター状態にあ
る処理部から出力された出力信号と等しいこと、を示
し、前記所定の処理部の状態を第一スレーブ状態から第
二スレーブ状態に変化させる手段を備える、ことを特徴
とする請求項1記載のフォールト・トレラント・ディジ
タルデータプロセッサ。 - 【請求項10】 前記スレーブ状態にある所定の処理部
と連絡する前記ヴォータ手段が、更に、 (1)前記スレーブ状態信号と、前記ヴォータバス手段
を介して伝達される前記一つあるいは複数のマッチ信号
の組み合せとに応じて、前記所定の処理部から出力され
た出力信号が、前記マスター状態にある処理部から出力
された出力信号と等しいこと、また、 (2)前記スレーブ状態信号と、前記ヴォータバス手段
を介して伝達される前記一つあるいは複数のマッチ信号
の組み合せとに応じて、前記スレーブ状態にある他の処
理部から出力された出力信号が、前記マスター状態にあ
る処理部から出力された出力信号と等しくないこと、を
示し、前記他の処理部の状態を第一スレーブ状態から第
二スレーブ状態に変化させる手段を備える、ことを特徴
とする請求項1記載のフォールト・トレラント・ディジ
タルデータプロセッサ。 - 【請求項11】 各処理部の前記ヴォータ手段が、更
に、前記ヴォータバス手段を介して伝達される前記一つ
あるいは複数のマッチ信号の組み合せに応じて、前記マ
スター状態にある所定の処理部から出力された出力信号
が、前記スレーブ状態にある所定数の他の処理部から出
力された出力信号と等しくないことを示し、 (1)前記所定の処理部の状態を変化させ、 (2)前記所定の入力信号に応じて前記第一の処理を再
び行い、前記出力信号を発生させる、手段を備える、こ
とを特徴とする請求項1記載のフォールト・トレラント
・ディジタルデータプロセッサ。 - 【請求項12】 前記マスター手段が、前記出力信号を
前記ヴォータバス手段に伝達するための手段を備え、前
記スレーブ手段が、所定の尻部の処理手段から出力され
た出力信号と、前記システムバス手段を介して伝達され
る出力信号とを比較する手段を備える、ことを特徴とす
る請求項1記載のフォールト・トレラント・ディジタル
データプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69612991A | 1991-05-06 | 1991-05-06 | |
US696129 | 1991-05-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05197582A true JPH05197582A (ja) | 1993-08-06 |
Family
ID=24795828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4142228A Withdrawn JPH05197582A (ja) | 1991-05-06 | 1992-05-06 | 動的再構成が可能な多数決システムを有するフォールト・トレラント処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5423024A (ja) |
EP (1) | EP0514075A3 (ja) |
JP (1) | JPH05197582A (ja) |
CA (1) | CA2068048A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113655707A (zh) * | 2021-07-29 | 2021-11-16 | 浙江中控技术股份有限公司 | 安全仪表系统的表决控制方法、装置和电子装置 |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247144B1 (en) * | 1991-01-31 | 2001-06-12 | Compaq Computer Corporation | Method and apparatus for comparing real time operation of object code compatible processors |
AU5343794A (en) * | 1992-11-06 | 1994-06-08 | University Of Newcastle-Upon-Tyne | Efficient schemes for constructing reliable computing nodes in distributed systems |
US6233702B1 (en) * | 1992-12-17 | 2001-05-15 | Compaq Computer Corporation | Self-checked, lock step processor pairs |
JP3229070B2 (ja) * | 1993-06-01 | 2001-11-12 | 三菱電機株式会社 | 多数決回路及び制御ユニット及び多数決用半導体集積回路 |
US5664090A (en) * | 1993-12-15 | 1997-09-02 | Kabushiki Kaisha Toshiba | Processor system and method for maintaining internal state consistency between active and stand-by modules |
US5515282A (en) * | 1994-04-25 | 1996-05-07 | The Boeing Company | Method and apparatus for implementing a databus voter to select flight command signals from one of several redundant asynchronous digital primary flight computers |
JPH0863365A (ja) * | 1994-08-23 | 1996-03-08 | Fujitsu Ltd | データ処理装置 |
US5692121A (en) * | 1995-04-14 | 1997-11-25 | International Business Machines Corporation | Recovery unit for mirrored processors |
US5862131A (en) * | 1996-10-10 | 1999-01-19 | Lucent Technologies Inc. | Hybrid time-slot and sub-time-slot operation in a time-division multiplexed system |
JPH10240555A (ja) * | 1997-02-25 | 1998-09-11 | Nec Corp | フォールト・トレラント・データ処理システムとその方 法 |
CA2206737C (fr) * | 1997-03-27 | 2000-12-05 | Bull S.A. | Architecture en reseau de machine informatique |
US5923830A (en) * | 1997-05-07 | 1999-07-13 | General Dynamics Information Systems, Inc. | Non-interrupting power control for fault tolerant computer systems |
US6061600A (en) * | 1997-05-09 | 2000-05-09 | I/O Control Corporation | Backup control mechanism in a distributed control network |
US6067633A (en) * | 1998-03-31 | 2000-05-23 | International Business Machines Corp | Design and methodology for manufacturing data processing systems having multiple processors |
DE19831720A1 (de) | 1998-07-15 | 2000-01-20 | Alcatel Sa | Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks |
US6772367B1 (en) * | 1999-10-13 | 2004-08-03 | Board Of Regents, The University Of Texas System | Software fault tolerance of concurrent programs using controlled re-execution |
US6732202B1 (en) | 1999-11-17 | 2004-05-04 | I/O Controls Corporation | Network node with plug-in identification module |
US6611860B1 (en) | 1999-11-17 | 2003-08-26 | I/O Controls Corporation | Control network with matrix architecture |
US8645582B2 (en) * | 1999-11-17 | 2014-02-04 | I/O Controls Corporation | Network node with plug-in identification module |
US6550018B1 (en) * | 2000-02-18 | 2003-04-15 | The University Of Akron | Hybrid multiple redundant computer system |
US6732300B1 (en) | 2000-02-18 | 2004-05-04 | Lev Freydel | Hybrid triple redundant computer system |
US6687851B1 (en) | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
US6820213B1 (en) | 2000-04-13 | 2004-11-16 | Stratus Technologies Bermuda, Ltd. | Fault-tolerant computer system with voter delay buffer |
US6691225B1 (en) | 2000-04-14 | 2004-02-10 | Stratus Technologies Bermuda Ltd. | Method and apparatus for deterministically booting a computer system having redundant components |
US6928583B2 (en) * | 2001-04-11 | 2005-08-09 | Stratus Technologies Bermuda Ltd. | Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep |
DE10146695B4 (de) * | 2001-09-21 | 2015-11-05 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zur Übertragung von Nachrichten zwischen Busteilnehmern |
US7340644B2 (en) * | 2002-12-02 | 2008-03-04 | Marvell World Trade Ltd. | Self-reparable semiconductor and method thereof |
US20060001669A1 (en) * | 2002-12-02 | 2006-01-05 | Sehat Sutardja | Self-reparable semiconductor and method thereof |
US7185225B2 (en) * | 2002-12-02 | 2007-02-27 | Marvell World Trade Ltd. | Self-reparable semiconductor and method thereof |
DE10328059A1 (de) * | 2003-06-23 | 2005-01-13 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung eines verteilten Systems |
US7231543B2 (en) * | 2004-01-14 | 2007-06-12 | Hewlett-Packard Development Company, L.P. | Systems and methods for fault-tolerant processing with processor regrouping based on connectivity conditions |
US20050240806A1 (en) * | 2004-03-30 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Diagnostic memory dump method in a redundant processor |
DE102006018816A1 (de) * | 2006-04-22 | 2007-10-25 | Zf Friedrichshafen Ag | Vorrichtung und Verfahren zur Ansteuerung eines Fahrzeugs mit mehreren Achsmodulen |
US8074109B1 (en) * | 2006-11-14 | 2011-12-06 | Unisys Corporation | Third-party voting to select a master processor within a multi-processor computer |
DE102007033885A1 (de) * | 2007-07-20 | 2009-01-22 | Siemens Ag | Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems |
US8015390B1 (en) * | 2008-03-19 | 2011-09-06 | Rockwell Collins, Inc. | Dissimilar processor synchronization in fly-by-wire high integrity computing platforms and displays |
US8718079B1 (en) | 2010-06-07 | 2014-05-06 | Marvell International Ltd. | Physical layer devices for network switches |
WO2016077570A1 (en) | 2014-11-13 | 2016-05-19 | Virtual Software Systems, Inc. | System for cross-host, multi-thread session alignment |
RU2631987C2 (ru) * | 2016-02-01 | 2017-09-29 | Федеральное государственное бюджетное учреждение науки Институт конструкторско-технологической информатики Российской академии наук (ИКТИ РАН) | Способ повышения отказоустойчивости схемы и отказоустойчивая схема для его реализации |
WO2018048720A1 (en) | 2016-09-09 | 2018-03-15 | The Charles Stark Draper Laboratory, Inc. | Voting circuits and methods for trusted fault tolerance of a system of untrusted subsystems |
RU2669509C2 (ru) * | 2016-12-14 | 2018-10-11 | Федеральное государственное автономное учреждение науки Институт конструкторско-технологической информатики Российской академии наук (ИКТИ РАН) | Способ контроля работоспособности вычислительной системы и схема контроля для его реализации |
US10185635B2 (en) * | 2017-03-20 | 2019-01-22 | Arm Limited | Targeted recovery process |
RU2664493C1 (ru) * | 2017-04-05 | 2018-08-17 | Федеральное государственное автономное учреждение науки Институт конструкторско-технологической информатики Российской академии наук (ИКТИ РАН) | Способ испытаний электронной схемы на отказоустойчивость и стенд для его реализации |
CN114280919B (zh) * | 2022-03-08 | 2022-05-31 | 浙江中控技术股份有限公司 | 冗余控制装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3460094A (en) * | 1967-01-16 | 1969-08-05 | Rca Corp | Integrated memory system |
US3665173A (en) * | 1968-09-03 | 1972-05-23 | Ibm | Triple modular redundancy/sparing |
US3593307A (en) * | 1968-09-20 | 1971-07-13 | Adaptronics Inc | Redundant, self-checking, self-organizing control system |
GB1253309A (en) * | 1969-11-21 | 1971-11-10 | Marconi Co Ltd | Improvements in or relating to data processing arrangements |
US3783250A (en) * | 1972-02-25 | 1974-01-01 | Nasa | Adaptive voting computer system |
US4412281A (en) * | 1980-07-11 | 1983-10-25 | Raytheon Company | Distributed signal processing system |
AU549343B2 (en) * | 1981-06-08 | 1986-01-23 | British Telecommunications Public Limited Company | Phase locking |
JPS5985153A (ja) * | 1982-11-08 | 1984-05-17 | Hitachi Ltd | 冗長化制御装置 |
US4562575A (en) * | 1983-07-07 | 1985-12-31 | Motorola, Inc. | Method and apparatus for the selection of redundant system modules |
US4610013A (en) * | 1983-11-08 | 1986-09-02 | Avco Corporation | Remote multiplexer terminal with redundant central processor units |
US4654846A (en) * | 1983-12-20 | 1987-03-31 | Rca Corporation | Spacecraft autonomous redundancy control |
DE3432165A1 (de) * | 1984-08-31 | 1986-03-06 | Messerschmitt-Bölkow-Blohm GmbH, 8012 Ottobrunn | Einrichtung zur automatischen rekonfiguration einer intakten geraetekombination |
US4622667A (en) * | 1984-11-27 | 1986-11-11 | Sperry Corporation | Digital fail operational automatic flight control system utilizing redundant dissimilar data processing |
US4799140A (en) * | 1986-03-06 | 1989-01-17 | Orbital Sciences Corporation Ii | Majority vote sequencer |
US4907232A (en) * | 1988-04-28 | 1990-03-06 | The Charles Stark Draper Laboratory, Inc. | Fault-tolerant parallel processing system |
US5195040A (en) * | 1990-03-19 | 1993-03-16 | The United States Of America As Represented By The Secretary Of The Navy | Backup navigation system |
-
1992
- 1992-05-05 CA CA002068048A patent/CA2068048A1/en not_active Abandoned
- 1992-05-06 JP JP4142228A patent/JPH05197582A/ja not_active Withdrawn
- 1992-05-06 EP EP19920304086 patent/EP0514075A3/en not_active Withdrawn
- 1992-05-13 US US07/882,474 patent/US5423024A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113655707A (zh) * | 2021-07-29 | 2021-11-16 | 浙江中控技术股份有限公司 | 安全仪表系统的表决控制方法、装置和电子装置 |
CN113655707B (zh) * | 2021-07-29 | 2023-12-12 | 浙江中控技术股份有限公司 | 安全仪表系统的表决控制方法、装置和电子装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0514075A2 (en) | 1992-11-19 |
US5423024A (en) | 1995-06-06 |
EP0514075A3 (en) | 1993-07-14 |
CA2068048A1 (en) | 1992-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05197582A (ja) | 動的再構成が可能な多数決システムを有するフォールト・トレラント処理装置 | |
US7320086B2 (en) | Error indication in a raid memory system | |
US5345566A (en) | Method and apparatus for controlling dual bus system | |
US6684292B2 (en) | Memory module resync | |
US4974144A (en) | Digital data processor with fault-tolerant peripheral interface | |
CA1306546C (en) | Dual zone, fault tolerant computer system with error checking on i/o writes | |
KR102350538B1 (ko) | Ddr 메모리 에러 복구 | |
EP0260584B1 (en) | Fault tolerant computer achitecture | |
JP2521738B2 (ja) | 障害回復デ―タ処理システム | |
US4907228A (en) | Dual-rail processor with error checking at single rail interfaces | |
US6785785B2 (en) | Method for supporting multi-level stripping of non-homogeneous memory to maximize concurrency | |
US6640282B2 (en) | Hot replace power control sequence logic | |
WO1997046941A1 (en) | Digital data processing methods and apparatus for fault isolation | |
JPH01152543A (ja) | 欠陥分離及び修理機能を有する耐欠陥コンピュータシステム | |
WO1997046941A9 (en) | Digital data processing methods and apparatus for fault isolation | |
JPH052654A (ja) | マイクロコンピユータの故障検知方法および回路 | |
US6578126B1 (en) | Memory system and method of using same | |
US7725761B2 (en) | Computer system, fault tolerant system using the same and operation control method and program thereof | |
KR100938612B1 (ko) | 전송 장치, 전송 장치를 갖는 정보 처리 장치 및 제어 방법 | |
JPH0934741A (ja) | メモリコピーシステム | |
JPH06259270A (ja) | プロセッサ異常判定回路 | |
JPH02242452A (ja) | メモリカード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20040806 |