JPH0833874B2 - 複数のプロセッサを同期する装置 - Google Patents
複数のプロセッサを同期する装置Info
- Publication number
- JPH0833874B2 JPH0833874B2 JP63282306A JP28230688A JPH0833874B2 JP H0833874 B2 JPH0833874 B2 JP H0833874B2 JP 63282306 A JP63282306 A JP 63282306A JP 28230688 A JP28230688 A JP 28230688A JP H0833874 B2 JPH0833874 B2 JP H0833874B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- event
- events
- counted
- counting
- 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.)
- Expired - Fee Related
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/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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- 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/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- 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/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1687—Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
-
- 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/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1691—Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- 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/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- 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
- G06F11/185—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 and the voting is itself performed redundantly
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) この発明はデータ処理システムに関し、特にデータの
保全性を保証したり、故障の許容を与えるために複数の
プロセッサを同期する装置に関する。
保全性を保証したり、故障の許容を与えるために複数の
プロセッサを同期する装置に関する。
(従来の技術と課題) マイクロプロセッサの使用が普及するにつれ、データ
の保全性を保証し、またシステム内におけるハードウェ
アやその他の故障の許容を与える必要がますます重要に
なってきた。データの保全性を保証する1つの方法で
は、同じプログラムを実行し、その結果を比較してエラ
ーを検出するため2つのプロセッサを用いる。エラーが
検出されると、適切なエラールーチンが呼び出される。
故障の許容を与える方法は、同じプログラムを実行する
3つ以上のプロセッサを含み、それらの結果の多数決を
用いて1つ以上の誤作動プロセッサを許容する。あるい
は、2対のプロセッサを用意し、一方の対でエラーが検
出されたら、その対が動作不能とされ、他方の対で処理
が接続されるように構成されることもある。上記いずれ
の構成でも、各結果を比較したりまたは票決するため
に、プロセッサが同期されねばならない。
の保全性を保証し、またシステム内におけるハードウェ
アやその他の故障の許容を与える必要がますます重要に
なってきた。データの保全性を保証する1つの方法で
は、同じプログラムを実行し、その結果を比較してエラ
ーを検出するため2つのプロセッサを用いる。エラーが
検出されると、適切なエラールーチンが呼び出される。
故障の許容を与える方法は、同じプログラムを実行する
3つ以上のプロセッサを含み、それらの結果の多数決を
用いて1つ以上の誤作動プロセッサを許容する。あるい
は、2対のプロセッサを用意し、一方の対でエラーが検
出されたら、その対が動作不能とされ、他方の対で処理
が接続されるように構成されることもある。上記いずれ
の構成でも、各結果を比較したりまたは票決するため
に、プロセッサが同期されねばならない。
データの保全性を保証し、故障の許容を与える既知の
システムは、主に次の4つのカテゴリーに分けられる:
1)非故障許容クロックを用いるロックステップシステ
ム:2)故障許容クロックを用いるロックステップシステ
ム:3)バスインタフェース信号を票決するシステム:及
び4)ソフトウェアを通じて同期化及び票決を実施する
システム。故障許容クロックを含まないロックステップ
プロセッサの例は、1984年6月5日付けでロバート・レ
イド(Robert Reid)に発行された米国特許第4,453,215
号に与えられている。この特許は1つの非故障許容クロ
ックを用いたマルチ処理システムを開示しており、誤っ
た比較のエラーを避けるため、ステップロックされた各
プロセッサが同一のバスサイクルのタイミングを持たな
ければならない。つまり、システムクロック自体が、シ
ステム全体の故障に影響を及ぼし得る1つのエレメント
である。さらに、一部のプロセッサは非常に高い周波数
のクロック源を必要とし、各クロック源は一般に、1/2
または1クロック周期内で同期されねばならない。これ
を高周波数のクロックで達成するのは、不可能でないと
しても困難である。さらに、かかるシステムで使えるプ
ロセッサの種類には、ロックステップの厳しい特性のた
め制限がある。一部のプロセッサはプロセッサチップ上
にキャッシュメモリを有し、これらのメモリは製造上の
欠陥のためアクセスできないメモリロケーションを有す
ることがある。これらの欠陥が個別のキャッシュミスと
再試行を生じ、ひいてはプロセッサをステップから脱出
させてしまう。さらに一部のプロセッサでは、内部の状
態全体を一意的に初期設定することができない。
システムは、主に次の4つのカテゴリーに分けられる:
1)非故障許容クロックを用いるロックステップシステ
ム:2)故障許容クロックを用いるロックステップシステ
ム:3)バスインタフェース信号を票決するシステム:及
び4)ソフトウェアを通じて同期化及び票決を実施する
システム。故障許容クロックを含まないロックステップ
プロセッサの例は、1984年6月5日付けでロバート・レ
イド(Robert Reid)に発行された米国特許第4,453,215
号に与えられている。この特許は1つの非故障許容クロ
ックを用いたマルチ処理システムを開示しており、誤っ
た比較のエラーを避けるため、ステップロックされた各
プロセッサが同一のバスサイクルのタイミングを持たな
ければならない。つまり、システムクロック自体が、シ
ステム全体の故障に影響を及ぼし得る1つのエレメント
である。さらに、一部のプロセッサは非常に高い周波数
のクロック源を必要とし、各クロック源は一般に、1/2
または1クロック周期内で同期されねばならない。これ
を高周波数のクロックで達成するのは、不可能でないと
しても困難である。さらに、かかるシステムで使えるプ
ロセッサの種類には、ロックステップの厳しい特性のた
め制限がある。一部のプロセッサはプロセッサチップ上
にキャッシュメモリを有し、これらのメモリは製造上の
欠陥のためアクセスできないメモリロケーションを有す
ることがある。これらの欠陥が個別のキャッシュミスと
再試行を生じ、ひいてはプロセッサをステップから脱出
させてしまう。さらに一部のプロセッサでは、内部の状
態全体を一意的に初期設定することができない。
故障許容クロックを用いるロックステップシステムの
一例は、スミス、ティー・バシル(Smith,T.Basil)の
「高性能の故障許容実時間コンピュータアーキテクチ
ャ」、PROC 16th Annual Symposium on Fault Tolerant
Computing,pp.14−19、1986年7月、に開示されてい
る。このシステムは、故障許容クロックを含まないロッ
クステップシステムにおける問題の一部を、故障許容ク
ロック発生回路を用い複数の低速クロックを発生するこ
とによって軽減する。故障許容クロック発生回路は、プ
ロセッサクロックから独立している。この方式の欠点
は、唯一I/Oクロック速度を除いて各プロセッサが異な
るクロック速度を有し、最も低いI/Oクロックをそれよ
り速いプロセッサに容易に合わせられない点にある。そ
の結果、全てのI/Oが遅いクロックに同期されねばなら
ない。これは、I/O性能を著しく低下せしめる。さら
に、クロック信号の票決はフィードバックを含むアナロ
グシステムを用いてなされるので、故障許容クロックは
正しいことを立証するのが難しく、従ってその演算を検
証するのにプール式を使えない。
一例は、スミス、ティー・バシル(Smith,T.Basil)の
「高性能の故障許容実時間コンピュータアーキテクチ
ャ」、PROC 16th Annual Symposium on Fault Tolerant
Computing,pp.14−19、1986年7月、に開示されてい
る。このシステムは、故障許容クロックを含まないロッ
クステップシステムにおける問題の一部を、故障許容ク
ロック発生回路を用い複数の低速クロックを発生するこ
とによって軽減する。故障許容クロック発生回路は、プ
ロセッサクロックから独立している。この方式の欠点
は、唯一I/Oクロック速度を除いて各プロセッサが異な
るクロック速度を有し、最も低いI/Oクロックをそれよ
り速いプロセッサに容易に合わせられない点にある。そ
の結果、全てのI/Oが遅いクロックに同期されねばなら
ない。これは、I/O性能を著しく低下せしめる。さら
に、クロック信号の票決はフィードバックを含むアナロ
グシステムを用いてなされるので、故障許容クロックは
正しいことを立証するのが難しく、従ってその演算を検
証するのにプール式を使えない。
バスインタフェース信号が票決される同期方式は、デ
ィヴィース、ディー(Davies.D.)とウォーカーリー、
ジェイ(Wakerly,J.)の「冗長システムにおける同期と
整合」、IEEE Transactions Computers,pp.531−539、1
978年6月、及びマックコネル、エス(McConnel,S)と
ジーウィオレク、ディー(Siewiorek,D.)の「同期と票
決」、IEEE Transactions on Computers.pp.161−164、
1981年2月、に示されている。これらの論文は、独立の
クロックから進行し、インタフェース信号の票決を用い
て同期化を行うシステムを示唆している。例えば、複数
のプロセッサが対応する複数のメモリに接続されること
がある。あるプロセッサがそれに対応したメモリをリク
エストすると、該メモリは、それ自身の受信リクエスト
について確認応答する前に、少なくとも1つの他のプロ
セッサから対応メモリへのリクエストを検出するまで待
つ。同様にプロセッサは、少なくとも2つのメモリから
の確認応答が受信されるまで、メモリの確認応答を認識
しない。この方法は故障許容クロックの必要がなく、ま
た(エラーによる再試行、キャッシュヒット率の変化、
非同期ロジックなどの結果としての)「追加の」クロッ
クサイクルを許容できるが、次のような欠点を有する。
例えば、待ちの必要が、多くの速度が重要なバスインタ
フェース信号のタイミングに悪影響を及ぼす。これは、
性能に非常に大きな影響をもたらすことがある。さらに
どの論文も、非請求の外部割り込みを同期化するという
難しい問題に対処していない。各プロセッサが異なる時
点でサンプルを行うと、あるプロセッサは割り込み信号
を検出できるが、他のものは検出できない。
ィヴィース、ディー(Davies.D.)とウォーカーリー、
ジェイ(Wakerly,J.)の「冗長システムにおける同期と
整合」、IEEE Transactions Computers,pp.531−539、1
978年6月、及びマックコネル、エス(McConnel,S)と
ジーウィオレク、ディー(Siewiorek,D.)の「同期と票
決」、IEEE Transactions on Computers.pp.161−164、
1981年2月、に示されている。これらの論文は、独立の
クロックから進行し、インタフェース信号の票決を用い
て同期化を行うシステムを示唆している。例えば、複数
のプロセッサが対応する複数のメモリに接続されること
がある。あるプロセッサがそれに対応したメモリをリク
エストすると、該メモリは、それ自身の受信リクエスト
について確認応答する前に、少なくとも1つの他のプロ
セッサから対応メモリへのリクエストを検出するまで待
つ。同様にプロセッサは、少なくとも2つのメモリから
の確認応答が受信されるまで、メモリの確認応答を認識
しない。この方法は故障許容クロックの必要がなく、ま
た(エラーによる再試行、キャッシュヒット率の変化、
非同期ロジックなどの結果としての)「追加の」クロッ
クサイクルを許容できるが、次のような欠点を有する。
例えば、待ちの必要が、多くの速度が重要なバスインタ
フェース信号のタイミングに悪影響を及ぼす。これは、
性能に非常に大きな影響をもたらすことがある。さらに
どの論文も、非請求の外部割り込みを同期化するという
難しい問題に対処していない。各プロセッサが異なる時
点でサンプルを行うと、あるプロセッサは割り込み信号
を検出できるが、他のものは検出できない。
同期と票決両方がソフトウェアを介して実施されるシ
ステムは、ワインストック、チャールス・ビー(Weinst
ock,Charles B.)の「SIFT:実施における設計」、PROC.
10th Annual Symposium on Fault Tolerant Computing,
pp.75−77、1980年10月、に開示されているソフトウェ
ア実施故障許容(SIFT)、フリソン、エス・ジー(Fris
on,S.G.)とウェンスリー、ジョン・エッチ(Wensly,Jo
hn H.)の「相互作用の一貫性とTMRシステムの設計に対
するその影響」、PROC.12th Annual Symposium on Faul
t Tolerant Computing,pp.228−233、1980年6月、に開
示されているオウガスト・システムズ・シリーズ300、
及びヨネダ、ティー(Yoneda,T)他の「ルーズに同期さ
れたTMRシステム用割り込みハンドラーの実施」、PROC.
15th Annual Symposium on Fault Toleant Computing,p
p.246−251、1985年6月、に開示されている実験システ
ムを含んでいる。これらのシステムは独立のクロックを
用いているので、「追加の」クロックサイクルを許容で
きる。しかし一方これらのシステムは、各プロセッサ間
でメッセージを交換することによって票決と同期化を行
う特別なソフトウェアを必要とする。標準的なシステム
のソフトウェアは使えない。代わりに、全てのプロセッ
サが割り込みに等しく対応するのを保証するため複雑な
ソフトウェアが必要であり、この追加のソフトウェアが
システムの性能を著しく低下させている。
ステムは、ワインストック、チャールス・ビー(Weinst
ock,Charles B.)の「SIFT:実施における設計」、PROC.
10th Annual Symposium on Fault Tolerant Computing,
pp.75−77、1980年10月、に開示されているソフトウェ
ア実施故障許容(SIFT)、フリソン、エス・ジー(Fris
on,S.G.)とウェンスリー、ジョン・エッチ(Wensly,Jo
hn H.)の「相互作用の一貫性とTMRシステムの設計に対
するその影響」、PROC.12th Annual Symposium on Faul
t Tolerant Computing,pp.228−233、1980年6月、に開
示されているオウガスト・システムズ・シリーズ300、
及びヨネダ、ティー(Yoneda,T)他の「ルーズに同期さ
れたTMRシステム用割り込みハンドラーの実施」、PROC.
15th Annual Symposium on Fault Toleant Computing,p
p.246−251、1985年6月、に開示されている実験システ
ムを含んでいる。これらのシステムは独立のクロックを
用いているので、「追加の」クロックサイクルを許容で
きる。しかし一方これらのシステムは、各プロセッサ間
でメッセージを交換することによって票決と同期化を行
う特別なソフトウェアを必要とする。標準的なシステム
のソフトウェアは使えない。代わりに、全てのプロセッ
サが割り込みに等しく対応するのを保証するため複雑な
ソフトウェアが必要であり、この追加のソフトウェアが
システムの性能を著しく低下させている。
(課題を解決するための手段) 本発明は、複数のプロセッサをルーズに同期する装置
に関わる。本発明による装置は、故障許容クロック回路
を必要とせずに、2つ以上のプロセッサを故障を検出す
るつまり故障を許容する形で構成可能とする。各プロセ
ッサは、クロック速度の差あるいは「追加」クロックサ
イクルの発生いずれによるものであれ、同一のアルゴリ
ズムを異なる速度で自由に実行できる。「追加の」クロ
ックサイクルは、エラーによる再試行、キャッシュヒッ
ト率の変化、あるいは非同期ロジックの結果として生じ
ることがあり、これらは、特定のプログラムを実行して
いるときには通常生じないクロックサイクルを表してい
る。外部の割り込みは、各プロセッサが最大の割り込み
待ち時間を考慮に入れて、実行中同じ時点で割り込みに
応答するように同期される。
に関わる。本発明による装置は、故障許容クロック回路
を必要とせずに、2つ以上のプロセッサを故障を検出す
るつまり故障を許容する形で構成可能とする。各プロセ
ッサは、クロック速度の差あるいは「追加」クロックサ
イクルの発生いずれによるものであれ、同一のアルゴリ
ズムを異なる速度で自由に実行できる。「追加の」クロ
ックサイクルは、エラーによる再試行、キャッシュヒッ
ト率の変化、あるいは非同期ロジックの結果として生じ
ることがあり、これらは、特定のプログラムを実行して
いるときには通常生じないクロックサイクルを表してい
る。外部の割り込みは、各プロセッサが最大の割り込み
待ち時間を考慮に入れて、実行中同じ時点で割り込みに
応答するように同期される。
本発明の一実施例では、各プロセッサが独自の独立し
たクロックから進行する。プロセッサは、所定のプロセ
ッサ事象(事象とはイベント=eventのこと、以下同
様)の発生を一方のライン上に指示し、待ち状態を開始
するための信号を別のラインを経て受け取る。プロセッ
サ事象は、各プロセッサ内で使われているコードによっ
て明示的または暗黙的に定義され、各マイクロプロセッ
サの書込動作毎に1つのプロセッサ事象信号を発生する
のが好ましい。各プロセッサは、事象カウンタと称さ
れ、最後にプロセッサが同期された後に指示されたプロ
セッサ事象の数をカウントするカウンタを有する。
たクロックから進行する。プロセッサは、所定のプロセ
ッサ事象(事象とはイベント=eventのこと、以下同
様)の発生を一方のライン上に指示し、待ち状態を開始
するための信号を別のラインを経て受け取る。プロセッ
サ事象は、各プロセッサ内で使われているコードによっ
て明示的または暗黙的に定義され、各マイクロプロセッ
サの書込動作毎に1つのプロセッサ事象信号を発生する
のが好ましい。各プロセッサは、事象カウンタと称さ
れ、最後にプロセッサが同期された後に指示されたプロ
セッサ事象の数をカウントするカウンタを有する。
プロセッサは一般に外部割り込みの発生の都度同期さ
れるが、システム設計者は任意の同期事象を自由に定義
できる。同期を必要とする事象がプロセッサに付設の同
期論理回路によって検出されると、同期論理回路が次の
プロセッサ事象後に待ち信号を発生する。各プロセッサ
に付設の比較回路が、システム内における他の事象カウ
ンタをテストし、対応プロセッサが他のプロセッサより
遅れていないかどうかを判定する。遅れていれば、同期
論理回路は次のプロセッサ事象まで待ち信号を取り除
く。次いで比較回路が、その対応プロセッサがまだ遅れ
ているかどうかを再チェックする。プロセッサは、その
事象カウンタが最も速いプロセッサの事象カウンタと一
致したときに停止される。各事象カウンタが同一値を有
する状態で全てのプロセッサが停止されるまで、上記の
プロセスが続けられる。この時点に達したとき、プロセ
ッサは全てプログラム内の同じ時点で停止されている。
そして、待ち信号が取り除かれ、各プロセッサへの割り
込みラインが肯定され、各プロセッサが再スタートされ
て同期信号を処理する。
れるが、システム設計者は任意の同期事象を自由に定義
できる。同期を必要とする事象がプロセッサに付設の同
期論理回路によって検出されると、同期論理回路が次の
プロセッサ事象後に待ち信号を発生する。各プロセッサ
に付設の比較回路が、システム内における他の事象カウ
ンタをテストし、対応プロセッサが他のプロセッサより
遅れていないかどうかを判定する。遅れていれば、同期
論理回路は次のプロセッサ事象まで待ち信号を取り除
く。次いで比較回路が、その対応プロセッサがまだ遅れ
ているかどうかを再チェックする。プロセッサは、その
事象カウンタが最も速いプロセッサの事象カウンタと一
致したときに停止される。各事象カウンタが同一値を有
する状態で全てのプロセッサが停止されるまで、上記の
プロセスが続けられる。この時点に達したとき、プロセ
ッサは全てプログラム内の同じ時点で停止されている。
そして、待ち信号が取り除かれ、各プロセッサへの割り
込みラインが肯定され、各プロセッサが再スタートされ
て同期信号を処理する。
事象カウンタがその最大値へ達する前に同期事象が発
生しないと、事象カウンタのオーバフローによって再同
期化が強制的になされる。この過程に入ったプロセッサ
は処理を継続する前に、他のプロセッサの事象カウンタ
もオーバフローするのを待つ。一方、同期事象が生じる
場合でも、最悪ケースの割り込み待ち時間を満たすのに
充分なだけ頻繁にプロセッサ事象が発生しない場合のた
め、サイクルカウンタと称され、最後のプロセッサ事象
以後におけるクロックサイクルの数をカウントする別の
カウンタが設けられている。サイクルカウンタは、最大
の割り込み待ち時間を越える前の時点でオーバフローす
るように設定されている。サイクルカウンタがオーバフ
ローすると、内部同期リクエスト信号と割り込み信号を
発生することによって、再同期化が強制的になされる。
プロセッサが割り込みを処理するとき、割り込みルーチ
ン内のコードによって事象が発生される。つまり、内部
発生された同期リクエスト信号が、割り込みルーチンで
発生された事象に対して再同期化を行う。その後、プロ
セッサは未処理の割り込みを処理する。
生しないと、事象カウンタのオーバフローによって再同
期化が強制的になされる。この過程に入ったプロセッサ
は処理を継続する前に、他のプロセッサの事象カウンタ
もオーバフローするのを待つ。一方、同期事象が生じる
場合でも、最悪ケースの割り込み待ち時間を満たすのに
充分なだけ頻繁にプロセッサ事象が発生しない場合のた
め、サイクルカウンタと称され、最後のプロセッサ事象
以後におけるクロックサイクルの数をカウントする別の
カウンタが設けられている。サイクルカウンタは、最大
の割り込み待ち時間を越える前の時点でオーバフローす
るように設定されている。サイクルカウンタがオーバフ
ローすると、内部同期リクエスト信号と割り込み信号を
発生することによって、再同期化が強制的になされる。
プロセッサが割り込みを処理するとき、割り込みルーチ
ン内のコードによって事象が発生される。つまり、内部
発生された同期リクエスト信号が、割り込みルーチンで
発生された事象に対して再同期化を行う。その後、プロ
セッサは未処理の割り込みを処理する。
発明の上記及びその他の利点は、添付の図面を参照し
た発明の以下の詳細な説明を読み進むことによって当業
者には明かとなろう。
た発明の以下の詳細な説明を読み進むことによって当業
者には明かとなろう。
(実施例) 第1図は、本発明によるデータ処理システム4の実施
例の概念ブロック図である。図示のように、データ処理
システム4は、それぞれCPUメモリバス20、CPUメモリバ
ス22及びCPUメモリバス24を介して、メモリ12、メモリ1
4及びメモリ16と交信するCPU6、CPU8及びCPU10を備えて
いる。CPU6、CPU8及びCPU10はそれぞれバス32、34及び3
6を介して出力インタフェース28へデータを送信し、ま
たそれぞれバス44、46及び48を介して入力インタフェー
ス40からデータを受信する。さらにCPU6、CPU8及びCPU1
0は同期バス52を介して相互に、及び出力インタフェー
ス28並びに入力インタフェース40と交信を行う。出力イ
ンタフェース28は、CPU6、CPU8及びCPU10からのデータ
を、インタフェース票決バス58を介して票決回路56に伝
送する。票決回路56は、どのプロセッサからのデータが
I/Oコントローラ60に送られるべきかを判定する。デー
タは票決−コントローラバス62とコントローラー装置バ
ス70をそれぞれ介して、I/Oコントローラ60さらに最終
的にI/O装置66に送られる。またデータは、I/Oコントロ
ーラ60からインタフェースコントローラバス74を介して
入力インタフェース40に送られる。
例の概念ブロック図である。図示のように、データ処理
システム4は、それぞれCPUメモリバス20、CPUメモリバ
ス22及びCPUメモリバス24を介して、メモリ12、メモリ1
4及びメモリ16と交信するCPU6、CPU8及びCPU10を備えて
いる。CPU6、CPU8及びCPU10はそれぞれバス32、34及び3
6を介して出力インタフェース28へデータを送信し、ま
たそれぞれバス44、46及び48を介して入力インタフェー
ス40からデータを受信する。さらにCPU6、CPU8及びCPU1
0は同期バス52を介して相互に、及び出力インタフェー
ス28並びに入力インタフェース40と交信を行う。出力イ
ンタフェース28は、CPU6、CPU8及びCPU10からのデータ
を、インタフェース票決バス58を介して票決回路56に伝
送する。票決回路56は、どのプロセッサからのデータが
I/Oコントローラ60に送られるべきかを判定する。デー
タは票決−コントローラバス62とコントローラー装置バ
ス70をそれぞれ介して、I/Oコントローラ60さらに最終
的にI/O装置66に送られる。またデータは、I/Oコントロ
ーラ60からインタフェースコントローラバス74を介して
入力インタフェース40に送られる。
第2図に示すように、CPU6、CPU8及びCPU10は多数の
命令を実行し、その一部がそれぞれに付属したプロセッ
サ事象である。プロセッサ事象は、各プロセッサ内で使
われているコードによって明示的または暗黙的に定義さ
れている。例えば、各マイクロプロセッサの書込動作が
1つのプロセッサ事象と見なされる。他にプロセッサ事
象となり得るものとして、データ読取、バス転送、また
はプロセッサ内の明示コードによって発生される特定の
信号がある。いずれの場合にせよ、事象は各プロセッサ
内において同じ順序で発生する。しかし事象は、各プロ
セッサ内で同一時点に生じないことがある。例えば、あ
るプロセッサが別のプロセッサ内で実行されているコー
ドの改訂バーションを実行しており、その改訂コードが
異なる時点で事象を発生せしめる追加の命令を含んでい
る場合がある。CPU6とCPU8の事象4に留意のこと。同じ
コードを実行しているプログラム内でも同一時点に事象
が生じないことがある別の理由は、読取の再試行や、実
行がエラールーチンに分岐されるパリティエラーの検出
を必要とするキャッシュミスなど予期しないエラーの発
生である。CPU6とCPU10で生じているエラーに留意のこ
と。
命令を実行し、その一部がそれぞれに付属したプロセッ
サ事象である。プロセッサ事象は、各プロセッサ内で使
われているコードによって明示的または暗黙的に定義さ
れている。例えば、各マイクロプロセッサの書込動作が
1つのプロセッサ事象と見なされる。他にプロセッサ事
象となり得るものとして、データ読取、バス転送、また
はプロセッサ内の明示コードによって発生される特定の
信号がある。いずれの場合にせよ、事象は各プロセッサ
内において同じ順序で発生する。しかし事象は、各プロ
セッサ内で同一時点に生じないことがある。例えば、あ
るプロセッサが別のプロセッサ内で実行されているコー
ドの改訂バーションを実行しており、その改訂コードが
異なる時点で事象を発生せしめる追加の命令を含んでい
る場合がある。CPU6とCPU8の事象4に留意のこと。同じ
コードを実行しているプログラム内でも同一時点に事象
が生じないことがある別の理由は、読取の再試行や、実
行がエラールーチンに分岐されるパリティエラーの検出
を必要とするキャッシュミスなど予期しないエラーの発
生である。CPU6とCPU10で生じているエラーに留意のこ
と。
本発明によるシステムでは複数のプロセッサ事象が同
じ順序で生じるので、各マイクロプロセッサを所定の事
象に同期化することによって、それぞれのプロセッサが
同期させられる。各プロセッサをこのように同期させる
構成が、CPU6について第3図に示してある。CPU8及びCP
U10も同じように構成される。第3図に示すように、CPU
6は独自のクロック84からライン86を介して受け取るク
ロックパルスに基づいて命令を実行するプロセッサ80を
備えている。プロセッサ80はライン90上に内部同期リク
エスト信号(SYNC REQUEST)、ライン91上にクロック出
力信号(CLOCK OUTPUT)、ライン92上に「追加」クロッ
ク信号(EXTRA)、及びライン94上にプロセッサ事象信
号(EVENT)をそれぞれ発生する。「追加の」クロック
サイクルは、エラーによる再試行、キャッシュヒット率
の変化、非同期ロジック、あるいはその他の理由によっ
て生じる。これらは、特定のプログラムを実行している
ときには通常生じないクロックサイクルを表している。
またプロセッサ80は、ライン96を経て待ち時間(WAI
T)、ライン98を経て割り込み信号(INT)をそれぞれ受
け取る。
じ順序で生じるので、各マイクロプロセッサを所定の事
象に同期化することによって、それぞれのプロセッサが
同期させられる。各プロセッサをこのように同期させる
構成が、CPU6について第3図に示してある。CPU8及びCP
U10も同じように構成される。第3図に示すように、CPU
6は独自のクロック84からライン86を介して受け取るク
ロックパルスに基づいて命令を実行するプロセッサ80を
備えている。プロセッサ80はライン90上に内部同期リク
エスト信号(SYNC REQUEST)、ライン91上にクロック出
力信号(CLOCK OUTPUT)、ライン92上に「追加」クロッ
ク信号(EXTRA)、及びライン94上にプロセッサ事象信
号(EVENT)をそれぞれ発生する。「追加の」クロック
サイクルは、エラーによる再試行、キャッシュヒット率
の変化、非同期ロジック、あるいはその他の理由によっ
て生じる。これらは、特定のプログラムを実行している
ときには通常生じないクロックサイクルを表している。
またプロセッサ80は、ライン96を経て待ち時間(WAI
T)、ライン98を経て割り込み信号(INT)をそれぞれ受
け取る。
CPU6はさらに、クロックサイクルをカウントするサイ
クルカウンタ100、プロセッサ事象をカウントする事象
カウンタ102、事象カウンタ102の値をシステム内の他の
事象カウンタの値と比較する比較回路106、及びCPU6の
同期を制御する同期論理回路110を含む。サイクルカウ
ンタ100はライン91に接続され、最後のプロセッサ事象
以後に発生したクロックサイクルの数をカウントする。
また、サイクルカウンタ100はインバータ114を介してラ
イン92に接続され、追加のクロックサイクルの発生時に
クロックサイクルのカウントを禁止する。この理由につ
いては、後で論じる。サイクルカウンタ100はライン94
にも接続され、各プロセッサの事象発生に応じてリセッ
トされる。サイクルカウンタ100はオーバフローする毎
に、割り込み信号をORゲート122に接続されたライン118
上に発生する。ORゲート122の出力がライン98に接続さ
れている。ORゲート122は概念的なORゲートであること
が理解されよう。実際の割り込み処理は、周知の技術を
用いて行われる。
クルカウンタ100、プロセッサ事象をカウントする事象
カウンタ102、事象カウンタ102の値をシステム内の他の
事象カウンタの値と比較する比較回路106、及びCPU6の
同期を制御する同期論理回路110を含む。サイクルカウ
ンタ100はライン91に接続され、最後のプロセッサ事象
以後に発生したクロックサイクルの数をカウントする。
また、サイクルカウンタ100はインバータ114を介してラ
イン92に接続され、追加のクロックサイクルの発生時に
クロックサイクルのカウントを禁止する。この理由につ
いては、後で論じる。サイクルカウンタ100はライン94
にも接続され、各プロセッサの事象発生に応じてリセッ
トされる。サイクルカウンタ100はオーバフローする毎
に、割り込み信号をORゲート122に接続されたライン118
上に発生する。ORゲート122の出力がライン98に接続さ
れている。ORゲート122は概念的なORゲートであること
が理解されよう。実際の割り込み処理は、周知の技術を
用いて行われる。
事象カウンタ102はライン94に接続され、プロセッサ8
0によって検出された事象をカウントする。サイクルカ
ウンタ100と同様、事象カウンタ102はオーバフローする
毎に、ライン126を経て割り込み信号をORゲート122に発
生する。事象カウンタ102の値はライン128を介して比較
回路106に、またライン130を介して同期バス52に送られ
る。比較回路106は、事象カウンタ102でカウントされた
事象の数をライン130を介して受け取ると共に、システ
ム内の他のプロセッサ用の事象カウンタによってカウン
トされた事象の数を同期バス52から受け取る。比較回路
106は、事象カウンタ102からの値とシステム内の他の事
象カウンタからの値との関係を示す信号を、ライン134
を経て同期論理回路110に発生する。
0によって検出された事象をカウントする。サイクルカ
ウンタ100と同様、事象カウンタ102はオーバフローする
毎に、ライン126を経て割り込み信号をORゲート122に発
生する。事象カウンタ102の値はライン128を介して比較
回路106に、またライン130を介して同期バス52に送られ
る。比較回路106は、事象カウンタ102でカウントされた
事象の数をライン130を介して受け取ると共に、システ
ム内の他のプロセッサ用の事象カウンタによってカウン
トされた事象の数を同期バス52から受け取る。比較回路
106は、事象カウンタ102からの値とシステム内の他の事
象カウンタからの値との関係を示す信号を、ライン134
を経て同期論理回路110に発生する。
同期論理回路110は、ライン94上に指示された事象に
応じて、ライン96に対し待ち信号を送出または除去する
ことによって、プロセッサ80の動作を制御する。各プロ
セッサが同期されたとき、同期論理回路110がライン138
上に同期化外部割り込み信号を発生する。
応じて、ライン96に対し待ち信号を送出または除去する
ことによって、プロセッサ80の動作を制御する。各プロ
セッサが同期されたとき、同期論理回路110がライン138
上に同期化外部割り込み信号を発生する。
本システムの動作は、第4A〜4C及び5図を参照するこ
とによって理解されよう。
とによって理解されよう。
第4A図は、同期要求(外部割り込みなど)がCPU6、8
及び10によって受け取られるが、CPU6、8及び10がコー
ドの異なる部分をそれぞれ実行している状況を示してい
る。この場合、CPU6は、時点150で事象4が指示される
までコードを実行する。事象4が検出されると、同期論
理回路110によってCPU6は待ち状態に入る。同じく、CPU
8は時点152で事象5が検出されるまで実行を継続し、そ
の時点から待ち状態に入る。CPU10は時点154で事象6が
検出されるまでコードを実行し、その時点から待ち状態
に入る。CPU6でカウントされた事象の数がCPU10でカウ
ントされた事象の数より小さいので、CPU6は時点156で
命令の実行を再開し、時点158で事象5が検出されるま
で継続してから再び待ち状態に入る。CPU6がCPU10より
まだ遅れていることが確認されると、時点160で命令の
実行が再開され、時点160で事象5が検出されるまで継
続してから再び待ち状態に入る。CPU8も同様の処理シー
ケンスをたどる。つまり、CPU8でカウントされた事象の
数が3つのプロセッサのうちいずれかでカウントされた
事象の最大数より小さいことが確認されると、CPU8は時
点164で命令の実行を再開し、時点166で次の事象が検出
されるまで継続してから待ち状態に入る、等々を行う。
同期リクエストを受け取る前までにCPU10が最も多い事
象をカウントしていたので、各CPU6、8及び10の事象カ
ウンタが等しくなるまでCPU10は待ち状態に留まってい
る。各事象カウンタが等しくなると、それぞれのプロセ
ッサに付設の同期論理回路110がライン138上に同期化外
部割り込み信号を発生し、ライン96上の待ち信号を解除
し、各プロセッサ毎の実行が共通の時点170で再開す
る。
及び10によって受け取られるが、CPU6、8及び10がコー
ドの異なる部分をそれぞれ実行している状況を示してい
る。この場合、CPU6は、時点150で事象4が指示される
までコードを実行する。事象4が検出されると、同期論
理回路110によってCPU6は待ち状態に入る。同じく、CPU
8は時点152で事象5が検出されるまで実行を継続し、そ
の時点から待ち状態に入る。CPU10は時点154で事象6が
検出されるまでコードを実行し、その時点から待ち状態
に入る。CPU6でカウントされた事象の数がCPU10でカウ
ントされた事象の数より小さいので、CPU6は時点156で
命令の実行を再開し、時点158で事象5が検出されるま
で継続してから再び待ち状態に入る。CPU6がCPU10より
まだ遅れていることが確認されると、時点160で命令の
実行が再開され、時点160で事象5が検出されるまで継
続してから再び待ち状態に入る。CPU8も同様の処理シー
ケンスをたどる。つまり、CPU8でカウントされた事象の
数が3つのプロセッサのうちいずれかでカウントされた
事象の最大数より小さいことが確認されると、CPU8は時
点164で命令の実行を再開し、時点166で次の事象が検出
されるまで継続してから待ち状態に入る、等々を行う。
同期リクエストを受け取る前までにCPU10が最も多い事
象をカウントしていたので、各CPU6、8及び10の事象カ
ウンタが等しくなるまでCPU10は待ち状態に留まってい
る。各事象カウンタが等しくなると、それぞれのプロセ
ッサに付設の同期論理回路110がライン138上に同期化外
部割り込み信号を発生し、ライン96上の待ち信号を解除
し、各プロセッサ毎の実行が共通の時点170で再開す
る。
第4B図は、事象カウンタのオーバフローの結果として
CPU6、8及び10が同期化される処理シーケンスを示して
いる。図示のように、CPU6はコードを実行し、時点200
で事象が発生する。コードの実行は、CPU6の事象カウン
タが時点204でオーバフローするまで続く。時点204で、
CPU6の事象カウンタ102が割り込み信号をライン126上に
発生し、CPU6は待ち状態に入る。CPU8と10についても、
上記と同じ事象及び事象カウンタのオーバフローのシー
ケンスが、時点208、210と時点214、218でそれぞれ発生
する。各CPU6、8及び10が待ち状態にあることが確認さ
れると、各プロセッサの同期論理回路110がライン96か
ら信号を取り除き、コードの実行が共通の時点224で再
開される。
CPU6、8及び10が同期化される処理シーケンスを示して
いる。図示のように、CPU6はコードを実行し、時点200
で事象が発生する。コードの実行は、CPU6の事象カウン
タが時点204でオーバフローするまで続く。時点204で、
CPU6の事象カウンタ102が割り込み信号をライン126上に
発生し、CPU6は待ち状態に入る。CPU8と10についても、
上記と同じ事象及び事象カウンタのオーバフローのシー
ケンスが、時点208、210と時点214、218でそれぞれ発生
する。各CPU6、8及び10が待ち状態にあることが確認さ
れると、各プロセッサの同期論理回路110がライン96か
ら信号を取り除き、コードの実行が共通の時点224で再
開される。
第4C図は、サイクルカウンタのオーバフローの結果と
して同期化が生じる場合を示している。図示のように、
CPU6は時点230で事象7を検出し、コードの実行は、そ
のサイクルカウンタ100が時点234でオーバフローするま
で、2**(サイクルカウンタ)クロックサイクルの間継
続する。そこで、サイクルカウンタ100が割り込み信号
をライン118上に発生し、CPU6は待ち状態に入る。同じ
く、CPU8は時点238で事象7を検出し、そのサイクルカ
ウンタが時点242でオーバフローするまでコードの実行
を継続した後待ち状態に入る。さらに、CPU10は時点246
で事象7を検出し、そのサイクルカウンタ100が時点250
でオーバフローするまでコードの実行を継続した後待ち
状態に入る。各プロセッサ待ち状態にあることが確認さ
れると、同期論理回路110がライン96から信号を取り除
き、コードの実行が共通の時点254で再開される。
して同期化が生じる場合を示している。図示のように、
CPU6は時点230で事象7を検出し、コードの実行は、そ
のサイクルカウンタ100が時点234でオーバフローするま
で、2**(サイクルカウンタ)クロックサイクルの間継
続する。そこで、サイクルカウンタ100が割り込み信号
をライン118上に発生し、CPU6は待ち状態に入る。同じ
く、CPU8は時点238で事象7を検出し、そのサイクルカ
ウンタが時点242でオーバフローするまでコードの実行
を継続した後待ち状態に入る。さらに、CPU10は時点246
で事象7を検出し、そのサイクルカウンタ100が時点250
でオーバフローするまでコードの実行を継続した後待ち
状態に入る。各プロセッサ待ち状態にあることが確認さ
れると、同期論理回路110がライン96から信号を取り除
き、コードの実行が共通の時点254で再開される。
第5図は、各CPU6、8及び10毎の処理シーケンスを示
している。図示のように、各プロセッサがステップ300
で、命令実行のためクロック整合される。現クロックサ
イクルが追加のクロックサイクルであることがステップ
304で確認されると、サイクルカウンタ100の動作がステ
ップ308で禁止され、処理は再びステップ300から再開さ
れる。現クロックサイクルが追加のクロックサイクルで
ないことがステップ304で確認されると、サイクルカウ
ンタ100がステップ312でインクレメントされる。その後
ステップ316で、サイクルカウンタ100がオーバフローし
たかどうかが確認される。オーバフローしていると、サ
イクルカウンタ100がステップ320でそれぞれのプロセッ
サに割り込みを生じ、ステップ324で同期リクエストを
発生する。サイクルカウンタ100から発生された割り込
みに応じて、プロセッサはステップ328で事象を発生し
た後、(ステップ324で発生された同期リクエスト信号
の結果として)ステップ332で待ち状態に入る。
している。図示のように、各プロセッサがステップ300
で、命令実行のためクロック整合される。現クロックサ
イクルが追加のクロックサイクルであることがステップ
304で確認されると、サイクルカウンタ100の動作がステ
ップ308で禁止され、処理は再びステップ300から再開さ
れる。現クロックサイクルが追加のクロックサイクルで
ないことがステップ304で確認されると、サイクルカウ
ンタ100がステップ312でインクレメントされる。その後
ステップ316で、サイクルカウンタ100がオーバフローし
たかどうかが確認される。オーバフローしていると、サ
イクルカウンタ100がステップ320でそれぞれのプロセッ
サに割り込みを生じ、ステップ324で同期リクエストを
発生する。サイクルカウンタ100から発生された割り込
みに応じて、プロセッサはステップ328で事象を発生し
た後、(ステップ324で発生された同期リクエスト信号
の結果として)ステップ332で待ち状態に入る。
サイクルカウンタのオーバフローの場合には、最後の
プロセッサ事象から正確に2**(サイクルカウンタ)ク
ロックサイクル後に、全てのプロセッサが割り込みコー
ドでのプロセッサ事象に達する。サイクルカウンタがオ
ーバフローする前の2**(サイクルカウンタ)クロック
サイクル中の追加のクロックサイクルが生じない限り、
各プロセッサは同期されている。追加のクロックサイク
ルが生じると、プロセッサは異なる時点で停止して不整
合を生じ、割り込みに対して別々に応答する結果、プロ
セッサまたはシステムの故障をもたらすことがある。追
加のクロックサイクル中に各サイクルカウンタを動作不
能にするのはそのためである。
プロセッサ事象から正確に2**(サイクルカウンタ)ク
ロックサイクル後に、全てのプロセッサが割り込みコー
ドでのプロセッサ事象に達する。サイクルカウンタがオ
ーバフローする前の2**(サイクルカウンタ)クロック
サイクル中の追加のクロックサイクルが生じない限り、
各プロセッサは同期されている。追加のクロックサイク
ルが生じると、プロセッサは異なる時点で停止して不整
合を生じ、割り込みに対して別々に応答する結果、プロ
セッサまたはシステムの故障をもたらすことがある。追
加のクロックサイクル中に各サイクルカウンタを動作不
能にするのはそのためである。
サイクルカウンタ100がオーバフローしなかったこと
がステップ316で確認されると、事象が生じたかどうか
がステップ340で確認される。生じないと、処理はステ
ップ300に戻る。事象が生じると、事象カウンタ102がス
テップ344でインクレメントされる。その後ステップ348
で、事象カウンタ102がオーバフローしたかどうかが確
かめられる。オーバフローしていると、プロセッサがス
テップ32で割り込まれ、サイクルカウンタのオーバフロ
ーの場合と同じく、プロセッサがステップ332で停止さ
れるまで処理が継続する。事象カウンタ102がオーバフ
ローしていないことがステップ348で確認されると、同
期リクエストが要求されているかどうかがステップ352
で確かめられる。要求されていれば、プロセッサはステ
ップ332で停止され;さもなければ、コードの実行がス
テップ300から再び続けられる。
がステップ316で確認されると、事象が生じたかどうか
がステップ340で確認される。生じないと、処理はステ
ップ300に戻る。事象が生じると、事象カウンタ102がス
テップ344でインクレメントされる。その後ステップ348
で、事象カウンタ102がオーバフローしたかどうかが確
かめられる。オーバフローしていると、プロセッサがス
テップ32で割り込まれ、サイクルカウンタのオーバフロ
ーの場合と同じく、プロセッサがステップ332で停止さ
れるまで処理が継続する。事象カウンタ102がオーバフ
ローしていないことがステップ348で確認されると、同
期リクエストが要求されているかどうかがステップ352
で確かめられる。要求されていれば、プロセッサはステ
ップ332で停止され;さもなければ、コードの実行がス
テップ300から再び続けられる。
プロセッサがステップ332で停止した後、全てのプロ
セッサが停止しているかどうかがステップ360で確かめ
られる。停止していないと、プロセッサの同期用に許容
された最大の時間量が越えられたかどうかがステップ36
4で確かめられる。この時間切れは、例えばプロセッサ
の故障時に発生する。最大の時間が経過すると、そのプ
ロセッサがステップ368で票決から除外される、すなわ
ち比較プロセッサで無視される。いずれにせよステップ
360で、正しく機能しているプロセッサ間での比較が続
けられる。全てのプロセッサが停止すると、それらのカ
ウンタ値がステップ372で比較される。特定プロセッサ
のカウンタ値が別のプロセッサより大きいことが確認さ
れた場合、大きいカウンタ値を有する1つまたはそれよ
り多いプロセッサは待ち状態に留まり、それらについて
の処理はステップ360から継続される。一方、特定プロ
セッサのカウンタ値が最大のカウント値より小さいと、
その処理はステップ300に戻って実行が続けられ、次の
事象が検出され、プロセッサが停止し、各カウンタ値が
再び比較される。全てのカウンタ値が等しいことがステ
ップ372で確認されると、待ち信号が各プロセッサから
解除され、各プロセッサはステップ376で再スタートさ
れ、同期リクエストに応じた処理を果たす。
セッサが停止しているかどうかがステップ360で確かめ
られる。停止していないと、プロセッサの同期用に許容
された最大の時間量が越えられたかどうかがステップ36
4で確かめられる。この時間切れは、例えばプロセッサ
の故障時に発生する。最大の時間が経過すると、そのプ
ロセッサがステップ368で票決から除外される、すなわ
ち比較プロセッサで無視される。いずれにせよステップ
360で、正しく機能しているプロセッサ間での比較が続
けられる。全てのプロセッサが停止すると、それらのカ
ウンタ値がステップ372で比較される。特定プロセッサ
のカウンタ値が別のプロセッサより大きいことが確認さ
れた場合、大きいカウンタ値を有する1つまたはそれよ
り多いプロセッサは待ち状態に留まり、それらについて
の処理はステップ360から継続される。一方、特定プロ
セッサのカウンタ値が最大のカウント値より小さいと、
その処理はステップ300に戻って実行が続けられ、次の
事象が検出され、プロセッサが停止し、各カウンタ値が
再び比較される。全てのカウンタ値が等しいことがステ
ップ372で確認されると、待ち信号が各プロセッサから
解除され、各プロセッサはステップ376で再スタートさ
れ、同期リクエストに応じた処理を果たす。
以上、本発明の好ましい実施例を詳しく説明したが、
各種の変更例を用いることもできる。例えば、同期論理
回路110は各チップに接続された単一回路に集積しても
よく、またシステムは任意の数のプロセッサに対して使
用可能である。
各種の変更例を用いることもできる。例えば、同期論理
回路110は各チップに接続された単一回路に集積しても
よく、またシステムは任意の数のプロセッサに対して使
用可能である。
本発明の実施の態様は以下の通りである。
(1)複数のプロセッサを同期する装置において: 対応するプロセッサ内における所定事象の発生を指示
する事象指示手段; 前記事象指示手段に接続され、各プロセッサ毎に指示
される事象の数をカウントする事象カウント手段; 前記事象カウント手段と各プロセッサに接続され、当
該プロセッサについてカウントされた事象の数が別のプ
ロセッサについてカウントされた事象の数より大きいと
き、当該プロセッサの処理を中断する中断手段;を備え
た装置。
する事象指示手段; 前記事象指示手段に接続され、各プロセッサ毎に指示
される事象の数をカウントする事象カウント手段; 前記事象カウント手段と各プロセッサに接続され、当
該プロセッサについてカウントされた事象の数が別のプ
ロセッサについてカウントされた事象の数より大きいと
き、当該プロセッサの処理を中断する中断手段;を備え
た装置。
(2)前記中断手段に接続され、同期リクエスト信号を
受け取る同期リクエスト手段をさらに備え、当該プロセ
ッサについてカウントされた事象の数が別のプロセッサ
についてカウントされた事象の数以上のとき、前記中断
手段が同期リクエスト信号に応じて当該プロセッサの処
理を中断する前記1項記載の装置。
受け取る同期リクエスト手段をさらに備え、当該プロセ
ッサについてカウントされた事象の数が別のプロセッサ
についてカウントされた事象の数以上のとき、前記中断
手段が同期リクエスト信号に応じて当該プロセッサの処
理を中断する前記1項記載の装置。
(3)前記中断手段と各プロセッサに接続され、各プロ
セッサについてカウントされた事象の数が等しいとき、
中断されているプロセッサを再スタートさせる再スター
ト手段をさらに備えた前記2項記載の装置。
セッサについてカウントされた事象の数が等しいとき、
中断されているプロセッサを再スタートさせる再スター
ト手段をさらに備えた前記2項記載の装置。
(4)当該プロセッサについてカウントされた事象の数
が中断されているプロセッサについてカウントされた事
象の数以上のとき、前記中断手段が当該プロセッサの処
理を中断する前記3項記載の装置。
が中断されているプロセッサについてカウントされた事
象の数以上のとき、前記中断手段が当該プロセッサの処
理を中断する前記3項記載の装置。
(5)複数のプロセッサを同期する装置において、各プ
ロセッサ毎に: 当該プロセッサ内における所定事象の発生を指示する
事象指示手段; 前記事象指示手段に接続され、指示される事象の数を
カウントする事象カウント手段; 各プロセッサ毎に前記事象指示手段から信号を受け取
るように接続され、当該プロセッサについてカウントさ
れた事象の数が別のプロセッサについてカウントされた
事象の数より大きいときに信号を与える比較手段; 同期リクエスト信号を受け取る同期リクエスト入力手
段;及び 同期リクエスト入力手段と事象カウンタに接続され、
当該プロセッサについてカウントされた事象の数が別の
プロセッサについてカウントされた事象の数より大きい
とき、同期リクエスト信号に応じてプロセッサの処理を
中断する同期手段;を備えた装置。
ロセッサ毎に: 当該プロセッサ内における所定事象の発生を指示する
事象指示手段; 前記事象指示手段に接続され、指示される事象の数を
カウントする事象カウント手段; 各プロセッサ毎に前記事象指示手段から信号を受け取
るように接続され、当該プロセッサについてカウントさ
れた事象の数が別のプロセッサについてカウントされた
事象の数より大きいときに信号を与える比較手段; 同期リクエスト信号を受け取る同期リクエスト入力手
段;及び 同期リクエスト入力手段と事象カウンタに接続され、
当該プロセッサについてカウントされた事象の数が別の
プロセッサについてカウントされた事象の数より大きい
とき、同期リクエスト信号に応じてプロセッサの処理を
中断する同期手段;を備えた装置。
(6)当該プロセッサについてカウントされた事象の数
が中断されているプロセッサについてカウントされた事
象の数以上のとき、前記同期手段が当該プロセッサを中
断する前記5項記載の装置。
が中断されているプロセッサについてカウントされた事
象の数以上のとき、前記同期手段が当該プロセッサを中
断する前記5項記載の装置。
(7)各プロセッサについてカウントされた事象の数が
等しいとき、前記同期手段がプロセッサに再スタート信
号を与える前記6項記載の装置。
等しいとき、前記同期手段がプロセッサに再スタート信
号を与える前記6項記載の装置。
(8)カウントされた事象の数が所定値に等しいとき同
期リクエスト信号をプロセッサに与える手段を、前記事
象カウント手段がさらに備えた前記7項記載の装置。
期リクエスト信号をプロセッサに与える手段を、前記事
象カウント手段がさらに備えた前記7項記載の装置。
(9)事象後に発生するクロックサイクルの数をカウン
トするサイクルカウンタさらに備えた前記8項記載の装
置。
トするサイクルカウンタさらに備えた前記8項記載の装
置。
(10)前記事象検出手段とサイクルカウンタに接続さ
れ、事象が検出されたとき、サイクルカウンタを所定の
値にセットするリセット手段をさらに備えた前記9項記
載の装置。
れ、事象が検出されたとき、サイクルカウンタを所定の
値にセットするリセット手段をさらに備えた前記9項記
載の装置。
(11)カウントされたクロックサイクルの数が所定値に
等しいとき、同期リクエスト信号をプロセッサに与える
手段をさらに備えた前記9項記載の装置。
等しいとき、同期リクエスト信号をプロセッサに与える
手段をさらに備えた前記9項記載の装置。
(12)プロセッサがプログラムを実行するのに追加のク
ロックサイクルを用いているときを指示する追加クロッ
ク指示手段をさらに備えた前記11項記載の装置。
ロックサイクルを用いているときを指示する追加クロッ
ク指示手段をさらに備えた前記11項記載の装置。
(13)前記追加クロック指示手段に接続され、プロセッ
サがプログラムを実行するのに追加のクロックサイクル
を用いているときクロックサイクルのカウントを禁止す
る動作不能手段を、前記サイクルカウンタがさらに備え
た前記11項記載の装置。
サがプログラムを実行するのに追加のクロックサイクル
を用いているときクロックサイクルのカウントを禁止す
る動作不能手段を、前記サイクルカウンタがさらに備え
た前記11項記載の装置。
(14)各プロセッサが内部で定義され、各プロセッサ内
で同じ順序で発生する複数の事象を有するプログラムを
実行するマルチプロセッサシステムにおいて、各プロセ
ッサを他のプロセッサと同期させる方法で、各プロセッ
サ毎に: 所定事象の発生を指示するステップ; 指示された事象の数をカウントするステップ; 同期リクエスト信号を受け取るステップ; 次の事象が検出されたとき、プロセッサの処理を中断
するステップ; カウントされた事象の数を、他のプロセッサでカウン
トされた事象の数と比較するステップ; 当該プロセッサについてカウントされた事象の数が別
のプロセッサについてカウントされた事象の数より小さ
いとき、処理を継続するステップ; カウントされた事象の数がいずれかのプロセッサでカ
ウントされた事象の最大数に等しいとき、処理を中断す
るステップ;及び 各プロセッサについてカウントされた事象の数が等し
いとき、処理を継続するステップ;を含む方法。
で同じ順序で発生する複数の事象を有するプログラムを
実行するマルチプロセッサシステムにおいて、各プロセ
ッサを他のプロセッサと同期させる方法で、各プロセッ
サ毎に: 所定事象の発生を指示するステップ; 指示された事象の数をカウントするステップ; 同期リクエスト信号を受け取るステップ; 次の事象が検出されたとき、プロセッサの処理を中断
するステップ; カウントされた事象の数を、他のプロセッサでカウン
トされた事象の数と比較するステップ; 当該プロセッサについてカウントされた事象の数が別
のプロセッサについてカウントされた事象の数より小さ
いとき、処理を継続するステップ; カウントされた事象の数がいずれかのプロセッサでカ
ウントされた事象の最大数に等しいとき、処理を中断す
るステップ;及び 各プロセッサについてカウントされた事象の数が等し
いとき、処理を継続するステップ;を含む方法。
(15)事象の検出後に発生するクロックサイクルの数を
カウントするステップ; クロックサイクルの数が所定値に等しくなった時点を
検出するステップ; 割り込み信号を発生するステップ; 同期リクエスト信号を発生するステップ;及び 前記割り込み信号に応じて事象を発生するステップ;
をさらに含む前記14項記載の方法。
カウントするステップ; クロックサイクルの数が所定値に等しくなった時点を
検出するステップ; 割り込み信号を発生するステップ; 同期リクエスト信号を発生するステップ;及び 前記割り込み信号に応じて事象を発生するステップ;
をさらに含む前記14項記載の方法。
(16)追加クロックサイクルの発生を検出するステッ
プ:及び 追加クロックサイクルの間クロックサイクルのカウン
トを禁止するステップ;をさらに含む前記15項記載の方
法。
プ:及び 追加クロックサイクルの間クロックサイクルのカウン
トを禁止するステップ;をさらに含む前記15項記載の方
法。
第1図は本発明によるデータ処理システムの実施例の概
念ブロック図、第2図は第1図に示したデータ処理シス
テムの処理シーケンスの図、第3図は第1図に示したCP
Uの実施例の概念ブロック図、第4A〜4C図は本発明によ
るプロセッサ同期手順を示す図、及び第5図は本発明に
よるプロセッサ同期を示すフローチャートである。 符号の説明 6,8,10;80……プロセッサ、90……同期リクエスト信号
ライン、92……追加クロック指示ライン、94……事象指
示(リセット)ライン、96……待ち/再スタート信号ラ
イン、100……サイクルカウンタ、102……事象カウント
手段、106……比較手段、110……同期手段(同期論理回
路)。
念ブロック図、第2図は第1図に示したデータ処理シス
テムの処理シーケンスの図、第3図は第1図に示したCP
Uの実施例の概念ブロック図、第4A〜4C図は本発明によ
るプロセッサ同期手順を示す図、及び第5図は本発明に
よるプロセッサ同期を示すフローチャートである。 符号の説明 6,8,10;80……プロセッサ、90……同期リクエスト信号
ライン、92……追加クロック指示ライン、94……事象指
示(リセット)ライン、96……待ち/再スタート信号ラ
イン、100……サイクルカウンタ、102……事象カウント
手段、106……比較手段、110……同期手段(同期論理回
路)。
Claims (5)
- 【請求項1】複数のプロセッサを同期する装置におい
て、前記各プロセッサが、同じ命令手順からなるプログ
ラムを夫々独立のクロックに従って実行し、該命令の実
行に関連して所定事象を発生するものであり、 各プロセッサ毎に、該プロセッサ内における所定事象の
発生を夫々指示する事象指示手段と、 この事象指示手段に接続され、各プロセッサ毎に指示さ
れる事象の数をカウントする事象カウント手段と、 同期リクエスト信号を受け取る同期リクエスト入力手段
と、 前記事象カウント手段と同期リクエスト入力手段に接続
され、或るプロセッサについてカウントされた事象の数
が別のプロセッサについてカウントされた事象の数より
大きいとき、前記同期リクエスト信号に応答して、当該
或るプロセッサの処理を中断する同期手段と、 各プロセッサ毎に、事象後に発生するクロックサイクル
の数をカウントするサイクルカウント手段と、 前記サイクルカウント手段に対応して設けられ、カウン
トされたクロックサイクル数が所定の値に等しいとき、
前記同期リクエスト入力手段に対して同期リクエスト信
号を与える手段と、 各プロセッサ毎に、当該プロセッサがプログラムを実行
するために特別の追加クロックサイクルを用いていると
き、当該プロセッサについての前記サイクルカウント手
段におけるクロックサイクルカウントを禁止する手段と を備えたことを特徴とする複数のプロセッサを同期する
装置。 - 【請求項2】複数のプロセッサを同期する装置におい
て、前記各プロセッサが、同じ命令手順からなるプログ
ラムを夫々独立のクロックに従って実行し、該命令の実
行に関連して所定事象を発生するものであり、 各プロセッサ毎に、該プロセッサ内における所定事象の
発生を夫々指示する事象指示手段と、 この事象指示手段に接続され、各プロセッサ毎に指示さ
れる事象の数をカウントする事象カウント手段と、 同期リクエスト信号を受け取る同期リクエスト入力手段
と、 前記事象カウント手段と同期リクエスト入力手段に接続
され、或るプロセッサについてカウントされた事象の数
が別のプロセッサについてカウントされた事象の数より
大きいとき、前記同期リクエスト信号に応答して、当該
或るプロセッサの処理を中断する同期手段と、 前記事象カウント手段に対応して設けられ、カウントさ
れた事象の数が所定の値に等しいとき、前記同期リクエ
スト入力手段に対して同期リクエスト信号を与える手段
と、 各プロセッサ毎に、事象後に発生するクロックサイクル
の数をカウントするサイクルカウント手段と、 前記サイクルカウント手段に対応して設けられ、カウン
トされたクロックサイクル数が所定の値に等しいとき、
前記同期リクエスト入力手段に対して同期リクエスト信
号を与える手段と、 各プロセッサ毎に、当該プロセッサがプログラムを実行
するために特別の追加クロックサイクルを用いていると
き、当該プロセッサについての前記サイクルカウント手
段におけるクロックサイクルカウントを禁止する手段と を備えたことを特徴とする複数のプロセッサを同期する
装置。 - 【請求項3】複数のプロセッサを同期する装置におい
て、前記各プロセッサが一のプログラムに従ってクロッ
クサイクル中に夫々処理を行い、各プロセッサによる前
記処理が該プログラムに従う他のプロセッサの処理に先
行または後続する関係で夫々行われるものであり、 各プロセッサ毎に、 当該プロセッサ内における所定事象の発生を指示する事
象指示手段と、 この事象指示手段に接続され、指示された事象の数をカ
ウントするものであり、かつ、カウントされた事象の数
が所定の値に等しいとき、当該プロセッサに同期リクエ
スト信号を与える事象カウント手段と、 各プロセッサ毎に前記事象カウント手段から信号を受取
るように接続され、当該プロセッサについてカウントさ
れた事象の数が別のプロセッサについてカウントされた
事象の数より大きいとき、信号を与える比較手段と、 1つの事象後に発生するクロックサイクルの数をカウン
トするクロックカウンタ手段と、 カウントされたクロックサイクルの数が所定の値に等し
いとき、当該プロセッサに同期リクエスト信号を与える
手段と、 プログラムの実行のためにプロセッサが追加のクロック
サイクルを使用するときを指示する追加クロック指示手
段と、 同期リクエスト信号を受取る同期リクエスト入力手段
と、 同期リクエスト入力手段と事象カウント手段に接続さ
れ、当該プロセッサについてカウントされた事象の数が
別のプロセッサについてカウントされた事象の数以上の
ときに前記同期リクエスト信号に応じて当該プロセッサ
の処理を中断し、各プロセッサについてカウントされた
事象の数が等しいとき、当該プロセッサに再スタート信
号を与える同期手段と を備えたことを特徴とする複数のプロセッサを同期する
装置。 - 【請求項4】外部から与えられる割込み信号に応じて前
記同期リクエスト入力手段に対して同期リクエスト信号
を与える手段を更に備えた請求項1乃至3のいずれかに
記載の複数のプロセッサを同期する装置。 - 【請求項5】同じ命令手順からなるプログラムに従って
夫々独立のクロックサイクルで処理を実行し、該命令の
実行に関連して所定事象を発生する複数のプロセッサ
と、 前記クロックサイクルを確立するために、各プロセッサ
に対応して独立に設けられた複数のクロック発生手段
と、 各プロセッサ毎に、該プロセッサ内における所定事象の
発生を夫々指示する事象指示手段と、 この事象指示手段に接続され、各プロセッサ毎に指示さ
れる事象の数をカウントする事象カウント手段と、 各プロセッサ毎に、事象後に発生するクロックサイクル
の数をカウントするものであって、ただしプログラムを
実行するために特別に用いる追加クロックサイクルはカ
ウントしないサイクルカウント手段と、 前記サイクルカウント手段に対応して設けられ、カウン
トされたクロックサイクル数が所定の値に等しいとき、
同期リクエスト信号を発生する同期リクエスト発生手段
と、 前記事象カウント手段と同期リクエスト発生手段に接続
され、或るプロセッサについてカウントされた事象の数
が別のプロセッサについてカウントされた事象の数より
大きいとき、前記同期リクエスト信号に応答して、当該
或るプロセッサの処理を中断する同期手段と 各プロセッサについてカウントされた事象の数が等しく
なったとき、前記中断されていた或るプロセッサの処理
を再開させる手段と を備えたことを特徴とするコンピュータ装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11850387A | 1987-11-09 | 1987-11-09 | |
US118503 | 2002-04-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01258057A JPH01258057A (ja) | 1989-10-16 |
JPH0833874B2 true JPH0833874B2 (ja) | 1996-03-29 |
Family
ID=22379009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63282306A Expired - Fee Related JPH0833874B2 (ja) | 1987-11-09 | 1988-11-08 | 複数のプロセッサを同期する装置 |
Country Status (4)
Country | Link |
---|---|
US (3) | US5239641A (ja) |
EP (1) | EP0316087A3 (ja) |
JP (1) | JPH0833874B2 (ja) |
AU (1) | AU616213B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009193504A (ja) * | 2008-02-18 | 2009-08-27 | Nec Corp | フォルトトレラントコンピュータ、同期制御方法、及びプログラム |
Families Citing this family (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2214334B (en) * | 1988-01-05 | 1992-05-06 | Texas Instruments Ltd | Integrated circuit |
CA2003338A1 (en) * | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
AU616213B2 (en) * | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
AU625293B2 (en) | 1988-12-09 | 1992-07-09 | Tandem Computers Incorporated | Synchronization of fault-tolerant computer system having multiple processors |
US5295258A (en) | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
US5442772A (en) * | 1991-03-29 | 1995-08-15 | International Business Machines Corporation | Common breakpoint in virtual time logic simulation for parallel processors |
DE69224661T2 (de) * | 1991-12-17 | 1998-08-27 | Compaq Computer Corp | Vorrichtung zur verminderung des energieverbrauchs eines rechnersystems |
FR2685509B1 (fr) * | 1991-12-23 | 1996-09-06 | Sextant Avionique | Dispositif de synchronisation entre plusieurs processeurs independants. |
EP0550286A3 (en) * | 1992-01-03 | 1993-11-03 | Amdahl Corp | 2-level multi-processor synchronization protocol |
DE4219005A1 (de) * | 1992-06-10 | 1993-12-16 | Siemens Ag | Rechnersystem |
US5613127A (en) * | 1992-08-17 | 1997-03-18 | Honeywell Inc. | Separately clocked processor synchronization improvement |
US5715386A (en) * | 1992-09-30 | 1998-02-03 | Lucent Technologies Inc. | Apparatus and methods for software rejuvenation |
JP3231429B2 (ja) * | 1992-11-06 | 2001-11-19 | 株式会社日立製作所 | 中央処理装置と乗算器とを有する半導体集積回路装置 |
US5420801A (en) * | 1992-11-13 | 1995-05-30 | International Business Machines Corporation | System and method for synchronization of multimedia streams |
US5790776A (en) * | 1992-12-17 | 1998-08-04 | Tandem Computers Incorporated | Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements |
CA2153052A1 (en) * | 1993-02-26 | 1994-09-01 | Frederick L. Smith | Synchronization arbitration technique and apparatus |
JPH0773059A (ja) * | 1993-03-02 | 1995-03-17 | Tandem Comput Inc | フォールトトレラント型コンピュータシステム |
DE59302826D1 (de) * | 1993-03-16 | 1996-07-11 | Siemens Ag | Synchronisationsverfahren für Automatisierungssysteme |
US5572620A (en) * | 1993-07-29 | 1996-11-05 | Honeywell Inc. | Fault-tolerant voter system for output data from a plurality of non-synchronized redundant processors |
US5504859A (en) * | 1993-11-09 | 1996-04-02 | International Business Machines Corporation | Data processor with enhanced error recovery |
DE69435090T2 (de) * | 1993-12-01 | 2009-06-10 | Marathon Technologies Corp., Stow | Rechnersystem mit Steuereinheiten und Rechnerelementen |
US6865684B2 (en) * | 1993-12-13 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Utilization-based power management of a clocked device |
US5845310A (en) * | 1993-12-15 | 1998-12-01 | Hewlett-Packard Co. | System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses |
US5682480A (en) * | 1994-08-15 | 1997-10-28 | Hitachi, Ltd. | Parallel computer system for performing barrier synchronization by transferring the synchronization packet through a path which bypasses the packet buffer in response to an interrupt |
US5535380A (en) * | 1994-12-16 | 1996-07-09 | International Business Machines Corporation | System to reduce latency for real time interrupts |
US5680408A (en) * | 1994-12-28 | 1997-10-21 | Intel Corporation | Method and apparatus for determining a value of a majority of operands |
US5909571A (en) * | 1995-05-01 | 1999-06-01 | Apple Computer, Inc. | Clock distribution for processor and host cards |
GB2302743B (en) * | 1995-06-26 | 2000-02-16 | Sony Uk Ltd | Processing apparatus |
JP3595033B2 (ja) * | 1995-07-18 | 2004-12-02 | 株式会社日立製作所 | 高信頼化コンピュータシステム |
US5898864A (en) * | 1995-09-25 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors |
US5559453A (en) * | 1995-09-28 | 1996-09-24 | International Business Machines Corporation | Interlocked restore circuit |
EP0782079A1 (en) * | 1995-12-18 | 1997-07-02 | Texas Instruments Incorporated | Burst access in data processing systems |
US5854944A (en) * | 1996-05-09 | 1998-12-29 | Motorola, Inc. | Method and apparatus for determining wait states on a per cycle basis in a data processing system |
US5915082A (en) * | 1996-06-07 | 1999-06-22 | Lockheed Martin Corporation | Error detection and fault isolation for lockstep processor systems |
US5878382A (en) * | 1996-06-20 | 1999-03-02 | International Business Machines Corporation | Method and apparatus for timing and monitoring inactivity periods |
US5646566A (en) * | 1996-06-21 | 1997-07-08 | International Business Machines Corporation | Low power clocked set/reset fast dynamic latch |
DE19625195A1 (de) | 1996-06-24 | 1998-01-02 | Siemens Ag | Synchronisationsverfahren |
US5790397A (en) | 1996-09-17 | 1998-08-04 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
US5905869A (en) * | 1996-09-27 | 1999-05-18 | Hewlett-Packard, Co. | Time of century counter synchronization using a SCI interconnect |
US5896524A (en) * | 1997-02-06 | 1999-04-20 | Digital Equipment Corporation | Off-line clock synchronization for multiprocessor event traces |
US6029204A (en) * | 1997-03-13 | 2000-02-22 | International Business Machines Corporation | Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries |
US5896523A (en) * | 1997-06-04 | 1999-04-20 | Marathon Technologies Corporation | Loosely-coupled, synchronized execution |
US5995570A (en) * | 1997-06-27 | 1999-11-30 | International Business Machines Corporation | Recovering a clock signal in a multimedia network using time stamps |
US5983371A (en) * | 1997-07-11 | 1999-11-09 | Marathon Technologies Corporation | Active failure detection |
US5978867A (en) * | 1997-08-21 | 1999-11-02 | International Business Machines Corporation | System for counting clock cycles stolen from a data processor and providing the count value to a second processor accessing the data processor cycle resources |
US6044206A (en) * | 1997-10-14 | 2000-03-28 | C-Cube Microsystems | Out of order instruction processing using dual memory banks |
US6252583B1 (en) * | 1997-11-14 | 2001-06-26 | Immersion Corporation | Memory and force output management for a force feedback system |
US7003593B2 (en) * | 1997-12-17 | 2006-02-21 | Src Computers, Inc. | Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port |
US6128705A (en) * | 1998-01-07 | 2000-10-03 | International Business Machines Corporation | Method and apparatus for executing multiply-initiated, multiply-sourced variable delay system bus operations |
FR2774784B1 (fr) * | 1998-02-12 | 2004-09-24 | Inside Technologies | Microprocesseur comportant un systeme de synchronisation avec un evenement asynchrone attendu |
US6226694B1 (en) * | 1998-04-29 | 2001-05-01 | Hewlett-Packard Company | Achieving consistency and synchronization among multiple data stores that cooperate within a single system in the absence of transaction monitoring |
US6182112B1 (en) * | 1998-06-12 | 2001-01-30 | Unisys Corporation | Method of and apparatus for bandwidth control of transfers via a bi-directional interface |
US6052700A (en) * | 1998-09-17 | 2000-04-18 | Bull Hn Information Systems Inc. | Calendar clock caching in a multiprocessor data processing system |
EP1157324A4 (en) * | 1998-12-18 | 2009-06-17 | Triconex Corp | PROCESS AND DEVICE FOR PROCESSING CONTROL USING A MULTIPLE REDUNDANT PROCESS CONTROL SYSTEM |
US6507609B1 (en) * | 1999-01-20 | 2003-01-14 | Advanced Micro Devices, Inc. | Mechanism for capturing and reporting interrupt events of different clock domains |
US6678644B1 (en) * | 1999-09-13 | 2004-01-13 | Synopsys, Inc. | Integrated circuit models having associated timing exception information therewith for use with electronic design automation |
US6543002B1 (en) * | 1999-11-04 | 2003-04-01 | International Business Machines Corporation | Recovery from hang condition in a microprocessor |
US6842811B2 (en) * | 2000-02-24 | 2005-01-11 | Pts Corporation | Methods and apparatus for scalable array processor interrupt detection and response |
US6820213B1 (en) | 2000-04-13 | 2004-11-16 | Stratus Technologies Bermuda, Ltd. | Fault-tolerant computer system with voter delay buffer |
US6687851B1 (en) * | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
US6615281B1 (en) * | 2000-05-05 | 2003-09-02 | International Business Machines Corporation | Multi-node synchronization using global timing source and interrupts following anticipatory wait state |
DE10053525B4 (de) * | 2000-10-27 | 2012-06-28 | Robert Bosch Gmbh | Verfahren und System zur Synchronisation von Teilnehmern einer Kommunikationsverbindung |
EP1337909A4 (en) * | 2000-11-17 | 2008-10-01 | Lecroy Corp | PROCESSING WEB EDITOR FOR DATA PROCESSING IN A DIGITAL OSCILLOSCOPE OR SIMILAR INSTRUMENT |
GB2370380B (en) | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
JP3628265B2 (ja) * | 2001-02-21 | 2005-03-09 | 株式会社半導体理工学研究センター | マルチプロセッサシステム装置 |
US7065672B2 (en) * | 2001-03-28 | 2006-06-20 | Stratus Technologies Bermuda Ltd. | Apparatus and methods for fault-tolerant computing using a switching fabric |
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 |
KR100728943B1 (ko) * | 2001-06-20 | 2007-06-15 | 주식회사 하이닉스반도체 | 셀프 테스트 모드를 갖는 반도체 메모리 장치 |
FI113113B (fi) | 2001-11-20 | 2004-02-27 | Nokia Corp | Menetelmä ja laite integroitujen piirien ajan synkronoimiseksi |
US7539496B1 (en) * | 2002-03-28 | 2009-05-26 | Intel Corporation | Channel assignment based on spatial strategies in a wireless network using adaptive antenna arrays |
JP2004046599A (ja) * | 2002-07-12 | 2004-02-12 | Nec Corp | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
EP1398699A1 (de) * | 2002-09-12 | 2004-03-17 | Siemens Aktiengesellschaft | Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme |
EP1398700A1 (de) * | 2002-09-12 | 2004-03-17 | Siemens Aktiengesellschaft | Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten |
GB2396446B (en) * | 2002-12-20 | 2005-11-16 | Picochip Designs Ltd | Array synchronization |
US7467326B2 (en) * | 2003-02-28 | 2008-12-16 | Maxwell Technologies, Inc. | Self-correcting computer |
EP1678564A1 (en) * | 2003-09-03 | 2006-07-12 | Unitronics (1989) (R"G) Ltd. | System and method for implementing logic control in programmable controllers in distributed control systems |
US7617488B2 (en) * | 2003-12-30 | 2009-11-10 | Intel Corporation | Method and apparatus and determining processor utilization |
JP3808874B2 (ja) * | 2004-03-12 | 2006-08-16 | 東芝ソリューション株式会社 | 分散システム及び多重化制御方法 |
US8799706B2 (en) * | 2004-03-30 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Method and system of exchanging information between processors |
US20060020852A1 (en) * | 2004-03-30 | 2006-01-26 | Bernick David L | Method and system of servicing asynchronous interrupts in multiple processors executing a user program |
US7426656B2 (en) * | 2004-03-30 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Method and system executing user programs on non-deterministic processors |
US20050240806A1 (en) * | 2004-03-30 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Diagnostic memory dump method in a redundant processor |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
US7392432B2 (en) * | 2004-10-07 | 2008-06-24 | International Business Machines Corporation | Synchronizing cross checked processors during initialization by miscompare |
WO2006045786A1 (de) * | 2004-10-25 | 2006-05-04 | Robert Bosch Gmbh | Verfahren und vorrichtung zur modusumschaltung und zum signalergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten |
KR20070083772A (ko) * | 2004-10-25 | 2007-08-24 | 로베르트 보쉬 게엠베하 | 멀티 프로세서 시스템에서의 동기화 방법 및 장치 |
US20060090092A1 (en) * | 2004-10-25 | 2006-04-27 | Verhulst Anton H | Clock timing adjustment |
US7711681B2 (en) * | 2004-11-05 | 2010-05-04 | Accenture Global Services Gmbh | System for distributed information presentation and interaction |
JP2006178616A (ja) * | 2004-12-21 | 2006-07-06 | Nec Corp | フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム |
US7467327B2 (en) * | 2005-01-25 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed |
US7328331B2 (en) * | 2005-01-25 | 2008-02-05 | Hewlett-Packard Development Company, L.P. | Method and system of aligning execution point of duplicate copies of a user program by copying memory stores |
US7236005B1 (en) | 2005-02-09 | 2007-06-26 | Intel Corporation | Majority voter circuit design |
US7346793B2 (en) * | 2005-02-10 | 2008-03-18 | Northrop Grumman Corporation | Synchronization of multiple operational flight programs |
US7590885B2 (en) * | 2005-04-26 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | Method and system of copying memory from a source processor to a target processor by duplicating memory writes |
US7933966B2 (en) * | 2005-04-26 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Method and system of copying a memory area between processor elements for lock-step execution |
US8103861B2 (en) * | 2005-04-28 | 2012-01-24 | Hewlett-Packard Development Company, L.P. | Method and system for presenting an interrupt request to processors executing in lock step |
US7730350B2 (en) * | 2005-04-28 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Method and system of determining the execution point of programs executed in lock step |
WO2007006013A2 (en) * | 2005-07-05 | 2007-01-11 | Viasat, Inc. | Synchronized high-assurance circuits |
US7549085B2 (en) * | 2006-04-28 | 2009-06-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus to insert special instruction |
WO2008053709A1 (fr) * | 2006-11-02 | 2008-05-08 | Nec Corporation | Dispositif et procédé de test de sélection de circuit intégré semi-conducteur |
US8074109B1 (en) * | 2006-11-14 | 2011-12-06 | Unisys Corporation | Third-party voting to select a master processor within a multi-processor computer |
WO2008075404A1 (ja) * | 2006-12-19 | 2008-06-26 | Systemv Management Inc., | 半導体製造システム |
US8510741B2 (en) * | 2007-03-28 | 2013-08-13 | Massachusetts Institute Of Technology | Computing the processor desires of jobs in an adaptively parallel scheduling environment |
US8312464B2 (en) * | 2007-08-28 | 2012-11-13 | International Business Machines Corporation | Hardware based dynamic load balancing of message passing interface tasks by modifying tasks |
US20090064166A1 (en) * | 2007-08-28 | 2009-03-05 | Arimilli Lakshminarayana B | System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks |
US8127300B2 (en) * | 2007-08-28 | 2012-02-28 | International Business Machines Corporation | Hardware based dynamic load balancing of message passing interface tasks |
US8234652B2 (en) | 2007-08-28 | 2012-07-31 | International Business Machines Corporation | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks |
US8108876B2 (en) | 2007-08-28 | 2012-01-31 | International Business Machines Corporation | Modifying an operation of one or more processors executing message passing interface tasks |
GB2454865B (en) | 2007-11-05 | 2012-06-13 | Picochip Designs Ltd | Power control |
US7809980B2 (en) * | 2007-12-06 | 2010-10-05 | Jehoda Refaeli | Error detector in a cache memory using configurable way redundancy |
US8117449B2 (en) * | 2007-12-27 | 2012-02-14 | Mastercard International, Inc. | Method to detect man-in-the-middle (MITM) or relay attacks |
JP5181762B2 (ja) * | 2008-03-25 | 2013-04-10 | 富士通株式会社 | 分散処理を実行する演算装置とサーバおよび分散処理方法 |
JP5347414B2 (ja) * | 2008-10-03 | 2013-11-20 | 富士通株式会社 | 同期制御装置,情報処理装置及び同期管理方法 |
US8495408B2 (en) * | 2009-01-23 | 2013-07-23 | Alcatel Lucent | Synchronization method and device for real-time distributed system wherein each module sets an indicator to signal whether it is currently able to operate synchronously with other modules and resets the indicator at a unified synchronization end time |
JP4697314B2 (ja) * | 2009-02-05 | 2011-06-08 | 横河電機株式会社 | 二重化フィールド制御装置 |
WO2010103562A1 (ja) * | 2009-03-09 | 2010-09-16 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム |
GB2470037B (en) | 2009-05-07 | 2013-07-10 | Picochip Designs Ltd | Methods and devices for reducing interference in an uplink |
GB2470891B (en) | 2009-06-05 | 2013-11-27 | Picochip Designs Ltd | A method and device in a communication network |
GB2470771B (en) | 2009-06-05 | 2012-07-18 | Picochip Designs Ltd | A method and device in a communication network |
JP5676950B2 (ja) * | 2009-08-20 | 2015-02-25 | キヤノン株式会社 | 画像形成装置 |
GB2474071B (en) | 2009-10-05 | 2013-08-07 | Picochip Designs Ltd | Femtocell base station |
US8473818B2 (en) * | 2009-10-12 | 2013-06-25 | Empire Technology Development Llc | Reliable communications in on-chip networks |
US8972702B2 (en) * | 2009-11-30 | 2015-03-03 | Intenational Business Machines Corporation | Systems and methods for power management in a high performance computing (HPC) cluster |
US8058916B2 (en) | 2010-04-15 | 2011-11-15 | Xilinx, Inc. | Lockstep synchronization and maintenance |
GB2482869B (en) | 2010-08-16 | 2013-11-06 | Picochip Designs Ltd | Femtocell access control |
CN102621938A (zh) * | 2011-01-28 | 2012-08-01 | 上海新华控制技术(集团)有限公司 | 过程控制中的三重冗余控制系统及其方法 |
GB2489716B (en) | 2011-04-05 | 2015-06-24 | Intel Corp | Multimode base system |
GB2489919B (en) | 2011-04-05 | 2018-02-14 | Intel Corp | Filter |
GB2491098B (en) | 2011-05-16 | 2015-05-20 | Intel Corp | Accessing a base station |
CN102231125B (zh) * | 2011-05-16 | 2013-02-27 | 铁道部运输局 | 临时限速服务器的安全通信机平台 |
US8892933B2 (en) * | 2012-04-23 | 2014-11-18 | Analog Devices, Inc. | Synchronization of multiple signal converters by transmitting signal conversion data and receiving unique correction values for the respective counters through the same data interface pins |
EP2657797B1 (de) * | 2012-04-27 | 2017-01-18 | Siemens Aktiengesellschaft | Verfahren zum Betreiben eines redundanten Automatisierungssystems |
US9037891B2 (en) * | 2013-02-28 | 2015-05-19 | Hamilton Sundstrand Corporation | Multi-processor synchronization using time base counters |
US9500705B2 (en) * | 2013-08-28 | 2016-11-22 | Wisconsin Alumni Research Foundation | Integrated circuit providing fault prediction |
US9520180B1 (en) | 2014-03-11 | 2016-12-13 | Hypres, Inc. | System and method for cryogenic hybrid technology computing and memory |
US10680957B2 (en) | 2014-05-28 | 2020-06-09 | Cavium International | Method and apparatus for analytics in a network switch |
US20150365339A1 (en) * | 2014-06-11 | 2015-12-17 | Xpliant, Inc. | Counter with overflow fifo and a method thereof |
US20160092371A1 (en) * | 2014-09-26 | 2016-03-31 | Intel Corporation | Method and Apparatus For Deterministic Translation Lookaside Buffer (TLB) Miss Handling |
JP6416065B2 (ja) | 2015-09-14 | 2018-10-31 | 株式会社東芝 | 診断回路及び半導体システム |
TWI571712B (zh) * | 2015-10-29 | 2017-02-21 | 行政院原子能委員會核能研究所 | 多重容錯控制系統及其同步方法 |
DE202016007417U1 (de) * | 2016-12-03 | 2018-03-06 | WAGO Verwaltungsgesellschaft mit beschränkter Haftung | Steuerung Redundanter Verarbeitungseinheiten |
US11609845B2 (en) * | 2019-05-28 | 2023-03-21 | Oracle International Corporation | Configurable memory device connected to a microprocessor |
US11436043B2 (en) | 2019-11-13 | 2022-09-06 | International Business Machines Corporation | Operating system code patching during live migration |
US20210107512A1 (en) * | 2020-03-27 | 2021-04-15 | Intel Corporation | Computing system for mitigating execution drift |
FR3108993A1 (fr) * | 2020-04-07 | 2021-10-08 | Airbus Operations | Procédé et système de synchronisation d’unités de calcul d’un aéronef. |
JPWO2022249818A1 (ja) * | 2021-05-27 | 2022-12-01 | ||
US20230153156A1 (en) * | 2021-11-16 | 2023-05-18 | Xilinx, Inc. | Synchronization of system resources in a multi-socket data processing system |
Family Cites Families (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1587572A (ja) * | 1968-10-25 | 1970-03-20 | ||
GB1253309A (en) * | 1969-11-21 | 1971-11-10 | Marconi Co Ltd | Improvements in or relating to data processing arrangements |
GB1308497A (en) * | 1970-09-25 | 1973-02-21 | Marconi Co Ltd | Data processing arrangements |
SE347826B (ja) * | 1970-11-20 | 1972-08-14 | Ericsson Telefon Ab L M | |
US3810119A (en) * | 1971-05-04 | 1974-05-07 | Us Navy | Processor synchronization scheme |
BE790654A (fr) * | 1971-10-28 | 1973-04-27 | Siemens Ag | Systeme de traitement avec des unites de systeme |
DE2202231A1 (de) * | 1972-01-18 | 1973-07-26 | Siemens Ag | Verarbeitungssystem mit verdreifachten systemeinheiten |
US3828321A (en) * | 1973-03-15 | 1974-08-06 | Gte Automatic Electric Lab Inc | System for reconfiguring central processor and instruction storage combinations |
CH556576A (de) * | 1973-03-28 | 1974-11-29 | Hasler Ag | Einrichtung zur synchronisierung dreier rechner. |
FR2253432A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
FR2253423A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
IT1014277B (it) * | 1974-06-03 | 1977-04-20 | Cselt Centro Studi Lab Telecom | Sistema di controllo di elaboratori di processo operanti in parallelo |
US4030774A (en) * | 1975-02-06 | 1977-06-21 | Foster Edwin E | Pedal actuated bicycle brake with coordinating supporting stand |
US4015246A (en) * | 1975-04-14 | 1977-03-29 | The Charles Stark Draper Laboratory, Inc. | Synchronous fault tolerant multi-processor system |
US4015243A (en) * | 1975-06-02 | 1977-03-29 | Kurpanek Horst G | Multi-processing computer system |
US4034347A (en) * | 1975-08-08 | 1977-07-05 | Bell Telephone Laboratories, Incorporated | Method and apparatus for controlling a multiprocessor system |
JPS5224825A (en) * | 1975-08-22 | 1977-02-24 | Kubota Ltd | Stalk conveying device for agricultral machinery |
JPS5260540A (en) * | 1975-11-14 | 1977-05-19 | Hitachi Ltd | Synchronization control of double-type system |
US4224664A (en) * | 1976-05-07 | 1980-09-23 | Honeywell Information Systems Inc. | Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system |
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4456952A (en) * | 1977-03-17 | 1984-06-26 | Honeywell Information Systems Inc. | Data processing system having redundant control processors for fault detection |
US4358823A (en) * | 1977-03-25 | 1982-11-09 | Trw, Inc. | Double redundant processor |
US4187538A (en) * | 1977-06-13 | 1980-02-05 | Honeywell Inc. | Read request selection system for redundant storage |
GB1545169A (en) * | 1977-09-22 | 1979-05-02 | Burroughs Corp | Data processor system including data-save controller for protection against loss of volatile memory information during power failure |
IT1111606B (it) * | 1978-03-03 | 1986-01-13 | Cselt Centro Studi Lab Telecom | Sistema elaborativo modulare multiconfigurabile integrato con un sistema di preelaborazione |
JPS54143037A (en) * | 1978-04-28 | 1979-11-07 | Nippon Signal Co Ltd:The | Multiplex system synchronous operating system |
US4219875A (en) * | 1978-05-05 | 1980-08-26 | Honeywell Inc. | Digital event input circuit for a computer based process control system |
US4176402A (en) * | 1978-05-24 | 1979-11-27 | Sperry Rand Corporation | Apparatus for simultaneously measuring a plurality of digital events employing a random number table |
US4234920A (en) * | 1978-11-24 | 1980-11-18 | Engineered Systems, Inc. | Power failure detection and restart system |
US4257097A (en) * | 1978-12-11 | 1981-03-17 | Bell Telephone Laboratories, Incorporated | Multiprocessor system with demand assignable program paging stores |
US4253144A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Multi-processor communication network |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4428044A (en) * | 1979-09-20 | 1984-01-24 | Bell Telephone Laboratories, Incorporated | Peripheral unit controller |
US4315310A (en) * | 1979-09-28 | 1982-02-09 | Intel Corporation | Input/output data processing system |
DE2939487A1 (de) * | 1979-09-28 | 1981-04-16 | Siemens AG, 1000 Berlin und 8000 München | Rechnerarchitektur auf der basis einer multi-mikrocomputerstruktur als fehlertolerantes system |
NL7909178A (nl) * | 1979-12-20 | 1981-07-16 | Philips Nv | Rekenmachine met verspreide redundantie welke is verdeeld over verschillende isolatiegebieden voor fouten. |
FR2474201B1 (fr) * | 1980-01-22 | 1986-05-16 | Bull Sa | Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache |
US4330826A (en) * | 1980-02-05 | 1982-05-18 | The Bendix Corporation | Synchronizer and synchronization system for a multiple computer system |
JPS56119596A (en) * | 1980-02-26 | 1981-09-19 | Nec Corp | Control signal generator |
US4493019A (en) * | 1980-05-06 | 1985-01-08 | Burroughs Corporation | Pipelined microprogrammed digital data processor employing microinstruction tasking |
US4412281A (en) * | 1980-07-11 | 1983-10-25 | Raytheon Company | Distributed signal processing system |
US4392196A (en) * | 1980-08-11 | 1983-07-05 | Harris Corporation | Multi-processor time alignment control system |
US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
US4375683A (en) * | 1980-11-12 | 1983-03-01 | August Systems | Fault tolerant computational system and voter circuit |
US4414624A (en) * | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
US4430707A (en) * | 1981-03-05 | 1984-02-07 | Burroughs Corporation | Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks |
US4455605A (en) * | 1981-07-23 | 1984-06-19 | International Business Machines Corporation | Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices |
US4438494A (en) * | 1981-08-25 | 1984-03-20 | Intel Corporation | Apparatus of fault-handling in a multiprocessing system |
US4486826A (en) * | 1981-10-01 | 1984-12-04 | Stratus Computer, Inc. | Computer peripheral control apparatus |
US4597084A (en) * | 1981-10-01 | 1986-06-24 | Stratus Computer, Inc. | Computer memory apparatus |
DE3208573C2 (de) * | 1982-03-10 | 1985-06-27 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | 2 aus 3-Auswahleinrichtung für ein 3-Rechnersystem |
US4497059A (en) * | 1982-04-28 | 1985-01-29 | The Charles Stark Draper Laboratory, Inc. | Multi-channel redundant processing systems |
JPS5914062A (ja) * | 1982-07-15 | 1984-01-24 | Hitachi Ltd | 二重化共有メモリ制御方法 |
DE3235762A1 (de) * | 1982-09-28 | 1984-03-29 | Fried. Krupp Gmbh, 4300 Essen | Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen |
NL8203921A (nl) * | 1982-10-11 | 1984-05-01 | Philips Nv | Multipel redundant kloksysteem, bevattende een aantal onderling synchroniserende klokken, en klokschakeling voor gebruik in zo een kloksysteem. |
US4667287A (en) * | 1982-10-28 | 1987-05-19 | Tandem Computers Incorporated | Multiprocessor multisystem communications network |
US4648035A (en) * | 1982-12-06 | 1987-03-03 | Digital Equipment Corporation | Address conversion unit for multiprocessor system |
US4541094A (en) * | 1983-03-21 | 1985-09-10 | Sequoia Systems, Inc. | Self-checking computer circuitry |
US4591977A (en) * | 1983-03-23 | 1986-05-27 | The United States Of America As Represented By The Secretary Of The Air Force | Plurality of processors where access to the common memory requires only a single clock interval |
US4644498A (en) * | 1983-04-04 | 1987-02-17 | General Electric Company | Fault-tolerant real time clock |
US4661900A (en) * | 1983-04-25 | 1987-04-28 | Cray Research, Inc. | Flexible chaining in vector processor with selective use of vector registers as operand and result registers |
US4577272A (en) * | 1983-06-27 | 1986-03-18 | E-Systems, Inc. | Fault tolerant and load sharing processing system |
US4646231A (en) * | 1983-07-21 | 1987-02-24 | Burroughs Corporation | Method of synchronizing the sequence by which a variety of randomly called unrelated activities are executed in a digital processor |
JPS6054052A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 処理継続方式 |
US4912698A (en) * | 1983-09-26 | 1990-03-27 | Siemens Aktiengesellschaft | Multi-processor central control unit of a telephone exchange system and its operation |
DE3334796A1 (de) * | 1983-09-26 | 1984-11-08 | Siemens AG, 1000 Berlin und 8000 München | Verfahren zum betrieb eines multiprozessor-steuerrechners, insbesondere fuer die zentralsteuereinheit eines fernsprech-vermittlungssystems |
US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
US4607365A (en) * | 1983-11-14 | 1986-08-19 | Tandem Computers Incorporated | Fault-tolerant communications controller system |
US4783733A (en) * | 1983-11-14 | 1988-11-08 | Tandem Computers Incorporated | Fault tolerant communications controller system |
US4570261A (en) * | 1983-12-09 | 1986-02-11 | Motorola, Inc. | Distributed fault isolation and recovery system and method |
AU3746585A (en) * | 1983-12-12 | 1985-06-26 | Parallel Computers Inc. | Computer processor controller |
US4638427A (en) * | 1984-04-16 | 1987-01-20 | International Business Machines Corporation | Performance evaluation for an asymmetric multiprocessor system |
US4633394A (en) * | 1984-04-24 | 1986-12-30 | International Business Machines Corp. | Distributed arbitration for multiple processors |
US4589066A (en) * | 1984-05-31 | 1986-05-13 | General Electric Company | Fault tolerant, frame synchronization for multiple processor systems |
US4823256A (en) * | 1984-06-22 | 1989-04-18 | American Telephone And Telegraph Company, At&T Bell Laboratories | Reconfigurable dual processor system |
US4959774A (en) * | 1984-07-06 | 1990-09-25 | Ampex Corporation | Shadow memory system for storing variable backup blocks in consecutive time periods |
JPS6184740A (ja) * | 1984-10-03 | 1986-04-30 | Hitachi Ltd | 汎用オブジエクトコ−ド生成方式 |
US4827401A (en) * | 1984-10-24 | 1989-05-02 | International Business Machines Corporation | Method and apparatus for synchronizing clocks prior to the execution of a flush operation |
AU568977B2 (en) * | 1985-05-10 | 1988-01-14 | Tandem Computers Inc. | Dual processor error detection system |
US4757442A (en) * | 1985-06-17 | 1988-07-12 | Nec Corporation | Re-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processor |
US4751639A (en) * | 1985-06-24 | 1988-06-14 | Ncr Corporation | Virtual command rollback in a fault tolerant data processing system |
US4683570A (en) * | 1985-09-03 | 1987-07-28 | General Electric Company | Self-checking digital fault detector for modular redundant real time clock |
US4845419A (en) * | 1985-11-12 | 1989-07-04 | Norand Corporation | Automatic control means providing a low-power responsive signal, particularly for initiating data preservation operation |
US4733353A (en) * | 1985-12-13 | 1988-03-22 | General Electric Company | Frame synchronization of multiply redundant computers |
JPH0778750B2 (ja) * | 1985-12-24 | 1995-08-23 | 日本電気株式会社 | 高信頼性コンピュータ方式 |
US4703452A (en) * | 1986-01-03 | 1987-10-27 | Gte Communication Systems Corporation | Interrupt synchronizing circuit |
US4799140A (en) * | 1986-03-06 | 1989-01-17 | Orbital Sciences Corporation Ii | Majority vote sequencer |
US4868832A (en) * | 1986-04-30 | 1989-09-19 | Marrington S Paul | Computer power system |
US4757505A (en) * | 1986-04-30 | 1988-07-12 | Elgar Electronics Corp. | Computer power system |
US4763333A (en) * | 1986-08-08 | 1988-08-09 | Universal Vectors Corporation | Work-saving system for preventing loss in a computer due to power interruption |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
IT1213344B (it) * | 1986-09-17 | 1989-12-20 | Honoywell Information Systems | Architettura di calcolatore a tolleranza di guasto. |
US4774709A (en) * | 1986-10-02 | 1988-09-27 | United Technologies Corporation | Symmetrization for redundant channels |
US4847837A (en) * | 1986-11-07 | 1989-07-11 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Local area network with fault-checking, priorities and redundant backup |
DE3638947C2 (de) * | 1986-11-14 | 1995-08-31 | Bosch Gmbh Robert | Verfahren zur Synchronisation von Rechnern eines Mehrrechnersystems und Mehrrechnersystem |
US4831520A (en) * | 1987-02-24 | 1989-05-16 | Digital Equipment Corporation | Bus interface circuit for digital data processor |
US4914657A (en) * | 1987-04-15 | 1990-04-03 | Allied-Signal Inc. | Operations controller for a fault tolerant multiple node processing system |
CH675781A5 (ja) * | 1987-04-16 | 1990-10-31 | Bbc Brown Boveri & Cie | |
US4800462A (en) * | 1987-04-17 | 1989-01-24 | Tandem Computers Incorporated | Electrical keying for replaceable modules |
AU2130888A (en) * | 1987-07-21 | 1989-02-13 | Stellar Computer Inc. | Detecting multiple processor deadlock |
US4868826A (en) * | 1987-08-31 | 1989-09-19 | Triplex | Fault-tolerant output circuits |
US4868818A (en) * | 1987-10-29 | 1989-09-19 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Fault tolerant hypercube computer system architecture |
AU616213B2 (en) | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
US4879716A (en) * | 1987-12-23 | 1989-11-07 | Bull Hn Information Systems Inc. | Resilient data communications system |
US4907232A (en) * | 1988-04-28 | 1990-03-06 | The Charles Stark Draper Laboratory, Inc. | Fault-tolerant parallel processing system |
US4937741A (en) * | 1988-04-28 | 1990-06-26 | The Charles Stark Draper Laboratory, Inc. | Synchronization of fault-tolerant parallel processing systems |
US4873685A (en) * | 1988-05-04 | 1989-10-10 | Rockwell International Corporation | Self-checking voting logic for fault tolerant computing applications |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
US5018148A (en) * | 1989-03-01 | 1991-05-21 | Ncr Corporation | Method and apparatus for power failure protection |
US5020059A (en) * | 1989-03-31 | 1991-05-28 | At&T Bell Laboratories | Reconfigurable signal processor |
-
1988
- 1988-10-18 AU AU23969/88A patent/AU616213B2/en not_active Ceased
- 1988-10-24 EP EP88309985A patent/EP0316087A3/en not_active Ceased
- 1988-11-08 JP JP63282306A patent/JPH0833874B2/ja not_active Expired - Fee Related
-
1991
- 1991-02-20 US US07/657,990 patent/US5239641A/en not_active Expired - Lifetime
-
1992
- 1992-12-09 US US07/988,202 patent/US5353436A/en not_active Expired - Lifetime
-
1993
- 1993-08-23 US US08/110,328 patent/US5384906A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009193504A (ja) * | 2008-02-18 | 2009-08-27 | Nec Corp | フォルトトレラントコンピュータ、同期制御方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
EP0316087A2 (en) | 1989-05-17 |
AU2396988A (en) | 1989-05-11 |
EP0316087A3 (en) | 1990-08-22 |
AU616213B2 (en) | 1991-10-24 |
US5384906A (en) | 1995-01-24 |
JPH01258057A (ja) | 1989-10-16 |
US5239641A (en) | 1993-08-24 |
US5353436A (en) | 1994-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0833874B2 (ja) | 複数のプロセッサを同期する装置 | |
CA1311849C (en) | Fault tolerant computer system with fault isolation and repair | |
CA1306546C (en) | Dual zone, fault tolerant computer system with error checking on i/o writes | |
US5226152A (en) | Functional lockstep arrangement for redundant processors | |
CA1299756C (en) | Dual rail processors with error checking at single rail interfaces | |
US5249187A (en) | Dual rail processors with error checking on I/O reads | |
CA1310129C (en) | Interface of non-fault tolerant components to fault tolerant system | |
US7496786B2 (en) | Systems and methods for maintaining lock step operation | |
EP0433979A2 (en) | Fault-tolerant computer system with/config filesystem | |
EP0447576A1 (en) | Synchronization of fault-tolerant computer system having multiple processors | |
JPH079625B2 (ja) | フォールトトレラントな能力を備えたコンピュータ | |
RU2577465C2 (ru) | Система, способ и устройство для коррекции ошибки в мультипроцессорных системах | |
JPH0773059A (ja) | フォールトトレラント型コンピュータシステム | |
JP2005285120A (ja) | ユーザプログラムを実行する複数のプロセッサにおける非同期割り込みにサービスを提供する方法およびシステム | |
JPH07129426A (ja) | 障害処理方式 | |
JP2005285121A (ja) | プロセッサ間で情報を交換する方法およびシステム | |
JP3030658B2 (ja) | 電源故障対策を備えたコンピュータシステム及びその動作方法 | |
US20040193735A1 (en) | Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processor units | |
JP3415636B2 (ja) | プロセッサ装置 | |
JPH11259340A (ja) | コンピュータの再起動制御回路 | |
JPH0695902A (ja) | プロセッサ二重化方式の情報処理装置 | |
JP3110177B2 (ja) | 2重化計算機システム | |
JPH0481936A (ja) | 複数cpu間の同期制御方式 | |
JPS63251840A (ja) | マルチプロセツサの異常検出制御方法 | |
JPH06131209A (ja) | 擬似エラー発生方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |