JPH0683663A - マルチプロセッサ・コンピュータ・システム - Google Patents

マルチプロセッサ・コンピュータ・システム

Info

Publication number
JPH0683663A
JPH0683663A JP5002610A JP261093A JPH0683663A JP H0683663 A JPH0683663 A JP H0683663A JP 5002610 A JP5002610 A JP 5002610A JP 261093 A JP261093 A JP 261093A JP H0683663 A JPH0683663 A JP H0683663A
Authority
JP
Japan
Prior art keywords
processing
instruction set
processors
signature
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5002610A
Other languages
English (en)
Other versions
JP2500038B2 (ja
Inventor
Edward Belou Stephen
ステファン・エドワード・ベロー
An Hiyuua Kiin
キーン・アン・ヒューア
Kuuon Peiru Jii
ジー−クゥオン・ペイル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0683663A publication Critical patent/JPH0683663A/ja
Application granted granted Critical
Publication of JP2500038B2 publication Critical patent/JP2500038B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

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

Abstract

(57)【要約】 【目的】 処理誤りを検出でき、命令セットの誤りのな
い処理が可能なマルチプロセッサ・コンピュータ・シス
テムおよび関連した方法を提供する。 【構成】 コンピュータ・システムの複数の処理ノード
により、命令セットは複製され、実質的に並列に処理さ
れる(44)。各処理ノードは、命令セットの実行より
導かれ、命令セットの実行に相応した圧縮ハードウェア
・シグネチャを収集する(46)。命令セットの実行に
続いて、各処理ノードより収集されたハードウェア・シ
グネチャが比較され、所定のボウティング処理により、
処理誤りの有る無しが確定される(48)。各プロセッ
サは独立のクロックによって駆動でき、その場合には複
数の処理ノードによる命令セットの処理は非同期とな
る。ただし、各プロセッサによる命令セットの実行は同
期化される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ・システム
に関し、特に、複数の処理ノードを有し、命令セットを
誤りなく処理するための、ハードウェアによるシグネチ
ャ・コレクション(signature collec
tion)およびボウティング(voting)の能力
を備えたコンピュータ・ネットワークに関するものであ
る。
【0002】
【従来の技術および解決すべき課題】マイクロプロセッ
サのスピードが本体のコンピュータのレベルに近づくに
つれ、本体のすでに確立されたアプリケーションの一
部、例えばデータベース処理などを分担するために、微
細構造の特定目的の装置を開発することに対して興味が
高まってきている。マイクロプロセッサを用いても、大
規模な並列化を行えば本体コンピュータより高い性能を
実現できる。しかしその場合、今日のマイクロプロセッ
サではハードウェア・エラーを充分に検出できないとい
う大きな問題がある。VLSIチップであるマイクロプ
ロセッサ・チップにとってそのスペースは、性能を確保
する上で厳しい問題であるため、本体プロセッサで通常
用いられているような完全な自己検査回路を用いること
は実用的でない。この誤り検出の問題に関して種々の試
みが行われている。
【0003】フォールト・トレラント・システムで用い
られている、おそらく最も一般的な技術は、処理ハード
ウェアを単に物理的に多重化するというものである。大
規模集積(VLSI)回路の発達、ならびに非常に低価
格のマイクロプロセッサの進歩により、フォールト・ト
レラント・システムを実現する上で、ハードウェアの多
重化は一層望ましく、実用的なアプローチとなってい
る。冗長性を利用することによって、種々のコンピュー
タ・アーキテクチャにおいて信頼性の高いディジタル処
理が実現されている。例えば、トリプル・モジュール冗
長性(TMR)システムでは、同一の命令の流れを実施
するのに3つのCPUを用いており、メモリ・ユニット
およびI/O装置も別のものを用いている。各CPUは
同一の機能を果たし、1つが故障してもシステムは動作
を継続できるようになっている。(TMRシステムに関
してさらに詳しくは、米国特許第4,965,717号
明細書“個別書き込み機能を有する共用メモリを備えた
マルチプロセッサ・システム”、およびW.McGil
l他による“連続処理制御におけるフォールト・トレラ
ンス”と題する論文(IEEE Micor、pp.2
2−33、1984年12月)を参照。)TMRシステ
ムの欠点は、多重化されたモジュールはそれぞれ同期し
た命令サイクルで動作しなければならないということで
あり、そのことは、各モジュールが、多重化された処理
を厳密に同期化するため、1つのクロックを共用しなけ
ればならないということを意味する。すなわち、単一の
クロックによって多重化された各処理が駆動されるた
め、クロックの障害によってシステムの動作は異常とな
り、つまりは一点故障となる。
【0004】マルチプロセッサ・システムにおいてフォ
ールト・トレランスを高めるための他の技術として、例
えば、プロセッサによる各命令の実行が完了した後、ソ
フトウェアによってデータ・コレクションおよびボウテ
ィングを行うという技術がある(“SIFT:航空機制
御のためのフォールト・トレラント・コンピュータの設
計および分析”(Wensley他、Proc.IEE
E、Vol.66、No.10、pp.1240−12
55、1978年10月)を参照)。このソフトウェア
によりデータ・コレクションおよびボウティングを行う
というアプローチの長所は、各プロセッサは同一のアプ
リケーション・タスクを実行するが、独立したクロック
によって駆動されるので、プロセッサ間には弱い同期の
みを維持すればよいということである。各プロセッサの
処理により得られたデータは他のプロセッサに送信さ
れ、そこで所定のソフトウェア・ルーチンによりデータ
に対するボウティングが行われる。しかしこのアプロー
チでは、各プロセッサの処理結果としての実際のデータ
が用いられ、また通常、各命令を実行するごとに実施さ
れるので、通信のための負担が大きくなり、そのことが
このアプローチを実施する上での重大な欠点となってい
る。この技術では、基本的に通信および計算に対する負
担が無視されている。
【0005】従って、マルチプロセッサ分散計算システ
ムにおける誤り検出のための優れたアプローチが必要と
なっており、特に、非同期で、かつシステムを構成する
複数のプロセッサ間の通信および計算の負担を最小にす
るようなアプローチが必要となっている。そこでその答
えとして以下に、シグネチャ・コレクション分析を行う
方法を示す。
【0006】シフト・レジスタを用いたシグネチャ分析
の技術は、VLSIチップの製造および試験において長
年にわたって用いられてきた(例えば、R.A.Fro
hwerkによる“シグネチャ分析:新しいディジタル
・フィールド・サービスの方法”(ヒューレット・パッ
カード・ジャーナル、pp.2−8、1977年5月)
を参照)。簡単に説明すると、この分野ではシグネチャ
分析は、大規模のデータを圧縮し、固有の単一のシグネ
チャとして試験して、試験における計算を簡略化するた
めに用いられている。本発明では、このシグネチャ分析
の概念を改良して多処理システムの環境で利用する。
【0007】
【課題を解決するための手段】本発明は、命令セットを
誤りなく処理するために処理の誤りを検出できるマルチ
プロセッサ・コンピュータ・システムを提供する。この
マルチプロセッサ・システムは、複数のプロセッサを備
え、各プロセッサは命令セットを独立に処理するように
接続されている。複数のハードウェア・シグネチャ発生
手段のそれぞれは、プロセッサによる命令セットの処理
にもとづき、命令セットの処理に相応する圧縮ハードウ
ェア・シグネチャを発生するように、複数のプロセッサ
のそれぞれに関連している。ボウティング手段は、誤り
状態検出に関してシグネチャを比較するため、発生され
た各ハードウェア・シグネチャを受信するよう接続され
ている。受信したシグネチャの間に所定の比較誤りを検
出した場合には、ボウティング手段は誤り状態を認識す
る。さらに種々のマルチプロセッサ・コンピュータ・シ
ステムの詳細についても記述する。
【0008】本発明はまた、複数の処理システムを用い
る、フォールト・トレラント命令セット処理方法を提供
する。この処理方法は、複数の処理システムのそれぞれ
により命令セットを複製し、かつ処理するステップと、
プロセッサ・システムが独立に複製された命令セットを
処理するとき、処理システムのそれぞれから圧縮ハード
ウェア・シグネチャを収集するステップと、命令セット
のすべての処理に続いて、収集されたシグネチャにもと
づいてボウティングを行い、処理誤り状態の有る無しを
認識するステップとを含んでいる。この処理方法に関し
ても、種々の改良について記述する。
【0009】要約すると、本発明はマルチプロセッサ・
システムのための優れた誤り検出方式を提供する。ここ
に記述するフォールト・トレラント・システムは、処理
の統合性を保証するように、圧縮シグネチャの収集を行
い、ボウティング処理を行う。望ましくは、各処理命令
セットごとに一回だけボウティングを行う。その結果、
比較および通信の負担は大幅に減少する。このマルチプ
ロセッサ・システムでは、緩やかに結合した非同期処理
ノードを用いるので、時間に相関する誤りが発生する確
率が低下する。具体的には、システムの一点故障を防止
するため、共通クロックは使用しない。処理命令セット
にもとづく誤り検出により、チップレベルでボウティン
グを行って誤りを検出するアプローチなど、従来の大部
分の技術にくらべ、高い誤り認識効率が得られる。
【0010】
【実施例】次に本発明の実施例について図面を参照して
説明する。
【0011】図1において、10は分散計算システムを
示し、通信ネットワークを通じて相互に接続された複数
の処理ノード/システム12(・・・ PN1・・・ PN1
0,PN11,PN12,PN13・・・ )を有してい
る。(各処理ノード12は物理的に独立の処理システム
により構成されていてもよく、それらの中のあるものは
離れた場所に設置されていてもよい。)処理ノード12
の一実施例を図2に示す。この構成例では、ノード12
はローカル・メモリ20、CPU24(キャッシュ22
を含む)を含み、CPU24、キャッシュ22、ならび
にメモリ20を相互に接続して通信を可能とするプロセ
ッサ・バス26をさらに含んでいる。また、バス26に
は通信アダプタ28が接続され、それは、例えば図1の
通信ネットワークを通じて他の処理ノードと通信するた
め、ノード12に対する通信プロトコルを備えている。
ノード12は接続線29を通じて通信ネットワーク(図
示せず)に接続している。ノード12はまた、バス26
とディスク記憶装置32とを相互接続するI/Oコント
ローラ30を有している。ディスク記憶装置32はメモ
リ20に対する2次記憶装置として動作する。
【0012】本発明において重要なことは、アプリケー
ション・プログラム、サブプログラム、ならびにトラン
ザクションなど(ここでは命令セットという)の処理、
およびマルチプログラム・システム内の各処理ノードか
ら圧縮したハードウェア・シグネチャを同時的に収集す
る処理を多重化するということである。収集したシグネ
チャを処理する一連の命令セットは、所定のボウティン
グ方法を用いて誤りの有る無しに関して比較する。図3
に、これれらの処理の概要を示す。
【0013】最初に、例えばフォールト・トレラントあ
るいは診断に関して、選んだ命令セットの実行の多重化
を行うことを決定する(ステップ40:“アプリケーシ
ョン・プログラムの実行を多重化することを決定す
る”)。命令セットの多重化としては、二重化、三重
化、あるいはさらなる多重化を行ってもよい。望ましく
は、シグネチャボウティングの処理(以下に述べる)を
簡単にするため、奇数の命令セットに多重化する。選ん
だ命令セットに対して多重化を決定すると、所望数の処
理装置にタスク指名する(ステップ42:“複数の装置
にアプリケーション・プログラムをタスク指名す
る”)。これは、命令セットが各処理装置において既に
多重化され、コード化されている場合には、単一のコマ
ンドによって行える。各装置における命令セットの実行
は、適当な同時性および干渉性のメカニズムにより同期
的にあるいは非同期的に進める(ステップ44:“適当
な同時性および干渉性のメカニズムにより、複数の装置
においてアプリケーション・プログラムを実行す
る”)。マルチプロセッサの環境では、同時性および干
渉性はデータの統合性を保証するために必要である。
(この機能は一般に、トランザクション処理環境のデー
タベース管理システムにより、あるいは適当なハードウ
ェア機能により管理される。)本発明にもとづき、アプ
リケーション・プログラムの実行と同時に、各実行装置
は、アプリケーション領域の、圧縮ハードウェア・シグ
ネチャを収集する(ステップ46:“アプリケーション
領域のハードウェア・シグネチャを収集する”)。収集
した各ハードウェア・シグネチャは、命令セット内の命
令を実行し、その結果生成されたデータより導いた圧縮
信号により構成されている。命令セットの実行を完了す
ると、次に、所定のシグネチャ・ボウティング方法(以
下に説明する)を用いて、複数の装置のそれぞれからの
ハードウェア・シグネチャを比較する(ステップ48:
“実行終了時に、主要なボウティング技術にもとづい
て、複数の装置からのハードウェア・シグネチャを比較
する”)。
【0014】次に、本発明によるフォールト・トレラン
ト・トランザクション処理方法について、より具体的な
処理例にもとづいて説明する。トランザクション処理環
境では、各処理ノードはトランザクション・マネージャ
ーを含むデータベース管理ソフトウェアの複製を実行す
る。トランザクション・マネージャーは、データベース
への適切な書き込みを保証するソフトウェア・システム
である。“トランザクション”は、アプリケーション環
境における仕事の論理単位と定義する。トランザクショ
ンは完全に実行するか、あるいはそうでない場合は主デ
ータベースが何も影響を受けないようにしなければなら
ない。データベースは、複製して各処理ノードで格納す
るか、あるいは処理ノードの外部に置く。
【0015】複製した各トランザクションは処理ノード
において個別に実行する。本発明によるトランザクショ
ン処理の詳しい一例を図4に示し、それについて図1の
マルチプロセシング・システムを参照して以下に説明す
る。最初に、図に示した具体的なトランザクション処理
の実施例に関して、以下のことを仮定する。すなわち、
処理ノードPN1はシステムのただ1つのデータベース
・サーバーとして機能するものとする。また、計算シス
テムPN13は、トランザクションの複製を開始させる
ものとし、トランザクションは、現在の経理情報を対象
とする単純なデータベースのアクセスあるいは更新であ
ると定義されているとする。3つのシグネチャの中、2
つのシグネチャが同一かどうかのボウティングを行うボ
ウティング方式を用いる。
【0016】多重化の実行が決定されると、ステップ5
0の“トランザクション処理の起動”により、調整ノー
ド(PN13)は、ノードPN1をトリガし、現経理デ
ータをロックさせる(ステップ52:“処理システムP
N1は現経理データをロックする”)。次にトランザク
ションを複製し、他の計算ノード、例えばノードPN1
0,PN11,PN12に送る(ステップ54:“処理
システムPN13は命令およびデータ・アドレスを処理
システムPN10,PN11,PN12に送る”)。
(トランザクション処理の環境では、実行多重化の決定
は通常、トランザクションレベルにおいて行う。)次
に、現経理データは多重化された処理装置PN10,P
N11,PN12によってノードPN1より読まれる
(ステップ56:“処理システムPN10,PN11,
PN12は経理データを処理システムPN1より読
む”)。現経理データは、例えば、現経理番号、預金/
払い戻し情報などを含んでいる。次に、処理システムP
N10,PN11,PN12は新しい現経理データを計
算し(ステップ58:“処理システムPN10,PN1
1,PN12は新しい現経理データを計算する”)、そ
してそれぞれ同時に少なくとも1つの圧縮ハードウェア
・シグネチャを、処理の流れにおける1つまたは複数の
位置(例えば、一連の命令のデコーディング、アドレス
発生、命令実行)から収集する(ステップ60:“処理
システムPN10,PN11,PN12はそれぞれシグ
ネチャを確定する”)。
【0017】トランザクションの実行を完了すると、各
処理システムPN10,PN 11,PN12はそれら
が収集した圧縮シグネチャを、ローカル収集レジスタか
ら調整ノードPN13へ送り(ステップ62:“処理シ
ステムPN10,PN 11,PN12は処理システム
PN13へシグネチャを送る”)、処理システムPN1
3は、すべてのシグネチャを受信すると、ボウティング
処理を行う(ステップ64:“処理システムPN13は
ボウティングを行う”)。ノードPN13は収集された
シグネチャをすべて受信するまで待つことにより、処理
の同期化を保証する。最後に、調整ノードPN13は実
施したボウティングの結果にもとづいて所定の適当なコ
マンドを実行する(ステップ66:“処理システムPN
13はボウティングの結果にもとづいてコマンドを実行
する”)。これにより、トランザクションの処理は終了
する(ステップ68:“終了”)。適当なコマンドとし
ては、例えば次のようなものである。すなわち、処理ノ
ードPN10,PN11が収集したシグネチャが一致し
た場合には、処理ノードPN1に現経理データのアンロ
ックを命令し、処理ノードPN10に対しては、その処
理結果のデータのデータベース・マネージャーPN1へ
の送信を命令し、ノードPN1に対して現経理データを
計算により得られたデータによって更新させる。
【0018】以上の説明では、1つの処理ノードだけが
ボウティングを行い、1つの処理ノードだけが現経理情
報の更新を制御するとした。しかし、より高度のフォー
ルト・トレランスを達成するために、複数の処理ノード
(例えば、3つ)がフォールト・トレラントのためのボ
ウティングを行うことにしてもよい。また、複数の処理
ノード(例えば、3つ)が現経理情報の更新を制御する
ようにしていもよい。例えば、各処理ノードPN10,
PN11,PN12に同一のボウティング処理を実行さ
せ、そしてボウティングの結果が受け入れ可能な場合に
は、各処理ノードにデータベースのローカルな複写にお
ける上記更新を実行させる。
【0019】本発明では、データベースは、トランザク
ションが完全に実行されるまでは影響を受けないので、
本発明の技術はトランザクション処理の環境において容
易に実施できる。上記理由により、誤りが発生した時刻
と、誤りが検出された時刻との間の小さい遅れは許容で
きる。トランザクションが実行される前に誤りが検出さ
れる限り、トランザクション・マネージャーはデータベ
ースになんら変更が加えられなり状態でトランザクショ
ンを中止させることができる。
【0020】本発明による、ハードウェア・シグネチャ
のコレクションおよびボウティングのための具体的な処
理ノードの一実施例を図5のブロック図に示す。図5に
は、図2の典型的な処理ノード12を構成するメモリ2
0およびCPU24(キャッシュ・メモリ22を含む)
を示す。CPU24はキャッシュ・メモリ22内の命令
および/またはデータにもとづいて動作し、そしてCP
U24はプロセッサ・バス26を通じて処理ノードの主
メモリ20に接続されている。処理すべき命令セットに
加えて、メモリ20は通常、CPUへの入力データを有
しており、そして外部データベースの一部または全体の
複製を格納することができる。
【0021】本発明のシグネチャ収集処理は種々の既知
のデータ圧縮技術(例えば、実行された命令の数をカウ
ンタによって計数するもの)を用いて実現できるが、望
ましくは、処理ノードごとに1つまたは複数のリニア・
フィードバック・シフトレジスタ(LFSR)を設ける
ことにより実現する。LFSRについては公開文献(例
えば、RaoおよびFujiwaraによる“計算シス
テムのための誤り制御コーディング”(プレンティス・
ホール出版、1989年、セクション3.2、初版:1
989年)を参照。)によってよく知られており、ハー
ドウェアの試験において試験応答の圧縮(McClus
keyによる“組み込み式自己試験技術”(IEEE設
計および試験、Vol.2、No.2、pp.21−2
8、1985年4月)を参照)のために用いられてい
る。本発明ではリニア・フィードバック・シフトレジス
タ圧縮技術を用いることにより、ボウティング処理で相
互検査を行うべきデータの量を有利に低減することがで
きる。LFSRを用いることにより、CPU内部の多く
の部分において、命令セットの処理に関連するデータ信
号および/または制御信号の流れを圧縮することができ
る。さらに具体的に述べると、CPU内部において、デ
ータ信号はいかなるデータパスからでも所望の部分に振
り向けることができ、また制御信号は命令デコード・ハ
ードウェアおよび/またはアドレス発生ハードウェアか
ら所望の部分に振り向けることができる(以下に、さら
に詳しく述べる)。
【0022】キャッシュ・メモリ22に入力された命令
は順番にCPUの命令レジスタ70に入力され、そこで
ボウティング制御ビット72が付加される。ビット72
は命令が、シグネチャ・コレクションを行うべき選ばれ
た命令セットからの命令であるかどうか表す信号として
用いる。ボウティング制御ビットは適当な命令によりセ
ットあるいはリセットすることができる。命令はレジス
タ70から読み出され、命令デコードニット74により
デコードされる。デコードユニット74は、図に疑似的
に示す実行ユニット76に接続されている。命令はパイ
プライン式にアドレス発生ユニット78によってもレジ
スタ70から読み出され、ユニット78は読み出した命
令に関連するアドレスの信号を記憶装置に対して与え
る。キャッシュ・メモリには汎用レジスタ(GPR)8
0も接続されており、これらのレジスタはCPU24に
よって処理される現在のデータを保持する。GPR80
の出力にはALU82が接続されている。ALU82は
処理結果としてのデータを接続線83を通じてレジスタ
80に戻す。
【0023】この実施例では、1つのCPUに対して3
つのシグネチャ収集装置(LFSRおよびそれらの支援
回路)が個別に用いられている。具体的には、選択論理
回路84,86,88がそれぞれ、ユニット82,7
4,78からの出力データ線に接続されている。(参考
文献のRaoおよびFujiwaraによる“通信シス
テムのための誤り制御コーディング”を参照。)ボウテ
ィング・ビットV72は各選択論理回路84,86,8
8を制御するものとして機能する。ボウティング・ビッ
トは、シグネチャのハードウェア・コレクションが必要
な場合には必ずセットされ、そして通常、実行された命
令によって再び変更される。各論理回路は、命令セット
の誤り試験が新たに行われるごとにボウティングビット
によってリセットされる。収集すべき圧縮ハードウェア
・シグネチャの量および内容は、システムのソフトウェ
ア/ハードウェア構成がどのようなものであるかによっ
て異なる。
【0024】図5のCPUの実施例では、最初のシグネ
チャはLSFR(1)90において収集され、選択論理
回路84からのデータに結合される。論理回路84はフ
ィードバック接続線91を通じてLSFR90を読むこ
とができる。同様に、LFSR(2)92は論理回路8
6に接続され、論理回路86に対するフィードバック接
続線93を有している。LSFR(3)94は選択論理
回路88からのデータを受信し、接続線95を通じてデ
ータを帰還させる。1つのCPU24に対して複数のL
FSRを用いることにより、誤りの分離、および誤り検
出における診断が容易となる。しかし必要なら、1つの
処理ノードに対し、1つのLFSRを用いて圧縮ハード
ウェア・シグネチャを収集することも可能である。さら
に4つ以上のLFSRを用いることも可能である。例え
ば、CPU24が複数のALUを有している場合、1つ
のLFSRおよび支援選択論理回路を各ALUに接続
し、各ユニットの処理結果のデータに関する情報を収集
するようにしてもよい。また、複数のLSRFを接続し
てキャッシュ・メモリ22周辺の複数のデータパス、例
えばメモリ22と命令レジスタ70との間のパス、ある
いはメモリ22とGPR80との間のパスをアクセスし
てもよい。(メモリ20からメモリ22へのデータ転送
は通常、よく知られたECC機構によって、あるいはパ
リティ・チェック方式によって保護されている。)多く
の場合、アプリケーション領域のシグネチャのみをLF
SRにより収集する。
【0025】図5のCPU24による命令セット処理の
一実施例を図6に示す。この処理は4段のパイプライン
処理となっており、命令デコード段、アドレス発生段、
実行段、ならびに終了命令段から成っている。まず、誤
り検出の対象である命令セットの処理開始として(ステ
ップ100:“開始”)、ボウティング・ビットVの設
定制御を受け取る(ステップ102:“ボウティング・
ビットVを設定”)。命令セット内の最初の命令をデコ
ードし(ステップ104“命令(1)をデコード”)、
デコードした命令より導かれる圧縮シグネチャを同時に
LFSR(1)に収集する(ステップ106:“シグネ
チャ(1)を収集”)。次のマシンサイクルにおいて、
アドレスを発生し(ステップ108:“アドレス発
生”)、同時に第2の命令のフェッチおよびデコードを
行う(ステップ110:“命令(2)をデコード”)。
アドレス発生108の結果は、発生と同時に圧縮した形
でLFSR(2)に収集し(ステップ112:“シグネ
チャ(2)を収集”)、一方、ステップ110における
命令(2)のデコード結果はLFSR(1)に付加する
(ステップ114:“シグネチャ(1)を収集”)。
【0026】次のマシンサイクルにおいて、パイプライ
ンに第3の段を付加し、そこで命令(1)を実行し(ス
テップ116:“実行”)、それと同時にデコードした
第2の命令に対応するアドレスを発生する(ステップ1
18:“アドレス発生”)。さらに同時に、第3の命令
のフェッチおよびデコードを行う(ステップ120:
“命令(3)をデコード”)。ステップ116の実行の
結果は圧縮した形でLFSR(3)に収集し(ステップ
122:“シグネチャ(3)を収集”)、一方、ステッ
プ118のアドレス発生の結果およびステップ120の
命令(3)のデコード結果は、圧縮形式でLFSR
(2)およびLFSR(1)にそれぞれ付加する(ステ
ップ124:”シグネチャ(2)を収集”およびステッ
プ126:“シグネチャ(1)を収集”)。
【0027】パイプラインの最終段は、各命令の終了処
理となっており(ステップ128:“命令(1)を終
了”)、これは、命令セットの第2,第3,第4の命令
の実行、アドレス発生、命令デコード(図示せず)にお
ける同じマシンサイクルでも実行する。第2の命令の実
行の結果得られるシグネチャは(ステップ130:“実
行”)LFSR(3)に収集し(ステップ132:“シ
グネチャ(3)を収集”)、その後、命令(2)の処理
を終了する(ステップ134:“命令(2)を終
了”)。第3の命令に関連するアドレス発生より得られ
るシグネチャは(ステップ136:“アドレス発生”)
LFSR(2)に収集し(ステップ138:“シグネチ
ャ(2)を収集”)、一方、第3の命令の実行にもとづ
くシグネチャは(ステップ140:“実行”)LFSR
(3)に付加する(ステップ142:“シグネチャ
(3)を収集”)。その後、命令(3)の処理を終了す
る(ステップ144:“命令(3)を終了”)。まとめ
ると、終了命令段を除いて、パイプラインの各段におい
てハードウェア・シグネチャを発生し、CPUの3つの
LFSRの中の1つに収集(付加)する。ただし、実行
すべき命令の中には4段すべてを必要としないものもあ
る。その場合、不要な段ではシグネチャの収集は行わな
い。
【0028】プログラム実行の最後において、かつデー
タベースの処理の前に、調整処理ノードはマシン命令チ
ェックを行い、各従属処理システムに対してそれらの現
在のハードウェア・シグネチャ(すなわち、1つまたは
複数のLFSRの内容)を比較のために調整処理ノード
に送らせる(図3参照)。もしシグネチャが一致しなか
った場合には、誤り発生として命令セット・マネージャ
ーはプログラムを中断する。なお、従来の誤り検出法で
は通常、すべてのデータ処理結果の組み合せが必要とな
るが、本発明の上述の処理においては、1つの命令セッ
トに対してただ1回のボウティング処理を行うので、必
要な圧縮処理および通信処理の量は大幅に低減する。
【0029】説明を分かり易くするため、上述した実施
例では、各処理ノードは1つの命令セットを順番に実行
するものとしている。より進んだスーパースカラー・タ
イプのプロセッサでは、シーケンス外の実行が通常、可
能である。そのような環境では、シグネチャ・コレクシ
ョンの機構は改良する必要がある。例えば、シグネチャ
はデコード段および終了段においてのみ収集するように
する。なぜなら、これら2つの段は通常、順番に実行さ
れるからである。この場合、アドレス発生段および実行
段で生成されたデータは、デコード・シーケンスに従っ
てバッファリングすればよく、命令実行の完了に続いて
シグネチャの収集を行える。
【0030】実際には、大部分のマルチプロセッサ・シ
ステムはアプリケーション・プログラムをマルチ・プロ
グラミング環境で実行する。アプリケーション・プログ
ラムの実行は基本的には、繰り返して中断し、命令セッ
トの実行が完了する前に戻すことができる。本発明はこ
のようなマルチ・プログラミング環境に対しても、中断
時にハードウェア・シグネチャおよび制御ビットVを単
にセーブし、プログラムの実行が再開したとき上記情報
を元に戻すことにより、容易に実施できる。そうするこ
とにより、シグネチャをそのまま保存することができ
る。このマルチ・プログラミング処理における一実施例
を図7に示す。
【0031】マルチプロセッサ環境では、選択した命令
セット(例えば、プログラムX)の多重処理をまず仮定
する(ステップ160:“プログラムXの多重処
理”)。上記プログラムは、マルチプログラム処理環境
で実行するので、その処理は通常、1つまたは複数の処
理ポイントで中断される(ステップ162:“ルーチン
を中断する”)。中断処理の一部として、プログラムX
の現在の状態を主メモリ164にセーブする(ステップ
164:“プログラムXの状態を主メモリにセーブす
る”)。その際、本発明に従い、各ハードウェア・シグ
ネチャ収集装置(LFSR)の内容および関連するボウ
ティング・ビットを含めてセーブする。各処理システム
は次に1つまたは複数の異なるプログラムの処理を行う
(ステップ166:“CPUは他の処理を扱う”)。そ
のプログラムは例えば1つまたは複数の異なるアプリケ
ーション・プログラムからなり、各プログラムに対して
シグネチャ収集を行う。プログラムXの実行はいくつか
のポイントで再開させ(ステップ168:“オペレーテ
ィング・システムはプログラムXの実行を再開す
る”)、シグネチャ収集装置(LFSR)の各内容を含
むプログラムXの現在の状態を、CPU内の適当なハー
ドウェア(LFSR)に復元する(ステップ170:
“プログラムXの状態をCPUに移動する”)。最後
に、ボウティング制御ビットVを再能動化し(ステップ
172:“シグネチャ収集を再開するためにVビットを
能動化する”)、選択した命令セットの処理を、シグネ
チャ収集と共に再開する。
【0032】以上、本発明について特定の実施例にもと
づいて詳しく説明したが、本発明の基本的な考え方に従
い、種々の改良および変更を加えることはもちろん可能
である。例えば、ここで述べたフォールト・トレラント
処理技術は、診断試験に対して直ちに適用することがで
きる。その場合、アプリケーション・プログラムは制御
システムおよび試験システム上で走らせ、シグネチャを
収集し、比較を行うことにより、試験システムが正しく
動作していることを確かめる。これ以外にも種々の応用
が可能である。
【0033】以下、本発明の実施態様を列記する。
【0034】(1)命令セットを誤りなく処理するため
に処理の誤りを検出できるマルチプロセッサ・コンピュ
ータ・システムにおいて、複数のプロセッサを備え、前
記プロセッサはそれぞれ、前記プロセッサの中の他のプ
ロセッサからの前記命令セットを独立に処理し、複数の
ハードウェア・シグネチャ発生手段を備え、各シグネチ
ャ発生手段はそれぞれ、前記プロセッサの1つに関連し
て、前記プロセッサによる前記命令セットの処理と同時
に、かつその処理にもとづいて、圧縮ハードウェア・シ
グネチャを発生し、前記発生されたハードウェア・シグ
ネチャのそれぞれを受信するように接続され、前記シグ
ネチャを誤り状態に関して比較し、受信した前記シグネ
チャの間に所定の比較誤りを検出した場合に誤り状態を
認識するボウティング手段を備えたことを特徴とするマ
ルチプロセッサ・コンピュータ・システム。
【0035】(2)前記複数のプロセッサは、複数のマ
イクロプロセッサから成ることを特徴とする(1)記載
のマルチプロセッサ・コンピュータ・システム。
【0036】(3)前記複数のプロセッサは、前記命令
セットの実質的な並列処理のために、通信ネットワーク
を通じて並列に接続されていることを特徴とする(1)
記載のマルチプロセッサ・コンピュータ・システム。
【0037】(4)前記複数のプロセッサは、3つのプ
ロセッサを備えていることを特徴とする(1)記載のマ
ルチプロセッサ・コンピュータ・システム。
【0038】(5)前記3つのプロセッサは、前記命令
セットの実質的な並列処理のために、通信ネットワーク
を通じて並列に接続されていることを特徴とする(4)
記載のマルチプロセッサ・コンピュータ・システム。
【0039】(6)前記複数のプロセッサの中の少なく
ともいくつかは、物理的に独立の処理システム内に設け
られていることを特徴とする(1)記載のマルチプロセ
ッサ・コンピュータ・システム。
【0040】(7)前記物理的に独立した処理システム
の中の少なくともいくつかは、物理的に離れた処理シス
テムから成ることを特徴とする(6)記載のマルチプロ
セッサ・コンピュータ・システム。
【0041】(8)前記複数のプロセッサの各プロセッ
サは、1つのクロック信号によって駆動され、前記複数
のプロセッサの少なくともいくつかは、異なる、非同期
のクロック信号によって駆動されることを特徴とする
(1)記載のマルチプロセッサ・コンピュータ・システ
ム。
【0042】(9)前記複数のプロセッサの各プロセッ
サは、前記命令セットを同期して処理することを特徴と
する(1)記載のマルチプロセッサ・コンピュータ・シ
ステム。
【0043】(10)前記コンピュータ・システムは、
複数の命令セットに対してほぼ同時に動作し、前記複数
のハードウェア・シグネチャ発生手段は、前記複数の命
令セットの中の選択されたものに関連して動作すること
を特徴とする(1)記載のマルチプロセッサ・コンピュ
ータ・システム。
【0044】(11)前記複数のプロセッサによる、前
記選択された命令セットの処理を中断するための処理中
断手段と、前記複数のハードウェア・シグネチャ発生手
段に接続され、前記選択された命令セットの処理が中断
したとき、各ハードウェア・シグネチャ発生手段の現在
の状態を受信する記憶手段とを備えたことを特徴とする
(10)記載のマルチプロセッサ・コンピュータ・シス
テム。
【0045】(12)前記複数のハードウェア・シグネ
チャ発生手段はそれぞれ、少なくとも1つのLFSRを
含むことを特徴とする(11)記載のマルチプロセッサ
・コンピュータ・システム。
【0046】(13)前記複数のシグネチャ発生手段は
それぞれ、前記少なくとも1つのLFSRに接続され、
ハードウェア・シグネチャ収集のために、前記選択され
た命令セットを認識する選択論理回路をさらに備えたこ
とを特徴とする(12)記載のマルチプロセッサ・コン
ピュータ・システム。
【0047】(14)ハードウェア・シグネチャの収集
のために、前記選択された命令セットを認識する選択論
理回路制御回路をさらに備えたことを特徴とする(1
1)記載のマルチプロセッサ・コンピュータ・システ
ム。
【0048】(15)前記ボウティング手段は、前記発
生されたハードウェア・シグネチャのそれぞれを受信す
るように接続された調整プロセッサを備えたことを特徴
とする(1)記載のマルチプロセッサ・コンピュータ・
システム。
【0049】(16)前記命令セットはトランザクショ
ンを含んでいることを特徴とする(1)記載のマルチプ
ロセッサ・コンピュータ・システム。
【0050】(17)複数の処理システムを用いて1つ
の命令セットを処理するフォールト・トレラント処理方
法において、(a)前記複数の処理システムのそれぞれ
により前記命令セットを複製し、かつ処理するステップ
と、(b)前記処理システムのそれぞれから圧縮ハード
ウェア・シグネチャを収集するステップとを含み、前記
圧縮ハードウェア・シグネチャのそれぞれは、前記シス
テムのそれぞれによる前記複製された命令セットの処理
を表し、(c)前記シグネチャ収集ステップ(b)に続
いて、前記複数の処理システムの1つまたは複数におい
て、処理の誤り状態の有る無しを認識するために、前記
収集された圧縮シグネチャにもとづいてボウティングを
行うステップを含むことを特徴とするフォールト・トレ
ラント処理方法。
【0051】(18)前記圧縮ハードウェア・シグネチ
ャ収集ステップ(b)は、前記複数の処理システムのそ
れぞれにおいて、それらによる前記ステップ(a)の前
記複製された命令セットの処理と同時に行うことを特徴
とする(17)記載のフォールト・トレラント処理方
法。
【0052】(19)調整処理システムを設けて前記ボ
ウティング・ステップ(c)を行い、前記方法はさら
に、前記処理ステップ(a),(b)に続いて、前記圧
縮ハードウェア・シグネチャをそれぞれ前記調整処理シ
ステムに渡すステップを含むことを特徴とする(18)
記載のフォールト・トレラント処理方法。
【0053】(20)前記ステップ(b)において収集
した前記ハードウェア・シグネチャを交換して、前記複
数の処理システムのそれぞれが、他の前記複数の処理シ
ステムのそれぞれが発生した圧縮シグネチャを有するよ
うにするステップをさらに含み、前記複数の処理システ
ムの少なくとも1つは前記ボウティング・ステップを行
うことを特徴とする(18)記載のフォールト・トレラ
ント処理方法。
【0054】(21)前記複数の処理システムは3つの
処理システムを有し、前記ステップ(a)は、前記3つ
のプロセシング・システムのそれぞれが、前記命令セッ
トを複製し、処理するステップを含むことを特徴とする
(17)記載のフォールト・トレラント処理方法。
【0055】(22)複数の命令セットが、前記複数の
処理システムを用いたほぼ同時に行う複数の処理に対し
て与えられ、前記命令セットの少なくとも1つは選択さ
れた1つの命令セットを有し、前記収集ステップ(b)
は、前記少なくとも1つの選択された命令セットの処理
だけを用いて、前記処理システムのそれぞれから圧縮ハ
ードウェア・シグネチャを収集するステップを含むこと
を特徴とする(17)記載のフォールト・トレラント処
理方法。
【0056】(23)前記収集ステップ(b)および前
記ボウティング・ステップ(c)は各選択された命令セ
ットに対して独立に行うことを特徴とする(22)記載
のフォールト・トレラント処理方法。
【0057】(24)前記複数のプロセッサによって選
択された命令セットの処理を中断するステップと、前記
選択された命令セットの処理の中断と同時に、収集され
た圧縮ハードウェア・シグネチャのそれぞれの現在の状
態を格納するステップとをさらに含むことを特徴とする
(23)記載のフォールト・トレラント処理方法。
【0058】(25)圧縮ハードウェア・シグネチャを
収集するために、圧縮ハードウェア・シグネチャの処理
にもとづいて、前記複数の命令セットから1つの選択さ
れた命令セットを認識するステップをさらに含むことを
特徴とする(24)記載のフォールト・トレラント処理
方法。
【0059】(26)命令セットおよび入力データのフ
ォールト・トレラント処理のために処理誤りを検出でき
るデータ処理システムにおいて、それぞれが前記命令セ
ットを受け取り、前記入力データにアクセスするように
接続された複数のプロセッサを備え、各プロセッサは少
なくとも、(i)前記命令セットの命令をデコードし、
その結果、制御信号を発生する命令デコーダと、(i
i)前記命令デコーダが発生した前記制御信号の少なく
ともいくつかを受信するように、かつ前記入力データに
アクセスするように接続された算術演算論理ユニット
(ALU)とを有し、前記ALUは前記受信した制御信
号および前記アクセスした入力データに応答して結果と
しての複数のデータ信号を発生し、(iii)圧縮ハー
ドウェア・シグネチャを発生する手段を有し、前記シグ
ネチャは少なくとも一部が、前記ALUが出力する結果
としての複数のデータ信号を圧縮することによって発生
され、前記プロセッサのそれぞれを相互接続する通信手
段と、前記命令セットの処理につづいて、前記通信手段
に収集したハードウェア・シグネチャを送信するよう
に、前記複数のプロセッサのそれぞれに信号を与える手
段と、前記通信手段に接続され、処理誤りの有る無しを
認識するために、前記複数のプロセッサが発生した前記
ハードウェア・シグネチャを受信し、比較するボウティ
ング手段とを備えたことを特徴とするデータ処理システ
ム。
【0060】(27)前記複数のプロセッサは、複数の
マイクロプロセッサから成ることを特徴とする(26)
記載のデータ処理システム。
【0061】(28)前記複数のマイクロプロセッサの
各プロセッサは、1つのクロック信号によって駆動さ
れ、前記クロック信号はほぼ同期していることを特徴と
する(27)記載のデータ処理システム。
【0062】(29)前記複数のマイクロプロセッサの
各プロセッサは1つのクロック信号によって駆動され、
前記複数のプロセッサの少なくともいくつかは異なる、
非同期のクロック信号によって駆動され、前記信号供与
手段は、前記収集したハードウェア・シグネチャを送信
するよう前記プロセッサに信号を与える前に、各プロセ
ッサが前記命令セットの処理を完了するまで待つことに
よって、前記複数のプロセッサによる処理を同期化する
ことを特徴とする(27)記載のデータ処理システム。
【0063】(30)各プロセッサは複数のALUと、
圧縮ハードウェア・シグネチャを発生するための複数の
手段とを有し、前記発生手段はそれぞれ前記ALUの1
つに関連していることを特徴とする(26)記載のデー
タ処理システム。
【0064】(31)各プロセッサは、圧縮ハードウェ
ア・シグネチャを発生するための複数の手段を有し、各
プロセッサの少なくとも1つの前記シグネチャ発生手段
は、前記デコーダが発生した前記制御信号にもとづいて
シグネチャを発生するように前記デコーダに関連してい
ることを特徴とする(26)記載のデータ処理システ
ム。
【0065】(32)各プロセッサの前記シグネチャ発
生手段はLFSRを含むことを特徴とする(26)記載
のデータ処理システム。
【0066】(33)前記シグネチャ発生手段はさら
に、前記命令セットを認識してハードウェア・シグネチ
ャを収集するために前記LFSRに接続された選択論理
回路を含むことを特徴とする(32)記載のデータ処理
システム。
【0067】(34)前記ボウティング手段は、前記発
生されたハードウェア・シグネチャのそれぞれを受信す
るように接続された調整プロセッサから成ることを特徴
とする(26)記載のデータ処理システム。
【0068】(35)前記コンピュータシステムは複数
の命令セットをほぼ同時に処理し、各プロセッサの前記
シグネチャ発生手段は、前記複数の命令セットの中の選
択された1つに関連して動作することを特徴とする(2
6)記載のデータ処理システム。
【0069】(36)前記複数のプロセッサによる選択
された命令セットの処理を中断する処理中断手段と、選
択された命令セットの処理中断時に、各プロセッサのハ
ードウェア・シグネチャ発生手段の現在の状態を受信す
るように前記複数のプロセッサのそれぞれに関連した記
憶手段とをさらに備えたことを特徴とする(35)記載
のデータ処理システム。
【0070】
【発明の効果】以上の説明より分かるように、本発明に
よって多処理システムに対する優れた誤り検出法が与え
られる。上述したフォールト・トレラント・システムで
は、圧縮シグネチャ・コレクションおよびボウティング
処理において、1つの命令セットに対してただ1つのボ
ウティング処理を行うのみで処理の統合性を保証してい
る。従って、必要となる比較処理および通信処理の負担
を、従来技術に比べて大幅に軽減できる。さらに、上述
した弱い結合の非同期マルチプロセッサ・システムで
は、プロセッサはトランザクションを若干異なるタイミ
ングで実行するので、時間に相関する誤り発生の確率を
抑えることができる。具体的には、システムの一点故障
の原因となる共通クロックは採用しない。最後に、命令
セットにもとづく誤り検出により、チップのレベルで誤
り検出を行う場合に比べ、優れた誤り認識効率が得られ
る。
【図面の簡単な説明】
【図1】本発明による分散計算システムの概略ブロック
図である。
【図2】図1の処理ノードの一実施例を示すブロック図
である。
【図3】本発明によるプログラム処理の一実施例の機能
フローチャートである。
【図4】本発明によるプログラム処理の具体例を示す図
である。
【図5】図2の本発明による処理ノードの1つのコンポ
ーネントを示すより詳細なブロック図である。
【図6】図5のCPUによるパイプライン処理の一実施
例を示す機能ブロック図である。
【図7】マルチプログラム・マルチプロセシング環境に
おいて実行される本発明の一実施例の機能フローチャー
トである。
【符号の説明】
10 分散計算システム 12 処理ノード 14 通信ネットワーク 20 主メモリ 22 キャッシュ・メモリ 26 プロセッサ・バス 28 通信アダプタ 30 I/Oコントローラ 32 ディスク記憶装置 70 命令レジスタ 74 命令デコード 76 実行ユニット 78 アドレス発生 80 汎用レジスタ(GPR) 84 選択論理回路 86 選択論理回路 88 選択論理回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キーン・アン・ヒューア アメリカ合衆国 フロリダ州 オヴィード マックコール コート 1012 (72)発明者 ジー−クゥオン・ペイル アメリカ合衆国 ニューヨーク州 フィッ シュキル クロスバイ コート 15

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】命令セットを誤りなく処理するために処理
    の誤りを検出できるマルチプロセッサ・コンピュータ・
    システムにおいて、 複数のプロセッサを備え、前記プロセッサはそれぞれ、
    前記プロセッサの中の他のプロセッサからの前記命令セ
    ットを独立に処理し、 複数のハードウェア・シグネチャ発生手段を備え、各シ
    グネチャ発生手段はそれぞれ、前記プロセッサの1つに
    関連して、前記プロセッサによる前記命令セットの処理
    と同時に、かつその処理にもとづいて、圧縮ハードウェ
    ア・シグネチャを発生し、 前記発生されたハードウェア・シグネチャのそれぞれを
    受信するように接続され、前記シグネチャを誤り状態に
    関して比較し、受信した前記シグネチャの間に所定の比
    較誤りを検出した場合に誤り状態を認識するボウティン
    グ手段を備えたことを特徴とするマルチプロセッサ・コ
    ンピュータ・システム。
  2. 【請求項2】前記複数のプロセッサは、複数のマイクロ
    プロセッサから成ることを特徴とする請求項1記載のマ
    ルチプロセッサ・コンピュータ・システム。
  3. 【請求項3】前記複数のプロセッサは、前記命令セット
    の実質的な並列処理のために、通信ネットワークを通じ
    て並列に接続されていることを特徴とする請求項1記載
    のマルチプロセッサ・コンピュータ・システム。
  4. 【請求項4】前記複数のプロセッサの各プロセッサは、
    1つのクロック信号によって駆動され、前記複数のプロ
    セッサの少なくともいくつかは、異なる、非同期のクロ
    ック信号によって駆動されることを特徴とする請求項1
    記載のマルチプロセッサ・コンピュータ・システム。
  5. 【請求項5】複数の処理システムを用いて1つの命令セ
    ットを処理するフォールト・トレラント処理方法におい
    て、 (a)前記複数の処理システムのそれぞれにより前記命
    令セットを複製し、かつ処理するステップと、 (b)前記処理システムのそれぞれから圧縮ハードウェ
    ア・シグネチャを収集するステップとを含み、前記圧縮
    ハードウェア・シグネチャのそれぞれは、前記システム
    のそれぞれによる前記複製された命令セットの処理を表
    し、 (c)前記シグネチャ収集ステップ(b)に続いて、前
    記複数の処理システムの1つまたは複数において、処理
    の誤り状態の有る無しを認識するために、前記収集され
    た圧縮シグネチャにもとづいてボウティングを行うステ
    ップを含むことを特徴とするフォールト・トレラント処
    理方法。
  6. 【請求項6】前記圧縮ハードウェア・シグネチャ収集ス
    テップ(b)は、前記複数の処理システムのそれぞれに
    おいて、それらによる前記ステップ(a)の前記複製さ
    れた命令セットの処理と同時に行うことを特徴とする請
    求項5記載のフォールト・トレラント処理方法。
  7. 【請求項7】複数の命令セットが、前記複数の処理シス
    テムを用いたほぼ同時に行う複数の処理に対して与えら
    れ、前記命令セットの少なくとも1つは選択された1つ
    の命令セットを有し、前記収集ステップ(b)は、前記
    少なくとも1つの選択された命令セットの処理だけを用
    いて、前記処理システムのそれぞれから圧縮ハードウェ
    ア・シグネチャを収集するステップを含むことを特徴と
    する請求項5記載のフォールト・トレラント処理方法。
  8. 【請求項8】命令セットおよび入力データのフォールト
    ・トレラント処理のために処理誤りを検出できるデータ
    処理システムにおいて、 それぞれが前記命令セットを受け取り、前記入力データ
    にアクセスするように接続された複数のプロセッサを備
    え、 各プロセッサは少なくとも、 (i)前記命令セットの命令をデコードし、その結果、
    制御信号を発生する命令デコーダと、 (ii)前記命令デコーダが発生した前記制御信号の少
    なくともいくつかを受信するように、かつ前記入力デー
    タにアクセスするように接続された算術演算論理ユニッ
    ト(ALU)とを有し、前記ALUは前記受信した制御
    信号および前記アクセスした入力データに応答して結果
    としての複数のデータ信号を発生し、 (iii)圧縮ハードウェア・シグネチャを発生する手
    段を有し、前記シグネチャは少なくとも一部が、前記A
    LUが出力する結果としての複数のデータ信号を圧縮す
    ることによって発生され、 前記プロセッサのそれぞれを相互接続する通信手段と、 前記命令セットの処理につづいて、前記通信手段に収集
    したハードウェア・シグネチャを送信するように、前記
    複数のプロセッサのそれぞれに信号を与える手段と、 前記通信手段に接続され、処理誤りの有る無しを認識す
    るために、前記複数のプロセッサが発生した前記ハード
    ウェア・シグネチャを受信し、比較するボウティング手
    段とを備えたことを特徴とするデータ処理システム。
  9. 【請求項9】前記複数のプロセッサは、複数のマイクロ
    プロセッサから成ることを特徴とする請求項8記載のデ
    ータ処理システム。
  10. 【請求項10】各プロセッサは複数のALUと、圧縮ハ
    ードウェア・シグネチャを発生するための複数の手段と
    を有し、前記発生手段はそれぞれ前記ALUの1つに関
    連していることを特徴とする請求項8記載のデータ処理
    システム。
JP5002610A 1992-03-04 1993-01-11 マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム Expired - Lifetime JP2500038B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84597392A 1992-03-04 1992-03-04
US845973 1992-03-04

Publications (2)

Publication Number Publication Date
JPH0683663A true JPH0683663A (ja) 1994-03-25
JP2500038B2 JP2500038B2 (ja) 1996-05-29

Family

ID=25296581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5002610A Expired - Lifetime JP2500038B2 (ja) 1992-03-04 1993-01-11 マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム

Country Status (2)

Country Link
US (1) US6128755A (ja)
JP (1) JP2500038B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009238056A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法
JP2010218012A (ja) * 2009-03-13 2010-09-30 Nec Corp 圧縮情報を利用した故障検出装置、その方法及びそのプログラム
JP2017005483A (ja) * 2015-06-10 2017-01-05 三菱電機株式会社 データ処理装置、データ処理システム及びデータ処理方法
US10258511B2 (en) 2013-10-25 2019-04-16 Zuiko Corporation Folding device and folding method using same

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539061B1 (en) * 1998-09-16 2003-03-25 Texas Instruments Incorporated Efficient method for decompressing difference coded signals
US6625570B2 (en) * 2000-06-20 2003-09-23 Joseph J. Pierro, Jr. Synchronous detection and remote monitoring and regulating of cell potential for cathodic protection
US6631488B1 (en) * 2000-06-30 2003-10-07 Agilent Technologies, Inc. Configurable error detection and correction engine that has a specialized instruction set tailored for error detection and correction tasks
US7007002B2 (en) 2001-05-31 2006-02-28 Canon Kabushiki Kaisha Signal processing circuit involving local synchronous behavior
US20040136241A1 (en) * 2002-10-31 2004-07-15 Lockheed Martin Corporation Pipeline accelerator for improved computing architecture and related system and method
DE10328059A1 (de) * 2003-06-23 2005-01-13 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung eines verteilten Systems
US7584386B2 (en) * 2004-04-21 2009-09-01 Stmicroelectronics Sa Microprocessor comprising error detection means protected against an attack by error injection
US7809982B2 (en) * 2004-10-01 2010-10-05 Lockheed Martin Corporation Reconfigurable computing machine and related systems and methods
DE102006005817B4 (de) * 2006-02-08 2014-06-26 Infineon Technologies Ag Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102006062703A1 (de) * 2006-02-08 2007-08-30 Infineon Technologies Ag Fehlererkennungsvorrichtung und Verfahren zur Fehlererkennung für einen Befehlsdecoder
US7627795B2 (en) * 2006-07-26 2009-12-01 Freescale Semiconductor, Inc Pipelined data processor with deterministic signature generation
US7823033B2 (en) * 2006-07-26 2010-10-26 Freescale Semiconductor, Inc. Data processing with configurable registers
US7813067B1 (en) 2007-02-14 2010-10-12 Marvell International Ltd. Accumulator for non-return to zero (NRZ) linear feedback shift register (LFSR) in controller for disk drive
DE102007033885A1 (de) * 2007-07-20 2009-01-22 Siemens Ag Verfahren zur transparenten Replikation einer Softwarekomponente eines Softwaresystems
US8200947B1 (en) * 2008-03-24 2012-06-12 Nvidia Corporation Systems and methods for voting among parallel threads
IT1391785B1 (it) * 2008-11-21 2012-01-27 St Microelectronics Srl Sistema elettronico per il rilevamento di un guasto
US8037364B2 (en) * 2009-01-09 2011-10-11 International Business Machines Corporation Forced management module failover by BMC impeachment consensus
US8542247B1 (en) 2009-07-17 2013-09-24 Nvidia Corporation Cull before vertex attribute fetch and vertex lighting
US8564616B1 (en) 2009-07-17 2013-10-22 Nvidia Corporation Cull before vertex attribute fetch and vertex lighting
US8384736B1 (en) 2009-10-14 2013-02-26 Nvidia Corporation Generating clip state for a batch of vertices
US8976195B1 (en) 2009-10-14 2015-03-10 Nvidia Corporation Generating clip state for a batch of vertices
EP2690557B1 (en) * 2011-03-23 2015-05-13 Hitachi, Ltd. Computer system, data processing method, and data processing program
US10140049B2 (en) 2012-02-24 2018-11-27 Missing Link Electronics, Inc. Partitioning systems operating in multiple domains
US10503614B2 (en) * 2017-04-21 2019-12-10 Vmware, Inc. Byzantine agreement using communications having linear complexity

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1353029A (fr) * 1963-01-11 1964-02-21 Electronique & Automatisme Sa Perfectionnements aux systèmes numériques de traitement d'informations codées
US4740895A (en) * 1981-08-24 1988-04-26 Genrad, Inc. Method of and apparatus for external control of computer program flow
JPS60500232A (ja) * 1983-02-09 1985-02-21 インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン 障害がない場合に最適化される、複数プロセッサの合意を得る方法
JPS6054052A (ja) * 1983-09-02 1985-03-28 Nec Corp 処理継続方式
US4649384A (en) * 1983-10-07 1987-03-10 Dialogic Systems Corp. Method and apparatus for fault tolerant serial communication of digital information
US4583222A (en) * 1983-11-07 1986-04-15 Digital Equipment Corporation Method and apparatus for self-testing of floating point accelerator processors
US4751702A (en) * 1986-02-10 1988-06-14 International Business Machines Corporation Improving availability of a restartable staged storage data base system that uses logging facilities
US4807228A (en) * 1987-03-18 1989-02-21 American Telephone And Telegraph Company, At&T Bell Laboratories Method of spare capacity use for fault detection in a multiprocessor system
US4849978A (en) * 1987-07-02 1989-07-18 International Business Machines Corporation Memory unit backup using checksum
US5084816A (en) * 1987-11-25 1992-01-28 Bell Communications Research, Inc. Real time fault tolerant transaction processing system
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5136704A (en) * 1989-06-28 1992-08-04 Motorola, Inc. Redundant microprocessor control system using locks and keys
DE3923432C2 (de) * 1989-07-15 1997-07-17 Bodenseewerk Geraetetech Einrichtung zur Erzeugung von Meßsignalen mit einer Mehrzahl von Sensoren
SE466475B (sv) * 1990-07-10 1992-02-17 Ericsson Telefon Ab L M Saett och anordning foer oevervakning och testning vid en flerplansenhet i en digital tidsvaeljare
US5151981A (en) * 1990-07-13 1992-09-29 International Business Machines Corporation Instruction sampling instrumentation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009238056A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法
JP2010218012A (ja) * 2009-03-13 2010-09-30 Nec Corp 圧縮情報を利用した故障検出装置、その方法及びそのプログラム
US10258511B2 (en) 2013-10-25 2019-04-16 Zuiko Corporation Folding device and folding method using same
JP2017005483A (ja) * 2015-06-10 2017-01-05 三菱電機株式会社 データ処理装置、データ処理システム及びデータ処理方法

Also Published As

Publication number Publication date
JP2500038B2 (ja) 1996-05-29
US6128755A (en) 2000-10-03

Similar Documents

Publication Publication Date Title
JP2500038B2 (ja) マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム
US5317726A (en) Multiple-processor computer system with asynchronous execution of identical code streams
US5384906A (en) Method and apparatus for synchronizing a plurality of processors
US5890003A (en) Interrupts between asynchronously operating CPUs in fault tolerant computer system
US8635492B2 (en) State recovery and lockstep execution restart in a system with multiprocessor pairing
US5193175A (en) Fault-tolerant computer with three independently clocked processors asynchronously executing identical code that are synchronized upon each voted access to two memory modules
US6640313B1 (en) Microprocessor with high-reliability operating mode
Bernick et al. NonStop/spl reg/advanced architecture
US6615366B1 (en) Microprocessor with dual execution core operable in high reliability mode
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
US6625749B1 (en) Firmware mechanism for correcting soft errors
EP2425330B1 (en) Reliable execution using compare and transfer instruction on an smt machine
Siewiorek Fault tolerance in commercial computers
US7627781B2 (en) System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
US20050240806A1 (en) Diagnostic memory dump method in a redundant processor
US8671311B2 (en) Multiprocessor switch with selective pairing
US7366948B2 (en) System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
KR20000005689A (ko) 시간지연이중화기술을구현하는장치및방법
US5473770A (en) Fault-tolerant computer system with hidden local memory refresh
CN111190774A (zh) 一种多核处理器可配置双模冗余结构
Tamir et al. The UCLA mirror processor: A building block for self-checking self-repairing computing nodes
US20060107116A1 (en) System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected
JP3240660B2 (ja) データ処理装置
EP0476262B1 (en) Error handling in a VLSI central processor unit employing a pipelined address and execution module
Tamir Self-checking self-repairing computer nodes using the Mirror Processor